asma-doc-viewer 1.0.16 → 1.0.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asmaDocViewer.es.js","sources":["../node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.js","../node_modules/.pnpm/react@18.2.0/node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/.pnpm/react@18.2.0/node_modules/react/cjs/react-jsx-runtime.development.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/global.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/fails.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/descriptors.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/function-bind-native.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/function-call.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/object-property-is-enumerable.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/create-property-descriptor.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/engine-v8-version.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/function-uncurry-this.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/classof-raw.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/indexed-object.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/is-null-or-undefined.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/require-object-coercible.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/to-indexed-object.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/is-callable.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/is-object.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/get-built-in.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/object-is-prototype-of.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/engine-user-agent.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/symbol-constructor-detection.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/use-symbol-as-uid.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/is-symbol.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/try-to-string.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/a-callable.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/get-method.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/ordinary-to-primitive.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/define-global-property.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/shared-store.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/shared.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/to-object.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/has-own-property.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/uid.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/well-known-symbol.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/to-primitive.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/to-property-key.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/document-create-element.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/ie8-dom-define.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/object-get-own-property-descriptor.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/v8-prototype-define-bug.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/an-object.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/object-define-property.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/create-non-enumerable-property.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/function-name.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/inspect-source.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/internal-state.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/weak-map-basic-detection.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/shared-key.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/hidden-keys.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/make-built-in.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/define-built-in.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/math-trunc.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/to-integer-or-infinity.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/to-absolute-index.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/to-length.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/length-of-array-like.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/array-includes.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/object-keys-internal.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/object-get-own-property-names.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/enum-bug-keys.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/object-get-own-property-symbols.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/own-keys.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/copy-constructor-properties.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/is-forced.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/export.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/internals/new-promise-capability.js","../node_modules/.pnpm/core-js@3.37.1/node_modules/core-js/modules/es.promise.with-resolvers.js","../node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/tslib.es6.mjs","../node_modules/.pnpm/@emotion+memoize@0.8.1/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../node_modules/.pnpm/@emotion+is-prop-valid@1.2.2/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../node_modules/.pnpm/stylis@4.3.2/node_modules/stylis/src/Enum.js","../node_modules/.pnpm/stylis@4.3.2/node_modules/stylis/src/Utility.js","../node_modules/.pnpm/stylis@4.3.2/node_modules/stylis/src/Tokenizer.js","../node_modules/.pnpm/stylis@4.3.2/node_modules/stylis/src/Parser.js","../node_modules/.pnpm/stylis@4.3.2/node_modules/stylis/src/Prefixer.js","../node_modules/.pnpm/stylis@4.3.2/node_modules/stylis/src/Serializer.js","../node_modules/.pnpm/stylis@4.3.2/node_modules/stylis/src/Middleware.js","../node_modules/.pnpm/@emotion+unitless@0.8.1/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/.pnpm/styled-components@6.1.11_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/styled-components/dist/styled-components.browser.esm.js","../src/i18n.ts","../src/store/actions.ts","../src/store/mainStateReducer.ts","../src/store/DocViewerProvider.tsx","../src/components/common/Button.ts","../src/components/icons/index.tsx","../node_modules/.pnpm/mustache@4.2.0/node_modules/mustache/mustache.mjs","../src/hooks/useTranslation.ts","../src/components/DocumentNav.tsx","../src/utils/getFileName.ts","../src/components/FileName.tsx","../src/components/HeaderBar.tsx","../src/utils/fileLoaders.ts","../src/hooks/useDocumentLoader.ts","../src/hooks/useRendererSelector.ts","../src/components/LoadingTimout.tsx","../src/components/ProxyRenderer.tsx","../src/hooks/useWindowSize.ts","../src/defaultTheme.ts","../src/renderers/image/index.tsx","../src/renderers/bmp/index.tsx","../src/renderers/html/index.tsx","../src/renderers/jpg/index.tsx","../src/renderers/msdoc/index.tsx","../node_modules/.pnpm/pdfjs-dist@4.4.168/node_modules/pdfjs-dist/build/pdf.mjs","../node_modules/.pnpm/make-event-props@1.6.2/node_modules/make-event-props/dist/esm/index.js","../node_modules/.pnpm/make-cancellable-promise@1.3.2/node_modules/make-cancellable-promise/dist/esm/index.js","../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs","../node_modules/.pnpm/tiny-invariant@1.3.1/node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../node_modules/.pnpm/warning@4.0.3/node_modules/warning/warning.js","../node_modules/.pnpm/dequal@2.0.3/node_modules/dequal/dist/index.mjs","../node_modules/.pnpm/react-pdf@9.1.0_@types+react@18.0.37_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/react-pdf/dist/esm/DocumentContext.js","../node_modules/.pnpm/react-pdf@9.1.0_@types+react@18.0.37_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/react-pdf/dist/esm/Message.js","../node_modules/.pnpm/react-pdf@9.1.0_@types+react@18.0.37_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/react-pdf/dist/esm/LinkService.js","../node_modules/.pnpm/react-pdf@9.1.0_@types+react@18.0.37_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/react-pdf/dist/esm/PasswordResponses.js","../node_modules/.pnpm/react-pdf@9.1.0_@types+react@18.0.37_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/react-pdf/dist/esm/shared/utils.js","../node_modules/.pnpm/react-pdf@9.1.0_@types+react@18.0.37_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/react-pdf/dist/esm/shared/hooks/useResolver.js","../node_modules/.pnpm/react-pdf@9.1.0_@types+react@18.0.37_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/react-pdf/dist/esm/Document.js","../node_modules/.pnpm/react-pdf@9.1.0_@types+react@18.0.37_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/react-pdf/dist/esm/shared/hooks/useDocumentContext.js","../node_modules/.pnpm/merge-refs@1.3.0_@types+react@18.0.37/node_modules/merge-refs/dist/esm/index.js","../node_modules/.pnpm/react-pdf@9.1.0_@types+react@18.0.37_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/react-pdf/dist/esm/PageContext.js","../node_modules/.pnpm/react-pdf@9.1.0_@types+react@18.0.37_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/react-pdf/dist/esm/shared/constants.js","../node_modules/.pnpm/react-pdf@9.1.0_@types+react@18.0.37_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/react-pdf/dist/esm/shared/structTreeUtils.js","../node_modules/.pnpm/react-pdf@9.1.0_@types+react@18.0.37_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/react-pdf/dist/esm/StructTreeItem.js","../node_modules/.pnpm/react-pdf@9.1.0_@types+react@18.0.37_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/react-pdf/dist/esm/shared/hooks/usePageContext.js","../node_modules/.pnpm/react-pdf@9.1.0_@types+react@18.0.37_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/react-pdf/dist/esm/StructTree.js","../node_modules/.pnpm/react-pdf@9.1.0_@types+react@18.0.37_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/react-pdf/dist/esm/Page/Canvas.js","../node_modules/.pnpm/react-pdf@9.1.0_@types+react@18.0.37_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/react-pdf/dist/esm/Page/TextLayer.js","../node_modules/.pnpm/react-pdf@9.1.0_@types+react@18.0.37_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/react-pdf/dist/esm/Page/AnnotationLayer.js","../node_modules/.pnpm/react-pdf@9.1.0_@types+react@18.0.37_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/react-pdf/dist/esm/Page.js","../node_modules/.pnpm/react-pdf@9.1.0_@types+react@18.0.37_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/react-pdf/dist/esm/index.js","../src/renderers/pdf/state/actions.ts","../src/renderers/pdf/state/reducer.ts","../src/renderers/pdf/state/index.tsx","../src/renderers/pdf/components/pages/PDFSinglePage.tsx","../src/renderers/pdf/components/pages/PDFAllPages.tsx","../src/renderers/pdf/components/pages/PDFPages.tsx","../src/renderers/pdf/components/icons/index.tsx","../src/renderers/pdf/components/PDFPagination.tsx","../src/renderers/pdf/components/PDFControls.tsx","../src/renderers/pdf/index.tsx","../src/renderers/png/index.tsx","../src/renderers/tiff/tiffToCanvas.ts","../src/renderers/tiff/index.tsx","../src/renderers/txt/index.tsx","../node_modules/.pnpm/papaparse@5.4.1/node_modules/papaparse/papaparse.min.js","../src/renderers/csv/index.tsx","../src/renderers/gif/index.tsx","../src/renderers/video/index.tsx","../src/renderers/webp/index.tsx","../src/renderers/index.ts","../src/DocViewer.tsx"],"sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nvar React = require('react');\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nfunction error(format) {\n {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n\n\n var argsWithFormat = args.map(function (item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var displayName = outerType.displayName;\n\n if (displayName) {\n return displayName;\n }\n\n var functionName = innerType.displayName || innerType.name || '';\n return functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n} // Keep in sync with react-reconciler/getComponentNameFromFiber\n\n\nfunction getContextName(type) {\n return type.displayName || 'Context';\n} // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n\n\nfunction getComponentNameFromType(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentNameFromType(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case REACT_PROFILER_TYPE:\n return 'Profiler';\n\n case REACT_STRICT_MODE_TYPE:\n return 'StrictMode';\n\n case REACT_SUSPENSE_TYPE:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + '.Consumer';\n\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n var outerName = type.displayName || null;\n\n if (outerName !== null) {\n return outerName;\n }\n\n return getComponentNameFromType(type.type) || 'Memo';\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return getComponentNameFromType(init(payload));\n } catch (x) {\n return null;\n }\n }\n\n // eslint-disable-next-line no-fallthrough\n }\n }\n\n return null;\n}\n\nvar assign = Object.assign;\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n disabledDepth++;\n }\n}\nfunction reenableLogs() {\n {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n log: assign({}, props, {\n value: prevLog\n }),\n info: assign({}, props, {\n value: prevInfo\n }),\n warn: assign({}, props, {\n value: prevWarn\n }),\n error: assign({}, props, {\n value: prevError\n }),\n group: assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n}\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n return '\\n' + prefix + name;\n }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if ( !fn || reentry) {\n return '';\n }\n\n {\n var frame = componentFrameCache.get(fn);\n\n if (frame !== undefined) {\n return frame;\n }\n }\n\n var control;\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n\n {\n previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n\n ReactCurrentDispatcher.current = null;\n disableLogs();\n }\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function () {\n throw Error();\n }; // $FlowFixMe\n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n\n fn();\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sample.stack.split('\\n');\n var controlLines = control.stack.split('\\n');\n var s = sampleLines.length - 1;\n var c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at '); // If our component frame is labeled \"<anonymous>\"\n // but we have a user-provided \"displayName\"\n // splice it in to make the stack more readable.\n\n\n if (fn.displayName && _frame.includes('<anonymous>')) {\n _frame = _frame.replace('<anonymous>', fn.displayName);\n }\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n {\n ReactCurrentDispatcher.current = previousDispatcher;\n reenableLogs();\n }\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n\n return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n}\n\nfunction shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n if (type == null) {\n return '';\n }\n\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n\n switch (type) {\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame('Suspense');\n\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n\n return '';\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame.setExtraStackFrame(null);\n }\n }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe This is okay but Flow doesn't know it.\n var has = Function.call.bind(hasOwnProperty);\n\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n // eslint-disable-next-line react-internal/prod-error-codes\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n } catch (ex) {\n error$1 = ex;\n }\n\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement(element);\n\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n setCurrentlyValidatingElement(null);\n }\n\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement(element);\n\n error('Failed %s type: %s', location, error$1.message);\n\n setCurrentlyValidatingElement(null);\n }\n }\n }\n }\n}\n\nvar isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n\nfunction isArray(a) {\n return isArrayImpl(a);\n}\n\n/*\n * The `'' + value` pattern (used in in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */\n// $FlowFixMe only called in DEV, so void return is not possible.\nfunction typeName(value) {\n {\n // toStringTag is needed for namespaced types like Temporal.Instant\n var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag;\n var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object';\n return type;\n }\n} // $FlowFixMe only called in DEV, so void return is not possible.\n\n\nfunction willCoercionThrow(value) {\n {\n try {\n testStringCoercion(value);\n return false;\n } catch (e) {\n return true;\n }\n }\n}\n\nfunction testStringCoercion(value) {\n // If you ended up here by following an exception call stack, here's what's\n // happened: you supplied an object or symbol value to React (as a prop, key,\n // DOM attribute, CSS property, string ref, etc.) and when React tried to\n // coerce it to a string using `'' + value`, an exception was thrown.\n //\n // The most common types that will cause this exception are `Symbol` instances\n // and Temporal objects like `Temporal.Instant`. But any object that has a\n // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n // exception. (Library authors do this to prevent users from using built-in\n // numeric operators like `+` or comparison operators like `>=` because custom\n // methods are needed to perform accurate arithmetic or comparison.)\n //\n // To fix the problem, coerce this object or symbol value to a string before\n // passing it to React. The most reliable way is usually `String(value)`.\n //\n // To find which value is throwing, check the browser or debugger console.\n // Before this exception was thrown, there should be `console.error` output\n // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n // problem and how that type was used: key, atrribute, input value prop, etc.\n // In most cases, this console output also shows the component and its\n // ancestor components where the exception happened.\n //\n // eslint-disable-next-line react-internal/safe-string-coercion\n return '' + value;\n}\nfunction checkKeyStringCoercion(value) {\n {\n if (willCoercionThrow(value)) {\n error('The provided key is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));\n\n return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n }\n }\n}\n\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\nvar specialPropKeyWarningShown;\nvar specialPropRefWarningShown;\nvar didWarnAboutStringRefs;\n\n{\n didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.key !== undefined;\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config, self) {\n {\n if (typeof config.ref === 'string' && ReactCurrentOwner.current && self && ReactCurrentOwner.current.stateNode !== self) {\n var componentName = getComponentNameFromType(ReactCurrentOwner.current.type);\n\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', getComponentNameFromType(ReactCurrentOwner.current.type), config.ref);\n\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingKey = function () {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n\n error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n }\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingRef = function () {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n\n error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n/**\n * https://github.com/reactjs/rfcs/pull/107\n * @param {*} type\n * @param {object} props\n * @param {string} key\n */\n\nfunction jsxDEV(type, config, maybeKey, source, self) {\n {\n var propName; // Reserved names are extracted\n\n var props = {};\n var key = null;\n var ref = null; // Currently, key can be spread in as a prop. This causes a potential\n // issue if key is also explicitly declared (ie. <div {...props} key=\"Hi\" />\n // or <div key=\"Hi\" {...props} /> ). We want to deprecate key spread,\n // but as an intermediary step, we will use jsxDEV for everything except\n // <div {...props} key=\"Hi\" />, because we aren't currently able to tell if\n // key is explicitly declared to be undefined or not.\n\n if (maybeKey !== undefined) {\n {\n checkKeyStringCoercion(maybeKey);\n }\n\n key = '' + maybeKey;\n }\n\n if (hasValidKey(config)) {\n {\n checkKeyStringCoercion(config.key);\n }\n\n key = '' + config.key;\n }\n\n if (hasValidRef(config)) {\n ref = config.ref;\n warnIfStringRefCannotBeAutoConverted(config, self);\n } // Remaining properties are added to a new props object\n\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n } // Resolve default props\n\n\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n if (key || ref) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n }\n}\n\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n propTypesMisspellWarningShown = false;\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\n\nfunction isValidElement(object) {\n {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n}\n\nfunction getDeclarationErrorAddendum() {\n {\n if (ReactCurrentOwner$1.current) {\n var name = getComponentNameFromType(ReactCurrentOwner$1.current.type);\n\n if (name) {\n return '\\n\\nCheck the render method of `' + name + '`.';\n }\n }\n\n return '';\n }\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n var lineNumber = source.lineNumber;\n return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n }\n\n return '';\n }\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n\n return info;\n }\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n\n var childOwner = '';\n\n if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\n }\n\n setCurrentlyValidatingElement$1(element);\n\n error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n setCurrentlyValidatingElement$1(null);\n }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n {\n if (typeof node !== 'object') {\n return;\n }\n\n if (isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n\n if (typeof iteratorFn === 'function') {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n\n while (!(step = iterator.next()).done) {\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n {\n var type = element.type;\n\n if (type === null || type === undefined || typeof type === 'string') {\n return;\n }\n\n var propTypes;\n\n if (typeof type === 'function') {\n propTypes = type.propTypes;\n } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n\n if (propTypes) {\n // Intentionally inside to avoid triggering lazy initializers:\n var name = getComponentNameFromType(type);\n checkPropTypes(propTypes, element.props, 'prop', name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n var _name = getComponentNameFromType(type);\n\n error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n }\n\n if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n }\n }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (key !== 'children' && key !== 'key') {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n setCurrentlyValidatingElement$1(null);\n break;\n }\n }\n\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n setCurrentlyValidatingElement$1(null);\n }\n }\n}\n\nfunction jsxWithValidation(type, props, key, isStaticChildren, source, self) {\n {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n\n if (!validType) {\n var info = '';\n\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n\n var sourceInfo = getSourceInfoErrorAddendum(source);\n\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n\n var typeString;\n\n if (type === null) {\n typeString = 'null';\n } else if (isArray(type)) {\n typeString = 'array';\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentNameFromType(type.type) || 'Unknown') + \" />\";\n info = ' Did you accidentally export a JSX literal instead of a component?';\n } else {\n typeString = typeof type;\n }\n\n error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n }\n\n var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n\n\n if (validType) {\n var children = props.children;\n\n if (children !== undefined) {\n if (isStaticChildren) {\n if (isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n validateChildKeys(children[i], type);\n }\n\n if (Object.freeze) {\n Object.freeze(children);\n }\n } else {\n error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');\n }\n } else {\n validateChildKeys(children, type);\n }\n }\n }\n\n if (type === REACT_FRAGMENT_TYPE) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n\n return element;\n }\n} // These two functions exist to still get child warnings in dev\n// even with the prod transform. This means that jsxDEV is purely\n// opt-in behavior for better messages but that we won't stop\n// giving you warnings if you use production apis.\n\nfunction jsxWithValidationStatic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, true);\n }\n}\nfunction jsxWithValidationDynamic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, false);\n }\n}\n\nvar jsx = jsxWithValidationDynamic ; // we may want to special case jsxs internally to take advantage of static children.\n// for now we can ship identical prod functions\n\nvar jsxs = jsxWithValidationStatic ;\n\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsx;\nexports.jsxs = jsxs;\n })();\n}\n","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n check(typeof this == 'object' && this) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nmodule.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar globalThis = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});\n\n(store.versions || (store.versions = [])).push({\n version: '3.37.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.37.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar store = require('../internals/shared-store');\n\nmodule.exports = function (key, value) {\n return store[key] || (store[key] = value || {});\n};\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\nvar global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\).*$/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n var len = toIntegerOrInfinity(argument);\n return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n if (length === 0) return !IS_INCLUDES && -1;\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\nvar global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = global[TARGET] && global[TARGET].prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw new $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\n// `Promise.withResolvers` method\n// https://github.com/tc39/proposal-promise-with-resolvers\n$({ target: 'Promise', stat: true }, {\n withResolvers: function withResolvers() {\n var promiseCapability = newPromiseCapabilityModule.f(this);\n return {\n promise: promiseCapability.promise,\n resolve: promiseCapability.resolve,\n reject: promiseCapability.reject\n };\n }\n});\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport { memoize as default };\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport { isPropValid as default };\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\nexport var SCOPE = '@scope'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @param {number} position\n * @return {number}\n */\nexport function indexof (value, search, position) {\n\treturn value.indexOf(search, position)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n\n/**\n * @param {string[]} array\n * @param {RegExp} pattern\n * @return {string[]}\n */\nexport function filter (array, pattern) {\n\treturn array.filter(function (value) { return !match(value, pattern) })\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {object[]} siblings\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length, siblings) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: '', siblings: siblings}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0, root.siblings), root, {length: -root.length}, props)\n}\n\n/**\n * @param {object} root\n */\nexport function lift (root) {\n\twhile (root.root)\n\t\troot = copy(root.root, {children: [root]})\n\n\tappend(root, root.siblings)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f', abs(index ? points[index - 1] : 0)) != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1, declarations) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length, rulesets), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length, children), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length, siblings) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length, siblings)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @param {object[]} siblings\n * @return {object}\n */\nexport function comment (value, root, parent, siblings) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0, siblings)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function declaration (value, root, parent, length, siblings) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length, siblings)\n}\n","import {MS, MOZ, WEBKIT} from './Enum.js'\nimport {hash, charat, strlen, indexof, replace, substr, match} from './Utility.js'\n\n/**\n * @param {string} value\n * @param {number} length\n * @param {object[]} children\n * @return {string}\n */\nexport function prefix (value, length, children) {\n\tswitch (hash(value, length)) {\n\t\t// color-adjust\n\t\tcase 5103:\n\t\t\treturn WEBKIT + 'print-' + value + value\n\t\t// animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\t\tcase 5737: case 4201: case 3177: case 3433: case 1641: case 4457: case 2921:\n\t\t// text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\t\tcase 5572: case 6356: case 5844: case 3191: case 6645: case 3005:\n\t\t// mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\t\tcase 6391: case 5879: case 5623: case 6135: case 4599: case 4855:\n\t\t// background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\t\tcase 4215: case 6389: case 5109: case 5365: case 5621: case 3829:\n\t\t\treturn WEBKIT + value + value\n\t\t// tab-size\n\t\tcase 4789:\n\t\t\treturn MOZ + value + value\n\t\t// appearance, user-select, transform, hyphens, text-size-adjust\n\t\tcase 5349: case 4246: case 4810: case 6968: case 2756:\n\t\t\treturn WEBKIT + value + MOZ + value + MS + value + value\n\t\t// writing-mode\n\t\tcase 5936:\n\t\t\tswitch (charat(value, length + 11)) {\n\t\t\t\t// vertical-l(r)\n\t\t\t\tcase 114:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value\n\t\t\t\t// vertical-r(l)\n\t\t\t\tcase 108:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value\n\t\t\t\t// horizontal(-)tb\n\t\t\t\tcase 45:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value\n\t\t\t\t// default: fallthrough to below\n\t\t\t}\n\t\t// flex, flex-direction, scroll-snap-type, writing-mode\n\t\tcase 6828: case 4268: case 2903:\n\t\t\treturn WEBKIT + value + MS + value + value\n\t\t// order\n\t\tcase 6165:\n\t\t\treturn WEBKIT + value + MS + 'flex-' + value + value\n\t\t// align-items\n\t\tcase 5187:\n\t\t\treturn WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value\n\t\t// align-self\n\t\tcase 5443:\n\t\t\treturn WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/g, '') + (!match(value, /flex-|baseline/) ? MS + 'grid-row-' + replace(value, /flex-|-self/g, '') : '') + value\n\t\t// align-content\n\t\tcase 4675:\n\t\t\treturn WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/g, '') + value\n\t\t// flex-shrink\n\t\tcase 5548:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value\n\t\t// flex-basis\n\t\tcase 5292:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value\n\t\t// flex-grow\n\t\tcase 6060:\n\t\t\treturn WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value\n\t\t// transition\n\t\tcase 4554:\n\t\t\treturn WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value\n\t\t// cursor\n\t\tcase 6187:\n\t\t\treturn replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value\n\t\t// background, background-image\n\t\tcase 5495: case 3959:\n\t\t\treturn replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1')\n\t\t// justify-content\n\t\tcase 4968:\n\t\t\treturn replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value\n\t\t// justify-self\n\t\tcase 4200:\n\t\t\tif (!match(value, /flex-|baseline/)) return MS + 'grid-column-align' + substr(value, length) + value\n\t\t\tbreak\n\t\t// grid-template-(columns|rows)\n\t\tcase 2592: case 3360:\n\t\t\treturn MS + replace(value, 'template-', '') + value\n\t\t// grid-(row|column)-start\n\t\tcase 4384: case 3616:\n\t\t\tif (children && children.some(function (element, index) { return length = index, match(element.props, /grid-\\w+-end/) })) {\n\t\t\t\treturn ~indexof(value + (children = children[length].value), 'span', 0) ? value : (MS + replace(value, '-start', '') + value + MS + 'grid-row-span:' + (~indexof(children, 'span', 0) ? match(children, /\\d+/) : +match(children, /\\d+/) - +match(value, /\\d+/)) + ';')\n\t\t\t}\n\t\t\treturn MS + replace(value, '-start', '') + value\n\t\t// grid-(row|column)-end\n\t\tcase 4896: case 4128:\n\t\t\treturn (children && children.some(function (element) { return match(element.props, /grid-\\w+-start/) })) ? value : MS + replace(replace(value, '-end', '-span'), 'span ', '') + value\n\t\t// (margin|padding)-inline-(start|end)\n\t\tcase 4095: case 3583: case 4068: case 2532:\n\t\t\treturn replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value\n\t\t// (min|max)?(width|height|inline-size|block-size)\n\t\tcase 8116: case 7059: case 5753: case 5535:\n\t\tcase 5445: case 5701: case 4933: case 4677:\n\t\tcase 5533: case 5789: case 5021: case 4765:\n\t\t\t// stretch, max-content, min-content, fill-available\n\t\t\tif (strlen(value) - 1 - length > 6)\n\t\t\t\tswitch (charat(value, length + 1)) {\n\t\t\t\t\t// (m)ax-content, (m)in-content\n\t\t\t\t\tcase 109:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (charat(value, length + 4) !== 45)\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t// (f)ill-available, (f)it-content\n\t\t\t\t\tcase 102:\n\t\t\t\t\t\treturn replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value\n\t\t\t\t\t// (s)tretch\n\t\t\t\t\tcase 115:\n\t\t\t\t\t\treturn ~indexof(value, 'stretch', 0) ? prefix(replace(value, 'stretch', 'fill-available'), length, children) + value : value\n\t\t\t\t}\n\t\t\tbreak\n\t\t// grid-(column|row)\n\t\tcase 5152: case 5920:\n\t\t\treturn replace(value, /(.+?):(\\d+)(\\s*\\/\\s*(span)?\\s*(\\d+))?(.*)/, function (_, a, b, c, d, e, f) { return (MS + a + ':' + b + f) + (c ? (MS + a + '-span:' + (d ? e : +e - +b)) + f : '') + value })\n\t\t// position: sticky\n\t\tcase 4949:\n\t\t\t// stick(y)?\n\t\t\tif (charat(value, length + 6) === 121)\n\t\t\t\treturn replace(value, ':', ':' + WEBKIT) + value\n\t\t\tbreak\n\t\t// display: (flex|inline-flex|grid|inline-grid)\n\t\tcase 6444:\n\t\t\tswitch (charat(value, charat(value, 14) === 45 ? 18 : 11)) {\n\t\t\t\t// (inline-)?fle(x)\n\t\t\t\tcase 120:\n\t\t\t\t\treturn replace(value, /(.+:)([^;\\s!]+)(;|(\\s+)?!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value\n\t\t\t\t// (inline-)?gri(d)\n\t\t\t\tcase 100:\n\t\t\t\t\treturn replace(value, ':', ':' + MS) + value\n\t\t\t}\n\t\t\tbreak\n\t\t// scroll-margin, scroll-margin-(top|right|bottom|left)\n\t\tcase 5719: case 2647: case 2135: case 3927: case 2391:\n\t\t\treturn replace(value, 'scroll-', 'scroll-snap-') + value\n\t}\n\n\treturn value\n}\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\n\tfor (var i = 0; i < children.length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: if (!strlen(element.value = element.props.join(','))) return ''\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine, filter, assign} from './Utility.js'\nimport {copy, lift, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(children = element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, callback = /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [value]}))\n\t\t\t\t\t\t\t\t\tassign(element, {props: filter(children, callback)})\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [value]}))\n\t\t\t\t\t\t\t\t\tassign(element, {props: filter(children, callback)})\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n","import{__spreadArray as e,__assign as t}from\"tslib\";import n from\"@emotion/is-prop-valid\";import o,{useRef as r,useState as s,useMemo as i,useEffect as a,useContext as c,useDebugValue as l,createElement as u}from\"react\";import p from\"shallowequal\";import*as d from\"stylis\";import h from\"@emotion/unitless\";var f=\"undefined\"!=typeof process&&void 0!==process.env&&(process.env.REACT_APP_SC_ATTR||process.env.SC_ATTR)||\"data-styled\",m=\"active\",y=\"data-styled-version\",v=\"6.1.11\",g=\"/*!sc*/\\n\",S=\"undefined\"!=typeof window&&\"HTMLElement\"in window,w=Boolean(\"boolean\"==typeof SC_DISABLE_SPEEDY?SC_DISABLE_SPEEDY:\"undefined\"!=typeof process&&void 0!==process.env&&void 0!==process.env.REACT_APP_SC_DISABLE_SPEEDY&&\"\"!==process.env.REACT_APP_SC_DISABLE_SPEEDY?\"false\"!==process.env.REACT_APP_SC_DISABLE_SPEEDY&&process.env.REACT_APP_SC_DISABLE_SPEEDY:\"undefined\"!=typeof process&&void 0!==process.env&&void 0!==process.env.SC_DISABLE_SPEEDY&&\"\"!==process.env.SC_DISABLE_SPEEDY?\"false\"!==process.env.SC_DISABLE_SPEEDY&&process.env.SC_DISABLE_SPEEDY:\"production\"!==process.env.NODE_ENV),b={},E=/invalid hook call/i,N=new Set,P=function(t,n){if(\"production\"!==process.env.NODE_ENV){var o=n?' with the id of \"'.concat(n,'\"'):\"\",s=\"The component \".concat(t).concat(o,\" has been created dynamically.\\n\")+\"You may see this warning because you've called styled inside another component.\\nTo resolve this only create new StyledComponents outside of any render method and function component.\",i=console.error;try{var a=!0;console.error=function(t){for(var n=[],o=1;o<arguments.length;o++)n[o-1]=arguments[o];E.test(t)?(a=!1,N.delete(s)):i.apply(void 0,e([t],n,!1))},r(),a&&!N.has(s)&&(console.warn(s),N.add(s))}catch(e){E.test(e.message)&&N.delete(s)}finally{console.error=i}}},_=Object.freeze([]),C=Object.freeze({});function I(e,t,n){return void 0===n&&(n=C),e.theme!==n.theme&&e.theme||t||n.theme}var A=new Set([\"a\",\"abbr\",\"address\",\"area\",\"article\",\"aside\",\"audio\",\"b\",\"base\",\"bdi\",\"bdo\",\"big\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"cite\",\"code\",\"col\",\"colgroup\",\"data\",\"datalist\",\"dd\",\"del\",\"details\",\"dfn\",\"dialog\",\"div\",\"dl\",\"dt\",\"em\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"iframe\",\"img\",\"input\",\"ins\",\"kbd\",\"keygen\",\"label\",\"legend\",\"li\",\"link\",\"main\",\"map\",\"mark\",\"menu\",\"menuitem\",\"meta\",\"meter\",\"nav\",\"noscript\",\"object\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"param\",\"picture\",\"pre\",\"progress\",\"q\",\"rp\",\"rt\",\"ruby\",\"s\",\"samp\",\"script\",\"section\",\"select\",\"small\",\"source\",\"span\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"tr\",\"track\",\"u\",\"ul\",\"use\",\"var\",\"video\",\"wbr\",\"circle\",\"clipPath\",\"defs\",\"ellipse\",\"foreignObject\",\"g\",\"image\",\"line\",\"linearGradient\",\"marker\",\"mask\",\"path\",\"pattern\",\"polygon\",\"polyline\",\"radialGradient\",\"rect\",\"stop\",\"svg\",\"text\",\"tspan\"]),O=/[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~-]+/g,D=/(^-|-$)/g;function R(e){return e.replace(O,\"-\").replace(D,\"\")}var T=/(a)(d)/gi,k=52,j=function(e){return String.fromCharCode(e+(e>25?39:97))};function x(e){var t,n=\"\";for(t=Math.abs(e);t>k;t=t/k|0)n=j(t%k)+n;return(j(t%k)+n).replace(T,\"$1-$2\")}var V,F=5381,M=function(e,t){for(var n=t.length;n;)e=33*e^t.charCodeAt(--n);return e},$=function(e){return M(F,e)};function z(e){return x($(e)>>>0)}function B(e){return\"production\"!==process.env.NODE_ENV&&\"string\"==typeof e&&e||e.displayName||e.name||\"Component\"}function L(e){return\"string\"==typeof e&&(\"production\"===process.env.NODE_ENV||e.charAt(0)===e.charAt(0).toLowerCase())}var G=\"function\"==typeof Symbol&&Symbol.for,Y=G?Symbol.for(\"react.memo\"):60115,W=G?Symbol.for(\"react.forward_ref\"):60112,q={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},H={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},U={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},J=((V={})[W]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},V[Y]=U,V);function X(e){return(\"type\"in(t=e)&&t.type.$$typeof)===Y?U:\"$$typeof\"in e?J[e.$$typeof]:q;var t}var Z=Object.defineProperty,K=Object.getOwnPropertyNames,Q=Object.getOwnPropertySymbols,ee=Object.getOwnPropertyDescriptor,te=Object.getPrototypeOf,ne=Object.prototype;function oe(e,t,n){if(\"string\"!=typeof t){if(ne){var o=te(t);o&&o!==ne&&oe(e,o,n)}var r=K(t);Q&&(r=r.concat(Q(t)));for(var s=X(e),i=X(t),a=0;a<r.length;++a){var c=r[a];if(!(c in H||n&&n[c]||i&&c in i||s&&c in s)){var l=ee(t,c);try{Z(e,c,l)}catch(e){}}}}return e}function re(e){return\"function\"==typeof e}function se(e){return\"object\"==typeof e&&\"styledComponentId\"in e}function ie(e,t){return e&&t?\"\".concat(e,\" \").concat(t):e||t||\"\"}function ae(e,t){if(0===e.length)return\"\";for(var n=e[0],o=1;o<e.length;o++)n+=t?t+e[o]:e[o];return n}function ce(e){return null!==e&&\"object\"==typeof e&&e.constructor.name===Object.name&&!(\"props\"in e&&e.$$typeof)}function le(e,t,n){if(void 0===n&&(n=!1),!n&&!ce(e)&&!Array.isArray(e))return t;if(Array.isArray(t))for(var o=0;o<t.length;o++)e[o]=le(e[o],t[o]);else if(ce(t))for(var o in t)e[o]=le(e[o],t[o]);return e}function ue(e,t){Object.defineProperty(e,\"toString\",{value:t})}var pe=\"production\"!==process.env.NODE_ENV?{1:\"Cannot create styled-component for component: %s.\\n\\n\",2:\"Can't collect styles once you've consumed a `ServerStyleSheet`'s styles! `ServerStyleSheet` is a one off instance for each server-side render cycle.\\n\\n- Are you trying to reuse it across renders?\\n- Are you accidentally calling collectStyles twice?\\n\\n\",3:\"Streaming SSR is only supported in a Node.js environment; Please do not try to call this method in the browser.\\n\\n\",4:\"The `StyleSheetManager` expects a valid target or sheet prop!\\n\\n- Does this error occur on the client and is your target falsy?\\n- Does this error occur on the server and is the sheet falsy?\\n\\n\",5:\"The clone method cannot be used on the client!\\n\\n- Are you running in a client-like environment on the server?\\n- Are you trying to run SSR on the client?\\n\\n\",6:\"Trying to insert a new style tag, but the given Node is unmounted!\\n\\n- Are you using a custom target that isn't mounted?\\n- Does your document not have a valid head element?\\n- Have you accidentally removed a style tag manually?\\n\\n\",7:'ThemeProvider: Please return an object from your \"theme\" prop function, e.g.\\n\\n```js\\ntheme={() => ({})}\\n```\\n\\n',8:'ThemeProvider: Please make your \"theme\" prop an object.\\n\\n',9:\"Missing document `<head>`\\n\\n\",10:\"Cannot find a StyleSheet instance. Usually this happens if there are multiple copies of styled-components loaded at once. Check out this issue for how to troubleshoot and fix the common cases where this situation can happen: https://github.com/styled-components/styled-components/issues/1941#issuecomment-417862021\\n\\n\",11:\"_This error was replaced with a dev-time warning, it will be deleted for v4 final._ [createGlobalStyle] received children which will not be rendered. Please use the component without passing children elements.\\n\\n\",12:\"It seems you are interpolating a keyframe declaration (%s) into an untagged string. This was supported in styled-components v3, but is not longer supported in v4 as keyframes are now injected on-demand. Please wrap your string in the css\\\\`\\\\` helper which ensures the styles are injected correctly. See https://www.styled-components.com/docs/api#css\\n\\n\",13:\"%s is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\\n\\n\",14:'ThemeProvider: \"theme\" prop is required.\\n\\n',15:\"A stylis plugin has been supplied that is not named. We need a name for each plugin to be able to prevent styling collisions between different stylis configurations within the same app. Before you pass your plugin to `<StyleSheetManager stylisPlugins={[]}>`, please make sure each plugin is uniquely-named, e.g.\\n\\n```js\\nObject.defineProperty(importedPlugin, 'name', { value: 'some-unique-name' });\\n```\\n\\n\",16:\"Reached the limit of how many styled components may be created at group %s.\\nYou may only create up to 1,073,741,824 components. If you're creating components dynamically,\\nas for instance in your render method then you may be running into this limitation.\\n\\n\",17:\"CSSStyleSheet could not be found on HTMLStyleElement.\\nHas styled-components' style tag been unmounted or altered by another script?\\n\",18:\"ThemeProvider: Please make sure your useTheme hook is within a `<ThemeProvider>`\"}:{};function de(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=e[0],o=[],r=1,s=e.length;r<s;r+=1)o.push(e[r]);return o.forEach(function(e){n=n.replace(/%[a-z]/,e)}),n}function he(t){for(var n=[],o=1;o<arguments.length;o++)n[o-1]=arguments[o];return\"production\"===process.env.NODE_ENV?new Error(\"An error occurred. See https://github.com/styled-components/styled-components/blob/main/packages/styled-components/src/utils/errors.md#\".concat(t,\" for more information.\").concat(n.length>0?\" Args: \".concat(n.join(\", \")):\"\")):new Error(de.apply(void 0,e([pe[t]],n,!1)).trim())}var fe=function(){function e(e){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=e}return e.prototype.indexOfGroup=function(e){for(var t=0,n=0;n<e;n++)t+=this.groupSizes[n];return t},e.prototype.insertRules=function(e,t){if(e>=this.groupSizes.length){for(var n=this.groupSizes,o=n.length,r=o;e>=r;)if((r<<=1)<0)throw he(16,\"\".concat(e));this.groupSizes=new Uint32Array(r),this.groupSizes.set(n),this.length=r;for(var s=o;s<r;s++)this.groupSizes[s]=0}for(var i=this.indexOfGroup(e+1),a=(s=0,t.length);s<a;s++)this.tag.insertRule(i,t[s])&&(this.groupSizes[e]++,i++)},e.prototype.clearGroup=function(e){if(e<this.length){var t=this.groupSizes[e],n=this.indexOfGroup(e),o=n+t;this.groupSizes[e]=0;for(var r=n;r<o;r++)this.tag.deleteRule(n)}},e.prototype.getGroup=function(e){var t=\"\";if(e>=this.length||0===this.groupSizes[e])return t;for(var n=this.groupSizes[e],o=this.indexOfGroup(e),r=o+n,s=o;s<r;s++)t+=\"\".concat(this.tag.getRule(s)).concat(g);return t},e}(),me=1<<30,ye=new Map,ve=new Map,ge=1,Se=function(e){if(ye.has(e))return ye.get(e);for(;ve.has(ge);)ge++;var t=ge++;if(\"production\"!==process.env.NODE_ENV&&((0|t)<0||t>me))throw he(16,\"\".concat(t));return ye.set(e,t),ve.set(t,e),t},we=function(e,t){ge=t+1,ye.set(e,t),ve.set(t,e)},be=\"style[\".concat(f,\"][\").concat(y,'=\"').concat(v,'\"]'),Ee=new RegExp(\"^\".concat(f,'\\\\.g(\\\\d+)\\\\[id=\"([\\\\w\\\\d-]+)\"\\\\].*?\"([^\"]*)')),Ne=function(e,t,n){for(var o,r=n.split(\",\"),s=0,i=r.length;s<i;s++)(o=r[s])&&e.registerName(t,o)},Pe=function(e,t){for(var n,o=(null!==(n=t.textContent)&&void 0!==n?n:\"\").split(g),r=[],s=0,i=o.length;s<i;s++){var a=o[s].trim();if(a){var c=a.match(Ee);if(c){var l=0|parseInt(c[1],10),u=c[2];0!==l&&(we(u,l),Ne(e,u,c[3]),e.getTag().insertRules(l,r)),r.length=0}else r.push(a)}}};function _e(){return\"undefined\"!=typeof __webpack_nonce__?__webpack_nonce__:null}var Ce=function(e){var t=document.head,n=e||t,o=document.createElement(\"style\"),r=function(e){var t=Array.from(e.querySelectorAll(\"style[\".concat(f,\"]\")));return t[t.length-1]}(n),s=void 0!==r?r.nextSibling:null;o.setAttribute(f,m),o.setAttribute(y,v);var i=_e();return i&&o.setAttribute(\"nonce\",i),n.insertBefore(o,s),o},Ie=function(){function e(e){this.element=Ce(e),this.element.appendChild(document.createTextNode(\"\")),this.sheet=function(e){if(e.sheet)return e.sheet;for(var t=document.styleSheets,n=0,o=t.length;n<o;n++){var r=t[n];if(r.ownerNode===e)return r}throw he(17)}(this.element),this.length=0}return e.prototype.insertRule=function(e,t){try{return this.sheet.insertRule(t,e),this.length++,!0}catch(e){return!1}},e.prototype.deleteRule=function(e){this.sheet.deleteRule(e),this.length--},e.prototype.getRule=function(e){var t=this.sheet.cssRules[e];return t&&t.cssText?t.cssText:\"\"},e}(),Ae=function(){function e(e){this.element=Ce(e),this.nodes=this.element.childNodes,this.length=0}return e.prototype.insertRule=function(e,t){if(e<=this.length&&e>=0){var n=document.createTextNode(t);return this.element.insertBefore(n,this.nodes[e]||null),this.length++,!0}return!1},e.prototype.deleteRule=function(e){this.element.removeChild(this.nodes[e]),this.length--},e.prototype.getRule=function(e){return e<this.length?this.nodes[e].textContent:\"\"},e}(),Oe=function(){function e(e){this.rules=[],this.length=0}return e.prototype.insertRule=function(e,t){return e<=this.length&&(this.rules.splice(e,0,t),this.length++,!0)},e.prototype.deleteRule=function(e){this.rules.splice(e,1),this.length--},e.prototype.getRule=function(e){return e<this.length?this.rules[e]:\"\"},e}(),De=S,Re={isServer:!S,useCSSOMInjection:!w},Te=function(){function e(e,n,o){void 0===e&&(e=C),void 0===n&&(n={});var r=this;this.options=t(t({},Re),e),this.gs=n,this.names=new Map(o),this.server=!!e.isServer,!this.server&&S&&De&&(De=!1,function(e){for(var t=document.querySelectorAll(be),n=0,o=t.length;n<o;n++){var r=t[n];r&&r.getAttribute(f)!==m&&(Pe(e,r),r.parentNode&&r.parentNode.removeChild(r))}}(this)),ue(this,function(){return function(e){for(var t=e.getTag(),n=t.length,o=\"\",r=function(n){var r=function(e){return ve.get(e)}(n);if(void 0===r)return\"continue\";var s=e.names.get(r),i=t.getGroup(n);if(void 0===s||0===i.length)return\"continue\";var a=\"\".concat(f,\".g\").concat(n,'[id=\"').concat(r,'\"]'),c=\"\";void 0!==s&&s.forEach(function(e){e.length>0&&(c+=\"\".concat(e,\",\"))}),o+=\"\".concat(i).concat(a,'{content:\"').concat(c,'\"}').concat(g)},s=0;s<n;s++)r(s);return o}(r)})}return e.registerId=function(e){return Se(e)},e.prototype.reconstructWithOptions=function(n,o){return void 0===o&&(o=!0),new e(t(t({},this.options),n),this.gs,o&&this.names||void 0)},e.prototype.allocateGSInstance=function(e){return this.gs[e]=(this.gs[e]||0)+1},e.prototype.getTag=function(){return this.tag||(this.tag=(e=function(e){var t=e.useCSSOMInjection,n=e.target;return e.isServer?new Oe(n):t?new Ie(n):new Ae(n)}(this.options),new fe(e)));var e},e.prototype.hasNameForId=function(e,t){return this.names.has(e)&&this.names.get(e).has(t)},e.prototype.registerName=function(e,t){if(Se(e),this.names.has(e))this.names.get(e).add(t);else{var n=new Set;n.add(t),this.names.set(e,n)}},e.prototype.insertRules=function(e,t,n){this.registerName(e,t),this.getTag().insertRules(Se(e),n)},e.prototype.clearNames=function(e){this.names.has(e)&&this.names.get(e).clear()},e.prototype.clearRules=function(e){this.getTag().clearGroup(Se(e)),this.clearNames(e)},e.prototype.clearTag=function(){this.tag=void 0},e}(),ke=/&/g,je=/^\\s*\\/\\/.*$/gm;function xe(e,t){return e.map(function(e){return\"rule\"===e.type&&(e.value=\"\".concat(t,\" \").concat(e.value),e.value=e.value.replaceAll(\",\",\",\".concat(t,\" \")),e.props=e.props.map(function(e){return\"\".concat(t,\" \").concat(e)})),Array.isArray(e.children)&&\"@keyframes\"!==e.type&&(e.children=xe(e.children,t)),e})}function Ve(e){var t,n,o,r=void 0===e?C:e,s=r.options,i=void 0===s?C:s,a=r.plugins,c=void 0===a?_:a,l=function(e,o,r){return r.startsWith(n)&&r.endsWith(n)&&r.replaceAll(n,\"\").length>0?\".\".concat(t):e},u=c.slice();u.push(function(e){e.type===d.RULESET&&e.value.includes(\"&\")&&(e.props[0]=e.props[0].replace(ke,n).replace(o,l))}),i.prefix&&u.push(d.prefixer),u.push(d.stringify);var p=function(e,r,s,a){void 0===r&&(r=\"\"),void 0===s&&(s=\"\"),void 0===a&&(a=\"&\"),t=a,n=r,o=new RegExp(\"\\\\\".concat(n,\"\\\\b\"),\"g\");var c=e.replace(je,\"\"),l=d.compile(s||r?\"\".concat(s,\" \").concat(r,\" { \").concat(c,\" }\"):c);i.namespace&&(l=xe(l,i.namespace));var p=[];return d.serialize(l,d.middleware(u.concat(d.rulesheet(function(e){return p.push(e)})))),p};return p.hash=c.length?c.reduce(function(e,t){return t.name||he(15),M(e,t.name)},F).toString():\"\",p}var Fe=new Te,Me=Ve(),$e=o.createContext({shouldForwardProp:void 0,styleSheet:Fe,stylis:Me}),ze=$e.Consumer,Be=o.createContext(void 0);function Le(){return c($e)}function Ge(e){var t=s(e.stylisPlugins),n=t[0],r=t[1],c=Le().styleSheet,l=i(function(){var t=c;return e.sheet?t=e.sheet:e.target&&(t=t.reconstructWithOptions({target:e.target},!1)),e.disableCSSOMInjection&&(t=t.reconstructWithOptions({useCSSOMInjection:!1})),t},[e.disableCSSOMInjection,e.sheet,e.target,c]),u=i(function(){return Ve({options:{namespace:e.namespace,prefix:e.enableVendorPrefixes},plugins:n})},[e.enableVendorPrefixes,e.namespace,n]);a(function(){p(n,e.stylisPlugins)||r(e.stylisPlugins)},[e.stylisPlugins]);var d=i(function(){return{shouldForwardProp:e.shouldForwardProp,styleSheet:l,stylis:u}},[e.shouldForwardProp,l,u]);return o.createElement($e.Provider,{value:d},o.createElement(Be.Provider,{value:u},e.children))}var Ye=function(){function e(e,t){var n=this;this.inject=function(e,t){void 0===t&&(t=Me);var o=n.name+t.hash;e.hasNameForId(n.id,o)||e.insertRules(n.id,o,t(n.rules,o,\"@keyframes\"))},this.name=e,this.id=\"sc-keyframes-\".concat(e),this.rules=t,ue(this,function(){throw he(12,String(n.name))})}return e.prototype.getName=function(e){return void 0===e&&(e=Me),this.name+e.hash},e}(),We=function(e){return e>=\"A\"&&e<=\"Z\"};function qe(e){for(var t=\"\",n=0;n<e.length;n++){var o=e[n];if(1===n&&\"-\"===o&&\"-\"===e[0])return e;We(o)?t+=\"-\"+o.toLowerCase():t+=o}return t.startsWith(\"ms-\")?\"-\"+t:t}var He=function(e){return null==e||!1===e||\"\"===e},Ue=function(t){var n,o,r=[];for(var s in t){var i=t[s];t.hasOwnProperty(s)&&!He(i)&&(Array.isArray(i)&&i.isCss||re(i)?r.push(\"\".concat(qe(s),\":\"),i,\";\"):ce(i)?r.push.apply(r,e(e([\"\".concat(s,\" {\")],Ue(i),!1),[\"}\"],!1)):r.push(\"\".concat(qe(s),\": \").concat((n=s,null==(o=i)||\"boolean\"==typeof o||\"\"===o?\"\":\"number\"!=typeof o||0===o||n in h||n.startsWith(\"--\")?String(o).trim():\"\".concat(o,\"px\")),\";\")))}return r};function Je(e,t,n,o){if(He(e))return[];if(se(e))return[\".\".concat(e.styledComponentId)];if(re(e)){if(!re(s=e)||s.prototype&&s.prototype.isReactComponent||!t)return[e];var r=e(t);return\"production\"===process.env.NODE_ENV||\"object\"!=typeof r||Array.isArray(r)||r instanceof Ye||ce(r)||null===r||console.error(\"\".concat(B(e),\" is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\")),Je(r,t,n,o)}var s;return e instanceof Ye?n?(e.inject(n,o),[e.getName(o)]):[e]:ce(e)?Ue(e):Array.isArray(e)?Array.prototype.concat.apply(_,e.map(function(e){return Je(e,t,n,o)})):[e.toString()]}function Xe(e){for(var t=0;t<e.length;t+=1){var n=e[t];if(re(n)&&!se(n))return!1}return!0}var Ze=$(v),Ke=function(){function e(e,t,n){this.rules=e,this.staticRulesId=\"\",this.isStatic=\"production\"===process.env.NODE_ENV&&(void 0===n||n.isStatic)&&Xe(e),this.componentId=t,this.baseHash=M(Ze,t),this.baseStyle=n,Te.registerId(t)}return e.prototype.generateAndInjectStyles=function(e,t,n){var o=this.baseStyle?this.baseStyle.generateAndInjectStyles(e,t,n):\"\";if(this.isStatic&&!n.hash)if(this.staticRulesId&&t.hasNameForId(this.componentId,this.staticRulesId))o=ie(o,this.staticRulesId);else{var r=ae(Je(this.rules,e,t,n)),s=x(M(this.baseHash,r)>>>0);if(!t.hasNameForId(this.componentId,s)){var i=n(r,\".\".concat(s),void 0,this.componentId);t.insertRules(this.componentId,s,i)}o=ie(o,s),this.staticRulesId=s}else{for(var a=M(this.baseHash,n.hash),c=\"\",l=0;l<this.rules.length;l++){var u=this.rules[l];if(\"string\"==typeof u)c+=u,\"production\"!==process.env.NODE_ENV&&(a=M(a,u));else if(u){var p=ae(Je(u,e,t,n));a=M(a,p+l),c+=p}}if(c){var d=x(a>>>0);t.hasNameForId(this.componentId,d)||t.insertRules(this.componentId,d,n(c,\".\".concat(d),void 0,this.componentId)),o=ie(o,d)}}return o},e}(),Qe=o.createContext(void 0),et=Qe.Consumer;function tt(){var e=c(Qe);if(!e)throw he(18);return e}function nt(e){var n=o.useContext(Qe),r=i(function(){return function(e,n){if(!e)throw he(14);if(re(e)){var o=e(n);if(\"production\"!==process.env.NODE_ENV&&(null===o||Array.isArray(o)||\"object\"!=typeof o))throw he(7);return o}if(Array.isArray(e)||\"object\"!=typeof e)throw he(8);return n?t(t({},n),e):e}(e.theme,n)},[e.theme,n]);return e.children?o.createElement(Qe.Provider,{value:r},e.children):null}var ot={},rt=new Set;function st(e,r,s){var i=se(e),a=e,c=!L(e),p=r.attrs,d=void 0===p?_:p,h=r.componentId,f=void 0===h?function(e,t){var n=\"string\"!=typeof e?\"sc\":R(e);ot[n]=(ot[n]||0)+1;var o=\"\".concat(n,\"-\").concat(z(v+n+ot[n]));return t?\"\".concat(t,\"-\").concat(o):o}(r.displayName,r.parentComponentId):h,m=r.displayName,y=void 0===m?function(e){return L(e)?\"styled.\".concat(e):\"Styled(\".concat(B(e),\")\")}(e):m,g=r.displayName&&r.componentId?\"\".concat(R(r.displayName),\"-\").concat(r.componentId):r.componentId||f,S=i&&a.attrs?a.attrs.concat(d).filter(Boolean):d,w=r.shouldForwardProp;if(i&&a.shouldForwardProp){var b=a.shouldForwardProp;if(r.shouldForwardProp){var E=r.shouldForwardProp;w=function(e,t){return b(e,t)&&E(e,t)}}else w=b}var N=new Ke(s,g,i?a.componentStyle:void 0);function O(e,r){return function(e,r,s){var i=e.attrs,a=e.componentStyle,c=e.defaultProps,p=e.foldedComponentIds,d=e.styledComponentId,h=e.target,f=o.useContext(Qe),m=Le(),y=e.shouldForwardProp||m.shouldForwardProp;\"production\"!==process.env.NODE_ENV&&l(d);var v=I(r,f,c)||C,g=function(e,n,o){for(var r,s=t(t({},n),{className:void 0,theme:o}),i=0;i<e.length;i+=1){var a=re(r=e[i])?r(s):r;for(var c in a)s[c]=\"className\"===c?ie(s[c],a[c]):\"style\"===c?t(t({},s[c]),a[c]):a[c]}return n.className&&(s.className=ie(s.className,n.className)),s}(i,r,v),S=g.as||h,w={};for(var b in g)void 0===g[b]||\"$\"===b[0]||\"as\"===b||\"theme\"===b&&g.theme===v||(\"forwardedAs\"===b?w.as=g.forwardedAs:y&&!y(b,S)||(w[b]=g[b],y||\"development\"!==process.env.NODE_ENV||n(b)||rt.has(b)||!A.has(S)||(rt.add(b),console.warn('styled-components: it looks like an unknown prop \"'.concat(b,'\" is being sent through to the DOM, which will likely trigger a React console error. If you would like automatic filtering of unknown props, you can opt-into that behavior via `<StyleSheetManager shouldForwardProp={...}>` (connect an API like `@emotion/is-prop-valid`) or consider using transient props (`$` prefix for automatic filtering.)')))));var E=function(e,t){var n=Le(),o=e.generateAndInjectStyles(t,n.styleSheet,n.stylis);return\"production\"!==process.env.NODE_ENV&&l(o),o}(a,g);\"production\"!==process.env.NODE_ENV&&e.warnTooManyClasses&&e.warnTooManyClasses(E);var N=ie(p,d);return E&&(N+=\" \"+E),g.className&&(N+=\" \"+g.className),w[L(S)&&!A.has(S)?\"class\":\"className\"]=N,w.ref=s,u(S,w)}(D,e,r)}O.displayName=y;var D=o.forwardRef(O);return D.attrs=S,D.componentStyle=N,D.displayName=y,D.shouldForwardProp=w,D.foldedComponentIds=i?ie(a.foldedComponentIds,a.styledComponentId):\"\",D.styledComponentId=g,D.target=i?a.target:e,Object.defineProperty(D,\"defaultProps\",{get:function(){return this._foldedDefaultProps},set:function(e){this._foldedDefaultProps=i?function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];for(var o=0,r=t;o<r.length;o++)le(e,r[o],!0);return e}({},a.defaultProps,e):e}}),\"production\"!==process.env.NODE_ENV&&(P(y,g),D.warnTooManyClasses=function(e,t){var n={},o=!1;return function(r){if(!o&&(n[r]=!0,Object.keys(n).length>=200)){var s=t?' with the id of \"'.concat(t,'\"'):\"\";console.warn(\"Over \".concat(200,\" classes were generated for component \").concat(e).concat(s,\".\\n\")+\"Consider using the attrs method, together with a style object for frequently changed styles.\\nExample:\\n const Component = styled.div.attrs(props => ({\\n style: {\\n background: props.background,\\n },\\n }))`width: 100%;`\\n\\n <Component />\"),o=!0,n={}}}}(y,g)),ue(D,function(){return\".\".concat(D.styledComponentId)}),c&&oe(D,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0}),D}function it(e,t){for(var n=[e[0]],o=0,r=t.length;o<r;o+=1)n.push(t[o],e[o+1]);return n}var at=function(e){return Object.assign(e,{isCss:!0})};function ct(t){for(var n=[],o=1;o<arguments.length;o++)n[o-1]=arguments[o];if(re(t)||ce(t))return at(Je(it(_,e([t],n,!0))));var r=t;return 0===n.length&&1===r.length&&\"string\"==typeof r[0]?Je(r):at(Je(it(r,n)))}function lt(n,o,r){if(void 0===r&&(r=C),!o)throw he(1,o);var s=function(t){for(var s=[],i=1;i<arguments.length;i++)s[i-1]=arguments[i];return n(o,r,ct.apply(void 0,e([t],s,!1)))};return s.attrs=function(e){return lt(n,o,t(t({},r),{attrs:Array.prototype.concat(r.attrs,e).filter(Boolean)}))},s.withConfig=function(e){return lt(n,o,t(t({},r),e))},s}var ut=function(e){return lt(st,e)},pt=ut;A.forEach(function(e){pt[e]=ut(e)});var dt=function(){function e(e,t){this.rules=e,this.componentId=t,this.isStatic=Xe(e),Te.registerId(this.componentId+1)}return e.prototype.createStyles=function(e,t,n,o){var r=o(ae(Je(this.rules,t,n,o)),\"\"),s=this.componentId+e;n.insertRules(s,s,r)},e.prototype.removeStyles=function(e,t){t.clearRules(this.componentId+e)},e.prototype.renderStyles=function(e,t,n,o){e>2&&Te.registerId(this.componentId+e),this.removeStyles(e,n),this.createStyles(e,t,n,o)},e}();function ht(n){for(var r=[],s=1;s<arguments.length;s++)r[s-1]=arguments[s];var i=ct.apply(void 0,e([n],r,!1)),a=\"sc-global-\".concat(z(JSON.stringify(i))),c=new dt(i,a);\"production\"!==process.env.NODE_ENV&&P(a);var l=function(e){var t=Le(),n=o.useContext(Qe),r=o.useRef(t.styleSheet.allocateGSInstance(a)).current;return\"production\"!==process.env.NODE_ENV&&o.Children.count(e.children)&&console.warn(\"The global style component \".concat(a,\" was given child JSX. createGlobalStyle does not render children.\")),\"production\"!==process.env.NODE_ENV&&i.some(function(e){return\"string\"==typeof e&&-1!==e.indexOf(\"@import\")})&&console.warn(\"Please do not use @import CSS syntax in createGlobalStyle at this time, as the CSSOM APIs we use in production do not handle it well. Instead, we recommend using a library such as react-helmet to inject a typical <link> meta tag to the stylesheet, or simply embedding it manually in your index.html <head> section for a simpler app.\"),t.styleSheet.server&&u(r,e,t.styleSheet,n,t.stylis),o.useLayoutEffect(function(){if(!t.styleSheet.server)return u(r,e,t.styleSheet,n,t.stylis),function(){return c.removeStyles(r,t.styleSheet)}},[r,e,t.styleSheet,n,t.stylis]),null};function u(e,n,o,r,s){if(c.isStatic)c.renderStyles(e,b,o,s);else{var i=t(t({},n),{theme:I(n,r,l.defaultProps)});c.renderStyles(e,i,o,s)}}return o.memo(l)}function ft(t){for(var n=[],o=1;o<arguments.length;o++)n[o-1]=arguments[o];\"production\"!==process.env.NODE_ENV&&\"undefined\"!=typeof navigator&&\"ReactNative\"===navigator.product&&console.warn(\"`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.\");var r=ae(ct.apply(void 0,e([t],n,!1))),s=z(r);return new Ye(s,r)}function mt(e){var n=o.forwardRef(function(n,r){var s=I(n,o.useContext(Qe),e.defaultProps);return\"production\"!==process.env.NODE_ENV&&void 0===s&&console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"'.concat(B(e),'\"')),o.createElement(e,t({},n,{theme:s,ref:r}))});return n.displayName=\"WithTheme(\".concat(B(e),\")\"),oe(n,e)}var yt=function(){function e(){var e=this;this._emitSheetCSS=function(){var t=e.instance.toString(),n=_e(),o=ae([n&&'nonce=\"'.concat(n,'\"'),\"\".concat(f,'=\"true\"'),\"\".concat(y,'=\"').concat(v,'\"')].filter(Boolean),\" \");return\"<style \".concat(o,\">\").concat(t,\"</style>\")},this.getStyleTags=function(){if(e.sealed)throw he(2);return e._emitSheetCSS()},this.getStyleElement=function(){var n;if(e.sealed)throw he(2);var r=((n={})[f]=\"\",n[y]=v,n.dangerouslySetInnerHTML={__html:e.instance.toString()},n),s=_e();return s&&(r.nonce=s),[o.createElement(\"style\",t({},r,{key:\"sc-0-0\"}))]},this.seal=function(){e.sealed=!0},this.instance=new Te({isServer:!0}),this.sealed=!1}return e.prototype.collectStyles=function(e){if(this.sealed)throw he(2);return o.createElement(Ge,{sheet:this.instance},e)},e.prototype.interleaveWithNodeStream=function(e){throw he(3)},e}(),vt={StyleSheet:Te,mainSheet:Fe};\"production\"!==process.env.NODE_ENV&&\"undefined\"!=typeof navigator&&\"ReactNative\"===navigator.product&&console.warn(\"It looks like you've imported 'styled-components' on React Native.\\nPerhaps you're looking to import 'styled-components/native'?\\nRead more about this at https://www.styled-components.com/docs/basics#react-native\");var gt=\"__sc-\".concat(f,\"__\");\"production\"!==process.env.NODE_ENV&&\"test\"!==process.env.NODE_ENV&&\"undefined\"!=typeof window&&(window[gt]||(window[gt]=0),1===window[gt]&&console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. This may cause dynamic styles to not render properly, errors during the rehydration process, a missing theme prop, and makes your application bigger without good reason.\\n\\nSee https://s-c.sh/2BAXzed for more info.\"),window[gt]+=1);export{yt as ServerStyleSheet,ze as StyleSheetConsumer,$e as StyleSheetContext,Ge as StyleSheetManager,et as ThemeConsumer,Qe as ThemeContext,nt as ThemeProvider,vt as __PRIVATE__,ht as createGlobalStyle,ct as css,pt as default,se as isStyledComponent,ft as keyframes,pt as styled,tt as useTheme,v as version,mt as withTheme};\n//# sourceMappingURL=styled-components.browser.esm.js.map\n","import en from \"./locales/en.json\";\nimport pl from \"./locales/pl.json\";\nimport es from \"./locales/es.json\";\nimport de from \"./locales/de.json\";\nimport it from \"./locales/it.json\";\nimport pt from \"./locales/pt.json\";\nimport fr from \"./locales/fr.json\";\nimport ar from \"./locales/ar.json\";\nimport sr from \"./locales/sr.json\";\nimport sr_cyr from \"./locales/sr_cyr.json\";\nimport ja from \"./locales/ja.json\";\nimport ru from \"./locales/ru.json\";\nimport se from \"./locales/se.json\";\n\nexport const locales = {\n en,\n pl,\n es,\n de,\n it,\n pt,\n fr,\n ar,\n sr,\n sr_cyr,\n ja,\n ru,\n se,\n};\n\nexport const supportedLanguages = Object.keys(locales);\n\nexport type AvailableLanguages = keyof typeof locales;\n\nexport const defaultLanguage: AvailableLanguages = \"en\";\n","import type { IConfig, IDocument } from '../models'\n\nexport const SET_ALL_DOCUMENTS = \"SET_ALL_DOCUMENTS\";\nexport const SET_DOCUMENT_LOADING = \"SET_DOCUMENT_LOADING\";\nexport const NEXT_DOCUMENT = \"NEXT_DOCUMENT\";\nexport const PREVIOUS_DOCUMENT = \"PREVIOUS_DOCUMENT\";\nexport const UPDATE_CURRENT_DOCUMENT = \"UPDATE_CURRENT_DOCUMENT\";\nexport const SET_RENDERER_RECT = \"SET_RENDERER_RECT\";\nexport const SET_MAIN_CONFIG = \"SET_MAIN_CONFIG\";\n\nexport interface SetAllDocuments {\n type: typeof SET_ALL_DOCUMENTS;\n documents: IDocument[];\n initialActiveDocument?: IDocument;\n}\n\nexport interface SetDocumentLoading {\n type: typeof SET_DOCUMENT_LOADING;\n value: boolean;\n}\n\nexport interface SetRendererRect {\n type: typeof SET_RENDERER_RECT;\n rect: DOMRect;\n}\n\nexport interface SetMainConfig {\n type: typeof SET_MAIN_CONFIG;\n config: IConfig;\n}\n\nexport interface NextDocument {\n type: typeof NEXT_DOCUMENT;\n}\n\nexport interface UpdateCurrentDocument {\n type: typeof UPDATE_CURRENT_DOCUMENT;\n document: IDocument;\n}\n\nexport interface PreviousDocument {\n type: typeof PREVIOUS_DOCUMENT;\n}\n\nexport const setAllDocuments = (\n documents: IDocument[],\n initialActiveDocument?: IDocument,\n): SetAllDocuments => ({\n type: SET_ALL_DOCUMENTS,\n documents,\n initialActiveDocument,\n});\n\nexport const setDocumentLoading = (value: boolean): SetDocumentLoading => ({\n type: SET_DOCUMENT_LOADING,\n value,\n});\n\nexport const nextDocument = (): NextDocument => ({ type: NEXT_DOCUMENT });\n\nexport const previousDocument = (): PreviousDocument => ({\n type: PREVIOUS_DOCUMENT,\n});\n\nexport const updateCurrentDocument = (\n document: IDocument,\n): UpdateCurrentDocument => ({ type: UPDATE_CURRENT_DOCUMENT, document });\n\nexport const setRendererRect = (rect: DOMRect): SetRendererRect => ({\n type: SET_RENDERER_RECT,\n rect,\n});\n\nexport const setMainConfig = (config: IConfig): SetMainConfig => ({\n type: SET_MAIN_CONFIG,\n config,\n});\n\nexport type MainStateActions =\n | SetAllDocuments\n | SetDocumentLoading\n | NextDocument\n | PreviousDocument\n | UpdateCurrentDocument\n | SetRendererRect\n | SetMainConfig;\n","import type { DocRenderer, IConfig, IDocument } from '..'\nimport {\n type MainStateActions,\n NEXT_DOCUMENT,\n PREVIOUS_DOCUMENT,\n type SetAllDocuments,\n type SetDocumentLoading,\n type SetMainConfig,\n type SetRendererRect,\n SET_ALL_DOCUMENTS,\n SET_DOCUMENT_LOADING,\n SET_MAIN_CONFIG,\n SET_RENDERER_RECT,\n type UpdateCurrentDocument,\n UPDATE_CURRENT_DOCUMENT,\n} from './actions'\nimport { type AvailableLanguages, defaultLanguage } from '../i18n'\n\nexport type IMainState = {\n currentFileNo: number\n documents: IDocument[]\n documentLoading?: boolean\n currentDocument?: IDocument\n rendererRect?: DOMRect\n config?: IConfig\n pluginRenderers?: DocRenderer[]\n prefetchMethod?: string\n requestHeaders?: Record<string, string>\n language: AvailableLanguages\n activeDocument?: IDocument\n onDocumentChange?: (document: IDocument) => void\n}\n\nexport const initialState: IMainState = {\n currentFileNo: 0,\n documents: [],\n documentLoading: true,\n currentDocument: undefined,\n rendererRect: undefined,\n config: {},\n pluginRenderers: [],\n language: defaultLanguage,\n}\n\nexport type MainStateReducer = (state: IMainState, action: MainStateActions) => IMainState\n\nexport const mainStateReducer: MainStateReducer = (state = initialState, action: MainStateActions): IMainState => {\n switch (action.type) {\n case SET_ALL_DOCUMENTS: {\n const { documents, initialActiveDocument } = action as SetAllDocuments\n\n return {\n ...state,\n documents,\n currentDocument: initialActiveDocument ? initialActiveDocument : documents[0] || undefined,\n currentFileNo:\n initialActiveDocument && documents.includes(initialActiveDocument)\n ? documents.indexOf(initialActiveDocument)\n : initialState.currentFileNo,\n }\n }\n\n case SET_DOCUMENT_LOADING: {\n const { value } = action as SetDocumentLoading\n\n return { ...state, documentLoading: value }\n }\n\n case NEXT_DOCUMENT: {\n if (state.currentFileNo >= state.documents.length - 1) return state\n const nextDocumentNo = state.currentFileNo + 1\n const doc = state.documents[nextDocumentNo]\n if (state.onDocumentChange && doc) {\n state.onDocumentChange(doc)\n }\n\n return {\n ...state,\n currentFileNo: nextDocumentNo,\n currentDocument: state.documents[nextDocumentNo],\n documentLoading: true,\n }\n }\n\n case PREVIOUS_DOCUMENT: {\n if (state.currentFileNo <= 0) return state\n const prevDocumentNo = state.currentFileNo - 1\n\n const doc = state.documents[prevDocumentNo]\n if (state.onDocumentChange && doc) {\n state.onDocumentChange(doc)\n }\n\n return {\n ...state,\n currentFileNo: state.currentFileNo - 1,\n currentDocument: state.documents[prevDocumentNo],\n documentLoading: true,\n }\n }\n\n case UPDATE_CURRENT_DOCUMENT: {\n const { document } = action as UpdateCurrentDocument\n\n return {\n ...state,\n currentDocument: document,\n currentFileNo: state.documents.findIndex((doc) => doc.uri === document.uri),\n }\n }\n\n case SET_RENDERER_RECT: {\n const { rect } = action as SetRendererRect\n\n return {\n ...state,\n rendererRect: rect,\n }\n }\n\n case SET_MAIN_CONFIG: {\n const { config } = action as SetMainConfig\n\n return {\n ...state,\n config,\n }\n }\n\n default:\n return state\n }\n}\n","import React, {\n createContext,\n type Dispatch,\n useEffect,\n useReducer,\n type PropsWithChildren,\n useImperativeHandle,\n forwardRef,\n} from 'react'\nimport { type DocViewerRef } from '..'\nimport { type DocViewerProps } from '../DocViewer'\nimport { defaultLanguage, locales } from '../i18n'\nimport {\n type MainStateActions,\n nextDocument,\n previousDocument,\n setAllDocuments,\n setMainConfig,\n updateCurrentDocument,\n} from './actions'\nimport { type IMainState, initialState, mainStateReducer, type MainStateReducer } from './mainStateReducer'\n\nconst DocViewerContext = createContext<{\n state: IMainState\n dispatch: Dispatch<MainStateActions>\n}>({ state: initialState, dispatch: () => null })\n\nconst DocViewerProvider = forwardRef<DocViewerRef, PropsWithChildren<DocViewerProps>>((props, ref) => {\n const {\n children,\n documents,\n config,\n pluginRenderers,\n prefetchMethod,\n requestHeaders,\n initialActiveDocument,\n language,\n activeDocument,\n onDocumentChange,\n } = props\n\n const [state, dispatch] = useReducer<MainStateReducer>(mainStateReducer, {\n ...initialState,\n documents: documents || [],\n currentDocument:\n documents && documents.length ? (initialActiveDocument ? initialActiveDocument : documents[0]) : undefined,\n config,\n pluginRenderers,\n prefetchMethod,\n requestHeaders,\n currentFileNo: initialActiveDocument ? documents.findIndex((doc) => doc === initialActiveDocument) ?? 0 : 0,\n language: language && locales[language] ? language : defaultLanguage,\n activeDocument,\n onDocumentChange,\n })\n\n useEffect(() => {\n dispatch(setAllDocuments(documents, initialActiveDocument))\n config && dispatch(setMainConfig(config))\n }, [documents, config, initialActiveDocument])\n\n useEffect(() => {\n if (activeDocument) {\n dispatch(updateCurrentDocument(activeDocument))\n }\n }, [activeDocument])\n\n useImperativeHandle(\n ref,\n () => ({\n prev() {\n dispatch(previousDocument())\n },\n next() {\n dispatch(nextDocument())\n },\n }),\n [dispatch],\n )\n\n return <DocViewerContext.Provider value={{ state, dispatch }}>{children}</DocViewerContext.Provider>\n})\n\nexport { DocViewerContext, DocViewerProvider }\n","import type { IStyledProps } from \"src/models\";\nimport styled, { css } from \"styled-components\";\n\ninterface ButtonProps extends IStyledProps {\n disabled?: boolean;\n}\n\nexport const ButtonPrimaryStyle = css`\n background-color: ${(props: IStyledProps) => props.theme.primary};\n color: ${(props: IStyledProps) => props.theme.textPrimary};\n`;\n\nexport const ButtonSecondaryStyle = css`\n background-color: ${(props: IStyledProps) => props.theme.secondary};\n color: ${(props: IStyledProps) => props.theme.textSecondary};\n`;\n\nexport const Button = styled.button<ButtonProps>`\n ${ButtonPrimaryStyle}\n display: flex;\n justify-content: center;\n align-items: center;\n width: 35px;\n height: 35px;\n padding: 0;\n margin: 0 0 0 5px;\n text-align: center;\n font-size: 18px;\n border: 0;\n outline: none;\n cursor: pointer;\n text-decoration: none;\n border-radius: 35px;\n opacity: ${(props) => (props.disabled ? 0.4 : 1)};\n pointer-events: ${(props) => (props.disabled ? \"none\" : \"all\")};\n box-shadow: 2px 2px 3px #00000033;\n\n @media (max-width: 768px) {\n width: 30px;\n height: 30px;\n font-size: 15px;\n }\n`;\n\nexport const LinkButton = styled.a`\n display: flex;\n justify-content: center;\n align-items: center;\n border: 0;\n outline: none;\n cursor: pointer;\n text-decoration: none;\n border-radius: 35px;\n background-color: ${(props: IStyledProps) => props.theme.primary};\n color: ${(props: IStyledProps) => props.theme.textPrimary};\n box-shadow: 2px 2px 3px #00000033;\n\n width: 35px;\n height: 35px;\n font-size: 18px;\n @media (max-width: 768px) {\n width: 30px;\n height: 30px;\n font-size: 15px;\n }\n`;\n\nexport const ButtonPrimary = styled(Button)``;\nexport const ButtonSecondary = styled(Button)`\n ${ButtonSecondaryStyle}\n`;\n","\"use client\";\n\nexport interface IIconProps {\n color?: string;\n size?: string | number | string | undefined;\n reverse?: boolean;\n}\n\nexport const PrevDocIcon = (props: IIconProps) => {\n return <DocNavIcon {...props} />;\n};\n\nexport const NextDocIcon = (props: IIconProps) => {\n return <DocNavIcon {...props} reverse />;\n};\n\nconst DocNavIcon = ({ color, size, reverse }: IIconProps) => {\n return (\n <svg\n width={size || \"100%\"}\n height={size || \"100%\"}\n style={{ transform: `${reverse ? \"rotate(180deg)\" : \"\"}` }}\n id=\"arrow_left\"\n version=\"1.1\"\n viewBox={`0 0 32 32`}\n xmlSpace=\"preserve\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M31.106,15H3.278l8.325-8.293 c0.391-0.391,0.391-1.024,0-1.414c-0.391-0.391-1.024-0.391-1.414,0l-9.9,9.899c-0.385,0.385-0.385,1.029,0,1.414l9.9,9.9 c0.391,0.391,1.024,0.391,1.414,0c0.391-0.391,0.391-1.024,0-1.414L3.278,17h27.828c0.552,0,1-0.448,1-1 C32.106,15.448,31.658,15,31.106,15z\"\n fill={color || \"#aaa\"}\n fillRule=\"evenodd\"\n id=\"Arrow_Back\"\n />\n </svg>\n );\n};\n\nexport const LoadingIcon = (props: IIconProps) => {\n const { color, size } = props;\n\n return (\n <svg\n width={size || \"100%\"}\n height={size || \"100%\"}\n version=\"1.1\"\n id=\"Icons\"\n viewBox=\"0 0 32 32\"\n xmlSpace=\"preserve\"\n style={{ alignSelf: \"center\", justifySelf: \"center\" }}\n >\n <g>\n <path\n fill={color || \"#aaa\"}\n d=\"M16,2c-0.6,0-1,0.4-1,1v5c0,0.6,0.4,1,1,1s1-0.4,1-1V3C17,2.4,16.6,2,16,2z\"\n />\n <path\n fill={color || \"#aaa\"}\n d=\"M7.5,6.1c-0.4-0.4-1-0.4-1.4,0s-0.4,1,0,1.4l3.5,3.5c0.2,0.2,0.5,0.3,0.7,0.3s0.5-0.1,0.7-0.3c0.4-0.4,0.4-1,0-1.4L7.5,6.1\n\t\tz\"\n />\n <path\n fill={color || \"#aaa\"}\n d=\"M9,16c0-0.6-0.4-1-1-1H3c-0.6,0-1,0.4-1,1s0.4,1,1,1h5C8.6,17,9,16.6,9,16z\"\n />\n <path\n fill={color || \"#aaa\"}\n d=\"M9.6,20.9l-3.5,3.5c-0.4,0.4-0.4,1,0,1.4c0.2,0.2,0.5,0.3,0.7,0.3s0.5-0.1,0.7-0.3l3.5-3.5c0.4-0.4,0.4-1,0-1.4\n\t\tS10,20.6,9.6,20.9z\"\n />\n <path\n fill={color || \"#aaa\"}\n d=\"M16,23c-0.6,0-1,0.4-1,1v5c0,0.6,0.4,1,1,1s1-0.4,1-1v-5C17,23.4,16.6,23,16,23z\"\n />\n <path\n fill={color || \"#aaa\"}\n d=\"M22.4,20.9c-0.4-0.4-1-0.4-1.4,0s-0.4,1,0,1.4l3.5,3.5c0.2,0.2,0.5,0.3,0.7,0.3s0.5-0.1,0.7-0.3c0.4-0.4,0.4-1,0-1.4\n\t\tL22.4,20.9z\"\n />\n <path\n fill={color || \"#aaa\"}\n d=\"M29,15h-5c-0.6,0-1,0.4-1,1s0.4,1,1,1h5c0.6,0,1-0.4,1-1S29.6,15,29,15z\"\n />\n <path\n fill={color || \"#aaa\"}\n d=\"M21.7,11.3c0.3,0,0.5-0.1,0.7-0.3l3.5-3.5c0.4-0.4,0.4-1,0-1.4s-1-0.4-1.4,0l-3.5,3.5c-0.4,0.4-0.4,1,0,1.4\n\t\tC21.1,11.2,21.4,11.3,21.7,11.3z\"\n />\n </g>\n </svg>\n );\n};\n","/*!\n * mustache.js - Logic-less {{mustache}} templates with JavaScript\n * http://github.com/janl/mustache.js\n */\n\nvar objectToString = Object.prototype.toString;\nvar isArray = Array.isArray || function isArrayPolyfill (object) {\n return objectToString.call(object) === '[object Array]';\n};\n\nfunction isFunction (object) {\n return typeof object === 'function';\n}\n\n/**\n * More correct typeof string handling array\n * which normally returns typeof 'object'\n */\nfunction typeStr (obj) {\n return isArray(obj) ? 'array' : typeof obj;\n}\n\nfunction escapeRegExp (string) {\n return string.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, '\\\\$&');\n}\n\n/**\n * Null safe way of checking whether or not an object,\n * including its prototype, has a given property\n */\nfunction hasProperty (obj, propName) {\n return obj != null && typeof obj === 'object' && (propName in obj);\n}\n\n/**\n * Safe way of detecting whether or not the given thing is a primitive and\n * whether it has the given property\n */\nfunction primitiveHasOwnProperty (primitive, propName) {\n return (\n primitive != null\n && typeof primitive !== 'object'\n && primitive.hasOwnProperty\n && primitive.hasOwnProperty(propName)\n );\n}\n\n// Workaround for https://issues.apache.org/jira/browse/COUCHDB-577\n// See https://github.com/janl/mustache.js/issues/189\nvar regExpTest = RegExp.prototype.test;\nfunction testRegExp (re, string) {\n return regExpTest.call(re, string);\n}\n\nvar nonSpaceRe = /\\S/;\nfunction isWhitespace (string) {\n return !testRegExp(nonSpaceRe, string);\n}\n\nvar entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/',\n '`': '`',\n '=': '='\n};\n\nfunction escapeHtml (string) {\n return String(string).replace(/[&<>\"'`=\\/]/g, function fromEntityMap (s) {\n return entityMap[s];\n });\n}\n\nvar whiteRe = /\\s*/;\nvar spaceRe = /\\s+/;\nvar equalsRe = /\\s*=/;\nvar curlyRe = /\\s*\\}/;\nvar tagRe = /#|\\^|\\/|>|\\{|&|=|!/;\n\n/**\n * Breaks up the given `template` string into a tree of tokens. If the `tags`\n * argument is given here it must be an array with two string values: the\n * opening and closing tags used in the template (e.g. [ \"<%\", \"%>\" ]). Of\n * course, the default is to use mustaches (i.e. mustache.tags).\n *\n * A token is an array with at least 4 elements. The first element is the\n * mustache symbol that was used inside the tag, e.g. \"#\" or \"&\". If the tag\n * did not contain a symbol (i.e. {{myValue}}) this element is \"name\". For\n * all text that appears outside a symbol this element is \"text\".\n *\n * The second element of a token is its \"value\". For mustache tags this is\n * whatever else was inside the tag besides the opening symbol. For text tokens\n * this is the text itself.\n *\n * The third and fourth elements of the token are the start and end indices,\n * respectively, of the token in the original template.\n *\n * Tokens that are the root node of a subtree contain two more elements: 1) an\n * array of tokens in the subtree and 2) the index in the original template at\n * which the closing tag for that section begins.\n *\n * Tokens for partials also contain two more elements: 1) a string value of\n * indendation prior to that tag and 2) the index of that tag on that line -\n * eg a value of 2 indicates the partial is the third tag on this line.\n */\nfunction parseTemplate (template, tags) {\n if (!template)\n return [];\n var lineHasNonSpace = false;\n var sections = []; // Stack to hold section tokens\n var tokens = []; // Buffer to hold the tokens\n var spaces = []; // Indices of whitespace tokens on the current line\n var hasTag = false; // Is there a {{tag}} on the current line?\n var nonSpace = false; // Is there a non-space char on the current line?\n var indentation = ''; // Tracks indentation for tags that use it\n var tagIndex = 0; // Stores a count of number of tags encountered on a line\n\n // Strips all whitespace tokens array for the current line\n // if there was a {{#tag}} on it and otherwise only space.\n function stripSpace () {\n if (hasTag && !nonSpace) {\n while (spaces.length)\n delete tokens[spaces.pop()];\n } else {\n spaces = [];\n }\n\n hasTag = false;\n nonSpace = false;\n }\n\n var openingTagRe, closingTagRe, closingCurlyRe;\n function compileTags (tagsToCompile) {\n if (typeof tagsToCompile === 'string')\n tagsToCompile = tagsToCompile.split(spaceRe, 2);\n\n if (!isArray(tagsToCompile) || tagsToCompile.length !== 2)\n throw new Error('Invalid tags: ' + tagsToCompile);\n\n openingTagRe = new RegExp(escapeRegExp(tagsToCompile[0]) + '\\\\s*');\n closingTagRe = new RegExp('\\\\s*' + escapeRegExp(tagsToCompile[1]));\n closingCurlyRe = new RegExp('\\\\s*' + escapeRegExp('}' + tagsToCompile[1]));\n }\n\n compileTags(tags || mustache.tags);\n\n var scanner = new Scanner(template);\n\n var start, type, value, chr, token, openSection;\n while (!scanner.eos()) {\n start = scanner.pos;\n\n // Match any text between tags.\n value = scanner.scanUntil(openingTagRe);\n\n if (value) {\n for (var i = 0, valueLength = value.length; i < valueLength; ++i) {\n chr = value.charAt(i);\n\n if (isWhitespace(chr)) {\n spaces.push(tokens.length);\n indentation += chr;\n } else {\n nonSpace = true;\n lineHasNonSpace = true;\n indentation += ' ';\n }\n\n tokens.push([ 'text', chr, start, start + 1 ]);\n start += 1;\n\n // Check for whitespace on the current line.\n if (chr === '\\n') {\n stripSpace();\n indentation = '';\n tagIndex = 0;\n lineHasNonSpace = false;\n }\n }\n }\n\n // Match the opening tag.\n if (!scanner.scan(openingTagRe))\n break;\n\n hasTag = true;\n\n // Get the tag type.\n type = scanner.scan(tagRe) || 'name';\n scanner.scan(whiteRe);\n\n // Get the tag value.\n if (type === '=') {\n value = scanner.scanUntil(equalsRe);\n scanner.scan(equalsRe);\n scanner.scanUntil(closingTagRe);\n } else if (type === '{') {\n value = scanner.scanUntil(closingCurlyRe);\n scanner.scan(curlyRe);\n scanner.scanUntil(closingTagRe);\n type = '&';\n } else {\n value = scanner.scanUntil(closingTagRe);\n }\n\n // Match the closing tag.\n if (!scanner.scan(closingTagRe))\n throw new Error('Unclosed tag at ' + scanner.pos);\n\n if (type == '>') {\n token = [ type, value, start, scanner.pos, indentation, tagIndex, lineHasNonSpace ];\n } else {\n token = [ type, value, start, scanner.pos ];\n }\n tagIndex++;\n tokens.push(token);\n\n if (type === '#' || type === '^') {\n sections.push(token);\n } else if (type === '/') {\n // Check section nesting.\n openSection = sections.pop();\n\n if (!openSection)\n throw new Error('Unopened section \"' + value + '\" at ' + start);\n\n if (openSection[1] !== value)\n throw new Error('Unclosed section \"' + openSection[1] + '\" at ' + start);\n } else if (type === 'name' || type === '{' || type === '&') {\n nonSpace = true;\n } else if (type === '=') {\n // Set the tags for the next time around.\n compileTags(value);\n }\n }\n\n stripSpace();\n\n // Make sure there are no open sections when we're done.\n openSection = sections.pop();\n\n if (openSection)\n throw new Error('Unclosed section \"' + openSection[1] + '\" at ' + scanner.pos);\n\n return nestTokens(squashTokens(tokens));\n}\n\n/**\n * Combines the values of consecutive text tokens in the given `tokens` array\n * to a single token.\n */\nfunction squashTokens (tokens) {\n var squashedTokens = [];\n\n var token, lastToken;\n for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n token = tokens[i];\n\n if (token) {\n if (token[0] === 'text' && lastToken && lastToken[0] === 'text') {\n lastToken[1] += token[1];\n lastToken[3] = token[3];\n } else {\n squashedTokens.push(token);\n lastToken = token;\n }\n }\n }\n\n return squashedTokens;\n}\n\n/**\n * Forms the given array of `tokens` into a nested tree structure where\n * tokens that represent a section have two additional items: 1) an array of\n * all tokens that appear in that section and 2) the index in the original\n * template that represents the end of that section.\n */\nfunction nestTokens (tokens) {\n var nestedTokens = [];\n var collector = nestedTokens;\n var sections = [];\n\n var token, section;\n for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n token = tokens[i];\n\n switch (token[0]) {\n case '#':\n case '^':\n collector.push(token);\n sections.push(token);\n collector = token[4] = [];\n break;\n case '/':\n section = sections.pop();\n section[5] = token[2];\n collector = sections.length > 0 ? sections[sections.length - 1][4] : nestedTokens;\n break;\n default:\n collector.push(token);\n }\n }\n\n return nestedTokens;\n}\n\n/**\n * A simple string scanner that is used by the template parser to find\n * tokens in template strings.\n */\nfunction Scanner (string) {\n this.string = string;\n this.tail = string;\n this.pos = 0;\n}\n\n/**\n * Returns `true` if the tail is empty (end of string).\n */\nScanner.prototype.eos = function eos () {\n return this.tail === '';\n};\n\n/**\n * Tries to match the given regular expression at the current position.\n * Returns the matched text if it can match, the empty string otherwise.\n */\nScanner.prototype.scan = function scan (re) {\n var match = this.tail.match(re);\n\n if (!match || match.index !== 0)\n return '';\n\n var string = match[0];\n\n this.tail = this.tail.substring(string.length);\n this.pos += string.length;\n\n return string;\n};\n\n/**\n * Skips all text until the given regular expression can be matched. Returns\n * the skipped string, which is the entire tail if no match can be made.\n */\nScanner.prototype.scanUntil = function scanUntil (re) {\n var index = this.tail.search(re), match;\n\n switch (index) {\n case -1:\n match = this.tail;\n this.tail = '';\n break;\n case 0:\n match = '';\n break;\n default:\n match = this.tail.substring(0, index);\n this.tail = this.tail.substring(index);\n }\n\n this.pos += match.length;\n\n return match;\n};\n\n/**\n * Represents a rendering context by wrapping a view object and\n * maintaining a reference to the parent context.\n */\nfunction Context (view, parentContext) {\n this.view = view;\n this.cache = { '.': this.view };\n this.parent = parentContext;\n}\n\n/**\n * Creates a new context using the given view with this context\n * as the parent.\n */\nContext.prototype.push = function push (view) {\n return new Context(view, this);\n};\n\n/**\n * Returns the value of the given name in this context, traversing\n * up the context hierarchy if the value is absent in this context's view.\n */\nContext.prototype.lookup = function lookup (name) {\n var cache = this.cache;\n\n var value;\n if (cache.hasOwnProperty(name)) {\n value = cache[name];\n } else {\n var context = this, intermediateValue, names, index, lookupHit = false;\n\n while (context) {\n if (name.indexOf('.') > 0) {\n intermediateValue = context.view;\n names = name.split('.');\n index = 0;\n\n /**\n * Using the dot notion path in `name`, we descend through the\n * nested objects.\n *\n * To be certain that the lookup has been successful, we have to\n * check if the last object in the path actually has the property\n * we are looking for. We store the result in `lookupHit`.\n *\n * This is specially necessary for when the value has been set to\n * `undefined` and we want to avoid looking up parent contexts.\n *\n * In the case where dot notation is used, we consider the lookup\n * to be successful even if the last \"object\" in the path is\n * not actually an object but a primitive (e.g., a string, or an\n * integer), because it is sometimes useful to access a property\n * of an autoboxed primitive, such as the length of a string.\n **/\n while (intermediateValue != null && index < names.length) {\n if (index === names.length - 1)\n lookupHit = (\n hasProperty(intermediateValue, names[index])\n || primitiveHasOwnProperty(intermediateValue, names[index])\n );\n\n intermediateValue = intermediateValue[names[index++]];\n }\n } else {\n intermediateValue = context.view[name];\n\n /**\n * Only checking against `hasProperty`, which always returns `false` if\n * `context.view` is not an object. Deliberately omitting the check\n * against `primitiveHasOwnProperty` if dot notation is not used.\n *\n * Consider this example:\n * ```\n * Mustache.render(\"The length of a football field is {{#length}}{{length}}{{/length}}.\", {length: \"100 yards\"})\n * ```\n *\n * If we were to check also against `primitiveHasOwnProperty`, as we do\n * in the dot notation case, then render call would return:\n *\n * \"The length of a football field is 9.\"\n *\n * rather than the expected:\n *\n * \"The length of a football field is 100 yards.\"\n **/\n lookupHit = hasProperty(context.view, name);\n }\n\n if (lookupHit) {\n value = intermediateValue;\n break;\n }\n\n context = context.parent;\n }\n\n cache[name] = value;\n }\n\n if (isFunction(value))\n value = value.call(this.view);\n\n return value;\n};\n\n/**\n * A Writer knows how to take a stream of tokens and render them to a\n * string, given a context. It also maintains a cache of templates to\n * avoid the need to parse the same template twice.\n */\nfunction Writer () {\n this.templateCache = {\n _cache: {},\n set: function set (key, value) {\n this._cache[key] = value;\n },\n get: function get (key) {\n return this._cache[key];\n },\n clear: function clear () {\n this._cache = {};\n }\n };\n}\n\n/**\n * Clears all cached templates in this writer.\n */\nWriter.prototype.clearCache = function clearCache () {\n if (typeof this.templateCache !== 'undefined') {\n this.templateCache.clear();\n }\n};\n\n/**\n * Parses and caches the given `template` according to the given `tags` or\n * `mustache.tags` if `tags` is omitted, and returns the array of tokens\n * that is generated from the parse.\n */\nWriter.prototype.parse = function parse (template, tags) {\n var cache = this.templateCache;\n var cacheKey = template + ':' + (tags || mustache.tags).join(':');\n var isCacheEnabled = typeof cache !== 'undefined';\n var tokens = isCacheEnabled ? cache.get(cacheKey) : undefined;\n\n if (tokens == undefined) {\n tokens = parseTemplate(template, tags);\n isCacheEnabled && cache.set(cacheKey, tokens);\n }\n return tokens;\n};\n\n/**\n * High-level method that is used to render the given `template` with\n * the given `view`.\n *\n * The optional `partials` argument may be an object that contains the\n * names and templates of partials that are used in the template. It may\n * also be a function that is used to load partial templates on the fly\n * that takes a single argument: the name of the partial.\n *\n * If the optional `config` argument is given here, then it should be an\n * object with a `tags` attribute or an `escape` attribute or both.\n * If an array is passed, then it will be interpreted the same way as\n * a `tags` attribute on a `config` object.\n *\n * The `tags` attribute of a `config` object must be an array with two\n * string values: the opening and closing tags used in the template (e.g.\n * [ \"<%\", \"%>\" ]). The default is to mustache.tags.\n *\n * The `escape` attribute of a `config` object must be a function which\n * accepts a string as input and outputs a safely escaped string.\n * If an `escape` function is not provided, then an HTML-safe string\n * escaping function is used as the default.\n */\nWriter.prototype.render = function render (template, view, partials, config) {\n var tags = this.getConfigTags(config);\n var tokens = this.parse(template, tags);\n var context = (view instanceof Context) ? view : new Context(view, undefined);\n return this.renderTokens(tokens, context, partials, template, config);\n};\n\n/**\n * Low-level method that renders the given array of `tokens` using\n * the given `context` and `partials`.\n *\n * Note: The `originalTemplate` is only ever used to extract the portion\n * of the original template that was contained in a higher-order section.\n * If the template doesn't use higher-order sections, this argument may\n * be omitted.\n */\nWriter.prototype.renderTokens = function renderTokens (tokens, context, partials, originalTemplate, config) {\n var buffer = '';\n\n var token, symbol, value;\n for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n value = undefined;\n token = tokens[i];\n symbol = token[0];\n\n if (symbol === '#') value = this.renderSection(token, context, partials, originalTemplate, config);\n else if (symbol === '^') value = this.renderInverted(token, context, partials, originalTemplate, config);\n else if (symbol === '>') value = this.renderPartial(token, context, partials, config);\n else if (symbol === '&') value = this.unescapedValue(token, context);\n else if (symbol === 'name') value = this.escapedValue(token, context, config);\n else if (symbol === 'text') value = this.rawValue(token);\n\n if (value !== undefined)\n buffer += value;\n }\n\n return buffer;\n};\n\nWriter.prototype.renderSection = function renderSection (token, context, partials, originalTemplate, config) {\n var self = this;\n var buffer = '';\n var value = context.lookup(token[1]);\n\n // This function is used to render an arbitrary template\n // in the current context by higher-order sections.\n function subRender (template) {\n return self.render(template, context, partials, config);\n }\n\n if (!value) return;\n\n if (isArray(value)) {\n for (var j = 0, valueLength = value.length; j < valueLength; ++j) {\n buffer += this.renderTokens(token[4], context.push(value[j]), partials, originalTemplate, config);\n }\n } else if (typeof value === 'object' || typeof value === 'string' || typeof value === 'number') {\n buffer += this.renderTokens(token[4], context.push(value), partials, originalTemplate, config);\n } else if (isFunction(value)) {\n if (typeof originalTemplate !== 'string')\n throw new Error('Cannot use higher-order sections without the original template');\n\n // Extract the portion of the original template that the section contains.\n value = value.call(context.view, originalTemplate.slice(token[3], token[5]), subRender);\n\n if (value != null)\n buffer += value;\n } else {\n buffer += this.renderTokens(token[4], context, partials, originalTemplate, config);\n }\n return buffer;\n};\n\nWriter.prototype.renderInverted = function renderInverted (token, context, partials, originalTemplate, config) {\n var value = context.lookup(token[1]);\n\n // Use JavaScript's definition of falsy. Include empty arrays.\n // See https://github.com/janl/mustache.js/issues/186\n if (!value || (isArray(value) && value.length === 0))\n return this.renderTokens(token[4], context, partials, originalTemplate, config);\n};\n\nWriter.prototype.indentPartial = function indentPartial (partial, indentation, lineHasNonSpace) {\n var filteredIndentation = indentation.replace(/[^ \\t]/g, '');\n var partialByNl = partial.split('\\n');\n for (var i = 0; i < partialByNl.length; i++) {\n if (partialByNl[i].length && (i > 0 || !lineHasNonSpace)) {\n partialByNl[i] = filteredIndentation + partialByNl[i];\n }\n }\n return partialByNl.join('\\n');\n};\n\nWriter.prototype.renderPartial = function renderPartial (token, context, partials, config) {\n if (!partials) return;\n var tags = this.getConfigTags(config);\n\n var value = isFunction(partials) ? partials(token[1]) : partials[token[1]];\n if (value != null) {\n var lineHasNonSpace = token[6];\n var tagIndex = token[5];\n var indentation = token[4];\n var indentedValue = value;\n if (tagIndex == 0 && indentation) {\n indentedValue = this.indentPartial(value, indentation, lineHasNonSpace);\n }\n var tokens = this.parse(indentedValue, tags);\n return this.renderTokens(tokens, context, partials, indentedValue, config);\n }\n};\n\nWriter.prototype.unescapedValue = function unescapedValue (token, context) {\n var value = context.lookup(token[1]);\n if (value != null)\n return value;\n};\n\nWriter.prototype.escapedValue = function escapedValue (token, context, config) {\n var escape = this.getConfigEscape(config) || mustache.escape;\n var value = context.lookup(token[1]);\n if (value != null)\n return (typeof value === 'number' && escape === mustache.escape) ? String(value) : escape(value);\n};\n\nWriter.prototype.rawValue = function rawValue (token) {\n return token[1];\n};\n\nWriter.prototype.getConfigTags = function getConfigTags (config) {\n if (isArray(config)) {\n return config;\n }\n else if (config && typeof config === 'object') {\n return config.tags;\n }\n else {\n return undefined;\n }\n};\n\nWriter.prototype.getConfigEscape = function getConfigEscape (config) {\n if (config && typeof config === 'object' && !isArray(config)) {\n return config.escape;\n }\n else {\n return undefined;\n }\n};\n\nvar mustache = {\n name: 'mustache.js',\n version: '4.2.0',\n tags: [ '{{', '}}' ],\n clearCache: undefined,\n escape: undefined,\n parse: undefined,\n render: undefined,\n Scanner: undefined,\n Context: undefined,\n Writer: undefined,\n /**\n * Allows a user to override the default caching strategy, by providing an\n * object with set, get and clear methods. This can also be used to disable\n * the cache by setting it to the literal `undefined`.\n */\n set templateCache (cache) {\n defaultWriter.templateCache = cache;\n },\n /**\n * Gets the default or overridden caching object from the default writer.\n */\n get templateCache () {\n return defaultWriter.templateCache;\n }\n};\n\n// All high-level mustache.* functions use this writer.\nvar defaultWriter = new Writer();\n\n/**\n * Clears all cached templates in the default writer.\n */\nmustache.clearCache = function clearCache () {\n return defaultWriter.clearCache();\n};\n\n/**\n * Parses and caches the given template in the default writer and returns the\n * array of tokens it contains. Doing this ahead of time avoids the need to\n * parse templates on the fly as they are rendered.\n */\nmustache.parse = function parse (template, tags) {\n return defaultWriter.parse(template, tags);\n};\n\n/**\n * Renders the `template` with the given `view`, `partials`, and `config`\n * using the default writer.\n */\nmustache.render = function render (template, view, partials, config) {\n if (typeof template !== 'string') {\n throw new TypeError('Invalid template! Template should be a \"string\" ' +\n 'but \"' + typeStr(template) + '\" was given as the first ' +\n 'argument for mustache#render(template, view, partials)');\n }\n\n return defaultWriter.render(template, view, partials, config);\n};\n\n// Export the escaping function so that the user may override it.\n// See https://github.com/janl/mustache.js/issues/244\nmustache.escape = escapeHtml;\n\n// Export these mainly for testing, but also for advanced usage.\nmustache.Scanner = Scanner;\nmustache.Context = Context;\nmustache.Writer = Writer;\n\nexport default mustache;\n","import { useCallback, useContext } from \"react\";\nimport mustache from \"mustache\";\nimport { DocViewerContext } from \"../store/DocViewerProvider\";\nimport { defaultLanguage, locales } from \"../i18n\";\n\nexport const useTranslation = () => {\n const {\n state: { language },\n } = useContext(DocViewerContext);\n\n const defaultTranslations = locales[defaultLanguage];\n\n const t = useCallback(\n (\n key: keyof typeof defaultTranslations,\n variables?: Record<string, string | number>,\n ) => {\n const translations = locales[language];\n\n if (translations[key]) {\n return mustache.render(translations[key], variables);\n }\n\n if (defaultTranslations[key]) {\n return mustache.render(defaultTranslations[key], variables);\n }\n\n return key;\n },\n [language, defaultTranslations],\n );\n\n return {\n t,\n };\n};\n","'use client'\n\nimport { useContext } from 'react'\nimport styled from 'styled-components'\nimport { DocViewerContext } from '../store/DocViewerProvider'\nimport { nextDocument, previousDocument } from '../store/actions'\nimport { ButtonSecondary } from './common/Button'\nimport { NextDocIcon, PrevDocIcon } from './icons'\nimport { useTranslation } from '../hooks/useTranslation'\nimport type { IStyledProps } from 'src/models'\n\nexport const DocumentNav: React.FC = () => {\n const {\n state: { currentDocument, currentFileNo, documents },\n dispatch,\n } = useContext(DocViewerContext)\n const { t } = useTranslation()\n\n if (documents.length <= 1 || !currentDocument) return null\n\n let fileName = currentDocument.uri || ''\n const splitURL = fileName?.split('/')\n if (splitURL.length) {\n fileName = splitURL[splitURL.length - 1] || ''\n }\n\n return (\n <Container id='doc-nav'>\n <p id='doc-nav-info'>\n {t('documentNavInfo', {\n currentFileNo: currentFileNo + 1,\n allFilesCount: documents.length,\n })}\n </p>\n\n <ButtonPrev id='doc-nav-prev' onClick={() => dispatch(previousDocument())} disabled={currentFileNo === 0}>\n <PrevDocIcon color='#fff' size='60%' />\n </ButtonPrev>\n\n <ButtonNext\n id='doc-nav-next'\n onClick={() => dispatch(nextDocument())}\n disabled={currentFileNo >= documents.length - 1}\n >\n <NextDocIcon color='#fff' size='60%' />\n </ButtonNext>\n </Container>\n )\n}\n\nconst Container = styled.div`\n min-width: 150px;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-end;\n margin: 0 10px;\n color: ${(props: IStyledProps) => props.theme.textPrimary};\n`\n\nconst ButtonPrev = styled(ButtonSecondary)`\n width: 30px;\n height: 30px;\n margin: 0 5px 0 10px;\n\n @media (max-width: 768px) {\n width: 25px;\n height: 25px;\n }\n`\nconst ButtonNext = styled(ButtonPrev)`\n margin: 0 5px;\n`\n","import { type IDocument } from '..'\n\nexport const getFileName = (document: IDocument | undefined, retainURLParams: boolean): string => {\n if (!document) {\n return ''\n }\n\n let fileName = ''\n\n if (document.fileName) {\n fileName = document.fileName\n } else {\n fileName = document.uri || ''\n fileName = decodeURI(fileName)\n\n if (!retainURLParams) {\n fileName = fileName?.split('?')?.[0] || ''\n }\n\n const splitURL = fileName?.split('/')\n if (splitURL.length) {\n fileName = splitURL[splitURL.length - 1] || ''\n }\n }\n\n return fileName\n}\n","'use client'\n\nimport { type FC, useContext } from 'react'\nimport styled from 'styled-components'\nimport { DocViewerContext } from '../store/DocViewerProvider'\n\nimport { getFileName } from '../utils/getFileName'\nimport type { IStyledProps } from 'src/models'\n\nexport const FileName: FC = () => {\n const {\n state: { config, currentDocument },\n } = useContext(DocViewerContext)\n\n if (!currentDocument || config?.header?.disableFileName) return null\n\n const fileName = getFileName(currentDocument, config?.header?.retainURLParams || false)\n\n return (\n <Container id='file-name' data-testid='file-name'>\n {fileName}\n </Container>\n )\n}\n\nconst Container = styled.div`\n flex: 1;\n text-align: left;\n color: ${(props: IStyledProps) => props.theme.textPrimary};\n font-weight: bold;\n margin: 0 10px;\n overflow: hidden;\n`\n","'use client'\n\nimport { type FC, useContext } from 'react'\nimport styled from 'styled-components'\nimport { DocViewerContext } from '../store/DocViewerProvider'\nimport { nextDocument, previousDocument } from '../store/actions'\nimport { DocumentNav } from './DocumentNav'\nimport { FileName } from './FileName'\nimport type { IStyledProps } from 'src/models'\n\nexport const HeaderBar: FC = () => {\n const { state, dispatch } = useContext(DocViewerContext)\n const { config } = state\n\n if (config?.header?.disableHeader) return null\n\n const override = config?.header?.overrideComponent?.(\n state,\n () => dispatch(previousDocument()),\n () => dispatch(nextDocument()),\n )\n\n if (override) {\n return override\n } else {\n return (\n <Container id='header-bar' data-testid='header-bar'>\n <FileName />\n <DocumentNav />\n </Container>\n )\n }\n}\n\nconst Container = styled.div`\n display: flex;\n justify-content: flex-end;\n align-items: center;\n z-index: 1;\n padding: 0 10px;\n background-color: ${(props: IStyledProps) => props.theme.primary};\n font-size: 16px;\n min-height: 50px;\n\n @media (max-width: 768px) {\n min-height: 30px;\n padding: 5px;\n font-size: 10px;\n }\n`\n","export interface FileLoaderFuncProps {\n documentURI: string;\n signal: AbortSignal;\n fileLoaderComplete: FileLoaderComplete;\n headers?: Record<string, string>;\n}\n\nexport type FileLoaderComplete = (fileReader?: FileReader) => void;\nexport type FileLoaderFunction = (props: FileLoaderFuncProps) => void;\n\ntype ReaderTypeFunction = \"dataURL\" | \"arrayBuffer\" | \"binaryString\" | \"text\";\n\ninterface BaseFileLoaderFuncOptions extends FileLoaderFuncProps {\n readerTypeFunction: ReaderTypeFunction;\n}\n\ntype BaseFileLoaderFunction = (props: BaseFileLoaderFuncOptions) => void;\n\nconst _fileLoader: BaseFileLoaderFunction = ({\n documentURI,\n signal,\n fileLoaderComplete,\n readerTypeFunction,\n headers,\n}) => {\n return fetch(documentURI, { signal, headers })\n .then(async (res) => {\n const blob = await res.blob();\n\n const fileReader = new FileReader();\n fileReader.addEventListener(\"loadend\", () =>\n fileLoaderComplete(fileReader),\n );\n\n switch (readerTypeFunction) {\n case \"arrayBuffer\":\n fileReader.readAsArrayBuffer(blob);\n break;\n case \"binaryString\":\n fileReader.readAsBinaryString(blob);\n break;\n case \"dataURL\":\n fileReader.readAsDataURL(blob);\n break;\n case \"text\":\n fileReader.readAsText(blob);\n break;\n\n default:\n break;\n }\n })\n .catch((e) => {\n return e;\n });\n};\n\nexport const arrayBufferFileLoader: FileLoaderFunction = (props) => {\n return _fileLoader({ ...props, readerTypeFunction: \"arrayBuffer\" });\n};\n\nexport const dataURLFileLoader: FileLoaderFunction = (props) => {\n return _fileLoader({ ...props, readerTypeFunction: \"dataURL\" });\n};\n\nexport const textFileLoader: FileLoaderFunction = (props) => {\n return _fileLoader({ ...props, readerTypeFunction: \"text\" });\n};\n\nexport const binaryStringFileLoader: FileLoaderFunction = (props) => {\n return _fileLoader({ ...props, readerTypeFunction: \"binaryString\" });\n};\n\nexport const defaultFileLoader = dataURLFileLoader;\n","import { type Dispatch, useContext, useEffect } from 'react'\nimport { DocViewerContext } from '../store/DocViewerProvider'\nimport { type MainStateActions, setDocumentLoading, updateCurrentDocument } from '../store/actions'\nimport { type IMainState } from '../store/mainStateReducer'\nimport { defaultFileLoader, type FileLoaderComplete, type FileLoaderFuncProps } from '../utils/fileLoaders'\nimport { useRendererSelector } from './useRendererSelector'\nimport type { DocRenderer } from 'src/models'\n\n/**\n * Custom Hook for loading the current document into context\n */\nexport const useDocumentLoader = (): {\n state: IMainState\n dispatch: Dispatch<MainStateActions>\n CurrentRenderer: DocRenderer | null | undefined\n} => {\n const { state, dispatch } = useContext(DocViewerContext)\n const { currentFileNo, currentDocument, prefetchMethod } = state\n\n const { CurrentRenderer } = useRendererSelector()\n\n const documentURI = currentDocument?.uri || ''\n\n useEffect(\n () => {\n if (!currentDocument || currentDocument.fileType !== undefined) return\n\n const controller = new AbortController()\n const { signal } = controller\n\n fetch(documentURI, {\n method: prefetchMethod || documentURI.startsWith('blob:') ? 'GET' : 'HEAD',\n signal,\n headers: state?.requestHeaders,\n })\n .then((response) => {\n const contentTypeRaw = response.headers.get('content-type')\n const contentTypes = contentTypeRaw?.split(';') || []\n const contentType = contentTypes.length ? contentTypes[0] : undefined\n\n dispatch(\n updateCurrentDocument({\n ...currentDocument,\n fileType: contentType || undefined,\n }),\n )\n })\n .catch((error) => {\n if (error?.name !== 'AbortError') {\n throw error\n }\n })\n\n return () => {\n controller.abort()\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [currentFileNo, documentURI, currentDocument],\n )\n\n useEffect(() => {\n if (!currentDocument || CurrentRenderer === undefined) return\n\n const controller = new AbortController()\n const { signal } = controller\n\n const fileLoaderComplete: FileLoaderComplete = (fileReader) => {\n if (!currentDocument || !fileReader) {\n dispatch(setDocumentLoading(false))\n return\n }\n\n const updatedDocument = { ...currentDocument }\n if (fileReader.result !== null) {\n updatedDocument.fileData = fileReader.result\n }\n\n dispatch(updateCurrentDocument(updatedDocument))\n dispatch(setDocumentLoading(false))\n }\n\n const loaderFunctionProps: FileLoaderFuncProps = {\n documentURI,\n signal,\n fileLoaderComplete,\n headers: state?.requestHeaders,\n }\n\n if (CurrentRenderer === null) {\n dispatch(setDocumentLoading(false))\n } else if (CurrentRenderer.fileLoader !== undefined) {\n CurrentRenderer.fileLoader?.(loaderFunctionProps)\n } else {\n defaultFileLoader(loaderFunctionProps)\n }\n\n return () => {\n controller.abort()\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [CurrentRenderer, currentFileNo])\n\n return { state, dispatch, CurrentRenderer }\n}\n","import { useContext, useEffect, useState } from \"react\";\nimport { DocViewerContext } from \"../store/DocViewerProvider\";\nimport type { DocRenderer } from \"src/models\";\n\nexport const useRendererSelector = (): {\n CurrentRenderer: DocRenderer | null | undefined;\n} => {\n const {\n state: { currentDocument, pluginRenderers },\n } = useContext(DocViewerContext);\n\n const [CurrentRenderer, setCurrentRenderer] = useState<\n DocRenderer | null | undefined\n >();\n\n useEffect(() => {\n if (!currentDocument) return;\n\n if (!currentDocument.fileType) {\n setCurrentRenderer(undefined);\n return;\n }\n\n const matchingRenderers: DocRenderer[] = [];\n\n pluginRenderers?.forEach((r) => {\n if (currentDocument.fileType === undefined) return;\n if (r.fileTypes.indexOf(currentDocument.fileType) >= 0) {\n matchingRenderers.push(r);\n }\n });\n\n const [SelectedRenderer] = matchingRenderers.sort(\n (a, b) => b.weight - a.weight,\n );\n\n if (SelectedRenderer && SelectedRenderer !== undefined) {\n setCurrentRenderer(() => SelectedRenderer);\n } else {\n setCurrentRenderer(null);\n }\n }, [currentDocument, pluginRenderers]);\n\n return { CurrentRenderer };\n};\n","'use client'\n\nimport { type FC, type PropsWithChildren, useContext, useEffect, useState } from 'react'\nimport { DocViewerContext } from '../store/DocViewerProvider'\n\nexport const LoadingTimeout: FC<PropsWithChildren> = ({ children }) => {\n const { state } = useContext(DocViewerContext)\n const { config } = state\n const [shouldLoadingRender, setShouldLoadingRender] = useState(\n config?.loadingRenderer?.showLoadingTimeout === false,\n )\n\n useEffect(() => {\n setTimeout(\n () => {\n setShouldLoadingRender(true)\n },\n typeof config?.loadingRenderer?.showLoadingTimeout === 'number'\n ? config.loadingRenderer.showLoadingTimeout\n : 500,\n )\n }, [config?.loadingRenderer?.showLoadingTimeout])\n\n if (!shouldLoadingRender) {\n return null\n }\n\n return <>{children}</>\n}\n","'use client'\n\nimport { type FC, useCallback } from 'react'\nimport styled, { keyframes } from 'styled-components'\nimport { setRendererRect } from '../store/actions'\nimport type { DocRenderer, IConfig, IDocument, IStyledProps } from '../models'\nimport { getFileName } from '../utils/getFileName'\nimport { useDocumentLoader } from '../hooks/useDocumentLoader'\nimport { useWindowSize } from '../hooks/useWindowSize'\nimport { LinkButton } from './common'\nimport { LoadingIcon } from './icons'\nimport { LoadingTimeout } from './LoadingTimout'\nimport { useTranslation } from '../hooks/useTranslation'\nimport type { IMainState } from '../store/mainStateReducer'\n\ntype ContentsProps = {\n documents: IDocument[]\n documentLoading: boolean | undefined\n config: IConfig | undefined\n currentDocument: IDocument | undefined\n fileName: string\n CurrentRenderer: DocRenderer | null | undefined\n state: IMainState\n t: (\n key:\n | 'noRendererMessage'\n | 'documentNavInfo'\n | 'downloadButtonLabel'\n | 'brokenFile'\n | 'msgPluginRecipients'\n | 'msgPluginSender'\n | 'pdfPluginLoading'\n | 'pdfPluginPageNumber',\n variables?: Record<string, string | number>,\n ) => string\n}\n\nconst Contents: React.FC<ContentsProps> = ({\n documents,\n documentLoading,\n config,\n currentDocument,\n fileName,\n CurrentRenderer,\n state,\n t,\n}) => {\n if (!documents.length) {\n return <div id='no-documents'></div>\n } else if (documentLoading) {\n if (config && config?.loadingRenderer?.overrideComponent) {\n const OverrideComponent = config.loadingRenderer.overrideComponent\n return (\n <LoadingTimeout>\n <OverrideComponent document={currentDocument} fileName={fileName} />\n </LoadingTimeout>\n )\n }\n\n return (\n <LoadingTimeout>\n <LoadingContainer id='loading-renderer' data-testid='loading-renderer'>\n <LoadingIconContainer>\n <LoadingIcon color='#444' size={40} />\n </LoadingIconContainer>\n </LoadingContainer>\n </LoadingTimeout>\n )\n } else {\n if (CurrentRenderer) {\n return <CurrentRenderer mainState={state} />\n } else if (CurrentRenderer === undefined) {\n return null\n } else {\n if (config && config?.noRenderer?.overrideComponent) {\n const OverrideComponent = config.noRenderer.overrideComponent\n return <OverrideComponent document={currentDocument} fileName={fileName} />\n }\n\n return (\n <div id='no-renderer' data-testid='no-renderer'>\n {t('noRendererMessage', {\n fileType: currentDocument?.fileType ?? '',\n })}\n <DownloadButton\n id='no-renderer-download'\n href={currentDocument?.uri}\n download={currentDocument?.uri}\n >\n {t('downloadButtonLabel')}\n </DownloadButton>\n </div>\n )\n }\n }\n}\n\nexport const ProxyRenderer: FC = () => {\n const { state, dispatch, CurrentRenderer } = useDocumentLoader()\n const { documents, documentLoading, currentDocument, config } = state\n const size = useWindowSize()\n const { t } = useTranslation()\n\n const containerRef = useCallback(\n (node: HTMLDivElement) => {\n node && dispatch(setRendererRect(node?.getBoundingClientRect()))\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [size, dispatch],\n )\n\n const fileName = getFileName(currentDocument, config?.header?.retainURLParams || false)\n\n return (\n <div id='proxy-renderer' data-testid='proxy-renderer' ref={containerRef}>\n <Contents\n {...{\n state,\n documents,\n documentLoading,\n config,\n currentDocument,\n fileName,\n CurrentRenderer,\n t,\n }}\n />\n </div>\n )\n}\n\nconst LoadingContainer = styled.div`\n display: flex;\n flex: 1;\n height: 75px;\n align-items: center;\n justify-content: center;\n`\n\nconst spinAnim = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n`\n\nconst LoadingIconContainer = styled.div`\n animation-name: ${spinAnim};\n animation-duration: 4s;\n animation-timing-function: linear;\n animation-iteration-count: infinite;\n`\n\nconst DownloadButton = styled(LinkButton)`\n width: 130px;\n height: 30px;\n background-color: ${(props: IStyledProps) => props.theme.primary};\n @media (max-width: 768px) {\n width: 125px;\n height: 25px;\n }\n`\n","import { useEffect, useState } from \"react\";\n\nexport const useWindowSize = () => {\n const [windowSize, setWindowSize] = useState<{\n width: number | undefined;\n height: number | undefined;\n }>({\n width: undefined,\n height: undefined,\n });\n\n useEffect(() => {\n function handleResize() {\n setWindowSize({\n width: window.innerWidth,\n height: window.innerHeight,\n });\n }\n\n window.addEventListener(\"resize\", handleResize);\n handleResize();\n\n return () => window.removeEventListener(\"resize\", handleResize);\n }, []);\n\n return windowSize;\n};\n","import type { ITheme } from 'src'\n\nexport const defaultTheme: ITheme = {\n primary: '#fff',\n secondary: '#000',\n tertiary: '#ffffff99',\n textPrimary: '#000',\n textSecondary: '#fff',\n textTertiary: '#00000044',\n disableThemeScrollbar: false,\n}\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport type { DocRenderer } from '../..'\n\nconst ImageProxyRenderer: DocRenderer = (props) => {\n const {\n mainState: { currentDocument },\n children,\n } = props;\n\n if (!currentDocument) return null;\n\n return (\n <Container id=\"image-renderer\" {...props}>\n {children || (\n <Img id=\"image-img\" src={currentDocument.fileData as string} />\n )}\n </Container>\n );\n};\n\nexport default ImageProxyRenderer;\n\nImageProxyRenderer.fileTypes = [];\nImageProxyRenderer.weight = 0;\n\nconst Container = styled.div`\n display: flex;\n flex: 1;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n background-color: #fff;\n`;\n\nconst Img = styled.img`\n max-width: 95%;\n max-height: 95%;\n`;\n","import React from \"react\";\nimport type { DocRenderer } from '../..'\nimport ImageProxyRenderer from \"../image\";\n\nconst BMPRenderer: DocRenderer = (props) => <ImageProxyRenderer {...props} />;\nBMPRenderer.fileTypes = [\"bmp\", \"image/bmp\"];\nBMPRenderer.weight = 0;\n\nexport default BMPRenderer;\n","import React, { useEffect } from \"react\";\nimport styled from \"styled-components\";\nimport type { DocRenderer, IStyledProps } from '../..'\nimport { dataURLFileLoader } from \"../../utils/fileLoaders\";\n\nconst HTMLRenderer: DocRenderer = ({ mainState: { currentDocument } }) => {\n useEffect(() => {\n const b64String = currentDocument?.fileData as string;\n\n let encoding = \"\";\n const bodyBase64 =\n b64String?.replace(\n /^data:text\\/html;(?:charset=([^;]*);)?base64,/,\n (_, charset) => {\n encoding = charset;\n return \"\";\n },\n ) || \"\";\n let body: string = window.atob(bodyBase64);\n\n if (encoding) {\n // decode charset\n const buffer = new Uint8Array(body.length);\n for (let i = 0; i < body.length; i++) buffer[i] = body.charCodeAt(i);\n body = new TextDecoder(encoding).decode(buffer);\n }\n\n const iframeCont = document.getElementById(\n \"html-body\",\n ) as HTMLIFrameElement | null;\n\n const iframe = iframeCont?.contentWindow && iframeCont.contentWindow;\n if (!iframe) return;\n\n const iframeDoc = iframe.document;\n iframeDoc.open();\n iframeDoc.write(`${body}`);\n iframeDoc.close();\n }, [currentDocument]);\n\n return (\n <Container id=\"html-renderer\">\n <BodyIFrame id=\"html-body\" sandbox=\"allow-same-origin\" />\n </Container>\n );\n};\n\nexport default HTMLRenderer;\n\nHTMLRenderer.fileTypes = [\"htm\", \"html\", \"text/htm\", \"text/html\"];\nHTMLRenderer.weight = 0;\nHTMLRenderer.fileLoader = dataURLFileLoader;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n width: 100%;\n padding: 0 30px;\n`;\n\nconst BodyIFrame = styled.iframe`\n height: 100%;\n padding: 15px;\n margin: 20px 0 20px 0;\n border: 1px solid ${(props: IStyledProps) => props.theme.secondary};\n`;\n","import React from 'react'\nimport ImageProxyRenderer from '../image'\nimport type { DocRenderer } from 'src/models'\n\nconst JPGRenderer: DocRenderer = (props) => <ImageProxyRenderer {...props} />\n\nJPGRenderer.fileTypes = ['jpg', 'jpeg', 'image/jpg', 'image/jpeg']\nJPGRenderer.weight = 0\n\nexport default JPGRenderer\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport type { DocRenderer } from '../..'\n\nconst MSDocRenderer: DocRenderer = ({ mainState: { currentDocument } }) => {\n if (!currentDocument) return null;\n\n return (\n <Container id=\"msdoc-renderer\">\n <IFrame\n id=\"msdoc-iframe\"\n title=\"msdoc-iframe\"\n src={`https://view.officeapps.live.com/op/embed.aspx?src=${encodeURIComponent(\n currentDocument.uri,\n )}`}\n frameBorder=\"0\"\n />\n </Container>\n );\n};\n\nexport default MSDocRenderer;\n\nconst MSDocFTMaps = {\n odt: [\"odt\", \"application/vnd.oasis.opendocument.text\"],\n doc: [\"doc\", \"application/msword\"],\n docx: [\n \"docx\",\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\n \"application/octet-stream\",\n ],\n xls: [\"xls\", \"application/vnd.ms-excel\"],\n xlsx: [\n \"xlsx\",\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\n ],\n ppt: [\"ppt\", \"application/vnd.ms-powerpoint\"],\n pptx: [\n \"pptx\",\n \"application/vnd.openxmlformats-officedocument.presentationml.presentation\",\n ],\n};\n\nMSDocRenderer.fileTypes = [\n ...MSDocFTMaps.odt,\n ...MSDocFTMaps.doc,\n ...MSDocFTMaps.docx,\n ...MSDocFTMaps.xls,\n ...MSDocFTMaps.xlsx,\n ...MSDocFTMaps.ppt,\n ...MSDocFTMaps.pptx,\n];\nMSDocRenderer.weight = 0;\nMSDocRenderer.fileLoader = ({ fileLoaderComplete }) => fileLoaderComplete();\n\nconst Container = styled.div`\n width: 100%;\n`;\nconst IFrame = styled.iframe`\n width: 100%;\n height: 100%;\n border: 0;\n`;\n","/**\n * @licstart The following is the entire license notice for the\n * JavaScript code in this page\n *\n * Copyright 2023 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @licend The above is the entire license notice for the\n * JavaScript code in this page\n */\n\n/******/ // The require scope\n/******/ var __webpack_require__ = {};\n/******/ \n/************************************************************************/\n/******/ /* webpack/runtime/define property getters */\n/******/ (() => {\n/******/ \t// define getter functions for harmony exports\n/******/ \t__webpack_require__.d = (exports, definition) => {\n/******/ \t\tfor(var key in definition) {\n/******/ \t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t};\n/******/ })();\n/******/ \n/******/ /* webpack/runtime/hasOwnProperty shorthand */\n/******/ (() => {\n/******/ \t__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))\n/******/ })();\n/******/ \n/************************************************************************/\nvar __webpack_exports__ = globalThis.pdfjsLib = {};\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n AbortException: () => (/* reexport */ AbortException),\n AnnotationEditorLayer: () => (/* reexport */ AnnotationEditorLayer),\n AnnotationEditorParamsType: () => (/* reexport */ AnnotationEditorParamsType),\n AnnotationEditorType: () => (/* reexport */ AnnotationEditorType),\n AnnotationEditorUIManager: () => (/* reexport */ AnnotationEditorUIManager),\n AnnotationLayer: () => (/* reexport */ AnnotationLayer),\n AnnotationMode: () => (/* reexport */ AnnotationMode),\n CMapCompressionType: () => (/* reexport */ CMapCompressionType),\n ColorPicker: () => (/* reexport */ ColorPicker),\n DOMSVGFactory: () => (/* reexport */ DOMSVGFactory),\n DrawLayer: () => (/* reexport */ DrawLayer),\n FeatureTest: () => (/* reexport */ util_FeatureTest),\n GlobalWorkerOptions: () => (/* reexport */ GlobalWorkerOptions),\n ImageKind: () => (/* reexport */ util_ImageKind),\n InvalidPDFException: () => (/* reexport */ InvalidPDFException),\n MissingPDFException: () => (/* reexport */ MissingPDFException),\n OPS: () => (/* reexport */ OPS),\n Outliner: () => (/* reexport */ Outliner),\n PDFDataRangeTransport: () => (/* reexport */ PDFDataRangeTransport),\n PDFDateString: () => (/* reexport */ PDFDateString),\n PDFWorker: () => (/* reexport */ PDFWorker),\n PasswordResponses: () => (/* reexport */ PasswordResponses),\n PermissionFlag: () => (/* reexport */ PermissionFlag),\n PixelsPerInch: () => (/* reexport */ PixelsPerInch),\n RenderingCancelledException: () => (/* reexport */ RenderingCancelledException),\n TextLayer: () => (/* reexport */ TextLayer),\n UnexpectedResponseException: () => (/* reexport */ UnexpectedResponseException),\n Util: () => (/* reexport */ Util),\n VerbosityLevel: () => (/* reexport */ VerbosityLevel),\n XfaLayer: () => (/* reexport */ XfaLayer),\n build: () => (/* reexport */ build),\n createValidAbsoluteUrl: () => (/* reexport */ createValidAbsoluteUrl),\n fetchData: () => (/* reexport */ fetchData),\n getDocument: () => (/* reexport */ getDocument),\n getFilenameFromUrl: () => (/* reexport */ getFilenameFromUrl),\n getPdfFilenameFromUrl: () => (/* reexport */ getPdfFilenameFromUrl),\n getXfaPageViewport: () => (/* reexport */ getXfaPageViewport),\n isDataScheme: () => (/* reexport */ isDataScheme),\n isPdfFile: () => (/* reexport */ isPdfFile),\n noContextMenu: () => (/* reexport */ noContextMenu),\n normalizeUnicode: () => (/* reexport */ normalizeUnicode),\n renderTextLayer: () => (/* reexport */ renderTextLayer),\n setLayerDimensions: () => (/* reexport */ setLayerDimensions),\n shadow: () => (/* reexport */ shadow),\n updateTextLayer: () => (/* reexport */ updateTextLayer),\n version: () => (/* reexport */ version)\n});\n\n;// CONCATENATED MODULE: ./src/shared/util.js\nconst isNodeJS = typeof process === \"object\" && process + \"\" === \"[object process]\" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== \"browser\");\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\nconst MAX_IMAGE_SIZE_TO_CACHE = 10e6;\nconst LINE_FACTOR = 1.35;\nconst LINE_DESCENT_FACTOR = 0.35;\nconst BASELINE_FACTOR = LINE_DESCENT_FACTOR / LINE_FACTOR;\nconst RenderingIntentFlag = {\n ANY: 0x01,\n DISPLAY: 0x02,\n PRINT: 0x04,\n SAVE: 0x08,\n ANNOTATIONS_FORMS: 0x10,\n ANNOTATIONS_STORAGE: 0x20,\n ANNOTATIONS_DISABLE: 0x40,\n OPLIST: 0x100\n};\nconst AnnotationMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_FORMS: 2,\n ENABLE_STORAGE: 3\n};\nconst AnnotationEditorPrefix = \"pdfjs_internal_editor_\";\nconst AnnotationEditorType = {\n DISABLE: -1,\n NONE: 0,\n FREETEXT: 3,\n HIGHLIGHT: 9,\n STAMP: 13,\n INK: 15\n};\nconst AnnotationEditorParamsType = {\n RESIZE: 1,\n CREATE: 2,\n FREETEXT_SIZE: 11,\n FREETEXT_COLOR: 12,\n FREETEXT_OPACITY: 13,\n INK_COLOR: 21,\n INK_THICKNESS: 22,\n INK_OPACITY: 23,\n HIGHLIGHT_COLOR: 31,\n HIGHLIGHT_DEFAULT_COLOR: 32,\n HIGHLIGHT_THICKNESS: 33,\n HIGHLIGHT_FREE: 34,\n HIGHLIGHT_SHOW_ALL: 35\n};\nconst PermissionFlag = {\n PRINT: 0x04,\n MODIFY_CONTENTS: 0x08,\n COPY: 0x10,\n MODIFY_ANNOTATIONS: 0x20,\n FILL_INTERACTIVE_FORMS: 0x100,\n COPY_FOR_ACCESSIBILITY: 0x200,\n ASSEMBLE: 0x400,\n PRINT_HIGH_QUALITY: 0x800\n};\nconst TextRenderingMode = {\n FILL: 0,\n STROKE: 1,\n FILL_STROKE: 2,\n INVISIBLE: 3,\n FILL_ADD_TO_PATH: 4,\n STROKE_ADD_TO_PATH: 5,\n FILL_STROKE_ADD_TO_PATH: 6,\n ADD_TO_PATH: 7,\n FILL_STROKE_MASK: 3,\n ADD_TO_PATH_FLAG: 4\n};\nconst util_ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3\n};\nconst AnnotationType = {\n TEXT: 1,\n LINK: 2,\n FREETEXT: 3,\n LINE: 4,\n SQUARE: 5,\n CIRCLE: 6,\n POLYGON: 7,\n POLYLINE: 8,\n HIGHLIGHT: 9,\n UNDERLINE: 10,\n SQUIGGLY: 11,\n STRIKEOUT: 12,\n STAMP: 13,\n CARET: 14,\n INK: 15,\n POPUP: 16,\n FILEATTACHMENT: 17,\n SOUND: 18,\n MOVIE: 19,\n WIDGET: 20,\n SCREEN: 21,\n PRINTERMARK: 22,\n TRAPNET: 23,\n WATERMARK: 24,\n THREED: 25,\n REDACT: 26\n};\nconst AnnotationReplyType = {\n GROUP: \"Group\",\n REPLY: \"R\"\n};\nconst AnnotationFlag = {\n INVISIBLE: 0x01,\n HIDDEN: 0x02,\n PRINT: 0x04,\n NOZOOM: 0x08,\n NOROTATE: 0x10,\n NOVIEW: 0x20,\n READONLY: 0x40,\n LOCKED: 0x80,\n TOGGLENOVIEW: 0x100,\n LOCKEDCONTENTS: 0x200\n};\nconst AnnotationFieldFlag = {\n READONLY: 0x0000001,\n REQUIRED: 0x0000002,\n NOEXPORT: 0x0000004,\n MULTILINE: 0x0001000,\n PASSWORD: 0x0002000,\n NOTOGGLETOOFF: 0x0004000,\n RADIO: 0x0008000,\n PUSHBUTTON: 0x0010000,\n COMBO: 0x0020000,\n EDIT: 0x0040000,\n SORT: 0x0080000,\n FILESELECT: 0x0100000,\n MULTISELECT: 0x0200000,\n DONOTSPELLCHECK: 0x0400000,\n DONOTSCROLL: 0x0800000,\n COMB: 0x1000000,\n RICHTEXT: 0x2000000,\n RADIOSINUNISON: 0x2000000,\n COMMITONSELCHANGE: 0x4000000\n};\nconst AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5\n};\nconst AnnotationActionEventType = {\n E: \"Mouse Enter\",\n X: \"Mouse Exit\",\n D: \"Mouse Down\",\n U: \"Mouse Up\",\n Fo: \"Focus\",\n Bl: \"Blur\",\n PO: \"PageOpen\",\n PC: \"PageClose\",\n PV: \"PageVisible\",\n PI: \"PageInvisible\",\n K: \"Keystroke\",\n F: \"Format\",\n V: \"Validate\",\n C: \"Calculate\"\n};\nconst DocumentActionEventType = {\n WC: \"WillClose\",\n WS: \"WillSave\",\n DS: \"DidSave\",\n WP: \"WillPrint\",\n DP: \"DidPrint\"\n};\nconst PageActionEventType = {\n O: \"PageOpen\",\n C: \"PageClose\"\n};\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5\n};\nconst CMapCompressionType = {\n NONE: 0,\n BINARY: 1\n};\nconst OPS = {\n dependency: 1,\n setLineWidth: 2,\n setLineCap: 3,\n setLineJoin: 4,\n setMiterLimit: 5,\n setDash: 6,\n setRenderingIntent: 7,\n setFlatness: 8,\n setGState: 9,\n save: 10,\n restore: 11,\n transform: 12,\n moveTo: 13,\n lineTo: 14,\n curveTo: 15,\n curveTo2: 16,\n curveTo3: 17,\n closePath: 18,\n rectangle: 19,\n stroke: 20,\n closeStroke: 21,\n fill: 22,\n eoFill: 23,\n fillStroke: 24,\n eoFillStroke: 25,\n closeFillStroke: 26,\n closeEOFillStroke: 27,\n endPath: 28,\n clip: 29,\n eoClip: 30,\n beginText: 31,\n endText: 32,\n setCharSpacing: 33,\n setWordSpacing: 34,\n setHScale: 35,\n setLeading: 36,\n setFont: 37,\n setTextRenderingMode: 38,\n setTextRise: 39,\n moveText: 40,\n setLeadingMoveText: 41,\n setTextMatrix: 42,\n nextLine: 43,\n showText: 44,\n showSpacedText: 45,\n nextLineShowText: 46,\n nextLineSetSpacingShowText: 47,\n setCharWidth: 48,\n setCharWidthAndBounds: 49,\n setStrokeColorSpace: 50,\n setFillColorSpace: 51,\n setStrokeColor: 52,\n setStrokeColorN: 53,\n setFillColor: 54,\n setFillColorN: 55,\n setStrokeGray: 56,\n setFillGray: 57,\n setStrokeRGBColor: 58,\n setFillRGBColor: 59,\n setStrokeCMYKColor: 60,\n setFillCMYKColor: 61,\n shadingFill: 62,\n beginInlineImage: 63,\n beginImageData: 64,\n endInlineImage: 65,\n paintXObject: 66,\n markPoint: 67,\n markPointProps: 68,\n beginMarkedContent: 69,\n beginMarkedContentProps: 70,\n endMarkedContent: 71,\n beginCompat: 72,\n endCompat: 73,\n paintFormXObjectBegin: 74,\n paintFormXObjectEnd: 75,\n beginGroup: 76,\n endGroup: 77,\n beginAnnotation: 80,\n endAnnotation: 81,\n paintImageMaskXObject: 83,\n paintImageMaskXObjectGroup: 84,\n paintImageXObject: 85,\n paintInlineImageXObject: 86,\n paintInlineImageXObjectGroup: 87,\n paintImageXObjectRepeat: 88,\n paintImageMaskXObjectRepeat: 89,\n paintSolidColorImageMask: 90,\n constructPath: 91\n};\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2\n};\nlet verbosity = VerbosityLevel.WARNINGS;\nfunction setVerbosityLevel(level) {\n if (Number.isInteger(level)) {\n verbosity = level;\n }\n}\nfunction getVerbosityLevel() {\n return verbosity;\n}\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log(`Info: ${msg}`);\n }\n}\nfunction warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n console.log(`Warning: ${msg}`);\n }\n}\nfunction unreachable(msg) {\n throw new Error(msg);\n}\nfunction assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n}\nfunction _isValidProtocol(url) {\n switch (url?.protocol) {\n case \"http:\":\n case \"https:\":\n case \"ftp:\":\n case \"mailto:\":\n case \"tel:\":\n return true;\n default:\n return false;\n }\n}\nfunction createValidAbsoluteUrl(url, baseUrl = null, options = null) {\n if (!url) {\n return null;\n }\n try {\n if (options && typeof url === \"string\") {\n if (options.addDefaultProtocol && url.startsWith(\"www.\")) {\n const dots = url.match(/\\./g);\n if (dots?.length >= 2) {\n url = `http://${url}`;\n }\n }\n if (options.tryConvertEncoding) {\n try {\n url = stringToUTF8String(url);\n } catch {}\n }\n }\n const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch {}\n return null;\n}\nfunction shadow(obj, prop, value, nonSerializable = false) {\n Object.defineProperty(obj, prop, {\n value,\n enumerable: !nonSerializable,\n configurable: true,\n writable: false\n });\n return value;\n}\nconst BaseException = function BaseExceptionClosure() {\n function BaseException(message, name) {\n if (this.constructor === BaseException) {\n unreachable(\"Cannot initialize BaseException.\");\n }\n this.message = message;\n this.name = name;\n }\n BaseException.prototype = new Error();\n BaseException.constructor = BaseException;\n return BaseException;\n}();\nclass PasswordException extends BaseException {\n constructor(msg, code) {\n super(msg, \"PasswordException\");\n this.code = code;\n }\n}\nclass UnknownErrorException extends BaseException {\n constructor(msg, details) {\n super(msg, \"UnknownErrorException\");\n this.details = details;\n }\n}\nclass InvalidPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"InvalidPDFException\");\n }\n}\nclass MissingPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"MissingPDFException\");\n }\n}\nclass UnexpectedResponseException extends BaseException {\n constructor(msg, status) {\n super(msg, \"UnexpectedResponseException\");\n this.status = status;\n }\n}\nclass FormatError extends BaseException {\n constructor(msg) {\n super(msg, \"FormatError\");\n }\n}\nclass AbortException extends BaseException {\n constructor(msg) {\n super(msg, \"AbortException\");\n }\n}\nfunction bytesToString(bytes) {\n if (typeof bytes !== \"object\" || bytes?.length === undefined) {\n unreachable(\"Invalid argument for bytesToString\");\n }\n const length = bytes.length;\n const MAX_ARGUMENT_COUNT = 8192;\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n const strBuf = [];\n for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n const chunk = bytes.subarray(i, chunkEnd);\n strBuf.push(String.fromCharCode.apply(null, chunk));\n }\n return strBuf.join(\"\");\n}\nfunction stringToBytes(str) {\n if (typeof str !== \"string\") {\n unreachable(\"Invalid argument for stringToBytes\");\n }\n const length = str.length;\n const bytes = new Uint8Array(length);\n for (let i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xff;\n }\n return bytes;\n}\nfunction string32(value) {\n return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);\n}\nfunction objectSize(obj) {\n return Object.keys(obj).length;\n}\nfunction objectFromMap(map) {\n const obj = Object.create(null);\n for (const [key, value] of map) {\n obj[key] = value;\n }\n return obj;\n}\nfunction isLittleEndian() {\n const buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return view32[0] === 1;\n}\nfunction isEvalSupported() {\n try {\n new Function(\"\");\n return true;\n } catch {\n return false;\n }\n}\nclass util_FeatureTest {\n static get isLittleEndian() {\n return shadow(this, \"isLittleEndian\", isLittleEndian());\n }\n static get isEvalSupported() {\n return shadow(this, \"isEvalSupported\", isEvalSupported());\n }\n static get isOffscreenCanvasSupported() {\n return shadow(this, \"isOffscreenCanvasSupported\", typeof OffscreenCanvas !== \"undefined\");\n }\n static get platform() {\n if (typeof navigator !== \"undefined\" && typeof navigator?.platform === \"string\") {\n return shadow(this, \"platform\", {\n isMac: navigator.platform.includes(\"Mac\")\n });\n }\n return shadow(this, \"platform\", {\n isMac: false\n });\n }\n static get isCSSRoundSupported() {\n return shadow(this, \"isCSSRoundSupported\", globalThis.CSS?.supports?.(\"width: round(1.5px, 1px)\"));\n }\n}\nconst hexNumbers = Array.from(Array(256).keys(), n => n.toString(16).padStart(2, \"0\"));\nclass Util {\n static makeHexColor(r, g, b) {\n return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`;\n }\n static scaleMinMax(transform, minMax) {\n let temp;\n if (transform[0]) {\n if (transform[0] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[2];\n minMax[2] = temp;\n }\n minMax[0] *= transform[0];\n minMax[2] *= transform[0];\n if (transform[3] < 0) {\n temp = minMax[1];\n minMax[1] = minMax[3];\n minMax[3] = temp;\n }\n minMax[1] *= transform[3];\n minMax[3] *= transform[3];\n } else {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n if (transform[1] < 0) {\n temp = minMax[1];\n minMax[1] = minMax[3];\n minMax[3] = temp;\n }\n minMax[1] *= transform[1];\n minMax[3] *= transform[1];\n if (transform[2] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[2];\n minMax[2] = temp;\n }\n minMax[0] *= transform[2];\n minMax[2] *= transform[2];\n }\n minMax[0] += transform[4];\n minMax[1] += transform[5];\n minMax[2] += transform[4];\n minMax[3] += transform[5];\n }\n static transform(m1, m2) {\n return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]];\n }\n static applyTransform(p, m) {\n const xt = p[0] * m[0] + p[1] * m[2] + m[4];\n const yt = p[0] * m[1] + p[1] * m[3] + m[5];\n return [xt, yt];\n }\n static applyInverseTransform(p, m) {\n const d = m[0] * m[3] - m[1] * m[2];\n const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n return [xt, yt];\n }\n static getAxialAlignedBoundingBox(r, m) {\n const p1 = this.applyTransform(r, m);\n const p2 = this.applyTransform(r.slice(2, 4), m);\n const p3 = this.applyTransform([r[0], r[3]], m);\n const p4 = this.applyTransform([r[2], r[1]], m);\n return [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])];\n }\n static inverseTransform(m) {\n const d = m[0] * m[3] - m[1] * m[2];\n return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];\n }\n static singularValueDecompose2dScale(m) {\n const transpose = [m[0], m[2], m[1], m[3]];\n const a = m[0] * transpose[0] + m[1] * transpose[2];\n const b = m[0] * transpose[1] + m[1] * transpose[3];\n const c = m[2] * transpose[0] + m[3] * transpose[2];\n const d = m[2] * transpose[1] + m[3] * transpose[3];\n const first = (a + d) / 2;\n const second = Math.sqrt((a + d) ** 2 - 4 * (a * d - c * b)) / 2;\n const sx = first + second || 1;\n const sy = first - second || 1;\n return [Math.sqrt(sx), Math.sqrt(sy)];\n }\n static normalizeRect(rect) {\n const r = rect.slice(0);\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n return r;\n }\n static intersect(rect1, rect2) {\n const xLow = Math.max(Math.min(rect1[0], rect1[2]), Math.min(rect2[0], rect2[2]));\n const xHigh = Math.min(Math.max(rect1[0], rect1[2]), Math.max(rect2[0], rect2[2]));\n if (xLow > xHigh) {\n return null;\n }\n const yLow = Math.max(Math.min(rect1[1], rect1[3]), Math.min(rect2[1], rect2[3]));\n const yHigh = Math.min(Math.max(rect1[1], rect1[3]), Math.max(rect2[1], rect2[3]));\n if (yLow > yHigh) {\n return null;\n }\n return [xLow, yLow, xHigh, yHigh];\n }\n static #getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, t, minMax) {\n if (t <= 0 || t >= 1) {\n return;\n }\n const mt = 1 - t;\n const tt = t * t;\n const ttt = tt * t;\n const x = mt * (mt * (mt * x0 + 3 * t * x1) + 3 * tt * x2) + ttt * x3;\n const y = mt * (mt * (mt * y0 + 3 * t * y1) + 3 * tt * y2) + ttt * y3;\n minMax[0] = Math.min(minMax[0], x);\n minMax[1] = Math.min(minMax[1], y);\n minMax[2] = Math.max(minMax[2], x);\n minMax[3] = Math.max(minMax[3], y);\n }\n static #getExtremum(x0, x1, x2, x3, y0, y1, y2, y3, a, b, c, minMax) {\n if (Math.abs(a) < 1e-12) {\n if (Math.abs(b) >= 1e-12) {\n this.#getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, -c / b, minMax);\n }\n return;\n }\n const delta = b ** 2 - 4 * c * a;\n if (delta < 0) {\n return;\n }\n const sqrtDelta = Math.sqrt(delta);\n const a2 = 2 * a;\n this.#getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, (-b + sqrtDelta) / a2, minMax);\n this.#getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, (-b - sqrtDelta) / a2, minMax);\n }\n static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3, minMax) {\n if (minMax) {\n minMax[0] = Math.min(minMax[0], x0, x3);\n minMax[1] = Math.min(minMax[1], y0, y3);\n minMax[2] = Math.max(minMax[2], x0, x3);\n minMax[3] = Math.max(minMax[3], y0, y3);\n } else {\n minMax = [Math.min(x0, x3), Math.min(y0, y3), Math.max(x0, x3), Math.max(y0, y3)];\n }\n this.#getExtremum(x0, x1, x2, x3, y0, y1, y2, y3, 3 * (-x0 + 3 * (x1 - x2) + x3), 6 * (x0 - 2 * x1 + x2), 3 * (x1 - x0), minMax);\n this.#getExtremum(x0, x1, x2, x3, y0, y1, y2, y3, 3 * (-y0 + 3 * (y1 - y2) + y3), 6 * (y0 - 2 * y1 + y2), 3 * (y1 - y0), minMax);\n return minMax;\n }\n}\nconst PDFStringTranslateTable = (/* unused pure expression or super */ null && ([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2d8, 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018, 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d, 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac]));\nfunction stringToPDFString(str) {\n if (str[0] >= \"\\xEF\") {\n let encoding;\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n encoding = \"utf-16be\";\n if (str.length % 2 === 1) {\n str = str.slice(0, -1);\n }\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n encoding = \"utf-16le\";\n if (str.length % 2 === 1) {\n str = str.slice(0, -1);\n }\n } else if (str[0] === \"\\xEF\" && str[1] === \"\\xBB\" && str[2] === \"\\xBF\") {\n encoding = \"utf-8\";\n }\n if (encoding) {\n try {\n const decoder = new TextDecoder(encoding, {\n fatal: true\n });\n const buffer = stringToBytes(str);\n const decoded = decoder.decode(buffer);\n if (!decoded.includes(\"\\x1b\")) {\n return decoded;\n }\n return decoded.replaceAll(/\\x1b[^\\x1b]*(?:\\x1b|$)/g, \"\");\n } catch (ex) {\n warn(`stringToPDFString: \"${ex}\".`);\n }\n }\n }\n const strBuf = [];\n for (let i = 0, ii = str.length; i < ii; i++) {\n const charCode = str.charCodeAt(i);\n if (charCode === 0x1b) {\n while (++i < ii && str.charCodeAt(i) !== 0x1b) {}\n continue;\n }\n const code = PDFStringTranslateTable[charCode];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\n return strBuf.join(\"\");\n}\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\nfunction isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n for (let i = 0, ii = arr1.length; i < ii; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n return true;\n}\nfunction getModificationDate(date = new Date()) {\n const buffer = [date.getUTCFullYear().toString(), (date.getUTCMonth() + 1).toString().padStart(2, \"0\"), date.getUTCDate().toString().padStart(2, \"0\"), date.getUTCHours().toString().padStart(2, \"0\"), date.getUTCMinutes().toString().padStart(2, \"0\"), date.getUTCSeconds().toString().padStart(2, \"0\")];\n return buffer.join(\"\");\n}\nlet NormalizeRegex = null;\nlet NormalizationMap = null;\nfunction normalizeUnicode(str) {\n if (!NormalizeRegex) {\n NormalizeRegex = /([\\u00a0\\u00b5\\u037e\\u0eb3\\u2000-\\u200a\\u202f\\u2126\\ufb00-\\ufb04\\ufb06\\ufb20-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufba1\\ufba4-\\ufba9\\ufbae-\\ufbb1\\ufbd3-\\ufbdc\\ufbde-\\ufbe7\\ufbea-\\ufbf8\\ufbfc-\\ufbfd\\ufc00-\\ufc5d\\ufc64-\\ufcf1\\ufcf5-\\ufd3d\\ufd88\\ufdf4\\ufdfa-\\ufdfb\\ufe71\\ufe77\\ufe79\\ufe7b\\ufe7d]+)|(\\ufb05+)/gu;\n NormalizationMap = new Map([[\"ſt\", \"ſt\"]]);\n }\n return str.replaceAll(NormalizeRegex, (_, p1, p2) => p1 ? p1.normalize(\"NFKC\") : NormalizationMap.get(p2));\n}\nfunction getUuid() {\n if (typeof crypto !== \"undefined\" && typeof crypto?.randomUUID === \"function\") {\n return crypto.randomUUID();\n }\n const buf = new Uint8Array(32);\n if (typeof crypto !== \"undefined\" && typeof crypto?.getRandomValues === \"function\") {\n crypto.getRandomValues(buf);\n } else {\n for (let i = 0; i < 32; i++) {\n buf[i] = Math.floor(Math.random() * 255);\n }\n }\n return bytesToString(buf);\n}\nconst AnnotationPrefix = \"pdfjs_internal_id_\";\nconst FontRenderOps = {\n BEZIER_CURVE_TO: 0,\n MOVE_TO: 1,\n LINE_TO: 2,\n QUADRATIC_CURVE_TO: 3,\n RESTORE: 4,\n SAVE: 5,\n SCALE: 6,\n TRANSFORM: 7,\n TRANSLATE: 8\n};\n\n;// CONCATENATED MODULE: ./src/display/base_factory.js\n\nclass BaseFilterFactory {\n constructor() {\n if (this.constructor === BaseFilterFactory) {\n unreachable(\"Cannot initialize BaseFilterFactory.\");\n }\n }\n addFilter(maps) {\n return \"none\";\n }\n addHCMFilter(fgColor, bgColor) {\n return \"none\";\n }\n addAlphaFilter(map) {\n return \"none\";\n }\n addLuminosityFilter(map) {\n return \"none\";\n }\n addHighlightHCMFilter(filterName, fgColor, bgColor, newFgColor, newBgColor) {\n return \"none\";\n }\n destroy(keepHCM = false) {}\n}\nclass BaseCanvasFactory {\n #enableHWA = false;\n constructor({\n enableHWA = false\n } = {}) {\n if (this.constructor === BaseCanvasFactory) {\n unreachable(\"Cannot initialize BaseCanvasFactory.\");\n }\n this.#enableHWA = enableHWA;\n }\n create(width, height) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n const canvas = this._createCanvas(width, height);\n return {\n canvas,\n context: canvas.getContext(\"2d\", {\n willReadFrequently: !this.#enableHWA\n })\n };\n }\n reset(canvasAndContext, width, height) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n canvasAndContext.canvas.width = width;\n canvasAndContext.canvas.height = height;\n }\n destroy(canvasAndContext) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n canvasAndContext.canvas.width = 0;\n canvasAndContext.canvas.height = 0;\n canvasAndContext.canvas = null;\n canvasAndContext.context = null;\n }\n _createCanvas(width, height) {\n unreachable(\"Abstract method `_createCanvas` called.\");\n }\n}\nclass BaseCMapReaderFactory {\n constructor({\n baseUrl = null,\n isCompressed = true\n }) {\n if (this.constructor === BaseCMapReaderFactory) {\n unreachable(\"Cannot initialize BaseCMapReaderFactory.\");\n }\n this.baseUrl = baseUrl;\n this.isCompressed = isCompressed;\n }\n async fetch({\n name\n }) {\n if (!this.baseUrl) {\n throw new Error('The CMap \"baseUrl\" parameter must be specified, ensure that ' + 'the \"cMapUrl\" and \"cMapPacked\" API parameters are provided.');\n }\n if (!name) {\n throw new Error(\"CMap name must be specified.\");\n }\n const url = this.baseUrl + name + (this.isCompressed ? \".bcmap\" : \"\");\n const compressionType = this.isCompressed ? CMapCompressionType.BINARY : CMapCompressionType.NONE;\n return this._fetchData(url, compressionType).catch(reason => {\n throw new Error(`Unable to load ${this.isCompressed ? \"binary \" : \"\"}CMap at: ${url}`);\n });\n }\n _fetchData(url, compressionType) {\n unreachable(\"Abstract method `_fetchData` called.\");\n }\n}\nclass BaseStandardFontDataFactory {\n constructor({\n baseUrl = null\n }) {\n if (this.constructor === BaseStandardFontDataFactory) {\n unreachable(\"Cannot initialize BaseStandardFontDataFactory.\");\n }\n this.baseUrl = baseUrl;\n }\n async fetch({\n filename\n }) {\n if (!this.baseUrl) {\n throw new Error('The standard font \"baseUrl\" parameter must be specified, ensure that ' + 'the \"standardFontDataUrl\" API parameter is provided.');\n }\n if (!filename) {\n throw new Error(\"Font filename must be specified.\");\n }\n const url = `${this.baseUrl}${filename}`;\n return this._fetchData(url).catch(reason => {\n throw new Error(`Unable to load font data at: ${url}`);\n });\n }\n _fetchData(url) {\n unreachable(\"Abstract method `_fetchData` called.\");\n }\n}\nclass BaseSVGFactory {\n constructor() {\n if (this.constructor === BaseSVGFactory) {\n unreachable(\"Cannot initialize BaseSVGFactory.\");\n }\n }\n create(width, height, skipDimensions = false) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid SVG dimensions\");\n }\n const svg = this._createSVG(\"svg:svg\");\n svg.setAttribute(\"version\", \"1.1\");\n if (!skipDimensions) {\n svg.setAttribute(\"width\", `${width}px`);\n svg.setAttribute(\"height\", `${height}px`);\n }\n svg.setAttribute(\"preserveAspectRatio\", \"none\");\n svg.setAttribute(\"viewBox\", `0 0 ${width} ${height}`);\n return svg;\n }\n createElement(type) {\n if (typeof type !== \"string\") {\n throw new Error(\"Invalid SVG element type\");\n }\n return this._createSVG(type);\n }\n _createSVG(type) {\n unreachable(\"Abstract method `_createSVG` called.\");\n }\n}\n\n;// CONCATENATED MODULE: ./src/display/display_utils.js\n\n\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\nclass PixelsPerInch {\n static CSS = 96.0;\n static PDF = 72.0;\n static PDF_TO_CSS_UNITS = this.CSS / this.PDF;\n}\nclass DOMFilterFactory extends BaseFilterFactory {\n #_cache;\n #_defs;\n #docId;\n #document;\n #_hcmCache;\n #id = 0;\n constructor({\n docId,\n ownerDocument = globalThis.document\n } = {}) {\n super();\n this.#docId = docId;\n this.#document = ownerDocument;\n }\n get #cache() {\n return this.#_cache ||= new Map();\n }\n get #hcmCache() {\n return this.#_hcmCache ||= new Map();\n }\n get #defs() {\n if (!this.#_defs) {\n const div = this.#document.createElement(\"div\");\n const {\n style\n } = div;\n style.visibility = \"hidden\";\n style.contain = \"strict\";\n style.width = style.height = 0;\n style.position = \"absolute\";\n style.top = style.left = 0;\n style.zIndex = -1;\n const svg = this.#document.createElementNS(SVG_NS, \"svg\");\n svg.setAttribute(\"width\", 0);\n svg.setAttribute(\"height\", 0);\n this.#_defs = this.#document.createElementNS(SVG_NS, \"defs\");\n div.append(svg);\n svg.append(this.#_defs);\n this.#document.body.append(div);\n }\n return this.#_defs;\n }\n #createTables(maps) {\n if (maps.length === 1) {\n const mapR = maps[0];\n const buffer = new Array(256);\n for (let i = 0; i < 256; i++) {\n buffer[i] = mapR[i] / 255;\n }\n const table = buffer.join(\",\");\n return [table, table, table];\n }\n const [mapR, mapG, mapB] = maps;\n const bufferR = new Array(256);\n const bufferG = new Array(256);\n const bufferB = new Array(256);\n for (let i = 0; i < 256; i++) {\n bufferR[i] = mapR[i] / 255;\n bufferG[i] = mapG[i] / 255;\n bufferB[i] = mapB[i] / 255;\n }\n return [bufferR.join(\",\"), bufferG.join(\",\"), bufferB.join(\",\")];\n }\n addFilter(maps) {\n if (!maps) {\n return \"none\";\n }\n let value = this.#cache.get(maps);\n if (value) {\n return value;\n }\n const [tableR, tableG, tableB] = this.#createTables(maps);\n const key = maps.length === 1 ? tableR : `${tableR}${tableG}${tableB}`;\n value = this.#cache.get(key);\n if (value) {\n this.#cache.set(maps, value);\n return value;\n }\n const id = `g_${this.#docId}_transfer_map_${this.#id++}`;\n const url = `url(#${id})`;\n this.#cache.set(maps, url);\n this.#cache.set(key, url);\n const filter = this.#createFilter(id);\n this.#addTransferMapConversion(tableR, tableG, tableB, filter);\n return url;\n }\n addHCMFilter(fgColor, bgColor) {\n const key = `${fgColor}-${bgColor}`;\n const filterName = \"base\";\n let info = this.#hcmCache.get(filterName);\n if (info?.key === key) {\n return info.url;\n }\n if (info) {\n info.filter?.remove();\n info.key = key;\n info.url = \"none\";\n info.filter = null;\n } else {\n info = {\n key,\n url: \"none\",\n filter: null\n };\n this.#hcmCache.set(filterName, info);\n }\n if (!fgColor || !bgColor) {\n return info.url;\n }\n const fgRGB = this.#getRGB(fgColor);\n fgColor = Util.makeHexColor(...fgRGB);\n const bgRGB = this.#getRGB(bgColor);\n bgColor = Util.makeHexColor(...bgRGB);\n this.#defs.style.color = \"\";\n if (fgColor === \"#000000\" && bgColor === \"#ffffff\" || fgColor === bgColor) {\n return info.url;\n }\n const map = new Array(256);\n for (let i = 0; i <= 255; i++) {\n const x = i / 255;\n map[i] = x <= 0.03928 ? x / 12.92 : ((x + 0.055) / 1.055) ** 2.4;\n }\n const table = map.join(\",\");\n const id = `g_${this.#docId}_hcm_filter`;\n const filter = info.filter = this.#createFilter(id);\n this.#addTransferMapConversion(table, table, table, filter);\n this.#addGrayConversion(filter);\n const getSteps = (c, n) => {\n const start = fgRGB[c] / 255;\n const end = bgRGB[c] / 255;\n const arr = new Array(n + 1);\n for (let i = 0; i <= n; i++) {\n arr[i] = start + i / n * (end - start);\n }\n return arr.join(\",\");\n };\n this.#addTransferMapConversion(getSteps(0, 5), getSteps(1, 5), getSteps(2, 5), filter);\n info.url = `url(#${id})`;\n return info.url;\n }\n addAlphaFilter(map) {\n let value = this.#cache.get(map);\n if (value) {\n return value;\n }\n const [tableA] = this.#createTables([map]);\n const key = `alpha_${tableA}`;\n value = this.#cache.get(key);\n if (value) {\n this.#cache.set(map, value);\n return value;\n }\n const id = `g_${this.#docId}_alpha_map_${this.#id++}`;\n const url = `url(#${id})`;\n this.#cache.set(map, url);\n this.#cache.set(key, url);\n const filter = this.#createFilter(id);\n this.#addTransferMapAlphaConversion(tableA, filter);\n return url;\n }\n addLuminosityFilter(map) {\n let value = this.#cache.get(map || \"luminosity\");\n if (value) {\n return value;\n }\n let tableA, key;\n if (map) {\n [tableA] = this.#createTables([map]);\n key = `luminosity_${tableA}`;\n } else {\n key = \"luminosity\";\n }\n value = this.#cache.get(key);\n if (value) {\n this.#cache.set(map, value);\n return value;\n }\n const id = `g_${this.#docId}_luminosity_map_${this.#id++}`;\n const url = `url(#${id})`;\n this.#cache.set(map, url);\n this.#cache.set(key, url);\n const filter = this.#createFilter(id);\n this.#addLuminosityConversion(filter);\n if (map) {\n this.#addTransferMapAlphaConversion(tableA, filter);\n }\n return url;\n }\n addHighlightHCMFilter(filterName, fgColor, bgColor, newFgColor, newBgColor) {\n const key = `${fgColor}-${bgColor}-${newFgColor}-${newBgColor}`;\n let info = this.#hcmCache.get(filterName);\n if (info?.key === key) {\n return info.url;\n }\n if (info) {\n info.filter?.remove();\n info.key = key;\n info.url = \"none\";\n info.filter = null;\n } else {\n info = {\n key,\n url: \"none\",\n filter: null\n };\n this.#hcmCache.set(filterName, info);\n }\n if (!fgColor || !bgColor) {\n return info.url;\n }\n const [fgRGB, bgRGB] = [fgColor, bgColor].map(this.#getRGB.bind(this));\n let fgGray = Math.round(0.2126 * fgRGB[0] + 0.7152 * fgRGB[1] + 0.0722 * fgRGB[2]);\n let bgGray = Math.round(0.2126 * bgRGB[0] + 0.7152 * bgRGB[1] + 0.0722 * bgRGB[2]);\n let [newFgRGB, newBgRGB] = [newFgColor, newBgColor].map(this.#getRGB.bind(this));\n if (bgGray < fgGray) {\n [fgGray, bgGray, newFgRGB, newBgRGB] = [bgGray, fgGray, newBgRGB, newFgRGB];\n }\n this.#defs.style.color = \"\";\n const getSteps = (fg, bg, n) => {\n const arr = new Array(256);\n const step = (bgGray - fgGray) / n;\n const newStart = fg / 255;\n const newStep = (bg - fg) / (255 * n);\n let prev = 0;\n for (let i = 0; i <= n; i++) {\n const k = Math.round(fgGray + i * step);\n const value = newStart + i * newStep;\n for (let j = prev; j <= k; j++) {\n arr[j] = value;\n }\n prev = k + 1;\n }\n for (let i = prev; i < 256; i++) {\n arr[i] = arr[prev - 1];\n }\n return arr.join(\",\");\n };\n const id = `g_${this.#docId}_hcm_${filterName}_filter`;\n const filter = info.filter = this.#createFilter(id);\n this.#addGrayConversion(filter);\n this.#addTransferMapConversion(getSteps(newFgRGB[0], newBgRGB[0], 5), getSteps(newFgRGB[1], newBgRGB[1], 5), getSteps(newFgRGB[2], newBgRGB[2], 5), filter);\n info.url = `url(#${id})`;\n return info.url;\n }\n destroy(keepHCM = false) {\n if (keepHCM && this.#hcmCache.size !== 0) {\n return;\n }\n if (this.#_defs) {\n this.#_defs.parentNode.parentNode.remove();\n this.#_defs = null;\n }\n if (this.#_cache) {\n this.#_cache.clear();\n this.#_cache = null;\n }\n this.#id = 0;\n }\n #addLuminosityConversion(filter) {\n const feColorMatrix = this.#document.createElementNS(SVG_NS, \"feColorMatrix\");\n feColorMatrix.setAttribute(\"type\", \"matrix\");\n feColorMatrix.setAttribute(\"values\", \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0.59 0.11 0 0\");\n filter.append(feColorMatrix);\n }\n #addGrayConversion(filter) {\n const feColorMatrix = this.#document.createElementNS(SVG_NS, \"feColorMatrix\");\n feColorMatrix.setAttribute(\"type\", \"matrix\");\n feColorMatrix.setAttribute(\"values\", \"0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0\");\n filter.append(feColorMatrix);\n }\n #createFilter(id) {\n const filter = this.#document.createElementNS(SVG_NS, \"filter\");\n filter.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n filter.setAttribute(\"id\", id);\n this.#defs.append(filter);\n return filter;\n }\n #appendFeFunc(feComponentTransfer, func, table) {\n const feFunc = this.#document.createElementNS(SVG_NS, func);\n feFunc.setAttribute(\"type\", \"discrete\");\n feFunc.setAttribute(\"tableValues\", table);\n feComponentTransfer.append(feFunc);\n }\n #addTransferMapConversion(rTable, gTable, bTable, filter) {\n const feComponentTransfer = this.#document.createElementNS(SVG_NS, \"feComponentTransfer\");\n filter.append(feComponentTransfer);\n this.#appendFeFunc(feComponentTransfer, \"feFuncR\", rTable);\n this.#appendFeFunc(feComponentTransfer, \"feFuncG\", gTable);\n this.#appendFeFunc(feComponentTransfer, \"feFuncB\", bTable);\n }\n #addTransferMapAlphaConversion(aTable, filter) {\n const feComponentTransfer = this.#document.createElementNS(SVG_NS, \"feComponentTransfer\");\n filter.append(feComponentTransfer);\n this.#appendFeFunc(feComponentTransfer, \"feFuncA\", aTable);\n }\n #getRGB(color) {\n this.#defs.style.color = color;\n return getRGB(getComputedStyle(this.#defs).getPropertyValue(\"color\"));\n }\n}\nclass DOMCanvasFactory extends BaseCanvasFactory {\n constructor({\n ownerDocument = globalThis.document,\n enableHWA = false\n } = {}) {\n super({\n enableHWA\n });\n this._document = ownerDocument;\n }\n _createCanvas(width, height) {\n const canvas = this._document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n}\nasync function fetchData(url, type = \"text\") {\n if (isValidFetchUrl(url, document.baseURI)) {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n switch (type) {\n case \"arraybuffer\":\n return response.arrayBuffer();\n case \"blob\":\n return response.blob();\n case \"json\":\n return response.json();\n }\n return response.text();\n }\n return new Promise((resolve, reject) => {\n const request = new XMLHttpRequest();\n request.open(\"GET\", url, true);\n request.responseType = type;\n request.onreadystatechange = () => {\n if (request.readyState !== XMLHttpRequest.DONE) {\n return;\n }\n if (request.status === 200 || request.status === 0) {\n switch (type) {\n case \"arraybuffer\":\n case \"blob\":\n case \"json\":\n resolve(request.response);\n return;\n }\n resolve(request.responseText);\n return;\n }\n reject(new Error(request.statusText));\n };\n request.send(null);\n });\n}\nclass DOMCMapReaderFactory extends BaseCMapReaderFactory {\n _fetchData(url, compressionType) {\n return fetchData(url, this.isCompressed ? \"arraybuffer\" : \"text\").then(data => ({\n cMapData: data instanceof ArrayBuffer ? new Uint8Array(data) : stringToBytes(data),\n compressionType\n }));\n }\n}\nclass DOMStandardFontDataFactory extends BaseStandardFontDataFactory {\n _fetchData(url) {\n return fetchData(url, \"arraybuffer\").then(data => new Uint8Array(data));\n }\n}\nclass DOMSVGFactory extends BaseSVGFactory {\n _createSVG(type) {\n return document.createElementNS(SVG_NS, type);\n }\n}\nclass PageViewport {\n constructor({\n viewBox,\n scale,\n rotation,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false\n }) {\n this.viewBox = viewBox;\n this.scale = scale;\n this.rotation = rotation;\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n const centerX = (viewBox[2] + viewBox[0]) / 2;\n const centerY = (viewBox[3] + viewBox[1]) / 2;\n let rotateA, rotateB, rotateC, rotateD;\n rotation %= 360;\n if (rotation < 0) {\n rotation += 360;\n }\n switch (rotation) {\n case 180:\n rotateA = -1;\n rotateB = 0;\n rotateC = 0;\n rotateD = 1;\n break;\n case 90:\n rotateA = 0;\n rotateB = 1;\n rotateC = 1;\n rotateD = 0;\n break;\n case 270:\n rotateA = 0;\n rotateB = -1;\n rotateC = -1;\n rotateD = 0;\n break;\n case 0:\n rotateA = 1;\n rotateB = 0;\n rotateC = 0;\n rotateD = -1;\n break;\n default:\n throw new Error(\"PageViewport: Invalid rotation, must be a multiple of 90 degrees.\");\n }\n if (dontFlip) {\n rotateC = -rotateC;\n rotateD = -rotateD;\n }\n let offsetCanvasX, offsetCanvasY;\n let width, height;\n if (rotateA === 0) {\n offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;\n width = (viewBox[3] - viewBox[1]) * scale;\n height = (viewBox[2] - viewBox[0]) * scale;\n } else {\n offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;\n width = (viewBox[2] - viewBox[0]) * scale;\n height = (viewBox[3] - viewBox[1]) * scale;\n }\n this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY];\n this.width = width;\n this.height = height;\n }\n get rawDims() {\n const {\n viewBox\n } = this;\n return shadow(this, \"rawDims\", {\n pageWidth: viewBox[2] - viewBox[0],\n pageHeight: viewBox[3] - viewBox[1],\n pageX: viewBox[0],\n pageY: viewBox[1]\n });\n }\n clone({\n scale = this.scale,\n rotation = this.rotation,\n offsetX = this.offsetX,\n offsetY = this.offsetY,\n dontFlip = false\n } = {}) {\n return new PageViewport({\n viewBox: this.viewBox.slice(),\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip\n });\n }\n convertToViewportPoint(x, y) {\n return Util.applyTransform([x, y], this.transform);\n }\n convertToViewportRectangle(rect) {\n const topLeft = Util.applyTransform([rect[0], rect[1]], this.transform);\n const bottomRight = Util.applyTransform([rect[2], rect[3]], this.transform);\n return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]];\n }\n convertToPdfPoint(x, y) {\n return Util.applyInverseTransform([x, y], this.transform);\n }\n}\nclass RenderingCancelledException extends BaseException {\n constructor(msg, extraDelay = 0) {\n super(msg, \"RenderingCancelledException\");\n this.extraDelay = extraDelay;\n }\n}\nfunction isDataScheme(url) {\n const ii = url.length;\n let i = 0;\n while (i < ii && url[i].trim() === \"\") {\n i++;\n }\n return url.substring(i, i + 5).toLowerCase() === \"data:\";\n}\nfunction isPdfFile(filename) {\n return typeof filename === \"string\" && /\\.pdf$/i.test(filename);\n}\nfunction getFilenameFromUrl(url) {\n [url] = url.split(/[#?]/, 1);\n return url.substring(url.lastIndexOf(\"/\") + 1);\n}\nfunction getPdfFilenameFromUrl(url, defaultFilename = \"document.pdf\") {\n if (typeof url !== \"string\") {\n return defaultFilename;\n }\n if (isDataScheme(url)) {\n warn('getPdfFilenameFromUrl: ignore \"data:\"-URL for performance reasons.');\n return defaultFilename;\n }\n const reURI = /^(?:(?:[^:]+:)?\\/\\/[^/]+)?([^?#]*)(\\?[^#]*)?(#.*)?$/;\n const reFilename = /[^/?#=]+\\.pdf\\b(?!.*\\.pdf\\b)/i;\n const splitURI = reURI.exec(url);\n let suggestedFilename = reFilename.exec(splitURI[1]) || reFilename.exec(splitURI[2]) || reFilename.exec(splitURI[3]);\n if (suggestedFilename) {\n suggestedFilename = suggestedFilename[0];\n if (suggestedFilename.includes(\"%\")) {\n try {\n suggestedFilename = reFilename.exec(decodeURIComponent(suggestedFilename))[0];\n } catch {}\n }\n }\n return suggestedFilename || defaultFilename;\n}\nclass StatTimer {\n started = Object.create(null);\n times = [];\n time(name) {\n if (name in this.started) {\n warn(`Timer is already running for ${name}`);\n }\n this.started[name] = Date.now();\n }\n timeEnd(name) {\n if (!(name in this.started)) {\n warn(`Timer has not been started for ${name}`);\n }\n this.times.push({\n name,\n start: this.started[name],\n end: Date.now()\n });\n delete this.started[name];\n }\n toString() {\n const outBuf = [];\n let longest = 0;\n for (const {\n name\n } of this.times) {\n longest = Math.max(name.length, longest);\n }\n for (const {\n name,\n start,\n end\n } of this.times) {\n outBuf.push(`${name.padEnd(longest)} ${end - start}ms\\n`);\n }\n return outBuf.join(\"\");\n }\n}\nfunction isValidFetchUrl(url, baseUrl) {\n try {\n const {\n protocol\n } = baseUrl ? new URL(url, baseUrl) : new URL(url);\n return protocol === \"http:\" || protocol === \"https:\";\n } catch {\n return false;\n }\n}\nfunction noContextMenu(e) {\n e.preventDefault();\n}\nfunction deprecated(details) {\n console.log(\"Deprecated API usage: \" + details);\n}\nlet pdfDateStringRegex;\nclass PDFDateString {\n static toDateObject(input) {\n if (!input || typeof input !== \"string\") {\n return null;\n }\n pdfDateStringRegex ||= new RegExp(\"^D:\" + \"(\\\\d{4})\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"([Z|+|-])?\" + \"(\\\\d{2})?\" + \"'?\" + \"(\\\\d{2})?\" + \"'?\");\n const matches = pdfDateStringRegex.exec(input);\n if (!matches) {\n return null;\n }\n const year = parseInt(matches[1], 10);\n let month = parseInt(matches[2], 10);\n month = month >= 1 && month <= 12 ? month - 1 : 0;\n let day = parseInt(matches[3], 10);\n day = day >= 1 && day <= 31 ? day : 1;\n let hour = parseInt(matches[4], 10);\n hour = hour >= 0 && hour <= 23 ? hour : 0;\n let minute = parseInt(matches[5], 10);\n minute = minute >= 0 && minute <= 59 ? minute : 0;\n let second = parseInt(matches[6], 10);\n second = second >= 0 && second <= 59 ? second : 0;\n const universalTimeRelation = matches[7] || \"Z\";\n let offsetHour = parseInt(matches[8], 10);\n offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0;\n let offsetMinute = parseInt(matches[9], 10) || 0;\n offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0;\n if (universalTimeRelation === \"-\") {\n hour += offsetHour;\n minute += offsetMinute;\n } else if (universalTimeRelation === \"+\") {\n hour -= offsetHour;\n minute -= offsetMinute;\n }\n return new Date(Date.UTC(year, month, day, hour, minute, second));\n }\n}\nfunction getXfaPageViewport(xfaPage, {\n scale = 1,\n rotation = 0\n}) {\n const {\n width,\n height\n } = xfaPage.attributes.style;\n const viewBox = [0, 0, parseInt(width), parseInt(height)];\n return new PageViewport({\n viewBox,\n scale,\n rotation\n });\n}\nfunction getRGB(color) {\n if (color.startsWith(\"#\")) {\n const colorRGB = parseInt(color.slice(1), 16);\n return [(colorRGB & 0xff0000) >> 16, (colorRGB & 0x00ff00) >> 8, colorRGB & 0x0000ff];\n }\n if (color.startsWith(\"rgb(\")) {\n return color.slice(4, -1).split(\",\").map(x => parseInt(x));\n }\n if (color.startsWith(\"rgba(\")) {\n return color.slice(5, -1).split(\",\").map(x => parseInt(x)).slice(0, 3);\n }\n warn(`Not a valid color format: \"${color}\"`);\n return [0, 0, 0];\n}\nfunction getColorValues(colors) {\n const span = document.createElement(\"span\");\n span.style.visibility = \"hidden\";\n document.body.append(span);\n for (const name of colors.keys()) {\n span.style.color = name;\n const computedColor = window.getComputedStyle(span).color;\n colors.set(name, getRGB(computedColor));\n }\n span.remove();\n}\nfunction getCurrentTransform(ctx) {\n const {\n a,\n b,\n c,\n d,\n e,\n f\n } = ctx.getTransform();\n return [a, b, c, d, e, f];\n}\nfunction getCurrentTransformInverse(ctx) {\n const {\n a,\n b,\n c,\n d,\n e,\n f\n } = ctx.getTransform().invertSelf();\n return [a, b, c, d, e, f];\n}\nfunction setLayerDimensions(div, viewport, mustFlip = false, mustRotate = true) {\n if (viewport instanceof PageViewport) {\n const {\n pageWidth,\n pageHeight\n } = viewport.rawDims;\n const {\n style\n } = div;\n const useRound = util_FeatureTest.isCSSRoundSupported;\n const w = `var(--scale-factor) * ${pageWidth}px`,\n h = `var(--scale-factor) * ${pageHeight}px`;\n const widthStr = useRound ? `round(${w}, 1px)` : `calc(${w})`,\n heightStr = useRound ? `round(${h}, 1px)` : `calc(${h})`;\n if (!mustFlip || viewport.rotation % 180 === 0) {\n style.width = widthStr;\n style.height = heightStr;\n } else {\n style.width = heightStr;\n style.height = widthStr;\n }\n }\n if (mustRotate) {\n div.setAttribute(\"data-main-rotation\", viewport.rotation);\n }\n}\n\n;// CONCATENATED MODULE: ./src/display/editor/toolbar.js\n\nclass EditorToolbar {\n #toolbar = null;\n #colorPicker = null;\n #editor;\n #buttons = null;\n constructor(editor) {\n this.#editor = editor;\n }\n render() {\n const editToolbar = this.#toolbar = document.createElement(\"div\");\n editToolbar.className = \"editToolbar\";\n editToolbar.setAttribute(\"role\", \"toolbar\");\n const signal = this.#editor._uiManager._signal;\n editToolbar.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n editToolbar.addEventListener(\"pointerdown\", EditorToolbar.#pointerDown, {\n signal\n });\n const buttons = this.#buttons = document.createElement(\"div\");\n buttons.className = \"buttons\";\n editToolbar.append(buttons);\n const position = this.#editor.toolbarPosition;\n if (position) {\n const {\n style\n } = editToolbar;\n const x = this.#editor._uiManager.direction === \"ltr\" ? 1 - position[0] : position[0];\n style.insetInlineEnd = `${100 * x}%`;\n style.top = `calc(${100 * position[1]}% + var(--editor-toolbar-vert-offset))`;\n }\n this.#addDeleteButton();\n return editToolbar;\n }\n static #pointerDown(e) {\n e.stopPropagation();\n }\n #focusIn(e) {\n this.#editor._focusEventsAllowed = false;\n e.preventDefault();\n e.stopPropagation();\n }\n #focusOut(e) {\n this.#editor._focusEventsAllowed = true;\n e.preventDefault();\n e.stopPropagation();\n }\n #addListenersToElement(element) {\n const signal = this.#editor._uiManager._signal;\n element.addEventListener(\"focusin\", this.#focusIn.bind(this), {\n capture: true,\n signal\n });\n element.addEventListener(\"focusout\", this.#focusOut.bind(this), {\n capture: true,\n signal\n });\n element.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n }\n hide() {\n this.#toolbar.classList.add(\"hidden\");\n this.#colorPicker?.hideDropdown();\n }\n show() {\n this.#toolbar.classList.remove(\"hidden\");\n }\n #addDeleteButton() {\n const button = document.createElement(\"button\");\n button.className = \"delete\";\n button.tabIndex = 0;\n button.setAttribute(\"data-l10n-id\", `pdfjs-editor-remove-${this.#editor.editorType}-button`);\n this.#addListenersToElement(button);\n button.addEventListener(\"click\", e => {\n this.#editor._uiManager.delete();\n }, {\n signal: this.#editor._uiManager._signal\n });\n this.#buttons.append(button);\n }\n get #divider() {\n const divider = document.createElement(\"div\");\n divider.className = \"divider\";\n return divider;\n }\n addAltTextButton(button) {\n this.#addListenersToElement(button);\n this.#buttons.prepend(button, this.#divider);\n }\n addColorPicker(colorPicker) {\n this.#colorPicker = colorPicker;\n const button = colorPicker.renderButton();\n this.#addListenersToElement(button);\n this.#buttons.prepend(button, this.#divider);\n }\n remove() {\n this.#toolbar.remove();\n this.#colorPicker?.destroy();\n this.#colorPicker = null;\n }\n}\nclass HighlightToolbar {\n #buttons = null;\n #toolbar = null;\n #uiManager;\n constructor(uiManager) {\n this.#uiManager = uiManager;\n }\n #render() {\n const editToolbar = this.#toolbar = document.createElement(\"div\");\n editToolbar.className = \"editToolbar\";\n editToolbar.setAttribute(\"role\", \"toolbar\");\n editToolbar.addEventListener(\"contextmenu\", noContextMenu, {\n signal: this.#uiManager._signal\n });\n const buttons = this.#buttons = document.createElement(\"div\");\n buttons.className = \"buttons\";\n editToolbar.append(buttons);\n this.#addHighlightButton();\n return editToolbar;\n }\n #getLastPoint(boxes, isLTR) {\n let lastY = 0;\n let lastX = 0;\n for (const box of boxes) {\n const y = box.y + box.height;\n if (y < lastY) {\n continue;\n }\n const x = box.x + (isLTR ? box.width : 0);\n if (y > lastY) {\n lastX = x;\n lastY = y;\n continue;\n }\n if (isLTR) {\n if (x > lastX) {\n lastX = x;\n }\n } else if (x < lastX) {\n lastX = x;\n }\n }\n return [isLTR ? 1 - lastX : lastX, lastY];\n }\n show(parent, boxes, isLTR) {\n const [x, y] = this.#getLastPoint(boxes, isLTR);\n const {\n style\n } = this.#toolbar ||= this.#render();\n parent.append(this.#toolbar);\n style.insetInlineEnd = `${100 * x}%`;\n style.top = `calc(${100 * y}% + var(--editor-toolbar-vert-offset))`;\n }\n hide() {\n this.#toolbar.remove();\n }\n #addHighlightButton() {\n const button = document.createElement(\"button\");\n button.className = \"highlightButton\";\n button.tabIndex = 0;\n button.setAttribute(\"data-l10n-id\", `pdfjs-highlight-floating-button1`);\n const span = document.createElement(\"span\");\n button.append(span);\n span.className = \"visuallyHidden\";\n span.setAttribute(\"data-l10n-id\", \"pdfjs-highlight-floating-button-label\");\n const signal = this.#uiManager._signal;\n button.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n button.addEventListener(\"click\", () => {\n this.#uiManager.highlightSelection(\"floating_button\");\n }, {\n signal\n });\n this.#buttons.append(button);\n }\n}\n\n;// CONCATENATED MODULE: ./src/display/editor/tools.js\n\n\n\nfunction bindEvents(obj, element, names) {\n for (const name of names) {\n element.addEventListener(name, obj[name].bind(obj));\n }\n}\nfunction opacityToHex(opacity) {\n return Math.round(Math.min(255, Math.max(1, 255 * opacity))).toString(16).padStart(2, \"0\");\n}\nclass IdManager {\n #id = 0;\n get id() {\n return `${AnnotationEditorPrefix}${this.#id++}`;\n }\n}\nclass ImageManager {\n #baseId = getUuid();\n #id = 0;\n #cache = null;\n static get _isSVGFittingCanvas() {\n const svg = `data:image/svg+xml;charset=UTF-8,<svg viewBox=\"0 0 1 1\" width=\"1\" height=\"1\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"1\" height=\"1\" style=\"fill:red;\"/></svg>`;\n const canvas = new OffscreenCanvas(1, 3);\n const ctx = canvas.getContext(\"2d\", {\n willReadFrequently: true\n });\n const image = new Image();\n image.src = svg;\n const promise = image.decode().then(() => {\n ctx.drawImage(image, 0, 0, 1, 1, 0, 0, 1, 3);\n return new Uint32Array(ctx.getImageData(0, 0, 1, 1).data.buffer)[0] === 0;\n });\n return shadow(this, \"_isSVGFittingCanvas\", promise);\n }\n async #get(key, rawData) {\n this.#cache ||= new Map();\n let data = this.#cache.get(key);\n if (data === null) {\n return null;\n }\n if (data?.bitmap) {\n data.refCounter += 1;\n return data;\n }\n try {\n data ||= {\n bitmap: null,\n id: `image_${this.#baseId}_${this.#id++}`,\n refCounter: 0,\n isSvg: false\n };\n let image;\n if (typeof rawData === \"string\") {\n data.url = rawData;\n image = await fetchData(rawData, \"blob\");\n } else {\n image = data.file = rawData;\n }\n if (image.type === \"image/svg+xml\") {\n const mustRemoveAspectRatioPromise = ImageManager._isSVGFittingCanvas;\n const fileReader = new FileReader();\n const imageElement = new Image();\n const imagePromise = new Promise((resolve, reject) => {\n imageElement.onload = () => {\n data.bitmap = imageElement;\n data.isSvg = true;\n resolve();\n };\n fileReader.onload = async () => {\n const url = data.svgUrl = fileReader.result;\n imageElement.src = (await mustRemoveAspectRatioPromise) ? `${url}#svgView(preserveAspectRatio(none))` : url;\n };\n imageElement.onerror = fileReader.onerror = reject;\n });\n fileReader.readAsDataURL(image);\n await imagePromise;\n } else {\n data.bitmap = await createImageBitmap(image);\n }\n data.refCounter = 1;\n } catch (e) {\n console.error(e);\n data = null;\n }\n this.#cache.set(key, data);\n if (data) {\n this.#cache.set(data.id, data);\n }\n return data;\n }\n async getFromFile(file) {\n const {\n lastModified,\n name,\n size,\n type\n } = file;\n return this.#get(`${lastModified}_${name}_${size}_${type}`, file);\n }\n async getFromUrl(url) {\n return this.#get(url, url);\n }\n async getFromId(id) {\n this.#cache ||= new Map();\n const data = this.#cache.get(id);\n if (!data) {\n return null;\n }\n if (data.bitmap) {\n data.refCounter += 1;\n return data;\n }\n if (data.file) {\n return this.getFromFile(data.file);\n }\n return this.getFromUrl(data.url);\n }\n getSvgUrl(id) {\n const data = this.#cache.get(id);\n if (!data?.isSvg) {\n return null;\n }\n return data.svgUrl;\n }\n deleteId(id) {\n this.#cache ||= new Map();\n const data = this.#cache.get(id);\n if (!data) {\n return;\n }\n data.refCounter -= 1;\n if (data.refCounter !== 0) {\n return;\n }\n data.bitmap = null;\n }\n isValidId(id) {\n return id.startsWith(`image_${this.#baseId}_`);\n }\n}\nclass CommandManager {\n #commands = [];\n #locked = false;\n #maxSize;\n #position = -1;\n constructor(maxSize = 128) {\n this.#maxSize = maxSize;\n }\n add({\n cmd,\n undo,\n post,\n mustExec,\n type = NaN,\n overwriteIfSameType = false,\n keepUndo = false\n }) {\n if (mustExec) {\n cmd();\n }\n if (this.#locked) {\n return;\n }\n const save = {\n cmd,\n undo,\n post,\n type\n };\n if (this.#position === -1) {\n if (this.#commands.length > 0) {\n this.#commands.length = 0;\n }\n this.#position = 0;\n this.#commands.push(save);\n return;\n }\n if (overwriteIfSameType && this.#commands[this.#position].type === type) {\n if (keepUndo) {\n save.undo = this.#commands[this.#position].undo;\n }\n this.#commands[this.#position] = save;\n return;\n }\n const next = this.#position + 1;\n if (next === this.#maxSize) {\n this.#commands.splice(0, 1);\n } else {\n this.#position = next;\n if (next < this.#commands.length) {\n this.#commands.splice(next);\n }\n }\n this.#commands.push(save);\n }\n undo() {\n if (this.#position === -1) {\n return;\n }\n this.#locked = true;\n const {\n undo,\n post\n } = this.#commands[this.#position];\n undo();\n post?.();\n this.#locked = false;\n this.#position -= 1;\n }\n redo() {\n if (this.#position < this.#commands.length - 1) {\n this.#position += 1;\n this.#locked = true;\n const {\n cmd,\n post\n } = this.#commands[this.#position];\n cmd();\n post?.();\n this.#locked = false;\n }\n }\n hasSomethingToUndo() {\n return this.#position !== -1;\n }\n hasSomethingToRedo() {\n return this.#position < this.#commands.length - 1;\n }\n destroy() {\n this.#commands = null;\n }\n}\nclass KeyboardManager {\n constructor(callbacks) {\n this.buffer = [];\n this.callbacks = new Map();\n this.allKeys = new Set();\n const {\n isMac\n } = util_FeatureTest.platform;\n for (const [keys, callback, options = {}] of callbacks) {\n for (const key of keys) {\n const isMacKey = key.startsWith(\"mac+\");\n if (isMac && isMacKey) {\n this.callbacks.set(key.slice(4), {\n callback,\n options\n });\n this.allKeys.add(key.split(\"+\").at(-1));\n } else if (!isMac && !isMacKey) {\n this.callbacks.set(key, {\n callback,\n options\n });\n this.allKeys.add(key.split(\"+\").at(-1));\n }\n }\n }\n }\n #serialize(event) {\n if (event.altKey) {\n this.buffer.push(\"alt\");\n }\n if (event.ctrlKey) {\n this.buffer.push(\"ctrl\");\n }\n if (event.metaKey) {\n this.buffer.push(\"meta\");\n }\n if (event.shiftKey) {\n this.buffer.push(\"shift\");\n }\n this.buffer.push(event.key);\n const str = this.buffer.join(\"+\");\n this.buffer.length = 0;\n return str;\n }\n exec(self, event) {\n if (!this.allKeys.has(event.key)) {\n return;\n }\n const info = this.callbacks.get(this.#serialize(event));\n if (!info) {\n return;\n }\n const {\n callback,\n options: {\n bubbles = false,\n args = [],\n checker = null\n }\n } = info;\n if (checker && !checker(self, event)) {\n return;\n }\n callback.bind(self, ...args, event)();\n if (!bubbles) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n}\nclass ColorManager {\n static _colorsMapping = new Map([[\"CanvasText\", [0, 0, 0]], [\"Canvas\", [255, 255, 255]]]);\n get _colors() {\n const colors = new Map([[\"CanvasText\", null], [\"Canvas\", null]]);\n getColorValues(colors);\n return shadow(this, \"_colors\", colors);\n }\n convert(color) {\n const rgb = getRGB(color);\n if (!window.matchMedia(\"(forced-colors: active)\").matches) {\n return rgb;\n }\n for (const [name, RGB] of this._colors) {\n if (RGB.every((x, i) => x === rgb[i])) {\n return ColorManager._colorsMapping.get(name);\n }\n }\n return rgb;\n }\n getHexCode(name) {\n const rgb = this._colors.get(name);\n if (!rgb) {\n return name;\n }\n return Util.makeHexColor(...rgb);\n }\n}\nclass AnnotationEditorUIManager {\n #abortController = new AbortController();\n #activeEditor = null;\n #allEditors = new Map();\n #allLayers = new Map();\n #altTextManager = null;\n #annotationStorage = null;\n #changedExistingAnnotations = null;\n #commandManager = new CommandManager();\n #currentPageIndex = 0;\n #deletedAnnotationsElementIds = new Set();\n #draggingEditors = null;\n #editorTypes = null;\n #editorsToRescale = new Set();\n #enableHighlightFloatingButton = false;\n #filterFactory = null;\n #focusMainContainerTimeoutId = null;\n #highlightColors = null;\n #highlightWhenShiftUp = false;\n #highlightToolbar = null;\n #idManager = new IdManager();\n #isEnabled = false;\n #isWaiting = false;\n #lastActiveElement = null;\n #mainHighlightColorPicker = null;\n #mlManager = null;\n #mode = AnnotationEditorType.NONE;\n #selectedEditors = new Set();\n #selectedTextNode = null;\n #pageColors = null;\n #showAllStates = null;\n #boundBlur = this.blur.bind(this);\n #boundFocus = this.focus.bind(this);\n #boundCopy = this.copy.bind(this);\n #boundCut = this.cut.bind(this);\n #boundPaste = this.paste.bind(this);\n #boundKeydown = this.keydown.bind(this);\n #boundKeyup = this.keyup.bind(this);\n #boundOnEditingAction = this.onEditingAction.bind(this);\n #boundOnPageChanging = this.onPageChanging.bind(this);\n #boundOnScaleChanging = this.onScaleChanging.bind(this);\n #boundOnRotationChanging = this.onRotationChanging.bind(this);\n #previousStates = {\n isEditing: false,\n isEmpty: true,\n hasSomethingToUndo: false,\n hasSomethingToRedo: false,\n hasSelectedEditor: false,\n hasSelectedText: false\n };\n #translation = [0, 0];\n #translationTimeoutId = null;\n #container = null;\n #viewer = null;\n static TRANSLATE_SMALL = 1;\n static TRANSLATE_BIG = 10;\n static get _keyboardManager() {\n const proto = AnnotationEditorUIManager.prototype;\n const arrowChecker = self => self.#container.contains(document.activeElement) && document.activeElement.tagName !== \"BUTTON\" && self.hasSomethingToControl();\n const textInputChecker = (_self, {\n target: el\n }) => {\n if (el instanceof HTMLInputElement) {\n const {\n type\n } = el;\n return type !== \"text\" && type !== \"number\";\n }\n return true;\n };\n const small = this.TRANSLATE_SMALL;\n const big = this.TRANSLATE_BIG;\n return shadow(this, \"_keyboardManager\", new KeyboardManager([[[\"ctrl+a\", \"mac+meta+a\"], proto.selectAll, {\n checker: textInputChecker\n }], [[\"ctrl+z\", \"mac+meta+z\"], proto.undo, {\n checker: textInputChecker\n }], [[\"ctrl+y\", \"ctrl+shift+z\", \"mac+meta+shift+z\", \"ctrl+shift+Z\", \"mac+meta+shift+Z\"], proto.redo, {\n checker: textInputChecker\n }], [[\"Backspace\", \"alt+Backspace\", \"ctrl+Backspace\", \"shift+Backspace\", \"mac+Backspace\", \"mac+alt+Backspace\", \"mac+ctrl+Backspace\", \"Delete\", \"ctrl+Delete\", \"shift+Delete\", \"mac+Delete\"], proto.delete, {\n checker: textInputChecker\n }], [[\"Enter\", \"mac+Enter\"], proto.addNewEditorFromKeyboard, {\n checker: (self, {\n target: el\n }) => !(el instanceof HTMLButtonElement) && self.#container.contains(el) && !self.isEnterHandled\n }], [[\" \", \"mac+ \"], proto.addNewEditorFromKeyboard, {\n checker: (self, {\n target: el\n }) => !(el instanceof HTMLButtonElement) && self.#container.contains(document.activeElement)\n }], [[\"Escape\", \"mac+Escape\"], proto.unselectAll], [[\"ArrowLeft\", \"mac+ArrowLeft\"], proto.translateSelectedEditors, {\n args: [-small, 0],\n checker: arrowChecker\n }], [[\"ctrl+ArrowLeft\", \"mac+shift+ArrowLeft\"], proto.translateSelectedEditors, {\n args: [-big, 0],\n checker: arrowChecker\n }], [[\"ArrowRight\", \"mac+ArrowRight\"], proto.translateSelectedEditors, {\n args: [small, 0],\n checker: arrowChecker\n }], [[\"ctrl+ArrowRight\", \"mac+shift+ArrowRight\"], proto.translateSelectedEditors, {\n args: [big, 0],\n checker: arrowChecker\n }], [[\"ArrowUp\", \"mac+ArrowUp\"], proto.translateSelectedEditors, {\n args: [0, -small],\n checker: arrowChecker\n }], [[\"ctrl+ArrowUp\", \"mac+shift+ArrowUp\"], proto.translateSelectedEditors, {\n args: [0, -big],\n checker: arrowChecker\n }], [[\"ArrowDown\", \"mac+ArrowDown\"], proto.translateSelectedEditors, {\n args: [0, small],\n checker: arrowChecker\n }], [[\"ctrl+ArrowDown\", \"mac+shift+ArrowDown\"], proto.translateSelectedEditors, {\n args: [0, big],\n checker: arrowChecker\n }]]));\n }\n constructor(container, viewer, altTextManager, eventBus, pdfDocument, pageColors, highlightColors, enableHighlightFloatingButton, mlManager) {\n this._signal = this.#abortController.signal;\n this.#container = container;\n this.#viewer = viewer;\n this.#altTextManager = altTextManager;\n this._eventBus = eventBus;\n this._eventBus._on(\"editingaction\", this.#boundOnEditingAction);\n this._eventBus._on(\"pagechanging\", this.#boundOnPageChanging);\n this._eventBus._on(\"scalechanging\", this.#boundOnScaleChanging);\n this._eventBus._on(\"rotationchanging\", this.#boundOnRotationChanging);\n this.#addSelectionListener();\n this.#addDragAndDropListeners();\n this.#addKeyboardManager();\n this.#annotationStorage = pdfDocument.annotationStorage;\n this.#filterFactory = pdfDocument.filterFactory;\n this.#pageColors = pageColors;\n this.#highlightColors = highlightColors || null;\n this.#enableHighlightFloatingButton = enableHighlightFloatingButton;\n this.#mlManager = mlManager || null;\n this.viewParameters = {\n realScale: PixelsPerInch.PDF_TO_CSS_UNITS,\n rotation: 0\n };\n this.isShiftKeyDown = false;\n }\n destroy() {\n this.#abortController?.abort();\n this.#abortController = null;\n this._signal = null;\n this._eventBus._off(\"editingaction\", this.#boundOnEditingAction);\n this._eventBus._off(\"pagechanging\", this.#boundOnPageChanging);\n this._eventBus._off(\"scalechanging\", this.#boundOnScaleChanging);\n this._eventBus._off(\"rotationchanging\", this.#boundOnRotationChanging);\n for (const layer of this.#allLayers.values()) {\n layer.destroy();\n }\n this.#allLayers.clear();\n this.#allEditors.clear();\n this.#editorsToRescale.clear();\n this.#activeEditor = null;\n this.#selectedEditors.clear();\n this.#commandManager.destroy();\n this.#altTextManager?.destroy();\n this.#highlightToolbar?.hide();\n this.#highlightToolbar = null;\n if (this.#focusMainContainerTimeoutId) {\n clearTimeout(this.#focusMainContainerTimeoutId);\n this.#focusMainContainerTimeoutId = null;\n }\n if (this.#translationTimeoutId) {\n clearTimeout(this.#translationTimeoutId);\n this.#translationTimeoutId = null;\n }\n }\n async mlGuess(data) {\n return this.#mlManager?.guess(data) || null;\n }\n get hasMLManager() {\n return !!this.#mlManager;\n }\n get hcmFilter() {\n return shadow(this, \"hcmFilter\", this.#pageColors ? this.#filterFactory.addHCMFilter(this.#pageColors.foreground, this.#pageColors.background) : \"none\");\n }\n get direction() {\n return shadow(this, \"direction\", getComputedStyle(this.#container).direction);\n }\n get highlightColors() {\n return shadow(this, \"highlightColors\", this.#highlightColors ? new Map(this.#highlightColors.split(\",\").map(pair => pair.split(\"=\").map(x => x.trim()))) : null);\n }\n get highlightColorNames() {\n return shadow(this, \"highlightColorNames\", this.highlightColors ? new Map(Array.from(this.highlightColors, e => e.reverse())) : null);\n }\n setMainHighlightColorPicker(colorPicker) {\n this.#mainHighlightColorPicker = colorPicker;\n }\n editAltText(editor) {\n this.#altTextManager?.editAltText(this, editor);\n }\n onPageChanging({\n pageNumber\n }) {\n this.#currentPageIndex = pageNumber - 1;\n }\n focusMainContainer() {\n this.#container.focus();\n }\n findParent(x, y) {\n for (const layer of this.#allLayers.values()) {\n const {\n x: layerX,\n y: layerY,\n width,\n height\n } = layer.div.getBoundingClientRect();\n if (x >= layerX && x <= layerX + width && y >= layerY && y <= layerY + height) {\n return layer;\n }\n }\n return null;\n }\n disableUserSelect(value = false) {\n this.#viewer.classList.toggle(\"noUserSelect\", value);\n }\n addShouldRescale(editor) {\n this.#editorsToRescale.add(editor);\n }\n removeShouldRescale(editor) {\n this.#editorsToRescale.delete(editor);\n }\n onScaleChanging({\n scale\n }) {\n this.commitOrRemove();\n this.viewParameters.realScale = scale * PixelsPerInch.PDF_TO_CSS_UNITS;\n for (const editor of this.#editorsToRescale) {\n editor.onScaleChanging();\n }\n }\n onRotationChanging({\n pagesRotation\n }) {\n this.commitOrRemove();\n this.viewParameters.rotation = pagesRotation;\n }\n #getAnchorElementForSelection({\n anchorNode\n }) {\n return anchorNode.nodeType === Node.TEXT_NODE ? anchorNode.parentElement : anchorNode;\n }\n highlightSelection(methodOfCreation = \"\") {\n const selection = document.getSelection();\n if (!selection || selection.isCollapsed) {\n return;\n }\n const {\n anchorNode,\n anchorOffset,\n focusNode,\n focusOffset\n } = selection;\n const text = selection.toString();\n const anchorElement = this.#getAnchorElementForSelection(selection);\n const textLayer = anchorElement.closest(\".textLayer\");\n const boxes = this.getSelectionBoxes(textLayer);\n if (!boxes) {\n return;\n }\n selection.empty();\n if (this.#mode === AnnotationEditorType.NONE) {\n this._eventBus.dispatch(\"showannotationeditorui\", {\n source: this,\n mode: AnnotationEditorType.HIGHLIGHT\n });\n this.showAllEditors(\"highlight\", true, true);\n }\n for (const layer of this.#allLayers.values()) {\n if (layer.hasTextLayer(textLayer)) {\n layer.createAndAddNewEditor({\n x: 0,\n y: 0\n }, false, {\n methodOfCreation,\n boxes,\n anchorNode,\n anchorOffset,\n focusNode,\n focusOffset,\n text\n });\n break;\n }\n }\n }\n #displayHighlightToolbar() {\n const selection = document.getSelection();\n if (!selection || selection.isCollapsed) {\n return;\n }\n const anchorElement = this.#getAnchorElementForSelection(selection);\n const textLayer = anchorElement.closest(\".textLayer\");\n const boxes = this.getSelectionBoxes(textLayer);\n if (!boxes) {\n return;\n }\n this.#highlightToolbar ||= new HighlightToolbar(this);\n this.#highlightToolbar.show(textLayer, boxes, this.direction === \"ltr\");\n }\n addToAnnotationStorage(editor) {\n if (!editor.isEmpty() && this.#annotationStorage && !this.#annotationStorage.has(editor.id)) {\n this.#annotationStorage.setValue(editor.id, editor);\n }\n }\n #selectionChange() {\n const selection = document.getSelection();\n if (!selection || selection.isCollapsed) {\n if (this.#selectedTextNode) {\n this.#highlightToolbar?.hide();\n this.#selectedTextNode = null;\n this.#dispatchUpdateStates({\n hasSelectedText: false\n });\n }\n return;\n }\n const {\n anchorNode\n } = selection;\n if (anchorNode === this.#selectedTextNode) {\n return;\n }\n const anchorElement = this.#getAnchorElementForSelection(selection);\n const textLayer = anchorElement.closest(\".textLayer\");\n if (!textLayer) {\n if (this.#selectedTextNode) {\n this.#highlightToolbar?.hide();\n this.#selectedTextNode = null;\n this.#dispatchUpdateStates({\n hasSelectedText: false\n });\n }\n return;\n }\n this.#highlightToolbar?.hide();\n this.#selectedTextNode = anchorNode;\n this.#dispatchUpdateStates({\n hasSelectedText: true\n });\n if (this.#mode !== AnnotationEditorType.HIGHLIGHT && this.#mode !== AnnotationEditorType.NONE) {\n return;\n }\n if (this.#mode === AnnotationEditorType.HIGHLIGHT) {\n this.showAllEditors(\"highlight\", true, true);\n }\n this.#highlightWhenShiftUp = this.isShiftKeyDown;\n if (!this.isShiftKeyDown) {\n const signal = this._signal;\n const pointerup = e => {\n if (e.type === \"pointerup\" && e.button !== 0) {\n return;\n }\n window.removeEventListener(\"pointerup\", pointerup);\n window.removeEventListener(\"blur\", pointerup);\n if (e.type === \"pointerup\") {\n this.#onSelectEnd(\"main_toolbar\");\n }\n };\n window.addEventListener(\"pointerup\", pointerup, {\n signal\n });\n window.addEventListener(\"blur\", pointerup, {\n signal\n });\n }\n }\n #onSelectEnd(methodOfCreation = \"\") {\n if (this.#mode === AnnotationEditorType.HIGHLIGHT) {\n this.highlightSelection(methodOfCreation);\n } else if (this.#enableHighlightFloatingButton) {\n this.#displayHighlightToolbar();\n }\n }\n #addSelectionListener() {\n document.addEventListener(\"selectionchange\", this.#selectionChange.bind(this), {\n signal: this._signal\n });\n }\n #addFocusManager() {\n const signal = this._signal;\n window.addEventListener(\"focus\", this.#boundFocus, {\n signal\n });\n window.addEventListener(\"blur\", this.#boundBlur, {\n signal\n });\n }\n #removeFocusManager() {\n window.removeEventListener(\"focus\", this.#boundFocus);\n window.removeEventListener(\"blur\", this.#boundBlur);\n }\n blur() {\n this.isShiftKeyDown = false;\n if (this.#highlightWhenShiftUp) {\n this.#highlightWhenShiftUp = false;\n this.#onSelectEnd(\"main_toolbar\");\n }\n if (!this.hasSelection) {\n return;\n }\n const {\n activeElement\n } = document;\n for (const editor of this.#selectedEditors) {\n if (editor.div.contains(activeElement)) {\n this.#lastActiveElement = [editor, activeElement];\n editor._focusEventsAllowed = false;\n break;\n }\n }\n }\n focus() {\n if (!this.#lastActiveElement) {\n return;\n }\n const [lastEditor, lastActiveElement] = this.#lastActiveElement;\n this.#lastActiveElement = null;\n lastActiveElement.addEventListener(\"focusin\", () => {\n lastEditor._focusEventsAllowed = true;\n }, {\n once: true,\n signal: this._signal\n });\n lastActiveElement.focus();\n }\n #addKeyboardManager() {\n const signal = this._signal;\n window.addEventListener(\"keydown\", this.#boundKeydown, {\n signal\n });\n window.addEventListener(\"keyup\", this.#boundKeyup, {\n signal\n });\n }\n #removeKeyboardManager() {\n window.removeEventListener(\"keydown\", this.#boundKeydown);\n window.removeEventListener(\"keyup\", this.#boundKeyup);\n }\n #addCopyPasteListeners() {\n const signal = this._signal;\n document.addEventListener(\"copy\", this.#boundCopy, {\n signal\n });\n document.addEventListener(\"cut\", this.#boundCut, {\n signal\n });\n document.addEventListener(\"paste\", this.#boundPaste, {\n signal\n });\n }\n #removeCopyPasteListeners() {\n document.removeEventListener(\"copy\", this.#boundCopy);\n document.removeEventListener(\"cut\", this.#boundCut);\n document.removeEventListener(\"paste\", this.#boundPaste);\n }\n #addDragAndDropListeners() {\n const signal = this._signal;\n document.addEventListener(\"dragover\", this.dragOver.bind(this), {\n signal\n });\n document.addEventListener(\"drop\", this.drop.bind(this), {\n signal\n });\n }\n addEditListeners() {\n this.#addKeyboardManager();\n this.#addCopyPasteListeners();\n }\n removeEditListeners() {\n this.#removeKeyboardManager();\n this.#removeCopyPasteListeners();\n }\n dragOver(event) {\n for (const {\n type\n } of event.dataTransfer.items) {\n for (const editorType of this.#editorTypes) {\n if (editorType.isHandlingMimeForPasting(type)) {\n event.dataTransfer.dropEffect = \"copy\";\n event.preventDefault();\n return;\n }\n }\n }\n }\n drop(event) {\n for (const item of event.dataTransfer.items) {\n for (const editorType of this.#editorTypes) {\n if (editorType.isHandlingMimeForPasting(item.type)) {\n editorType.paste(item, this.currentLayer);\n event.preventDefault();\n return;\n }\n }\n }\n }\n copy(event) {\n event.preventDefault();\n this.#activeEditor?.commitOrRemove();\n if (!this.hasSelection) {\n return;\n }\n const editors = [];\n for (const editor of this.#selectedEditors) {\n const serialized = editor.serialize(true);\n if (serialized) {\n editors.push(serialized);\n }\n }\n if (editors.length === 0) {\n return;\n }\n event.clipboardData.setData(\"application/pdfjs\", JSON.stringify(editors));\n }\n cut(event) {\n this.copy(event);\n this.delete();\n }\n paste(event) {\n event.preventDefault();\n const {\n clipboardData\n } = event;\n for (const item of clipboardData.items) {\n for (const editorType of this.#editorTypes) {\n if (editorType.isHandlingMimeForPasting(item.type)) {\n editorType.paste(item, this.currentLayer);\n return;\n }\n }\n }\n let data = clipboardData.getData(\"application/pdfjs\");\n if (!data) {\n return;\n }\n try {\n data = JSON.parse(data);\n } catch (ex) {\n warn(`paste: \"${ex.message}\".`);\n return;\n }\n if (!Array.isArray(data)) {\n return;\n }\n this.unselectAll();\n const layer = this.currentLayer;\n try {\n const newEditors = [];\n for (const editor of data) {\n const deserializedEditor = layer.deserialize(editor);\n if (!deserializedEditor) {\n return;\n }\n newEditors.push(deserializedEditor);\n }\n const cmd = () => {\n for (const editor of newEditors) {\n this.#addEditorToLayer(editor);\n }\n this.#selectEditors(newEditors);\n };\n const undo = () => {\n for (const editor of newEditors) {\n editor.remove();\n }\n };\n this.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n } catch (ex) {\n warn(`paste: \"${ex.message}\".`);\n }\n }\n keydown(event) {\n if (!this.isShiftKeyDown && event.key === \"Shift\") {\n this.isShiftKeyDown = true;\n }\n if (this.#mode !== AnnotationEditorType.NONE && !this.isEditorHandlingKeyboard) {\n AnnotationEditorUIManager._keyboardManager.exec(this, event);\n }\n }\n keyup(event) {\n if (this.isShiftKeyDown && event.key === \"Shift\") {\n this.isShiftKeyDown = false;\n if (this.#highlightWhenShiftUp) {\n this.#highlightWhenShiftUp = false;\n this.#onSelectEnd(\"main_toolbar\");\n }\n }\n }\n onEditingAction({\n name\n }) {\n switch (name) {\n case \"undo\":\n case \"redo\":\n case \"delete\":\n case \"selectAll\":\n this[name]();\n break;\n case \"highlightSelection\":\n this.highlightSelection(\"context_menu\");\n break;\n }\n }\n #dispatchUpdateStates(details) {\n const hasChanged = Object.entries(details).some(([key, value]) => this.#previousStates[key] !== value);\n if (hasChanged) {\n this._eventBus.dispatch(\"annotationeditorstateschanged\", {\n source: this,\n details: Object.assign(this.#previousStates, details)\n });\n if (this.#mode === AnnotationEditorType.HIGHLIGHT && details.hasSelectedEditor === false) {\n this.#dispatchUpdateUI([[AnnotationEditorParamsType.HIGHLIGHT_FREE, true]]);\n }\n }\n }\n #dispatchUpdateUI(details) {\n this._eventBus.dispatch(\"annotationeditorparamschanged\", {\n source: this,\n details\n });\n }\n setEditingState(isEditing) {\n if (isEditing) {\n this.#addFocusManager();\n this.#addCopyPasteListeners();\n this.#dispatchUpdateStates({\n isEditing: this.#mode !== AnnotationEditorType.NONE,\n isEmpty: this.#isEmpty(),\n hasSomethingToUndo: this.#commandManager.hasSomethingToUndo(),\n hasSomethingToRedo: this.#commandManager.hasSomethingToRedo(),\n hasSelectedEditor: false\n });\n } else {\n this.#removeFocusManager();\n this.#removeCopyPasteListeners();\n this.#dispatchUpdateStates({\n isEditing: false\n });\n this.disableUserSelect(false);\n }\n }\n registerEditorTypes(types) {\n if (this.#editorTypes) {\n return;\n }\n this.#editorTypes = types;\n for (const editorType of this.#editorTypes) {\n this.#dispatchUpdateUI(editorType.defaultPropertiesToUpdate);\n }\n }\n getId() {\n return this.#idManager.id;\n }\n get currentLayer() {\n return this.#allLayers.get(this.#currentPageIndex);\n }\n getLayer(pageIndex) {\n return this.#allLayers.get(pageIndex);\n }\n get currentPageIndex() {\n return this.#currentPageIndex;\n }\n addLayer(layer) {\n this.#allLayers.set(layer.pageIndex, layer);\n if (this.#isEnabled) {\n layer.enable();\n } else {\n layer.disable();\n }\n }\n removeLayer(layer) {\n this.#allLayers.delete(layer.pageIndex);\n }\n updateMode(mode, editId = null, isFromKeyboard = false) {\n if (this.#mode === mode) {\n return;\n }\n this.#mode = mode;\n if (mode === AnnotationEditorType.NONE) {\n this.setEditingState(false);\n this.#disableAll();\n return;\n }\n this.setEditingState(true);\n this.#enableAll();\n this.unselectAll();\n for (const layer of this.#allLayers.values()) {\n layer.updateMode(mode);\n }\n if (!editId && isFromKeyboard) {\n this.addNewEditorFromKeyboard();\n return;\n }\n if (!editId) {\n return;\n }\n for (const editor of this.#allEditors.values()) {\n if (editor.annotationElementId === editId) {\n this.setSelected(editor);\n editor.enterInEditMode();\n break;\n }\n }\n }\n addNewEditorFromKeyboard() {\n if (this.currentLayer.canCreateNewEmptyEditor()) {\n this.currentLayer.addNewEditor();\n }\n }\n updateToolbar(mode) {\n if (mode === this.#mode) {\n return;\n }\n this._eventBus.dispatch(\"switchannotationeditormode\", {\n source: this,\n mode\n });\n }\n updateParams(type, value) {\n if (!this.#editorTypes) {\n return;\n }\n switch (type) {\n case AnnotationEditorParamsType.CREATE:\n this.currentLayer.addNewEditor();\n return;\n case AnnotationEditorParamsType.HIGHLIGHT_DEFAULT_COLOR:\n this.#mainHighlightColorPicker?.updateColor(value);\n break;\n case AnnotationEditorParamsType.HIGHLIGHT_SHOW_ALL:\n this._eventBus.dispatch(\"reporttelemetry\", {\n source: this,\n details: {\n type: \"editing\",\n data: {\n type: \"highlight\",\n action: \"toggle_visibility\"\n }\n }\n });\n (this.#showAllStates ||= new Map()).set(type, value);\n this.showAllEditors(\"highlight\", value);\n break;\n }\n for (const editor of this.#selectedEditors) {\n editor.updateParams(type, value);\n }\n for (const editorType of this.#editorTypes) {\n editorType.updateDefaultParams(type, value);\n }\n }\n showAllEditors(type, visible, updateButton = false) {\n for (const editor of this.#allEditors.values()) {\n if (editor.editorType === type) {\n editor.show(visible);\n }\n }\n const state = this.#showAllStates?.get(AnnotationEditorParamsType.HIGHLIGHT_SHOW_ALL) ?? true;\n if (state !== visible) {\n this.#dispatchUpdateUI([[AnnotationEditorParamsType.HIGHLIGHT_SHOW_ALL, visible]]);\n }\n }\n enableWaiting(mustWait = false) {\n if (this.#isWaiting === mustWait) {\n return;\n }\n this.#isWaiting = mustWait;\n for (const layer of this.#allLayers.values()) {\n if (mustWait) {\n layer.disableClick();\n } else {\n layer.enableClick();\n }\n layer.div.classList.toggle(\"waiting\", mustWait);\n }\n }\n #enableAll() {\n if (!this.#isEnabled) {\n this.#isEnabled = true;\n for (const layer of this.#allLayers.values()) {\n layer.enable();\n }\n for (const editor of this.#allEditors.values()) {\n editor.enable();\n }\n }\n }\n #disableAll() {\n this.unselectAll();\n if (this.#isEnabled) {\n this.#isEnabled = false;\n for (const layer of this.#allLayers.values()) {\n layer.disable();\n }\n for (const editor of this.#allEditors.values()) {\n editor.disable();\n }\n }\n }\n getEditors(pageIndex) {\n const editors = [];\n for (const editor of this.#allEditors.values()) {\n if (editor.pageIndex === pageIndex) {\n editors.push(editor);\n }\n }\n return editors;\n }\n getEditor(id) {\n return this.#allEditors.get(id);\n }\n addEditor(editor) {\n this.#allEditors.set(editor.id, editor);\n }\n removeEditor(editor) {\n if (editor.div.contains(document.activeElement)) {\n if (this.#focusMainContainerTimeoutId) {\n clearTimeout(this.#focusMainContainerTimeoutId);\n }\n this.#focusMainContainerTimeoutId = setTimeout(() => {\n this.focusMainContainer();\n this.#focusMainContainerTimeoutId = null;\n }, 0);\n }\n this.#allEditors.delete(editor.id);\n this.unselect(editor);\n if (!editor.annotationElementId || !this.#deletedAnnotationsElementIds.has(editor.annotationElementId)) {\n this.#annotationStorage?.remove(editor.id);\n }\n }\n addDeletedAnnotationElement(editor) {\n this.#deletedAnnotationsElementIds.add(editor.annotationElementId);\n this.addChangedExistingAnnotation(editor);\n editor.deleted = true;\n }\n isDeletedAnnotationElement(annotationElementId) {\n return this.#deletedAnnotationsElementIds.has(annotationElementId);\n }\n removeDeletedAnnotationElement(editor) {\n this.#deletedAnnotationsElementIds.delete(editor.annotationElementId);\n this.removeChangedExistingAnnotation(editor);\n editor.deleted = false;\n }\n #addEditorToLayer(editor) {\n const layer = this.#allLayers.get(editor.pageIndex);\n if (layer) {\n layer.addOrRebuild(editor);\n } else {\n this.addEditor(editor);\n this.addToAnnotationStorage(editor);\n }\n }\n setActiveEditor(editor) {\n if (this.#activeEditor === editor) {\n return;\n }\n this.#activeEditor = editor;\n if (editor) {\n this.#dispatchUpdateUI(editor.propertiesToUpdate);\n }\n }\n get #lastSelectedEditor() {\n let ed = null;\n for (ed of this.#selectedEditors) {}\n return ed;\n }\n updateUI(editor) {\n if (this.#lastSelectedEditor === editor) {\n this.#dispatchUpdateUI(editor.propertiesToUpdate);\n }\n }\n toggleSelected(editor) {\n if (this.#selectedEditors.has(editor)) {\n this.#selectedEditors.delete(editor);\n editor.unselect();\n this.#dispatchUpdateStates({\n hasSelectedEditor: this.hasSelection\n });\n return;\n }\n this.#selectedEditors.add(editor);\n editor.select();\n this.#dispatchUpdateUI(editor.propertiesToUpdate);\n this.#dispatchUpdateStates({\n hasSelectedEditor: true\n });\n }\n setSelected(editor) {\n for (const ed of this.#selectedEditors) {\n if (ed !== editor) {\n ed.unselect();\n }\n }\n this.#selectedEditors.clear();\n this.#selectedEditors.add(editor);\n editor.select();\n this.#dispatchUpdateUI(editor.propertiesToUpdate);\n this.#dispatchUpdateStates({\n hasSelectedEditor: true\n });\n }\n isSelected(editor) {\n return this.#selectedEditors.has(editor);\n }\n get firstSelectedEditor() {\n return this.#selectedEditors.values().next().value;\n }\n unselect(editor) {\n editor.unselect();\n this.#selectedEditors.delete(editor);\n this.#dispatchUpdateStates({\n hasSelectedEditor: this.hasSelection\n });\n }\n get hasSelection() {\n return this.#selectedEditors.size !== 0;\n }\n get isEnterHandled() {\n return this.#selectedEditors.size === 1 && this.firstSelectedEditor.isEnterHandled;\n }\n undo() {\n this.#commandManager.undo();\n this.#dispatchUpdateStates({\n hasSomethingToUndo: this.#commandManager.hasSomethingToUndo(),\n hasSomethingToRedo: true,\n isEmpty: this.#isEmpty()\n });\n }\n redo() {\n this.#commandManager.redo();\n this.#dispatchUpdateStates({\n hasSomethingToUndo: true,\n hasSomethingToRedo: this.#commandManager.hasSomethingToRedo(),\n isEmpty: this.#isEmpty()\n });\n }\n addCommands(params) {\n this.#commandManager.add(params);\n this.#dispatchUpdateStates({\n hasSomethingToUndo: true,\n hasSomethingToRedo: false,\n isEmpty: this.#isEmpty()\n });\n }\n #isEmpty() {\n if (this.#allEditors.size === 0) {\n return true;\n }\n if (this.#allEditors.size === 1) {\n for (const editor of this.#allEditors.values()) {\n return editor.isEmpty();\n }\n }\n return false;\n }\n delete() {\n this.commitOrRemove();\n if (!this.hasSelection) {\n return;\n }\n const editors = [...this.#selectedEditors];\n const cmd = () => {\n for (const editor of editors) {\n editor.remove();\n }\n };\n const undo = () => {\n for (const editor of editors) {\n this.#addEditorToLayer(editor);\n }\n };\n this.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n }\n commitOrRemove() {\n this.#activeEditor?.commitOrRemove();\n }\n hasSomethingToControl() {\n return this.#activeEditor || this.hasSelection;\n }\n #selectEditors(editors) {\n for (const editor of this.#selectedEditors) {\n editor.unselect();\n }\n this.#selectedEditors.clear();\n for (const editor of editors) {\n if (editor.isEmpty()) {\n continue;\n }\n this.#selectedEditors.add(editor);\n editor.select();\n }\n this.#dispatchUpdateStates({\n hasSelectedEditor: this.hasSelection\n });\n }\n selectAll() {\n for (const editor of this.#selectedEditors) {\n editor.commit();\n }\n this.#selectEditors(this.#allEditors.values());\n }\n unselectAll() {\n if (this.#activeEditor) {\n this.#activeEditor.commitOrRemove();\n if (this.#mode !== AnnotationEditorType.NONE) {\n return;\n }\n }\n if (!this.hasSelection) {\n return;\n }\n for (const editor of this.#selectedEditors) {\n editor.unselect();\n }\n this.#selectedEditors.clear();\n this.#dispatchUpdateStates({\n hasSelectedEditor: false\n });\n }\n translateSelectedEditors(x, y, noCommit = false) {\n if (!noCommit) {\n this.commitOrRemove();\n }\n if (!this.hasSelection) {\n return;\n }\n this.#translation[0] += x;\n this.#translation[1] += y;\n const [totalX, totalY] = this.#translation;\n const editors = [...this.#selectedEditors];\n const TIME_TO_WAIT = 1000;\n if (this.#translationTimeoutId) {\n clearTimeout(this.#translationTimeoutId);\n }\n this.#translationTimeoutId = setTimeout(() => {\n this.#translationTimeoutId = null;\n this.#translation[0] = this.#translation[1] = 0;\n this.addCommands({\n cmd: () => {\n for (const editor of editors) {\n if (this.#allEditors.has(editor.id)) {\n editor.translateInPage(totalX, totalY);\n }\n }\n },\n undo: () => {\n for (const editor of editors) {\n if (this.#allEditors.has(editor.id)) {\n editor.translateInPage(-totalX, -totalY);\n }\n }\n },\n mustExec: false\n });\n }, TIME_TO_WAIT);\n for (const editor of editors) {\n editor.translateInPage(x, y);\n }\n }\n setUpDragSession() {\n if (!this.hasSelection) {\n return;\n }\n this.disableUserSelect(true);\n this.#draggingEditors = new Map();\n for (const editor of this.#selectedEditors) {\n this.#draggingEditors.set(editor, {\n savedX: editor.x,\n savedY: editor.y,\n savedPageIndex: editor.pageIndex,\n newX: 0,\n newY: 0,\n newPageIndex: -1\n });\n }\n }\n endDragSession() {\n if (!this.#draggingEditors) {\n return false;\n }\n this.disableUserSelect(false);\n const map = this.#draggingEditors;\n this.#draggingEditors = null;\n let mustBeAddedInUndoStack = false;\n for (const [{\n x,\n y,\n pageIndex\n }, value] of map) {\n value.newX = x;\n value.newY = y;\n value.newPageIndex = pageIndex;\n mustBeAddedInUndoStack ||= x !== value.savedX || y !== value.savedY || pageIndex !== value.savedPageIndex;\n }\n if (!mustBeAddedInUndoStack) {\n return false;\n }\n const move = (editor, x, y, pageIndex) => {\n if (this.#allEditors.has(editor.id)) {\n const parent = this.#allLayers.get(pageIndex);\n if (parent) {\n editor._setParentAndPosition(parent, x, y);\n } else {\n editor.pageIndex = pageIndex;\n editor.x = x;\n editor.y = y;\n }\n }\n };\n this.addCommands({\n cmd: () => {\n for (const [editor, {\n newX,\n newY,\n newPageIndex\n }] of map) {\n move(editor, newX, newY, newPageIndex);\n }\n },\n undo: () => {\n for (const [editor, {\n savedX,\n savedY,\n savedPageIndex\n }] of map) {\n move(editor, savedX, savedY, savedPageIndex);\n }\n },\n mustExec: true\n });\n return true;\n }\n dragSelectedEditors(tx, ty) {\n if (!this.#draggingEditors) {\n return;\n }\n for (const editor of this.#draggingEditors.keys()) {\n editor.drag(tx, ty);\n }\n }\n rebuild(editor) {\n if (editor.parent === null) {\n const parent = this.getLayer(editor.pageIndex);\n if (parent) {\n parent.changeParent(editor);\n parent.addOrRebuild(editor);\n } else {\n this.addEditor(editor);\n this.addToAnnotationStorage(editor);\n editor.rebuild();\n }\n } else {\n editor.parent.addOrRebuild(editor);\n }\n }\n get isEditorHandlingKeyboard() {\n return this.getActive()?.shouldGetKeyboardEvents() || this.#selectedEditors.size === 1 && this.firstSelectedEditor.shouldGetKeyboardEvents();\n }\n isActive(editor) {\n return this.#activeEditor === editor;\n }\n getActive() {\n return this.#activeEditor;\n }\n getMode() {\n return this.#mode;\n }\n get imageManager() {\n return shadow(this, \"imageManager\", new ImageManager());\n }\n getSelectionBoxes(textLayer) {\n if (!textLayer) {\n return null;\n }\n const selection = document.getSelection();\n for (let i = 0, ii = selection.rangeCount; i < ii; i++) {\n if (!textLayer.contains(selection.getRangeAt(i).commonAncestorContainer)) {\n return null;\n }\n }\n const {\n x: layerX,\n y: layerY,\n width: parentWidth,\n height: parentHeight\n } = textLayer.getBoundingClientRect();\n let rotator;\n switch (textLayer.getAttribute(\"data-main-rotation\")) {\n case \"90\":\n rotator = (x, y, w, h) => ({\n x: (y - layerY) / parentHeight,\n y: 1 - (x + w - layerX) / parentWidth,\n width: h / parentHeight,\n height: w / parentWidth\n });\n break;\n case \"180\":\n rotator = (x, y, w, h) => ({\n x: 1 - (x + w - layerX) / parentWidth,\n y: 1 - (y + h - layerY) / parentHeight,\n width: w / parentWidth,\n height: h / parentHeight\n });\n break;\n case \"270\":\n rotator = (x, y, w, h) => ({\n x: 1 - (y + h - layerY) / parentHeight,\n y: (x - layerX) / parentWidth,\n width: h / parentHeight,\n height: w / parentWidth\n });\n break;\n default:\n rotator = (x, y, w, h) => ({\n x: (x - layerX) / parentWidth,\n y: (y - layerY) / parentHeight,\n width: w / parentWidth,\n height: h / parentHeight\n });\n break;\n }\n const boxes = [];\n for (let i = 0, ii = selection.rangeCount; i < ii; i++) {\n const range = selection.getRangeAt(i);\n if (range.collapsed) {\n continue;\n }\n for (const {\n x,\n y,\n width,\n height\n } of range.getClientRects()) {\n if (width === 0 || height === 0) {\n continue;\n }\n boxes.push(rotator(x, y, width, height));\n }\n }\n return boxes.length === 0 ? null : boxes;\n }\n addChangedExistingAnnotation({\n annotationElementId,\n id\n }) {\n (this.#changedExistingAnnotations ||= new Map()).set(annotationElementId, id);\n }\n removeChangedExistingAnnotation({\n annotationElementId\n }) {\n this.#changedExistingAnnotations?.delete(annotationElementId);\n }\n renderAnnotationElement(annotation) {\n const editorId = this.#changedExistingAnnotations?.get(annotation.data.id);\n if (!editorId) {\n return;\n }\n const editor = this.#annotationStorage.getRawValue(editorId);\n if (!editor) {\n return;\n }\n if (this.#mode === AnnotationEditorType.NONE && !editor.hasBeenModified) {\n return;\n }\n editor.renderAnnotationElement(annotation);\n }\n}\n\n;// CONCATENATED MODULE: ./src/display/editor/alt_text.js\n\nclass AltText {\n #altText = \"\";\n #altTextDecorative = false;\n #altTextButton = null;\n #altTextTooltip = null;\n #altTextTooltipTimeout = null;\n #altTextWasFromKeyBoard = false;\n #editor = null;\n static _l10nPromise = null;\n constructor(editor) {\n this.#editor = editor;\n }\n static initialize(l10nPromise) {\n AltText._l10nPromise ||= l10nPromise;\n }\n async render() {\n const altText = this.#altTextButton = document.createElement(\"button\");\n altText.className = \"altText\";\n const msg = await AltText._l10nPromise.get(\"pdfjs-editor-alt-text-button-label\");\n altText.textContent = msg;\n altText.setAttribute(\"aria-label\", msg);\n altText.tabIndex = \"0\";\n const signal = this.#editor._uiManager._signal;\n altText.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n altText.addEventListener(\"pointerdown\", event => event.stopPropagation(), {\n signal\n });\n const onClick = event => {\n event.preventDefault();\n this.#editor._uiManager.editAltText(this.#editor);\n };\n altText.addEventListener(\"click\", onClick, {\n capture: true,\n signal\n });\n altText.addEventListener(\"keydown\", event => {\n if (event.target === altText && event.key === \"Enter\") {\n this.#altTextWasFromKeyBoard = true;\n onClick(event);\n }\n }, {\n signal\n });\n await this.#setState();\n return altText;\n }\n finish() {\n if (!this.#altTextButton) {\n return;\n }\n this.#altTextButton.focus({\n focusVisible: this.#altTextWasFromKeyBoard\n });\n this.#altTextWasFromKeyBoard = false;\n }\n isEmpty() {\n return !this.#altText && !this.#altTextDecorative;\n }\n get data() {\n return {\n altText: this.#altText,\n decorative: this.#altTextDecorative\n };\n }\n set data({\n altText,\n decorative\n }) {\n if (this.#altText === altText && this.#altTextDecorative === decorative) {\n return;\n }\n this.#altText = altText;\n this.#altTextDecorative = decorative;\n this.#setState();\n }\n toggle(enabled = false) {\n if (!this.#altTextButton) {\n return;\n }\n if (!enabled && this.#altTextTooltipTimeout) {\n clearTimeout(this.#altTextTooltipTimeout);\n this.#altTextTooltipTimeout = null;\n }\n this.#altTextButton.disabled = !enabled;\n }\n destroy() {\n this.#altTextButton?.remove();\n this.#altTextButton = null;\n this.#altTextTooltip = null;\n }\n async #setState() {\n const button = this.#altTextButton;\n if (!button) {\n return;\n }\n if (!this.#altText && !this.#altTextDecorative) {\n button.classList.remove(\"done\");\n this.#altTextTooltip?.remove();\n return;\n }\n button.classList.add(\"done\");\n AltText._l10nPromise.get(\"pdfjs-editor-alt-text-edit-button-label\").then(msg => {\n button.setAttribute(\"aria-label\", msg);\n });\n let tooltip = this.#altTextTooltip;\n if (!tooltip) {\n this.#altTextTooltip = tooltip = document.createElement(\"span\");\n tooltip.className = \"tooltip\";\n tooltip.setAttribute(\"role\", \"tooltip\");\n const id = tooltip.id = `alt-text-tooltip-${this.#editor.id}`;\n button.setAttribute(\"aria-describedby\", id);\n const DELAY_TO_SHOW_TOOLTIP = 100;\n const signal = this.#editor._uiManager._signal;\n signal.addEventListener(\"abort\", () => {\n clearTimeout(this.#altTextTooltipTimeout);\n this.#altTextTooltipTimeout = null;\n }, {\n once: true\n });\n button.addEventListener(\"mouseenter\", () => {\n this.#altTextTooltipTimeout = setTimeout(() => {\n this.#altTextTooltipTimeout = null;\n this.#altTextTooltip.classList.add(\"show\");\n this.#editor._reportTelemetry({\n action: \"alt_text_tooltip\"\n });\n }, DELAY_TO_SHOW_TOOLTIP);\n }, {\n signal\n });\n button.addEventListener(\"mouseleave\", () => {\n if (this.#altTextTooltipTimeout) {\n clearTimeout(this.#altTextTooltipTimeout);\n this.#altTextTooltipTimeout = null;\n }\n this.#altTextTooltip?.classList.remove(\"show\");\n }, {\n signal\n });\n }\n tooltip.innerText = this.#altTextDecorative ? await AltText._l10nPromise.get(\"pdfjs-editor-alt-text-decorative-tooltip\") : this.#altText;\n if (!tooltip.parentNode) {\n button.append(tooltip);\n }\n const element = this.#editor.getImageForAltText();\n element?.setAttribute(\"aria-describedby\", tooltip.id);\n }\n}\n\n;// CONCATENATED MODULE: ./src/display/editor/editor.js\n\n\n\n\n\nclass AnnotationEditor {\n #accessibilityData = null;\n #allResizerDivs = null;\n #altText = null;\n #disabled = false;\n #keepAspectRatio = false;\n #resizersDiv = null;\n #savedDimensions = null;\n #boundFocusin = this.focusin.bind(this);\n #boundFocusout = this.focusout.bind(this);\n #editToolbar = null;\n #focusedResizerName = \"\";\n #hasBeenClicked = false;\n #initialPosition = null;\n #isEditing = false;\n #isInEditMode = false;\n #isResizerEnabledForKeyboard = false;\n #moveInDOMTimeout = null;\n #prevDragX = 0;\n #prevDragY = 0;\n #telemetryTimeouts = null;\n _initialOptions = Object.create(null);\n _isVisible = true;\n _uiManager = null;\n _focusEventsAllowed = true;\n _l10nPromise = null;\n #isDraggable = false;\n #zIndex = AnnotationEditor._zIndex++;\n static _borderLineWidth = -1;\n static _colorManager = new ColorManager();\n static _zIndex = 1;\n static _telemetryTimeout = 1000;\n static get _resizerKeyboardManager() {\n const resize = AnnotationEditor.prototype._resizeWithKeyboard;\n const small = AnnotationEditorUIManager.TRANSLATE_SMALL;\n const big = AnnotationEditorUIManager.TRANSLATE_BIG;\n return shadow(this, \"_resizerKeyboardManager\", new KeyboardManager([[[\"ArrowLeft\", \"mac+ArrowLeft\"], resize, {\n args: [-small, 0]\n }], [[\"ctrl+ArrowLeft\", \"mac+shift+ArrowLeft\"], resize, {\n args: [-big, 0]\n }], [[\"ArrowRight\", \"mac+ArrowRight\"], resize, {\n args: [small, 0]\n }], [[\"ctrl+ArrowRight\", \"mac+shift+ArrowRight\"], resize, {\n args: [big, 0]\n }], [[\"ArrowUp\", \"mac+ArrowUp\"], resize, {\n args: [0, -small]\n }], [[\"ctrl+ArrowUp\", \"mac+shift+ArrowUp\"], resize, {\n args: [0, -big]\n }], [[\"ArrowDown\", \"mac+ArrowDown\"], resize, {\n args: [0, small]\n }], [[\"ctrl+ArrowDown\", \"mac+shift+ArrowDown\"], resize, {\n args: [0, big]\n }], [[\"Escape\", \"mac+Escape\"], AnnotationEditor.prototype._stopResizingWithKeyboard]]));\n }\n constructor(parameters) {\n if (this.constructor === AnnotationEditor) {\n unreachable(\"Cannot initialize AnnotationEditor.\");\n }\n this.parent = parameters.parent;\n this.id = parameters.id;\n this.width = this.height = null;\n this.pageIndex = parameters.parent.pageIndex;\n this.name = parameters.name;\n this.div = null;\n this._uiManager = parameters.uiManager;\n this.annotationElementId = null;\n this._willKeepAspectRatio = false;\n this._initialOptions.isCentered = parameters.isCentered;\n this._structTreeParentId = null;\n const {\n rotation,\n rawDims: {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n }\n } = this.parent.viewport;\n this.rotation = rotation;\n this.pageRotation = (360 + rotation - this._uiManager.viewParameters.rotation) % 360;\n this.pageDimensions = [pageWidth, pageHeight];\n this.pageTranslation = [pageX, pageY];\n const [width, height] = this.parentDimensions;\n this.x = parameters.x / width;\n this.y = parameters.y / height;\n this.isAttachedToDOM = false;\n this.deleted = false;\n }\n get editorType() {\n return Object.getPrototypeOf(this).constructor._type;\n }\n static get _defaultLineColor() {\n return shadow(this, \"_defaultLineColor\", this._colorManager.getHexCode(\"CanvasText\"));\n }\n static deleteAnnotationElement(editor) {\n const fakeEditor = new FakeEditor({\n id: editor.parent.getNextId(),\n parent: editor.parent,\n uiManager: editor._uiManager\n });\n fakeEditor.annotationElementId = editor.annotationElementId;\n fakeEditor.deleted = true;\n fakeEditor._uiManager.addToAnnotationStorage(fakeEditor);\n }\n static initialize(l10n, _uiManager, options) {\n AnnotationEditor._l10nPromise ||= new Map([\"pdfjs-editor-alt-text-button-label\", \"pdfjs-editor-alt-text-edit-button-label\", \"pdfjs-editor-alt-text-decorative-tooltip\", \"pdfjs-editor-resizer-label-topLeft\", \"pdfjs-editor-resizer-label-topMiddle\", \"pdfjs-editor-resizer-label-topRight\", \"pdfjs-editor-resizer-label-middleRight\", \"pdfjs-editor-resizer-label-bottomRight\", \"pdfjs-editor-resizer-label-bottomMiddle\", \"pdfjs-editor-resizer-label-bottomLeft\", \"pdfjs-editor-resizer-label-middleLeft\"].map(str => [str, l10n.get(str.replaceAll(/([A-Z])/g, c => `-${c.toLowerCase()}`))]));\n if (options?.strings) {\n for (const str of options.strings) {\n AnnotationEditor._l10nPromise.set(str, l10n.get(str));\n }\n }\n if (AnnotationEditor._borderLineWidth !== -1) {\n return;\n }\n const style = getComputedStyle(document.documentElement);\n AnnotationEditor._borderLineWidth = parseFloat(style.getPropertyValue(\"--outline-width\")) || 0;\n }\n static updateDefaultParams(_type, _value) {}\n static get defaultPropertiesToUpdate() {\n return [];\n }\n static isHandlingMimeForPasting(mime) {\n return false;\n }\n static paste(item, parent) {\n unreachable(\"Not implemented\");\n }\n get propertiesToUpdate() {\n return [];\n }\n get _isDraggable() {\n return this.#isDraggable;\n }\n set _isDraggable(value) {\n this.#isDraggable = value;\n this.div?.classList.toggle(\"draggable\", value);\n }\n get isEnterHandled() {\n return true;\n }\n center() {\n const [pageWidth, pageHeight] = this.pageDimensions;\n switch (this.parentRotation) {\n case 90:\n this.x -= this.height * pageHeight / (pageWidth * 2);\n this.y += this.width * pageWidth / (pageHeight * 2);\n break;\n case 180:\n this.x += this.width / 2;\n this.y += this.height / 2;\n break;\n case 270:\n this.x += this.height * pageHeight / (pageWidth * 2);\n this.y -= this.width * pageWidth / (pageHeight * 2);\n break;\n default:\n this.x -= this.width / 2;\n this.y -= this.height / 2;\n break;\n }\n this.fixAndSetPosition();\n }\n addCommands(params) {\n this._uiManager.addCommands(params);\n }\n get currentLayer() {\n return this._uiManager.currentLayer;\n }\n setInBackground() {\n this.div.style.zIndex = 0;\n }\n setInForeground() {\n this.div.style.zIndex = this.#zIndex;\n }\n setParent(parent) {\n if (parent !== null) {\n this.pageIndex = parent.pageIndex;\n this.pageDimensions = parent.pageDimensions;\n } else {\n this.#stopResizing();\n }\n this.parent = parent;\n }\n focusin(event) {\n if (!this._focusEventsAllowed) {\n return;\n }\n if (!this.#hasBeenClicked) {\n this.parent.setSelected(this);\n } else {\n this.#hasBeenClicked = false;\n }\n }\n focusout(event) {\n if (!this._focusEventsAllowed) {\n return;\n }\n if (!this.isAttachedToDOM) {\n return;\n }\n const target = event.relatedTarget;\n if (target?.closest(`#${this.id}`)) {\n return;\n }\n event.preventDefault();\n if (!this.parent?.isMultipleSelection) {\n this.commitOrRemove();\n }\n }\n commitOrRemove() {\n if (this.isEmpty()) {\n this.remove();\n } else {\n this.commit();\n }\n }\n commit() {\n this.addToAnnotationStorage();\n }\n addToAnnotationStorage() {\n this._uiManager.addToAnnotationStorage(this);\n }\n setAt(x, y, tx, ty) {\n const [width, height] = this.parentDimensions;\n [tx, ty] = this.screenToPageTranslation(tx, ty);\n this.x = (x + tx) / width;\n this.y = (y + ty) / height;\n this.fixAndSetPosition();\n }\n #translate([width, height], x, y) {\n [x, y] = this.screenToPageTranslation(x, y);\n this.x += x / width;\n this.y += y / height;\n this.fixAndSetPosition();\n }\n translate(x, y) {\n this.#translate(this.parentDimensions, x, y);\n }\n translateInPage(x, y) {\n this.#initialPosition ||= [this.x, this.y];\n this.#translate(this.pageDimensions, x, y);\n this.div.scrollIntoView({\n block: \"nearest\"\n });\n }\n drag(tx, ty) {\n this.#initialPosition ||= [this.x, this.y];\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.x += tx / parentWidth;\n this.y += ty / parentHeight;\n if (this.parent && (this.x < 0 || this.x > 1 || this.y < 0 || this.y > 1)) {\n const {\n x,\n y\n } = this.div.getBoundingClientRect();\n if (this.parent.findNewParent(this, x, y)) {\n this.x -= Math.floor(this.x);\n this.y -= Math.floor(this.y);\n }\n }\n let {\n x,\n y\n } = this;\n const [bx, by] = this.getBaseTranslation();\n x += bx;\n y += by;\n this.div.style.left = `${(100 * x).toFixed(2)}%`;\n this.div.style.top = `${(100 * y).toFixed(2)}%`;\n this.div.scrollIntoView({\n block: \"nearest\"\n });\n }\n get _hasBeenMoved() {\n return !!this.#initialPosition && (this.#initialPosition[0] !== this.x || this.#initialPosition[1] !== this.y);\n }\n getBaseTranslation() {\n const [parentWidth, parentHeight] = this.parentDimensions;\n const {\n _borderLineWidth\n } = AnnotationEditor;\n const x = _borderLineWidth / parentWidth;\n const y = _borderLineWidth / parentHeight;\n switch (this.rotation) {\n case 90:\n return [-x, y];\n case 180:\n return [x, y];\n case 270:\n return [x, -y];\n default:\n return [-x, -y];\n }\n }\n get _mustFixPosition() {\n return true;\n }\n fixAndSetPosition(rotation = this.rotation) {\n const [pageWidth, pageHeight] = this.pageDimensions;\n let {\n x,\n y,\n width,\n height\n } = this;\n width *= pageWidth;\n height *= pageHeight;\n x *= pageWidth;\n y *= pageHeight;\n if (this._mustFixPosition) {\n switch (rotation) {\n case 0:\n x = Math.max(0, Math.min(pageWidth - width, x));\n y = Math.max(0, Math.min(pageHeight - height, y));\n break;\n case 90:\n x = Math.max(0, Math.min(pageWidth - height, x));\n y = Math.min(pageHeight, Math.max(width, y));\n break;\n case 180:\n x = Math.min(pageWidth, Math.max(width, x));\n y = Math.min(pageHeight, Math.max(height, y));\n break;\n case 270:\n x = Math.min(pageWidth, Math.max(height, x));\n y = Math.max(0, Math.min(pageHeight - width, y));\n break;\n }\n }\n this.x = x /= pageWidth;\n this.y = y /= pageHeight;\n const [bx, by] = this.getBaseTranslation();\n x += bx;\n y += by;\n const {\n style\n } = this.div;\n style.left = `${(100 * x).toFixed(2)}%`;\n style.top = `${(100 * y).toFixed(2)}%`;\n this.moveInDOM();\n }\n static #rotatePoint(x, y, angle) {\n switch (angle) {\n case 90:\n return [y, -x];\n case 180:\n return [-x, -y];\n case 270:\n return [-y, x];\n default:\n return [x, y];\n }\n }\n screenToPageTranslation(x, y) {\n return AnnotationEditor.#rotatePoint(x, y, this.parentRotation);\n }\n pageTranslationToScreen(x, y) {\n return AnnotationEditor.#rotatePoint(x, y, 360 - this.parentRotation);\n }\n #getRotationMatrix(rotation) {\n switch (rotation) {\n case 90:\n {\n const [pageWidth, pageHeight] = this.pageDimensions;\n return [0, -pageWidth / pageHeight, pageHeight / pageWidth, 0];\n }\n case 180:\n return [-1, 0, 0, -1];\n case 270:\n {\n const [pageWidth, pageHeight] = this.pageDimensions;\n return [0, pageWidth / pageHeight, -pageHeight / pageWidth, 0];\n }\n default:\n return [1, 0, 0, 1];\n }\n }\n get parentScale() {\n return this._uiManager.viewParameters.realScale;\n }\n get parentRotation() {\n return (this._uiManager.viewParameters.rotation + this.pageRotation) % 360;\n }\n get parentDimensions() {\n const {\n parentScale,\n pageDimensions: [pageWidth, pageHeight]\n } = this;\n const scaledWidth = pageWidth * parentScale;\n const scaledHeight = pageHeight * parentScale;\n return util_FeatureTest.isCSSRoundSupported ? [Math.round(scaledWidth), Math.round(scaledHeight)] : [scaledWidth, scaledHeight];\n }\n setDims(width, height) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.div.style.width = `${(100 * width / parentWidth).toFixed(2)}%`;\n if (!this.#keepAspectRatio) {\n this.div.style.height = `${(100 * height / parentHeight).toFixed(2)}%`;\n }\n }\n fixDims() {\n const {\n style\n } = this.div;\n const {\n height,\n width\n } = style;\n const widthPercent = width.endsWith(\"%\");\n const heightPercent = !this.#keepAspectRatio && height.endsWith(\"%\");\n if (widthPercent && heightPercent) {\n return;\n }\n const [parentWidth, parentHeight] = this.parentDimensions;\n if (!widthPercent) {\n style.width = `${(100 * parseFloat(width) / parentWidth).toFixed(2)}%`;\n }\n if (!this.#keepAspectRatio && !heightPercent) {\n style.height = `${(100 * parseFloat(height) / parentHeight).toFixed(2)}%`;\n }\n }\n getInitialTranslation() {\n return [0, 0];\n }\n #createResizers() {\n if (this.#resizersDiv) {\n return;\n }\n this.#resizersDiv = document.createElement(\"div\");\n this.#resizersDiv.classList.add(\"resizers\");\n const classes = this._willKeepAspectRatio ? [\"topLeft\", \"topRight\", \"bottomRight\", \"bottomLeft\"] : [\"topLeft\", \"topMiddle\", \"topRight\", \"middleRight\", \"bottomRight\", \"bottomMiddle\", \"bottomLeft\", \"middleLeft\"];\n const signal = this._uiManager._signal;\n for (const name of classes) {\n const div = document.createElement(\"div\");\n this.#resizersDiv.append(div);\n div.classList.add(\"resizer\", name);\n div.setAttribute(\"data-resizer-name\", name);\n div.addEventListener(\"pointerdown\", this.#resizerPointerdown.bind(this, name), {\n signal\n });\n div.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n div.tabIndex = -1;\n }\n this.div.prepend(this.#resizersDiv);\n }\n #resizerPointerdown(name, event) {\n event.preventDefault();\n const {\n isMac\n } = util_FeatureTest.platform;\n if (event.button !== 0 || event.ctrlKey && isMac) {\n return;\n }\n this.#altText?.toggle(false);\n const boundResizerPointermove = this.#resizerPointermove.bind(this, name);\n const savedDraggable = this._isDraggable;\n this._isDraggable = false;\n const signal = this._uiManager._signal;\n const pointerMoveOptions = {\n passive: true,\n capture: true,\n signal\n };\n this.parent.togglePointerEvents(false);\n window.addEventListener(\"pointermove\", boundResizerPointermove, pointerMoveOptions);\n window.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n const savedX = this.x;\n const savedY = this.y;\n const savedWidth = this.width;\n const savedHeight = this.height;\n const savedParentCursor = this.parent.div.style.cursor;\n const savedCursor = this.div.style.cursor;\n this.div.style.cursor = this.parent.div.style.cursor = window.getComputedStyle(event.target).cursor;\n const pointerUpCallback = () => {\n this.parent.togglePointerEvents(true);\n this.#altText?.toggle(true);\n this._isDraggable = savedDraggable;\n window.removeEventListener(\"pointerup\", pointerUpCallback);\n window.removeEventListener(\"blur\", pointerUpCallback);\n window.removeEventListener(\"pointermove\", boundResizerPointermove, pointerMoveOptions);\n window.removeEventListener(\"contextmenu\", noContextMenu);\n this.parent.div.style.cursor = savedParentCursor;\n this.div.style.cursor = savedCursor;\n this.#addResizeToUndoStack(savedX, savedY, savedWidth, savedHeight);\n };\n window.addEventListener(\"pointerup\", pointerUpCallback, {\n signal\n });\n window.addEventListener(\"blur\", pointerUpCallback, {\n signal\n });\n }\n #addResizeToUndoStack(savedX, savedY, savedWidth, savedHeight) {\n const newX = this.x;\n const newY = this.y;\n const newWidth = this.width;\n const newHeight = this.height;\n if (newX === savedX && newY === savedY && newWidth === savedWidth && newHeight === savedHeight) {\n return;\n }\n this.addCommands({\n cmd: () => {\n this.width = newWidth;\n this.height = newHeight;\n this.x = newX;\n this.y = newY;\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setDims(parentWidth * newWidth, parentHeight * newHeight);\n this.fixAndSetPosition();\n },\n undo: () => {\n this.width = savedWidth;\n this.height = savedHeight;\n this.x = savedX;\n this.y = savedY;\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setDims(parentWidth * savedWidth, parentHeight * savedHeight);\n this.fixAndSetPosition();\n },\n mustExec: true\n });\n }\n #resizerPointermove(name, event) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n const savedX = this.x;\n const savedY = this.y;\n const savedWidth = this.width;\n const savedHeight = this.height;\n const minWidth = AnnotationEditor.MIN_SIZE / parentWidth;\n const minHeight = AnnotationEditor.MIN_SIZE / parentHeight;\n const round = x => Math.round(x * 10000) / 10000;\n const rotationMatrix = this.#getRotationMatrix(this.rotation);\n const transf = (x, y) => [rotationMatrix[0] * x + rotationMatrix[2] * y, rotationMatrix[1] * x + rotationMatrix[3] * y];\n const invRotationMatrix = this.#getRotationMatrix(360 - this.rotation);\n const invTransf = (x, y) => [invRotationMatrix[0] * x + invRotationMatrix[2] * y, invRotationMatrix[1] * x + invRotationMatrix[3] * y];\n let getPoint;\n let getOpposite;\n let isDiagonal = false;\n let isHorizontal = false;\n switch (name) {\n case \"topLeft\":\n isDiagonal = true;\n getPoint = (w, h) => [0, 0];\n getOpposite = (w, h) => [w, h];\n break;\n case \"topMiddle\":\n getPoint = (w, h) => [w / 2, 0];\n getOpposite = (w, h) => [w / 2, h];\n break;\n case \"topRight\":\n isDiagonal = true;\n getPoint = (w, h) => [w, 0];\n getOpposite = (w, h) => [0, h];\n break;\n case \"middleRight\":\n isHorizontal = true;\n getPoint = (w, h) => [w, h / 2];\n getOpposite = (w, h) => [0, h / 2];\n break;\n case \"bottomRight\":\n isDiagonal = true;\n getPoint = (w, h) => [w, h];\n getOpposite = (w, h) => [0, 0];\n break;\n case \"bottomMiddle\":\n getPoint = (w, h) => [w / 2, h];\n getOpposite = (w, h) => [w / 2, 0];\n break;\n case \"bottomLeft\":\n isDiagonal = true;\n getPoint = (w, h) => [0, h];\n getOpposite = (w, h) => [w, 0];\n break;\n case \"middleLeft\":\n isHorizontal = true;\n getPoint = (w, h) => [0, h / 2];\n getOpposite = (w, h) => [w, h / 2];\n break;\n }\n const point = getPoint(savedWidth, savedHeight);\n const oppositePoint = getOpposite(savedWidth, savedHeight);\n let transfOppositePoint = transf(...oppositePoint);\n const oppositeX = round(savedX + transfOppositePoint[0]);\n const oppositeY = round(savedY + transfOppositePoint[1]);\n let ratioX = 1;\n let ratioY = 1;\n let [deltaX, deltaY] = this.screenToPageTranslation(event.movementX, event.movementY);\n [deltaX, deltaY] = invTransf(deltaX / parentWidth, deltaY / parentHeight);\n if (isDiagonal) {\n const oldDiag = Math.hypot(savedWidth, savedHeight);\n ratioX = ratioY = Math.max(Math.min(Math.hypot(oppositePoint[0] - point[0] - deltaX, oppositePoint[1] - point[1] - deltaY) / oldDiag, 1 / savedWidth, 1 / savedHeight), minWidth / savedWidth, minHeight / savedHeight);\n } else if (isHorizontal) {\n ratioX = Math.max(minWidth, Math.min(1, Math.abs(oppositePoint[0] - point[0] - deltaX))) / savedWidth;\n } else {\n ratioY = Math.max(minHeight, Math.min(1, Math.abs(oppositePoint[1] - point[1] - deltaY))) / savedHeight;\n }\n const newWidth = round(savedWidth * ratioX);\n const newHeight = round(savedHeight * ratioY);\n transfOppositePoint = transf(...getOpposite(newWidth, newHeight));\n const newX = oppositeX - transfOppositePoint[0];\n const newY = oppositeY - transfOppositePoint[1];\n this.width = newWidth;\n this.height = newHeight;\n this.x = newX;\n this.y = newY;\n this.setDims(parentWidth * newWidth, parentHeight * newHeight);\n this.fixAndSetPosition();\n }\n altTextFinish() {\n this.#altText?.finish();\n }\n async addEditToolbar() {\n if (this.#editToolbar || this.#isInEditMode) {\n return this.#editToolbar;\n }\n this.#editToolbar = new EditorToolbar(this);\n this.div.append(this.#editToolbar.render());\n if (this.#altText) {\n this.#editToolbar.addAltTextButton(await this.#altText.render());\n }\n return this.#editToolbar;\n }\n removeEditToolbar() {\n if (!this.#editToolbar) {\n return;\n }\n this.#editToolbar.remove();\n this.#editToolbar = null;\n this.#altText?.destroy();\n }\n getClientDimensions() {\n return this.div.getBoundingClientRect();\n }\n async addAltTextButton() {\n if (this.#altText) {\n return;\n }\n AltText.initialize(AnnotationEditor._l10nPromise);\n this.#altText = new AltText(this);\n if (this.#accessibilityData) {\n this.#altText.data = this.#accessibilityData;\n this.#accessibilityData = null;\n }\n await this.addEditToolbar();\n }\n get altTextData() {\n return this.#altText?.data;\n }\n set altTextData(data) {\n if (!this.#altText) {\n return;\n }\n this.#altText.data = data;\n }\n hasAltText() {\n return !this.#altText?.isEmpty();\n }\n render() {\n this.div = document.createElement(\"div\");\n this.div.setAttribute(\"data-editor-rotation\", (360 - this.rotation) % 360);\n this.div.className = this.name;\n this.div.setAttribute(\"id\", this.id);\n this.div.tabIndex = this.#disabled ? -1 : 0;\n if (!this._isVisible) {\n this.div.classList.add(\"hidden\");\n }\n this.setInForeground();\n const signal = this._uiManager._signal;\n this.div.addEventListener(\"focusin\", this.#boundFocusin, {\n signal\n });\n this.div.addEventListener(\"focusout\", this.#boundFocusout, {\n signal\n });\n const [parentWidth, parentHeight] = this.parentDimensions;\n if (this.parentRotation % 180 !== 0) {\n this.div.style.maxWidth = `${(100 * parentHeight / parentWidth).toFixed(2)}%`;\n this.div.style.maxHeight = `${(100 * parentWidth / parentHeight).toFixed(2)}%`;\n }\n const [tx, ty] = this.getInitialTranslation();\n this.translate(tx, ty);\n bindEvents(this, this.div, [\"pointerdown\"]);\n return this.div;\n }\n pointerdown(event) {\n const {\n isMac\n } = util_FeatureTest.platform;\n if (event.button !== 0 || event.ctrlKey && isMac) {\n event.preventDefault();\n return;\n }\n this.#hasBeenClicked = true;\n if (this._isDraggable) {\n this.#setUpDragSession(event);\n return;\n }\n this.#selectOnPointerEvent(event);\n }\n #selectOnPointerEvent(event) {\n const {\n isMac\n } = util_FeatureTest.platform;\n if (event.ctrlKey && !isMac || event.shiftKey || event.metaKey && isMac) {\n this.parent.toggleSelected(this);\n } else {\n this.parent.setSelected(this);\n }\n }\n #setUpDragSession(event) {\n const isSelected = this._uiManager.isSelected(this);\n this._uiManager.setUpDragSession();\n let pointerMoveOptions, pointerMoveCallback;\n const signal = this._uiManager._signal;\n if (isSelected) {\n this.div.classList.add(\"moving\");\n pointerMoveOptions = {\n passive: true,\n capture: true,\n signal\n };\n this.#prevDragX = event.clientX;\n this.#prevDragY = event.clientY;\n pointerMoveCallback = e => {\n const {\n clientX: x,\n clientY: y\n } = e;\n const [tx, ty] = this.screenToPageTranslation(x - this.#prevDragX, y - this.#prevDragY);\n this.#prevDragX = x;\n this.#prevDragY = y;\n this._uiManager.dragSelectedEditors(tx, ty);\n };\n window.addEventListener(\"pointermove\", pointerMoveCallback, pointerMoveOptions);\n }\n const pointerUpCallback = () => {\n window.removeEventListener(\"pointerup\", pointerUpCallback);\n window.removeEventListener(\"blur\", pointerUpCallback);\n if (isSelected) {\n this.div.classList.remove(\"moving\");\n window.removeEventListener(\"pointermove\", pointerMoveCallback, pointerMoveOptions);\n }\n this.#hasBeenClicked = false;\n if (!this._uiManager.endDragSession()) {\n this.#selectOnPointerEvent(event);\n }\n };\n window.addEventListener(\"pointerup\", pointerUpCallback, {\n signal\n });\n window.addEventListener(\"blur\", pointerUpCallback, {\n signal\n });\n }\n moveInDOM() {\n if (this.#moveInDOMTimeout) {\n clearTimeout(this.#moveInDOMTimeout);\n }\n this.#moveInDOMTimeout = setTimeout(() => {\n this.#moveInDOMTimeout = null;\n this.parent?.moveEditorInDOM(this);\n }, 0);\n }\n _setParentAndPosition(parent, x, y) {\n parent.changeParent(this);\n this.x = x;\n this.y = y;\n this.fixAndSetPosition();\n }\n getRect(tx, ty, rotation = this.rotation) {\n const scale = this.parentScale;\n const [pageWidth, pageHeight] = this.pageDimensions;\n const [pageX, pageY] = this.pageTranslation;\n const shiftX = tx / scale;\n const shiftY = ty / scale;\n const x = this.x * pageWidth;\n const y = this.y * pageHeight;\n const width = this.width * pageWidth;\n const height = this.height * pageHeight;\n switch (rotation) {\n case 0:\n return [x + shiftX + pageX, pageHeight - y - shiftY - height + pageY, x + shiftX + width + pageX, pageHeight - y - shiftY + pageY];\n case 90:\n return [x + shiftY + pageX, pageHeight - y + shiftX + pageY, x + shiftY + height + pageX, pageHeight - y + shiftX + width + pageY];\n case 180:\n return [x - shiftX - width + pageX, pageHeight - y + shiftY + pageY, x - shiftX + pageX, pageHeight - y + shiftY + height + pageY];\n case 270:\n return [x - shiftY - height + pageX, pageHeight - y - shiftX - width + pageY, x - shiftY + pageX, pageHeight - y - shiftX + pageY];\n default:\n throw new Error(\"Invalid rotation\");\n }\n }\n getRectInCurrentCoords(rect, pageHeight) {\n const [x1, y1, x2, y2] = rect;\n const width = x2 - x1;\n const height = y2 - y1;\n switch (this.rotation) {\n case 0:\n return [x1, pageHeight - y2, width, height];\n case 90:\n return [x1, pageHeight - y1, height, width];\n case 180:\n return [x2, pageHeight - y1, width, height];\n case 270:\n return [x2, pageHeight - y2, height, width];\n default:\n throw new Error(\"Invalid rotation\");\n }\n }\n onceAdded() {}\n isEmpty() {\n return false;\n }\n enableEditMode() {\n this.#isInEditMode = true;\n }\n disableEditMode() {\n this.#isInEditMode = false;\n }\n isInEditMode() {\n return this.#isInEditMode;\n }\n shouldGetKeyboardEvents() {\n return this.#isResizerEnabledForKeyboard;\n }\n needsToBeRebuilt() {\n return this.div && !this.isAttachedToDOM;\n }\n rebuild() {\n const signal = this._uiManager._signal;\n this.div?.addEventListener(\"focusin\", this.#boundFocusin, {\n signal\n });\n this.div?.addEventListener(\"focusout\", this.#boundFocusout, {\n signal\n });\n }\n rotate(_angle) {}\n serialize(isForCopying = false, context = null) {\n unreachable(\"An editor must be serializable\");\n }\n static deserialize(data, parent, uiManager) {\n const editor = new this.prototype.constructor({\n parent,\n id: parent.getNextId(),\n uiManager\n });\n editor.rotation = data.rotation;\n editor.#accessibilityData = data.accessibilityData;\n const [pageWidth, pageHeight] = editor.pageDimensions;\n const [x, y, width, height] = editor.getRectInCurrentCoords(data.rect, pageHeight);\n editor.x = x / pageWidth;\n editor.y = y / pageHeight;\n editor.width = width / pageWidth;\n editor.height = height / pageHeight;\n return editor;\n }\n get hasBeenModified() {\n return !!this.annotationElementId && (this.deleted || this.serialize() !== null);\n }\n remove() {\n this.div.removeEventListener(\"focusin\", this.#boundFocusin);\n this.div.removeEventListener(\"focusout\", this.#boundFocusout);\n if (!this.isEmpty()) {\n this.commit();\n }\n if (this.parent) {\n this.parent.remove(this);\n } else {\n this._uiManager.removeEditor(this);\n }\n if (this.#moveInDOMTimeout) {\n clearTimeout(this.#moveInDOMTimeout);\n this.#moveInDOMTimeout = null;\n }\n this.#stopResizing();\n this.removeEditToolbar();\n if (this.#telemetryTimeouts) {\n for (const timeout of this.#telemetryTimeouts.values()) {\n clearTimeout(timeout);\n }\n this.#telemetryTimeouts = null;\n }\n this.parent = null;\n }\n get isResizable() {\n return false;\n }\n makeResizable() {\n if (this.isResizable) {\n this.#createResizers();\n this.#resizersDiv.classList.remove(\"hidden\");\n bindEvents(this, this.div, [\"keydown\"]);\n }\n }\n get toolbarPosition() {\n return null;\n }\n keydown(event) {\n if (!this.isResizable || event.target !== this.div || event.key !== \"Enter\") {\n return;\n }\n this._uiManager.setSelected(this);\n this.#savedDimensions = {\n savedX: this.x,\n savedY: this.y,\n savedWidth: this.width,\n savedHeight: this.height\n };\n const children = this.#resizersDiv.children;\n if (!this.#allResizerDivs) {\n this.#allResizerDivs = Array.from(children);\n const boundResizerKeydown = this.#resizerKeydown.bind(this);\n const boundResizerBlur = this.#resizerBlur.bind(this);\n const signal = this._uiManager._signal;\n for (const div of this.#allResizerDivs) {\n const name = div.getAttribute(\"data-resizer-name\");\n div.setAttribute(\"role\", \"spinbutton\");\n div.addEventListener(\"keydown\", boundResizerKeydown, {\n signal\n });\n div.addEventListener(\"blur\", boundResizerBlur, {\n signal\n });\n div.addEventListener(\"focus\", this.#resizerFocus.bind(this, name), {\n signal\n });\n AnnotationEditor._l10nPromise.get(`pdfjs-editor-resizer-label-${name}`).then(msg => div.setAttribute(\"aria-label\", msg));\n }\n }\n const first = this.#allResizerDivs[0];\n let firstPosition = 0;\n for (const div of children) {\n if (div === first) {\n break;\n }\n firstPosition++;\n }\n const nextFirstPosition = (360 - this.rotation + this.parentRotation) % 360 / 90 * (this.#allResizerDivs.length / 4);\n if (nextFirstPosition !== firstPosition) {\n if (nextFirstPosition < firstPosition) {\n for (let i = 0; i < firstPosition - nextFirstPosition; i++) {\n this.#resizersDiv.append(this.#resizersDiv.firstChild);\n }\n } else if (nextFirstPosition > firstPosition) {\n for (let i = 0; i < nextFirstPosition - firstPosition; i++) {\n this.#resizersDiv.firstChild.before(this.#resizersDiv.lastChild);\n }\n }\n let i = 0;\n for (const child of children) {\n const div = this.#allResizerDivs[i++];\n const name = div.getAttribute(\"data-resizer-name\");\n AnnotationEditor._l10nPromise.get(`pdfjs-editor-resizer-label-${name}`).then(msg => child.setAttribute(\"aria-label\", msg));\n }\n }\n this.#setResizerTabIndex(0);\n this.#isResizerEnabledForKeyboard = true;\n this.#resizersDiv.firstChild.focus({\n focusVisible: true\n });\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n #resizerKeydown(event) {\n AnnotationEditor._resizerKeyboardManager.exec(this, event);\n }\n #resizerBlur(event) {\n if (this.#isResizerEnabledForKeyboard && event.relatedTarget?.parentNode !== this.#resizersDiv) {\n this.#stopResizing();\n }\n }\n #resizerFocus(name) {\n this.#focusedResizerName = this.#isResizerEnabledForKeyboard ? name : \"\";\n }\n #setResizerTabIndex(value) {\n if (!this.#allResizerDivs) {\n return;\n }\n for (const div of this.#allResizerDivs) {\n div.tabIndex = value;\n }\n }\n _resizeWithKeyboard(x, y) {\n if (!this.#isResizerEnabledForKeyboard) {\n return;\n }\n this.#resizerPointermove(this.#focusedResizerName, {\n movementX: x,\n movementY: y\n });\n }\n #stopResizing() {\n this.#isResizerEnabledForKeyboard = false;\n this.#setResizerTabIndex(-1);\n if (this.#savedDimensions) {\n const {\n savedX,\n savedY,\n savedWidth,\n savedHeight\n } = this.#savedDimensions;\n this.#addResizeToUndoStack(savedX, savedY, savedWidth, savedHeight);\n this.#savedDimensions = null;\n }\n }\n _stopResizingWithKeyboard() {\n this.#stopResizing();\n this.div.focus();\n }\n select() {\n this.makeResizable();\n this.div?.classList.add(\"selectedEditor\");\n if (!this.#editToolbar) {\n this.addEditToolbar().then(() => {\n if (this.div?.classList.contains(\"selectedEditor\")) {\n this.#editToolbar?.show();\n }\n });\n return;\n }\n this.#editToolbar?.show();\n }\n unselect() {\n this.#resizersDiv?.classList.add(\"hidden\");\n this.div?.classList.remove(\"selectedEditor\");\n if (this.div?.contains(document.activeElement)) {\n this._uiManager.currentLayer.div.focus({\n preventScroll: true\n });\n }\n this.#editToolbar?.hide();\n }\n updateParams(type, value) {}\n disableEditing() {}\n enableEditing() {}\n enterInEditMode() {}\n getImageForAltText() {\n return null;\n }\n get contentDiv() {\n return this.div;\n }\n get isEditing() {\n return this.#isEditing;\n }\n set isEditing(value) {\n this.#isEditing = value;\n if (!this.parent) {\n return;\n }\n if (value) {\n this.parent.setSelected(this);\n this.parent.setActiveEditor(this);\n } else {\n this.parent.setActiveEditor(null);\n }\n }\n setAspectRatio(width, height) {\n this.#keepAspectRatio = true;\n const aspectRatio = width / height;\n const {\n style\n } = this.div;\n style.aspectRatio = aspectRatio;\n style.height = \"auto\";\n }\n static get MIN_SIZE() {\n return 16;\n }\n static canCreateNewEmptyEditor() {\n return true;\n }\n get telemetryInitialData() {\n return {\n action: \"added\"\n };\n }\n get telemetryFinalData() {\n return null;\n }\n _reportTelemetry(data, mustWait = false) {\n if (mustWait) {\n this.#telemetryTimeouts ||= new Map();\n const {\n action\n } = data;\n let timeout = this.#telemetryTimeouts.get(action);\n if (timeout) {\n clearTimeout(timeout);\n }\n timeout = setTimeout(() => {\n this._reportTelemetry(data);\n this.#telemetryTimeouts.delete(action);\n if (this.#telemetryTimeouts.size === 0) {\n this.#telemetryTimeouts = null;\n }\n }, AnnotationEditor._telemetryTimeout);\n this.#telemetryTimeouts.set(action, timeout);\n return;\n }\n data.type ||= this.editorType;\n this._uiManager._eventBus.dispatch(\"reporttelemetry\", {\n source: this,\n details: {\n type: \"editing\",\n data\n }\n });\n }\n show(visible = this._isVisible) {\n this.div.classList.toggle(\"hidden\", !visible);\n this._isVisible = visible;\n }\n enable() {\n if (this.div) {\n this.div.tabIndex = 0;\n }\n this.#disabled = false;\n }\n disable() {\n if (this.div) {\n this.div.tabIndex = -1;\n }\n this.#disabled = true;\n }\n renderAnnotationElement(annotation) {\n let content = annotation.container.querySelector(\".annotationContent\");\n if (!content) {\n content = document.createElement(\"div\");\n content.classList.add(\"annotationContent\", this.editorType);\n annotation.container.prepend(content);\n } else if (content.nodeName === \"CANVAS\") {\n const canvas = content;\n content = document.createElement(\"div\");\n content.classList.add(\"annotationContent\", this.editorType);\n canvas.before(content);\n }\n return content;\n }\n resetAnnotationElement(annotation) {\n const {\n firstChild\n } = annotation.container;\n if (firstChild.nodeName === \"DIV\" && firstChild.classList.contains(\"annotationContent\")) {\n firstChild.remove();\n }\n }\n}\nclass FakeEditor extends AnnotationEditor {\n constructor(params) {\n super(params);\n this.annotationElementId = params.annotationElementId;\n this.deleted = true;\n }\n serialize() {\n return {\n id: this.annotationElementId,\n deleted: true,\n pageIndex: this.pageIndex\n };\n }\n}\n\n;// CONCATENATED MODULE: ./src/shared/murmurhash3.js\nconst SEED = 0xc3d2e1f0;\nconst MASK_HIGH = 0xffff0000;\nconst MASK_LOW = 0xffff;\nclass MurmurHash3_64 {\n constructor(seed) {\n this.h1 = seed ? seed & 0xffffffff : SEED;\n this.h2 = seed ? seed & 0xffffffff : SEED;\n }\n update(input) {\n let data, length;\n if (typeof input === \"string\") {\n data = new Uint8Array(input.length * 2);\n length = 0;\n for (let i = 0, ii = input.length; i < ii; i++) {\n const code = input.charCodeAt(i);\n if (code <= 0xff) {\n data[length++] = code;\n } else {\n data[length++] = code >>> 8;\n data[length++] = code & 0xff;\n }\n }\n } else if (ArrayBuffer.isView(input)) {\n data = input.slice();\n length = data.byteLength;\n } else {\n throw new Error(\"Invalid data format, must be a string or TypedArray.\");\n }\n const blockCounts = length >> 2;\n const tailLength = length - blockCounts * 4;\n const dataUint32 = new Uint32Array(data.buffer, 0, blockCounts);\n let k1 = 0,\n k2 = 0;\n let h1 = this.h1,\n h2 = this.h2;\n const C1 = 0xcc9e2d51,\n C2 = 0x1b873593;\n const C1_LOW = C1 & MASK_LOW,\n C2_LOW = C2 & MASK_LOW;\n for (let i = 0; i < blockCounts; i++) {\n if (i & 1) {\n k1 = dataUint32[i];\n k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n h1 ^= k1;\n h1 = h1 << 13 | h1 >>> 19;\n h1 = h1 * 5 + 0xe6546b64;\n } else {\n k2 = dataUint32[i];\n k2 = k2 * C1 & MASK_HIGH | k2 * C1_LOW & MASK_LOW;\n k2 = k2 << 15 | k2 >>> 17;\n k2 = k2 * C2 & MASK_HIGH | k2 * C2_LOW & MASK_LOW;\n h2 ^= k2;\n h2 = h2 << 13 | h2 >>> 19;\n h2 = h2 * 5 + 0xe6546b64;\n }\n }\n k1 = 0;\n switch (tailLength) {\n case 3:\n k1 ^= data[blockCounts * 4 + 2] << 16;\n case 2:\n k1 ^= data[blockCounts * 4 + 1] << 8;\n case 1:\n k1 ^= data[blockCounts * 4];\n k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n if (blockCounts & 1) {\n h1 ^= k1;\n } else {\n h2 ^= k1;\n }\n }\n this.h1 = h1;\n this.h2 = h2;\n }\n hexdigest() {\n let h1 = this.h1,\n h2 = this.h2;\n h1 ^= h2 >>> 1;\n h1 = h1 * 0xed558ccd & MASK_HIGH | h1 * 0x8ccd & MASK_LOW;\n h2 = h2 * 0xff51afd7 & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xafd7ed55 & MASK_HIGH) >>> 16;\n h1 ^= h2 >>> 1;\n h1 = h1 * 0x1a85ec53 & MASK_HIGH | h1 * 0xec53 & MASK_LOW;\n h2 = h2 * 0xc4ceb9fe & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xb9fe1a85 & MASK_HIGH) >>> 16;\n h1 ^= h2 >>> 1;\n return (h1 >>> 0).toString(16).padStart(8, \"0\") + (h2 >>> 0).toString(16).padStart(8, \"0\");\n }\n}\n\n;// CONCATENATED MODULE: ./src/display/annotation_storage.js\n\n\n\nconst SerializableEmpty = Object.freeze({\n map: null,\n hash: \"\",\n transfer: undefined\n});\nclass AnnotationStorage {\n #modified = false;\n #storage = new Map();\n constructor() {\n this.onSetModified = null;\n this.onResetModified = null;\n this.onAnnotationEditor = null;\n }\n getValue(key, defaultValue) {\n const value = this.#storage.get(key);\n if (value === undefined) {\n return defaultValue;\n }\n return Object.assign(defaultValue, value);\n }\n getRawValue(key) {\n return this.#storage.get(key);\n }\n remove(key) {\n this.#storage.delete(key);\n if (this.#storage.size === 0) {\n this.resetModified();\n }\n if (typeof this.onAnnotationEditor === \"function\") {\n for (const value of this.#storage.values()) {\n if (value instanceof AnnotationEditor) {\n return;\n }\n }\n this.onAnnotationEditor(null);\n }\n }\n setValue(key, value) {\n const obj = this.#storage.get(key);\n let modified = false;\n if (obj !== undefined) {\n for (const [entry, val] of Object.entries(value)) {\n if (obj[entry] !== val) {\n modified = true;\n obj[entry] = val;\n }\n }\n } else {\n modified = true;\n this.#storage.set(key, value);\n }\n if (modified) {\n this.#setModified();\n }\n if (value instanceof AnnotationEditor && typeof this.onAnnotationEditor === \"function\") {\n this.onAnnotationEditor(value.constructor._type);\n }\n }\n has(key) {\n return this.#storage.has(key);\n }\n getAll() {\n return this.#storage.size > 0 ? objectFromMap(this.#storage) : null;\n }\n setAll(obj) {\n for (const [key, val] of Object.entries(obj)) {\n this.setValue(key, val);\n }\n }\n get size() {\n return this.#storage.size;\n }\n #setModified() {\n if (!this.#modified) {\n this.#modified = true;\n if (typeof this.onSetModified === \"function\") {\n this.onSetModified();\n }\n }\n }\n resetModified() {\n if (this.#modified) {\n this.#modified = false;\n if (typeof this.onResetModified === \"function\") {\n this.onResetModified();\n }\n }\n }\n get print() {\n return new PrintAnnotationStorage(this);\n }\n get serializable() {\n if (this.#storage.size === 0) {\n return SerializableEmpty;\n }\n const map = new Map(),\n hash = new MurmurHash3_64(),\n transfer = [];\n const context = Object.create(null);\n let hasBitmap = false;\n for (const [key, val] of this.#storage) {\n const serialized = val instanceof AnnotationEditor ? val.serialize(false, context) : val;\n if (serialized) {\n map.set(key, serialized);\n hash.update(`${key}:${JSON.stringify(serialized)}`);\n hasBitmap ||= !!serialized.bitmap;\n }\n }\n if (hasBitmap) {\n for (const value of map.values()) {\n if (value.bitmap) {\n transfer.push(value.bitmap);\n }\n }\n }\n return map.size > 0 ? {\n map,\n hash: hash.hexdigest(),\n transfer\n } : SerializableEmpty;\n }\n get editorStats() {\n let stats = null;\n const typeToEditor = new Map();\n for (const value of this.#storage.values()) {\n if (!(value instanceof AnnotationEditor)) {\n continue;\n }\n const editorStats = value.telemetryFinalData;\n if (!editorStats) {\n continue;\n }\n const {\n type\n } = editorStats;\n if (!typeToEditor.has(type)) {\n typeToEditor.set(type, Object.getPrototypeOf(value).constructor);\n }\n stats ||= Object.create(null);\n const map = stats[type] ||= new Map();\n for (const [key, val] of Object.entries(editorStats)) {\n if (key === \"type\") {\n continue;\n }\n let counters = map.get(key);\n if (!counters) {\n counters = new Map();\n map.set(key, counters);\n }\n const count = counters.get(val) ?? 0;\n counters.set(val, count + 1);\n }\n }\n for (const [type, editor] of typeToEditor) {\n stats[type] = editor.computeTelemetryFinalData(stats[type]);\n }\n return stats;\n }\n}\nclass PrintAnnotationStorage extends AnnotationStorage {\n #serializable;\n constructor(parent) {\n super();\n const {\n map,\n hash,\n transfer\n } = parent.serializable;\n const clone = structuredClone(map, transfer ? {\n transfer\n } : null);\n this.#serializable = {\n map: clone,\n hash,\n transfer\n };\n }\n get print() {\n unreachable(\"Should not call PrintAnnotationStorage.print\");\n }\n get serializable() {\n return this.#serializable;\n }\n}\n\n;// CONCATENATED MODULE: ./src/display/font_loader.js\n\nclass FontLoader {\n #systemFonts = new Set();\n constructor({\n ownerDocument = globalThis.document,\n styleElement = null\n }) {\n this._document = ownerDocument;\n this.nativeFontFaces = new Set();\n this.styleElement = null;\n this.loadingRequests = [];\n this.loadTestFontId = 0;\n }\n addNativeFontFace(nativeFontFace) {\n this.nativeFontFaces.add(nativeFontFace);\n this._document.fonts.add(nativeFontFace);\n }\n removeNativeFontFace(nativeFontFace) {\n this.nativeFontFaces.delete(nativeFontFace);\n this._document.fonts.delete(nativeFontFace);\n }\n insertRule(rule) {\n if (!this.styleElement) {\n this.styleElement = this._document.createElement(\"style\");\n this._document.documentElement.getElementsByTagName(\"head\")[0].append(this.styleElement);\n }\n const styleSheet = this.styleElement.sheet;\n styleSheet.insertRule(rule, styleSheet.cssRules.length);\n }\n clear() {\n for (const nativeFontFace of this.nativeFontFaces) {\n this._document.fonts.delete(nativeFontFace);\n }\n this.nativeFontFaces.clear();\n this.#systemFonts.clear();\n if (this.styleElement) {\n this.styleElement.remove();\n this.styleElement = null;\n }\n }\n async loadSystemFont({\n systemFontInfo: info,\n _inspectFont\n }) {\n if (!info || this.#systemFonts.has(info.loadedName)) {\n return;\n }\n assert(!this.disableFontFace, \"loadSystemFont shouldn't be called when `disableFontFace` is set.\");\n if (this.isFontLoadingAPISupported) {\n const {\n loadedName,\n src,\n style\n } = info;\n const fontFace = new FontFace(loadedName, src, style);\n this.addNativeFontFace(fontFace);\n try {\n await fontFace.load();\n this.#systemFonts.add(loadedName);\n _inspectFont?.(info);\n } catch {\n warn(`Cannot load system font: ${info.baseFontName}, installing it could help to improve PDF rendering.`);\n this.removeNativeFontFace(fontFace);\n }\n return;\n }\n unreachable(\"Not implemented: loadSystemFont without the Font Loading API.\");\n }\n async bind(font) {\n if (font.attached || font.missingFile && !font.systemFontInfo) {\n return;\n }\n font.attached = true;\n if (font.systemFontInfo) {\n await this.loadSystemFont(font);\n return;\n }\n if (this.isFontLoadingAPISupported) {\n const nativeFontFace = font.createNativeFontFace();\n if (nativeFontFace) {\n this.addNativeFontFace(nativeFontFace);\n try {\n await nativeFontFace.loaded;\n } catch (ex) {\n warn(`Failed to load font '${nativeFontFace.family}': '${ex}'.`);\n font.disableFontFace = true;\n throw ex;\n }\n }\n return;\n }\n const rule = font.createFontFaceRule();\n if (rule) {\n this.insertRule(rule);\n if (this.isSyncFontLoadingSupported) {\n return;\n }\n await new Promise(resolve => {\n const request = this._queueLoadingCallback(resolve);\n this._prepareFontLoadEvent(font, request);\n });\n }\n }\n get isFontLoadingAPISupported() {\n const hasFonts = !!this._document?.fonts;\n return shadow(this, \"isFontLoadingAPISupported\", hasFonts);\n }\n get isSyncFontLoadingSupported() {\n let supported = false;\n if (isNodeJS) {\n supported = true;\n } else if (typeof navigator !== \"undefined\" && typeof navigator?.userAgent === \"string\" && /Mozilla\\/5.0.*?rv:\\d+.*? Gecko/.test(navigator.userAgent)) {\n supported = true;\n }\n return shadow(this, \"isSyncFontLoadingSupported\", supported);\n }\n _queueLoadingCallback(callback) {\n function completeRequest() {\n assert(!request.done, \"completeRequest() cannot be called twice.\");\n request.done = true;\n while (loadingRequests.length > 0 && loadingRequests[0].done) {\n const otherRequest = loadingRequests.shift();\n setTimeout(otherRequest.callback, 0);\n }\n }\n const {\n loadingRequests\n } = this;\n const request = {\n done: false,\n complete: completeRequest,\n callback\n };\n loadingRequests.push(request);\n return request;\n }\n get _loadTestFont() {\n const testFont = atob(\"T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA\" + \"FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA\" + \"ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA\" + \"AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1\" + \"AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD\" + \"6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM\" + \"AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D\" + \"IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA\" + \"AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA\" + \"AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB\" + \"AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY\" + \"AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA\" + \"AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA\" + \"AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC\" + \"AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3\" + \"Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj\" + \"FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==\");\n return shadow(this, \"_loadTestFont\", testFont);\n }\n _prepareFontLoadEvent(font, request) {\n function int32(data, offset) {\n return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff;\n }\n function spliceString(s, offset, remove, insert) {\n const chunk1 = s.substring(0, offset);\n const chunk2 = s.substring(offset + remove);\n return chunk1 + insert + chunk2;\n }\n let i, ii;\n const canvas = this._document.createElement(\"canvas\");\n canvas.width = 1;\n canvas.height = 1;\n const ctx = canvas.getContext(\"2d\");\n let called = 0;\n function isFontReady(name, callback) {\n if (++called > 30) {\n warn(\"Load test font never loaded.\");\n callback();\n return;\n }\n ctx.font = \"30px \" + name;\n ctx.fillText(\".\", 0, 20);\n const imageData = ctx.getImageData(0, 0, 1, 1);\n if (imageData.data[3] > 0) {\n callback();\n return;\n }\n setTimeout(isFontReady.bind(null, name, callback));\n }\n const loadTestFontId = `lt${Date.now()}${this.loadTestFontId++}`;\n let data = this._loadTestFont;\n const COMMENT_OFFSET = 976;\n data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId);\n const CFF_CHECKSUM_OFFSET = 16;\n const XXXX_VALUE = 0x58585858;\n let checksum = int32(data, CFF_CHECKSUM_OFFSET);\n for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0;\n }\n if (i < loadTestFontId.length) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId + \"XXX\", i) | 0;\n }\n data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, string32(checksum));\n const url = `url(data:font/opentype;base64,${btoa(data)});`;\n const rule = `@font-face {font-family:\"${loadTestFontId}\";src:${url}}`;\n this.insertRule(rule);\n const div = this._document.createElement(\"div\");\n div.style.visibility = \"hidden\";\n div.style.width = div.style.height = \"10px\";\n div.style.position = \"absolute\";\n div.style.top = div.style.left = \"0px\";\n for (const name of [font.loadedName, loadTestFontId]) {\n const span = this._document.createElement(\"span\");\n span.textContent = \"Hi\";\n span.style.fontFamily = name;\n div.append(span);\n }\n this._document.body.append(div);\n isFontReady(loadTestFontId, () => {\n div.remove();\n request.complete();\n });\n }\n}\nclass FontFaceObject {\n constructor(translatedData, {\n disableFontFace = false,\n inspectFont = null\n }) {\n this.compiledGlyphs = Object.create(null);\n for (const i in translatedData) {\n this[i] = translatedData[i];\n }\n this.disableFontFace = disableFontFace === true;\n this._inspectFont = inspectFont;\n }\n createNativeFontFace() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n let nativeFontFace;\n if (!this.cssFontInfo) {\n nativeFontFace = new FontFace(this.loadedName, this.data, {});\n } else {\n const css = {\n weight: this.cssFontInfo.fontWeight\n };\n if (this.cssFontInfo.italicAngle) {\n css.style = `oblique ${this.cssFontInfo.italicAngle}deg`;\n }\n nativeFontFace = new FontFace(this.cssFontInfo.fontFamily, this.data, css);\n }\n this._inspectFont?.(this);\n return nativeFontFace;\n }\n createFontFaceRule() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n const data = bytesToString(this.data);\n const url = `url(data:${this.mimetype};base64,${btoa(data)});`;\n let rule;\n if (!this.cssFontInfo) {\n rule = `@font-face {font-family:\"${this.loadedName}\";src:${url}}`;\n } else {\n let css = `font-weight: ${this.cssFontInfo.fontWeight};`;\n if (this.cssFontInfo.italicAngle) {\n css += `font-style: oblique ${this.cssFontInfo.italicAngle}deg;`;\n }\n rule = `@font-face {font-family:\"${this.cssFontInfo.fontFamily}\";${css}src:${url}}`;\n }\n this._inspectFont?.(this, url);\n return rule;\n }\n getPathGenerator(objs, character) {\n if (this.compiledGlyphs[character] !== undefined) {\n return this.compiledGlyphs[character];\n }\n let cmds;\n try {\n cmds = objs.get(this.loadedName + \"_path_\" + character);\n } catch (ex) {\n warn(`getPathGenerator - ignoring character: \"${ex}\".`);\n }\n if (!Array.isArray(cmds) || cmds.length === 0) {\n return this.compiledGlyphs[character] = function (c, size) {};\n }\n const commands = [];\n for (let i = 0, ii = cmds.length; i < ii;) {\n switch (cmds[i++]) {\n case FontRenderOps.BEZIER_CURVE_TO:\n {\n const [a, b, c, d, e, f] = cmds.slice(i, i + 6);\n commands.push(ctx => ctx.bezierCurveTo(a, b, c, d, e, f));\n i += 6;\n }\n break;\n case FontRenderOps.MOVE_TO:\n {\n const [a, b] = cmds.slice(i, i + 2);\n commands.push(ctx => ctx.moveTo(a, b));\n i += 2;\n }\n break;\n case FontRenderOps.LINE_TO:\n {\n const [a, b] = cmds.slice(i, i + 2);\n commands.push(ctx => ctx.lineTo(a, b));\n i += 2;\n }\n break;\n case FontRenderOps.QUADRATIC_CURVE_TO:\n {\n const [a, b, c, d] = cmds.slice(i, i + 4);\n commands.push(ctx => ctx.quadraticCurveTo(a, b, c, d));\n i += 4;\n }\n break;\n case FontRenderOps.RESTORE:\n commands.push(ctx => ctx.restore());\n break;\n case FontRenderOps.SAVE:\n commands.push(ctx => ctx.save());\n break;\n case FontRenderOps.SCALE:\n assert(commands.length === 2, \"Scale command is only valid at the third position.\");\n break;\n case FontRenderOps.TRANSFORM:\n {\n const [a, b, c, d, e, f] = cmds.slice(i, i + 6);\n commands.push(ctx => ctx.transform(a, b, c, d, e, f));\n i += 6;\n }\n break;\n case FontRenderOps.TRANSLATE:\n {\n const [a, b] = cmds.slice(i, i + 2);\n commands.push(ctx => ctx.translate(a, b));\n i += 2;\n }\n break;\n }\n }\n return this.compiledGlyphs[character] = function glyphDrawer(ctx, size) {\n commands[0](ctx);\n commands[1](ctx);\n ctx.scale(size, -size);\n for (let i = 2, ii = commands.length; i < ii; i++) {\n commands[i](ctx);\n }\n };\n }\n}\n\n;// CONCATENATED MODULE: ./src/display/node_utils.js\n\n\nif (isNodeJS) {\n var packageCapability = Promise.withResolvers();\n var packageMap = null;\n const loadPackages = async () => {\n const fs = await import( /*webpackIgnore: true*/\"fs\"),\n http = await import( /*webpackIgnore: true*/\"http\"),\n https = await import( /*webpackIgnore: true*/\"https\"),\n url = await import( /*webpackIgnore: true*/\"url\");\n let canvas, path2d;\n return new Map(Object.entries({\n fs,\n http,\n https,\n url,\n canvas,\n path2d\n }));\n };\n loadPackages().then(map => {\n packageMap = map;\n packageCapability.resolve();\n }, reason => {\n warn(`loadPackages: ${reason}`);\n packageMap = new Map();\n packageCapability.resolve();\n });\n}\nclass NodePackages {\n static get promise() {\n return packageCapability.promise;\n }\n static get(name) {\n return packageMap?.get(name);\n }\n}\nconst node_utils_fetchData = function (url) {\n const fs = NodePackages.get(\"fs\");\n return fs.promises.readFile(url).then(data => new Uint8Array(data));\n};\nclass NodeFilterFactory extends BaseFilterFactory {}\nclass NodeCanvasFactory extends BaseCanvasFactory {\n _createCanvas(width, height) {\n const canvas = NodePackages.get(\"canvas\");\n return canvas.createCanvas(width, height);\n }\n}\nclass NodeCMapReaderFactory extends BaseCMapReaderFactory {\n _fetchData(url, compressionType) {\n return node_utils_fetchData(url).then(data => ({\n cMapData: data,\n compressionType\n }));\n }\n}\nclass NodeStandardFontDataFactory extends BaseStandardFontDataFactory {\n _fetchData(url) {\n return node_utils_fetchData(url);\n }\n}\n\n;// CONCATENATED MODULE: ./src/display/pattern_helper.js\n\n\nconst PathType = {\n FILL: \"Fill\",\n STROKE: \"Stroke\",\n SHADING: \"Shading\"\n};\nfunction applyBoundingBox(ctx, bbox) {\n if (!bbox) {\n return;\n }\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n const region = new Path2D();\n region.rect(bbox[0], bbox[1], width, height);\n ctx.clip(region);\n}\nclass BaseShadingPattern {\n constructor() {\n if (this.constructor === BaseShadingPattern) {\n unreachable(\"Cannot initialize BaseShadingPattern.\");\n }\n }\n getPattern() {\n unreachable(\"Abstract method `getPattern` called.\");\n }\n}\nclass RadialAxialShadingPattern extends BaseShadingPattern {\n constructor(IR) {\n super();\n this._type = IR[1];\n this._bbox = IR[2];\n this._colorStops = IR[3];\n this._p0 = IR[4];\n this._p1 = IR[5];\n this._r0 = IR[6];\n this._r1 = IR[7];\n this.matrix = null;\n }\n _createGradient(ctx) {\n let grad;\n if (this._type === \"axial\") {\n grad = ctx.createLinearGradient(this._p0[0], this._p0[1], this._p1[0], this._p1[1]);\n } else if (this._type === \"radial\") {\n grad = ctx.createRadialGradient(this._p0[0], this._p0[1], this._r0, this._p1[0], this._p1[1], this._r1);\n }\n for (const colorStop of this._colorStops) {\n grad.addColorStop(colorStop[0], colorStop[1]);\n }\n return grad;\n }\n getPattern(ctx, owner, inverse, pathType) {\n let pattern;\n if (pathType === PathType.STROKE || pathType === PathType.FILL) {\n const ownerBBox = owner.current.getClippedPathBoundingBox(pathType, getCurrentTransform(ctx)) || [0, 0, 0, 0];\n const width = Math.ceil(ownerBBox[2] - ownerBBox[0]) || 1;\n const height = Math.ceil(ownerBBox[3] - ownerBBox[1]) || 1;\n const tmpCanvas = owner.cachedCanvases.getCanvas(\"pattern\", width, height, true);\n const tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);\n tmpCtx.beginPath();\n tmpCtx.rect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);\n tmpCtx.translate(-ownerBBox[0], -ownerBBox[1]);\n inverse = Util.transform(inverse, [1, 0, 0, 1, ownerBBox[0], ownerBBox[1]]);\n tmpCtx.transform(...owner.baseTransform);\n if (this.matrix) {\n tmpCtx.transform(...this.matrix);\n }\n applyBoundingBox(tmpCtx, this._bbox);\n tmpCtx.fillStyle = this._createGradient(tmpCtx);\n tmpCtx.fill();\n pattern = ctx.createPattern(tmpCanvas.canvas, \"no-repeat\");\n const domMatrix = new DOMMatrix(inverse);\n pattern.setTransform(domMatrix);\n } else {\n applyBoundingBox(ctx, this._bbox);\n pattern = this._createGradient(ctx);\n }\n return pattern;\n }\n}\nfunction drawTriangle(data, context, p1, p2, p3, c1, c2, c3) {\n const coords = context.coords,\n colors = context.colors;\n const bytes = data.data,\n rowSize = data.width * 4;\n let tmp;\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n if (coords[p2 + 1] > coords[p3 + 1]) {\n tmp = p2;\n p2 = p3;\n p3 = tmp;\n tmp = c2;\n c2 = c3;\n c3 = tmp;\n }\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n const x1 = (coords[p1] + context.offsetX) * context.scaleX;\n const y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY;\n const x2 = (coords[p2] + context.offsetX) * context.scaleX;\n const y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY;\n const x3 = (coords[p3] + context.offsetX) * context.scaleX;\n const y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY;\n if (y1 >= y3) {\n return;\n }\n const c1r = colors[c1],\n c1g = colors[c1 + 1],\n c1b = colors[c1 + 2];\n const c2r = colors[c2],\n c2g = colors[c2 + 1],\n c2b = colors[c2 + 2];\n const c3r = colors[c3],\n c3g = colors[c3 + 1],\n c3b = colors[c3 + 2];\n const minY = Math.round(y1),\n maxY = Math.round(y3);\n let xa, car, cag, cab;\n let xb, cbr, cbg, cbb;\n for (let y = minY; y <= maxY; y++) {\n if (y < y2) {\n const k = y < y1 ? 0 : (y1 - y) / (y1 - y2);\n xa = x1 - (x1 - x2) * k;\n car = c1r - (c1r - c2r) * k;\n cag = c1g - (c1g - c2g) * k;\n cab = c1b - (c1b - c2b) * k;\n } else {\n let k;\n if (y > y3) {\n k = 1;\n } else if (y2 === y3) {\n k = 0;\n } else {\n k = (y2 - y) / (y2 - y3);\n }\n xa = x2 - (x2 - x3) * k;\n car = c2r - (c2r - c3r) * k;\n cag = c2g - (c2g - c3g) * k;\n cab = c2b - (c2b - c3b) * k;\n }\n let k;\n if (y < y1) {\n k = 0;\n } else if (y > y3) {\n k = 1;\n } else {\n k = (y1 - y) / (y1 - y3);\n }\n xb = x1 - (x1 - x3) * k;\n cbr = c1r - (c1r - c3r) * k;\n cbg = c1g - (c1g - c3g) * k;\n cbb = c1b - (c1b - c3b) * k;\n const x1_ = Math.round(Math.min(xa, xb));\n const x2_ = Math.round(Math.max(xa, xb));\n let j = rowSize * y + x1_ * 4;\n for (let x = x1_; x <= x2_; x++) {\n k = (xa - x) / (xa - xb);\n if (k < 0) {\n k = 0;\n } else if (k > 1) {\n k = 1;\n }\n bytes[j++] = car - (car - cbr) * k | 0;\n bytes[j++] = cag - (cag - cbg) * k | 0;\n bytes[j++] = cab - (cab - cbb) * k | 0;\n bytes[j++] = 255;\n }\n }\n}\nfunction drawFigure(data, figure, context) {\n const ps = figure.coords;\n const cs = figure.colors;\n let i, ii;\n switch (figure.type) {\n case \"lattice\":\n const verticesPerRow = figure.verticesPerRow;\n const rows = Math.floor(ps.length / verticesPerRow) - 1;\n const cols = verticesPerRow - 1;\n for (i = 0; i < rows; i++) {\n let q = i * verticesPerRow;\n for (let j = 0; j < cols; j++, q++) {\n drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]);\n drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]);\n }\n }\n break;\n case \"triangles\":\n for (i = 0, ii = ps.length; i < ii; i += 3) {\n drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]);\n }\n break;\n default:\n throw new Error(\"illegal figure\");\n }\n}\nclass MeshShadingPattern extends BaseShadingPattern {\n constructor(IR) {\n super();\n this._coords = IR[2];\n this._colors = IR[3];\n this._figures = IR[4];\n this._bounds = IR[5];\n this._bbox = IR[7];\n this._background = IR[8];\n this.matrix = null;\n }\n _createMeshCanvas(combinedScale, backgroundColor, cachedCanvases) {\n const EXPECTED_SCALE = 1.1;\n const MAX_PATTERN_SIZE = 3000;\n const BORDER_SIZE = 2;\n const offsetX = Math.floor(this._bounds[0]);\n const offsetY = Math.floor(this._bounds[1]);\n const boundsWidth = Math.ceil(this._bounds[2]) - offsetX;\n const boundsHeight = Math.ceil(this._bounds[3]) - offsetY;\n const width = Math.min(Math.ceil(Math.abs(boundsWidth * combinedScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n const height = Math.min(Math.ceil(Math.abs(boundsHeight * combinedScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n const scaleX = boundsWidth / width;\n const scaleY = boundsHeight / height;\n const context = {\n coords: this._coords,\n colors: this._colors,\n offsetX: -offsetX,\n offsetY: -offsetY,\n scaleX: 1 / scaleX,\n scaleY: 1 / scaleY\n };\n const paddedWidth = width + BORDER_SIZE * 2;\n const paddedHeight = height + BORDER_SIZE * 2;\n const tmpCanvas = cachedCanvases.getCanvas(\"mesh\", paddedWidth, paddedHeight, false);\n const tmpCtx = tmpCanvas.context;\n const data = tmpCtx.createImageData(width, height);\n if (backgroundColor) {\n const bytes = data.data;\n for (let i = 0, ii = bytes.length; i < ii; i += 4) {\n bytes[i] = backgroundColor[0];\n bytes[i + 1] = backgroundColor[1];\n bytes[i + 2] = backgroundColor[2];\n bytes[i + 3] = 255;\n }\n }\n for (const figure of this._figures) {\n drawFigure(data, figure, context);\n }\n tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE);\n const canvas = tmpCanvas.canvas;\n return {\n canvas,\n offsetX: offsetX - BORDER_SIZE * scaleX,\n offsetY: offsetY - BORDER_SIZE * scaleY,\n scaleX,\n scaleY\n };\n }\n getPattern(ctx, owner, inverse, pathType) {\n applyBoundingBox(ctx, this._bbox);\n let scale;\n if (pathType === PathType.SHADING) {\n scale = Util.singularValueDecompose2dScale(getCurrentTransform(ctx));\n } else {\n scale = Util.singularValueDecompose2dScale(owner.baseTransform);\n if (this.matrix) {\n const matrixScale = Util.singularValueDecompose2dScale(this.matrix);\n scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]];\n }\n }\n const temporaryPatternCanvas = this._createMeshCanvas(scale, pathType === PathType.SHADING ? null : this._background, owner.cachedCanvases);\n if (pathType !== PathType.SHADING) {\n ctx.setTransform(...owner.baseTransform);\n if (this.matrix) {\n ctx.transform(...this.matrix);\n }\n }\n ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);\n ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY);\n return ctx.createPattern(temporaryPatternCanvas.canvas, \"no-repeat\");\n }\n}\nclass DummyShadingPattern extends BaseShadingPattern {\n getPattern() {\n return \"hotpink\";\n }\n}\nfunction getShadingPattern(IR) {\n switch (IR[0]) {\n case \"RadialAxial\":\n return new RadialAxialShadingPattern(IR);\n case \"Mesh\":\n return new MeshShadingPattern(IR);\n case \"Dummy\":\n return new DummyShadingPattern();\n }\n throw new Error(`Unknown IR type: ${IR[0]}`);\n}\nconst PaintType = {\n COLORED: 1,\n UNCOLORED: 2\n};\nclass TilingPattern {\n static MAX_PATTERN_SIZE = 3000;\n constructor(IR, color, ctx, canvasGraphicsFactory, baseTransform) {\n this.operatorList = IR[2];\n this.matrix = IR[3];\n this.bbox = IR[4];\n this.xstep = IR[5];\n this.ystep = IR[6];\n this.paintType = IR[7];\n this.tilingType = IR[8];\n this.color = color;\n this.ctx = ctx;\n this.canvasGraphicsFactory = canvasGraphicsFactory;\n this.baseTransform = baseTransform;\n }\n createPatternCanvas(owner) {\n const operatorList = this.operatorList;\n const bbox = this.bbox;\n const xstep = this.xstep;\n const ystep = this.ystep;\n const paintType = this.paintType;\n const tilingType = this.tilingType;\n const color = this.color;\n const canvasGraphicsFactory = this.canvasGraphicsFactory;\n info(\"TilingType: \" + tilingType);\n const x0 = bbox[0],\n y0 = bbox[1],\n x1 = bbox[2],\n y1 = bbox[3];\n const matrixScale = Util.singularValueDecompose2dScale(this.matrix);\n const curMatrixScale = Util.singularValueDecompose2dScale(this.baseTransform);\n const combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]];\n const dimx = this.getSizeAndScale(xstep, this.ctx.canvas.width, combinedScale[0]);\n const dimy = this.getSizeAndScale(ystep, this.ctx.canvas.height, combinedScale[1]);\n const tmpCanvas = owner.cachedCanvases.getCanvas(\"pattern\", dimx.size, dimy.size, true);\n const tmpCtx = tmpCanvas.context;\n const graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx);\n graphics.groupLevel = owner.groupLevel;\n this.setFillAndStrokeStyleToContext(graphics, paintType, color);\n let adjustedX0 = x0;\n let adjustedY0 = y0;\n let adjustedX1 = x1;\n let adjustedY1 = y1;\n if (x0 < 0) {\n adjustedX0 = 0;\n adjustedX1 += Math.abs(x0);\n }\n if (y0 < 0) {\n adjustedY0 = 0;\n adjustedY1 += Math.abs(y0);\n }\n tmpCtx.translate(-(dimx.scale * adjustedX0), -(dimy.scale * adjustedY0));\n graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0);\n tmpCtx.save();\n this.clipBbox(graphics, adjustedX0, adjustedY0, adjustedX1, adjustedY1);\n graphics.baseTransform = getCurrentTransform(graphics.ctx);\n graphics.executeOperatorList(operatorList);\n graphics.endDrawing();\n return {\n canvas: tmpCanvas.canvas,\n scaleX: dimx.scale,\n scaleY: dimy.scale,\n offsetX: adjustedX0,\n offsetY: adjustedY0\n };\n }\n getSizeAndScale(step, realOutputSize, scale) {\n step = Math.abs(step);\n const maxSize = Math.max(TilingPattern.MAX_PATTERN_SIZE, realOutputSize);\n let size = Math.ceil(step * scale);\n if (size >= maxSize) {\n size = maxSize;\n } else {\n scale = size / step;\n }\n return {\n scale,\n size\n };\n }\n clipBbox(graphics, x0, y0, x1, y1) {\n const bboxWidth = x1 - x0;\n const bboxHeight = y1 - y0;\n graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight);\n graphics.current.updateRectMinMax(getCurrentTransform(graphics.ctx), [x0, y0, x1, y1]);\n graphics.clip();\n graphics.endPath();\n }\n setFillAndStrokeStyleToContext(graphics, paintType, color) {\n const context = graphics.ctx,\n current = graphics.current;\n switch (paintType) {\n case PaintType.COLORED:\n const ctx = this.ctx;\n context.fillStyle = ctx.fillStyle;\n context.strokeStyle = ctx.strokeStyle;\n current.fillColor = ctx.fillStyle;\n current.strokeColor = ctx.strokeStyle;\n break;\n case PaintType.UNCOLORED:\n const cssColor = Util.makeHexColor(color[0], color[1], color[2]);\n context.fillStyle = cssColor;\n context.strokeStyle = cssColor;\n current.fillColor = cssColor;\n current.strokeColor = cssColor;\n break;\n default:\n throw new FormatError(`Unsupported paint type: ${paintType}`);\n }\n }\n getPattern(ctx, owner, inverse, pathType) {\n let matrix = inverse;\n if (pathType !== PathType.SHADING) {\n matrix = Util.transform(matrix, owner.baseTransform);\n if (this.matrix) {\n matrix = Util.transform(matrix, this.matrix);\n }\n }\n const temporaryPatternCanvas = this.createPatternCanvas(owner);\n let domMatrix = new DOMMatrix(matrix);\n domMatrix = domMatrix.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);\n domMatrix = domMatrix.scale(1 / temporaryPatternCanvas.scaleX, 1 / temporaryPatternCanvas.scaleY);\n const pattern = ctx.createPattern(temporaryPatternCanvas.canvas, \"repeat\");\n pattern.setTransform(domMatrix);\n return pattern;\n }\n}\n\n;// CONCATENATED MODULE: ./src/shared/image_utils.js\n\nfunction convertToRGBA(params) {\n switch (params.kind) {\n case ImageKind.GRAYSCALE_1BPP:\n return convertBlackAndWhiteToRGBA(params);\n case ImageKind.RGB_24BPP:\n return convertRGBToRGBA(params);\n }\n return null;\n}\nfunction convertBlackAndWhiteToRGBA({\n src,\n srcPos = 0,\n dest,\n width,\n height,\n nonBlackColor = 0xffffffff,\n inverseDecode = false\n}) {\n const black = util_FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n const [zeroMapping, oneMapping] = inverseDecode ? [nonBlackColor, black] : [black, nonBlackColor];\n const widthInSource = width >> 3;\n const widthRemainder = width & 7;\n const srcLength = src.length;\n dest = new Uint32Array(dest.buffer);\n let destPos = 0;\n for (let i = 0; i < height; i++) {\n for (const max = srcPos + widthInSource; srcPos < max; srcPos++) {\n const elem = srcPos < srcLength ? src[srcPos] : 255;\n dest[destPos++] = elem & 0b10000000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1000000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b100000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b10000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b100 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b10 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1 ? oneMapping : zeroMapping;\n }\n if (widthRemainder === 0) {\n continue;\n }\n const elem = srcPos < srcLength ? src[srcPos++] : 255;\n for (let j = 0; j < widthRemainder; j++) {\n dest[destPos++] = elem & 1 << 7 - j ? oneMapping : zeroMapping;\n }\n }\n return {\n srcPos,\n destPos\n };\n}\nfunction convertRGBToRGBA({\n src,\n srcPos = 0,\n dest,\n destPos = 0,\n width,\n height\n}) {\n let i = 0;\n const len32 = src.length >> 2;\n const src32 = new Uint32Array(src.buffer, srcPos, len32);\n if (FeatureTest.isLittleEndian) {\n for (; i < len32 - 2; i += 3, destPos += 4) {\n const s1 = src32[i];\n const s2 = src32[i + 1];\n const s3 = src32[i + 2];\n dest[destPos] = s1 | 0xff000000;\n dest[destPos + 1] = s1 >>> 24 | s2 << 8 | 0xff000000;\n dest[destPos + 2] = s2 >>> 16 | s3 << 16 | 0xff000000;\n dest[destPos + 3] = s3 >>> 8 | 0xff000000;\n }\n for (let j = i * 4, jj = src.length; j < jj; j += 3) {\n dest[destPos++] = src[j] | src[j + 1] << 8 | src[j + 2] << 16 | 0xff000000;\n }\n } else {\n for (; i < len32 - 2; i += 3, destPos += 4) {\n const s1 = src32[i];\n const s2 = src32[i + 1];\n const s3 = src32[i + 2];\n dest[destPos] = s1 | 0xff;\n dest[destPos + 1] = s1 << 24 | s2 >>> 8 | 0xff;\n dest[destPos + 2] = s2 << 16 | s3 >>> 16 | 0xff;\n dest[destPos + 3] = s3 << 8 | 0xff;\n }\n for (let j = i * 4, jj = src.length; j < jj; j += 3) {\n dest[destPos++] = src[j] << 24 | src[j + 1] << 16 | src[j + 2] << 8 | 0xff;\n }\n }\n return {\n srcPos,\n destPos\n };\n}\nfunction grayToRGBA(src, dest) {\n if (FeatureTest.isLittleEndian) {\n for (let i = 0, ii = src.length; i < ii; i++) {\n dest[i] = src[i] * 0x10101 | 0xff000000;\n }\n } else {\n for (let i = 0, ii = src.length; i < ii; i++) {\n dest[i] = src[i] * 0x1010100 | 0x000000ff;\n }\n }\n}\n\n;// CONCATENATED MODULE: ./src/display/canvas.js\n\n\n\n\nconst MIN_FONT_SIZE = 16;\nconst MAX_FONT_SIZE = 100;\nconst EXECUTION_TIME = 15;\nconst EXECUTION_STEPS = 10;\nconst MAX_SIZE_TO_COMPILE = 1000;\nconst FULL_CHUNK_HEIGHT = 16;\nfunction mirrorContextOperations(ctx, destCtx) {\n if (ctx._removeMirroring) {\n throw new Error(\"Context is already forwarding operations.\");\n }\n ctx.__originalSave = ctx.save;\n ctx.__originalRestore = ctx.restore;\n ctx.__originalRotate = ctx.rotate;\n ctx.__originalScale = ctx.scale;\n ctx.__originalTranslate = ctx.translate;\n ctx.__originalTransform = ctx.transform;\n ctx.__originalSetTransform = ctx.setTransform;\n ctx.__originalResetTransform = ctx.resetTransform;\n ctx.__originalClip = ctx.clip;\n ctx.__originalMoveTo = ctx.moveTo;\n ctx.__originalLineTo = ctx.lineTo;\n ctx.__originalBezierCurveTo = ctx.bezierCurveTo;\n ctx.__originalRect = ctx.rect;\n ctx.__originalClosePath = ctx.closePath;\n ctx.__originalBeginPath = ctx.beginPath;\n ctx._removeMirroring = () => {\n ctx.save = ctx.__originalSave;\n ctx.restore = ctx.__originalRestore;\n ctx.rotate = ctx.__originalRotate;\n ctx.scale = ctx.__originalScale;\n ctx.translate = ctx.__originalTranslate;\n ctx.transform = ctx.__originalTransform;\n ctx.setTransform = ctx.__originalSetTransform;\n ctx.resetTransform = ctx.__originalResetTransform;\n ctx.clip = ctx.__originalClip;\n ctx.moveTo = ctx.__originalMoveTo;\n ctx.lineTo = ctx.__originalLineTo;\n ctx.bezierCurveTo = ctx.__originalBezierCurveTo;\n ctx.rect = ctx.__originalRect;\n ctx.closePath = ctx.__originalClosePath;\n ctx.beginPath = ctx.__originalBeginPath;\n delete ctx._removeMirroring;\n };\n ctx.save = function ctxSave() {\n destCtx.save();\n this.__originalSave();\n };\n ctx.restore = function ctxRestore() {\n destCtx.restore();\n this.__originalRestore();\n };\n ctx.translate = function ctxTranslate(x, y) {\n destCtx.translate(x, y);\n this.__originalTranslate(x, y);\n };\n ctx.scale = function ctxScale(x, y) {\n destCtx.scale(x, y);\n this.__originalScale(x, y);\n };\n ctx.transform = function ctxTransform(a, b, c, d, e, f) {\n destCtx.transform(a, b, c, d, e, f);\n this.__originalTransform(a, b, c, d, e, f);\n };\n ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {\n destCtx.setTransform(a, b, c, d, e, f);\n this.__originalSetTransform(a, b, c, d, e, f);\n };\n ctx.resetTransform = function ctxResetTransform() {\n destCtx.resetTransform();\n this.__originalResetTransform();\n };\n ctx.rotate = function ctxRotate(angle) {\n destCtx.rotate(angle);\n this.__originalRotate(angle);\n };\n ctx.clip = function ctxRotate(rule) {\n destCtx.clip(rule);\n this.__originalClip(rule);\n };\n ctx.moveTo = function (x, y) {\n destCtx.moveTo(x, y);\n this.__originalMoveTo(x, y);\n };\n ctx.lineTo = function (x, y) {\n destCtx.lineTo(x, y);\n this.__originalLineTo(x, y);\n };\n ctx.bezierCurveTo = function (cp1x, cp1y, cp2x, cp2y, x, y) {\n destCtx.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n this.__originalBezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n };\n ctx.rect = function (x, y, width, height) {\n destCtx.rect(x, y, width, height);\n this.__originalRect(x, y, width, height);\n };\n ctx.closePath = function () {\n destCtx.closePath();\n this.__originalClosePath();\n };\n ctx.beginPath = function () {\n destCtx.beginPath();\n this.__originalBeginPath();\n };\n}\nclass CachedCanvases {\n constructor(canvasFactory) {\n this.canvasFactory = canvasFactory;\n this.cache = Object.create(null);\n }\n getCanvas(id, width, height) {\n let canvasEntry;\n if (this.cache[id] !== undefined) {\n canvasEntry = this.cache[id];\n this.canvasFactory.reset(canvasEntry, width, height);\n } else {\n canvasEntry = this.canvasFactory.create(width, height);\n this.cache[id] = canvasEntry;\n }\n return canvasEntry;\n }\n delete(id) {\n delete this.cache[id];\n }\n clear() {\n for (const id in this.cache) {\n const canvasEntry = this.cache[id];\n this.canvasFactory.destroy(canvasEntry);\n delete this.cache[id];\n }\n }\n}\nfunction drawImageAtIntegerCoords(ctx, srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH) {\n const [a, b, c, d, tx, ty] = getCurrentTransform(ctx);\n if (b === 0 && c === 0) {\n const tlX = destX * a + tx;\n const rTlX = Math.round(tlX);\n const tlY = destY * d + ty;\n const rTlY = Math.round(tlY);\n const brX = (destX + destW) * a + tx;\n const rWidth = Math.abs(Math.round(brX) - rTlX) || 1;\n const brY = (destY + destH) * d + ty;\n const rHeight = Math.abs(Math.round(brY) - rTlY) || 1;\n ctx.setTransform(Math.sign(a), 0, 0, Math.sign(d), rTlX, rTlY);\n ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rWidth, rHeight);\n ctx.setTransform(a, b, c, d, tx, ty);\n return [rWidth, rHeight];\n }\n if (a === 0 && d === 0) {\n const tlX = destY * c + tx;\n const rTlX = Math.round(tlX);\n const tlY = destX * b + ty;\n const rTlY = Math.round(tlY);\n const brX = (destY + destH) * c + tx;\n const rWidth = Math.abs(Math.round(brX) - rTlX) || 1;\n const brY = (destX + destW) * b + ty;\n const rHeight = Math.abs(Math.round(brY) - rTlY) || 1;\n ctx.setTransform(0, Math.sign(b), Math.sign(c), 0, rTlX, rTlY);\n ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rHeight, rWidth);\n ctx.setTransform(a, b, c, d, tx, ty);\n return [rHeight, rWidth];\n }\n ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH);\n const scaleX = Math.hypot(a, b);\n const scaleY = Math.hypot(c, d);\n return [scaleX * destW, scaleY * destH];\n}\nfunction compileType3Glyph(imgData) {\n const {\n width,\n height\n } = imgData;\n if (width > MAX_SIZE_TO_COMPILE || height > MAX_SIZE_TO_COMPILE) {\n return null;\n }\n const POINT_TO_PROCESS_LIMIT = 1000;\n const POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]);\n const width1 = width + 1;\n let points = new Uint8Array(width1 * (height + 1));\n let i, j, j0;\n const lineSize = width + 7 & ~7;\n let data = new Uint8Array(lineSize * height),\n pos = 0;\n for (const elem of imgData.data) {\n let mask = 128;\n while (mask > 0) {\n data[pos++] = elem & mask ? 0 : 255;\n mask >>= 1;\n }\n }\n let count = 0;\n pos = 0;\n if (data[pos] !== 0) {\n points[0] = 1;\n ++count;\n }\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j] = data[pos] ? 2 : 1;\n ++count;\n }\n pos++;\n }\n if (data[pos] !== 0) {\n points[j] = 2;\n ++count;\n }\n for (i = 1; i < height; i++) {\n pos = i * lineSize;\n j0 = i * width1;\n if (data[pos - lineSize] !== data[pos]) {\n points[j0] = data[pos] ? 1 : 8;\n ++count;\n }\n let sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0);\n for (j = 1; j < width; j++) {\n sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0);\n if (POINT_TYPES[sum]) {\n points[j0 + j] = POINT_TYPES[sum];\n ++count;\n }\n pos++;\n }\n if (data[pos - lineSize] !== data[pos]) {\n points[j0 + j] = data[pos] ? 2 : 4;\n ++count;\n }\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n }\n pos = lineSize * (height - 1);\n j0 = i * width1;\n if (data[pos] !== 0) {\n points[j0] = 8;\n ++count;\n }\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j0 + j] = data[pos] ? 4 : 8;\n ++count;\n }\n pos++;\n }\n if (data[pos] !== 0) {\n points[j0 + j] = 4;\n ++count;\n }\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n const steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]);\n const path = new Path2D();\n for (i = 0; count && i <= height; i++) {\n let p = i * width1;\n const end = p + width;\n while (p < end && !points[p]) {\n p++;\n }\n if (p === end) {\n continue;\n }\n path.moveTo(p % width1, i);\n const p0 = p;\n let type = points[p];\n do {\n const step = steps[type];\n do {\n p += step;\n } while (!points[p]);\n const pp = points[p];\n if (pp !== 5 && pp !== 10) {\n type = pp;\n points[p] = 0;\n } else {\n type = pp & 0x33 * type >> 4;\n points[p] &= type >> 2 | type << 2;\n }\n path.lineTo(p % width1, p / width1 | 0);\n if (!points[p]) {\n --count;\n }\n } while (p0 !== p);\n --i;\n }\n data = null;\n points = null;\n const drawOutline = function (c) {\n c.save();\n c.scale(1 / width, -1 / height);\n c.translate(0, -height);\n c.fill(path);\n c.beginPath();\n c.restore();\n };\n return drawOutline;\n}\nclass CanvasExtraState {\n constructor(width, height) {\n this.alphaIsShape = false;\n this.fontSize = 0;\n this.fontSizeScale = 1;\n this.textMatrix = IDENTITY_MATRIX;\n this.textMatrixScale = 1;\n this.fontMatrix = FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.x = 0;\n this.y = 0;\n this.lineX = 0;\n this.lineY = 0;\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRenderingMode = TextRenderingMode.FILL;\n this.textRise = 0;\n this.fillColor = \"#000000\";\n this.strokeColor = \"#000000\";\n this.patternFill = false;\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.activeSMask = null;\n this.transferMaps = \"none\";\n this.startNewPathAndClipBox([0, 0, width, height]);\n }\n clone() {\n const clone = Object.create(this);\n clone.clipBox = this.clipBox.slice();\n return clone;\n }\n setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n updatePathMinMax(transform, x, y) {\n [x, y] = Util.applyTransform([x, y], transform);\n this.minX = Math.min(this.minX, x);\n this.minY = Math.min(this.minY, y);\n this.maxX = Math.max(this.maxX, x);\n this.maxY = Math.max(this.maxY, y);\n }\n updateRectMinMax(transform, rect) {\n const p1 = Util.applyTransform(rect, transform);\n const p2 = Util.applyTransform(rect.slice(2), transform);\n const p3 = Util.applyTransform([rect[0], rect[3]], transform);\n const p4 = Util.applyTransform([rect[2], rect[1]], transform);\n this.minX = Math.min(this.minX, p1[0], p2[0], p3[0], p4[0]);\n this.minY = Math.min(this.minY, p1[1], p2[1], p3[1], p4[1]);\n this.maxX = Math.max(this.maxX, p1[0], p2[0], p3[0], p4[0]);\n this.maxY = Math.max(this.maxY, p1[1], p2[1], p3[1], p4[1]);\n }\n updateScalingPathMinMax(transform, minMax) {\n Util.scaleMinMax(transform, minMax);\n this.minX = Math.min(this.minX, minMax[0]);\n this.minY = Math.min(this.minY, minMax[1]);\n this.maxX = Math.max(this.maxX, minMax[2]);\n this.maxY = Math.max(this.maxY, minMax[3]);\n }\n updateCurvePathMinMax(transform, x0, y0, x1, y1, x2, y2, x3, y3, minMax) {\n const box = Util.bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3, minMax);\n if (minMax) {\n return;\n }\n this.updateRectMinMax(transform, box);\n }\n getPathBoundingBox(pathType = PathType.FILL, transform = null) {\n const box = [this.minX, this.minY, this.maxX, this.maxY];\n if (pathType === PathType.STROKE) {\n if (!transform) {\n unreachable(\"Stroke bounding box must include transform.\");\n }\n const scale = Util.singularValueDecompose2dScale(transform);\n const xStrokePad = scale[0] * this.lineWidth / 2;\n const yStrokePad = scale[1] * this.lineWidth / 2;\n box[0] -= xStrokePad;\n box[1] -= yStrokePad;\n box[2] += xStrokePad;\n box[3] += yStrokePad;\n }\n return box;\n }\n updateClipFromPath() {\n const intersect = Util.intersect(this.clipBox, this.getPathBoundingBox());\n this.startNewPathAndClipBox(intersect || [0, 0, 0, 0]);\n }\n isEmptyClip() {\n return this.minX === Infinity;\n }\n startNewPathAndClipBox(box) {\n this.clipBox = box;\n this.minX = Infinity;\n this.minY = Infinity;\n this.maxX = 0;\n this.maxY = 0;\n }\n getClippedPathBoundingBox(pathType = PathType.FILL, transform = null) {\n return Util.intersect(this.clipBox, this.getPathBoundingBox(pathType, transform));\n }\n}\nfunction putBinaryImageData(ctx, imgData) {\n if (typeof ImageData !== \"undefined\" && imgData instanceof ImageData) {\n ctx.putImageData(imgData, 0, 0);\n return;\n }\n const height = imgData.height,\n width = imgData.width;\n const partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n let srcPos = 0,\n destPos;\n const src = imgData.data;\n const dest = chunkImgData.data;\n let i, j, thisChunkHeight, elemsInThisChunk;\n if (imgData.kind === util_ImageKind.GRAYSCALE_1BPP) {\n const srcLength = src.byteLength;\n const dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2);\n const dest32DataLength = dest32.length;\n const fullSrcDiff = width + 7 >> 3;\n const white = 0xffffffff;\n const black = util_FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n for (i = 0; i < totalChunks; i++) {\n thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n destPos = 0;\n for (j = 0; j < thisChunkHeight; j++) {\n const srcDiff = srcLength - srcPos;\n let k = 0;\n const kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7;\n const kEndUnrolled = kEnd & ~7;\n let mask = 0;\n let srcByte = 0;\n for (; k < kEndUnrolled; k += 8) {\n srcByte = src[srcPos++];\n dest32[destPos++] = srcByte & 128 ? white : black;\n dest32[destPos++] = srcByte & 64 ? white : black;\n dest32[destPos++] = srcByte & 32 ? white : black;\n dest32[destPos++] = srcByte & 16 ? white : black;\n dest32[destPos++] = srcByte & 8 ? white : black;\n dest32[destPos++] = srcByte & 4 ? white : black;\n dest32[destPos++] = srcByte & 2 ? white : black;\n dest32[destPos++] = srcByte & 1 ? white : black;\n }\n for (; k < kEnd; k++) {\n if (mask === 0) {\n srcByte = src[srcPos++];\n mask = 128;\n }\n dest32[destPos++] = srcByte & mask ? white : black;\n mask >>= 1;\n }\n }\n while (destPos < dest32DataLength) {\n dest32[destPos++] = 0;\n }\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else if (imgData.kind === util_ImageKind.RGBA_32BPP) {\n j = 0;\n elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4;\n for (i = 0; i < fullChunks; i++) {\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n srcPos += elemsInThisChunk;\n ctx.putImageData(chunkImgData, 0, j);\n j += FULL_CHUNK_HEIGHT;\n }\n if (i < totalChunks) {\n elemsInThisChunk = width * partialChunkHeight * 4;\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n ctx.putImageData(chunkImgData, 0, j);\n }\n } else if (imgData.kind === util_ImageKind.RGB_24BPP) {\n thisChunkHeight = FULL_CHUNK_HEIGHT;\n elemsInThisChunk = width * thisChunkHeight;\n for (i = 0; i < totalChunks; i++) {\n if (i >= fullChunks) {\n thisChunkHeight = partialChunkHeight;\n elemsInThisChunk = width * thisChunkHeight;\n }\n destPos = 0;\n for (j = elemsInThisChunk; j--;) {\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = 255;\n }\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else {\n throw new Error(`bad image kind: ${imgData.kind}`);\n }\n}\nfunction putBinaryImageMask(ctx, imgData) {\n if (imgData.bitmap) {\n ctx.drawImage(imgData.bitmap, 0, 0);\n return;\n }\n const height = imgData.height,\n width = imgData.width;\n const partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n let srcPos = 0;\n const src = imgData.data;\n const dest = chunkImgData.data;\n for (let i = 0; i < totalChunks; i++) {\n const thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n ({\n srcPos\n } = convertBlackAndWhiteToRGBA({\n src,\n srcPos,\n dest,\n width,\n height: thisChunkHeight,\n nonBlackColor: 0\n }));\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n}\nfunction copyCtxState(sourceCtx, destCtx) {\n const properties = [\"strokeStyle\", \"fillStyle\", \"fillRule\", \"globalAlpha\", \"lineWidth\", \"lineCap\", \"lineJoin\", \"miterLimit\", \"globalCompositeOperation\", \"font\", \"filter\"];\n for (const property of properties) {\n if (sourceCtx[property] !== undefined) {\n destCtx[property] = sourceCtx[property];\n }\n }\n if (sourceCtx.setLineDash !== undefined) {\n destCtx.setLineDash(sourceCtx.getLineDash());\n destCtx.lineDashOffset = sourceCtx.lineDashOffset;\n }\n}\nfunction resetCtxToDefault(ctx) {\n ctx.strokeStyle = ctx.fillStyle = \"#000000\";\n ctx.fillRule = \"nonzero\";\n ctx.globalAlpha = 1;\n ctx.lineWidth = 1;\n ctx.lineCap = \"butt\";\n ctx.lineJoin = \"miter\";\n ctx.miterLimit = 10;\n ctx.globalCompositeOperation = \"source-over\";\n ctx.font = \"10px sans-serif\";\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash([]);\n ctx.lineDashOffset = 0;\n }\n if (!isNodeJS) {\n const {\n filter\n } = ctx;\n if (filter !== \"none\" && filter !== \"\") {\n ctx.filter = \"none\";\n }\n }\n}\nfunction getImageSmoothingEnabled(transform, interpolate) {\n if (interpolate) {\n return true;\n }\n const scale = Util.singularValueDecompose2dScale(transform);\n scale[0] = Math.fround(scale[0]);\n scale[1] = Math.fround(scale[1]);\n const actualScale = Math.fround((globalThis.devicePixelRatio || 1) * PixelsPerInch.PDF_TO_CSS_UNITS);\n return scale[0] <= actualScale && scale[1] <= actualScale;\n}\nconst LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\nconst LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\nconst NORMAL_CLIP = {};\nconst EO_CLIP = {};\nclass CanvasGraphics {\n constructor(canvasCtx, commonObjs, objs, canvasFactory, filterFactory, {\n optionalContentConfig,\n markedContentStack = null\n }, annotationCanvasMap, pageColors) {\n this.ctx = canvasCtx;\n this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height);\n this.stateStack = [];\n this.pendingClip = null;\n this.pendingEOFill = false;\n this.res = null;\n this.xobjs = null;\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.canvasFactory = canvasFactory;\n this.filterFactory = filterFactory;\n this.groupStack = [];\n this.processingType3 = null;\n this.baseTransform = null;\n this.baseTransformStack = [];\n this.groupLevel = 0;\n this.smaskStack = [];\n this.smaskCounter = 0;\n this.tempSMask = null;\n this.suspendedCtx = null;\n this.contentVisible = true;\n this.markedContentStack = markedContentStack || [];\n this.optionalContentConfig = optionalContentConfig;\n this.cachedCanvases = new CachedCanvases(this.canvasFactory);\n this.cachedPatterns = new Map();\n this.annotationCanvasMap = annotationCanvasMap;\n this.viewportScale = 1;\n this.outputScaleX = 1;\n this.outputScaleY = 1;\n this.pageColors = pageColors;\n this._cachedScaleForStroking = [-1, 0];\n this._cachedGetSinglePixelWidth = null;\n this._cachedBitmapsMap = new Map();\n }\n getObject(data, fallback = null) {\n if (typeof data === \"string\") {\n return data.startsWith(\"g_\") ? this.commonObjs.get(data) : this.objs.get(data);\n }\n return fallback;\n }\n beginDrawing({\n transform,\n viewport,\n transparency = false,\n background = null\n }) {\n const width = this.ctx.canvas.width;\n const height = this.ctx.canvas.height;\n const savedFillStyle = this.ctx.fillStyle;\n this.ctx.fillStyle = background || \"#ffffff\";\n this.ctx.fillRect(0, 0, width, height);\n this.ctx.fillStyle = savedFillStyle;\n if (transparency) {\n const transparentCanvas = this.cachedCanvases.getCanvas(\"transparent\", width, height);\n this.compositeCtx = this.ctx;\n this.transparentCanvas = transparentCanvas.canvas;\n this.ctx = transparentCanvas.context;\n this.ctx.save();\n this.ctx.transform(...getCurrentTransform(this.compositeCtx));\n }\n this.ctx.save();\n resetCtxToDefault(this.ctx);\n if (transform) {\n this.ctx.transform(...transform);\n this.outputScaleX = transform[0];\n this.outputScaleY = transform[0];\n }\n this.ctx.transform(...viewport.transform);\n this.viewportScale = viewport.scale;\n this.baseTransform = getCurrentTransform(this.ctx);\n }\n executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) {\n const argsArray = operatorList.argsArray;\n const fnArray = operatorList.fnArray;\n let i = executionStartIdx || 0;\n const argsArrayLen = argsArray.length;\n if (argsArrayLen === i) {\n return i;\n }\n const chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === \"function\";\n const endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0;\n let steps = 0;\n const commonObjs = this.commonObjs;\n const objs = this.objs;\n let fnId;\n while (true) {\n if (stepper !== undefined && i === stepper.nextBreakPoint) {\n stepper.breakIt(i, continueCallback);\n return i;\n }\n fnId = fnArray[i];\n if (fnId !== OPS.dependency) {\n this[fnId].apply(this, argsArray[i]);\n } else {\n for (const depObjId of argsArray[i]) {\n const objsPool = depObjId.startsWith(\"g_\") ? commonObjs : objs;\n if (!objsPool.has(depObjId)) {\n objsPool.get(depObjId, continueCallback);\n return i;\n }\n }\n }\n i++;\n if (i === argsArrayLen) {\n return i;\n }\n if (chunkOperations && ++steps > EXECUTION_STEPS) {\n if (Date.now() > endTime) {\n continueCallback();\n return i;\n }\n steps = 0;\n }\n }\n }\n #restoreInitialState() {\n while (this.stateStack.length || this.inSMaskMode) {\n this.restore();\n }\n this.ctx.restore();\n if (this.transparentCanvas) {\n this.ctx = this.compositeCtx;\n this.ctx.save();\n this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n this.ctx.drawImage(this.transparentCanvas, 0, 0);\n this.ctx.restore();\n this.transparentCanvas = null;\n }\n }\n endDrawing() {\n this.#restoreInitialState();\n this.cachedCanvases.clear();\n this.cachedPatterns.clear();\n for (const cache of this._cachedBitmapsMap.values()) {\n for (const canvas of cache.values()) {\n if (typeof HTMLCanvasElement !== \"undefined\" && canvas instanceof HTMLCanvasElement) {\n canvas.width = canvas.height = 0;\n }\n }\n cache.clear();\n }\n this._cachedBitmapsMap.clear();\n this.#drawFilter();\n }\n #drawFilter() {\n if (this.pageColors) {\n const hcmFilterId = this.filterFactory.addHCMFilter(this.pageColors.foreground, this.pageColors.background);\n if (hcmFilterId !== \"none\") {\n const savedFilter = this.ctx.filter;\n this.ctx.filter = hcmFilterId;\n this.ctx.drawImage(this.ctx.canvas, 0, 0);\n this.ctx.filter = savedFilter;\n }\n }\n }\n _scaleImage(img, inverseTransform) {\n const width = img.width;\n const height = img.height;\n let widthScale = Math.max(Math.hypot(inverseTransform[0], inverseTransform[1]), 1);\n let heightScale = Math.max(Math.hypot(inverseTransform[2], inverseTransform[3]), 1);\n let paintWidth = width,\n paintHeight = height;\n let tmpCanvasId = \"prescale1\";\n let tmpCanvas, tmpCtx;\n while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) {\n let newWidth = paintWidth,\n newHeight = paintHeight;\n if (widthScale > 2 && paintWidth > 1) {\n newWidth = paintWidth >= 16384 ? Math.floor(paintWidth / 2) - 1 || 1 : Math.ceil(paintWidth / 2);\n widthScale /= paintWidth / newWidth;\n }\n if (heightScale > 2 && paintHeight > 1) {\n newHeight = paintHeight >= 16384 ? Math.floor(paintHeight / 2) - 1 || 1 : Math.ceil(paintHeight) / 2;\n heightScale /= paintHeight / newHeight;\n }\n tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight);\n tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, newWidth, newHeight);\n tmpCtx.drawImage(img, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight);\n img = tmpCanvas.canvas;\n paintWidth = newWidth;\n paintHeight = newHeight;\n tmpCanvasId = tmpCanvasId === \"prescale1\" ? \"prescale2\" : \"prescale1\";\n }\n return {\n img,\n paintWidth,\n paintHeight\n };\n }\n _createMaskCanvas(img) {\n const ctx = this.ctx;\n const {\n width,\n height\n } = img;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n const currentTransform = getCurrentTransform(ctx);\n let cache, cacheKey, scaled, maskCanvas;\n if ((img.bitmap || img.data) && img.count > 1) {\n const mainKey = img.bitmap || img.data.buffer;\n cacheKey = JSON.stringify(isPatternFill ? currentTransform : [currentTransform.slice(0, 4), fillColor]);\n cache = this._cachedBitmapsMap.get(mainKey);\n if (!cache) {\n cache = new Map();\n this._cachedBitmapsMap.set(mainKey, cache);\n }\n const cachedImage = cache.get(cacheKey);\n if (cachedImage && !isPatternFill) {\n const offsetX = Math.round(Math.min(currentTransform[0], currentTransform[2]) + currentTransform[4]);\n const offsetY = Math.round(Math.min(currentTransform[1], currentTransform[3]) + currentTransform[5]);\n return {\n canvas: cachedImage,\n offsetX,\n offsetY\n };\n }\n scaled = cachedImage;\n }\n if (!scaled) {\n maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n putBinaryImageMask(maskCanvas.context, img);\n }\n let maskToCanvas = Util.transform(currentTransform, [1 / width, 0, 0, -1 / height, 0, 0]);\n maskToCanvas = Util.transform(maskToCanvas, [1, 0, 0, 1, 0, -height]);\n const [minX, minY, maxX, maxY] = Util.getAxialAlignedBoundingBox([0, 0, width, height], maskToCanvas);\n const drawnWidth = Math.round(maxX - minX) || 1;\n const drawnHeight = Math.round(maxY - minY) || 1;\n const fillCanvas = this.cachedCanvases.getCanvas(\"fillCanvas\", drawnWidth, drawnHeight);\n const fillCtx = fillCanvas.context;\n const offsetX = minX;\n const offsetY = minY;\n fillCtx.translate(-offsetX, -offsetY);\n fillCtx.transform(...maskToCanvas);\n if (!scaled) {\n scaled = this._scaleImage(maskCanvas.canvas, getCurrentTransformInverse(fillCtx));\n scaled = scaled.img;\n if (cache && isPatternFill) {\n cache.set(cacheKey, scaled);\n }\n }\n fillCtx.imageSmoothingEnabled = getImageSmoothingEnabled(getCurrentTransform(fillCtx), img.interpolate);\n drawImageAtIntegerCoords(fillCtx, scaled, 0, 0, scaled.width, scaled.height, 0, 0, width, height);\n fillCtx.globalCompositeOperation = \"source-in\";\n const inverse = Util.transform(getCurrentTransformInverse(fillCtx), [1, 0, 0, 1, -offsetX, -offsetY]);\n fillCtx.fillStyle = isPatternFill ? fillColor.getPattern(ctx, this, inverse, PathType.FILL) : fillColor;\n fillCtx.fillRect(0, 0, width, height);\n if (cache && !isPatternFill) {\n this.cachedCanvases.delete(\"fillCanvas\");\n cache.set(cacheKey, fillCanvas.canvas);\n }\n return {\n canvas: fillCanvas.canvas,\n offsetX: Math.round(offsetX),\n offsetY: Math.round(offsetY)\n };\n }\n setLineWidth(width) {\n if (width !== this.current.lineWidth) {\n this._cachedScaleForStroking[0] = -1;\n }\n this.current.lineWidth = width;\n this.ctx.lineWidth = width;\n }\n setLineCap(style) {\n this.ctx.lineCap = LINE_CAP_STYLES[style];\n }\n setLineJoin(style) {\n this.ctx.lineJoin = LINE_JOIN_STYLES[style];\n }\n setMiterLimit(limit) {\n this.ctx.miterLimit = limit;\n }\n setDash(dashArray, dashPhase) {\n const ctx = this.ctx;\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash(dashArray);\n ctx.lineDashOffset = dashPhase;\n }\n }\n setRenderingIntent(intent) {}\n setFlatness(flatness) {}\n setGState(states) {\n for (const [key, value] of states) {\n switch (key) {\n case \"LW\":\n this.setLineWidth(value);\n break;\n case \"LC\":\n this.setLineCap(value);\n break;\n case \"LJ\":\n this.setLineJoin(value);\n break;\n case \"ML\":\n this.setMiterLimit(value);\n break;\n case \"D\":\n this.setDash(value[0], value[1]);\n break;\n case \"RI\":\n this.setRenderingIntent(value);\n break;\n case \"FL\":\n this.setFlatness(value);\n break;\n case \"Font\":\n this.setFont(value[0], value[1]);\n break;\n case \"CA\":\n this.current.strokeAlpha = value;\n break;\n case \"ca\":\n this.current.fillAlpha = value;\n this.ctx.globalAlpha = value;\n break;\n case \"BM\":\n this.ctx.globalCompositeOperation = value;\n break;\n case \"SMask\":\n this.current.activeSMask = value ? this.tempSMask : null;\n this.tempSMask = null;\n this.checkSMaskState();\n break;\n case \"TR\":\n this.ctx.filter = this.current.transferMaps = this.filterFactory.addFilter(value);\n break;\n }\n }\n }\n get inSMaskMode() {\n return !!this.suspendedCtx;\n }\n checkSMaskState() {\n const inSMaskMode = this.inSMaskMode;\n if (this.current.activeSMask && !inSMaskMode) {\n this.beginSMaskMode();\n } else if (!this.current.activeSMask && inSMaskMode) {\n this.endSMaskMode();\n }\n }\n beginSMaskMode() {\n if (this.inSMaskMode) {\n throw new Error(\"beginSMaskMode called while already in smask mode\");\n }\n const drawnWidth = this.ctx.canvas.width;\n const drawnHeight = this.ctx.canvas.height;\n const cacheId = \"smaskGroupAt\" + this.groupLevel;\n const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight);\n this.suspendedCtx = this.ctx;\n this.ctx = scratchCanvas.context;\n const ctx = this.ctx;\n ctx.setTransform(...getCurrentTransform(this.suspendedCtx));\n copyCtxState(this.suspendedCtx, ctx);\n mirrorContextOperations(ctx, this.suspendedCtx);\n this.setGState([[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1]]);\n }\n endSMaskMode() {\n if (!this.inSMaskMode) {\n throw new Error(\"endSMaskMode called while not in smask mode\");\n }\n this.ctx._removeMirroring();\n copyCtxState(this.ctx, this.suspendedCtx);\n this.ctx = this.suspendedCtx;\n this.suspendedCtx = null;\n }\n compose(dirtyBox) {\n if (!this.current.activeSMask) {\n return;\n }\n if (!dirtyBox) {\n dirtyBox = [0, 0, this.ctx.canvas.width, this.ctx.canvas.height];\n } else {\n dirtyBox[0] = Math.floor(dirtyBox[0]);\n dirtyBox[1] = Math.floor(dirtyBox[1]);\n dirtyBox[2] = Math.ceil(dirtyBox[2]);\n dirtyBox[3] = Math.ceil(dirtyBox[3]);\n }\n const smask = this.current.activeSMask;\n const suspendedCtx = this.suspendedCtx;\n this.composeSMask(suspendedCtx, smask, this.ctx, dirtyBox);\n this.ctx.save();\n this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n this.ctx.clearRect(0, 0, this.ctx.canvas.width, this.ctx.canvas.height);\n this.ctx.restore();\n }\n composeSMask(ctx, smask, layerCtx, layerBox) {\n const layerOffsetX = layerBox[0];\n const layerOffsetY = layerBox[1];\n const layerWidth = layerBox[2] - layerOffsetX;\n const layerHeight = layerBox[3] - layerOffsetY;\n if (layerWidth === 0 || layerHeight === 0) {\n return;\n }\n this.genericComposeSMask(smask.context, layerCtx, layerWidth, layerHeight, smask.subtype, smask.backdrop, smask.transferMap, layerOffsetX, layerOffsetY, smask.offsetX, smask.offsetY);\n ctx.save();\n ctx.globalAlpha = 1;\n ctx.globalCompositeOperation = \"source-over\";\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(layerCtx.canvas, 0, 0);\n ctx.restore();\n }\n genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap, layerOffsetX, layerOffsetY, maskOffsetX, maskOffsetY) {\n let maskCanvas = maskCtx.canvas;\n let maskX = layerOffsetX - maskOffsetX;\n let maskY = layerOffsetY - maskOffsetY;\n if (backdrop) {\n if (maskX < 0 || maskY < 0 || maskX + width > maskCanvas.width || maskY + height > maskCanvas.height) {\n const canvas = this.cachedCanvases.getCanvas(\"maskExtension\", width, height);\n const ctx = canvas.context;\n ctx.drawImage(maskCanvas, -maskX, -maskY);\n if (backdrop.some(c => c !== 0)) {\n ctx.globalCompositeOperation = \"destination-atop\";\n ctx.fillStyle = Util.makeHexColor(...backdrop);\n ctx.fillRect(0, 0, width, height);\n ctx.globalCompositeOperation = \"source-over\";\n }\n maskCanvas = canvas.canvas;\n maskX = maskY = 0;\n } else if (backdrop.some(c => c !== 0)) {\n maskCtx.save();\n maskCtx.globalAlpha = 1;\n maskCtx.setTransform(1, 0, 0, 1, 0, 0);\n const clip = new Path2D();\n clip.rect(maskX, maskY, width, height);\n maskCtx.clip(clip);\n maskCtx.globalCompositeOperation = \"destination-atop\";\n maskCtx.fillStyle = Util.makeHexColor(...backdrop);\n maskCtx.fillRect(maskX, maskY, width, height);\n maskCtx.restore();\n }\n }\n layerCtx.save();\n layerCtx.globalAlpha = 1;\n layerCtx.setTransform(1, 0, 0, 1, 0, 0);\n if (subtype === \"Alpha\" && transferMap) {\n layerCtx.filter = this.filterFactory.addAlphaFilter(transferMap);\n } else if (subtype === \"Luminosity\") {\n layerCtx.filter = this.filterFactory.addLuminosityFilter(transferMap);\n }\n const clip = new Path2D();\n clip.rect(layerOffsetX, layerOffsetY, width, height);\n layerCtx.clip(clip);\n layerCtx.globalCompositeOperation = \"destination-in\";\n layerCtx.drawImage(maskCanvas, maskX, maskY, width, height, layerOffsetX, layerOffsetY, width, height);\n layerCtx.restore();\n }\n save() {\n if (this.inSMaskMode) {\n copyCtxState(this.ctx, this.suspendedCtx);\n this.suspendedCtx.save();\n } else {\n this.ctx.save();\n }\n const old = this.current;\n this.stateStack.push(old);\n this.current = old.clone();\n }\n restore() {\n if (this.stateStack.length === 0 && this.inSMaskMode) {\n this.endSMaskMode();\n }\n if (this.stateStack.length !== 0) {\n this.current = this.stateStack.pop();\n if (this.inSMaskMode) {\n this.suspendedCtx.restore();\n copyCtxState(this.suspendedCtx, this.ctx);\n } else {\n this.ctx.restore();\n }\n this.checkSMaskState();\n this.pendingClip = null;\n this._cachedScaleForStroking[0] = -1;\n this._cachedGetSinglePixelWidth = null;\n }\n }\n transform(a, b, c, d, e, f) {\n this.ctx.transform(a, b, c, d, e, f);\n this._cachedScaleForStroking[0] = -1;\n this._cachedGetSinglePixelWidth = null;\n }\n constructPath(ops, args, minMax) {\n const ctx = this.ctx;\n const current = this.current;\n let x = current.x,\n y = current.y;\n let startX, startY;\n const currentTransform = getCurrentTransform(ctx);\n const isScalingMatrix = currentTransform[0] === 0 && currentTransform[3] === 0 || currentTransform[1] === 0 && currentTransform[2] === 0;\n const minMaxForBezier = isScalingMatrix ? minMax.slice(0) : null;\n for (let i = 0, j = 0, ii = ops.length; i < ii; i++) {\n switch (ops[i] | 0) {\n case OPS.rectangle:\n x = args[j++];\n y = args[j++];\n const width = args[j++];\n const height = args[j++];\n const xw = x + width;\n const yh = y + height;\n ctx.moveTo(x, y);\n if (width === 0 || height === 0) {\n ctx.lineTo(xw, yh);\n } else {\n ctx.lineTo(xw, y);\n ctx.lineTo(xw, yh);\n ctx.lineTo(x, yh);\n }\n if (!isScalingMatrix) {\n current.updateRectMinMax(currentTransform, [x, y, xw, yh]);\n }\n ctx.closePath();\n break;\n case OPS.moveTo:\n x = args[j++];\n y = args[j++];\n ctx.moveTo(x, y);\n if (!isScalingMatrix) {\n current.updatePathMinMax(currentTransform, x, y);\n }\n break;\n case OPS.lineTo:\n x = args[j++];\n y = args[j++];\n ctx.lineTo(x, y);\n if (!isScalingMatrix) {\n current.updatePathMinMax(currentTransform, x, y);\n }\n break;\n case OPS.curveTo:\n startX = x;\n startY = y;\n x = args[j + 4];\n y = args[j + 5];\n ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], x, y);\n current.updateCurvePathMinMax(currentTransform, startX, startY, args[j], args[j + 1], args[j + 2], args[j + 3], x, y, minMaxForBezier);\n j += 6;\n break;\n case OPS.curveTo2:\n startX = x;\n startY = y;\n ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]);\n current.updateCurvePathMinMax(currentTransform, startX, startY, x, y, args[j], args[j + 1], args[j + 2], args[j + 3], minMaxForBezier);\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n case OPS.curveTo3:\n startX = x;\n startY = y;\n x = args[j + 2];\n y = args[j + 3];\n ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y);\n current.updateCurvePathMinMax(currentTransform, startX, startY, args[j], args[j + 1], x, y, x, y, minMaxForBezier);\n j += 4;\n break;\n case OPS.closePath:\n ctx.closePath();\n break;\n }\n }\n if (isScalingMatrix) {\n current.updateScalingPathMinMax(currentTransform, minMaxForBezier);\n }\n current.setCurrentPoint(x, y);\n }\n closePath() {\n this.ctx.closePath();\n }\n stroke(consumePath = true) {\n const ctx = this.ctx;\n const strokeColor = this.current.strokeColor;\n ctx.globalAlpha = this.current.strokeAlpha;\n if (this.contentVisible) {\n if (typeof strokeColor === \"object\" && strokeColor?.getPattern) {\n ctx.save();\n ctx.strokeStyle = strokeColor.getPattern(ctx, this, getCurrentTransformInverse(ctx), PathType.STROKE);\n this.rescaleAndStroke(false);\n ctx.restore();\n } else {\n this.rescaleAndStroke(true);\n }\n }\n if (consumePath) {\n this.consumePath(this.current.getClippedPathBoundingBox());\n }\n ctx.globalAlpha = this.current.fillAlpha;\n }\n closeStroke() {\n this.closePath();\n this.stroke();\n }\n fill(consumePath = true) {\n const ctx = this.ctx;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n let needRestore = false;\n if (isPatternFill) {\n ctx.save();\n ctx.fillStyle = fillColor.getPattern(ctx, this, getCurrentTransformInverse(ctx), PathType.FILL);\n needRestore = true;\n }\n const intersect = this.current.getClippedPathBoundingBox();\n if (this.contentVisible && intersect !== null) {\n if (this.pendingEOFill) {\n ctx.fill(\"evenodd\");\n this.pendingEOFill = false;\n } else {\n ctx.fill();\n }\n }\n if (needRestore) {\n ctx.restore();\n }\n if (consumePath) {\n this.consumePath(intersect);\n }\n }\n eoFill() {\n this.pendingEOFill = true;\n this.fill();\n }\n fillStroke() {\n this.fill(false);\n this.stroke(false);\n this.consumePath();\n }\n eoFillStroke() {\n this.pendingEOFill = true;\n this.fillStroke();\n }\n closeFillStroke() {\n this.closePath();\n this.fillStroke();\n }\n closeEOFillStroke() {\n this.pendingEOFill = true;\n this.closePath();\n this.fillStroke();\n }\n endPath() {\n this.consumePath();\n }\n clip() {\n this.pendingClip = NORMAL_CLIP;\n }\n eoClip() {\n this.pendingClip = EO_CLIP;\n }\n beginText() {\n this.current.textMatrix = IDENTITY_MATRIX;\n this.current.textMatrixScale = 1;\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n }\n endText() {\n const paths = this.pendingTextPaths;\n const ctx = this.ctx;\n if (paths === undefined) {\n ctx.beginPath();\n return;\n }\n ctx.save();\n ctx.beginPath();\n for (const path of paths) {\n ctx.setTransform(...path.transform);\n ctx.translate(path.x, path.y);\n path.addToPath(ctx, path.fontSize);\n }\n ctx.restore();\n ctx.clip();\n ctx.beginPath();\n delete this.pendingTextPaths;\n }\n setCharSpacing(spacing) {\n this.current.charSpacing = spacing;\n }\n setWordSpacing(spacing) {\n this.current.wordSpacing = spacing;\n }\n setHScale(scale) {\n this.current.textHScale = scale / 100;\n }\n setLeading(leading) {\n this.current.leading = -leading;\n }\n setFont(fontRefName, size) {\n const fontObj = this.commonObjs.get(fontRefName);\n const current = this.current;\n if (!fontObj) {\n throw new Error(`Can't find font for ${fontRefName}`);\n }\n current.fontMatrix = fontObj.fontMatrix || FONT_IDENTITY_MATRIX;\n if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) {\n warn(\"Invalid font matrix for font \" + fontRefName);\n }\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n this.current.font = fontObj;\n this.current.fontSize = size;\n if (fontObj.isType3Font) {\n return;\n }\n const name = fontObj.loadedName || \"sans-serif\";\n const typeface = fontObj.systemFontInfo?.css || `\"${name}\", ${fontObj.fallbackName}`;\n let bold = \"normal\";\n if (fontObj.black) {\n bold = \"900\";\n } else if (fontObj.bold) {\n bold = \"bold\";\n }\n const italic = fontObj.italic ? \"italic\" : \"normal\";\n let browserFontSize = size;\n if (size < MIN_FONT_SIZE) {\n browserFontSize = MIN_FONT_SIZE;\n } else if (size > MAX_FONT_SIZE) {\n browserFontSize = MAX_FONT_SIZE;\n }\n this.current.fontSizeScale = size / browserFontSize;\n this.ctx.font = `${italic} ${bold} ${browserFontSize}px ${typeface}`;\n }\n setTextRenderingMode(mode) {\n this.current.textRenderingMode = mode;\n }\n setTextRise(rise) {\n this.current.textRise = rise;\n }\n moveText(x, y) {\n this.current.x = this.current.lineX += x;\n this.current.y = this.current.lineY += y;\n }\n setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n }\n setTextMatrix(a, b, c, d, e, f) {\n this.current.textMatrix = [a, b, c, d, e, f];\n this.current.textMatrixScale = Math.hypot(a, b);\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n }\n nextLine() {\n this.moveText(0, this.current.leading);\n }\n paintChar(character, x, y, patternTransform) {\n const ctx = this.ctx;\n const current = this.current;\n const font = current.font;\n const textRenderingMode = current.textRenderingMode;\n const fontSize = current.fontSize / current.fontSizeScale;\n const fillStrokeMode = textRenderingMode & TextRenderingMode.FILL_STROKE_MASK;\n const isAddToPathSet = !!(textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG);\n const patternFill = current.patternFill && !font.missingFile;\n let addToPath;\n if (font.disableFontFace || isAddToPathSet || patternFill) {\n addToPath = font.getPathGenerator(this.commonObjs, character);\n }\n if (font.disableFontFace || patternFill) {\n ctx.save();\n ctx.translate(x, y);\n ctx.beginPath();\n addToPath(ctx, fontSize);\n if (patternTransform) {\n ctx.setTransform(...patternTransform);\n }\n if (fillStrokeMode === TextRenderingMode.FILL || fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n ctx.fill();\n }\n if (fillStrokeMode === TextRenderingMode.STROKE || fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n ctx.stroke();\n }\n ctx.restore();\n } else {\n if (fillStrokeMode === TextRenderingMode.FILL || fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n ctx.fillText(character, x, y);\n }\n if (fillStrokeMode === TextRenderingMode.STROKE || fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n ctx.strokeText(character, x, y);\n }\n }\n if (isAddToPathSet) {\n const paths = this.pendingTextPaths ||= [];\n paths.push({\n transform: getCurrentTransform(ctx),\n x,\n y,\n fontSize,\n addToPath\n });\n }\n }\n get isFontSubpixelAAEnabled() {\n const {\n context: ctx\n } = this.cachedCanvases.getCanvas(\"isFontSubpixelAAEnabled\", 10, 10);\n ctx.scale(1.5, 1);\n ctx.fillText(\"I\", 0, 10);\n const data = ctx.getImageData(0, 0, 10, 10).data;\n let enabled = false;\n for (let i = 3; i < data.length; i += 4) {\n if (data[i] > 0 && data[i] < 255) {\n enabled = true;\n break;\n }\n }\n return shadow(this, \"isFontSubpixelAAEnabled\", enabled);\n }\n showText(glyphs) {\n const current = this.current;\n const font = current.font;\n if (font.isType3Font) {\n return this.showType3Text(glyphs);\n }\n const fontSize = current.fontSize;\n if (fontSize === 0) {\n return undefined;\n }\n const ctx = this.ctx;\n const fontSizeScale = current.fontSizeScale;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const fontDirection = current.fontDirection;\n const textHScale = current.textHScale * fontDirection;\n const glyphsLength = glyphs.length;\n const vertical = font.vertical;\n const spacingDir = vertical ? 1 : -1;\n const defaultVMetrics = font.defaultVMetrics;\n const widthAdvanceScale = fontSize * current.fontMatrix[0];\n const simpleFillText = current.textRenderingMode === TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill;\n ctx.save();\n ctx.transform(...current.textMatrix);\n ctx.translate(current.x, current.y + current.textRise);\n if (fontDirection > 0) {\n ctx.scale(textHScale, -1);\n } else {\n ctx.scale(textHScale, 1);\n }\n let patternTransform;\n if (current.patternFill) {\n ctx.save();\n const pattern = current.fillColor.getPattern(ctx, this, getCurrentTransformInverse(ctx), PathType.FILL);\n patternTransform = getCurrentTransform(ctx);\n ctx.restore();\n ctx.fillStyle = pattern;\n }\n let lineWidth = current.lineWidth;\n const scale = current.textMatrixScale;\n if (scale === 0 || lineWidth === 0) {\n const fillStrokeMode = current.textRenderingMode & TextRenderingMode.FILL_STROKE_MASK;\n if (fillStrokeMode === TextRenderingMode.STROKE || fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n lineWidth = this.getSinglePixelWidth();\n }\n } else {\n lineWidth /= scale;\n }\n if (fontSizeScale !== 1.0) {\n ctx.scale(fontSizeScale, fontSizeScale);\n lineWidth /= fontSizeScale;\n }\n ctx.lineWidth = lineWidth;\n if (font.isInvalidPDFjsFont) {\n const chars = [];\n let width = 0;\n for (const glyph of glyphs) {\n chars.push(glyph.unicode);\n width += glyph.width;\n }\n ctx.fillText(chars.join(\"\"), 0, 0);\n current.x += width * widthAdvanceScale * textHScale;\n ctx.restore();\n this.compose();\n return undefined;\n }\n let x = 0,\n i;\n for (i = 0; i < glyphsLength; ++i) {\n const glyph = glyphs[i];\n if (typeof glyph === \"number\") {\n x += spacingDir * glyph * fontSize / 1000;\n continue;\n }\n let restoreNeeded = false;\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const character = glyph.fontChar;\n const accent = glyph.accent;\n let scaledX, scaledY;\n let width = glyph.width;\n if (vertical) {\n const vmetric = glyph.vmetric || defaultVMetrics;\n const vx = -(glyph.vmetric ? vmetric[1] : width * 0.5) * widthAdvanceScale;\n const vy = vmetric[2] * widthAdvanceScale;\n width = vmetric ? -vmetric[0] : width;\n scaledX = vx / fontSizeScale;\n scaledY = (x + vy) / fontSizeScale;\n } else {\n scaledX = x / fontSizeScale;\n scaledY = 0;\n }\n if (font.remeasure && width > 0) {\n const measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale;\n if (width < measuredWidth && this.isFontSubpixelAAEnabled) {\n const characterScaleX = width / measuredWidth;\n restoreNeeded = true;\n ctx.save();\n ctx.scale(characterScaleX, 1);\n scaledX /= characterScaleX;\n } else if (width !== measuredWidth) {\n scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale;\n }\n }\n if (this.contentVisible && (glyph.isInFont || font.missingFile)) {\n if (simpleFillText && !accent) {\n ctx.fillText(character, scaledX, scaledY);\n } else {\n this.paintChar(character, scaledX, scaledY, patternTransform);\n if (accent) {\n const scaledAccentX = scaledX + fontSize * accent.offset.x / fontSizeScale;\n const scaledAccentY = scaledY - fontSize * accent.offset.y / fontSizeScale;\n this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform);\n }\n }\n }\n const charWidth = vertical ? width * widthAdvanceScale - spacing * fontDirection : width * widthAdvanceScale + spacing * fontDirection;\n x += charWidth;\n if (restoreNeeded) {\n ctx.restore();\n }\n }\n if (vertical) {\n current.y -= x;\n } else {\n current.x += x * textHScale;\n }\n ctx.restore();\n this.compose();\n return undefined;\n }\n showType3Text(glyphs) {\n const ctx = this.ctx;\n const current = this.current;\n const font = current.font;\n const fontSize = current.fontSize;\n const fontDirection = current.fontDirection;\n const spacingDir = font.vertical ? 1 : -1;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const textHScale = current.textHScale * fontDirection;\n const fontMatrix = current.fontMatrix || FONT_IDENTITY_MATRIX;\n const glyphsLength = glyphs.length;\n const isTextInvisible = current.textRenderingMode === TextRenderingMode.INVISIBLE;\n let i, glyph, width, spacingLength;\n if (isTextInvisible || fontSize === 0) {\n return;\n }\n this._cachedScaleForStroking[0] = -1;\n this._cachedGetSinglePixelWidth = null;\n ctx.save();\n ctx.transform(...current.textMatrix);\n ctx.translate(current.x, current.y);\n ctx.scale(textHScale, fontDirection);\n for (i = 0; i < glyphsLength; ++i) {\n glyph = glyphs[i];\n if (typeof glyph === \"number\") {\n spacingLength = spacingDir * glyph * fontSize / 1000;\n this.ctx.translate(spacingLength, 0);\n current.x += spacingLength * textHScale;\n continue;\n }\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const operatorList = font.charProcOperatorList[glyph.operatorListId];\n if (!operatorList) {\n warn(`Type3 character \"${glyph.operatorListId}\" is not available.`);\n continue;\n }\n if (this.contentVisible) {\n this.processingType3 = glyph;\n this.save();\n ctx.scale(fontSize, fontSize);\n ctx.transform(...fontMatrix);\n this.executeOperatorList(operatorList);\n this.restore();\n }\n const transformed = Util.applyTransform([glyph.width, 0], fontMatrix);\n width = transformed[0] * fontSize + spacing;\n ctx.translate(width, 0);\n current.x += width * textHScale;\n }\n ctx.restore();\n this.processingType3 = null;\n }\n setCharWidth(xWidth, yWidth) {}\n setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) {\n this.ctx.rect(llx, lly, urx - llx, ury - lly);\n this.ctx.clip();\n this.endPath();\n }\n getColorN_Pattern(IR) {\n let pattern;\n if (IR[0] === \"TilingPattern\") {\n const color = IR[1];\n const baseTransform = this.baseTransform || getCurrentTransform(this.ctx);\n const canvasGraphicsFactory = {\n createCanvasGraphics: ctx => new CanvasGraphics(ctx, this.commonObjs, this.objs, this.canvasFactory, this.filterFactory, {\n optionalContentConfig: this.optionalContentConfig,\n markedContentStack: this.markedContentStack\n })\n };\n pattern = new TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform);\n } else {\n pattern = this._getPattern(IR[1], IR[2]);\n }\n return pattern;\n }\n setStrokeColorN() {\n this.current.strokeColor = this.getColorN_Pattern(arguments);\n }\n setFillColorN() {\n this.current.fillColor = this.getColorN_Pattern(arguments);\n this.current.patternFill = true;\n }\n setStrokeRGBColor(r, g, b) {\n const color = Util.makeHexColor(r, g, b);\n this.ctx.strokeStyle = color;\n this.current.strokeColor = color;\n }\n setFillRGBColor(r, g, b) {\n const color = Util.makeHexColor(r, g, b);\n this.ctx.fillStyle = color;\n this.current.fillColor = color;\n this.current.patternFill = false;\n }\n _getPattern(objId, matrix = null) {\n let pattern;\n if (this.cachedPatterns.has(objId)) {\n pattern = this.cachedPatterns.get(objId);\n } else {\n pattern = getShadingPattern(this.getObject(objId));\n this.cachedPatterns.set(objId, pattern);\n }\n if (matrix) {\n pattern.matrix = matrix;\n }\n return pattern;\n }\n shadingFill(objId) {\n if (!this.contentVisible) {\n return;\n }\n const ctx = this.ctx;\n this.save();\n const pattern = this._getPattern(objId);\n ctx.fillStyle = pattern.getPattern(ctx, this, getCurrentTransformInverse(ctx), PathType.SHADING);\n const inv = getCurrentTransformInverse(ctx);\n if (inv) {\n const {\n width,\n height\n } = ctx.canvas;\n const [x0, y0, x1, y1] = Util.getAxialAlignedBoundingBox([0, 0, width, height], inv);\n this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);\n } else {\n this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);\n }\n this.compose(this.current.getClippedPathBoundingBox());\n this.restore();\n }\n beginInlineImage() {\n unreachable(\"Should not call beginInlineImage\");\n }\n beginImageData() {\n unreachable(\"Should not call beginImageData\");\n }\n paintFormXObjectBegin(matrix, bbox) {\n if (!this.contentVisible) {\n return;\n }\n this.save();\n this.baseTransformStack.push(this.baseTransform);\n if (matrix) {\n this.transform(...matrix);\n }\n this.baseTransform = getCurrentTransform(this.ctx);\n if (bbox) {\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n this.ctx.rect(bbox[0], bbox[1], width, height);\n this.current.updateRectMinMax(getCurrentTransform(this.ctx), bbox);\n this.clip();\n this.endPath();\n }\n }\n paintFormXObjectEnd() {\n if (!this.contentVisible) {\n return;\n }\n this.restore();\n this.baseTransform = this.baseTransformStack.pop();\n }\n beginGroup(group) {\n if (!this.contentVisible) {\n return;\n }\n this.save();\n if (this.inSMaskMode) {\n this.endSMaskMode();\n this.current.activeSMask = null;\n }\n const currentCtx = this.ctx;\n if (!group.isolated) {\n info(\"TODO: Support non-isolated groups.\");\n }\n if (group.knockout) {\n warn(\"Knockout groups not supported.\");\n }\n const currentTransform = getCurrentTransform(currentCtx);\n if (group.matrix) {\n currentCtx.transform(...group.matrix);\n }\n if (!group.bbox) {\n throw new Error(\"Bounding box is required.\");\n }\n let bounds = Util.getAxialAlignedBoundingBox(group.bbox, getCurrentTransform(currentCtx));\n const canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height];\n bounds = Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];\n const offsetX = Math.floor(bounds[0]);\n const offsetY = Math.floor(bounds[1]);\n const drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1);\n const drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1);\n this.current.startNewPathAndClipBox([0, 0, drawnWidth, drawnHeight]);\n let cacheId = \"groupAt\" + this.groupLevel;\n if (group.smask) {\n cacheId += \"_smask_\" + this.smaskCounter++ % 2;\n }\n const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight);\n const groupCtx = scratchCanvas.context;\n groupCtx.translate(-offsetX, -offsetY);\n groupCtx.transform(...currentTransform);\n if (group.smask) {\n this.smaskStack.push({\n canvas: scratchCanvas.canvas,\n context: groupCtx,\n offsetX,\n offsetY,\n subtype: group.smask.subtype,\n backdrop: group.smask.backdrop,\n transferMap: group.smask.transferMap || null,\n startTransformInverse: null\n });\n } else {\n currentCtx.setTransform(1, 0, 0, 1, 0, 0);\n currentCtx.translate(offsetX, offsetY);\n currentCtx.save();\n }\n copyCtxState(currentCtx, groupCtx);\n this.ctx = groupCtx;\n this.setGState([[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1]]);\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n }\n endGroup(group) {\n if (!this.contentVisible) {\n return;\n }\n this.groupLevel--;\n const groupCtx = this.ctx;\n const ctx = this.groupStack.pop();\n this.ctx = ctx;\n this.ctx.imageSmoothingEnabled = false;\n if (group.smask) {\n this.tempSMask = this.smaskStack.pop();\n this.restore();\n } else {\n this.ctx.restore();\n const currentMtx = getCurrentTransform(this.ctx);\n this.restore();\n this.ctx.save();\n this.ctx.setTransform(...currentMtx);\n const dirtyBox = Util.getAxialAlignedBoundingBox([0, 0, groupCtx.canvas.width, groupCtx.canvas.height], currentMtx);\n this.ctx.drawImage(groupCtx.canvas, 0, 0);\n this.ctx.restore();\n this.compose(dirtyBox);\n }\n }\n beginAnnotation(id, rect, transform, matrix, hasOwnCanvas) {\n this.#restoreInitialState();\n resetCtxToDefault(this.ctx);\n this.ctx.save();\n this.save();\n if (this.baseTransform) {\n this.ctx.setTransform(...this.baseTransform);\n }\n if (rect) {\n const width = rect[2] - rect[0];\n const height = rect[3] - rect[1];\n if (hasOwnCanvas && this.annotationCanvasMap) {\n transform = transform.slice();\n transform[4] -= rect[0];\n transform[5] -= rect[1];\n rect = rect.slice();\n rect[0] = rect[1] = 0;\n rect[2] = width;\n rect[3] = height;\n const [scaleX, scaleY] = Util.singularValueDecompose2dScale(getCurrentTransform(this.ctx));\n const {\n viewportScale\n } = this;\n const canvasWidth = Math.ceil(width * this.outputScaleX * viewportScale);\n const canvasHeight = Math.ceil(height * this.outputScaleY * viewportScale);\n this.annotationCanvas = this.canvasFactory.create(canvasWidth, canvasHeight);\n const {\n canvas,\n context\n } = this.annotationCanvas;\n this.annotationCanvasMap.set(id, canvas);\n this.annotationCanvas.savedCtx = this.ctx;\n this.ctx = context;\n this.ctx.save();\n this.ctx.setTransform(scaleX, 0, 0, -scaleY, 0, height * scaleY);\n resetCtxToDefault(this.ctx);\n } else {\n resetCtxToDefault(this.ctx);\n this.ctx.rect(rect[0], rect[1], width, height);\n this.ctx.clip();\n this.endPath();\n }\n }\n this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height);\n this.transform(...transform);\n this.transform(...matrix);\n }\n endAnnotation() {\n if (this.annotationCanvas) {\n this.ctx.restore();\n this.#drawFilter();\n this.ctx = this.annotationCanvas.savedCtx;\n delete this.annotationCanvas.savedCtx;\n delete this.annotationCanvas;\n }\n }\n paintImageMaskXObject(img) {\n if (!this.contentVisible) {\n return;\n }\n const count = img.count;\n img = this.getObject(img.data, img);\n img.count = count;\n const ctx = this.ctx;\n const glyph = this.processingType3;\n if (glyph) {\n if (glyph.compiled === undefined) {\n glyph.compiled = compileType3Glyph(img);\n }\n if (glyph.compiled) {\n glyph.compiled(ctx);\n return;\n }\n }\n const mask = this._createMaskCanvas(img);\n const maskCanvas = mask.canvas;\n ctx.save();\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(maskCanvas, mask.offsetX, mask.offsetY);\n ctx.restore();\n this.compose();\n }\n paintImageMaskXObjectRepeat(img, scaleX, skewX = 0, skewY = 0, scaleY, positions) {\n if (!this.contentVisible) {\n return;\n }\n img = this.getObject(img.data, img);\n const ctx = this.ctx;\n ctx.save();\n const currentTransform = getCurrentTransform(ctx);\n ctx.transform(scaleX, skewX, skewY, scaleY, 0, 0);\n const mask = this._createMaskCanvas(img);\n ctx.setTransform(1, 0, 0, 1, mask.offsetX - currentTransform[4], mask.offsetY - currentTransform[5]);\n for (let i = 0, ii = positions.length; i < ii; i += 2) {\n const trans = Util.transform(currentTransform, [scaleX, skewX, skewY, scaleY, positions[i], positions[i + 1]]);\n const [x, y] = Util.applyTransform([0, 0], trans);\n ctx.drawImage(mask.canvas, x, y);\n }\n ctx.restore();\n this.compose();\n }\n paintImageMaskXObjectGroup(images) {\n if (!this.contentVisible) {\n return;\n }\n const ctx = this.ctx;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n for (const image of images) {\n const {\n data,\n width,\n height,\n transform\n } = image;\n const maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n const maskCtx = maskCanvas.context;\n maskCtx.save();\n const img = this.getObject(data, image);\n putBinaryImageMask(maskCtx, img);\n maskCtx.globalCompositeOperation = \"source-in\";\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this, getCurrentTransformInverse(ctx), PathType.FILL) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n ctx.save();\n ctx.transform(...transform);\n ctx.scale(1, -1);\n drawImageAtIntegerCoords(ctx, maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);\n ctx.restore();\n }\n this.compose();\n }\n paintImageXObject(objId) {\n if (!this.contentVisible) {\n return;\n }\n const imgData = this.getObject(objId);\n if (!imgData) {\n warn(\"Dependent image isn't ready yet\");\n return;\n }\n this.paintInlineImageXObject(imgData);\n }\n paintImageXObjectRepeat(objId, scaleX, scaleY, positions) {\n if (!this.contentVisible) {\n return;\n }\n const imgData = this.getObject(objId);\n if (!imgData) {\n warn(\"Dependent image isn't ready yet\");\n return;\n }\n const width = imgData.width;\n const height = imgData.height;\n const map = [];\n for (let i = 0, ii = positions.length; i < ii; i += 2) {\n map.push({\n transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]],\n x: 0,\n y: 0,\n w: width,\n h: height\n });\n }\n this.paintInlineImageXObjectGroup(imgData, map);\n }\n applyTransferMapsToCanvas(ctx) {\n if (this.current.transferMaps !== \"none\") {\n ctx.filter = this.current.transferMaps;\n ctx.drawImage(ctx.canvas, 0, 0);\n ctx.filter = \"none\";\n }\n return ctx.canvas;\n }\n applyTransferMapsToBitmap(imgData) {\n if (this.current.transferMaps === \"none\") {\n return imgData.bitmap;\n }\n const {\n bitmap,\n width,\n height\n } = imgData;\n const tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", width, height);\n const tmpCtx = tmpCanvas.context;\n tmpCtx.filter = this.current.transferMaps;\n tmpCtx.drawImage(bitmap, 0, 0);\n tmpCtx.filter = \"none\";\n return tmpCanvas.canvas;\n }\n paintInlineImageXObject(imgData) {\n if (!this.contentVisible) {\n return;\n }\n const width = imgData.width;\n const height = imgData.height;\n const ctx = this.ctx;\n this.save();\n if (!isNodeJS) {\n const {\n filter\n } = ctx;\n if (filter !== \"none\" && filter !== \"\") {\n ctx.filter = \"none\";\n }\n }\n ctx.scale(1 / width, -1 / height);\n let imgToPaint;\n if (imgData.bitmap) {\n imgToPaint = this.applyTransferMapsToBitmap(imgData);\n } else if (typeof HTMLElement === \"function\" && imgData instanceof HTMLElement || !imgData.data) {\n imgToPaint = imgData;\n } else {\n const tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", width, height);\n const tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData);\n imgToPaint = this.applyTransferMapsToCanvas(tmpCtx);\n }\n const scaled = this._scaleImage(imgToPaint, getCurrentTransformInverse(ctx));\n ctx.imageSmoothingEnabled = getImageSmoothingEnabled(getCurrentTransform(ctx), imgData.interpolate);\n drawImageAtIntegerCoords(ctx, scaled.img, 0, 0, scaled.paintWidth, scaled.paintHeight, 0, -height, width, height);\n this.compose();\n this.restore();\n }\n paintInlineImageXObjectGroup(imgData, map) {\n if (!this.contentVisible) {\n return;\n }\n const ctx = this.ctx;\n let imgToPaint;\n if (imgData.bitmap) {\n imgToPaint = imgData.bitmap;\n } else {\n const w = imgData.width;\n const h = imgData.height;\n const tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", w, h);\n const tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData);\n imgToPaint = this.applyTransferMapsToCanvas(tmpCtx);\n }\n for (const entry of map) {\n ctx.save();\n ctx.transform(...entry.transform);\n ctx.scale(1, -1);\n drawImageAtIntegerCoords(ctx, imgToPaint, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1);\n ctx.restore();\n }\n this.compose();\n }\n paintSolidColorImageMask() {\n if (!this.contentVisible) {\n return;\n }\n this.ctx.fillRect(0, 0, 1, 1);\n this.compose();\n }\n markPoint(tag) {}\n markPointProps(tag, properties) {}\n beginMarkedContent(tag) {\n this.markedContentStack.push({\n visible: true\n });\n }\n beginMarkedContentProps(tag, properties) {\n if (tag === \"OC\") {\n this.markedContentStack.push({\n visible: this.optionalContentConfig.isVisible(properties)\n });\n } else {\n this.markedContentStack.push({\n visible: true\n });\n }\n this.contentVisible = this.isContentVisible();\n }\n endMarkedContent() {\n this.markedContentStack.pop();\n this.contentVisible = this.isContentVisible();\n }\n beginCompat() {}\n endCompat() {}\n consumePath(clipBox) {\n const isEmpty = this.current.isEmptyClip();\n if (this.pendingClip) {\n this.current.updateClipFromPath();\n }\n if (!this.pendingClip) {\n this.compose(clipBox);\n }\n const ctx = this.ctx;\n if (this.pendingClip) {\n if (!isEmpty) {\n if (this.pendingClip === EO_CLIP) {\n ctx.clip(\"evenodd\");\n } else {\n ctx.clip();\n }\n }\n this.pendingClip = null;\n }\n this.current.startNewPathAndClipBox(this.current.clipBox);\n ctx.beginPath();\n }\n getSinglePixelWidth() {\n if (!this._cachedGetSinglePixelWidth) {\n const m = getCurrentTransform(this.ctx);\n if (m[1] === 0 && m[2] === 0) {\n this._cachedGetSinglePixelWidth = 1 / Math.min(Math.abs(m[0]), Math.abs(m[3]));\n } else {\n const absDet = Math.abs(m[0] * m[3] - m[2] * m[1]);\n const normX = Math.hypot(m[0], m[2]);\n const normY = Math.hypot(m[1], m[3]);\n this._cachedGetSinglePixelWidth = Math.max(normX, normY) / absDet;\n }\n }\n return this._cachedGetSinglePixelWidth;\n }\n getScaleForStroking() {\n if (this._cachedScaleForStroking[0] === -1) {\n const {\n lineWidth\n } = this.current;\n const {\n a,\n b,\n c,\n d\n } = this.ctx.getTransform();\n let scaleX, scaleY;\n if (b === 0 && c === 0) {\n const normX = Math.abs(a);\n const normY = Math.abs(d);\n if (normX === normY) {\n if (lineWidth === 0) {\n scaleX = scaleY = 1 / normX;\n } else {\n const scaledLineWidth = normX * lineWidth;\n scaleX = scaleY = scaledLineWidth < 1 ? 1 / scaledLineWidth : 1;\n }\n } else if (lineWidth === 0) {\n scaleX = 1 / normX;\n scaleY = 1 / normY;\n } else {\n const scaledXLineWidth = normX * lineWidth;\n const scaledYLineWidth = normY * lineWidth;\n scaleX = scaledXLineWidth < 1 ? 1 / scaledXLineWidth : 1;\n scaleY = scaledYLineWidth < 1 ? 1 / scaledYLineWidth : 1;\n }\n } else {\n const absDet = Math.abs(a * d - b * c);\n const normX = Math.hypot(a, b);\n const normY = Math.hypot(c, d);\n if (lineWidth === 0) {\n scaleX = normY / absDet;\n scaleY = normX / absDet;\n } else {\n const baseArea = lineWidth * absDet;\n scaleX = normY > baseArea ? normY / baseArea : 1;\n scaleY = normX > baseArea ? normX / baseArea : 1;\n }\n }\n this._cachedScaleForStroking[0] = scaleX;\n this._cachedScaleForStroking[1] = scaleY;\n }\n return this._cachedScaleForStroking;\n }\n rescaleAndStroke(saveRestore) {\n const {\n ctx\n } = this;\n const {\n lineWidth\n } = this.current;\n const [scaleX, scaleY] = this.getScaleForStroking();\n ctx.lineWidth = lineWidth || 1;\n if (scaleX === 1 && scaleY === 1) {\n ctx.stroke();\n return;\n }\n const dashes = ctx.getLineDash();\n if (saveRestore) {\n ctx.save();\n }\n ctx.scale(scaleX, scaleY);\n if (dashes.length > 0) {\n const scale = Math.max(scaleX, scaleY);\n ctx.setLineDash(dashes.map(x => x / scale));\n ctx.lineDashOffset /= scale;\n }\n ctx.stroke();\n if (saveRestore) {\n ctx.restore();\n }\n }\n isContentVisible() {\n for (let i = this.markedContentStack.length - 1; i >= 0; i--) {\n if (!this.markedContentStack[i].visible) {\n return false;\n }\n }\n return true;\n }\n}\nfor (const op in OPS) {\n if (CanvasGraphics.prototype[op] !== undefined) {\n CanvasGraphics.prototype[OPS[op]] = CanvasGraphics.prototype[op];\n }\n}\n\n;// CONCATENATED MODULE: ./src/display/worker_options.js\nclass GlobalWorkerOptions {\n static #port = null;\n static #src = \"\";\n static get workerPort() {\n return this.#port;\n }\n static set workerPort(val) {\n if (!(typeof Worker !== \"undefined\" && val instanceof Worker) && val !== null) {\n throw new Error(\"Invalid `workerPort` type.\");\n }\n this.#port = val;\n }\n static get workerSrc() {\n return this.#src;\n }\n static set workerSrc(val) {\n if (typeof val !== \"string\") {\n throw new Error(\"Invalid `workerSrc` type.\");\n }\n this.#src = val;\n }\n}\n\n;// CONCATENATED MODULE: ./src/shared/message_handler.js\n\nconst CallbackKind = {\n UNKNOWN: 0,\n DATA: 1,\n ERROR: 2\n};\nconst StreamKind = {\n UNKNOWN: 0,\n CANCEL: 1,\n CANCEL_COMPLETE: 2,\n CLOSE: 3,\n ENQUEUE: 4,\n ERROR: 5,\n PULL: 6,\n PULL_COMPLETE: 7,\n START_COMPLETE: 8\n};\nfunction wrapReason(reason) {\n if (!(reason instanceof Error || typeof reason === \"object\" && reason !== null)) {\n unreachable('wrapReason: Expected \"reason\" to be a (possibly cloned) Error.');\n }\n switch (reason.name) {\n case \"AbortException\":\n return new AbortException(reason.message);\n case \"MissingPDFException\":\n return new MissingPDFException(reason.message);\n case \"PasswordException\":\n return new PasswordException(reason.message, reason.code);\n case \"UnexpectedResponseException\":\n return new UnexpectedResponseException(reason.message, reason.status);\n case \"UnknownErrorException\":\n return new UnknownErrorException(reason.message, reason.details);\n default:\n return new UnknownErrorException(reason.message, reason.toString());\n }\n}\nclass MessageHandler {\n constructor(sourceName, targetName, comObj) {\n this.sourceName = sourceName;\n this.targetName = targetName;\n this.comObj = comObj;\n this.callbackId = 1;\n this.streamId = 1;\n this.streamSinks = Object.create(null);\n this.streamControllers = Object.create(null);\n this.callbackCapabilities = Object.create(null);\n this.actionHandler = Object.create(null);\n this._onComObjOnMessage = event => {\n const data = event.data;\n if (data.targetName !== this.sourceName) {\n return;\n }\n if (data.stream) {\n this.#processStreamMessage(data);\n return;\n }\n if (data.callback) {\n const callbackId = data.callbackId;\n const capability = this.callbackCapabilities[callbackId];\n if (!capability) {\n throw new Error(`Cannot resolve callback ${callbackId}`);\n }\n delete this.callbackCapabilities[callbackId];\n if (data.callback === CallbackKind.DATA) {\n capability.resolve(data.data);\n } else if (data.callback === CallbackKind.ERROR) {\n capability.reject(wrapReason(data.reason));\n } else {\n throw new Error(\"Unexpected callback case\");\n }\n return;\n }\n const action = this.actionHandler[data.action];\n if (!action) {\n throw new Error(`Unknown action from worker: ${data.action}`);\n }\n if (data.callbackId) {\n const cbSourceName = this.sourceName;\n const cbTargetName = data.sourceName;\n new Promise(function (resolve) {\n resolve(action(data.data));\n }).then(function (result) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.DATA,\n callbackId: data.callbackId,\n data: result\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.ERROR,\n callbackId: data.callbackId,\n reason: wrapReason(reason)\n });\n });\n return;\n }\n if (data.streamId) {\n this.#createStreamSink(data);\n return;\n }\n action(data.data);\n };\n comObj.addEventListener(\"message\", this._onComObjOnMessage);\n }\n on(actionName, handler) {\n const ah = this.actionHandler;\n if (ah[actionName]) {\n throw new Error(`There is already an actionName called \"${actionName}\"`);\n }\n ah[actionName] = handler;\n }\n send(actionName, data, transfers) {\n this.comObj.postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data\n }, transfers);\n }\n sendWithPromise(actionName, data, transfers) {\n const callbackId = this.callbackId++;\n const capability = Promise.withResolvers();\n this.callbackCapabilities[callbackId] = capability;\n try {\n this.comObj.postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n callbackId,\n data\n }, transfers);\n } catch (ex) {\n capability.reject(ex);\n }\n return capability.promise;\n }\n sendWithStream(actionName, data, queueingStrategy, transfers) {\n const streamId = this.streamId++,\n sourceName = this.sourceName,\n targetName = this.targetName,\n comObj = this.comObj;\n return new ReadableStream({\n start: controller => {\n const startCapability = Promise.withResolvers();\n this.streamControllers[streamId] = {\n controller,\n startCall: startCapability,\n pullCall: null,\n cancelCall: null,\n isClosed: false\n };\n comObj.postMessage({\n sourceName,\n targetName,\n action: actionName,\n streamId,\n data,\n desiredSize: controller.desiredSize\n }, transfers);\n return startCapability.promise;\n },\n pull: controller => {\n const pullCapability = Promise.withResolvers();\n this.streamControllers[streamId].pullCall = pullCapability;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL,\n streamId,\n desiredSize: controller.desiredSize\n });\n return pullCapability.promise;\n },\n cancel: reason => {\n assert(reason instanceof Error, \"cancel must have a valid reason\");\n const cancelCapability = Promise.withResolvers();\n this.streamControllers[streamId].cancelCall = cancelCapability;\n this.streamControllers[streamId].isClosed = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL,\n streamId,\n reason: wrapReason(reason)\n });\n return cancelCapability.promise;\n }\n }, queueingStrategy);\n }\n #createStreamSink(data) {\n const streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n const self = this,\n action = this.actionHandler[data.action];\n const streamSink = {\n enqueue(chunk, size = 1, transfers) {\n if (this.isCancelled) {\n return;\n }\n const lastDesiredSize = this.desiredSize;\n this.desiredSize -= size;\n if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n this.sinkCapability = Promise.withResolvers();\n this.ready = this.sinkCapability.promise;\n }\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ENQUEUE,\n streamId,\n chunk\n }, transfers);\n },\n close() {\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CLOSE,\n streamId\n });\n delete self.streamSinks[streamId];\n },\n error(reason) {\n assert(reason instanceof Error, \"error must have a valid reason\");\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ERROR,\n streamId,\n reason: wrapReason(reason)\n });\n },\n sinkCapability: Promise.withResolvers(),\n onPull: null,\n onCancel: null,\n isCancelled: false,\n desiredSize: data.desiredSize,\n ready: null\n };\n streamSink.sinkCapability.resolve();\n streamSink.ready = streamSink.sinkCapability.promise;\n this.streamSinks[streamId] = streamSink;\n new Promise(function (resolve) {\n resolve(action(data.data, streamSink));\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n }\n #processStreamMessage(data) {\n const streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n const streamController = this.streamControllers[streamId],\n streamSink = this.streamSinks[streamId];\n switch (data.stream) {\n case StreamKind.START_COMPLETE:\n if (data.success) {\n streamController.startCall.resolve();\n } else {\n streamController.startCall.reject(wrapReason(data.reason));\n }\n break;\n case StreamKind.PULL_COMPLETE:\n if (data.success) {\n streamController.pullCall.resolve();\n } else {\n streamController.pullCall.reject(wrapReason(data.reason));\n }\n break;\n case StreamKind.PULL:\n if (!streamSink) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true\n });\n break;\n }\n if (streamSink.desiredSize <= 0 && data.desiredSize > 0) {\n streamSink.sinkCapability.resolve();\n }\n streamSink.desiredSize = data.desiredSize;\n new Promise(function (resolve) {\n resolve(streamSink.onPull?.());\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n break;\n case StreamKind.ENQUEUE:\n assert(streamController, \"enqueue should have stream controller\");\n if (streamController.isClosed) {\n break;\n }\n streamController.controller.enqueue(data.chunk);\n break;\n case StreamKind.CLOSE:\n assert(streamController, \"close should have stream controller\");\n if (streamController.isClosed) {\n break;\n }\n streamController.isClosed = true;\n streamController.controller.close();\n this.#deleteStreamController(streamController, streamId);\n break;\n case StreamKind.ERROR:\n assert(streamController, \"error should have stream controller\");\n streamController.controller.error(wrapReason(data.reason));\n this.#deleteStreamController(streamController, streamId);\n break;\n case StreamKind.CANCEL_COMPLETE:\n if (data.success) {\n streamController.cancelCall.resolve();\n } else {\n streamController.cancelCall.reject(wrapReason(data.reason));\n }\n this.#deleteStreamController(streamController, streamId);\n break;\n case StreamKind.CANCEL:\n if (!streamSink) {\n break;\n }\n new Promise(function (resolve) {\n resolve(streamSink.onCancel?.(wrapReason(data.reason)));\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n streamSink.sinkCapability.reject(wrapReason(data.reason));\n streamSink.isCancelled = true;\n delete this.streamSinks[streamId];\n break;\n default:\n throw new Error(\"Unexpected stream case\");\n }\n }\n async #deleteStreamController(streamController, streamId) {\n await Promise.allSettled([streamController.startCall?.promise, streamController.pullCall?.promise, streamController.cancelCall?.promise]);\n delete this.streamControllers[streamId];\n }\n destroy() {\n this.comObj.removeEventListener(\"message\", this._onComObjOnMessage);\n }\n}\n\n;// CONCATENATED MODULE: ./src/display/metadata.js\n\nclass Metadata {\n #metadataMap;\n #data;\n constructor({\n parsedData,\n rawData\n }) {\n this.#metadataMap = parsedData;\n this.#data = rawData;\n }\n getRaw() {\n return this.#data;\n }\n get(name) {\n return this.#metadataMap.get(name) ?? null;\n }\n getAll() {\n return objectFromMap(this.#metadataMap);\n }\n has(name) {\n return this.#metadataMap.has(name);\n }\n}\n\n;// CONCATENATED MODULE: ./src/display/optional_content_config.js\n\n\nconst INTERNAL = Symbol(\"INTERNAL\");\nclass OptionalContentGroup {\n #isDisplay = false;\n #isPrint = false;\n #userSet = false;\n #visible = true;\n constructor(renderingIntent, {\n name,\n intent,\n usage\n }) {\n this.#isDisplay = !!(renderingIntent & RenderingIntentFlag.DISPLAY);\n this.#isPrint = !!(renderingIntent & RenderingIntentFlag.PRINT);\n this.name = name;\n this.intent = intent;\n this.usage = usage;\n }\n get visible() {\n if (this.#userSet) {\n return this.#visible;\n }\n if (!this.#visible) {\n return false;\n }\n const {\n print,\n view\n } = this.usage;\n if (this.#isDisplay) {\n return view?.viewState !== \"OFF\";\n } else if (this.#isPrint) {\n return print?.printState !== \"OFF\";\n }\n return true;\n }\n _setVisible(internal, visible, userSet = false) {\n if (internal !== INTERNAL) {\n unreachable(\"Internal method `_setVisible` called.\");\n }\n this.#userSet = userSet;\n this.#visible = visible;\n }\n}\nclass OptionalContentConfig {\n #cachedGetHash = null;\n #groups = new Map();\n #initialHash = null;\n #order = null;\n constructor(data, renderingIntent = RenderingIntentFlag.DISPLAY) {\n this.renderingIntent = renderingIntent;\n this.name = null;\n this.creator = null;\n if (data === null) {\n return;\n }\n this.name = data.name;\n this.creator = data.creator;\n this.#order = data.order;\n for (const group of data.groups) {\n this.#groups.set(group.id, new OptionalContentGroup(renderingIntent, group));\n }\n if (data.baseState === \"OFF\") {\n for (const group of this.#groups.values()) {\n group._setVisible(INTERNAL, false);\n }\n }\n for (const on of data.on) {\n this.#groups.get(on)._setVisible(INTERNAL, true);\n }\n for (const off of data.off) {\n this.#groups.get(off)._setVisible(INTERNAL, false);\n }\n this.#initialHash = this.getHash();\n }\n #evaluateVisibilityExpression(array) {\n const length = array.length;\n if (length < 2) {\n return true;\n }\n const operator = array[0];\n for (let i = 1; i < length; i++) {\n const element = array[i];\n let state;\n if (Array.isArray(element)) {\n state = this.#evaluateVisibilityExpression(element);\n } else if (this.#groups.has(element)) {\n state = this.#groups.get(element).visible;\n } else {\n warn(`Optional content group not found: ${element}`);\n return true;\n }\n switch (operator) {\n case \"And\":\n if (!state) {\n return false;\n }\n break;\n case \"Or\":\n if (state) {\n return true;\n }\n break;\n case \"Not\":\n return !state;\n default:\n return true;\n }\n }\n return operator === \"And\";\n }\n isVisible(group) {\n if (this.#groups.size === 0) {\n return true;\n }\n if (!group) {\n info(\"Optional content group not defined.\");\n return true;\n }\n if (group.type === \"OCG\") {\n if (!this.#groups.has(group.id)) {\n warn(`Optional content group not found: ${group.id}`);\n return true;\n }\n return this.#groups.get(group.id).visible;\n } else if (group.type === \"OCMD\") {\n if (group.expression) {\n return this.#evaluateVisibilityExpression(group.expression);\n }\n if (!group.policy || group.policy === \"AnyOn\") {\n for (const id of group.ids) {\n if (!this.#groups.has(id)) {\n warn(`Optional content group not found: ${id}`);\n return true;\n }\n if (this.#groups.get(id).visible) {\n return true;\n }\n }\n return false;\n } else if (group.policy === \"AllOn\") {\n for (const id of group.ids) {\n if (!this.#groups.has(id)) {\n warn(`Optional content group not found: ${id}`);\n return true;\n }\n if (!this.#groups.get(id).visible) {\n return false;\n }\n }\n return true;\n } else if (group.policy === \"AnyOff\") {\n for (const id of group.ids) {\n if (!this.#groups.has(id)) {\n warn(`Optional content group not found: ${id}`);\n return true;\n }\n if (!this.#groups.get(id).visible) {\n return true;\n }\n }\n return false;\n } else if (group.policy === \"AllOff\") {\n for (const id of group.ids) {\n if (!this.#groups.has(id)) {\n warn(`Optional content group not found: ${id}`);\n return true;\n }\n if (this.#groups.get(id).visible) {\n return false;\n }\n }\n return true;\n }\n warn(`Unknown optional content policy ${group.policy}.`);\n return true;\n }\n warn(`Unknown group type ${group.type}.`);\n return true;\n }\n setVisibility(id, visible = true) {\n const group = this.#groups.get(id);\n if (!group) {\n warn(`Optional content group not found: ${id}`);\n return;\n }\n group._setVisible(INTERNAL, !!visible, true);\n this.#cachedGetHash = null;\n }\n setOCGState({\n state,\n preserveRB\n }) {\n let operator;\n for (const elem of state) {\n switch (elem) {\n case \"ON\":\n case \"OFF\":\n case \"Toggle\":\n operator = elem;\n continue;\n }\n const group = this.#groups.get(elem);\n if (!group) {\n continue;\n }\n switch (operator) {\n case \"ON\":\n group._setVisible(INTERNAL, true);\n break;\n case \"OFF\":\n group._setVisible(INTERNAL, false);\n break;\n case \"Toggle\":\n group._setVisible(INTERNAL, !group.visible);\n break;\n }\n }\n this.#cachedGetHash = null;\n }\n get hasInitialVisibility() {\n return this.#initialHash === null || this.getHash() === this.#initialHash;\n }\n getOrder() {\n if (!this.#groups.size) {\n return null;\n }\n if (this.#order) {\n return this.#order.slice();\n }\n return [...this.#groups.keys()];\n }\n getGroups() {\n return this.#groups.size > 0 ? objectFromMap(this.#groups) : null;\n }\n getGroup(id) {\n return this.#groups.get(id) || null;\n }\n getHash() {\n if (this.#cachedGetHash !== null) {\n return this.#cachedGetHash;\n }\n const hash = new MurmurHash3_64();\n for (const [id, group] of this.#groups) {\n hash.update(`${id}:${group.visible}`);\n }\n return this.#cachedGetHash = hash.hexdigest();\n }\n}\n\n;// CONCATENATED MODULE: ./src/display/transport_stream.js\n\n\nclass PDFDataTransportStream {\n constructor(pdfDataRangeTransport, {\n disableRange = false,\n disableStream = false\n }) {\n assert(pdfDataRangeTransport, 'PDFDataTransportStream - missing required \"pdfDataRangeTransport\" argument.');\n const {\n length,\n initialData,\n progressiveDone,\n contentDispositionFilename\n } = pdfDataRangeTransport;\n this._queuedChunks = [];\n this._progressiveDone = progressiveDone;\n this._contentDispositionFilename = contentDispositionFilename;\n if (initialData?.length > 0) {\n const buffer = initialData instanceof Uint8Array && initialData.byteLength === initialData.buffer.byteLength ? initialData.buffer : new Uint8Array(initialData).buffer;\n this._queuedChunks.push(buffer);\n }\n this._pdfDataRangeTransport = pdfDataRangeTransport;\n this._isStreamingSupported = !disableStream;\n this._isRangeSupported = !disableRange;\n this._contentLength = length;\n this._fullRequestReader = null;\n this._rangeReaders = [];\n pdfDataRangeTransport.addRangeListener((begin, chunk) => {\n this._onReceiveData({\n begin,\n chunk\n });\n });\n pdfDataRangeTransport.addProgressListener((loaded, total) => {\n this._onProgress({\n loaded,\n total\n });\n });\n pdfDataRangeTransport.addProgressiveReadListener(chunk => {\n this._onReceiveData({\n chunk\n });\n });\n pdfDataRangeTransport.addProgressiveDoneListener(() => {\n this._onProgressiveDone();\n });\n pdfDataRangeTransport.transportReady();\n }\n _onReceiveData({\n begin,\n chunk\n }) {\n const buffer = chunk instanceof Uint8Array && chunk.byteLength === chunk.buffer.byteLength ? chunk.buffer : new Uint8Array(chunk).buffer;\n if (begin === undefined) {\n if (this._fullRequestReader) {\n this._fullRequestReader._enqueue(buffer);\n } else {\n this._queuedChunks.push(buffer);\n }\n } else {\n const found = this._rangeReaders.some(function (rangeReader) {\n if (rangeReader._begin !== begin) {\n return false;\n }\n rangeReader._enqueue(buffer);\n return true;\n });\n assert(found, \"_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.\");\n }\n }\n get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\n }\n _onProgress(evt) {\n if (evt.total === undefined) {\n this._rangeReaders[0]?.onProgress?.({\n loaded: evt.loaded\n });\n } else {\n this._fullRequestReader?.onProgress?.({\n loaded: evt.loaded,\n total: evt.total\n });\n }\n }\n _onProgressiveDone() {\n this._fullRequestReader?.progressiveDone();\n this._progressiveDone = true;\n }\n _removeRangeReader(reader) {\n const i = this._rangeReaders.indexOf(reader);\n if (i >= 0) {\n this._rangeReaders.splice(i, 1);\n }\n }\n getFullReader() {\n assert(!this._fullRequestReader, \"PDFDataTransportStream.getFullReader can only be called once.\");\n const queuedChunks = this._queuedChunks;\n this._queuedChunks = null;\n return new PDFDataTransportStreamReader(this, queuedChunks, this._progressiveDone, this._contentDispositionFilename);\n }\n getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n const reader = new PDFDataTransportStreamRangeReader(this, begin, end);\n this._pdfDataRangeTransport.requestDataRange(begin, end);\n this._rangeReaders.push(reader);\n return reader;\n }\n cancelAllRequests(reason) {\n this._fullRequestReader?.cancel(reason);\n for (const reader of this._rangeReaders.slice(0)) {\n reader.cancel(reason);\n }\n this._pdfDataRangeTransport.abort();\n }\n}\nclass PDFDataTransportStreamReader {\n constructor(stream, queuedChunks, progressiveDone = false, contentDispositionFilename = null) {\n this._stream = stream;\n this._done = progressiveDone || false;\n this._filename = isPdfFile(contentDispositionFilename) ? contentDispositionFilename : null;\n this._queuedChunks = queuedChunks || [];\n this._loaded = 0;\n for (const chunk of this._queuedChunks) {\n this._loaded += chunk.byteLength;\n }\n this._requests = [];\n this._headersReady = Promise.resolve();\n stream._fullRequestReader = this;\n this.onProgress = null;\n }\n _enqueue(chunk) {\n if (this._done) {\n return;\n }\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunks.push(chunk);\n }\n this._loaded += chunk.byteLength;\n }\n get headersReady() {\n return this._headersReady;\n }\n get filename() {\n return this._filename;\n }\n get isRangeSupported() {\n return this._stream._isRangeSupported;\n }\n get isStreamingSupported() {\n return this._stream._isStreamingSupported;\n }\n get contentLength() {\n return this._stream._contentLength;\n }\n async read() {\n if (this._queuedChunks.length > 0) {\n const chunk = this._queuedChunks.shift();\n return {\n value: chunk,\n done: false\n };\n }\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n const requestCapability = Promise.withResolvers();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n cancel(reason) {\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n }\n progressiveDone() {\n if (this._done) {\n return;\n }\n this._done = true;\n }\n}\nclass PDFDataTransportStreamRangeReader {\n constructor(stream, begin, end) {\n this._stream = stream;\n this._begin = begin;\n this._end = end;\n this._queuedChunk = null;\n this._requests = [];\n this._done = false;\n this.onProgress = null;\n }\n _enqueue(chunk) {\n if (this._done) {\n return;\n }\n if (this._requests.length === 0) {\n this._queuedChunk = chunk;\n } else {\n const requestsCapability = this._requests.shift();\n requestsCapability.resolve({\n value: chunk,\n done: false\n });\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n }\n this._done = true;\n this._stream._removeRangeReader(this);\n }\n get isStreamingSupported() {\n return false;\n }\n async read() {\n if (this._queuedChunk) {\n const chunk = this._queuedChunk;\n this._queuedChunk = null;\n return {\n value: chunk,\n done: false\n };\n }\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n const requestCapability = Promise.withResolvers();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n cancel(reason) {\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n this._stream._removeRangeReader(this);\n }\n}\n\n;// CONCATENATED MODULE: ./src/display/content_disposition.js\n\nfunction getFilenameFromContentDispositionHeader(contentDisposition) {\n let needsEncodingFixup = true;\n let tmp = toParamRegExp(\"filename\\\\*\", \"i\").exec(contentDisposition);\n if (tmp) {\n tmp = tmp[1];\n let filename = rfc2616unquote(tmp);\n filename = unescape(filename);\n filename = rfc5987decode(filename);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n tmp = rfc2231getparam(contentDisposition);\n if (tmp) {\n const filename = rfc2047decode(tmp);\n return fixupEncoding(filename);\n }\n tmp = toParamRegExp(\"filename\", \"i\").exec(contentDisposition);\n if (tmp) {\n tmp = tmp[1];\n let filename = rfc2616unquote(tmp);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n function toParamRegExp(attributePattern, flags) {\n return new RegExp(\"(?:^|;)\\\\s*\" + attributePattern + \"\\\\s*=\\\\s*\" + \"(\" + '[^\";\\\\s][^;\\\\s]*' + \"|\" + '\"(?:[^\"\\\\\\\\]|\\\\\\\\\"?)+\"?' + \")\", flags);\n }\n function textdecode(encoding, value) {\n if (encoding) {\n if (!/^[\\x00-\\xFF]+$/.test(value)) {\n return value;\n }\n try {\n const decoder = new TextDecoder(encoding, {\n fatal: true\n });\n const buffer = stringToBytes(value);\n value = decoder.decode(buffer);\n needsEncodingFixup = false;\n } catch {}\n }\n return value;\n }\n function fixupEncoding(value) {\n if (needsEncodingFixup && /[\\x80-\\xff]/.test(value)) {\n value = textdecode(\"utf-8\", value);\n if (needsEncodingFixup) {\n value = textdecode(\"iso-8859-1\", value);\n }\n }\n return value;\n }\n function rfc2231getparam(contentDispositionStr) {\n const matches = [];\n let match;\n const iter = toParamRegExp(\"filename\\\\*((?!0\\\\d)\\\\d+)(\\\\*?)\", \"ig\");\n while ((match = iter.exec(contentDispositionStr)) !== null) {\n let [, n, quot, part] = match;\n n = parseInt(n, 10);\n if (n in matches) {\n if (n === 0) {\n break;\n }\n continue;\n }\n matches[n] = [quot, part];\n }\n const parts = [];\n for (let n = 0; n < matches.length; ++n) {\n if (!(n in matches)) {\n break;\n }\n let [quot, part] = matches[n];\n part = rfc2616unquote(part);\n if (quot) {\n part = unescape(part);\n if (n === 0) {\n part = rfc5987decode(part);\n }\n }\n parts.push(part);\n }\n return parts.join(\"\");\n }\n function rfc2616unquote(value) {\n if (value.startsWith('\"')) {\n const parts = value.slice(1).split('\\\\\"');\n for (let i = 0; i < parts.length; ++i) {\n const quotindex = parts[i].indexOf('\"');\n if (quotindex !== -1) {\n parts[i] = parts[i].slice(0, quotindex);\n parts.length = i + 1;\n }\n parts[i] = parts[i].replaceAll(/\\\\(.)/g, \"$1\");\n }\n value = parts.join('\"');\n }\n return value;\n }\n function rfc5987decode(extvalue) {\n const encodingend = extvalue.indexOf(\"'\");\n if (encodingend === -1) {\n return extvalue;\n }\n const encoding = extvalue.slice(0, encodingend);\n const langvalue = extvalue.slice(encodingend + 1);\n const value = langvalue.replace(/^[^']*'/, \"\");\n return textdecode(encoding, value);\n }\n function rfc2047decode(value) {\n if (!value.startsWith(\"=?\") || /[\\x00-\\x19\\x80-\\xff]/.test(value)) {\n return value;\n }\n return value.replaceAll(/=\\?([\\w-]*)\\?([QqBb])\\?((?:[^?]|\\?(?!=))*)\\?=/g, function (matches, charset, encoding, text) {\n if (encoding === \"q\" || encoding === \"Q\") {\n text = text.replaceAll(\"_\", \" \");\n text = text.replaceAll(/=([0-9a-fA-F]{2})/g, function (match, hex) {\n return String.fromCharCode(parseInt(hex, 16));\n });\n return textdecode(charset, text);\n }\n try {\n text = atob(text);\n } catch {}\n return textdecode(charset, text);\n });\n }\n return \"\";\n}\n\n;// CONCATENATED MODULE: ./src/display/network_utils.js\n\n\n\nfunction validateRangeRequestCapabilities({\n getResponseHeader,\n isHttp,\n rangeChunkSize,\n disableRange\n}) {\n const returnValues = {\n allowRangeRequests: false,\n suggestedLength: undefined\n };\n const length = parseInt(getResponseHeader(\"Content-Length\"), 10);\n if (!Number.isInteger(length)) {\n return returnValues;\n }\n returnValues.suggestedLength = length;\n if (length <= 2 * rangeChunkSize) {\n return returnValues;\n }\n if (disableRange || !isHttp) {\n return returnValues;\n }\n if (getResponseHeader(\"Accept-Ranges\") !== \"bytes\") {\n return returnValues;\n }\n const contentEncoding = getResponseHeader(\"Content-Encoding\") || \"identity\";\n if (contentEncoding !== \"identity\") {\n return returnValues;\n }\n returnValues.allowRangeRequests = true;\n return returnValues;\n}\nfunction extractFilenameFromHeader(getResponseHeader) {\n const contentDisposition = getResponseHeader(\"Content-Disposition\");\n if (contentDisposition) {\n let filename = getFilenameFromContentDispositionHeader(contentDisposition);\n if (filename.includes(\"%\")) {\n try {\n filename = decodeURIComponent(filename);\n } catch {}\n }\n if (isPdfFile(filename)) {\n return filename;\n }\n }\n return null;\n}\nfunction createResponseStatusError(status, url) {\n if (status === 404 || status === 0 && url.startsWith(\"file:\")) {\n return new MissingPDFException('Missing PDF \"' + url + '\".');\n }\n return new UnexpectedResponseException(`Unexpected server response (${status}) while retrieving PDF \"${url}\".`, status);\n}\nfunction validateResponseStatus(status) {\n return status === 200 || status === 206;\n}\n\n;// CONCATENATED MODULE: ./src/display/fetch_stream.js\n\n\nfunction createFetchOptions(headers, withCredentials, abortController) {\n return {\n method: \"GET\",\n headers,\n signal: abortController.signal,\n mode: \"cors\",\n credentials: withCredentials ? \"include\" : \"same-origin\",\n redirect: \"follow\"\n };\n}\nfunction createHeaders(httpHeaders) {\n const headers = new Headers();\n for (const property in httpHeaders) {\n const value = httpHeaders[property];\n if (value === undefined) {\n continue;\n }\n headers.append(property, value);\n }\n return headers;\n}\nfunction getArrayBuffer(val) {\n if (val instanceof Uint8Array) {\n return val.buffer;\n }\n if (val instanceof ArrayBuffer) {\n return val;\n }\n warn(`getArrayBuffer - unexpected data format: ${val}`);\n return new Uint8Array(val).buffer;\n}\nclass PDFFetchStream {\n constructor(source) {\n this.source = source;\n this.isHttp = /^https?:/i.test(source.url);\n this.httpHeaders = this.isHttp && source.httpHeaders || {};\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\n }\n getFullReader() {\n assert(!this._fullRequestReader, \"PDFFetchStream.getFullReader can only be called once.\");\n this._fullRequestReader = new PDFFetchStreamReader(this);\n return this._fullRequestReader;\n }\n getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n const reader = new PDFFetchStreamRangeReader(this, begin, end);\n this._rangeRequestReaders.push(reader);\n return reader;\n }\n cancelAllRequests(reason) {\n this._fullRequestReader?.cancel(reason);\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n}\nclass PDFFetchStreamReader {\n constructor(stream) {\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n this._filename = null;\n const source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._contentLength = source.length;\n this._headersCapability = Promise.withResolvers();\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n this._abortController = new AbortController();\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._headers = createHeaders(this._stream.httpHeaders);\n const url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => {\n if (!validateResponseStatus(response.status)) {\n throw createResponseStatusError(response.status, url);\n }\n this._reader = response.body.getReader();\n this._headersCapability.resolve();\n const getResponseHeader = name => response.headers.get(name);\n const {\n allowRangeRequests,\n suggestedLength\n } = validateRangeRequestCapabilities({\n getResponseHeader,\n isHttp: this._stream.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n this._isRangeSupported = allowRangeRequests;\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = extractFilenameFromHeader(getResponseHeader);\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this.cancel(new AbortException(\"Streaming is disabled.\"));\n }\n }).catch(this._headersCapability.reject);\n this.onProgress = null;\n }\n get headersReady() {\n return this._headersCapability.promise;\n }\n get filename() {\n return this._filename;\n }\n get contentLength() {\n return this._contentLength;\n }\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n async read() {\n await this._headersCapability.promise;\n const {\n value,\n done\n } = await this._reader.read();\n if (done) {\n return {\n value,\n done\n };\n }\n this._loaded += value.byteLength;\n this.onProgress?.({\n loaded: this._loaded,\n total: this._contentLength\n });\n return {\n value: getArrayBuffer(value),\n done: false\n };\n }\n cancel(reason) {\n this._reader?.cancel(reason);\n this._abortController.abort();\n }\n}\nclass PDFFetchStreamRangeReader {\n constructor(stream, begin, end) {\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n const source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._readCapability = Promise.withResolvers();\n this._isStreamingSupported = !source.disableStream;\n this._abortController = new AbortController();\n this._headers = createHeaders(this._stream.httpHeaders);\n this._headers.append(\"Range\", `bytes=${begin}-${end - 1}`);\n const url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => {\n if (!validateResponseStatus(response.status)) {\n throw createResponseStatusError(response.status, url);\n }\n this._readCapability.resolve();\n this._reader = response.body.getReader();\n }).catch(this._readCapability.reject);\n this.onProgress = null;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n async read() {\n await this._readCapability.promise;\n const {\n value,\n done\n } = await this._reader.read();\n if (done) {\n return {\n value,\n done\n };\n }\n this._loaded += value.byteLength;\n this.onProgress?.({\n loaded: this._loaded\n });\n return {\n value: getArrayBuffer(value),\n done: false\n };\n }\n cancel(reason) {\n this._reader?.cancel(reason);\n this._abortController.abort();\n }\n}\n\n;// CONCATENATED MODULE: ./src/display/network.js\n\n\nconst OK_RESPONSE = 200;\nconst PARTIAL_CONTENT_RESPONSE = 206;\nfunction network_getArrayBuffer(xhr) {\n const data = xhr.response;\n if (typeof data !== \"string\") {\n return data;\n }\n return stringToBytes(data).buffer;\n}\nclass NetworkManager {\n constructor(url, args = {}) {\n this.url = url;\n this.isHttp = /^https?:/i.test(url);\n this.httpHeaders = this.isHttp && args.httpHeaders || Object.create(null);\n this.withCredentials = args.withCredentials || false;\n this.currXhrId = 0;\n this.pendingRequests = Object.create(null);\n }\n requestRange(begin, end, listeners) {\n const args = {\n begin,\n end\n };\n for (const prop in listeners) {\n args[prop] = listeners[prop];\n }\n return this.request(args);\n }\n requestFull(listeners) {\n return this.request(listeners);\n }\n request(args) {\n const xhr = new XMLHttpRequest();\n const xhrId = this.currXhrId++;\n const pendingRequest = this.pendingRequests[xhrId] = {\n xhr\n };\n xhr.open(\"GET\", this.url);\n xhr.withCredentials = this.withCredentials;\n for (const property in this.httpHeaders) {\n const value = this.httpHeaders[property];\n if (value === undefined) {\n continue;\n }\n xhr.setRequestHeader(property, value);\n }\n if (this.isHttp && \"begin\" in args && \"end\" in args) {\n xhr.setRequestHeader(\"Range\", `bytes=${args.begin}-${args.end - 1}`);\n pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE;\n } else {\n pendingRequest.expectedStatus = OK_RESPONSE;\n }\n xhr.responseType = \"arraybuffer\";\n if (args.onError) {\n xhr.onerror = function (evt) {\n args.onError(xhr.status);\n };\n }\n xhr.onreadystatechange = this.onStateChange.bind(this, xhrId);\n xhr.onprogress = this.onProgress.bind(this, xhrId);\n pendingRequest.onHeadersReceived = args.onHeadersReceived;\n pendingRequest.onDone = args.onDone;\n pendingRequest.onError = args.onError;\n pendingRequest.onProgress = args.onProgress;\n xhr.send(null);\n return xhrId;\n }\n onProgress(xhrId, evt) {\n const pendingRequest = this.pendingRequests[xhrId];\n if (!pendingRequest) {\n return;\n }\n pendingRequest.onProgress?.(evt);\n }\n onStateChange(xhrId, evt) {\n const pendingRequest = this.pendingRequests[xhrId];\n if (!pendingRequest) {\n return;\n }\n const xhr = pendingRequest.xhr;\n if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) {\n pendingRequest.onHeadersReceived();\n delete pendingRequest.onHeadersReceived;\n }\n if (xhr.readyState !== 4) {\n return;\n }\n if (!(xhrId in this.pendingRequests)) {\n return;\n }\n delete this.pendingRequests[xhrId];\n if (xhr.status === 0 && this.isHttp) {\n pendingRequest.onError?.(xhr.status);\n return;\n }\n const xhrStatus = xhr.status || OK_RESPONSE;\n const ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE;\n if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) {\n pendingRequest.onError?.(xhr.status);\n return;\n }\n const chunk = network_getArrayBuffer(xhr);\n if (xhrStatus === PARTIAL_CONTENT_RESPONSE) {\n const rangeHeader = xhr.getResponseHeader(\"Content-Range\");\n const matches = /bytes (\\d+)-(\\d+)\\/(\\d+)/.exec(rangeHeader);\n pendingRequest.onDone({\n begin: parseInt(matches[1], 10),\n chunk\n });\n } else if (chunk) {\n pendingRequest.onDone({\n begin: 0,\n chunk\n });\n } else {\n pendingRequest.onError?.(xhr.status);\n }\n }\n getRequestXhr(xhrId) {\n return this.pendingRequests[xhrId].xhr;\n }\n isPendingRequest(xhrId) {\n return xhrId in this.pendingRequests;\n }\n abortRequest(xhrId) {\n const xhr = this.pendingRequests[xhrId].xhr;\n delete this.pendingRequests[xhrId];\n xhr.abort();\n }\n}\nclass PDFNetworkStream {\n constructor(source) {\n this._source = source;\n this._manager = new NetworkManager(source.url, {\n httpHeaders: source.httpHeaders,\n withCredentials: source.withCredentials\n });\n this._rangeChunkSize = source.rangeChunkSize;\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n _onRangeRequestReaderClosed(reader) {\n const i = this._rangeRequestReaders.indexOf(reader);\n if (i >= 0) {\n this._rangeRequestReaders.splice(i, 1);\n }\n }\n getFullReader() {\n assert(!this._fullRequestReader, \"PDFNetworkStream.getFullReader can only be called once.\");\n this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source);\n return this._fullRequestReader;\n }\n getRangeReader(begin, end) {\n const reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end);\n reader.onClosed = this._onRangeRequestReaderClosed.bind(this);\n this._rangeRequestReaders.push(reader);\n return reader;\n }\n cancelAllRequests(reason) {\n this._fullRequestReader?.cancel(reason);\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n}\nclass PDFNetworkStreamFullRequestReader {\n constructor(manager, source) {\n this._manager = manager;\n const args = {\n onHeadersReceived: this._onHeadersReceived.bind(this),\n onDone: this._onDone.bind(this),\n onError: this._onError.bind(this),\n onProgress: this._onProgress.bind(this)\n };\n this._url = source.url;\n this._fullRequestId = manager.requestFull(args);\n this._headersReceivedCapability = Promise.withResolvers();\n this._disableRange = source.disableRange || false;\n this._contentLength = source.length;\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n this._isStreamingSupported = false;\n this._isRangeSupported = false;\n this._cachedChunks = [];\n this._requests = [];\n this._done = false;\n this._storedError = undefined;\n this._filename = null;\n this.onProgress = null;\n }\n _onHeadersReceived() {\n const fullRequestXhrId = this._fullRequestId;\n const fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId);\n const getResponseHeader = name => fullRequestXhr.getResponseHeader(name);\n const {\n allowRangeRequests,\n suggestedLength\n } = validateRangeRequestCapabilities({\n getResponseHeader,\n isHttp: this._manager.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n if (allowRangeRequests) {\n this._isRangeSupported = true;\n }\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = extractFilenameFromHeader(getResponseHeader);\n if (this._isRangeSupported) {\n this._manager.abortRequest(fullRequestXhrId);\n }\n this._headersReceivedCapability.resolve();\n }\n _onDone(data) {\n if (data) {\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n requestCapability.resolve({\n value: data.chunk,\n done: false\n });\n } else {\n this._cachedChunks.push(data.chunk);\n }\n }\n this._done = true;\n if (this._cachedChunks.length > 0) {\n return;\n }\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n }\n _onError(status) {\n this._storedError = createResponseStatusError(status, this._url);\n this._headersReceivedCapability.reject(this._storedError);\n for (const requestCapability of this._requests) {\n requestCapability.reject(this._storedError);\n }\n this._requests.length = 0;\n this._cachedChunks.length = 0;\n }\n _onProgress(evt) {\n this.onProgress?.({\n loaded: evt.loaded,\n total: evt.lengthComputable ? evt.total : this._contentLength\n });\n }\n get filename() {\n return this._filename;\n }\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n get contentLength() {\n return this._contentLength;\n }\n get headersReady() {\n return this._headersReceivedCapability.promise;\n }\n async read() {\n if (this._storedError) {\n throw this._storedError;\n }\n if (this._cachedChunks.length > 0) {\n const chunk = this._cachedChunks.shift();\n return {\n value: chunk,\n done: false\n };\n }\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n const requestCapability = Promise.withResolvers();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n cancel(reason) {\n this._done = true;\n this._headersReceivedCapability.reject(reason);\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n if (this._manager.isPendingRequest(this._fullRequestId)) {\n this._manager.abortRequest(this._fullRequestId);\n }\n this._fullRequestReader = null;\n }\n}\nclass PDFNetworkStreamRangeRequestReader {\n constructor(manager, begin, end) {\n this._manager = manager;\n const args = {\n onDone: this._onDone.bind(this),\n onError: this._onError.bind(this),\n onProgress: this._onProgress.bind(this)\n };\n this._url = manager.url;\n this._requestId = manager.requestRange(begin, end, args);\n this._requests = [];\n this._queuedChunk = null;\n this._done = false;\n this._storedError = undefined;\n this.onProgress = null;\n this.onClosed = null;\n }\n _close() {\n this.onClosed?.(this);\n }\n _onDone(data) {\n const chunk = data.chunk;\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunk = chunk;\n }\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n this._close();\n }\n _onError(status) {\n this._storedError = createResponseStatusError(status, this._url);\n for (const requestCapability of this._requests) {\n requestCapability.reject(this._storedError);\n }\n this._requests.length = 0;\n this._queuedChunk = null;\n }\n _onProgress(evt) {\n if (!this.isStreamingSupported) {\n this.onProgress?.({\n loaded: evt.loaded\n });\n }\n }\n get isStreamingSupported() {\n return false;\n }\n async read() {\n if (this._storedError) {\n throw this._storedError;\n }\n if (this._queuedChunk !== null) {\n const chunk = this._queuedChunk;\n this._queuedChunk = null;\n return {\n value: chunk,\n done: false\n };\n }\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n const requestCapability = Promise.withResolvers();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n cancel(reason) {\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n if (this._manager.isPendingRequest(this._requestId)) {\n this._manager.abortRequest(this._requestId);\n }\n this._close();\n }\n}\n\n;// CONCATENATED MODULE: ./src/display/node_stream.js\n\n\n\nconst fileUriRegex = /^file:\\/\\/\\/[a-zA-Z]:\\//;\nfunction parseUrl(sourceUrl) {\n const url = NodePackages.get(\"url\");\n const parsedUrl = url.parse(sourceUrl);\n if (parsedUrl.protocol === \"file:\" || parsedUrl.host) {\n return parsedUrl;\n }\n if (/^[a-z]:[/\\\\]/i.test(sourceUrl)) {\n return url.parse(`file:///${sourceUrl}`);\n }\n if (!parsedUrl.host) {\n parsedUrl.protocol = \"file:\";\n }\n return parsedUrl;\n}\nclass PDFNodeStream {\n constructor(source) {\n this.source = source;\n this.url = parseUrl(source.url);\n this.isHttp = this.url.protocol === \"http:\" || this.url.protocol === \"https:\";\n this.isFsUrl = this.url.protocol === \"file:\";\n this.httpHeaders = this.isHttp && source.httpHeaders || {};\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\n }\n getFullReader() {\n assert(!this._fullRequestReader, \"PDFNodeStream.getFullReader can only be called once.\");\n this._fullRequestReader = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this);\n return this._fullRequestReader;\n }\n getRangeReader(start, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n const rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end);\n this._rangeRequestReaders.push(rangeReader);\n return rangeReader;\n }\n cancelAllRequests(reason) {\n this._fullRequestReader?.cancel(reason);\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n}\nclass BaseFullReader {\n constructor(stream) {\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n const source = stream.source;\n this._contentLength = source.length;\n this._loaded = 0;\n this._filename = null;\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._readableStream = null;\n this._readCapability = Promise.withResolvers();\n this._headersCapability = Promise.withResolvers();\n }\n get headersReady() {\n return this._headersCapability.promise;\n }\n get filename() {\n return this._filename;\n }\n get contentLength() {\n return this._contentLength;\n }\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n async read() {\n await this._readCapability.promise;\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n if (this._storedError) {\n throw this._storedError;\n }\n const chunk = this._readableStream.read();\n if (chunk === null) {\n this._readCapability = Promise.withResolvers();\n return this.read();\n }\n this._loaded += chunk.length;\n this.onProgress?.({\n loaded: this._loaded,\n total: this._contentLength\n });\n const buffer = new Uint8Array(chunk).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n return;\n }\n this._readableStream.destroy(reason);\n }\n _error(reason) {\n this._storedError = reason;\n this._readCapability.resolve();\n }\n _setReadableStream(readableStream) {\n this._readableStream = readableStream;\n readableStream.on(\"readable\", () => {\n this._readCapability.resolve();\n });\n readableStream.on(\"end\", () => {\n readableStream.destroy();\n this._done = true;\n this._readCapability.resolve();\n });\n readableStream.on(\"error\", reason => {\n this._error(reason);\n });\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this._error(new AbortException(\"streaming is disabled\"));\n }\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n}\nclass BaseRangeReader {\n constructor(stream) {\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n this._loaded = 0;\n this._readableStream = null;\n this._readCapability = Promise.withResolvers();\n const source = stream.source;\n this._isStreamingSupported = !source.disableStream;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n async read() {\n await this._readCapability.promise;\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n if (this._storedError) {\n throw this._storedError;\n }\n const chunk = this._readableStream.read();\n if (chunk === null) {\n this._readCapability = Promise.withResolvers();\n return this.read();\n }\n this._loaded += chunk.length;\n this.onProgress?.({\n loaded: this._loaded\n });\n const buffer = new Uint8Array(chunk).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n return;\n }\n this._readableStream.destroy(reason);\n }\n _error(reason) {\n this._storedError = reason;\n this._readCapability.resolve();\n }\n _setReadableStream(readableStream) {\n this._readableStream = readableStream;\n readableStream.on(\"readable\", () => {\n this._readCapability.resolve();\n });\n readableStream.on(\"end\", () => {\n readableStream.destroy();\n this._done = true;\n this._readCapability.resolve();\n });\n readableStream.on(\"error\", reason => {\n this._error(reason);\n });\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n}\nfunction createRequestOptions(parsedUrl, headers) {\n return {\n protocol: parsedUrl.protocol,\n auth: parsedUrl.auth,\n host: parsedUrl.hostname,\n port: parsedUrl.port,\n path: parsedUrl.path,\n method: \"GET\",\n headers\n };\n}\nclass PDFNodeStreamFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n const handleResponse = response => {\n if (response.statusCode === 404) {\n const error = new MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n this._headersCapability.reject(error);\n return;\n }\n this._headersCapability.resolve();\n this._setReadableStream(response);\n const getResponseHeader = name => this._readableStream.headers[name.toLowerCase()];\n const {\n allowRangeRequests,\n suggestedLength\n } = validateRangeRequestCapabilities({\n getResponseHeader,\n isHttp: stream.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n this._isRangeSupported = allowRangeRequests;\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = extractFilenameFromHeader(getResponseHeader);\n };\n this._request = null;\n if (this._url.protocol === \"http:\") {\n const http = NodePackages.get(\"http\");\n this._request = http.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse);\n } else {\n const https = NodePackages.get(\"https\");\n this._request = https.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse);\n }\n this._request.on(\"error\", reason => {\n this._storedError = reason;\n this._headersCapability.reject(reason);\n });\n this._request.end();\n }\n}\nclass PDFNodeStreamRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n this._httpHeaders = {};\n for (const property in stream.httpHeaders) {\n const value = stream.httpHeaders[property];\n if (value === undefined) {\n continue;\n }\n this._httpHeaders[property] = value;\n }\n this._httpHeaders.Range = `bytes=${start}-${end - 1}`;\n const handleResponse = response => {\n if (response.statusCode === 404) {\n const error = new MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n return;\n }\n this._setReadableStream(response);\n };\n this._request = null;\n if (this._url.protocol === \"http:\") {\n const http = NodePackages.get(\"http\");\n this._request = http.request(createRequestOptions(this._url, this._httpHeaders), handleResponse);\n } else {\n const https = NodePackages.get(\"https\");\n this._request = https.request(createRequestOptions(this._url, this._httpHeaders), handleResponse);\n }\n this._request.on(\"error\", reason => {\n this._storedError = reason;\n });\n this._request.end();\n }\n}\nclass PDFNodeStreamFsFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n let path = decodeURIComponent(this._url.path);\n if (fileUriRegex.test(this._url.href)) {\n path = path.replace(/^\\//, \"\");\n }\n const fs = NodePackages.get(\"fs\");\n fs.promises.lstat(path).then(stat => {\n this._contentLength = stat.size;\n this._setReadableStream(fs.createReadStream(path));\n this._headersCapability.resolve();\n }, error => {\n if (error.code === \"ENOENT\") {\n error = new MissingPDFException(`Missing PDF \"${path}\".`);\n }\n this._storedError = error;\n this._headersCapability.reject(error);\n });\n }\n}\nclass PDFNodeStreamFsRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n let path = decodeURIComponent(this._url.path);\n if (fileUriRegex.test(this._url.href)) {\n path = path.replace(/^\\//, \"\");\n }\n const fs = NodePackages.get(\"fs\");\n this._setReadableStream(fs.createReadStream(path, {\n start,\n end: end - 1\n }));\n }\n}\n\n;// CONCATENATED MODULE: ./src/display/text_layer.js\n\n\nconst MAX_TEXT_DIVS_TO_RENDER = 100000;\nconst DEFAULT_FONT_SIZE = 30;\nconst DEFAULT_FONT_ASCENT = 0.8;\nclass TextLayer {\n #capability = Promise.withResolvers();\n #container = null;\n #disableProcessItems = false;\n #fontInspectorEnabled = !!globalThis.FontInspector?.enabled;\n #lang = null;\n #layoutTextParams = null;\n #pageHeight = 0;\n #pageWidth = 0;\n #reader = null;\n #rootContainer = null;\n #rotation = 0;\n #scale = 0;\n #styleCache = Object.create(null);\n #textContentItemsStr = [];\n #textContentSource = null;\n #textDivs = [];\n #textDivProperties = new WeakMap();\n #transform = null;\n static #ascentCache = new Map();\n static #canvasContexts = new Map();\n static #minFontSize = null;\n static #pendingTextLayers = new Set();\n constructor({\n textContentSource,\n container,\n viewport\n }) {\n if (textContentSource instanceof ReadableStream) {\n this.#textContentSource = textContentSource;\n } else if (typeof textContentSource === \"object\") {\n this.#textContentSource = new ReadableStream({\n start(controller) {\n controller.enqueue(textContentSource);\n controller.close();\n }\n });\n } else {\n throw new Error('No \"textContentSource\" parameter specified.');\n }\n this.#container = this.#rootContainer = container;\n this.#scale = viewport.scale * (globalThis.devicePixelRatio || 1);\n this.#rotation = viewport.rotation;\n this.#layoutTextParams = {\n prevFontSize: null,\n prevFontFamily: null,\n div: null,\n properties: null,\n ctx: null\n };\n const {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n } = viewport.rawDims;\n this.#transform = [1, 0, 0, -1, -pageX, pageY + pageHeight];\n this.#pageWidth = pageWidth;\n this.#pageHeight = pageHeight;\n TextLayer.#ensureMinFontSizeComputed();\n setLayerDimensions(container, viewport);\n this.#capability.promise.catch(() => {}).then(() => {\n TextLayer.#pendingTextLayers.delete(this);\n this.#layoutTextParams = null;\n this.#styleCache = null;\n });\n }\n render() {\n const pump = () => {\n this.#reader.read().then(({\n value,\n done\n }) => {\n if (done) {\n this.#capability.resolve();\n return;\n }\n this.#lang ??= value.lang;\n Object.assign(this.#styleCache, value.styles);\n this.#processItems(value.items);\n pump();\n }, this.#capability.reject);\n };\n this.#reader = this.#textContentSource.getReader();\n TextLayer.#pendingTextLayers.add(this);\n pump();\n return this.#capability.promise;\n }\n update({\n viewport,\n onBefore = null\n }) {\n const scale = viewport.scale * (globalThis.devicePixelRatio || 1);\n const rotation = viewport.rotation;\n if (rotation !== this.#rotation) {\n onBefore?.();\n this.#rotation = rotation;\n setLayerDimensions(this.#rootContainer, {\n rotation\n });\n }\n if (scale !== this.#scale) {\n onBefore?.();\n this.#scale = scale;\n const params = {\n prevFontSize: null,\n prevFontFamily: null,\n div: null,\n properties: null,\n ctx: TextLayer.#getCtx(this.#lang)\n };\n for (const div of this.#textDivs) {\n params.properties = this.#textDivProperties.get(div);\n params.div = div;\n this.#layout(params);\n }\n }\n }\n cancel() {\n const abortEx = new AbortException(\"TextLayer task cancelled.\");\n this.#reader?.cancel(abortEx).catch(() => {});\n this.#reader = null;\n this.#capability.reject(abortEx);\n }\n get textDivs() {\n return this.#textDivs;\n }\n get textContentItemsStr() {\n return this.#textContentItemsStr;\n }\n #processItems(items) {\n if (this.#disableProcessItems) {\n return;\n }\n this.#layoutTextParams.ctx ??= TextLayer.#getCtx(this.#lang);\n const textDivs = this.#textDivs,\n textContentItemsStr = this.#textContentItemsStr;\n for (const item of items) {\n if (textDivs.length > MAX_TEXT_DIVS_TO_RENDER) {\n warn(\"Ignoring additional textDivs for performance reasons.\");\n this.#disableProcessItems = true;\n return;\n }\n if (item.str === undefined) {\n if (item.type === \"beginMarkedContentProps\" || item.type === \"beginMarkedContent\") {\n const parent = this.#container;\n this.#container = document.createElement(\"span\");\n this.#container.classList.add(\"markedContent\");\n if (item.id !== null) {\n this.#container.setAttribute(\"id\", `${item.id}`);\n }\n parent.append(this.#container);\n } else if (item.type === \"endMarkedContent\") {\n this.#container = this.#container.parentNode;\n }\n continue;\n }\n textContentItemsStr.push(item.str);\n this.#appendText(item);\n }\n }\n #appendText(geom) {\n const textDiv = document.createElement(\"span\");\n const textDivProperties = {\n angle: 0,\n canvasWidth: 0,\n hasText: geom.str !== \"\",\n hasEOL: geom.hasEOL,\n fontSize: 0\n };\n this.#textDivs.push(textDiv);\n const tx = Util.transform(this.#transform, geom.transform);\n let angle = Math.atan2(tx[1], tx[0]);\n const style = this.#styleCache[geom.fontName];\n if (style.vertical) {\n angle += Math.PI / 2;\n }\n const fontFamily = this.#fontInspectorEnabled && style.fontSubstitution || style.fontFamily;\n const fontHeight = Math.hypot(tx[2], tx[3]);\n const fontAscent = fontHeight * TextLayer.#getAscent(fontFamily, this.#lang);\n let left, top;\n if (angle === 0) {\n left = tx[4];\n top = tx[5] - fontAscent;\n } else {\n left = tx[4] + fontAscent * Math.sin(angle);\n top = tx[5] - fontAscent * Math.cos(angle);\n }\n const scaleFactorStr = \"calc(var(--scale-factor)*\";\n const divStyle = textDiv.style;\n if (this.#container === this.#rootContainer) {\n divStyle.left = `${(100 * left / this.#pageWidth).toFixed(2)}%`;\n divStyle.top = `${(100 * top / this.#pageHeight).toFixed(2)}%`;\n } else {\n divStyle.left = `${scaleFactorStr}${left.toFixed(2)}px)`;\n divStyle.top = `${scaleFactorStr}${top.toFixed(2)}px)`;\n }\n divStyle.fontSize = `${scaleFactorStr}${(TextLayer.#minFontSize * fontHeight).toFixed(2)}px)`;\n divStyle.fontFamily = fontFamily;\n textDivProperties.fontSize = fontHeight;\n textDiv.setAttribute(\"role\", \"presentation\");\n textDiv.textContent = geom.str;\n textDiv.dir = geom.dir;\n if (this.#fontInspectorEnabled) {\n textDiv.dataset.fontName = style.fontSubstitutionLoadedName || geom.fontName;\n }\n if (angle !== 0) {\n textDivProperties.angle = angle * (180 / Math.PI);\n }\n let shouldScaleText = false;\n if (geom.str.length > 1) {\n shouldScaleText = true;\n } else if (geom.str !== \" \" && geom.transform[0] !== geom.transform[3]) {\n const absScaleX = Math.abs(geom.transform[0]),\n absScaleY = Math.abs(geom.transform[3]);\n if (absScaleX !== absScaleY && Math.max(absScaleX, absScaleY) / Math.min(absScaleX, absScaleY) > 1.5) {\n shouldScaleText = true;\n }\n }\n if (shouldScaleText) {\n textDivProperties.canvasWidth = style.vertical ? geom.height : geom.width;\n }\n this.#textDivProperties.set(textDiv, textDivProperties);\n this.#layoutTextParams.div = textDiv;\n this.#layoutTextParams.properties = textDivProperties;\n this.#layout(this.#layoutTextParams);\n if (textDivProperties.hasText) {\n this.#container.append(textDiv);\n }\n if (textDivProperties.hasEOL) {\n const br = document.createElement(\"br\");\n br.setAttribute(\"role\", \"presentation\");\n this.#container.append(br);\n }\n }\n #layout(params) {\n const {\n div,\n properties,\n ctx,\n prevFontSize,\n prevFontFamily\n } = params;\n const {\n style\n } = div;\n let transform = \"\";\n if (TextLayer.#minFontSize > 1) {\n transform = `scale(${1 / TextLayer.#minFontSize})`;\n }\n if (properties.canvasWidth !== 0 && properties.hasText) {\n const {\n fontFamily\n } = style;\n const {\n canvasWidth,\n fontSize\n } = properties;\n if (prevFontSize !== fontSize || prevFontFamily !== fontFamily) {\n ctx.font = `${fontSize * this.#scale}px ${fontFamily}`;\n params.prevFontSize = fontSize;\n params.prevFontFamily = fontFamily;\n }\n const {\n width\n } = ctx.measureText(div.textContent);\n if (width > 0) {\n transform = `scaleX(${canvasWidth * this.#scale / width}) ${transform}`;\n }\n }\n if (properties.angle !== 0) {\n transform = `rotate(${properties.angle}deg) ${transform}`;\n }\n if (transform.length > 0) {\n style.transform = transform;\n }\n }\n static cleanup() {\n if (this.#pendingTextLayers.size > 0) {\n return;\n }\n this.#ascentCache.clear();\n for (const {\n canvas\n } of this.#canvasContexts.values()) {\n canvas.remove();\n }\n this.#canvasContexts.clear();\n }\n static #getCtx(lang = null) {\n let canvasContext = this.#canvasContexts.get(lang ||= \"\");\n if (!canvasContext) {\n const canvas = document.createElement(\"canvas\");\n canvas.className = \"hiddenCanvasElement\";\n canvas.lang = lang;\n document.body.append(canvas);\n canvasContext = canvas.getContext(\"2d\", {\n alpha: false,\n willReadFrequently: true\n });\n this.#canvasContexts.set(lang, canvasContext);\n }\n return canvasContext;\n }\n static #ensureMinFontSizeComputed() {\n if (this.#minFontSize !== null) {\n return;\n }\n const div = document.createElement(\"div\");\n div.style.opacity = 0;\n div.style.lineHeight = 1;\n div.style.fontSize = \"1px\";\n div.textContent = \"X\";\n document.body.append(div);\n this.#minFontSize = div.getBoundingClientRect().height;\n div.remove();\n }\n static #getAscent(fontFamily, lang) {\n const cachedAscent = this.#ascentCache.get(fontFamily);\n if (cachedAscent) {\n return cachedAscent;\n }\n const ctx = this.#getCtx(lang);\n const savedFont = ctx.font;\n ctx.canvas.width = ctx.canvas.height = DEFAULT_FONT_SIZE;\n ctx.font = `${DEFAULT_FONT_SIZE}px ${fontFamily}`;\n const metrics = ctx.measureText(\"\");\n let ascent = metrics.fontBoundingBoxAscent;\n let descent = Math.abs(metrics.fontBoundingBoxDescent);\n if (ascent) {\n const ratio = ascent / (ascent + descent);\n this.#ascentCache.set(fontFamily, ratio);\n ctx.canvas.width = ctx.canvas.height = 0;\n ctx.font = savedFont;\n return ratio;\n }\n ctx.strokeStyle = \"red\";\n ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE);\n ctx.strokeText(\"g\", 0, 0);\n let pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data;\n descent = 0;\n for (let i = pixels.length - 1 - 3; i >= 0; i -= 4) {\n if (pixels[i] > 0) {\n descent = Math.ceil(i / 4 / DEFAULT_FONT_SIZE);\n break;\n }\n }\n ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE);\n ctx.strokeText(\"A\", 0, DEFAULT_FONT_SIZE);\n pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data;\n ascent = 0;\n for (let i = 0, ii = pixels.length; i < ii; i += 4) {\n if (pixels[i] > 0) {\n ascent = DEFAULT_FONT_SIZE - Math.floor(i / 4 / DEFAULT_FONT_SIZE);\n break;\n }\n }\n ctx.canvas.width = ctx.canvas.height = 0;\n ctx.font = savedFont;\n const ratio = ascent ? ascent / (ascent + descent) : DEFAULT_FONT_ASCENT;\n this.#ascentCache.set(fontFamily, ratio);\n return ratio;\n }\n}\nfunction renderTextLayer() {\n deprecated(\"`renderTextLayer`, please use `TextLayer` instead.\");\n const {\n textContentSource,\n container,\n viewport,\n ...rest\n } = arguments[0];\n const restKeys = Object.keys(rest);\n if (restKeys.length > 0) {\n warn(\"Ignoring `renderTextLayer` parameters: \" + restKeys.join(\", \"));\n }\n const textLayer = new TextLayer({\n textContentSource,\n container,\n viewport\n });\n const {\n textDivs,\n textContentItemsStr\n } = textLayer;\n const promise = textLayer.render();\n return {\n promise,\n textDivs,\n textContentItemsStr\n };\n}\nfunction updateTextLayer() {\n deprecated(\"`updateTextLayer`, please use `TextLayer` instead.\");\n}\n\n;// CONCATENATED MODULE: ./src/display/xfa_text.js\nclass XfaText {\n static textContent(xfa) {\n const items = [];\n const output = {\n items,\n styles: Object.create(null)\n };\n function walk(node) {\n if (!node) {\n return;\n }\n let str = null;\n const name = node.name;\n if (name === \"#text\") {\n str = node.value;\n } else if (!XfaText.shouldBuildText(name)) {\n return;\n } else if (node?.attributes?.textContent) {\n str = node.attributes.textContent;\n } else if (node.value) {\n str = node.value;\n }\n if (str !== null) {\n items.push({\n str\n });\n }\n if (!node.children) {\n return;\n }\n for (const child of node.children) {\n walk(child);\n }\n }\n walk(xfa);\n return output;\n }\n static shouldBuildText(name) {\n return !(name === \"textarea\" || name === \"input\" || name === \"option\" || name === \"select\");\n }\n}\n\n;// CONCATENATED MODULE: ./src/display/api.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst DEFAULT_RANGE_CHUNK_SIZE = 65536;\nconst RENDERING_CANCELLED_TIMEOUT = 100;\nconst DELAYED_CLEANUP_TIMEOUT = 5000;\nconst DefaultCanvasFactory = isNodeJS ? NodeCanvasFactory : DOMCanvasFactory;\nconst DefaultCMapReaderFactory = isNodeJS ? NodeCMapReaderFactory : DOMCMapReaderFactory;\nconst DefaultFilterFactory = isNodeJS ? NodeFilterFactory : DOMFilterFactory;\nconst DefaultStandardFontDataFactory = isNodeJS ? NodeStandardFontDataFactory : DOMStandardFontDataFactory;\nfunction getDocument(src = {}) {\n if (typeof src === \"string\" || src instanceof URL) {\n src = {\n url: src\n };\n } else if (src instanceof ArrayBuffer || ArrayBuffer.isView(src)) {\n src = {\n data: src\n };\n }\n const task = new PDFDocumentLoadingTask();\n const {\n docId\n } = task;\n const url = src.url ? getUrlProp(src.url) : null;\n const data = src.data ? getDataProp(src.data) : null;\n const httpHeaders = src.httpHeaders || null;\n const withCredentials = src.withCredentials === true;\n const password = src.password ?? null;\n const rangeTransport = src.range instanceof PDFDataRangeTransport ? src.range : null;\n const rangeChunkSize = Number.isInteger(src.rangeChunkSize) && src.rangeChunkSize > 0 ? src.rangeChunkSize : DEFAULT_RANGE_CHUNK_SIZE;\n let worker = src.worker instanceof PDFWorker ? src.worker : null;\n const verbosity = src.verbosity;\n const docBaseUrl = typeof src.docBaseUrl === \"string\" && !isDataScheme(src.docBaseUrl) ? src.docBaseUrl : null;\n const cMapUrl = typeof src.cMapUrl === \"string\" ? src.cMapUrl : null;\n const cMapPacked = src.cMapPacked !== false;\n const CMapReaderFactory = src.CMapReaderFactory || DefaultCMapReaderFactory;\n const standardFontDataUrl = typeof src.standardFontDataUrl === \"string\" ? src.standardFontDataUrl : null;\n const StandardFontDataFactory = src.StandardFontDataFactory || DefaultStandardFontDataFactory;\n const ignoreErrors = src.stopAtErrors !== true;\n const maxImageSize = Number.isInteger(src.maxImageSize) && src.maxImageSize > -1 ? src.maxImageSize : -1;\n const isEvalSupported = src.isEvalSupported !== false;\n const isOffscreenCanvasSupported = typeof src.isOffscreenCanvasSupported === \"boolean\" ? src.isOffscreenCanvasSupported : !isNodeJS;\n const canvasMaxAreaInBytes = Number.isInteger(src.canvasMaxAreaInBytes) ? src.canvasMaxAreaInBytes : -1;\n const disableFontFace = typeof src.disableFontFace === \"boolean\" ? src.disableFontFace : isNodeJS;\n const fontExtraProperties = src.fontExtraProperties === true;\n const enableXfa = src.enableXfa === true;\n const ownerDocument = src.ownerDocument || globalThis.document;\n const disableRange = src.disableRange === true;\n const disableStream = src.disableStream === true;\n const disableAutoFetch = src.disableAutoFetch === true;\n const pdfBug = src.pdfBug === true;\n const enableHWA = src.enableHWA === true;\n const length = rangeTransport ? rangeTransport.length : src.length ?? NaN;\n const useSystemFonts = typeof src.useSystemFonts === \"boolean\" ? src.useSystemFonts : !isNodeJS && !disableFontFace;\n const useWorkerFetch = typeof src.useWorkerFetch === \"boolean\" ? src.useWorkerFetch : CMapReaderFactory === DOMCMapReaderFactory && StandardFontDataFactory === DOMStandardFontDataFactory && cMapUrl && standardFontDataUrl && isValidFetchUrl(cMapUrl, document.baseURI) && isValidFetchUrl(standardFontDataUrl, document.baseURI);\n const canvasFactory = src.canvasFactory || new DefaultCanvasFactory({\n ownerDocument,\n enableHWA\n });\n const filterFactory = src.filterFactory || new DefaultFilterFactory({\n docId,\n ownerDocument\n });\n const styleElement = null;\n setVerbosityLevel(verbosity);\n const transportFactory = {\n canvasFactory,\n filterFactory\n };\n if (!useWorkerFetch) {\n transportFactory.cMapReaderFactory = new CMapReaderFactory({\n baseUrl: cMapUrl,\n isCompressed: cMapPacked\n });\n transportFactory.standardFontDataFactory = new StandardFontDataFactory({\n baseUrl: standardFontDataUrl\n });\n }\n if (!worker) {\n const workerParams = {\n verbosity,\n port: GlobalWorkerOptions.workerPort\n };\n worker = workerParams.port ? PDFWorker.fromPort(workerParams) : new PDFWorker(workerParams);\n task._worker = worker;\n }\n const docParams = {\n docId,\n apiVersion: \"4.4.168\",\n data,\n password,\n disableAutoFetch,\n rangeChunkSize,\n length,\n docBaseUrl,\n enableXfa,\n evaluatorOptions: {\n maxImageSize,\n disableFontFace,\n ignoreErrors,\n isEvalSupported,\n isOffscreenCanvasSupported,\n canvasMaxAreaInBytes,\n fontExtraProperties,\n useSystemFonts,\n cMapUrl: useWorkerFetch ? cMapUrl : null,\n standardFontDataUrl: useWorkerFetch ? standardFontDataUrl : null\n }\n };\n const transportParams = {\n disableFontFace,\n fontExtraProperties,\n ownerDocument,\n pdfBug,\n styleElement,\n loadingParams: {\n disableAutoFetch,\n enableXfa\n }\n };\n worker.promise.then(function () {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n const workerIdPromise = worker.messageHandler.sendWithPromise(\"GetDocRequest\", docParams, data ? [data.buffer] : null);\n let networkStream;\n if (rangeTransport) {\n networkStream = new PDFDataTransportStream(rangeTransport, {\n disableRange,\n disableStream\n });\n } else if (!data) {\n if (!url) {\n throw new Error(\"getDocument - no `url` parameter provided.\");\n }\n const createPDFNetworkStream = params => {\n if (isNodeJS) {\n const isFetchSupported = function () {\n return typeof fetch !== \"undefined\" && typeof Response !== \"undefined\" && \"body\" in Response.prototype;\n };\n return isFetchSupported() && isValidFetchUrl(params.url) ? new PDFFetchStream(params) : new PDFNodeStream(params);\n }\n return isValidFetchUrl(params.url) ? new PDFFetchStream(params) : new PDFNetworkStream(params);\n };\n networkStream = createPDFNetworkStream({\n url,\n length,\n httpHeaders,\n withCredentials,\n rangeChunkSize,\n disableRange,\n disableStream\n });\n }\n return workerIdPromise.then(workerId => {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n const messageHandler = new MessageHandler(docId, workerId, worker.port);\n const transport = new WorkerTransport(messageHandler, task, networkStream, transportParams, transportFactory);\n task._transport = transport;\n messageHandler.send(\"Ready\", null);\n });\n }).catch(task._capability.reject);\n return task;\n}\nfunction getUrlProp(val) {\n if (val instanceof URL) {\n return val.href;\n }\n try {\n return new URL(val, window.location).href;\n } catch {\n if (isNodeJS && typeof val === \"string\") {\n return val;\n }\n }\n throw new Error(\"Invalid PDF url data: \" + \"either string or URL-object is expected in the url property.\");\n}\nfunction getDataProp(val) {\n if (isNodeJS && typeof Buffer !== \"undefined\" && val instanceof Buffer) {\n throw new Error(\"Please provide binary data as `Uint8Array`, rather than `Buffer`.\");\n }\n if (val instanceof Uint8Array && val.byteLength === val.buffer.byteLength) {\n return val;\n }\n if (typeof val === \"string\") {\n return stringToBytes(val);\n }\n if (val instanceof ArrayBuffer || ArrayBuffer.isView(val) || typeof val === \"object\" && !isNaN(val?.length)) {\n return new Uint8Array(val);\n }\n throw new Error(\"Invalid PDF binary data: either TypedArray, \" + \"string, or array-like object is expected in the data property.\");\n}\nfunction isRefProxy(ref) {\n return typeof ref === \"object\" && Number.isInteger(ref?.num) && ref.num >= 0 && Number.isInteger(ref?.gen) && ref.gen >= 0;\n}\nclass PDFDocumentLoadingTask {\n static #docId = 0;\n constructor() {\n this._capability = Promise.withResolvers();\n this._transport = null;\n this._worker = null;\n this.docId = `d${PDFDocumentLoadingTask.#docId++}`;\n this.destroyed = false;\n this.onPassword = null;\n this.onProgress = null;\n }\n get promise() {\n return this._capability.promise;\n }\n async destroy() {\n this.destroyed = true;\n try {\n if (this._worker?.port) {\n this._worker._pendingDestroy = true;\n }\n await this._transport?.destroy();\n } catch (ex) {\n if (this._worker?.port) {\n delete this._worker._pendingDestroy;\n }\n throw ex;\n }\n this._transport = null;\n if (this._worker) {\n this._worker.destroy();\n this._worker = null;\n }\n }\n}\nclass PDFDataRangeTransport {\n constructor(length, initialData, progressiveDone = false, contentDispositionFilename = null) {\n this.length = length;\n this.initialData = initialData;\n this.progressiveDone = progressiveDone;\n this.contentDispositionFilename = contentDispositionFilename;\n this._rangeListeners = [];\n this._progressListeners = [];\n this._progressiveReadListeners = [];\n this._progressiveDoneListeners = [];\n this._readyCapability = Promise.withResolvers();\n }\n addRangeListener(listener) {\n this._rangeListeners.push(listener);\n }\n addProgressListener(listener) {\n this._progressListeners.push(listener);\n }\n addProgressiveReadListener(listener) {\n this._progressiveReadListeners.push(listener);\n }\n addProgressiveDoneListener(listener) {\n this._progressiveDoneListeners.push(listener);\n }\n onDataRange(begin, chunk) {\n for (const listener of this._rangeListeners) {\n listener(begin, chunk);\n }\n }\n onDataProgress(loaded, total) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressListeners) {\n listener(loaded, total);\n }\n });\n }\n onDataProgressiveRead(chunk) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveReadListeners) {\n listener(chunk);\n }\n });\n }\n onDataProgressiveDone() {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveDoneListeners) {\n listener();\n }\n });\n }\n transportReady() {\n this._readyCapability.resolve();\n }\n requestDataRange(begin, end) {\n unreachable(\"Abstract method PDFDataRangeTransport.requestDataRange\");\n }\n abort() {}\n}\nclass PDFDocumentProxy {\n constructor(pdfInfo, transport) {\n this._pdfInfo = pdfInfo;\n this._transport = transport;\n }\n get annotationStorage() {\n return this._transport.annotationStorage;\n }\n get filterFactory() {\n return this._transport.filterFactory;\n }\n get numPages() {\n return this._pdfInfo.numPages;\n }\n get fingerprints() {\n return this._pdfInfo.fingerprints;\n }\n get isPureXfa() {\n return shadow(this, \"isPureXfa\", !!this._transport._htmlForXfa);\n }\n get allXfaHtml() {\n return this._transport._htmlForXfa;\n }\n getPage(pageNumber) {\n return this._transport.getPage(pageNumber);\n }\n getPageIndex(ref) {\n return this._transport.getPageIndex(ref);\n }\n getDestinations() {\n return this._transport.getDestinations();\n }\n getDestination(id) {\n return this._transport.getDestination(id);\n }\n getPageLabels() {\n return this._transport.getPageLabels();\n }\n getPageLayout() {\n return this._transport.getPageLayout();\n }\n getPageMode() {\n return this._transport.getPageMode();\n }\n getViewerPreferences() {\n return this._transport.getViewerPreferences();\n }\n getOpenAction() {\n return this._transport.getOpenAction();\n }\n getAttachments() {\n return this._transport.getAttachments();\n }\n getJSActions() {\n return this._transport.getDocJSActions();\n }\n getOutline() {\n return this._transport.getOutline();\n }\n getOptionalContentConfig({\n intent = \"display\"\n } = {}) {\n const {\n renderingIntent\n } = this._transport.getRenderingIntent(intent);\n return this._transport.getOptionalContentConfig(renderingIntent);\n }\n getPermissions() {\n return this._transport.getPermissions();\n }\n getMetadata() {\n return this._transport.getMetadata();\n }\n getMarkInfo() {\n return this._transport.getMarkInfo();\n }\n getData() {\n return this._transport.getData();\n }\n saveDocument() {\n return this._transport.saveDocument();\n }\n getDownloadInfo() {\n return this._transport.downloadInfoCapability.promise;\n }\n cleanup(keepLoadedFonts = false) {\n return this._transport.startCleanup(keepLoadedFonts || this.isPureXfa);\n }\n destroy() {\n return this.loadingTask.destroy();\n }\n cachedPageNumber(ref) {\n return this._transport.cachedPageNumber(ref);\n }\n get loadingParams() {\n return this._transport.loadingParams;\n }\n get loadingTask() {\n return this._transport.loadingTask;\n }\n getFieldObjects() {\n return this._transport.getFieldObjects();\n }\n hasJSActions() {\n return this._transport.hasJSActions();\n }\n getCalculationOrderIds() {\n return this._transport.getCalculationOrderIds();\n }\n}\nclass PDFPageProxy {\n #delayedCleanupTimeout = null;\n #pendingCleanup = false;\n constructor(pageIndex, pageInfo, transport, pdfBug = false) {\n this._pageIndex = pageIndex;\n this._pageInfo = pageInfo;\n this._transport = transport;\n this._stats = pdfBug ? new StatTimer() : null;\n this._pdfBug = pdfBug;\n this.commonObjs = transport.commonObjs;\n this.objs = new PDFObjects();\n this._maybeCleanupAfterRender = false;\n this._intentStates = new Map();\n this.destroyed = false;\n }\n get pageNumber() {\n return this._pageIndex + 1;\n }\n get rotate() {\n return this._pageInfo.rotate;\n }\n get ref() {\n return this._pageInfo.ref;\n }\n get userUnit() {\n return this._pageInfo.userUnit;\n }\n get view() {\n return this._pageInfo.view;\n }\n getViewport({\n scale,\n rotation = this.rotate,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false\n } = {}) {\n return new PageViewport({\n viewBox: this.view,\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip\n });\n }\n getAnnotations({\n intent = \"display\"\n } = {}) {\n const {\n renderingIntent\n } = this._transport.getRenderingIntent(intent);\n return this._transport.getAnnotations(this._pageIndex, renderingIntent);\n }\n getJSActions() {\n return this._transport.getPageJSActions(this._pageIndex);\n }\n get filterFactory() {\n return this._transport.filterFactory;\n }\n get isPureXfa() {\n return shadow(this, \"isPureXfa\", !!this._transport._htmlForXfa);\n }\n async getXfa() {\n return this._transport._htmlForXfa?.children[this._pageIndex] || null;\n }\n render({\n canvasContext,\n viewport,\n intent = \"display\",\n annotationMode = AnnotationMode.ENABLE,\n transform = null,\n background = null,\n optionalContentConfigPromise = null,\n annotationCanvasMap = null,\n pageColors = null,\n printAnnotationStorage = null\n }) {\n this._stats?.time(\"Overall\");\n const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage);\n const {\n renderingIntent,\n cacheKey\n } = intentArgs;\n this.#pendingCleanup = false;\n this.#abortDelayedCleanup();\n optionalContentConfigPromise ||= this._transport.getOptionalContentConfig(renderingIntent);\n let intentState = this._intentStates.get(cacheKey);\n if (!intentState) {\n intentState = Object.create(null);\n this._intentStates.set(cacheKey, intentState);\n }\n if (intentState.streamReaderCancelTimeout) {\n clearTimeout(intentState.streamReaderCancelTimeout);\n intentState.streamReaderCancelTimeout = null;\n }\n const intentPrint = !!(renderingIntent & RenderingIntentFlag.PRINT);\n if (!intentState.displayReadyCapability) {\n intentState.displayReadyCapability = Promise.withResolvers();\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n separateAnnots: null\n };\n this._stats?.time(\"Page Request\");\n this._pumpOperatorList(intentArgs);\n }\n const complete = error => {\n intentState.renderTasks.delete(internalRenderTask);\n if (this._maybeCleanupAfterRender || intentPrint) {\n this.#pendingCleanup = true;\n }\n this.#tryCleanup(!intentPrint);\n if (error) {\n internalRenderTask.capability.reject(error);\n this._abortOperatorList({\n intentState,\n reason: error instanceof Error ? error : new Error(error)\n });\n } else {\n internalRenderTask.capability.resolve();\n }\n if (this._stats) {\n this._stats.timeEnd(\"Rendering\");\n this._stats.timeEnd(\"Overall\");\n if (globalThis.Stats?.enabled) {\n globalThis.Stats.add(this.pageNumber, this._stats);\n }\n }\n };\n const internalRenderTask = new InternalRenderTask({\n callback: complete,\n params: {\n canvasContext,\n viewport,\n transform,\n background\n },\n objs: this.objs,\n commonObjs: this.commonObjs,\n annotationCanvasMap,\n operatorList: intentState.operatorList,\n pageIndex: this._pageIndex,\n canvasFactory: this._transport.canvasFactory,\n filterFactory: this._transport.filterFactory,\n useRequestAnimationFrame: !intentPrint,\n pdfBug: this._pdfBug,\n pageColors\n });\n (intentState.renderTasks ||= new Set()).add(internalRenderTask);\n const renderTask = internalRenderTask.task;\n Promise.all([intentState.displayReadyCapability.promise, optionalContentConfigPromise]).then(([transparency, optionalContentConfig]) => {\n if (this.destroyed) {\n complete();\n return;\n }\n this._stats?.time(\"Rendering\");\n if (!(optionalContentConfig.renderingIntent & renderingIntent)) {\n throw new Error(\"Must use the same `intent`-argument when calling the `PDFPageProxy.render` \" + \"and `PDFDocumentProxy.getOptionalContentConfig` methods.\");\n }\n internalRenderTask.initializeGraphics({\n transparency,\n optionalContentConfig\n });\n internalRenderTask.operatorListChanged();\n }).catch(complete);\n return renderTask;\n }\n getOperatorList({\n intent = \"display\",\n annotationMode = AnnotationMode.ENABLE,\n printAnnotationStorage = null\n } = {}) {\n function operatorListChanged() {\n if (intentState.operatorList.lastChunk) {\n intentState.opListReadCapability.resolve(intentState.operatorList);\n intentState.renderTasks.delete(opListTask);\n }\n }\n const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage, true);\n let intentState = this._intentStates.get(intentArgs.cacheKey);\n if (!intentState) {\n intentState = Object.create(null);\n this._intentStates.set(intentArgs.cacheKey, intentState);\n }\n let opListTask;\n if (!intentState.opListReadCapability) {\n opListTask = Object.create(null);\n opListTask.operatorListChanged = operatorListChanged;\n intentState.opListReadCapability = Promise.withResolvers();\n (intentState.renderTasks ||= new Set()).add(opListTask);\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n separateAnnots: null\n };\n this._stats?.time(\"Page Request\");\n this._pumpOperatorList(intentArgs);\n }\n return intentState.opListReadCapability.promise;\n }\n streamTextContent({\n includeMarkedContent = false,\n disableNormalization = false\n } = {}) {\n const TEXT_CONTENT_CHUNK_SIZE = 100;\n return this._transport.messageHandler.sendWithStream(\"GetTextContent\", {\n pageIndex: this._pageIndex,\n includeMarkedContent: includeMarkedContent === true,\n disableNormalization: disableNormalization === true\n }, {\n highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n size(textContent) {\n return textContent.items.length;\n }\n });\n }\n getTextContent(params = {}) {\n if (this._transport._htmlForXfa) {\n return this.getXfa().then(xfa => XfaText.textContent(xfa));\n }\n const readableStream = this.streamTextContent(params);\n return new Promise(function (resolve, reject) {\n function pump() {\n reader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n resolve(textContent);\n return;\n }\n textContent.lang ??= value.lang;\n Object.assign(textContent.styles, value.styles);\n textContent.items.push(...value.items);\n pump();\n }, reject);\n }\n const reader = readableStream.getReader();\n const textContent = {\n items: [],\n styles: Object.create(null),\n lang: null\n };\n pump();\n });\n }\n getStructTree() {\n return this._transport.getStructTree(this._pageIndex);\n }\n _destroy() {\n this.destroyed = true;\n const waitOn = [];\n for (const intentState of this._intentStates.values()) {\n this._abortOperatorList({\n intentState,\n reason: new Error(\"Page was destroyed.\"),\n force: true\n });\n if (intentState.opListReadCapability) {\n continue;\n }\n for (const internalRenderTask of intentState.renderTasks) {\n waitOn.push(internalRenderTask.completed);\n internalRenderTask.cancel();\n }\n }\n this.objs.clear();\n this.#pendingCleanup = false;\n this.#abortDelayedCleanup();\n return Promise.all(waitOn);\n }\n cleanup(resetStats = false) {\n this.#pendingCleanup = true;\n const success = this.#tryCleanup(false);\n if (resetStats && success) {\n this._stats &&= new StatTimer();\n }\n return success;\n }\n #tryCleanup(delayed = false) {\n this.#abortDelayedCleanup();\n if (!this.#pendingCleanup || this.destroyed) {\n return false;\n }\n if (delayed) {\n this.#delayedCleanupTimeout = setTimeout(() => {\n this.#delayedCleanupTimeout = null;\n this.#tryCleanup(false);\n }, DELAYED_CLEANUP_TIMEOUT);\n return false;\n }\n for (const {\n renderTasks,\n operatorList\n } of this._intentStates.values()) {\n if (renderTasks.size > 0 || !operatorList.lastChunk) {\n return false;\n }\n }\n this._intentStates.clear();\n this.objs.clear();\n this.#pendingCleanup = false;\n return true;\n }\n #abortDelayedCleanup() {\n if (this.#delayedCleanupTimeout) {\n clearTimeout(this.#delayedCleanupTimeout);\n this.#delayedCleanupTimeout = null;\n }\n }\n _startRenderPage(transparency, cacheKey) {\n const intentState = this._intentStates.get(cacheKey);\n if (!intentState) {\n return;\n }\n this._stats?.timeEnd(\"Page Request\");\n intentState.displayReadyCapability?.resolve(transparency);\n }\n _renderPageChunk(operatorListChunk, intentState) {\n for (let i = 0, ii = operatorListChunk.length; i < ii; i++) {\n intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);\n intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);\n }\n intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n intentState.operatorList.separateAnnots = operatorListChunk.separateAnnots;\n for (const internalRenderTask of intentState.renderTasks) {\n internalRenderTask.operatorListChanged();\n }\n if (operatorListChunk.lastChunk) {\n this.#tryCleanup(true);\n }\n }\n _pumpOperatorList({\n renderingIntent,\n cacheKey,\n annotationStorageSerializable\n }) {\n const {\n map,\n transfer\n } = annotationStorageSerializable;\n const readableStream = this._transport.messageHandler.sendWithStream(\"GetOperatorList\", {\n pageIndex: this._pageIndex,\n intent: renderingIntent,\n cacheKey,\n annotationStorage: map\n }, transfer);\n const reader = readableStream.getReader();\n const intentState = this._intentStates.get(cacheKey);\n intentState.streamReader = reader;\n const pump = () => {\n reader.read().then(({\n value,\n done\n }) => {\n if (done) {\n intentState.streamReader = null;\n return;\n }\n if (this._transport.destroyed) {\n return;\n }\n this._renderPageChunk(value, intentState);\n pump();\n }, reason => {\n intentState.streamReader = null;\n if (this._transport.destroyed) {\n return;\n }\n if (intentState.operatorList) {\n intentState.operatorList.lastChunk = true;\n for (const internalRenderTask of intentState.renderTasks) {\n internalRenderTask.operatorListChanged();\n }\n this.#tryCleanup(true);\n }\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.reject(reason);\n } else if (intentState.opListReadCapability) {\n intentState.opListReadCapability.reject(reason);\n } else {\n throw reason;\n }\n });\n };\n pump();\n }\n _abortOperatorList({\n intentState,\n reason,\n force = false\n }) {\n if (!intentState.streamReader) {\n return;\n }\n if (intentState.streamReaderCancelTimeout) {\n clearTimeout(intentState.streamReaderCancelTimeout);\n intentState.streamReaderCancelTimeout = null;\n }\n if (!force) {\n if (intentState.renderTasks.size > 0) {\n return;\n }\n if (reason instanceof RenderingCancelledException) {\n let delay = RENDERING_CANCELLED_TIMEOUT;\n if (reason.extraDelay > 0 && reason.extraDelay < 1000) {\n delay += reason.extraDelay;\n }\n intentState.streamReaderCancelTimeout = setTimeout(() => {\n intentState.streamReaderCancelTimeout = null;\n this._abortOperatorList({\n intentState,\n reason,\n force: true\n });\n }, delay);\n return;\n }\n }\n intentState.streamReader.cancel(new AbortException(reason.message)).catch(() => {});\n intentState.streamReader = null;\n if (this._transport.destroyed) {\n return;\n }\n for (const [curCacheKey, curIntentState] of this._intentStates) {\n if (curIntentState === intentState) {\n this._intentStates.delete(curCacheKey);\n break;\n }\n }\n this.cleanup();\n }\n get stats() {\n return this._stats;\n }\n}\nclass LoopbackPort {\n #listeners = new Set();\n #deferred = Promise.resolve();\n postMessage(obj, transfer) {\n const event = {\n data: structuredClone(obj, transfer ? {\n transfer\n } : null)\n };\n this.#deferred.then(() => {\n for (const listener of this.#listeners) {\n listener.call(this, event);\n }\n });\n }\n addEventListener(name, listener) {\n this.#listeners.add(listener);\n }\n removeEventListener(name, listener) {\n this.#listeners.delete(listener);\n }\n terminate() {\n this.#listeners.clear();\n }\n}\nconst PDFWorkerUtil = {\n isWorkerDisabled: false,\n fakeWorkerId: 0\n};\n{\n if (isNodeJS) {\n PDFWorkerUtil.isWorkerDisabled = true;\n GlobalWorkerOptions.workerSrc ||= \"./pdf.worker.mjs\";\n }\n PDFWorkerUtil.isSameOrigin = function (baseUrl, otherUrl) {\n let base;\n try {\n base = new URL(baseUrl);\n if (!base.origin || base.origin === \"null\") {\n return false;\n }\n } catch {\n return false;\n }\n const other = new URL(otherUrl, base);\n return base.origin === other.origin;\n };\n PDFWorkerUtil.createCDNWrapper = function (url) {\n const wrapper = `await import(\"${url}\");`;\n return URL.createObjectURL(new Blob([wrapper], {\n type: \"text/javascript\"\n }));\n };\n}\nclass PDFWorker {\n static #workerPorts;\n constructor({\n name = null,\n port = null,\n verbosity = getVerbosityLevel()\n } = {}) {\n this.name = name;\n this.destroyed = false;\n this.verbosity = verbosity;\n this._readyCapability = Promise.withResolvers();\n this._port = null;\n this._webWorker = null;\n this._messageHandler = null;\n if (port) {\n if (PDFWorker.#workerPorts?.has(port)) {\n throw new Error(\"Cannot use more than one PDFWorker per port.\");\n }\n (PDFWorker.#workerPorts ||= new WeakMap()).set(port, this);\n this._initializeFromPort(port);\n return;\n }\n this._initialize();\n }\n get promise() {\n if (isNodeJS) {\n return Promise.all([NodePackages.promise, this._readyCapability.promise]);\n }\n return this._readyCapability.promise;\n }\n #resolve() {\n this._readyCapability.resolve();\n this._messageHandler.send(\"configure\", {\n verbosity: this.verbosity\n });\n }\n get port() {\n return this._port;\n }\n get messageHandler() {\n return this._messageHandler;\n }\n _initializeFromPort(port) {\n this._port = port;\n this._messageHandler = new MessageHandler(\"main\", \"worker\", port);\n this._messageHandler.on(\"ready\", function () {});\n this.#resolve();\n }\n _initialize() {\n if (PDFWorkerUtil.isWorkerDisabled || PDFWorker.#mainThreadWorkerMessageHandler) {\n this._setupFakeWorker();\n return;\n }\n let {\n workerSrc\n } = PDFWorker;\n try {\n if (!PDFWorkerUtil.isSameOrigin(window.location.href, workerSrc)) {\n workerSrc = PDFWorkerUtil.createCDNWrapper(new URL(workerSrc, window.location).href);\n }\n const worker = new Worker(workerSrc, {\n type: \"module\"\n });\n const messageHandler = new MessageHandler(\"main\", \"worker\", worker);\n const terminateEarly = () => {\n ac.abort();\n messageHandler.destroy();\n worker.terminate();\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n } else {\n this._setupFakeWorker();\n }\n };\n const ac = new AbortController();\n worker.addEventListener(\"error\", () => {\n if (!this._webWorker) {\n terminateEarly();\n }\n }, {\n signal: ac.signal\n });\n messageHandler.on(\"test\", data => {\n ac.abort();\n if (this.destroyed || !data) {\n terminateEarly();\n return;\n }\n this._messageHandler = messageHandler;\n this._port = worker;\n this._webWorker = worker;\n this.#resolve();\n });\n messageHandler.on(\"ready\", data => {\n ac.abort();\n if (this.destroyed) {\n terminateEarly();\n return;\n }\n try {\n sendTest();\n } catch {\n this._setupFakeWorker();\n }\n });\n const sendTest = () => {\n const testObj = new Uint8Array();\n messageHandler.send(\"test\", testObj, [testObj.buffer]);\n };\n sendTest();\n return;\n } catch {\n info(\"The worker has been disabled.\");\n }\n this._setupFakeWorker();\n }\n _setupFakeWorker() {\n if (!PDFWorkerUtil.isWorkerDisabled) {\n warn(\"Setting up fake worker.\");\n PDFWorkerUtil.isWorkerDisabled = true;\n }\n PDFWorker._setupFakeWorkerGlobal.then(WorkerMessageHandler => {\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n return;\n }\n const port = new LoopbackPort();\n this._port = port;\n const id = `fake${PDFWorkerUtil.fakeWorkerId++}`;\n const workerHandler = new MessageHandler(id + \"_worker\", id, port);\n WorkerMessageHandler.setup(workerHandler, port);\n this._messageHandler = new MessageHandler(id, id + \"_worker\", port);\n this.#resolve();\n }).catch(reason => {\n this._readyCapability.reject(new Error(`Setting up fake worker failed: \"${reason.message}\".`));\n });\n }\n destroy() {\n this.destroyed = true;\n if (this._webWorker) {\n this._webWorker.terminate();\n this._webWorker = null;\n }\n PDFWorker.#workerPorts?.delete(this._port);\n this._port = null;\n if (this._messageHandler) {\n this._messageHandler.destroy();\n this._messageHandler = null;\n }\n }\n static fromPort(params) {\n if (!params?.port) {\n throw new Error(\"PDFWorker.fromPort - invalid method signature.\");\n }\n const cachedPort = this.#workerPorts?.get(params.port);\n if (cachedPort) {\n if (cachedPort._pendingDestroy) {\n throw new Error(\"PDFWorker.fromPort - the worker is being destroyed.\\n\" + \"Please remember to await `PDFDocumentLoadingTask.destroy()`-calls.\");\n }\n return cachedPort;\n }\n return new PDFWorker(params);\n }\n static get workerSrc() {\n if (GlobalWorkerOptions.workerSrc) {\n return GlobalWorkerOptions.workerSrc;\n }\n throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n static get #mainThreadWorkerMessageHandler() {\n try {\n return globalThis.pdfjsWorker?.WorkerMessageHandler || null;\n } catch {\n return null;\n }\n }\n static get _setupFakeWorkerGlobal() {\n const loader = async () => {\n if (this.#mainThreadWorkerMessageHandler) {\n return this.#mainThreadWorkerMessageHandler;\n }\n const worker = await import( /*webpackIgnore: true*/this.workerSrc);\n return worker.WorkerMessageHandler;\n };\n return shadow(this, \"_setupFakeWorkerGlobal\", loader());\n }\n}\nclass WorkerTransport {\n #methodPromises = new Map();\n #pageCache = new Map();\n #pagePromises = new Map();\n #pageRefCache = new Map();\n #passwordCapability = null;\n constructor(messageHandler, loadingTask, networkStream, params, factory) {\n this.messageHandler = messageHandler;\n this.loadingTask = loadingTask;\n this.commonObjs = new PDFObjects();\n this.fontLoader = new FontLoader({\n ownerDocument: params.ownerDocument,\n styleElement: params.styleElement\n });\n this.loadingParams = params.loadingParams;\n this._params = params;\n this.canvasFactory = factory.canvasFactory;\n this.filterFactory = factory.filterFactory;\n this.cMapReaderFactory = factory.cMapReaderFactory;\n this.standardFontDataFactory = factory.standardFontDataFactory;\n this.destroyed = false;\n this.destroyCapability = null;\n this._networkStream = networkStream;\n this._fullReader = null;\n this._lastProgress = null;\n this.downloadInfoCapability = Promise.withResolvers();\n this.setupMessageHandler();\n }\n #cacheSimpleMethod(name, data = null) {\n const cachedPromise = this.#methodPromises.get(name);\n if (cachedPromise) {\n return cachedPromise;\n }\n const promise = this.messageHandler.sendWithPromise(name, data);\n this.#methodPromises.set(name, promise);\n return promise;\n }\n get annotationStorage() {\n return shadow(this, \"annotationStorage\", new AnnotationStorage());\n }\n getRenderingIntent(intent, annotationMode = AnnotationMode.ENABLE, printAnnotationStorage = null, isOpList = false) {\n let renderingIntent = RenderingIntentFlag.DISPLAY;\n let annotationStorageSerializable = SerializableEmpty;\n switch (intent) {\n case \"any\":\n renderingIntent = RenderingIntentFlag.ANY;\n break;\n case \"display\":\n break;\n case \"print\":\n renderingIntent = RenderingIntentFlag.PRINT;\n break;\n default:\n warn(`getRenderingIntent - invalid intent: ${intent}`);\n }\n switch (annotationMode) {\n case AnnotationMode.DISABLE:\n renderingIntent += RenderingIntentFlag.ANNOTATIONS_DISABLE;\n break;\n case AnnotationMode.ENABLE:\n break;\n case AnnotationMode.ENABLE_FORMS:\n renderingIntent += RenderingIntentFlag.ANNOTATIONS_FORMS;\n break;\n case AnnotationMode.ENABLE_STORAGE:\n renderingIntent += RenderingIntentFlag.ANNOTATIONS_STORAGE;\n const annotationStorage = renderingIntent & RenderingIntentFlag.PRINT && printAnnotationStorage instanceof PrintAnnotationStorage ? printAnnotationStorage : this.annotationStorage;\n annotationStorageSerializable = annotationStorage.serializable;\n break;\n default:\n warn(`getRenderingIntent - invalid annotationMode: ${annotationMode}`);\n }\n if (isOpList) {\n renderingIntent += RenderingIntentFlag.OPLIST;\n }\n return {\n renderingIntent,\n cacheKey: `${renderingIntent}_${annotationStorageSerializable.hash}`,\n annotationStorageSerializable\n };\n }\n destroy() {\n if (this.destroyCapability) {\n return this.destroyCapability.promise;\n }\n this.destroyed = true;\n this.destroyCapability = Promise.withResolvers();\n this.#passwordCapability?.reject(new Error(\"Worker was destroyed during onPassword callback\"));\n const waitOn = [];\n for (const page of this.#pageCache.values()) {\n waitOn.push(page._destroy());\n }\n this.#pageCache.clear();\n this.#pagePromises.clear();\n this.#pageRefCache.clear();\n if (this.hasOwnProperty(\"annotationStorage\")) {\n this.annotationStorage.resetModified();\n }\n const terminated = this.messageHandler.sendWithPromise(\"Terminate\", null);\n waitOn.push(terminated);\n Promise.all(waitOn).then(() => {\n this.commonObjs.clear();\n this.fontLoader.clear();\n this.#methodPromises.clear();\n this.filterFactory.destroy();\n TextLayer.cleanup();\n this._networkStream?.cancelAllRequests(new AbortException(\"Worker was terminated.\"));\n if (this.messageHandler) {\n this.messageHandler.destroy();\n this.messageHandler = null;\n }\n this.destroyCapability.resolve();\n }, this.destroyCapability.reject);\n return this.destroyCapability.promise;\n }\n setupMessageHandler() {\n const {\n messageHandler,\n loadingTask\n } = this;\n messageHandler.on(\"GetReader\", (data, sink) => {\n assert(this._networkStream, \"GetReader - no `IPDFStream` instance available.\");\n this._fullReader = this._networkStream.getFullReader();\n this._fullReader.onProgress = evt => {\n this._lastProgress = {\n loaded: evt.loaded,\n total: evt.total\n };\n };\n sink.onPull = () => {\n this._fullReader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n sink.close();\n return;\n }\n assert(value instanceof ArrayBuffer, \"GetReader - expected an ArrayBuffer.\");\n sink.enqueue(new Uint8Array(value), 1, [value]);\n }).catch(reason => {\n sink.error(reason);\n });\n };\n sink.onCancel = reason => {\n this._fullReader.cancel(reason);\n sink.ready.catch(readyReason => {\n if (this.destroyed) {\n return;\n }\n throw readyReason;\n });\n };\n });\n messageHandler.on(\"ReaderHeadersReady\", data => {\n const headersCapability = Promise.withResolvers();\n const fullReader = this._fullReader;\n fullReader.headersReady.then(() => {\n if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) {\n if (this._lastProgress) {\n loadingTask.onProgress?.(this._lastProgress);\n }\n fullReader.onProgress = evt => {\n loadingTask.onProgress?.({\n loaded: evt.loaded,\n total: evt.total\n });\n };\n }\n headersCapability.resolve({\n isStreamingSupported: fullReader.isStreamingSupported,\n isRangeSupported: fullReader.isRangeSupported,\n contentLength: fullReader.contentLength\n });\n }, headersCapability.reject);\n return headersCapability.promise;\n });\n messageHandler.on(\"GetRangeReader\", (data, sink) => {\n assert(this._networkStream, \"GetRangeReader - no `IPDFStream` instance available.\");\n const rangeReader = this._networkStream.getRangeReader(data.begin, data.end);\n if (!rangeReader) {\n sink.close();\n return;\n }\n sink.onPull = () => {\n rangeReader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n sink.close();\n return;\n }\n assert(value instanceof ArrayBuffer, \"GetRangeReader - expected an ArrayBuffer.\");\n sink.enqueue(new Uint8Array(value), 1, [value]);\n }).catch(reason => {\n sink.error(reason);\n });\n };\n sink.onCancel = reason => {\n rangeReader.cancel(reason);\n sink.ready.catch(readyReason => {\n if (this.destroyed) {\n return;\n }\n throw readyReason;\n });\n };\n });\n messageHandler.on(\"GetDoc\", ({\n pdfInfo\n }) => {\n this._numPages = pdfInfo.numPages;\n this._htmlForXfa = pdfInfo.htmlForXfa;\n delete pdfInfo.htmlForXfa;\n loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this));\n });\n messageHandler.on(\"DocException\", function (ex) {\n let reason;\n switch (ex.name) {\n case \"PasswordException\":\n reason = new PasswordException(ex.message, ex.code);\n break;\n case \"InvalidPDFException\":\n reason = new InvalidPDFException(ex.message);\n break;\n case \"MissingPDFException\":\n reason = new MissingPDFException(ex.message);\n break;\n case \"UnexpectedResponseException\":\n reason = new UnexpectedResponseException(ex.message, ex.status);\n break;\n case \"UnknownErrorException\":\n reason = new UnknownErrorException(ex.message, ex.details);\n break;\n default:\n unreachable(\"DocException - expected a valid Error.\");\n }\n loadingTask._capability.reject(reason);\n });\n messageHandler.on(\"PasswordRequest\", exception => {\n this.#passwordCapability = Promise.withResolvers();\n if (loadingTask.onPassword) {\n const updatePassword = password => {\n if (password instanceof Error) {\n this.#passwordCapability.reject(password);\n } else {\n this.#passwordCapability.resolve({\n password\n });\n }\n };\n try {\n loadingTask.onPassword(updatePassword, exception.code);\n } catch (ex) {\n this.#passwordCapability.reject(ex);\n }\n } else {\n this.#passwordCapability.reject(new PasswordException(exception.message, exception.code));\n }\n return this.#passwordCapability.promise;\n });\n messageHandler.on(\"DataLoaded\", data => {\n loadingTask.onProgress?.({\n loaded: data.length,\n total: data.length\n });\n this.downloadInfoCapability.resolve(data);\n });\n messageHandler.on(\"StartRenderPage\", data => {\n if (this.destroyed) {\n return;\n }\n const page = this.#pageCache.get(data.pageIndex);\n page._startRenderPage(data.transparency, data.cacheKey);\n });\n messageHandler.on(\"commonobj\", ([id, type, exportedData]) => {\n if (this.destroyed) {\n return null;\n }\n if (this.commonObjs.has(id)) {\n return null;\n }\n switch (type) {\n case \"Font\":\n const {\n disableFontFace,\n fontExtraProperties,\n pdfBug\n } = this._params;\n if (\"error\" in exportedData) {\n const exportedError = exportedData.error;\n warn(`Error during font loading: ${exportedError}`);\n this.commonObjs.resolve(id, exportedError);\n break;\n }\n const inspectFont = pdfBug && globalThis.FontInspector?.enabled ? (font, url) => globalThis.FontInspector.fontAdded(font, url) : null;\n const font = new FontFaceObject(exportedData, {\n disableFontFace,\n inspectFont\n });\n this.fontLoader.bind(font).catch(() => messageHandler.sendWithPromise(\"FontFallback\", {\n id\n })).finally(() => {\n if (!fontExtraProperties && font.data) {\n font.data = null;\n }\n this.commonObjs.resolve(id, font);\n });\n break;\n case \"CopyLocalImage\":\n const {\n imageRef\n } = exportedData;\n assert(imageRef, \"The imageRef must be defined.\");\n for (const pageProxy of this.#pageCache.values()) {\n for (const [, data] of pageProxy.objs) {\n if (data?.ref !== imageRef) {\n continue;\n }\n if (!data.dataLen) {\n return null;\n }\n this.commonObjs.resolve(id, structuredClone(data));\n return data.dataLen;\n }\n }\n break;\n case \"FontPath\":\n case \"Image\":\n case \"Pattern\":\n this.commonObjs.resolve(id, exportedData);\n break;\n default:\n throw new Error(`Got unknown common object type ${type}`);\n }\n return null;\n });\n messageHandler.on(\"obj\", ([id, pageIndex, type, imageData]) => {\n if (this.destroyed) {\n return;\n }\n const pageProxy = this.#pageCache.get(pageIndex);\n if (pageProxy.objs.has(id)) {\n return;\n }\n if (pageProxy._intentStates.size === 0) {\n imageData?.bitmap?.close();\n return;\n }\n switch (type) {\n case \"Image\":\n pageProxy.objs.resolve(id, imageData);\n if (imageData?.dataLen > MAX_IMAGE_SIZE_TO_CACHE) {\n pageProxy._maybeCleanupAfterRender = true;\n }\n break;\n case \"Pattern\":\n pageProxy.objs.resolve(id, imageData);\n break;\n default:\n throw new Error(`Got unknown object type ${type}`);\n }\n });\n messageHandler.on(\"DocProgress\", data => {\n if (this.destroyed) {\n return;\n }\n loadingTask.onProgress?.({\n loaded: data.loaded,\n total: data.total\n });\n });\n messageHandler.on(\"FetchBuiltInCMap\", data => {\n if (this.destroyed) {\n return Promise.reject(new Error(\"Worker was destroyed.\"));\n }\n if (!this.cMapReaderFactory) {\n return Promise.reject(new Error(\"CMapReaderFactory not initialized, see the `useWorkerFetch` parameter.\"));\n }\n return this.cMapReaderFactory.fetch(data);\n });\n messageHandler.on(\"FetchStandardFontData\", data => {\n if (this.destroyed) {\n return Promise.reject(new Error(\"Worker was destroyed.\"));\n }\n if (!this.standardFontDataFactory) {\n return Promise.reject(new Error(\"StandardFontDataFactory not initialized, see the `useWorkerFetch` parameter.\"));\n }\n return this.standardFontDataFactory.fetch(data);\n });\n }\n getData() {\n return this.messageHandler.sendWithPromise(\"GetData\", null);\n }\n saveDocument() {\n if (this.annotationStorage.size <= 0) {\n warn(\"saveDocument called while `annotationStorage` is empty, \" + \"please use the getData-method instead.\");\n }\n const {\n map,\n transfer\n } = this.annotationStorage.serializable;\n return this.messageHandler.sendWithPromise(\"SaveDocument\", {\n isPureXfa: !!this._htmlForXfa,\n numPages: this._numPages,\n annotationStorage: map,\n filename: this._fullReader?.filename ?? null\n }, transfer).finally(() => {\n this.annotationStorage.resetModified();\n });\n }\n getPage(pageNumber) {\n if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) {\n return Promise.reject(new Error(\"Invalid page request.\"));\n }\n const pageIndex = pageNumber - 1,\n cachedPromise = this.#pagePromises.get(pageIndex);\n if (cachedPromise) {\n return cachedPromise;\n }\n const promise = this.messageHandler.sendWithPromise(\"GetPage\", {\n pageIndex\n }).then(pageInfo => {\n if (this.destroyed) {\n throw new Error(\"Transport destroyed\");\n }\n if (pageInfo.refStr) {\n this.#pageRefCache.set(pageInfo.refStr, pageNumber);\n }\n const page = new PDFPageProxy(pageIndex, pageInfo, this, this._params.pdfBug);\n this.#pageCache.set(pageIndex, page);\n return page;\n });\n this.#pagePromises.set(pageIndex, promise);\n return promise;\n }\n getPageIndex(ref) {\n if (!isRefProxy(ref)) {\n return Promise.reject(new Error(\"Invalid pageIndex request.\"));\n }\n return this.messageHandler.sendWithPromise(\"GetPageIndex\", {\n num: ref.num,\n gen: ref.gen\n });\n }\n getAnnotations(pageIndex, intent) {\n return this.messageHandler.sendWithPromise(\"GetAnnotations\", {\n pageIndex,\n intent\n });\n }\n getFieldObjects() {\n return this.#cacheSimpleMethod(\"GetFieldObjects\");\n }\n hasJSActions() {\n return this.#cacheSimpleMethod(\"HasJSActions\");\n }\n getCalculationOrderIds() {\n return this.messageHandler.sendWithPromise(\"GetCalculationOrderIds\", null);\n }\n getDestinations() {\n return this.messageHandler.sendWithPromise(\"GetDestinations\", null);\n }\n getDestination(id) {\n if (typeof id !== \"string\") {\n return Promise.reject(new Error(\"Invalid destination request.\"));\n }\n return this.messageHandler.sendWithPromise(\"GetDestination\", {\n id\n });\n }\n getPageLabels() {\n return this.messageHandler.sendWithPromise(\"GetPageLabels\", null);\n }\n getPageLayout() {\n return this.messageHandler.sendWithPromise(\"GetPageLayout\", null);\n }\n getPageMode() {\n return this.messageHandler.sendWithPromise(\"GetPageMode\", null);\n }\n getViewerPreferences() {\n return this.messageHandler.sendWithPromise(\"GetViewerPreferences\", null);\n }\n getOpenAction() {\n return this.messageHandler.sendWithPromise(\"GetOpenAction\", null);\n }\n getAttachments() {\n return this.messageHandler.sendWithPromise(\"GetAttachments\", null);\n }\n getDocJSActions() {\n return this.#cacheSimpleMethod(\"GetDocJSActions\");\n }\n getPageJSActions(pageIndex) {\n return this.messageHandler.sendWithPromise(\"GetPageJSActions\", {\n pageIndex\n });\n }\n getStructTree(pageIndex) {\n return this.messageHandler.sendWithPromise(\"GetStructTree\", {\n pageIndex\n });\n }\n getOutline() {\n return this.messageHandler.sendWithPromise(\"GetOutline\", null);\n }\n getOptionalContentConfig(renderingIntent) {\n return this.#cacheSimpleMethod(\"GetOptionalContentConfig\").then(data => new OptionalContentConfig(data, renderingIntent));\n }\n getPermissions() {\n return this.messageHandler.sendWithPromise(\"GetPermissions\", null);\n }\n getMetadata() {\n const name = \"GetMetadata\",\n cachedPromise = this.#methodPromises.get(name);\n if (cachedPromise) {\n return cachedPromise;\n }\n const promise = this.messageHandler.sendWithPromise(name, null).then(results => ({\n info: results[0],\n metadata: results[1] ? new Metadata(results[1]) : null,\n contentDispositionFilename: this._fullReader?.filename ?? null,\n contentLength: this._fullReader?.contentLength ?? null\n }));\n this.#methodPromises.set(name, promise);\n return promise;\n }\n getMarkInfo() {\n return this.messageHandler.sendWithPromise(\"GetMarkInfo\", null);\n }\n async startCleanup(keepLoadedFonts = false) {\n if (this.destroyed) {\n return;\n }\n await this.messageHandler.sendWithPromise(\"Cleanup\", null);\n for (const page of this.#pageCache.values()) {\n const cleanupSuccessful = page.cleanup();\n if (!cleanupSuccessful) {\n throw new Error(`startCleanup: Page ${page.pageNumber} is currently rendering.`);\n }\n }\n this.commonObjs.clear();\n if (!keepLoadedFonts) {\n this.fontLoader.clear();\n }\n this.#methodPromises.clear();\n this.filterFactory.destroy(true);\n TextLayer.cleanup();\n }\n cachedPageNumber(ref) {\n if (!isRefProxy(ref)) {\n return null;\n }\n const refStr = ref.gen === 0 ? `${ref.num}R` : `${ref.num}R${ref.gen}`;\n return this.#pageRefCache.get(refStr) ?? null;\n }\n}\nconst INITIAL_DATA = Symbol(\"INITIAL_DATA\");\nclass PDFObjects {\n #objs = Object.create(null);\n #ensureObj(objId) {\n return this.#objs[objId] ||= {\n ...Promise.withResolvers(),\n data: INITIAL_DATA\n };\n }\n get(objId, callback = null) {\n if (callback) {\n const obj = this.#ensureObj(objId);\n obj.promise.then(() => callback(obj.data));\n return null;\n }\n const obj = this.#objs[objId];\n if (!obj || obj.data === INITIAL_DATA) {\n throw new Error(`Requesting object that isn't resolved yet ${objId}.`);\n }\n return obj.data;\n }\n has(objId) {\n const obj = this.#objs[objId];\n return !!obj && obj.data !== INITIAL_DATA;\n }\n resolve(objId, data = null) {\n const obj = this.#ensureObj(objId);\n obj.data = data;\n obj.resolve();\n }\n clear() {\n for (const objId in this.#objs) {\n const {\n data\n } = this.#objs[objId];\n data?.bitmap?.close();\n }\n this.#objs = Object.create(null);\n }\n *[Symbol.iterator]() {\n for (const objId in this.#objs) {\n const {\n data\n } = this.#objs[objId];\n if (data === INITIAL_DATA) {\n continue;\n }\n yield [objId, data];\n }\n }\n}\nclass RenderTask {\n #internalRenderTask = null;\n constructor(internalRenderTask) {\n this.#internalRenderTask = internalRenderTask;\n this.onContinue = null;\n }\n get promise() {\n return this.#internalRenderTask.capability.promise;\n }\n cancel(extraDelay = 0) {\n this.#internalRenderTask.cancel(null, extraDelay);\n }\n get separateAnnots() {\n const {\n separateAnnots\n } = this.#internalRenderTask.operatorList;\n if (!separateAnnots) {\n return false;\n }\n const {\n annotationCanvasMap\n } = this.#internalRenderTask;\n return separateAnnots.form || separateAnnots.canvas && annotationCanvasMap?.size > 0;\n }\n}\nclass InternalRenderTask {\n #rAF = null;\n static #canvasInUse = new WeakSet();\n constructor({\n callback,\n params,\n objs,\n commonObjs,\n annotationCanvasMap,\n operatorList,\n pageIndex,\n canvasFactory,\n filterFactory,\n useRequestAnimationFrame = false,\n pdfBug = false,\n pageColors = null\n }) {\n this.callback = callback;\n this.params = params;\n this.objs = objs;\n this.commonObjs = commonObjs;\n this.annotationCanvasMap = annotationCanvasMap;\n this.operatorListIdx = null;\n this.operatorList = operatorList;\n this._pageIndex = pageIndex;\n this.canvasFactory = canvasFactory;\n this.filterFactory = filterFactory;\n this._pdfBug = pdfBug;\n this.pageColors = pageColors;\n this.running = false;\n this.graphicsReadyCallback = null;\n this.graphicsReady = false;\n this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== \"undefined\";\n this.cancelled = false;\n this.capability = Promise.withResolvers();\n this.task = new RenderTask(this);\n this._cancelBound = this.cancel.bind(this);\n this._continueBound = this._continue.bind(this);\n this._scheduleNextBound = this._scheduleNext.bind(this);\n this._nextBound = this._next.bind(this);\n this._canvas = params.canvasContext.canvas;\n }\n get completed() {\n return this.capability.promise.catch(function () {});\n }\n initializeGraphics({\n transparency = false,\n optionalContentConfig\n }) {\n if (this.cancelled) {\n return;\n }\n if (this._canvas) {\n if (InternalRenderTask.#canvasInUse.has(this._canvas)) {\n throw new Error(\"Cannot use the same canvas during multiple render() operations. \" + \"Use different canvas or ensure previous operations were \" + \"cancelled or completed.\");\n }\n InternalRenderTask.#canvasInUse.add(this._canvas);\n }\n if (this._pdfBug && globalThis.StepperManager?.enabled) {\n this.stepper = globalThis.StepperManager.create(this._pageIndex);\n this.stepper.init(this.operatorList);\n this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();\n }\n const {\n canvasContext,\n viewport,\n transform,\n background\n } = this.params;\n this.gfx = new CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.filterFactory, {\n optionalContentConfig\n }, this.annotationCanvasMap, this.pageColors);\n this.gfx.beginDrawing({\n transform,\n viewport,\n transparency,\n background\n });\n this.operatorListIdx = 0;\n this.graphicsReady = true;\n this.graphicsReadyCallback?.();\n }\n cancel(error = null, extraDelay = 0) {\n this.running = false;\n this.cancelled = true;\n this.gfx?.endDrawing();\n if (this.#rAF) {\n window.cancelAnimationFrame(this.#rAF);\n this.#rAF = null;\n }\n InternalRenderTask.#canvasInUse.delete(this._canvas);\n this.callback(error || new RenderingCancelledException(`Rendering cancelled, page ${this._pageIndex + 1}`, extraDelay));\n }\n operatorListChanged() {\n if (!this.graphicsReady) {\n this.graphicsReadyCallback ||= this._continueBound;\n return;\n }\n this.stepper?.updateOperatorList(this.operatorList);\n if (this.running) {\n return;\n }\n this._continue();\n }\n _continue() {\n this.running = true;\n if (this.cancelled) {\n return;\n }\n if (this.task.onContinue) {\n this.task.onContinue(this._scheduleNextBound);\n } else {\n this._scheduleNext();\n }\n }\n _scheduleNext() {\n if (this._useRequestAnimationFrame) {\n this.#rAF = window.requestAnimationFrame(() => {\n this.#rAF = null;\n this._nextBound().catch(this._cancelBound);\n });\n } else {\n Promise.resolve().then(this._nextBound).catch(this._cancelBound);\n }\n }\n async _next() {\n if (this.cancelled) {\n return;\n }\n this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper);\n if (this.operatorListIdx === this.operatorList.argsArray.length) {\n this.running = false;\n if (this.operatorList.lastChunk) {\n this.gfx.endDrawing();\n InternalRenderTask.#canvasInUse.delete(this._canvas);\n this.callback();\n }\n }\n }\n}\nconst version = \"4.4.168\";\nconst build = \"19fbc8998\";\n\n;// CONCATENATED MODULE: ./src/shared/scripting_utils.js\nfunction makeColorComp(n) {\n return Math.floor(Math.max(0, Math.min(1, n)) * 255).toString(16).padStart(2, \"0\");\n}\nfunction scaleAndClamp(x) {\n return Math.max(0, Math.min(255, 255 * x));\n}\nclass ColorConverters {\n static CMYK_G([c, y, m, k]) {\n return [\"G\", 1 - Math.min(1, 0.3 * c + 0.59 * m + 0.11 * y + k)];\n }\n static G_CMYK([g]) {\n return [\"CMYK\", 0, 0, 0, 1 - g];\n }\n static G_RGB([g]) {\n return [\"RGB\", g, g, g];\n }\n static G_rgb([g]) {\n g = scaleAndClamp(g);\n return [g, g, g];\n }\n static G_HTML([g]) {\n const G = makeColorComp(g);\n return `#${G}${G}${G}`;\n }\n static RGB_G([r, g, b]) {\n return [\"G\", 0.3 * r + 0.59 * g + 0.11 * b];\n }\n static RGB_rgb(color) {\n return color.map(scaleAndClamp);\n }\n static RGB_HTML(color) {\n return `#${color.map(makeColorComp).join(\"\")}`;\n }\n static T_HTML() {\n return \"#00000000\";\n }\n static T_rgb() {\n return [null];\n }\n static CMYK_RGB([c, y, m, k]) {\n return [\"RGB\", 1 - Math.min(1, c + k), 1 - Math.min(1, m + k), 1 - Math.min(1, y + k)];\n }\n static CMYK_rgb([c, y, m, k]) {\n return [scaleAndClamp(1 - Math.min(1, c + k)), scaleAndClamp(1 - Math.min(1, m + k)), scaleAndClamp(1 - Math.min(1, y + k))];\n }\n static CMYK_HTML(components) {\n const rgb = this.CMYK_RGB(components).slice(1);\n return this.RGB_HTML(rgb);\n }\n static RGB_CMYK([r, g, b]) {\n const c = 1 - r;\n const m = 1 - g;\n const y = 1 - b;\n const k = Math.min(c, m, y);\n return [\"CMYK\", c, m, y, k];\n }\n}\n\n;// CONCATENATED MODULE: ./src/display/xfa_layer.js\n\nclass XfaLayer {\n static setupStorage(html, id, element, storage, intent) {\n const storedData = storage.getValue(id, {\n value: null\n });\n switch (element.name) {\n case \"textarea\":\n if (storedData.value !== null) {\n html.textContent = storedData.value;\n }\n if (intent === \"print\") {\n break;\n }\n html.addEventListener(\"input\", event => {\n storage.setValue(id, {\n value: event.target.value\n });\n });\n break;\n case \"input\":\n if (element.attributes.type === \"radio\" || element.attributes.type === \"checkbox\") {\n if (storedData.value === element.attributes.xfaOn) {\n html.setAttribute(\"checked\", true);\n } else if (storedData.value === element.attributes.xfaOff) {\n html.removeAttribute(\"checked\");\n }\n if (intent === \"print\") {\n break;\n }\n html.addEventListener(\"change\", event => {\n storage.setValue(id, {\n value: event.target.checked ? event.target.getAttribute(\"xfaOn\") : event.target.getAttribute(\"xfaOff\")\n });\n });\n } else {\n if (storedData.value !== null) {\n html.setAttribute(\"value\", storedData.value);\n }\n if (intent === \"print\") {\n break;\n }\n html.addEventListener(\"input\", event => {\n storage.setValue(id, {\n value: event.target.value\n });\n });\n }\n break;\n case \"select\":\n if (storedData.value !== null) {\n html.setAttribute(\"value\", storedData.value);\n for (const option of element.children) {\n if (option.attributes.value === storedData.value) {\n option.attributes.selected = true;\n } else if (option.attributes.hasOwnProperty(\"selected\")) {\n delete option.attributes.selected;\n }\n }\n }\n html.addEventListener(\"input\", event => {\n const options = event.target.options;\n const value = options.selectedIndex === -1 ? \"\" : options[options.selectedIndex].value;\n storage.setValue(id, {\n value\n });\n });\n break;\n }\n }\n static setAttributes({\n html,\n element,\n storage = null,\n intent,\n linkService\n }) {\n const {\n attributes\n } = element;\n const isHTMLAnchorElement = html instanceof HTMLAnchorElement;\n if (attributes.type === \"radio\") {\n attributes.name = `${attributes.name}-${intent}`;\n }\n for (const [key, value] of Object.entries(attributes)) {\n if (value === null || value === undefined) {\n continue;\n }\n switch (key) {\n case \"class\":\n if (value.length) {\n html.setAttribute(key, value.join(\" \"));\n }\n break;\n case \"dataId\":\n break;\n case \"id\":\n html.setAttribute(\"data-element-id\", value);\n break;\n case \"style\":\n Object.assign(html.style, value);\n break;\n case \"textContent\":\n html.textContent = value;\n break;\n default:\n if (!isHTMLAnchorElement || key !== \"href\" && key !== \"newWindow\") {\n html.setAttribute(key, value);\n }\n }\n }\n if (isHTMLAnchorElement) {\n linkService.addLinkAttributes(html, attributes.href, attributes.newWindow);\n }\n if (storage && attributes.dataId) {\n this.setupStorage(html, attributes.dataId, element, storage);\n }\n }\n static render(parameters) {\n const storage = parameters.annotationStorage;\n const linkService = parameters.linkService;\n const root = parameters.xfaHtml;\n const intent = parameters.intent || \"display\";\n const rootHtml = document.createElement(root.name);\n if (root.attributes) {\n this.setAttributes({\n html: rootHtml,\n element: root,\n intent,\n linkService\n });\n }\n const isNotForRichText = intent !== \"richText\";\n const rootDiv = parameters.div;\n rootDiv.append(rootHtml);\n if (parameters.viewport) {\n const transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n rootDiv.style.transform = transform;\n }\n if (isNotForRichText) {\n rootDiv.setAttribute(\"class\", \"xfaLayer xfaFont\");\n }\n const textDivs = [];\n if (root.children.length === 0) {\n if (root.value) {\n const node = document.createTextNode(root.value);\n rootHtml.append(node);\n if (isNotForRichText && XfaText.shouldBuildText(root.name)) {\n textDivs.push(node);\n }\n }\n return {\n textDivs\n };\n }\n const stack = [[root, -1, rootHtml]];\n while (stack.length > 0) {\n const [parent, i, html] = stack.at(-1);\n if (i + 1 === parent.children.length) {\n stack.pop();\n continue;\n }\n const child = parent.children[++stack.at(-1)[1]];\n if (child === null) {\n continue;\n }\n const {\n name\n } = child;\n if (name === \"#text\") {\n const node = document.createTextNode(child.value);\n textDivs.push(node);\n html.append(node);\n continue;\n }\n const childHtml = child?.attributes?.xmlns ? document.createElementNS(child.attributes.xmlns, name) : document.createElement(name);\n html.append(childHtml);\n if (child.attributes) {\n this.setAttributes({\n html: childHtml,\n element: child,\n storage,\n intent,\n linkService\n });\n }\n if (child.children?.length > 0) {\n stack.push([child, -1, childHtml]);\n } else if (child.value) {\n const node = document.createTextNode(child.value);\n if (isNotForRichText && XfaText.shouldBuildText(name)) {\n textDivs.push(node);\n }\n childHtml.append(node);\n }\n }\n for (const el of rootDiv.querySelectorAll(\".xfaNonInteractive input, .xfaNonInteractive textarea\")) {\n el.setAttribute(\"readOnly\", true);\n }\n return {\n textDivs\n };\n }\n static update(parameters) {\n const transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n parameters.div.style.transform = transform;\n parameters.div.hidden = false;\n }\n}\n\n;// CONCATENATED MODULE: ./src/display/annotation_layer.js\n\n\n\n\n\nconst DEFAULT_TAB_INDEX = 1000;\nconst annotation_layer_DEFAULT_FONT_SIZE = 9;\nconst GetElementsByNameSet = new WeakSet();\nfunction getRectDims(rect) {\n return {\n width: rect[2] - rect[0],\n height: rect[3] - rect[1]\n };\n}\nclass AnnotationElementFactory {\n static create(parameters) {\n const subtype = parameters.data.annotationType;\n switch (subtype) {\n case AnnotationType.LINK:\n return new LinkAnnotationElement(parameters);\n case AnnotationType.TEXT:\n return new TextAnnotationElement(parameters);\n case AnnotationType.WIDGET:\n const fieldType = parameters.data.fieldType;\n switch (fieldType) {\n case \"Tx\":\n return new TextWidgetAnnotationElement(parameters);\n case \"Btn\":\n if (parameters.data.radioButton) {\n return new RadioButtonWidgetAnnotationElement(parameters);\n } else if (parameters.data.checkBox) {\n return new CheckboxWidgetAnnotationElement(parameters);\n }\n return new PushButtonWidgetAnnotationElement(parameters);\n case \"Ch\":\n return new ChoiceWidgetAnnotationElement(parameters);\n case \"Sig\":\n return new SignatureWidgetAnnotationElement(parameters);\n }\n return new WidgetAnnotationElement(parameters);\n case AnnotationType.POPUP:\n return new PopupAnnotationElement(parameters);\n case AnnotationType.FREETEXT:\n return new FreeTextAnnotationElement(parameters);\n case AnnotationType.LINE:\n return new LineAnnotationElement(parameters);\n case AnnotationType.SQUARE:\n return new SquareAnnotationElement(parameters);\n case AnnotationType.CIRCLE:\n return new CircleAnnotationElement(parameters);\n case AnnotationType.POLYLINE:\n return new PolylineAnnotationElement(parameters);\n case AnnotationType.CARET:\n return new CaretAnnotationElement(parameters);\n case AnnotationType.INK:\n return new InkAnnotationElement(parameters);\n case AnnotationType.POLYGON:\n return new PolygonAnnotationElement(parameters);\n case AnnotationType.HIGHLIGHT:\n return new HighlightAnnotationElement(parameters);\n case AnnotationType.UNDERLINE:\n return new UnderlineAnnotationElement(parameters);\n case AnnotationType.SQUIGGLY:\n return new SquigglyAnnotationElement(parameters);\n case AnnotationType.STRIKEOUT:\n return new StrikeOutAnnotationElement(parameters);\n case AnnotationType.STAMP:\n return new StampAnnotationElement(parameters);\n case AnnotationType.FILEATTACHMENT:\n return new FileAttachmentAnnotationElement(parameters);\n default:\n return new AnnotationElement(parameters);\n }\n }\n}\nclass AnnotationElement {\n #updates = null;\n #hasBorder = false;\n #popupElement = null;\n constructor(parameters, {\n isRenderable = false,\n ignoreBorder = false,\n createQuadrilaterals = false\n } = {}) {\n this.isRenderable = isRenderable;\n this.data = parameters.data;\n this.layer = parameters.layer;\n this.linkService = parameters.linkService;\n this.downloadManager = parameters.downloadManager;\n this.imageResourcesPath = parameters.imageResourcesPath;\n this.renderForms = parameters.renderForms;\n this.svgFactory = parameters.svgFactory;\n this.annotationStorage = parameters.annotationStorage;\n this.enableScripting = parameters.enableScripting;\n this.hasJSActions = parameters.hasJSActions;\n this._fieldObjects = parameters.fieldObjects;\n this.parent = parameters.parent;\n if (isRenderable) {\n this.container = this._createContainer(ignoreBorder);\n }\n if (createQuadrilaterals) {\n this._createQuadrilaterals();\n }\n }\n static _hasPopupData({\n titleObj,\n contentsObj,\n richText\n }) {\n return !!(titleObj?.str || contentsObj?.str || richText?.str);\n }\n get hasPopupData() {\n return AnnotationElement._hasPopupData(this.data);\n }\n updateEdited(params) {\n if (!this.container) {\n return;\n }\n this.#updates ||= {\n rect: this.data.rect.slice(0)\n };\n const {\n rect\n } = params;\n if (rect) {\n this.#setRectEdited(rect);\n }\n this.#popupElement?.popup.updateEdited(params);\n }\n resetEdited() {\n if (!this.#updates) {\n return;\n }\n this.#setRectEdited(this.#updates.rect);\n this.#popupElement?.popup.resetEdited();\n this.#updates = null;\n }\n #setRectEdited(rect) {\n const {\n container: {\n style\n },\n data: {\n rect: currentRect,\n rotation\n },\n parent: {\n viewport: {\n rawDims: {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n }\n }\n }\n } = this;\n currentRect?.splice(0, 4, ...rect);\n const {\n width,\n height\n } = getRectDims(rect);\n style.left = `${100 * (rect[0] - pageX) / pageWidth}%`;\n style.top = `${100 * (pageHeight - rect[3] + pageY) / pageHeight}%`;\n if (rotation === 0) {\n style.width = `${100 * width / pageWidth}%`;\n style.height = `${100 * height / pageHeight}%`;\n } else {\n this.setRotation(rotation);\n }\n }\n _createContainer(ignoreBorder) {\n const {\n data,\n parent: {\n page,\n viewport\n }\n } = this;\n const container = document.createElement(\"section\");\n container.setAttribute(\"data-annotation-id\", data.id);\n if (!(this instanceof WidgetAnnotationElement)) {\n container.tabIndex = DEFAULT_TAB_INDEX;\n }\n const {\n style\n } = container;\n style.zIndex = this.parent.zIndex++;\n if (data.popupRef) {\n container.setAttribute(\"aria-haspopup\", \"dialog\");\n }\n if (data.alternativeText) {\n container.title = data.alternativeText;\n }\n if (data.noRotate) {\n container.classList.add(\"norotate\");\n }\n if (!data.rect || this instanceof PopupAnnotationElement) {\n const {\n rotation\n } = data;\n if (!data.hasOwnCanvas && rotation !== 0) {\n this.setRotation(rotation, container);\n }\n return container;\n }\n const {\n width,\n height\n } = getRectDims(data.rect);\n if (!ignoreBorder && data.borderStyle.width > 0) {\n style.borderWidth = `${data.borderStyle.width}px`;\n const horizontalRadius = data.borderStyle.horizontalCornerRadius;\n const verticalRadius = data.borderStyle.verticalCornerRadius;\n if (horizontalRadius > 0 || verticalRadius > 0) {\n const radius = `calc(${horizontalRadius}px * var(--scale-factor)) / calc(${verticalRadius}px * var(--scale-factor))`;\n style.borderRadius = radius;\n } else if (this instanceof RadioButtonWidgetAnnotationElement) {\n const radius = `calc(${width}px * var(--scale-factor)) / calc(${height}px * var(--scale-factor))`;\n style.borderRadius = radius;\n }\n switch (data.borderStyle.style) {\n case AnnotationBorderStyleType.SOLID:\n style.borderStyle = \"solid\";\n break;\n case AnnotationBorderStyleType.DASHED:\n style.borderStyle = \"dashed\";\n break;\n case AnnotationBorderStyleType.BEVELED:\n warn(\"Unimplemented border style: beveled\");\n break;\n case AnnotationBorderStyleType.INSET:\n warn(\"Unimplemented border style: inset\");\n break;\n case AnnotationBorderStyleType.UNDERLINE:\n style.borderBottomStyle = \"solid\";\n break;\n default:\n break;\n }\n const borderColor = data.borderColor || null;\n if (borderColor) {\n this.#hasBorder = true;\n style.borderColor = Util.makeHexColor(borderColor[0] | 0, borderColor[1] | 0, borderColor[2] | 0);\n } else {\n style.borderWidth = 0;\n }\n }\n const rect = Util.normalizeRect([data.rect[0], page.view[3] - data.rect[1] + page.view[1], data.rect[2], page.view[3] - data.rect[3] + page.view[1]]);\n const {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n } = viewport.rawDims;\n style.left = `${100 * (rect[0] - pageX) / pageWidth}%`;\n style.top = `${100 * (rect[1] - pageY) / pageHeight}%`;\n const {\n rotation\n } = data;\n if (data.hasOwnCanvas || rotation === 0) {\n style.width = `${100 * width / pageWidth}%`;\n style.height = `${100 * height / pageHeight}%`;\n } else {\n this.setRotation(rotation, container);\n }\n return container;\n }\n setRotation(angle, container = this.container) {\n if (!this.data.rect) {\n return;\n }\n const {\n pageWidth,\n pageHeight\n } = this.parent.viewport.rawDims;\n const {\n width,\n height\n } = getRectDims(this.data.rect);\n let elementWidth, elementHeight;\n if (angle % 180 === 0) {\n elementWidth = 100 * width / pageWidth;\n elementHeight = 100 * height / pageHeight;\n } else {\n elementWidth = 100 * height / pageWidth;\n elementHeight = 100 * width / pageHeight;\n }\n container.style.width = `${elementWidth}%`;\n container.style.height = `${elementHeight}%`;\n container.setAttribute(\"data-main-rotation\", (360 - angle) % 360);\n }\n get _commonActions() {\n const setColor = (jsName, styleName, event) => {\n const color = event.detail[jsName];\n const colorType = color[0];\n const colorArray = color.slice(1);\n event.target.style[styleName] = ColorConverters[`${colorType}_HTML`](colorArray);\n this.annotationStorage.setValue(this.data.id, {\n [styleName]: ColorConverters[`${colorType}_rgb`](colorArray)\n });\n };\n return shadow(this, \"_commonActions\", {\n display: event => {\n const {\n display\n } = event.detail;\n const hidden = display % 2 === 1;\n this.container.style.visibility = hidden ? \"hidden\" : \"visible\";\n this.annotationStorage.setValue(this.data.id, {\n noView: hidden,\n noPrint: display === 1 || display === 2\n });\n },\n print: event => {\n this.annotationStorage.setValue(this.data.id, {\n noPrint: !event.detail.print\n });\n },\n hidden: event => {\n const {\n hidden\n } = event.detail;\n this.container.style.visibility = hidden ? \"hidden\" : \"visible\";\n this.annotationStorage.setValue(this.data.id, {\n noPrint: hidden,\n noView: hidden\n });\n },\n focus: event => {\n setTimeout(() => event.target.focus({\n preventScroll: false\n }), 0);\n },\n userName: event => {\n event.target.title = event.detail.userName;\n },\n readonly: event => {\n event.target.disabled = event.detail.readonly;\n },\n required: event => {\n this._setRequired(event.target, event.detail.required);\n },\n bgColor: event => {\n setColor(\"bgColor\", \"backgroundColor\", event);\n },\n fillColor: event => {\n setColor(\"fillColor\", \"backgroundColor\", event);\n },\n fgColor: event => {\n setColor(\"fgColor\", \"color\", event);\n },\n textColor: event => {\n setColor(\"textColor\", \"color\", event);\n },\n borderColor: event => {\n setColor(\"borderColor\", \"borderColor\", event);\n },\n strokeColor: event => {\n setColor(\"strokeColor\", \"borderColor\", event);\n },\n rotation: event => {\n const angle = event.detail.rotation;\n this.setRotation(angle);\n this.annotationStorage.setValue(this.data.id, {\n rotation: angle\n });\n }\n });\n }\n _dispatchEventFromSandbox(actions, jsEvent) {\n const commonActions = this._commonActions;\n for (const name of Object.keys(jsEvent.detail)) {\n const action = actions[name] || commonActions[name];\n action?.(jsEvent);\n }\n }\n _setDefaultPropertiesFromJS(element) {\n if (!this.enableScripting) {\n return;\n }\n const storedData = this.annotationStorage.getRawValue(this.data.id);\n if (!storedData) {\n return;\n }\n const commonActions = this._commonActions;\n for (const [actionName, detail] of Object.entries(storedData)) {\n const action = commonActions[actionName];\n if (action) {\n const eventProxy = {\n detail: {\n [actionName]: detail\n },\n target: element\n };\n action(eventProxy);\n delete storedData[actionName];\n }\n }\n }\n _createQuadrilaterals() {\n if (!this.container) {\n return;\n }\n const {\n quadPoints\n } = this.data;\n if (!quadPoints) {\n return;\n }\n const [rectBlX, rectBlY, rectTrX, rectTrY] = this.data.rect.map(x => Math.fround(x));\n if (quadPoints.length === 8) {\n const [trX, trY, blX, blY] = quadPoints.subarray(2, 6);\n if (rectTrX === trX && rectTrY === trY && rectBlX === blX && rectBlY === blY) {\n return;\n }\n }\n const {\n style\n } = this.container;\n let svgBuffer;\n if (this.#hasBorder) {\n const {\n borderColor,\n borderWidth\n } = style;\n style.borderWidth = 0;\n svgBuffer = [\"url('data:image/svg+xml;utf8,\", `<svg xmlns=\"http://www.w3.org/2000/svg\"`, ` preserveAspectRatio=\"none\" viewBox=\"0 0 1 1\">`, `<g fill=\"transparent\" stroke=\"${borderColor}\" stroke-width=\"${borderWidth}\">`];\n this.container.classList.add(\"hasBorder\");\n }\n const width = rectTrX - rectBlX;\n const height = rectTrY - rectBlY;\n const {\n svgFactory\n } = this;\n const svg = svgFactory.createElement(\"svg\");\n svg.classList.add(\"quadrilateralsContainer\");\n svg.setAttribute(\"width\", 0);\n svg.setAttribute(\"height\", 0);\n const defs = svgFactory.createElement(\"defs\");\n svg.append(defs);\n const clipPath = svgFactory.createElement(\"clipPath\");\n const id = `clippath_${this.data.id}`;\n clipPath.setAttribute(\"id\", id);\n clipPath.setAttribute(\"clipPathUnits\", \"objectBoundingBox\");\n defs.append(clipPath);\n for (let i = 2, ii = quadPoints.length; i < ii; i += 8) {\n const trX = quadPoints[i];\n const trY = quadPoints[i + 1];\n const blX = quadPoints[i + 2];\n const blY = quadPoints[i + 3];\n const rect = svgFactory.createElement(\"rect\");\n const x = (blX - rectBlX) / width;\n const y = (rectTrY - trY) / height;\n const rectWidth = (trX - blX) / width;\n const rectHeight = (trY - blY) / height;\n rect.setAttribute(\"x\", x);\n rect.setAttribute(\"y\", y);\n rect.setAttribute(\"width\", rectWidth);\n rect.setAttribute(\"height\", rectHeight);\n clipPath.append(rect);\n svgBuffer?.push(`<rect vector-effect=\"non-scaling-stroke\" x=\"${x}\" y=\"${y}\" width=\"${rectWidth}\" height=\"${rectHeight}\"/>`);\n }\n if (this.#hasBorder) {\n svgBuffer.push(`</g></svg>')`);\n style.backgroundImage = svgBuffer.join(\"\");\n }\n this.container.append(svg);\n this.container.style.clipPath = `url(#${id})`;\n }\n _createPopup() {\n const {\n container,\n data\n } = this;\n container.setAttribute(\"aria-haspopup\", \"dialog\");\n const popup = this.#popupElement = new PopupAnnotationElement({\n data: {\n color: data.color,\n titleObj: data.titleObj,\n modificationDate: data.modificationDate,\n contentsObj: data.contentsObj,\n richText: data.richText,\n parentRect: data.rect,\n borderStyle: 0,\n id: `popup_${data.id}`,\n rotation: data.rotation\n },\n parent: this.parent,\n elements: [this]\n });\n this.parent.div.append(popup.render());\n }\n render() {\n unreachable(\"Abstract method `AnnotationElement.render` called\");\n }\n _getElementsByName(name, skipId = null) {\n const fields = [];\n if (this._fieldObjects) {\n const fieldObj = this._fieldObjects[name];\n if (fieldObj) {\n for (const {\n page,\n id,\n exportValues\n } of fieldObj) {\n if (page === -1) {\n continue;\n }\n if (id === skipId) {\n continue;\n }\n const exportValue = typeof exportValues === \"string\" ? exportValues : null;\n const domElement = document.querySelector(`[data-element-id=\"${id}\"]`);\n if (domElement && !GetElementsByNameSet.has(domElement)) {\n warn(`_getElementsByName - element not allowed: ${id}`);\n continue;\n }\n fields.push({\n id,\n exportValue,\n domElement\n });\n }\n }\n return fields;\n }\n for (const domElement of document.getElementsByName(name)) {\n const {\n exportValue\n } = domElement;\n const id = domElement.getAttribute(\"data-element-id\");\n if (id === skipId) {\n continue;\n }\n if (!GetElementsByNameSet.has(domElement)) {\n continue;\n }\n fields.push({\n id,\n exportValue,\n domElement\n });\n }\n return fields;\n }\n show() {\n if (this.container) {\n this.container.hidden = false;\n }\n this.popup?.maybeShow();\n }\n hide() {\n if (this.container) {\n this.container.hidden = true;\n }\n this.popup?.forceHide();\n }\n getElementsToTriggerPopup() {\n return this.container;\n }\n addHighlightArea() {\n const triggers = this.getElementsToTriggerPopup();\n if (Array.isArray(triggers)) {\n for (const element of triggers) {\n element.classList.add(\"highlightArea\");\n }\n } else {\n triggers.classList.add(\"highlightArea\");\n }\n }\n get _isEditable() {\n return false;\n }\n _editOnDoubleClick() {\n if (!this._isEditable) {\n return;\n }\n const {\n annotationEditorType: mode,\n data: {\n id: editId\n }\n } = this;\n this.container.addEventListener(\"dblclick\", () => {\n this.linkService.eventBus?.dispatch(\"switchannotationeditormode\", {\n source: this,\n mode,\n editId\n });\n });\n }\n}\nclass LinkAnnotationElement extends AnnotationElement {\n constructor(parameters, options = null) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: !!options?.ignoreBorder,\n createQuadrilaterals: true\n });\n this.isTooltipOnly = parameters.data.isTooltipOnly;\n }\n render() {\n const {\n data,\n linkService\n } = this;\n const link = document.createElement(\"a\");\n link.setAttribute(\"data-element-id\", data.id);\n let isBound = false;\n if (data.url) {\n linkService.addLinkAttributes(link, data.url, data.newWindow);\n isBound = true;\n } else if (data.action) {\n this._bindNamedAction(link, data.action);\n isBound = true;\n } else if (data.attachment) {\n this.#bindAttachment(link, data.attachment, data.attachmentDest);\n isBound = true;\n } else if (data.setOCGState) {\n this.#bindSetOCGState(link, data.setOCGState);\n isBound = true;\n } else if (data.dest) {\n this._bindLink(link, data.dest);\n isBound = true;\n } else {\n if (data.actions && (data.actions.Action || data.actions[\"Mouse Up\"] || data.actions[\"Mouse Down\"]) && this.enableScripting && this.hasJSActions) {\n this._bindJSAction(link, data);\n isBound = true;\n }\n if (data.resetForm) {\n this._bindResetFormAction(link, data.resetForm);\n isBound = true;\n } else if (this.isTooltipOnly && !isBound) {\n this._bindLink(link, \"\");\n isBound = true;\n }\n }\n this.container.classList.add(\"linkAnnotation\");\n if (isBound) {\n this.container.append(link);\n }\n return this.container;\n }\n #setInternalLink() {\n this.container.setAttribute(\"data-internal-link\", \"\");\n }\n _bindLink(link, destination) {\n link.href = this.linkService.getDestinationHash(destination);\n link.onclick = () => {\n if (destination) {\n this.linkService.goToDestination(destination);\n }\n return false;\n };\n if (destination || destination === \"\") {\n this.#setInternalLink();\n }\n }\n _bindNamedAction(link, action) {\n link.href = this.linkService.getAnchorUrl(\"\");\n link.onclick = () => {\n this.linkService.executeNamedAction(action);\n return false;\n };\n this.#setInternalLink();\n }\n #bindAttachment(link, attachment, dest = null) {\n link.href = this.linkService.getAnchorUrl(\"\");\n if (attachment.description) {\n link.title = attachment.description;\n }\n link.onclick = () => {\n this.downloadManager?.openOrDownloadData(attachment.content, attachment.filename, dest);\n return false;\n };\n this.#setInternalLink();\n }\n #bindSetOCGState(link, action) {\n link.href = this.linkService.getAnchorUrl(\"\");\n link.onclick = () => {\n this.linkService.executeSetOCGState(action);\n return false;\n };\n this.#setInternalLink();\n }\n _bindJSAction(link, data) {\n link.href = this.linkService.getAnchorUrl(\"\");\n const map = new Map([[\"Action\", \"onclick\"], [\"Mouse Up\", \"onmouseup\"], [\"Mouse Down\", \"onmousedown\"]]);\n for (const name of Object.keys(data.actions)) {\n const jsName = map.get(name);\n if (!jsName) {\n continue;\n }\n link[jsName] = () => {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: data.id,\n name\n }\n });\n return false;\n };\n }\n if (!link.onclick) {\n link.onclick = () => false;\n }\n this.#setInternalLink();\n }\n _bindResetFormAction(link, resetForm) {\n const otherClickAction = link.onclick;\n if (!otherClickAction) {\n link.href = this.linkService.getAnchorUrl(\"\");\n }\n this.#setInternalLink();\n if (!this._fieldObjects) {\n warn(`_bindResetFormAction - \"resetForm\" action not supported, ` + \"ensure that the `fieldObjects` parameter is provided.\");\n if (!otherClickAction) {\n link.onclick = () => false;\n }\n return;\n }\n link.onclick = () => {\n otherClickAction?.();\n const {\n fields: resetFormFields,\n refs: resetFormRefs,\n include\n } = resetForm;\n const allFields = [];\n if (resetFormFields.length !== 0 || resetFormRefs.length !== 0) {\n const fieldIds = new Set(resetFormRefs);\n for (const fieldName of resetFormFields) {\n const fields = this._fieldObjects[fieldName] || [];\n for (const {\n id\n } of fields) {\n fieldIds.add(id);\n }\n }\n for (const fields of Object.values(this._fieldObjects)) {\n for (const field of fields) {\n if (fieldIds.has(field.id) === include) {\n allFields.push(field);\n }\n }\n }\n } else {\n for (const fields of Object.values(this._fieldObjects)) {\n allFields.push(...fields);\n }\n }\n const storage = this.annotationStorage;\n const allIds = [];\n for (const field of allFields) {\n const {\n id\n } = field;\n allIds.push(id);\n switch (field.type) {\n case \"text\":\n {\n const value = field.defaultValue || \"\";\n storage.setValue(id, {\n value\n });\n break;\n }\n case \"checkbox\":\n case \"radiobutton\":\n {\n const value = field.defaultValue === field.exportValues;\n storage.setValue(id, {\n value\n });\n break;\n }\n case \"combobox\":\n case \"listbox\":\n {\n const value = field.defaultValue || \"\";\n storage.setValue(id, {\n value\n });\n break;\n }\n default:\n continue;\n }\n const domElement = document.querySelector(`[data-element-id=\"${id}\"]`);\n if (!domElement) {\n continue;\n } else if (!GetElementsByNameSet.has(domElement)) {\n warn(`_bindResetFormAction - element not allowed: ${id}`);\n continue;\n }\n domElement.dispatchEvent(new Event(\"resetform\"));\n }\n if (this.enableScripting) {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: \"app\",\n ids: allIds,\n name: \"ResetForm\"\n }\n });\n }\n return false;\n };\n }\n}\nclass TextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true\n });\n }\n render() {\n this.container.classList.add(\"textAnnotation\");\n const image = document.createElement(\"img\");\n image.src = this.imageResourcesPath + \"annotation-\" + this.data.name.toLowerCase() + \".svg\";\n image.setAttribute(\"data-l10n-id\", \"pdfjs-text-annotation-type\");\n image.setAttribute(\"data-l10n-args\", JSON.stringify({\n type: this.data.name\n }));\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this.container.append(image);\n return this.container;\n }\n}\nclass WidgetAnnotationElement extends AnnotationElement {\n render() {\n return this.container;\n }\n showElementAndHideCanvas(element) {\n if (this.data.hasOwnCanvas) {\n if (element.previousSibling?.nodeName === \"CANVAS\") {\n element.previousSibling.hidden = true;\n }\n element.hidden = false;\n }\n }\n _getKeyModifier(event) {\n return util_FeatureTest.platform.isMac ? event.metaKey : event.ctrlKey;\n }\n _setEventListener(element, elementData, baseName, eventName, valueGetter) {\n if (baseName.includes(\"mouse\")) {\n element.addEventListener(baseName, event => {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: this.data.id,\n name: eventName,\n value: valueGetter(event),\n shift: event.shiftKey,\n modifier: this._getKeyModifier(event)\n }\n });\n });\n } else {\n element.addEventListener(baseName, event => {\n if (baseName === \"blur\") {\n if (!elementData.focused || !event.relatedTarget) {\n return;\n }\n elementData.focused = false;\n } else if (baseName === \"focus\") {\n if (elementData.focused) {\n return;\n }\n elementData.focused = true;\n }\n if (!valueGetter) {\n return;\n }\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: this.data.id,\n name: eventName,\n value: valueGetter(event)\n }\n });\n });\n }\n }\n _setEventListeners(element, elementData, names, getter) {\n for (const [baseName, eventName] of names) {\n if (eventName === \"Action\" || this.data.actions?.[eventName]) {\n if (eventName === \"Focus\" || eventName === \"Blur\") {\n elementData ||= {\n focused: false\n };\n }\n this._setEventListener(element, elementData, baseName, eventName, getter);\n if (eventName === \"Focus\" && !this.data.actions?.Blur) {\n this._setEventListener(element, elementData, \"blur\", \"Blur\", null);\n } else if (eventName === \"Blur\" && !this.data.actions?.Focus) {\n this._setEventListener(element, elementData, \"focus\", \"Focus\", null);\n }\n }\n }\n }\n _setBackgroundColor(element) {\n const color = this.data.backgroundColor || null;\n element.style.backgroundColor = color === null ? \"transparent\" : Util.makeHexColor(color[0], color[1], color[2]);\n }\n _setTextStyle(element) {\n const TEXT_ALIGNMENT = [\"left\", \"center\", \"right\"];\n const {\n fontColor\n } = this.data.defaultAppearanceData;\n const fontSize = this.data.defaultAppearanceData.fontSize || annotation_layer_DEFAULT_FONT_SIZE;\n const style = element.style;\n let computedFontSize;\n const BORDER_SIZE = 2;\n const roundToOneDecimal = x => Math.round(10 * x) / 10;\n if (this.data.multiLine) {\n const height = Math.abs(this.data.rect[3] - this.data.rect[1] - BORDER_SIZE);\n const numberOfLines = Math.round(height / (LINE_FACTOR * fontSize)) || 1;\n const lineHeight = height / numberOfLines;\n computedFontSize = Math.min(fontSize, roundToOneDecimal(lineHeight / LINE_FACTOR));\n } else {\n const height = Math.abs(this.data.rect[3] - this.data.rect[1] - BORDER_SIZE);\n computedFontSize = Math.min(fontSize, roundToOneDecimal(height / LINE_FACTOR));\n }\n style.fontSize = `calc(${computedFontSize}px * var(--scale-factor))`;\n style.color = Util.makeHexColor(fontColor[0], fontColor[1], fontColor[2]);\n if (this.data.textAlignment !== null) {\n style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment];\n }\n }\n _setRequired(element, isRequired) {\n if (isRequired) {\n element.setAttribute(\"required\", true);\n } else {\n element.removeAttribute(\"required\");\n }\n element.setAttribute(\"aria-required\", isRequired);\n }\n}\nclass TextWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n const isRenderable = parameters.renderForms || parameters.data.hasOwnCanvas || !parameters.data.hasAppearance && !!parameters.data.fieldValue;\n super(parameters, {\n isRenderable\n });\n }\n setPropertyOnSiblings(base, key, value, keyInStorage) {\n const storage = this.annotationStorage;\n for (const element of this._getElementsByName(base.name, base.id)) {\n if (element.domElement) {\n element.domElement[key] = value;\n }\n storage.setValue(element.id, {\n [keyInStorage]: value\n });\n }\n }\n render() {\n const storage = this.annotationStorage;\n const id = this.data.id;\n this.container.classList.add(\"textWidgetAnnotation\");\n let element = null;\n if (this.renderForms) {\n const storedData = storage.getValue(id, {\n value: this.data.fieldValue\n });\n let textContent = storedData.value || \"\";\n const maxLen = storage.getValue(id, {\n charLimit: this.data.maxLen\n }).charLimit;\n if (maxLen && textContent.length > maxLen) {\n textContent = textContent.slice(0, maxLen);\n }\n let fieldFormattedValues = storedData.formattedValue || this.data.textContent?.join(\"\\n\") || null;\n if (fieldFormattedValues && this.data.comb) {\n fieldFormattedValues = fieldFormattedValues.replaceAll(/\\s+/g, \"\");\n }\n const elementData = {\n userValue: textContent,\n formattedValue: fieldFormattedValues,\n lastCommittedValue: null,\n commitKey: 1,\n focused: false\n };\n if (this.data.multiLine) {\n element = document.createElement(\"textarea\");\n element.textContent = fieldFormattedValues ?? textContent;\n if (this.data.doNotScroll) {\n element.style.overflowY = \"hidden\";\n }\n } else {\n element = document.createElement(\"input\");\n element.type = \"text\";\n element.setAttribute(\"value\", fieldFormattedValues ?? textContent);\n if (this.data.doNotScroll) {\n element.style.overflowX = \"hidden\";\n }\n }\n if (this.data.hasOwnCanvas) {\n element.hidden = true;\n }\n GetElementsByNameSet.add(element);\n element.setAttribute(\"data-element-id\", id);\n element.disabled = this.data.readOnly;\n element.name = this.data.fieldName;\n element.tabIndex = DEFAULT_TAB_INDEX;\n this._setRequired(element, this.data.required);\n if (maxLen) {\n element.maxLength = maxLen;\n }\n element.addEventListener(\"input\", event => {\n storage.setValue(id, {\n value: event.target.value\n });\n this.setPropertyOnSiblings(element, \"value\", event.target.value, \"value\");\n elementData.formattedValue = null;\n });\n element.addEventListener(\"resetform\", event => {\n const defaultValue = this.data.defaultFieldValue ?? \"\";\n element.value = elementData.userValue = defaultValue;\n elementData.formattedValue = null;\n });\n let blurListener = event => {\n const {\n formattedValue\n } = elementData;\n if (formattedValue !== null && formattedValue !== undefined) {\n event.target.value = formattedValue;\n }\n event.target.scrollLeft = 0;\n };\n if (this.enableScripting && this.hasJSActions) {\n element.addEventListener(\"focus\", event => {\n if (elementData.focused) {\n return;\n }\n const {\n target\n } = event;\n if (elementData.userValue) {\n target.value = elementData.userValue;\n }\n elementData.lastCommittedValue = target.value;\n elementData.commitKey = 1;\n if (!this.data.actions?.Focus) {\n elementData.focused = true;\n }\n });\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n this.showElementAndHideCanvas(jsEvent.target);\n const actions = {\n value(event) {\n elementData.userValue = event.detail.value ?? \"\";\n storage.setValue(id, {\n value: elementData.userValue.toString()\n });\n event.target.value = elementData.userValue;\n },\n formattedValue(event) {\n const {\n formattedValue\n } = event.detail;\n elementData.formattedValue = formattedValue;\n if (formattedValue !== null && formattedValue !== undefined && event.target !== document.activeElement) {\n event.target.value = formattedValue;\n }\n storage.setValue(id, {\n formattedValue\n });\n },\n selRange(event) {\n event.target.setSelectionRange(...event.detail.selRange);\n },\n charLimit: event => {\n const {\n charLimit\n } = event.detail;\n const {\n target\n } = event;\n if (charLimit === 0) {\n target.removeAttribute(\"maxLength\");\n return;\n }\n target.setAttribute(\"maxLength\", charLimit);\n let value = elementData.userValue;\n if (!value || value.length <= charLimit) {\n return;\n }\n value = value.slice(0, charLimit);\n target.value = elementData.userValue = value;\n storage.setValue(id, {\n value\n });\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n willCommit: true,\n commitKey: 1,\n selStart: target.selectionStart,\n selEnd: target.selectionEnd\n }\n });\n }\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n element.addEventListener(\"keydown\", event => {\n elementData.commitKey = 1;\n let commitKey = -1;\n if (event.key === \"Escape\") {\n commitKey = 0;\n } else if (event.key === \"Enter\" && !this.data.multiLine) {\n commitKey = 2;\n } else if (event.key === \"Tab\") {\n elementData.commitKey = 3;\n }\n if (commitKey === -1) {\n return;\n }\n const {\n value\n } = event.target;\n if (elementData.lastCommittedValue === value) {\n return;\n }\n elementData.lastCommittedValue = value;\n elementData.userValue = value;\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n willCommit: true,\n commitKey,\n selStart: event.target.selectionStart,\n selEnd: event.target.selectionEnd\n }\n });\n });\n const _blurListener = blurListener;\n blurListener = null;\n element.addEventListener(\"blur\", event => {\n if (!elementData.focused || !event.relatedTarget) {\n return;\n }\n if (!this.data.actions?.Blur) {\n elementData.focused = false;\n }\n const {\n value\n } = event.target;\n elementData.userValue = value;\n if (elementData.lastCommittedValue !== value) {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n willCommit: true,\n commitKey: elementData.commitKey,\n selStart: event.target.selectionStart,\n selEnd: event.target.selectionEnd\n }\n });\n }\n _blurListener(event);\n });\n if (this.data.actions?.Keystroke) {\n element.addEventListener(\"beforeinput\", event => {\n elementData.lastCommittedValue = null;\n const {\n data,\n target\n } = event;\n const {\n value,\n selectionStart,\n selectionEnd\n } = target;\n let selStart = selectionStart,\n selEnd = selectionEnd;\n switch (event.inputType) {\n case \"deleteWordBackward\":\n {\n const match = value.substring(0, selectionStart).match(/\\w*[^\\w]*$/);\n if (match) {\n selStart -= match[0].length;\n }\n break;\n }\n case \"deleteWordForward\":\n {\n const match = value.substring(selectionStart).match(/^[^\\w]*\\w*/);\n if (match) {\n selEnd += match[0].length;\n }\n break;\n }\n case \"deleteContentBackward\":\n if (selectionStart === selectionEnd) {\n selStart -= 1;\n }\n break;\n case \"deleteContentForward\":\n if (selectionStart === selectionEnd) {\n selEnd += 1;\n }\n break;\n }\n event.preventDefault();\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n change: data || \"\",\n willCommit: false,\n selStart,\n selEnd\n }\n });\n });\n }\n this._setEventListeners(element, elementData, [[\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.value);\n }\n if (blurListener) {\n element.addEventListener(\"blur\", blurListener);\n }\n if (this.data.comb) {\n const fieldWidth = this.data.rect[2] - this.data.rect[0];\n const combWidth = fieldWidth / maxLen;\n element.classList.add(\"comb\");\n element.style.letterSpacing = `calc(${combWidth}px * var(--scale-factor) - 1ch)`;\n }\n } else {\n element = document.createElement(\"div\");\n element.textContent = this.data.fieldValue;\n element.style.verticalAlign = \"middle\";\n element.style.display = \"table-cell\";\n if (this.data.hasOwnCanvas) {\n element.hidden = true;\n }\n }\n this._setTextStyle(element);\n this._setBackgroundColor(element);\n this._setDefaultPropertiesFromJS(element);\n this.container.append(element);\n return this.container;\n }\n}\nclass SignatureWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: !!parameters.data.hasOwnCanvas\n });\n }\n}\nclass CheckboxWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderForms\n });\n }\n render() {\n const storage = this.annotationStorage;\n const data = this.data;\n const id = data.id;\n let value = storage.getValue(id, {\n value: data.exportValue === data.fieldValue\n }).value;\n if (typeof value === \"string\") {\n value = value !== \"Off\";\n storage.setValue(id, {\n value\n });\n }\n this.container.classList.add(\"buttonWidgetAnnotation\", \"checkBox\");\n const element = document.createElement(\"input\");\n GetElementsByNameSet.add(element);\n element.setAttribute(\"data-element-id\", id);\n element.disabled = data.readOnly;\n this._setRequired(element, this.data.required);\n element.type = \"checkbox\";\n element.name = data.fieldName;\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n element.setAttribute(\"exportValue\", data.exportValue);\n element.tabIndex = DEFAULT_TAB_INDEX;\n element.addEventListener(\"change\", event => {\n const {\n name,\n checked\n } = event.target;\n for (const checkbox of this._getElementsByName(name, id)) {\n const curChecked = checked && checkbox.exportValue === data.exportValue;\n if (checkbox.domElement) {\n checkbox.domElement.checked = curChecked;\n }\n storage.setValue(checkbox.id, {\n value: curChecked\n });\n }\n storage.setValue(id, {\n value: checked\n });\n });\n element.addEventListener(\"resetform\", event => {\n const defaultValue = data.defaultFieldValue || \"Off\";\n event.target.checked = defaultValue === data.exportValue;\n });\n if (this.enableScripting && this.hasJSActions) {\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value(event) {\n event.target.checked = event.detail.value !== \"Off\";\n storage.setValue(id, {\n value: event.target.checked\n });\n }\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n this._setEventListeners(element, null, [[\"change\", \"Validate\"], [\"change\", \"Action\"], [\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.checked);\n }\n this._setBackgroundColor(element);\n this._setDefaultPropertiesFromJS(element);\n this.container.append(element);\n return this.container;\n }\n}\nclass RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderForms\n });\n }\n render() {\n this.container.classList.add(\"buttonWidgetAnnotation\", \"radioButton\");\n const storage = this.annotationStorage;\n const data = this.data;\n const id = data.id;\n let value = storage.getValue(id, {\n value: data.fieldValue === data.buttonValue\n }).value;\n if (typeof value === \"string\") {\n value = value !== data.buttonValue;\n storage.setValue(id, {\n value\n });\n }\n if (value) {\n for (const radio of this._getElementsByName(data.fieldName, id)) {\n storage.setValue(radio.id, {\n value: false\n });\n }\n }\n const element = document.createElement(\"input\");\n GetElementsByNameSet.add(element);\n element.setAttribute(\"data-element-id\", id);\n element.disabled = data.readOnly;\n this._setRequired(element, this.data.required);\n element.type = \"radio\";\n element.name = data.fieldName;\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n element.tabIndex = DEFAULT_TAB_INDEX;\n element.addEventListener(\"change\", event => {\n const {\n name,\n checked\n } = event.target;\n for (const radio of this._getElementsByName(name, id)) {\n storage.setValue(radio.id, {\n value: false\n });\n }\n storage.setValue(id, {\n value: checked\n });\n });\n element.addEventListener(\"resetform\", event => {\n const defaultValue = data.defaultFieldValue;\n event.target.checked = defaultValue !== null && defaultValue !== undefined && defaultValue === data.buttonValue;\n });\n if (this.enableScripting && this.hasJSActions) {\n const pdfButtonValue = data.buttonValue;\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value: event => {\n const checked = pdfButtonValue === event.detail.value;\n for (const radio of this._getElementsByName(event.target.name)) {\n const curChecked = checked && radio.id === id;\n if (radio.domElement) {\n radio.domElement.checked = curChecked;\n }\n storage.setValue(radio.id, {\n value: curChecked\n });\n }\n }\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n this._setEventListeners(element, null, [[\"change\", \"Validate\"], [\"change\", \"Action\"], [\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.checked);\n }\n this._setBackgroundColor(element);\n this._setDefaultPropertiesFromJS(element);\n this.container.append(element);\n return this.container;\n }\n}\nclass PushButtonWidgetAnnotationElement extends LinkAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n ignoreBorder: parameters.data.hasAppearance\n });\n }\n render() {\n const container = super.render();\n container.classList.add(\"buttonWidgetAnnotation\", \"pushButton\");\n const linkElement = container.lastChild;\n if (this.enableScripting && this.hasJSActions && linkElement) {\n this._setDefaultPropertiesFromJS(linkElement);\n linkElement.addEventListener(\"updatefromsandbox\", jsEvent => {\n this._dispatchEventFromSandbox({}, jsEvent);\n });\n }\n return container;\n }\n}\nclass ChoiceWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderForms\n });\n }\n render() {\n this.container.classList.add(\"choiceWidgetAnnotation\");\n const storage = this.annotationStorage;\n const id = this.data.id;\n const storedData = storage.getValue(id, {\n value: this.data.fieldValue\n });\n const selectElement = document.createElement(\"select\");\n GetElementsByNameSet.add(selectElement);\n selectElement.setAttribute(\"data-element-id\", id);\n selectElement.disabled = this.data.readOnly;\n this._setRequired(selectElement, this.data.required);\n selectElement.name = this.data.fieldName;\n selectElement.tabIndex = DEFAULT_TAB_INDEX;\n let addAnEmptyEntry = this.data.combo && this.data.options.length > 0;\n if (!this.data.combo) {\n selectElement.size = this.data.options.length;\n if (this.data.multiSelect) {\n selectElement.multiple = true;\n }\n }\n selectElement.addEventListener(\"resetform\", event => {\n const defaultValue = this.data.defaultFieldValue;\n for (const option of selectElement.options) {\n option.selected = option.value === defaultValue;\n }\n });\n for (const option of this.data.options) {\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = option.displayValue;\n optionElement.value = option.exportValue;\n if (storedData.value.includes(option.exportValue)) {\n optionElement.setAttribute(\"selected\", true);\n addAnEmptyEntry = false;\n }\n selectElement.append(optionElement);\n }\n let removeEmptyEntry = null;\n if (addAnEmptyEntry) {\n const noneOptionElement = document.createElement(\"option\");\n noneOptionElement.value = \" \";\n noneOptionElement.setAttribute(\"hidden\", true);\n noneOptionElement.setAttribute(\"selected\", true);\n selectElement.prepend(noneOptionElement);\n removeEmptyEntry = () => {\n noneOptionElement.remove();\n selectElement.removeEventListener(\"input\", removeEmptyEntry);\n removeEmptyEntry = null;\n };\n selectElement.addEventListener(\"input\", removeEmptyEntry);\n }\n const getValue = isExport => {\n const name = isExport ? \"value\" : \"textContent\";\n const {\n options,\n multiple\n } = selectElement;\n if (!multiple) {\n return options.selectedIndex === -1 ? null : options[options.selectedIndex][name];\n }\n return Array.prototype.filter.call(options, option => option.selected).map(option => option[name]);\n };\n let selectedValues = getValue(false);\n const getItems = event => {\n const options = event.target.options;\n return Array.prototype.map.call(options, option => ({\n displayValue: option.textContent,\n exportValue: option.value\n }));\n };\n if (this.enableScripting && this.hasJSActions) {\n selectElement.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value(event) {\n removeEmptyEntry?.();\n const value = event.detail.value;\n const values = new Set(Array.isArray(value) ? value : [value]);\n for (const option of selectElement.options) {\n option.selected = values.has(option.value);\n }\n storage.setValue(id, {\n value: getValue(true)\n });\n selectedValues = getValue(false);\n },\n multipleSelection(event) {\n selectElement.multiple = true;\n },\n remove(event) {\n const options = selectElement.options;\n const index = event.detail.remove;\n options[index].selected = false;\n selectElement.remove(index);\n if (options.length > 0) {\n const i = Array.prototype.findIndex.call(options, option => option.selected);\n if (i === -1) {\n options[0].selected = true;\n }\n }\n storage.setValue(id, {\n value: getValue(true),\n items: getItems(event)\n });\n selectedValues = getValue(false);\n },\n clear(event) {\n while (selectElement.length !== 0) {\n selectElement.remove(0);\n }\n storage.setValue(id, {\n value: null,\n items: []\n });\n selectedValues = getValue(false);\n },\n insert(event) {\n const {\n index,\n displayValue,\n exportValue\n } = event.detail.insert;\n const selectChild = selectElement.children[index];\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = displayValue;\n optionElement.value = exportValue;\n if (selectChild) {\n selectChild.before(optionElement);\n } else {\n selectElement.append(optionElement);\n }\n storage.setValue(id, {\n value: getValue(true),\n items: getItems(event)\n });\n selectedValues = getValue(false);\n },\n items(event) {\n const {\n items\n } = event.detail;\n while (selectElement.length !== 0) {\n selectElement.remove(0);\n }\n for (const item of items) {\n const {\n displayValue,\n exportValue\n } = item;\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = displayValue;\n optionElement.value = exportValue;\n selectElement.append(optionElement);\n }\n if (selectElement.options.length > 0) {\n selectElement.options[0].selected = true;\n }\n storage.setValue(id, {\n value: getValue(true),\n items: getItems(event)\n });\n selectedValues = getValue(false);\n },\n indices(event) {\n const indices = new Set(event.detail.indices);\n for (const option of event.target.options) {\n option.selected = indices.has(option.index);\n }\n storage.setValue(id, {\n value: getValue(true)\n });\n selectedValues = getValue(false);\n },\n editable(event) {\n event.target.disabled = !event.detail.editable;\n }\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n selectElement.addEventListener(\"input\", event => {\n const exportValue = getValue(true);\n const change = getValue(false);\n storage.setValue(id, {\n value: exportValue\n });\n event.preventDefault();\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value: selectedValues,\n change,\n changeEx: exportValue,\n willCommit: false,\n commitKey: 1,\n keyDown: false\n }\n });\n });\n this._setEventListeners(selectElement, null, [[\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"], [\"input\", \"Action\"], [\"input\", \"Validate\"]], event => event.target.value);\n } else {\n selectElement.addEventListener(\"input\", function (event) {\n storage.setValue(id, {\n value: getValue(true)\n });\n });\n }\n if (this.data.combo) {\n this._setTextStyle(selectElement);\n } else {}\n this._setBackgroundColor(selectElement);\n this._setDefaultPropertiesFromJS(selectElement);\n this.container.append(selectElement);\n return this.container;\n }\n}\nclass PopupAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const {\n data,\n elements\n } = parameters;\n super(parameters, {\n isRenderable: AnnotationElement._hasPopupData(data)\n });\n this.elements = elements;\n this.popup = null;\n }\n render() {\n this.container.classList.add(\"popupAnnotation\");\n const popup = this.popup = new PopupElement({\n container: this.container,\n color: this.data.color,\n titleObj: this.data.titleObj,\n modificationDate: this.data.modificationDate,\n contentsObj: this.data.contentsObj,\n richText: this.data.richText,\n rect: this.data.rect,\n parentRect: this.data.parentRect || null,\n parent: this.parent,\n elements: this.elements,\n open: this.data.open\n });\n const elementIds = [];\n for (const element of this.elements) {\n element.popup = popup;\n elementIds.push(element.data.id);\n element.addHighlightArea();\n }\n this.container.setAttribute(\"aria-controls\", elementIds.map(id => `${AnnotationPrefix}${id}`).join(\",\"));\n return this.container;\n }\n}\nclass PopupElement {\n #boundKeyDown = this.#keyDown.bind(this);\n #boundHide = this.#hide.bind(this);\n #boundShow = this.#show.bind(this);\n #boundToggle = this.#toggle.bind(this);\n #color = null;\n #container = null;\n #contentsObj = null;\n #dateObj = null;\n #elements = null;\n #parent = null;\n #parentRect = null;\n #pinned = false;\n #popup = null;\n #position = null;\n #rect = null;\n #richText = null;\n #titleObj = null;\n #updates = null;\n #wasVisible = false;\n constructor({\n container,\n color,\n elements,\n titleObj,\n modificationDate,\n contentsObj,\n richText,\n parent,\n rect,\n parentRect,\n open\n }) {\n this.#container = container;\n this.#titleObj = titleObj;\n this.#contentsObj = contentsObj;\n this.#richText = richText;\n this.#parent = parent;\n this.#color = color;\n this.#rect = rect;\n this.#parentRect = parentRect;\n this.#elements = elements;\n this.#dateObj = PDFDateString.toDateObject(modificationDate);\n this.trigger = elements.flatMap(e => e.getElementsToTriggerPopup());\n for (const element of this.trigger) {\n element.addEventListener(\"click\", this.#boundToggle);\n element.addEventListener(\"mouseenter\", this.#boundShow);\n element.addEventListener(\"mouseleave\", this.#boundHide);\n element.classList.add(\"popupTriggerArea\");\n }\n for (const element of elements) {\n element.container?.addEventListener(\"keydown\", this.#boundKeyDown);\n }\n this.#container.hidden = true;\n if (open) {\n this.#toggle();\n }\n }\n render() {\n if (this.#popup) {\n return;\n }\n const popup = this.#popup = document.createElement(\"div\");\n popup.className = \"popup\";\n if (this.#color) {\n const baseColor = popup.style.outlineColor = Util.makeHexColor(...this.#color);\n if (CSS.supports(\"background-color\", \"color-mix(in srgb, red 30%, white)\")) {\n popup.style.backgroundColor = `color-mix(in srgb, ${baseColor} 30%, white)`;\n } else {\n const BACKGROUND_ENLIGHT = 0.7;\n popup.style.backgroundColor = Util.makeHexColor(...this.#color.map(c => Math.floor(BACKGROUND_ENLIGHT * (255 - c) + c)));\n }\n }\n const header = document.createElement(\"span\");\n header.className = \"header\";\n const title = document.createElement(\"h1\");\n header.append(title);\n ({\n dir: title.dir,\n str: title.textContent\n } = this.#titleObj);\n popup.append(header);\n if (this.#dateObj) {\n const modificationDate = document.createElement(\"span\");\n modificationDate.classList.add(\"popupDate\");\n modificationDate.setAttribute(\"data-l10n-id\", \"pdfjs-annotation-date-string\");\n modificationDate.setAttribute(\"data-l10n-args\", JSON.stringify({\n date: this.#dateObj.toLocaleDateString(),\n time: this.#dateObj.toLocaleTimeString()\n }));\n header.append(modificationDate);\n }\n const html = this.#html;\n if (html) {\n XfaLayer.render({\n xfaHtml: html,\n intent: \"richText\",\n div: popup\n });\n popup.lastChild.classList.add(\"richText\", \"popupContent\");\n } else {\n const contents = this._formatContents(this.#contentsObj);\n popup.append(contents);\n }\n this.#container.append(popup);\n }\n get #html() {\n const richText = this.#richText;\n const contentsObj = this.#contentsObj;\n if (richText?.str && (!contentsObj?.str || contentsObj.str === richText.str)) {\n return this.#richText.html || null;\n }\n return null;\n }\n get #fontSize() {\n return this.#html?.attributes?.style?.fontSize || 0;\n }\n get #fontColor() {\n return this.#html?.attributes?.style?.color || null;\n }\n #makePopupContent(text) {\n const popupLines = [];\n const popupContent = {\n str: text,\n html: {\n name: \"div\",\n attributes: {\n dir: \"auto\"\n },\n children: [{\n name: \"p\",\n children: popupLines\n }]\n }\n };\n const lineAttributes = {\n style: {\n color: this.#fontColor,\n fontSize: this.#fontSize ? `calc(${this.#fontSize}px * var(--scale-factor))` : \"\"\n }\n };\n for (const line of text.split(\"\\n\")) {\n popupLines.push({\n name: \"span\",\n value: line,\n attributes: lineAttributes\n });\n }\n return popupContent;\n }\n _formatContents({\n str,\n dir\n }) {\n const p = document.createElement(\"p\");\n p.classList.add(\"popupContent\");\n p.dir = dir;\n const lines = str.split(/(?:\\r\\n?|\\n)/);\n for (let i = 0, ii = lines.length; i < ii; ++i) {\n const line = lines[i];\n p.append(document.createTextNode(line));\n if (i < ii - 1) {\n p.append(document.createElement(\"br\"));\n }\n }\n return p;\n }\n #keyDown(event) {\n if (event.altKey || event.shiftKey || event.ctrlKey || event.metaKey) {\n return;\n }\n if (event.key === \"Enter\" || event.key === \"Escape\" && this.#pinned) {\n this.#toggle();\n }\n }\n updateEdited({\n rect,\n popupContent\n }) {\n this.#updates ||= {\n contentsObj: this.#contentsObj,\n richText: this.#richText\n };\n if (rect) {\n this.#position = null;\n }\n if (popupContent) {\n this.#richText = this.#makePopupContent(popupContent);\n this.#contentsObj = null;\n }\n this.#popup?.remove();\n this.#popup = null;\n }\n resetEdited() {\n if (!this.#updates) {\n return;\n }\n ({\n contentsObj: this.#contentsObj,\n richText: this.#richText\n } = this.#updates);\n this.#updates = null;\n this.#popup?.remove();\n this.#popup = null;\n this.#position = null;\n }\n #setPosition() {\n if (this.#position !== null) {\n return;\n }\n const {\n page: {\n view\n },\n viewport: {\n rawDims: {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n }\n }\n } = this.#parent;\n let useParentRect = !!this.#parentRect;\n let rect = useParentRect ? this.#parentRect : this.#rect;\n for (const element of this.#elements) {\n if (!rect || Util.intersect(element.data.rect, rect) !== null) {\n rect = element.data.rect;\n useParentRect = true;\n break;\n }\n }\n const normalizedRect = Util.normalizeRect([rect[0], view[3] - rect[1] + view[1], rect[2], view[3] - rect[3] + view[1]]);\n const HORIZONTAL_SPACE_AFTER_ANNOTATION = 5;\n const parentWidth = useParentRect ? rect[2] - rect[0] + HORIZONTAL_SPACE_AFTER_ANNOTATION : 0;\n const popupLeft = normalizedRect[0] + parentWidth;\n const popupTop = normalizedRect[1];\n this.#position = [100 * (popupLeft - pageX) / pageWidth, 100 * (popupTop - pageY) / pageHeight];\n const {\n style\n } = this.#container;\n style.left = `${this.#position[0]}%`;\n style.top = `${this.#position[1]}%`;\n }\n #toggle() {\n this.#pinned = !this.#pinned;\n if (this.#pinned) {\n this.#show();\n this.#container.addEventListener(\"click\", this.#boundToggle);\n this.#container.addEventListener(\"keydown\", this.#boundKeyDown);\n } else {\n this.#hide();\n this.#container.removeEventListener(\"click\", this.#boundToggle);\n this.#container.removeEventListener(\"keydown\", this.#boundKeyDown);\n }\n }\n #show() {\n if (!this.#popup) {\n this.render();\n }\n if (!this.isVisible) {\n this.#setPosition();\n this.#container.hidden = false;\n this.#container.style.zIndex = parseInt(this.#container.style.zIndex) + 1000;\n } else if (this.#pinned) {\n this.#container.classList.add(\"focused\");\n }\n }\n #hide() {\n this.#container.classList.remove(\"focused\");\n if (this.#pinned || !this.isVisible) {\n return;\n }\n this.#container.hidden = true;\n this.#container.style.zIndex = parseInt(this.#container.style.zIndex) - 1000;\n }\n forceHide() {\n this.#wasVisible = this.isVisible;\n if (!this.#wasVisible) {\n return;\n }\n this.#container.hidden = true;\n }\n maybeShow() {\n if (!this.#wasVisible) {\n return;\n }\n if (!this.#popup) {\n this.#show();\n }\n this.#wasVisible = false;\n this.#container.hidden = false;\n }\n get isVisible() {\n return this.#container.hidden === false;\n }\n}\nclass FreeTextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n this.textContent = parameters.data.textContent;\n this.textPosition = parameters.data.textPosition;\n this.annotationEditorType = AnnotationEditorType.FREETEXT;\n }\n render() {\n this.container.classList.add(\"freeTextAnnotation\");\n if (this.textContent) {\n const content = document.createElement(\"div\");\n content.classList.add(\"annotationTextContent\");\n content.setAttribute(\"role\", \"comment\");\n for (const line of this.textContent) {\n const lineSpan = document.createElement(\"span\");\n lineSpan.textContent = line;\n content.append(lineSpan);\n }\n this.container.append(content);\n }\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this._editOnDoubleClick();\n return this.container;\n }\n get _isEditable() {\n return this.data.hasOwnCanvas;\n }\n}\nclass LineAnnotationElement extends AnnotationElement {\n #line = null;\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n }\n render() {\n this.container.classList.add(\"lineAnnotation\");\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n const line = this.#line = this.svgFactory.createElement(\"svg:line\");\n line.setAttribute(\"x1\", data.rect[2] - data.lineCoordinates[0]);\n line.setAttribute(\"y1\", data.rect[3] - data.lineCoordinates[1]);\n line.setAttribute(\"x2\", data.rect[2] - data.lineCoordinates[2]);\n line.setAttribute(\"y2\", data.rect[3] - data.lineCoordinates[3]);\n line.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n line.setAttribute(\"stroke\", \"transparent\");\n line.setAttribute(\"fill\", \"transparent\");\n svg.append(line);\n this.container.append(svg);\n if (!data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n getElementsToTriggerPopup() {\n return this.#line;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n}\nclass SquareAnnotationElement extends AnnotationElement {\n #square = null;\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n }\n render() {\n this.container.classList.add(\"squareAnnotation\");\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n const borderWidth = data.borderStyle.width;\n const square = this.#square = this.svgFactory.createElement(\"svg:rect\");\n square.setAttribute(\"x\", borderWidth / 2);\n square.setAttribute(\"y\", borderWidth / 2);\n square.setAttribute(\"width\", width - borderWidth);\n square.setAttribute(\"height\", height - borderWidth);\n square.setAttribute(\"stroke-width\", borderWidth || 1);\n square.setAttribute(\"stroke\", \"transparent\");\n square.setAttribute(\"fill\", \"transparent\");\n svg.append(square);\n this.container.append(svg);\n if (!data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n getElementsToTriggerPopup() {\n return this.#square;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n}\nclass CircleAnnotationElement extends AnnotationElement {\n #circle = null;\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n }\n render() {\n this.container.classList.add(\"circleAnnotation\");\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n const borderWidth = data.borderStyle.width;\n const circle = this.#circle = this.svgFactory.createElement(\"svg:ellipse\");\n circle.setAttribute(\"cx\", width / 2);\n circle.setAttribute(\"cy\", height / 2);\n circle.setAttribute(\"rx\", width / 2 - borderWidth / 2);\n circle.setAttribute(\"ry\", height / 2 - borderWidth / 2);\n circle.setAttribute(\"stroke-width\", borderWidth || 1);\n circle.setAttribute(\"stroke\", \"transparent\");\n circle.setAttribute(\"fill\", \"transparent\");\n svg.append(circle);\n this.container.append(svg);\n if (!data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n getElementsToTriggerPopup() {\n return this.#circle;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n}\nclass PolylineAnnotationElement extends AnnotationElement {\n #polyline = null;\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n this.containerClassName = \"polylineAnnotation\";\n this.svgElementName = \"svg:polyline\";\n }\n render() {\n this.container.classList.add(this.containerClassName);\n const {\n data: {\n rect,\n vertices,\n borderStyle,\n popupRef\n }\n } = this;\n if (!vertices) {\n return this.container;\n }\n const {\n width,\n height\n } = getRectDims(rect);\n const svg = this.svgFactory.create(width, height, true);\n let points = [];\n for (let i = 0, ii = vertices.length; i < ii; i += 2) {\n const x = vertices[i] - rect[0];\n const y = rect[3] - vertices[i + 1];\n points.push(`${x},${y}`);\n }\n points = points.join(\" \");\n const polyline = this.#polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute(\"points\", points);\n polyline.setAttribute(\"stroke-width\", borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"transparent\");\n svg.append(polyline);\n this.container.append(svg);\n if (!popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n getElementsToTriggerPopup() {\n return this.#polyline;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n}\nclass PolygonAnnotationElement extends PolylineAnnotationElement {\n constructor(parameters) {\n super(parameters);\n this.containerClassName = \"polygonAnnotation\";\n this.svgElementName = \"svg:polygon\";\n }\n}\nclass CaretAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n }\n render() {\n this.container.classList.add(\"caretAnnotation\");\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n}\nclass InkAnnotationElement extends AnnotationElement {\n #polylines = [];\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n this.containerClassName = \"inkAnnotation\";\n this.svgElementName = \"svg:polyline\";\n this.annotationEditorType = AnnotationEditorType.INK;\n }\n render() {\n this.container.classList.add(this.containerClassName);\n const {\n data: {\n rect,\n inkLists,\n borderStyle,\n popupRef\n }\n } = this;\n const {\n width,\n height\n } = getRectDims(rect);\n const svg = this.svgFactory.create(width, height, true);\n for (const inkList of inkLists) {\n let points = [];\n for (let i = 0, ii = inkList.length; i < ii; i += 2) {\n const x = inkList[i] - rect[0];\n const y = rect[3] - inkList[i + 1];\n points.push(`${x},${y}`);\n }\n points = points.join(\" \");\n const polyline = this.svgFactory.createElement(this.svgElementName);\n this.#polylines.push(polyline);\n polyline.setAttribute(\"points\", points);\n polyline.setAttribute(\"stroke-width\", borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"transparent\");\n if (!popupRef && this.hasPopupData) {\n this._createPopup();\n }\n svg.append(polyline);\n }\n this.container.append(svg);\n return this.container;\n }\n getElementsToTriggerPopup() {\n return this.#polylines;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n}\nclass HighlightAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n render() {\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this.container.classList.add(\"highlightAnnotation\");\n return this.container;\n }\n}\nclass UnderlineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n render() {\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this.container.classList.add(\"underlineAnnotation\");\n return this.container;\n }\n}\nclass SquigglyAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n render() {\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this.container.classList.add(\"squigglyAnnotation\");\n return this.container;\n }\n}\nclass StrikeOutAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n render() {\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this.container.classList.add(\"strikeoutAnnotation\");\n return this.container;\n }\n}\nclass StampAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n }\n render() {\n this.container.classList.add(\"stampAnnotation\");\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n}\nclass FileAttachmentAnnotationElement extends AnnotationElement {\n #trigger = null;\n constructor(parameters) {\n super(parameters, {\n isRenderable: true\n });\n const {\n file\n } = this.data;\n this.filename = file.filename;\n this.content = file.content;\n this.linkService.eventBus?.dispatch(\"fileattachmentannotation\", {\n source: this,\n ...file\n });\n }\n render() {\n this.container.classList.add(\"fileAttachmentAnnotation\");\n const {\n container,\n data\n } = this;\n let trigger;\n if (data.hasAppearance || data.fillAlpha === 0) {\n trigger = document.createElement(\"div\");\n } else {\n trigger = document.createElement(\"img\");\n trigger.src = `${this.imageResourcesPath}annotation-${/paperclip/i.test(data.name) ? \"paperclip\" : \"pushpin\"}.svg`;\n if (data.fillAlpha && data.fillAlpha < 1) {\n trigger.style = `filter: opacity(${Math.round(data.fillAlpha * 100)}%);`;\n }\n }\n trigger.addEventListener(\"dblclick\", this.#download.bind(this));\n this.#trigger = trigger;\n const {\n isMac\n } = util_FeatureTest.platform;\n container.addEventListener(\"keydown\", evt => {\n if (evt.key === \"Enter\" && (isMac ? evt.metaKey : evt.ctrlKey)) {\n this.#download();\n }\n });\n if (!data.popupRef && this.hasPopupData) {\n this._createPopup();\n } else {\n trigger.classList.add(\"popupTriggerArea\");\n }\n container.append(trigger);\n return container;\n }\n getElementsToTriggerPopup() {\n return this.#trigger;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n #download() {\n this.downloadManager?.openOrDownloadData(this.content, this.filename);\n }\n}\nclass AnnotationLayer {\n #accessibilityManager = null;\n #annotationCanvasMap = null;\n #editableAnnotations = new Map();\n constructor({\n div,\n accessibilityManager,\n annotationCanvasMap,\n annotationEditorUIManager,\n page,\n viewport\n }) {\n this.div = div;\n this.#accessibilityManager = accessibilityManager;\n this.#annotationCanvasMap = annotationCanvasMap;\n this.page = page;\n this.viewport = viewport;\n this.zIndex = 0;\n this._annotationEditorUIManager = annotationEditorUIManager;\n }\n #appendElement(element, id) {\n const contentElement = element.firstChild || element;\n contentElement.id = `${AnnotationPrefix}${id}`;\n this.div.append(element);\n this.#accessibilityManager?.moveElementInDOM(this.div, element, contentElement, false);\n }\n async render(params) {\n const {\n annotations\n } = params;\n const layer = this.div;\n setLayerDimensions(layer, this.viewport);\n const popupToElements = new Map();\n const elementParams = {\n data: null,\n layer,\n linkService: params.linkService,\n downloadManager: params.downloadManager,\n imageResourcesPath: params.imageResourcesPath || \"\",\n renderForms: params.renderForms !== false,\n svgFactory: new DOMSVGFactory(),\n annotationStorage: params.annotationStorage || new AnnotationStorage(),\n enableScripting: params.enableScripting === true,\n hasJSActions: params.hasJSActions,\n fieldObjects: params.fieldObjects,\n parent: this,\n elements: null\n };\n for (const data of annotations) {\n if (data.noHTML) {\n continue;\n }\n const isPopupAnnotation = data.annotationType === AnnotationType.POPUP;\n if (!isPopupAnnotation) {\n const {\n width,\n height\n } = getRectDims(data.rect);\n if (width <= 0 || height <= 0) {\n continue;\n }\n } else {\n const elements = popupToElements.get(data.id);\n if (!elements) {\n continue;\n }\n elementParams.elements = elements;\n }\n elementParams.data = data;\n const element = AnnotationElementFactory.create(elementParams);\n if (!element.isRenderable) {\n continue;\n }\n if (!isPopupAnnotation && data.popupRef) {\n const elements = popupToElements.get(data.popupRef);\n if (!elements) {\n popupToElements.set(data.popupRef, [element]);\n } else {\n elements.push(element);\n }\n }\n const rendered = element.render();\n if (data.hidden) {\n rendered.style.visibility = \"hidden\";\n }\n this.#appendElement(rendered, data.id);\n if (element.annotationEditorType > 0) {\n this.#editableAnnotations.set(element.data.id, element);\n this._annotationEditorUIManager?.renderAnnotationElement(element);\n }\n }\n this.#setAnnotationCanvasMap();\n }\n update({\n viewport\n }) {\n const layer = this.div;\n this.viewport = viewport;\n setLayerDimensions(layer, {\n rotation: viewport.rotation\n });\n this.#setAnnotationCanvasMap();\n layer.hidden = false;\n }\n #setAnnotationCanvasMap() {\n if (!this.#annotationCanvasMap) {\n return;\n }\n const layer = this.div;\n for (const [id, canvas] of this.#annotationCanvasMap) {\n const element = layer.querySelector(`[data-annotation-id=\"${id}\"]`);\n if (!element) {\n continue;\n }\n canvas.className = \"annotationContent\";\n const {\n firstChild\n } = element;\n if (!firstChild) {\n element.append(canvas);\n } else if (firstChild.nodeName === \"CANVAS\") {\n firstChild.replaceWith(canvas);\n } else if (!firstChild.classList.contains(\"annotationContent\")) {\n firstChild.before(canvas);\n } else {\n firstChild.after(canvas);\n }\n }\n this.#annotationCanvasMap.clear();\n }\n getEditableAnnotations() {\n return Array.from(this.#editableAnnotations.values());\n }\n getEditableAnnotation(id) {\n return this.#editableAnnotations.get(id);\n }\n}\n\n;// CONCATENATED MODULE: ./src/display/editor/freetext.js\n\n\n\n\nconst EOL_PATTERN = /\\r\\n?|\\n/g;\nclass FreeTextEditor extends AnnotationEditor {\n #boundEditorDivBlur = this.editorDivBlur.bind(this);\n #boundEditorDivFocus = this.editorDivFocus.bind(this);\n #boundEditorDivInput = this.editorDivInput.bind(this);\n #boundEditorDivKeydown = this.editorDivKeydown.bind(this);\n #boundEditorDivPaste = this.editorDivPaste.bind(this);\n #color;\n #content = \"\";\n #editorDivId = `${this.id}-editor`;\n #fontSize;\n #initialData = null;\n static _freeTextDefaultContent = \"\";\n static _internalPadding = 0;\n static _defaultColor = null;\n static _defaultFontSize = 10;\n static get _keyboardManager() {\n const proto = FreeTextEditor.prototype;\n const arrowChecker = self => self.isEmpty();\n const small = AnnotationEditorUIManager.TRANSLATE_SMALL;\n const big = AnnotationEditorUIManager.TRANSLATE_BIG;\n return shadow(this, \"_keyboardManager\", new KeyboardManager([[[\"ctrl+s\", \"mac+meta+s\", \"ctrl+p\", \"mac+meta+p\"], proto.commitOrRemove, {\n bubbles: true\n }], [[\"ctrl+Enter\", \"mac+meta+Enter\", \"Escape\", \"mac+Escape\"], proto.commitOrRemove], [[\"ArrowLeft\", \"mac+ArrowLeft\"], proto._translateEmpty, {\n args: [-small, 0],\n checker: arrowChecker\n }], [[\"ctrl+ArrowLeft\", \"mac+shift+ArrowLeft\"], proto._translateEmpty, {\n args: [-big, 0],\n checker: arrowChecker\n }], [[\"ArrowRight\", \"mac+ArrowRight\"], proto._translateEmpty, {\n args: [small, 0],\n checker: arrowChecker\n }], [[\"ctrl+ArrowRight\", \"mac+shift+ArrowRight\"], proto._translateEmpty, {\n args: [big, 0],\n checker: arrowChecker\n }], [[\"ArrowUp\", \"mac+ArrowUp\"], proto._translateEmpty, {\n args: [0, -small],\n checker: arrowChecker\n }], [[\"ctrl+ArrowUp\", \"mac+shift+ArrowUp\"], proto._translateEmpty, {\n args: [0, -big],\n checker: arrowChecker\n }], [[\"ArrowDown\", \"mac+ArrowDown\"], proto._translateEmpty, {\n args: [0, small],\n checker: arrowChecker\n }], [[\"ctrl+ArrowDown\", \"mac+shift+ArrowDown\"], proto._translateEmpty, {\n args: [0, big],\n checker: arrowChecker\n }]]));\n }\n static _type = \"freetext\";\n static _editorType = AnnotationEditorType.FREETEXT;\n constructor(params) {\n super({\n ...params,\n name: \"freeTextEditor\"\n });\n this.#color = params.color || FreeTextEditor._defaultColor || AnnotationEditor._defaultLineColor;\n this.#fontSize = params.fontSize || FreeTextEditor._defaultFontSize;\n }\n static initialize(l10n, uiManager) {\n AnnotationEditor.initialize(l10n, uiManager, {\n strings: [\"pdfjs-free-text-default-content\"]\n });\n const style = getComputedStyle(document.documentElement);\n this._internalPadding = parseFloat(style.getPropertyValue(\"--freetext-padding\"));\n }\n static updateDefaultParams(type, value) {\n switch (type) {\n case AnnotationEditorParamsType.FREETEXT_SIZE:\n FreeTextEditor._defaultFontSize = value;\n break;\n case AnnotationEditorParamsType.FREETEXT_COLOR:\n FreeTextEditor._defaultColor = value;\n break;\n }\n }\n updateParams(type, value) {\n switch (type) {\n case AnnotationEditorParamsType.FREETEXT_SIZE:\n this.#updateFontSize(value);\n break;\n case AnnotationEditorParamsType.FREETEXT_COLOR:\n this.#updateColor(value);\n break;\n }\n }\n static get defaultPropertiesToUpdate() {\n return [[AnnotationEditorParamsType.FREETEXT_SIZE, FreeTextEditor._defaultFontSize], [AnnotationEditorParamsType.FREETEXT_COLOR, FreeTextEditor._defaultColor || AnnotationEditor._defaultLineColor]];\n }\n get propertiesToUpdate() {\n return [[AnnotationEditorParamsType.FREETEXT_SIZE, this.#fontSize], [AnnotationEditorParamsType.FREETEXT_COLOR, this.#color]];\n }\n #updateFontSize(fontSize) {\n const setFontsize = size => {\n this.editorDiv.style.fontSize = `calc(${size}px * var(--scale-factor))`;\n this.translate(0, -(size - this.#fontSize) * this.parentScale);\n this.#fontSize = size;\n this.#setEditorDimensions();\n };\n const savedFontsize = this.#fontSize;\n this.addCommands({\n cmd: setFontsize.bind(this, fontSize),\n undo: setFontsize.bind(this, savedFontsize),\n post: this._uiManager.updateUI.bind(this._uiManager, this),\n mustExec: true,\n type: AnnotationEditorParamsType.FREETEXT_SIZE,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n #updateColor(color) {\n const setColor = col => {\n this.#color = this.editorDiv.style.color = col;\n };\n const savedColor = this.#color;\n this.addCommands({\n cmd: setColor.bind(this, color),\n undo: setColor.bind(this, savedColor),\n post: this._uiManager.updateUI.bind(this._uiManager, this),\n mustExec: true,\n type: AnnotationEditorParamsType.FREETEXT_COLOR,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n _translateEmpty(x, y) {\n this._uiManager.translateSelectedEditors(x, y, true);\n }\n getInitialTranslation() {\n const scale = this.parentScale;\n return [-FreeTextEditor._internalPadding * scale, -(FreeTextEditor._internalPadding + this.#fontSize) * scale];\n }\n rebuild() {\n if (!this.parent) {\n return;\n }\n super.rebuild();\n if (this.div === null) {\n return;\n }\n if (!this.isAttachedToDOM) {\n this.parent.add(this);\n }\n }\n enableEditMode() {\n if (this.isInEditMode()) {\n return;\n }\n this.parent.setEditingState(false);\n this.parent.updateToolbar(AnnotationEditorType.FREETEXT);\n super.enableEditMode();\n this.overlayDiv.classList.remove(\"enabled\");\n this.editorDiv.contentEditable = true;\n this._isDraggable = false;\n this.div.removeAttribute(\"aria-activedescendant\");\n const signal = this._uiManager._signal;\n this.editorDiv.addEventListener(\"keydown\", this.#boundEditorDivKeydown, {\n signal\n });\n this.editorDiv.addEventListener(\"focus\", this.#boundEditorDivFocus, {\n signal\n });\n this.editorDiv.addEventListener(\"blur\", this.#boundEditorDivBlur, {\n signal\n });\n this.editorDiv.addEventListener(\"input\", this.#boundEditorDivInput, {\n signal\n });\n this.editorDiv.addEventListener(\"paste\", this.#boundEditorDivPaste, {\n signal\n });\n }\n disableEditMode() {\n if (!this.isInEditMode()) {\n return;\n }\n this.parent.setEditingState(true);\n super.disableEditMode();\n this.overlayDiv.classList.add(\"enabled\");\n this.editorDiv.contentEditable = false;\n this.div.setAttribute(\"aria-activedescendant\", this.#editorDivId);\n this._isDraggable = true;\n this.editorDiv.removeEventListener(\"keydown\", this.#boundEditorDivKeydown);\n this.editorDiv.removeEventListener(\"focus\", this.#boundEditorDivFocus);\n this.editorDiv.removeEventListener(\"blur\", this.#boundEditorDivBlur);\n this.editorDiv.removeEventListener(\"input\", this.#boundEditorDivInput);\n this.editorDiv.removeEventListener(\"paste\", this.#boundEditorDivPaste);\n this.div.focus({\n preventScroll: true\n });\n this.isEditing = false;\n this.parent.div.classList.add(\"freetextEditing\");\n }\n focusin(event) {\n if (!this._focusEventsAllowed) {\n return;\n }\n super.focusin(event);\n if (event.target !== this.editorDiv) {\n this.editorDiv.focus();\n }\n }\n onceAdded() {\n if (this.width) {\n return;\n }\n this.enableEditMode();\n this.editorDiv.focus();\n if (this._initialOptions?.isCentered) {\n this.center();\n }\n this._initialOptions = null;\n }\n isEmpty() {\n return !this.editorDiv || this.editorDiv.innerText.trim() === \"\";\n }\n remove() {\n this.isEditing = false;\n if (this.parent) {\n this.parent.setEditingState(true);\n this.parent.div.classList.add(\"freetextEditing\");\n }\n super.remove();\n }\n #extractText() {\n const buffer = [];\n this.editorDiv.normalize();\n for (const child of this.editorDiv.childNodes) {\n buffer.push(FreeTextEditor.#getNodeContent(child));\n }\n return buffer.join(\"\\n\");\n }\n #setEditorDimensions() {\n const [parentWidth, parentHeight] = this.parentDimensions;\n let rect;\n if (this.isAttachedToDOM) {\n rect = this.div.getBoundingClientRect();\n } else {\n const {\n currentLayer,\n div\n } = this;\n const savedDisplay = div.style.display;\n const savedVisibility = div.classList.contains(\"hidden\");\n div.classList.remove(\"hidden\");\n div.style.display = \"hidden\";\n currentLayer.div.append(this.div);\n rect = div.getBoundingClientRect();\n div.remove();\n div.style.display = savedDisplay;\n div.classList.toggle(\"hidden\", savedVisibility);\n }\n if (this.rotation % 180 === this.parentRotation % 180) {\n this.width = rect.width / parentWidth;\n this.height = rect.height / parentHeight;\n } else {\n this.width = rect.height / parentWidth;\n this.height = rect.width / parentHeight;\n }\n this.fixAndSetPosition();\n }\n commit() {\n if (!this.isInEditMode()) {\n return;\n }\n super.commit();\n this.disableEditMode();\n const savedText = this.#content;\n const newText = this.#content = this.#extractText().trimEnd();\n if (savedText === newText) {\n return;\n }\n const setText = text => {\n this.#content = text;\n if (!text) {\n this.remove();\n return;\n }\n this.#setContent();\n this._uiManager.rebuild(this);\n this.#setEditorDimensions();\n };\n this.addCommands({\n cmd: () => {\n setText(newText);\n },\n undo: () => {\n setText(savedText);\n },\n mustExec: false\n });\n this.#setEditorDimensions();\n }\n shouldGetKeyboardEvents() {\n return this.isInEditMode();\n }\n enterInEditMode() {\n this.enableEditMode();\n this.editorDiv.focus();\n }\n dblclick(event) {\n this.enterInEditMode();\n }\n keydown(event) {\n if (event.target === this.div && event.key === \"Enter\") {\n this.enterInEditMode();\n event.preventDefault();\n }\n }\n editorDivKeydown(event) {\n FreeTextEditor._keyboardManager.exec(this, event);\n }\n editorDivFocus(event) {\n this.isEditing = true;\n }\n editorDivBlur(event) {\n this.isEditing = false;\n }\n editorDivInput(event) {\n this.parent.div.classList.toggle(\"freetextEditing\", this.isEmpty());\n }\n disableEditing() {\n this.editorDiv.setAttribute(\"role\", \"comment\");\n this.editorDiv.removeAttribute(\"aria-multiline\");\n }\n enableEditing() {\n this.editorDiv.setAttribute(\"role\", \"textbox\");\n this.editorDiv.setAttribute(\"aria-multiline\", true);\n }\n render() {\n if (this.div) {\n return this.div;\n }\n let baseX, baseY;\n if (this.width) {\n baseX = this.x;\n baseY = this.y;\n }\n super.render();\n this.editorDiv = document.createElement(\"div\");\n this.editorDiv.className = \"internal\";\n this.editorDiv.setAttribute(\"id\", this.#editorDivId);\n this.editorDiv.setAttribute(\"data-l10n-id\", \"pdfjs-free-text\");\n this.enableEditing();\n AnnotationEditor._l10nPromise.get(\"pdfjs-free-text-default-content\").then(msg => this.editorDiv?.setAttribute(\"default-content\", msg));\n this.editorDiv.contentEditable = true;\n const {\n style\n } = this.editorDiv;\n style.fontSize = `calc(${this.#fontSize}px * var(--scale-factor))`;\n style.color = this.#color;\n this.div.append(this.editorDiv);\n this.overlayDiv = document.createElement(\"div\");\n this.overlayDiv.classList.add(\"overlay\", \"enabled\");\n this.div.append(this.overlayDiv);\n bindEvents(this, this.div, [\"dblclick\", \"keydown\"]);\n if (this.width) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n if (this.annotationElementId) {\n const {\n position\n } = this.#initialData;\n let [tx, ty] = this.getInitialTranslation();\n [tx, ty] = this.pageTranslationToScreen(tx, ty);\n const [pageWidth, pageHeight] = this.pageDimensions;\n const [pageX, pageY] = this.pageTranslation;\n let posX, posY;\n switch (this.rotation) {\n case 0:\n posX = baseX + (position[0] - pageX) / pageWidth;\n posY = baseY + this.height - (position[1] - pageY) / pageHeight;\n break;\n case 90:\n posX = baseX + (position[0] - pageX) / pageWidth;\n posY = baseY - (position[1] - pageY) / pageHeight;\n [tx, ty] = [ty, -tx];\n break;\n case 180:\n posX = baseX - this.width + (position[0] - pageX) / pageWidth;\n posY = baseY - (position[1] - pageY) / pageHeight;\n [tx, ty] = [-tx, -ty];\n break;\n case 270:\n posX = baseX + (position[0] - pageX - this.height * pageHeight) / pageWidth;\n posY = baseY + (position[1] - pageY - this.width * pageWidth) / pageHeight;\n [tx, ty] = [-ty, tx];\n break;\n }\n this.setAt(posX * parentWidth, posY * parentHeight, tx, ty);\n } else {\n this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight);\n }\n this.#setContent();\n this._isDraggable = true;\n this.editorDiv.contentEditable = false;\n } else {\n this._isDraggable = false;\n this.editorDiv.contentEditable = true;\n }\n return this.div;\n }\n static #getNodeContent(node) {\n return (node.nodeType === Node.TEXT_NODE ? node.nodeValue : node.innerText).replaceAll(EOL_PATTERN, \"\");\n }\n editorDivPaste(event) {\n const clipboardData = event.clipboardData || window.clipboardData;\n const {\n types\n } = clipboardData;\n if (types.length === 1 && types[0] === \"text/plain\") {\n return;\n }\n event.preventDefault();\n const paste = FreeTextEditor.#deserializeContent(clipboardData.getData(\"text\") || \"\").replaceAll(EOL_PATTERN, \"\\n\");\n if (!paste) {\n return;\n }\n const selection = window.getSelection();\n if (!selection.rangeCount) {\n return;\n }\n this.editorDiv.normalize();\n selection.deleteFromDocument();\n const range = selection.getRangeAt(0);\n if (!paste.includes(\"\\n\")) {\n range.insertNode(document.createTextNode(paste));\n this.editorDiv.normalize();\n selection.collapseToStart();\n return;\n }\n const {\n startContainer,\n startOffset\n } = range;\n const bufferBefore = [];\n const bufferAfter = [];\n if (startContainer.nodeType === Node.TEXT_NODE) {\n const parent = startContainer.parentElement;\n bufferAfter.push(startContainer.nodeValue.slice(startOffset).replaceAll(EOL_PATTERN, \"\"));\n if (parent !== this.editorDiv) {\n let buffer = bufferBefore;\n for (const child of this.editorDiv.childNodes) {\n if (child === parent) {\n buffer = bufferAfter;\n continue;\n }\n buffer.push(FreeTextEditor.#getNodeContent(child));\n }\n }\n bufferBefore.push(startContainer.nodeValue.slice(0, startOffset).replaceAll(EOL_PATTERN, \"\"));\n } else if (startContainer === this.editorDiv) {\n let buffer = bufferBefore;\n let i = 0;\n for (const child of this.editorDiv.childNodes) {\n if (i++ === startOffset) {\n buffer = bufferAfter;\n }\n buffer.push(FreeTextEditor.#getNodeContent(child));\n }\n }\n this.#content = `${bufferBefore.join(\"\\n\")}${paste}${bufferAfter.join(\"\\n\")}`;\n this.#setContent();\n const newRange = new Range();\n let beforeLength = bufferBefore.reduce((acc, line) => acc + line.length, 0);\n for (const {\n firstChild\n } of this.editorDiv.childNodes) {\n if (firstChild.nodeType === Node.TEXT_NODE) {\n const length = firstChild.nodeValue.length;\n if (beforeLength <= length) {\n newRange.setStart(firstChild, beforeLength);\n newRange.setEnd(firstChild, beforeLength);\n break;\n }\n beforeLength -= length;\n }\n }\n selection.removeAllRanges();\n selection.addRange(newRange);\n }\n #setContent() {\n this.editorDiv.replaceChildren();\n if (!this.#content) {\n return;\n }\n for (const line of this.#content.split(\"\\n\")) {\n const div = document.createElement(\"div\");\n div.append(line ? document.createTextNode(line) : document.createElement(\"br\"));\n this.editorDiv.append(div);\n }\n }\n #serializeContent() {\n return this.#content.replaceAll(\"\\xa0\", \" \");\n }\n static #deserializeContent(content) {\n return content.replaceAll(\" \", \"\\xa0\");\n }\n get contentDiv() {\n return this.editorDiv;\n }\n static deserialize(data, parent, uiManager) {\n let initialData = null;\n if (data instanceof FreeTextAnnotationElement) {\n const {\n data: {\n defaultAppearanceData: {\n fontSize,\n fontColor\n },\n rect,\n rotation,\n id\n },\n textContent,\n textPosition,\n parent: {\n page: {\n pageNumber\n }\n }\n } = data;\n if (!textContent || textContent.length === 0) {\n return null;\n }\n initialData = data = {\n annotationType: AnnotationEditorType.FREETEXT,\n color: Array.from(fontColor),\n fontSize,\n value: textContent.join(\"\\n\"),\n position: textPosition,\n pageIndex: pageNumber - 1,\n rect: rect.slice(0),\n rotation,\n id,\n deleted: false\n };\n }\n const editor = super.deserialize(data, parent, uiManager);\n editor.#fontSize = data.fontSize;\n editor.#color = Util.makeHexColor(...data.color);\n editor.#content = FreeTextEditor.#deserializeContent(data.value);\n editor.annotationElementId = data.id || null;\n editor.#initialData = initialData;\n return editor;\n }\n serialize(isForCopying = false) {\n if (this.isEmpty()) {\n return null;\n }\n if (this.deleted) {\n return {\n pageIndex: this.pageIndex,\n id: this.annotationElementId,\n deleted: true\n };\n }\n const padding = FreeTextEditor._internalPadding * this.parentScale;\n const rect = this.getRect(padding, padding);\n const color = AnnotationEditor._colorManager.convert(this.isAttachedToDOM ? getComputedStyle(this.editorDiv).color : this.#color);\n const serialized = {\n annotationType: AnnotationEditorType.FREETEXT,\n color,\n fontSize: this.#fontSize,\n value: this.#serializeContent(),\n pageIndex: this.pageIndex,\n rect,\n rotation: this.rotation,\n structTreeParentId: this._structTreeParentId\n };\n if (isForCopying) {\n return serialized;\n }\n if (this.annotationElementId && !this.#hasElementChanged(serialized)) {\n return null;\n }\n serialized.id = this.annotationElementId;\n return serialized;\n }\n #hasElementChanged(serialized) {\n const {\n value,\n fontSize,\n color,\n pageIndex\n } = this.#initialData;\n return this._hasBeenMoved || serialized.value !== value || serialized.fontSize !== fontSize || serialized.color.some((c, i) => c !== color[i]) || serialized.pageIndex !== pageIndex;\n }\n renderAnnotationElement(annotation) {\n const content = super.renderAnnotationElement(annotation);\n if (this.deleted) {\n return content;\n }\n const {\n style\n } = content;\n style.fontSize = `calc(${this.#fontSize}px * var(--scale-factor))`;\n style.color = this.#color;\n content.replaceChildren();\n for (const line of this.#content.split(\"\\n\")) {\n const div = document.createElement(\"div\");\n div.append(line ? document.createTextNode(line) : document.createElement(\"br\"));\n content.append(div);\n }\n const padding = FreeTextEditor._internalPadding * this.parentScale;\n annotation.updateEdited({\n rect: this.getRect(padding, padding),\n popupContent: this.#content\n });\n return content;\n }\n resetAnnotationElement(annotation) {\n super.resetAnnotationElement(annotation);\n annotation.resetEdited();\n }\n}\n\n;// CONCATENATED MODULE: ./src/display/editor/outliner.js\n\nclass Outliner {\n #box;\n #verticalEdges = [];\n #intervals = [];\n constructor(boxes, borderWidth = 0, innerMargin = 0, isLTR = true) {\n let minX = Infinity;\n let maxX = -Infinity;\n let minY = Infinity;\n let maxY = -Infinity;\n const NUMBER_OF_DIGITS = 4;\n const EPSILON = 10 ** -NUMBER_OF_DIGITS;\n for (const {\n x,\n y,\n width,\n height\n } of boxes) {\n const x1 = Math.floor((x - borderWidth) / EPSILON) * EPSILON;\n const x2 = Math.ceil((x + width + borderWidth) / EPSILON) * EPSILON;\n const y1 = Math.floor((y - borderWidth) / EPSILON) * EPSILON;\n const y2 = Math.ceil((y + height + borderWidth) / EPSILON) * EPSILON;\n const left = [x1, y1, y2, true];\n const right = [x2, y1, y2, false];\n this.#verticalEdges.push(left, right);\n minX = Math.min(minX, x1);\n maxX = Math.max(maxX, x2);\n minY = Math.min(minY, y1);\n maxY = Math.max(maxY, y2);\n }\n const bboxWidth = maxX - minX + 2 * innerMargin;\n const bboxHeight = maxY - minY + 2 * innerMargin;\n const shiftedMinX = minX - innerMargin;\n const shiftedMinY = minY - innerMargin;\n const lastEdge = this.#verticalEdges.at(isLTR ? -1 : -2);\n const lastPoint = [lastEdge[0], lastEdge[2]];\n for (const edge of this.#verticalEdges) {\n const [x, y1, y2] = edge;\n edge[0] = (x - shiftedMinX) / bboxWidth;\n edge[1] = (y1 - shiftedMinY) / bboxHeight;\n edge[2] = (y2 - shiftedMinY) / bboxHeight;\n }\n this.#box = {\n x: shiftedMinX,\n y: shiftedMinY,\n width: bboxWidth,\n height: bboxHeight,\n lastPoint\n };\n }\n getOutlines() {\n this.#verticalEdges.sort((a, b) => a[0] - b[0] || a[1] - b[1] || a[2] - b[2]);\n const outlineVerticalEdges = [];\n for (const edge of this.#verticalEdges) {\n if (edge[3]) {\n outlineVerticalEdges.push(...this.#breakEdge(edge));\n this.#insert(edge);\n } else {\n this.#remove(edge);\n outlineVerticalEdges.push(...this.#breakEdge(edge));\n }\n }\n return this.#getOutlines(outlineVerticalEdges);\n }\n #getOutlines(outlineVerticalEdges) {\n const edges = [];\n const allEdges = new Set();\n for (const edge of outlineVerticalEdges) {\n const [x, y1, y2] = edge;\n edges.push([x, y1, edge], [x, y2, edge]);\n }\n edges.sort((a, b) => a[1] - b[1] || a[0] - b[0]);\n for (let i = 0, ii = edges.length; i < ii; i += 2) {\n const edge1 = edges[i][2];\n const edge2 = edges[i + 1][2];\n edge1.push(edge2);\n edge2.push(edge1);\n allEdges.add(edge1);\n allEdges.add(edge2);\n }\n const outlines = [];\n let outline;\n while (allEdges.size > 0) {\n const edge = allEdges.values().next().value;\n let [x, y1, y2, edge1, edge2] = edge;\n allEdges.delete(edge);\n let lastPointX = x;\n let lastPointY = y1;\n outline = [x, y2];\n outlines.push(outline);\n while (true) {\n let e;\n if (allEdges.has(edge1)) {\n e = edge1;\n } else if (allEdges.has(edge2)) {\n e = edge2;\n } else {\n break;\n }\n allEdges.delete(e);\n [x, y1, y2, edge1, edge2] = e;\n if (lastPointX !== x) {\n outline.push(lastPointX, lastPointY, x, lastPointY === y1 ? y1 : y2);\n lastPointX = x;\n }\n lastPointY = lastPointY === y1 ? y2 : y1;\n }\n outline.push(lastPointX, lastPointY);\n }\n return new HighlightOutline(outlines, this.#box);\n }\n #binarySearch(y) {\n const array = this.#intervals;\n let start = 0;\n let end = array.length - 1;\n while (start <= end) {\n const middle = start + end >> 1;\n const y1 = array[middle][0];\n if (y1 === y) {\n return middle;\n }\n if (y1 < y) {\n start = middle + 1;\n } else {\n end = middle - 1;\n }\n }\n return end + 1;\n }\n #insert([, y1, y2]) {\n const index = this.#binarySearch(y1);\n this.#intervals.splice(index, 0, [y1, y2]);\n }\n #remove([, y1, y2]) {\n const index = this.#binarySearch(y1);\n for (let i = index; i < this.#intervals.length; i++) {\n const [start, end] = this.#intervals[i];\n if (start !== y1) {\n break;\n }\n if (start === y1 && end === y2) {\n this.#intervals.splice(i, 1);\n return;\n }\n }\n for (let i = index - 1; i >= 0; i--) {\n const [start, end] = this.#intervals[i];\n if (start !== y1) {\n break;\n }\n if (start === y1 && end === y2) {\n this.#intervals.splice(i, 1);\n return;\n }\n }\n }\n #breakEdge(edge) {\n const [x, y1, y2] = edge;\n const results = [[x, y1, y2]];\n const index = this.#binarySearch(y2);\n for (let i = 0; i < index; i++) {\n const [start, end] = this.#intervals[i];\n for (let j = 0, jj = results.length; j < jj; j++) {\n const [, y3, y4] = results[j];\n if (end <= y3 || y4 <= start) {\n continue;\n }\n if (y3 >= start) {\n if (y4 > end) {\n results[j][1] = end;\n } else {\n if (jj === 1) {\n return [];\n }\n results.splice(j, 1);\n j--;\n jj--;\n }\n continue;\n }\n results[j][2] = start;\n if (y4 > end) {\n results.push([x, end, y4]);\n }\n }\n }\n return results;\n }\n}\nclass Outline {\n toSVGPath() {\n throw new Error(\"Abstract method `toSVGPath` must be implemented.\");\n }\n get box() {\n throw new Error(\"Abstract getter `box` must be implemented.\");\n }\n serialize(_bbox, _rotation) {\n throw new Error(\"Abstract method `serialize` must be implemented.\");\n }\n get free() {\n return this instanceof FreeHighlightOutline;\n }\n}\nclass HighlightOutline extends Outline {\n #box;\n #outlines;\n constructor(outlines, box) {\n super();\n this.#outlines = outlines;\n this.#box = box;\n }\n toSVGPath() {\n const buffer = [];\n for (const polygon of this.#outlines) {\n let [prevX, prevY] = polygon;\n buffer.push(`M${prevX} ${prevY}`);\n for (let i = 2; i < polygon.length; i += 2) {\n const x = polygon[i];\n const y = polygon[i + 1];\n if (x === prevX) {\n buffer.push(`V${y}`);\n prevY = y;\n } else if (y === prevY) {\n buffer.push(`H${x}`);\n prevX = x;\n }\n }\n buffer.push(\"Z\");\n }\n return buffer.join(\" \");\n }\n serialize([blX, blY, trX, trY], _rotation) {\n const outlines = [];\n const width = trX - blX;\n const height = trY - blY;\n for (const outline of this.#outlines) {\n const points = new Array(outline.length);\n for (let i = 0; i < outline.length; i += 2) {\n points[i] = blX + outline[i] * width;\n points[i + 1] = trY - outline[i + 1] * height;\n }\n outlines.push(points);\n }\n return outlines;\n }\n get box() {\n return this.#box;\n }\n}\nclass FreeOutliner {\n #box;\n #bottom = [];\n #innerMargin;\n #isLTR;\n #top = [];\n #last = new Float64Array(18);\n #lastX;\n #lastY;\n #min;\n #min_dist;\n #scaleFactor;\n #thickness;\n #points = [];\n static #MIN_DIST = 8;\n static #MIN_DIFF = 2;\n static #MIN = FreeOutliner.#MIN_DIST + FreeOutliner.#MIN_DIFF;\n constructor({\n x,\n y\n }, box, scaleFactor, thickness, isLTR, innerMargin = 0) {\n this.#box = box;\n this.#thickness = thickness * scaleFactor;\n this.#isLTR = isLTR;\n this.#last.set([NaN, NaN, NaN, NaN, x, y], 6);\n this.#innerMargin = innerMargin;\n this.#min_dist = FreeOutliner.#MIN_DIST * scaleFactor;\n this.#min = FreeOutliner.#MIN * scaleFactor;\n this.#scaleFactor = scaleFactor;\n this.#points.push(x, y);\n }\n get free() {\n return true;\n }\n isEmpty() {\n return isNaN(this.#last[8]);\n }\n #getLastCoords() {\n const lastTop = this.#last.subarray(4, 6);\n const lastBottom = this.#last.subarray(16, 18);\n const [x, y, width, height] = this.#box;\n return [(this.#lastX + (lastTop[0] - lastBottom[0]) / 2 - x) / width, (this.#lastY + (lastTop[1] - lastBottom[1]) / 2 - y) / height, (this.#lastX + (lastBottom[0] - lastTop[0]) / 2 - x) / width, (this.#lastY + (lastBottom[1] - lastTop[1]) / 2 - y) / height];\n }\n add({\n x,\n y\n }) {\n this.#lastX = x;\n this.#lastY = y;\n const [layerX, layerY, layerWidth, layerHeight] = this.#box;\n let [x1, y1, x2, y2] = this.#last.subarray(8, 12);\n const diffX = x - x2;\n const diffY = y - y2;\n const d = Math.hypot(diffX, diffY);\n if (d < this.#min) {\n return false;\n }\n const diffD = d - this.#min_dist;\n const K = diffD / d;\n const shiftX = K * diffX;\n const shiftY = K * diffY;\n let x0 = x1;\n let y0 = y1;\n x1 = x2;\n y1 = y2;\n x2 += shiftX;\n y2 += shiftY;\n this.#points?.push(x, y);\n const nX = -shiftY / diffD;\n const nY = shiftX / diffD;\n const thX = nX * this.#thickness;\n const thY = nY * this.#thickness;\n this.#last.set(this.#last.subarray(2, 8), 0);\n this.#last.set([x2 + thX, y2 + thY], 4);\n this.#last.set(this.#last.subarray(14, 18), 12);\n this.#last.set([x2 - thX, y2 - thY], 16);\n if (isNaN(this.#last[6])) {\n if (this.#top.length === 0) {\n this.#last.set([x1 + thX, y1 + thY], 2);\n this.#top.push(NaN, NaN, NaN, NaN, (x1 + thX - layerX) / layerWidth, (y1 + thY - layerY) / layerHeight);\n this.#last.set([x1 - thX, y1 - thY], 14);\n this.#bottom.push(NaN, NaN, NaN, NaN, (x1 - thX - layerX) / layerWidth, (y1 - thY - layerY) / layerHeight);\n }\n this.#last.set([x0, y0, x1, y1, x2, y2], 6);\n return !this.isEmpty();\n }\n this.#last.set([x0, y0, x1, y1, x2, y2], 6);\n const angle = Math.abs(Math.atan2(y0 - y1, x0 - x1) - Math.atan2(shiftY, shiftX));\n if (angle < Math.PI / 2) {\n [x1, y1, x2, y2] = this.#last.subarray(2, 6);\n this.#top.push(NaN, NaN, NaN, NaN, ((x1 + x2) / 2 - layerX) / layerWidth, ((y1 + y2) / 2 - layerY) / layerHeight);\n [x1, y1, x0, y0] = this.#last.subarray(14, 18);\n this.#bottom.push(NaN, NaN, NaN, NaN, ((x0 + x1) / 2 - layerX) / layerWidth, ((y0 + y1) / 2 - layerY) / layerHeight);\n return true;\n }\n [x0, y0, x1, y1, x2, y2] = this.#last.subarray(0, 6);\n this.#top.push(((x0 + 5 * x1) / 6 - layerX) / layerWidth, ((y0 + 5 * y1) / 6 - layerY) / layerHeight, ((5 * x1 + x2) / 6 - layerX) / layerWidth, ((5 * y1 + y2) / 6 - layerY) / layerHeight, ((x1 + x2) / 2 - layerX) / layerWidth, ((y1 + y2) / 2 - layerY) / layerHeight);\n [x2, y2, x1, y1, x0, y0] = this.#last.subarray(12, 18);\n this.#bottom.push(((x0 + 5 * x1) / 6 - layerX) / layerWidth, ((y0 + 5 * y1) / 6 - layerY) / layerHeight, ((5 * x1 + x2) / 6 - layerX) / layerWidth, ((5 * y1 + y2) / 6 - layerY) / layerHeight, ((x1 + x2) / 2 - layerX) / layerWidth, ((y1 + y2) / 2 - layerY) / layerHeight);\n return true;\n }\n toSVGPath() {\n if (this.isEmpty()) {\n return \"\";\n }\n const top = this.#top;\n const bottom = this.#bottom;\n const lastTop = this.#last.subarray(4, 6);\n const lastBottom = this.#last.subarray(16, 18);\n const [x, y, width, height] = this.#box;\n const [lastTopX, lastTopY, lastBottomX, lastBottomY] = this.#getLastCoords();\n if (isNaN(this.#last[6]) && !this.isEmpty()) {\n return `M${(this.#last[2] - x) / width} ${(this.#last[3] - y) / height} L${(this.#last[4] - x) / width} ${(this.#last[5] - y) / height} L${lastTopX} ${lastTopY} L${lastBottomX} ${lastBottomY} L${(this.#last[16] - x) / width} ${(this.#last[17] - y) / height} L${(this.#last[14] - x) / width} ${(this.#last[15] - y) / height} Z`;\n }\n const buffer = [];\n buffer.push(`M${top[4]} ${top[5]}`);\n for (let i = 6; i < top.length; i += 6) {\n if (isNaN(top[i])) {\n buffer.push(`L${top[i + 4]} ${top[i + 5]}`);\n } else {\n buffer.push(`C${top[i]} ${top[i + 1]} ${top[i + 2]} ${top[i + 3]} ${top[i + 4]} ${top[i + 5]}`);\n }\n }\n buffer.push(`L${(lastTop[0] - x) / width} ${(lastTop[1] - y) / height} L${lastTopX} ${lastTopY} L${lastBottomX} ${lastBottomY} L${(lastBottom[0] - x) / width} ${(lastBottom[1] - y) / height}`);\n for (let i = bottom.length - 6; i >= 6; i -= 6) {\n if (isNaN(bottom[i])) {\n buffer.push(`L${bottom[i + 4]} ${bottom[i + 5]}`);\n } else {\n buffer.push(`C${bottom[i]} ${bottom[i + 1]} ${bottom[i + 2]} ${bottom[i + 3]} ${bottom[i + 4]} ${bottom[i + 5]}`);\n }\n }\n buffer.push(`L${bottom[4]} ${bottom[5]} Z`);\n return buffer.join(\" \");\n }\n getOutlines() {\n const top = this.#top;\n const bottom = this.#bottom;\n const last = this.#last;\n const lastTop = last.subarray(4, 6);\n const lastBottom = last.subarray(16, 18);\n const [layerX, layerY, layerWidth, layerHeight] = this.#box;\n const points = new Float64Array((this.#points?.length ?? 0) + 2);\n for (let i = 0, ii = points.length - 2; i < ii; i += 2) {\n points[i] = (this.#points[i] - layerX) / layerWidth;\n points[i + 1] = (this.#points[i + 1] - layerY) / layerHeight;\n }\n points[points.length - 2] = (this.#lastX - layerX) / layerWidth;\n points[points.length - 1] = (this.#lastY - layerY) / layerHeight;\n const [lastTopX, lastTopY, lastBottomX, lastBottomY] = this.#getLastCoords();\n if (isNaN(last[6]) && !this.isEmpty()) {\n const outline = new Float64Array(36);\n outline.set([NaN, NaN, NaN, NaN, (last[2] - layerX) / layerWidth, (last[3] - layerY) / layerHeight, NaN, NaN, NaN, NaN, (last[4] - layerX) / layerWidth, (last[5] - layerY) / layerHeight, NaN, NaN, NaN, NaN, lastTopX, lastTopY, NaN, NaN, NaN, NaN, lastBottomX, lastBottomY, NaN, NaN, NaN, NaN, (last[16] - layerX) / layerWidth, (last[17] - layerY) / layerHeight, NaN, NaN, NaN, NaN, (last[14] - layerX) / layerWidth, (last[15] - layerY) / layerHeight], 0);\n return new FreeHighlightOutline(outline, points, this.#box, this.#scaleFactor, this.#innerMargin, this.#isLTR);\n }\n const outline = new Float64Array(this.#top.length + 24 + this.#bottom.length);\n let N = top.length;\n for (let i = 0; i < N; i += 2) {\n if (isNaN(top[i])) {\n outline[i] = outline[i + 1] = NaN;\n continue;\n }\n outline[i] = top[i];\n outline[i + 1] = top[i + 1];\n }\n outline.set([NaN, NaN, NaN, NaN, (lastTop[0] - layerX) / layerWidth, (lastTop[1] - layerY) / layerHeight, NaN, NaN, NaN, NaN, lastTopX, lastTopY, NaN, NaN, NaN, NaN, lastBottomX, lastBottomY, NaN, NaN, NaN, NaN, (lastBottom[0] - layerX) / layerWidth, (lastBottom[1] - layerY) / layerHeight], N);\n N += 24;\n for (let i = bottom.length - 6; i >= 6; i -= 6) {\n for (let j = 0; j < 6; j += 2) {\n if (isNaN(bottom[i + j])) {\n outline[N] = outline[N + 1] = NaN;\n N += 2;\n continue;\n }\n outline[N] = bottom[i + j];\n outline[N + 1] = bottom[i + j + 1];\n N += 2;\n }\n }\n outline.set([NaN, NaN, NaN, NaN, bottom[4], bottom[5]], N);\n return new FreeHighlightOutline(outline, points, this.#box, this.#scaleFactor, this.#innerMargin, this.#isLTR);\n }\n}\nclass FreeHighlightOutline extends Outline {\n #box;\n #bbox = null;\n #innerMargin;\n #isLTR;\n #points;\n #scaleFactor;\n #outline;\n constructor(outline, points, box, scaleFactor, innerMargin, isLTR) {\n super();\n this.#outline = outline;\n this.#points = points;\n this.#box = box;\n this.#scaleFactor = scaleFactor;\n this.#innerMargin = innerMargin;\n this.#isLTR = isLTR;\n this.#computeMinMax(isLTR);\n const {\n x,\n y,\n width,\n height\n } = this.#bbox;\n for (let i = 0, ii = outline.length; i < ii; i += 2) {\n outline[i] = (outline[i] - x) / width;\n outline[i + 1] = (outline[i + 1] - y) / height;\n }\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n points[i] = (points[i] - x) / width;\n points[i + 1] = (points[i + 1] - y) / height;\n }\n }\n toSVGPath() {\n const buffer = [`M${this.#outline[4]} ${this.#outline[5]}`];\n for (let i = 6, ii = this.#outline.length; i < ii; i += 6) {\n if (isNaN(this.#outline[i])) {\n buffer.push(`L${this.#outline[i + 4]} ${this.#outline[i + 5]}`);\n continue;\n }\n buffer.push(`C${this.#outline[i]} ${this.#outline[i + 1]} ${this.#outline[i + 2]} ${this.#outline[i + 3]} ${this.#outline[i + 4]} ${this.#outline[i + 5]}`);\n }\n buffer.push(\"Z\");\n return buffer.join(\" \");\n }\n serialize([blX, blY, trX, trY], rotation) {\n const width = trX - blX;\n const height = trY - blY;\n let outline;\n let points;\n switch (rotation) {\n case 0:\n outline = this.#rescale(this.#outline, blX, trY, width, -height);\n points = this.#rescale(this.#points, blX, trY, width, -height);\n break;\n case 90:\n outline = this.#rescaleAndSwap(this.#outline, blX, blY, width, height);\n points = this.#rescaleAndSwap(this.#points, blX, blY, width, height);\n break;\n case 180:\n outline = this.#rescale(this.#outline, trX, blY, -width, height);\n points = this.#rescale(this.#points, trX, blY, -width, height);\n break;\n case 270:\n outline = this.#rescaleAndSwap(this.#outline, trX, trY, -width, -height);\n points = this.#rescaleAndSwap(this.#points, trX, trY, -width, -height);\n break;\n }\n return {\n outline: Array.from(outline),\n points: [Array.from(points)]\n };\n }\n #rescale(src, tx, ty, sx, sy) {\n const dest = new Float64Array(src.length);\n for (let i = 0, ii = src.length; i < ii; i += 2) {\n dest[i] = tx + src[i] * sx;\n dest[i + 1] = ty + src[i + 1] * sy;\n }\n return dest;\n }\n #rescaleAndSwap(src, tx, ty, sx, sy) {\n const dest = new Float64Array(src.length);\n for (let i = 0, ii = src.length; i < ii; i += 2) {\n dest[i] = tx + src[i + 1] * sx;\n dest[i + 1] = ty + src[i] * sy;\n }\n return dest;\n }\n #computeMinMax(isLTR) {\n const outline = this.#outline;\n let lastX = outline[4];\n let lastY = outline[5];\n let minX = lastX;\n let minY = lastY;\n let maxX = lastX;\n let maxY = lastY;\n let lastPointX = lastX;\n let lastPointY = lastY;\n const ltrCallback = isLTR ? Math.max : Math.min;\n for (let i = 6, ii = outline.length; i < ii; i += 6) {\n if (isNaN(outline[i])) {\n minX = Math.min(minX, outline[i + 4]);\n minY = Math.min(minY, outline[i + 5]);\n maxX = Math.max(maxX, outline[i + 4]);\n maxY = Math.max(maxY, outline[i + 5]);\n if (lastPointY < outline[i + 5]) {\n lastPointX = outline[i + 4];\n lastPointY = outline[i + 5];\n } else if (lastPointY === outline[i + 5]) {\n lastPointX = ltrCallback(lastPointX, outline[i + 4]);\n }\n } else {\n const bbox = Util.bezierBoundingBox(lastX, lastY, ...outline.slice(i, i + 6));\n minX = Math.min(minX, bbox[0]);\n minY = Math.min(minY, bbox[1]);\n maxX = Math.max(maxX, bbox[2]);\n maxY = Math.max(maxY, bbox[3]);\n if (lastPointY < bbox[3]) {\n lastPointX = bbox[2];\n lastPointY = bbox[3];\n } else if (lastPointY === bbox[3]) {\n lastPointX = ltrCallback(lastPointX, bbox[2]);\n }\n }\n lastX = outline[i + 4];\n lastY = outline[i + 5];\n }\n const x = minX - this.#innerMargin,\n y = minY - this.#innerMargin,\n width = maxX - minX + 2 * this.#innerMargin,\n height = maxY - minY + 2 * this.#innerMargin;\n this.#bbox = {\n x,\n y,\n width,\n height,\n lastPoint: [lastPointX, lastPointY]\n };\n }\n get box() {\n return this.#bbox;\n }\n getNewOutline(thickness, innerMargin) {\n const {\n x,\n y,\n width,\n height\n } = this.#bbox;\n const [layerX, layerY, layerWidth, layerHeight] = this.#box;\n const sx = width * layerWidth;\n const sy = height * layerHeight;\n const tx = x * layerWidth + layerX;\n const ty = y * layerHeight + layerY;\n const outliner = new FreeOutliner({\n x: this.#points[0] * sx + tx,\n y: this.#points[1] * sy + ty\n }, this.#box, this.#scaleFactor, thickness, this.#isLTR, innerMargin ?? this.#innerMargin);\n for (let i = 2; i < this.#points.length; i += 2) {\n outliner.add({\n x: this.#points[i] * sx + tx,\n y: this.#points[i + 1] * sy + ty\n });\n }\n return outliner.getOutlines();\n }\n}\n\n;// CONCATENATED MODULE: ./src/display/editor/color_picker.js\n\n\n\nclass ColorPicker {\n #boundKeyDown = this.#keyDown.bind(this);\n #boundPointerDown = this.#pointerDown.bind(this);\n #button = null;\n #buttonSwatch = null;\n #defaultColor;\n #dropdown = null;\n #dropdownWasFromKeyboard = false;\n #isMainColorPicker = false;\n #editor = null;\n #eventBus;\n #uiManager = null;\n #type;\n static get _keyboardManager() {\n return shadow(this, \"_keyboardManager\", new KeyboardManager([[[\"Escape\", \"mac+Escape\"], ColorPicker.prototype._hideDropdownFromKeyboard], [[\" \", \"mac+ \"], ColorPicker.prototype._colorSelectFromKeyboard], [[\"ArrowDown\", \"ArrowRight\", \"mac+ArrowDown\", \"mac+ArrowRight\"], ColorPicker.prototype._moveToNext], [[\"ArrowUp\", \"ArrowLeft\", \"mac+ArrowUp\", \"mac+ArrowLeft\"], ColorPicker.prototype._moveToPrevious], [[\"Home\", \"mac+Home\"], ColorPicker.prototype._moveToBeginning], [[\"End\", \"mac+End\"], ColorPicker.prototype._moveToEnd]]));\n }\n constructor({\n editor = null,\n uiManager = null\n }) {\n if (editor) {\n this.#isMainColorPicker = false;\n this.#type = AnnotationEditorParamsType.HIGHLIGHT_COLOR;\n this.#editor = editor;\n } else {\n this.#isMainColorPicker = true;\n this.#type = AnnotationEditorParamsType.HIGHLIGHT_DEFAULT_COLOR;\n }\n this.#uiManager = editor?._uiManager || uiManager;\n this.#eventBus = this.#uiManager._eventBus;\n this.#defaultColor = editor?.color || this.#uiManager?.highlightColors.values().next().value || \"#FFFF98\";\n }\n renderButton() {\n const button = this.#button = document.createElement(\"button\");\n button.className = \"colorPicker\";\n button.tabIndex = \"0\";\n button.setAttribute(\"data-l10n-id\", \"pdfjs-editor-colorpicker-button\");\n button.setAttribute(\"aria-haspopup\", true);\n const signal = this.#uiManager._signal;\n button.addEventListener(\"click\", this.#openDropdown.bind(this), {\n signal\n });\n button.addEventListener(\"keydown\", this.#boundKeyDown, {\n signal\n });\n const swatch = this.#buttonSwatch = document.createElement(\"span\");\n swatch.className = \"swatch\";\n swatch.setAttribute(\"aria-hidden\", true);\n swatch.style.backgroundColor = this.#defaultColor;\n button.append(swatch);\n return button;\n }\n renderMainDropdown() {\n const dropdown = this.#dropdown = this.#getDropdownRoot();\n dropdown.setAttribute(\"aria-orientation\", \"horizontal\");\n dropdown.setAttribute(\"aria-labelledby\", \"highlightColorPickerLabel\");\n return dropdown;\n }\n #getDropdownRoot() {\n const div = document.createElement(\"div\");\n const signal = this.#uiManager._signal;\n div.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n div.className = \"dropdown\";\n div.role = \"listbox\";\n div.setAttribute(\"aria-multiselectable\", false);\n div.setAttribute(\"aria-orientation\", \"vertical\");\n div.setAttribute(\"data-l10n-id\", \"pdfjs-editor-colorpicker-dropdown\");\n for (const [name, color] of this.#uiManager.highlightColors) {\n const button = document.createElement(\"button\");\n button.tabIndex = \"0\";\n button.role = \"option\";\n button.setAttribute(\"data-color\", color);\n button.title = name;\n button.setAttribute(\"data-l10n-id\", `pdfjs-editor-colorpicker-${name}`);\n const swatch = document.createElement(\"span\");\n button.append(swatch);\n swatch.className = \"swatch\";\n swatch.style.backgroundColor = color;\n button.setAttribute(\"aria-selected\", color === this.#defaultColor);\n button.addEventListener(\"click\", this.#colorSelect.bind(this, color), {\n signal\n });\n div.append(button);\n }\n div.addEventListener(\"keydown\", this.#boundKeyDown, {\n signal\n });\n return div;\n }\n #colorSelect(color, event) {\n event.stopPropagation();\n this.#eventBus.dispatch(\"switchannotationeditorparams\", {\n source: this,\n type: this.#type,\n value: color\n });\n }\n _colorSelectFromKeyboard(event) {\n if (event.target === this.#button) {\n this.#openDropdown(event);\n return;\n }\n const color = event.target.getAttribute(\"data-color\");\n if (!color) {\n return;\n }\n this.#colorSelect(color, event);\n }\n _moveToNext(event) {\n if (!this.#isDropdownVisible) {\n this.#openDropdown(event);\n return;\n }\n if (event.target === this.#button) {\n this.#dropdown.firstChild?.focus();\n return;\n }\n event.target.nextSibling?.focus();\n }\n _moveToPrevious(event) {\n if (event.target === this.#dropdown?.firstChild || event.target === this.#button) {\n if (this.#isDropdownVisible) {\n this._hideDropdownFromKeyboard();\n }\n return;\n }\n if (!this.#isDropdownVisible) {\n this.#openDropdown(event);\n }\n event.target.previousSibling?.focus();\n }\n _moveToBeginning(event) {\n if (!this.#isDropdownVisible) {\n this.#openDropdown(event);\n return;\n }\n this.#dropdown.firstChild?.focus();\n }\n _moveToEnd(event) {\n if (!this.#isDropdownVisible) {\n this.#openDropdown(event);\n return;\n }\n this.#dropdown.lastChild?.focus();\n }\n #keyDown(event) {\n ColorPicker._keyboardManager.exec(this, event);\n }\n #openDropdown(event) {\n if (this.#isDropdownVisible) {\n this.hideDropdown();\n return;\n }\n this.#dropdownWasFromKeyboard = event.detail === 0;\n window.addEventListener(\"pointerdown\", this.#boundPointerDown, {\n signal: this.#uiManager._signal\n });\n if (this.#dropdown) {\n this.#dropdown.classList.remove(\"hidden\");\n return;\n }\n const root = this.#dropdown = this.#getDropdownRoot();\n this.#button.append(root);\n }\n #pointerDown(event) {\n if (this.#dropdown?.contains(event.target)) {\n return;\n }\n this.hideDropdown();\n }\n hideDropdown() {\n this.#dropdown?.classList.add(\"hidden\");\n window.removeEventListener(\"pointerdown\", this.#boundPointerDown);\n }\n get #isDropdownVisible() {\n return this.#dropdown && !this.#dropdown.classList.contains(\"hidden\");\n }\n _hideDropdownFromKeyboard() {\n if (this.#isMainColorPicker) {\n return;\n }\n if (!this.#isDropdownVisible) {\n this.#editor?.unselect();\n return;\n }\n this.hideDropdown();\n this.#button.focus({\n preventScroll: true,\n focusVisible: this.#dropdownWasFromKeyboard\n });\n }\n updateColor(color) {\n if (this.#buttonSwatch) {\n this.#buttonSwatch.style.backgroundColor = color;\n }\n if (!this.#dropdown) {\n return;\n }\n const i = this.#uiManager.highlightColors.values();\n for (const child of this.#dropdown.children) {\n child.setAttribute(\"aria-selected\", i.next().value === color);\n }\n }\n destroy() {\n this.#button?.remove();\n this.#button = null;\n this.#buttonSwatch = null;\n this.#dropdown?.remove();\n this.#dropdown = null;\n }\n}\n\n;// CONCATENATED MODULE: ./src/display/editor/highlight.js\n\n\n\n\n\n\nclass HighlightEditor extends AnnotationEditor {\n #anchorNode = null;\n #anchorOffset = 0;\n #boxes;\n #clipPathId = null;\n #colorPicker = null;\n #focusOutlines = null;\n #focusNode = null;\n #focusOffset = 0;\n #highlightDiv = null;\n #highlightOutlines = null;\n #id = null;\n #isFreeHighlight = false;\n #boundKeydown = this.#keydown.bind(this);\n #lastPoint = null;\n #opacity;\n #outlineId = null;\n #text = \"\";\n #thickness;\n #methodOfCreation = \"\";\n static _defaultColor = null;\n static _defaultOpacity = 1;\n static _defaultThickness = 12;\n static _l10nPromise;\n static _type = \"highlight\";\n static _editorType = AnnotationEditorType.HIGHLIGHT;\n static _freeHighlightId = -1;\n static _freeHighlight = null;\n static _freeHighlightClipId = \"\";\n static get _keyboardManager() {\n const proto = HighlightEditor.prototype;\n return shadow(this, \"_keyboardManager\", new KeyboardManager([[[\"ArrowLeft\", \"mac+ArrowLeft\"], proto._moveCaret, {\n args: [0]\n }], [[\"ArrowRight\", \"mac+ArrowRight\"], proto._moveCaret, {\n args: [1]\n }], [[\"ArrowUp\", \"mac+ArrowUp\"], proto._moveCaret, {\n args: [2]\n }], [[\"ArrowDown\", \"mac+ArrowDown\"], proto._moveCaret, {\n args: [3]\n }]]));\n }\n constructor(params) {\n super({\n ...params,\n name: \"highlightEditor\"\n });\n this.color = params.color || HighlightEditor._defaultColor;\n this.#thickness = params.thickness || HighlightEditor._defaultThickness;\n this.#opacity = params.opacity || HighlightEditor._defaultOpacity;\n this.#boxes = params.boxes || null;\n this.#methodOfCreation = params.methodOfCreation || \"\";\n this.#text = params.text || \"\";\n this._isDraggable = false;\n if (params.highlightId > -1) {\n this.#isFreeHighlight = true;\n this.#createFreeOutlines(params);\n this.#addToDrawLayer();\n } else {\n this.#anchorNode = params.anchorNode;\n this.#anchorOffset = params.anchorOffset;\n this.#focusNode = params.focusNode;\n this.#focusOffset = params.focusOffset;\n this.#createOutlines();\n this.#addToDrawLayer();\n this.rotate(this.rotation);\n }\n }\n get telemetryInitialData() {\n return {\n action: \"added\",\n type: this.#isFreeHighlight ? \"free_highlight\" : \"highlight\",\n color: this._uiManager.highlightColorNames.get(this.color),\n thickness: this.#thickness,\n methodOfCreation: this.#methodOfCreation\n };\n }\n get telemetryFinalData() {\n return {\n type: \"highlight\",\n color: this._uiManager.highlightColorNames.get(this.color)\n };\n }\n static computeTelemetryFinalData(data) {\n return {\n numberOfColors: data.get(\"color\").size\n };\n }\n #createOutlines() {\n const outliner = new Outliner(this.#boxes, 0.001);\n this.#highlightOutlines = outliner.getOutlines();\n ({\n x: this.x,\n y: this.y,\n width: this.width,\n height: this.height\n } = this.#highlightOutlines.box);\n const outlinerForOutline = new Outliner(this.#boxes, 0.0025, 0.001, this._uiManager.direction === \"ltr\");\n this.#focusOutlines = outlinerForOutline.getOutlines();\n const {\n lastPoint\n } = this.#focusOutlines.box;\n this.#lastPoint = [(lastPoint[0] - this.x) / this.width, (lastPoint[1] - this.y) / this.height];\n }\n #createFreeOutlines({\n highlightOutlines,\n highlightId,\n clipPathId\n }) {\n this.#highlightOutlines = highlightOutlines;\n const extraThickness = 1.5;\n this.#focusOutlines = highlightOutlines.getNewOutline(this.#thickness / 2 + extraThickness, 0.0025);\n if (highlightId >= 0) {\n this.#id = highlightId;\n this.#clipPathId = clipPathId;\n this.parent.drawLayer.finalizeLine(highlightId, highlightOutlines);\n this.#outlineId = this.parent.drawLayer.highlightOutline(this.#focusOutlines);\n } else if (this.parent) {\n const angle = this.parent.viewport.rotation;\n this.parent.drawLayer.updateLine(this.#id, highlightOutlines);\n this.parent.drawLayer.updateBox(this.#id, HighlightEditor.#rotateBbox(this.#highlightOutlines.box, (angle - this.rotation + 360) % 360));\n this.parent.drawLayer.updateLine(this.#outlineId, this.#focusOutlines);\n this.parent.drawLayer.updateBox(this.#outlineId, HighlightEditor.#rotateBbox(this.#focusOutlines.box, angle));\n }\n const {\n x,\n y,\n width,\n height\n } = highlightOutlines.box;\n switch (this.rotation) {\n case 0:\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n break;\n case 90:\n {\n const [pageWidth, pageHeight] = this.parentDimensions;\n this.x = y;\n this.y = 1 - x;\n this.width = width * pageHeight / pageWidth;\n this.height = height * pageWidth / pageHeight;\n break;\n }\n case 180:\n this.x = 1 - x;\n this.y = 1 - y;\n this.width = width;\n this.height = height;\n break;\n case 270:\n {\n const [pageWidth, pageHeight] = this.parentDimensions;\n this.x = 1 - y;\n this.y = x;\n this.width = width * pageHeight / pageWidth;\n this.height = height * pageWidth / pageHeight;\n break;\n }\n }\n const {\n lastPoint\n } = this.#focusOutlines.box;\n this.#lastPoint = [(lastPoint[0] - x) / width, (lastPoint[1] - y) / height];\n }\n static initialize(l10n, uiManager) {\n AnnotationEditor.initialize(l10n, uiManager);\n HighlightEditor._defaultColor ||= uiManager.highlightColors?.values().next().value || \"#fff066\";\n }\n static updateDefaultParams(type, value) {\n switch (type) {\n case AnnotationEditorParamsType.HIGHLIGHT_DEFAULT_COLOR:\n HighlightEditor._defaultColor = value;\n break;\n case AnnotationEditorParamsType.HIGHLIGHT_THICKNESS:\n HighlightEditor._defaultThickness = value;\n break;\n }\n }\n translateInPage(x, y) {}\n get toolbarPosition() {\n return this.#lastPoint;\n }\n updateParams(type, value) {\n switch (type) {\n case AnnotationEditorParamsType.HIGHLIGHT_COLOR:\n this.#updateColor(value);\n break;\n case AnnotationEditorParamsType.HIGHLIGHT_THICKNESS:\n this.#updateThickness(value);\n break;\n }\n }\n static get defaultPropertiesToUpdate() {\n return [[AnnotationEditorParamsType.HIGHLIGHT_DEFAULT_COLOR, HighlightEditor._defaultColor], [AnnotationEditorParamsType.HIGHLIGHT_THICKNESS, HighlightEditor._defaultThickness]];\n }\n get propertiesToUpdate() {\n return [[AnnotationEditorParamsType.HIGHLIGHT_COLOR, this.color || HighlightEditor._defaultColor], [AnnotationEditorParamsType.HIGHLIGHT_THICKNESS, this.#thickness || HighlightEditor._defaultThickness], [AnnotationEditorParamsType.HIGHLIGHT_FREE, this.#isFreeHighlight]];\n }\n #updateColor(color) {\n const setColor = col => {\n this.color = col;\n this.parent?.drawLayer.changeColor(this.#id, col);\n this.#colorPicker?.updateColor(col);\n };\n const savedColor = this.color;\n this.addCommands({\n cmd: setColor.bind(this, color),\n undo: setColor.bind(this, savedColor),\n post: this._uiManager.updateUI.bind(this._uiManager, this),\n mustExec: true,\n type: AnnotationEditorParamsType.HIGHLIGHT_COLOR,\n overwriteIfSameType: true,\n keepUndo: true\n });\n this._reportTelemetry({\n action: \"color_changed\",\n color: this._uiManager.highlightColorNames.get(color)\n }, true);\n }\n #updateThickness(thickness) {\n const savedThickness = this.#thickness;\n const setThickness = th => {\n this.#thickness = th;\n this.#changeThickness(th);\n };\n this.addCommands({\n cmd: setThickness.bind(this, thickness),\n undo: setThickness.bind(this, savedThickness),\n post: this._uiManager.updateUI.bind(this._uiManager, this),\n mustExec: true,\n type: AnnotationEditorParamsType.INK_THICKNESS,\n overwriteIfSameType: true,\n keepUndo: true\n });\n this._reportTelemetry({\n action: \"thickness_changed\",\n thickness\n }, true);\n }\n async addEditToolbar() {\n const toolbar = await super.addEditToolbar();\n if (!toolbar) {\n return null;\n }\n if (this._uiManager.highlightColors) {\n this.#colorPicker = new ColorPicker({\n editor: this\n });\n toolbar.addColorPicker(this.#colorPicker);\n }\n return toolbar;\n }\n disableEditing() {\n super.disableEditing();\n this.div.classList.toggle(\"disabled\", true);\n }\n enableEditing() {\n super.enableEditing();\n this.div.classList.toggle(\"disabled\", false);\n }\n fixAndSetPosition() {\n return super.fixAndSetPosition(this.#getRotation());\n }\n getBaseTranslation() {\n return [0, 0];\n }\n getRect(tx, ty) {\n return super.getRect(tx, ty, this.#getRotation());\n }\n onceAdded() {\n this.parent.addUndoableEditor(this);\n this.div.focus();\n }\n remove() {\n this.#cleanDrawLayer();\n this._reportTelemetry({\n action: \"deleted\"\n });\n super.remove();\n }\n rebuild() {\n if (!this.parent) {\n return;\n }\n super.rebuild();\n if (this.div === null) {\n return;\n }\n this.#addToDrawLayer();\n if (!this.isAttachedToDOM) {\n this.parent.add(this);\n }\n }\n setParent(parent) {\n let mustBeSelected = false;\n if (this.parent && !parent) {\n this.#cleanDrawLayer();\n } else if (parent) {\n this.#addToDrawLayer(parent);\n mustBeSelected = !this.parent && this.div?.classList.contains(\"selectedEditor\");\n }\n super.setParent(parent);\n this.show(this._isVisible);\n if (mustBeSelected) {\n this.select();\n }\n }\n #changeThickness(thickness) {\n if (!this.#isFreeHighlight) {\n return;\n }\n this.#createFreeOutlines({\n highlightOutlines: this.#highlightOutlines.getNewOutline(thickness / 2)\n });\n this.fixAndSetPosition();\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setDims(this.width * parentWidth, this.height * parentHeight);\n }\n #cleanDrawLayer() {\n if (this.#id === null || !this.parent) {\n return;\n }\n this.parent.drawLayer.remove(this.#id);\n this.#id = null;\n this.parent.drawLayer.remove(this.#outlineId);\n this.#outlineId = null;\n }\n #addToDrawLayer(parent = this.parent) {\n if (this.#id !== null) {\n return;\n }\n ({\n id: this.#id,\n clipPathId: this.#clipPathId\n } = parent.drawLayer.highlight(this.#highlightOutlines, this.color, this.#opacity));\n this.#outlineId = parent.drawLayer.highlightOutline(this.#focusOutlines);\n if (this.#highlightDiv) {\n this.#highlightDiv.style.clipPath = this.#clipPathId;\n }\n }\n static #rotateBbox({\n x,\n y,\n width,\n height\n }, angle) {\n switch (angle) {\n case 90:\n return {\n x: 1 - y - height,\n y: x,\n width: height,\n height: width\n };\n case 180:\n return {\n x: 1 - x - width,\n y: 1 - y - height,\n width,\n height\n };\n case 270:\n return {\n x: y,\n y: 1 - x - width,\n width: height,\n height: width\n };\n }\n return {\n x,\n y,\n width,\n height\n };\n }\n rotate(angle) {\n const {\n drawLayer\n } = this.parent;\n let box;\n if (this.#isFreeHighlight) {\n angle = (angle - this.rotation + 360) % 360;\n box = HighlightEditor.#rotateBbox(this.#highlightOutlines.box, angle);\n } else {\n box = HighlightEditor.#rotateBbox(this, angle);\n }\n drawLayer.rotate(this.#id, angle);\n drawLayer.rotate(this.#outlineId, angle);\n drawLayer.updateBox(this.#id, box);\n drawLayer.updateBox(this.#outlineId, HighlightEditor.#rotateBbox(this.#focusOutlines.box, angle));\n }\n render() {\n if (this.div) {\n return this.div;\n }\n const div = super.render();\n if (this.#text) {\n div.setAttribute(\"aria-label\", this.#text);\n div.setAttribute(\"role\", \"mark\");\n }\n if (this.#isFreeHighlight) {\n div.classList.add(\"free\");\n } else {\n this.div.addEventListener(\"keydown\", this.#boundKeydown, {\n signal: this._uiManager._signal\n });\n }\n const highlightDiv = this.#highlightDiv = document.createElement(\"div\");\n div.append(highlightDiv);\n highlightDiv.setAttribute(\"aria-hidden\", \"true\");\n highlightDiv.className = \"internal\";\n highlightDiv.style.clipPath = this.#clipPathId;\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setDims(this.width * parentWidth, this.height * parentHeight);\n bindEvents(this, this.#highlightDiv, [\"pointerover\", \"pointerleave\"]);\n this.enableEditing();\n return div;\n }\n pointerover() {\n this.parent.drawLayer.addClass(this.#outlineId, \"hovered\");\n }\n pointerleave() {\n this.parent.drawLayer.removeClass(this.#outlineId, \"hovered\");\n }\n #keydown(event) {\n HighlightEditor._keyboardManager.exec(this, event);\n }\n _moveCaret(direction) {\n this.parent.unselect(this);\n switch (direction) {\n case 0:\n case 2:\n this.#setCaret(true);\n break;\n case 1:\n case 3:\n this.#setCaret(false);\n break;\n }\n }\n #setCaret(start) {\n if (!this.#anchorNode) {\n return;\n }\n const selection = window.getSelection();\n if (start) {\n selection.setPosition(this.#anchorNode, this.#anchorOffset);\n } else {\n selection.setPosition(this.#focusNode, this.#focusOffset);\n }\n }\n select() {\n super.select();\n if (!this.#outlineId) {\n return;\n }\n this.parent?.drawLayer.removeClass(this.#outlineId, \"hovered\");\n this.parent?.drawLayer.addClass(this.#outlineId, \"selected\");\n }\n unselect() {\n super.unselect();\n if (!this.#outlineId) {\n return;\n }\n this.parent?.drawLayer.removeClass(this.#outlineId, \"selected\");\n if (!this.#isFreeHighlight) {\n this.#setCaret(false);\n }\n }\n get _mustFixPosition() {\n return !this.#isFreeHighlight;\n }\n show(visible = this._isVisible) {\n super.show(visible);\n if (this.parent) {\n this.parent.drawLayer.show(this.#id, visible);\n this.parent.drawLayer.show(this.#outlineId, visible);\n }\n }\n #getRotation() {\n return this.#isFreeHighlight ? this.rotation : 0;\n }\n #serializeBoxes() {\n if (this.#isFreeHighlight) {\n return null;\n }\n const [pageWidth, pageHeight] = this.pageDimensions;\n const boxes = this.#boxes;\n const quadPoints = new Float32Array(boxes.length * 8);\n let i = 0;\n for (const {\n x,\n y,\n width,\n height\n } of boxes) {\n const sx = x * pageWidth;\n const sy = (1 - y - height) * pageHeight;\n quadPoints[i] = quadPoints[i + 4] = sx;\n quadPoints[i + 1] = quadPoints[i + 3] = sy;\n quadPoints[i + 2] = quadPoints[i + 6] = sx + width * pageWidth;\n quadPoints[i + 5] = quadPoints[i + 7] = sy + height * pageHeight;\n i += 8;\n }\n return quadPoints;\n }\n #serializeOutlines(rect) {\n return this.#highlightOutlines.serialize(rect, this.#getRotation());\n }\n static startHighlighting(parent, isLTR, {\n target: textLayer,\n x,\n y\n }) {\n const {\n x: layerX,\n y: layerY,\n width: parentWidth,\n height: parentHeight\n } = textLayer.getBoundingClientRect();\n const pointerMove = e => {\n this.#highlightMove(parent, e);\n };\n const signal = parent._signal;\n const pointerDownOptions = {\n capture: true,\n passive: false,\n signal\n };\n const pointerDown = e => {\n e.preventDefault();\n e.stopPropagation();\n };\n const pointerUpCallback = e => {\n textLayer.removeEventListener(\"pointermove\", pointerMove);\n window.removeEventListener(\"blur\", pointerUpCallback);\n window.removeEventListener(\"pointerup\", pointerUpCallback);\n window.removeEventListener(\"pointerdown\", pointerDown, pointerDownOptions);\n window.removeEventListener(\"contextmenu\", noContextMenu);\n this.#endHighlight(parent, e);\n };\n window.addEventListener(\"blur\", pointerUpCallback, {\n signal\n });\n window.addEventListener(\"pointerup\", pointerUpCallback, {\n signal\n });\n window.addEventListener(\"pointerdown\", pointerDown, pointerDownOptions);\n window.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n textLayer.addEventListener(\"pointermove\", pointerMove, {\n signal\n });\n this._freeHighlight = new FreeOutliner({\n x,\n y\n }, [layerX, layerY, parentWidth, parentHeight], parent.scale, this._defaultThickness / 2, isLTR, 0.001);\n ({\n id: this._freeHighlightId,\n clipPathId: this._freeHighlightClipId\n } = parent.drawLayer.highlight(this._freeHighlight, this._defaultColor, this._defaultOpacity, true));\n }\n static #highlightMove(parent, event) {\n if (this._freeHighlight.add(event)) {\n parent.drawLayer.updatePath(this._freeHighlightId, this._freeHighlight);\n }\n }\n static #endHighlight(parent, event) {\n if (!this._freeHighlight.isEmpty()) {\n parent.createAndAddNewEditor(event, false, {\n highlightId: this._freeHighlightId,\n highlightOutlines: this._freeHighlight.getOutlines(),\n clipPathId: this._freeHighlightClipId,\n methodOfCreation: \"main_toolbar\"\n });\n } else {\n parent.drawLayer.removeFreeHighlight(this._freeHighlightId);\n }\n this._freeHighlightId = -1;\n this._freeHighlight = null;\n this._freeHighlightClipId = \"\";\n }\n static deserialize(data, parent, uiManager) {\n const editor = super.deserialize(data, parent, uiManager);\n const {\n rect: [blX, blY, trX, trY],\n color,\n quadPoints\n } = data;\n editor.color = Util.makeHexColor(...color);\n editor.#opacity = data.opacity;\n const [pageWidth, pageHeight] = editor.pageDimensions;\n editor.width = (trX - blX) / pageWidth;\n editor.height = (trY - blY) / pageHeight;\n const boxes = editor.#boxes = [];\n for (let i = 0; i < quadPoints.length; i += 8) {\n boxes.push({\n x: (quadPoints[4] - trX) / pageWidth,\n y: (trY - (1 - quadPoints[i + 5])) / pageHeight,\n width: (quadPoints[i + 2] - quadPoints[i]) / pageWidth,\n height: (quadPoints[i + 5] - quadPoints[i + 1]) / pageHeight\n });\n }\n editor.#createOutlines();\n return editor;\n }\n serialize(isForCopying = false) {\n if (this.isEmpty() || isForCopying) {\n return null;\n }\n const rect = this.getRect(0, 0);\n const color = AnnotationEditor._colorManager.convert(this.color);\n return {\n annotationType: AnnotationEditorType.HIGHLIGHT,\n color,\n opacity: this.#opacity,\n thickness: this.#thickness,\n quadPoints: this.#serializeBoxes(),\n outlines: this.#serializeOutlines(rect),\n pageIndex: this.pageIndex,\n rect,\n rotation: this.#getRotation(),\n structTreeParentId: this._structTreeParentId\n };\n }\n static canCreateNewEmptyEditor() {\n return false;\n }\n}\n\n;// CONCATENATED MODULE: ./src/display/editor/ink.js\n\n\n\n\n\nclass InkEditor extends AnnotationEditor {\n #baseHeight = 0;\n #baseWidth = 0;\n #boundCanvasPointermove = this.canvasPointermove.bind(this);\n #boundCanvasPointerleave = this.canvasPointerleave.bind(this);\n #boundCanvasPointerup = this.canvasPointerup.bind(this);\n #boundCanvasPointerdown = this.canvasPointerdown.bind(this);\n #canvasContextMenuTimeoutId = null;\n #currentPath2D = new Path2D();\n #disableEditing = false;\n #hasSomethingToDraw = false;\n #isCanvasInitialized = false;\n #observer = null;\n #realWidth = 0;\n #realHeight = 0;\n #requestFrameCallback = null;\n static _defaultColor = null;\n static _defaultOpacity = 1;\n static _defaultThickness = 1;\n static _type = \"ink\";\n static _editorType = AnnotationEditorType.INK;\n constructor(params) {\n super({\n ...params,\n name: \"inkEditor\"\n });\n this.color = params.color || null;\n this.thickness = params.thickness || null;\n this.opacity = params.opacity || null;\n this.paths = [];\n this.bezierPath2D = [];\n this.allRawPaths = [];\n this.currentPath = [];\n this.scaleFactor = 1;\n this.translationX = this.translationY = 0;\n this.x = 0;\n this.y = 0;\n this._willKeepAspectRatio = true;\n }\n static initialize(l10n, uiManager) {\n AnnotationEditor.initialize(l10n, uiManager);\n }\n static updateDefaultParams(type, value) {\n switch (type) {\n case AnnotationEditorParamsType.INK_THICKNESS:\n InkEditor._defaultThickness = value;\n break;\n case AnnotationEditorParamsType.INK_COLOR:\n InkEditor._defaultColor = value;\n break;\n case AnnotationEditorParamsType.INK_OPACITY:\n InkEditor._defaultOpacity = value / 100;\n break;\n }\n }\n updateParams(type, value) {\n switch (type) {\n case AnnotationEditorParamsType.INK_THICKNESS:\n this.#updateThickness(value);\n break;\n case AnnotationEditorParamsType.INK_COLOR:\n this.#updateColor(value);\n break;\n case AnnotationEditorParamsType.INK_OPACITY:\n this.#updateOpacity(value);\n break;\n }\n }\n static get defaultPropertiesToUpdate() {\n return [[AnnotationEditorParamsType.INK_THICKNESS, InkEditor._defaultThickness], [AnnotationEditorParamsType.INK_COLOR, InkEditor._defaultColor || AnnotationEditor._defaultLineColor], [AnnotationEditorParamsType.INK_OPACITY, Math.round(InkEditor._defaultOpacity * 100)]];\n }\n get propertiesToUpdate() {\n return [[AnnotationEditorParamsType.INK_THICKNESS, this.thickness || InkEditor._defaultThickness], [AnnotationEditorParamsType.INK_COLOR, this.color || InkEditor._defaultColor || AnnotationEditor._defaultLineColor], [AnnotationEditorParamsType.INK_OPACITY, Math.round(100 * (this.opacity ?? InkEditor._defaultOpacity))]];\n }\n #updateThickness(thickness) {\n const setThickness = th => {\n this.thickness = th;\n this.#fitToContent();\n };\n const savedThickness = this.thickness;\n this.addCommands({\n cmd: setThickness.bind(this, thickness),\n undo: setThickness.bind(this, savedThickness),\n post: this._uiManager.updateUI.bind(this._uiManager, this),\n mustExec: true,\n type: AnnotationEditorParamsType.INK_THICKNESS,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n #updateColor(color) {\n const setColor = col => {\n this.color = col;\n this.#redraw();\n };\n const savedColor = this.color;\n this.addCommands({\n cmd: setColor.bind(this, color),\n undo: setColor.bind(this, savedColor),\n post: this._uiManager.updateUI.bind(this._uiManager, this),\n mustExec: true,\n type: AnnotationEditorParamsType.INK_COLOR,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n #updateOpacity(opacity) {\n const setOpacity = op => {\n this.opacity = op;\n this.#redraw();\n };\n opacity /= 100;\n const savedOpacity = this.opacity;\n this.addCommands({\n cmd: setOpacity.bind(this, opacity),\n undo: setOpacity.bind(this, savedOpacity),\n post: this._uiManager.updateUI.bind(this._uiManager, this),\n mustExec: true,\n type: AnnotationEditorParamsType.INK_OPACITY,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n rebuild() {\n if (!this.parent) {\n return;\n }\n super.rebuild();\n if (this.div === null) {\n return;\n }\n if (!this.canvas) {\n this.#createCanvas();\n this.#createObserver();\n }\n if (!this.isAttachedToDOM) {\n this.parent.add(this);\n this.#setCanvasDims();\n }\n this.#fitToContent();\n }\n remove() {\n if (this.canvas === null) {\n return;\n }\n if (!this.isEmpty()) {\n this.commit();\n }\n this.canvas.width = this.canvas.height = 0;\n this.canvas.remove();\n this.canvas = null;\n if (this.#canvasContextMenuTimeoutId) {\n clearTimeout(this.#canvasContextMenuTimeoutId);\n this.#canvasContextMenuTimeoutId = null;\n }\n this.#observer?.disconnect();\n this.#observer = null;\n super.remove();\n }\n setParent(parent) {\n if (!this.parent && parent) {\n this._uiManager.removeShouldRescale(this);\n } else if (this.parent && parent === null) {\n this._uiManager.addShouldRescale(this);\n }\n super.setParent(parent);\n }\n onScaleChanging() {\n const [parentWidth, parentHeight] = this.parentDimensions;\n const width = this.width * parentWidth;\n const height = this.height * parentHeight;\n this.setDimensions(width, height);\n }\n enableEditMode() {\n if (this.#disableEditing || this.canvas === null) {\n return;\n }\n super.enableEditMode();\n this._isDraggable = false;\n this.canvas.addEventListener(\"pointerdown\", this.#boundCanvasPointerdown, {\n signal: this._uiManager._signal\n });\n }\n disableEditMode() {\n if (!this.isInEditMode() || this.canvas === null) {\n return;\n }\n super.disableEditMode();\n this._isDraggable = !this.isEmpty();\n this.div.classList.remove(\"editing\");\n this.canvas.removeEventListener(\"pointerdown\", this.#boundCanvasPointerdown);\n }\n onceAdded() {\n this._isDraggable = !this.isEmpty();\n }\n isEmpty() {\n return this.paths.length === 0 || this.paths.length === 1 && this.paths[0].length === 0;\n }\n #getInitialBBox() {\n const {\n parentRotation,\n parentDimensions: [width, height]\n } = this;\n switch (parentRotation) {\n case 90:\n return [0, height, height, width];\n case 180:\n return [width, height, width, height];\n case 270:\n return [width, 0, height, width];\n default:\n return [0, 0, width, height];\n }\n }\n #setStroke() {\n const {\n ctx,\n color,\n opacity,\n thickness,\n parentScale,\n scaleFactor\n } = this;\n ctx.lineWidth = thickness * parentScale / scaleFactor;\n ctx.lineCap = \"round\";\n ctx.lineJoin = \"round\";\n ctx.miterLimit = 10;\n ctx.strokeStyle = `${color}${opacityToHex(opacity)}`;\n }\n #startDrawing(x, y) {\n const signal = this._uiManager._signal;\n this.canvas.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n this.canvas.addEventListener(\"pointerleave\", this.#boundCanvasPointerleave, {\n signal\n });\n this.canvas.addEventListener(\"pointermove\", this.#boundCanvasPointermove, {\n signal\n });\n this.canvas.addEventListener(\"pointerup\", this.#boundCanvasPointerup, {\n signal\n });\n this.canvas.removeEventListener(\"pointerdown\", this.#boundCanvasPointerdown);\n this.isEditing = true;\n if (!this.#isCanvasInitialized) {\n this.#isCanvasInitialized = true;\n this.#setCanvasDims();\n this.thickness ||= InkEditor._defaultThickness;\n this.color ||= InkEditor._defaultColor || AnnotationEditor._defaultLineColor;\n this.opacity ??= InkEditor._defaultOpacity;\n }\n this.currentPath.push([x, y]);\n this.#hasSomethingToDraw = false;\n this.#setStroke();\n this.#requestFrameCallback = () => {\n this.#drawPoints();\n if (this.#requestFrameCallback) {\n window.requestAnimationFrame(this.#requestFrameCallback);\n }\n };\n window.requestAnimationFrame(this.#requestFrameCallback);\n }\n #draw(x, y) {\n const [lastX, lastY] = this.currentPath.at(-1);\n if (this.currentPath.length > 1 && x === lastX && y === lastY) {\n return;\n }\n const currentPath = this.currentPath;\n let path2D = this.#currentPath2D;\n currentPath.push([x, y]);\n this.#hasSomethingToDraw = true;\n if (currentPath.length <= 2) {\n path2D.moveTo(...currentPath[0]);\n path2D.lineTo(x, y);\n return;\n }\n if (currentPath.length === 3) {\n this.#currentPath2D = path2D = new Path2D();\n path2D.moveTo(...currentPath[0]);\n }\n this.#makeBezierCurve(path2D, ...currentPath.at(-3), ...currentPath.at(-2), x, y);\n }\n #endPath() {\n if (this.currentPath.length === 0) {\n return;\n }\n const lastPoint = this.currentPath.at(-1);\n this.#currentPath2D.lineTo(...lastPoint);\n }\n #stopDrawing(x, y) {\n this.#requestFrameCallback = null;\n x = Math.min(Math.max(x, 0), this.canvas.width);\n y = Math.min(Math.max(y, 0), this.canvas.height);\n this.#draw(x, y);\n this.#endPath();\n let bezier;\n if (this.currentPath.length !== 1) {\n bezier = this.#generateBezierPoints();\n } else {\n const xy = [x, y];\n bezier = [[xy, xy.slice(), xy.slice(), xy]];\n }\n const path2D = this.#currentPath2D;\n const currentPath = this.currentPath;\n this.currentPath = [];\n this.#currentPath2D = new Path2D();\n const cmd = () => {\n this.allRawPaths.push(currentPath);\n this.paths.push(bezier);\n this.bezierPath2D.push(path2D);\n this._uiManager.rebuild(this);\n };\n const undo = () => {\n this.allRawPaths.pop();\n this.paths.pop();\n this.bezierPath2D.pop();\n if (this.paths.length === 0) {\n this.remove();\n } else {\n if (!this.canvas) {\n this.#createCanvas();\n this.#createObserver();\n }\n this.#fitToContent();\n }\n };\n this.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n }\n #drawPoints() {\n if (!this.#hasSomethingToDraw) {\n return;\n }\n this.#hasSomethingToDraw = false;\n const thickness = Math.ceil(this.thickness * this.parentScale);\n const lastPoints = this.currentPath.slice(-3);\n const x = lastPoints.map(xy => xy[0]);\n const y = lastPoints.map(xy => xy[1]);\n const xMin = Math.min(...x) - thickness;\n const xMax = Math.max(...x) + thickness;\n const yMin = Math.min(...y) - thickness;\n const yMax = Math.max(...y) + thickness;\n const {\n ctx\n } = this;\n ctx.save();\n ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n for (const path of this.bezierPath2D) {\n ctx.stroke(path);\n }\n ctx.stroke(this.#currentPath2D);\n ctx.restore();\n }\n #makeBezierCurve(path2D, x0, y0, x1, y1, x2, y2) {\n const prevX = (x0 + x1) / 2;\n const prevY = (y0 + y1) / 2;\n const x3 = (x1 + x2) / 2;\n const y3 = (y1 + y2) / 2;\n path2D.bezierCurveTo(prevX + 2 * (x1 - prevX) / 3, prevY + 2 * (y1 - prevY) / 3, x3 + 2 * (x1 - x3) / 3, y3 + 2 * (y1 - y3) / 3, x3, y3);\n }\n #generateBezierPoints() {\n const path = this.currentPath;\n if (path.length <= 2) {\n return [[path[0], path[0], path.at(-1), path.at(-1)]];\n }\n const bezierPoints = [];\n let i;\n let [x0, y0] = path[0];\n for (i = 1; i < path.length - 2; i++) {\n const [x1, y1] = path[i];\n const [x2, y2] = path[i + 1];\n const x3 = (x1 + x2) / 2;\n const y3 = (y1 + y2) / 2;\n const control1 = [x0 + 2 * (x1 - x0) / 3, y0 + 2 * (y1 - y0) / 3];\n const control2 = [x3 + 2 * (x1 - x3) / 3, y3 + 2 * (y1 - y3) / 3];\n bezierPoints.push([[x0, y0], control1, control2, [x3, y3]]);\n [x0, y0] = [x3, y3];\n }\n const [x1, y1] = path[i];\n const [x2, y2] = path[i + 1];\n const control1 = [x0 + 2 * (x1 - x0) / 3, y0 + 2 * (y1 - y0) / 3];\n const control2 = [x2 + 2 * (x1 - x2) / 3, y2 + 2 * (y1 - y2) / 3];\n bezierPoints.push([[x0, y0], control1, control2, [x2, y2]]);\n return bezierPoints;\n }\n #redraw() {\n if (this.isEmpty()) {\n this.#updateTransform();\n return;\n }\n this.#setStroke();\n const {\n canvas,\n ctx\n } = this;\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n this.#updateTransform();\n for (const path of this.bezierPath2D) {\n ctx.stroke(path);\n }\n }\n commit() {\n if (this.#disableEditing) {\n return;\n }\n super.commit();\n this.isEditing = false;\n this.disableEditMode();\n this.setInForeground();\n this.#disableEditing = true;\n this.div.classList.add(\"disabled\");\n this.#fitToContent(true);\n this.select();\n this.parent.addInkEditorIfNeeded(true);\n this.moveInDOM();\n this.div.focus({\n preventScroll: true\n });\n }\n focusin(event) {\n if (!this._focusEventsAllowed) {\n return;\n }\n super.focusin(event);\n this.enableEditMode();\n }\n canvasPointerdown(event) {\n if (event.button !== 0 || !this.isInEditMode() || this.#disableEditing) {\n return;\n }\n this.setInForeground();\n event.preventDefault();\n if (!this.div.contains(document.activeElement)) {\n this.div.focus({\n preventScroll: true\n });\n }\n this.#startDrawing(event.offsetX, event.offsetY);\n }\n canvasPointermove(event) {\n event.preventDefault();\n this.#draw(event.offsetX, event.offsetY);\n }\n canvasPointerup(event) {\n event.preventDefault();\n this.#endDrawing(event);\n }\n canvasPointerleave(event) {\n this.#endDrawing(event);\n }\n #endDrawing(event) {\n this.canvas.removeEventListener(\"pointerleave\", this.#boundCanvasPointerleave);\n this.canvas.removeEventListener(\"pointermove\", this.#boundCanvasPointermove);\n this.canvas.removeEventListener(\"pointerup\", this.#boundCanvasPointerup);\n this.canvas.addEventListener(\"pointerdown\", this.#boundCanvasPointerdown, {\n signal: this._uiManager._signal\n });\n if (this.#canvasContextMenuTimeoutId) {\n clearTimeout(this.#canvasContextMenuTimeoutId);\n }\n this.#canvasContextMenuTimeoutId = setTimeout(() => {\n this.#canvasContextMenuTimeoutId = null;\n this.canvas.removeEventListener(\"contextmenu\", noContextMenu);\n }, 10);\n this.#stopDrawing(event.offsetX, event.offsetY);\n this.addToAnnotationStorage();\n this.setInBackground();\n }\n #createCanvas() {\n this.canvas = document.createElement(\"canvas\");\n this.canvas.width = this.canvas.height = 0;\n this.canvas.className = \"inkEditorCanvas\";\n this.canvas.setAttribute(\"data-l10n-id\", \"pdfjs-ink-canvas\");\n this.div.append(this.canvas);\n this.ctx = this.canvas.getContext(\"2d\");\n }\n #createObserver() {\n this.#observer = new ResizeObserver(entries => {\n const rect = entries[0].contentRect;\n if (rect.width && rect.height) {\n this.setDimensions(rect.width, rect.height);\n }\n });\n this.#observer.observe(this.div);\n this._uiManager._signal.addEventListener(\"abort\", () => {\n this.#observer?.disconnect();\n this.#observer = null;\n }, {\n once: true\n });\n }\n get isResizable() {\n return !this.isEmpty() && this.#disableEditing;\n }\n render() {\n if (this.div) {\n return this.div;\n }\n let baseX, baseY;\n if (this.width) {\n baseX = this.x;\n baseY = this.y;\n }\n super.render();\n this.div.setAttribute(\"data-l10n-id\", \"pdfjs-ink\");\n const [x, y, w, h] = this.#getInitialBBox();\n this.setAt(x, y, 0, 0);\n this.setDims(w, h);\n this.#createCanvas();\n if (this.width) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setAspectRatio(this.width * parentWidth, this.height * parentHeight);\n this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight);\n this.#isCanvasInitialized = true;\n this.#setCanvasDims();\n this.setDims(this.width * parentWidth, this.height * parentHeight);\n this.#redraw();\n this.div.classList.add(\"disabled\");\n } else {\n this.div.classList.add(\"editing\");\n this.enableEditMode();\n }\n this.#createObserver();\n return this.div;\n }\n #setCanvasDims() {\n if (!this.#isCanvasInitialized) {\n return;\n }\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.canvas.width = Math.ceil(this.width * parentWidth);\n this.canvas.height = Math.ceil(this.height * parentHeight);\n this.#updateTransform();\n }\n setDimensions(width, height) {\n const roundedWidth = Math.round(width);\n const roundedHeight = Math.round(height);\n if (this.#realWidth === roundedWidth && this.#realHeight === roundedHeight) {\n return;\n }\n this.#realWidth = roundedWidth;\n this.#realHeight = roundedHeight;\n this.canvas.style.visibility = \"hidden\";\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.width = width / parentWidth;\n this.height = height / parentHeight;\n this.fixAndSetPosition();\n if (this.#disableEditing) {\n this.#setScaleFactor(width, height);\n }\n this.#setCanvasDims();\n this.#redraw();\n this.canvas.style.visibility = \"visible\";\n this.fixDims();\n }\n #setScaleFactor(width, height) {\n const padding = this.#getPadding();\n const scaleFactorW = (width - padding) / this.#baseWidth;\n const scaleFactorH = (height - padding) / this.#baseHeight;\n this.scaleFactor = Math.min(scaleFactorW, scaleFactorH);\n }\n #updateTransform() {\n const padding = this.#getPadding() / 2;\n this.ctx.setTransform(this.scaleFactor, 0, 0, this.scaleFactor, this.translationX * this.scaleFactor + padding, this.translationY * this.scaleFactor + padding);\n }\n static #buildPath2D(bezier) {\n const path2D = new Path2D();\n for (let i = 0, ii = bezier.length; i < ii; i++) {\n const [first, control1, control2, second] = bezier[i];\n if (i === 0) {\n path2D.moveTo(...first);\n }\n path2D.bezierCurveTo(control1[0], control1[1], control2[0], control2[1], second[0], second[1]);\n }\n return path2D;\n }\n static #toPDFCoordinates(points, rect, rotation) {\n const [blX, blY, trX, trY] = rect;\n switch (rotation) {\n case 0:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n points[i] += blX;\n points[i + 1] = trY - points[i + 1];\n }\n break;\n case 90:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n const x = points[i];\n points[i] = points[i + 1] + blX;\n points[i + 1] = x + blY;\n }\n break;\n case 180:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n points[i] = trX - points[i];\n points[i + 1] += blY;\n }\n break;\n case 270:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n const x = points[i];\n points[i] = trX - points[i + 1];\n points[i + 1] = trY - x;\n }\n break;\n default:\n throw new Error(\"Invalid rotation\");\n }\n return points;\n }\n static #fromPDFCoordinates(points, rect, rotation) {\n const [blX, blY, trX, trY] = rect;\n switch (rotation) {\n case 0:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n points[i] -= blX;\n points[i + 1] = trY - points[i + 1];\n }\n break;\n case 90:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n const x = points[i];\n points[i] = points[i + 1] - blY;\n points[i + 1] = x - blX;\n }\n break;\n case 180:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n points[i] = trX - points[i];\n points[i + 1] -= blY;\n }\n break;\n case 270:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n const x = points[i];\n points[i] = trY - points[i + 1];\n points[i + 1] = trX - x;\n }\n break;\n default:\n throw new Error(\"Invalid rotation\");\n }\n return points;\n }\n #serializePaths(s, tx, ty, rect) {\n const paths = [];\n const padding = this.thickness / 2;\n const shiftX = s * tx + padding;\n const shiftY = s * ty + padding;\n for (const bezier of this.paths) {\n const buffer = [];\n const points = [];\n for (let j = 0, jj = bezier.length; j < jj; j++) {\n const [first, control1, control2, second] = bezier[j];\n if (first[0] === second[0] && first[1] === second[1] && jj === 1) {\n const p0 = s * first[0] + shiftX;\n const p1 = s * first[1] + shiftY;\n buffer.push(p0, p1);\n points.push(p0, p1);\n break;\n }\n const p10 = s * first[0] + shiftX;\n const p11 = s * first[1] + shiftY;\n const p20 = s * control1[0] + shiftX;\n const p21 = s * control1[1] + shiftY;\n const p30 = s * control2[0] + shiftX;\n const p31 = s * control2[1] + shiftY;\n const p40 = s * second[0] + shiftX;\n const p41 = s * second[1] + shiftY;\n if (j === 0) {\n buffer.push(p10, p11);\n points.push(p10, p11);\n }\n buffer.push(p20, p21, p30, p31, p40, p41);\n points.push(p20, p21);\n if (j === jj - 1) {\n points.push(p40, p41);\n }\n }\n paths.push({\n bezier: InkEditor.#toPDFCoordinates(buffer, rect, this.rotation),\n points: InkEditor.#toPDFCoordinates(points, rect, this.rotation)\n });\n }\n return paths;\n }\n #getBbox() {\n let xMin = Infinity;\n let xMax = -Infinity;\n let yMin = Infinity;\n let yMax = -Infinity;\n for (const path of this.paths) {\n for (const [first, control1, control2, second] of path) {\n const bbox = Util.bezierBoundingBox(...first, ...control1, ...control2, ...second);\n xMin = Math.min(xMin, bbox[0]);\n yMin = Math.min(yMin, bbox[1]);\n xMax = Math.max(xMax, bbox[2]);\n yMax = Math.max(yMax, bbox[3]);\n }\n }\n return [xMin, yMin, xMax, yMax];\n }\n #getPadding() {\n return this.#disableEditing ? Math.ceil(this.thickness * this.parentScale) : 0;\n }\n #fitToContent(firstTime = false) {\n if (this.isEmpty()) {\n return;\n }\n if (!this.#disableEditing) {\n this.#redraw();\n return;\n }\n const bbox = this.#getBbox();\n const padding = this.#getPadding();\n this.#baseWidth = Math.max(AnnotationEditor.MIN_SIZE, bbox[2] - bbox[0]);\n this.#baseHeight = Math.max(AnnotationEditor.MIN_SIZE, bbox[3] - bbox[1]);\n const width = Math.ceil(padding + this.#baseWidth * this.scaleFactor);\n const height = Math.ceil(padding + this.#baseHeight * this.scaleFactor);\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.width = width / parentWidth;\n this.height = height / parentHeight;\n this.setAspectRatio(width, height);\n const prevTranslationX = this.translationX;\n const prevTranslationY = this.translationY;\n this.translationX = -bbox[0];\n this.translationY = -bbox[1];\n this.#setCanvasDims();\n this.#redraw();\n this.#realWidth = width;\n this.#realHeight = height;\n this.setDims(width, height);\n const unscaledPadding = firstTime ? padding / this.scaleFactor / 2 : 0;\n this.translate(prevTranslationX - this.translationX - unscaledPadding, prevTranslationY - this.translationY - unscaledPadding);\n }\n static deserialize(data, parent, uiManager) {\n if (data instanceof InkAnnotationElement) {\n return null;\n }\n const editor = super.deserialize(data, parent, uiManager);\n editor.thickness = data.thickness;\n editor.color = Util.makeHexColor(...data.color);\n editor.opacity = data.opacity;\n const [pageWidth, pageHeight] = editor.pageDimensions;\n const width = editor.width * pageWidth;\n const height = editor.height * pageHeight;\n const scaleFactor = editor.parentScale;\n const padding = data.thickness / 2;\n editor.#disableEditing = true;\n editor.#realWidth = Math.round(width);\n editor.#realHeight = Math.round(height);\n const {\n paths,\n rect,\n rotation\n } = data;\n for (let {\n bezier\n } of paths) {\n bezier = InkEditor.#fromPDFCoordinates(bezier, rect, rotation);\n const path = [];\n editor.paths.push(path);\n let p0 = scaleFactor * (bezier[0] - padding);\n let p1 = scaleFactor * (bezier[1] - padding);\n for (let i = 2, ii = bezier.length; i < ii; i += 6) {\n const p10 = scaleFactor * (bezier[i] - padding);\n const p11 = scaleFactor * (bezier[i + 1] - padding);\n const p20 = scaleFactor * (bezier[i + 2] - padding);\n const p21 = scaleFactor * (bezier[i + 3] - padding);\n const p30 = scaleFactor * (bezier[i + 4] - padding);\n const p31 = scaleFactor * (bezier[i + 5] - padding);\n path.push([[p0, p1], [p10, p11], [p20, p21], [p30, p31]]);\n p0 = p30;\n p1 = p31;\n }\n const path2D = this.#buildPath2D(path);\n editor.bezierPath2D.push(path2D);\n }\n const bbox = editor.#getBbox();\n editor.#baseWidth = Math.max(AnnotationEditor.MIN_SIZE, bbox[2] - bbox[0]);\n editor.#baseHeight = Math.max(AnnotationEditor.MIN_SIZE, bbox[3] - bbox[1]);\n editor.#setScaleFactor(width, height);\n return editor;\n }\n serialize() {\n if (this.isEmpty()) {\n return null;\n }\n const rect = this.getRect(0, 0);\n const color = AnnotationEditor._colorManager.convert(this.ctx.strokeStyle);\n return {\n annotationType: AnnotationEditorType.INK,\n color,\n thickness: this.thickness,\n opacity: this.opacity,\n paths: this.#serializePaths(this.scaleFactor / this.parentScale, this.translationX, this.translationY, rect),\n pageIndex: this.pageIndex,\n rect,\n rotation: this.rotation,\n structTreeParentId: this._structTreeParentId\n };\n }\n}\n\n;// CONCATENATED MODULE: ./src/display/editor/stamp.js\n\n\n\n\nclass StampEditor extends AnnotationEditor {\n #bitmap = null;\n #bitmapId = null;\n #bitmapPromise = null;\n #bitmapUrl = null;\n #bitmapFile = null;\n #bitmapFileName = \"\";\n #canvas = null;\n #observer = null;\n #resizeTimeoutId = null;\n #isSvg = false;\n #hasBeenAddedInUndoStack = false;\n static _type = \"stamp\";\n static _editorType = AnnotationEditorType.STAMP;\n constructor(params) {\n super({\n ...params,\n name: \"stampEditor\"\n });\n this.#bitmapUrl = params.bitmapUrl;\n this.#bitmapFile = params.bitmapFile;\n }\n static initialize(l10n, uiManager) {\n AnnotationEditor.initialize(l10n, uiManager);\n }\n static get supportedTypes() {\n const types = [\"apng\", \"avif\", \"bmp\", \"gif\", \"jpeg\", \"png\", \"svg+xml\", \"webp\", \"x-icon\"];\n return shadow(this, \"supportedTypes\", types.map(type => `image/${type}`));\n }\n static get supportedTypesStr() {\n return shadow(this, \"supportedTypesStr\", this.supportedTypes.join(\",\"));\n }\n static isHandlingMimeForPasting(mime) {\n return this.supportedTypes.includes(mime);\n }\n static paste(item, parent) {\n parent.pasteEditor(AnnotationEditorType.STAMP, {\n bitmapFile: item.getAsFile()\n });\n }\n #getBitmapFetched(data, fromId = false) {\n if (!data) {\n this.remove();\n return;\n }\n this.#bitmap = data.bitmap;\n if (!fromId) {\n this.#bitmapId = data.id;\n this.#isSvg = data.isSvg;\n }\n if (data.file) {\n this.#bitmapFileName = data.file.name;\n }\n this.#createCanvas();\n }\n #getBitmapDone() {\n this.#bitmapPromise = null;\n this._uiManager.enableWaiting(false);\n if (this.#canvas) {\n this.div.focus();\n }\n }\n #getBitmap() {\n if (this.#bitmapId) {\n this._uiManager.enableWaiting(true);\n this._uiManager.imageManager.getFromId(this.#bitmapId).then(data => this.#getBitmapFetched(data, true)).finally(() => this.#getBitmapDone());\n return;\n }\n if (this.#bitmapUrl) {\n const url = this.#bitmapUrl;\n this.#bitmapUrl = null;\n this._uiManager.enableWaiting(true);\n this.#bitmapPromise = this._uiManager.imageManager.getFromUrl(url).then(data => this.#getBitmapFetched(data)).finally(() => this.#getBitmapDone());\n return;\n }\n if (this.#bitmapFile) {\n const file = this.#bitmapFile;\n this.#bitmapFile = null;\n this._uiManager.enableWaiting(true);\n this.#bitmapPromise = this._uiManager.imageManager.getFromFile(file).then(data => this.#getBitmapFetched(data)).finally(() => this.#getBitmapDone());\n return;\n }\n const input = document.createElement(\"input\");\n input.type = \"file\";\n input.accept = StampEditor.supportedTypesStr;\n const signal = this._uiManager._signal;\n this.#bitmapPromise = new Promise(resolve => {\n input.addEventListener(\"change\", async () => {\n if (!input.files || input.files.length === 0) {\n this.remove();\n } else {\n this._uiManager.enableWaiting(true);\n const data = await this._uiManager.imageManager.getFromFile(input.files[0]);\n this.#getBitmapFetched(data);\n }\n resolve();\n }, {\n signal\n });\n input.addEventListener(\"cancel\", () => {\n this.remove();\n resolve();\n }, {\n signal\n });\n }).finally(() => this.#getBitmapDone());\n input.click();\n }\n remove() {\n if (this.#bitmapId) {\n this.#bitmap = null;\n this._uiManager.imageManager.deleteId(this.#bitmapId);\n this.#canvas?.remove();\n this.#canvas = null;\n this.#observer?.disconnect();\n this.#observer = null;\n if (this.#resizeTimeoutId) {\n clearTimeout(this.#resizeTimeoutId);\n this.#resizeTimeoutId = null;\n }\n }\n super.remove();\n }\n rebuild() {\n if (!this.parent) {\n if (this.#bitmapId) {\n this.#getBitmap();\n }\n return;\n }\n super.rebuild();\n if (this.div === null) {\n return;\n }\n if (this.#bitmapId && this.#canvas === null) {\n this.#getBitmap();\n }\n if (!this.isAttachedToDOM) {\n this.parent.add(this);\n }\n }\n onceAdded() {\n this._isDraggable = true;\n this.div.focus();\n }\n isEmpty() {\n return !(this.#bitmapPromise || this.#bitmap || this.#bitmapUrl || this.#bitmapFile || this.#bitmapId);\n }\n get isResizable() {\n return true;\n }\n render() {\n if (this.div) {\n return this.div;\n }\n let baseX, baseY;\n if (this.width) {\n baseX = this.x;\n baseY = this.y;\n }\n super.render();\n this.div.hidden = true;\n this.addAltTextButton();\n if (this.#bitmap) {\n this.#createCanvas();\n } else {\n this.#getBitmap();\n }\n if (this.width) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight);\n }\n return this.div;\n }\n #createCanvas() {\n const {\n div\n } = this;\n let {\n width,\n height\n } = this.#bitmap;\n const [pageWidth, pageHeight] = this.pageDimensions;\n const MAX_RATIO = 0.75;\n if (this.width) {\n width = this.width * pageWidth;\n height = this.height * pageHeight;\n } else if (width > MAX_RATIO * pageWidth || height > MAX_RATIO * pageHeight) {\n const factor = Math.min(MAX_RATIO * pageWidth / width, MAX_RATIO * pageHeight / height);\n width *= factor;\n height *= factor;\n }\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setDims(width * parentWidth / pageWidth, height * parentHeight / pageHeight);\n this._uiManager.enableWaiting(false);\n const canvas = this.#canvas = document.createElement(\"canvas\");\n div.append(canvas);\n div.hidden = false;\n this.#drawBitmap(width, height);\n this.#createObserver();\n if (!this.#hasBeenAddedInUndoStack) {\n this.parent.addUndoableEditor(this);\n this.#hasBeenAddedInUndoStack = true;\n }\n this._reportTelemetry({\n action: \"inserted_image\"\n });\n if (this.#bitmapFileName) {\n canvas.setAttribute(\"aria-label\", this.#bitmapFileName);\n }\n }\n #setDimensions(width, height) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.width = width / parentWidth;\n this.height = height / parentHeight;\n this.setDims(width, height);\n if (this._initialOptions?.isCentered) {\n this.center();\n } else {\n this.fixAndSetPosition();\n }\n this._initialOptions = null;\n if (this.#resizeTimeoutId !== null) {\n clearTimeout(this.#resizeTimeoutId);\n }\n const TIME_TO_WAIT = 200;\n this.#resizeTimeoutId = setTimeout(() => {\n this.#resizeTimeoutId = null;\n this.#drawBitmap(width, height);\n }, TIME_TO_WAIT);\n }\n #scaleBitmap(width, height) {\n const {\n width: bitmapWidth,\n height: bitmapHeight\n } = this.#bitmap;\n let newWidth = bitmapWidth;\n let newHeight = bitmapHeight;\n let bitmap = this.#bitmap;\n while (newWidth > 2 * width || newHeight > 2 * height) {\n const prevWidth = newWidth;\n const prevHeight = newHeight;\n if (newWidth > 2 * width) {\n newWidth = newWidth >= 16384 ? Math.floor(newWidth / 2) - 1 : Math.ceil(newWidth / 2);\n }\n if (newHeight > 2 * height) {\n newHeight = newHeight >= 16384 ? Math.floor(newHeight / 2) - 1 : Math.ceil(newHeight / 2);\n }\n const offscreen = new OffscreenCanvas(newWidth, newHeight);\n const ctx = offscreen.getContext(\"2d\");\n ctx.drawImage(bitmap, 0, 0, prevWidth, prevHeight, 0, 0, newWidth, newHeight);\n bitmap = offscreen.transferToImageBitmap();\n }\n return bitmap;\n }\n #drawBitmap(width, height) {\n width = Math.ceil(width);\n height = Math.ceil(height);\n const canvas = this.#canvas;\n if (!canvas || canvas.width === width && canvas.height === height) {\n return;\n }\n canvas.width = width;\n canvas.height = height;\n const bitmap = this.#isSvg ? this.#bitmap : this.#scaleBitmap(width, height);\n if (this._uiManager.hasMLManager && !this.hasAltText()) {\n const offscreen = new OffscreenCanvas(width, height);\n const ctx = offscreen.getContext(\"2d\");\n ctx.drawImage(bitmap, 0, 0, bitmap.width, bitmap.height, 0, 0, width, height);\n this._uiManager.mlGuess({\n service: \"image-to-text\",\n request: {\n data: ctx.getImageData(0, 0, width, height).data,\n width,\n height,\n channels: 4\n }\n }).then(response => {\n const altText = response?.output || \"\";\n if (this.parent && altText && !this.hasAltText()) {\n this.altTextData = {\n altText,\n decorative: false\n };\n }\n });\n }\n const ctx = canvas.getContext(\"2d\");\n ctx.filter = this._uiManager.hcmFilter;\n ctx.drawImage(bitmap, 0, 0, bitmap.width, bitmap.height, 0, 0, width, height);\n }\n getImageForAltText() {\n return this.#canvas;\n }\n #serializeBitmap(toUrl) {\n if (toUrl) {\n if (this.#isSvg) {\n const url = this._uiManager.imageManager.getSvgUrl(this.#bitmapId);\n if (url) {\n return url;\n }\n }\n const canvas = document.createElement(\"canvas\");\n ({\n width: canvas.width,\n height: canvas.height\n } = this.#bitmap);\n const ctx = canvas.getContext(\"2d\");\n ctx.drawImage(this.#bitmap, 0, 0);\n return canvas.toDataURL();\n }\n if (this.#isSvg) {\n const [pageWidth, pageHeight] = this.pageDimensions;\n const width = Math.round(this.width * pageWidth * PixelsPerInch.PDF_TO_CSS_UNITS);\n const height = Math.round(this.height * pageHeight * PixelsPerInch.PDF_TO_CSS_UNITS);\n const offscreen = new OffscreenCanvas(width, height);\n const ctx = offscreen.getContext(\"2d\");\n ctx.drawImage(this.#bitmap, 0, 0, this.#bitmap.width, this.#bitmap.height, 0, 0, width, height);\n return offscreen.transferToImageBitmap();\n }\n return structuredClone(this.#bitmap);\n }\n #createObserver() {\n if (!this._uiManager._signal) {\n return;\n }\n this.#observer = new ResizeObserver(entries => {\n const rect = entries[0].contentRect;\n if (rect.width && rect.height) {\n this.#setDimensions(rect.width, rect.height);\n }\n });\n this.#observer.observe(this.div);\n this._uiManager._signal.addEventListener(\"abort\", () => {\n this.#observer?.disconnect();\n this.#observer = null;\n }, {\n once: true\n });\n }\n static deserialize(data, parent, uiManager) {\n if (data instanceof StampAnnotationElement) {\n return null;\n }\n const editor = super.deserialize(data, parent, uiManager);\n const {\n rect,\n bitmapUrl,\n bitmapId,\n isSvg,\n accessibilityData\n } = data;\n if (bitmapId && uiManager.imageManager.isValidId(bitmapId)) {\n editor.#bitmapId = bitmapId;\n } else {\n editor.#bitmapUrl = bitmapUrl;\n }\n editor.#isSvg = isSvg;\n const [parentWidth, parentHeight] = editor.pageDimensions;\n editor.width = (rect[2] - rect[0]) / parentWidth;\n editor.height = (rect[3] - rect[1]) / parentHeight;\n if (accessibilityData) {\n editor.altTextData = accessibilityData;\n }\n return editor;\n }\n serialize(isForCopying = false, context = null) {\n if (this.isEmpty()) {\n return null;\n }\n const serialized = {\n annotationType: AnnotationEditorType.STAMP,\n bitmapId: this.#bitmapId,\n pageIndex: this.pageIndex,\n rect: this.getRect(0, 0),\n rotation: this.rotation,\n isSvg: this.#isSvg,\n structTreeParentId: this._structTreeParentId\n };\n if (isForCopying) {\n serialized.bitmapUrl = this.#serializeBitmap(true);\n serialized.accessibilityData = this.altTextData;\n return serialized;\n }\n const {\n decorative,\n altText\n } = this.altTextData;\n if (!decorative && altText) {\n serialized.accessibilityData = {\n type: \"Figure\",\n alt: altText\n };\n }\n if (context === null) {\n return serialized;\n }\n context.stamps ||= new Map();\n const area = this.#isSvg ? (serialized.rect[2] - serialized.rect[0]) * (serialized.rect[3] - serialized.rect[1]) : null;\n if (!context.stamps.has(this.#bitmapId)) {\n context.stamps.set(this.#bitmapId, {\n area,\n serialized\n });\n serialized.bitmap = this.#serializeBitmap(false);\n } else if (this.#isSvg) {\n const prevData = context.stamps.get(this.#bitmapId);\n if (area > prevData.area) {\n prevData.area = area;\n prevData.serialized.bitmap.close();\n prevData.serialized.bitmap = this.#serializeBitmap(false);\n }\n }\n return serialized;\n }\n}\n\n;// CONCATENATED MODULE: ./src/display/editor/annotation_editor_layer.js\n\n\n\n\n\n\n\nclass AnnotationEditorLayer {\n #accessibilityManager;\n #allowClick = false;\n #annotationLayer = null;\n #boundPointerup = null;\n #boundPointerdown = null;\n #boundTextLayerPointerDown = null;\n #editorFocusTimeoutId = null;\n #editors = new Map();\n #hadPointerDown = false;\n #isCleaningUp = false;\n #isDisabling = false;\n #textLayer = null;\n #uiManager;\n static _initialized = false;\n static #editorTypes = new Map([FreeTextEditor, InkEditor, StampEditor, HighlightEditor].map(type => [type._editorType, type]));\n constructor({\n uiManager,\n pageIndex,\n div,\n accessibilityManager,\n annotationLayer,\n drawLayer,\n textLayer,\n viewport,\n l10n\n }) {\n const editorTypes = [...AnnotationEditorLayer.#editorTypes.values()];\n if (!AnnotationEditorLayer._initialized) {\n AnnotationEditorLayer._initialized = true;\n for (const editorType of editorTypes) {\n editorType.initialize(l10n, uiManager);\n }\n }\n uiManager.registerEditorTypes(editorTypes);\n this.#uiManager = uiManager;\n this.pageIndex = pageIndex;\n this.div = div;\n this.#accessibilityManager = accessibilityManager;\n this.#annotationLayer = annotationLayer;\n this.viewport = viewport;\n this.#textLayer = textLayer;\n this.drawLayer = drawLayer;\n this.#uiManager.addLayer(this);\n }\n get isEmpty() {\n return this.#editors.size === 0;\n }\n get isInvisible() {\n return this.isEmpty && this.#uiManager.getMode() === AnnotationEditorType.NONE;\n }\n updateToolbar(mode) {\n this.#uiManager.updateToolbar(mode);\n }\n updateMode(mode = this.#uiManager.getMode()) {\n this.#cleanup();\n switch (mode) {\n case AnnotationEditorType.NONE:\n this.disableTextSelection();\n this.togglePointerEvents(false);\n this.toggleAnnotationLayerPointerEvents(true);\n this.disableClick();\n return;\n case AnnotationEditorType.INK:\n this.addInkEditorIfNeeded(false);\n this.disableTextSelection();\n this.togglePointerEvents(true);\n this.disableClick();\n break;\n case AnnotationEditorType.HIGHLIGHT:\n this.enableTextSelection();\n this.togglePointerEvents(false);\n this.disableClick();\n break;\n default:\n this.disableTextSelection();\n this.togglePointerEvents(true);\n this.enableClick();\n }\n this.toggleAnnotationLayerPointerEvents(false);\n const {\n classList\n } = this.div;\n for (const editorType of AnnotationEditorLayer.#editorTypes.values()) {\n classList.toggle(`${editorType._type}Editing`, mode === editorType._editorType);\n }\n this.div.hidden = false;\n }\n hasTextLayer(textLayer) {\n return textLayer === this.#textLayer?.div;\n }\n addInkEditorIfNeeded(isCommitting) {\n if (this.#uiManager.getMode() !== AnnotationEditorType.INK) {\n return;\n }\n if (!isCommitting) {\n for (const editor of this.#editors.values()) {\n if (editor.isEmpty()) {\n editor.setInBackground();\n return;\n }\n }\n }\n const editor = this.createAndAddNewEditor({\n offsetX: 0,\n offsetY: 0\n }, false);\n editor.setInBackground();\n }\n setEditingState(isEditing) {\n this.#uiManager.setEditingState(isEditing);\n }\n addCommands(params) {\n this.#uiManager.addCommands(params);\n }\n togglePointerEvents(enabled = false) {\n this.div.classList.toggle(\"disabled\", !enabled);\n }\n toggleAnnotationLayerPointerEvents(enabled = false) {\n this.#annotationLayer?.div.classList.toggle(\"disabled\", !enabled);\n }\n enable() {\n this.div.tabIndex = 0;\n this.togglePointerEvents(true);\n const annotationElementIds = new Set();\n for (const editor of this.#editors.values()) {\n editor.enableEditing();\n editor.show(true);\n if (editor.annotationElementId) {\n this.#uiManager.removeChangedExistingAnnotation(editor);\n annotationElementIds.add(editor.annotationElementId);\n }\n }\n if (!this.#annotationLayer) {\n return;\n }\n const editables = this.#annotationLayer.getEditableAnnotations();\n for (const editable of editables) {\n editable.hide();\n if (this.#uiManager.isDeletedAnnotationElement(editable.data.id)) {\n continue;\n }\n if (annotationElementIds.has(editable.data.id)) {\n continue;\n }\n const editor = this.deserialize(editable);\n if (!editor) {\n continue;\n }\n this.addOrRebuild(editor);\n editor.enableEditing();\n }\n }\n disable() {\n this.#isDisabling = true;\n this.div.tabIndex = -1;\n this.togglePointerEvents(false);\n const changedAnnotations = new Map();\n const resetAnnotations = new Map();\n for (const editor of this.#editors.values()) {\n editor.disableEditing();\n if (!editor.annotationElementId) {\n continue;\n }\n if (editor.serialize() !== null) {\n changedAnnotations.set(editor.annotationElementId, editor);\n continue;\n } else {\n resetAnnotations.set(editor.annotationElementId, editor);\n }\n this.getEditableAnnotation(editor.annotationElementId)?.show();\n editor.remove();\n }\n if (this.#annotationLayer) {\n const editables = this.#annotationLayer.getEditableAnnotations();\n for (const editable of editables) {\n const {\n id\n } = editable.data;\n if (this.#uiManager.isDeletedAnnotationElement(id)) {\n continue;\n }\n let editor = resetAnnotations.get(id);\n if (editor) {\n editor.resetAnnotationElement(editable);\n editor.show(false);\n editable.show();\n continue;\n }\n editor = changedAnnotations.get(id);\n if (editor) {\n this.#uiManager.addChangedExistingAnnotation(editor);\n editor.renderAnnotationElement(editable);\n editor.show(false);\n }\n editable.show();\n }\n }\n this.#cleanup();\n if (this.isEmpty) {\n this.div.hidden = true;\n }\n const {\n classList\n } = this.div;\n for (const editorType of AnnotationEditorLayer.#editorTypes.values()) {\n classList.remove(`${editorType._type}Editing`);\n }\n this.disableTextSelection();\n this.toggleAnnotationLayerPointerEvents(true);\n this.#isDisabling = false;\n }\n getEditableAnnotation(id) {\n return this.#annotationLayer?.getEditableAnnotation(id) || null;\n }\n setActiveEditor(editor) {\n const currentActive = this.#uiManager.getActive();\n if (currentActive === editor) {\n return;\n }\n this.#uiManager.setActiveEditor(editor);\n }\n enableTextSelection() {\n this.div.tabIndex = -1;\n if (this.#textLayer?.div && !this.#boundTextLayerPointerDown) {\n this.#boundTextLayerPointerDown = this.#textLayerPointerDown.bind(this);\n this.#textLayer.div.addEventListener(\"pointerdown\", this.#boundTextLayerPointerDown, {\n signal: this.#uiManager._signal\n });\n this.#textLayer.div.classList.add(\"highlighting\");\n }\n }\n disableTextSelection() {\n this.div.tabIndex = 0;\n if (this.#textLayer?.div && this.#boundTextLayerPointerDown) {\n this.#textLayer.div.removeEventListener(\"pointerdown\", this.#boundTextLayerPointerDown);\n this.#boundTextLayerPointerDown = null;\n this.#textLayer.div.classList.remove(\"highlighting\");\n }\n }\n #textLayerPointerDown(event) {\n this.#uiManager.unselectAll();\n if (event.target === this.#textLayer.div) {\n const {\n isMac\n } = util_FeatureTest.platform;\n if (event.button !== 0 || event.ctrlKey && isMac) {\n return;\n }\n this.#uiManager.showAllEditors(\"highlight\", true, true);\n this.#textLayer.div.classList.add(\"free\");\n HighlightEditor.startHighlighting(this, this.#uiManager.direction === \"ltr\", event);\n this.#textLayer.div.addEventListener(\"pointerup\", () => {\n this.#textLayer.div.classList.remove(\"free\");\n }, {\n once: true,\n signal: this.#uiManager._signal\n });\n event.preventDefault();\n }\n }\n enableClick() {\n if (this.#boundPointerdown) {\n return;\n }\n const signal = this.#uiManager._signal;\n this.#boundPointerdown = this.pointerdown.bind(this);\n this.#boundPointerup = this.pointerup.bind(this);\n this.div.addEventListener(\"pointerdown\", this.#boundPointerdown, {\n signal\n });\n this.div.addEventListener(\"pointerup\", this.#boundPointerup, {\n signal\n });\n }\n disableClick() {\n if (!this.#boundPointerdown) {\n return;\n }\n this.div.removeEventListener(\"pointerdown\", this.#boundPointerdown);\n this.div.removeEventListener(\"pointerup\", this.#boundPointerup);\n this.#boundPointerdown = null;\n this.#boundPointerup = null;\n }\n attach(editor) {\n this.#editors.set(editor.id, editor);\n const {\n annotationElementId\n } = editor;\n if (annotationElementId && this.#uiManager.isDeletedAnnotationElement(annotationElementId)) {\n this.#uiManager.removeDeletedAnnotationElement(editor);\n }\n }\n detach(editor) {\n this.#editors.delete(editor.id);\n this.#accessibilityManager?.removePointerInTextLayer(editor.contentDiv);\n if (!this.#isDisabling && editor.annotationElementId) {\n this.#uiManager.addDeletedAnnotationElement(editor);\n }\n }\n remove(editor) {\n this.detach(editor);\n this.#uiManager.removeEditor(editor);\n editor.div.remove();\n editor.isAttachedToDOM = false;\n if (!this.#isCleaningUp) {\n this.addInkEditorIfNeeded(false);\n }\n }\n changeParent(editor) {\n if (editor.parent === this) {\n return;\n }\n if (editor.parent && editor.annotationElementId) {\n this.#uiManager.addDeletedAnnotationElement(editor.annotationElementId);\n AnnotationEditor.deleteAnnotationElement(editor);\n editor.annotationElementId = null;\n }\n this.attach(editor);\n editor.parent?.detach(editor);\n editor.setParent(this);\n if (editor.div && editor.isAttachedToDOM) {\n editor.div.remove();\n this.div.append(editor.div);\n }\n }\n add(editor) {\n if (editor.parent === this && editor.isAttachedToDOM) {\n return;\n }\n this.changeParent(editor);\n this.#uiManager.addEditor(editor);\n this.attach(editor);\n if (!editor.isAttachedToDOM) {\n const div = editor.render();\n this.div.append(div);\n editor.isAttachedToDOM = true;\n }\n editor.fixAndSetPosition();\n editor.onceAdded();\n this.#uiManager.addToAnnotationStorage(editor);\n editor._reportTelemetry(editor.telemetryInitialData);\n }\n moveEditorInDOM(editor) {\n if (!editor.isAttachedToDOM) {\n return;\n }\n const {\n activeElement\n } = document;\n if (editor.div.contains(activeElement) && !this.#editorFocusTimeoutId) {\n editor._focusEventsAllowed = false;\n this.#editorFocusTimeoutId = setTimeout(() => {\n this.#editorFocusTimeoutId = null;\n if (!editor.div.contains(document.activeElement)) {\n editor.div.addEventListener(\"focusin\", () => {\n editor._focusEventsAllowed = true;\n }, {\n once: true,\n signal: this.#uiManager._signal\n });\n activeElement.focus();\n } else {\n editor._focusEventsAllowed = true;\n }\n }, 0);\n }\n editor._structTreeParentId = this.#accessibilityManager?.moveElementInDOM(this.div, editor.div, editor.contentDiv, true);\n }\n addOrRebuild(editor) {\n if (editor.needsToBeRebuilt()) {\n editor.parent ||= this;\n editor.rebuild();\n editor.show();\n } else {\n this.add(editor);\n }\n }\n addUndoableEditor(editor) {\n const cmd = () => editor._uiManager.rebuild(editor);\n const undo = () => {\n editor.remove();\n };\n this.addCommands({\n cmd,\n undo,\n mustExec: false\n });\n }\n getNextId() {\n return this.#uiManager.getId();\n }\n get #currentEditorType() {\n return AnnotationEditorLayer.#editorTypes.get(this.#uiManager.getMode());\n }\n get _signal() {\n return this.#uiManager._signal;\n }\n #createNewEditor(params) {\n const editorType = this.#currentEditorType;\n return editorType ? new editorType.prototype.constructor(params) : null;\n }\n canCreateNewEmptyEditor() {\n return this.#currentEditorType?.canCreateNewEmptyEditor();\n }\n pasteEditor(mode, params) {\n this.#uiManager.updateToolbar(mode);\n this.#uiManager.updateMode(mode);\n const {\n offsetX,\n offsetY\n } = this.#getCenterPoint();\n const id = this.getNextId();\n const editor = this.#createNewEditor({\n parent: this,\n id,\n x: offsetX,\n y: offsetY,\n uiManager: this.#uiManager,\n isCentered: true,\n ...params\n });\n if (editor) {\n this.add(editor);\n }\n }\n deserialize(data) {\n return AnnotationEditorLayer.#editorTypes.get(data.annotationType ?? data.annotationEditorType)?.deserialize(data, this, this.#uiManager) || null;\n }\n createAndAddNewEditor(event, isCentered, data = {}) {\n const id = this.getNextId();\n const editor = this.#createNewEditor({\n parent: this,\n id,\n x: event.offsetX,\n y: event.offsetY,\n uiManager: this.#uiManager,\n isCentered,\n ...data\n });\n if (editor) {\n this.add(editor);\n }\n return editor;\n }\n #getCenterPoint() {\n const {\n x,\n y,\n width,\n height\n } = this.div.getBoundingClientRect();\n const tlX = Math.max(0, x);\n const tlY = Math.max(0, y);\n const brX = Math.min(window.innerWidth, x + width);\n const brY = Math.min(window.innerHeight, y + height);\n const centerX = (tlX + brX) / 2 - x;\n const centerY = (tlY + brY) / 2 - y;\n const [offsetX, offsetY] = this.viewport.rotation % 180 === 0 ? [centerX, centerY] : [centerY, centerX];\n return {\n offsetX,\n offsetY\n };\n }\n addNewEditor() {\n this.createAndAddNewEditor(this.#getCenterPoint(), true);\n }\n setSelected(editor) {\n this.#uiManager.setSelected(editor);\n }\n toggleSelected(editor) {\n this.#uiManager.toggleSelected(editor);\n }\n isSelected(editor) {\n return this.#uiManager.isSelected(editor);\n }\n unselect(editor) {\n this.#uiManager.unselect(editor);\n }\n pointerup(event) {\n const {\n isMac\n } = util_FeatureTest.platform;\n if (event.button !== 0 || event.ctrlKey && isMac) {\n return;\n }\n if (event.target !== this.div) {\n return;\n }\n if (!this.#hadPointerDown) {\n return;\n }\n this.#hadPointerDown = false;\n if (!this.#allowClick) {\n this.#allowClick = true;\n return;\n }\n if (this.#uiManager.getMode() === AnnotationEditorType.STAMP) {\n this.#uiManager.unselectAll();\n return;\n }\n this.createAndAddNewEditor(event, false);\n }\n pointerdown(event) {\n if (this.#uiManager.getMode() === AnnotationEditorType.HIGHLIGHT) {\n this.enableTextSelection();\n }\n if (this.#hadPointerDown) {\n this.#hadPointerDown = false;\n return;\n }\n const {\n isMac\n } = util_FeatureTest.platform;\n if (event.button !== 0 || event.ctrlKey && isMac) {\n return;\n }\n if (event.target !== this.div) {\n return;\n }\n this.#hadPointerDown = true;\n const editor = this.#uiManager.getActive();\n this.#allowClick = !editor || editor.isEmpty();\n }\n findNewParent(editor, x, y) {\n const layer = this.#uiManager.findParent(x, y);\n if (layer === null || layer === this) {\n return false;\n }\n layer.changeParent(editor);\n return true;\n }\n destroy() {\n if (this.#uiManager.getActive()?.parent === this) {\n this.#uiManager.commitOrRemove();\n this.#uiManager.setActiveEditor(null);\n }\n if (this.#editorFocusTimeoutId) {\n clearTimeout(this.#editorFocusTimeoutId);\n this.#editorFocusTimeoutId = null;\n }\n for (const editor of this.#editors.values()) {\n this.#accessibilityManager?.removePointerInTextLayer(editor.contentDiv);\n editor.setParent(null);\n editor.isAttachedToDOM = false;\n editor.div.remove();\n }\n this.div = null;\n this.#editors.clear();\n this.#uiManager.removeLayer(this);\n }\n #cleanup() {\n this.#isCleaningUp = true;\n for (const editor of this.#editors.values()) {\n if (editor.isEmpty()) {\n editor.remove();\n }\n }\n this.#isCleaningUp = false;\n }\n render({\n viewport\n }) {\n this.viewport = viewport;\n setLayerDimensions(this.div, viewport);\n for (const editor of this.#uiManager.getEditors(this.pageIndex)) {\n this.add(editor);\n editor.rebuild();\n }\n this.updateMode();\n }\n update({\n viewport\n }) {\n this.#uiManager.commitOrRemove();\n this.#cleanup();\n const oldRotation = this.viewport.rotation;\n const rotation = viewport.rotation;\n this.viewport = viewport;\n setLayerDimensions(this.div, {\n rotation\n });\n if (oldRotation !== rotation) {\n for (const editor of this.#editors.values()) {\n editor.rotate(rotation);\n }\n }\n this.addInkEditorIfNeeded(false);\n }\n get pageDimensions() {\n const {\n pageWidth,\n pageHeight\n } = this.viewport.rawDims;\n return [pageWidth, pageHeight];\n }\n get scale() {\n return this.#uiManager.viewParameters.realScale;\n }\n}\n\n;// CONCATENATED MODULE: ./src/display/draw_layer.js\n\n\nclass DrawLayer {\n #parent = null;\n #id = 0;\n #mapping = new Map();\n #toUpdate = new Map();\n constructor({\n pageIndex\n }) {\n this.pageIndex = pageIndex;\n }\n setParent(parent) {\n if (!this.#parent) {\n this.#parent = parent;\n return;\n }\n if (this.#parent !== parent) {\n if (this.#mapping.size > 0) {\n for (const root of this.#mapping.values()) {\n root.remove();\n parent.append(root);\n }\n }\n this.#parent = parent;\n }\n }\n static get _svgFactory() {\n return shadow(this, \"_svgFactory\", new DOMSVGFactory());\n }\n static #setBox(element, {\n x = 0,\n y = 0,\n width = 1,\n height = 1\n } = {}) {\n const {\n style\n } = element;\n style.top = `${100 * y}%`;\n style.left = `${100 * x}%`;\n style.width = `${100 * width}%`;\n style.height = `${100 * height}%`;\n }\n #createSVG(box) {\n const svg = DrawLayer._svgFactory.create(1, 1, true);\n this.#parent.append(svg);\n svg.setAttribute(\"aria-hidden\", true);\n DrawLayer.#setBox(svg, box);\n return svg;\n }\n #createClipPath(defs, pathId) {\n const clipPath = DrawLayer._svgFactory.createElement(\"clipPath\");\n defs.append(clipPath);\n const clipPathId = `clip_${pathId}`;\n clipPath.setAttribute(\"id\", clipPathId);\n clipPath.setAttribute(\"clipPathUnits\", \"objectBoundingBox\");\n const clipPathUse = DrawLayer._svgFactory.createElement(\"use\");\n clipPath.append(clipPathUse);\n clipPathUse.setAttribute(\"href\", `#${pathId}`);\n clipPathUse.classList.add(\"clip\");\n return clipPathId;\n }\n highlight(outlines, color, opacity, isPathUpdatable = false) {\n const id = this.#id++;\n const root = this.#createSVG(outlines.box);\n root.classList.add(\"highlight\");\n if (outlines.free) {\n root.classList.add(\"free\");\n }\n const defs = DrawLayer._svgFactory.createElement(\"defs\");\n root.append(defs);\n const path = DrawLayer._svgFactory.createElement(\"path\");\n defs.append(path);\n const pathId = `path_p${this.pageIndex}_${id}`;\n path.setAttribute(\"id\", pathId);\n path.setAttribute(\"d\", outlines.toSVGPath());\n if (isPathUpdatable) {\n this.#toUpdate.set(id, path);\n }\n const clipPathId = this.#createClipPath(defs, pathId);\n const use = DrawLayer._svgFactory.createElement(\"use\");\n root.append(use);\n root.setAttribute(\"fill\", color);\n root.setAttribute(\"fill-opacity\", opacity);\n use.setAttribute(\"href\", `#${pathId}`);\n this.#mapping.set(id, root);\n return {\n id,\n clipPathId: `url(#${clipPathId})`\n };\n }\n highlightOutline(outlines) {\n const id = this.#id++;\n const root = this.#createSVG(outlines.box);\n root.classList.add(\"highlightOutline\");\n const defs = DrawLayer._svgFactory.createElement(\"defs\");\n root.append(defs);\n const path = DrawLayer._svgFactory.createElement(\"path\");\n defs.append(path);\n const pathId = `path_p${this.pageIndex}_${id}`;\n path.setAttribute(\"id\", pathId);\n path.setAttribute(\"d\", outlines.toSVGPath());\n path.setAttribute(\"vector-effect\", \"non-scaling-stroke\");\n let maskId;\n if (outlines.free) {\n root.classList.add(\"free\");\n const mask = DrawLayer._svgFactory.createElement(\"mask\");\n defs.append(mask);\n maskId = `mask_p${this.pageIndex}_${id}`;\n mask.setAttribute(\"id\", maskId);\n mask.setAttribute(\"maskUnits\", \"objectBoundingBox\");\n const rect = DrawLayer._svgFactory.createElement(\"rect\");\n mask.append(rect);\n rect.setAttribute(\"width\", \"1\");\n rect.setAttribute(\"height\", \"1\");\n rect.setAttribute(\"fill\", \"white\");\n const use = DrawLayer._svgFactory.createElement(\"use\");\n mask.append(use);\n use.setAttribute(\"href\", `#${pathId}`);\n use.setAttribute(\"stroke\", \"none\");\n use.setAttribute(\"fill\", \"black\");\n use.setAttribute(\"fill-rule\", \"nonzero\");\n use.classList.add(\"mask\");\n }\n const use1 = DrawLayer._svgFactory.createElement(\"use\");\n root.append(use1);\n use1.setAttribute(\"href\", `#${pathId}`);\n if (maskId) {\n use1.setAttribute(\"mask\", `url(#${maskId})`);\n }\n const use2 = use1.cloneNode();\n root.append(use2);\n use1.classList.add(\"mainOutline\");\n use2.classList.add(\"secondaryOutline\");\n this.#mapping.set(id, root);\n return id;\n }\n finalizeLine(id, line) {\n const path = this.#toUpdate.get(id);\n this.#toUpdate.delete(id);\n this.updateBox(id, line.box);\n path.setAttribute(\"d\", line.toSVGPath());\n }\n updateLine(id, line) {\n const root = this.#mapping.get(id);\n const defs = root.firstChild;\n const path = defs.firstChild;\n path.setAttribute(\"d\", line.toSVGPath());\n }\n removeFreeHighlight(id) {\n this.remove(id);\n this.#toUpdate.delete(id);\n }\n updatePath(id, line) {\n this.#toUpdate.get(id).setAttribute(\"d\", line.toSVGPath());\n }\n updateBox(id, box) {\n DrawLayer.#setBox(this.#mapping.get(id), box);\n }\n show(id, visible) {\n this.#mapping.get(id).classList.toggle(\"hidden\", !visible);\n }\n rotate(id, angle) {\n this.#mapping.get(id).setAttribute(\"data-main-rotation\", angle);\n }\n changeColor(id, color) {\n this.#mapping.get(id).setAttribute(\"fill\", color);\n }\n changeOpacity(id, opacity) {\n this.#mapping.get(id).setAttribute(\"fill-opacity\", opacity);\n }\n addClass(id, className) {\n this.#mapping.get(id).classList.add(className);\n }\n removeClass(id, className) {\n this.#mapping.get(id).classList.remove(className);\n }\n remove(id) {\n if (this.#parent === null) {\n return;\n }\n this.#mapping.get(id).remove();\n this.#mapping.delete(id);\n }\n destroy() {\n this.#parent = null;\n for (const root of this.#mapping.values()) {\n root.remove();\n }\n this.#mapping.clear();\n }\n}\n\n;// CONCATENATED MODULE: ./src/pdf.js\n\n\n\n\n\n\n\n\n\n\n\n\nconst pdfjsVersion = \"4.4.168\";\nconst pdfjsBuild = \"19fbc8998\";\n\nvar __webpack_exports__AbortException = __webpack_exports__.AbortException;\nvar __webpack_exports__AnnotationEditorLayer = __webpack_exports__.AnnotationEditorLayer;\nvar __webpack_exports__AnnotationEditorParamsType = __webpack_exports__.AnnotationEditorParamsType;\nvar __webpack_exports__AnnotationEditorType = __webpack_exports__.AnnotationEditorType;\nvar __webpack_exports__AnnotationEditorUIManager = __webpack_exports__.AnnotationEditorUIManager;\nvar __webpack_exports__AnnotationLayer = __webpack_exports__.AnnotationLayer;\nvar __webpack_exports__AnnotationMode = __webpack_exports__.AnnotationMode;\nvar __webpack_exports__CMapCompressionType = __webpack_exports__.CMapCompressionType;\nvar __webpack_exports__ColorPicker = __webpack_exports__.ColorPicker;\nvar __webpack_exports__DOMSVGFactory = __webpack_exports__.DOMSVGFactory;\nvar __webpack_exports__DrawLayer = __webpack_exports__.DrawLayer;\nvar __webpack_exports__FeatureTest = __webpack_exports__.FeatureTest;\nvar __webpack_exports__GlobalWorkerOptions = __webpack_exports__.GlobalWorkerOptions;\nvar __webpack_exports__ImageKind = __webpack_exports__.ImageKind;\nvar __webpack_exports__InvalidPDFException = __webpack_exports__.InvalidPDFException;\nvar __webpack_exports__MissingPDFException = __webpack_exports__.MissingPDFException;\nvar __webpack_exports__OPS = __webpack_exports__.OPS;\nvar __webpack_exports__Outliner = __webpack_exports__.Outliner;\nvar __webpack_exports__PDFDataRangeTransport = __webpack_exports__.PDFDataRangeTransport;\nvar __webpack_exports__PDFDateString = __webpack_exports__.PDFDateString;\nvar __webpack_exports__PDFWorker = __webpack_exports__.PDFWorker;\nvar __webpack_exports__PasswordResponses = __webpack_exports__.PasswordResponses;\nvar __webpack_exports__PermissionFlag = __webpack_exports__.PermissionFlag;\nvar __webpack_exports__PixelsPerInch = __webpack_exports__.PixelsPerInch;\nvar __webpack_exports__RenderingCancelledException = __webpack_exports__.RenderingCancelledException;\nvar __webpack_exports__TextLayer = __webpack_exports__.TextLayer;\nvar __webpack_exports__UnexpectedResponseException = __webpack_exports__.UnexpectedResponseException;\nvar __webpack_exports__Util = __webpack_exports__.Util;\nvar __webpack_exports__VerbosityLevel = __webpack_exports__.VerbosityLevel;\nvar __webpack_exports__XfaLayer = __webpack_exports__.XfaLayer;\nvar __webpack_exports__build = __webpack_exports__.build;\nvar __webpack_exports__createValidAbsoluteUrl = __webpack_exports__.createValidAbsoluteUrl;\nvar __webpack_exports__fetchData = __webpack_exports__.fetchData;\nvar __webpack_exports__getDocument = __webpack_exports__.getDocument;\nvar __webpack_exports__getFilenameFromUrl = __webpack_exports__.getFilenameFromUrl;\nvar __webpack_exports__getPdfFilenameFromUrl = __webpack_exports__.getPdfFilenameFromUrl;\nvar __webpack_exports__getXfaPageViewport = __webpack_exports__.getXfaPageViewport;\nvar __webpack_exports__isDataScheme = __webpack_exports__.isDataScheme;\nvar __webpack_exports__isPdfFile = __webpack_exports__.isPdfFile;\nvar __webpack_exports__noContextMenu = __webpack_exports__.noContextMenu;\nvar __webpack_exports__normalizeUnicode = __webpack_exports__.normalizeUnicode;\nvar __webpack_exports__renderTextLayer = __webpack_exports__.renderTextLayer;\nvar __webpack_exports__setLayerDimensions = __webpack_exports__.setLayerDimensions;\nvar __webpack_exports__shadow = __webpack_exports__.shadow;\nvar __webpack_exports__updateTextLayer = __webpack_exports__.updateTextLayer;\nvar __webpack_exports__version = __webpack_exports__.version;\nexport { __webpack_exports__AbortException as AbortException, __webpack_exports__AnnotationEditorLayer as AnnotationEditorLayer, __webpack_exports__AnnotationEditorParamsType as AnnotationEditorParamsType, __webpack_exports__AnnotationEditorType as AnnotationEditorType, __webpack_exports__AnnotationEditorUIManager as AnnotationEditorUIManager, __webpack_exports__AnnotationLayer as AnnotationLayer, __webpack_exports__AnnotationMode as AnnotationMode, __webpack_exports__CMapCompressionType as CMapCompressionType, __webpack_exports__ColorPicker as ColorPicker, __webpack_exports__DOMSVGFactory as DOMSVGFactory, __webpack_exports__DrawLayer as DrawLayer, __webpack_exports__FeatureTest as FeatureTest, __webpack_exports__GlobalWorkerOptions as GlobalWorkerOptions, __webpack_exports__ImageKind as ImageKind, __webpack_exports__InvalidPDFException as InvalidPDFException, __webpack_exports__MissingPDFException as MissingPDFException, __webpack_exports__OPS as OPS, __webpack_exports__Outliner as Outliner, __webpack_exports__PDFDataRangeTransport as PDFDataRangeTransport, __webpack_exports__PDFDateString as PDFDateString, __webpack_exports__PDFWorker as PDFWorker, __webpack_exports__PasswordResponses as PasswordResponses, __webpack_exports__PermissionFlag as PermissionFlag, __webpack_exports__PixelsPerInch as PixelsPerInch, __webpack_exports__RenderingCancelledException as RenderingCancelledException, __webpack_exports__TextLayer as TextLayer, __webpack_exports__UnexpectedResponseException as UnexpectedResponseException, __webpack_exports__Util as Util, __webpack_exports__VerbosityLevel as VerbosityLevel, __webpack_exports__XfaLayer as XfaLayer, __webpack_exports__build as build, __webpack_exports__createValidAbsoluteUrl as createValidAbsoluteUrl, __webpack_exports__fetchData as fetchData, __webpack_exports__getDocument as getDocument, __webpack_exports__getFilenameFromUrl as getFilenameFromUrl, __webpack_exports__getPdfFilenameFromUrl as getPdfFilenameFromUrl, __webpack_exports__getXfaPageViewport as getXfaPageViewport, __webpack_exports__isDataScheme as isDataScheme, __webpack_exports__isPdfFile as isPdfFile, __webpack_exports__noContextMenu as noContextMenu, __webpack_exports__normalizeUnicode as normalizeUnicode, __webpack_exports__renderTextLayer as renderTextLayer, __webpack_exports__setLayerDimensions as setLayerDimensions, __webpack_exports__shadow as shadow, __webpack_exports__updateTextLayer as updateTextLayer, __webpack_exports__version as version };\n\n//# sourceMappingURL=pdf.mjs.map","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\n// As defined on the list of supported events: https://reactjs.org/docs/events.html\nexport var clipboardEvents = ['onCopy', 'onCut', 'onPaste'];\nexport var compositionEvents = [\n 'onCompositionEnd',\n 'onCompositionStart',\n 'onCompositionUpdate',\n];\nexport var focusEvents = ['onFocus', 'onBlur'];\nexport var formEvents = ['onInput', 'onInvalid', 'onReset', 'onSubmit'];\nexport var imageEvents = ['onLoad', 'onError'];\nexport var keyboardEvents = ['onKeyDown', 'onKeyPress', 'onKeyUp'];\nexport var mediaEvents = [\n 'onAbort',\n 'onCanPlay',\n 'onCanPlayThrough',\n 'onDurationChange',\n 'onEmptied',\n 'onEncrypted',\n 'onEnded',\n 'onError',\n 'onLoadedData',\n 'onLoadedMetadata',\n 'onLoadStart',\n 'onPause',\n 'onPlay',\n 'onPlaying',\n 'onProgress',\n 'onRateChange',\n 'onSeeked',\n 'onSeeking',\n 'onStalled',\n 'onSuspend',\n 'onTimeUpdate',\n 'onVolumeChange',\n 'onWaiting',\n];\nexport var mouseEvents = [\n 'onClick',\n 'onContextMenu',\n 'onDoubleClick',\n 'onMouseDown',\n 'onMouseEnter',\n 'onMouseLeave',\n 'onMouseMove',\n 'onMouseOut',\n 'onMouseOver',\n 'onMouseUp',\n];\nexport var dragEvents = [\n 'onDrag',\n 'onDragEnd',\n 'onDragEnter',\n 'onDragExit',\n 'onDragLeave',\n 'onDragOver',\n 'onDragStart',\n 'onDrop',\n];\nexport var selectionEvents = ['onSelect'];\nexport var touchEvents = ['onTouchCancel', 'onTouchEnd', 'onTouchMove', 'onTouchStart'];\nexport var pointerEvents = [\n 'onPointerDown',\n 'onPointerMove',\n 'onPointerUp',\n 'onPointerCancel',\n 'onGotPointerCapture',\n 'onLostPointerCapture',\n 'onPointerEnter',\n 'onPointerLeave',\n 'onPointerOver',\n 'onPointerOut',\n];\nexport var uiEvents = ['onScroll'];\nexport var wheelEvents = ['onWheel'];\nexport var animationEvents = [\n 'onAnimationStart',\n 'onAnimationEnd',\n 'onAnimationIteration',\n];\nexport var transitionEvents = ['onTransitionEnd'];\nexport var otherEvents = ['onToggle'];\nexport var changeEvents = ['onChange'];\nexport var allEvents = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], clipboardEvents, true), compositionEvents, true), focusEvents, true), formEvents, true), imageEvents, true), keyboardEvents, true), mediaEvents, true), mouseEvents, true), dragEvents, true), selectionEvents, true), touchEvents, true), pointerEvents, true), uiEvents, true), wheelEvents, true), animationEvents, true), transitionEvents, true), changeEvents, true), otherEvents, true);\n/**\n * Returns an object with on-event callback props curried with provided args.\n * @param {Object} props Props passed to a component.\n * @param {Function=} getArgs A function that returns argument(s) on-event callbacks\n * shall be curried with.\n */\nexport default function makeEventProps(props, getArgs) {\n var eventProps = {};\n allEvents.forEach(function (eventName) {\n var eventHandler = props[eventName];\n if (!eventHandler) {\n return;\n }\n if (getArgs) {\n eventProps[eventName] = (function (event) {\n return eventHandler(event, getArgs(eventName));\n });\n }\n else {\n eventProps[eventName] = eventHandler;\n }\n });\n return eventProps;\n}\n","export default function makeCancellablePromise(promise) {\n var isCancelled = false;\n var wrappedPromise = new Promise(function (resolve, reject) {\n promise\n .then(function (value) { return !isCancelled && resolve(value); })\n .catch(function (error) { return !isCancelled && reject(error); });\n });\n return {\n promise: wrappedPromise,\n cancel: function () {\n isCancelled = true;\n },\n };\n}\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","var has = Object.prototype.hasOwnProperty;\n\nfunction find(iter, tar, key) {\n\tfor (key of iter.keys()) {\n\t\tif (dequal(key, tar)) return key;\n\t}\n}\n\nexport function dequal(foo, bar) {\n\tvar ctor, len, tmp;\n\tif (foo === bar) return true;\n\n\tif (foo && bar && (ctor=foo.constructor) === bar.constructor) {\n\t\tif (ctor === Date) return foo.getTime() === bar.getTime();\n\t\tif (ctor === RegExp) return foo.toString() === bar.toString();\n\n\t\tif (ctor === Array) {\n\t\t\tif ((len=foo.length) === bar.length) {\n\t\t\t\twhile (len-- && dequal(foo[len], bar[len]));\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (ctor === Set) {\n\t\t\tif (foo.size !== bar.size) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tfor (len of foo) {\n\t\t\t\ttmp = len;\n\t\t\t\tif (tmp && typeof tmp === 'object') {\n\t\t\t\t\ttmp = find(bar, tmp);\n\t\t\t\t\tif (!tmp) return false;\n\t\t\t\t}\n\t\t\t\tif (!bar.has(tmp)) return false;\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\tif (ctor === Map) {\n\t\t\tif (foo.size !== bar.size) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tfor (len of foo) {\n\t\t\t\ttmp = len[0];\n\t\t\t\tif (tmp && typeof tmp === 'object') {\n\t\t\t\t\ttmp = find(bar, tmp);\n\t\t\t\t\tif (!tmp) return false;\n\t\t\t\t}\n\t\t\t\tif (!dequal(len[1], bar.get(tmp))) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\tif (ctor === ArrayBuffer) {\n\t\t\tfoo = new Uint8Array(foo);\n\t\t\tbar = new Uint8Array(bar);\n\t\t} else if (ctor === DataView) {\n\t\t\tif ((len=foo.byteLength) === bar.byteLength) {\n\t\t\t\twhile (len-- && foo.getInt8(len) === bar.getInt8(len));\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (ArrayBuffer.isView(foo)) {\n\t\t\tif ((len=foo.byteLength) === bar.byteLength) {\n\t\t\t\twhile (len-- && foo[len] === bar[len]);\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (!ctor || typeof foo === 'object') {\n\t\t\tlen = 0;\n\t\t\tfor (ctor in foo) {\n\t\t\t\tif (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;\n\t\t\t\tif (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;\n\t\t\t}\n\t\t\treturn Object.keys(bar).length === len;\n\t\t}\n\t}\n\n\treturn foo !== foo && bar !== bar;\n}\n","'use client';\nimport { createContext } from 'react';\nconst documentContext = createContext(null);\nexport default documentContext;\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function Message({ children, type }) {\n return _jsx(\"div\", { className: `react-pdf__message react-pdf__message--${type}`, children: children });\n}\n","/* Copyright 2015 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport invariant from 'tiny-invariant';\nconst DEFAULT_LINK_REL = 'noopener noreferrer nofollow';\nexport default class LinkService {\n constructor() {\n this.externalLinkEnabled = true;\n this.externalLinkRel = undefined;\n this.externalLinkTarget = undefined;\n this.isInPresentationMode = false;\n this.pdfDocument = undefined;\n this.pdfViewer = undefined;\n }\n setDocument(pdfDocument) {\n this.pdfDocument = pdfDocument;\n }\n setViewer(pdfViewer) {\n this.pdfViewer = pdfViewer;\n }\n setExternalLinkRel(externalLinkRel) {\n this.externalLinkRel = externalLinkRel;\n }\n setExternalLinkTarget(externalLinkTarget) {\n this.externalLinkTarget = externalLinkTarget;\n }\n setHistory() {\n // Intentionally empty\n }\n get pagesCount() {\n return this.pdfDocument ? this.pdfDocument.numPages : 0;\n }\n get page() {\n invariant(this.pdfViewer, 'PDF viewer is not initialized.');\n return this.pdfViewer.currentPageNumber || 0;\n }\n set page(value) {\n invariant(this.pdfViewer, 'PDF viewer is not initialized.');\n this.pdfViewer.currentPageNumber = value;\n }\n get rotation() {\n return 0;\n }\n set rotation(value) {\n // Intentionally empty\n }\n goToDestination(dest) {\n return new Promise((resolve) => {\n invariant(this.pdfDocument, 'PDF document not loaded.');\n invariant(dest, 'Destination is not specified.');\n if (typeof dest === 'string') {\n this.pdfDocument.getDestination(dest).then(resolve);\n }\n else if (Array.isArray(dest)) {\n resolve(dest);\n }\n else {\n dest.then(resolve);\n }\n }).then((explicitDest) => {\n invariant(Array.isArray(explicitDest), `\"${explicitDest}\" is not a valid destination array.`);\n const destRef = explicitDest[0];\n new Promise((resolve) => {\n invariant(this.pdfDocument, 'PDF document not loaded.');\n if (destRef instanceof Object) {\n this.pdfDocument\n .getPageIndex(destRef)\n .then((pageIndex) => {\n resolve(pageIndex);\n })\n .catch(() => {\n invariant(false, `\"${destRef}\" is not a valid page reference.`);\n });\n }\n else if (typeof destRef === 'number') {\n resolve(destRef);\n }\n else {\n invariant(false, `\"${destRef}\" is not a valid destination reference.`);\n }\n }).then((pageIndex) => {\n const pageNumber = pageIndex + 1;\n invariant(this.pdfViewer, 'PDF viewer is not initialized.');\n invariant(pageNumber >= 1 && pageNumber <= this.pagesCount, `\"${pageNumber}\" is not a valid page number.`);\n this.pdfViewer.scrollPageIntoView({\n dest: explicitDest,\n pageIndex,\n pageNumber,\n });\n });\n });\n }\n navigateTo(dest) {\n this.goToDestination(dest);\n }\n goToPage(pageNumber) {\n const pageIndex = pageNumber - 1;\n invariant(this.pdfViewer, 'PDF viewer is not initialized.');\n invariant(pageNumber >= 1 && pageNumber <= this.pagesCount, `\"${pageNumber}\" is not a valid page number.`);\n this.pdfViewer.scrollPageIntoView({\n pageIndex,\n pageNumber,\n });\n }\n addLinkAttributes(link, url, newWindow) {\n link.href = url;\n link.rel = this.externalLinkRel || DEFAULT_LINK_REL;\n link.target = newWindow ? '_blank' : this.externalLinkTarget || '';\n }\n getDestinationHash() {\n return '#';\n }\n getAnchorUrl() {\n return '#';\n }\n setHash() {\n // Intentionally empty\n }\n executeNamedAction() {\n // Intentionally empty\n }\n cachePageRef() {\n // Intentionally empty\n }\n isPageVisible() {\n return true;\n }\n isPageCached() {\n return true;\n }\n executeSetOCGState() {\n // Intentionally empty\n }\n}\n","// As defined in https://github.com/mozilla/pdf.js/blob/d9fac3459609a807be6506fb3441b5da4b154d14/src/shared/util.js#L371-L374\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2,\n};\nexport default PasswordResponses;\n","import invariant from 'tiny-invariant';\nimport warning from 'warning';\n/**\n * Checks if we're running in a browser environment.\n */\nexport const isBrowser = typeof document !== 'undefined';\n/**\n * Checks whether we're running from a local file system.\n */\nexport const isLocalFileSystem = isBrowser && window.location.protocol === 'file:';\n/**\n * Checks whether a variable is defined.\n *\n * @param {*} variable Variable to check\n */\nexport function isDefined(variable) {\n return typeof variable !== 'undefined';\n}\n/**\n * Checks whether a variable is defined and not null.\n *\n * @param {*} variable Variable to check\n */\nexport function isProvided(variable) {\n return isDefined(variable) && variable !== null;\n}\n/**\n * Checks whether a variable provided is a string.\n *\n * @param {*} variable Variable to check\n */\nexport function isString(variable) {\n return typeof variable === 'string';\n}\n/**\n * Checks whether a variable provided is an ArrayBuffer.\n *\n * @param {*} variable Variable to check\n */\nexport function isArrayBuffer(variable) {\n return variable instanceof ArrayBuffer;\n}\n/**\n * Checks whether a variable provided is a Blob.\n *\n * @param {*} variable Variable to check\n */\nexport function isBlob(variable) {\n invariant(isBrowser, 'isBlob can only be used in a browser environment');\n return variable instanceof Blob;\n}\n/**\n * Checks whether a variable provided is a data URI.\n *\n * @param {*} variable String to check\n */\nexport function isDataURI(variable) {\n return isString(variable) && /^data:/.test(variable);\n}\nexport function dataURItoByteString(dataURI) {\n invariant(isDataURI(dataURI), 'Invalid data URI.');\n const [headersString = '', dataString = ''] = dataURI.split(',');\n const headers = headersString.split(';');\n if (headers.indexOf('base64') !== -1) {\n return atob(dataString);\n }\n return unescape(dataString);\n}\nexport function getDevicePixelRatio() {\n return (isBrowser && window.devicePixelRatio) || 1;\n}\nconst allowFileAccessFromFilesTip = 'On Chromium based browsers, you can use --allow-file-access-from-files flag for debugging purposes.';\nexport function displayCORSWarning() {\n warning(!isLocalFileSystem, `Loading PDF as base64 strings/URLs may not work on protocols other than HTTP/HTTPS. ${allowFileAccessFromFilesTip}`);\n}\nexport function displayWorkerWarning() {\n warning(!isLocalFileSystem, `Loading PDF.js worker may not work on protocols other than HTTP/HTTPS. ${allowFileAccessFromFilesTip}`);\n}\nexport function cancelRunningTask(runningTask) {\n if (runningTask === null || runningTask === void 0 ? void 0 : runningTask.cancel)\n runningTask.cancel();\n}\nexport function makePageCallback(page, scale) {\n Object.defineProperty(page, 'width', {\n get() {\n return this.view[2] * scale;\n },\n configurable: true,\n });\n Object.defineProperty(page, 'height', {\n get() {\n return this.view[3] * scale;\n },\n configurable: true,\n });\n Object.defineProperty(page, 'originalWidth', {\n get() {\n return this.view[2];\n },\n configurable: true,\n });\n Object.defineProperty(page, 'originalHeight', {\n get() {\n return this.view[3];\n },\n configurable: true,\n });\n return page;\n}\nexport function isCancelException(error) {\n return error.name === 'RenderingCancelledException';\n}\nexport function loadFromFile(file) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => {\n if (!reader.result) {\n return reject(new Error('Error while reading a file.'));\n }\n resolve(reader.result);\n };\n reader.onerror = (event) => {\n if (!event.target) {\n return reject(new Error('Error while reading a file.'));\n }\n const { error } = event.target;\n if (!error) {\n return reject(new Error('Error while reading a file.'));\n }\n switch (error.code) {\n case error.NOT_FOUND_ERR:\n return reject(new Error('Error while reading a file: File not found.'));\n case error.SECURITY_ERR:\n return reject(new Error('Error while reading a file: Security error.'));\n case error.ABORT_ERR:\n return reject(new Error('Error while reading a file: Aborted.'));\n default:\n return reject(new Error('Error while reading a file.'));\n }\n };\n reader.readAsArrayBuffer(file);\n });\n}\n","import { useReducer } from 'react';\nfunction reducer(state, action) {\n switch (action.type) {\n case 'RESOLVE':\n return { value: action.value, error: undefined };\n case 'REJECT':\n return { value: false, error: action.error };\n case 'RESET':\n return { value: undefined, error: undefined };\n default:\n return state;\n }\n}\nexport default function useResolver() {\n return useReducer((reducer), { value: undefined, error: undefined });\n}\n","'use client';\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef } from 'react';\nimport makeEventProps from 'make-event-props';\nimport makeCancellable from 'make-cancellable-promise';\nimport clsx from 'clsx';\nimport invariant from 'tiny-invariant';\nimport warning from 'warning';\nimport { dequal } from 'dequal';\nimport * as pdfjs from 'pdfjs-dist';\nimport DocumentContext from './DocumentContext.js';\nimport Message from './Message.js';\nimport LinkService from './LinkService.js';\nimport PasswordResponses from './PasswordResponses.js';\nimport { cancelRunningTask, dataURItoByteString, displayCORSWarning, isArrayBuffer, isBlob, isBrowser, isDataURI, loadFromFile, } from './shared/utils.js';\nimport useResolver from './shared/hooks/useResolver.js';\nconst { PDFDataRangeTransport } = pdfjs;\nconst defaultOnPassword = (callback, reason) => {\n switch (reason) {\n case PasswordResponses.NEED_PASSWORD: {\n const password = prompt('Enter the password to open this PDF file.');\n callback(password);\n break;\n }\n case PasswordResponses.INCORRECT_PASSWORD: {\n const password = prompt('Invalid password. Please try again.');\n callback(password);\n break;\n }\n default:\n }\n};\nfunction isParameterObject(file) {\n return (typeof file === 'object' &&\n file !== null &&\n ('data' in file || 'range' in file || 'url' in file));\n}\n/**\n * Loads a document passed using `file` prop.\n */\nconst Document = forwardRef(function Document(_a, ref) {\n var { children, className, error = 'Failed to load PDF file.', externalLinkRel, externalLinkTarget, file, inputRef, imageResourcesPath, loading = 'Loading PDF…', noData = 'No PDF file specified.', onItemClick, onLoadError: onLoadErrorProps, onLoadProgress, onLoadSuccess: onLoadSuccessProps, onPassword = defaultOnPassword, onSourceError: onSourceErrorProps, onSourceSuccess: onSourceSuccessProps, options, renderMode, rotate } = _a, otherProps = __rest(_a, [\"children\", \"className\", \"error\", \"externalLinkRel\", \"externalLinkTarget\", \"file\", \"inputRef\", \"imageResourcesPath\", \"loading\", \"noData\", \"onItemClick\", \"onLoadError\", \"onLoadProgress\", \"onLoadSuccess\", \"onPassword\", \"onSourceError\", \"onSourceSuccess\", \"options\", \"renderMode\", \"rotate\"]);\n const [sourceState, sourceDispatch] = useResolver();\n const { value: source, error: sourceError } = sourceState;\n const [pdfState, pdfDispatch] = useResolver();\n const { value: pdf, error: pdfError } = pdfState;\n const linkService = useRef(new LinkService());\n const pages = useRef([]);\n const prevFile = useRef(undefined);\n const prevOptions = useRef(undefined);\n if (file && file !== prevFile.current && isParameterObject(file)) {\n warning(!dequal(file, prevFile.current), `File prop passed to <Document /> changed, but it's equal to previous one. This might result in unnecessary reloads. Consider memoizing the value passed to \"file\" prop.`);\n prevFile.current = file;\n }\n // Detect non-memoized changes in options prop\n if (options && options !== prevOptions.current) {\n warning(!dequal(options, prevOptions.current), `Options prop passed to <Document /> changed, but it's equal to previous one. This might result in unnecessary reloads. Consider memoizing the value passed to \"options\" prop.`);\n prevOptions.current = options;\n }\n const viewer = useRef({\n // Handling jumping to internal links target\n scrollPageIntoView: (args) => {\n const { dest, pageNumber, pageIndex = pageNumber - 1 } = args;\n // First, check if custom handling of onItemClick was provided\n if (onItemClick) {\n onItemClick({ dest, pageIndex, pageNumber });\n return;\n }\n // If not, try to look for target page within the <Document>.\n const page = pages.current[pageIndex];\n if (page) {\n // Scroll to the page automatically\n page.scrollIntoView();\n return;\n }\n warning(false, `An internal link leading to page ${pageNumber} was clicked, but neither <Document> was provided with onItemClick nor it was able to find the page within itself. Either provide onItemClick to <Document> and handle navigating by yourself or ensure that all pages are rendered within <Document>.`);\n },\n });\n useImperativeHandle(ref, () => ({\n linkService,\n pages,\n viewer,\n }), []);\n /**\n * Called when a document source is resolved correctly\n */\n function onSourceSuccess() {\n if (onSourceSuccessProps) {\n onSourceSuccessProps();\n }\n }\n /**\n * Called when a document source failed to be resolved correctly\n */\n function onSourceError() {\n if (!sourceError) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n warning(false, sourceError.toString());\n if (onSourceErrorProps) {\n onSourceErrorProps(sourceError);\n }\n }\n function resetSource() {\n sourceDispatch({ type: 'RESET' });\n }\n // biome-ignore lint/correctness/useExhaustiveDependencies: See https://github.com/biomejs/biome/issues/3080\n useEffect(resetSource, [file, sourceDispatch]);\n const findDocumentSource = useCallback(() => __awaiter(this, void 0, void 0, function* () {\n if (!file) {\n return null;\n }\n // File is a string\n if (typeof file === 'string') {\n if (isDataURI(file)) {\n const fileByteString = dataURItoByteString(file);\n return { data: fileByteString };\n }\n displayCORSWarning();\n return { url: file };\n }\n // File is PDFDataRangeTransport\n if (file instanceof PDFDataRangeTransport) {\n return { range: file };\n }\n // File is an ArrayBuffer\n if (isArrayBuffer(file)) {\n return { data: file };\n }\n /**\n * The cases below are browser-only.\n * If you're running on a non-browser environment, these cases will be of no use.\n */\n if (isBrowser) {\n // File is a Blob\n if (isBlob(file)) {\n const data = yield loadFromFile(file);\n return { data };\n }\n }\n // At this point, file must be an object\n invariant(typeof file === 'object', 'Invalid parameter in file, need either Uint8Array, string or a parameter object');\n invariant(isParameterObject(file), 'Invalid parameter object: need either .data, .range or .url');\n // File .url is a string\n if ('url' in file && typeof file.url === 'string') {\n if (isDataURI(file.url)) {\n const { url } = file, otherParams = __rest(file, [\"url\"]);\n const fileByteString = dataURItoByteString(url);\n return Object.assign({ data: fileByteString }, otherParams);\n }\n displayCORSWarning();\n }\n return file;\n }), [file]);\n useEffect(() => {\n const cancellable = makeCancellable(findDocumentSource());\n cancellable.promise\n .then((nextSource) => {\n sourceDispatch({ type: 'RESOLVE', value: nextSource });\n })\n .catch((error) => {\n sourceDispatch({ type: 'REJECT', error });\n });\n return () => {\n cancelRunningTask(cancellable);\n };\n }, [findDocumentSource, sourceDispatch]);\n // biome-ignore lint/correctness/useExhaustiveDependencies: Ommitted callbacks so they are not called every time they change\n useEffect(() => {\n if (typeof source === 'undefined') {\n return;\n }\n if (source === false) {\n onSourceError();\n return;\n }\n onSourceSuccess();\n }, [source]);\n /**\n * Called when a document is read successfully\n */\n function onLoadSuccess() {\n if (!pdf) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n if (onLoadSuccessProps) {\n onLoadSuccessProps(pdf);\n }\n pages.current = new Array(pdf.numPages);\n linkService.current.setDocument(pdf);\n }\n /**\n * Called when a document failed to read successfully\n */\n function onLoadError() {\n if (!pdfError) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n warning(false, pdfError.toString());\n if (onLoadErrorProps) {\n onLoadErrorProps(pdfError);\n }\n }\n // biome-ignore lint/correctness/useExhaustiveDependencies: useEffect intentionally triggered on source change\n useEffect(function resetDocument() {\n pdfDispatch({ type: 'RESET' });\n }, [pdfDispatch, source]);\n // biome-ignore lint/correctness/useExhaustiveDependencies: Ommitted callbacks so they are not called every time they change\n useEffect(function loadDocument() {\n if (!source) {\n return;\n }\n const documentInitParams = Object.assign(Object.assign({}, source), options);\n const destroyable = pdfjs.getDocument(documentInitParams);\n if (onLoadProgress) {\n destroyable.onProgress = onLoadProgress;\n }\n if (onPassword) {\n destroyable.onPassword = onPassword;\n }\n const loadingTask = destroyable;\n loadingTask.promise\n .then((nextPdf) => {\n pdfDispatch({ type: 'RESOLVE', value: nextPdf });\n })\n .catch((error) => {\n if (loadingTask.destroyed) {\n return;\n }\n pdfDispatch({ type: 'REJECT', error });\n });\n return () => {\n loadingTask.destroy();\n };\n }, [options, pdfDispatch, source]);\n // biome-ignore lint/correctness/useExhaustiveDependencies: Ommitted callbacks so they are not called every time they change\n useEffect(() => {\n if (typeof pdf === 'undefined') {\n return;\n }\n if (pdf === false) {\n onLoadError();\n return;\n }\n onLoadSuccess();\n }, [pdf]);\n useEffect(function setupLinkService() {\n linkService.current.setViewer(viewer.current);\n linkService.current.setExternalLinkRel(externalLinkRel);\n linkService.current.setExternalLinkTarget(externalLinkTarget);\n }, [externalLinkRel, externalLinkTarget]);\n const registerPage = useCallback((pageIndex, ref) => {\n pages.current[pageIndex] = ref;\n }, []);\n const unregisterPage = useCallback((pageIndex) => {\n delete pages.current[pageIndex];\n }, []);\n const childContext = useMemo(() => ({\n imageResourcesPath,\n linkService: linkService.current,\n onItemClick,\n pdf,\n registerPage,\n renderMode,\n rotate,\n unregisterPage,\n }), [imageResourcesPath, onItemClick, pdf, registerPage, renderMode, rotate, unregisterPage]);\n const eventProps = useMemo(() => makeEventProps(otherProps, () => pdf), \n // biome-ignore lint/correctness/useExhaustiveDependencies: FIXME\n [otherProps, pdf]);\n function renderChildren() {\n return _jsx(DocumentContext.Provider, { value: childContext, children: children });\n }\n function renderContent() {\n if (!file) {\n return _jsx(Message, { type: \"no-data\", children: typeof noData === 'function' ? noData() : noData });\n }\n if (pdf === undefined || pdf === null) {\n return (_jsx(Message, { type: \"loading\", children: typeof loading === 'function' ? loading() : loading }));\n }\n if (pdf === false) {\n return _jsx(Message, { type: \"error\", children: typeof error === 'function' ? error() : error });\n }\n return renderChildren();\n }\n return (_jsx(\"div\", Object.assign({ className: clsx('react-pdf__Document', className), \n // Assertion is needed for React 18 compatibility\n ref: inputRef, style: {\n ['--scale-factor']: '1',\n } }, eventProps, { children: renderContent() })));\n});\nexport default Document;\n","import { useContext } from 'react';\nimport DocumentContext from '../../DocumentContext.js';\nexport default function useDocumentContext() {\n return useContext(DocumentContext);\n}\n","/**\n * A function that merges React refs into one.\n * Supports both functions and ref objects created using createRef() and useRef().\n *\n * Usage:\n * ```tsx\n * <div ref={mergeRefs(ref1, ref2, ref3)} />\n * ```\n *\n * @param {(React.Ref<T> | undefined)[]} inputRefs Array of refs\n * @returns {React.Ref<T> | React.RefCallback<T>} Merged refs\n */\nexport default function mergeRefs() {\n var inputRefs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n inputRefs[_i] = arguments[_i];\n }\n var filteredInputRefs = inputRefs.filter(Boolean);\n if (filteredInputRefs.length <= 1) {\n var firstRef = filteredInputRefs[0];\n return firstRef || null;\n }\n return function mergedRefs(ref) {\n filteredInputRefs.forEach(function (inputRef) {\n if (typeof inputRef === 'function') {\n inputRef(ref);\n }\n else if (inputRef) {\n inputRef.current = ref;\n }\n });\n };\n}\n","'use client';\nimport { createContext } from 'react';\nconst pageContext = createContext(null);\nexport default pageContext;\n","// From pdfjs-dist/lib/web/struct_tree_layer_builder.js\nexport const PDF_ROLE_TO_HTML_ROLE = {\n // Document level structure types\n Document: null, // There's a \"document\" role, but it doesn't make sense here.\n DocumentFragment: null,\n // Grouping level structure types\n Part: 'group',\n Sect: 'group', // XXX: There's a \"section\" role, but it's abstract.\n Div: 'group',\n Aside: 'note',\n NonStruct: 'none',\n // Block level structure types\n P: null,\n // H<n>,\n H: 'heading',\n Title: null,\n FENote: 'note',\n // Sub-block level structure type\n Sub: 'group',\n // General inline level structure types\n Lbl: null,\n Span: null,\n Em: null,\n Strong: null,\n Link: 'link',\n Annot: 'note',\n Form: 'form',\n // Ruby and Warichu structure types\n Ruby: null,\n RB: null,\n RT: null,\n RP: null,\n Warichu: null,\n WT: null,\n WP: null,\n // List standard structure types\n L: 'list',\n LI: 'listitem',\n LBody: null,\n // Table standard structure types\n Table: 'table',\n TR: 'row',\n TH: 'columnheader',\n TD: 'cell',\n THead: 'columnheader',\n TBody: null,\n TFoot: null,\n // Standard structure type Caption\n Caption: null,\n // Standard structure type Figure\n Figure: 'figure',\n // Standard structure type Formula\n Formula: null,\n // standard structure type Artifact\n Artifact: null,\n};\nexport const HEADING_PATTERN = /^H(\\d+)$/;\n","import { HEADING_PATTERN, PDF_ROLE_TO_HTML_ROLE } from './constants.js';\nexport function isPdfRole(role) {\n return role in PDF_ROLE_TO_HTML_ROLE;\n}\nexport function isStructTreeNode(node) {\n return 'children' in node;\n}\nexport function isStructTreeNodeWithOnlyContentChild(node) {\n if (!isStructTreeNode(node)) {\n return false;\n }\n return node.children.length === 1 && 0 in node.children && 'id' in node.children[0];\n}\nexport function getRoleAttributes(node) {\n const attributes = {};\n if (isStructTreeNode(node)) {\n const { role } = node;\n const matches = role.match(HEADING_PATTERN);\n if (matches) {\n attributes.role = 'heading';\n attributes['aria-level'] = Number(matches[1]);\n }\n else if (isPdfRole(role)) {\n const htmlRole = PDF_ROLE_TO_HTML_ROLE[role];\n if (htmlRole) {\n attributes.role = htmlRole;\n }\n }\n }\n return attributes;\n}\nexport function getBaseAttributes(node) {\n const attributes = {};\n if (isStructTreeNode(node)) {\n if (node.alt !== undefined) {\n attributes['aria-label'] = node.alt;\n }\n if (node.lang !== undefined) {\n attributes.lang = node.lang;\n }\n if (isStructTreeNodeWithOnlyContentChild(node)) {\n const [child] = node.children;\n if (child) {\n const childAttributes = getBaseAttributes(child);\n return Object.assign(Object.assign({}, attributes), childAttributes);\n }\n }\n }\n else {\n if ('id' in node) {\n attributes['aria-owns'] = node.id;\n }\n }\n return attributes;\n}\nexport function getAttributes(node) {\n if (!node) {\n return null;\n }\n return Object.assign(Object.assign({}, getRoleAttributes(node)), getBaseAttributes(node));\n}\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useMemo } from 'react';\nimport { getAttributes, isStructTreeNode, isStructTreeNodeWithOnlyContentChild, } from './shared/structTreeUtils.js';\nexport default function StructTreeItem({ className, node, }) {\n const attributes = useMemo(() => getAttributes(node), [node]);\n // biome-ignore lint/correctness/useExhaustiveDependencies: Looks like a Biome error\n const children = useMemo(() => {\n if (!isStructTreeNode(node)) {\n return null;\n }\n if (isStructTreeNodeWithOnlyContentChild(node)) {\n return null;\n }\n return node.children.map((child, index) => {\n return (\n // biome-ignore lint/suspicious/noArrayIndexKey: index is stable here\n _jsx(StructTreeItem, { node: child }, index));\n });\n }, [node]);\n return (_jsx(\"span\", Object.assign({ className: className }, attributes, { children: children })));\n}\n","import { useContext } from 'react';\nimport PageContext from '../../PageContext.js';\nexport default function usePageContext() {\n return useContext(PageContext);\n}\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useEffect } from 'react';\nimport makeCancellable from 'make-cancellable-promise';\nimport invariant from 'tiny-invariant';\nimport warning from 'warning';\nimport StructTreeItem from './StructTreeItem.js';\nimport usePageContext from './shared/hooks/usePageContext.js';\nimport useResolver from './shared/hooks/useResolver.js';\nimport { cancelRunningTask } from './shared/utils.js';\nexport default function StructTree() {\n const pageContext = usePageContext();\n invariant(pageContext, 'Unable to find Page context.');\n const { onGetStructTreeError: onGetStructTreeErrorProps, onGetStructTreeSuccess: onGetStructTreeSuccessProps, } = pageContext;\n const [structTreeState, structTreeDispatch] = useResolver();\n const { value: structTree, error: structTreeError } = structTreeState;\n const { customTextRenderer, page } = pageContext;\n function onLoadSuccess() {\n if (!structTree) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n if (onGetStructTreeSuccessProps) {\n onGetStructTreeSuccessProps(structTree);\n }\n }\n function onLoadError() {\n if (!structTreeError) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n warning(false, structTreeError.toString());\n if (onGetStructTreeErrorProps) {\n onGetStructTreeErrorProps(structTreeError);\n }\n }\n // biome-ignore lint/correctness/useExhaustiveDependencies: useEffect intentionally triggered on page change\n useEffect(function resetStructTree() {\n structTreeDispatch({ type: 'RESET' });\n }, [structTreeDispatch, page]);\n useEffect(function loadStructTree() {\n if (customTextRenderer) {\n // TODO: Document why this is necessary\n return;\n }\n if (!page) {\n return;\n }\n const cancellable = makeCancellable(page.getStructTree());\n const runningTask = cancellable;\n cancellable.promise\n .then((nextStructTree) => {\n structTreeDispatch({ type: 'RESOLVE', value: nextStructTree });\n })\n .catch((error) => {\n structTreeDispatch({ type: 'REJECT', error });\n });\n return () => cancelRunningTask(runningTask);\n }, [customTextRenderer, page, structTreeDispatch]);\n // biome-ignore lint/correctness/useExhaustiveDependencies: Ommitted callbacks so they are not called every time they change\n useEffect(() => {\n if (structTree === undefined) {\n return;\n }\n if (structTree === false) {\n onLoadError();\n return;\n }\n onLoadSuccess();\n }, [structTree]);\n if (!structTree) {\n return null;\n }\n return _jsx(StructTreeItem, { className: \"react-pdf__Page__structTree structTree\", node: structTree });\n}\n","'use client';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useCallback, useEffect, useMemo, useRef } from 'react';\nimport mergeRefs from 'merge-refs';\nimport invariant from 'tiny-invariant';\nimport warning from 'warning';\nimport * as pdfjs from 'pdfjs-dist';\nimport StructTree from '../StructTree.js';\nimport usePageContext from '../shared/hooks/usePageContext.js';\nimport { cancelRunningTask, getDevicePixelRatio, isCancelException, makePageCallback, } from '../shared/utils.js';\nconst ANNOTATION_MODE = pdfjs.AnnotationMode;\nexport default function Canvas(props) {\n const pageContext = usePageContext();\n invariant(pageContext, 'Unable to find Page context.');\n const mergedProps = Object.assign(Object.assign({}, pageContext), props);\n const { _className, canvasBackground, devicePixelRatio = getDevicePixelRatio(), onRenderError: onRenderErrorProps, onRenderSuccess: onRenderSuccessProps, page, renderForms, renderTextLayer, rotate, scale, } = mergedProps;\n const { canvasRef } = props;\n invariant(page, 'Attempted to render page canvas, but no page was specified.');\n const canvasElement = useRef(null);\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(error) {\n if (isCancelException(error)) {\n return;\n }\n warning(false, error.toString());\n if (onRenderErrorProps) {\n onRenderErrorProps(error);\n }\n }\n const renderViewport = useMemo(() => page.getViewport({ scale: scale * devicePixelRatio, rotation: rotate }), [devicePixelRatio, page, rotate, scale]);\n const viewport = useMemo(() => page.getViewport({ scale, rotation: rotate }), [page, rotate, scale]);\n // biome-ignore lint/correctness/useExhaustiveDependencies: Ommitted callbacks so they are not called every time they change\n useEffect(function drawPageOnCanvas() {\n if (!page) {\n return;\n }\n // Ensures the canvas will be re-rendered from scratch. Otherwise all form data will stay.\n page.cleanup();\n const { current: canvas } = canvasElement;\n if (!canvas) {\n return;\n }\n canvas.width = renderViewport.width;\n canvas.height = renderViewport.height;\n canvas.style.width = `${Math.floor(viewport.width)}px`;\n canvas.style.height = `${Math.floor(viewport.height)}px`;\n canvas.style.visibility = 'hidden';\n const renderContext = {\n annotationMode: renderForms ? ANNOTATION_MODE.ENABLE_FORMS : ANNOTATION_MODE.ENABLE,\n canvasContext: canvas.getContext('2d', { alpha: false }),\n viewport: renderViewport,\n };\n if (canvasBackground) {\n renderContext.background = canvasBackground;\n }\n const cancellable = page.render(renderContext);\n const runningTask = cancellable;\n cancellable.promise\n .then(() => {\n canvas.style.visibility = '';\n onRenderSuccess();\n })\n .catch(onRenderError);\n return () => cancelRunningTask(runningTask);\n }, [canvasBackground, page, renderForms, renderViewport, viewport]);\n const cleanup = useCallback(() => {\n const { current: canvas } = canvasElement;\n /**\n * Zeroing the width and height cause most browsers to release graphics\n * resources immediately, which can greatly reduce memory consumption.\n */\n if (canvas) {\n canvas.width = 0;\n canvas.height = 0;\n }\n }, []);\n useEffect(() => cleanup, [cleanup]);\n return (_jsx(\"canvas\", { className: `${_className}__canvas`, dir: \"ltr\", ref: mergeRefs(canvasRef, canvasElement), style: {\n display: 'block',\n userSelect: 'none',\n }, children: renderTextLayer ? _jsx(StructTree, {}) : null }));\n}\n","'use client';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useCallback, useEffect, useLayoutEffect, useMemo, useRef } from 'react';\nimport makeCancellable from 'make-cancellable-promise';\nimport clsx from 'clsx';\nimport invariant from 'tiny-invariant';\nimport warning from 'warning';\nimport * as pdfjs from 'pdfjs-dist';\nimport usePageContext from '../shared/hooks/usePageContext.js';\nimport useResolver from '../shared/hooks/useResolver.js';\nimport { cancelRunningTask } from '../shared/utils.js';\nfunction isTextItem(item) {\n return 'str' in item;\n}\nexport default function TextLayer() {\n const pageContext = usePageContext();\n invariant(pageContext, 'Unable to find Page context.');\n const { customTextRenderer, onGetTextError, onGetTextSuccess, onRenderTextLayerError, onRenderTextLayerSuccess, page, pageIndex, pageNumber, rotate, scale, } = pageContext;\n invariant(page, 'Attempted to load page text content, but no page was specified.');\n const [textContentState, textContentDispatch] = useResolver();\n const { value: textContent, error: textContentError } = textContentState;\n const layerElement = useRef(null);\n const endElement = useRef(undefined);\n warning(Number.parseInt(window.getComputedStyle(document.body).getPropertyValue('--react-pdf-text-layer'), 10) === 1, 'TextLayer styles not found. Read more: https://github.com/wojtekmaj/react-pdf#support-for-text-layer');\n /**\n * Called when a page text content is read successfully\n */\n function onLoadSuccess() {\n if (!textContent) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n if (onGetTextSuccess) {\n onGetTextSuccess(textContent);\n }\n }\n /**\n * Called when a page text content failed to read successfully\n */\n function onLoadError() {\n if (!textContentError) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n warning(false, textContentError.toString());\n if (onGetTextError) {\n onGetTextError(textContentError);\n }\n }\n // biome-ignore lint/correctness/useExhaustiveDependencies: useEffect intentionally triggered on page change\n useEffect(function resetTextContent() {\n textContentDispatch({ type: 'RESET' });\n }, [page, textContentDispatch]);\n useEffect(function loadTextContent() {\n if (!page) {\n return;\n }\n const cancellable = makeCancellable(page.getTextContent());\n const runningTask = cancellable;\n cancellable.promise\n .then((nextTextContent) => {\n textContentDispatch({ type: 'RESOLVE', value: nextTextContent });\n })\n .catch((error) => {\n textContentDispatch({ type: 'REJECT', error });\n });\n return () => cancelRunningTask(runningTask);\n }, [page, textContentDispatch]);\n // biome-ignore lint/correctness/useExhaustiveDependencies: Ommitted callbacks so they are not called every time they change\n useEffect(() => {\n if (textContent === undefined) {\n return;\n }\n if (textContent === false) {\n onLoadError();\n return;\n }\n onLoadSuccess();\n }, [textContent]);\n /**\n * Called when a text layer is rendered successfully\n */\n const onRenderSuccess = useCallback(() => {\n if (onRenderTextLayerSuccess) {\n onRenderTextLayerSuccess();\n }\n }, [onRenderTextLayerSuccess]);\n /**\n * Called when a text layer failed to render successfully\n */\n const onRenderError = useCallback((error) => {\n warning(false, error.toString());\n if (onRenderTextLayerError) {\n onRenderTextLayerError(error);\n }\n }, [onRenderTextLayerError]);\n function onMouseDown() {\n const end = endElement.current;\n if (!end) {\n return;\n }\n end.classList.add('active');\n }\n function onMouseUp() {\n const end = endElement.current;\n if (!end) {\n return;\n }\n end.classList.remove('active');\n }\n const viewport = useMemo(() => page.getViewport({ scale, rotation: rotate }), [page, rotate, scale]);\n useLayoutEffect(function renderTextLayer() {\n if (!page || !textContent) {\n return;\n }\n const { current: layer } = layerElement;\n if (!layer) {\n return;\n }\n layer.innerHTML = '';\n const textContentSource = page.streamTextContent({ includeMarkedContent: true });\n const parameters = {\n container: layer,\n textContentSource,\n viewport,\n };\n const cancellable = new pdfjs.TextLayer(parameters);\n const runningTask = cancellable;\n cancellable\n .render()\n .then(() => {\n const end = document.createElement('div');\n end.className = 'endOfContent';\n layer.append(end);\n endElement.current = end;\n const layerChildren = layer.querySelectorAll('[role=\"presentation\"]');\n if (customTextRenderer) {\n let index = 0;\n textContent.items.forEach((item, itemIndex) => {\n if (!isTextItem(item)) {\n return;\n }\n const child = layerChildren[index];\n if (!child) {\n return;\n }\n const content = customTextRenderer(Object.assign({ pageIndex,\n pageNumber,\n itemIndex }, item));\n child.innerHTML = content;\n index += item.str && item.hasEOL ? 2 : 1;\n });\n }\n // Intentional immediate callback\n onRenderSuccess();\n })\n .catch(onRenderError);\n return () => cancelRunningTask(runningTask);\n }, [\n customTextRenderer,\n onRenderError,\n onRenderSuccess,\n page,\n pageIndex,\n pageNumber,\n textContent,\n viewport,\n ]);\n return (_jsx(\"div\", { className: clsx('react-pdf__Page__textContent', 'textLayer'), onMouseUp: onMouseUp, onMouseDown: onMouseDown, ref: layerElement }));\n}\n","'use client';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useEffect, useMemo, useRef } from 'react';\nimport makeCancellable from 'make-cancellable-promise';\nimport clsx from 'clsx';\nimport invariant from 'tiny-invariant';\nimport warning from 'warning';\nimport * as pdfjs from 'pdfjs-dist';\nimport useDocumentContext from '../shared/hooks/useDocumentContext.js';\nimport usePageContext from '../shared/hooks/usePageContext.js';\nimport useResolver from '../shared/hooks/useResolver.js';\nimport { cancelRunningTask } from '../shared/utils.js';\nexport default function AnnotationLayer() {\n const documentContext = useDocumentContext();\n const pageContext = usePageContext();\n invariant(pageContext, 'Unable to find Page context.');\n const mergedProps = Object.assign(Object.assign({}, documentContext), pageContext);\n const { imageResourcesPath, linkService, onGetAnnotationsError: onGetAnnotationsErrorProps, onGetAnnotationsSuccess: onGetAnnotationsSuccessProps, onRenderAnnotationLayerError: onRenderAnnotationLayerErrorProps, onRenderAnnotationLayerSuccess: onRenderAnnotationLayerSuccessProps, page, pdf, renderForms, rotate, scale = 1, } = mergedProps;\n invariant(pdf, 'Attempted to load page annotations, but no document was specified. Wrap <Page /> in a <Document /> or pass explicit `pdf` prop.');\n invariant(page, 'Attempted to load page annotations, but no page was specified.');\n invariant(linkService, 'Attempted to load page annotations, but no linkService was specified.');\n const [annotationsState, annotationsDispatch] = useResolver();\n const { value: annotations, error: annotationsError } = annotationsState;\n const layerElement = useRef(null);\n warning(Number.parseInt(window.getComputedStyle(document.body).getPropertyValue('--react-pdf-annotation-layer'), 10) === 1, 'AnnotationLayer styles not found. Read more: https://github.com/wojtekmaj/react-pdf#support-for-annotations');\n function onLoadSuccess() {\n if (!annotations) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n if (onGetAnnotationsSuccessProps) {\n onGetAnnotationsSuccessProps(annotations);\n }\n }\n function onLoadError() {\n if (!annotationsError) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n warning(false, annotationsError.toString());\n if (onGetAnnotationsErrorProps) {\n onGetAnnotationsErrorProps(annotationsError);\n }\n }\n // biome-ignore lint/correctness/useExhaustiveDependencies: useEffect intentionally triggered on page change\n useEffect(function resetAnnotations() {\n annotationsDispatch({ type: 'RESET' });\n }, [annotationsDispatch, page]);\n useEffect(function loadAnnotations() {\n if (!page) {\n return;\n }\n const cancellable = makeCancellable(page.getAnnotations());\n const runningTask = cancellable;\n cancellable.promise\n .then((nextAnnotations) => {\n annotationsDispatch({ type: 'RESOLVE', value: nextAnnotations });\n })\n .catch((error) => {\n annotationsDispatch({ type: 'REJECT', error });\n });\n return () => {\n cancelRunningTask(runningTask);\n };\n }, [annotationsDispatch, page]);\n // biome-ignore lint/correctness/useExhaustiveDependencies: Ommitted callbacks so they are not called every time they change\n useEffect(() => {\n if (annotations === undefined) {\n return;\n }\n if (annotations === false) {\n onLoadError();\n return;\n }\n onLoadSuccess();\n }, [annotations]);\n function onRenderSuccess() {\n if (onRenderAnnotationLayerSuccessProps) {\n onRenderAnnotationLayerSuccessProps();\n }\n }\n function onRenderError(error) {\n warning(false, `${error}`);\n if (onRenderAnnotationLayerErrorProps) {\n onRenderAnnotationLayerErrorProps(error);\n }\n }\n const viewport = useMemo(() => page.getViewport({ scale, rotation: rotate }), [page, rotate, scale]);\n // biome-ignore lint/correctness/useExhaustiveDependencies: Ommitted callbacks so they are not called every time they change\n useEffect(function renderAnnotationLayer() {\n if (!pdf || !page || !linkService || !annotations) {\n return;\n }\n const { current: layer } = layerElement;\n if (!layer) {\n return;\n }\n const clonedViewport = viewport.clone({ dontFlip: true });\n const annotationLayerParameters = {\n accessibilityManager: null, // TODO: Implement this\n annotationCanvasMap: null, // TODO: Implement this\n annotationEditorUIManager: null, // TODO: Implement this\n div: layer,\n l10n: null, // TODO: Implement this\n page,\n viewport: clonedViewport,\n };\n const renderParameters = {\n annotations,\n annotationStorage: pdf.annotationStorage,\n div: layer,\n imageResourcesPath,\n linkService,\n page,\n renderForms,\n viewport: clonedViewport,\n };\n layer.innerHTML = '';\n try {\n new pdfjs.AnnotationLayer(annotationLayerParameters).render(renderParameters);\n // Intentional immediate callback\n onRenderSuccess();\n }\n catch (error) {\n onRenderError(error);\n }\n return () => {\n // TODO: Cancel running task?\n };\n }, [annotations, imageResourcesPath, linkService, page, pdf, renderForms, viewport]);\n return (_jsx(\"div\", { className: clsx('react-pdf__Page__annotations', 'annotationLayer'), ref: layerElement }));\n}\n","'use client';\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useEffect, useMemo, useRef } from 'react';\nimport makeCancellable from 'make-cancellable-promise';\nimport makeEventProps from 'make-event-props';\nimport clsx from 'clsx';\nimport mergeRefs from 'merge-refs';\nimport invariant from 'tiny-invariant';\nimport warning from 'warning';\nimport PageContext from './PageContext.js';\nimport Message from './Message.js';\nimport Canvas from './Page/Canvas.js';\nimport TextLayer from './Page/TextLayer.js';\nimport AnnotationLayer from './Page/AnnotationLayer.js';\nimport { cancelRunningTask, isProvided, makePageCallback } from './shared/utils.js';\nimport useDocumentContext from './shared/hooks/useDocumentContext.js';\nimport useResolver from './shared/hooks/useResolver.js';\nconst defaultScale = 1;\n/**\n * Displays a page.\n *\n * Should be placed inside `<Document />`. Alternatively, it can have `pdf` prop passed, which can be obtained from `<Document />`'s `onLoadSuccess` callback function, however some advanced functions like linking between pages inside a document may not be working correctly.\n */\nexport default function Page(props) {\n const documentContext = useDocumentContext();\n const mergedProps = Object.assign(Object.assign({}, documentContext), props);\n const { _className = 'react-pdf__Page', _enableRegisterUnregisterPage = true, canvasBackground, canvasRef, children, className, customRenderer: CustomRenderer, customTextRenderer, devicePixelRatio, error = 'Failed to load the page.', height, inputRef, loading = 'Loading page…', noData = 'No page specified.', onGetAnnotationsError: onGetAnnotationsErrorProps, onGetAnnotationsSuccess: onGetAnnotationsSuccessProps, onGetStructTreeError: onGetStructTreeErrorProps, onGetStructTreeSuccess: onGetStructTreeSuccessProps, onGetTextError: onGetTextErrorProps, onGetTextSuccess: onGetTextSuccessProps, onLoadError: onLoadErrorProps, onLoadSuccess: onLoadSuccessProps, onRenderAnnotationLayerError: onRenderAnnotationLayerErrorProps, onRenderAnnotationLayerSuccess: onRenderAnnotationLayerSuccessProps, onRenderError: onRenderErrorProps, onRenderSuccess: onRenderSuccessProps, onRenderTextLayerError: onRenderTextLayerErrorProps, onRenderTextLayerSuccess: onRenderTextLayerSuccessProps, pageIndex: pageIndexProps, pageNumber: pageNumberProps, pdf, registerPage, renderAnnotationLayer: renderAnnotationLayerProps = true, renderForms = false, renderMode = 'canvas', renderTextLayer: renderTextLayerProps = true, rotate: rotateProps, scale: scaleProps = defaultScale, unregisterPage, width } = mergedProps, otherProps = __rest(mergedProps, [\"_className\", \"_enableRegisterUnregisterPage\", \"canvasBackground\", \"canvasRef\", \"children\", \"className\", \"customRenderer\", \"customTextRenderer\", \"devicePixelRatio\", \"error\", \"height\", \"inputRef\", \"loading\", \"noData\", \"onGetAnnotationsError\", \"onGetAnnotationsSuccess\", \"onGetStructTreeError\", \"onGetStructTreeSuccess\", \"onGetTextError\", \"onGetTextSuccess\", \"onLoadError\", \"onLoadSuccess\", \"onRenderAnnotationLayerError\", \"onRenderAnnotationLayerSuccess\", \"onRenderError\", \"onRenderSuccess\", \"onRenderTextLayerError\", \"onRenderTextLayerSuccess\", \"pageIndex\", \"pageNumber\", \"pdf\", \"registerPage\", \"renderAnnotationLayer\", \"renderForms\", \"renderMode\", \"renderTextLayer\", \"rotate\", \"scale\", \"unregisterPage\", \"width\"]);\n const [pageState, pageDispatch] = useResolver();\n const { value: page, error: pageError } = pageState;\n const pageElement = useRef(null);\n invariant(pdf, 'Attempted to load a page, but no document was specified. Wrap <Page /> in a <Document /> or pass explicit `pdf` prop.');\n const pageIndex = isProvided(pageNumberProps) ? pageNumberProps - 1 : pageIndexProps !== null && pageIndexProps !== void 0 ? pageIndexProps : null;\n const pageNumber = pageNumberProps !== null && pageNumberProps !== void 0 ? pageNumberProps : (isProvided(pageIndexProps) ? pageIndexProps + 1 : null);\n const rotate = rotateProps !== null && rotateProps !== void 0 ? rotateProps : (page ? page.rotate : null);\n const scale = useMemo(() => {\n if (!page) {\n return null;\n }\n // Be default, we'll render page at 100% * scale width.\n let pageScale = 1;\n // Passing scale explicitly null would cause the page not to render\n const scaleWithDefault = scaleProps !== null && scaleProps !== void 0 ? scaleProps : defaultScale;\n // If width/height is defined, calculate the scale of the page so it could be of desired width.\n if (width || height) {\n const viewport = page.getViewport({ scale: 1, rotation: rotate });\n if (width) {\n pageScale = width / viewport.width;\n }\n else if (height) {\n pageScale = height / viewport.height;\n }\n }\n return scaleWithDefault * pageScale;\n }, [height, page, rotate, scaleProps, width]);\n // biome-ignore lint/correctness/useExhaustiveDependencies: useEffect intentionally triggered on pdf change\n useEffect(function hook() {\n return () => {\n if (!isProvided(pageIndex)) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n if (_enableRegisterUnregisterPage && unregisterPage) {\n unregisterPage(pageIndex);\n }\n };\n }, [_enableRegisterUnregisterPage, pdf, pageIndex, unregisterPage]);\n /**\n * Called when a page is loaded successfully\n */\n function onLoadSuccess() {\n if (onLoadSuccessProps) {\n if (!page || !scale) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n onLoadSuccessProps(makePageCallback(page, scale));\n }\n if (_enableRegisterUnregisterPage && registerPage) {\n if (!isProvided(pageIndex) || !pageElement.current) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n registerPage(pageIndex, pageElement.current);\n }\n }\n /**\n * Called when a page failed to load\n */\n function onLoadError() {\n if (!pageError) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n warning(false, pageError.toString());\n if (onLoadErrorProps) {\n onLoadErrorProps(pageError);\n }\n }\n // biome-ignore lint/correctness/useExhaustiveDependencies: useEffect intentionally triggered on pdf and pageIndex change\n useEffect(function resetPage() {\n pageDispatch({ type: 'RESET' });\n }, [pageDispatch, pdf, pageIndex]);\n useEffect(function loadPage() {\n if (!pdf || !pageNumber) {\n return;\n }\n const cancellable = makeCancellable(pdf.getPage(pageNumber));\n const runningTask = cancellable;\n cancellable.promise\n .then((nextPage) => {\n pageDispatch({ type: 'RESOLVE', value: nextPage });\n })\n .catch((error) => {\n pageDispatch({ type: 'REJECT', error });\n });\n return () => cancelRunningTask(runningTask);\n }, [pageDispatch, pdf, pageNumber]);\n // biome-ignore lint/correctness/useExhaustiveDependencies: Ommitted callbacks so they are not called every time they change\n useEffect(() => {\n if (page === undefined) {\n return;\n }\n if (page === false) {\n onLoadError();\n return;\n }\n onLoadSuccess();\n }, [page, scale]);\n const childContext = useMemo(() => \n // Technically there cannot be page without pageIndex, pageNumber, rotate and scale, but TypeScript doesn't know that\n page && isProvided(pageIndex) && pageNumber && isProvided(rotate) && isProvided(scale)\n ? {\n _className,\n canvasBackground,\n customTextRenderer,\n devicePixelRatio,\n onGetAnnotationsError: onGetAnnotationsErrorProps,\n onGetAnnotationsSuccess: onGetAnnotationsSuccessProps,\n onGetStructTreeError: onGetStructTreeErrorProps,\n onGetStructTreeSuccess: onGetStructTreeSuccessProps,\n onGetTextError: onGetTextErrorProps,\n onGetTextSuccess: onGetTextSuccessProps,\n onRenderAnnotationLayerError: onRenderAnnotationLayerErrorProps,\n onRenderAnnotationLayerSuccess: onRenderAnnotationLayerSuccessProps,\n onRenderError: onRenderErrorProps,\n onRenderSuccess: onRenderSuccessProps,\n onRenderTextLayerError: onRenderTextLayerErrorProps,\n onRenderTextLayerSuccess: onRenderTextLayerSuccessProps,\n page,\n pageIndex,\n pageNumber,\n renderForms,\n renderTextLayer: renderTextLayerProps,\n rotate,\n scale,\n }\n : null, [\n _className,\n canvasBackground,\n customTextRenderer,\n devicePixelRatio,\n onGetAnnotationsErrorProps,\n onGetAnnotationsSuccessProps,\n onGetStructTreeErrorProps,\n onGetStructTreeSuccessProps,\n onGetTextErrorProps,\n onGetTextSuccessProps,\n onRenderAnnotationLayerErrorProps,\n onRenderAnnotationLayerSuccessProps,\n onRenderErrorProps,\n onRenderSuccessProps,\n onRenderTextLayerErrorProps,\n onRenderTextLayerSuccessProps,\n page,\n pageIndex,\n pageNumber,\n renderForms,\n renderTextLayerProps,\n rotate,\n scale,\n ]);\n const eventProps = useMemo(() => makeEventProps(otherProps, () => page ? (scale ? makePageCallback(page, scale) : undefined) : page), \n // biome-ignore lint/correctness/useExhaustiveDependencies: FIXME\n [otherProps, page, scale]);\n const pageKey = `${pageIndex}@${scale}/${rotate}`;\n function renderMainLayer() {\n switch (renderMode) {\n case 'custom': {\n invariant(CustomRenderer, `renderMode was set to \"custom\", but no customRenderer was passed.`);\n return _jsx(CustomRenderer, {}, `${pageKey}_custom`);\n }\n case 'none':\n return null;\n case 'canvas':\n default:\n return _jsx(Canvas, { canvasRef: canvasRef }, `${pageKey}_canvas`);\n }\n }\n function renderTextLayer() {\n if (!renderTextLayerProps) {\n return null;\n }\n return _jsx(TextLayer, {}, `${pageKey}_text`);\n }\n function renderAnnotationLayer() {\n if (!renderAnnotationLayerProps) {\n return null;\n }\n /**\n * As of now, PDF.js 2.0.943 returns warnings on unimplemented annotations in SVG mode.\n * Therefore, as a fallback, we render \"traditional\" AnnotationLayer component.\n */\n return _jsx(AnnotationLayer, {}, `${pageKey}_annotations`);\n }\n function renderChildren() {\n return (_jsxs(PageContext.Provider, { value: childContext, children: [renderMainLayer(), renderTextLayer(), renderAnnotationLayer(), children] }));\n }\n function renderContent() {\n if (!pageNumber) {\n return _jsx(Message, { type: \"no-data\", children: typeof noData === 'function' ? noData() : noData });\n }\n if (pdf === null || page === undefined || page === null) {\n return (_jsx(Message, { type: \"loading\", children: typeof loading === 'function' ? loading() : loading }));\n }\n if (pdf === false || page === false) {\n return _jsx(Message, { type: \"error\", children: typeof error === 'function' ? error() : error });\n }\n return renderChildren();\n }\n return (_jsx(\"div\", Object.assign({ className: clsx(_className, className), \"data-page-number\": pageNumber, \n // Assertion is needed for React 18 compatibility\n ref: mergeRefs(inputRef, pageElement), style: {\n ['--scale-factor']: `${scale}`,\n backgroundColor: canvasBackground || 'white',\n position: 'relative',\n minWidth: 'min-content',\n minHeight: 'min-content',\n } }, eventProps, { children: renderContent() })));\n}\n","import * as pdfjs from 'pdfjs-dist';\nimport Document from './Document.js';\nimport Outline from './Outline.js';\nimport Page from './Page.js';\nimport Thumbnail from './Thumbnail.js';\nimport useDocumentContext from './shared/hooks/useDocumentContext.js';\nimport useOutlineContext from './shared/hooks/useOutlineContext.js';\nimport usePageContext from './shared/hooks/usePageContext.js';\nimport PasswordResponses from './PasswordResponses.js';\nimport { displayWorkerWarning } from './shared/utils.js';\ndisplayWorkerWarning();\npdfjs.GlobalWorkerOptions.workerSrc = 'pdf.worker.mjs';\nexport { pdfjs, Document, Outline, Page, Thumbnail, useDocumentContext, useOutlineContext, usePageContext, PasswordResponses, };\n","export const SET_ZOOM_LEVEL: string = \"SET_ZOOM_LEVEL\";\n\nexport interface SetZoomLevel {\n type: typeof SET_ZOOM_LEVEL;\n value: number;\n}\n\nexport const setZoomLevel = (value: number): SetZoomLevel => ({\n type: SET_ZOOM_LEVEL,\n value,\n});\n\nexport const SET_PDF_PAGINATED: string = \"SET_PDF_PAGINATED\";\n\nexport interface SetPDFPaginated {\n type: typeof SET_PDF_PAGINATED;\n value: boolean;\n}\n\nexport const setPDFPaginated = (value: boolean): SetPDFPaginated => ({\n type: SET_PDF_PAGINATED,\n value,\n});\n\nexport const SET_NUM_PAGES: string = \"SET_NUM_PAGES\";\nexport interface SetNumPages {\n type: typeof SET_NUM_PAGES;\n value: number;\n}\n\nexport const setNumPages = (value: number): SetNumPages => ({\n type: SET_NUM_PAGES,\n value,\n});\n\nexport const SET_CURRENT_PAGE: string = \"SET_CURRENT_PAGE\";\n\nexport interface SetCurrentPage {\n type: typeof SET_CURRENT_PAGE;\n value: number;\n}\n\nexport const setCurrentPage = (value: number): SetCurrentPage => ({\n type: SET_CURRENT_PAGE,\n value,\n});\n\nexport type PDFActions =\n | SetZoomLevel\n | SetPDFPaginated\n | SetNumPages\n | SetCurrentPage;\n","import { type IMainState } from '../../../store/mainStateReducer'\nimport {\n type PDFActions as PDFStateActions,\n type SetCurrentPage,\n type SetNumPages,\n type SetPDFPaginated,\n type SetZoomLevel,\n SET_CURRENT_PAGE,\n SET_NUM_PAGES,\n SET_PDF_PAGINATED,\n SET_ZOOM_LEVEL,\n} from './actions'\n\nexport type IPDFState = {\n defaultZoomLevel: number;\n zoomLevel: number;\n zoomJump: number;\n paginated: boolean;\n numPages: number;\n currentPage: number;\n mainState?: IMainState;\n};\n\nexport const initialPDFState: IPDFState = {\n defaultZoomLevel: 1,\n zoomLevel: 1,\n zoomJump: 0.1,\n paginated: true,\n numPages: 0,\n currentPage: 1,\n};\n\nexport type PDFStateReducer = (\n state: IPDFState,\n action: PDFStateActions,\n) => IPDFState;\n\nexport const reducer: PDFStateReducer = (\n state = initialPDFState,\n action: PDFStateActions,\n): IPDFState => {\n switch (action.type) {\n case SET_ZOOM_LEVEL: {\n const { value } = action as SetZoomLevel;\n\n return { ...state, zoomLevel: value };\n }\n\n case SET_PDF_PAGINATED: {\n const { value } = action as SetPDFPaginated;\n return { ...state, paginated: value };\n }\n\n case SET_NUM_PAGES: {\n const { value } = action as SetNumPages;\n return { ...state, numPages: value };\n }\n\n case SET_CURRENT_PAGE: {\n const { value } = action as SetCurrentPage;\n return { ...state, currentPage: value };\n }\n\n default:\n return state;\n }\n};\n","import React, { createContext, type Dispatch, type FC, type PropsWithChildren, useReducer } from 'react'\nimport { type IMainState } from '../../../store/mainStateReducer'\nimport { type PDFActions } from './actions'\nimport { initialPDFState, type IPDFState, type PDFStateReducer, reducer } from './reducer'\n\nconst PDFContext = createContext<{\n state: IPDFState\n dispatch: Dispatch<PDFActions>\n}>({ state: initialPDFState, dispatch: () => null })\n\nconst PDFProvider: FC<PropsWithChildren<{ mainState: IMainState }>> = ({ children, mainState }) => {\n const [state, dispatch] = useReducer<PDFStateReducer>(reducer, {\n ...initialPDFState,\n defaultZoomLevel: mainState.config?.pdfZoom?.defaultZoom ?? initialPDFState.defaultZoomLevel,\n zoomLevel: mainState.config?.pdfZoom?.defaultZoom ?? initialPDFState.zoomLevel,\n zoomJump: mainState.config?.pdfZoom?.zoomJump ?? initialPDFState.zoomJump,\n paginated: mainState.config?.pdfVerticalScrollByDefault ? false : initialPDFState.paginated,\n mainState,\n })\n\n return <PDFContext.Provider value={{ state, dispatch }}>{children}</PDFContext.Provider>\n}\n\nexport { PDFContext, PDFProvider }\n","import React, { type FC, useContext } from 'react'\nimport { Page } from 'react-pdf'\nimport styled from 'styled-components'\nimport type { IStyledProps } from '../../../..'\nimport { useTranslation } from '../../../../hooks/useTranslation'\nimport { PDFContext } from '../../state'\n\ninterface Props {\n pageNum?: number\n}\n\nconst PDFSinglePage: FC<Props> = ({ pageNum }) => {\n const {\n state: { mainState, paginated, zoomLevel, numPages, currentPage },\n } = useContext(PDFContext)\n const { t } = useTranslation()\n\n const rendererRect = mainState?.rendererRect || null\n\n const _pageNum = pageNum ?? currentPage\n\n return (\n <PageWrapper id='pdf-page-wrapper' $lastPage={_pageNum >= numPages}>\n {!paginated && (\n <PageTag id='pdf-page-info'>\n {t('pdfPluginPageNumber', {\n currentPage: _pageNum,\n allPagesCount: numPages,\n })}\n </PageTag>\n )}\n <Page\n pageNumber={_pageNum || currentPage}\n scale={zoomLevel}\n height={(rendererRect?.height ?? 100) - 100}\n width={(rendererRect?.width ?? 100) - 100}\n loading={t('pdfPluginLoading')}\n />\n </PageWrapper>\n )\n}\n\nexport default PDFSinglePage\n\ninterface PageWrapperProps {\n $lastPage: boolean\n}\n\nconst PageWrapper = styled.div<PageWrapperProps>`\n margin: ${(props) => (props.$lastPage ? '20px 0' : undefined)};\n`\n\nconst PageTag = styled.div`\n padding: 0 0 10px 10px;\n color: ${(props: IStyledProps) => props.theme.textTertiary};\n font-size: 14px;\n text-align: left;\n\n @media (max-width: 768px) {\n font-size: 10px;\n }\n`\n","import React, { type FC, useContext } from 'react'\nimport { PDFContext } from '../../state'\nimport PDFSinglePage from './PDFSinglePage'\n\ninterface Props {\n pageNum?: number\n}\n\nexport const PDFAllPages: FC<Props> = () => {\n const {\n state: { numPages },\n } = useContext(PDFContext)\n\n const PagesArray = []\n for (let i = 0; i < numPages; i++) {\n PagesArray.push(<PDFSinglePage key={i + 1} pageNum={i + 1} />)\n }\n\n return <>{PagesArray}</>\n}\n","/* eslint-disable */\nimport React, { type FC, useContext, useEffect } from 'react'\nimport { Document } from 'react-pdf'\nimport styled from 'styled-components'\nimport { useTranslation } from '../../../../hooks/useTranslation'\nimport { PDFContext } from '../../state'\nimport { setNumPages } from '../../state/actions'\nimport { initialPDFState } from '../../state/reducer'\nimport { PDFAllPages } from './PDFAllPages'\nimport PDFSinglePage from './PDFSinglePage'\n\nconst PDFPages: FC<{}> = () => {\n const {\n state: { mainState, paginated },\n dispatch,\n } = useContext(PDFContext)\n const { t } = useTranslation()\n\n const currentDocument = mainState?.currentDocument || null\n\n useEffect(() => {\n dispatch(setNumPages(initialPDFState.numPages))\n }, [currentDocument])\n\n if (!currentDocument || currentDocument.fileData === undefined) return null\n\n return (\n <DocumentPDF\n file={currentDocument.fileData}\n onLoadSuccess={({ numPages }) => dispatch(setNumPages(numPages))}\n loading={<span>{t('pdfPluginLoading')}</span>}\n >\n {paginated ? <PDFSinglePage /> : <PDFAllPages />}\n </DocumentPDF>\n )\n}\n\nconst DocumentPDF = styled(Document)`\n display: flex;\n flex-direction: column;\n margin: 0 auto;\n`\n\nexport default PDFPages\n","import React from \"react\";\nimport type { IIconProps } from '../../../../components/icons'\n\nexport const PrevPDFNavIcon = (props: IIconProps) => {\n return <PDFNavArrow {...props} reverse />;\n};\n\nexport const NextPDFNavIcon = (props: IIconProps) => {\n return <PDFNavArrow {...props} />;\n};\n\nconst PDFNavArrow = (props: IIconProps) => {\n const { color, size, reverse } = props;\n return (\n <svg\n width={size || \"100%\"}\n height={size || \"100%\"}\n style={{ transform: `${reverse ? \"rotate(180deg)\" : \"\"}` }}\n viewBox=\"0 0 12 12\"\n version=\"1.1\"\n >\n <g\n id=\"Icons\"\n stroke=\"none\"\n strokeWidth=\"1\"\n fill=\"none\"\n fillRule=\"evenodd\"\n >\n <g id=\"Rounded\" transform=\"translate(-548.000000, -1000.000000)\">\n <g id=\"AV\" transform=\"translate(100.000000, 852.000000)\">\n <g\n id=\"-Round-/-AV-/-skip_next\"\n transform=\"translate(442.000000, 142.000000)\"\n >\n <g>\n <rect\n id=\"Rectangle-Copy-52\"\n x=\"0\"\n y=\"0\"\n width=\"24\"\n height=\"24\"\n ></rect>\n <path\n d=\"M7.58,16.89 L13.35,12.82 C13.91,12.42 13.91,11.58 13.35,11.19 L7.58,7.11 C6.91,6.65 6,7.12 6,7.93 L6,16.07 C6,16.88 6.91,17.35 7.58,16.89 Z M16,7 L16,17 C16,17.55 16.45,18 17,18 C17.55,18 18,17.55 18,17 L18,7 C18,6.45 17.55,6 17,6 C16.45,6 16,6.45 16,7 Z\"\n id=\"icon_color\"\n fill={color || \"#aaa\"}\n ></path>\n </g>\n </g>\n </g>\n </g>\n </g>\n </svg>\n );\n};\n\nexport const DownloadPDFIcon = (props: IIconProps) => {\n const { color, size, reverse } = props;\n return (\n <svg\n width={size || \"100%\"}\n height={size || \"100%\"}\n style={{ transform: `${reverse ? \"rotate(180deg)\" : \"\"}` }}\n id=\"Layer_1\"\n viewBox=\"0 0 24 24\"\n >\n <path\n d=\"M20.57,9.43A8,8,0,0,0,5.26,10,5,5,0,1,0,5,20h5V18H5a3,3,0,0,1,0-6,3.1,3.1,0,0,1,.79.12l1.12.31.14-1.15a6,6,0,0,1,11.74-.82l.15.54.54.16A3.46,3.46,0,0,1,22,14.5,3.5,3.5,0,0,1,18.5,18H16v2h2.5A5.48,5.48,0,0,0,20.57,9.43Z\"\n fill={color || \"#aaa\"}\n />\n <polygon\n points=\"12 11 12 15.59 10.71 14.29 9.29 15.71 13 19.41 16.71 15.71 15.29 14.29 14 15.59 14 11 12 11\"\n fill={color || \"#aaa\"}\n />\n </svg>\n );\n};\n\nexport const ZoomInPDFIcon = (props: IIconProps) => {\n return <ZoomPDFIcon {...props} />;\n};\n\nexport const ZoomOutPDFIcon = (props: IIconProps) => {\n return <ZoomPDFIcon {...props} reverse />;\n};\n\nconst ZoomPDFIcon = (props: IIconProps) => {\n const { color, size, reverse } = props;\n return (\n <svg\n width={size || \"100%\"}\n height={size || \"100%\"}\n viewBox=\"0 0 32 32\"\n version=\"1.1\"\n >\n <g\n id=\"Page-1\"\n stroke=\"none\"\n strokeWidth=\"1\"\n fill=\"none\"\n fillRule=\"evenodd\"\n >\n <g id=\"search-plus-icon\" fill={color || \"#aaa\"}>\n <path\n id=\"search-plus\"\n d={\n reverse\n ? \"M 13 13 L 16 13 L 19 13 L 19 16 L 16 16 L 13 16 L 10 16 L 10 13 Z M 19.4271 21.4271 C 18.0372 22.4175 16.3367 23 14.5 23 C 9.8056 23 6 19.1944 6 14.5 C 6 9.8056 9.8056 6 14.5 6 C 19.1944 6 23 9.8056 23 14.5 C 23 16.3367 22.4175 18.0372 21.4271 19.4271 L 27.0119 25.0119 C 27.5621 25.5621 27.5575 26.4425 27.0117 26.9883 L 26.9883 27.0117 C 26.4439 27.5561 25.5576 27.5576 25.0119 27.0119 L 19.4271 21.4271 L 19.4271 21.4271 L 19.4271 21.4271 Z M 14.5 21 C 18.0899 21 21 18.0899 21 14.5 C 21 10.9101 18.0899 8 14.5 8 C 10.9101 8 8 10.9101 8 14.5 C 8 18.0899 10.9101 21 14.5 21 L 14.5 21 Z\"\n : \"M 13 13 L 13 10 L 16 10 L 16 13 L 19 13 L 19 16 L 16 16 L 16 19 L 13 19 L 13 16 L 10 16 L 10 13 Z M 19.4271 21.4271 C 18.0372 22.4175 16.3367 23 14.5 23 C 9.8056 23 6 19.1944 6 14.5 C 6 9.8056 9.8056 6 14.5 6 C 19.1944 6 23 9.8056 23 14.5 C 23 16.3367 22.4175 18.0372 21.4271 19.4271 L 27.0119 25.0119 C 27.5621 25.5621 27.5575 26.4425 27.0117 26.9883 L 26.9883 27.0117 C 26.4439 27.5561 25.5576 27.5576 25.0119 27.0119 L 19.4271 21.4271 L 19.4271 21.4271 L 19.4271 21.4271 Z M 14.5 21 C 18.0899 21 21 18.0899 21 14.5 C 21 10.9101 18.0899 8 14.5 8 C 10.9101 8 8 10.9101 8 14.5 C 8 18.0899 10.9101 21 14.5 21 L 14.5 21 Z\"\n }\n />\n </g>\n </g>\n </svg>\n );\n};\n\nexport const ResetZoomPDFIcon = (props: IIconProps) => {\n const { color, size } = props;\n return (\n <svg width={size || \"100%\"} height={size || \"100%\"} viewBox=\"0 0 24 24\">\n <path\n fill={color || \"#aaa\"}\n d=\"M9.29,13.29,4,18.59V17a1,1,0,0,0-2,0v4a1,1,0,0,0,.08.38,1,1,0,0,0,.54.54A1,1,0,0,0,3,22H7a1,1,0,0,0,0-2H5.41l5.3-5.29a1,1,0,0,0-1.42-1.42ZM5.41,4H7A1,1,0,0,0,7,2H3a1,1,0,0,0-.38.08,1,1,0,0,0-.54.54A1,1,0,0,0,2,3V7A1,1,0,0,0,4,7V5.41l5.29,5.3a1,1,0,0,0,1.42,0,1,1,0,0,0,0-1.42ZM21,16a1,1,0,0,0-1,1v1.59l-5.29-5.3a1,1,0,0,0-1.42,1.42L18.59,20H17a1,1,0,0,0,0,2h4a1,1,0,0,0,.38-.08,1,1,0,0,0,.54-.54A1,1,0,0,0,22,21V17A1,1,0,0,0,21,16Zm.92-13.38a1,1,0,0,0-.54-.54A1,1,0,0,0,21,2H17a1,1,0,0,0,0,2h1.59l-5.3,5.29a1,1,0,0,0,0,1.42,1,1,0,0,0,1.42,0L20,5.41V7a1,1,0,0,0,2,0V3A1,1,0,0,0,21.92,2.62Z\"\n />\n </svg>\n );\n};\n\nexport const TogglePaginationPDFIcon = (props: IIconProps) => {\n const { color, size, reverse } = props;\n return (\n <svg\n width={size || \"100%\"}\n height={size || \"100%\"}\n style={{ transform: `${reverse ? \"rotate(90deg)\" : \"\"}` }}\n version=\"1.1\"\n id=\"Scroll_1\"\n viewBox=\"0 0 297 297\"\n xmlSpace=\"preserve\"\n >\n <path\n fill={color || \"#aaa\"}\n d=\"M206.004,200.723h-31.231V96.277h31.231c0.005,0,0.014,0,0.019,0c5.289,0,9.575-4.287,9.575-9.574\n c0-2.342-0.841-4.488-2.236-6.151L156.168,3.851C154.36,1.428,151.515,0,148.492,0c-3.023,0-5.868,1.428-7.675,3.851L83.302,80.98\n c-2.166,2.902-2.507,6.779-0.883,10.017c1.624,3.236,4.936,5.28,8.559,5.28h31.231v104.445H90.978c-3.623,0-6.934,2.044-8.559,5.28\n c-1.624,3.237-1.283,7.114,0.883,10.017l57.513,77.129c1.808,2.424,4.652,3.852,7.675,3.852c3.023,0,5.868-1.428,7.676-3.852\n l57.514-77.129c2.164-2.902,2.507-6.779,0.883-10.017C212.938,202.767,209.627,200.723,206.004,200.723z\"\n />\n </svg>\n );\n};\n","import React, { type FC, useContext } from 'react'\nimport styled from 'styled-components'\nimport { Button } from '../../../components/common'\nimport type { IStyledProps } from '../../..'\nimport { PDFContext } from '../state'\nimport { setCurrentPage } from '../state/actions'\nimport { NextPDFNavIcon, PrevPDFNavIcon } from './icons'\nimport { useTranslation } from '../../../hooks/useTranslation'\n\nconst PDFPagination: FC = () => {\n const {\n state: { currentPage, numPages },\n dispatch,\n } = useContext(PDFContext)\n const { t } = useTranslation()\n\n return (\n <Container id='pdf-pagination'>\n <PageNavButtonLeft\n id='pdf-pagination-prev'\n onClick={() => dispatch(setCurrentPage(currentPage - 1))}\n disabled={currentPage === 1}\n >\n <PrevPDFNavIcon color='#000' size='50%' />\n </PageNavButtonLeft>\n\n <PageTag id='pdf-pagination-info'>\n {t('pdfPluginPageNumber', {\n currentPage,\n allPagesCount: numPages,\n })}\n </PageTag>\n\n <PageNavButtonRight\n id='pdf-pagination-next'\n onClick={() => dispatch(setCurrentPage(currentPage + 1))}\n disabled={currentPage >= numPages}\n >\n <NextPDFNavIcon color='#000' size='50%' />\n </PageNavButtonRight>\n </Container>\n )\n}\n\nexport default PDFPagination\n\nconst Container = styled.div`\n display: flex;\n align-items: center;\n`\n\nconst PageNavButtonLeft = styled(Button)`\n width: 30px;\n height: 30px;\n margin: 0 5px;\n\n @media (max-width: 768px) {\n width: 25px;\n height: 25px;\n }\n`\nconst PageNavButtonRight = styled(PageNavButtonLeft)`\n margin: 0 20px 0 5px;\n`\n\nconst PageTag = styled.div`\n color: ${(props: IStyledProps) => props.theme.textPrimary};\n font-size: 14px;\n text-align: left;\n\n @media (max-width: 768px) {\n font-size: 10px;\n }\n`\n","import React, { type FC, useContext } from 'react'\nimport styled from 'styled-components'\nimport { Button, LinkButton } from '../../../components/common'\nimport type { IStyledProps } from '../../..'\nimport { PDFContext } from '../state'\nimport { setPDFPaginated, setZoomLevel } from '../state/actions'\nimport { useTranslation } from '../../../hooks/useTranslation'\nimport { DownloadPDFIcon, ResetZoomPDFIcon, TogglePaginationPDFIcon, ZoomInPDFIcon, ZoomOutPDFIcon } from './icons'\nimport PDFPagination from './PDFPagination'\n\nconst PDFControls: FC = () => {\n const { t } = useTranslation()\n const {\n state: { mainState, paginated, zoomLevel, numPages, zoomJump, defaultZoomLevel },\n dispatch,\n } = useContext(PDFContext)\n\n const currentDocument = mainState?.currentDocument || null\n\n return (\n <Container id='pdf-controls'>\n {paginated && numPages > 1 && <PDFPagination />}\n\n {currentDocument?.fileData && (\n <DownloadButton\n id='pdf-download'\n href={currentDocument?.fileData as string}\n download={currentDocument?.fileName || currentDocument?.uri}\n title={t('downloadButtonLabel')}\n >\n <DownloadPDFIcon color='#000' size='75%' />\n </DownloadButton>\n )}\n\n <ControlButton id='pdf-zoom-out' onMouseDown={() => dispatch(setZoomLevel(zoomLevel - zoomJump))}>\n <ZoomOutPDFIcon color='#000' size='80%' />\n </ControlButton>\n\n <ControlButton id='pdf-zoom-in' onMouseDown={() => dispatch(setZoomLevel(zoomLevel + zoomJump))}>\n <ZoomInPDFIcon color='#000' size='80%' />\n </ControlButton>\n\n <ControlButton\n id='pdf-zoom-reset'\n onMouseDown={() => dispatch(setZoomLevel(defaultZoomLevel))}\n disabled={zoomLevel === defaultZoomLevel}\n >\n <ResetZoomPDFIcon color='#000' size='70%' />\n </ControlButton>\n\n {numPages > 1 && (\n <ControlButton id='pdf-toggle-pagination' onMouseDown={() => dispatch(setPDFPaginated(!paginated))}>\n <TogglePaginationPDFIcon color='#000' size='70%' reverse={paginated} />\n </ControlButton>\n )}\n </Container>\n )\n}\n\nexport default PDFControls\n\nconst Container = styled.div`\n display: flex;\n position: sticky;\n top: 0;\n left: 0;\n z-index: 1;\n justify-content: flex-end;\n padding: 8px;\n background-color: ${(props: IStyledProps) => props.theme.tertiary};\n box-shadow: 0px 2px 3px #00000033;\n\n @media (max-width: 768px) {\n padding: 6px;\n }\n`\n\nconst ControlButton = styled(Button)`\n width: 30px;\n height: 30px;\n @media (max-width: 768px) {\n width: 25px;\n height: 25px;\n }\n`\n\nconst DownloadButton = styled(LinkButton)`\n width: 30px;\n height: 30px;\n @media (max-width: 768px) {\n width: 25px;\n height: 25px;\n }\n`\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport type { DocRenderer, IStyledProps } from '../..'\nimport PDFPages from \"./components/pages/PDFPages\";\nimport PDFControls from \"./components/PDFControls\";\nimport { PDFProvider } from \"./state\";\nimport { pdfjs } from \"react-pdf\";\n\npdfjs.GlobalWorkerOptions.workerSrc = new URL(\n `https://unpkg.com/pdfjs-dist@${pdfjs.version}/build/pdf.worker.min.mjs`,\n).toString();\n\nconst PDFRenderer: DocRenderer = ({ mainState }) => {\n return (\n <PDFProvider mainState={mainState}>\n <Container id=\"pdf-renderer\" data-testid=\"pdf-renderer\">\n <PDFControls />\n <PDFPages />\n </Container>\n </PDFProvider>\n );\n};\n\nexport default PDFRenderer;\n\nPDFRenderer.fileTypes = [\"pdf\", \"application/pdf\"];\nPDFRenderer.weight = 0;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n flex: 1;\n\n /* width */\n &::-webkit-scrollbar {\n ${(props: IStyledProps) => {\n return props.theme.disableThemeScrollbar ? \"\" : \"width: 10px\";\n }};\n }\n /* Track */\n &::-webkit-scrollbar-track {\n /* background: ${(props: IStyledProps) => props.theme.secondary}; */\n }\n /* Handle */\n &::-webkit-scrollbar-thumb {\n background: ${(props: IStyledProps) => props.theme.tertiary};\n }\n /* Handle on hover */\n &::-webkit-scrollbar-thumb:hover {\n background: ${(props: IStyledProps) => props.theme.primary};\n }\n`;\n","import React from 'react'\nimport styled from 'styled-components'\nimport ImageProxyRenderer from '../image'\nimport type { DocRenderer } from 'src/models'\n\nconst StyledImageRenderer = styled(ImageProxyRenderer)`\n display: flex;\n flex: 1;\n align-items: center;\n justify-content: center;\n height: 100%;\n background-color: white;\n background-image: linear-gradient(45deg, #e0e0e0 25%, transparent 25%),\n linear-gradient(-45deg, #e0e0e0 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #e0e0e0 75%),\n linear-gradient(-45deg, transparent 75%, #e0e0e0 75%);\n background-size: 20px 20px;\n background-position: 0 0, 0 10px, 10px -10px, -10px 0px;\n`\n\nconst PNGRenderer: DocRenderer = (props) => <StyledImageRenderer {...props} />\n\nPNGRenderer.fileTypes = ['png', 'image/png']\nPNGRenderer.weight = 0\n\nexport default PNGRenderer\n","/* eslint-disable */\n// @ts-nocheck\nlet tiffDataView = undefined;\nlet littleEndian = undefined;\nlet fileDirectories = [];\n\nconst isLittleEndian = () => {\n // Get byte order mark.\n var BOM = getBytes(2, 0);\n\n // Find out the endianness.\n if (BOM === 0x4949) {\n littleEndian = true;\n } else if (BOM === 0x4d4d) {\n littleEndian = false;\n } else {\n throw TypeError(\"Invalid byte order value.\");\n }\n\n return littleEndian;\n};\n\nconst hasTowel = () => {\n // Check for towel.\n if (getBytes(2, 2) !== 42) {\n throw RangeError(\"You forgot your towel!\");\n return false;\n }\n\n return true;\n};\n\nconst getFieldTagName = (fieldTag) => {\n // See: http://www.digitizationguidelines.gov/guidelines/TIFF_Metadata_Final.pdf\n // See: http://www.digitalpreservation.gov/formats/content/tiff_tags.shtml\n var fieldTagNames = {\n // TIFF Baseline\n 0x013b: \"Artist\",\n 0x0102: \"BitsPerSample\",\n 0x0109: \"CellLength\",\n 0x0108: \"CellWidth\",\n 0x0140: \"ColorMap\",\n 0x0103: \"Compression\",\n 0x8298: \"Copyright\",\n 0x0132: \"DateTime\",\n 0x0152: \"ExtraSamples\",\n 0x010a: \"FillOrder\",\n 0x0121: \"FreeByteCounts\",\n 0x0120: \"FreeOffsets\",\n 0x0123: \"GrayResponseCurve\",\n 0x0122: \"GrayResponseUnit\",\n 0x013c: \"HostComputer\",\n 0x010e: \"ImageDescription\",\n 0x0101: \"ImageLength\",\n 0x0100: \"ImageWidth\",\n 0x010f: \"Make\",\n 0x0119: \"MaxSampleValue\",\n 0x0118: \"MinSampleValue\",\n 0x0110: \"Model\",\n 0x00fe: \"NewSubfileType\",\n 0x0112: \"Orientation\",\n 0x0106: \"PhotometricInterpretation\",\n 0x011c: \"PlanarConfiguration\",\n 0x0128: \"ResolutionUnit\",\n 0x0116: \"RowsPerStrip\",\n 0x0115: \"SamplesPerPixel\",\n 0x0131: \"Software\",\n 0x0117: \"StripByteCounts\",\n 0x0111: \"StripOffsets\",\n 0x00ff: \"SubfileType\",\n 0x0107: \"Threshholding\",\n 0x011a: \"XResolution\",\n 0x011b: \"YResolution\",\n\n // TIFF Extended\n 0x0146: \"BadFaxLines\",\n 0x0147: \"CleanFaxData\",\n 0x0157: \"ClipPath\",\n 0x0148: \"ConsecutiveBadFaxLines\",\n 0x01b1: \"Decode\",\n 0x01b2: \"DefaultImageColor\",\n 0x010d: \"DocumentName\",\n 0x0150: \"DotRange\",\n 0x0141: \"HalftoneHints\",\n 0x015a: \"Indexed\",\n 0x015b: \"JPEGTables\",\n 0x011d: \"PageName\",\n 0x0129: \"PageNumber\",\n 0x013d: \"Predictor\",\n 0x013f: \"PrimaryChromaticities\",\n 0x0214: \"ReferenceBlackWhite\",\n 0x0153: \"SampleFormat\",\n 0x022f: \"StripRowCounts\",\n 0x014a: \"SubIFDs\",\n 0x0124: \"T4Options\",\n 0x0125: \"T6Options\",\n 0x0145: \"TileByteCounts\",\n 0x0143: \"TileLength\",\n 0x0144: \"TileOffsets\",\n 0x0142: \"TileWidth\",\n 0x012d: \"TransferFunction\",\n 0x013e: \"WhitePoint\",\n 0x0158: \"XClipPathUnits\",\n 0x011e: \"XPosition\",\n 0x0211: \"YCbCrCoefficients\",\n 0x0213: \"YCbCrPositioning\",\n 0x0212: \"YCbCrSubSampling\",\n 0x0159: \"YClipPathUnits\",\n 0x011f: \"YPosition\",\n\n // EXIF\n 0x9202: \"ApertureValue\",\n 0xa001: \"ColorSpace\",\n 0x9004: \"DateTimeDigitized\",\n 0x9003: \"DateTimeOriginal\",\n 0x8769: \"Exif IFD\",\n 0x9000: \"ExifVersion\",\n 0x829a: \"ExposureTime\",\n 0xa300: \"FileSource\",\n 0x9209: \"Flash\",\n 0xa000: \"FlashpixVersion\",\n 0x829d: \"FNumber\",\n 0xa420: \"ImageUniqueID\",\n 0x9208: \"LightSource\",\n 0x927c: \"MakerNote\",\n 0x9201: \"ShutterSpeedValue\",\n 0x9286: \"UserComment\",\n\n // IPTC\n 0x83bb: \"IPTC\",\n\n // ICC\n 0x8773: \"ICC Profile\",\n\n // XMP\n 0x02bc: \"XMP\",\n\n // GDAL\n 0xa480: \"GDAL_METADATA\",\n 0xa481: \"GDAL_NODATA\",\n\n // Photoshop\n 0x8649: \"Photoshop\",\n };\n\n var fieldTagName;\n\n if (fieldTag in fieldTagNames) {\n fieldTagName = fieldTagNames[fieldTag];\n } else {\n fieldTagName = \"Tag\" + fieldTag;\n }\n\n return fieldTagName;\n};\n\nconst getFieldTypeName = (fieldType) => {\n var fieldTypeNames = {\n 0x0001: \"BYTE\",\n 0x0002: \"ASCII\",\n 0x0003: \"SHORT\",\n 0x0004: \"LONG\",\n 0x0005: \"RATIONAL\",\n 0x0006: \"SBYTE\",\n 0x0007: \"UNDEFINED\",\n 0x0008: \"SSHORT\",\n 0x0009: \"SLONG\",\n 0x000a: \"SRATIONAL\",\n 0x000b: \"FLOAT\",\n 0x000c: \"DOUBLE\",\n };\n\n var fieldTypeName;\n\n if (fieldType in fieldTypeNames) {\n fieldTypeName = fieldTypeNames[fieldType];\n }\n\n return fieldTypeName;\n};\n\nconst getFieldTypeLength = (fieldTypeName) => {\n var fieldTypeLength;\n\n if ([\"BYTE\", \"ASCII\", \"SBYTE\", \"UNDEFINED\"].indexOf(fieldTypeName) !== -1) {\n fieldTypeLength = 1;\n } else if ([\"SHORT\", \"SSHORT\"].indexOf(fieldTypeName) !== -1) {\n fieldTypeLength = 2;\n } else if ([\"LONG\", \"SLONG\", \"FLOAT\"].indexOf(fieldTypeName) !== -1) {\n fieldTypeLength = 4;\n } else if (\n [\"RATIONAL\", \"SRATIONAL\", \"DOUBLE\"].indexOf(fieldTypeName) !== -1\n ) {\n fieldTypeLength = 8;\n }\n\n return fieldTypeLength;\n};\n\nconst getBits = (numBits, byteOffset, bitOffset) => {\n bitOffset = bitOffset || 0;\n var extraBytes = Math.floor(bitOffset / 8);\n var newByteOffset = byteOffset + extraBytes;\n var totalBits = bitOffset + numBits;\n var shiftRight = 32 - numBits;\n\n if (totalBits <= 0) {\n throw RangeError(\"No bits requested\");\n } else if (totalBits <= 8) {\n var shiftLeft = 24 + bitOffset;\n var rawBits = tiffDataView.getUint8(newByteOffset, littleEndian);\n } else if (totalBits <= 16) {\n var shiftLeft = 16 + bitOffset;\n var rawBits = tiffDataView.getUint16(newByteOffset, littleEndian);\n } else if (totalBits <= 32) {\n var shiftLeft = bitOffset;\n var rawBits = tiffDataView.getUint32(newByteOffset, littleEndian);\n } else {\n throw RangeError(\"Too many bits requested\");\n }\n\n var chunkInfo = {\n bits: (rawBits << shiftLeft) >>> shiftRight,\n byteOffset: newByteOffset + Math.floor(totalBits / 8),\n bitOffset: totalBits % 8,\n };\n\n return chunkInfo;\n};\n\nconst getBytes = (numBytes, offset) => {\n if (numBytes <= 0) {\n throw RangeError(\"No bytes requested\");\n } else if (numBytes <= 1) {\n return tiffDataView.getUint8(offset, littleEndian);\n } else if (numBytes <= 2) {\n return tiffDataView.getUint16(offset, littleEndian);\n } else if (numBytes <= 3) {\n return tiffDataView.getUint32(offset, littleEndian) >>> 8;\n } else if (numBytes <= 4) {\n return tiffDataView.getUint32(offset, littleEndian);\n } else {\n throw RangeError(\"Too many bytes requested\");\n }\n};\n\nconst getFieldValues = (\n fieldTagName,\n fieldTypeName,\n typeCount,\n valueOffset,\n) => {\n var fieldValues = [];\n\n var fieldTypeLength = getFieldTypeLength(fieldTypeName);\n var fieldValueSize = fieldTypeLength * typeCount;\n\n if (fieldValueSize <= 4) {\n // The value is stored at the big end of the valueOffset.\n if (littleEndian === false) {\n var value = valueOffset >>> ((4 - fieldTypeLength) * 8);\n } else {\n var value = valueOffset;\n }\n\n fieldValues.push(value);\n } else {\n for (var i = 0; i < typeCount; i++) {\n var indexOffset = fieldTypeLength * i;\n\n if (fieldTypeLength >= 8) {\n if ([\"RATIONAL\", \"SRATIONAL\"].indexOf(fieldTypeName) !== -1) {\n // Numerator\n fieldValues.push(getBytes(4, valueOffset + indexOffset));\n // Denominator\n fieldValues.push(getBytes(4, valueOffset + indexOffset + 4));\n //\t\t\t\t\t} else if (['DOUBLE'].indexOf(fieldTypeName) !== -1) {\n //\t\t\t\t\t\tfieldValues.push(getBytes(4, valueOffset + indexOffset) + getBytes(4, valueOffset + indexOffset + 4));\n } else {\n throw TypeError(\"Can't handle this field type or size\");\n }\n } else {\n fieldValues.push(getBytes(fieldTypeLength, valueOffset + indexOffset));\n }\n }\n }\n\n if (fieldTypeName === \"ASCII\") {\n fieldValues.forEach(function (e, i, a) {\n a[i] = String.fromCharCode(e);\n });\n }\n\n return fieldValues;\n};\n\nconst clampColorSample = (colorSample, bitsPerSample) => {\n var multiplier = Math.pow(2, 8 - bitsPerSample);\n\n return Math.floor(colorSample * multiplier + (multiplier - 1));\n};\n\nconst makeRGBAFillValue = (r, g, b, a) => {\n if (typeof a === \"undefined\") {\n a = 1.0;\n }\n return \"rgba(\" + r + \", \" + g + \", \" + b + \", \" + a + \")\";\n};\n\nconst parseFileDirectory = (byteOffset) => {\n var numDirEntries = getBytes(2, byteOffset);\n\n var tiffFields = [];\n\n for (\n var i = byteOffset + 2, entryCount = 0;\n entryCount < numDirEntries;\n i += 12, entryCount++\n ) {\n var fieldTag = getBytes(2, i);\n var fieldType = getBytes(2, i + 2);\n var typeCount = getBytes(4, i + 4);\n var valueOffset = getBytes(4, i + 8);\n\n var fieldTagName = getFieldTagName(fieldTag);\n var fieldTypeName = getFieldTypeName(fieldType);\n\n var fieldValues = getFieldValues(\n fieldTagName,\n fieldTypeName,\n typeCount,\n valueOffset,\n );\n\n tiffFields[fieldTagName] = { type: fieldTypeName, values: fieldValues };\n }\n\n fileDirectories.push(tiffFields);\n\n var nextIFDByteOffset = getBytes(4, i);\n\n if (nextIFDByteOffset === 0x00000000) {\n return fileDirectories;\n } else {\n return parseFileDirectory(nextIFDByteOffset);\n }\n};\n\nexport const parseTIFF = (tiffArrayBuffer, _canvas) => {\n let canvas = _canvas || document.createElement(\"canvas\");\n\n if (!tiffArrayBuffer) return;\n\n tiffDataView = new DataView(tiffArrayBuffer);\n // canvas = _canvas;\n\n littleEndian = isLittleEndian(tiffDataView);\n\n if (!hasTowel(tiffDataView, littleEndian)) return;\n\n var firstIFDByteOffset = getBytes(4, 4);\n\n fileDirectories = parseFileDirectory(firstIFDByteOffset);\n\n var fileDirectory = fileDirectories[0];\n\n var imageWidth = fileDirectory.ImageWidth.values[0];\n var imageLength = fileDirectory.ImageLength.values[0];\n\n canvas.width = imageWidth;\n canvas.height = imageLength;\n\n var strips = [];\n\n var compression = fileDirectory.Compression\n ? fileDirectory.Compression.values[0]\n : 1;\n\n var samplesPerPixel = fileDirectory.SamplesPerPixel.values[0];\n\n var sampleProperties = [];\n\n var bitsPerPixel = 0;\n var hasBytesPerPixel = false;\n\n fileDirectory.BitsPerSample.values.forEach(function (\n bitsPerSample,\n i,\n bitsPerSampleValues,\n ) {\n sampleProperties[i] = {\n bitsPerSample: bitsPerSample,\n hasBytesPerSample: false,\n bytesPerSample: undefined,\n };\n\n if (bitsPerSample % 8 === 0) {\n sampleProperties[i].hasBytesPerSample = true;\n sampleProperties[i].bytesPerSample = bitsPerSample / 8;\n }\n\n bitsPerPixel += bitsPerSample;\n }, this);\n\n if (bitsPerPixel % 8 === 0) {\n hasBytesPerPixel = true;\n var bytesPerPixel = bitsPerPixel / 8;\n }\n\n var stripOffsetValues = fileDirectory.StripOffsets.values;\n var numStripOffsetValues = stripOffsetValues.length;\n\n // StripByteCounts is supposed to be required, but see if we can recover anyway.\n if (fileDirectory.StripByteCounts) {\n var stripByteCountValues = fileDirectory.StripByteCounts.values;\n } else {\n // Infer StripByteCounts, if possible.\n if (numStripOffsetValues === 1) {\n var stripByteCountValues = [\n Math.ceil((imageWidth * imageLength * bitsPerPixel) / 8),\n ];\n } else {\n throw Error(\"Cannot recover from missing StripByteCounts\");\n }\n }\n\n // Loop through strips and decompress as necessary.\n for (var i = 0; i < numStripOffsetValues; i++) {\n var stripOffset = stripOffsetValues[i];\n strips[i] = [];\n\n var stripByteCount = stripByteCountValues[i];\n\n // Loop through pixels.\n for (\n var byteOffset = 0,\n bitOffset = 0,\n jIncrement = 1,\n getHeader = true,\n pixel = [],\n numBytes = 0,\n sample = 0,\n currentSample = 0;\n byteOffset < stripByteCount;\n byteOffset += jIncrement\n ) {\n // Decompress strip.\n switch (compression) {\n // Uncompressed\n case 1:\n // Loop through samples (sub-pixels).\n for (var m = 0, pixel = []; m < samplesPerPixel; m++) {\n if (sampleProperties[m].hasBytesPerSample) {\n // XXX: This is wrong!\n var sampleOffset = sampleProperties[m].bytesPerSample * m;\n\n pixel.push(\n getBytes(\n sampleProperties[m].bytesPerSample,\n stripOffset + byteOffset + sampleOffset,\n ),\n );\n } else {\n var sampleInfo = getBits(\n sampleProperties[m].bitsPerSample,\n stripOffset + byteOffset,\n bitOffset,\n );\n\n pixel.push(sampleInfo.bits);\n\n byteOffset = sampleInfo.byteOffset - stripOffset;\n bitOffset = sampleInfo.bitOffset;\n\n throw RangeError(\"Cannot handle sub-byte bits per sample\");\n }\n }\n\n strips[i].push(pixel);\n\n if (hasBytesPerPixel) {\n jIncrement = bytesPerPixel;\n } else {\n jIncrement = 0;\n\n throw RangeError(\"Cannot handle sub-byte bits per pixel\");\n }\n break;\n\n // CITT Group 3 1-Dimensional Modified Huffman run-length encoding\n case 2:\n // XXX: Use PDF.js code?\n break;\n\n // Group 3 Fax\n case 3:\n // XXX: Use PDF.js code?\n break;\n\n // Group 4 Fax\n case 4:\n // XXX: Use PDF.js code?\n break;\n\n // LZW\n case 5:\n // XXX: Use PDF.js code?\n break;\n\n // Old-style JPEG (TIFF 6.0)\n case 6:\n // XXX: Use PDF.js code?\n break;\n\n // New-style JPEG (TIFF Specification Supplement 2)\n case 7:\n // XXX: Use PDF.js code?\n break;\n\n // PackBits\n case 32773:\n // Are we ready for a new block?\n if (getHeader) {\n getHeader = false;\n\n var blockLength = 1;\n var iterations = 1;\n\n // The header byte is signed.\n var header = tiffDataView.getInt8(\n stripOffset + byteOffset,\n littleEndian,\n );\n\n if (header >= 0 && header <= 127) {\n // Normal pixels.\n blockLength = header + 1;\n } else if (header >= -127 && header <= -1) {\n // Collapsed pixels.\n iterations = -header + 1;\n } /*if (header === -128)*/ else {\n // Placeholder byte?\n getHeader = true;\n }\n } else {\n var currentByte = getBytes(1, stripOffset + byteOffset);\n\n // Duplicate bytes, if necessary.\n for (var m = 0; m < iterations; m++) {\n if (sampleProperties[sample].hasBytesPerSample) {\n // We're reading one byte at a time, so we need to handle multi-byte samples.\n currentSample = (currentSample << (8 * numBytes)) | currentByte;\n numBytes++;\n\n // Is our sample complete?\n if (numBytes === sampleProperties[sample].bytesPerSample) {\n pixel.push(currentSample);\n currentSample = numBytes = 0;\n sample++;\n }\n } else {\n throw RangeError(\"Cannot handle sub-byte bits per sample\");\n }\n\n // Is our pixel complete?\n if (sample === samplesPerPixel) {\n strips[i].push(pixel);\n\n pixel = [];\n sample = 0;\n }\n }\n\n blockLength--;\n\n // Is our block complete?\n if (blockLength === 0) {\n getHeader = true;\n }\n }\n\n jIncrement = 1;\n break;\n\n // Unknown compression algorithm\n default:\n // Do not attempt to parse the image data.\n break;\n }\n }\n }\n\n if (canvas.getContext) {\n var ctx = canvas.getContext(\"2d\");\n\n // Set a default fill style.\n ctx.fillStyle = makeRGBAFillValue(255, 255, 255, 0);\n\n // If RowsPerStrip is missing, the whole image is in one strip.\n if (fileDirectory.RowsPerStrip) {\n var rowsPerStrip = fileDirectory.RowsPerStrip.values[0];\n } else {\n var rowsPerStrip = imageLength;\n }\n\n var numStrips = strips.length;\n\n var imageLengthModRowsPerStrip = imageLength % rowsPerStrip;\n var rowsInLastStrip =\n imageLengthModRowsPerStrip === 0\n ? rowsPerStrip\n : imageLengthModRowsPerStrip;\n\n var numRowsInStrip = rowsPerStrip;\n var numRowsInPreviousStrip = 0;\n\n var photometricInterpretation =\n fileDirectory.PhotometricInterpretation.values[0];\n\n var extraSamplesValues = [];\n var numExtraSamples = 0;\n\n if (fileDirectory.ExtraSamples) {\n extraSamplesValues = fileDirectory.ExtraSamples.values;\n numExtraSamples = extraSamplesValues.length;\n }\n\n if (fileDirectory.ColorMap) {\n var colorMapValues = fileDirectory.ColorMap.values;\n var colorMapSampleSize = Math.pow(2, sampleProperties[0].bitsPerSample);\n }\n\n // Loop through the strips in the image.\n for (var i = 0; i < numStrips; i++) {\n // The last strip may be short.\n if (i + 1 === numStrips) {\n numRowsInStrip = rowsInLastStrip;\n }\n\n var numPixels = strips[i].length;\n var yPadding = numRowsInPreviousStrip * i;\n\n // Loop through the rows in the strip.\n for (var y = 0, j = 0; y < numRowsInStrip, j < numPixels; y++) {\n // Loop through the pixels in the row.\n for (var x = 0; x < imageWidth; x++, j++) {\n var pixelSamples = strips[i][j];\n\n var red = 0;\n var green = 0;\n var blue = 0;\n var opacity = 1.0;\n\n if (numExtraSamples > 0) {\n for (var k = 0; k < numExtraSamples; k++) {\n if (extraSamplesValues[k] === 1 || extraSamplesValues[k] === 2) {\n // Clamp opacity to the range [0,1].\n opacity = pixelSamples[3 + k] / 256;\n\n break;\n }\n }\n }\n\n switch (photometricInterpretation) {\n // Bilevel or Grayscale\n // WhiteIsZero\n case 0:\n if (sampleProperties[0].hasBytesPerSample) {\n var invertValue = Math.pow(\n 0x10,\n sampleProperties[0].bytesPerSample * 2,\n );\n }\n\n // Invert samples.\n pixelSamples.forEach(function (sample, index, samples) {\n samples[index] = invertValue - sample;\n });\n\n // Bilevel or Grayscale\n // BlackIsZero\n case 1:\n red =\n green =\n blue =\n clampColorSample(\n pixelSamples[0],\n sampleProperties[0].bitsPerSample,\n );\n break;\n\n // RGB Full Color\n case 2:\n red = clampColorSample(\n pixelSamples[0],\n sampleProperties[0].bitsPerSample,\n );\n green = clampColorSample(\n pixelSamples[1],\n sampleProperties[1].bitsPerSample,\n );\n blue = clampColorSample(\n pixelSamples[2],\n sampleProperties[2].bitsPerSample,\n );\n break;\n\n // RGB Color Palette\n case 3:\n if (colorMapValues === undefined) {\n throw Error(\"Palette image missing color map\");\n }\n\n var colorMapIndex = pixelSamples[0];\n\n red = clampColorSample(colorMapValues[colorMapIndex], 16);\n green = clampColorSample(\n colorMapValues[colorMapSampleSize + colorMapIndex],\n 16,\n );\n blue = clampColorSample(\n colorMapValues[2 * colorMapSampleSize + colorMapIndex],\n 16,\n );\n break;\n\n // Transparency mask\n case 4:\n throw RangeError(\"Not Yet Implemented: Transparency mask\");\n break;\n\n // CMYK\n case 5:\n throw RangeError(\"Not Yet Implemented: CMYK\");\n break;\n\n // YCbCr\n case 6:\n throw RangeError(\"Not Yet Implemented: YCbCr\");\n break;\n\n // CIELab\n case 8:\n throw RangeError(\"Not Yet Implemented: CIELab\");\n break;\n\n // Unknown Photometric Interpretation\n default:\n throw RangeError(\n \"Unknown Photometric Interpretation:\",\n photometricInterpretation,\n );\n break;\n }\n\n ctx.fillStyle = makeRGBAFillValue(red, green, blue, opacity);\n ctx.fillRect(x, yPadding + y, 1, 1);\n }\n }\n\n numRowsInPreviousStrip = numRowsInStrip;\n }\n }\n\n return canvas;\n};\n","import React, { useEffect, useState } from \"react\";\nimport styled from \"styled-components\";\nimport { type DocRenderer } from '../..'\nimport { useTranslation } from \"../../hooks/useTranslation\";\nimport { arrayBufferFileLoader } from \"../../utils/fileLoaders\";\nimport ImageProxyRenderer from \"../image\";\nimport { parseTIFF } from \"./tiffToCanvas\";\n\nconst TIFFRenderer: DocRenderer = (props) => {\n const {\n mainState: { currentDocument },\n } = props;\n const { t } = useTranslation();\n\n const [loadedCanvas, setLoadedCanvas] = useState(false);\n const [corruptedFile, setCorruptedFile] = useState(false);\n\n useEffect(() => {\n if (!currentDocument || loadedCanvas) return;\n const canvas = document.getElementById(\"tiff-img\");\n\n try {\n canvas && parseTIFF(currentDocument.fileData as ArrayBuffer, canvas);\n setLoadedCanvas(true);\n } catch (error) {\n setCorruptedFile(true);\n }\n }, [currentDocument, loadedCanvas]);\n\n if (corruptedFile) {\n return (\n <ImageProxyRenderer {...props}>\n <div>{t(\"brokenFile\")}</div>\n </ImageProxyRenderer>\n );\n }\n\n return (\n <ImageProxyRenderer {...props}>\n <Canvas id=\"tiff-img\" />\n </ImageProxyRenderer>\n );\n};\nTIFFRenderer.fileTypes = [\"tif\", \"tiff\", \"image/tif\", \"image/tiff\"];\nTIFFRenderer.weight = 0;\nTIFFRenderer.fileLoader = arrayBufferFileLoader;\n\nexport default TIFFRenderer;\n\nconst Canvas = styled.canvas`\n max-width: 95%;\n max-height: 95%;\n`;\n","import React, { type ReactNode } from 'react'\nimport styled from \"styled-components\";\nimport { type DocRenderer } from '../..'\nimport { textFileLoader } from \"../../utils/fileLoaders\";\n\nconst TXTRenderer: DocRenderer = ({ mainState: { currentDocument } }) => {\n return (\n <Container id=\"txt-renderer\">\n {currentDocument?.fileData as ReactNode}\n </Container>\n );\n};\n\nexport default TXTRenderer;\n\nTXTRenderer.fileTypes = [\"txt\", \"text/plain\"];\nTXTRenderer.weight = 0;\nTXTRenderer.fileLoader = textFileLoader;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n width: 100%;\n padding: 30px;\n`;\n","/* @license\nPapa Parse\nv5.4.1\nhttps://github.com/mholt/PapaParse\nLicense: MIT\n*/\n!function(e,t){\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof module&&\"undefined\"!=typeof exports?module.exports=t():e.Papa=t()}(this,function s(){\"use strict\";var f=\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:void 0!==f?f:{};var n=!f.document&&!!f.postMessage,o=f.IS_PAPA_WORKER||!1,a={},u=0,b={parse:function(e,t){var r=(t=t||{}).dynamicTyping||!1;J(r)&&(t.dynamicTypingFunction=r,r={});if(t.dynamicTyping=r,t.transform=!!J(t.transform)&&t.transform,t.worker&&b.WORKERS_SUPPORTED){var i=function(){if(!b.WORKERS_SUPPORTED)return!1;var e=(r=f.URL||f.webkitURL||null,i=s.toString(),b.BLOB_URL||(b.BLOB_URL=r.createObjectURL(new Blob([\"var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; \",\"(\",i,\")();\"],{type:\"text/javascript\"})))),t=new f.Worker(e);var r,i;return t.onmessage=_,t.id=u++,a[t.id]=t}();return i.userStep=t.step,i.userChunk=t.chunk,i.userComplete=t.complete,i.userError=t.error,t.step=J(t.step),t.chunk=J(t.chunk),t.complete=J(t.complete),t.error=J(t.error),delete t.worker,void i.postMessage({input:e,config:t,workerId:i.id})}var n=null;b.NODE_STREAM_INPUT,\"string\"==typeof e?(e=function(e){if(65279===e.charCodeAt(0))return e.slice(1);return e}(e),n=t.download?new l(t):new p(t)):!0===e.readable&&J(e.read)&&J(e.on)?n=new g(t):(f.File&&e instanceof File||e instanceof Object)&&(n=new c(t));return n.stream(e)},unparse:function(e,t){var n=!1,_=!0,m=\",\",y=\"\\r\\n\",s='\"',a=s+s,r=!1,i=null,o=!1;!function(){if(\"object\"!=typeof t)return;\"string\"!=typeof t.delimiter||b.BAD_DELIMITERS.filter(function(e){return-1!==t.delimiter.indexOf(e)}).length||(m=t.delimiter);(\"boolean\"==typeof t.quotes||\"function\"==typeof t.quotes||Array.isArray(t.quotes))&&(n=t.quotes);\"boolean\"!=typeof t.skipEmptyLines&&\"string\"!=typeof t.skipEmptyLines||(r=t.skipEmptyLines);\"string\"==typeof t.newline&&(y=t.newline);\"string\"==typeof t.quoteChar&&(s=t.quoteChar);\"boolean\"==typeof t.header&&(_=t.header);if(Array.isArray(t.columns)){if(0===t.columns.length)throw new Error(\"Option columns is empty\");i=t.columns}void 0!==t.escapeChar&&(a=t.escapeChar+s);(\"boolean\"==typeof t.escapeFormulae||t.escapeFormulae instanceof RegExp)&&(o=t.escapeFormulae instanceof RegExp?t.escapeFormulae:/^[=+\\-@\\t\\r].*$/)}();var u=new RegExp(Q(s),\"g\");\"string\"==typeof e&&(e=JSON.parse(e));if(Array.isArray(e)){if(!e.length||Array.isArray(e[0]))return h(null,e,r);if(\"object\"==typeof e[0])return h(i||Object.keys(e[0]),e,r)}else if(\"object\"==typeof e)return\"string\"==typeof e.data&&(e.data=JSON.parse(e.data)),Array.isArray(e.data)&&(e.fields||(e.fields=e.meta&&e.meta.fields||i),e.fields||(e.fields=Array.isArray(e.data[0])?e.fields:\"object\"==typeof e.data[0]?Object.keys(e.data[0]):[]),Array.isArray(e.data[0])||\"object\"==typeof e.data[0]||(e.data=[e.data])),h(e.fields||[],e.data||[],r);throw new Error(\"Unable to serialize unrecognized input\");function h(e,t,r){var i=\"\";\"string\"==typeof e&&(e=JSON.parse(e)),\"string\"==typeof t&&(t=JSON.parse(t));var n=Array.isArray(e)&&0<e.length,s=!Array.isArray(t[0]);if(n&&_){for(var a=0;a<e.length;a++)0<a&&(i+=m),i+=v(e[a],a);0<t.length&&(i+=y)}for(var o=0;o<t.length;o++){var u=n?e.length:t[o].length,h=!1,f=n?0===Object.keys(t[o]).length:0===t[o].length;if(r&&!n&&(h=\"greedy\"===r?\"\"===t[o].join(\"\").trim():1===t[o].length&&0===t[o][0].length),\"greedy\"===r&&n){for(var d=[],l=0;l<u;l++){var c=s?e[l]:l;d.push(t[o][c])}h=\"\"===d.join(\"\").trim()}if(!h){for(var p=0;p<u;p++){0<p&&!f&&(i+=m);var g=n&&s?e[p]:p;i+=v(t[o][g],p)}o<t.length-1&&(!r||0<u&&!f)&&(i+=y)}}return i}function v(e,t){if(null==e)return\"\";if(e.constructor===Date)return JSON.stringify(e).slice(1,25);var r=!1;o&&\"string\"==typeof e&&o.test(e)&&(e=\"'\"+e,r=!0);var i=e.toString().replace(u,a);return(r=r||!0===n||\"function\"==typeof n&&n(e,t)||Array.isArray(n)&&n[t]||function(e,t){for(var r=0;r<t.length;r++)if(-1<e.indexOf(t[r]))return!0;return!1}(i,b.BAD_DELIMITERS)||-1<i.indexOf(m)||\" \"===i.charAt(0)||\" \"===i.charAt(i.length-1))?s+i+s:i}}};if(b.RECORD_SEP=String.fromCharCode(30),b.UNIT_SEP=String.fromCharCode(31),b.BYTE_ORDER_MARK=\"\\ufeff\",b.BAD_DELIMITERS=[\"\\r\",\"\\n\",'\"',b.BYTE_ORDER_MARK],b.WORKERS_SUPPORTED=!n&&!!f.Worker,b.NODE_STREAM_INPUT=1,b.LocalChunkSize=10485760,b.RemoteChunkSize=5242880,b.DefaultDelimiter=\",\",b.Parser=E,b.ParserHandle=r,b.NetworkStreamer=l,b.FileStreamer=c,b.StringStreamer=p,b.ReadableStreamStreamer=g,f.jQuery){var d=f.jQuery;d.fn.parse=function(o){var r=o.config||{},u=[];return this.each(function(e){if(!(\"INPUT\"===d(this).prop(\"tagName\").toUpperCase()&&\"file\"===d(this).attr(\"type\").toLowerCase()&&f.FileReader)||!this.files||0===this.files.length)return!0;for(var t=0;t<this.files.length;t++)u.push({file:this.files[t],inputElem:this,instanceConfig:d.extend({},r)})}),e(),this;function e(){if(0!==u.length){var e,t,r,i,n=u[0];if(J(o.before)){var s=o.before(n.file,n.inputElem);if(\"object\"==typeof s){if(\"abort\"===s.action)return e=\"AbortError\",t=n.file,r=n.inputElem,i=s.reason,void(J(o.error)&&o.error({name:e},t,r,i));if(\"skip\"===s.action)return void h();\"object\"==typeof s.config&&(n.instanceConfig=d.extend(n.instanceConfig,s.config))}else if(\"skip\"===s)return void h()}var a=n.instanceConfig.complete;n.instanceConfig.complete=function(e){J(a)&&a(e,n.file,n.inputElem),h()},b.parse(n.file,n.instanceConfig)}else J(o.complete)&&o.complete()}function h(){u.splice(0,1),e()}}}function h(e){this._handle=null,this._finished=!1,this._completed=!1,this._halted=!1,this._input=null,this._baseIndex=0,this._partialLine=\"\",this._rowCount=0,this._start=0,this._nextChunk=null,this.isFirstChunk=!0,this._completeResults={data:[],errors:[],meta:{}},function(e){var t=w(e);t.chunkSize=parseInt(t.chunkSize),e.step||e.chunk||(t.chunkSize=null);this._handle=new r(t),(this._handle.streamer=this)._config=t}.call(this,e),this.parseChunk=function(e,t){if(this.isFirstChunk&&J(this._config.beforeFirstChunk)){var r=this._config.beforeFirstChunk(e);void 0!==r&&(e=r)}this.isFirstChunk=!1,this._halted=!1;var i=this._partialLine+e;this._partialLine=\"\";var n=this._handle.parse(i,this._baseIndex,!this._finished);if(!this._handle.paused()&&!this._handle.aborted()){var s=n.meta.cursor;this._finished||(this._partialLine=i.substring(s-this._baseIndex),this._baseIndex=s),n&&n.data&&(this._rowCount+=n.data.length);var a=this._finished||this._config.preview&&this._rowCount>=this._config.preview;if(o)f.postMessage({results:n,workerId:b.WORKER_ID,finished:a});else if(J(this._config.chunk)&&!t){if(this._config.chunk(n,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);n=void 0,this._completeResults=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(n.data),this._completeResults.errors=this._completeResults.errors.concat(n.errors),this._completeResults.meta=n.meta),this._completed||!a||!J(this._config.complete)||n&&n.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),a||n&&n.meta.paused||this._nextChunk(),n}this._halted=!0},this._sendError=function(e){J(this._config.error)?this._config.error(e):o&&this._config.error&&f.postMessage({workerId:b.WORKER_ID,error:e,finished:!1})}}function l(e){var i;(e=e||{}).chunkSize||(e.chunkSize=b.RemoteChunkSize),h.call(this,e),this._nextChunk=n?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(e){this._input=e,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(i=new XMLHttpRequest,this._config.withCredentials&&(i.withCredentials=this._config.withCredentials),n||(i.onload=v(this._chunkLoaded,this),i.onerror=v(this._chunkError,this)),i.open(this._config.downloadRequestBody?\"POST\":\"GET\",this._input,!n),this._config.downloadRequestHeaders){var e=this._config.downloadRequestHeaders;for(var t in e)i.setRequestHeader(t,e[t])}if(this._config.chunkSize){var r=this._start+this._config.chunkSize-1;i.setRequestHeader(\"Range\",\"bytes=\"+this._start+\"-\"+r)}try{i.send(this._config.downloadRequestBody)}catch(e){this._chunkError(e.message)}n&&0===i.status&&this._chunkError()}},this._chunkLoaded=function(){4===i.readyState&&(i.status<200||400<=i.status?this._chunkError():(this._start+=this._config.chunkSize?this._config.chunkSize:i.responseText.length,this._finished=!this._config.chunkSize||this._start>=function(e){var t=e.getResponseHeader(\"Content-Range\");if(null===t)return-1;return parseInt(t.substring(t.lastIndexOf(\"/\")+1))}(i),this.parseChunk(i.responseText)))},this._chunkError=function(e){var t=i.statusText||e;this._sendError(new Error(t))}}function c(e){var i,n;(e=e||{}).chunkSize||(e.chunkSize=b.LocalChunkSize),h.call(this,e);var s=\"undefined\"!=typeof FileReader;this.stream=function(e){this._input=e,n=e.slice||e.webkitSlice||e.mozSlice,s?((i=new FileReader).onload=v(this._chunkLoaded,this),i.onerror=v(this._chunkError,this)):i=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount<this._config.preview)||this._readChunk()},this._readChunk=function(){var e=this._input;if(this._config.chunkSize){var t=Math.min(this._start+this._config.chunkSize,this._input.size);e=n.call(e,this._start,t)}var r=i.readAsText(e,this._config.encoding);s||this._chunkLoaded({target:{result:r}})},this._chunkLoaded=function(e){this._start+=this._config.chunkSize,this._finished=!this._config.chunkSize||this._start>=this._input.size,this.parseChunk(e.target.result)},this._chunkError=function(){this._sendError(i.error)}}function p(e){var r;h.call(this,e=e||{}),this.stream=function(e){return r=e,this._nextChunk()},this._nextChunk=function(){if(!this._finished){var e,t=this._config.chunkSize;return t?(e=r.substring(0,t),r=r.substring(t)):(e=r,r=\"\"),this._finished=!r,this.parseChunk(e)}}}function g(e){h.call(this,e=e||{});var t=[],r=!0,i=!1;this.pause=function(){h.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){h.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(e){this._input=e,this._input.on(\"data\",this._streamData),this._input.on(\"end\",this._streamEnd),this._input.on(\"error\",this._streamError)},this._checkIsFinished=function(){i&&1===t.length&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),t.length?this.parseChunk(t.shift()):r=!0},this._streamData=v(function(e){try{t.push(\"string\"==typeof e?e:e.toString(this._config.encoding)),r&&(r=!1,this._checkIsFinished(),this.parseChunk(t.shift()))}catch(e){this._streamError(e)}},this),this._streamError=v(function(e){this._streamCleanUp(),this._sendError(e)},this),this._streamEnd=v(function(){this._streamCleanUp(),i=!0,this._streamData(\"\")},this),this._streamCleanUp=v(function(){this._input.removeListener(\"data\",this._streamData),this._input.removeListener(\"end\",this._streamEnd),this._input.removeListener(\"error\",this._streamError)},this)}function r(m){var a,o,u,i=Math.pow(2,53),n=-i,s=/^\\s*-?(\\d+\\.?|\\.\\d+|\\d+\\.\\d+)([eE][-+]?\\d+)?\\s*$/,h=/^((\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z)))$/,t=this,r=0,f=0,d=!1,e=!1,l=[],c={data:[],errors:[],meta:{}};if(J(m.step)){var p=m.step;m.step=function(e){if(c=e,_())g();else{if(g(),0===c.data.length)return;r+=e.data.length,m.preview&&r>m.preview?o.abort():(c.data=c.data[0],p(c,t))}}}function y(e){return\"greedy\"===m.skipEmptyLines?\"\"===e.join(\"\").trim():1===e.length&&0===e[0].length}function g(){return c&&u&&(k(\"Delimiter\",\"UndetectableDelimiter\",\"Unable to auto-detect delimiting character; defaulted to '\"+b.DefaultDelimiter+\"'\"),u=!1),m.skipEmptyLines&&(c.data=c.data.filter(function(e){return!y(e)})),_()&&function(){if(!c)return;function e(e,t){J(m.transformHeader)&&(e=m.transformHeader(e,t)),l.push(e)}if(Array.isArray(c.data[0])){for(var t=0;_()&&t<c.data.length;t++)c.data[t].forEach(e);c.data.splice(0,1)}else c.data.forEach(e)}(),function(){if(!c||!m.header&&!m.dynamicTyping&&!m.transform)return c;function e(e,t){var r,i=m.header?{}:[];for(r=0;r<e.length;r++){var n=r,s=e[r];m.header&&(n=r>=l.length?\"__parsed_extra\":l[r]),m.transform&&(s=m.transform(s,n)),s=v(n,s),\"__parsed_extra\"===n?(i[n]=i[n]||[],i[n].push(s)):i[n]=s}return m.header&&(r>l.length?k(\"FieldMismatch\",\"TooManyFields\",\"Too many fields: expected \"+l.length+\" fields but parsed \"+r,f+t):r<l.length&&k(\"FieldMismatch\",\"TooFewFields\",\"Too few fields: expected \"+l.length+\" fields but parsed \"+r,f+t)),i}var t=1;!c.data.length||Array.isArray(c.data[0])?(c.data=c.data.map(e),t=c.data.length):c.data=e(c.data,0);m.header&&c.meta&&(c.meta.fields=l);return f+=t,c}()}function _(){return m.header&&0===l.length}function v(e,t){return r=e,m.dynamicTypingFunction&&void 0===m.dynamicTyping[r]&&(m.dynamicTyping[r]=m.dynamicTypingFunction(r)),!0===(m.dynamicTyping[r]||m.dynamicTyping)?\"true\"===t||\"TRUE\"===t||\"false\"!==t&&\"FALSE\"!==t&&(function(e){if(s.test(e)){var t=parseFloat(e);if(n<t&&t<i)return!0}return!1}(t)?parseFloat(t):h.test(t)?new Date(t):\"\"===t?null:t):t;var r}function k(e,t,r,i){var n={type:e,code:t,message:r};void 0!==i&&(n.row=i),c.errors.push(n)}this.parse=function(e,t,r){var i=m.quoteChar||'\"';if(m.newline||(m.newline=function(e,t){e=e.substring(0,1048576);var r=new RegExp(Q(t)+\"([^]*?)\"+Q(t),\"gm\"),i=(e=e.replace(r,\"\")).split(\"\\r\"),n=e.split(\"\\n\"),s=1<n.length&&n[0].length<i[0].length;if(1===i.length||s)return\"\\n\";for(var a=0,o=0;o<i.length;o++)\"\\n\"===i[o][0]&&a++;return a>=i.length/2?\"\\r\\n\":\"\\r\"}(e,i)),u=!1,m.delimiter)J(m.delimiter)&&(m.delimiter=m.delimiter(e),c.meta.delimiter=m.delimiter);else{var n=function(e,t,r,i,n){var s,a,o,u;n=n||[\",\",\"\\t\",\"|\",\";\",b.RECORD_SEP,b.UNIT_SEP];for(var h=0;h<n.length;h++){var f=n[h],d=0,l=0,c=0;o=void 0;for(var p=new E({comments:i,delimiter:f,newline:t,preview:10}).parse(e),g=0;g<p.data.length;g++)if(r&&y(p.data[g]))c++;else{var _=p.data[g].length;l+=_,void 0!==o?0<_&&(d+=Math.abs(_-o),o=_):o=_}0<p.data.length&&(l/=p.data.length-c),(void 0===a||d<=a)&&(void 0===u||u<l)&&1.99<l&&(a=d,s=f,u=l)}return{successful:!!(m.delimiter=s),bestDelimiter:s}}(e,m.newline,m.skipEmptyLines,m.comments,m.delimitersToGuess);n.successful?m.delimiter=n.bestDelimiter:(u=!0,m.delimiter=b.DefaultDelimiter),c.meta.delimiter=m.delimiter}var s=w(m);return m.preview&&m.header&&s.preview++,a=e,o=new E(s),c=o.parse(a,t,r),g(),d?{meta:{paused:!0}}:c||{meta:{paused:!1}}},this.paused=function(){return d},this.pause=function(){d=!0,o.abort(),a=J(m.chunk)?\"\":a.substring(o.getCharIndex())},this.resume=function(){t.streamer._halted?(d=!1,t.streamer.parseChunk(a,!0)):setTimeout(t.resume,3)},this.aborted=function(){return e},this.abort=function(){e=!0,o.abort(),c.meta.aborted=!0,J(m.complete)&&m.complete(c),a=\"\"}}function Q(e){return e.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\")}function E(j){var z,M=(j=j||{}).delimiter,P=j.newline,U=j.comments,q=j.step,N=j.preview,B=j.fastMode,K=z=void 0===j.quoteChar||null===j.quoteChar?'\"':j.quoteChar;if(void 0!==j.escapeChar&&(K=j.escapeChar),(\"string\"!=typeof M||-1<b.BAD_DELIMITERS.indexOf(M))&&(M=\",\"),U===M)throw new Error(\"Comment character same as delimiter\");!0===U?U=\"#\":(\"string\"!=typeof U||-1<b.BAD_DELIMITERS.indexOf(U))&&(U=!1),\"\\n\"!==P&&\"\\r\"!==P&&\"\\r\\n\"!==P&&(P=\"\\n\");var W=0,H=!1;this.parse=function(i,t,r){if(\"string\"!=typeof i)throw new Error(\"Input must be a string\");var n=i.length,e=M.length,s=P.length,a=U.length,o=J(q),u=[],h=[],f=[],d=W=0;if(!i)return L();if(j.header&&!t){var l=i.split(P)[0].split(M),c=[],p={},g=!1;for(var _ in l){var m=l[_];J(j.transformHeader)&&(m=j.transformHeader(m,_));var y=m,v=p[m]||0;for(0<v&&(g=!0,y=m+\"_\"+v),p[m]=v+1;c.includes(y);)y=y+\"_\"+v;c.push(y)}if(g){var k=i.split(P);k[0]=c.join(M),i=k.join(P)}}if(B||!1!==B&&-1===i.indexOf(z)){for(var b=i.split(P),E=0;E<b.length;E++){if(f=b[E],W+=f.length,E!==b.length-1)W+=P.length;else if(r)return L();if(!U||f.substring(0,a)!==U){if(o){if(u=[],I(f.split(M)),F(),H)return L()}else I(f.split(M));if(N&&N<=E)return u=u.slice(0,N),L(!0)}}return L()}for(var w=i.indexOf(M,W),R=i.indexOf(P,W),C=new RegExp(Q(K)+Q(z),\"g\"),S=i.indexOf(z,W);;)if(i[W]!==z)if(U&&0===f.length&&i.substring(W,W+a)===U){if(-1===R)return L();W=R+s,R=i.indexOf(P,W),w=i.indexOf(M,W)}else if(-1!==w&&(w<R||-1===R))f.push(i.substring(W,w)),W=w+e,w=i.indexOf(M,W);else{if(-1===R)break;if(f.push(i.substring(W,R)),D(R+s),o&&(F(),H))return L();if(N&&u.length>=N)return L(!0)}else for(S=W,W++;;){if(-1===(S=i.indexOf(z,S+1)))return r||h.push({type:\"Quotes\",code:\"MissingQuotes\",message:\"Quoted field unterminated\",row:u.length,index:W}),T();if(S===n-1)return T(i.substring(W,S).replace(C,z));if(z!==K||i[S+1]!==K){if(z===K||0===S||i[S-1]!==K){-1!==w&&w<S+1&&(w=i.indexOf(M,S+1)),-1!==R&&R<S+1&&(R=i.indexOf(P,S+1));var O=A(-1===R?w:Math.min(w,R));if(i.substr(S+1+O,e)===M){f.push(i.substring(W,S).replace(C,z)),i[W=S+1+O+e]!==z&&(S=i.indexOf(z,W)),w=i.indexOf(M,W),R=i.indexOf(P,W);break}var x=A(R);if(i.substring(S+1+x,S+1+x+s)===P){if(f.push(i.substring(W,S).replace(C,z)),D(S+1+x+s),w=i.indexOf(M,W),S=i.indexOf(z,W),o&&(F(),H))return L();if(N&&u.length>=N)return L(!0);break}h.push({type:\"Quotes\",code:\"InvalidQuotes\",message:\"Trailing quote on quoted field is malformed\",row:u.length,index:W}),S++}}else S++}return T();function I(e){u.push(e),d=W}function A(e){var t=0;if(-1!==e){var r=i.substring(S+1,e);r&&\"\"===r.trim()&&(t=r.length)}return t}function T(e){return r||(void 0===e&&(e=i.substring(W)),f.push(e),W=n,I(f),o&&F()),L()}function D(e){W=e,I(f),f=[],R=i.indexOf(P,W)}function L(e){return{data:u,errors:h,meta:{delimiter:M,linebreak:P,aborted:H,truncated:!!e,cursor:d+(t||0)}}}function F(){q(L()),u=[],h=[]}},this.abort=function(){H=!0},this.getCharIndex=function(){return W}}function _(e){var t=e.data,r=a[t.workerId],i=!1;if(t.error)r.userError(t.error,t.file);else if(t.results&&t.results.data){var n={abort:function(){i=!0,m(t.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:y,resume:y};if(J(r.userStep)){for(var s=0;s<t.results.data.length&&(r.userStep({data:t.results.data[s],errors:t.results.errors,meta:t.results.meta},n),!i);s++);delete t.results}else J(r.userChunk)&&(r.userChunk(t.results,n,t.file),delete t.results)}t.finished&&!i&&m(t.workerId,t.results)}function m(e,t){var r=a[e];J(r.userComplete)&&r.userComplete(t),r.terminate(),delete a[e]}function y(){throw new Error(\"Not implemented.\")}function w(e){if(\"object\"!=typeof e||null===e)return e;var t=Array.isArray(e)?[]:{};for(var r in e)t[r]=w(e[r]);return t}function v(e,t){return function(){e.apply(t,arguments)}}function J(e){return\"function\"==typeof e}return o&&(f.onmessage=function(e){var t=e.data;void 0===b.WORKER_ID&&t&&(b.WORKER_ID=t.workerId);if(\"string\"==typeof t.input)f.postMessage({workerId:b.WORKER_ID,results:b.parse(t.input,t.config),finished:!0});else if(f.File&&t.input instanceof File||t.input instanceof Object){var r=b.parse(t.input,t.config);r&&f.postMessage({workerId:b.WORKER_ID,results:r,finished:!0})}}),(l.prototype=Object.create(h.prototype)).constructor=l,(c.prototype=Object.create(h.prototype)).constructor=c,(p.prototype=Object.create(p.prototype)).constructor=p,(g.prototype=Object.create(h.prototype)).constructor=g,b});","import React, { useEffect, useState } from 'react'\nimport styled from 'styled-components'\nimport papaparse from 'papaparse'\nimport type { DocRenderer } from '../..'\nimport { textFileLoader } from '../../utils/fileLoaders'\n\nconst CSVRenderer: DocRenderer = ({ mainState: { currentDocument, config } }) => {\n const [rows, setRows] = useState<string[][]>([])\n\n useEffect(() => {\n if (currentDocument?.fileData) {\n const parseResult = papaparse.parse(currentDocument.fileData as string, {\n delimiter: config?.csvDelimiter ?? ',',\n })\n\n if (!parseResult.errors?.length && parseResult.data) {\n setRows(parseResult.data as string[][])\n }\n }\n }, [currentDocument, config?.csvDelimiter])\n\n if (!rows.length) {\n return null\n }\n\n return (\n <Container>\n <Table>\n <thead>\n <tr>\n {rows[0]?.map((column) => (\n <th key={column}>{column}</th>\n ))}\n </tr>\n </thead>\n <tbody>\n {rows.slice(1, rows.length).map((row) => (\n <tr key={row.join('')}>\n {row.map((column) => (\n <td key={column}>{column}</td>\n ))}\n </tr>\n ))}\n </tbody>\n </Table>\n </Container>\n )\n}\n\nexport default CSVRenderer\n\nCSVRenderer.fileTypes = ['csv', 'text/csv']\nCSVRenderer.weight = 0\nCSVRenderer.fileLoader = textFileLoader\n\nconst Container = styled.div`\n width: 100%;\n`\n\nconst Table = styled.table`\n width: 100%;\n text-align: left;\n\n th,\n td {\n padding: 5px 10px;\n\n &:empty {\n display: none;\n }\n }\n`\n","import React from 'react'\nimport ImageProxyRenderer from '../image'\nimport type { DocRenderer } from 'src/models'\n\nconst JPGRenderer: DocRenderer = (props) => <ImageProxyRenderer {...props} />\n\nJPGRenderer.fileTypes = ['gif', 'image/gif']\nJPGRenderer.weight = 0\n\nexport default JPGRenderer\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { type DocRenderer } from '../..'\n\nconst VideoRenderer: DocRenderer = ({ mainState: { currentDocument } }) => {\n if (!currentDocument) return null;\n\n return (\n <Container id=\"video-renderer\">\n <Video controls src={currentDocument.uri} />\n </Container>\n );\n};\n\nexport default VideoRenderer;\n\nVideoRenderer.fileTypes = [\"video/mp4\", \"video/quicktime\", \"video/x-msvideo\"];\nVideoRenderer.weight = 0;\n\nconst Container = styled.div`\n width: 100%;\n`;\nconst Video = styled.video`\n width: 100%;\n height: 100%;\n border: 0;\n`;\n","import React from \"react\";\nimport { type DocRenderer } from '../..'\nimport ImageProxyRenderer from \"../image\";\n\nconst WebPRenderer: DocRenderer = (props) => <ImageProxyRenderer {...props} />;\n\nWebPRenderer.fileTypes = [\"webp\", \"image/webp\"];\nWebPRenderer.weight = 0;\n\nexport default WebPRenderer;\n","import BMPRenderer from \"./bmp\";\nimport HTMLRenderer from \"./html\";\nimport JPGRenderer from \"./jpg\";\nimport MSDocRenderer from \"./msdoc\";\nimport PDFRenderer from \"./pdf\";\nimport PNGRenderer from \"./png\";\nimport TIFFRenderer from \"./tiff\";\nimport TXTRenderer from \"./txt\";\nimport CSVRenderer from \"./csv\";\nimport GIFRenderer from \"./gif\";\nimport VideoRenderer from \"./video\";\nimport WebPRenderer from \"./webp\";\n\nexport const DocViewerRenderers = [\n BMPRenderer,\n HTMLRenderer,\n JPGRenderer,\n MSDocRenderer,\n PDFRenderer,\n PNGRenderer,\n TIFFRenderer,\n TXTRenderer,\n CSVRenderer,\n GIFRenderer,\n VideoRenderer,\n WebPRenderer,\n];\n\nexport {\n BMPRenderer,\n HTMLRenderer,\n JPGRenderer,\n MSDocRenderer,\n PDFRenderer,\n PNGRenderer,\n TIFFRenderer,\n TXTRenderer,\n CSVRenderer,\n GIFRenderer,\n VideoRenderer,\n WebPRenderer,\n};\n","import 'core-js/proposals/promise-with-resolvers'\nimport React, { type CSSProperties, forwardRef, memo } from 'react'\nimport styled, { ThemeProvider } from 'styled-components'\nimport { HeaderBar } from './components/HeaderBar'\nimport { ProxyRenderer } from './components/ProxyRenderer'\nimport { defaultTheme } from './defaultTheme'\nimport { type AvailableLanguages } from './i18n'\nimport { type DocRenderer, type DocViewerRef, type IConfig, type IDocument, type ITheme } from './models'\nimport { DocViewerRenderers } from './renderers'\nimport { DocViewerProvider } from './store/DocViewerProvider'\n\nexport interface DocViewerProps {\n documents: IDocument[]\n className?: string\n style?: CSSProperties\n config?: IConfig\n theme?: ITheme\n pluginRenderers?: DocRenderer[]\n prefetchMethod?: string\n requestHeaders?: Record<string, string>\n initialActiveDocument?: IDocument\n language?: AvailableLanguages\n activeDocument?: IDocument\n onDocumentChange?: (document: IDocument) => void\n}\n\nconst DocViewer = forwardRef<DocViewerRef, DocViewerProps>((props, ref) => {\n const { documents, theme } = props\n\n if (!documents) {\n throw new Error('Please provide an array of documents to DocViewer!')\n }\n\n return (\n <DocViewerProvider ref={ref} pluginRenderers={DocViewerRenderers} {...props}>\n <ThemeProvider theme={theme ? { ...defaultTheme, ...theme } : defaultTheme}>\n <Container\n id='react-doc-viewer'\n data-testid='react-doc-viewer'\n className={props.className}\n style={props.style}\n >\n <HeaderBar />\n <ProxyRenderer />\n </Container>\n </ThemeProvider>\n </DocViewerProvider>\n )\n})\n\nexport default memo(DocViewer)\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n background: #ffffff;\n width: 100%;\n height: 100%;\n`\n"],"names":["process","env","NODE_ENV","jsxRuntimeModule","exports","f","require$$0","k","Symbol","for","l","m","Object","prototype","hasOwnProperty","n","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","p","key","ref","__self","__source","q","c","a","g","b","d","e","h","call","defaultProps","$$typeof","type","props","_owner","current","reactJsxRuntime_production_min","jsx","jsxs","React","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_OFFSCREEN_TYPE","MAYBE_ITERATOR_SYMBOL","iterator","FAUX_ITERATOR_SYMBOL","ReactSharedInternals","error","format","_len2","arguments","length","args","Array","_key2","printWarning","level","ReactDebugCurrentFrame","stack","getStackAddendum","concat","argsWithFormat","map","item","String","unshift","Function","apply","console","enableScopeAPI","REACT_MODULE_REFERENCE","enableCacheElement","enableTransitionTracing","enableLegacyHidden","enableDebugTracing","getContextName","displayName","getComponentNameFromType","tag","name","_context","getWrappedName","outerType","innerType","wrapperName","functionName","render","outerName","lazyComponent","payload","_payload","init","_init","assign","prevLog","prevInfo","prevWarn","prevError","prevGroup","prevGroupCollapsed","prevGroupEnd","disabledDepth","disabledLog","__reactDisabledLog","ReactCurrentDispatcher","prefix","describeBuiltInComponentFrame","source","ownerFn","Error","x","match","trim","componentFrameCache","reentry","PossiblyWeakMap","WeakMap","Map","describeNativeComponentFrame","fn","construct","frame","control","get","previousDispatcher","previousPrepareStackTrace","prepareStackTrace","log","info","warn","group","groupCollapsed","groupEnd","configurable","enumerable","value","writable","defineProperties","disableLogs","Fake","defineProperty","set","Reflect","sample","sampleLines","split","controlLines","s","_frame","replace","includes","reenableLogs","syntheticFrame","describeUnknownElementTypeFrameInDEV","Component","isReactComponent","shouldConstruct","describeFunctionComponentFrame","loggedTypeFailures","setCurrentlyValidatingElement","element","owner","_source","setExtraStackFrame","isArrayImpl","isArray","testStringCoercion","checkKeyStringCoercion","willCoercionThrow","toStringTag","constructor","typeName","specialPropKeyWarningShown","specialPropRefWarningShown","didWarnAboutStringRefs","RESERVED_PROPS","ReactElement","self","_store","freeze","jsxDEV","config","maybeKey","propName","getter","getOwnPropertyDescriptor","isReactWarning","hasValidKey","hasValidRef","warnIfStringRefCannotBeAutoConverted","stateNode","componentName","defineKeyPropWarningGetter","warnAboutAccessingKey","defineRefPropWarningGetter","warnAboutAccessingRef","propTypesMisspellWarningShown","ReactCurrentOwner$1","ReactDebugCurrentFrame$1","setCurrentlyValidatingElement$1","isValidElement","object","getDeclarationErrorAddendum","ownerHasKeyUseWarning","validateExplicitKey","parentType","validated","currentComponentErrorInfo","parentName","getCurrentComponentErrorInfo","childOwner","validateChildKeys","node","i","child","iteratorFn","maybeIterable","maybeIterator","getIteratorFn","entries","step","next","done","validatePropTypes","propTypes","typeSpecs","values","location","has","bind","typeSpecName","error$1","err","ex","message","checkPropTypes","PropTypes","getDefaultProps","isReactClassApproved","jsxWithValidation","isStaticChildren","validType","getModuleId","isValidElementType","keys","sourceInfo","typeString","fileName","lineNumber","getSourceInfoErrorAddendum","children","fragment","validateFragmentProps","jsxWithValidationDynamic","jsxWithValidationStatic","reactJsxRuntime_development","Fragment","check","it","Math","global","globalThis","window","this","fails","exec","descriptors","functionBindNative","test","NATIVE_BIND","functionCall","$propertyIsEnumerable","propertyIsEnumerable","NASHORN_BUG","objectPropertyIsEnumerable","V","descriptor","version","createPropertyDescriptor","bitmap","FunctionPrototype","uncurryThisWithBind","functionUncurryThis","uncurryThis","toString","stringSlice","slice","require$$1","classof","$Object","indexedObject","isNullOrUndefined","$TypeError","TypeError","requireObjectCoercible","IndexedObject","toIndexedObject","documentAll","document","all","isCallable","argument","isObject","getBuiltIn","namespace","method","aFunction","objectIsPrototypeOf","isPrototypeOf","userAgent","navigator","Deno","versions","v8","V8_VERSION","$String","require$$2","symbolConstructorDetection","getOwnPropertySymbols","symbol","sham","useSymbolAsUid","isSymbol","require$$3","$Symbol","tryToString","aCallable","defineGlobalProperty","SHARED","store","sharedStoreModule","push","mode","copyright","license","shared","toObject","hasOwnProperty_1","hasOwn","id","postfix","random","uid","NATIVE_SYMBOL","require$$4","USE_SYMBOL_AS_UID","require$$5","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","getMethod","P","func","ordinaryToPrimitive","input","pref","val","valueOf","TO_PRIMITIVE","wellKnownSymbol","toPrimitive","result","exoticToPrim","toPropertyKey","EXISTS","createElement","ie8DomDefine","DESCRIPTORS","propertyIsEnumerableModule","require$$6","IE8_DOM_DEFINE","require$$7","$getOwnPropertyDescriptor","objectGetOwnPropertyDescriptor","O","v8PrototypeDefineBug","anObject","V8_PROTOTYPE_DEFINE_BUG","$defineProperty","ENUMERABLE","CONFIGURABLE","WRITABLE","objectDefineProperty","Attributes","definePropertyModule","createNonEnumerableProperty","getDescriptor","PROPER","functionToString","inspectSource","weakMapBasicDetection","hiddenKeys","NATIVE_WEAK_MAP","sharedKey","OBJECT_ALREADY_INITIALIZED","state","metadata","facade","STATE","internalState","enforce","getterFor","TYPE","CONFIGURABLE_FUNCTION_NAME","enforceInternalState","getInternalState","join","CONFIGURABLE_LENGTH","TEMPLATE","makeBuiltIn","makeBuiltInModule","options","setter","arity","ceil","floor","trunc","toIntegerOrInfinity","number","max","min","toLength","len","toAbsoluteIndex","index","integer","lengthOfArrayLike","obj","createMethod","IS_INCLUDES","$this","el","fromIndex","arrayIncludes","indexOf","internalObjectKeys","names","objectGetOwnPropertyNames","getOwnPropertyNames","objectGetOwnPropertySymbols","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","ownKeys","getOwnPropertyDescriptorModule","replacement","isForced","feature","detection","data","normalize","POLYFILL","NATIVE","string","toLowerCase","isForced_1","defineBuiltIn","simple","unsafe","nonConfigurable","nonWritable","copyConstructorProperties","target","exceptions","PromiseCapability","C","resolve","reject","promise","$$resolve","$$reject","newPromiseCapability","newPromiseCapabilityModule","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","forced","$","withResolvers","promiseCapability","__assign","t","__spreadArray","to","from","pack","ar","memoize","cache","create","arg","reactPropsRegex","isPropValid","prop","charCodeAt","MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","IMPORT","KEYFRAMES","LAYER","abs","fromCharCode","pattern","indexof","search","position","charat","substr","begin","end","strlen","sizeof","append","array","filter","line","column","character","characters","root","parent","siblings","return","copy","lift","peek","caret","token","delimit","delimiter","whitespace","escaping","count","commenter","identifier","compile","dealloc","parse","alloc","rule","rules","rulesets","pseudo","points","declarations","offset","atrule","property","previous","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","size","j","y","z","hash","some","_","serialize","callback","output","stringify","prefixer","combine","unitlessKeys","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","fontWeight","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","REACT_APP_SC_ATTR","SC_ATTR","v","S","w","SC_DISABLE_SPEEDY","REACT_APP_SC_DISABLE_SPEEDY","E","N","Set","A","D","R","T","M","B","L","charAt","G","Y","W","childContextTypes","contextType","contextTypes","getDerivedStateFromError","getDerivedStateFromProps","mixins","H","caller","callee","U","compare","J","X","Z","K","Q","ee","te","getPrototypeOf","ne","oe","o","r","re","se","ie","ae","ce","le","ue","pe","de","forEach","he","fe","groupSizes","Uint32Array","indexOfGroup","insertRules","insertRule","clearGroup","deleteRule","getGroup","getRule","ye","ve","ge","Se","we","be","Ee","RegExp","Ne","registerName","Pe","textContent","parseInt","u","getTag","Ce","head","querySelectorAll","nextSibling","setAttribute","__webpack_nonce__","insertBefore","Ie","appendChild","createTextNode","sheet","styleSheets","ownerNode","cssRules","cssText","Ae","nodes","childNodes","removeChild","Oe","splice","De","Re","isServer","useCSSOMInjection","Te","gs","server","getAttribute","parentNode","registerId","reconstructWithOptions","allocateGSInstance","hasNameForId","add","clearNames","clear","clearRules","clearTag","ke","je","xe","replaceAll","Fe","Me","plugins","startsWith","endsWith","d.RULESET","d.prefixer","d.stringify","d.compile","d.serialize","collection","d.middleware","d.rulesheet","reduce","Ve","$e","createContext","shouldForwardProp","styleSheet","stylis","Le","Consumer","Ye","inject","getName","We","qe","He","Ue","isCss","Je","styledComponentId","Ze","Ke","staticRulesId","isStatic","Xe","componentId","baseHash","baseStyle","generateAndInjectStyles","Qe","nt","useContext","theme","Provider","ot","rt","st","attrs","parentComponentId","Boolean","componentStyle","foldedComponentIds","I","className","as","forwardedAs","warnTooManyClasses","forwardRef","_foldedDefaultProps","delete","at","ct","lt","withConfig","ut","pt","product","gt","locales","en","pl","es","fr","sr","sr_cyr","ja","ru","supportedLanguages","defaultLanguage","SET_ALL_DOCUMENTS","SET_DOCUMENT_LOADING","NEXT_DOCUMENT","PREVIOUS_DOCUMENT","UPDATE_CURRENT_DOCUMENT","SET_RENDERER_RECT","SET_MAIN_CONFIG","setDocumentLoading","nextDocument","previousDocument","updateCurrentDocument","initialState","currentFileNo","documents","documentLoading","currentDocument","rendererRect","pluginRenderers","language","mainStateReducer","action","initialActiveDocument","nextDocumentNo","doc","onDocumentChange","prevDocumentNo","findIndex","uri","rect","DocViewerContext","dispatch","DocViewerProvider","prefetchMethod","requestHeaders","activeDocument","useReducer","useEffect","setAllDocuments","setMainConfig","useImperativeHandle","prev","ButtonPrimaryStyle","css","primary","textPrimary","ButtonSecondaryStyle","secondary","textSecondary","Button","styled","button","disabled","LinkButton","ButtonSecondary","PrevDocIcon","DocNavIcon","NextDocIcon","reverse","color","width","height","style","transform","viewBox","xmlSpace","clipRule","fill","fillRule","LoadingIcon","alignSelf","justifySelf","objectToString","isFunction","escapeRegExp","hasProperty","primitiveHasOwnProperty","primitive","regExpTest","nonSpaceRe","isWhitespace","testRegExp","entityMap","whiteRe","spaceRe","equalsRe","curlyRe","tagRe","Scanner","tail","pos","Context","view","parentContext","Writer","templateCache","_cache","eos","scan","substring","scanUntil","lookup","intermediateValue","context","lookupHit","clearCache","template","tags","cacheKey","mustache","isCacheEnabled","tokens","openingTagRe","closingTagRe","closingCurlyRe","lineHasNonSpace","sections","spaces","hasTag","nonSpace","indentation","tagIndex","stripSpace","pop","compileTags","tagsToCompile","start","chr","openSection","scanner","valueLength","nestTokens","nestedTokens","collector","numTokens","lastToken","squashedTokens","squashTokens","parseTemplate","partials","getConfigTags","renderTokens","originalTemplate","buffer","renderSection","renderInverted","renderPartial","unescapedValue","escapedValue","rawValue","indentPartial","partial","filteredIndentation","partialByNl","indentedValue","escape","getConfigEscape","defaultWriter","useTranslation","defaultTranslations","useCallback","variables","translations","DocumentNav","splitURL","Container","allFilesCount","ButtonPrev","onClick","ButtonNext","div","getFileName","retainURLParams","decodeURI","_a","FileName","header","disableFileName","_b","HeaderBar","disableHeader","override","_c","overrideComponent","_fileLoader","documentURI","signal","fileLoaderComplete","readerTypeFunction","headers","fetch","then","async","res","blob","fileReader","FileReader","addEventListener","readAsArrayBuffer","readAsBinaryString","readAsDataURL","readAsText","catch","arrayBufferFileLoader","dataURLFileLoader","textFileLoader","binaryStringFileLoader","defaultFileLoader","useDocumentLoader","CurrentRenderer","setCurrentRenderer","useState","fileType","matchingRenderers","fileTypes","SelectedRenderer","sort","weight","useRendererSelector","controller","AbortController","response","contentTypeRaw","contentTypes","contentType","abort","loaderFunctionProps","updatedDocument","fileData","fileLoader","LoadingTimeout","shouldLoadingRender","setShouldLoadingRender","loadingRenderer","showLoadingTimeout","setTimeout","Contents","OverrideComponent","LoadingContainer","LoadingIconContainer","mainState","noRenderer","DownloadButton","href","download","ProxyRenderer","windowSize","setWindowSize","handleResize","innerWidth","innerHeight","removeEventListener","useWindowSize","containerRef","setRendererRect","getBoundingClientRect","spinAnim","keyframes","defaultTheme","tertiary","textTertiary","disableThemeScrollbar","ImageProxyRenderer","Img","src","img","BMPRenderer","HTMLRenderer","b64String","encoding","bodyBase64","charset","body","atob","Uint8Array","TextDecoder","decode","iframeCont","getElementById","iframe","contentWindow","iframeDoc","open","write","close","BodyIFrame","sandbox","JPGRenderer","MSDocRenderer","IFrame","title","encodeURIComponent","frameBorder","MSDocFTMaps","odt","docx","xls","xlsx","ppt","pptx","__webpack_require__","definition","__webpack_exports__","pdfjsLib","AbortException","AnnotationEditorLayer","AnnotationEditorParamsType","AnnotationEditorType","AnnotationEditorUIManager","AnnotationLayer","AnnotationMode","CMapCompressionType","ColorPicker","DOMSVGFactory","DrawLayer","FeatureTest","GlobalWorkerOptions","ImageKind","InvalidPDFException","MissingPDFException","OPS","Outliner","PDFDataRangeTransport","PDFDateString","PDFWorker","PasswordResponses","PermissionFlag","PixelsPerInch","RenderingCancelledException","TextLayer","UnexpectedResponseException","Util","VerbosityLevel","XfaLayer","build","createValidAbsoluteUrl","fetchData","getDocument","getFilenameFromUrl","getPdfFilenameFromUrl","getXfaPageViewport","isDataScheme","isPdfFile","noContextMenu","normalizeUnicode","renderTextLayer","setLayerDimensions","shadow","updateTextLayer","isNodeJS","nw","electron","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","LINE_FACTOR","RenderingIntentFlag","DISABLE","ENABLE","ENABLE_FORMS","ENABLE_STORAGE","NONE","FREETEXT","HIGHLIGHT","STAMP","INK","RESIZE","CREATE","FREETEXT_SIZE","FREETEXT_COLOR","FREETEXT_OPACITY","INK_COLOR","INK_THICKNESS","INK_OPACITY","HIGHLIGHT_COLOR","HIGHLIGHT_DEFAULT_COLOR","HIGHLIGHT_THICKNESS","HIGHLIGHT_FREE","HIGHLIGHT_SHOW_ALL","PRINT","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","TextRenderingMode","util_ImageKind","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","AnnotationType","AnnotationBorderStyleType","ERRORS","WARNINGS","INFOS","BINARY","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","save","restore","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","stroke","closeStroke","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","clip","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotation","endAnnotation","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","NEED_PASSWORD","INCORRECT_PASSWORD","verbosity","getVerbosityLevel","msg","unreachable","assert","cond","url","baseUrl","addDefaultProtocol","dots","tryConvertEncoding","str","decodeURIComponent","stringToUTF8String","absoluteUrl","URL","protocol","_isValidProtocol","nonSerializable","BaseException","PasswordException","code","super","UnknownErrorException","details","status","FormatError","bytesToString","bytes","MAX_ARGUMENT_COUNT","strBuf","chunkEnd","chunk","subarray","stringToBytes","objectFromMap","util_FeatureTest","isLittleEndian","buffer8","isEvalSupported","isOffscreenCanvasSupported","OffscreenCanvas","platform","isMac","isCSSRoundSupported","CSS","supports","hexNumbers","padStart","static","minMax","temp","m1","m2","p1","applyTransform","p2","p3","p4","transpose","first","second","sqrt","sx","sy","rect1","rect2","xLow","xHigh","yLow","yHigh","x0","y0","x1","y1","x2","y2","x3","y3","__privateMethod","_getExtremum","getExtremum_fn","_getExtremumOnCurve","getExtremumOnCurve_fn","mt","tt","ttt","WeakSet","delta","sqrtDelta","a2","__privateAdd","NormalizeRegex","NormalizationMap","AnnotationPrefix","FontRenderOps","BaseFilterFactory","addFilter","maps","addHCMFilter","fgColor","bgColor","addAlphaFilter","addLuminosityFilter","addHighlightHCMFilter","filterName","newFgColor","newBgColor","destroy","keepHCM","_BaseCanvasFactory","enableHWA","_enableHWA","__privateSet","canvas","_createCanvas","getContext","willReadFrequently","__privateGet","reset","canvasAndContext","BaseCanvasFactory","BaseCMapReaderFactory","isCompressed","compressionType","_fetchData","reason","BaseStandardFontDataFactory","filename","BaseSVGFactory","skipDimensions","svg","_createSVG","SVG_NS","_PixelsPerInch","__publicField","PDF","__cache","__defs","_docId","_document","__hcmCache","_id","cache_get","_hcmCache","hcmCache_get","_defs","defs_get","visibility","contain","top","left","createElementNS","_createTables","createTables_fn","mapR","table","mapG","mapB","bufferR","bufferG","bufferB","_addLuminosityConversion","addLuminosityConversion_fn","feColorMatrix","_addGrayConversion","addGrayConversion_fn","_createFilter","createFilter_fn","_appendFeFunc","appendFeFunc_fn","feComponentTransfer","feFunc","_addTransferMapConversion","addTransferMapConversion_fn","rTable","gTable","bTable","_addTransferMapAlphaConversion","addTransferMapAlphaConversion_fn","aTable","_getRGB","getRGB_fn","getRGB","getComputedStyle","getPropertyValue","isValidFetchUrl","baseURI","ok","statusText","arrayBuffer","json","text","Promise","request","XMLHttpRequest","responseType","onreadystatechange","readyState","DONE","responseText","send","DOMCMapReaderFactory","cMapData","ArrayBuffer","DOMStandardFontDataFactory","PageViewport","scale","rotation","offsetX","offsetY","dontFlip","centerX","centerY","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","rawDims","pageWidth","pageHeight","pageX","pageY","clone","convertToViewportPoint","convertToViewportRectangle","topLeft","bottomRight","convertToPdfPoint","applyInverseTransform","extraDelay","ii","lastIndexOf","defaultFilename","reFilename","splitURI","suggestedFilename","StatTimer","time","started","Date","now","timeEnd","times","outBuf","longest","padEnd","preventDefault","deprecated","pdfDateStringRegex","matches","year","month","day","hour","minute","universalTimeRelation","offsetHour","offsetMinute","UTC","xfaPage","attributes","colorRGB","getCurrentTransform","ctx","getTransform","getCurrentTransformInverse","invertSelf","viewport","mustFlip","mustRotate","useRound","widthStr","heightStr","_EditorToolbar","editor","_focusIn","_focusOut","_addListenersToElement","_addDeleteButton","_divider","_toolbar","_colorPicker","_editor","_buttons","editToolbar","_uiManager","_signal","_pointerDown","pointerDown_fn","buttons","toolbarPosition","direction","insetInlineEnd","addDeleteButton_fn","hide","classList","hideDropdown","show","remove","addAltTextButton","addListenersToElement_fn","prepend","divider_get","addColorPicker","colorPicker","renderButton","EditorToolbar","stopPropagation","focusIn_fn","_focusEventsAllowed","focusOut_fn","capture","tabIndex","editorType","divider","HighlightToolbar","uiManager","_render","_getLastPoint","_addHighlightButton","boxes","isLTR","getLastPoint_fn","render_fn","bindEvents","addHighlightButton_fn","lastY","lastX","box","span","highlightSelection","IdManager","__privateWrapper","_ImageManager","_get","_baseId","crypto","randomUUID","buf","getRandomValues","getUuid","_isSVGFittingCanvas","image","Image","drawImage","getImageData","file","lastModified","get_fn","refCounter","getFromFile","getFromUrl","getSvgUrl","isSvg","svgUrl","deleteId","isValidId","ImageManager","rawData","mustRemoveAspectRatioPromise","imageElement","imagePromise","onload","onerror","createImageBitmap","CommandManager","maxSize","_commands","_locked","_maxSize","_position","cmd","undo","mustExec","NaN","overwriteIfSameType","keepUndo","redo","hasSomethingToUndo","hasSomethingToRedo","KeyboardManager","callbacks","_serialize","allKeys","isMacKey","event","serialize_fn","bubbles","checker","altKey","ctrlKey","metaKey","shiftKey","_ColorManager","_colors","colors","computedColor","getColorValues","convert","rgb","matchMedia","RGB","every","_colorsMapping","getHexCode","makeHexColor","ColorManager","_AnnotationEditorUIManager","container","viewer","altTextManager","eventBus","pdfDocument","pageColors","highlightColors","enableHighlightFloatingButton","mlManager","_getAnchorElementForSelection","_displayHighlightToolbar","_selectionChange","_onSelectEnd","_addSelectionListener","_addFocusManager","_removeFocusManager","_addKeyboardManager","_removeKeyboardManager","_addCopyPasteListeners","_removeCopyPasteListeners","_addDragAndDropListeners","_dispatchUpdateStates","_dispatchUpdateUI","_enableAll","_disableAll","_addEditorToLayer","_lastSelectedEditor","_isEmpty","_selectEditors","_abortController","_activeEditor","_allEditors","_allLayers","_altTextManager","_annotationStorage","_changedExistingAnnotations","_commandManager","_currentPageIndex","_deletedAnnotationsElementIds","_draggingEditors","_editorTypes","_editorsToRescale","_enableHighlightFloatingButton","_filterFactory","_focusMainContainerTimeoutId","_highlightColors","_highlightWhenShiftUp","_highlightToolbar","_idManager","_isEnabled","_isWaiting","_lastActiveElement","_mainHighlightColorPicker","_mlManager","_mode","_selectedEditors","_selectedTextNode","_pageColors","_showAllStates","_boundBlur","blur","_boundFocus","focus","_boundCopy","_boundCut","cut","_boundPaste","paste","_boundKeydown","keydown","_boundKeyup","keyup","_boundOnEditingAction","onEditingAction","_boundOnPageChanging","onPageChanging","_boundOnScaleChanging","onScaleChanging","_boundOnRotationChanging","onRotationChanging","_previousStates","isEditing","isEmpty","hasSelectedEditor","hasSelectedText","_translation","_translationTimeoutId","_container","_viewer","_eventBus","_on","addSelectionListener_fn","addDragAndDropListeners_fn","addKeyboardManager_fn","annotationStorage","filterFactory","viewParameters","realScale","PDF_TO_CSS_UNITS","isShiftKeyDown","_keyboardManager","proto","arrowChecker","contains","activeElement","tagName","hasSomethingToControl","textInputChecker","_self","HTMLInputElement","small","TRANSLATE_SMALL","big","TRANSLATE_BIG","selectAll","addNewEditorFromKeyboard","HTMLButtonElement","isEnterHandled","unselectAll","translateSelectedEditors","_off","layer","clearTimeout","guess","hasMLManager","hcmFilter","foreground","background","pair","highlightColorNames","setMainHighlightColorPicker","editAltText","pageNumber","focusMainContainer","findParent","layerX","layerY","disableUserSelect","toggle","addShouldRescale","removeShouldRescale","commitOrRemove","pagesRotation","methodOfCreation","selection","getSelection","isCollapsed","anchorNode","anchorOffset","focusNode","focusOffset","textLayer","getAnchorElementForSelection_fn","closest","getSelectionBoxes","empty","showAllEditors","hasTextLayer","createAndAddNewEditor","addToAnnotationStorage","setValue","onSelectEnd_fn","hasSelection","lastEditor","lastActiveElement","once","addEditListeners","addCopyPasteListeners_fn","removeEditListeners","removeKeyboardManager_fn","removeCopyPasteListeners_fn","dragOver","dataTransfer","items","isHandlingMimeForPasting","dropEffect","drop","currentLayer","editors","serialized","clipboardData","setData","JSON","getData","newEditors","deserializedEditor","deserialize","addEditorToLayer_fn","selectEditors_fn","addCommands","isEditorHandlingKeyboard","setEditingState","addFocusManager_fn","dispatchUpdateStates_fn","isEmpty_fn","removeFocusManager_fn","registerEditorTypes","types","dispatchUpdateUI_fn","defaultPropertiesToUpdate","getId","getLayer","pageIndex","currentPageIndex","addLayer","enable","disable","removeLayer","updateMode","editId","isFromKeyboard","disableAll_fn","enableAll_fn","annotationElementId","setSelected","enterInEditMode","canCreateNewEmptyEditor","addNewEditor","updateToolbar","updateParams","updateColor","updateDefaultParams","visible","updateButton","enableWaiting","mustWait","disableClick","enableClick","getEditors","getEditor","addEditor","removeEditor","unselect","addDeletedAnnotationElement","addChangedExistingAnnotation","deleted","isDeletedAnnotationElement","removeDeletedAnnotationElement","removeChangedExistingAnnotation","setActiveEditor","propertiesToUpdate","updateUI","lastSelectedEditor_get","toggleSelected","select","ed","isSelected","firstSelectedEditor","params","commit","noCommit","totalX","totalY","translateInPage","setUpDragSession","savedX","savedY","savedPageIndex","newX","newY","newPageIndex","endDragSession","mustBeAddedInUndoStack","move","_setParentAndPosition","dragSelectedEditors","tx","ty","drag","rebuild","changeParent","addOrRebuild","getActive","shouldGetKeyboardEvents","isActive","getMode","imageManager","rangeCount","getRangeAt","commonAncestorContainer","parentWidth","parentHeight","rotator","range","collapsed","getClientRects","renderAnnotationElement","annotation","editorId","getRawValue","hasBeenModified","nodeType","Node","TEXT_NODE","parentElement","displayHighlightToolbar_fn","selectionChange_fn","pointerup","_AltText","_setState","_altText","_altTextDecorative","_altTextButton","_altTextTooltip","_altTextTooltipTimeout","_altTextWasFromKeyBoard","l10nPromise","_l10nPromise","altText","setState_fn","finish","focusVisible","decorative","enabled","AltText","tooltip","DELAY_TO_SHOW_TOOLTIP","_reportTelemetry","innerText","getImageForAltText","_AnnotationEditor","parameters","_translate","_getRotationMatrix","_createResizers","_resizerPointerdown","_addResizeToUndoStack","_resizerPointermove","_selectOnPointerEvent","_setUpDragSession","_resizerKeydown","_resizerBlur","_resizerFocus","_setResizerTabIndex","_stopResizing","_accessibilityData","_allResizerDivs","_disabled","_keepAspectRatio","_resizersDiv","_savedDimensions","_boundFocusin","focusin","_boundFocusout","focusout","_editToolbar","_focusedResizerName","_hasBeenClicked","_initialPosition","_isEditing","_isInEditMode","_isResizerEnabledForKeyboard","_moveInDOMTimeout","_prevDragX","_prevDragY","_telemetryTimeouts","_isDraggable","_zIndex","_willKeepAspectRatio","_initialOptions","isCentered","_structTreeParentId","pageRotation","pageDimensions","pageTranslation","parentDimensions","isAttachedToDOM","_resizerKeyboardManager","resize","_resizeWithKeyboard","_stopResizingWithKeyboard","_type","_defaultLineColor","_colorManager","fakeEditor","FakeEditor","getNextId","l10n","strings","_borderLineWidth","documentElement","parseFloat","_value","mime","center","parentRotation","fixAndSetPosition","setInBackground","setInForeground","setParent","stopResizing_fn","relatedTarget","isMultipleSelection","setAt","screenToPageTranslation","translate","translate_fn","scrollIntoView","block","findNewParent","bx","by","getBaseTranslation","toFixed","_hasBeenMoved","_mustFixPosition","moveInDOM","_rotatePoint","rotatePoint_fn","pageTranslationToScreen","parentScale","scaledWidth","scaledHeight","round","setDims","fixDims","widthPercent","heightPercent","getInitialTranslation","altTextFinish","removeEditToolbar","getClientDimensions","initialize","addEditToolbar","altTextData","hasAltText","_isVisible","maxWidth","maxHeight","pointerdown","setUpDragSession_fn","selectOnPointerEvent_fn","moveEditorInDOM","getRect","shiftX","shiftY","getRectInCurrentCoords","onceAdded","enableEditMode","disableEditMode","isInEditMode","needsToBeRebuilt","rotate","_angle","isForCopying","accessibilityData","timeout","isResizable","makeResizable","createResizers_fn","savedWidth","savedHeight","boundResizerKeydown","resizerKeydown_fn","boundResizerBlur","resizerBlur_fn","resizerFocus_fn","firstPosition","nextFirstPosition","firstChild","before","lastChild","setResizerTabIndex_fn","stopImmediatePropagation","resizerPointermove_fn","movementX","movementY","preventScroll","_d","disableEditing","enableEditing","contentDiv","setAspectRatio","MIN_SIZE","telemetryInitialData","telemetryFinalData","_telemetryTimeout","content","querySelector","nodeName","resetAnnotationElement","AnnotationEditor","angle","getRotationMatrix_fn","classes","resizerPointerdown_fn","boundResizerPointermove","savedDraggable","pointerMoveOptions","passive","togglePointerEvents","savedParentCursor","cursor","savedCursor","pointerUpCallback","addResizeToUndoStack_fn","newWidth","newHeight","minWidth","minHeight","rotationMatrix","transf","invRotationMatrix","getPoint","getOpposite","isDiagonal","isHorizontal","point","oppositePoint","transfOppositePoint","oppositeX","oppositeY","ratioX","ratioY","deltaX","deltaY","oldDiag","hypot","pointerMoveCallback","clientX","clientY","SEED","MASK_HIGH","MASK_LOW","MurmurHash3_64","seed","h1","h2","update","isView","byteLength","blockCounts","tailLength","dataUint32","k1","k2","C1","C2","C1_LOW","C2_LOW","hexdigest","SerializableEmpty","transfer","AnnotationStorage","_setModified","_modified","_storage","onSetModified","onResetModified","onAnnotationEditor","getValue","defaultValue","resetModified","modified","entry","setModified_fn","getAll","setAll","print","PrintAnnotationStorage","serializable","hasBitmap","editorStats","stats","typeToEditor","counters","computeTelemetryFinalData","_serializable","structuredClone","FontLoader","ownerDocument","styleElement","_systemFonts","nativeFontFaces","loadingRequests","loadTestFontId","addNativeFontFace","nativeFontFace","fonts","removeNativeFontFace","getElementsByTagName","systemFontInfo","_inspectFont","loadedName","disableFontFace","isFontLoadingAPISupported","fontFace","FontFace","load","baseFontName","font","attached","missingFile","loadSystemFont","createNativeFontFace","loaded","family","createFontFaceRule","isSyncFontLoadingSupported","_queueLoadingCallback","_prepareFontLoadEvent","supported","complete","otherRequest","shift","_loadTestFont","int32","spliceString","insert","called","CFF_CHECKSUM_OFFSET","XXXX_VALUE","checksum","btoa","fontFamily","isFontReady","fillText","FontFaceObject","translatedData","inspectFont","compiledGlyphs","cssFontInfo","italicAngle","mimetype","getPathGenerator","objs","cmds","commands","bezierCurveTo","quadraticCurveTo","packageCapability","packageMap","fs","import","http","https","path2d","NodePackages","node_utils_fetchData","promises","readFile","PathType","applyBoundingBox","bbox","region","Path2D","BaseShadingPattern","getPattern","RadialAxialShadingPattern","IR","_bbox","_colorStops","_p0","_p1","_r0","_r1","matrix","_createGradient","grad","createLinearGradient","createRadialGradient","colorStop","addColorStop","inverse","pathType","ownerBBox","getClippedPathBoundingBox","tmpCanvas","cachedCanvases","getCanvas","tmpCtx","clearRect","beginPath","baseTransform","fillStyle","createPattern","domMatrix","DOMMatrix","setTransform","drawTriangle","c1","c2","c3","coords","rowSize","tmp","scaleX","scaleY","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","minY","maxY","xa","car","cag","cab","xb","cbr","cbg","cbb","x1_","x2_","drawFigure","figure","ps","cs","verticesPerRow","rows","cols","MeshShadingPattern","_coords","_figures","_bounds","_background","_createMeshCanvas","combinedScale","backgroundColor","boundsWidth","boundsHeight","paddedWidth","paddedHeight","createImageData","putImageData","singularValueDecompose2dScale","matrixScale","temporaryPatternCanvas","DummyShadingPattern","PaintType","_TilingPattern","canvasGraphicsFactory","operatorList","xstep","ystep","paintType","tilingType","createPatternCanvas","curMatrixScale","dimx","getSizeAndScale","dimy","graphics","createCanvasGraphics","groupLevel","setFillAndStrokeStyleToContext","adjustedX0","adjustedY0","adjustedX1","adjustedY1","clipBbox","executeOperatorList","endDrawing","realOutputSize","MAX_PATTERN_SIZE","bboxWidth","bboxHeight","updateRectMinMax","strokeStyle","fillColor","strokeColor","cssColor","TilingPattern","convertBlackAndWhiteToRGBA","srcPos","dest","nonBlackColor","inverseDecode","black","zeroMapping","oneMapping","widthInSource","widthRemainder","srcLength","destPos","elem","FULL_CHUNK_HEIGHT","CachedCanvases","canvasFactory","canvasEntry","drawImageAtIntegerCoords","srcImg","srcX","srcY","srcW","srcH","destX","destY","destW","destH","tlX","rTlX","tlY","rTlY","brX","rWidth","brY","rHeight","sign","CanvasExtraState","alphaIsShape","fontSize","fontSizeScale","textMatrix","textMatrixScale","fontMatrix","leading","lineX","lineY","charSpacing","wordSpacing","textHScale","textRenderingMode","textRise","patternFill","fillAlpha","strokeAlpha","lineWidth","activeSMask","transferMaps","startNewPathAndClipBox","clipBox","setCurrentPoint","updatePathMinMax","minX","maxX","updateScalingPathMinMax","scaleMinMax","updateCurvePathMinMax","bezierBoundingBox","getPathBoundingBox","xStrokePad","yStrokePad","updateClipFromPath","intersect","isEmptyClip","putBinaryImageData","imgData","ImageData","partialChunkHeight","fullChunks","totalChunks","chunkImgData","thisChunkHeight","elemsInThisChunk","kind","dest32","dest32DataLength","fullSrcDiff","white","srcDiff","kEnd","kEndUnrolled","mask","srcByte","putBinaryImageMask","copyCtxState","sourceCtx","destCtx","properties","setLineDash","getLineDash","lineDashOffset","resetCtxToDefault","globalAlpha","lineCap","lineJoin","miterLimit","globalCompositeOperation","getImageSmoothingEnabled","interpolate","fround","actualScale","devicePixelRatio","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","_CanvasGraphics","canvasCtx","commonObjs","optionalContentConfig","markedContentStack","annotationCanvasMap","_restoreInitialState","_drawFilter","stateStack","pendingClip","pendingEOFill","xobjs","groupStack","processingType3","baseTransformStack","smaskStack","smaskCounter","tempSMask","suspendedCtx","contentVisible","cachedPatterns","viewportScale","outputScaleX","outputScaleY","_cachedScaleForStroking","_cachedGetSinglePixelWidth","_cachedBitmapsMap","getObject","fallback","beginDrawing","transparency","savedFillStyle","fillRect","transparentCanvas","compositeCtx","executionStartIdx","continueCallback","stepper","argsArray","fnArray","argsArrayLen","chunkOperations","endTime","steps","fnId","nextBreakPoint","breakIt","depObjId","objsPool","restoreInitialState_fn","HTMLCanvasElement","drawFilter_fn","_scaleImage","inverseTransform","widthScale","heightScale","paintWidth","paintHeight","tmpCanvasId","_createMaskCanvas","isPatternFill","currentTransform","scaled","maskCanvas","mainKey","cachedImage","maskToCanvas","getAxialAlignedBoundingBox","drawnWidth","drawnHeight","fillCanvas","fillCtx","imageSmoothingEnabled","limit","dashArray","dashPhase","intent","flatness","states","checkSMaskState","inSMaskMode","beginSMaskMode","endSMaskMode","cacheId","scratchCanvas","_removeMirroring","__originalSave","__originalRestore","__originalRotate","__originalScale","__originalTranslate","__originalTransform","__originalSetTransform","__originalResetTransform","resetTransform","__originalClip","__originalMoveTo","__originalLineTo","__originalBezierCurveTo","__originalRect","__originalClosePath","__originalBeginPath","cp1x","cp1y","cp2x","cp2y","mirrorContextOperations","compose","dirtyBox","smask","composeSMask","layerCtx","layerBox","layerOffsetX","layerOffsetY","layerWidth","layerHeight","genericComposeSMask","subtype","backdrop","transferMap","maskCtx","maskOffsetX","maskOffsetY","maskX","maskY","old","ops","startX","startY","isScalingMatrix","minMaxForBezier","xw","yh","consumePath","rescaleAndStroke","needRestore","paths","pendingTextPaths","path","addToPath","spacing","fontRefName","fontObj","fontDirection","isType3Font","typeface","fallbackName","bold","italic","browserFontSize","rise","paintChar","patternTransform","fillStrokeMode","isAddToPathSet","strokeText","isFontSubpixelAAEnabled","glyphs","showType3Text","glyphsLength","vertical","spacingDir","defaultVMetrics","widthAdvanceScale","simpleFillText","getSinglePixelWidth","isInvalidPDFjsFont","chars","glyph","unicode","restoreNeeded","isSpace","fontChar","accent","scaledX","scaledY","vmetric","vx","vy","remeasure","measuredWidth","measureText","characterScaleX","isInFont","scaledAccentX","scaledAccentY","spacingLength","charProcOperatorList","operatorListId","xWidth","yWidth","llx","lly","urx","ury","getColorN_Pattern","_getPattern","objId","getShadingPattern","inv","currentCtx","isolated","knockout","bounds","canvasBounds","groupCtx","startTransformInverse","currentMtx","hasOwnCanvas","canvasWidth","canvasHeight","annotationCanvas","savedCtx","compiled","POINT_TO_PROCESS_LIMIT","POINT_TYPES","width1","j0","lineSize","sum","Int32Array","p0","pp","compileType3Glyph","skewX","skewY","positions","trans","images","applyTransferMapsToCanvas","applyTransferMapsToBitmap","imgToPaint","HTMLElement","isVisible","isContentVisible","absDet","normX","normY","getScaleForStroking","scaledLineWidth","scaledXLineWidth","scaledYLineWidth","baseArea","saveRestore","dashes","CanvasGraphics","hcmFilterId","savedFilter","op","workerPort","_port","Worker","workerSrc","_src","CallbackKind","StreamKind","wrapReason","MessageHandler","sourceName","targetName","comObj","_createStreamSink","_processStreamMessage","_deleteStreamController","callbackId","streamId","streamSinks","streamControllers","callbackCapabilities","actionHandler","_onComObjOnMessage","stream","processStreamMessage_fn","capability","cbSourceName","cbTargetName","postMessage","createStreamSink_fn","on","actionName","handler","ah","transfers","sendWithPromise","sendWithStream","queueingStrategy","ReadableStream","startCapability","startCall","pullCall","cancelCall","isClosed","desiredSize","pull","pullCapability","cancel","cancelCapability","streamSink","enqueue","isCancelled","lastDesiredSize","sinkCapability","ready","onPull","onCancel","success","streamController","deleteStreamController_fn","allSettled","Metadata","parsedData","_metadataMap","_data","getRaw","INTERNAL","OptionalContentGroup","renderingIntent","usage","_isDisplay","_isPrint","_userSet","_visible","viewState","printState","_setVisible","internal","userSet","OptionalContentConfig","_evaluateVisibilityExpression","_cachedGetHash","_groups","_initialHash","_order","creator","groups","baseState","off","getHash","expression","evaluateVisibilityExpression_fn","policy","ids","setVisibility","setOCGState","preserveRB","operator","hasInitialVisibility","getOrder","getGroups","PDFDataTransportStream","pdfDataRangeTransport","disableRange","disableStream","initialData","progressiveDone","contentDispositionFilename","_queuedChunks","_progressiveDone","_contentDispositionFilename","_pdfDataRangeTransport","_isStreamingSupported","_isRangeSupported","_contentLength","_fullRequestReader","_rangeReaders","addRangeListener","_onReceiveData","addProgressListener","total","_onProgress","addProgressiveReadListener","addProgressiveDoneListener","_onProgressiveDone","transportReady","_enqueue","rangeReader","_begin","_progressiveDataLength","_loaded","evt","onProgress","_removeRangeReader","reader","getFullReader","queuedChunks","PDFDataTransportStreamReader","getRangeReader","PDFDataTransportStreamRangeReader","requestDataRange","cancelAllRequests","_stream","_done","_filename","_requests","_headersReady","headersReady","isRangeSupported","isStreamingSupported","contentLength","requestCapability","_end","_queuedChunk","validateRangeRequestCapabilities","getResponseHeader","isHttp","rangeChunkSize","returnValues","allowRangeRequests","suggestedLength","Number","isInteger","extractFilenameFromHeader","contentDisposition","needsEncodingFixup","toParamRegExp","rfc2616unquote","unescape","rfc5987decode","rfc2047decode","fixupEncoding","contentDispositionStr","iter","quot","part","parts","rfc2231getparam","attributePattern","flags","textdecode","decoder","fatal","quotindex","extvalue","encodingend","hex","getFilenameFromContentDispositionHeader","createResponseStatusError","validateResponseStatus","createFetchOptions","withCredentials","abortController","credentials","redirect","createHeaders","httpHeaders","Headers","getArrayBuffer","PDFFetchStream","_rangeRequestReaders","PDFFetchStreamReader","PDFFetchStreamRangeReader","_reader","_withCredentials","_headersCapability","_disableRange","_rangeChunkSize","_headers","getReader","read","_readCapability","NetworkManager","currXhrId","pendingRequests","requestRange","listeners","requestFull","xhr","xhrId","pendingRequest","setRequestHeader","expectedStatus","onError","onStateChange","onprogress","onHeadersReceived","onDone","xhrStatus","network_getArrayBuffer","rangeHeader","getRequestXhr","isPendingRequest","abortRequest","PDFNetworkStream","_manager","_onRangeRequestReaderClosed","PDFNetworkStreamFullRequestReader","PDFNetworkStreamRangeRequestReader","onClosed","manager","_onHeadersReceived","_onDone","_onError","_url","_fullRequestId","_headersReceivedCapability","_cachedChunks","_storedError","fullRequestXhrId","fullRequestXhr","lengthComputable","_requestId","_close","fileUriRegex","PDFNodeStream","sourceUrl","parsedUrl","host","parseUrl","isFsUrl","PDFNodeStreamFsFullReader","PDFNodeStreamFullReader","PDFNodeStreamFsRangeReader","PDFNodeStreamRangeReader","BaseFullReader","_readableStream","_error","_setReadableStream","readableStream","BaseRangeReader","createRequestOptions","auth","hostname","port","handleResponse","statusCode","_request","_httpHeaders","Range","lstat","createReadStream","DEFAULT_FONT_SIZE","TextLayer$1","textContentSource","_processItems","_appendText","_layout","_capability","_disableProcessItems","_fontInspectorEnabled","FontInspector","_lang","_layoutTextParams","_pageHeight","_pageWidth","_rootContainer","_rotation","_scale","_styleCache","_textContentItemsStr","_textContentSource","_textDivs","_textDivProperties","_transform","prevFontSize","prevFontFamily","_ensureMinFontSizeComputed","ensureMinFontSizeComputed_fn","_pendingTextLayers","pump","lang","styles","processItems_fn","onBefore","_getCtx","getCtx_fn","layout_fn","abortEx","textDivs","textContentItemsStr","_ascentCache","_canvasContexts","_minFontSize","appendText_fn","geom","textDiv","textDivProperties","hasText","hasEOL","atan2","fontName","PI","fontSubstitution","fontHeight","fontAscent","_getAscent","getAscent_fn","sin","cos","scaleFactorStr","divStyle","dir","dataset","fontSubstitutionLoadedName","shouldScaleText","absScaleX","absScaleY","br","canvasContext","alpha","cachedAscent","savedFont","metrics","ascent","fontBoundingBoxAscent","descent","fontBoundingBoxDescent","ratio","pixels","rest","restKeys","XfaText","xfa","walk","shouldBuildText","DEFAULT_RANGE_CHUNK_SIZE","DefaultCanvasFactory","createCanvas","DefaultCMapReaderFactory","DefaultFilterFactory","docId","tableR","tableG","tableB","fgRGB","bgRGB","getSteps","arr","tableA","fgGray","bgGray","newFgRGB","newBgRGB","fg","bg","newStart","newStep","DefaultStandardFontDataFactory","task","PDFDocumentLoadingTask","getUrlProp","Buffer","isNaN","getDataProp","password","rangeTransport","worker","docBaseUrl","cMapUrl","cMapPacked","CMapReaderFactory","standardFontDataUrl","StandardFontDataFactory","ignoreErrors","stopAtErrors","maxImageSize","canvasMaxAreaInBytes","fontExtraProperties","enableXfa","disableAutoFetch","pdfBug","useSystemFonts","useWorkerFetch","setVerbosityLevel","transportFactory","cMapReaderFactory","standardFontDataFactory","workerParams","fromPort","_worker","docParams","apiVersion","evaluatorOptions","transportParams","loadingParams","destroyed","workerIdPromise","messageHandler","networkStream","Response","workerId","transport","WorkerTransport","_transport","isRefProxy","num","gen","_PDFDocumentLoadingTask","onPassword","_pendingDestroy","PDFDataRangeTransport$1","_rangeListeners","_progressListeners","_progressiveReadListeners","_progressiveDoneListeners","_readyCapability","listener","onDataRange","onDataProgress","onDataProgressiveRead","onDataProgressiveDone","PDFDocumentProxy","pdfInfo","_pdfInfo","numPages","fingerprints","isPureXfa","_htmlForXfa","allXfaHtml","getPage","getPageIndex","getDestinations","getDestination","getPageLabels","getPageLayout","getPageMode","getViewerPreferences","getOpenAction","getAttachments","getJSActions","getDocJSActions","getOutline","getOptionalContentConfig","getRenderingIntent","getPermissions","getMetadata","getMarkInfo","saveDocument","getDownloadInfo","downloadInfoCapability","cleanup","keepLoadedFonts","startCleanup","loadingTask","cachedPageNumber","getFieldObjects","hasJSActions","getCalculationOrderIds","PDFPageProxy","pageInfo","_tryCleanup","_abortDelayedCleanup","_delayedCleanupTimeout","_pendingCleanup","_pageIndex","_pageInfo","_stats","_pdfBug","PDFObjects","_maybeCleanupAfterRender","_intentStates","userUnit","getViewport","getAnnotations","getPageJSActions","annotationMode","optionalContentConfigPromise","printAnnotationStorage","intentArgs","abortDelayedCleanup_fn","intentState","streamReaderCancelTimeout","intentPrint","displayReadyCapability","lastChunk","separateAnnots","_pumpOperatorList","renderTasks","internalRenderTask","tryCleanup_fn","_abortOperatorList","Stats","InternalRenderTask","useRequestAnimationFrame","renderTask","initializeGraphics","operatorListChanged","getOperatorList","opListTask","opListReadCapability","streamTextContent","includeMarkedContent","disableNormalization","highWaterMark","getTextContent","getXfa","getStructTree","_destroy","waitOn","force","completed","resetStats","_startRenderPage","_renderPageChunk","operatorListChunk","annotationStorageSerializable","streamReader","delay","curCacheKey","curIntentState","delayed","LoopbackPort","_listeners","_deferred","terminate","PDFWorkerUtil","isWorkerDisabled","fakeWorkerId","isSameOrigin","otherUrl","base","origin","other","createCDNWrapper","wrapper","createObjectURL","Blob","_PDFWorker","_resolve","_webWorker","_messageHandler","_workerPorts","_initializeFromPort","_initialize","resolve_fn","_mainThreadWorkerMessageHandler","mainThreadWorkerMessageHandler_get","_setupFakeWorker","terminateEarly","ac","sendTest","testObj","_setupFakeWorkerGlobal","WorkerMessageHandler","workerHandler","setup","cachedPort","pdfjsWorker","factory","_cacheSimpleMethod","_methodPromises","_pageCache","_pagePromises","_pageRefCache","_passwordCapability","fontLoader","_params","destroyCapability","_networkStream","_fullReader","_lastProgress","setupMessageHandler","isOpList","page","terminated","sink","readyReason","headersCapability","fullReader","_numPages","htmlForXfa","exception","updatePassword","exportedData","exportedError","fontAdded","finally","imageRef","pageProxy","dataLen","imageData","cachedPromise","refStr","cacheSimpleMethod_fn","results","INITIAL_DATA","_ensureObj","_objs","ensureObj_fn","RenderTask","_internalRenderTask","onContinue","form","_InternalRenderTask","_rAF","operatorListIdx","running","graphicsReadyCallback","graphicsReady","_useRequestAnimationFrame","cancelled","_cancelBound","_continueBound","_continue","_scheduleNextBound","_scheduleNext","_nextBound","_next","_canvas","_canvasInUse","StepperManager","getNextBreakPoint","gfx","cancelAnimationFrame","updateOperatorList","requestAnimationFrame","makeColorComp","scaleAndClamp","ColorConverters","components","CMYK_RGB","RGB_HTML","html","storage","storedData","xfaOn","xfaOff","removeAttribute","checked","option","selected","selectedIndex","linkService","isHTMLAnchorElement","HTMLAnchorElement","addLinkAttributes","newWindow","dataId","setupStorage","xfaHtml","rootHtml","setAttributes","isNotForRichText","rootDiv","childHtml","xmlns","hidden","DEFAULT_TAB_INDEX","GetElementsByNameSet","getRectDims","AnnotationElementFactory","annotationType","LinkAnnotationElement","TextAnnotationElement","fieldType","TextWidgetAnnotationElement","radioButton","RadioButtonWidgetAnnotationElement","checkBox","CheckboxWidgetAnnotationElement","PushButtonWidgetAnnotationElement","ChoiceWidgetAnnotationElement","SignatureWidgetAnnotationElement","WidgetAnnotationElement","PopupAnnotationElement","FreeTextAnnotationElement","LineAnnotationElement","SquareAnnotationElement","CircleAnnotationElement","PolylineAnnotationElement","CaretAnnotationElement","InkAnnotationElement","PolygonAnnotationElement","HighlightAnnotationElement","UnderlineAnnotationElement","SquigglyAnnotationElement","StrikeOutAnnotationElement","StampAnnotationElement","FileAttachmentAnnotationElement","AnnotationElement","_AnnotationElement","isRenderable","ignoreBorder","createQuadrilaterals","_setRectEdited","_updates","_hasBorder","_popupElement","downloadManager","imageResourcesPath","renderForms","svgFactory","enableScripting","_fieldObjects","fieldObjects","_createContainer","_createQuadrilaterals","titleObj","contentsObj","richText","hasPopupData","_hasPopupData","updateEdited","setRectEdited_fn","popup","resetEdited","popupRef","alternativeText","noRotate","setRotation","borderStyle","borderWidth","horizontalRadius","horizontalCornerRadius","verticalRadius","verticalCornerRadius","radius","borderRadius","borderBottomStyle","borderColor","normalizeRect","elementWidth","elementHeight","_commonActions","setColor","jsName","styleName","detail","colorType","colorArray","display","noView","noPrint","userName","readonly","required","_setRequired","textColor","_dispatchEventFromSandbox","actions","jsEvent","commonActions","_setDefaultPropertiesFromJS","quadPoints","rectBlX","rectBlY","rectTrX","rectTrY","trX","trY","blX","blY","svgBuffer","defs","clipPath","rectWidth","rectHeight","backgroundImage","_createPopup","modificationDate","parentRect","elements","_getElementsByName","skipId","fields","fieldObj","exportValues","exportValue","domElement","getElementsByName","maybeShow","forceHide","getElementsToTriggerPopup","addHighlightArea","triggers","_isEditable","_editOnDoubleClick","annotationEditorType","currentRect","_setInternalLink","_bindAttachment","_bindSetOCGState","isTooltipOnly","link","isBound","_bindNamedAction","attachment","bindAttachment_fn","attachmentDest","bindSetOCGState_fn","_bindLink","Action","_bindJSAction","resetForm","_bindResetFormAction","destination","getDestinationHash","onclick","goToDestination","setInternalLink_fn","getAnchorUrl","executeNamedAction","otherClickAction","resetFormFields","refs","resetFormRefs","include","allFields","fieldIds","fieldName","field","allIds","dispatchEvent","Event","description","openOrDownloadData","executeSetOCGState","showElementAndHideCanvas","previousSibling","_getKeyModifier","_setEventListener","elementData","baseName","eventName","valueGetter","modifier","focused","_setEventListeners","Blur","Focus","_setBackgroundColor","_setTextStyle","fontColor","defaultAppearanceData","computedFontSize","BORDER_SIZE","roundToOneDecimal","multiLine","textAlignment","textAlign","isRequired","hasAppearance","fieldValue","setPropertyOnSiblings","keyInStorage","maxLen","charLimit","fieldFormattedValues","formattedValue","comb","userValue","lastCommittedValue","commitKey","doNotScroll","overflowY","overflowX","readOnly","maxLength","defaultFieldValue","blurListener","scrollLeft","selRange","setSelectionRange","willCommit","selStart","selectionStart","selEnd","selectionEnd","_blurListener","Keystroke","inputType","change","combWidth","letterSpacing","verticalAlign","checkbox","curChecked","buttonValue","radio","pdfButtonValue","linkElement","selectElement","addAnEmptyEntry","combo","multiSelect","multiple","optionElement","displayValue","removeEmptyEntry","noneOptionElement","isExport","selectedValues","getItems","multipleSelection","selectChild","indices","editable","changeEx","keyDown","PopupElement","elementIds","_html","_fontSize","_fontColor","_makePopupContent","_keyDown","_setPosition","_toggle","_show","_hide","_boundKeyDown","keyDown_fn","_boundHide","hide_fn","_boundShow","show_fn","_boundToggle","toggle_fn","_color","_contentsObj","_dateObj","_elements","_parent","_parentRect","_pinned","_popup","_rect","_richText","_titleObj","_wasVisible","toDateObject","trigger","flatMap","baseColor","outlineColor","date","toLocaleDateString","toLocaleTimeString","html_get","contents","_formatContents","lines","popupContent","makePopupContent_fn","fontSize_get","fontColor_get","popupLines","lineAttributes","setPosition_fn","useParentRect","normalizedRect","popupLeft","popupTop","textPosition","lineSpan","_line","lineCoordinates","_square","square","_circle","circle","_polyline","containerClassName","svgElementName","vertices","polyline","_polylines","inkLists","inkList","_download","_trigger","download_fn","AnnotationLayer$1","accessibilityManager","annotationEditorUIManager","_appendElement","_setAnnotationCanvasMap","_accessibilityManager","_annotationCanvasMap","_editableAnnotations","_annotationEditorUIManager","annotations","popupToElements","elementParams","noHTML","isPopupAnnotation","rendered","appendElement_fn","setAnnotationCanvasMap_fn","getEditableAnnotations","getEditableAnnotation","contentElement","moveElementInDOM","replaceWith","after","EOL_PATTERN","_FreeTextEditor","_updateFontSize","_updateColor","_extractText","_setEditorDimensions","_setContent","_serializeContent","_hasElementChanged","_boundEditorDivBlur","editorDivBlur","_boundEditorDivFocus","editorDivFocus","_boundEditorDivInput","editorDivInput","_boundEditorDivKeydown","editorDivKeydown","_boundEditorDivPaste","editorDivPaste","_content","_editorDivId","_initialData","_defaultColor","_defaultFontSize","_translateEmpty","_internalPadding","updateFontSize_fn","updateColor_fn","overlayDiv","editorDiv","contentEditable","savedText","newText","extractText_fn","trimEnd","setText","setContent_fn","setEditorDimensions_fn","dblclick","baseX","baseY","posX","posY","_deserializeContent","deserializeContent_fn","deleteFromDocument","insertNode","collapseToStart","startContainer","startOffset","bufferBefore","bufferAfter","nodeValue","_getNodeContent","getNodeContent_fn","newRange","beforeLength","acc","setStart","setEnd","removeAllRanges","addRange","padding","serializeContent_fn","structTreeParentId","hasElementChanged_fn","replaceChildren","FreeTextEditor","setFontsize","savedFontsize","col","savedColor","savedDisplay","savedVisibility","innerMargin","_getOutlines","_binarySearch","_insert","_remove","_breakEdge","_box","_verticalEdges","_intervals","EPSILON","right","shiftedMinX","shiftedMinY","lastEdge","lastPoint","edge","getOutlines","outlineVerticalEdges","breakEdge_fn","insert_fn","remove_fn","getOutlines_fn","edges","allEdges","edge1","edge2","outlines","outline","lastPointX","lastPointY","HighlightOutline","binarySearch_fn","middle","jj","y4","Outline","toSVGPath","free","FreeHighlightOutline","_outlines","polygon","prevX","prevY","_FreeOutliner","scaleFactor","thickness","_getLastCoords","_bottom","_innerMargin","_isLTR","_top","_last","Float64Array","_lastX","_lastY","_min","_min_dist","_scaleFactor","_thickness","_points","_MIN_DIST","_MIN","diffX","diffY","diffD","nY","thX","thY","bottom","lastTop","lastBottom","lastTopX","lastTopY","lastBottomX","lastBottomY","getLastCoords_fn","last","FreeOutliner","_MIN_DIFF","_rescale","_rescaleAndSwap","_computeMinMax","_outline","computeMinMax_fn","rescale_fn","rescaleAndSwap_fn","getNewOutline","outliner","ltrCallback","_ColorPicker","_getDropdownRoot","_colorSelect","_openDropdown","_isDropdownVisible","_boundPointerDown","_button","_buttonSwatch","_dropdown","_dropdownWasFromKeyboard","_isMainColorPicker","_hideDropdownFromKeyboard","_colorSelectFromKeyboard","_moveToNext","_moveToPrevious","_moveToBeginning","_moveToEnd","openDropdown_fn","swatch","renderMainDropdown","dropdown","getDropdownRoot_fn","colorSelect_fn","isDropdownVisible_get","role","_HighlightEditor","_createOutlines","_createFreeOutlines","_updateThickness","_changeThickness","_cleanDrawLayer","_addToDrawLayer","_keydown","_setCaret","_getRotation","_serializeBoxes","_serializeOutlines","_anchorNode","_anchorOffset","_boxes","_clipPathId","_focusOutlines","_focusNode","_focusOffset","_highlightDiv","_highlightOutlines","_isFreeHighlight","keydown_fn","_lastPoint","_opacity","_outlineId","_text","_methodOfCreation","_defaultThickness","_defaultOpacity","highlightId","createFreeOutlines_fn","addToDrawLayer_fn","createOutlines_fn","_moveCaret","numberOfColors","updateThickness_fn","toolbar","getRotation_fn","addUndoableEditor","cleanDrawLayer_fn","mustBeSelected","drawLayer","_rotateBbox","rotateBbox_fn","updateBox","highlightDiv","pointerover","addClass","pointerleave","removeClass","setCaret_fn","pointerMove","_highlightMove","highlightMove_fn","pointerDownOptions","pointerDown","_endHighlight","endHighlight_fn","_freeHighlight","_freeHighlightId","clipPathId","_freeHighlightClipId","highlight","serializeBoxes_fn","serializeOutlines_fn","HighlightEditor","outlinerForOutline","highlightOutlines","finalizeLine","highlightOutline","updateLine","changeColor","savedThickness","setThickness","th","changeThickness_fn","setPosition","Float32Array","updatePath","removeFreeHighlight","_InkEditor","_updateOpacity","_getInitialBBox","_setStroke","_startDrawing","_draw","_endPath","_stopDrawing","_drawPoints","_makeBezierCurve","_generateBezierPoints","_redraw","_endDrawing","_createObserver","_setCanvasDims","_setScaleFactor","_updateTransform","_serializePaths","_getBbox","_getPadding","_fitToContent","_baseHeight","_baseWidth","_boundCanvasPointermove","canvasPointermove","_boundCanvasPointerleave","canvasPointerleave","_boundCanvasPointerup","canvasPointerup","_boundCanvasPointerdown","canvasPointerdown","_canvasContextMenuTimeoutId","_currentPath2D","_disableEditing","_hasSomethingToDraw","_isCanvasInitialized","_observer","_realWidth","_realHeight","_requestFrameCallback","bezierPath2D","allRawPaths","currentPath","translationX","translationY","updateOpacity_fn","createCanvas_fn","createObserver_fn","setCanvasDims_fn","fitToContent_fn","disconnect","setDimensions","addInkEditorIfNeeded","startDrawing_fn","draw_fn","endDrawing_fn","getInitialBBox_fn","redraw_fn","roundedWidth","roundedHeight","setScaleFactor_fn","bezier","_fromPDFCoordinates","fromPDFCoordinates_fn","p10","p11","p20","p21","p30","p31","path2D","_buildPath2D","buildPath2D_fn","getBbox_fn","serializePaths_fn","InkEditor","setOpacity","savedOpacity","setStroke_fn","drawPoints_fn","makeBezierCurve_fn","endPath_fn","stopDrawing_fn","generateBezierPoints_fn","xy","lastPoints","bezierPoints","control1","control2","updateTransform_fn","ResizeObserver","contentRect","observe","getPadding_fn","scaleFactorW","scaleFactorH","_toPDFCoordinates","toPDFCoordinates_fn","p40","p41","xMin","xMax","yMin","yMax","firstTime","prevTranslationX","prevTranslationY","unscaledPadding","_StampEditor","_getBitmapFetched","_getBitmapDone","_getBitmap","_setDimensions","_scaleBitmap","_drawBitmap","_serializeBitmap","_bitmap","_bitmapId","_bitmapPromise","_bitmapUrl","_bitmapFile","_bitmapFileName","_resizeTimeoutId","_isSvg","_hasBeenAddedInUndoStack","bitmapUrl","bitmapFile","supportedTypes","supportedTypesStr","pasteEditor","getAsFile","getBitmap_fn","bitmapId","serializeBitmap_fn","alt","stamps","area","prevData","StampEditor","getBitmapFetched_fn","fromId","getBitmapDone_fn","getFromId","accept","files","click","MAX_RATIO","factor","drawBitmap_fn","setDimensions_fn","scaleBitmap_fn","bitmapWidth","bitmapHeight","prevWidth","prevHeight","offscreen","transferToImageBitmap","mlGuess","service","channels","toUrl","toDataURL","_AnnotationEditorLayer","annotationLayer","_textLayerPointerDown","_currentEditorType","_createNewEditor","_getCenterPoint","_cleanup","_allowClick","_annotationLayer","_boundPointerup","_boundPointerdown","_boundTextLayerPointerDown","_editorFocusTimeoutId","_editors","_hadPointerDown","_isCleaningUp","_isDisabling","_textLayer","editorTypes","_initialized","isInvisible","cleanup_fn","disableTextSelection","toggleAnnotationLayerPointerEvents","enableTextSelection","_editorType","isCommitting","annotationElementIds","editables","changedAnnotations","resetAnnotations","textLayerPointerDown_fn","attach","detach","removePointerInTextLayer","deleteAnnotationElement","currentEditorType_get","getCenterPoint_fn","createNewEditor_fn","oldRotation","startHighlighting","_DrawLayer","_createClipPath","_mapping","_toUpdate","_svgFactory","isPathUpdatable","createSVG_fn","pathId","createClipPath_fn","use","maskId","use1","use2","cloneNode","_setBox","setBox_fn","changeOpacity","clipPathUse","__webpack_exports__AbortException","__webpack_exports__AnnotationEditorLayer","__webpack_exports__AnnotationEditorParamsType","__webpack_exports__AnnotationEditorType","__webpack_exports__AnnotationEditorUIManager","__webpack_exports__AnnotationLayer","__webpack_exports__AnnotationMode","__webpack_exports__CMapCompressionType","__webpack_exports__ColorPicker","__webpack_exports__DOMSVGFactory","__webpack_exports__DrawLayer","__webpack_exports__FeatureTest","__webpack_exports__GlobalWorkerOptions","__webpack_exports__ImageKind","__webpack_exports__InvalidPDFException","__webpack_exports__MissingPDFException","__webpack_exports__OPS","__webpack_exports__Outliner","__webpack_exports__PDFDataRangeTransport","__webpack_exports__PDFDateString","__webpack_exports__PDFWorker","__webpack_exports__PasswordResponses","__webpack_exports__PermissionFlag","__webpack_exports__PixelsPerInch","__webpack_exports__RenderingCancelledException","__webpack_exports__TextLayer","__webpack_exports__UnexpectedResponseException","__webpack_exports__Util","__webpack_exports__VerbosityLevel","__webpack_exports__XfaLayer","__webpack_exports__build","__webpack_exports__createValidAbsoluteUrl","__webpack_exports__fetchData","__webpack_exports__getDocument","__webpack_exports__getFilenameFromUrl","__webpack_exports__getPdfFilenameFromUrl","__webpack_exports__getXfaPageViewport","__webpack_exports__isDataScheme","__webpack_exports__isPdfFile","__webpack_exports__noContextMenu","__webpack_exports__normalizeUnicode","__webpack_exports__renderTextLayer","__webpack_exports__setLayerDimensions","__webpack_exports__shadow","__webpack_exports__updateTextLayer","__webpack_exports__version","allEvents","makeEventProps","getArgs","eventProps","eventHandler","makeCancellablePromise","clsx","isProduction","invariant","condition","provided","warning","argIndex","find","tar","dequal","foo","bar","ctor","getTime","DataView","getInt8","DocumentContext","Message","_jsx","LinkService","externalLinkEnabled","externalLinkRel","externalLinkTarget","isInPresentationMode","pdfViewer","setDocument","setViewer","setExternalLinkRel","setExternalLinkTarget","setHistory","pagesCount","currentPageNumber","explicitDest","destRef","scrollPageIntoView","navigateTo","goToPage","rel","setHash","cachePageRef","isPageVisible","isPageCached","PasswordResponses$1","isBrowser","isLocalFileSystem","isProvided","isDefined","isDataURI","isString","dataURItoByteString","dataURI","headersString","dataString","getDevicePixelRatio","allowFileAccessFromFilesTip","displayCORSWarning","cancelRunningTask","runningTask","makePageCallback","loadFromFile","NOT_FOUND_ERR","SECURITY_ERR","ABORT_ERR","reducer","useResolver","__awaiter","thisArg","_arguments","generator","fulfilled","rejected","throw","adopt","__rest","pdfjs","defaultOnPassword","prompt","isParameterObject","Document$1","inputRef","loading","noData","onItemClick","onLoadError","onLoadErrorProps","onLoadProgress","onLoadSuccess","onLoadSuccessProps","onSourceError","onSourceErrorProps","onSourceSuccess","onSourceSuccessProps","renderMode","otherProps","sourceState","sourceDispatch","sourceError","pdfState","pdfDispatch","pdf","pdfError","useRef","pages","prevFile","prevOptions","findDocumentSource","isBlob","otherParams","fileByteString","cancellable","makeCancellable","nextSource","documentInitParams","destroyable","pdfjs.getDocument","nextPdf","registerPage","unregisterPage","childContext","useMemo","useDocumentContext","mergeRefs","inputRefs","_i","filteredInputRefs","PageContext","PDF_ROLE_TO_HTML_ROLE","Document","DocumentFragment","Part","Sect","Div","Aside","NonStruct","Title","FENote","Sub","Lbl","Span","Em","Strong","Link","Annot","Form","Ruby","RB","RT","RP","Warichu","WT","WP","LI","LBody","Table","TR","TH","TD","THead","TBody","TFoot","Caption","Figure","Formula","Artifact","HEADING_PATTERN","isStructTreeNode","isStructTreeNodeWithOnlyContentChild","getRoleAttributes","isPdfRole","htmlRole","getBaseAttributes","childAttributes","getAttributes","StructTreeItem","usePageContext","StructTree","pageContext","onGetStructTreeError","onGetStructTreeErrorProps","onGetStructTreeSuccess","onGetStructTreeSuccessProps","structTreeState","structTreeDispatch","structTree","structTreeError","customTextRenderer","nextStructTree","ANNOTATION_MODE","pdfjs.AnnotationMode","Canvas","mergedProps","_className","canvasBackground","onRenderError","onRenderErrorProps","onRenderSuccess","onRenderSuccessProps","canvasRef","canvasElement","isCancelException","renderViewport","renderContext","userSelect","onGetTextError","onGetTextSuccess","onRenderTextLayerError","onRenderTextLayerSuccess","textContentState","textContentDispatch","textContentError","layerElement","endElement","nextTextContent","useLayoutEffect","innerHTML","pdfjs.TextLayer","layerChildren","itemIndex","isTextItem","onMouseUp","onMouseDown","documentContext","onGetAnnotationsError","onGetAnnotationsErrorProps","onGetAnnotationsSuccess","onGetAnnotationsSuccessProps","onRenderAnnotationLayerError","onRenderAnnotationLayerErrorProps","onRenderAnnotationLayerSuccess","onRenderAnnotationLayerSuccessProps","annotationsState","annotationsDispatch","annotationsError","nextAnnotations","clonedViewport","annotationLayerParameters","renderParameters","pdfjs.AnnotationLayer","defaultScale","Page","_enableRegisterUnregisterPage","customRenderer","CustomRenderer","onGetTextErrorProps","onGetTextSuccessProps","onRenderTextLayerErrorProps","onRenderTextLayerSuccessProps","pageIndexProps","pageNumberProps","renderAnnotationLayer","renderAnnotationLayerProps","renderTextLayerProps","rotateProps","scaleProps","pageState","pageDispatch","pageError","pageElement","pageScale","scaleWithDefault","nextPage","pageKey","renderMainLayer","_jsxs","pdfjs.GlobalWorkerOptions","SET_ZOOM_LEVEL","setZoomLevel","SET_PDF_PAGINATED","SET_NUM_PAGES","setNumPages","SET_CURRENT_PAGE","setCurrentPage","initialPDFState","defaultZoomLevel","zoomLevel","zoomJump","paginated","currentPage","PDFContext","PDFProvider","pdfZoom","defaultZoom","_f","_e","_g","pdfVerticalScrollByDefault","PDFSinglePage","pageNum","_pageNum","PageWrapper","$lastPage","PageTag","allPagesCount","PDFAllPages","PagesArray","PDFPages","DocumentPDF","PrevPDFNavIcon","PDFNavArrow","NextPDFNavIcon","DownloadPDFIcon","ZoomInPDFIcon","ZoomPDFIcon","ZoomOutPDFIcon","ResetZoomPDFIcon","TogglePaginationPDFIcon","PDFPagination","PageNavButtonLeft","PageNavButtonRight","PDFControls","ControlButton","setPDFPaginated","pdfjs.version","PDFRenderer","StyledImageRenderer","PNGRenderer","tiffDataView","littleEndian","fileDirectories","getFieldTagName","fieldTag","fieldTagNames","fieldTagName","getFieldTypeName","fieldTypeName","fieldTypeNames","getBits","numBits","byteOffset","bitOffset","newByteOffset","totalBits","shiftRight","RangeError","shiftLeft","rawBits","getUint8","getUint16","getUint32","chunkInfo","bits","getBytes","numBytes","getFieldValues","typeCount","valueOffset","fieldValues","fieldTypeLength","getFieldTypeLength","indexOffset","clampColorSample","colorSample","bitsPerSample","multiplier","pow","makeRGBAFillValue","parseFileDirectory","numDirEntries","tiffFields","entryCount","nextIFDByteOffset","parseTIFF","tiffArrayBuffer","BOM","hasTowel","firstIFDByteOffset","fileDirectory","imageWidth","ImageWidth","imageLength","ImageLength","strips","compression","Compression","samplesPerPixel","SamplesPerPixel","sampleProperties","bitsPerPixel","hasBytesPerPixel","BitsPerSample","bitsPerSampleValues","hasBytesPerSample","bytesPerSample","bytesPerPixel","stripOffsetValues","StripOffsets","numStripOffsetValues","StripByteCounts","stripByteCountValues","stripOffset","stripByteCount","jIncrement","getHeader","pixel","currentSample","sampleInfo","sampleOffset","blockLength","iterations","currentByte","RowsPerStrip","rowsPerStrip","numStrips","imageLengthModRowsPerStrip","rowsInLastStrip","numRowsInStrip","numRowsInPreviousStrip","photometricInterpretation","PhotometricInterpretation","extraSamplesValues","numExtraSamples","ExtraSamples","ColorMap","colorMapValues","colorMapSampleSize","numPixels","yPadding","pixelSamples","red","green","blue","invertValue","samples","colorMapIndex","TIFFRenderer","loadedCanvas","setLoadedCanvas","corruptedFile","setCorruptedFile","TXTRenderer","IS_PAPA_WORKER","dynamicTyping","dynamicTypingFunction","WORKERS_SUPPORTED","webkitURL","BLOB_URL","onmessage","userStep","userChunk","userComplete","userError","NODE_STREAM_INPUT","readable","File","unparse","BAD_DELIMITERS","quotes","skipEmptyLines","newline","quoteChar","escapeChar","escapeFormulae","meta","RECORD_SEP","UNIT_SEP","BYTE_ORDER_MARK","LocalChunkSize","RemoteChunkSize","DefaultDelimiter","Parser","ParserHandle","NetworkStreamer","FileStreamer","StringStreamer","ReadableStreamStreamer","jQuery","each","toUpperCase","attr","inputElem","instanceConfig","extend","_handle","_finished","_completed","_halted","_input","_baseIndex","_partialLine","_rowCount","_start","_nextChunk","isFirstChunk","_completeResults","errors","chunkSize","streamer","_config","parseChunk","beforeFirstChunk","paused","aborted","preview","WORKER_ID","finished","_sendError","_readChunk","_chunkLoaded","_chunkError","downloadRequestBody","downloadRequestHeaders","webkitSlice","mozSlice","FileReaderSync","pause","resume","_streamData","_streamEnd","_streamError","_checkIsFinished","_streamCleanUp","removeListener","transformHeader","row","comments","successful","bestDelimiter","delimitersToGuess","getCharIndex","fastMode","F","linebreak","truncated","CSVRenderer","setRows","parseResult","papaparse","csvDelimiter","VideoRenderer","Video","controls","video","WebPRenderer","DocViewerRenderers","GIFRenderer","DocViewer$1","memo","ThemeProvider"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,87,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,146]}
|