@bigbinary/neeto-editor 1.47.108 → 1.47.110
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.
- package/dist/Attachments.js +52 -0
- package/dist/Attachments.js.map +1 -0
- package/dist/Editor.js +22376 -0
- package/dist/Editor.js.map +1 -0
- package/dist/EditorContent.js +250 -0
- package/dist/EditorContent.js.map +1 -0
- package/dist/FormikEditor.js +199 -0
- package/dist/FormikEditor.js.map +1 -0
- package/dist/Menu.js +106 -0
- package/dist/Menu.js.map +1 -0
- package/dist/chunk-BFTU3MAI.js +8 -0
- package/dist/chunk-BFTU3MAI.js.map +1 -0
- package/dist/chunk-BJhk4N3E.js +25765 -0
- package/dist/chunk-BJhk4N3E.js.map +1 -0
- package/dist/chunk-BR5ZkH7J.js +16238 -0
- package/dist/chunk-BR5ZkH7J.js.map +1 -0
- package/dist/chunk-C2dztUxs.js +4 -0
- package/dist/chunk-C2dztUxs.js.map +1 -0
- package/dist/chunk-CAGz17QN.js +571 -0
- package/dist/chunk-CAGz17QN.js.map +1 -0
- package/dist/chunk-CUwAOdCi.js +12640 -0
- package/dist/chunk-CUwAOdCi.js.map +1 -0
- package/dist/chunk-DNMH2cJJ.js +84 -0
- package/dist/chunk-DNMH2cJJ.js.map +1 -0
- package/dist/chunk-Dq9G_Haj.js +6729 -0
- package/dist/chunk-Dq9G_Haj.js.map +1 -0
- package/dist/chunk-DxGDZoUl.js +19 -0
- package/dist/chunk-DxGDZoUl.js.map +1 -0
- package/dist/chunk-sfpDYWCU.js +19022 -0
- package/dist/chunk-sfpDYWCU.js.map +1 -0
- package/dist/chunk-zRPC4lVr.js +9073 -0
- package/dist/chunk-zRPC4lVr.js.map +1 -0
- package/dist/cjs/Attachments.cjs.js +58 -0
- package/dist/cjs/Attachments.cjs.js.map +1 -0
- package/dist/cjs/Editor.cjs.js +22473 -0
- package/dist/cjs/Editor.cjs.js.map +1 -0
- package/dist/cjs/EditorContent.cjs.js +264 -0
- package/dist/cjs/EditorContent.cjs.js.map +1 -0
- package/dist/cjs/FormikEditor.cjs.js +206 -0
- package/dist/cjs/FormikEditor.cjs.js.map +1 -0
- package/dist/cjs/Menu.cjs.js +112 -0
- package/dist/cjs/Menu.cjs.js.map +1 -0
- package/dist/cjs/chunk-2HrSPdAV.cjs.js +92 -0
- package/dist/cjs/chunk-2HrSPdAV.cjs.js.map +1 -0
- package/dist/cjs/chunk-8GIxbIj_.cjs.js +597 -0
- package/dist/cjs/chunk-8GIxbIj_.cjs.js.map +1 -0
- package/dist/cjs/chunk-B6qYtOJe.cjs.js +6 -0
- package/dist/cjs/chunk-B6qYtOJe.cjs.js.map +1 -0
- package/dist/cjs/chunk-BGy3NmZC.cjs.js +49 -0
- package/dist/cjs/chunk-BGy3NmZC.cjs.js.map +1 -0
- package/dist/cjs/chunk-BJu3ubxk.cjs.js +11 -0
- package/dist/cjs/chunk-BJu3ubxk.cjs.js.map +1 -0
- package/dist/cjs/chunk-BzUZpT8V.cjs.js +6770 -0
- package/dist/cjs/chunk-BzUZpT8V.cjs.js.map +1 -0
- package/dist/cjs/chunk-CSn1uTr2.cjs.js +12645 -0
- package/dist/cjs/chunk-CSn1uTr2.cjs.js.map +1 -0
- package/dist/cjs/chunk-CdckCFos.cjs.js +25777 -0
- package/dist/cjs/chunk-CdckCFos.cjs.js.map +1 -0
- package/dist/cjs/chunk-De3nCFAF.cjs.js +16258 -0
- package/dist/cjs/chunk-De3nCFAF.cjs.js.map +1 -0
- package/dist/cjs/chunk-DjozIdFz.cjs.js +9135 -0
- package/dist/cjs/chunk-DjozIdFz.cjs.js.map +1 -0
- package/dist/cjs/chunk-krXdNjm-.cjs.js +19151 -0
- package/dist/cjs/chunk-krXdNjm-.cjs.js.map +1 -0
- package/dist/cjs/constants.cjs.js +13 -0
- package/dist/cjs/constants.cjs.js.map +1 -0
- package/dist/cjs/index.cjs.js +159 -0
- package/dist/cjs/index.cjs.js.map +1 -0
- package/dist/cjs/utils.cjs.js +27 -0
- package/dist/cjs/utils.cjs.js.map +1 -0
- package/dist/codeblockHighlight.js +15155 -0
- package/dist/codeblockHighlight.js.map +1 -0
- package/dist/constants.js +6 -0
- package/dist/constants.js.map +1 -0
- package/dist/editor-content.min.css +1 -0
- package/dist/editor-output-pdf-email.css +1 -0
- package/dist/editor-output-pdf-email.js +4 -0
- package/dist/editor-output-pdf-email.js.map +1 -0
- package/dist/editor-output.js +4 -0
- package/dist/editor-output.js.map +1 -0
- package/dist/editor-stats.html +4860 -0
- package/dist/editorUtils.js +170 -0
- package/dist/headerLinks.js +59 -0
- package/dist/headerLinks.js.map +1 -0
- package/dist/index.js +142 -0
- package/dist/index.js.map +1 -0
- package/dist/utils.js +15 -0
- package/dist/utils.js.map +1 -0
- package/package.json +3 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk-BJhk4N3E.js","sources":["../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Parser.js","../node_modules/stylis/src/Prefixer.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Middleware.js","../node_modules/styled-components/dist/styled-components.esm.js","../node_modules/react-doc-viewer/build/state/actions.js","../node_modules/react-doc-viewer/build/state/reducer.js","../node_modules/react-doc-viewer/build/state/index.js","../node_modules/react-doc-viewer/build/components/common/Button.js","../node_modules/react-doc-viewer/build/components/icons/index.js","../node_modules/react-doc-viewer/build/components/DocumentNav.js","../node_modules/react-doc-viewer/build/components/FileName.js","../node_modules/react-doc-viewer/build/components/HeaderBar.js","../node_modules/react-doc-viewer/build/utils/fileLoaders.js","../node_modules/react-doc-viewer/build/utils/useRendererSelector.js","../node_modules/react-doc-viewer/build/utils/useDocumentLoader.js","../node_modules/react-doc-viewer/build/utils/useWindowSize.js","../node_modules/react-doc-viewer/build/components/ProxyRenderer.js","../node_modules/react-doc-viewer/build/plugins/image/index.js","../node_modules/react-doc-viewer/build/plugins/bmp/index.js","../node_modules/react-doc-viewer/build/plugins/html/index.js","../node_modules/react-doc-viewer/build/plugins/jpg/index.js","../node_modules/react-doc-viewer/build/plugins/msdoc/index.js","../node_modules/wl-msg-reader/lib/DataStream.js","../node_modules/wl-msg-reader/lib/msg.reader.js","../node_modules/wl-msg-reader/index.js","../node_modules/react-doc-viewer/build/plugins/msg/index.js","../node_modules/react-pdf/node_modules/pdfjs-dist/build/pdf.mjs","../node_modules/make-event-props/dist/esm/index.js","../node_modules/make-cancellable-promise/dist/esm/index.js","../node_modules/clsx/dist/clsx.mjs","../node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../node_modules/warning/warning.js","../node_modules/dequal/dist/index.mjs","../node_modules/react-pdf/dist/esm/DocumentContext.js","../node_modules/react-pdf/dist/esm/Message.js","../node_modules/react-pdf/dist/esm/LinkService.js","../node_modules/react-pdf/dist/esm/PasswordResponses.js","../node_modules/react-pdf/dist/esm/shared/utils.js","../node_modules/react-pdf/dist/esm/shared/hooks/useResolver.js","../node_modules/react-pdf/dist/esm/Document.js","../node_modules/react-pdf/dist/esm/shared/hooks/useDocumentContext.js","../node_modules/merge-refs/dist/esm/index.js","../node_modules/react-pdf/dist/esm/PageContext.js","../node_modules/react-pdf/dist/esm/shared/constants.js","../node_modules/react-pdf/dist/esm/shared/structTreeUtils.js","../node_modules/react-pdf/dist/esm/StructTreeItem.js","../node_modules/react-pdf/dist/esm/shared/hooks/usePageContext.js","../node_modules/react-pdf/dist/esm/StructTree.js","../node_modules/react-pdf/dist/esm/Page/Canvas.js","../node_modules/react-pdf/dist/esm/Page/TextLayer.js","../node_modules/react-pdf/dist/esm/Page/AnnotationLayer.js","../node_modules/react-pdf/dist/esm/Page.js","../node_modules/react-pdf/dist/esm/index.js","../node_modules/react-doc-viewer/build/utils/importMeta.js","../node_modules/react-doc-viewer/build/plugins/pdf/state/actions.js","../node_modules/react-doc-viewer/build/plugins/pdf/state/reducer.js","../node_modules/react-doc-viewer/build/plugins/pdf/state/index.js","../node_modules/react-doc-viewer/build/plugins/pdf/components/icons/index.js","../node_modules/react-doc-viewer/build/plugins/pdf/components/PDFPagination.js","../node_modules/react-doc-viewer/build/plugins/pdf/components/PDFControls.js","../node_modules/react-doc-viewer/build/plugins/pdf/components/pages/PDFSinglePage.js","../node_modules/react-doc-viewer/build/plugins/pdf/components/pages/PDFAllPages.js","../node_modules/react-doc-viewer/build/plugins/pdf/components/pages/PDFPages.js","../node_modules/react-doc-viewer/build/plugins/pdf/index.js","../node_modules/react-doc-viewer/build/plugins/png/index.js","../node_modules/react-doc-viewer/build/plugins/tiff/tiffToCanvas.js","../node_modules/react-doc-viewer/build/plugins/tiff/index.js","../node_modules/react-doc-viewer/build/plugins/txt/index.js","../node_modules/react-doc-viewer/build/theme/index.js","../node_modules/react-doc-viewer/build/plugins/index.js","../node_modules/react-doc-viewer/build/index.js","../src/components/Attachments/Preview.jsx"],"sourcesContent":["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, token, 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\tif ((token(previous || 1) == 5 || token(peek() || 1) == 5) && strlen(characters) && substr(characters, -1, void 0) !== ' ') characters += ' '\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 || (variable === 0 && previous === 47)))\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) {\n\t\t\t\t\t\t\t\t\t// c(ontainer)\n\t\t\t\t\t\t\t\t\tcase 99:\n\t\t\t\t\t\t\t\t\t\tif (charat(characters, 3) === 110) break\n\t\t\t\t\t\t\t\t\t// l(ayer)\n\t\t\t\t\t\t\t\t\tcase 108:\n\t\t\t\t\t\t\t\t\t\tif (charat(characters, 2) === 97) break\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\toffset = 0\n\t\t\t\t\t\t\t\t\t// d(ocument) m(edia) s(upports)\n\t\t\t\t\t\t\t\t\tcase 100: case 109: case 115:\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (offset) parse(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\telse parse(characters, reference, reference, reference, [''], children, 0, points, children)\n\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// 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// mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position\n\t\tcase 6391: case 5879: case 5623: case 6135: case 4599:\n\t\t\treturn WEBKIT + value + value\n\t\t// mask-composite\n\t\tcase 4855:\n\t\t\treturn WEBKIT + value.replace('add', 'source-over').replace('substract', 'source-out').replace('intersect', 'source-in').replace('exclude', 'xor') + 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'), /space-between/, '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, NAMESPACE} 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 NAMESPACE: 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","import e from\"@emotion/is-prop-valid\";import t,{createElement as n}from\"react\";import*as o from\"stylis\";import{RULESET as s}from\"stylis\";var r,i;const l=\"undefined\"!=typeof process&&void 0!==process.env&&(process.env.REACT_APP_SC_ATTR||process.env.SC_ATTR)||\"data-styled\",a=\"active\",c=\"data-styled-version\",u=\"6.4.0\",d=\"/*!sc*/\\n\",h=\"undefined\"!=typeof window&&\"undefined\"!=typeof document,p=void 0===t.createContext;function f(e){if(\"undefined\"!=typeof process&&void 0!==process.env){const t=process.env[e];if(void 0!==t&&\"\"!==t)return\"false\"!==t}}const m=Boolean(\"boolean\"==typeof SC_DISABLE_SPEEDY?SC_DISABLE_SPEEDY:null!==(i=null!==(r=f(\"REACT_APP_SC_DISABLE_SPEEDY\"))&&void 0!==r?r:f(\"SC_DISABLE_SPEEDY\"))&&void 0!==i?i:\"undefined\"==typeof process||void 0===process.env||\"production\"!==process.env.NODE_ENV),g=\"sc-keyframes-\",y={},v=\"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 S(e,...t){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#${e} for more information.${t.length>0?` Args: ${t.join(\", \")}`:\"\"}`):new Error(function(...e){let t=e[0];const n=[];for(let t=1,o=e.length;t<o;t+=1)n.push(e[t]);return n.forEach(e=>{t=t.replace(/%[a-z]/,e)}),t}(v[e],...t).trim())}const w=1<<30;let b=new Map,N=new Map,C=1;const P=e=>{if(b.has(e))return b.get(e);for(;N.has(C);)C++;const t=C++;if(\"production\"!==process.env.NODE_ENV&&((0|t)<0||t>w))throw S(16,`${t}`);return b.set(e,t),N.set(t,e),t},O=e=>N.get(e),E=(e,t)=>{C=t+1,b.set(e,t),N.set(t,e)},I=/invalid hook call/i,A=new Set,_=(e,n)=>{if(\"production\"!==process.env.NODE_ENV){if(p)return;const o=`The component ${e}${n?` with the id of \"${n}\"`:\"\"} has been created dynamically.\\nYou 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.\\nSee https://styled-components.com/docs/basics#define-styled-components-outside-of-the-render-method for more info.\\n`,s=console.error;try{let e=!0;console.error=(t,...n)=>{I.test(t)?(e=!1,A.delete(o)):s(t,...n)},\"function\"==typeof t.useState&&t.useState(null),e&&!A.has(o)&&(console.warn(o),A.add(o))}catch(e){I.test(e.message)&&A.delete(o)}finally{console.error=s}}},x=Object.freeze([]),$=Object.freeze({});function R(e,t,n=$){return e.theme!==n.theme&&e.theme||t||n.theme}const j=/[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~-]+/g,k=/(^-|-$)/g;function T(e){return e.replace(j,\"-\").replace(k,\"\")}const D=/(a)(d)/gi,M=e=>String.fromCharCode(e+(e>25?39:97));function V(e){let t,n=\"\";for(t=Math.abs(e);t>52;t=t/52|0)n=M(t%52)+n;return(M(t%52)+n).replace(D,\"$1-$2\")}const G=5381,F=(e,t)=>{let n=t.length;for(;n;)e=33*e^t.charCodeAt(--n);return e},z=e=>F(G,e);function W(e){return V(z(e)>>>0)}function L(e){return\"production\"!==process.env.NODE_ENV&&\"string\"==typeof e&&e||e.displayName||e.name||\"Component\"}function B(e){return\"string\"==typeof e&&(\"production\"===process.env.NODE_ENV||e.charAt(0)===e.charAt(0).toLowerCase())}function q(e){return B(e)?`styled.${e}`:`Styled(${L(e)})`}const H=Symbol.for(\"react.memo\"),Y=Symbol.for(\"react.forward_ref\"),U={contextType:!0,defaultProps:!0,displayName:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,propTypes:!0,type:!0},J={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},Z={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},X={[Y]:{$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},[H]:Z};function K(e){return(\"type\"in(t=e)&&t.type.$$typeof)===H?Z:\"$$typeof\"in e?X[e.$$typeof]:U;var t}const Q=Object.defineProperty,ee=Object.getOwnPropertyNames,te=Object.getOwnPropertySymbols,ne=Object.getOwnPropertyDescriptor,oe=Object.getPrototypeOf,se=Object.prototype;function re(e,t,n){if(\"string\"!=typeof t){const o=oe(t);o&&o!==se&&re(e,o,n);const s=ee(t).concat(te(t)),r=K(e),i=K(t);for(let o=0;o<s.length;++o){const l=s[o];if(!(l in J||n&&n[l]||i&&l in i||r&&l in r)){const n=ne(t,l);try{Q(e,l,n)}catch(e){}}}}return e}function ie(e){return\"function\"==typeof e}function le(e){return\"object\"==typeof e&&\"styledComponentId\"in e}function ae(e,t){return e&&t?e+\" \"+t:e||t||\"\"}function ce(e,t){return e.join(t||\"\")}function ue(e){let t=\"\";for(let n=0;n<e.length;n++)t+=e[n]+d;return t}function de(e){return e?e.replaceAll(d,\"\"):e}function he(e){return null!==e&&\"object\"==typeof e&&e.constructor.name===Object.name&&!(\"props\"in e&&e.$$typeof)}function pe(e,t,n=!1){if(!n&&!he(e)&&!Array.isArray(e))return t;if(Array.isArray(t))for(let n=0;n<t.length;n++)e[n]=pe(e[n],t[n]);else if(he(t))for(const n in t)e[n]=pe(e[n],t[n]);return e}function fe(e){if(!p)return null;const n=t.cache;return n?n(e):null}function me(e,t){Object.defineProperty(e,\"toString\",{value:t})}const ge=class{constructor(e){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=e,this._cGroup=0,this._cIndex=0}indexOfGroup(e){if(e===this._cGroup)return this._cIndex;let t=this._cIndex;if(e>this._cGroup)for(let n=this._cGroup;n<e;n++)t+=this.groupSizes[n];else for(let n=this._cGroup-1;n>=e;n--)t-=this.groupSizes[n];return this._cGroup=e,this._cIndex=t,t}insertRules(e,t){if(e>=this.groupSizes.length){const t=this.groupSizes,n=t.length;let o=n;for(;e>=o;)if(o<<=1,o<0)throw S(16,`${e}`);this.groupSizes=new Uint32Array(o),this.groupSizes.set(t),this.length=o;for(let e=n;e<o;e++)this.groupSizes[e]=0}let n=this.indexOfGroup(e+1),o=0;for(let s=0,r=t.length;s<r;s++)this.tag.insertRule(n,t[s])&&(this.groupSizes[e]++,n++,o++);o>0&&this._cGroup>e&&(this._cIndex+=o)}clearGroup(e){if(e<this.length){const t=this.groupSizes[e],n=this.indexOfGroup(e),o=n+t;this.groupSizes[e]=0;for(let e=n;e<o;e++)this.tag.deleteRule(n);t>0&&this._cGroup>e&&(this._cIndex-=t)}}getGroup(e){let t=\"\";if(e>=this.length||0===this.groupSizes[e])return t;const n=this.groupSizes[e],o=this.indexOfGroup(e),s=o+n;for(let e=o;e<s;e++)t+=this.tag.getRule(e)+d;return t}},ye=`style[${l}][${c}=\"${u}\"]`,ve=new RegExp(`^${l}\\\\.g(\\\\d+)\\\\[id=\"([\\\\w\\\\d-]+)\"\\\\].*?\"([^\"]*)`),Se=e=>\"undefined\"!=typeof ShadowRoot&&e instanceof ShadowRoot||\"host\"in e&&11===e.nodeType,we=e=>{if(!e)return document;if(Se(e))return e;if(\"getRootNode\"in e){const t=e.getRootNode();if(Se(t))return t}return document},be=(e,t,n)=>{const o=n.split(\",\");let s;for(let n=0,r=o.length;n<r;n++)(s=o[n])&&e.registerName(t,s)},Ne=(e,t)=>{var n;const o=(null!==(n=t.textContent)&&void 0!==n?n:\"\").split(d),s=[];for(let t=0,n=o.length;t<n;t++){const n=o[t].trim();if(!n)continue;const r=n.match(ve);if(r){const t=0|parseInt(r[1],10),n=r[2];0!==t&&(E(n,t),be(e,n,r[3]),e.getTag().insertRules(t,s)),s.length=0}else s.push(n)}},Ce=e=>{const t=we(e.options.target).querySelectorAll(ye);for(let n=0,o=t.length;n<o;n++){const o=t[n];o&&o.getAttribute(l)!==a&&(Ne(e,o),o.parentNode&&o.parentNode.removeChild(o))}};let Pe=!1;function Oe(){if(!1!==Pe)return Pe;if(\"undefined\"!=typeof document){const e=document.head.querySelector('meta[property=\"csp-nonce\"]');if(e)return Pe=e.nonce||e.getAttribute(\"content\")||void 0;const t=document.head.querySelector('meta[name=\"sc-nonce\"]');if(t)return Pe=t.getAttribute(\"content\")||void 0}return Pe=\"undefined\"!=typeof __webpack_nonce__?__webpack_nonce__:void 0}const Ee=(e,t)=>{const n=document.head,o=e||n,s=document.createElement(\"style\"),r=(e=>{const t=Array.from(e.querySelectorAll(`style[${l}]`));return t[t.length-1]})(o),i=void 0!==r?r.nextSibling:null;s.setAttribute(l,a),s.setAttribute(c,u);const d=t||Oe();return d&&s.setAttribute(\"nonce\",d),o.insertBefore(s,i),s},Ie=class{constructor(e,t){this.element=Ee(e,t),this.element.appendChild(document.createTextNode(\"\")),this.sheet=(e=>{var t;if(e.sheet)return e.sheet;const n=null!==(t=e.getRootNode().styleSheets)&&void 0!==t?t:document.styleSheets;for(let t=0,o=n.length;t<o;t++){const o=n[t];if(o.ownerNode===e)return o}throw S(17)})(this.element),this.length=0}insertRule(e,t){try{return this.sheet.insertRule(t,e),this.length++,!0}catch(e){return!1}}deleteRule(e){this.sheet.deleteRule(e),this.length--}getRule(e){const t=this.sheet.cssRules[e];return t&&t.cssText?t.cssText:\"\"}},Ae=class{constructor(e,t){this.element=Ee(e,t),this.nodes=this.element.childNodes,this.length=0}insertRule(e,t){if(e<=this.length&&e>=0){const n=document.createTextNode(t);return this.element.insertBefore(n,this.nodes[e]||null),this.length++,!0}return!1}deleteRule(e){this.element.removeChild(this.nodes[e]),this.length--}getRule(e){return e<this.length?this.nodes[e].textContent:\"\"}},_e=class{constructor(e){this.rules=[],this.length=0}insertRule(e,t){return e<=this.length&&(e===this.length?this.rules.push(t):this.rules.splice(e,0,t),this.length++,!0)}deleteRule(e){this.rules.splice(e,1),this.length--}getRule(e){return e<this.length?this.rules[e]:\"\"}};let xe=h;const $e={isServer:!h,useCSSOMInjection:!m};class Re{static registerId(e){return P(e)}constructor(e=$,t={},n){this.options=Object.assign(Object.assign({},$e),e),this.gs=t,this.keyframeIds=new Set,this.names=new Map(n),this.server=!!e.isServer,!this.server&&h&&xe&&(xe=!1,Ce(this)),me(this,()=>(e=>{const t=e.getTag(),{length:n}=t;let o=\"\";for(let s=0;s<n;s++){const n=O(s);if(void 0===n)continue;const r=e.names.get(n);if(void 0===r||!r.size)continue;const i=t.getGroup(s);if(0===i.length)continue;const a=l+\".g\"+s+'[id=\"'+n+'\"]';let c=\"\";for(const e of r)e.length>0&&(c+=e+\",\");o+=i+a+'{content:\"'+c+'\"}'+d}return o})(this))}rehydrate(){!this.server&&h&&Ce(this)}reconstructWithOptions(e,t=!0){const n=new Re(Object.assign(Object.assign({},this.options),e),this.gs,t&&this.names||void 0);return n.keyframeIds=new Set(this.keyframeIds),!this.server&&h&&e.target!==this.options.target&&we(this.options.target)!==we(e.target)&&Ce(n),n}allocateGSInstance(e){return this.gs[e]=(this.gs[e]||0)+1}getTag(){return this.tag||(this.tag=(e=(({isServer:e,useCSSOMInjection:t,target:n,nonce:o})=>e?new _e(n):t?new Ie(n,o):new Ae(n,o))(this.options),new ge(e)));var e}hasNameForId(e,t){var n,o;return null!==(o=null===(n=this.names.get(e))||void 0===n?void 0:n.has(t))&&void 0!==o&&o}registerName(e,t){P(e),e.startsWith(g)&&this.keyframeIds.add(e);const n=this.names.get(e);n?n.add(t):this.names.set(e,new Set([t]))}insertRules(e,t,n){this.registerName(e,t),this.getTag().insertRules(P(e),n)}clearNames(e){this.names.has(e)&&this.names.get(e).clear()}clearRules(e){this.getTag().clearGroup(P(e)),this.clearNames(e)}clearTag(){this.tag=void 0}}const je=new WeakSet,ke={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexShrink:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1};function Te(e,t){return null==t||\"boolean\"==typeof t||\"\"===t?\"\":\"number\"!=typeof t||0===t||e in ke||e.startsWith(\"--\")?String(t).trim():t+\"px\"}const De=e=>e>=\"A\"&&e<=\"Z\";function Me(e){let t=\"\";for(let n=0;n<e.length;n++){const o=e[n];if(1===n&&\"-\"===o&&\"-\"===e[0])return e;De(o)?t+=\"-\"+o.toLowerCase():t+=o}return t.startsWith(\"ms-\")?\"-\"+t:t}const Ve=Symbol.for(\"sc-keyframes\");function Ge(e){return\"object\"==typeof e&&null!==e&&Ve in e}function Fe(e){return ie(e)&&!(e.prototype&&e.prototype.isReactComponent)}const ze=e=>null==e||!1===e||\"\"===e,We=Symbol.for(\"react.client.reference\");function Le(e){return e.$$typeof===We}function Be(e){const t=e.$$id,n=(t&&t.includes(\"#\")?t.split(\"#\").pop():t)||e.name||\"unknown\";console.warn(`Interpolating a client component (${n}) as a selector is not supported in server components. The component selector pattern requires access to the component's internal class name, which is not available across the server/client boundary. Use a plain CSS class selector instead.`)}const qe=e=>{const t=[];for(const n in e){const o=e[n];e.hasOwnProperty(n)&&!ze(o)&&(Array.isArray(o)&&je.has(o)||ie(o)?t.push(Me(n)+\":\",o,\";\"):he(o)?t.push(n+\" {\",...qe(o),\"}\"):t.push(Me(n)+\": \"+Te(n,o)+\";\"))}return t};function He(e,t,n,o,s=[]){if(ze(e))return s;const r=typeof e;if(\"string\"===r)return s.push(e),s;if(\"function\"===r){if(Le(e))return\"production\"!==process.env.NODE_ENV&&Be(e),s;if(Fe(e)&&t){const r=e(t);return\"production\"===process.env.NODE_ENV||\"object\"!=typeof r||Array.isArray(r)||Ge(r)||he(r)||null===r||console.error(`${L(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.`),He(r,t,n,o,s)}return s.push(e),s}if(Array.isArray(e)){for(let r=0;r<e.length;r++)He(e[r],t,n,o,s);return s}if(le(e))return s.push(`.${e.styledComponentId}`),s;if(Ge(e))return n?(e.inject(n,o),s.push(e.getName(o))):s.push(e),s;if(Le(e))return\"production\"!==process.env.NODE_ENV&&Be(e),s;if(he(e)){const t=qe(e);for(let e=0;e<t.length;e++)s.push(t[e]);return s}return s.push(e.toString()),s}const Ye=z(u),Ue=p?new WeakMap:null;function Je(e,t){if(!Ue)return null;const n=Ue.get(e);if(!n)return null;const o=t.names.get(e.componentId);if(!o)return null;let s=\"\";for(const e of o){const t=n.get(e);if(!t)return null;s+=t}return s}class Ze{constructor(e,t,n){this.rules=e,this.componentId=t,this.baseHash=F(Ye,t),this.baseStyle=n,Re.registerId(t)}generateAndInjectStyles(e,t,n){let o=this.baseStyle?this.baseStyle.generateAndInjectStyles(e,t,n):\"\";{let s=\"\";for(let o=0;o<this.rules.length;o++){const r=this.rules[o];if(\"string\"==typeof r)s+=r;else if(r)if(Fe(r)){const o=r(e);\"string\"==typeof o?s+=o:null!=o&&!1!==o&&(\"production\"===process.env.NODE_ENV||\"object\"!=typeof o||Array.isArray(o)||Ge(o)||he(o)||console.error(`${L(r)} 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.`),s+=ce(He(o,e,t,n)))}else s+=ce(He(r,e,t,n))}if(s){this.dynamicNameCache||(this.dynamicNameCache=new Map);const e=n.hash?n.hash+s:s;let r=this.dynamicNameCache.get(e);if(!r){if(r=V(F(F(this.baseHash,n.hash),s)>>>0),this.dynamicNameCache.size>=200){const e=this.dynamicNameCache.keys().next().value;void 0!==e&&this.dynamicNameCache.delete(e)}this.dynamicNameCache.set(e,r)}if(!t.hasNameForId(this.componentId,r))if(p&&function(e,t){var n,o;return null!==(o=null===(n=null==Ue?void 0:Ue.get(e))||void 0===n?void 0:n.has(t))&&void 0!==o&&o}(this,r))t.registerName(this.componentId,r);else{const e=n(s,\".\"+r,void 0,this.componentId);p&&function(e,t,n){if(!Ue)return;let o=Ue.get(e);o||(o=new Map,Ue.set(e,o)),o.set(t,ue(n))}(this,r,e),t.insertRules(this.componentId,r,e)}o=ae(o,r)}}return o}}const Xe=/&/g,Ke=47;function Qe(e,t){let n=0;for(;--t>=0&&92===e.charCodeAt(t);)n++;return!(1&~n)}function et(e){const t=e.length;let n=\"\",o=0,s=0,r=0,i=!1,l=!1;for(let a=0;a<t;a++){const c=e.charCodeAt(a);if(0!==r||i||c!==Ke||42!==e.charCodeAt(a+1))if(i)42===c&&e.charCodeAt(a+1)===Ke&&(i=!1,a++);else if(34!==c&&39!==c||Qe(e,a)){if(0===r)if(123===c)s++;else if(125===c){if(s--,s<0){l=!0;let n=a+1;for(;n<t;){const t=e.charCodeAt(n);if(59===t||10===t)break;n++}n<t&&59===e.charCodeAt(n)&&n++,s=0,a=n-1,o=n;continue}0===s&&(n+=e.substring(o,a+1),o=a+1)}else 59===c&&0===s&&(n+=e.substring(o,a+1),o=a+1)}else 0===r?r=c:r===c&&(r=0);else i=!0,a++}return l||0!==s||0!==r?(o<t&&0===s&&0===r&&(n+=e.substring(o)),n):e}function tt(e,t){for(let n=0;n<e.length;n++){const o=e[n];if(\"rule\"===o.type){o.value=t+\" \"+o.value,o.value=o.value.replaceAll(\",\",\",\"+t+\" \");const e=o.props,n=[];for(let o=0;o<e.length;o++)n[o]=t+\" \"+e[o];o.props=n}Array.isArray(o.children)&&\"@keyframes\"!==o.type&&(o.children=tt(o.children,t))}return e}function nt({options:e=$,plugins:t=x}=$){let n,s,r;const i=(e,t,o)=>o.startsWith(s)&&o.endsWith(s)&&o.replaceAll(s,\"\").length>0?`.${n}`:e,l=t.slice();l.push(e=>{e.type===o.RULESET&&e.value.includes(\"&\")&&(r||(r=new RegExp(`\\\\${s}\\\\b`,\"g\")),e.props[0]=e.props[0].replace(Xe,s).replace(r,i))}),e.prefix&&l.push(o.prefixer),l.push(o.stringify);let a=[];const c=o.middleware(l.concat(o.rulesheet(e=>a.push(e)))),u=(t,i=\"\",l=\"\",u=\"&\")=>{n=u,s=i,r=void 0;const d=function(e){const t=-1!==e.indexOf(\"//\"),n=-1!==e.indexOf(\"}\");if(!t&&!n)return e;if(!t)return et(e);const o=e.length;let s=\"\",r=0,i=0,l=0,a=0,c=0,u=!1;for(;i<o;){const t=e.charCodeAt(i);if(34!==t&&39!==t||Qe(e,i))if(0===l)if(t===Ke&&i+1<o&&42===e.charCodeAt(i+1)){for(i+=2;i+1<o&&(42!==e.charCodeAt(i)||e.charCodeAt(i+1)!==Ke);)i++;i+=2}else if(40!==t)if(41!==t)if(a>0)i++;else if(42===t&&i+1<o&&e.charCodeAt(i+1)===Ke)s+=e.substring(r,i),i+=2,r=i,u=!0;else if(t===Ke&&i+1<o&&e.charCodeAt(i+1)===Ke){for(s+=e.substring(r,i);i<o&&10!==e.charCodeAt(i);)i++;r=i,u=!0}else 123===t?c++:125===t&&c--,i++;else a>0&&a--,i++;else a++,i++;else i++;else 0===l?l=t:l===t&&(l=0),i++}return u?(r<o&&(s+=e.substring(r)),0===c?s:et(s)):0===c?e:et(e)}(t);let h=o.compile(l||i?l+\" \"+i+\" { \"+d+\" }\":d);return e.namespace&&(h=tt(h,e.namespace)),a=[],o.serialize(h,c),a},d=e;let h=G;for(let e=0;e<t.length;e++)t[e].name||S(15),h=F(h,t[e].name);return(null==d?void 0:d.namespace)&&(h=F(h,d.namespace)),(null==d?void 0:d.prefix)&&(h=F(h,\"p\")),u.hash=h!==G?h.toString():\"\",u}var ot,st,rt;const it=new Re,lt=nt();let at,ct=null,ut=lt;const dt=p&&null!==(rt=null===(st=(ot=t).cache)||void 0===st?void 0:st.call(ot,()=>{it.names.clear(),it.keyframeIds.clear(),it.clearTag(),ct=null}))&&void 0!==rt?rt:null,ht={shouldForwardProp:void 0,styleSheet:it,stylis:lt,stylisPlugins:void 0},pt=p?{Provider:({children:e})=>e,Consumer:({children:e})=>e(ht)}:t.createContext(ht),ft=pt.Consumer;function mt(){return p?(dt&&dt(),ct||ht):t.useContext(pt)}function gt(e){var n,o,s;if(p){dt&&dt();const t=ct||ht,s=void 0!==e.stylisPlugins||void 0!==e.namespace||void 0!==e.enableVendorPrefixes;s&&(e.stylisPlugins&&e.stylisPlugins!==at?(at=e.stylisPlugins,ut=nt({options:{namespace:e.namespace,prefix:e.enableVendorPrefixes},plugins:e.stylisPlugins})):void 0===e.namespace&&void 0===e.enableVendorPrefixes||(ut=nt({options:{namespace:e.namespace,prefix:e.enableVendorPrefixes},plugins:null!==(n=e.stylisPlugins)&&void 0!==n?n:t.stylisPlugins})));const r=s?void 0===e.stylisPlugins||e.stylisPlugins.length?ut:lt:t.stylis,i=\"shouldForwardProp\"in e?e.shouldForwardProp:t.shouldForwardProp,l=null!==(o=e.stylisPlugins)&&void 0!==o?o:t.stylisPlugins;return ct=r!==lt||i?{shouldForwardProp:i,styleSheet:it,stylis:r,stylisPlugins:l}:null,e.children}const r=mt(),{styleSheet:i}=r,l=t.useMemo(()=>{let t=i;return e.sheet?t=e.sheet:e.target?t=t.reconstructWithOptions(void 0!==e.nonce?{target:e.target,nonce:e.nonce}:{target:e.target},!1):void 0!==e.nonce&&(t=t.reconstructWithOptions({nonce:e.nonce})),e.disableCSSOMInjection&&(t=t.reconstructWithOptions({useCSSOMInjection:!1})),t},[e.disableCSSOMInjection,e.nonce,e.sheet,e.target,i]),a=t.useMemo(()=>{var t;return void 0===e.stylisPlugins&&void 0===e.namespace&&void 0===e.enableVendorPrefixes?r.stylis:nt({options:{namespace:e.namespace,prefix:e.enableVendorPrefixes},plugins:null!==(t=e.stylisPlugins)&&void 0!==t?t:r.stylisPlugins})},[e.enableVendorPrefixes,e.namespace,e.stylisPlugins,r.stylis,r.stylisPlugins]),c=\"shouldForwardProp\"in e?e.shouldForwardProp:r.shouldForwardProp,u=null!==(s=e.stylisPlugins)&&void 0!==s?s:r.stylisPlugins,d=t.useMemo(()=>({shouldForwardProp:c,styleSheet:l,stylis:a,stylisPlugins:u}),[c,l,a,u]);return t.createElement(pt.Provider,{value:d},e.children)}const yt=p?{Provider:({children:e})=>e,Consumer:({children:e})=>e(void 0)}:t.createContext(void 0),vt=yt.Consumer;function St(){const e=p?void 0:t.useContext(yt);if(!e)throw S(18);return e}function wt(e){if(p)return e.children;const n=t.useContext(yt),o=t.useMemo(()=>function(e,t){if(!e)throw S(14);if(ie(e)){const n=e(t);if(\"production\"!==process.env.NODE_ENV&&(null===n||Array.isArray(n)||\"object\"!=typeof n))throw S(7);return n}if(Array.isArray(e)||\"object\"!=typeof e)throw S(8);return t?Object.assign(Object.assign({},t),e):e}(e.theme,n),[e.theme,n]);return e.children?t.createElement(yt.Provider,{value:o},e.children):null}const bt={};function Nt(e,t){const n=\"string\"!=typeof e?\"sc\":T(e);bt[n]=(bt[n]||0)+1;const o=n+\"-\"+W(u+n+bt[n]);return t?t+\"-\"+o:o}let Ct;const Pt=fe(()=>new Set),Ot=new Map;function Et(e){let t=Ot.get(e);return t||(t=new RegExp(\"\\\\.\"+e+\"(?![a-zA-Z0-9_-])\",\"g\"),Ot.set(e,t)),t}function It(e,t,n){const o=n.names.get(t);if(o)for(const t of o){const n=Et(t);n.lastIndex=0,e=e.replace(n,\":where(.\"+t+\")\")}return e}function At(o,s,r){const i=le(o),a=o,c=!B(o),{attrs:u=x,componentId:h=Nt(s.displayName,s.parentComponentId),displayName:f=q(o)}=s,m=s.displayName&&s.componentId?T(s.displayName)+\"-\"+s.componentId:s.componentId||h,g=i&&a.attrs?a.attrs.concat(u).filter(Boolean):u;let{shouldForwardProp:y}=s;if(i&&a.shouldForwardProp){const e=a.shouldForwardProp;if(s.shouldForwardProp){const t=s.shouldForwardProp;y=(n,o)=>e(n,o)&&t(n,o)}else y=e}const v=new Ze(r,m,i?a.componentStyle:void 0);function S(o,s){return function(o,s,r){const{attrs:i,componentStyle:a,defaultProps:c,foldedComponentIds:u,styledComponentId:h,target:f}=o,m=p?void 0:t.useContext(yt),g=mt(),y=o.shouldForwardProp||g.shouldForwardProp;\"production\"!==process.env.NODE_ENV&&t.useDebugValue&&t.useDebugValue(h);const v=R(s,m,c)||(p?void 0:$);let S,w;S=function(e,t,n){const o=Object.assign(Object.assign({},t),{className:void 0,theme:n}),s=e.length>1;for(let n=0;n<e.length;n++){const r=e[n],i=ie(r)?r(s?Object.assign({},o):o):r;for(const e in i)\"className\"===e?o.className=ae(o.className,i[e]):\"style\"===e?o.style=Object.assign(Object.assign({},o.style),i[e]):e in t&&void 0===t[e]||(o[e]=i[e])}return\"className\"in t&&\"string\"==typeof t.className&&(o.className=ae(o.className,t.className)),o}(i,s,v),w=function(e,n,o,s){const r=e.generateAndInjectStyles(n,o,s);return\"production\"!==process.env.NODE_ENV&&t.useDebugValue&&t.useDebugValue(r),r}(a,S,g.styleSheet,g.stylis),\"production\"!==process.env.NODE_ENV&&o.warnTooManyClasses&&o.warnTooManyClasses(w);const b=S.as||f,N=function(t,n,o,s){const r={};for(const i in t)void 0===t[i]||\"$\"===i[0]||\"as\"===i||\"theme\"===i&&t.theme===o||(\"forwardedAs\"===i?r.as=t.forwardedAs:s&&!s(i,n)||(r[i]=t[i],s||\"development\"!==process.env.NODE_ENV||e(i)||(Ct||(Ct=new Set)).has(i)||!B(n)||n.includes(\"-\")||(Ct.add(i),console.warn(`styled-components: it looks like an unknown prop \"${i}\" 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.)`))));return r}(S,b,v,y);let C=ae(u,h);w&&(C+=\" \"+w),S.className&&(C+=\" \"+S.className),N[B(b)&&b.includes(\"-\")?\"class\":\"className\"]=C,r&&(N.ref=r);const O=n(b,N);if(p){const e=Pt?Pt():null;let n=null,o=0,s=\"\",r=!0,i=a;for(;i;){const t=g.styleSheet.names.get(i.componentId);if(t){o+=t.size;for(const o of t)e&&e.has(o)||(n||(n=[]),n.push(o),e&&e.add(o))}if(n&&r){let e=Je(i,g.styleSheet);null===e?r=!1:(i!==a&&(e=It(e,i.componentId,g.styleSheet)),s=e+s)}i=i.baseStyle}if(n&&!r){s=\"\";const e=g.styleSheet.getTag();let t=a;for(;t;){let n=e.getGroup(P(t.componentId));n&&t!==a&&(n=It(n,t.componentId,g.styleSheet)),s=n+s,t=t.baseStyle}}let c=\"\";if(g.styleSheet.keyframeIds.size>0){const t=g.styleSheet.getTag();for(const n of g.styleSheet.keyframeIds){if(e&&e.has(n))continue;const o=t.getGroup(P(n));o&&(c+=o,e&&e.add(n))}}if(s&&e&&n&&n.length<o){const e=s.split(d);let t=\"\";for(let o=0;o<e.length;o++){const s=e[o];if(s)for(let e=0;e<n.length;e++){const o=Et(n[e]);if(o.lastIndex=0,o.test(s)){t+=s+d;break}}}s=t}const u=de(c+s);if(u){const e=t.createElement(\"style\",{[l]:\"\",key:\"sc-\"+a.componentId,children:u});return t.createElement(t.Fragment,null,e,O)}}return O}(w,o,s)}S.displayName=f;let w=t.forwardRef(S);return w.attrs=g,w.componentStyle=v,w.displayName=f,w.shouldForwardProp=y,w.foldedComponentIds=i?ae(a.foldedComponentIds,a.styledComponentId):\"\",w.styledComponentId=m,w.target=i?a.target:o,Object.defineProperty(w,\"defaultProps\",{get(){return this._foldedDefaultProps},set(e){this._foldedDefaultProps=i?function(e,...t){for(const n of t)pe(e,n,!0);return e}({},a.defaultProps,e):e}}),\"production\"!==process.env.NODE_ENV&&(_(f,m),w.warnTooManyClasses=((e,t)=>{let n={},o=!1;return s=>{!o&&(n[s]=!0,Object.keys(n).length>=200)&&(console.warn(`Over 200 classes were generated for component ${e}${t?` with the id of \"${t}\"`:\"\"}.\\nConsider 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={})}})(f,m)),me(w,()=>`.${w.styledComponentId}`),c&&re(w,o,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0}),w}var _t=new Set([\"a\",\"abbr\",\"address\",\"area\",\"article\",\"aside\",\"audio\",\"b\",\"bdi\",\"bdo\",\"blockquote\",\"body\",\"button\",\"br\",\"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\",\"label\",\"legend\",\"li\",\"main\",\"map\",\"mark\",\"menu\",\"meter\",\"nav\",\"object\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"picture\",\"pre\",\"progress\",\"q\",\"rp\",\"rt\",\"ruby\",\"s\",\"samp\",\"search\",\"section\",\"select\",\"slot\",\"small\",\"span\",\"strong\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"template\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"tr\",\"u\",\"ul\",\"var\",\"video\",\"wbr\",\"circle\",\"clipPath\",\"defs\",\"ellipse\",\"feBlend\",\"feColorMatrix\",\"feComponentTransfer\",\"feComposite\",\"feConvolveMatrix\",\"feDiffuseLighting\",\"feDisplacementMap\",\"feDistantLight\",\"feDropShadow\",\"feFlood\",\"feFuncA\",\"feFuncB\",\"feFuncG\",\"feFuncR\",\"feGaussianBlur\",\"feImage\",\"feMerge\",\"feMergeNode\",\"feMorphology\",\"feOffset\",\"fePointLight\",\"feSpecularLighting\",\"feSpotLight\",\"feTile\",\"feTurbulence\",\"filter\",\"foreignObject\",\"g\",\"image\",\"line\",\"linearGradient\",\"marker\",\"mask\",\"path\",\"pattern\",\"polygon\",\"polyline\",\"radialGradient\",\"rect\",\"stop\",\"svg\",\"switch\",\"symbol\",\"text\",\"textPath\",\"tspan\",\"use\"]);function xt(e,t){const n=[e[0]];for(let o=0,s=t.length;o<s;o+=1)n.push(t[o],e[o+1]);return n}const $t=e=>(je.add(e),e);function Rt(e,...t){if(ie(e)||he(e))return $t(He(xt(x,[e,...t])));const n=e;return 0===t.length&&1===n.length&&\"string\"==typeof n[0]?He(n):$t(He(xt(n,t)))}function jt(e,t,n=$){if(!t)throw S(1,t);const o=(o,...s)=>e(t,n,Rt(o,...s));return o.attrs=o=>jt(e,t,Object.assign(Object.assign({},n),{attrs:Array.prototype.concat(n.attrs,o).filter(Boolean)})),o.withConfig=o=>jt(e,t,Object.assign(Object.assign({},n),o)),o}const kt=e=>jt(At,e),Tt=kt;_t.forEach(e=>{Tt[e]=kt(e)});class Dt{constructor(e,t){this.instanceRules=new Map,this.rules=e,this.componentId=t,this.isStatic=function(e){for(let t=0;t<e.length;t+=1){const n=e[t];if(ie(n)&&!le(n))return!1}return!0}(e),Re.registerId(this.componentId)}removeStyles(e,t){this.instanceRules.delete(e),this.rebuildGroup(t)}renderStyles(e,t,n,o){const s=this.componentId;if(this.isStatic){if(n.hasNameForId(s,s+e))this.instanceRules.has(e)||this.computeRules(e,t,n,o);else{const r=this.computeRules(e,t,n,o);n.insertRules(s,r.name,r.rules)}return}const r=this.instanceRules.get(e);if(this.computeRules(e,t,n,o),!n.server&&r){const t=r.rules,n=this.instanceRules.get(e).rules;if(t.length===n.length){let e=!0;for(let o=0;o<t.length;o++)if(t[o]!==n[o]){e=!1;break}if(e)return}}this.rebuildGroup(n)}computeRules(e,t,n,o){const s=ce(He(this.rules,t,n,o)),r={name:this.componentId+e,rules:o(s,\"\")};return this.instanceRules.set(e,r),r}rebuildGroup(e){const t=this.componentId;e.clearRules(t);for(const n of this.instanceRules.values())e.insertRules(t,n.name,n.rules)}}const Mt=fe(()=>new Set);function Vt(e,...n){const o=Rt(e,...n),s=`sc-global-${W(JSON.stringify(o))}`,r=new Dt(o,s);\"production\"!==process.env.NODE_ENV&&_(s);const i=e=>{const n=mt(),l=p?void 0:t.useContext(yt);let a;if(a=n.styleSheet.allocateGSInstance(s),\"production\"!==process.env.NODE_ENV&&t.Children.count(e.children)&&console.warn(`The global style component ${s} was given child JSX. createGlobalStyle does not render children.`),\"production\"!==process.env.NODE_ENV&&o.some(e=>\"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.\"),(p||n.styleSheet.server)&&function(e,t,n,o,s){if(r.isStatic)r.renderStyles(e,y,n,s);else{const l=Object.assign(Object.assign({},t),{theme:R(t,o,i.defaultProps)});r.renderStyles(e,l,n,s)}}(a,e,n.styleSheet,l,n.stylis),p){const e=\"undefined\"==typeof window?r.instanceRules.get(a):void 0,o=e?ue(e.rules):\"\";if(o){r.instanceRules.delete(a);const e=Mt?Mt():null;if(e){const t=r.isStatic?s+n.stylis.hash:o;if(e.has(t))return null;e.add(t)}return t.createElement(\"style\",{key:s+\"-\"+a,\"data-styled-global\":s,children:de(o)})}}return r.instanceRules.delete(a),null};return t.memo(i)}function Gt(e,t,n,o,s){for(const r in e){const i=e[r],l=s?s+\"-\"+r:r;if(\"object\"==typeof i&&null!==i){const e={};Gt(i,t,e,o,l),n[r]=e}else n[r]=o(l,i,r)}}function Ft(e,t,n,o){let s=\"\";for(const r in e){const i=e[r],l=t[r],a=o?o+\"-\"+r:r;\"object\"==typeof i&&null!==i?\"object\"==typeof l&&null!==l&&(s+=Ft(i,l,n,a)):void 0!==l&&\"function\"!=typeof l&&(s+=\"--\"+n+a+\":\"+l+\";\")}return s}function zt(e,t){var n,o;const s=(null!==(n=null==t?void 0:t.prefix)&&void 0!==n?n:\"sc\")+\"-\",r=null!==(o=null==t?void 0:t.selector)&&void 0!==o?o:\":root\",i=function(e,t){const n={};return Gt(e,t,n,e=>\"--\"+t+e),n}(e,s),l=function(e,t){const n={};return Gt(e,t,n,(e,n)=>{if(\"production\"!==process.env.NODE_ENV){const t=String(n);let o=0;for(let e=0;e<t.length&&(40===t.charCodeAt(e)?o++:41===t.charCodeAt(e)&&o--,!(o<0));e++);0!==o&&console.warn(`createTheme: value \"${t}\" at \"${e}\" contains unbalanced parentheses and may break the var() fallback`)}return\"var(--\"+t+e+\", \"+n+\")\"}),n}(e,s),a=Vt`\n ${r} {\n ${t=>Ft(e,t.theme,s)}\n }\n `;return Object.assign(l,{GlobalStyle:a,raw:e,vars:i,resolve(t){if(!h)throw new Error(\"createTheme.resolve() is client-only\");const n=null!=t?t:document.documentElement;return function(e,t,n){const o={};return Gt(e,t,o,(e,o)=>n.getPropertyValue(\"--\"+t+e).trim()||o),o}(e,s,getComputedStyle(n))}})}var Wt;const Lt=p?new WeakMap:null;class Bt{constructor(e,t){this[Wt]=!0,this.inject=(e,t=lt)=>{var n;const o=this.getName(t);if(!e.hasNameForId(this.id,o)){const s=t.hash||\"\",r=p?null===(n=null==Lt?void 0:Lt.get(this))||void 0===n?void 0:n.get(s):void 0;if(r)e.insertRules(this.id,o,r);else{const n=t(this.rules,o,\"@keyframes\");if(p&&Lt){let e=Lt.get(this);e||(e=new Map,Lt.set(this,e)),e.set(s,n)}e.insertRules(this.id,o,n)}}},this.name=e,this.id=g+e,this.rules=t,P(this.id),me(this,()=>{throw S(12,String(this.name))})}getName(e=lt){return e.hash?this.name+V(+e.hash>>>0):this.name}}function qt(e,...t){\"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.\");const n=ce(Rt(e,...t)),o=W(n);return new Bt(o,n)}function Ht(e){const n=t.forwardRef((n,o)=>{const s=R(n,p?void 0:t.useContext(yt),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 \"${L(e)}\"`),t.createElement(e,Object.assign(Object.assign({},n),{theme:s,ref:o}))});return n.displayName=`WithTheme(${L(e)})`,re(n,e)}Wt=Ve;const Yt=/^\\s*<\\/[a-z]/i;class Ut{constructor({nonce:e}={}){this._emitSheetCSS=()=>{const e=this.instance.toString();if(!e)return\"\";const t=this.instance.options.nonce||Oe();return`<style ${ce([t&&`nonce=\"${t}\"`,`${l}=\"true\"`,`${c}=\"${u}\"`].filter(Boolean),\" \")}>${e}</style>`},this.getStyleTags=()=>{if(this.sealed)throw S(2);return this._emitSheetCSS()},this.getStyleElement=()=>{if(this.sealed)throw S(2);const e=this.instance.toString();if(!e)return[];const n={[l]:\"\",[c]:u,dangerouslySetInnerHTML:{__html:e}},o=this.instance.options.nonce||Oe();return o&&(n.nonce=o),[t.createElement(\"style\",Object.assign({},n,{key:\"sc-0-0\"}))]},this.seal=()=>{this.sealed=!0},this.instance=new Re({isServer:!0,nonce:e}),this.sealed=!1}collectStyles(e){if(this.sealed)throw S(2);return t.createElement(gt,{sheet:this.instance},e)}interleaveWithNodeStream(e){if(this.sealed)throw S(2);this.seal();const{Transform:t}=require(\"stream\"),{instance:n,_emitSheetCSS:o}=this,s=new t({transform:function(e,t,s){const r=e.toString(),i=o();if(n.clearTag(),Yt.test(r)){const e=r.indexOf(\">\")+1,t=r.slice(0,e),n=r.slice(e);this.push(t+i+n)}else this.push(i+r);s()}});if(\"on\"in e&&\"function\"==typeof e.on&&\"pipe\"in e){const t=e;return t.on(\"error\",e=>{s.emit(\"error\",e)}),t.pipe(s)}if(\"pipe\"in e&&\"function\"==typeof e.pipe)return e.pipe(s);throw new Error(\"Unsupported stream type\")}}const Jt={StyleSheet:Re,mainSheet:it};\"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\");const Zt=`__sc-${l}__`;\"production\"!==process.env.NODE_ENV&&\"test\"!==process.env.NODE_ENV&&\"undefined\"!=typeof window&&(window[Zt]||(window[Zt]=0),1===window[Zt]&&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://styled-components.com/docs/faqs#why-am-i-getting-a-warning-about-several-instances-of-module-on-the-page for more info.\"),window[Zt]+=1);const Xt=/:(?:(first)-child|(last)-child|(only)-child|(nth-child)\\(([^()]+)\\)|(nth-last-child)\\(([^()]+)\\))/g,Kt=`:not(style[${l}])`,Qt=`style[${l}]`;function en(e){return-1===e.indexOf(\"-child\")?e:(Xt.lastIndex=0,e.replace(Xt,(e,t,n,o,s,r,i,l)=>t?`:nth-child(1 of ${Kt})`:n?`:nth-last-child(1 of ${Kt})`:o?`:nth-child(1 of ${Kt}):nth-last-child(1 of ${Kt})`:s?-1!==r.indexOf(\" of \")?e:`:nth-child(${r} of ${Kt})`:-1!==l.indexOf(\" of \")?e:`:nth-last-child(${l} of ${Kt})`))}function tn(e,t){if(-1===e.indexOf(\"+\"))return;let n=0,o=0;for(let s=0;s<e.length;s++){const r=e.charCodeAt(s);if(40===r)n++;else if(41===r)n--;else if(91===r)o++;else if(93===r)o--;else if(43===r&&0===n&&0===o&&!Qe(e,s)){const n=e.substring(0,s),o=e.substring(s+1);t.push(n+\"+\"+Qt+\"+\"+o),t.push(n+\"+\"+Qt+\"+\"+Qt+\"+\"+o)}}}function nn(e){if(e.type===s){const t=e.props,n=[];for(let e=0;e<t.length;e++){const o=en(t[e]);n.push(o),tn(o,n)}e.props=n}}export{Ut as ServerStyleSheet,ft as StyleSheetConsumer,pt as StyleSheetContext,gt as StyleSheetManager,vt as ThemeConsumer,yt as ThemeContext,wt as ThemeProvider,Jt as __PRIVATE__,Vt as createGlobalStyle,zt as createTheme,Rt as css,Tt as default,le as isStyledComponent,qt as keyframes,Tt as styled,nn as stylisPluginRSC,St as useTheme,u as version,Ht as withTheme};\n//# sourceMappingURL=styled-components.esm.js.map\n","// SET_DOCUMENTS\nexport var SET_ALL_DOCUMENTS = \"SET_ALL_DOCUMENTS\";\nexport var setAllDocuments = function (documents) { return ({\n type: SET_ALL_DOCUMENTS,\n documents: documents,\n}); };\n// SET_DOCUMENT_LOADING\nexport var SET_DOCUMENT_LOADING = \"SET_DOCUMENT_LOADING\";\nexport var setDocumentLoading = function (value) { return ({\n type: SET_DOCUMENT_LOADING,\n value: value,\n}); };\n// NEXT_DOCUMENT\nexport var NEXT_DOCUMENT = \"NEXT_DOCUMENT\";\nexport var nextDocument = function () { return ({ type: NEXT_DOCUMENT }); };\n// PREVIOUS_DOCUMENT\nexport var PREVIOUS_DOCUMENT = \"PREVIOUS_DOCUMENT\";\nexport var previousDocument = function () { return ({\n type: PREVIOUS_DOCUMENT,\n}); };\n// UPDATE_CURRENT_DOCUMENT\nexport var UPDATE_CURRENT_DOCUMENT = \"UPDATE_CURRENT_DOCUMENT\";\nexport var updateCurrentDocument = function (document) { return ({ type: UPDATE_CURRENT_DOCUMENT, document: document }); };\n// SET_RENDERER_RECT\nexport var SET_RENDERER_RECT = \"SET_RENDERER_RECT\";\nexport var setRendererRect = function (rect) { return ({\n type: SET_RENDERER_RECT,\n rect: rect,\n}); };\n// SET_MAIN_CONFIG\nexport var SET_MAIN_CONFIG = \"SET_MAIN_CONFIG\";\nexport var setMainConfig = function (config) { return ({\n type: SET_MAIN_CONFIG,\n config: config,\n}); };\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(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))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { NEXT_DOCUMENT, PREVIOUS_DOCUMENT, SET_ALL_DOCUMENTS, SET_DOCUMENT_LOADING, SET_MAIN_CONFIG, SET_RENDERER_RECT, UPDATE_CURRENT_DOCUMENT, } from \"./actions\";\nexport var initialState = {\n currentFileNo: 0,\n documents: [],\n documentLoading: true,\n currentDocument: undefined,\n rendererRect: undefined,\n config: {},\n pluginRenderers: [],\n};\nexport var mainStateReducer = function (state, action) {\n if (state === void 0) { state = initialState; }\n switch (action.type) {\n case SET_ALL_DOCUMENTS: {\n var documents = action.documents;\n return __assign(__assign({}, state), { documents: documents, currentDocument: documents[0] || null });\n }\n case SET_DOCUMENT_LOADING: {\n var value = action.value;\n return __assign(__assign({}, state), { documentLoading: value });\n }\n case NEXT_DOCUMENT: {\n if (state.currentFileNo >= state.documents.length - 1)\n return state;\n var nextDocumentNo = state.currentFileNo + 1;\n return __assign(__assign({}, state), { currentFileNo: nextDocumentNo, currentDocument: state.documents[nextDocumentNo], documentLoading: true });\n }\n case PREVIOUS_DOCUMENT: {\n if (state.currentFileNo <= 0)\n return state;\n var prevDocumentNo = state.currentFileNo - 1;\n return __assign(__assign({}, state), { currentFileNo: state.currentFileNo - 1, currentDocument: state.documents[prevDocumentNo], documentLoading: true });\n }\n case UPDATE_CURRENT_DOCUMENT: {\n var document_1 = action.document;\n return __assign(__assign({}, state), { currentDocument: document_1 });\n }\n case SET_RENDERER_RECT: {\n var rect = action.rect;\n return __assign(__assign({}, state), { rendererRect: rect });\n }\n case SET_MAIN_CONFIG: {\n var config = action.config;\n return __assign(__assign({}, state), { config: config });\n }\n default:\n return state;\n }\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(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))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport React, { createContext, useEffect, useReducer, } from \"react\";\nimport { setAllDocuments, setMainConfig } from \"./actions\";\nimport { initialState, mainStateReducer, } from \"./reducer\";\nvar DocViewerContext = createContext({ state: initialState, dispatch: function () { return null; } });\nvar AppProvider = function (props) {\n var children = props.children, documents = props.documents, config = props.config, pluginRenderers = props.pluginRenderers;\n var _a = useReducer(mainStateReducer, __assign(__assign({}, initialState), { documents: documents || [], currentDocument: documents && documents.length ? documents[0] : undefined, config: config, pluginRenderers: pluginRenderers })), state = _a[0], dispatch = _a[1];\n // On inital load, and whenever they change,\n // replace documents with the new props passed in\n useEffect(function () {\n dispatch(setAllDocuments(documents));\n config && dispatch(setMainConfig(config));\n }, [documents]);\n return (React.createElement(DocViewerContext.Provider, { value: { state: state, dispatch: dispatch } }, children));\n};\nexport { DocViewerContext, AppProvider };\n","var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nimport styled, { css } from \"styled-components\";\nexport var ButtonPrimaryStyle = css(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n background-color: \", \";\\n color: \", \";\\n\"], [\"\\n background-color: \", \";\\n color: \", \";\\n\"])), function (props) { return props.theme.primary; }, function (props) { return props.theme.text_primary; });\nexport var ButtonSecondaryStyle = css(templateObject_2 || (templateObject_2 = __makeTemplateObject([\"\\n background-color: \", \";\\n color: \", \";\\n\"], [\"\\n background-color: \", \";\\n color: \", \";\\n\"])), function (props) { return props.theme.secondary; }, function (props) { return props.theme.text_secondary; });\nexport var Button = styled.button(templateObject_3 || (templateObject_3 = __makeTemplateObject([\"\\n \", \"\\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: \", \";\\n pointer-events: \", \";\\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 \", \"\\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: \", \";\\n pointer-events: \", \";\\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\"])), ButtonPrimaryStyle, function (props) { return (props.disabled ? 0.4 : 1); }, function (props) { return (props.disabled ? \"none\" : \"all\"); });\nexport var LinkButton = styled.a(templateObject_4 || (templateObject_4 = __makeTemplateObject([\"\\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: \", \";\\n color: \", \";\\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 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: \", \";\\n color: \", \";\\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\"])), function (props) { return props.theme.primary; }, function (props) { return props.theme.text_primary; });\nexport var ButtonPrimary = styled(Button)(templateObject_5 || (templateObject_5 = __makeTemplateObject([\"\"], [\"\"])));\nexport var ButtonSecondary = styled(Button)(templateObject_6 || (templateObject_6 = __makeTemplateObject([\"\\n \", \"\\n\"], [\"\\n \", \"\\n\"])), ButtonSecondaryStyle);\nvar templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(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))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport React from \"react\";\nexport var PrevDocIcon = function (props) {\n return React.createElement(DocNavIcon, __assign({}, props));\n};\nexport var NextDocIcon = function (props) {\n return React.createElement(DocNavIcon, __assign({}, props, { reverse: true }));\n};\nvar DocNavIcon = function (props) {\n var color = props.color, size = props.size, reverse = props.reverse;\n return (React.createElement(\"svg\", { width: size || \"100%\", height: size || \"100%\", style: { transform: \"\".concat(reverse ? \"rotate(180deg)\" : \"\") }, id: \"arrow_left\", version: \"1.1\", viewBox: \"0 0 32 32\", xmlSpace: \"preserve\" },\n React.createElement(\"path\", { clipRule: \"evenodd\", 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\", fill: color || \"#aaa\", fillRule: \"evenodd\", id: \"Arrow_Back\" })));\n};\nexport var LoadingIcon = function (props) {\n var color = props.color, size = props.size;\n return (React.createElement(\"svg\", { width: size || \"100%\", height: size || \"100%\", version: \"1.1\", id: \"Icons\", viewBox: \"0 0 32 32\", xmlSpace: \"preserve\", style: { alignSelf: \"center\", justifySelf: \"center\" } },\n React.createElement(\"g\", null,\n React.createElement(\"path\", { fill: color || \"#aaa\", 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 React.createElement(\"path\", { fill: color || \"#aaa\", 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 React.createElement(\"path\", { fill: color || \"#aaa\", 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 React.createElement(\"path\", { fill: color || \"#aaa\", 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 React.createElement(\"path\", { fill: color || \"#aaa\", 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 React.createElement(\"path\", { fill: color || \"#aaa\", 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 React.createElement(\"path\", { fill: color || \"#aaa\", 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 React.createElement(\"path\", { fill: color || \"#aaa\", 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","var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nimport React, { useContext } from \"react\";\nimport styled from \"styled-components\";\nimport { DocViewerContext } from \"../state\";\nimport { nextDocument, previousDocument } from \"../state/actions\";\nimport { ButtonSecondary } from \"./common/Button\";\nimport { NextDocIcon, PrevDocIcon } from \"./icons\";\nexport var DocumentNav = function () {\n var _a = useContext(DocViewerContext), _b = _a.state, currentDocument = _b.currentDocument, currentFileNo = _b.currentFileNo, documents = _b.documents, dispatch = _a.dispatch;\n if (documents.length <= 1 || !currentDocument)\n return null;\n var fileName = currentDocument.uri;\n var splitURL = fileName.split(\"/\");\n if (splitURL.length) {\n fileName = splitURL[splitURL.length - 1];\n }\n return (React.createElement(Container, { id: \"doc-nav\" },\n React.createElement(\"p\", { id: \"doc-nav-info\" },\n \"Doc \",\n currentFileNo + 1,\n \" of \",\n documents.length),\n React.createElement(ButtonPrev, { id: \"doc-nav-prev\", onClick: function () { return dispatch(previousDocument()); }, disabled: currentFileNo === 0 },\n React.createElement(PrevDocIcon, { color: \"#fff\", size: \"60%\" })),\n React.createElement(ButtonNext, { id: \"doc-nav-next\", onClick: function () { return dispatch(nextDocument()); }, disabled: currentFileNo >= documents.length - 1 },\n React.createElement(NextDocIcon, { color: \"#fff\", size: \"60%\" }))));\n};\nvar Container = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\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: \", \";\\n\"], [\"\\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: \", \";\\n\"])), function (props) { return props.theme.text_primary; });\nvar ButtonPrev = styled(ButtonSecondary)(templateObject_2 || (templateObject_2 = __makeTemplateObject([\"\\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\"], [\"\\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\"])));\nvar ButtonNext = styled(ButtonPrev)(templateObject_3 || (templateObject_3 = __makeTemplateObject([\"\\n margin: 0 5px;\\n\"], [\"\\n margin: 0 5px;\\n\"])));\nvar templateObject_1, templateObject_2, templateObject_3;\n","var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nimport React, { useContext } from \"react\";\nimport styled from \"styled-components\";\nimport { DocViewerContext } from \"../state\";\nexport var FileName = function () {\n var _a, _b;\n var _c = useContext(DocViewerContext).state, config = _c.config, currentDocument = _c.currentDocument;\n if (!currentDocument || ((_a = config === null || config === void 0 ? void 0 : config.header) === null || _a === void 0 ? void 0 : _a.disableFileName))\n return null;\n var fileName = currentDocument.uri || \"\";\n fileName = decodeURI(fileName);\n if (!((_b = config === null || config === void 0 ? void 0 : config.header) === null || _b === void 0 ? void 0 : _b.retainURLParams)) {\n fileName = fileName.split(\"?\")[0];\n }\n var splitURL = fileName.split(\"/\");\n if (splitURL.length) {\n fileName = splitURL[splitURL.length - 1];\n }\n return (React.createElement(Container, { id: \"file-name\", \"data-testid\": \"file-name\" }, fileName));\n};\nvar Container = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n flex: 1;\\n text-align: left;\\n color: \", \";\\n font-weight: bold;\\n margin: 0 10px;\\n overflow: hidden;\\n\"], [\"\\n flex: 1;\\n text-align: left;\\n color: \", \";\\n font-weight: bold;\\n margin: 0 10px;\\n overflow: hidden;\\n\"])), function (props) { return props.theme.text_primary; });\nvar templateObject_1;\n","var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nimport React, { useContext } from \"react\";\nimport styled from \"styled-components\";\nimport { DocViewerContext } from \"../state\";\nimport { nextDocument, previousDocument } from \"../state/actions\";\nimport { DocumentNav } from \"./DocumentNav\";\nimport { FileName } from \"./FileName\";\nexport var HeaderBar = function () {\n var _a, _b, _c;\n var _d = useContext(DocViewerContext), state = _d.state, dispatch = _d.dispatch;\n var config = state.config;\n if ((_a = config === null || config === void 0 ? void 0 : config.header) === null || _a === void 0 ? void 0 : _a.disableHeader)\n return null;\n var override = (_c = (_b = config === null || config === void 0 ? void 0 : config.header) === null || _b === void 0 ? void 0 : _b.overrideComponent) === null || _c === void 0 ? void 0 : _c.call(_b, state, function () { return dispatch(previousDocument()); }, function () { return dispatch(nextDocument()); });\n if (override) {\n return override;\n }\n else {\n return (React.createElement(Container, { id: \"header-bar\", \"data-testid\": \"header-bar\" },\n React.createElement(FileName, null),\n React.createElement(DocumentNav, null)));\n }\n};\nvar Container = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n display: flex;\\n justify-content: flex-end;\\n align-items: center;\\n z-index: 1;\\n padding: 0 10px;\\n background-color: \", \";\\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 display: flex;\\n justify-content: flex-end;\\n align-items: center;\\n z-index: 1;\\n padding: 0 10px;\\n background-color: \", \";\\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\"])), function (props) { return props.theme.primary; });\nvar templateObject_1;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(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))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\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 __generator = (this && this.__generator) || function (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};\nvar _fileLoader = function (_a) {\n var documentURI = _a.documentURI, signal = _a.signal, fileLoaderComplete = _a.fileLoaderComplete, readerTypeFunction = _a.readerTypeFunction;\n return fetch(documentURI, { signal: signal })\n .then(function (res) { return __awaiter(void 0, void 0, void 0, function () {\n var blob, fileReader;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, res.blob()];\n case 1:\n blob = _a.sent();\n fileReader = new FileReader();\n fileReader.addEventListener(\"loadend\", function () {\n return fileLoaderComplete(fileReader);\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 default:\n break;\n }\n return [2 /*return*/];\n }\n });\n }); })\n .catch(function (e) {\n return e;\n });\n};\nexport var arrayBufferFileLoader = function (props) {\n return _fileLoader(__assign(__assign({}, props), { readerTypeFunction: \"arrayBuffer\" }));\n};\nexport var dataURLFileLoader = function (props) {\n return _fileLoader(__assign(__assign({}, props), { readerTypeFunction: \"dataURL\" }));\n};\nexport var textFileLoader = function (props) {\n return _fileLoader(__assign(__assign({}, props), { readerTypeFunction: \"text\" }));\n};\nexport var binaryStringFileLoader = function (props) {\n return _fileLoader(__assign(__assign({}, props), { readerTypeFunction: \"binaryString\" }));\n};\nexport var defaultFileLoader = dataURLFileLoader;\n","import { useContext, useEffect, useState } from \"react\";\nimport { DocViewerContext } from \"../state\";\n/**\n * Custom Hook for loading the current document into context\n */\nexport var useRendererSelector = function () {\n var _a = useContext(DocViewerContext).state, currentDocument = _a.currentDocument, pluginRenderers = _a.pluginRenderers;\n var _b = useState(), CurrentRenderer = _b[0], setCurrentRenderer = _b[1];\n useEffect(function () {\n if (!currentDocument)\n return;\n // Do not advance if the document does not yet have a fileType\n // This prevents prematurely showing 'no renderer' message\n if (!currentDocument.fileType) {\n setCurrentRenderer(undefined);\n return;\n }\n var matchingRenderers = [];\n pluginRenderers === null || pluginRenderers === void 0 ? void 0 : pluginRenderers.map(function (r) {\n if (currentDocument.fileType === undefined)\n return;\n if (r.fileTypes.indexOf(currentDocument.fileType) >= 0) {\n matchingRenderers.push(r);\n }\n });\n // Compute prefered Renderer based on weight\n var SelectedRenderer = matchingRenderers.sort(function (a, b) { return b.weight - a.weight; })[0];\n if (SelectedRenderer && SelectedRenderer !== undefined) {\n setCurrentRenderer(function () { return SelectedRenderer; });\n }\n else {\n setCurrentRenderer(null);\n }\n }, [currentDocument]);\n return { CurrentRenderer: CurrentRenderer };\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(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))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { useContext, useEffect } from \"react\";\nimport { DocViewerContext } from \"../state\";\nimport { setDocumentLoading, updateCurrentDocument, } from \"../state/actions\";\nimport { defaultFileLoader } from \"./fileLoaders\";\nimport { useRendererSelector } from \"./useRendererSelector\";\n/**\n * Custom Hook for loading the current document into context\n */\nexport var useDocumentLoader = function () {\n var _a = useContext(DocViewerContext), state = _a.state, dispatch = _a.dispatch;\n var currentFileNo = state.currentFileNo, currentDocument = state.currentDocument;\n var CurrentRenderer = useRendererSelector().CurrentRenderer;\n var documentURI = (currentDocument === null || currentDocument === void 0 ? void 0 : currentDocument.uri) || \"\";\n useEffect(function () {\n if (!currentDocument)\n return;\n if (currentDocument.fileType !== undefined)\n return;\n var controller = new AbortController();\n var signal = controller.signal;\n fetch(documentURI, { method: \"HEAD\", signal: signal }).then(function (response) {\n var contentTypeRaw = response.headers.get(\"content-type\");\n var contentTypes = (contentTypeRaw === null || contentTypeRaw === void 0 ? void 0 : contentTypeRaw.split(\";\")) || [];\n var contentType = contentTypes.length ? contentTypes[0] : undefined;\n dispatch(updateCurrentDocument(__assign(__assign({}, currentDocument), { fileType: contentType || undefined })));\n }).catch(function () {\n // Fetch was aborted on unmount or failed — no action needed\n });\n return function () {\n controller.abort();\n };\n }, \n // eslint ignore added, because a warning appears for dispatch to\n // be a dependancy of the useEffect\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [currentFileNo, documentURI]);\n useEffect(function () {\n var _a;\n if (!currentDocument || CurrentRenderer === undefined)\n return;\n var controller = new AbortController();\n var signal = controller.signal;\n var fileLoaderComplete = function (fileReader) {\n if (!currentDocument || !fileReader) {\n dispatch(setDocumentLoading(false));\n return;\n }\n var updatedDocument = __assign({}, currentDocument);\n if (fileReader.result !== null) {\n updatedDocument.fileData = fileReader.result;\n }\n dispatch(updateCurrentDocument(updatedDocument));\n dispatch(setDocumentLoading(false));\n };\n if (CurrentRenderer === null) {\n dispatch(setDocumentLoading(false));\n }\n else if (CurrentRenderer.fileLoader !== undefined) {\n (_a = CurrentRenderer.fileLoader) === null || _a === void 0 ? void 0 : _a.call(CurrentRenderer, { documentURI: documentURI, signal: signal, fileLoaderComplete: fileLoaderComplete });\n }\n else {\n defaultFileLoader({ documentURI: documentURI, signal: signal, fileLoaderComplete: fileLoaderComplete });\n }\n return function () {\n controller.abort();\n };\n }, [CurrentRenderer]);\n return { state: state, dispatch: dispatch, CurrentRenderer: CurrentRenderer };\n};\n","import { useEffect, useState } from \"react\";\n// Hook\nexport var useWindowSize = function () {\n // Initialize state with undefined width/height so server and client renders match\n // Learn more here: https://joshwcomeau.com/react/the-perils-of-rehydration/\n var _a = useState({\n width: undefined,\n height: undefined,\n }), windowSize = _a[0], setWindowSize = _a[1];\n useEffect(function () {\n // Handler to call on window resize\n function handleResize() {\n // Set window width/height to state\n setWindowSize({\n width: window.innerWidth,\n height: window.innerHeight,\n });\n }\n // Add event listener\n window.addEventListener(\"resize\", handleResize);\n // Call handler right away so state gets updated with initial window size\n handleResize();\n // setTimeout(() => {\n // handleResize();\n // }, 500);\n // Remove event listener on cleanup\n return function () { return window.removeEventListener(\"resize\", handleResize); };\n }, []); // Empty array ensures that effect is only run on mount\n return windowSize;\n};\n","var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nimport React, { useCallback } from \"react\";\nimport styled, { keyframes } from \"styled-components\";\nimport { setRendererRect } from \"../state/actions\";\nimport { useDocumentLoader } from \"../utils/useDocumentLoader\";\nimport { useWindowSize } from \"../utils/useWindowSize\";\nimport { LinkButton } from \"./common\";\nimport { LoadingIcon } from \"./icons\";\nexport var ProxyRenderer = function () {\n var _a = useDocumentLoader(), state = _a.state, dispatch = _a.dispatch, CurrentRenderer = _a.CurrentRenderer;\n var documents = state.documents, documentLoading = state.documentLoading, currentDocument = state.currentDocument;\n var size = useWindowSize();\n var containerRef = useCallback(function (node) {\n node && dispatch(setRendererRect(node === null || node === void 0 ? void 0 : node.getBoundingClientRect()));\n }, \n // eslint-disable-next-line react-hooks/exhaustive-deps\n [size]);\n var Contents = function () {\n if (!documents.length) {\n return React.createElement(\"div\", { id: \"no-documents\" });\n }\n else if (documentLoading) {\n return (React.createElement(LoadingContainer, { id: \"loading-renderer\", \"data-testid\": \"loading-renderer\" },\n React.createElement(LoadingIconContainer, null,\n React.createElement(LoadingIcon, { color: \"#444\", size: 40 }))));\n }\n else {\n if (CurrentRenderer) {\n return React.createElement(CurrentRenderer, { mainState: state });\n }\n else if (CurrentRenderer === undefined) {\n return null;\n }\n else {\n return (React.createElement(\"div\", { id: \"no-renderer\", \"data-testid\": \"no-renderer\" },\n \"No Renderer for file type \", currentDocument === null || currentDocument === void 0 ? void 0 :\n currentDocument.fileType,\n React.createElement(DownloadButton, { id: \"no-renderer-download\", href: currentDocument === null || currentDocument === void 0 ? void 0 : currentDocument.uri, download: currentDocument === null || currentDocument === void 0 ? void 0 : currentDocument.uri }, \"Download File\")));\n }\n }\n };\n return (React.createElement(Container, { id: \"proxy-renderer\", ref: containerRef },\n React.createElement(Contents, null)));\n};\nvar Container = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n display: flex;\\n flex: 1;\\n overflow-y: auto;\\n\"], [\"\\n display: flex;\\n flex: 1;\\n overflow-y: auto;\\n\"])));\nvar LoadingContainer = styled.div(templateObject_2 || (templateObject_2 = __makeTemplateObject([\"\\n display: flex;\\n flex: 1;\\n height: 75px;\\n align-items: center;\\n justify-content: center;\\n\"], [\"\\n display: flex;\\n flex: 1;\\n height: 75px;\\n align-items: center;\\n justify-content: center;\\n\"])));\nvar spinAnim = keyframes(templateObject_3 || (templateObject_3 = __makeTemplateObject([\"\\n from {\\n transform: rotate(0deg);\\n }\\n to {\\n transform: rotate(360deg);\\n }\\n\"], [\"\\n from {\\n transform: rotate(0deg);\\n }\\n to {\\n transform: rotate(360deg);\\n }\\n\"])));\nvar LoadingIconContainer = styled.div(templateObject_4 || (templateObject_4 = __makeTemplateObject([\"\\n animation-name: \", \";\\n animation-duration: 4s;\\n animation-timing-function: linear;\\n animation-iteration-count: infinite;\\n\"], [\"\\n animation-name: \", \";\\n animation-duration: 4s;\\n animation-timing-function: linear;\\n animation-iteration-count: infinite;\\n\"])), spinAnim);\nvar DownloadButton = styled(LinkButton)(templateObject_5 || (templateObject_5 = __makeTemplateObject([\"\\n width: 130px;\\n height: 30px;\\n background-color: \", \";\\n @media (max-width: 768px) {\\n width: 125px;\\n height: 25px;\\n }\\n\"], [\"\\n width: 130px;\\n height: 30px;\\n background-color: \", \";\\n @media (max-width: 768px) {\\n width: 125px;\\n height: 25px;\\n }\\n\"])), function (props) { return props.theme.primary; });\nvar templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;\n","var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(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))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport React from \"react\";\nimport styled from \"styled-components\";\nvar ImageProxyRenderer = function (props) {\n var currentDocument = props.mainState.currentDocument, children = props.children;\n if (!currentDocument)\n return null;\n return (React.createElement(Container, __assign({ id: \"image-renderer\" }, props), children || (React.createElement(Img, { id: \"image-img\", src: currentDocument.fileData }))));\n};\nexport default ImageProxyRenderer;\nImageProxyRenderer.fileTypes = [];\nImageProxyRenderer.weight = 0;\nvar Container = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\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 display: flex;\\n flex: 1;\\n align-items: center;\\n justify-content: center;\\n width: 100%;\\n height: 100%;\\n background-color: #fff;\\n\"])));\nvar Img = styled.img(templateObject_2 || (templateObject_2 = __makeTemplateObject([\"\\n max-width: 95%;\\n max-height: 95%;\\n\"], [\"\\n max-width: 95%;\\n max-height: 95%;\\n\"])));\nvar templateObject_1, templateObject_2;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(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))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport React from \"react\";\nimport ImageProxyRenderer from \"../image\";\nvar BMPRenderer = function (props) { return React.createElement(ImageProxyRenderer, __assign({}, props)); };\nBMPRenderer.fileTypes = [\"bmp\", \"image/bmp\"];\nBMPRenderer.weight = 0;\nexport default BMPRenderer;\n","var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nimport React, { useEffect } from \"react\";\nimport styled from \"styled-components\";\nimport { dataURLFileLoader } from \"../../utils/fileLoaders\";\nvar HTMLRenderer = function (_a) {\n var currentDocument = _a.mainState.currentDocument;\n useEffect(function () {\n var b64String = currentDocument === null || currentDocument === void 0 ? void 0 : currentDocument.fileData;\n var bodyBase64 = (b64String === null || b64String === void 0 ? void 0 : b64String.replace(\"data:text/html;base64,\", \"\")) || \"\";\n var body = window.atob(bodyBase64);\n var iframeCont = document.getElementById(\"html-body\");\n var iframe = (iframeCont === null || iframeCont === void 0 ? void 0 : iframeCont.contentWindow) && iframeCont.contentWindow;\n if (!iframe)\n return;\n var iframeDoc = iframe.document;\n iframeDoc.open();\n iframeDoc.write(\"\".concat(body));\n iframeDoc.close();\n }, []);\n return (React.createElement(Container, { id: \"html-renderer\" },\n React.createElement(BodyIFrame, { id: \"html-body\", sandbox: \"allow-same-origin\" })));\n};\nexport default HTMLRenderer;\nHTMLRenderer.fileTypes = [\"htm\", \"html\", \"text/htm\", \"text/html\"];\nHTMLRenderer.weight = 0;\nHTMLRenderer.fileLoader = dataURLFileLoader;\nvar Container = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n display: flex;\\n flex-direction: column;\\n width: 100%;\\n padding: 0 30px;\\n\"], [\"\\n display: flex;\\n flex-direction: column;\\n width: 100%;\\n padding: 0 30px;\\n\"])));\nvar BodyIFrame = styled.iframe(templateObject_2 || (templateObject_2 = __makeTemplateObject([\"\\n height: 100%;\\n padding: 15px;\\n margin: 20px 0 20px 0;\\n border: 1px solid \", \";\\n\"], [\"\\n height: 100%;\\n padding: 15px;\\n margin: 20px 0 20px 0;\\n border: 1px solid \", \";\\n\"])), function (props) { return props.theme.secondary; });\nvar templateObject_1, templateObject_2;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(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))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport React from \"react\";\nimport ImageProxyRenderer from \"../image\";\nvar JPGRenderer = function (props) { return React.createElement(ImageProxyRenderer, __assign({}, props)); };\nJPGRenderer.fileTypes = [\"jpg\", \"jpeg\", \"image/jpg\", \"image/jpeg\"];\nJPGRenderer.weight = 0;\nexport default JPGRenderer;\n","var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nvar __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};\nimport React from \"react\";\nimport styled from \"styled-components\";\nvar MSDocRenderer = function (_a) {\n var currentDocument = _a.mainState.currentDocument;\n if (!currentDocument)\n return null;\n return (React.createElement(Container, { id: \"msdoc-renderer\" },\n React.createElement(IFrame, { id: \"msdoc-iframe\", title: \"msdoc-iframe\", src: \"https://view.officeapps.live.com/op/embed.aspx?src=\".concat(encodeURIComponent(currentDocument.uri)), frameBorder: \"0\" })));\n};\nexport default MSDocRenderer;\nvar MSDocFTMaps = {\n doc: [\"doc\", \"application/msword\"],\n docx: [\n \"docx\",\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\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};\nMSDocRenderer.fileTypes = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], MSDocFTMaps.doc, true), MSDocFTMaps.docx, true), MSDocFTMaps.xls, true), MSDocFTMaps.xlsx, true), MSDocFTMaps.ppt, true), MSDocFTMaps.pptx, true);\nMSDocRenderer.weight = 0;\nMSDocRenderer.fileLoader = function (_a) {\n var fileLoaderComplete = _a.fileLoaderComplete;\n return fileLoaderComplete();\n};\nvar Container = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n width: 100%;\\n\"], [\"\\n width: 100%;\\n\"])));\nvar IFrame = styled.iframe(templateObject_2 || (templateObject_2 = __makeTemplateObject([\"\\n width: 100%;\\n height: 100%;\\n border: 0;\\n\"], [\"\\n width: 100%;\\n height: 100%;\\n border: 0;\\n\"])));\nvar templateObject_1, templateObject_2;\n","/**\n DataStream reads scalars, arrays and structs of data from an ArrayBuffer.\n It's like a file-like DataView on steroids.\n\n @param {ArrayBuffer} arrayBuffer ArrayBuffer to read from.\n @param {?Number} byteOffset Offset from arrayBuffer beginning for the DataStream.\n @param {?Boolean} endianness DataStream.BIG_ENDIAN or DataStream.LITTLE_ENDIAN (the default).\n */\n\n\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD\n define(factory);\n } else if (typeof exports === 'object') {\n // Node, CommonJS-like\n module.exports = factory();\n } else {\n // Browser globals (root is window)\n root.DataStream = factory();\n }\n}(this, function () {\n\n var DataStream = function (arrayBuffer, byteOffset, endianness) {\n this._byteOffset = byteOffset || 0;\n if (arrayBuffer instanceof ArrayBuffer) {\n this.buffer = arrayBuffer;\n } else if (typeof arrayBuffer == \"object\") {\n this.dataView = arrayBuffer;\n if (byteOffset) {\n this._byteOffset += byteOffset;\n }\n } else {\n this.buffer = new ArrayBuffer(arrayBuffer || 1);\n }\n this.position = 0;\n this.endianness = endianness == null ? DataStream.LITTLE_ENDIAN : endianness;\n };\n DataStream.prototype = {};\n\n /* Fix for Opera 12 not defining BYTES_PER_ELEMENT in typed array prototypes. */\n if (Uint8Array.prototype.BYTES_PER_ELEMENT === undefined) {\n Uint8Array.prototype.BYTES_PER_ELEMENT = Uint8Array.BYTES_PER_ELEMENT;\n Int8Array.prototype.BYTES_PER_ELEMENT = Int8Array.BYTES_PER_ELEMENT;\n Uint8ClampedArray.prototype.BYTES_PER_ELEMENT = Uint8ClampedArray.BYTES_PER_ELEMENT;\n Uint16Array.prototype.BYTES_PER_ELEMENT = Uint16Array.BYTES_PER_ELEMENT;\n Int16Array.prototype.BYTES_PER_ELEMENT = Int16Array.BYTES_PER_ELEMENT;\n Uint32Array.prototype.BYTES_PER_ELEMENT = Uint32Array.BYTES_PER_ELEMENT;\n Int32Array.prototype.BYTES_PER_ELEMENT = Int32Array.BYTES_PER_ELEMENT;\n Float64Array.prototype.BYTES_PER_ELEMENT = Float64Array.BYTES_PER_ELEMENT;\n }\n\n /**\n Saves the DataStream contents to the given filename.\n Uses Chrome's anchor download property to initiate download.\n\n @param {string} filename Filename to save as.\n @return {null}\n */\n DataStream.prototype.save = function (filename) {\n var blob = new Blob(this.buffer);\n var URL = (window.webkitURL || window.URL);\n if (URL && URL.createObjectURL) {\n var url = URL.createObjectURL(blob);\n var a = document.createElement('a');\n a.setAttribute('href', url);\n a.setAttribute('download', filename);\n a.click();\n URL.revokeObjectURL(url);\n } else {\n throw(\"DataStream.save: Can't create object URL.\");\n }\n };\n\n /**\n Big-endian const to use as default endianness.\n @type {boolean}\n */\n DataStream.BIG_ENDIAN = false;\n\n /**\n Little-endian const to use as default endianness.\n @type {boolean}\n */\n DataStream.LITTLE_ENDIAN = true;\n\n /**\n Whether to extend DataStream buffer when trying to write beyond its size.\n If set, the buffer is reallocated to twice its current size until the\n requested write fits the buffer.\n @type {boolean}\n */\n DataStream.prototype._dynamicSize = true;\n Object.defineProperty(DataStream.prototype, 'dynamicSize',\n {\n get: function () {\n return this._dynamicSize;\n },\n set: function (v) {\n if (!v) {\n this._trimAlloc();\n }\n this._dynamicSize = v;\n }\n });\n\n /**\n Virtual byte length of the DataStream backing buffer.\n Updated to be max of original buffer size and last written size.\n If dynamicSize is false is set to buffer size.\n @type {number}\n */\n DataStream.prototype._byteLength = 0;\n\n /**\n Returns the byte length of the DataStream object.\n @type {number}\n */\n Object.defineProperty(DataStream.prototype, 'byteLength',\n {\n get: function () {\n return this._byteLength - this._byteOffset;\n }\n });\n\n /**\n Set/get the backing ArrayBuffer of the DataStream object.\n The setter updates the DataView to point to the new buffer.\n @type {Object}\n */\n Object.defineProperty(DataStream.prototype, 'buffer',\n {\n get: function () {\n this._trimAlloc();\n return this._buffer;\n },\n set: function (v) {\n this._buffer = v;\n this._dataView = new DataView(this._buffer, this._byteOffset);\n this._byteLength = this._buffer.byteLength;\n }\n });\n\n /**\n Set/get the byteOffset of the DataStream object.\n The setter updates the DataView to point to the new byteOffset.\n @type {number}\n */\n Object.defineProperty(DataStream.prototype, 'byteOffset',\n {\n get: function () {\n return this._byteOffset;\n },\n set: function (v) {\n this._byteOffset = v;\n this._dataView = new DataView(this._buffer, this._byteOffset);\n this._byteLength = this._buffer.byteLength;\n }\n });\n\n /**\n Set/get the backing DataView of the DataStream object.\n The setter updates the buffer and byteOffset to point to the DataView values.\n @type {Object}\n */\n Object.defineProperty(DataStream.prototype, 'dataView',\n {\n get: function () {\n return this._dataView;\n },\n set: function (v) {\n this._byteOffset = v.byteOffset;\n this._buffer = v.buffer;\n this._dataView = new DataView(this._buffer, this._byteOffset);\n this._byteLength = this._byteOffset + v.byteLength;\n }\n });\n\n /**\n Internal function to resize the DataStream buffer when required.\n @param {number} extra Number of bytes to add to the buffer allocation.\n @return {null}\n */\n DataStream.prototype._realloc = function (extra) {\n if (!this._dynamicSize) {\n return;\n }\n var req = this._byteOffset + this.position + extra;\n var blen = this._buffer.byteLength;\n if (req <= blen) {\n if (req > this._byteLength) {\n this._byteLength = req;\n }\n return;\n }\n if (blen < 1) {\n blen = 1;\n }\n while (req > blen) {\n blen *= 2;\n }\n var buf = new ArrayBuffer(blen);\n var src = new Uint8Array(this._buffer);\n var dst = new Uint8Array(buf, 0, src.length);\n dst.set(src);\n this.buffer = buf;\n this._byteLength = req;\n };\n\n /**\n Internal function to trim the DataStream buffer when required.\n Used for stripping out the extra bytes from the backing buffer when\n the virtual byteLength is smaller than the buffer byteLength (happens after\n growing the buffer with writes and not filling the extra space completely).\n\n @return {null}\n */\n DataStream.prototype._trimAlloc = function () {\n if (this._byteLength == this._buffer.byteLength) {\n return;\n }\n var buf = new ArrayBuffer(this._byteLength);\n var dst = new Uint8Array(buf);\n var src = new Uint8Array(this._buffer, 0, dst.length);\n dst.set(src);\n this.buffer = buf;\n };\n\n /**\n Sets the DataStream read/write position to given position.\n Clamps between 0 and DataStream length.\n\n @param {number} pos Position to seek to.\n @return {null}\n */\n DataStream.prototype.seek = function (pos) {\n var npos = Math.max(0, Math.min(this.byteLength, pos));\n this.position = (isNaN(npos) || !isFinite(npos)) ? 0 : npos;\n };\n\n /**\n Returns true if the DataStream seek pointer is at the end of buffer and\n there's no more data to read.\n\n @return {boolean} True if the seek pointer is at the end of the buffer.\n */\n DataStream.prototype.isEof = function () {\n return (this.position >= this.byteLength);\n };\n\n /**\n Maps an Int32Array into the DataStream buffer, swizzling it to native\n endianness in-place. The current offset from the start of the buffer needs to\n be a multiple of element size, just like with typed array views.\n\n Nice for quickly reading in data. Warning: potentially modifies the buffer\n contents.\n\n @param {number} length Number of elements to map.\n @param {?boolean} e Endianness of the data to read.\n @return {Object} Int32Array to the DataStream backing buffer.\n */\n DataStream.prototype.mapInt32Array = function (length, e) {\n this._realloc(length * 4);\n var arr = new Int32Array(this._buffer, this.byteOffset + this.position, length);\n DataStream.arrayToNative(arr, e == null ? this.endianness : e);\n this.position += length * 4;\n return arr;\n };\n\n /**\n Maps an Int16Array into the DataStream buffer, swizzling it to native\n endianness in-place. The current offset from the start of the buffer needs to\n be a multiple of element size, just like with typed array views.\n\n Nice for quickly reading in data. Warning: potentially modifies the buffer\n contents.\n\n @param {number} length Number of elements to map.\n @param {?boolean} e Endianness of the data to read.\n @return {Object} Int16Array to the DataStream backing buffer.\n */\n DataStream.prototype.mapInt16Array = function (length, e) {\n this._realloc(length * 2);\n var arr = new Int16Array(this._buffer, this.byteOffset + this.position, length);\n DataStream.arrayToNative(arr, e == null ? this.endianness : e);\n this.position += length * 2;\n return arr;\n };\n\n /**\n Maps an Int8Array into the DataStream buffer.\n\n Nice for quickly reading in data.\n\n @param {number} length Number of elements to map.\n @param {?boolean} e Endianness of the data to read.\n @return {Object} Int8Array to the DataStream backing buffer.\n */\n DataStream.prototype.mapInt8Array = function (length) {\n this._realloc(length * 1);\n var arr = new Int8Array(this._buffer, this.byteOffset + this.position, length);\n this.position += length * 1;\n return arr;\n };\n\n /**\n Maps a Uint32Array into the DataStream buffer, swizzling it to native\n endianness in-place. The current offset from the start of the buffer needs to\n be a multiple of element size, just like with typed array views.\n\n Nice for quickly reading in data. Warning: potentially modifies the buffer\n contents.\n\n @param {number} length Number of elements to map.\n @param {?boolean} e Endianness of the data to read.\n @return {Object} Uint32Array to the DataStream backing buffer.\n */\n DataStream.prototype.mapUint32Array = function (length, e) {\n this._realloc(length * 4);\n var arr = new Uint32Array(this._buffer, this.byteOffset + this.position, length);\n DataStream.arrayToNative(arr, e == null ? this.endianness : e);\n this.position += length * 4;\n return arr;\n };\n\n /**\n Maps a Uint16Array into the DataStream buffer, swizzling it to native\n endianness in-place. The current offset from the start of the buffer needs to\n be a multiple of element size, just like with typed array views.\n\n Nice for quickly reading in data. Warning: potentially modifies the buffer\n contents.\n\n @param {number} length Number of elements to map.\n @param {?boolean} e Endianness of the data to read.\n @return {Object} Uint16Array to the DataStream backing buffer.\n */\n DataStream.prototype.mapUint16Array = function (length, e) {\n this._realloc(length * 2);\n var arr = new Uint16Array(this._buffer, this.byteOffset + this.position, length);\n DataStream.arrayToNative(arr, e == null ? this.endianness : e);\n this.position += length * 2;\n return arr;\n };\n\n /**\n Maps a Uint8Array into the DataStream buffer.\n\n Nice for quickly reading in data.\n\n @param {number} length Number of elements to map.\n @param {?boolean} e Endianness of the data to read.\n @return {Object} Uint8Array to the DataStream backing buffer.\n */\n DataStream.prototype.mapUint8Array = function (length) {\n this._realloc(length * 1);\n var arr = new Uint8Array(this._buffer, this.byteOffset + this.position, length);\n this.position += length * 1;\n return arr;\n };\n\n /**\n Maps a Float64Array into the DataStream buffer, swizzling it to native\n endianness in-place. The current offset from the start of the buffer needs to\n be a multiple of element size, just like with typed array views.\n\n Nice for quickly reading in data. Warning: potentially modifies the buffer\n contents.\n\n @param {number} length Number of elements to map.\n @param {?boolean} e Endianness of the data to read.\n @return {Object} Float64Array to the DataStream backing buffer.\n */\n DataStream.prototype.mapFloat64Array = function (length, e) {\n this._realloc(length * 8);\n var arr = new Float64Array(this._buffer, this.byteOffset + this.position, length);\n DataStream.arrayToNative(arr, e == null ? this.endianness : e);\n this.position += length * 8;\n return arr;\n };\n\n /**\n Maps a Float32Array into the DataStream buffer, swizzling it to native\n endianness in-place. The current offset from the start of the buffer needs to\n be a multiple of element size, just like with typed array views.\n\n Nice for quickly reading in data. Warning: potentially modifies the buffer\n contents.\n\n @param {number} length Number of elements to map.\n @param {?boolean} e Endianness of the data to read.\n @return {Object} Float32Array to the DataStream backing buffer.\n */\n DataStream.prototype.mapFloat32Array = function (length, e) {\n this._realloc(length * 4);\n var arr = new Float32Array(this._buffer, this.byteOffset + this.position, length);\n DataStream.arrayToNative(arr, e == null ? this.endianness : e);\n this.position += length * 4;\n return arr;\n };\n\n /**\n Reads an Int32Array of desired length and endianness from the DataStream.\n\n @param {number} length Number of elements to map.\n @param {?boolean} e Endianness of the data to read.\n @return {Object} The read Int32Array.\n */\n DataStream.prototype.readInt32Array = function (length, e) {\n length = length == null ? (this.byteLength - this.position / 4) : length;\n var arr = new Int32Array(length);\n DataStream.memcpy(arr.buffer, 0,\n this.buffer, this.byteOffset + this.position,\n length * arr.BYTES_PER_ELEMENT);\n DataStream.arrayToNative(arr, e == null ? this.endianness : e);\n this.position += arr.byteLength;\n return arr;\n };\n\n /**\n Reads an Int16Array of desired length and endianness from the DataStream.\n\n @param {number} length Number of elements to map.\n @param {?boolean} e Endianness of the data to read.\n @return {Object} The read Int16Array.\n */\n DataStream.prototype.readInt16Array = function (length, e) {\n length = length == null ? (this.byteLength - this.position / 2) : length;\n var arr = new Int16Array(length);\n DataStream.memcpy(arr.buffer, 0,\n this.buffer, this.byteOffset + this.position,\n length * arr.BYTES_PER_ELEMENT);\n DataStream.arrayToNative(arr, e == null ? this.endianness : e);\n this.position += arr.byteLength;\n return arr;\n };\n\n /**\n Reads an Int8Array of desired length from the DataStream.\n\n @param {number} length Number of elements to map.\n @param {?boolean} e Endianness of the data to read.\n @return {Object} The read Int8Array.\n */\n DataStream.prototype.readInt8Array = function (length) {\n length = length == null ? (this.byteLength - this.position) : length;\n var arr = new Int8Array(length);\n DataStream.memcpy(arr.buffer, 0,\n this.buffer, this.byteOffset + this.position,\n length * arr.BYTES_PER_ELEMENT);\n this.position += arr.byteLength;\n return arr;\n };\n\n /**\n Reads a Uint32Array of desired length and endianness from the DataStream.\n\n @param {number} length Number of elements to map.\n @param {?boolean} e Endianness of the data to read.\n @return {Object} The read Uint32Array.\n */\n DataStream.prototype.readUint32Array = function (length, e) {\n length = length == null ? (this.byteLength - this.position / 4) : length;\n var arr = new Uint32Array(length);\n DataStream.memcpy(arr.buffer, 0,\n this.buffer, this.byteOffset + this.position,\n length * arr.BYTES_PER_ELEMENT);\n DataStream.arrayToNative(arr, e == null ? this.endianness : e);\n this.position += arr.byteLength;\n return arr;\n };\n\n /**\n Reads a Uint16Array of desired length and endianness from the DataStream.\n\n @param {number} length Number of elements to map.\n @param {?boolean} e Endianness of the data to read.\n @return {Object} The read Uint16Array.\n */\n DataStream.prototype.readUint16Array = function (length, e) {\n length = length == null ? (this.byteLength - this.position / 2) : length;\n var arr = new Uint16Array(length);\n DataStream.memcpy(arr.buffer, 0,\n this.buffer, this.byteOffset + this.position,\n length * arr.BYTES_PER_ELEMENT);\n DataStream.arrayToNative(arr, e == null ? this.endianness : e);\n this.position += arr.byteLength;\n return arr;\n };\n\n /**\n Reads a Uint8Array of desired length from the DataStream.\n\n @param {number} length Number of elements to map.\n @param {?boolean} e Endianness of the data to read.\n @return {Object} The read Uint8Array.\n */\n DataStream.prototype.readUint8Array = function (length) {\n length = length == null ? (this.byteLength - this.position) : length;\n var arr = new Uint8Array(length);\n DataStream.memcpy(arr.buffer, 0,\n this.buffer, this.byteOffset + this.position,\n length * arr.BYTES_PER_ELEMENT);\n this.position += arr.byteLength;\n return arr;\n };\n\n /**\n Reads a Float64Array of desired length and endianness from the DataStream.\n\n @param {number} length Number of elements to map.\n @param {?boolean} e Endianness of the data to read.\n @return {Object} The read Float64Array.\n */\n DataStream.prototype.readFloat64Array = function (length, e) {\n length = length == null ? (this.byteLength - this.position / 8) : length;\n var arr = new Float64Array(length);\n DataStream.memcpy(arr.buffer, 0,\n this.buffer, this.byteOffset + this.position,\n length * arr.BYTES_PER_ELEMENT);\n DataStream.arrayToNative(arr, e == null ? this.endianness : e);\n this.position += arr.byteLength;\n return arr;\n };\n\n /**\n Reads a Float32Array of desired length and endianness from the DataStream.\n\n @param {number} length Number of elements to map.\n @param {?boolean} e Endianness of the data to read.\n @return {Object} The read Float32Array.\n */\n DataStream.prototype.readFloat32Array = function (length, e) {\n length = length == null ? (this.byteLength - this.position / 4) : length;\n var arr = new Float32Array(length);\n DataStream.memcpy(arr.buffer, 0,\n this.buffer, this.byteOffset + this.position,\n length * arr.BYTES_PER_ELEMENT);\n DataStream.arrayToNative(arr, e == null ? this.endianness : e);\n this.position += arr.byteLength;\n return arr;\n };\n\n /**\n Writes an Int32Array of specified endianness to the DataStream.\n\n @param {Object} arr The array to write.\n @param {?boolean} e Endianness of the data to write.\n */\n DataStream.prototype.writeInt32Array = function (arr, e) {\n this._realloc(arr.length * 4);\n if (arr instanceof Int32Array &&\n this.byteOffset + this.position % arr.BYTES_PER_ELEMENT == 0) {\n DataStream.memcpy(this._buffer, this.byteOffset + this.position,\n arr.buffer, 0,\n arr.byteLength);\n this.mapInt32Array(arr.length, e);\n } else {\n for (var i = 0; i < arr.length; i++) {\n this.writeInt32(arr[i], e);\n }\n }\n };\n\n /**\n Writes an Int16Array of specified endianness to the DataStream.\n\n @param {Object} arr The array to write.\n @param {?boolean} e Endianness of the data to write.\n */\n DataStream.prototype.writeInt16Array = function (arr, e) {\n this._realloc(arr.length * 2);\n if (arr instanceof Int16Array &&\n this.byteOffset + this.position % arr.BYTES_PER_ELEMENT == 0) {\n DataStream.memcpy(this._buffer, this.byteOffset + this.position,\n arr.buffer, 0,\n arr.byteLength);\n this.mapInt16Array(arr.length, e);\n } else {\n for (var i = 0; i < arr.length; i++) {\n this.writeInt16(arr[i], e);\n }\n }\n };\n\n /**\n Writes an Int8Array to the DataStream.\n\n @param {Object} arr The array to write.\n */\n DataStream.prototype.writeInt8Array = function (arr) {\n this._realloc(arr.length * 1);\n if (arr instanceof Int8Array &&\n this.byteOffset + this.position % arr.BYTES_PER_ELEMENT == 0) {\n DataStream.memcpy(this._buffer, this.byteOffset + this.position,\n arr.buffer, 0,\n arr.byteLength);\n this.mapInt8Array(arr.length);\n } else {\n for (var i = 0; i < arr.length; i++) {\n this.writeInt8(arr[i]);\n }\n }\n };\n\n /**\n Writes a Uint32Array of specified endianness to the DataStream.\n\n @param {Object} arr The array to write.\n @param {?boolean} e Endianness of the data to write.\n */\n DataStream.prototype.writeUint32Array = function (arr, e) {\n this._realloc(arr.length * 4);\n if (arr instanceof Uint32Array &&\n this.byteOffset + this.position % arr.BYTES_PER_ELEMENT == 0) {\n DataStream.memcpy(this._buffer, this.byteOffset + this.position,\n arr.buffer, 0,\n arr.byteLength);\n this.mapUint32Array(arr.length, e);\n } else {\n for (var i = 0; i < arr.length; i++) {\n this.writeUint32(arr[i], e);\n }\n }\n };\n\n /**\n Writes a Uint16Array of specified endianness to the DataStream.\n\n @param {Object} arr The array to write.\n @param {?boolean} e Endianness of the data to write.\n */\n DataStream.prototype.writeUint16Array = function (arr, e) {\n this._realloc(arr.length * 2);\n if (arr instanceof Uint16Array &&\n this.byteOffset + this.position % arr.BYTES_PER_ELEMENT == 0) {\n DataStream.memcpy(this._buffer, this.byteOffset + this.position,\n arr.buffer, 0,\n arr.byteLength);\n this.mapUint16Array(arr.length, e);\n } else {\n for (var i = 0; i < arr.length; i++) {\n this.writeUint16(arr[i], e);\n }\n }\n };\n\n /**\n Writes a Uint8Array to the DataStream.\n\n @param {Object} arr The array to write.\n */\n DataStream.prototype.writeUint8Array = function (arr) {\n this._realloc(arr.length * 1);\n if (arr instanceof Uint8Array &&\n this.byteOffset + this.position % arr.BYTES_PER_ELEMENT == 0) {\n DataStream.memcpy(this._buffer, this.byteOffset + this.position,\n arr.buffer, 0,\n arr.byteLength);\n this.mapUint8Array(arr.length);\n } else {\n for (var i = 0; i < arr.length; i++) {\n this.writeUint8(arr[i]);\n }\n }\n };\n\n /**\n Writes a Float64Array of specified endianness to the DataStream.\n\n @param {Object} arr The array to write.\n @param {?boolean} e Endianness of the data to write.\n */\n DataStream.prototype.writeFloat64Array = function (arr, e) {\n this._realloc(arr.length * 8);\n if (arr instanceof Float64Array &&\n this.byteOffset + this.position % arr.BYTES_PER_ELEMENT == 0) {\n DataStream.memcpy(this._buffer, this.byteOffset + this.position,\n arr.buffer, 0,\n arr.byteLength);\n this.mapFloat64Array(arr.length, e);\n } else {\n for (var i = 0; i < arr.length; i++) {\n this.writeFloat64(arr[i], e);\n }\n }\n };\n\n /**\n Writes a Float32Array of specified endianness to the DataStream.\n\n @param {Object} arr The array to write.\n @param {?boolean} e Endianness of the data to write.\n */\n DataStream.prototype.writeFloat32Array = function (arr, e) {\n this._realloc(arr.length * 4);\n if (arr instanceof Float32Array &&\n this.byteOffset + this.position % arr.BYTES_PER_ELEMENT == 0) {\n DataStream.memcpy(this._buffer, this.byteOffset + this.position,\n arr.buffer, 0,\n arr.byteLength);\n this.mapFloat32Array(arr.length, e);\n } else {\n for (var i = 0; i < arr.length; i++) {\n this.writeFloat32(arr[i], e);\n }\n }\n };\n\n\n /**\n Reads a 32-bit int from the DataStream with the desired endianness.\n\n @param {?boolean} e Endianness of the number.\n @return {number} The read number.\n */\n DataStream.prototype.readInt32 = function (e) {\n var v = this._dataView.getInt32(this.position, e == null ? this.endianness : e);\n this.position += 4;\n return v;\n };\n\n /**\n Reads a 32-bit int from the DataStream with the offset.\n\n @param {number} offset The offset.\n @return {number} The read number.\n */\n DataStream.prototype.readInt = function (offset) {\n this.seek(offset);\n return this.readInt32();\n };\n\n /**\n Reads a 16-bit int from the DataStream with the desired endianness.\n\n @param {?boolean} e Endianness of the number.\n @return {number} The read number.\n */\n DataStream.prototype.readInt16 = function (e) {\n var v = this._dataView.getInt16(this.position, e == null ? this.endianness : e);\n this.position += 2;\n return v;\n };\n\n /**\n Reads a 16-bit int from the DataStream with the offset\n\n @param {number} offset The offset.\n @return {number} The read number.\n */\n DataStream.prototype.readShort = function (offset) {\n this.seek(offset);\n return this.readInt16();\n };\n\n /**\n Reads an 8-bit int from the DataStream.\n\n @return {number} The read number.\n */\n DataStream.prototype.readInt8 = function () {\n var v = this._dataView.getInt8(this.position);\n this.position += 1;\n return v;\n };\n\n /**\n Reads an 8-bit int from the DataStream with the offset.\n\n @param {number} offset The offset.\n @return {number} The read number.\n */\n DataStream.prototype.readByte = function (offset) {\n this.seek(offset);\n return this.readInt8();\n };\n\n\n /**\n Reads a 32-bit unsigned int from the DataStream with the desired endianness.\n\n @param {?boolean} e Endianness of the number.\n @return {number} The read number.\n */\n DataStream.prototype.readUint32 = function (e) {\n var v = this._dataView.getUint32(this.position, e == null ? this.endianness : e);\n this.position += 4;\n return v;\n };\n\n /**\n Reads a 16-bit unsigned int from the DataStream with the desired endianness.\n\n @param {?boolean} e Endianness of the number.\n @return {number} The read number.\n */\n DataStream.prototype.readUint16 = function (e) {\n var v = this._dataView.getUint16(this.position, e == null ? this.endianness : e);\n this.position += 2;\n return v;\n };\n\n /**\n Reads an 8-bit unsigned int from the DataStream.\n\n @return {number} The read number.\n */\n DataStream.prototype.readUint8 = function () {\n var v = this._dataView.getUint8(this.position);\n this.position += 1;\n return v;\n };\n\n /**\n Reads a 32-bit float from the DataStream with the desired endianness.\n\n @param {?boolean} e Endianness of the number.\n @return {number} The read number.\n */\n DataStream.prototype.readFloat32 = function (e) {\n var v = this._dataView.getFloat32(this.position, e == null ? this.endianness : e);\n this.position += 4;\n return v;\n };\n\n /**\n Reads a 64-bit float from the DataStream with the desired endianness.\n\n @param {?boolean} e Endianness of the number.\n @return {number} The read number.\n */\n DataStream.prototype.readFloat64 = function (e) {\n var v = this._dataView.getFloat64(this.position, e == null ? this.endianness : e);\n this.position += 8;\n return v;\n };\n\n\n /**\n Writes a 32-bit int to the DataStream with the desired endianness.\n\n @param {number} v Number to write.\n @param {?boolean} e Endianness of the number.\n */\n DataStream.prototype.writeInt32 = function (v, e) {\n this._realloc(4);\n this._dataView.setInt32(this.position, v, e == null ? this.endianness : e);\n this.position += 4;\n };\n\n /**\n Writes a 16-bit int to the DataStream with the desired endianness.\n\n @param {number} v Number to write.\n @param {?boolean} e Endianness of the number.\n */\n DataStream.prototype.writeInt16 = function (v, e) {\n this._realloc(2);\n this._dataView.setInt16(this.position, v, e == null ? this.endianness : e);\n this.position += 2;\n };\n\n /**\n Writes an 8-bit int to the DataStream.\n\n @param {number} v Number to write.\n */\n DataStream.prototype.writeInt8 = function (v) {\n this._realloc(1);\n this._dataView.setInt8(this.position, v);\n this.position += 1;\n };\n\n /**\n Writes a 32-bit unsigned int to the DataStream with the desired endianness.\n\n @param {number} v Number to write.\n @param {?boolean} e Endianness of the number.\n */\n DataStream.prototype.writeUint32 = function (v, e) {\n this._realloc(4);\n this._dataView.setUint32(this.position, v, e == null ? this.endianness : e);\n this.position += 4;\n };\n\n /**\n Writes a 16-bit unsigned int to the DataStream with the desired endianness.\n\n @param {number} v Number to write.\n @param {?boolean} e Endianness of the number.\n */\n DataStream.prototype.writeUint16 = function (v, e) {\n this._realloc(2);\n this._dataView.setUint16(this.position, v, e == null ? this.endianness : e);\n this.position += 2;\n };\n\n /**\n Writes an 8-bit unsigned int to the DataStream.\n\n @param {number} v Number to write.\n */\n DataStream.prototype.writeUint8 = function (v) {\n this._realloc(1);\n this._dataView.setUint8(this.position, v);\n this.position += 1;\n };\n\n /**\n Writes a 32-bit float to the DataStream with the desired endianness.\n\n @param {number} v Number to write.\n @param {?boolean} e Endianness of the number.\n */\n DataStream.prototype.writeFloat32 = function (v, e) {\n this._realloc(4);\n this._dataView.setFloat32(this.position, v, e == null ? this.endianness : e);\n this.position += 4;\n };\n\n /**\n Writes a 64-bit float to the DataStream with the desired endianness.\n\n @param {number} v Number to write.\n @param {?boolean} e Endianness of the number.\n */\n DataStream.prototype.writeFloat64 = function (v, e) {\n this._realloc(8);\n this._dataView.setFloat64(this.position, v, e == null ? this.endianness : e);\n this.position += 8;\n };\n\n /**\n Native endianness. Either DataStream.BIG_ENDIAN or DataStream.LITTLE_ENDIAN\n depending on the platform endianness.\n\n @type {boolean}\n */\n DataStream.endianness = new Int8Array(new Int16Array([1]).buffer)[0] > 0;\n\n /**\n Copies byteLength bytes from the src buffer at srcOffset to the\n dst buffer at dstOffset.\n\n @param {Object} dst Destination ArrayBuffer to write to.\n @param {number} dstOffset Offset to the destination ArrayBuffer.\n @param {Object} src Source ArrayBuffer to read from.\n @param {number} srcOffset Offset to the source ArrayBuffer.\n @param {number} byteLength Number of bytes to copy.\n */\n DataStream.memcpy = function (dst, dstOffset, src, srcOffset, byteLength) {\n var dstU8 = new Uint8Array(dst, dstOffset, byteLength);\n var srcU8 = new Uint8Array(src, srcOffset, byteLength);\n dstU8.set(srcU8);\n };\n\n /**\n Converts array to native endianness in-place.\n\n @param {Object} array Typed array to convert.\n @param {boolean} arrayIsLittleEndian True if the data in the array is\n little-endian. Set false for big-endian.\n @return {Object} The converted typed array.\n */\n DataStream.arrayToNative = function (array, arrayIsLittleEndian) {\n if (arrayIsLittleEndian == this.endianness) {\n return array;\n } else {\n return this.flipArrayEndianness(array);\n }\n };\n\n /**\n Converts native endianness array to desired endianness in-place.\n\n @param {Object} array Typed array to convert.\n @param {boolean} littleEndian True if the converted array should be\n little-endian. Set false for big-endian.\n @return {Object} The converted typed array.\n */\n DataStream.nativeToEndian = function (array, littleEndian) {\n if (this.endianness == littleEndian) {\n return array;\n } else {\n return this.flipArrayEndianness(array);\n }\n };\n\n /**\n Flips typed array endianness in-place.\n\n @param {Object} array Typed array to flip.\n @return {Object} The converted typed array.\n */\n DataStream.flipArrayEndianness = function (array) {\n var u8 = new Uint8Array(array.buffer, array.byteOffset, array.byteLength);\n for (var i = 0; i < array.byteLength; i += array.BYTES_PER_ELEMENT) {\n for (var j = i + array.BYTES_PER_ELEMENT - 1, k = i; j > k; j--, k++) {\n var tmp = u8[k];\n u8[k] = u8[j];\n u8[j] = tmp;\n }\n }\n return array;\n };\n\n /**\n Creates an array from an array of character codes.\n Uses String.fromCharCode on the character codes and concats the results into a string.\n\n @param {array} array Array of character codes.\n @return {string} String created from the character codes.\n **/\n DataStream.createStringFromArray = function (array) {\n var str = \"\";\n for (var i = 0; i < array.length; i++) {\n str += String.fromCharCode(array[i]);\n }\n return str;\n };\n\n /**\n Seek position where DataStream#readStruct ran into a problem.\n Useful for debugging struct parsing.\n\n @type {number}\n */\n DataStream.prototype.failurePosition = 0;\n\n /**\n Reads a struct of data from the DataStream. The struct is defined as\n a flat array of [name, type]-pairs. See the example below:\n\n ds.readStruct([\n 'headerTag', 'uint32', // Uint32 in DataStream endianness.\n 'headerTag2', 'uint32be', // Big-endian Uint32.\n 'headerTag3', 'uint32le', // Little-endian Uint32.\n 'array', ['[]', 'uint32', 16], // Uint32Array of length 16.\n 'array2Length', 'uint32',\n 'array2', ['[]', 'uint32', 'array2Length'] // Uint32Array of length array2Length\n ]);\n\n The possible values for the type are as follows:\n\n // Number types\n\n // Unsuffixed number types use DataStream endianness.\n // To explicitly specify endianness, suffix the type with\n // 'le' for little-endian or 'be' for big-endian,\n // e.g. 'int32be' for big-endian int32.\n\n 'uint8' -- 8-bit unsigned int\n 'uint16' -- 16-bit unsigned int\n 'uint32' -- 32-bit unsigned int\n 'int8' -- 8-bit int\n 'int16' -- 16-bit int\n 'int32' -- 32-bit int\n 'float32' -- 32-bit float\n 'float64' -- 64-bit float\n\n // String types\n 'cstring' -- ASCII string terminated by a zero byte.\n 'string:N' -- ASCII string of length N, where N is a literal integer.\n 'string:variableName' -- ASCII string of length $variableName,\n where 'variableName' is a previously parsed number in the current struct.\n 'string,CHARSET:N' -- String of byteLength N encoded with given CHARSET.\n 'u16string:N' -- UCS-2 string of length N in DataStream endianness.\n 'u16stringle:N' -- UCS-2 string of length N in little-endian.\n 'u16stringbe:N' -- UCS-2 string of length N in big-endian.\n\n // Complex types\n [name, type, name_2, type_2, ..., name_N, type_N] -- Struct\n function(dataStream, struct) {} -- Callback function to read and return data.\n {get: function(dataStream, struct) {},\n set: function(dataStream, struct) {}}\n -- Getter/setter functions to read and return data, handy for using the same\n struct definition for reading and writing structs.\n ['[]', type, length] -- Array of given type and length. The length can be either\n a number, a string that references a previously-read\n field, or a callback function(struct, dataStream, type){}.\n If length is '*', reads in as many elements as it can.\n\n @param {Object} structDefinition Struct definition object.\n @return {Object} The read struct. Null if failed to read struct.\n */\n DataStream.prototype.readStruct = function (structDefinition) {\n var struct = {}, t, v, n;\n var p = this.position;\n for (var i = 0; i < structDefinition.length; i += 2) {\n t = structDefinition[i + 1];\n v = this.readType(t, struct);\n if (v == null) {\n if (this.failurePosition == 0) {\n this.failurePosition = this.position;\n }\n this.position = p;\n return null;\n }\n struct[structDefinition[i]] = v;\n }\n return struct;\n };\n\n /**\n Read UCS-2 string of desired length and endianness from the DataStream.\n\n @param {number} length The length of the string to read.\n @param {boolean} endianness The endianness of the string data in the DataStream.\n @return {string} The read string.\n */\n DataStream.prototype.readUCS2String = function (length, endianness) {\n return DataStream.createStringFromArray(this.readUint16Array(length, endianness));\n };\n\n /**\n Read UCS-2 string of desired length and offset from the DataStream.\n\n @param {number} offset The offset.\n @param {number} length The length of the string to read.\n @return {string} The read string.\n */\n DataStream.prototype.readStringAt = function (offset, length) {\n this.seek(offset);\n return this.readUCS2String(length);\n };\n\n /**\n Write a UCS-2 string of desired endianness to the DataStream. The\n lengthOverride argument lets you define the number of characters to write.\n If the string is shorter than lengthOverride, the extra space is padded with\n zeroes.\n\n @param {string} str The string to write.\n @param {?boolean} endianness The endianness to use for the written string data.\n @param {?number} lengthOverride The number of characters to write.\n */\n DataStream.prototype.writeUCS2String = function (str, endianness, lengthOverride) {\n if (lengthOverride == null) {\n lengthOverride = str.length;\n }\n for (var i = 0; i < str.length && i < lengthOverride; i++) {\n this.writeUint16(str.charCodeAt(i), endianness);\n }\n for (; i < lengthOverride; i++) {\n this.writeUint16(0);\n }\n };\n\n /**\n Read a string of desired length and encoding from the DataStream.\n\n @param {number} length The length of the string to read in bytes.\n @param {?string} encoding The encoding of the string data in the DataStream.\n Defaults to ASCII.\n @return {string} The read string.\n */\n DataStream.prototype.readString = function (length, encoding) {\n if (encoding == null || encoding == \"ASCII\") {\n return DataStream.createStringFromArray(this.mapUint8Array(length == null ? this.byteLength - this.position : length));\n } else {\n return (new TextDecoder(encoding)).decode(this.mapUint8Array(length));\n }\n };\n\n /**\n Writes a string of desired length and encoding to the DataStream.\n\n @param {string} s The string to write.\n @param {?string} encoding The encoding for the written string data.\n Defaults to ASCII.\n @param {?number} length The number of characters to write.\n */\n DataStream.prototype.writeString = function (s, encoding, length) {\n if (encoding == null || encoding == \"ASCII\") {\n if (length != null) {\n var i = 0;\n var len = Math.min(s.length, length);\n for (i = 0; i < len; i++) {\n this.writeUint8(s.charCodeAt(i));\n }\n for (; i < length; i++) {\n this.writeUint8(0);\n }\n } else {\n for (var i = 0; i < s.length; i++) {\n this.writeUint8(s.charCodeAt(i));\n }\n }\n } else {\n this.writeUint8Array((new TextEncoder(encoding)).encode(s.substring(0, length)));\n }\n };\n\n\n /**\n Read null-terminated string of desired length from the DataStream. Truncates\n the returned string so that the null byte is not a part of it.\n\n @param {?number} length The length of the string to read.\n @return {string} The read string.\n */\n DataStream.prototype.readCString = function (length) {\n var blen = this.byteLength - this.position;\n var u8 = new Uint8Array(this._buffer, this._byteOffset + this.position);\n var len = blen;\n if (length != null) {\n len = Math.min(length, blen);\n }\n for (var i = 0; i < len && u8[i] != 0; i++) ; // find first zero byte\n var s = DataStream.createStringFromArray(this.mapUint8Array(i));\n if (length != null) {\n this.position += len - i;\n } else if (i != blen) {\n this.position += 1; // trailing zero if not at end of buffer\n }\n return s;\n };\n\n /**\n Writes a null-terminated string to DataStream and zero-pads it to length\n bytes. If length is not given, writes the string followed by a zero.\n If string is longer than length, the written part of the string does not have\n a trailing zero.\n\n @param {string} s The string to write.\n @param {?number} length The number of characters to write.\n */\n DataStream.prototype.writeCString = function (s, length) {\n if (length != null) {\n var i = 0;\n var len = Math.min(s.length, length);\n for (i = 0; i < len; i++) {\n this.writeUint8(s.charCodeAt(i));\n }\n for (; i < length; i++) {\n this.writeUint8(0);\n }\n } else {\n for (var i = 0; i < s.length; i++) {\n this.writeUint8(s.charCodeAt(i));\n }\n this.writeUint8(0);\n }\n };\n\n /**\n Reads an object of type t from the DataStream, passing struct as the thus-far\n read struct to possible callbacks that refer to it. Used by readStruct for\n reading in the values, so the type is one of the readStruct types.\n\n @param {Object} t Type of the object to read.\n @param {?Object} struct Struct to refer to when resolving length references\n and for calling callbacks.\n @return {?Object} Returns the object on successful read, null on unsuccessful.\n */\n DataStream.prototype.readType = function (t, struct) {\n if (typeof t == \"function\") {\n return t(this, struct);\n } else if (typeof t == \"object\" && !(t instanceof Array)) {\n return t.get(this, struct);\n } else if (t instanceof Array && t.length != 3) {\n return this.readStruct(t, struct);\n }\n var v = null;\n var lengthOverride = null;\n var charset = \"ASCII\";\n var pos = this.position;\n var len;\n if (typeof t == 'string' && /:/.test(t)) {\n var tp = t.split(\":\");\n t = tp[0];\n len = tp[1];\n\n // allow length to be previously parsed variable\n // e.g. 'string:fieldLength', if `fieldLength` has\n // been parsed previously.\n if (struct[len] != null) {\n lengthOverride = parseInt(struct[len]);\n } else {\n // assume literal integer e.g., 'string:4'\n lengthOverride = parseInt(tp[1]);\n }\n }\n if (typeof t == 'string' && /,/.test(t)) {\n var tp = t.split(\",\");\n t = tp[0];\n charset = parseInt(tp[1]);\n }\n switch (t) {\n\n case 'uint8':\n v = this.readUint8();\n break;\n case 'int8':\n v = this.readInt8();\n break;\n\n case 'uint16':\n v = this.readUint16(this.endianness);\n break;\n case 'int16':\n v = this.readInt16(this.endianness);\n break;\n case 'uint32':\n v = this.readUint32(this.endianness);\n break;\n case 'int32':\n v = this.readInt32(this.endianness);\n break;\n case 'float32':\n v = this.readFloat32(this.endianness);\n break;\n case 'float64':\n v = this.readFloat64(this.endianness);\n break;\n\n case 'uint16be':\n v = this.readUint16(DataStream.BIG_ENDIAN);\n break;\n case 'int16be':\n v = this.readInt16(DataStream.BIG_ENDIAN);\n break;\n case 'uint32be':\n v = this.readUint32(DataStream.BIG_ENDIAN);\n break;\n case 'int32be':\n v = this.readInt32(DataStream.BIG_ENDIAN);\n break;\n case 'float32be':\n v = this.readFloat32(DataStream.BIG_ENDIAN);\n break;\n case 'float64be':\n v = this.readFloat64(DataStream.BIG_ENDIAN);\n break;\n\n case 'uint16le':\n v = this.readUint16(DataStream.LITTLE_ENDIAN);\n break;\n case 'int16le':\n v = this.readInt16(DataStream.LITTLE_ENDIAN);\n break;\n case 'uint32le':\n v = this.readUint32(DataStream.LITTLE_ENDIAN);\n break;\n case 'int32le':\n v = this.readInt32(DataStream.LITTLE_ENDIAN);\n break;\n case 'float32le':\n v = this.readFloat32(DataStream.LITTLE_ENDIAN);\n break;\n case 'float64le':\n v = this.readFloat64(DataStream.LITTLE_ENDIAN);\n break;\n\n case 'cstring':\n v = this.readCString(lengthOverride);\n break;\n\n case 'string':\n v = this.readString(lengthOverride, charset);\n break;\n\n case 'u16string':\n v = this.readUCS2String(lengthOverride, this.endianness);\n break;\n\n case 'u16stringle':\n v = this.readUCS2String(lengthOverride, DataStream.LITTLE_ENDIAN);\n break;\n\n case 'u16stringbe':\n v = this.readUCS2String(lengthOverride, DataStream.BIG_ENDIAN);\n break;\n\n default:\n if (t.length == 3) {\n var ta = t[1];\n var len = t[2];\n var length = 0;\n if (typeof len == 'function') {\n length = len(struct, this, t);\n } else if (typeof len == 'string' && struct[len] != null) {\n length = parseInt(struct[len]);\n } else {\n length = parseInt(len);\n }\n if (typeof ta == \"string\") {\n var tap = ta.replace(/(le|be)$/, '');\n var endianness = null;\n if (/le$/.test(ta)) {\n endianness = DataStream.LITTLE_ENDIAN;\n } else if (/be$/.test(ta)) {\n endianness = DataStream.BIG_ENDIAN;\n }\n if (len == '*') {\n length = null;\n }\n switch (tap) {\n case 'uint8':\n v = this.readUint8Array(length);\n break;\n case 'uint16':\n v = this.readUint16Array(length, endianness);\n break;\n case 'uint32':\n v = this.readUint32Array(length, endianness);\n break;\n case 'int8':\n v = this.readInt8Array(length);\n break;\n case 'int16':\n v = this.readInt16Array(length, endianness);\n break;\n case 'int32':\n v = this.readInt32Array(length, endianness);\n break;\n case 'float32':\n v = this.readFloat32Array(length, endianness);\n break;\n case 'float64':\n v = this.readFloat64Array(length, endianness);\n break;\n case 'cstring':\n case 'utf16string':\n case 'string':\n if (length == null) {\n v = [];\n while (!this.isEof()) {\n var u = this.readType(ta, struct);\n if (u == null) break;\n v.push(u);\n }\n } else {\n v = new Array(length);\n for (var i = 0; i < length; i++) {\n v[i] = this.readType(ta, struct);\n }\n }\n break;\n }\n } else {\n if (len == '*') {\n v = [];\n this.buffer;\n while (true) {\n var p = this.position;\n try {\n var o = this.readType(ta, struct);\n if (o == null) {\n this.position = p;\n break;\n }\n v.push(o);\n } catch (e) {\n this.position = p;\n break;\n }\n }\n } else {\n v = new Array(length);\n for (var i = 0; i < length; i++) {\n var u = this.readType(ta, struct);\n if (u == null) return null;\n v[i] = u;\n }\n }\n }\n break;\n }\n }\n if (lengthOverride != null) {\n this.position = pos + lengthOverride;\n }\n return v;\n };\n\n /**\n Writes a struct to the DataStream. Takes a structDefinition that gives the\n types and a struct object that gives the values. Refer to readStruct for the\n structure of structDefinition.\n\n @param {Object} structDefinition Type definition of the struct.\n @param {Object} struct The struct data object.\n */\n DataStream.prototype.writeStruct = function (structDefinition, struct) {\n for (var i = 0; i < structDefinition.length; i += 2) {\n var t = structDefinition[i + 1];\n this.writeType(t, struct[structDefinition[i]], struct);\n }\n };\n\n /**\n Writes object v of type t to the DataStream.\n\n @param {Object} t Type of data to write.\n @param {Object} v Value of data to write.\n @param {Object} struct Struct to pass to write callback functions.\n */\n DataStream.prototype.writeType = function (t, v, struct) {\n if (typeof t == \"function\") {\n return t(this, v);\n } else if (typeof t == \"object\" && !(t instanceof Array)) {\n return t.set(this, v, struct);\n }\n var lengthOverride = null;\n var charset = \"ASCII\";\n var pos = this.position;\n if (typeof(t) == 'string' && /:/.test(t)) {\n var tp = t.split(\":\");\n t = tp[0];\n lengthOverride = parseInt(tp[1]);\n }\n if (typeof t == 'string' && /,/.test(t)) {\n var tp = t.split(\",\");\n t = tp[0];\n charset = parseInt(tp[1]);\n }\n\n switch (t) {\n case 'uint8':\n this.writeUint8(v);\n break;\n case 'int8':\n this.writeInt8(v);\n break;\n\n case 'uint16':\n this.writeUint16(v, this.endianness);\n break;\n case 'int16':\n this.writeInt16(v, this.endianness);\n break;\n case 'uint32':\n this.writeUint32(v, this.endianness);\n break;\n case 'int32':\n this.writeInt32(v, this.endianness);\n break;\n case 'float32':\n this.writeFloat32(v, this.endianness);\n break;\n case 'float64':\n this.writeFloat64(v, this.endianness);\n break;\n\n case 'uint16be':\n this.writeUint16(v, DataStream.BIG_ENDIAN);\n break;\n case 'int16be':\n this.writeInt16(v, DataStream.BIG_ENDIAN);\n break;\n case 'uint32be':\n this.writeUint32(v, DataStream.BIG_ENDIAN);\n break;\n case 'int32be':\n this.writeInt32(v, DataStream.BIG_ENDIAN);\n break;\n case 'float32be':\n this.writeFloat32(v, DataStream.BIG_ENDIAN);\n break;\n case 'float64be':\n this.writeFloat64(v, DataStream.BIG_ENDIAN);\n break;\n\n case 'uint16le':\n this.writeUint16(v, DataStream.LITTLE_ENDIAN);\n break;\n case 'int16le':\n this.writeInt16(v, DataStream.LITTLE_ENDIAN);\n break;\n case 'uint32le':\n this.writeUint32(v, DataStream.LITTLE_ENDIAN);\n break;\n case 'int32le':\n this.writeInt32(v, DataStream.LITTLE_ENDIAN);\n break;\n case 'float32le':\n this.writeFloat32(v, DataStream.LITTLE_ENDIAN);\n break;\n case 'float64le':\n this.writeFloat64(v, DataStream.LITTLE_ENDIAN);\n break;\n\n case 'cstring':\n this.writeCString(v, lengthOverride);\n break;\n\n case 'string':\n this.writeString(v, charset, lengthOverride);\n break;\n\n case 'u16string':\n this.writeUCS2String(v, this.endianness, lengthOverride);\n break;\n\n case 'u16stringle':\n this.writeUCS2String(v, DataStream.LITTLE_ENDIAN, lengthOverride);\n break;\n\n case 'u16stringbe':\n this.writeUCS2String(v, DataStream.BIG_ENDIAN, lengthOverride);\n break;\n\n default:\n if (t.length == 3) {\n var ta = t[1];\n for (var i = 0; i < v.length; i++) {\n this.writeType(ta, v[i]);\n }\n break;\n } else {\n this.writeStruct(t, v);\n break;\n }\n }\n if (lengthOverride != null) {\n this.position = pos;\n this._realloc(lengthOverride);\n this.position = pos + lengthOverride;\n }\n };\n\n return DataStream;\n}));\n","/* Copyright 2016 Yury Karpovich\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/*\n MSG Reader\n */\n\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD\n define(['./DataStream'], factory);\n } else if (typeof exports === 'object') {\n // Node, CommonJS-like\n module.exports = factory(require('./DataStream'));\n } else {\n // Browser globals (root is window)\n root.MSGReader = factory(root.DataStream);\n }\n}(this, function (DataStream) {\n\n // constants\n var CONST = {\n FILE_HEADER: uInt2int([0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1]),\n MSG: {\n UNUSED_BLOCK: -1,\n END_OF_CHAIN: -2,\n\n S_BIG_BLOCK_SIZE: 0x0200,\n S_BIG_BLOCK_MARK: 9,\n\n L_BIG_BLOCK_SIZE: 0x1000,\n L_BIG_BLOCK_MARK: 12,\n\n SMALL_BLOCK_SIZE: 0x0040,\n BIG_BLOCK_MIN_DOC_SIZE: 0x1000,\n HEADER: {\n PROPERTY_START_OFFSET: 0x30,\n\n BAT_START_OFFSET: 0x4c,\n BAT_COUNT_OFFSET: 0x2C,\n\n SBAT_START_OFFSET: 0x3C,\n SBAT_COUNT_OFFSET: 0x40,\n\n XBAT_START_OFFSET: 0x44,\n XBAT_COUNT_OFFSET: 0x48\n },\n PROP: {\n NO_INDEX: -1,\n PROPERTY_SIZE: 0x0080,\n\n NAME_SIZE_OFFSET: 0x40,\n MAX_NAME_LENGTH: (/*NAME_SIZE_OFFSET*/0x40 / 2) - 1,\n TYPE_OFFSET: 0x42,\n PREVIOUS_PROPERTY_OFFSET: 0x44,\n NEXT_PROPERTY_OFFSET: 0x48,\n CHILD_PROPERTY_OFFSET: 0x4C,\n START_BLOCK_OFFSET: 0x74,\n SIZE_OFFSET: 0x78,\n TYPE_ENUM: {\n DIRECTORY: 1,\n DOCUMENT: 2,\n ROOT: 5\n }\n },\n FIELD: {\n PREFIX: {\n ATTACHMENT: '__attach_version1.0',\n RECIPIENT: '__recip_version1.0',\n DOCUMENT: '__substg1.'\n },\n // example (use fields as needed)\n NAME_MAPPING: {\n // email specific\n '0037': 'subject',\n '0c1a': 'senderName',\n '5d02': 'senderEmail',\n '1000': 'body',\n '007d': 'headers',\n // attachment specific\n '3703': 'extension',\n '3704': 'fileNameShort',\n '3707': 'fileName',\n '3712': 'pidContentId',\n // recipient specific\n '3001': 'name',\n '39fe': 'email'\n },\n CLASS_MAPPING: {\n ATTACHMENT_DATA: '3701'\n },\n TYPE_MAPPING: {\n '001e': 'string',\n '001f': 'unicode',\n '0102': 'binary'\n },\n DIR_TYPE: {\n INNER_MSG: '000d'\n }\n }\n }\n };\n\n // unit utils\n function arraysEqual(a, b) {\n if (a === b) return true;\n if (a == null || b == null) return false;\n if (a.length != b.length) return false;\n\n for (var i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n\n function uInt2int(data) {\n var result = new Array(data.length);\n for (var i = 0; i < data.length; i++) {\n result[i] = data[i] << 24 >> 24;\n }\n return result;\n }\n\n // MSG Reader implementation\n\n // check MSG file header\n function isMSGFile(ds) {\n ds.seek(0);\n return arraysEqual(CONST.FILE_HEADER, ds.readInt8Array(CONST.FILE_HEADER.length));\n }\n\n // FAT utils\n function getBlockOffsetAt(msgData, offset) {\n return (offset + 1) * msgData.bigBlockSize;\n }\n\n function getBlockAt(ds, msgData, offset) {\n var startOffset = getBlockOffsetAt(msgData, offset);\n ds.seek(startOffset);\n return ds.readInt32Array(msgData.bigBlockLength);\n }\n\n function getNextBlockInner(ds, msgData, offset, blockOffsetData) {\n var currentBlock = Math.floor(offset / msgData.bigBlockLength);\n var currentBlockIndex = offset % msgData.bigBlockLength;\n\n var startBlockOffset = blockOffsetData[currentBlock];\n\n return getBlockAt(ds, msgData, startBlockOffset)[currentBlockIndex];\n }\n\n function getNextBlock(ds, msgData, offset) {\n return getNextBlockInner(ds, msgData, offset, msgData.batData);\n }\n\n function getNextBlockSmall(ds, msgData, offset) {\n return getNextBlockInner(ds, msgData, offset, msgData.sbatData);\n }\n\n // convert binary data to dictionary\n function parseMsgData(ds) {\n var msgData = headerData(ds);\n msgData.batData = batData(ds, msgData);\n msgData.sbatData = sbatData(ds, msgData);\n if (msgData.xbatCount > 0) {\n xbatData(ds, msgData);\n }\n msgData.propertyData = propertyData(ds, msgData);\n msgData.fieldsData = fieldsData(ds, msgData);\n\n return msgData;\n }\n\n // extract header data\n function headerData(ds) {\n var headerData = {};\n\n // system data\n headerData.bigBlockSize =\n ds.readByte(/*const position*/30) == CONST.MSG.L_BIG_BLOCK_MARK ? CONST.MSG.L_BIG_BLOCK_SIZE : CONST.MSG.S_BIG_BLOCK_SIZE;\n headerData.bigBlockLength = headerData.bigBlockSize / 4;\n headerData.xBlockLength = headerData.bigBlockLength - 1;\n\n // header data\n headerData.batCount = ds.readInt(CONST.MSG.HEADER.BAT_COUNT_OFFSET);\n headerData.propertyStart = ds.readInt(CONST.MSG.HEADER.PROPERTY_START_OFFSET);\n headerData.sbatStart = ds.readInt(CONST.MSG.HEADER.SBAT_START_OFFSET);\n headerData.sbatCount = ds.readInt(CONST.MSG.HEADER.SBAT_COUNT_OFFSET);\n headerData.xbatStart = ds.readInt(CONST.MSG.HEADER.XBAT_START_OFFSET);\n headerData.xbatCount = ds.readInt(CONST.MSG.HEADER.XBAT_COUNT_OFFSET);\n\n return headerData;\n }\n\n function batCountInHeader(msgData) {\n var maxBatsInHeader = (CONST.MSG.S_BIG_BLOCK_SIZE - CONST.MSG.HEADER.BAT_START_OFFSET) / 4;\n return Math.min(msgData.batCount, maxBatsInHeader);\n }\n\n function batData(ds, msgData) {\n var result = new Array(batCountInHeader(msgData));\n ds.seek(CONST.MSG.HEADER.BAT_START_OFFSET);\n for (var i = 0; i < result.length; i++) {\n result[i] = ds.readInt32()\n }\n return result;\n }\n\n function sbatData(ds, msgData) {\n var result = [];\n var startIndex = msgData.sbatStart;\n\n for (var i = 0; i < msgData.sbatCount && startIndex != CONST.MSG.END_OF_CHAIN; i++) {\n result.push(startIndex);\n startIndex = getNextBlock(ds, msgData, startIndex);\n }\n return result;\n }\n\n function xbatData(ds, msgData) {\n var batCount = batCountInHeader(msgData);\n var batCountTotal = msgData.batCount;\n var remainingBlocks = batCountTotal - batCount;\n\n var nextBlockAt = msgData.xbatStart;\n for (var i = 0; i < msgData.xbatCount; i++) {\n var xBatBlock = getBlockAt(ds, msgData, nextBlockAt);\n nextBlockAt = xBatBlock[msgData.xBlockLength];\n\n var blocksToProcess = Math.min(remainingBlocks, msgData.xBlockLength);\n for (var j = 0; j < blocksToProcess; j++) {\n var blockStartAt = xBatBlock[j];\n if (blockStartAt == CONST.MSG.UNUSED_BLOCK || blockStartAt == CONST.MSG.END_OF_CHAIN) {\n break;\n }\n msgData.batData.push(blockStartAt);\n }\n remainingBlocks -= blocksToProcess;\n }\n }\n\n // extract property data and property hierarchy\n function propertyData(ds, msgData) {\n var props = [];\n\n var currentOffset = msgData.propertyStart;\n\n while (currentOffset != CONST.MSG.END_OF_CHAIN) {\n convertBlockToProperties(ds, msgData, currentOffset, props);\n currentOffset = getNextBlock(ds, msgData, currentOffset);\n }\n createPropertyHierarchy(props, /*property with index 0 (zero) always as root*/props[0]);\n return props;\n }\n\n function convertName(ds, offset) {\n var nameLength = ds.readShort(offset + CONST.MSG.PROP.NAME_SIZE_OFFSET);\n if (nameLength < 1) {\n return '';\n } else {\n return ds.readStringAt(offset, nameLength / 2);\n }\n }\n\n function convertProperty(ds, index, offset) {\n return {\n index: index,\n type: ds.readByte(offset + CONST.MSG.PROP.TYPE_OFFSET),\n name: convertName(ds, offset),\n // hierarchy\n previousProperty: ds.readInt(offset + CONST.MSG.PROP.PREVIOUS_PROPERTY_OFFSET),\n nextProperty: ds.readInt(offset + CONST.MSG.PROP.NEXT_PROPERTY_OFFSET),\n childProperty: ds.readInt(offset + CONST.MSG.PROP.CHILD_PROPERTY_OFFSET),\n // data offset\n startBlock: ds.readInt(offset + CONST.MSG.PROP.START_BLOCK_OFFSET),\n sizeBlock: ds.readInt(offset + CONST.MSG.PROP.SIZE_OFFSET)\n };\n }\n\n function convertBlockToProperties(ds, msgData, propertyBlockOffset, props) {\n\n var propertyCount = msgData.bigBlockSize / CONST.MSG.PROP.PROPERTY_SIZE;\n var propertyOffset = getBlockOffsetAt(msgData, propertyBlockOffset);\n\n for (var i = 0; i < propertyCount; i++) {\n var propertyType = ds.readByte(propertyOffset + CONST.MSG.PROP.TYPE_OFFSET);\n switch (propertyType) {\n case CONST.MSG.PROP.TYPE_ENUM.ROOT:\n case CONST.MSG.PROP.TYPE_ENUM.DIRECTORY:\n case CONST.MSG.PROP.TYPE_ENUM.DOCUMENT:\n props.push(convertProperty(ds, props.length, propertyOffset));\n break;\n default:\n /* unknown property types */\n props.push(null);\n }\n\n propertyOffset += CONST.MSG.PROP.PROPERTY_SIZE;\n }\n }\n\n function createPropertyHierarchy(props, nodeProperty) {\n\n if (nodeProperty.childProperty == CONST.MSG.PROP.NO_INDEX) {\n return;\n }\n nodeProperty.children = [];\n\n var children = [nodeProperty.childProperty];\n while (children.length != 0) {\n var currentIndex = children.shift();\n var current = props[currentIndex];\n if (current == null) {\n continue;\n }\n nodeProperty.children.push(currentIndex);\n\n if (current.type == CONST.MSG.PROP.TYPE_ENUM.DIRECTORY) {\n createPropertyHierarchy(props, current);\n }\n if (current.previousProperty != CONST.MSG.PROP.NO_INDEX) {\n children.push(current.previousProperty);\n }\n if (current.nextProperty != CONST.MSG.PROP.NO_INDEX) {\n children.push(current.nextProperty);\n }\n }\n }\n\n // extract real fields\n function fieldsData(ds, msgData) {\n var fields = {\n attachments: [],\n recipients: []\n };\n fieldsDataDir(ds, msgData, msgData.propertyData[0], fields);\n return fields;\n }\n\n function fieldsDataDir(ds, msgData, dirProperty, fields) {\n\n if (dirProperty.children && dirProperty.children.length > 0) {\n for (var i = 0; i < dirProperty.children.length; i++) {\n var childProperty = msgData.propertyData[dirProperty.children[i]];\n\n if (childProperty.type == CONST.MSG.PROP.TYPE_ENUM.DIRECTORY) {\n fieldsDataDirInner(ds, msgData, childProperty, fields)\n } else if (childProperty.type == CONST.MSG.PROP.TYPE_ENUM.DOCUMENT\n && childProperty.name.indexOf(CONST.MSG.FIELD.PREFIX.DOCUMENT) == 0) {\n fieldsDataDocument(ds, msgData, childProperty, fields);\n }\n }\n }\n }\n\n function fieldsDataDirInner(ds, msgData, dirProperty, fields) {\n if (dirProperty.name.indexOf(CONST.MSG.FIELD.PREFIX.ATTACHMENT) == 0) {\n\n // attachment\n var attachmentField = {};\n fields.attachments.push(attachmentField);\n fieldsDataDir(ds, msgData, dirProperty, attachmentField);\n } else if (dirProperty.name.indexOf(CONST.MSG.FIELD.PREFIX.RECIPIENT) == 0) {\n\n // recipient\n var recipientField = {};\n fields.recipients.push(recipientField);\n fieldsDataDir(ds, msgData, dirProperty, recipientField);\n } else {\n\n // other dir\n var childFieldType = getFieldType(dirProperty);\n if (childFieldType != CONST.MSG.FIELD.DIR_TYPE.INNER_MSG) {\n fieldsDataDir(ds, msgData, dirProperty, fields);\n } else {\n // MSG as attachment currently isn't supported\n fields.innerMsgContent = true;\n }\n }\n }\n\n function fieldsDataDocument(ds, msgData, documentProperty, fields) {\n var value = documentProperty.name.substring(12).toLowerCase();\n var fieldClass = value.substring(0, 4);\n var fieldType = value.substring(4, 8);\n\n var fieldName = CONST.MSG.FIELD.NAME_MAPPING[fieldClass];\n\n if (fieldName) {\n fields[fieldName] = getFieldValue(ds, msgData, documentProperty, fieldType);\n }\n if (fieldClass == CONST.MSG.FIELD.CLASS_MAPPING.ATTACHMENT_DATA) {\n\n // attachment specific info\n fields['dataId'] = documentProperty.index;\n fields['contentLength'] = documentProperty.sizeBlock;\n }\n }\n\n function getFieldType(fieldProperty) {\n var value = fieldProperty.name.substring(12).toLowerCase();\n return value.substring(4, 8);\n }\n\n // extractor structure to manage bat/sbat block types and different data types\n var extractorFieldValue = {\n sbat: {\n 'extractor': function extractDataViaSbat(ds, msgData, fieldProperty, dataTypeExtractor) {\n var chain = getChainByBlockSmall(ds, msgData, fieldProperty);\n if (chain.length == 1) {\n return readDataByBlockSmall(ds, msgData, fieldProperty.startBlock, fieldProperty.sizeBlock, dataTypeExtractor);\n } else if (chain.length > 1) {\n return readChainDataByBlockSmall(ds, msgData, fieldProperty, chain, dataTypeExtractor);\n }\n return null;\n },\n dataType: {\n 'string': function extractBatString(ds, msgData, blockStartOffset, bigBlockOffset, blockSize) {\n ds.seek(blockStartOffset + bigBlockOffset);\n return ds.readString(blockSize);\n },\n 'unicode': function extractBatUnicode(ds, msgData, blockStartOffset, bigBlockOffset, blockSize) {\n ds.seek(blockStartOffset + bigBlockOffset);\n return ds.readUCS2String(blockSize / 2);\n },\n 'binary': function extractBatBinary(ds, msgData, blockStartOffset, bigBlockOffset, blockSize) {\n ds.seek(blockStartOffset + bigBlockOffset);\n var toReadLength = Math.min(Math.min(msgData.bigBlockSize - bigBlockOffset, blockSize), CONST.MSG.SMALL_BLOCK_SIZE);\n return ds.readUint8Array(toReadLength);\n }\n }\n },\n bat: {\n 'extractor': function extractDataViaBat(ds, msgData, fieldProperty, dataTypeExtractor) {\n var offset = getBlockOffsetAt(msgData, fieldProperty.startBlock);\n ds.seek(offset);\n return dataTypeExtractor(ds, fieldProperty);\n },\n dataType: {\n 'string': function extractSbatString(ds, fieldProperty) {\n return ds.readString(fieldProperty.sizeBlock);\n },\n 'unicode': function extractSbatUnicode(ds, fieldProperty) {\n return ds.readUCS2String(fieldProperty.sizeBlock / 2);\n },\n 'binary': function extractSbatBinary(ds, fieldProperty) {\n return ds.readUint8Array(fieldProperty.sizeBlock);\n }\n }\n }\n };\n\n function readDataByBlockSmall(ds, msgData, startBlock, blockSize, dataTypeExtractor) {\n var byteOffset = startBlock * CONST.MSG.SMALL_BLOCK_SIZE;\n var bigBlockNumber = Math.floor(byteOffset / msgData.bigBlockSize);\n var bigBlockOffset = byteOffset % msgData.bigBlockSize;\n\n var rootProp = msgData.propertyData[0];\n\n var nextBlock = rootProp.startBlock;\n for (var i = 0; i < bigBlockNumber; i++) {\n nextBlock = getNextBlock(ds, msgData, nextBlock);\n }\n var blockStartOffset = getBlockOffsetAt(msgData, nextBlock);\n\n return dataTypeExtractor(ds, msgData, blockStartOffset, bigBlockOffset, blockSize);\n }\n\n function readChainDataByBlockSmall(ds, msgData, fieldProperty, chain, dataTypeExtractor) {\n var resultData = new Int8Array(fieldProperty.sizeBlock);\n\n for (var i = 0, idx = 0; i < chain.length; i++) {\n var data = readDataByBlockSmall(ds, msgData, chain[i], CONST.MSG.SMALL_BLOCK_SIZE, extractorFieldValue.sbat.dataType.binary);\n for (var j = 0; j < data.length; j++) {\n resultData[idx++] = data[j];\n }\n }\n var localDs = new DataStream(resultData, 0, DataStream.LITTLE_ENDIAN);\n return dataTypeExtractor(localDs, msgData, 0, 0, fieldProperty.sizeBlock);\n }\n\n function getChainByBlockSmall(ds, msgData, fieldProperty) {\n var blockChain = [];\n var nextBlockSmall = fieldProperty.startBlock;\n while (nextBlockSmall != CONST.MSG.END_OF_CHAIN) {\n blockChain.push(nextBlockSmall);\n nextBlockSmall = getNextBlockSmall(ds, msgData, nextBlockSmall);\n }\n return blockChain;\n }\n\n function getFieldValue(ds, msgData, fieldProperty, type) {\n var value = null;\n\n var valueExtractor =\n fieldProperty.sizeBlock < CONST.MSG.BIG_BLOCK_MIN_DOC_SIZE ? extractorFieldValue.sbat : extractorFieldValue.bat;\n var dataTypeExtractor = valueExtractor.dataType[CONST.MSG.FIELD.TYPE_MAPPING[type]];\n\n if (dataTypeExtractor) {\n value = valueExtractor.extractor(ds, msgData, fieldProperty, dataTypeExtractor);\n }\n return value;\n }\n\n // MSG Reader\n var MSGReader = function (arrayBuffer) {\n this.ds = new DataStream(arrayBuffer, 0, DataStream.LITTLE_ENDIAN);\n };\n\n MSGReader.prototype = {\n /**\n Converts bytes to fields information\n\n @return {Object} The fields data for MSG file\n */\n getFileData: function () {\n if (!isMSGFile(this.ds)) {\n return {error: 'Unsupported file type!'};\n }\n if (this.fileData == null) {\n this.fileData = parseMsgData(this.ds);\n }\n return this.fileData.fieldsData;\n },\n /**\n Reads an attachment content by key/ID\n\n @return {Object} The attachment for specific attachment key\n */\n getAttachment: function (attach) {\n var attachData = typeof attach === 'number' ? this.fileData.fieldsData.attachments[attach] : attach;\n var fieldProperty = this.fileData.propertyData[attachData.dataId];\n var fieldData = getFieldValue(this.ds, this.fileData, fieldProperty, getFieldType(fieldProperty));\n\n return {fileName: attachData.fileName, content: fieldData};\n }\n };\n\n return MSGReader;\n\n}));","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DataStream = require(\"./lib/DataStream\");\nexports.MSGReader = require(\"./lib/msg.reader\");\n","var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nimport React, { useEffect, useState } from \"react\";\nimport styled from \"styled-components\";\nimport { MSGReader } from \"wl-msg-reader\";\nimport { arrayBufferFileLoader } from \"../../utils/fileLoaders\";\nvar MSGRenderer = function (_a) {\n var currentDocument = _a.mainState.currentDocument;\n var _b = useState(), fileData = _b[0], setFileData = _b[1];\n useEffect(function () {\n if (!currentDocument || !currentDocument.fileData)\n return;\n var _fd = new MSGReader(currentDocument.fileData).getFileData();\n setFileData(_fd);\n }, [currentDocument === null || currentDocument === void 0 ? void 0 : currentDocument.fileData]);\n useEffect(function () {\n if (!fileData || fileData.hasOwnProperty(\"error\"))\n return;\n var iframeCont = document.getElementById(\"msg-body\");\n var iframe = (iframeCont === null || iframeCont === void 0 ? void 0 : iframeCont.contentWindow) && iframeCont.contentWindow;\n if (!iframe)\n return;\n var iframeDoc = iframe.document;\n var body = fileData.body.replace(/(\\r\\n|\\n|\\r)/gm, \"<br />\");\n iframeDoc.open();\n iframeDoc.write(\"\".concat(body));\n iframeDoc.close();\n }, [fileData]);\n if (!fileData || fileData.hasOwnProperty(\"error\")) {\n return React.createElement(\"span\", null, fileData === null || fileData === void 0 ? void 0 : fileData.error);\n }\n var _c = fileData, recipients = _c.recipients, subject = _c.subject, senderEmail = _c.senderEmail, senderName = _c.senderName;\n return (React.createElement(Container, { id: \"msg-renderer\" },\n React.createElement(\"h2\", { id: \"msg-subject-title\", style: { marginBottom: 0 } }, subject),\n React.createElement(Sender, { name: senderName, email: senderEmail }),\n React.createElement(RecipientContainer, { id: \"msg-recipient\" },\n React.createElement(\"h3\", { id: \"msg-recipient-title\" }, \"Recipients\"),\n React.createElement(\"ul\", { id: \"msg-recipient-ul\" }, recipients.map(function (r, i) { return (React.createElement(\"li\", { key: i, id: \"msg-recipient-li\" },\n React.createElement(\"span\", { id: \"msg-recipient-name\" }, r.name),\n r.hasOwnProperty(\"email\") && (React.createElement(\"span\", { id: \"msg-recipient-email\" },\n \" - \",\n r.email)))); }))),\n React.createElement(BodyIFrame, { id: \"msg-body\", sandbox: \"allow-same-origin\" })));\n};\nvar Sender = function (_a) {\n var name = _a.name, email = _a.email;\n if (!name && !email)\n return null;\n return (React.createElement(SenderContainer, { id: \"msg-sender\" },\n React.createElement(\"h3\", { id: \"msg-sender-title\" }, \"Sender\"),\n name !== undefined && React.createElement(\"div\", { id: \"msg-sender-name\" }, name),\n email !== undefined && React.createElement(\"div\", { id: \"msg-sender-email\" }, email)));\n};\nexport default MSGRenderer;\nMSGRenderer.fileTypes = [\"msg\", \"application/vnd.ms-outlook\"];\nMSGRenderer.weight = 0;\nMSGRenderer.fileLoader = arrayBufferFileLoader;\nvar Container = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n display: flex;\\n flex-direction: column;\\n width: 100%;\\n padding: 0 30px;\\n\"], [\"\\n display: flex;\\n flex-direction: column;\\n width: 100%;\\n padding: 0 30px;\\n\"])));\nvar SenderContainer = styled.div(templateObject_2 || (templateObject_2 = __makeTemplateObject([\"\\n padding: 0 15px 15px 15px;\\n margin-top: 20px;\\n border: 1px solid \", \";\\n\"], [\"\\n padding: 0 15px 15px 15px;\\n margin-top: 20px;\\n border: 1px solid \", \";\\n\"])), function (props) { return props.theme.secondary; });\nvar RecipientContainer = styled.div(templateObject_3 || (templateObject_3 = __makeTemplateObject([\"\\n padding: 0 15px;\\n margin-top: 20px;\\n border: 1px solid \", \";\\n\"], [\"\\n padding: 0 15px;\\n margin-top: 20px;\\n border: 1px solid \", \";\\n\"])), function (props) { return props.theme.secondary; });\nvar BodyIFrame = styled.iframe(templateObject_4 || (templateObject_4 = __makeTemplateObject([\"\\n height: 100%;\\n padding: 15px;\\n margin: 20px 0 20px 0;\\n border: 1px solid \", \";\\n\"], [\"\\n height: 100%;\\n padding: 15px;\\n margin: 20px 0 20px 0;\\n border: 1px solid \", \";\\n\"])), function (props) { return props.theme.secondary; });\nvar templateObject_1, templateObject_2, templateObject_3, templateObject_4;\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 constructor() {\n if (this.constructor === BaseCanvasFactory) {\n unreachable(\"Cannot initialize BaseCanvasFactory.\");\n }\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 };\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 } = {}) {\n super();\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 editToolbar.addEventListener(\"contextmenu\", noContextMenu);\n editToolbar.addEventListener(\"pointerdown\", EditorToolbar.#pointerDown);\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 element.addEventListener(\"focusin\", this.#focusIn.bind(this), {\n capture: true\n });\n element.addEventListener(\"focusout\", this.#focusOut.bind(this), {\n capture: true\n });\n element.addEventListener(\"contextmenu\", noContextMenu);\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 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 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 button.addEventListener(\"contextmenu\", noContextMenu);\n button.addEventListener(\"click\", () => {\n this.#uiManager.highlightSelection(\"floating_button\");\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 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 #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 #boundSelectionChange = this.#selectionChange.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.#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.#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.#removeKeyboardManager();\n this.#removeFocusManager();\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 this.#removeSelectionListener();\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 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 window.addEventListener(\"blur\", pointerup);\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.#boundSelectionChange);\n }\n #removeSelectionListener() {\n document.removeEventListener(\"selectionchange\", this.#boundSelectionChange);\n }\n #addFocusManager() {\n window.addEventListener(\"focus\", this.#boundFocus);\n window.addEventListener(\"blur\", this.#boundBlur);\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 });\n lastActiveElement.focus();\n }\n #addKeyboardManager() {\n window.addEventListener(\"keydown\", this.#boundKeydown);\n window.addEventListener(\"keyup\", this.#boundKeyup);\n }\n #removeKeyboardManager() {\n window.removeEventListener(\"keydown\", this.#boundKeydown);\n window.removeEventListener(\"keyup\", this.#boundKeyup);\n }\n #addCopyPasteListeners() {\n document.addEventListener(\"copy\", this.#boundCopy);\n document.addEventListener(\"cut\", this.#boundCut);\n document.addEventListener(\"paste\", this.#boundPaste);\n }\n #removeCopyPasteListeners() {\n document.removeEventListener(\"copy\", this.#boundCopy);\n document.removeEventListener(\"cut\", this.#boundCut);\n document.removeEventListener(\"paste\", this.#boundPaste);\n }\n addEditListeners() {\n this.#addKeyboardManager();\n this.#addCopyPasteListeners();\n }\n removeEditListeners() {\n this.#removeKeyboardManager();\n this.#removeCopyPasteListeners();\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 altText.addEventListener(\"contextmenu\", noContextMenu);\n altText.addEventListener(\"pointerdown\", event => event.stopPropagation());\n const onClick = event => {\n event.preventDefault();\n this.#editor._uiManager.editAltText(this.#editor);\n };\n altText.addEventListener(\"click\", onClick, {\n capture: true\n });\n altText.addEventListener(\"keydown\", event => {\n if (event.target === altText && event.key === \"Enter\") {\n this.#altTextWasFromKeyBoard = true;\n onClick(event);\n }\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 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 button.addEventListener(\"mouseleave\", () => {\n if (this.#altTextTooltipTimeout) {\n clearTimeout(this.#altTextTooltipTimeout);\n this.#altTextTooltipTimeout = null;\n }\n this.#altTextTooltip?.classList.remove(\"show\");\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 #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 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 div.addEventListener(\"contextmenu\", noContextMenu);\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 pointerMoveOptions = {\n passive: true,\n capture: true\n };\n this.parent.togglePointerEvents(false);\n window.addEventListener(\"pointermove\", boundResizerPointermove, pointerMoveOptions);\n window.addEventListener(\"contextmenu\", noContextMenu);\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 window.addEventListener(\"blur\", pointerUpCallback);\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 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 this.div.addEventListener(\"focusin\", this.#boundFocusin);\n this.div.addEventListener(\"focusout\", this.#boundFocusout);\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 if (isSelected) {\n this.div.classList.add(\"moving\");\n pointerMoveOptions = {\n passive: true,\n capture: true\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 window.addEventListener(\"blur\", pointerUpCallback);\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 this.div?.addEventListener(\"focusin\", this.#boundFocusin);\n this.div?.addEventListener(\"focusout\", this.#boundFocusout);\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 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 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 div.addEventListener(\"blur\", boundResizerBlur);\n div.addEventListener(\"focus\", this.#resizerFocus.bind(this, name));\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 #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 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}${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 (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})`;\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 });\n this.#canvasContexts.set(lang, canvasContext);\n }\n return canvasContext;\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 if (typeof src !== \"object\") {\n throw new Error(\"Invalid parameter in getDocument, need parameter object.\");\n }\n if (!src.url && !src.data && !src.range) {\n throw new Error(\"Invalid parameter object: need either .data, .range or .url\");\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 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 });\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.3.136\",\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 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 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._readyCapability.resolve();\n this._messageHandler.send(\"configure\", {\n verbosity: this.verbosity\n });\n }\n _initialize() {\n if (!PDFWorkerUtil.isWorkerDisabled && !PDFWorker.#mainThreadWorkerMessageHandler) {\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 worker.removeEventListener(\"error\", onWorkerError);\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 onWorkerError = () => {\n if (!this._webWorker) {\n terminateEarly();\n }\n };\n worker.addEventListener(\"error\", onWorkerError);\n messageHandler.on(\"test\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n if (this.destroyed) {\n terminateEarly();\n return;\n }\n if (data) {\n this._messageHandler = messageHandler;\n this._port = worker;\n this._webWorker = worker;\n this._readyCapability.resolve();\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity\n });\n } else {\n this._setupFakeWorker();\n messageHandler.destroy();\n worker.terminate();\n }\n });\n messageHandler.on(\"ready\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\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 }\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 const messageHandler = new MessageHandler(id, id + \"_worker\", port);\n this._messageHandler = messageHandler;\n this._readyCapability.resolve();\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity\n });\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 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 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 window.requestAnimationFrame(() => {\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.3.136\";\nconst build = \"0cec64437\";\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;\n if (quadPoints.length === 1) {\n const [, {\n x: trX,\n y: trY\n }, {\n x: blX,\n y: blY\n }] = quadPoints[0];\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 (const [, {\n x: trX,\n y: trY\n }, {\n x: blX,\n y: blY\n }] of quadPoints) {\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 data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n let points = [];\n for (const coordinate of data.vertices) {\n const x = coordinate.x - data.rect[0];\n const y = data.rect[3] - coordinate.y;\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\", data.borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"transparent\");\n svg.append(polyline);\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.#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 data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n for (const inkList of data.inkLists) {\n let points = [];\n for (const coordinate of inkList) {\n const x = coordinate.x - data.rect[0];\n const y = data.rect[3] - coordinate.y;\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\", data.borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"transparent\");\n if (!data.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 this.editorDiv.addEventListener(\"keydown\", this.#boundEditorDivKeydown);\n this.editorDiv.addEventListener(\"focus\", this.#boundEditorDivFocus);\n this.editorDiv.addEventListener(\"blur\", this.#boundEditorDivBlur);\n this.editorDiv.addEventListener(\"input\", this.#boundEditorDivInput);\n this.editorDiv.addEventListener(\"paste\", this.#boundEditorDivPaste);\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 button.addEventListener(\"click\", this.#openDropdown.bind(this));\n button.addEventListener(\"keydown\", this.#boundKeyDown);\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 div.addEventListener(\"contextmenu\", noContextMenu);\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 div.append(button);\n }\n div.addEventListener(\"keydown\", this.#boundKeyDown);\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 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 }\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 Array(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 pointerDownOptions = {\n capture: true,\n passive: false\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 window.addEventListener(\"pointerup\", pointerUpCallback);\n window.addEventListener(\"pointerdown\", pointerDown, pointerDownOptions);\n window.addEventListener(\"contextmenu\", noContextMenu);\n textLayer.addEventListener(\"pointermove\", pointerMove);\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 }\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 this.canvas.addEventListener(\"contextmenu\", noContextMenu);\n this.canvas.addEventListener(\"pointerleave\", this.#boundCanvasPointerleave);\n this.canvas.addEventListener(\"pointermove\", this.#boundCanvasPointermove);\n this.canvas.addEventListener(\"pointerup\", this.#boundCanvasPointerup);\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 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 }\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 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 input.addEventListener(\"cancel\", () => {\n this.remove();\n resolve();\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 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 }\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 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 });\n event.preventDefault();\n }\n }\n enableClick() {\n if (this.#boundPointerdown) {\n return;\n }\n this.#boundPointerdown = this.pointerdown.bind(this);\n this.#boundPointerup = this.pointerup.bind(this);\n this.div.addEventListener(\"pointerdown\", this.#boundPointerdown);\n this.div.addEventListener(\"pointerup\", this.#boundPointerup);\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 });\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 #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.3.136\";\nconst pdfjsBuild = \"0cec64437\";\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';\nexport default createContext(null);\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 // eslint-disable-next-line @typescript-eslint/class-literal-property-style\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 && 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 // eslint-disable-next-line no-alert\n const password = prompt('Enter the password to open this PDF file.');\n callback(password);\n break;\n }\n case PasswordResponses.INCORRECT_PASSWORD: {\n // eslint-disable-next-line no-alert\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 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 useEffect(() => {\n if (typeof source === 'undefined') {\n return;\n }\n if (source === false) {\n onSourceError();\n return;\n }\n onSourceSuccess();\n }, \n // Ommitted callbacks so they are not called every time they change\n // eslint-disable-next-line react-hooks/exhaustive-deps\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 function resetDocument() {\n pdfDispatch({ type: 'RESET' });\n }\n useEffect(resetDocument, [pdfDispatch, source]);\n 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 }\n useEffect(loadDocument, \n // Ommitted callbacks so they are not called every time they change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [options, pdfDispatch, source]);\n useEffect(() => {\n if (typeof pdf === 'undefined') {\n return;\n }\n if (pdf === false) {\n onLoadError();\n return;\n }\n onLoadSuccess();\n }, \n // Ommitted callbacks so they are not called every time they change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [pdf]);\n function setupLinkService() {\n linkService.current.setViewer(viewer.current);\n linkService.current.setExternalLinkRel(externalLinkRel);\n linkService.current.setExternalLinkTarget(externalLinkTarget);\n }\n useEffect(setupLinkService, [externalLinkRel, externalLinkTarget]);\n function registerPage(pageIndex, ref) {\n pages.current[pageIndex] = ref;\n }\n function unregisterPage(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, renderMode, rotate]);\n const eventProps = useMemo(() => makeEventProps(otherProps, () => pdf), [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';\nexport default createContext(null);\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 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 // eslint-disable-next-line react/no-array-index-key\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 function resetAnnotations() {\n structTreeDispatch({ type: 'RESET' });\n }\n useEffect(resetAnnotations, [structTreeDispatch, page]);\n 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 }\n useEffect(loadStructTree, [customTextRenderer, page, structTreeDispatch]);\n useEffect(() => {\n if (structTree === undefined) {\n return;\n }\n if (structTree === false) {\n onLoadError();\n return;\n }\n onLoadSuccess();\n }, \n // Ommitted callbacks so they are not called every time they change\n // eslint-disable-next-line react-hooks/exhaustive-deps\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 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 }\n useEffect(drawPageOnCanvas, \n // Ommitted callbacks so they are not called every time they change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n canvasBackground,\n canvasElement,\n devicePixelRatio,\n page,\n renderForms,\n renderViewport,\n viewport,\n ]);\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 }, [canvasElement]);\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(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 function resetTextContent() {\n textContentDispatch({ type: 'RESET' });\n }\n useEffect(resetTextContent, [page, textContentDispatch]);\n 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 }\n useEffect(loadTextContent, [page, textContentDispatch]);\n useEffect(() => {\n if (textContent === undefined) {\n return;\n }\n if (textContent === false) {\n onLoadError();\n return;\n }\n onLoadSuccess();\n }, \n // Ommitted callbacks so they are not called every time they change\n // eslint-disable-next-line react-hooks/exhaustive-deps\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 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 useLayoutEffect(renderTextLayer, [\n customTextRenderer,\n onRenderError,\n onRenderSuccess,\n page,\n pageIndex,\n pageNumber,\n textContent,\n viewport,\n ]);\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n _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(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 function resetAnnotations() {\n annotationsDispatch({ type: 'RESET' });\n }\n useEffect(resetAnnotations, [annotationsDispatch, page]);\n 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 }\n useEffect(loadAnnotations, [annotationsDispatch, page, renderForms]);\n useEffect(() => {\n if (annotations === undefined) {\n return;\n }\n if (annotations === false) {\n onLoadError();\n return;\n }\n onLoadSuccess();\n }, \n // Ommitted callbacks so they are not called every time they change\n // eslint-disable-next-line react-hooks/exhaustive-deps\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 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 }\n useEffect(renderAnnotationLayer, \n // Ommitted callbacks so they are not called every time they change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [annotations, imageResourcesPath, linkService, page, 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 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 }\n useEffect(hook, [_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 function resetPage() {\n pageDispatch({ type: 'RESET' });\n }\n useEffect(resetPage, [pageDispatch, pdf, pageIndex]);\n 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 }\n useEffect(loadPage, [pageDispatch, pdf, pageIndex, pageNumber, registerPage]);\n useEffect(() => {\n if (page === undefined) {\n return;\n }\n if (page === false) {\n onLoadError();\n return;\n }\n onLoadSuccess();\n }, \n // Ommitted callbacks so they are not called every time they change\n // eslint-disable-next-line react-hooks/exhaustive-deps\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), [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 var getMetaURL = function () { return import.meta.url; };\n","// SET_ZOOM_LEVEL\nexport var SET_ZOOM_LEVEL = \"SET_ZOOM_LEVEL\";\nexport var setZoomLevel = function (value) { return ({\n type: SET_ZOOM_LEVEL,\n value: value,\n}); };\n// SET_PAGINATED\nexport var SET_PDF_PAGINATED = \"SET_PDF_PAGINATED\";\nexport var setPDFPaginated = function (value) { return ({\n type: SET_PDF_PAGINATED,\n value: value,\n}); };\n// SET_NUM_PAGES\nexport var SET_NUM_PAGES = \"SET_NUM_PAGES\";\nexport var setNumPages = function (value) { return ({\n type: SET_NUM_PAGES,\n value: value,\n}); };\n// SET_CURRENT_PAGE\nexport var SET_CURRENT_PAGE = \"SET_CURRENT_PAGE\";\nexport var setCurrentPage = function (value) { return ({\n type: SET_CURRENT_PAGE,\n value: value,\n}); };\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(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))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { SET_CURRENT_PAGE, SET_NUM_PAGES, SET_PDF_PAGINATED, SET_ZOOM_LEVEL, } from \"./actions\";\nexport var initialPDFState = {\n zoomLevel: 1,\n paginated: true,\n numPages: 0,\n currentPage: 1,\n};\nexport var reducer = function (state, action) {\n if (state === void 0) { state = initialPDFState; }\n switch (action.type) {\n case SET_ZOOM_LEVEL: {\n var value = action.value;\n return __assign(__assign({}, state), { zoomLevel: value });\n }\n case SET_PDF_PAGINATED: {\n var value = action.value;\n return __assign(__assign({}, state), { paginated: value });\n }\n case SET_NUM_PAGES: {\n var value = action.value;\n return __assign(__assign({}, state), { numPages: value });\n }\n case SET_CURRENT_PAGE: {\n var value = action.value;\n return __assign(__assign({}, state), { currentPage: value });\n }\n default:\n return state;\n }\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(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))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport React, { createContext, useReducer } from \"react\";\nimport { initialPDFState, reducer, } from \"./reducer\";\nvar PDFContext = createContext({ state: initialPDFState, dispatch: function () { return null; } });\nvar PDFProvider = function (_a) {\n var children = _a.children, mainState = _a.mainState;\n var _b = useReducer(reducer, __assign(__assign({}, initialPDFState), { mainState: mainState })), state = _b[0], dispatch = _b[1];\n return (React.createElement(PDFContext.Provider, { value: { state: state, dispatch: dispatch } }, children));\n};\nexport { PDFContext, PDFProvider };\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(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))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport React from \"react\";\nexport var PrevPDFNavIcon = function (props) {\n return React.createElement(PDFNavArrow, __assign({}, props, { reverse: true }));\n};\nexport var NextPDFNavIcon = function (props) {\n return React.createElement(PDFNavArrow, __assign({}, props));\n};\nvar PDFNavArrow = function (props) {\n var color = props.color, size = props.size, reverse = props.reverse;\n return (React.createElement(\"svg\", { width: size || \"100%\", height: size || \"100%\", style: { transform: \"\".concat(reverse ? \"rotate(180deg)\" : \"\") }, viewBox: \"0 0 12 12\", version: \"1.1\" },\n React.createElement(\"g\", { id: \"Icons\", stroke: \"none\", strokeWidth: \"1\", fill: \"none\", fillRule: \"evenodd\" },\n React.createElement(\"g\", { id: \"Rounded\", transform: \"translate(-548.000000, -1000.000000)\" },\n React.createElement(\"g\", { id: \"AV\", transform: \"translate(100.000000, 852.000000)\" },\n React.createElement(\"g\", { id: \"-Round-/-AV-/-skip_next\", transform: \"translate(442.000000, 142.000000)\" },\n React.createElement(\"g\", null,\n React.createElement(\"rect\", { id: \"Rectangle-Copy-52\", x: \"0\", y: \"0\", width: \"24\", height: \"24\" }),\n React.createElement(\"path\", { 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\", id: \"icon_color\", fill: color || \"#aaa\" }))))))));\n};\nexport var DownloadPDFIcon = function (props) {\n var color = props.color, size = props.size, reverse = props.reverse;\n return (React.createElement(\"svg\", { width: size || \"100%\", height: size || \"100%\", style: { transform: \"\".concat(reverse ? \"rotate(180deg)\" : \"\") }, id: \"Layer_1\", viewBox: \"0 0 24 24\" },\n React.createElement(\"path\", { 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\", fill: color || \"#aaa\" }),\n React.createElement(\"polygon\", { 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\", fill: color || \"#aaa\" })));\n};\nexport var ZoomInPDFIcon = function (props) {\n return React.createElement(ZoomPDFIcon, __assign({}, props));\n};\nexport var ZoomOutPDFIcon = function (props) {\n return React.createElement(ZoomPDFIcon, __assign({}, props, { reverse: true }));\n};\nvar ZoomPDFIcon = function (props) {\n var color = props.color, size = props.size, reverse = props.reverse;\n return (React.createElement(\"svg\", { width: size || \"100%\", height: size || \"100%\", viewBox: \"0 0 32 32\", version: \"1.1\" },\n React.createElement(\"g\", { id: \"Page-1\", stroke: \"none\", strokeWidth: \"1\", fill: \"none\", fillRule: \"evenodd\" },\n React.createElement(\"g\", { id: \"search-plus-icon\", fill: color || \"#aaa\" },\n React.createElement(\"path\", { id: \"search-plus\", d: 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};\nexport var ResetZoomPDFIcon = function (props) {\n var color = props.color, size = props.size;\n return (React.createElement(\"svg\", { width: size || \"100%\", height: size || \"100%\", viewBox: \"0 0 24 24\" },\n React.createElement(\"path\", { fill: color || \"#aaa\", 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};\nexport var TogglePaginationPDFIcon = function (props) {\n var color = props.color, size = props.size, reverse = props.reverse;\n return (React.createElement(\"svg\", { width: size || \"100%\", height: size || \"100%\", style: { transform: \"\".concat(reverse ? \"rotate(90deg)\" : \"\") }, version: \"1.1\", id: \"Scroll_1\", viewBox: \"0 0 297 297\", xmlSpace: \"preserve\" },\n React.createElement(\"path\", { fill: color || \"#aaa\", 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","var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nimport React, { useContext } from \"react\";\nimport styled from \"styled-components\";\nimport { Button } from \"../../../components/common\";\nimport { PDFContext } from \"../state\";\nimport { setCurrentPage } from \"../state/actions\";\nimport { NextPDFNavIcon, PrevPDFNavIcon } from \"./icons\";\nvar PDFPagination = function () {\n var _a = useContext(PDFContext), _b = _a.state, currentPage = _b.currentPage, numPages = _b.numPages, dispatch = _a.dispatch;\n return (React.createElement(Container, { id: \"pdf-pagination\" },\n React.createElement(PageNavButtonLeft, { id: \"pdf-pagination-prev\", onClick: function () { return dispatch(setCurrentPage(currentPage - 1)); }, disabled: currentPage === 1 },\n React.createElement(PrevPDFNavIcon, { color: \"#000\", size: \"50%\" })),\n React.createElement(PageTag, { id: \"pdf-pagination-info\" },\n \"Page \",\n currentPage,\n \"/\",\n numPages),\n React.createElement(PageNavButtonRight, { id: \"pdf-pagination-next\", onClick: function () { return dispatch(setCurrentPage(currentPage + 1)); }, disabled: currentPage >= numPages },\n React.createElement(NextPDFNavIcon, { color: \"#000\", size: \"50%\" }))));\n};\nexport default PDFPagination;\nvar Container = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n display: flex;\\n align-items: center;\\n\"], [\"\\n display: flex;\\n align-items: center;\\n\"])));\nvar PageNavButtonLeft = styled(Button)(templateObject_2 || (templateObject_2 = __makeTemplateObject([\"\\n width: 30px;\\n height: 30px;\\n margin: 0 5px;\\n\\n @media (max-width: 768px) {\\n width: 25px;\\n height: 25px;\\n }\\n\"], [\"\\n width: 30px;\\n height: 30px;\\n margin: 0 5px;\\n\\n @media (max-width: 768px) {\\n width: 25px;\\n height: 25px;\\n }\\n\"])));\nvar PageNavButtonRight = styled(PageNavButtonLeft)(templateObject_3 || (templateObject_3 = __makeTemplateObject([\"\\n margin: 0 20px 0 5px;\\n\"], [\"\\n margin: 0 20px 0 5px;\\n\"])));\nvar PageTag = styled.div(templateObject_4 || (templateObject_4 = __makeTemplateObject([\"\\n color: \", \";\\n font-size: 14px;\\n text-align: left;\\n\\n @media (max-width: 768px) {\\n font-size: 10px;\\n }\\n\"], [\"\\n color: \", \";\\n font-size: 14px;\\n text-align: left;\\n\\n @media (max-width: 768px) {\\n font-size: 10px;\\n }\\n\"])), function (props) { return props.theme.text_primary; });\nvar templateObject_1, templateObject_2, templateObject_3, templateObject_4;\n","var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nimport React, { useContext } from \"react\";\nimport styled from \"styled-components\";\nimport { Button, LinkButton } from \"../../../components/common\";\nimport { PDFContext } from \"../state\";\nimport { setPDFPaginated, setZoomLevel } from \"../state/actions\";\nimport { initialPDFState } from \"../state/reducer\";\nimport { DownloadPDFIcon, ResetZoomPDFIcon, TogglePaginationPDFIcon, ZoomInPDFIcon, ZoomOutPDFIcon, } from \"./icons\";\nimport PDFPagination from \"./PDFPagination\";\nvar PDFControls = function () {\n var _a = useContext(PDFContext), _b = _a.state, mainState = _b.mainState, paginated = _b.paginated, zoomLevel = _b.zoomLevel, numPages = _b.numPages, dispatch = _a.dispatch;\n var currentDocument = (mainState === null || mainState === void 0 ? void 0 : mainState.currentDocument) || null;\n return (React.createElement(Container, { id: \"pdf-controls\" },\n paginated && numPages > 1 && React.createElement(PDFPagination, null),\n (currentDocument === null || currentDocument === void 0 ? void 0 : currentDocument.fileData) && (React.createElement(DownloadButton, { id: \"pdf-download\", href: currentDocument === null || currentDocument === void 0 ? void 0 : currentDocument.fileData, download: currentDocument === null || currentDocument === void 0 ? void 0 : currentDocument.uri },\n React.createElement(DownloadPDFIcon, { color: \"#000\", size: \"75%\" }))),\n React.createElement(ControlButton, { id: \"pdf-zoom-out\", onMouseDown: function () { return dispatch(setZoomLevel(zoomLevel - 0.1)); } },\n React.createElement(ZoomOutPDFIcon, { color: \"#000\", size: \"80%\" })),\n React.createElement(ControlButton, { id: \"pdf-zoom-in\", onMouseDown: function () { return dispatch(setZoomLevel(zoomLevel + 0.1)); } },\n React.createElement(ZoomInPDFIcon, { color: \"#000\", size: \"80%\" })),\n React.createElement(ControlButton, { id: \"pdf-zoom-reset\", onMouseDown: function () { return dispatch(setZoomLevel(initialPDFState.zoomLevel)); }, disabled: zoomLevel === initialPDFState.zoomLevel },\n React.createElement(ResetZoomPDFIcon, { color: \"#000\", size: \"70%\" })),\n numPages > 1 && (React.createElement(ControlButton, { id: \"pdf-toggle-pagination\", onMouseDown: function () { return dispatch(setPDFPaginated(!paginated)); } },\n React.createElement(TogglePaginationPDFIcon, { color: \"#000\", size: \"70%\", reverse: paginated })))));\n};\nexport default PDFControls;\nvar Container = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\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: \", \";\\n box-shadow: 0px 2px 3px #00000033;\\n\\n @media (max-width: 768px) {\\n padding: 6px;\\n }\\n\"], [\"\\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: \", \";\\n box-shadow: 0px 2px 3px #00000033;\\n\\n @media (max-width: 768px) {\\n padding: 6px;\\n }\\n\"])), function (props) { return props.theme.tertiary; });\nvar ControlButton = styled(Button)(templateObject_2 || (templateObject_2 = __makeTemplateObject([\"\\n width: 30px;\\n height: 30px;\\n @media (max-width: 768px) {\\n width: 25px;\\n height: 25px;\\n }\\n\"], [\"\\n width: 30px;\\n height: 30px;\\n @media (max-width: 768px) {\\n width: 25px;\\n height: 25px;\\n }\\n\"])));\nvar DownloadButton = styled(LinkButton)(templateObject_3 || (templateObject_3 = __makeTemplateObject([\"\\n width: 30px;\\n height: 30px;\\n @media (max-width: 768px) {\\n width: 25px;\\n height: 25px;\\n }\\n\"], [\"\\n width: 30px;\\n height: 30px;\\n @media (max-width: 768px) {\\n width: 25px;\\n height: 25px;\\n }\\n\"])));\nvar templateObject_1, templateObject_2, templateObject_3;\n","var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nimport React, { useContext } from \"react\";\nimport { Page } from \"react-pdf\";\nimport styled from \"styled-components\";\nimport { PDFContext } from \"../../state\";\nvar PDFSinglePage = function (props) {\n var pageNum = props.pageNum;\n var _a = useContext(PDFContext).state, mainState = _a.mainState, paginated = _a.paginated, zoomLevel = _a.zoomLevel, numPages = _a.numPages, currentPage = _a.currentPage;\n var rendererRect = (mainState === null || mainState === void 0 ? void 0 : mainState.rendererRect) || null;\n var _pageNum = pageNum || currentPage;\n return (React.createElement(PageWrapper, { id: \"pdf-page-wrapper\", last: _pageNum >= numPages },\n !paginated && (React.createElement(PageTag, { id: \"pdf-page-info\" },\n \"Page \",\n _pageNum,\n \"/\",\n numPages)),\n React.createElement(Page, { pageNumber: _pageNum || currentPage, scale: zoomLevel, height: ((rendererRect === null || rendererRect === void 0 ? void 0 : rendererRect.height) || 100) - 100, width: ((rendererRect === null || rendererRect === void 0 ? void 0 : rendererRect.width) || 100) - 100 })));\n};\nexport default PDFSinglePage;\nvar PageWrapper = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n margin: 20px 0;\\n\"], [\"\\n margin: 20px 0;\\n\"])));\nvar PageTag = styled.div(templateObject_2 || (templateObject_2 = __makeTemplateObject([\"\\n padding: 0 0 10px 10px;\\n color: \", \";\\n font-size: 14px;\\n text-align: left;\\n\\n @media (max-width: 768px) {\\n font-size: 10px;\\n }\\n\"], [\"\\n padding: 0 0 10px 10px;\\n color: \", \";\\n font-size: 14px;\\n text-align: left;\\n\\n @media (max-width: 768px) {\\n font-size: 10px;\\n }\\n\"])), function (props) { return props.theme.text_tertiary; });\nvar templateObject_1, templateObject_2;\n","import React, { useContext } from \"react\";\nimport { PDFContext } from \"../../state\";\nimport PDFSinglePage from \"./PDFSinglePage\";\nexport var PDFAllPages = function (props) {\n var numPages = useContext(PDFContext).state.numPages;\n var PagesArray = [];\n for (var i = 0; i < numPages; i++) {\n PagesArray.push(React.createElement(PDFSinglePage, { key: i + 1, pageNum: i + 1 }));\n }\n return React.createElement(React.Fragment, null, PagesArray);\n};\n","var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nimport React, { useContext, useEffect } from \"react\";\nimport { Document } from \"react-pdf\";\nimport styled from \"styled-components\";\nimport { PDFContext } from \"../../state\";\nimport { setNumPages } from \"../../state/actions\";\nimport { initialPDFState } from \"../../state/reducer\";\nimport { PDFAllPages } from \"./PDFAllPages\";\nimport PDFSinglePage from \"./PDFSinglePage\";\nvar PDFPages = function () {\n var _a = useContext(PDFContext), _b = _a.state, mainState = _b.mainState, paginated = _b.paginated, dispatch = _a.dispatch;\n var currentDocument = (mainState === null || mainState === void 0 ? void 0 : mainState.currentDocument) || null;\n useEffect(function () {\n dispatch(setNumPages(initialPDFState.numPages));\n }, [currentDocument]);\n if (!currentDocument || currentDocument.fileData === undefined)\n return null;\n return (React.createElement(DocumentPDF, { file: currentDocument.fileData, onLoadSuccess: function (_a) {\n var numPages = _a.numPages;\n return dispatch(setNumPages(numPages));\n }, loading: React.createElement(\"span\", null, \"Loading...\") }, paginated ? React.createElement(PDFSinglePage, null) : React.createElement(PDFAllPages, null)));\n};\nvar DocumentPDF = styled(Document)(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n display: flex;\\n flex-direction: column;\\n margin: 0 auto;\\n\"], [\"\\n display: flex;\\n flex-direction: column;\\n margin: 0 auto;\\n\"])));\nexport default PDFPages;\nvar templateObject_1;\n","var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nimport React from \"react\";\nimport { pdfjs } from \"react-pdf\";\nimport styled from \"styled-components\";\nimport { getMetaURL } from \"../../utils/importMeta\";\nimport PDFControls from \"./components/PDFControls\";\nimport PDFPages from \"./components/pages/PDFPages\";\nimport { PDFProvider } from \"./state\";\npdfjs.GlobalWorkerOptions.workerSrc = new URL(\"pdfjs-dist/build/pdf.worker.min.mjs\", getMetaURL()).toString();\nvar PDFRenderer = function (_a) {\n var mainState = _a.mainState;\n return (React.createElement(PDFProvider, { mainState: mainState },\n React.createElement(Container, { id: \"pdf-renderer\", \"data-testid\": \"pdf-renderer\" },\n React.createElement(PDFControls, null),\n React.createElement(PDFPages, null))));\n};\nexport default PDFRenderer;\nPDFRenderer.fileTypes = [\"pdf\", \"application/pdf\"];\nPDFRenderer.weight = 0;\nvar Container = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n display: flex;\\n flex-direction: column;\\n flex: 1;\\n overflow-y: auto;\\n\\n /* width */\\n &::-webkit-scrollbar {\\n \", \";\\n }\\n /* Track */\\n &::-webkit-scrollbar-track {\\n /* background: \", \"; */\\n }\\n /* Handle */\\n &::-webkit-scrollbar-thumb {\\n background: \", \";\\n }\\n /* Handle on hover */\\n &::-webkit-scrollbar-thumb:hover {\\n background: \", \";\\n }\\n\"], [\"\\n display: flex;\\n flex-direction: column;\\n flex: 1;\\n overflow-y: auto;\\n\\n /* width */\\n &::-webkit-scrollbar {\\n \", \";\\n }\\n /* Track */\\n &::-webkit-scrollbar-track {\\n /* background: \", \"; */\\n }\\n /* Handle */\\n &::-webkit-scrollbar-thumb {\\n background: \", \";\\n }\\n /* Handle on hover */\\n &::-webkit-scrollbar-thumb:hover {\\n background: \", \";\\n }\\n\"])), function (props) {\n return props.theme.disableThemeScrollbar ? \"\" : \"width: 10px\";\n}, function (props) { return props.theme.secondary; }, function (props) { return props.theme.tertiary; }, function (props) { return props.theme.primary; });\nvar templateObject_1;\n","var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(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))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport React from \"react\";\nimport styled from \"styled-components\";\nimport ImageProxyRenderer from \"../image\";\nvar StyledImageRenderer = styled(ImageProxyRenderer)(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\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%),\\n 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 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%),\\n 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\"])));\nvar PNGRenderer = function (props) { return React.createElement(StyledImageRenderer, __assign({}, props)); };\nPNGRenderer.fileTypes = [\"png\", \"image/png\"];\nPNGRenderer.weight = 0;\nexport default PNGRenderer;\nvar templateObject_1;\n","var _this = this;\nvar tiffDataView = undefined;\nvar littleEndian = undefined;\nvar fileDirectories = [];\nvar isLittleEndian = function () {\n // Get byte order mark.\n var BOM = getBytes(2, 0);\n // Find out the endianness.\n if (BOM === 0x4949) {\n littleEndian = true;\n }\n else if (BOM === 0x4d4d) {\n littleEndian = false;\n }\n else {\n throw TypeError(\"Invalid byte order value.\");\n }\n return littleEndian;\n};\nvar hasTowel = function () {\n // Check for towel.\n if (getBytes(2, 2) !== 42) {\n throw RangeError(\"You forgot your towel!\");\n return false;\n }\n return true;\n};\nvar getFieldTagName = function (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 // 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 // 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 // IPTC\n 0x83bb: \"IPTC\",\n // ICC\n 0x8773: \"ICC Profile\",\n // XMP\n 0x02bc: \"XMP\",\n // GDAL\n 0xa480: \"GDAL_METADATA\",\n 0xa481: \"GDAL_NODATA\",\n // Photoshop\n 0x8649: \"Photoshop\",\n };\n var fieldTagName;\n if (fieldTag in fieldTagNames) {\n fieldTagName = fieldTagNames[fieldTag];\n }\n else {\n fieldTagName = \"Tag\" + fieldTag;\n }\n return fieldTagName;\n};\nvar getFieldTypeName = function (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 var fieldTypeName;\n if (fieldType in fieldTypeNames) {\n fieldTypeName = fieldTypeNames[fieldType];\n }\n return fieldTypeName;\n};\nvar getFieldTypeLength = function (fieldTypeName) {\n var fieldTypeLength;\n if ([\"BYTE\", \"ASCII\", \"SBYTE\", \"UNDEFINED\"].indexOf(fieldTypeName) !== -1) {\n fieldTypeLength = 1;\n }\n else if ([\"SHORT\", \"SSHORT\"].indexOf(fieldTypeName) !== -1) {\n fieldTypeLength = 2;\n }\n else if ([\"LONG\", \"SLONG\", \"FLOAT\"].indexOf(fieldTypeName) !== -1) {\n fieldTypeLength = 4;\n }\n else if ([\"RATIONAL\", \"SRATIONAL\", \"DOUBLE\"].indexOf(fieldTypeName) !== -1) {\n fieldTypeLength = 8;\n }\n return fieldTypeLength;\n};\nvar getBits = function (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 if (totalBits <= 0) {\n throw RangeError(\"No bits requested\");\n }\n else if (totalBits <= 8) {\n var shiftLeft = 24 + bitOffset;\n var rawBits = tiffDataView.getUint8(newByteOffset, littleEndian);\n }\n else if (totalBits <= 16) {\n var shiftLeft = 16 + bitOffset;\n var rawBits = tiffDataView.getUint16(newByteOffset, littleEndian);\n }\n else if (totalBits <= 32) {\n var shiftLeft = bitOffset;\n var rawBits = tiffDataView.getUint32(newByteOffset, littleEndian);\n }\n else {\n throw RangeError(\"Too many bits requested\");\n }\n var chunkInfo = {\n bits: (rawBits << shiftLeft) >>> shiftRight,\n byteOffset: newByteOffset + Math.floor(totalBits / 8),\n bitOffset: totalBits % 8,\n };\n return chunkInfo;\n};\nvar getBytes = function (numBytes, offset) {\n if (numBytes <= 0) {\n throw RangeError(\"No bytes requested\");\n }\n else if (numBytes <= 1) {\n return tiffDataView.getUint8(offset, littleEndian);\n }\n else if (numBytes <= 2) {\n return tiffDataView.getUint16(offset, littleEndian);\n }\n else if (numBytes <= 3) {\n return tiffDataView.getUint32(offset, littleEndian) >>> 8;\n }\n else if (numBytes <= 4) {\n return tiffDataView.getUint32(offset, littleEndian);\n }\n else {\n throw RangeError(\"Too many bytes requested\");\n }\n};\nvar getFieldValues = function (fieldTagName, fieldTypeName, typeCount, valueOffset) {\n var fieldValues = [];\n var fieldTypeLength = getFieldTypeLength(fieldTypeName);\n var fieldValueSize = fieldTypeLength * typeCount;\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 }\n else {\n var value = valueOffset;\n }\n fieldValues.push(value);\n }\n else {\n for (var i = 0; i < typeCount; i++) {\n var indexOffset = fieldTypeLength * i;\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 }\n else {\n throw TypeError(\"Can't handle this field type or size\");\n }\n }\n else {\n fieldValues.push(getBytes(fieldTypeLength, valueOffset + indexOffset));\n }\n }\n }\n if (fieldTypeName === \"ASCII\") {\n fieldValues.forEach(function (e, i, a) {\n a[i] = String.fromCharCode(e);\n });\n }\n return fieldValues;\n};\nvar clampColorSample = function (colorSample, bitsPerSample) {\n var multiplier = Math.pow(2, 8 - bitsPerSample);\n return Math.floor(colorSample * multiplier + (multiplier - 1));\n};\nvar makeRGBAFillValue = function (r, g, b, a) {\n if (typeof a === \"undefined\") {\n a = 1.0;\n }\n return \"rgba(\" + r + \", \" + g + \", \" + b + \", \" + a + \")\";\n};\nvar parseFileDirectory = function (byteOffset) {\n var numDirEntries = getBytes(2, byteOffset);\n var tiffFields = [];\n for (var i = byteOffset + 2, entryCount = 0; entryCount < numDirEntries; i += 12, entryCount++) {\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 var fieldTagName = getFieldTagName(fieldTag);\n var fieldTypeName = getFieldTypeName(fieldType);\n var fieldValues = getFieldValues(fieldTagName, fieldTypeName, typeCount, valueOffset);\n tiffFields[fieldTagName] = { type: fieldTypeName, values: fieldValues };\n }\n fileDirectories.push(tiffFields);\n var nextIFDByteOffset = getBytes(4, i);\n if (nextIFDByteOffset === 0x00000000) {\n return fileDirectories;\n }\n else {\n return parseFileDirectory(nextIFDByteOffset);\n }\n};\nexport var parseTIFF = function (tiffArrayBuffer, _canvas) {\n var canvas = _canvas || document.createElement(\"canvas\");\n if (!tiffArrayBuffer)\n return;\n tiffDataView = new DataView(tiffArrayBuffer);\n // canvas = _canvas;\n littleEndian = isLittleEndian(tiffDataView);\n if (!hasTowel(tiffDataView, littleEndian))\n return;\n var firstIFDByteOffset = getBytes(4, 4);\n fileDirectories = parseFileDirectory(firstIFDByteOffset);\n var fileDirectory = fileDirectories[0];\n var imageWidth = fileDirectory.ImageWidth.values[0];\n var imageLength = fileDirectory.ImageLength.values[0];\n canvas.width = imageWidth;\n canvas.height = imageLength;\n var strips = [];\n var compression = fileDirectory.Compression\n ? fileDirectory.Compression.values[0]\n : 1;\n var samplesPerPixel = fileDirectory.SamplesPerPixel.values[0];\n var sampleProperties = [];\n var bitsPerPixel = 0;\n var hasBytesPerPixel = false;\n fileDirectory.BitsPerSample.values.forEach(function (bitsPerSample, i, bitsPerSampleValues) {\n sampleProperties[i] = {\n bitsPerSample: bitsPerSample,\n hasBytesPerSample: false,\n bytesPerSample: undefined,\n };\n if (bitsPerSample % 8 === 0) {\n sampleProperties[i].hasBytesPerSample = true;\n sampleProperties[i].bytesPerSample = bitsPerSample / 8;\n }\n bitsPerPixel += bitsPerSample;\n }, _this);\n if (bitsPerPixel % 8 === 0) {\n hasBytesPerPixel = true;\n var bytesPerPixel = bitsPerPixel / 8;\n }\n var stripOffsetValues = fileDirectory.StripOffsets.values;\n var numStripOffsetValues = stripOffsetValues.length;\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 }\n else {\n // Infer StripByteCounts, if possible.\n if (numStripOffsetValues === 1) {\n var stripByteCountValues = [\n Math.ceil((imageWidth * imageLength * bitsPerPixel) / 8),\n ];\n }\n else {\n throw Error(\"Cannot recover from missing StripByteCounts\");\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 var stripByteCount = stripByteCountValues[i];\n // Loop through pixels.\n for (var byteOffset = 0, bitOffset = 0, jIncrement = 1, getHeader = true, pixel = [], numBytes = 0, sample = 0, currentSample = 0; byteOffset < stripByteCount; byteOffset += jIncrement) {\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 pixel.push(getBytes(sampleProperties[m].bytesPerSample, stripOffset + byteOffset + sampleOffset));\n }\n else {\n var sampleInfo = getBits(sampleProperties[m].bitsPerSample, stripOffset + byteOffset, bitOffset);\n pixel.push(sampleInfo.bits);\n byteOffset = sampleInfo.byteOffset - stripOffset;\n bitOffset = sampleInfo.bitOffset;\n throw RangeError(\"Cannot handle sub-byte bits per sample\");\n }\n }\n strips[i].push(pixel);\n if (hasBytesPerPixel) {\n jIncrement = bytesPerPixel;\n }\n else {\n jIncrement = 0;\n throw RangeError(\"Cannot handle sub-byte bits per pixel\");\n }\n break;\n // CITT Group 3 1-Dimensional Modified Huffman run-length encoding\n case 2:\n // XXX: Use PDF.js code?\n break;\n // Group 3 Fax\n case 3:\n // XXX: Use PDF.js code?\n break;\n // Group 4 Fax\n case 4:\n // XXX: Use PDF.js code?\n break;\n // LZW\n case 5:\n // XXX: Use PDF.js code?\n break;\n // Old-style JPEG (TIFF 6.0)\n case 6:\n // XXX: Use PDF.js code?\n break;\n // New-style JPEG (TIFF Specification Supplement 2)\n case 7:\n // XXX: Use PDF.js code?\n break;\n // PackBits\n case 32773:\n // Are we ready for a new block?\n if (getHeader) {\n getHeader = false;\n var blockLength = 1;\n var iterations = 1;\n // The header byte is signed.\n var header = tiffDataView.getInt8(stripOffset + byteOffset, littleEndian);\n if (header >= 0 && header <= 127) {\n // Normal pixels.\n blockLength = header + 1;\n }\n else if (header >= -127 && header <= -1) {\n // Collapsed pixels.\n iterations = -header + 1;\n } /*if (header === -128)*/\n else {\n // Placeholder byte?\n getHeader = true;\n }\n }\n else {\n var currentByte = getBytes(1, stripOffset + byteOffset);\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 // Is our sample complete?\n if (numBytes === sampleProperties[sample].bytesPerSample) {\n pixel.push(currentSample);\n currentSample = numBytes = 0;\n sample++;\n }\n }\n else {\n throw RangeError(\"Cannot handle sub-byte bits per sample\");\n }\n // Is our pixel complete?\n if (sample === samplesPerPixel) {\n strips[i].push(pixel);\n pixel = [];\n sample = 0;\n }\n }\n blockLength--;\n // Is our block complete?\n if (blockLength === 0) {\n getHeader = true;\n }\n }\n jIncrement = 1;\n break;\n // Unknown compression algorithm\n default:\n // Do not attempt to parse the image data.\n break;\n }\n }\n }\n if (canvas.getContext) {\n var ctx = canvas.getContext(\"2d\");\n // Set a default fill style.\n ctx.fillStyle = makeRGBAFillValue(255, 255, 255, 0);\n // If RowsPerStrip is missing, the whole image is in one strip.\n if (fileDirectory.RowsPerStrip) {\n var rowsPerStrip = fileDirectory.RowsPerStrip.values[0];\n }\n else {\n var rowsPerStrip = imageLength;\n }\n var numStrips = strips.length;\n var imageLengthModRowsPerStrip = imageLength % rowsPerStrip;\n var rowsInLastStrip = imageLengthModRowsPerStrip === 0\n ? rowsPerStrip\n : imageLengthModRowsPerStrip;\n var numRowsInStrip = rowsPerStrip;\n var numRowsInPreviousStrip = 0;\n var photometricInterpretation = fileDirectory.PhotometricInterpretation.values[0];\n var extraSamplesValues = [];\n var numExtraSamples = 0;\n if (fileDirectory.ExtraSamples) {\n extraSamplesValues = fileDirectory.ExtraSamples.values;\n numExtraSamples = extraSamplesValues.length;\n }\n if (fileDirectory.ColorMap) {\n var colorMapValues = fileDirectory.ColorMap.values;\n var colorMapSampleSize = Math.pow(2, sampleProperties[0].bitsPerSample);\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 var numPixels = strips[i].length;\n var yPadding = numRowsInPreviousStrip * i;\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 var red = 0;\n var green = 0;\n var blue = 0;\n var opacity = 1.0;\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 break;\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(0x10, sampleProperties[0].bytesPerSample * 2);\n }\n // Invert samples.\n pixelSamples.forEach(function (sample, index, samples) {\n samples[index] = invertValue - sample;\n });\n // Bilevel or Grayscale\n // BlackIsZero\n case 1:\n red = green = blue = clampColorSample(pixelSamples[0], sampleProperties[0].bitsPerSample);\n break;\n // RGB Full Color\n case 2:\n red = clampColorSample(pixelSamples[0], sampleProperties[0].bitsPerSample);\n green = clampColorSample(pixelSamples[1], sampleProperties[1].bitsPerSample);\n blue = clampColorSample(pixelSamples[2], sampleProperties[2].bitsPerSample);\n break;\n // RGB Color Palette\n case 3:\n if (colorMapValues === undefined) {\n throw Error(\"Palette image missing color map\");\n }\n var colorMapIndex = pixelSamples[0];\n red = clampColorSample(colorMapValues[colorMapIndex], 16);\n green = clampColorSample(colorMapValues[colorMapSampleSize + colorMapIndex], 16);\n blue = clampColorSample(colorMapValues[2 * colorMapSampleSize + colorMapIndex], 16);\n break;\n // Transparency mask\n case 4:\n throw RangeError(\"Not Yet Implemented: Transparency mask\");\n break;\n // CMYK\n case 5:\n throw RangeError(\"Not Yet Implemented: CMYK\");\n break;\n // YCbCr\n case 6:\n throw RangeError(\"Not Yet Implemented: YCbCr\");\n break;\n // CIELab\n case 8:\n throw RangeError(\"Not Yet Implemented: CIELab\");\n break;\n // Unknown Photometric Interpretation\n default:\n throw RangeError(\"Unknown Photometric Interpretation:\", photometricInterpretation);\n break;\n }\n ctx.fillStyle = makeRGBAFillValue(red, green, blue, opacity);\n ctx.fillRect(x, yPadding + y, 1, 1);\n }\n }\n numRowsInPreviousStrip = numRowsInStrip;\n }\n }\n return canvas;\n};\n","var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(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))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport React, { useEffect, useState } from \"react\";\nimport styled from \"styled-components\";\nimport { arrayBufferFileLoader } from \"../../utils/fileLoaders\";\nimport ImageProxyRenderer from \"../image\";\nimport { parseTIFF } from \"./tiffToCanvas\";\nvar TIFFRenderer = function (props) {\n var currentDocument = props.mainState.currentDocument;\n var _a = useState(false), loadedCanvas = _a[0], setLoadedCanvas = _a[1];\n var _b = useState(false), corruptedFile = _b[0], setCorruptedFile = _b[1];\n useEffect(function () {\n if (!currentDocument || loadedCanvas)\n return;\n var canvas = document.getElementById(\"tiff-img\");\n try {\n canvas && parseTIFF(currentDocument.fileData, canvas);\n setLoadedCanvas(true);\n }\n catch (error) {\n setCorruptedFile(true);\n }\n }, []);\n if (corruptedFile) {\n return (React.createElement(ImageProxyRenderer, __assign({}, props),\n React.createElement(\"div\", null, \"Your file is corrupted. Please check it on your machine.\")));\n }\n return (React.createElement(ImageProxyRenderer, __assign({}, props),\n React.createElement(Canvas, { id: \"tiff-img\" })));\n};\nTIFFRenderer.fileTypes = [\"tif\", \"tiff\", \"image/tif\", \"image/tiff\"];\nTIFFRenderer.weight = 0;\nTIFFRenderer.fileLoader = arrayBufferFileLoader;\nexport default TIFFRenderer;\nvar Canvas = styled.canvas(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n max-width: 95%;\\n max-height: 95%;\\n\"], [\"\\n max-width: 95%;\\n max-height: 95%;\\n\"])));\nvar templateObject_1;\n","var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nimport React from \"react\";\nimport styled from \"styled-components\";\nimport { textFileLoader } from \"../../utils/fileLoaders\";\nvar TXTRenderer = function (_a) {\n var currentDocument = _a.mainState.currentDocument;\n return React.createElement(Container, { id: \"txt-renderer\" }, currentDocument === null || currentDocument === void 0 ? void 0 : currentDocument.fileData);\n};\nexport default TXTRenderer;\nTXTRenderer.fileTypes = [\"txt\", \"text/plain\"];\nTXTRenderer.weight = 0;\nTXTRenderer.fileLoader = textFileLoader;\nvar Container = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n display: flex;\\n flex-direction: column;\\n width: 100%;\\n padding: 30px;\\n\"], [\"\\n display: flex;\\n flex-direction: column;\\n width: 100%;\\n padding: 30px;\\n\"])));\nvar templateObject_1;\n","export var defaultTheme = {\n primary: \"#fff\",\n secondary: \"#000\",\n tertiary: \"#ffffff99\",\n text_primary: \"#000\",\n text_secondary: \"#fff\",\n text_tertiary: \"#00000044\",\n disableThemeScrollbar: false,\n};\n","import BMPRenderer from \"./bmp\";\nimport HTMLRenderer from \"./html\";\nimport JPGRenderer from \"./jpg\";\nimport MSDocRenderer from \"./msdoc\";\nimport MSGRenderer from \"./msg\";\nimport PDFRenderer from \"./pdf\";\nimport PNGRenderer from \"./png\";\nimport TIFFRenderer from \"./tiff\";\nimport TXTRenderer from \"./txt\";\nexport var DocViewerRenderers = [\n BMPRenderer,\n HTMLRenderer,\n JPGRenderer,\n MSDocRenderer,\n MSGRenderer,\n PDFRenderer,\n PNGRenderer,\n TIFFRenderer,\n TXTRenderer,\n];\n","var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(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))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport React from \"react\";\nimport styled, { ThemeProvider } from \"styled-components\";\nimport { HeaderBar } from \"./components/HeaderBar\";\nimport { ProxyRenderer } from \"./components/ProxyRenderer\";\nimport BMPRenderer from \"./plugins/bmp\";\nimport HTMLRenderer from \"./plugins/html\";\nimport ImageProxyRenderer from \"./plugins/image\";\nimport JPGRenderer from \"./plugins/jpg\";\nimport MSDocRenderer from \"./plugins/msdoc\";\nimport MSGRenderer from \"./plugins/msg\";\nimport PDFRenderer from \"./plugins/pdf\";\nimport PNGRenderer from \"./plugins/png\";\nimport TIFFRenderer from \"./plugins/tiff\";\nimport TXTRenderer from \"./plugins/txt\";\nimport { AppProvider } from \"./state\";\nimport { defaultTheme } from \"./theme\";\nvar DocViewer = function (props) {\n var documents = props.documents, theme = props.theme;\n if (!documents || documents === undefined) {\n throw new Error(\"Please provide an array of documents to DocViewer.\\ne.g. <DocViewer documents={[ { uri: 'https://mypdf.pdf' } ]} />\");\n }\n return (React.createElement(AppProvider, __assign({}, props),\n React.createElement(ThemeProvider, { theme: theme ? __assign(__assign({}, defaultTheme), theme) : defaultTheme },\n React.createElement(Container, __assign({ id: \"react-doc-viewer\", \"data-testid\": \"react-doc-viewer\" }, props),\n React.createElement(HeaderBar, null),\n React.createElement(ProxyRenderer, null)))));\n};\nexport default DocViewer;\nvar Container = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n display: flex;\\n flex-direction: column;\\n overflow: hidden;\\n background: #eee;\\n\"], [\"\\n display: flex;\\n flex-direction: column;\\n overflow: hidden;\\n background: #eee;\\n\"])));\nexport { DocViewerRenderers } from \"./plugins\";\nexport * from \"./types\";\nexport * from \"./utils/fileLoaders\";\nexport { BMPRenderer, HTMLRenderer, ImageProxyRenderer, JPGRenderer, MSDocRenderer, MSGRenderer, PDFRenderer, PNGRenderer, TIFFRenderer, TXTRenderer, };\nvar templateObject_1;\n","import { useEffect, useRef } from \"react\";\n\nimport { findIndexBy, truncate } from \"neetocist\";\nimport { Left, Right } from \"neetoicons\";\nimport { Modal, Typography, Button } from \"neetoui\";\nimport { isEmpty } from \"ramda\";\nimport DocViewer, { DocViewerRenderers } from \"react-doc-viewer\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { convertToFileSize } from \"components/Editor/MediaUploader/utils\";\n\nimport { ATTACHMENTS_PREVIEW_DATA_CY } from \"./constants\";\nimport { checkPreviewAvailability, downloadFile } from \"./utils\";\n\nconst Preview = ({\n onClose,\n attachments,\n selectedAttachment,\n setSelectedAttachment,\n setDidFetchPreviewBundle,\n}) => {\n const { t } = useTranslation();\n const downloadRef = useRef(null);\n\n const {\n filename = \"\",\n contentType = null,\n url = \"\",\n signedId = \"\",\n size = undefined,\n } = selectedAttachment;\n\n const attachmentIndex = findIndexBy({ signedId }, attachments);\n\n const handleRightArrowClick = () => {\n const newIndex = (attachmentIndex + 1) % attachments.length;\n setSelectedAttachment(attachments[newIndex]);\n downloadRef.current?.focus();\n };\n\n const handleLeftArrowClick = () => {\n const newIndex =\n (attachmentIndex - 1 + attachments.length) % attachments.length;\n setSelectedAttachment(attachments[newIndex]);\n downloadRef.current?.focus();\n };\n\n const handleKeyDown = event => {\n if (event.key === \"ArrowRight\") {\n handleRightArrowClick();\n } else if (event.key === \"ArrowLeft\") {\n handleLeftArrowClick();\n }\n };\n\n useEffect(() => {\n setDidFetchPreviewBundle(true);\n }, []);\n\n const handleDownload = () => downloadFile(url, filename);\n\n const setPreview = () => {\n const isPreviewAvailable = checkPreviewAvailability(contentType);\n\n if (isPreviewAvailable) {\n switch (contentType.split(\"/\")[0]) {\n case \"image\":\n return <img data-testid={ATTACHMENTS_PREVIEW_DATA_CY} src={url} />;\n case \"video\":\n return (\n <video controls data-testid={ATTACHMENTS_PREVIEW_DATA_CY} src={url} />\n );\n case \"application\":\n case \"text\":\n if (contentType === \"application/pdf\") {\n return (\n <iframe\n data-testid={ATTACHMENTS_PREVIEW_DATA_CY}\n src={url}\n width=\"100%\"\n />\n );\n }\n\n return (\n <DocViewer\n className=\"ne-attachments-preview__body-docviewer\"\n data-testid={ATTACHMENTS_PREVIEW_DATA_CY}\n documents={[{ uri: url, fileType: contentType }]}\n pluginRenderers={DocViewerRenderers}\n config={{\n header: { disableHeader: true, disableFileName: true },\n }}\n />\n );\n default:\n return null;\n }\n }\n\n return (\n <Typography>\n <Trans\n i18nKey=\"neetoEditor.attachments.noPreview\"\n components={{\n span: (\n <span\n className=\"ne-attachments-preview__body-download\"\n onClick={handleDownload}\n />\n ),\n }}\n />\n </Typography>\n );\n };\n\n return (\n <Modal\n {...{ onClose }}\n className=\"ne-attachments-preview\"\n isOpen={!isEmpty(selectedAttachment)}\n size=\"fullScreen\"\n onKeyDown={handleKeyDown}\n >\n <Modal.Header className=\"ne-attachments-preview__header\">\n <div className=\"ne-attachments-preview__header__fileinfo\">\n <Typography style=\"h4\">{truncate(filename, 25)}</Typography>\n <Typography style=\"body2\">{convertToFileSize(size)}</Typography>\n </div>\n <Button\n label={t(\"neetoEditor.common.download\")}\n ref={downloadRef}\n style=\"link\"\n onClick={handleDownload}\n />\n </Modal.Header>\n <Modal.Body className=\"ne-attachments-preview__body\">\n <Button\n className=\"ne-attachments-preview__body-left\"\n icon={Left}\n size=\"large\"\n style=\"tertiary\"\n onClick={handleLeftArrowClick}\n />\n <Button\n className=\"ne-attachments-preview__body-right\"\n icon={Right}\n size=\"large\"\n style=\"tertiary\"\n onClick={handleRightArrowClick}\n />\n {setPreview()}\n </Modal.Body>\n </Modal>\n );\n};\n\nexport default Preview;\n"],"names":["prefix","r","t","o.RULESET","o.prefixer","o.stringify","o.middleware","o.rulesheet","o.compile","o.serialize","n","__assign","this","React","__makeTemplateObject","css","templateObject_1","templateObject_2","styled","templateObject_3","templateObject_4","templateObject_5","Container","__awaiter","DownloadButton","keyframes","BodyIFrame","__spreadArray","require$$0","require$$1","exports","AnnotationLayer","PDFDataRangeTransport","PasswordResponses","TextLayer","isLittleEndian","_jsx","warning","reducer","__rest","makeCancellable","pdfjs.getDocument","pdfjs.AnnotationMode","Canvas","pdfjs.TextLayer","pdfjs.AnnotationLayer","_jsxs","pdfjs.GlobalWorkerOptions","PageTag","ThemeProvider","Preview","_ref","onClose","attachments","selectedAttachment","setSelectedAttachment","setDidFetchPreviewBundle","_useTranslation","useTranslation","downloadRef","useRef","_selectedAttachment$f","filename","_selectedAttachment$c","contentType","_selectedAttachment$u","url","_selectedAttachment$s","signedId","_selectedAttachment$s2","size","undefined","attachmentIndex","findIndexBy","handleRightArrowClick","_downloadRef$current","newIndex","length","current","focus","handleLeftArrowClick","_downloadRef$current2","handleKeyDown","event","key","useEffect","handleDownload","downloadFile","setPreview","isPreviewAvailable","checkPreviewAvailability","split","ATTACHMENTS_PREVIEW_DATA_CY","src","controls","width","DocViewer","className","documents","uri","fileType","pluginRenderers","DocViewerRenderers","config","header","disableHeader","disableFileName","Typography","children","Trans","i18nKey","components","span","onClick","Modal","isOpen","isEmpty","onKeyDown","Header","style","truncate","convertToFileSize","Button","label","ref","Body","icon","Left","Right"],"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]}
|