react-docxodus-viewer 0.3.0 → 0.4.0

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.
@@ -1,136 +1,125 @@
1
- import { jsx as e, jsxs as c, Fragment as Je } from "react/jsx-runtime";
2
- import { useState as d, useMemo as te, useRef as Fe, useEffect as ne, useCallback as F } from "react";
3
- import { useDocxodus as tg, VirtualPaginatedDocument as lg, PaginatedDocument as Cg } from "docxodus/react";
4
- import { isFormatChange as D, isMove as M, isDeletion as le, isInsertion as Ce, PaginationMode as ag, getDocumentMetadata as ig, AnnotationLabelMode as ce, CommentRenderMode as Ie } from "docxodus";
5
- import { RevisionType as Xg, isDeletion as Rg, isFormatChange as Hg, isInsertion as wg, isMove as zg } from "docxodus";
6
- function H() {
1
+ import { jsx as e, jsxs as c, Fragment as ze } from "react/jsx-runtime";
2
+ import { useState as o, useMemo as ne, useRef as we, useEffect as $, useCallback as f } from "react";
3
+ import { useDocxodus as gn, PaginatedDocument as cn } from "docxodus/react";
4
+ import { isFormatChange as D, isMove as U, isDeletion as ge, isInsertion as ce, PaginationMode as tn, getDocumentMetadata as In, AnnotationLabelMode as q, CommentRenderMode as ee } from "docxodus";
5
+ import { RevisionType as Bn, isDeletion as Xn, isFormatChange as Nn, isInsertion as Rn, isMove as Hn } from "docxodus";
6
+ function z() {
7
7
  return `${Date.now()}-${Math.random().toString(36).slice(2, 11)}`;
8
8
  }
9
- async function w(n) {
10
- if (n instanceof Uint8Array)
11
- return n;
12
- const i = await n.arrayBuffer();
13
- return new Uint8Array(i);
9
+ async function w(g) {
10
+ if (g instanceof Uint8Array)
11
+ return g;
12
+ const s = await g.arrayBuffer();
13
+ return new Uint8Array(s);
14
14
  }
15
- function sg() {
15
+ function an() {
16
16
  if (typeof document < "u") {
17
- const n = document.querySelectorAll('script[src*="docxodus"]');
18
- if (n.length > 0) {
19
- const i = n[0].src;
20
- return i.substring(0, i.lastIndexOf("/") + 1) + "wasm/";
17
+ const g = document.querySelectorAll('script[src*="docxodus"]');
18
+ if (g.length > 0) {
19
+ const s = g[0].src;
20
+ return s.substring(0, s.lastIndexOf("/") + 1) + "wasm/";
21
21
  }
22
22
  }
23
23
  return "/wasm/";
24
24
  }
25
- async function dg(n) {
26
- const i = n?.wasmBasePath ?? sg(), y = new URL("data:text/javascript;base64,Ly8gc3JjL2RvY3hvZHVzLndvcmtlci50cwp2YXIgd2FzbUV4cG9ydHMgPSBudWxsOwp2YXIgaW5pdFByb21pc2UgPSBudWxsOwphc3luYyBmdW5jdGlvbiBpbml0aWFsaXplV2FzbShiYXNlUGF0aCkgewogIGlmICh3YXNtRXhwb3J0cykgewogICAgcmV0dXJuOwogIH0KICBpZiAoaW5pdFByb21pc2UpIHsKICAgIHJldHVybiBpbml0UHJvbWlzZTsKICB9CiAgaW5pdFByb21pc2UgPSAoYXN5bmMgKCkgPT4gewogICAgdHJ5IHsKICAgICAgY29uc3Qgbm9ybWFsaXplZFBhdGggPSBiYXNlUGF0aC5lbmRzV2l0aCgiLyIpID8gYmFzZVBhdGggOiBiYXNlUGF0aCArICIvIjsKICAgICAgY29uc3QgZG90bmV0TW9kdWxlID0gYXdhaXQgaW1wb3J0KAogICAgICAgIC8qIHdlYnBhY2tJZ25vcmU6IHRydWUgKi8KICAgICAgICBgJHtub3JtYWxpemVkUGF0aH1fZnJhbWV3b3JrL2RvdG5ldC5qc2AKICAgICAgKTsKICAgICAgY29uc3QgeyBnZXRBc3NlbWJseUV4cG9ydHMsIGdldENvbmZpZyB9ID0gYXdhaXQgZG90bmV0TW9kdWxlLmRvdG5ldC53aXRoRGlhZ25vc3RpY1RyYWNpbmcoZmFsc2UpLmNyZWF0ZSgpOwogICAgICBjb25zdCBjb25maWcgPSBnZXRDb25maWcoKTsKICAgICAgY29uc3QgZXhwb3J0cyA9IGF3YWl0IGdldEFzc2VtYmx5RXhwb3J0cyhjb25maWcubWFpbkFzc2VtYmx5TmFtZSk7CiAgICAgIHdhc21FeHBvcnRzID0gewogICAgICAgIERvY3VtZW50Q29udmVydGVyOiBleHBvcnRzLkRvY3hvZHVzV2FzbS5Eb2N1bWVudENvbnZlcnRlciwKICAgICAgICBEb2N1bWVudENvbXBhcmVyOiBleHBvcnRzLkRvY3hvZHVzV2FzbS5Eb2N1bWVudENvbXBhcmVyCiAgICAgIH07CiAgICB9IGNhdGNoIChlcnJvcikgewogICAgICBpbml0UHJvbWlzZSA9IG51bGw7CiAgICAgIHRocm93IGVycm9yOwogICAgfQogIH0pKCk7CiAgcmV0dXJuIGluaXRQcm9taXNlOwp9CmZ1bmN0aW9uIGVuc3VyZUluaXRpYWxpemVkKCkgewogIGlmICghd2FzbUV4cG9ydHMpIHsKICAgIHRocm93IG5ldyBFcnJvcigiV29ya2VyIG5vdCBpbml0aWFsaXplZC4gQ2FsbCBpbml0IGZpcnN0LiIpOwogIH0KICByZXR1cm4gd2FzbUV4cG9ydHM7Cn0KZnVuY3Rpb24gaXNFcnJvclJlc3BvbnNlKHJlc3VsdCkgewogIHJldHVybiByZXN1bHQuc3RhcnRzV2l0aCgieyIpICYmIHJlc3VsdC5pbmNsdWRlcygnIkVycm9yIicpOwp9CmZ1bmN0aW9uIHBhcnNlRXJyb3IocmVzdWx0KSB7CiAgdHJ5IHsKICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UocmVzdWx0KTsKICAgIHJldHVybiB7IGVycm9yOiBwYXJzZWQuRXJyb3IgfHwgcGFyc2VkLmVycm9yIHx8ICJVbmtub3duIGVycm9yIiB9OwogIH0gY2F0Y2ggewogICAgcmV0dXJuIHsgZXJyb3I6IHJlc3VsdCB9OwogIH0KfQpmdW5jdGlvbiBoYW5kbGVDb252ZXJ0KHJlcXVlc3QpIHsKICBjb25zdCBleHBvcnRzID0gZW5zdXJlSW5pdGlhbGl6ZWQoKTsKICBjb25zdCBvcHRpb25zID0gcmVxdWVzdC5vcHRpb25zOwogIHRyeSB7CiAgICBsZXQgcmVzdWx0OwogICAgY29uc3QgbmVlZHNDb21wbGV0ZU1ldGhvZCA9IG9wdGlvbnM/LnJlbmRlckZvb3Rub3Rlc0FuZEVuZG5vdGVzICE9PSB2b2lkIDAgfHwgb3B0aW9ucz8ucmVuZGVySGVhZGVyc0FuZEZvb3RlcnMgIT09IHZvaWQgMCB8fCBvcHRpb25zPy5yZW5kZXJUcmFja2VkQ2hhbmdlcyAhPT0gdm9pZCAwIHx8IG9wdGlvbnM/LnNob3dEZWxldGVkQ29udGVudCAhPT0gdm9pZCAwIHx8IG9wdGlvbnM/LnJlbmRlck1vdmVPcGVyYXRpb25zICE9PSB2b2lkIDA7CiAgICBpZiAobmVlZHNDb21wbGV0ZU1ldGhvZCB8fCBvcHRpb25zPy5yZW5kZXJBbm5vdGF0aW9ucykgewogICAgICByZXN1bHQgPSBleHBvcnRzLkRvY3VtZW50Q29udmVydGVyLkNvbnZlcnREb2N4VG9IdG1sQ29tcGxldGUoCiAgICAgICAgcmVxdWVzdC5kb2N1bWVudEJ5dGVzLAogICAgICAgIG9wdGlvbnM/LnBhZ2VUaXRsZSA/PyAiRG9jdW1lbnQiLAogICAgICAgIG9wdGlvbnM/LmNzc1ByZWZpeCA/PyAiZG9jeC0iLAogICAgICAgIG9wdGlvbnM/LmZhYnJpY2F0ZUNsYXNzZXMgPz8gdHJ1ZSwKICAgICAgICBvcHRpb25zPy5hZGRpdGlvbmFsQ3NzID8/ICIiLAogICAgICAgIG9wdGlvbnM/LmNvbW1lbnRSZW5kZXJNb2RlID8/IC0xLAogICAgICAgIG9wdGlvbnM/LmNvbW1lbnRDc3NDbGFzc1ByZWZpeCA/PyAiY29tbWVudC0iLAogICAgICAgIG9wdGlvbnM/LnBhZ2luYXRpb25Nb2RlID8/IDAsCiAgICAgICAgb3B0aW9ucz8ucGFnaW5hdGlvblNjYWxlID8/IDEsCiAgICAgICAgb3B0aW9ucz8ucGFnaW5hdGlvbkNzc0NsYXNzUHJlZml4ID8/ICJwYWdlLSIsCiAgICAgICAgb3B0aW9ucz8ucmVuZGVyQW5ub3RhdGlvbnMgPz8gZmFsc2UsCiAgICAgICAgb3B0aW9ucz8uYW5ub3RhdGlvbkxhYmVsTW9kZSA/PyAwLAogICAgICAgIG9wdGlvbnM/LmFubm90YXRpb25Dc3NDbGFzc1ByZWZpeCA/PyAiYW5ub3QtIiwKICAgICAgICBvcHRpb25zPy5yZW5kZXJGb290bm90ZXNBbmRFbmRub3RlcyA/PyBmYWxzZSwKICAgICAgICBvcHRpb25zPy5yZW5kZXJIZWFkZXJzQW5kRm9vdGVycyA/PyBmYWxzZSwKICAgICAgICBvcHRpb25zPy5yZW5kZXJUcmFja2VkQ2hhbmdlcyA/PyBmYWxzZSwKICAgICAgICBvcHRpb25zPy5zaG93RGVsZXRlZENvbnRlbnQgPz8gdHJ1ZSwKICAgICAgICBvcHRpb25zPy5yZW5kZXJNb3ZlT3BlcmF0aW9ucyA/PyB0cnVlCiAgICAgICk7CiAgICB9IGVsc2UgaWYgKG9wdGlvbnM/LnBhZ2luYXRpb25Nb2RlICE9PSB2b2lkIDAgJiYgb3B0aW9ucy5wYWdpbmF0aW9uTW9kZSAhPT0gMCkgewogICAgICByZXN1bHQgPSBleHBvcnRzLkRvY3VtZW50Q29udmVydGVyLkNvbnZlcnREb2N4VG9IdG1sV2l0aFBhZ2luYXRpb24oCiAgICAgICAgcmVxdWVzdC5kb2N1bWVudEJ5dGVzLAogICAgICAgIG9wdGlvbnMucGFnZVRpdGxlID8/ICJEb2N1bWVudCIsCiAgICAgICAgb3B0aW9ucy5jc3NQcmVmaXggPz8gImRvY3gtIiwKICAgICAgICBvcHRpb25zLmZhYnJpY2F0ZUNsYXNzZXMgPz8gdHJ1ZSwKICAgICAgICBvcHRpb25zLmFkZGl0aW9uYWxDc3MgPz8gIiIsCiAgICAgICAgb3B0aW9ucy5jb21tZW50UmVuZGVyTW9kZSA/PyAtMSwKICAgICAgICBvcHRpb25zLmNvbW1lbnRDc3NDbGFzc1ByZWZpeCA/PyAiY29tbWVudC0iLAogICAgICAgIG9wdGlvbnMucGFnaW5hdGlvbk1vZGUsCiAgICAgICAgb3B0aW9ucy5wYWdpbmF0aW9uU2NhbGUgPz8gMSwKICAgICAgICBvcHRpb25zLnBhZ2luYXRpb25Dc3NDbGFzc1ByZWZpeCA/PyAicGFnZS0iCiAgICAgICk7CiAgICB9IGVsc2UgaWYgKG9wdGlvbnMpIHsKICAgICAgcmVzdWx0ID0gZXhwb3J0cy5Eb2N1bWVudENvbnZlcnRlci5Db252ZXJ0RG9jeFRvSHRtbFdpdGhPcHRpb25zKAogICAgICAgIHJlcXVlc3QuZG9jdW1lbnRCeXRlcywKICAgICAgICBvcHRpb25zLnBhZ2VUaXRsZSA/PyAiRG9jdW1lbnQiLAogICAgICAgIG9wdGlvbnMuY3NzUHJlZml4ID8/ICJkb2N4LSIsCiAgICAgICAgb3B0aW9ucy5mYWJyaWNhdGVDbGFzc2VzID8/IHRydWUsCiAgICAgICAgb3B0aW9ucy5hZGRpdGlvbmFsQ3NzID8/ICIiLAogICAgICAgIG9wdGlvbnMuY29tbWVudFJlbmRlck1vZGUgPz8gLTEsCiAgICAgICAgb3B0aW9ucy5jb21tZW50Q3NzQ2xhc3NQcmVmaXggPz8gImNvbW1lbnQtIgogICAgICApOwogICAgfSBlbHNlIHsKICAgICAgcmVzdWx0ID0gZXhwb3J0cy5Eb2N1bWVudENvbnZlcnRlci5Db252ZXJ0RG9jeFRvSHRtbCgKICAgICAgICByZXF1ZXN0LmRvY3VtZW50Qnl0ZXMKICAgICAgKTsKICAgIH0KICAgIGlmIChpc0Vycm9yUmVzcG9uc2UocmVzdWx0KSkgewogICAgICByZXR1cm4gcGFyc2VFcnJvcihyZXN1bHQpOwogICAgfQogICAgcmV0dXJuIHsgaHRtbDogcmVzdWx0IH07CiAgfSBjYXRjaCAoZXJyb3IpIHsKICAgIHJldHVybiB7IGVycm9yOiBTdHJpbmcoZXJyb3IpIH07CiAgfQp9CmZ1bmN0aW9uIGhhbmRsZUNvbXBhcmUocmVxdWVzdCkgewogIGNvbnN0IGV4cG9ydHMgPSBlbnN1cmVJbml0aWFsaXplZCgpOwogIGNvbnN0IG9wdGlvbnMgPSByZXF1ZXN0Lm9wdGlvbnM7CiAgdHJ5IHsKICAgIGxldCByZXN1bHQ7CiAgICBpZiAob3B0aW9ucz8uZGV0YWlsVGhyZXNob2xkICE9PSB2b2lkIDAgfHwgb3B0aW9ucz8uY2FzZUluc2Vuc2l0aXZlKSB7CiAgICAgIHJlc3VsdCA9IGV4cG9ydHMuRG9jdW1lbnRDb21wYXJlci5Db21wYXJlRG9jdW1lbnRzV2l0aE9wdGlvbnMoCiAgICAgICAgcmVxdWVzdC5vcmlnaW5hbEJ5dGVzLAogICAgICAgIHJlcXVlc3QubW9kaWZpZWRCeXRlcywKICAgICAgICBvcHRpb25zPy5hdXRob3JOYW1lID8/ICJEb2N4b2R1cyIsCiAgICAgICAgb3B0aW9ucz8uZGV0YWlsVGhyZXNob2xkID8/IDAuMTUsCiAgICAgICAgb3B0aW9ucz8uY2FzZUluc2Vuc2l0aXZlID8/IGZhbHNlCiAgICAgICk7CiAgICB9IGVsc2UgewogICAgICByZXN1bHQgPSBleHBvcnRzLkRvY3VtZW50Q29tcGFyZXIuQ29tcGFyZURvY3VtZW50cygKICAgICAgICByZXF1ZXN0Lm9yaWdpbmFsQnl0ZXMsCiAgICAgICAgcmVxdWVzdC5tb2RpZmllZEJ5dGVzLAogICAgICAgIG9wdGlvbnM/LmF1dGhvck5hbWUgPz8gIkRvY3hvZHVzIgogICAgICApOwogICAgfQogICAgaWYgKHJlc3VsdC5sZW5ndGggPT09IDApIHsKICAgICAgcmV0dXJuIHsgZXJyb3I6ICJDb21wYXJpc29uIHJldHVybmVkIGVtcHR5IHJlc3VsdCIgfTsKICAgIH0KICAgIHJldHVybiB7IGRvY3VtZW50Qnl0ZXM6IHJlc3VsdCB9OwogIH0gY2F0Y2ggKGVycm9yKSB7CiAgICByZXR1cm4geyBlcnJvcjogU3RyaW5nKGVycm9yKSB9OwogIH0KfQpmdW5jdGlvbiBoYW5kbGVDb21wYXJlVG9IdG1sKHJlcXVlc3QpIHsKICBjb25zdCBleHBvcnRzID0gZW5zdXJlSW5pdGlhbGl6ZWQoKTsKICBjb25zdCBvcHRpb25zID0gcmVxdWVzdC5vcHRpb25zOwogIHRyeSB7CiAgICBjb25zdCByZW5kZXJUcmFja2VkQ2hhbmdlcyA9IG9wdGlvbnM/LnJlbmRlclRyYWNrZWRDaGFuZ2VzID8/IHRydWU7CiAgICBjb25zdCByZXN1bHQgPSBleHBvcnRzLkRvY3VtZW50Q29tcGFyZXIuQ29tcGFyZURvY3VtZW50c1RvSHRtbFdpdGhPcHRpb25zKAogICAgICByZXF1ZXN0Lm9yaWdpbmFsQnl0ZXMsCiAgICAgIHJlcXVlc3QubW9kaWZpZWRCeXRlcywKICAgICAgb3B0aW9ucz8uYXV0aG9yTmFtZSA/PyAiRG9jeG9kdXMiLAogICAgICByZW5kZXJUcmFja2VkQ2hhbmdlcwogICAgKTsKICAgIGlmIChpc0Vycm9yUmVzcG9uc2UocmVzdWx0KSkgewogICAgICByZXR1cm4gcGFyc2VFcnJvcihyZXN1bHQpOwogICAgfQogICAgcmV0dXJuIHsgaHRtbDogcmVzdWx0IH07CiAgfSBjYXRjaCAoZXJyb3IpIHsKICAgIHJldHVybiB7IGVycm9yOiBTdHJpbmcoZXJyb3IpIH07CiAgfQp9CmZ1bmN0aW9uIGhhbmRsZUdldFJldmlzaW9ucyhyZXF1ZXN0KSB7CiAgY29uc3QgZXhwb3J0cyA9IGVuc3VyZUluaXRpYWxpemVkKCk7CiAgY29uc3Qgb3B0aW9ucyA9IHJlcXVlc3Qub3B0aW9uczsKICB0cnkgewogICAgY29uc3QgZGV0ZWN0TW92ZXMgPSBvcHRpb25zPy5kZXRlY3RNb3ZlcyA/PyB0cnVlOwogICAgY29uc3QgbW92ZVNpbWlsYXJpdHlUaHJlc2hvbGQgPSBvcHRpb25zPy5tb3ZlU2ltaWxhcml0eVRocmVzaG9sZCA/PyAwLjg7CiAgICBjb25zdCBtb3ZlTWluaW11bVdvcmRDb3VudCA9IG9wdGlvbnM/Lm1vdmVNaW5pbXVtV29yZENvdW50ID8/IDM7CiAgICBjb25zdCBjYXNlSW5zZW5zaXRpdmUgPSBvcHRpb25zPy5jYXNlSW5zZW5zaXRpdmUgPz8gZmFsc2U7CiAgICBjb25zdCByZXN1bHQgPSBleHBvcnRzLkRvY3VtZW50Q29tcGFyZXIuR2V0UmV2aXNpb25zSnNvbldpdGhPcHRpb25zKAogICAgICByZXF1ZXN0LmRvY3VtZW50Qnl0ZXMsCiAgICAgIGRldGVjdE1vdmVzLAogICAgICBtb3ZlU2ltaWxhcml0eVRocmVzaG9sZCwKICAgICAgbW92ZU1pbmltdW1Xb3JkQ291bnQsCiAgICAgIGNhc2VJbnNlbnNpdGl2ZQogICAgKTsKICAgIGlmIChpc0Vycm9yUmVzcG9uc2UocmVzdWx0KSkgewogICAgICByZXR1cm4gcGFyc2VFcnJvcihyZXN1bHQpOwogICAgfQogICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZShyZXN1bHQpOwogICAgY29uc3QgcmV2aXNpb25zID0gKHBhcnNlZC5SZXZpc2lvbnMgfHwgcGFyc2VkLnJldmlzaW9ucyB8fCBbXSkubWFwKAogICAgICAocikgPT4gKHsKICAgICAgICBhdXRob3I6IHIuQXV0aG9yIHx8IHIuYXV0aG9yLAogICAgICAgIGRhdGU6IHIuRGF0ZSB8fCByLmRhdGUsCiAgICAgICAgcmV2aXNpb25UeXBlOiByLlJldmlzaW9uVHlwZSB8fCByLnJldmlzaW9uVHlwZSwKICAgICAgICB0ZXh0OiByLlRleHQgfHwgci50ZXh0LAogICAgICAgIG1vdmVHcm91cElkOiByLk1vdmVHcm91cElkID8/IHIubW92ZUdyb3VwSWQsCiAgICAgICAgaXNNb3ZlU291cmNlOiByLklzTW92ZVNvdXJjZSA/PyByLmlzTW92ZVNvdXJjZSwKICAgICAgICBmb3JtYXRDaGFuZ2U6IHIuRm9ybWF0Q2hhbmdlIHx8IHIuZm9ybWF0Q2hhbmdlID8gewogICAgICAgICAgb2xkUHJvcGVydGllczogci5Gb3JtYXRDaGFuZ2U/Lk9sZFByb3BlcnRpZXMgfHwgci5mb3JtYXRDaGFuZ2U/Lm9sZFByb3BlcnRpZXMsCiAgICAgICAgICBuZXdQcm9wZXJ0aWVzOiByLkZvcm1hdENoYW5nZT8uTmV3UHJvcGVydGllcyB8fCByLmZvcm1hdENoYW5nZT8ubmV3UHJvcGVydGllcywKICAgICAgICAgIGNoYW5nZWRQcm9wZXJ0eU5hbWVzOiByLkZvcm1hdENoYW5nZT8uQ2hhbmdlZFByb3BlcnR5TmFtZXMgfHwgci5mb3JtYXRDaGFuZ2U/LmNoYW5nZWRQcm9wZXJ0eU5hbWVzCiAgICAgICAgfSA6IHZvaWQgMAogICAgICB9KQogICAgKTsKICAgIHJldHVybiB7IHJldmlzaW9ucyB9OwogIH0gY2F0Y2ggKGVycm9yKSB7CiAgICByZXR1cm4geyBlcnJvcjogU3RyaW5nKGVycm9yKSB9OwogIH0KfQpmdW5jdGlvbiBoYW5kbGVHZXREb2N1bWVudE1ldGFkYXRhKHJlcXVlc3QpIHsKICBjb25zdCBleHBvcnRzID0gZW5zdXJlSW5pdGlhbGl6ZWQoKTsKICB0cnkgewogICAgY29uc3QgcmVzdWx0ID0gZXhwb3J0cy5Eb2N1bWVudENvbnZlcnRlci5HZXREb2N1bWVudE1ldGFkYXRhKAogICAgICByZXF1ZXN0LmRvY3VtZW50Qnl0ZXMKICAgICk7CiAgICBpZiAoaXNFcnJvclJlc3BvbnNlKHJlc3VsdCkpIHsKICAgICAgcmV0dXJuIHBhcnNlRXJyb3IocmVzdWx0KTsKICAgIH0KICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UocmVzdWx0KTsKICAgIGNvbnN0IGNvbnZlcnRTZWN0aW9uID0gKHMpID0+ICh7CiAgICAgIHNlY3Rpb25JbmRleDogcy5TZWN0aW9uSW5kZXggPz8gcy5zZWN0aW9uSW5kZXgsCiAgICAgIHBhZ2VXaWR0aFB0OiBzLlBhZ2VXaWR0aFB0ID8/IHMucGFnZVdpZHRoUHQsCiAgICAgIHBhZ2VIZWlnaHRQdDogcy5QYWdlSGVpZ2h0UHQgPz8gcy5wYWdlSGVpZ2h0UHQsCiAgICAgIG1hcmdpblRvcFB0OiBzLk1hcmdpblRvcFB0ID8/IHMubWFyZ2luVG9wUHQsCiAgICAgIG1hcmdpblJpZ2h0UHQ6IHMuTWFyZ2luUmlnaHRQdCA/PyBzLm1hcmdpblJpZ2h0UHQsCiAgICAgIG1hcmdpbkJvdHRvbVB0OiBzLk1hcmdpbkJvdHRvbVB0ID8/IHMubWFyZ2luQm90dG9tUHQsCiAgICAgIG1hcmdpbkxlZnRQdDogcy5NYXJnaW5MZWZ0UHQgPz8gcy5tYXJnaW5MZWZ0UHQsCiAgICAgIGNvbnRlbnRXaWR0aFB0OiBzLkNvbnRlbnRXaWR0aFB0ID8/IHMuY29udGVudFdpZHRoUHQsCiAgICAgIGNvbnRlbnRIZWlnaHRQdDogcy5Db250ZW50SGVpZ2h0UHQgPz8gcy5jb250ZW50SGVpZ2h0UHQsCiAgICAgIGhlYWRlclB0OiBzLkhlYWRlclB0ID8/IHMuaGVhZGVyUHQsCiAgICAgIGZvb3RlclB0OiBzLkZvb3RlclB0ID8/IHMuZm9vdGVyUHQsCiAgICAgIHBhcmFncmFwaENvdW50OiBzLlBhcmFncmFwaENvdW50ID8/IHMucGFyYWdyYXBoQ291bnQsCiAgICAgIHRhYmxlQ291bnQ6IHMuVGFibGVDb3VudCA/PyBzLnRhYmxlQ291bnQsCiAgICAgIGhhc0hlYWRlcjogcy5IYXNIZWFkZXIgPz8gcy5oYXNIZWFkZXIsCiAgICAgIGhhc0Zvb3Rlcjogcy5IYXNGb290ZXIgPz8gcy5oYXNGb290ZXIsCiAgICAgIGhhc0ZpcnN0UGFnZUhlYWRlcjogcy5IYXNGaXJzdFBhZ2VIZWFkZXIgPz8gcy5oYXNGaXJzdFBhZ2VIZWFkZXIsCiAgICAgIGhhc0ZpcnN0UGFnZUZvb3Rlcjogcy5IYXNGaXJzdFBhZ2VGb290ZXIgPz8gcy5oYXNGaXJzdFBhZ2VGb290ZXIsCiAgICAgIGhhc0V2ZW5QYWdlSGVhZGVyOiBzLkhhc0V2ZW5QYWdlSGVhZGVyID8/IHMuaGFzRXZlblBhZ2VIZWFkZXIsCiAgICAgIGhhc0V2ZW5QYWdlRm9vdGVyOiBzLkhhc0V2ZW5QYWdlRm9vdGVyID8/IHMuaGFzRXZlblBhZ2VGb290ZXIsCiAgICAgIHN0YXJ0UGFyYWdyYXBoSW5kZXg6IHMuU3RhcnRQYXJhZ3JhcGhJbmRleCA/PyBzLnN0YXJ0UGFyYWdyYXBoSW5kZXgsCiAgICAgIGVuZFBhcmFncmFwaEluZGV4OiBzLkVuZFBhcmFncmFwaEluZGV4ID8/IHMuZW5kUGFyYWdyYXBoSW5kZXgsCiAgICAgIHN0YXJ0VGFibGVJbmRleDogcy5TdGFydFRhYmxlSW5kZXggPz8gcy5zdGFydFRhYmxlSW5kZXgsCiAgICAgIGVuZFRhYmxlSW5kZXg6IHMuRW5kVGFibGVJbmRleCA/PyBzLmVuZFRhYmxlSW5kZXgKICAgIH0pOwogICAgY29uc3QgbWV0YWRhdGEgPSB7CiAgICAgIHNlY3Rpb25zOiAocGFyc2VkLlNlY3Rpb25zIHx8IHBhcnNlZC5zZWN0aW9ucyB8fCBbXSkubWFwKGNvbnZlcnRTZWN0aW9uKSwKICAgICAgdG90YWxQYXJhZ3JhcGhzOiBwYXJzZWQuVG90YWxQYXJhZ3JhcGhzID8/IHBhcnNlZC50b3RhbFBhcmFncmFwaHMsCiAgICAgIHRvdGFsVGFibGVzOiBwYXJzZWQuVG90YWxUYWJsZXMgPz8gcGFyc2VkLnRvdGFsVGFibGVzLAogICAgICBoYXNGb290bm90ZXM6IHBhcnNlZC5IYXNGb290bm90ZXMgPz8gcGFyc2VkLmhhc0Zvb3Rub3RlcywKICAgICAgaGFzRW5kbm90ZXM6IHBhcnNlZC5IYXNFbmRub3RlcyA/PyBwYXJzZWQuaGFzRW5kbm90ZXMsCiAgICAgIGhhc1RyYWNrZWRDaGFuZ2VzOiBwYXJzZWQuSGFzVHJhY2tlZENoYW5nZXMgPz8gcGFyc2VkLmhhc1RyYWNrZWRDaGFuZ2VzLAogICAgICBoYXNDb21tZW50czogcGFyc2VkLkhhc0NvbW1lbnRzID8/IHBhcnNlZC5oYXNDb21tZW50cywKICAgICAgZXN0aW1hdGVkUGFnZUNvdW50OiBwYXJzZWQuRXN0aW1hdGVkUGFnZUNvdW50ID8/IHBhcnNlZC5lc3RpbWF0ZWRQYWdlQ291bnQKICAgIH07CiAgICByZXR1cm4geyBtZXRhZGF0YSB9OwogIH0gY2F0Y2ggKGVycm9yKSB7CiAgICByZXR1cm4geyBlcnJvcjogU3RyaW5nKGVycm9yKSB9OwogIH0KfQpmdW5jdGlvbiBoYW5kbGVSZW5kZXJQYWdlUmFuZ2UocmVxdWVzdCkgewogIGNvbnN0IGV4cG9ydHMgPSBlbnN1cmVJbml0aWFsaXplZCgpOwogIGNvbnN0IG9wdGlvbnMgPSByZXF1ZXN0Lm9wdGlvbnM7CiAgdHJ5IHsKICAgIGxldCByZXN1bHQ7CiAgICBjb25zdCBuZWVkc0Z1bGxNZXRob2QgPSBvcHRpb25zPy5yZW5kZXJUcmFja2VkQ2hhbmdlcyAhPT0gdm9pZCAwIHx8IG9wdGlvbnM/LnNob3dEZWxldGVkQ29udGVudCAhPT0gdm9pZCAwIHx8IG9wdGlvbnM/LnJlbmRlckNvbW1lbnRzICE9PSB2b2lkIDAgfHwgb3B0aW9ucz8uYWRkaXRpb25hbENzcyAhPT0gdm9pZCAwOwogICAgaWYgKG5lZWRzRnVsbE1ldGhvZCkgewogICAgICByZXN1bHQgPSBleHBvcnRzLkRvY3VtZW50Q29udmVydGVyLlJlbmRlclBhZ2VSYW5nZUZ1bGwoCiAgICAgICAgcmVxdWVzdC5kb2N1bWVudEJ5dGVzLAogICAgICAgIHJlcXVlc3Quc3RhcnRQYWdlLAogICAgICAgIHJlcXVlc3QuZW5kUGFnZSwKICAgICAgICBvcHRpb25zPy5wYWdlVGl0bGUgPz8gIkRvY3VtZW50IiwKICAgICAgICBvcHRpb25zPy5jc3NQcmVmaXggPz8gImRvY3gtIiwKICAgICAgICBvcHRpb25zPy5mYWJyaWNhdGVDbGFzc2VzID8/IHRydWUsCiAgICAgICAgb3B0aW9ucz8uYWRkaXRpb25hbENzcyA/PyAiIiwKICAgICAgICBvcHRpb25zPy5wYWdpbmF0aW9uU2NhbGUgPz8gMSwKICAgICAgICBvcHRpb25zPy5wYWdpbmF0aW9uQ3NzQ2xhc3NQcmVmaXggPz8gInBhZ2UtIiwKICAgICAgICBvcHRpb25zPy5yZW5kZXJGb290bm90ZXNBbmRFbmRub3RlcyA/PyBmYWxzZSwKICAgICAgICBvcHRpb25zPy5yZW5kZXJIZWFkZXJzQW5kRm9vdGVycyA/PyBmYWxzZSwKICAgICAgICBvcHRpb25zPy5yZW5kZXJUcmFja2VkQ2hhbmdlcyA/PyBmYWxzZSwKICAgICAgICBvcHRpb25zPy5zaG93RGVsZXRlZENvbnRlbnQgPz8gdHJ1ZSwKICAgICAgICBvcHRpb25zPy5yZW5kZXJDb21tZW50cyA/PyBmYWxzZSwKICAgICAgICBvcHRpb25zPy5jb21tZW50UmVuZGVyTW9kZSA/PyAwCiAgICAgICk7CiAgICB9IGVsc2UgewogICAgICByZXN1bHQgPSBleHBvcnRzLkRvY3VtZW50Q29udmVydGVyLlJlbmRlclBhZ2VSYW5nZSgKICAgICAgICByZXF1ZXN0LmRvY3VtZW50Qnl0ZXMsCiAgICAgICAgcmVxdWVzdC5zdGFydFBhZ2UsCiAgICAgICAgcmVxdWVzdC5lbmRQYWdlLAogICAgICAgIG9wdGlvbnM/LnBhZ2VUaXRsZSA/PyAiRG9jdW1lbnQiLAogICAgICAgIG9wdGlvbnM/LmNzc1ByZWZpeCA/PyAiZG9jeC0iLAogICAgICAgIG9wdGlvbnM/LmZhYnJpY2F0ZUNsYXNzZXMgPz8gdHJ1ZSwKICAgICAgICBvcHRpb25zPy5wYWdpbmF0aW9uU2NhbGUgPz8gMSwKICAgICAgICBvcHRpb25zPy5wYWdpbmF0aW9uQ3NzQ2xhc3NQcmVmaXggPz8gInBhZ2UtIiwKICAgICAgICBvcHRpb25zPy5yZW5kZXJGb290bm90ZXNBbmRFbmRub3RlcyA/PyBmYWxzZSwKICAgICAgICBvcHRpb25zPy5yZW5kZXJIZWFkZXJzQW5kRm9vdGVycyA/PyBmYWxzZQogICAgICApOwogICAgfQogICAgaWYgKGlzRXJyb3JSZXNwb25zZShyZXN1bHQpKSB7CiAgICAgIHJldHVybiBwYXJzZUVycm9yKHJlc3VsdCk7CiAgICB9CiAgICByZXR1cm4geyBodG1sOiByZXN1bHQgfTsKICB9IGNhdGNoIChlcnJvcikgewogICAgcmV0dXJuIHsgZXJyb3I6IFN0cmluZyhlcnJvcikgfTsKICB9Cn0KZnVuY3Rpb24gaGFuZGxlR2V0VmVyc2lvbigpIHsKICBjb25zdCBleHBvcnRzID0gZW5zdXJlSW5pdGlhbGl6ZWQoKTsKICB0cnkgewogICAgY29uc3QgcmVzdWx0ID0gZXhwb3J0cy5Eb2N1bWVudENvbnZlcnRlci5HZXRWZXJzaW9uKCk7CiAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKHJlc3VsdCk7CiAgICByZXR1cm4gewogICAgICB2ZXJzaW9uOiB7CiAgICAgICAgbGlicmFyeTogcGFyc2VkLkxpYnJhcnkgfHwgcGFyc2VkLmxpYnJhcnksCiAgICAgICAgZG90bmV0VmVyc2lvbjogcGFyc2VkLkRvdG5ldFZlcnNpb24gfHwgcGFyc2VkLmRvdG5ldFZlcnNpb24sCiAgICAgICAgcGxhdGZvcm06IHBhcnNlZC5QbGF0Zm9ybSB8fCBwYXJzZWQucGxhdGZvcm0KICAgICAgfQogICAgfTsKICB9IGNhdGNoIChlcnJvcikgewogICAgcmV0dXJuIHsgZXJyb3I6IFN0cmluZyhlcnJvcikgfTsKICB9Cn0Kc2VsZi5vbm1lc3NhZ2UgPSBhc3luYyAoZXZlbnQpID0+IHsKICBjb25zdCByZXF1ZXN0ID0gZXZlbnQuZGF0YTsKICB0cnkgewogICAgbGV0IHJlc3BvbnNlOwogICAgc3dpdGNoIChyZXF1ZXN0LnR5cGUpIHsKICAgICAgY2FzZSAiaW5pdCI6IHsKICAgICAgICBjb25zdCBpbml0UmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGF3YWl0IGluaXRpYWxpemVXYXNtKGluaXRSZXF1ZXN0Lndhc21CYXNlUGF0aCk7CiAgICAgICAgICByZXNwb25zZSA9IHsKICAgICAgICAgICAgaWQ6IHJlcXVlc3QuaWQsCiAgICAgICAgICAgIHR5cGU6ICJpbml0IiwKICAgICAgICAgICAgc3VjY2VzczogdHJ1ZQogICAgICAgICAgfTsKICAgICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgICAgcmVzcG9uc2UgPSB7CiAgICAgICAgICAgIGlkOiByZXF1ZXN0LmlkLAogICAgICAgICAgICB0eXBlOiAiaW5pdCIsCiAgICAgICAgICAgIHN1Y2Nlc3M6IGZhbHNlLAogICAgICAgICAgICBlcnJvcjogU3RyaW5nKGVycm9yKQogICAgICAgICAgfTsKICAgICAgICB9CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgICAgY2FzZSAiY29udmVydERvY3hUb0h0bWwiOiB7CiAgICAgICAgY29uc3QgY29udmVydFJlcXVlc3QgPSByZXF1ZXN0OwogICAgICAgIGNvbnN0IHJlc3VsdCA9IGhhbmRsZUNvbnZlcnQoY29udmVydFJlcXVlc3QpOwogICAgICAgIHJlc3BvbnNlID0gewogICAgICAgICAgaWQ6IHJlcXVlc3QuaWQsCiAgICAgICAgICB0eXBlOiAiY29udmVydERvY3hUb0h0bWwiLAogICAgICAgICAgc3VjY2VzczogIXJlc3VsdC5lcnJvciwKICAgICAgICAgIGh0bWw6IHJlc3VsdC5odG1sLAogICAgICAgICAgZXJyb3I6IHJlc3VsdC5lcnJvcgogICAgICAgIH07CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgICAgY2FzZSAiY29tcGFyZURvY3VtZW50cyI6IHsKICAgICAgICBjb25zdCBjb21wYXJlUmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgICAgY29uc3QgcmVzdWx0ID0gaGFuZGxlQ29tcGFyZShjb21wYXJlUmVxdWVzdCk7CiAgICAgICAgcmVzcG9uc2UgPSB7CiAgICAgICAgICBpZDogcmVxdWVzdC5pZCwKICAgICAgICAgIHR5cGU6ICJjb21wYXJlRG9jdW1lbnRzIiwKICAgICAgICAgIHN1Y2Nlc3M6ICFyZXN1bHQuZXJyb3IsCiAgICAgICAgICBkb2N1bWVudEJ5dGVzOiByZXN1bHQuZG9jdW1lbnRCeXRlcywKICAgICAgICAgIGVycm9yOiByZXN1bHQuZXJyb3IKICAgICAgICB9OwogICAgICAgIGlmIChyZXN1bHQuZG9jdW1lbnRCeXRlcykgewogICAgICAgICAgc2VsZi5wb3N0TWVzc2FnZShyZXNwb25zZSwgeyB0cmFuc2ZlcjogW3Jlc3VsdC5kb2N1bWVudEJ5dGVzLmJ1ZmZlcl0gfSk7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGJyZWFrOwogICAgICB9CiAgICAgIGNhc2UgImNvbXBhcmVEb2N1bWVudHNUb0h0bWwiOiB7CiAgICAgICAgY29uc3QgY29tcGFyZVRvSHRtbFJlcXVlc3QgPSByZXF1ZXN0OwogICAgICAgIGNvbnN0IHJlc3VsdCA9IGhhbmRsZUNvbXBhcmVUb0h0bWwoY29tcGFyZVRvSHRtbFJlcXVlc3QpOwogICAgICAgIHJlc3BvbnNlID0gewogICAgICAgICAgaWQ6IHJlcXVlc3QuaWQsCiAgICAgICAgICB0eXBlOiAiY29tcGFyZURvY3VtZW50c1RvSHRtbCIsCiAgICAgICAgICBzdWNjZXNzOiAhcmVzdWx0LmVycm9yLAogICAgICAgICAgaHRtbDogcmVzdWx0Lmh0bWwsCiAgICAgICAgICBlcnJvcjogcmVzdWx0LmVycm9yCiAgICAgICAgfTsKICAgICAgICBicmVhazsKICAgICAgfQogICAgICBjYXNlICJnZXRSZXZpc2lvbnMiOiB7CiAgICAgICAgY29uc3QgZ2V0UmV2aXNpb25zUmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgICAgY29uc3QgcmVzdWx0ID0gaGFuZGxlR2V0UmV2aXNpb25zKGdldFJldmlzaW9uc1JlcXVlc3QpOwogICAgICAgIHJlc3BvbnNlID0gewogICAgICAgICAgaWQ6IHJlcXVlc3QuaWQsCiAgICAgICAgICB0eXBlOiAiZ2V0UmV2aXNpb25zIiwKICAgICAgICAgIHN1Y2Nlc3M6ICFyZXN1bHQuZXJyb3IsCiAgICAgICAgICByZXZpc2lvbnM6IHJlc3VsdC5yZXZpc2lvbnMsCiAgICAgICAgICBlcnJvcjogcmVzdWx0LmVycm9yCiAgICAgICAgfTsKICAgICAgICBicmVhazsKICAgICAgfQogICAgICBjYXNlICJnZXREb2N1bWVudE1ldGFkYXRhIjogewogICAgICAgIGNvbnN0IGdldE1ldGFkYXRhUmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgICAgY29uc3QgcmVzdWx0ID0gaGFuZGxlR2V0RG9jdW1lbnRNZXRhZGF0YShnZXRNZXRhZGF0YVJlcXVlc3QpOwogICAgICAgIHJlc3BvbnNlID0gewogICAgICAgICAgaWQ6IHJlcXVlc3QuaWQsCiAgICAgICAgICB0eXBlOiAiZ2V0RG9jdW1lbnRNZXRhZGF0YSIsCiAgICAgICAgICBzdWNjZXNzOiAhcmVzdWx0LmVycm9yLAogICAgICAgICAgbWV0YWRhdGE6IHJlc3VsdC5tZXRhZGF0YSwKICAgICAgICAgIGVycm9yOiByZXN1bHQuZXJyb3IKICAgICAgICB9OwogICAgICAgIGJyZWFrOwogICAgICB9CiAgICAgIGNhc2UgInJlbmRlclBhZ2VSYW5nZSI6IHsKICAgICAgICBjb25zdCByZW5kZXJSZXF1ZXN0ID0gcmVxdWVzdDsKICAgICAgICBjb25zdCByZXN1bHQgPSBoYW5kbGVSZW5kZXJQYWdlUmFuZ2UocmVuZGVyUmVxdWVzdCk7CiAgICAgICAgcmVzcG9uc2UgPSB7CiAgICAgICAgICBpZDogcmVxdWVzdC5pZCwKICAgICAgICAgIHR5cGU6ICJyZW5kZXJQYWdlUmFuZ2UiLAogICAgICAgICAgc3VjY2VzczogIXJlc3VsdC5lcnJvciwKICAgICAgICAgIGh0bWw6IHJlc3VsdC5odG1sLAogICAgICAgICAgZXJyb3I6IHJlc3VsdC5lcnJvcgogICAgICAgIH07CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgICAgY2FzZSAiZ2V0VmVyc2lvbiI6IHsKICAgICAgICBjb25zdCByZXN1bHQgPSBoYW5kbGVHZXRWZXJzaW9uKCk7CiAgICAgICAgcmVzcG9uc2UgPSB7CiAgICAgICAgICBpZDogcmVxdWVzdC5pZCwKICAgICAgICAgIHR5cGU6ICJnZXRWZXJzaW9uIiwKICAgICAgICAgIHN1Y2Nlc3M6ICFyZXN1bHQuZXJyb3IsCiAgICAgICAgICB2ZXJzaW9uOiByZXN1bHQudmVyc2lvbiwKICAgICAgICAgIGVycm9yOiByZXN1bHQuZXJyb3IKICAgICAgICB9OwogICAgICAgIGJyZWFrOwogICAgICB9CiAgICAgIGRlZmF1bHQ6IHsKICAgICAgICBjb25zdCB1bmtub3duUmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgICAgc2VsZi5wb3N0TWVzc2FnZSh7CiAgICAgICAgICBpZDogdW5rbm93blJlcXVlc3QuaWQsCiAgICAgICAgICB0eXBlOiB1bmtub3duUmVxdWVzdC50eXBlLAogICAgICAgICAgc3VjY2VzczogZmFsc2UsCiAgICAgICAgICBlcnJvcjogYFVua25vd24gcmVxdWVzdCB0eXBlOiAke3Vua25vd25SZXF1ZXN0LnR5cGV9YAogICAgICAgIH0pOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgfQogICAgc2VsZi5wb3N0TWVzc2FnZShyZXNwb25zZSk7CiAgfSBjYXRjaCAoZXJyb3IpIHsKICAgIHNlbGYucG9zdE1lc3NhZ2UoewogICAgICBpZDogcmVxdWVzdC5pZCwKICAgICAgdHlwZTogcmVxdWVzdC50eXBlLAogICAgICBzdWNjZXNzOiBmYWxzZSwKICAgICAgZXJyb3I6IFN0cmluZyhlcnJvcikKICAgIH0pOwogIH0KfTsKc2VsZi5wb3N0TWVzc2FnZSh7IHR5cGU6ICJyZWFkeSIgfSk7Cg==", import.meta.url).href, b = new Worker(y, { type: "module" }), m = /* @__PURE__ */ new Map();
27
- let r = !0;
28
- b.onmessage = (I) => {
29
- const C = I.data;
30
- if (C.type === "ready")
25
+ async function ln(g) {
26
+ const s = g?.wasmBasePath ?? an(), Z = new URL("data:text/javascript;base64,Ly8gc3JjL2RvY3hvZHVzLndvcmtlci50cwp2YXIgd2FzbUV4cG9ydHMgPSBudWxsOwp2YXIgaW5pdFByb21pc2UgPSBudWxsOwphc3luYyBmdW5jdGlvbiBpbml0aWFsaXplV2FzbShiYXNlUGF0aCkgewogIGlmICh3YXNtRXhwb3J0cykgewogICAgcmV0dXJuOwogIH0KICBpZiAoaW5pdFByb21pc2UpIHsKICAgIHJldHVybiBpbml0UHJvbWlzZTsKICB9CiAgaW5pdFByb21pc2UgPSAoYXN5bmMgKCkgPT4gewogICAgdHJ5IHsKICAgICAgY29uc3Qgbm9ybWFsaXplZFBhdGggPSBiYXNlUGF0aC5lbmRzV2l0aCgiLyIpID8gYmFzZVBhdGggOiBiYXNlUGF0aCArICIvIjsKICAgICAgY29uc3QgZG90bmV0TW9kdWxlID0gYXdhaXQgaW1wb3J0KAogICAgICAgIC8qIHdlYnBhY2tJZ25vcmU6IHRydWUgKi8KICAgICAgICBgJHtub3JtYWxpemVkUGF0aH1fZnJhbWV3b3JrL2RvdG5ldC5qc2AKICAgICAgKTsKICAgICAgY29uc3QgeyBnZXRBc3NlbWJseUV4cG9ydHMsIGdldENvbmZpZyB9ID0gYXdhaXQgZG90bmV0TW9kdWxlLmRvdG5ldC53aXRoRGlhZ25vc3RpY1RyYWNpbmcoZmFsc2UpLmNyZWF0ZSgpOwogICAgICBjb25zdCBjb25maWcgPSBnZXRDb25maWcoKTsKICAgICAgY29uc3QgZXhwb3J0cyA9IGF3YWl0IGdldEFzc2VtYmx5RXhwb3J0cyhjb25maWcubWFpbkFzc2VtYmx5TmFtZSk7CiAgICAgIHdhc21FeHBvcnRzID0gewogICAgICAgIERvY3VtZW50Q29udmVydGVyOiBleHBvcnRzLkRvY3hvZHVzV2FzbS5Eb2N1bWVudENvbnZlcnRlciwKICAgICAgICBEb2N1bWVudENvbXBhcmVyOiBleHBvcnRzLkRvY3hvZHVzV2FzbS5Eb2N1bWVudENvbXBhcmVyCiAgICAgIH07CiAgICB9IGNhdGNoIChlcnJvcikgewogICAgICBpbml0UHJvbWlzZSA9IG51bGw7CiAgICAgIHRocm93IGVycm9yOwogICAgfQogIH0pKCk7CiAgcmV0dXJuIGluaXRQcm9taXNlOwp9CmZ1bmN0aW9uIGVuc3VyZUluaXRpYWxpemVkKCkgewogIGlmICghd2FzbUV4cG9ydHMpIHsKICAgIHRocm93IG5ldyBFcnJvcigiV29ya2VyIG5vdCBpbml0aWFsaXplZC4gQ2FsbCBpbml0IGZpcnN0LiIpOwogIH0KICByZXR1cm4gd2FzbUV4cG9ydHM7Cn0KZnVuY3Rpb24gaXNFcnJvclJlc3BvbnNlKHJlc3VsdCkgewogIHJldHVybiByZXN1bHQuc3RhcnRzV2l0aCgieyIpICYmIHJlc3VsdC5pbmNsdWRlcygnIkVycm9yIicpOwp9CmZ1bmN0aW9uIHBhcnNlRXJyb3IocmVzdWx0KSB7CiAgdHJ5IHsKICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UocmVzdWx0KTsKICAgIHJldHVybiB7IGVycm9yOiBwYXJzZWQuRXJyb3IgfHwgcGFyc2VkLmVycm9yIHx8ICJVbmtub3duIGVycm9yIiB9OwogIH0gY2F0Y2ggewogICAgcmV0dXJuIHsgZXJyb3I6IHJlc3VsdCB9OwogIH0KfQpmdW5jdGlvbiBoYW5kbGVDb252ZXJ0KHJlcXVlc3QpIHsKICBjb25zdCBleHBvcnRzID0gZW5zdXJlSW5pdGlhbGl6ZWQoKTsKICBjb25zdCBvcHRpb25zID0gcmVxdWVzdC5vcHRpb25zOwogIHRyeSB7CiAgICBsZXQgcmVzdWx0OwogICAgY29uc3QgbmVlZHNDb21wbGV0ZU1ldGhvZCA9IG9wdGlvbnM/LnJlbmRlckZvb3Rub3Rlc0FuZEVuZG5vdGVzICE9PSB2b2lkIDAgfHwgb3B0aW9ucz8ucmVuZGVySGVhZGVyc0FuZEZvb3RlcnMgIT09IHZvaWQgMCB8fCBvcHRpb25zPy5yZW5kZXJUcmFja2VkQ2hhbmdlcyAhPT0gdm9pZCAwIHx8IG9wdGlvbnM/LnNob3dEZWxldGVkQ29udGVudCAhPT0gdm9pZCAwIHx8IG9wdGlvbnM/LnJlbmRlck1vdmVPcGVyYXRpb25zICE9PSB2b2lkIDA7CiAgICBpZiAobmVlZHNDb21wbGV0ZU1ldGhvZCB8fCBvcHRpb25zPy5yZW5kZXJBbm5vdGF0aW9ucykgewogICAgICByZXN1bHQgPSBleHBvcnRzLkRvY3VtZW50Q29udmVydGVyLkNvbnZlcnREb2N4VG9IdG1sQ29tcGxldGUoCiAgICAgICAgcmVxdWVzdC5kb2N1bWVudEJ5dGVzLAogICAgICAgIG9wdGlvbnM/LnBhZ2VUaXRsZSA/PyAiRG9jdW1lbnQiLAogICAgICAgIG9wdGlvbnM/LmNzc1ByZWZpeCA/PyAiZG9jeC0iLAogICAgICAgIG9wdGlvbnM/LmZhYnJpY2F0ZUNsYXNzZXMgPz8gdHJ1ZSwKICAgICAgICBvcHRpb25zPy5hZGRpdGlvbmFsQ3NzID8/ICIiLAogICAgICAgIG9wdGlvbnM/LmNvbW1lbnRSZW5kZXJNb2RlID8/IC0xLAogICAgICAgIG9wdGlvbnM/LmNvbW1lbnRDc3NDbGFzc1ByZWZpeCA/PyAiY29tbWVudC0iLAogICAgICAgIG9wdGlvbnM/LnBhZ2luYXRpb25Nb2RlID8/IDAsCiAgICAgICAgb3B0aW9ucz8ucGFnaW5hdGlvblNjYWxlID8/IDEsCiAgICAgICAgb3B0aW9ucz8ucGFnaW5hdGlvbkNzc0NsYXNzUHJlZml4ID8/ICJwYWdlLSIsCiAgICAgICAgb3B0aW9ucz8ucmVuZGVyQW5ub3RhdGlvbnMgPz8gZmFsc2UsCiAgICAgICAgb3B0aW9ucz8uYW5ub3RhdGlvbkxhYmVsTW9kZSA/PyAwLAogICAgICAgIG9wdGlvbnM/LmFubm90YXRpb25Dc3NDbGFzc1ByZWZpeCA/PyAiYW5ub3QtIiwKICAgICAgICBvcHRpb25zPy5yZW5kZXJGb290bm90ZXNBbmRFbmRub3RlcyA/PyBmYWxzZSwKICAgICAgICBvcHRpb25zPy5yZW5kZXJIZWFkZXJzQW5kRm9vdGVycyA/PyBmYWxzZSwKICAgICAgICBvcHRpb25zPy5yZW5kZXJUcmFja2VkQ2hhbmdlcyA/PyBmYWxzZSwKICAgICAgICBvcHRpb25zPy5zaG93RGVsZXRlZENvbnRlbnQgPz8gdHJ1ZSwKICAgICAgICBvcHRpb25zPy5yZW5kZXJNb3ZlT3BlcmF0aW9ucyA/PyB0cnVlCiAgICAgICk7CiAgICB9IGVsc2UgaWYgKG9wdGlvbnM/LnBhZ2luYXRpb25Nb2RlICE9PSB2b2lkIDAgJiYgb3B0aW9ucy5wYWdpbmF0aW9uTW9kZSAhPT0gMCkgewogICAgICByZXN1bHQgPSBleHBvcnRzLkRvY3VtZW50Q29udmVydGVyLkNvbnZlcnREb2N4VG9IdG1sV2l0aFBhZ2luYXRpb24oCiAgICAgICAgcmVxdWVzdC5kb2N1bWVudEJ5dGVzLAogICAgICAgIG9wdGlvbnMucGFnZVRpdGxlID8/ICJEb2N1bWVudCIsCiAgICAgICAgb3B0aW9ucy5jc3NQcmVmaXggPz8gImRvY3gtIiwKICAgICAgICBvcHRpb25zLmZhYnJpY2F0ZUNsYXNzZXMgPz8gdHJ1ZSwKICAgICAgICBvcHRpb25zLmFkZGl0aW9uYWxDc3MgPz8gIiIsCiAgICAgICAgb3B0aW9ucy5jb21tZW50UmVuZGVyTW9kZSA/PyAtMSwKICAgICAgICBvcHRpb25zLmNvbW1lbnRDc3NDbGFzc1ByZWZpeCA/PyAiY29tbWVudC0iLAogICAgICAgIG9wdGlvbnMucGFnaW5hdGlvbk1vZGUsCiAgICAgICAgb3B0aW9ucy5wYWdpbmF0aW9uU2NhbGUgPz8gMSwKICAgICAgICBvcHRpb25zLnBhZ2luYXRpb25Dc3NDbGFzc1ByZWZpeCA/PyAicGFnZS0iCiAgICAgICk7CiAgICB9IGVsc2UgaWYgKG9wdGlvbnMpIHsKICAgICAgcmVzdWx0ID0gZXhwb3J0cy5Eb2N1bWVudENvbnZlcnRlci5Db252ZXJ0RG9jeFRvSHRtbFdpdGhPcHRpb25zKAogICAgICAgIHJlcXVlc3QuZG9jdW1lbnRCeXRlcywKICAgICAgICBvcHRpb25zLnBhZ2VUaXRsZSA/PyAiRG9jdW1lbnQiLAogICAgICAgIG9wdGlvbnMuY3NzUHJlZml4ID8/ICJkb2N4LSIsCiAgICAgICAgb3B0aW9ucy5mYWJyaWNhdGVDbGFzc2VzID8/IHRydWUsCiAgICAgICAgb3B0aW9ucy5hZGRpdGlvbmFsQ3NzID8/ICIiLAogICAgICAgIG9wdGlvbnMuY29tbWVudFJlbmRlck1vZGUgPz8gLTEsCiAgICAgICAgb3B0aW9ucy5jb21tZW50Q3NzQ2xhc3NQcmVmaXggPz8gImNvbW1lbnQtIgogICAgICApOwogICAgfSBlbHNlIHsKICAgICAgcmVzdWx0ID0gZXhwb3J0cy5Eb2N1bWVudENvbnZlcnRlci5Db252ZXJ0RG9jeFRvSHRtbCgKICAgICAgICByZXF1ZXN0LmRvY3VtZW50Qnl0ZXMKICAgICAgKTsKICAgIH0KICAgIGlmIChpc0Vycm9yUmVzcG9uc2UocmVzdWx0KSkgewogICAgICByZXR1cm4gcGFyc2VFcnJvcihyZXN1bHQpOwogICAgfQogICAgcmV0dXJuIHsgaHRtbDogcmVzdWx0IH07CiAgfSBjYXRjaCAoZXJyb3IpIHsKICAgIHJldHVybiB7IGVycm9yOiBTdHJpbmcoZXJyb3IpIH07CiAgfQp9CmZ1bmN0aW9uIGhhbmRsZUNvbXBhcmUocmVxdWVzdCkgewogIGNvbnN0IGV4cG9ydHMgPSBlbnN1cmVJbml0aWFsaXplZCgpOwogIGNvbnN0IG9wdGlvbnMgPSByZXF1ZXN0Lm9wdGlvbnM7CiAgdHJ5IHsKICAgIGxldCByZXN1bHQ7CiAgICBpZiAob3B0aW9ucz8uZGV0YWlsVGhyZXNob2xkICE9PSB2b2lkIDAgfHwgb3B0aW9ucz8uY2FzZUluc2Vuc2l0aXZlKSB7CiAgICAgIHJlc3VsdCA9IGV4cG9ydHMuRG9jdW1lbnRDb21wYXJlci5Db21wYXJlRG9jdW1lbnRzV2l0aE9wdGlvbnMoCiAgICAgICAgcmVxdWVzdC5vcmlnaW5hbEJ5dGVzLAogICAgICAgIHJlcXVlc3QubW9kaWZpZWRCeXRlcywKICAgICAgICBvcHRpb25zPy5hdXRob3JOYW1lID8/ICJEb2N4b2R1cyIsCiAgICAgICAgb3B0aW9ucz8uZGV0YWlsVGhyZXNob2xkID8/IDAuMTUsCiAgICAgICAgb3B0aW9ucz8uY2FzZUluc2Vuc2l0aXZlID8/IGZhbHNlCiAgICAgICk7CiAgICB9IGVsc2UgewogICAgICByZXN1bHQgPSBleHBvcnRzLkRvY3VtZW50Q29tcGFyZXIuQ29tcGFyZURvY3VtZW50cygKICAgICAgICByZXF1ZXN0Lm9yaWdpbmFsQnl0ZXMsCiAgICAgICAgcmVxdWVzdC5tb2RpZmllZEJ5dGVzLAogICAgICAgIG9wdGlvbnM/LmF1dGhvck5hbWUgPz8gIkRvY3hvZHVzIgogICAgICApOwogICAgfQogICAgaWYgKHJlc3VsdC5sZW5ndGggPT09IDApIHsKICAgICAgcmV0dXJuIHsgZXJyb3I6ICJDb21wYXJpc29uIHJldHVybmVkIGVtcHR5IHJlc3VsdCIgfTsKICAgIH0KICAgIHJldHVybiB7IGRvY3VtZW50Qnl0ZXM6IHJlc3VsdCB9OwogIH0gY2F0Y2ggKGVycm9yKSB7CiAgICByZXR1cm4geyBlcnJvcjogU3RyaW5nKGVycm9yKSB9OwogIH0KfQpmdW5jdGlvbiBoYW5kbGVDb21wYXJlVG9IdG1sKHJlcXVlc3QpIHsKICBjb25zdCBleHBvcnRzID0gZW5zdXJlSW5pdGlhbGl6ZWQoKTsKICBjb25zdCBvcHRpb25zID0gcmVxdWVzdC5vcHRpb25zOwogIHRyeSB7CiAgICBjb25zdCByZW5kZXJUcmFja2VkQ2hhbmdlcyA9IG9wdGlvbnM/LnJlbmRlclRyYWNrZWRDaGFuZ2VzID8/IHRydWU7CiAgICBjb25zdCByZXN1bHQgPSBleHBvcnRzLkRvY3VtZW50Q29tcGFyZXIuQ29tcGFyZURvY3VtZW50c1RvSHRtbFdpdGhPcHRpb25zKAogICAgICByZXF1ZXN0Lm9yaWdpbmFsQnl0ZXMsCiAgICAgIHJlcXVlc3QubW9kaWZpZWRCeXRlcywKICAgICAgb3B0aW9ucz8uYXV0aG9yTmFtZSA/PyAiRG9jeG9kdXMiLAogICAgICByZW5kZXJUcmFja2VkQ2hhbmdlcwogICAgKTsKICAgIGlmIChpc0Vycm9yUmVzcG9uc2UocmVzdWx0KSkgewogICAgICByZXR1cm4gcGFyc2VFcnJvcihyZXN1bHQpOwogICAgfQogICAgcmV0dXJuIHsgaHRtbDogcmVzdWx0IH07CiAgfSBjYXRjaCAoZXJyb3IpIHsKICAgIHJldHVybiB7IGVycm9yOiBTdHJpbmcoZXJyb3IpIH07CiAgfQp9CmZ1bmN0aW9uIGhhbmRsZUdldFJldmlzaW9ucyhyZXF1ZXN0KSB7CiAgY29uc3QgZXhwb3J0cyA9IGVuc3VyZUluaXRpYWxpemVkKCk7CiAgY29uc3Qgb3B0aW9ucyA9IHJlcXVlc3Qub3B0aW9uczsKICB0cnkgewogICAgY29uc3QgZGV0ZWN0TW92ZXMgPSBvcHRpb25zPy5kZXRlY3RNb3ZlcyA/PyB0cnVlOwogICAgY29uc3QgbW92ZVNpbWlsYXJpdHlUaHJlc2hvbGQgPSBvcHRpb25zPy5tb3ZlU2ltaWxhcml0eVRocmVzaG9sZCA/PyAwLjg7CiAgICBjb25zdCBtb3ZlTWluaW11bVdvcmRDb3VudCA9IG9wdGlvbnM/Lm1vdmVNaW5pbXVtV29yZENvdW50ID8/IDM7CiAgICBjb25zdCBjYXNlSW5zZW5zaXRpdmUgPSBvcHRpb25zPy5jYXNlSW5zZW5zaXRpdmUgPz8gZmFsc2U7CiAgICBjb25zdCByZXN1bHQgPSBleHBvcnRzLkRvY3VtZW50Q29tcGFyZXIuR2V0UmV2aXNpb25zSnNvbldpdGhPcHRpb25zKAogICAgICByZXF1ZXN0LmRvY3VtZW50Qnl0ZXMsCiAgICAgIGRldGVjdE1vdmVzLAogICAgICBtb3ZlU2ltaWxhcml0eVRocmVzaG9sZCwKICAgICAgbW92ZU1pbmltdW1Xb3JkQ291bnQsCiAgICAgIGNhc2VJbnNlbnNpdGl2ZQogICAgKTsKICAgIGlmIChpc0Vycm9yUmVzcG9uc2UocmVzdWx0KSkgewogICAgICByZXR1cm4gcGFyc2VFcnJvcihyZXN1bHQpOwogICAgfQogICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZShyZXN1bHQpOwogICAgY29uc3QgcmV2aXNpb25zID0gKHBhcnNlZC5SZXZpc2lvbnMgfHwgcGFyc2VkLnJldmlzaW9ucyB8fCBbXSkubWFwKAogICAgICAocikgPT4gKHsKICAgICAgICBhdXRob3I6IHIuQXV0aG9yIHx8IHIuYXV0aG9yLAogICAgICAgIGRhdGU6IHIuRGF0ZSB8fCByLmRhdGUsCiAgICAgICAgcmV2aXNpb25UeXBlOiByLlJldmlzaW9uVHlwZSB8fCByLnJldmlzaW9uVHlwZSwKICAgICAgICB0ZXh0OiByLlRleHQgfHwgci50ZXh0LAogICAgICAgIG1vdmVHcm91cElkOiByLk1vdmVHcm91cElkID8/IHIubW92ZUdyb3VwSWQsCiAgICAgICAgaXNNb3ZlU291cmNlOiByLklzTW92ZVNvdXJjZSA/PyByLmlzTW92ZVNvdXJjZSwKICAgICAgICBmb3JtYXRDaGFuZ2U6IHIuRm9ybWF0Q2hhbmdlIHx8IHIuZm9ybWF0Q2hhbmdlID8gewogICAgICAgICAgb2xkUHJvcGVydGllczogci5Gb3JtYXRDaGFuZ2U/Lk9sZFByb3BlcnRpZXMgfHwgci5mb3JtYXRDaGFuZ2U/Lm9sZFByb3BlcnRpZXMsCiAgICAgICAgICBuZXdQcm9wZXJ0aWVzOiByLkZvcm1hdENoYW5nZT8uTmV3UHJvcGVydGllcyB8fCByLmZvcm1hdENoYW5nZT8ubmV3UHJvcGVydGllcywKICAgICAgICAgIGNoYW5nZWRQcm9wZXJ0eU5hbWVzOiByLkZvcm1hdENoYW5nZT8uQ2hhbmdlZFByb3BlcnR5TmFtZXMgfHwgci5mb3JtYXRDaGFuZ2U/LmNoYW5nZWRQcm9wZXJ0eU5hbWVzCiAgICAgICAgfSA6IHZvaWQgMAogICAgICB9KQogICAgKTsKICAgIHJldHVybiB7IHJldmlzaW9ucyB9OwogIH0gY2F0Y2ggKGVycm9yKSB7CiAgICByZXR1cm4geyBlcnJvcjogU3RyaW5nKGVycm9yKSB9OwogIH0KfQpmdW5jdGlvbiBoYW5kbGVHZXREb2N1bWVudE1ldGFkYXRhKHJlcXVlc3QpIHsKICBjb25zdCBleHBvcnRzID0gZW5zdXJlSW5pdGlhbGl6ZWQoKTsKICB0cnkgewogICAgY29uc3QgcmVzdWx0ID0gZXhwb3J0cy5Eb2N1bWVudENvbnZlcnRlci5HZXREb2N1bWVudE1ldGFkYXRhKAogICAgICByZXF1ZXN0LmRvY3VtZW50Qnl0ZXMKICAgICk7CiAgICBpZiAoaXNFcnJvclJlc3BvbnNlKHJlc3VsdCkpIHsKICAgICAgcmV0dXJuIHBhcnNlRXJyb3IocmVzdWx0KTsKICAgIH0KICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UocmVzdWx0KTsKICAgIGNvbnN0IGNvbnZlcnRTZWN0aW9uID0gKHMpID0+ICh7CiAgICAgIHNlY3Rpb25JbmRleDogcy5TZWN0aW9uSW5kZXggPz8gcy5zZWN0aW9uSW5kZXgsCiAgICAgIHBhZ2VXaWR0aFB0OiBzLlBhZ2VXaWR0aFB0ID8/IHMucGFnZVdpZHRoUHQsCiAgICAgIHBhZ2VIZWlnaHRQdDogcy5QYWdlSGVpZ2h0UHQgPz8gcy5wYWdlSGVpZ2h0UHQsCiAgICAgIG1hcmdpblRvcFB0OiBzLk1hcmdpblRvcFB0ID8/IHMubWFyZ2luVG9wUHQsCiAgICAgIG1hcmdpblJpZ2h0UHQ6IHMuTWFyZ2luUmlnaHRQdCA/PyBzLm1hcmdpblJpZ2h0UHQsCiAgICAgIG1hcmdpbkJvdHRvbVB0OiBzLk1hcmdpbkJvdHRvbVB0ID8/IHMubWFyZ2luQm90dG9tUHQsCiAgICAgIG1hcmdpbkxlZnRQdDogcy5NYXJnaW5MZWZ0UHQgPz8gcy5tYXJnaW5MZWZ0UHQsCiAgICAgIGNvbnRlbnRXaWR0aFB0OiBzLkNvbnRlbnRXaWR0aFB0ID8/IHMuY29udGVudFdpZHRoUHQsCiAgICAgIGNvbnRlbnRIZWlnaHRQdDogcy5Db250ZW50SGVpZ2h0UHQgPz8gcy5jb250ZW50SGVpZ2h0UHQsCiAgICAgIGhlYWRlclB0OiBzLkhlYWRlclB0ID8/IHMuaGVhZGVyUHQsCiAgICAgIGZvb3RlclB0OiBzLkZvb3RlclB0ID8/IHMuZm9vdGVyUHQsCiAgICAgIHBhcmFncmFwaENvdW50OiBzLlBhcmFncmFwaENvdW50ID8/IHMucGFyYWdyYXBoQ291bnQsCiAgICAgIHRhYmxlQ291bnQ6IHMuVGFibGVDb3VudCA/PyBzLnRhYmxlQ291bnQsCiAgICAgIGhhc0hlYWRlcjogcy5IYXNIZWFkZXIgPz8gcy5oYXNIZWFkZXIsCiAgICAgIGhhc0Zvb3Rlcjogcy5IYXNGb290ZXIgPz8gcy5oYXNGb290ZXIsCiAgICAgIGhhc0ZpcnN0UGFnZUhlYWRlcjogcy5IYXNGaXJzdFBhZ2VIZWFkZXIgPz8gcy5oYXNGaXJzdFBhZ2VIZWFkZXIsCiAgICAgIGhhc0ZpcnN0UGFnZUZvb3Rlcjogcy5IYXNGaXJzdFBhZ2VGb290ZXIgPz8gcy5oYXNGaXJzdFBhZ2VGb290ZXIsCiAgICAgIGhhc0V2ZW5QYWdlSGVhZGVyOiBzLkhhc0V2ZW5QYWdlSGVhZGVyID8/IHMuaGFzRXZlblBhZ2VIZWFkZXIsCiAgICAgIGhhc0V2ZW5QYWdlRm9vdGVyOiBzLkhhc0V2ZW5QYWdlRm9vdGVyID8/IHMuaGFzRXZlblBhZ2VGb290ZXIsCiAgICAgIHN0YXJ0UGFyYWdyYXBoSW5kZXg6IHMuU3RhcnRQYXJhZ3JhcGhJbmRleCA/PyBzLnN0YXJ0UGFyYWdyYXBoSW5kZXgsCiAgICAgIGVuZFBhcmFncmFwaEluZGV4OiBzLkVuZFBhcmFncmFwaEluZGV4ID8/IHMuZW5kUGFyYWdyYXBoSW5kZXgsCiAgICAgIHN0YXJ0VGFibGVJbmRleDogcy5TdGFydFRhYmxlSW5kZXggPz8gcy5zdGFydFRhYmxlSW5kZXgsCiAgICAgIGVuZFRhYmxlSW5kZXg6IHMuRW5kVGFibGVJbmRleCA/PyBzLmVuZFRhYmxlSW5kZXgKICAgIH0pOwogICAgY29uc3QgbWV0YWRhdGEgPSB7CiAgICAgIHNlY3Rpb25zOiAocGFyc2VkLlNlY3Rpb25zIHx8IHBhcnNlZC5zZWN0aW9ucyB8fCBbXSkubWFwKGNvbnZlcnRTZWN0aW9uKSwKICAgICAgdG90YWxQYXJhZ3JhcGhzOiBwYXJzZWQuVG90YWxQYXJhZ3JhcGhzID8/IHBhcnNlZC50b3RhbFBhcmFncmFwaHMsCiAgICAgIHRvdGFsVGFibGVzOiBwYXJzZWQuVG90YWxUYWJsZXMgPz8gcGFyc2VkLnRvdGFsVGFibGVzLAogICAgICBoYXNGb290bm90ZXM6IHBhcnNlZC5IYXNGb290bm90ZXMgPz8gcGFyc2VkLmhhc0Zvb3Rub3RlcywKICAgICAgaGFzRW5kbm90ZXM6IHBhcnNlZC5IYXNFbmRub3RlcyA/PyBwYXJzZWQuaGFzRW5kbm90ZXMsCiAgICAgIGhhc1RyYWNrZWRDaGFuZ2VzOiBwYXJzZWQuSGFzVHJhY2tlZENoYW5nZXMgPz8gcGFyc2VkLmhhc1RyYWNrZWRDaGFuZ2VzLAogICAgICBoYXNDb21tZW50czogcGFyc2VkLkhhc0NvbW1lbnRzID8/IHBhcnNlZC5oYXNDb21tZW50cywKICAgICAgZXN0aW1hdGVkUGFnZUNvdW50OiBwYXJzZWQuRXN0aW1hdGVkUGFnZUNvdW50ID8/IHBhcnNlZC5lc3RpbWF0ZWRQYWdlQ291bnQKICAgIH07CiAgICByZXR1cm4geyBtZXRhZGF0YSB9OwogIH0gY2F0Y2ggKGVycm9yKSB7CiAgICByZXR1cm4geyBlcnJvcjogU3RyaW5nKGVycm9yKSB9OwogIH0KfQpmdW5jdGlvbiBoYW5kbGVHZXRWZXJzaW9uKCkgewogIGNvbnN0IGV4cG9ydHMgPSBlbnN1cmVJbml0aWFsaXplZCgpOwogIHRyeSB7CiAgICBjb25zdCByZXN1bHQgPSBleHBvcnRzLkRvY3VtZW50Q29udmVydGVyLkdldFZlcnNpb24oKTsKICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UocmVzdWx0KTsKICAgIHJldHVybiB7CiAgICAgIHZlcnNpb246IHsKICAgICAgICBsaWJyYXJ5OiBwYXJzZWQuTGlicmFyeSB8fCBwYXJzZWQubGlicmFyeSwKICAgICAgICBkb3RuZXRWZXJzaW9uOiBwYXJzZWQuRG90bmV0VmVyc2lvbiB8fCBwYXJzZWQuZG90bmV0VmVyc2lvbiwKICAgICAgICBwbGF0Zm9ybTogcGFyc2VkLlBsYXRmb3JtIHx8IHBhcnNlZC5wbGF0Zm9ybQogICAgICB9CiAgICB9OwogIH0gY2F0Y2ggKGVycm9yKSB7CiAgICByZXR1cm4geyBlcnJvcjogU3RyaW5nKGVycm9yKSB9OwogIH0KfQpzZWxmLm9ubWVzc2FnZSA9IGFzeW5jIChldmVudCkgPT4gewogIGNvbnN0IHJlcXVlc3QgPSBldmVudC5kYXRhOwogIHRyeSB7CiAgICBsZXQgcmVzcG9uc2U7CiAgICBzd2l0Y2ggKHJlcXVlc3QudHlwZSkgewogICAgICBjYXNlICJpbml0IjogewogICAgICAgIGNvbnN0IGluaXRSZXF1ZXN0ID0gcmVxdWVzdDsKICAgICAgICB0cnkgewogICAgICAgICAgYXdhaXQgaW5pdGlhbGl6ZVdhc20oaW5pdFJlcXVlc3Qud2FzbUJhc2VQYXRoKTsKICAgICAgICAgIHJlc3BvbnNlID0gewogICAgICAgICAgICBpZDogcmVxdWVzdC5pZCwKICAgICAgICAgICAgdHlwZTogImluaXQiLAogICAgICAgICAgICBzdWNjZXNzOiB0cnVlCiAgICAgICAgICB9OwogICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgICByZXNwb25zZSA9IHsKICAgICAgICAgICAgaWQ6IHJlcXVlc3QuaWQsCiAgICAgICAgICAgIHR5cGU6ICJpbml0IiwKICAgICAgICAgICAgc3VjY2VzczogZmFsc2UsCiAgICAgICAgICAgIGVycm9yOiBTdHJpbmcoZXJyb3IpCiAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICBicmVhazsKICAgICAgfQogICAgICBjYXNlICJjb252ZXJ0RG9jeFRvSHRtbCI6IHsKICAgICAgICBjb25zdCBjb252ZXJ0UmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgICAgY29uc3QgcmVzdWx0ID0gaGFuZGxlQ29udmVydChjb252ZXJ0UmVxdWVzdCk7CiAgICAgICAgcmVzcG9uc2UgPSB7CiAgICAgICAgICBpZDogcmVxdWVzdC5pZCwKICAgICAgICAgIHR5cGU6ICJjb252ZXJ0RG9jeFRvSHRtbCIsCiAgICAgICAgICBzdWNjZXNzOiAhcmVzdWx0LmVycm9yLAogICAgICAgICAgaHRtbDogcmVzdWx0Lmh0bWwsCiAgICAgICAgICBlcnJvcjogcmVzdWx0LmVycm9yCiAgICAgICAgfTsKICAgICAgICBicmVhazsKICAgICAgfQogICAgICBjYXNlICJjb21wYXJlRG9jdW1lbnRzIjogewogICAgICAgIGNvbnN0IGNvbXBhcmVSZXF1ZXN0ID0gcmVxdWVzdDsKICAgICAgICBjb25zdCByZXN1bHQgPSBoYW5kbGVDb21wYXJlKGNvbXBhcmVSZXF1ZXN0KTsKICAgICAgICByZXNwb25zZSA9IHsKICAgICAgICAgIGlkOiByZXF1ZXN0LmlkLAogICAgICAgICAgdHlwZTogImNvbXBhcmVEb2N1bWVudHMiLAogICAgICAgICAgc3VjY2VzczogIXJlc3VsdC5lcnJvciwKICAgICAgICAgIGRvY3VtZW50Qnl0ZXM6IHJlc3VsdC5kb2N1bWVudEJ5dGVzLAogICAgICAgICAgZXJyb3I6IHJlc3VsdC5lcnJvcgogICAgICAgIH07CiAgICAgICAgaWYgKHJlc3VsdC5kb2N1bWVudEJ5dGVzKSB7CiAgICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKHJlc3BvbnNlLCB7IHRyYW5zZmVyOiBbcmVzdWx0LmRvY3VtZW50Qnl0ZXMuYnVmZmVyXSB9KTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgICAgY2FzZSAiY29tcGFyZURvY3VtZW50c1RvSHRtbCI6IHsKICAgICAgICBjb25zdCBjb21wYXJlVG9IdG1sUmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgICAgY29uc3QgcmVzdWx0ID0gaGFuZGxlQ29tcGFyZVRvSHRtbChjb21wYXJlVG9IdG1sUmVxdWVzdCk7CiAgICAgICAgcmVzcG9uc2UgPSB7CiAgICAgICAgICBpZDogcmVxdWVzdC5pZCwKICAgICAgICAgIHR5cGU6ICJjb21wYXJlRG9jdW1lbnRzVG9IdG1sIiwKICAgICAgICAgIHN1Y2Nlc3M6ICFyZXN1bHQuZXJyb3IsCiAgICAgICAgICBodG1sOiByZXN1bHQuaHRtbCwKICAgICAgICAgIGVycm9yOiByZXN1bHQuZXJyb3IKICAgICAgICB9OwogICAgICAgIGJyZWFrOwogICAgICB9CiAgICAgIGNhc2UgImdldFJldmlzaW9ucyI6IHsKICAgICAgICBjb25zdCBnZXRSZXZpc2lvbnNSZXF1ZXN0ID0gcmVxdWVzdDsKICAgICAgICBjb25zdCByZXN1bHQgPSBoYW5kbGVHZXRSZXZpc2lvbnMoZ2V0UmV2aXNpb25zUmVxdWVzdCk7CiAgICAgICAgcmVzcG9uc2UgPSB7CiAgICAgICAgICBpZDogcmVxdWVzdC5pZCwKICAgICAgICAgIHR5cGU6ICJnZXRSZXZpc2lvbnMiLAogICAgICAgICAgc3VjY2VzczogIXJlc3VsdC5lcnJvciwKICAgICAgICAgIHJldmlzaW9uczogcmVzdWx0LnJldmlzaW9ucywKICAgICAgICAgIGVycm9yOiByZXN1bHQuZXJyb3IKICAgICAgICB9OwogICAgICAgIGJyZWFrOwogICAgICB9CiAgICAgIGNhc2UgImdldERvY3VtZW50TWV0YWRhdGEiOiB7CiAgICAgICAgY29uc3QgZ2V0TWV0YWRhdGFSZXF1ZXN0ID0gcmVxdWVzdDsKICAgICAgICBjb25zdCByZXN1bHQgPSBoYW5kbGVHZXREb2N1bWVudE1ldGFkYXRhKGdldE1ldGFkYXRhUmVxdWVzdCk7CiAgICAgICAgcmVzcG9uc2UgPSB7CiAgICAgICAgICBpZDogcmVxdWVzdC5pZCwKICAgICAgICAgIHR5cGU6ICJnZXREb2N1bWVudE1ldGFkYXRhIiwKICAgICAgICAgIHN1Y2Nlc3M6ICFyZXN1bHQuZXJyb3IsCiAgICAgICAgICBtZXRhZGF0YTogcmVzdWx0Lm1ldGFkYXRhLAogICAgICAgICAgZXJyb3I6IHJlc3VsdC5lcnJvcgogICAgICAgIH07CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgICAgY2FzZSAiZ2V0VmVyc2lvbiI6IHsKICAgICAgICBjb25zdCByZXN1bHQgPSBoYW5kbGVHZXRWZXJzaW9uKCk7CiAgICAgICAgcmVzcG9uc2UgPSB7CiAgICAgICAgICBpZDogcmVxdWVzdC5pZCwKICAgICAgICAgIHR5cGU6ICJnZXRWZXJzaW9uIiwKICAgICAgICAgIHN1Y2Nlc3M6ICFyZXN1bHQuZXJyb3IsCiAgICAgICAgICB2ZXJzaW9uOiByZXN1bHQudmVyc2lvbiwKICAgICAgICAgIGVycm9yOiByZXN1bHQuZXJyb3IKICAgICAgICB9OwogICAgICAgIGJyZWFrOwogICAgICB9CiAgICAgIGRlZmF1bHQ6IHsKICAgICAgICBjb25zdCB1bmtub3duUmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgICAgc2VsZi5wb3N0TWVzc2FnZSh7CiAgICAgICAgICBpZDogdW5rbm93blJlcXVlc3QuaWQsCiAgICAgICAgICB0eXBlOiB1bmtub3duUmVxdWVzdC50eXBlLAogICAgICAgICAgc3VjY2VzczogZmFsc2UsCiAgICAgICAgICBlcnJvcjogYFVua25vd24gcmVxdWVzdCB0eXBlOiAke3Vua25vd25SZXF1ZXN0LnR5cGV9YAogICAgICAgIH0pOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgfQogICAgc2VsZi5wb3N0TWVzc2FnZShyZXNwb25zZSk7CiAgfSBjYXRjaCAoZXJyb3IpIHsKICAgIHNlbGYucG9zdE1lc3NhZ2UoewogICAgICBpZDogcmVxdWVzdC5pZCwKICAgICAgdHlwZTogcmVxdWVzdC50eXBlLAogICAgICBzdWNjZXNzOiBmYWxzZSwKICAgICAgZXJyb3I6IFN0cmluZyhlcnJvcikKICAgIH0pOwogIH0KfTsKc2VsZi5wb3N0TWVzc2FnZSh7IHR5cGU6ICJyZWFkeSIgfSk7Cg==", import.meta.url).href, A = new Worker(Z, { type: "module" }), m = /* @__PURE__ */ new Map();
27
+ let C = !0;
28
+ A.onmessage = (t) => {
29
+ const i = t.data;
30
+ if (i.type === "ready")
31
31
  return;
32
- const s = m.get(C.id);
33
- s && (m.delete(C.id), C.success ? s.resolve(C) : s.reject(new Error(C.error || "Unknown error")));
34
- }, b.onerror = (I) => {
35
- for (const C of m.values())
36
- C.reject(new Error(`Worker error: ${I.message}`));
37
- m.clear(), r = !1;
32
+ const d = m.get(i.id);
33
+ d && (m.delete(i.id), i.success ? d.resolve(i) : d.reject(new Error(i.error || "Unknown error")));
34
+ }, A.onerror = (t) => {
35
+ for (const i of m.values())
36
+ i.reject(new Error(`Worker error: ${t.message}`));
37
+ m.clear(), C = !1;
38
38
  };
39
- function a(I, C) {
40
- return new Promise((s, A) => {
41
- if (!r) {
42
- A(new Error("Worker has been terminated"));
39
+ function l(t, i) {
40
+ return new Promise((d, b) => {
41
+ if (!C) {
42
+ b(new Error("Worker has been terminated"));
43
43
  return;
44
44
  }
45
- m.set(I.id, { resolve: s, reject: A }), C && C.length > 0 ? b.postMessage(I, C) : b.postMessage(I);
45
+ m.set(t.id, { resolve: d, reject: b }), i && i.length > 0 ? A.postMessage(t, i) : A.postMessage(t);
46
46
  });
47
47
  }
48
- const V = await a({
49
- id: H(),
48
+ const h = await l({
49
+ id: z(),
50
50
  type: "init",
51
- wasmBasePath: i
51
+ wasmBasePath: s
52
52
  });
53
- if (!V.success)
54
- throw b.terminate(), new Error(`Failed to initialize worker: ${V.error}`);
53
+ if (!h.success)
54
+ throw A.terminate(), new Error(`Failed to initialize worker: ${h.error}`);
55
55
  return {
56
- async convertDocxToHtml(I, C) {
57
- const s = await w(I);
58
- return (await a({
59
- id: H(),
56
+ async convertDocxToHtml(t, i) {
57
+ const d = await w(t);
58
+ return (await l({
59
+ id: z(),
60
60
  type: "convertDocxToHtml",
61
- documentBytes: s,
62
- options: C
63
- }, [s.buffer])).html;
61
+ documentBytes: d,
62
+ options: i
63
+ }, [d.buffer])).html;
64
64
  },
65
- async compareDocuments(I, C, s) {
66
- const A = await w(I), Z = await w(C);
67
- return (await a({
68
- id: H(),
65
+ async compareDocuments(t, i, d) {
66
+ const b = await w(t), y = await w(i);
67
+ return (await l({
68
+ id: z(),
69
69
  type: "compareDocuments",
70
- originalBytes: A,
71
- modifiedBytes: Z,
72
- options: s
73
- }, [A.buffer, Z.buffer])).documentBytes;
70
+ originalBytes: b,
71
+ modifiedBytes: y,
72
+ options: d
73
+ }, [b.buffer, y.buffer])).documentBytes;
74
74
  },
75
- async compareDocumentsToHtml(I, C, s) {
76
- const A = await w(I), Z = await w(C);
77
- return (await a({
78
- id: H(),
75
+ async compareDocumentsToHtml(t, i, d) {
76
+ const b = await w(t), y = await w(i);
77
+ return (await l({
78
+ id: z(),
79
79
  type: "compareDocumentsToHtml",
80
- originalBytes: A,
81
- modifiedBytes: Z,
82
- options: s
83
- }, [A.buffer, Z.buffer])).html;
80
+ originalBytes: b,
81
+ modifiedBytes: y,
82
+ options: d
83
+ }, [b.buffer, y.buffer])).html;
84
84
  },
85
- async getRevisions(I, C) {
86
- const s = await w(I);
87
- return (await a({
88
- id: H(),
85
+ async getRevisions(t, i) {
86
+ const d = await w(t);
87
+ return (await l({
88
+ id: z(),
89
89
  type: "getRevisions",
90
- documentBytes: s,
91
- options: C
92
- }, [s.buffer])).revisions;
90
+ documentBytes: d,
91
+ options: i
92
+ }, [d.buffer])).revisions;
93
93
  },
94
- async getDocumentMetadata(I) {
95
- const C = await w(I);
96
- return (await a({
97
- id: H(),
94
+ async getDocumentMetadata(t) {
95
+ const i = await w(t);
96
+ return (await l({
97
+ id: z(),
98
98
  type: "getDocumentMetadata",
99
- documentBytes: C
100
- }, [C.buffer])).metadata;
101
- },
102
- async renderPageRange(I, C, s, A) {
103
- const Z = await w(I);
104
- return (await a({
105
- id: H(),
106
- type: "renderPageRange",
107
- documentBytes: Z,
108
- startPage: C,
109
- endPage: s,
110
- options: A
111
- }, [Z.buffer])).html;
99
+ documentBytes: i
100
+ }, [i.buffer])).metadata;
112
101
  },
113
102
  async getVersion() {
114
- return (await a({
115
- id: H(),
103
+ return (await l({
104
+ id: z(),
116
105
  type: "getVersion"
117
106
  })).version;
118
107
  },
119
108
  terminate() {
120
- r = !1, b.terminate();
121
- for (const I of m.values())
122
- I.reject(new Error("Worker terminated"));
109
+ C = !1, A.terminate();
110
+ for (const t of m.values())
111
+ t.reject(new Error("Worker terminated"));
123
112
  m.clear();
124
113
  },
125
114
  isActive() {
126
- return r;
115
+ return C;
127
116
  }
128
117
  };
129
118
  }
130
- function og() {
119
+ function sn() {
131
120
  return typeof Worker < "u";
132
121
  }
133
- const rg = {
122
+ const dn = {
134
123
  paginationScale: 0.8,
135
124
  showPageNumbers: !0,
136
125
  renderFootnotesAndEndnotes: !0,
@@ -147,15 +136,15 @@ const rg = {
147
136
  commentCssClassPrefix: "comment-",
148
137
  annotationCssClassPrefix: "annot-"
149
138
  };
150
- function Ag(n) {
151
- return Ce(n) ? "Inserted" : le(n) ? "Deleted" : M(n) ? n.isMoveSource ? "Moved from" : "Moved to" : D(n) ? "Formatted" : String(n.revisionType);
139
+ function on(g) {
140
+ return ce(g) ? "Inserted" : ge(g) ? "Deleted" : U(g) ? g.isMoveSource ? "Moved from" : "Moved to" : D(g) ? "Formatted" : String(g.revisionType);
152
141
  }
153
- function bg(n) {
154
- return Ce(n) ? "rdv-revision--insertion" : le(n) ? "rdv-revision--deletion" : M(n) ? "rdv-revision--move" : D(n) ? "rdv-revision--format" : "";
142
+ function Cn(g) {
143
+ return ce(g) ? "rdv-revision--insertion" : ge(g) ? "rdv-revision--deletion" : U(g) ? "rdv-revision--move" : D(g) ? "rdv-revision--format" : "";
155
144
  }
156
- function mg(n) {
145
+ function rn(g) {
157
146
  try {
158
- return new Date(n).toLocaleDateString(void 0, {
147
+ return new Date(g).toLocaleDateString(void 0, {
159
148
  year: "numeric",
160
149
  month: "short",
161
150
  day: "numeric",
@@ -163,352 +152,339 @@ function mg(n) {
163
152
  minute: "2-digit"
164
153
  });
165
154
  } catch {
166
- return n;
155
+ return g;
167
156
  }
168
157
  }
169
- function Zg(n, i = 150) {
170
- return n.length <= i ? n : n.substring(0, i) + "...";
158
+ function An(g, s = 150) {
159
+ return g.length <= s ? g : g.substring(0, s) + "...";
171
160
  }
172
- function ue(n) {
173
- return !(!n || typeof n != "string" || n.includes("<") || n.includes("xmlns") || n.includes("Unid=") || n.length > 100);
161
+ function me(g) {
162
+ return !(!g || typeof g != "string" || g.includes("<") || g.includes("xmlns") || g.includes("Unid=") || g.length > 100);
174
163
  }
175
- function Ye(n) {
176
- return n.replace(/([A-Z])/g, " $1").replace(/^./, (i) => i.toUpperCase()).trim();
164
+ function Fe(g) {
165
+ return g.replace(/([A-Z])/g, " $1").replace(/^./, (s) => s.toUpperCase()).trim();
177
166
  }
178
- function he(n) {
179
- return n === "true" ? "Yes" : n === "false" ? "No" : n === "single" ? "Single" : n === "double" ? "Double" : n;
167
+ function be(g) {
168
+ return g === "true" ? "Yes" : g === "false" ? "No" : g === "single" ? "Single" : g === "double" ? "Double" : g;
180
169
  }
181
- function ug(n) {
182
- if (!n.formatChange) return [];
183
- const { oldProperties: i, newProperties: y } = n.formatChange, b = [], m = /* @__PURE__ */ new Set();
184
- if (i)
185
- for (const [r, a] of Object.entries(i)) {
186
- if (!ue(a)) continue;
187
- m.add(r);
188
- const V = y?.[r];
189
- b.push({
190
- property: Ye(r),
191
- oldValue: he(a),
192
- newValue: V && ue(V) ? he(V) : void 0
170
+ function mn(g) {
171
+ if (!g.formatChange) return [];
172
+ const { oldProperties: s, newProperties: Z } = g.formatChange, A = [], m = /* @__PURE__ */ new Set();
173
+ if (s)
174
+ for (const [C, l] of Object.entries(s)) {
175
+ if (!me(l)) continue;
176
+ m.add(C);
177
+ const h = Z?.[C];
178
+ A.push({
179
+ property: Fe(C),
180
+ oldValue: be(l),
181
+ newValue: h && me(h) ? be(h) : void 0
193
182
  });
194
183
  }
195
- if (y)
196
- for (const [r, a] of Object.entries(y))
197
- m.has(r) || ue(a) && b.push({
198
- property: Ye(r),
184
+ if (Z)
185
+ for (const [C, l] of Object.entries(Z))
186
+ m.has(C) || me(l) && A.push({
187
+ property: Fe(C),
199
188
  oldValue: void 0,
200
- newValue: he(a)
189
+ newValue: be(l)
201
190
  });
202
- return b;
191
+ return A;
203
192
  }
204
- function hg({ revisions: n }) {
205
- const [i, y] = d("all"), [b, m] = d(/* @__PURE__ */ new Set()), r = te(() => i === "all" ? n : n.filter((I) => {
206
- switch (i) {
193
+ function bn({ revisions: g }) {
194
+ const [s, Z] = o("all"), [A, m] = o(/* @__PURE__ */ new Set()), C = ne(() => s === "all" ? g : g.filter((t) => {
195
+ switch (s) {
207
196
  case "insertions":
208
- return Ce(I);
197
+ return ce(t);
209
198
  case "deletions":
210
- return le(I);
199
+ return ge(t);
211
200
  case "moves":
212
- return M(I);
201
+ return U(t);
213
202
  case "formatting":
214
- return D(I);
203
+ return D(t);
215
204
  default:
216
205
  return !0;
217
206
  }
218
- }), [n, i]), a = te(() => ({
219
- total: n.length,
220
- insertions: n.filter(Ce).length,
221
- deletions: n.filter(le).length,
222
- moves: n.filter(M).length,
223
- formatting: n.filter(D).length
224
- }), [n]), V = (I) => {
225
- m((C) => {
226
- const s = new Set(C);
227
- return s.has(I) ? s.delete(I) : s.add(I), s;
207
+ }), [g, s]), l = ne(() => ({
208
+ total: g.length,
209
+ insertions: g.filter(ce).length,
210
+ deletions: g.filter(ge).length,
211
+ moves: g.filter(U).length,
212
+ formatting: g.filter(D).length
213
+ }), [g]), h = (t) => {
214
+ m((i) => {
215
+ const d = new Set(i);
216
+ return d.has(t) ? d.delete(t) : d.add(t), d;
228
217
  });
229
218
  };
230
- return n.length === 0 ? /* @__PURE__ */ e("div", { className: "rdv-revision-panel", children: /* @__PURE__ */ c("div", { className: "rdv-revision-empty", children: [
219
+ return g.length === 0 ? /* @__PURE__ */ e("div", { className: "rdv-revision-panel", children: /* @__PURE__ */ c("div", { className: "rdv-revision-empty", children: [
231
220
  /* @__PURE__ */ e("div", { className: "rdv-revision-empty__icon", children: "📝" }),
232
221
  /* @__PURE__ */ e("p", { children: "No tracked changes found in this document." })
233
222
  ] }) }) : /* @__PURE__ */ c("div", { className: "rdv-revision-panel", children: [
234
223
  /* @__PURE__ */ c("div", { className: "rdv-revision-header", children: [
235
224
  /* @__PURE__ */ c("div", { className: "rdv-revision-stats", children: [
236
225
  /* @__PURE__ */ c("span", { className: "rdv-revision-stat rdv-revision-stat--total", children: [
237
- a.total,
226
+ l.total,
238
227
  " change",
239
- a.total !== 1 ? "s" : ""
228
+ l.total !== 1 ? "s" : ""
240
229
  ] }),
241
- a.insertions > 0 && /* @__PURE__ */ c("span", { className: "rdv-revision-stat rdv-revision-stat--insertion", children: [
230
+ l.insertions > 0 && /* @__PURE__ */ c("span", { className: "rdv-revision-stat rdv-revision-stat--insertion", children: [
242
231
  "+",
243
- a.insertions
232
+ l.insertions
244
233
  ] }),
245
- a.deletions > 0 && /* @__PURE__ */ c("span", { className: "rdv-revision-stat rdv-revision-stat--deletion", children: [
234
+ l.deletions > 0 && /* @__PURE__ */ c("span", { className: "rdv-revision-stat rdv-revision-stat--deletion", children: [
246
235
  "−",
247
- a.deletions
236
+ l.deletions
248
237
  ] }),
249
- a.moves > 0 && /* @__PURE__ */ c("span", { className: "rdv-revision-stat rdv-revision-stat--move", children: [
238
+ l.moves > 0 && /* @__PURE__ */ c("span", { className: "rdv-revision-stat rdv-revision-stat--move", children: [
250
239
  "↔",
251
- a.moves
240
+ l.moves
252
241
  ] }),
253
- a.formatting > 0 && /* @__PURE__ */ c("span", { className: "rdv-revision-stat rdv-revision-stat--format", children: [
242
+ l.formatting > 0 && /* @__PURE__ */ c("span", { className: "rdv-revision-stat rdv-revision-stat--format", children: [
254
243
  "✎",
255
- a.formatting
244
+ l.formatting
256
245
  ] })
257
246
  ] }),
258
247
  /* @__PURE__ */ c(
259
248
  "select",
260
249
  {
261
250
  className: "rdv-revision-filter",
262
- value: i,
263
- onChange: (I) => y(I.target.value),
251
+ value: s,
252
+ onChange: (t) => Z(t.target.value),
264
253
  children: [
265
254
  /* @__PURE__ */ e("option", { value: "all", children: "All Changes" }),
266
255
  /* @__PURE__ */ c("option", { value: "insertions", children: [
267
256
  "Insertions (",
268
- a.insertions,
257
+ l.insertions,
269
258
  ")"
270
259
  ] }),
271
260
  /* @__PURE__ */ c("option", { value: "deletions", children: [
272
261
  "Deletions (",
273
- a.deletions,
262
+ l.deletions,
274
263
  ")"
275
264
  ] }),
276
265
  /* @__PURE__ */ c("option", { value: "moves", children: [
277
266
  "Moves (",
278
- a.moves,
267
+ l.moves,
279
268
  ")"
280
269
  ] }),
281
270
  /* @__PURE__ */ c("option", { value: "formatting", children: [
282
271
  "Formatting (",
283
- a.formatting,
272
+ l.formatting,
284
273
  ")"
285
274
  ] })
286
275
  ]
287
276
  }
288
277
  )
289
278
  ] }),
290
- /* @__PURE__ */ e("div", { className: "rdv-revision-list", children: r.map((I, C) => {
291
- const s = b.has(C), A = I.text.length > 150, Z = D(I) ? ug(I) : [];
279
+ /* @__PURE__ */ e("div", { className: "rdv-revision-list", children: C.map((t, i) => {
280
+ const d = A.has(i), b = t.text.length > 150, y = D(t) ? mn(t) : [];
292
281
  return /* @__PURE__ */ c(
293
282
  "div",
294
283
  {
295
- className: `rdv-revision-item ${bg(I)}`,
284
+ className: `rdv-revision-item ${Cn(t)}`,
296
285
  children: [
297
286
  /* @__PURE__ */ c("div", { className: "rdv-revision-item__header", children: [
298
- /* @__PURE__ */ e("span", { className: "rdv-revision-type", children: Ag(I) }),
299
- M(I) && I.moveGroupId !== void 0 && /* @__PURE__ */ c("span", { className: "rdv-revision-move-id", children: [
287
+ /* @__PURE__ */ e("span", { className: "rdv-revision-type", children: on(t) }),
288
+ U(t) && t.moveGroupId !== void 0 && /* @__PURE__ */ c("span", { className: "rdv-revision-move-id", children: [
300
289
  "#",
301
- I.moveGroupId
290
+ t.moveGroupId
302
291
  ] }),
303
- /* @__PURE__ */ e("span", { className: "rdv-revision-author", children: I.author || "Unknown" }),
304
- /* @__PURE__ */ e("span", { className: "rdv-revision-date", children: mg(I.date) })
292
+ /* @__PURE__ */ e("span", { className: "rdv-revision-author", children: t.author || "Unknown" }),
293
+ /* @__PURE__ */ e("span", { className: "rdv-revision-date", children: rn(t.date) })
305
294
  ] }),
306
- I.text && /* @__PURE__ */ c("div", { className: "rdv-revision-item__content", children: [
307
- /* @__PURE__ */ e("span", { className: "rdv-revision-text", children: s ? I.text : Zg(I.text) }),
308
- A && /* @__PURE__ */ e(
295
+ t.text && /* @__PURE__ */ c("div", { className: "rdv-revision-item__content", children: [
296
+ /* @__PURE__ */ e("span", { className: "rdv-revision-text", children: d ? t.text : An(t.text) }),
297
+ b && /* @__PURE__ */ e(
309
298
  "button",
310
299
  {
311
300
  className: "rdv-revision-expand",
312
- onClick: () => V(C),
313
- children: s ? "Show less" : "Show more"
301
+ onClick: () => h(i),
302
+ children: d ? "Show less" : "Show more"
314
303
  }
315
304
  )
316
305
  ] }),
317
- Z.length > 0 && /* @__PURE__ */ e("div", { className: "rdv-revision-item__format-details", children: Z.map((o, ae) => /* @__PURE__ */ c("div", { className: "rdv-format-change", children: [
318
- /* @__PURE__ */ e("span", { className: "rdv-format-change__property", children: o.property }),
306
+ y.length > 0 && /* @__PURE__ */ e("div", { className: "rdv-revision-item__format-details", children: y.map((r, te) => /* @__PURE__ */ c("div", { className: "rdv-format-change", children: [
307
+ /* @__PURE__ */ e("span", { className: "rdv-format-change__property", children: r.property }),
319
308
  /* @__PURE__ */ c("span", { className: "rdv-format-change__values", children: [
320
- o.oldValue && /* @__PURE__ */ e("span", { className: "rdv-format-change__old", children: o.oldValue }),
321
- o.oldValue && o.newValue && /* @__PURE__ */ e("span", { className: "rdv-format-change__arrow", children: "→" }),
322
- o.newValue && /* @__PURE__ */ e("span", { className: "rdv-format-change__new", children: o.newValue }),
323
- !o.oldValue && o.newValue && /* @__PURE__ */ e("span", { className: "rdv-format-change__added", children: "(added)" }),
324
- o.oldValue && !o.newValue && /* @__PURE__ */ e("span", { className: "rdv-format-change__removed", children: "(removed)" })
309
+ r.oldValue && /* @__PURE__ */ e("span", { className: "rdv-format-change__old", children: r.oldValue }),
310
+ r.oldValue && r.newValue && /* @__PURE__ */ e("span", { className: "rdv-format-change__arrow", children: "→" }),
311
+ r.newValue && /* @__PURE__ */ e("span", { className: "rdv-format-change__new", children: r.newValue }),
312
+ !r.oldValue && r.newValue && /* @__PURE__ */ e("span", { className: "rdv-format-change__added", children: "(added)" }),
313
+ r.oldValue && !r.newValue && /* @__PURE__ */ e("span", { className: "rdv-format-change__removed", children: "(removed)" })
325
314
  ] })
326
- ] }, ae)) })
315
+ ] }, te)) })
327
316
  ]
328
317
  },
329
- C
318
+ i
330
319
  );
331
320
  }) })
332
321
  ] });
333
322
  }
334
- function fe(n) {
335
- switch (n) {
323
+ function un(g) {
324
+ switch (g) {
336
325
  case "endnote":
337
- return Ie.EndnoteStyle;
326
+ return ee.EndnoteStyle;
338
327
  case "inline":
339
- return Ie.Inline;
328
+ return ee.Inline;
340
329
  case "margin":
341
- return Ie.Margin;
330
+ return ee.Margin;
342
331
  default:
343
- return Ie.Disabled;
332
+ return ee.Disabled;
344
333
  }
345
334
  }
346
- function vg(n) {
347
- switch (n) {
335
+ function Zn(g) {
336
+ switch (g) {
348
337
  case "above":
349
- return ce.Above;
338
+ return q.Above;
350
339
  case "inline":
351
- return ce.Inline;
340
+ return q.Inline;
352
341
  case "tooltip":
353
- return ce.Tooltip;
342
+ return q.Tooltip;
354
343
  case "none":
355
- return ce.None;
344
+ return q.None;
356
345
  default:
357
346
  return;
358
347
  }
359
348
  }
360
- function Gg({
361
- file: n,
362
- html: i,
363
- onFileChange: y,
364
- onConversionStart: b,
349
+ function pn({
350
+ file: g,
351
+ html: s,
352
+ onFileChange: Z,
353
+ onConversionStart: A,
365
354
  onConversionComplete: m,
366
- onError: r,
367
- onPageChange: a,
368
- onRevisionsExtracted: V,
369
- settings: I,
370
- defaultSettings: C,
371
- onSettingsChange: s,
372
- className: A,
373
- style: Z,
374
- toolbar: o = "top",
375
- showSettingsButton: ae = !0,
376
- showRevisionsTab: k = !0,
377
- placeholder: ke = "Open a DOCX file to view",
378
- wasmBasePath: L,
379
- useWorker: v = !0,
380
- useLazyLoading: u = !0
355
+ onError: C,
356
+ onPageChange: l,
357
+ onRevisionsExtracted: h,
358
+ settings: t,
359
+ defaultSettings: i,
360
+ onSettingsChange: d,
361
+ className: b,
362
+ style: y,
363
+ toolbar: r = "top",
364
+ showSettingsButton: te = !0,
365
+ showRevisionsTab: P = !0,
366
+ placeholder: fe = "Open a DOCX file to view",
367
+ wasmBasePath: Ie,
368
+ useWorker: u = !0
381
369
  }) {
382
- const ie = te(
383
- () => ({ ...rg, ...C }),
384
- [C]
385
- ), [Qe, ve] = d(null), [Se, O] = d(null), [ye, Ke] = d(ie), h = n !== void 0 ? n : Qe, B = i !== void 0 ? i : Se, t = te(
386
- () => I ? { ...ie, ...I } : ye,
387
- [I, ie, ye]
388
- ), z = tg(L), [N, Ve] = d(null), [Pe, pe] = d(!1), [Ue, se] = d(!1), [xe, We] = d(null), j = Fe(null);
389
- ne(() => {
390
- if (u || !v || !og())
370
+ const ae = ne(
371
+ () => ({ ...dn, ...i }),
372
+ [i]
373
+ ), [Ye, ue] = o(null), [Je, x] = o(null), [Ze, ke] = o(ae), N = g !== void 0 ? g : Ye, G = s !== void 0 ? s : Je, a = ne(
374
+ () => t ? { ...ae, ...t } : Ze,
375
+ [t, ae, Ze]
376
+ ), R = gn(Ie), [W, he] = o(null), [Ke, ve] = o(!1), [Se, le] = o(!1), [Qe, Ve] = o(null), M = we(null);
377
+ $(() => {
378
+ if (!u || !sn())
391
379
  return;
392
- let g = !1;
393
- return se(!0), We(null), dg({ wasmBasePath: L }).then((l) => {
394
- g ? l.terminate() : (j.current = l, Ve(l), pe(!0), se(!1));
395
- }).catch((l) => {
396
- g || (We(l instanceof Error ? l : new Error(String(l))), se(!1));
380
+ let n = !1;
381
+ return le(!0), Ve(null), ln({ wasmBasePath: Ie }).then((I) => {
382
+ n ? I.terminate() : (M.current = I, he(I), ve(!0), le(!1));
383
+ }).catch((I) => {
384
+ n || (Ve(I instanceof Error ? I : new Error(String(I))), le(!1));
397
385
  }), () => {
398
- g = !0, j.current && (j.current.terminate(), j.current = null, Ve(null), pe(!1));
386
+ n = !0, M.current && (M.current.terminate(), M.current = null, he(null), ve(!1));
399
387
  };
400
- }, [u, v, L]);
401
- const J = u ? !0 : v ? Pe : z.isReady, Q = u ? !1 : v ? Ue : z.isLoading, E = u ? null : v ? xe : z.error, [X, Ge] = d(!1), [de, T] = d(null), [Be, Ne] = d(""), [R, oe] = d(1), [G, _] = d(0), [De, $] = d(!1), [Y, S] = d("document"), [re, K] = d([]), [Me, Xe] = d(!1), [f, P] = d(null), q = Fe(null), Ae = F(() => ({
402
- commentRenderMode: fe(t.commentMode),
403
- pageTitle: t.pageTitle,
404
- cssPrefix: t.cssPrefix,
405
- fabricateClasses: t.fabricateClasses,
406
- additionalCss: t.additionalCss || void 0,
407
- commentCssClassPrefix: t.commentCssClassPrefix,
408
- paginationMode: ag.Paginated,
409
- paginationScale: t.paginationScale,
410
- renderAnnotations: t.annotationMode !== "disabled",
411
- annotationLabelMode: vg(t.annotationMode),
412
- annotationCssClassPrefix: t.annotationCssClassPrefix,
413
- renderFootnotesAndEndnotes: t.renderFootnotesAndEndnotes,
414
- renderHeadersAndFooters: t.renderHeadersAndFooters,
415
- renderTrackedChanges: t.renderTrackedChanges,
416
- showDeletedContent: t.showDeletedContent,
417
- renderMoveOperations: t.renderMoveOperations
418
- }), [t]), Le = F(() => ({
419
- pageTitle: t.pageTitle,
420
- cssPrefix: t.cssPrefix,
421
- fabricateClasses: t.fabricateClasses,
422
- additionalCss: t.additionalCss || void 0,
423
- paginationScale: t.paginationScale,
424
- renderFootnotesAndEndnotes: t.renderFootnotesAndEndnotes,
425
- renderHeadersAndFooters: t.renderHeadersAndFooters,
426
- renderTrackedChanges: t.renderTrackedChanges,
427
- showDeletedContent: t.showDeletedContent,
428
- renderComments: t.commentMode !== "disabled",
429
- commentRenderMode: fe(t.commentMode)
430
- }), [t]), Oe = F(async (g) => {
388
+ }, [u, Ie]);
389
+ const H = u ? Ke : R.isReady, Y = u ? Se : R.isLoading, L = u ? Qe : R.error, [B, ye] = o(!1), [pe, j] = o(null), [Ge, We] = o(""), [X, ie] = o(1), [p, se] = o(0), [De, O] = o(!1), [J, k] = o("document"), [de, K] = o([]), [Ue, Be] = o(!1), [F, T] = o(null), oe = we(null), Ce = f(() => ({
390
+ commentRenderMode: un(a.commentMode),
391
+ pageTitle: a.pageTitle,
392
+ cssPrefix: a.cssPrefix,
393
+ fabricateClasses: a.fabricateClasses,
394
+ additionalCss: a.additionalCss || void 0,
395
+ commentCssClassPrefix: a.commentCssClassPrefix,
396
+ paginationMode: tn.Paginated,
397
+ paginationScale: a.paginationScale,
398
+ renderAnnotations: a.annotationMode !== "disabled",
399
+ annotationLabelMode: Zn(a.annotationMode),
400
+ annotationCssClassPrefix: a.annotationCssClassPrefix,
401
+ renderFootnotesAndEndnotes: a.renderFootnotesAndEndnotes,
402
+ renderHeadersAndFooters: a.renderHeadersAndFooters,
403
+ renderTrackedChanges: a.renderTrackedChanges,
404
+ showDeletedContent: a.showDeletedContent,
405
+ renderMoveOperations: a.renderMoveOperations
406
+ }), [a]), Pe = f(async (n) => {
431
407
  try {
432
- const l = v && N ? await N.getDocumentMetadata(g) : await ig(g);
433
- P(l);
408
+ const I = u && W ? await W.getDocumentMetadata(n) : await In(n);
409
+ T(I);
434
410
  } catch {
435
- P(null);
411
+ T(null);
436
412
  }
437
- }, [v, N]), be = F(async (g) => {
438
- if (!(!J || !k)) {
439
- Xe(!0);
413
+ }, [u, W]), Xe = f(async (n) => {
414
+ if (!(!H || !P)) {
415
+ Be(!0);
440
416
  try {
441
- const l = v && N ? await N.getRevisions(g) : await z.getRevisions(g);
442
- K(l), V?.(l);
417
+ const I = u && W ? await W.getRevisions(n) : await R.getRevisions(n);
418
+ K(I), h?.(I);
443
419
  } catch {
444
420
  K([]);
445
421
  } finally {
446
- Xe(!1);
422
+ Be(!1);
447
423
  }
448
424
  }
449
- }, [J, v, N, z, k, V]), U = F(async (g) => {
450
- if (J) {
451
- Ge(!0), T(null), K([]), S("document"), b?.(), v || await new Promise((l) => requestAnimationFrame(() => requestAnimationFrame(l)));
425
+ }, [H, u, W, R, P, h]), S = f(async (n) => {
426
+ if (H) {
427
+ ye(!0), j(null), K([]), k("document"), A?.(), u || await new Promise((I) => requestAnimationFrame(() => requestAnimationFrame(I)));
452
428
  try {
453
- const l = v && N ? await N.convertDocxToHtml(g, Ae()) : await z.convertToHtml(g, Ae());
454
- i === void 0 && O(l), m?.(l), be(g);
455
- } catch (l) {
456
- const W = l instanceof Error ? l : new Error(String(l));
457
- T(W), r?.(W);
429
+ const I = u && W ? await W.convertDocxToHtml(n, Ce()) : await R.convertToHtml(n, Ce());
430
+ s === void 0 && x(I), m?.(I), Xe(n);
431
+ } catch (I) {
432
+ const V = I instanceof Error ? I : new Error(String(I));
433
+ j(V), C?.(V);
458
434
  } finally {
459
- Ge(!1);
435
+ ye(!1);
460
436
  }
461
437
  }
462
- }, [J, v, N, z, Ae, i, b, m, r, be]);
463
- ne(() => {
464
- !u && J && h && !B && !X && i === void 0 && U(h);
465
- }, [u, J, h, B, X, U, i]);
466
- const je = async (g) => {
467
- const l = g.target.files?.[0];
468
- l && (Ne(l.name), T(null), oe(1), _(0), P(null), K([]), S("document"), n === void 0 && (ve(l), O(null)), y?.(l), u ? k && be(l) : (Oe(l), J && i === void 0 && await U(l)));
469
- }, Ee = F(async () => {
470
- h && (i === void 0 && O(null), await U(h));
471
- }, [h, U, i]), Te = () => {
472
- n === void 0 && ve(null), i === void 0 && O(null), T(null), Ne(""), oe(1), _(0), K([]), S("document"), P(null), y?.(null);
473
- const g = document.getElementById("rdv-file-input");
474
- g && (g.value = "");
475
- }, p = F((g) => {
476
- const l = { ...t, ...g };
477
- I === void 0 && Ke(l), s?.(l);
478
- }, [t, I, s]), _e = () => p({
479
- paginationScale: Math.min(t.paginationScale + 0.1, 2)
480
- }), $e = () => p({
481
- paginationScale: Math.max(t.paginationScale - 0.1, 0.3)
482
- }), qe = (g) => p({
483
- paginationScale: Math.max(0.3, Math.min(2, g))
484
- }), me = (g) => {
485
- const l = q.current;
486
- if (!l || g < 1 || g > G) return;
487
- const W = l.querySelector(`[data-page-number="${g}"]`);
488
- W && W.scrollIntoView({ behavior: "smooth", block: "start" });
489
- }, eg = () => R > 1 && me(R - 1), gg = () => R < G && me(R + 1), Re = (g) => {
490
- oe(g), a?.(g, G);
438
+ }, [H, u, W, R, Ce, s, A, m, C, Xe]);
439
+ $(() => {
440
+ H && N && !G && !B && s === void 0 && S(N);
441
+ }, [H, N, G, B, S, s]);
442
+ const xe = async (n) => {
443
+ const I = n.target.files?.[0];
444
+ I && (We(I.name), j(null), ie(1), se(0), T(null), K([]), k("document"), g === void 0 && (ue(I), x(null)), Z?.(I), Pe(I), H && s === void 0 && await S(I));
445
+ }, Me = f(async () => {
446
+ N && (s === void 0 && x(null), await S(N));
447
+ }, [N, S, s]), Le = () => {
448
+ g === void 0 && ue(null), s === void 0 && x(null), j(null), We(""), ie(1), se(0), K([]), k("document"), T(null), Z?.(null);
449
+ const n = document.getElementById("rdv-file-input");
450
+ n && (n.value = "");
451
+ }, v = f((n) => {
452
+ const I = { ...a, ...n };
453
+ t === void 0 && ke(I), d?.(I);
454
+ }, [a, t, d]), je = () => v({
455
+ paginationScale: Math.min(a.paginationScale + 0.1, 2)
456
+ }), Oe = () => v({
457
+ paginationScale: Math.max(a.paginationScale - 0.1, 0.3)
458
+ }), Te = (n) => v({
459
+ paginationScale: Math.max(0.3, Math.min(2, n))
460
+ }), re = (n) => {
461
+ const I = oe.current;
462
+ if (!I || n < 1 || n > p) return;
463
+ const V = I.querySelector(`[data-page-number="${n}"]`);
464
+ V && V.scrollIntoView({ behavior: "smooth", block: "start" });
465
+ }, Ee = () => X > 1 && re(X - 1), _e = () => X < p && re(X + 1), $e = (n) => {
466
+ ie(n), l?.(n, p);
491
467
  };
492
- ne(() => {
493
- const g = q.current;
494
- if (!g) return;
495
- const l = (W) => {
496
- const ee = W.target.closest('a[href^="#"]');
497
- if (!ee) return;
498
- const x = ee.getAttribute("href");
499
- if (!x || !x.startsWith("#")) return;
500
- W.preventDefault();
501
- const ze = x.substring(1), ge = g.querySelector(`[id="${ze}"], [name="${ze}"]`);
502
- ge && (ge.scrollIntoView({ behavior: "smooth", block: "center" }), ge.classList.add("rdv-footnote-highlight"), setTimeout(() => ge.classList.remove("rdv-footnote-highlight"), 2e3));
468
+ $(() => {
469
+ const n = oe.current;
470
+ if (!n) return;
471
+ const I = (V) => {
472
+ const E = V.target.closest('a[href^="#"]');
473
+ if (!E) return;
474
+ const Q = E.getAttribute("href");
475
+ if (!Q || !Q.startsWith("#")) return;
476
+ V.preventDefault();
477
+ const He = Q.substring(1), _ = n.querySelector(`[id="${He}"], [name="${He}"]`);
478
+ _ && (_.scrollIntoView({ behavior: "smooth", block: "center" }), _.classList.add("rdv-footnote-highlight"), setTimeout(() => _.classList.remove("rdv-footnote-highlight"), 2e3));
503
479
  };
504
- return g.addEventListener("click", l), () => g.removeEventListener("click", l);
505
- }, [B]), ne(() => {
506
- G > 0 && a?.(R, G);
507
- }, [G, R, a]);
508
- const He = X || Q, ng = () => /* @__PURE__ */ e("div", { className: "rdv-settings-overlay", onClick: () => $(!1), children: /* @__PURE__ */ c("div", { className: "rdv-settings-modal", onClick: (g) => g.stopPropagation(), children: [
480
+ return n.addEventListener("click", I), () => n.removeEventListener("click", I);
481
+ }, [G]), $(() => {
482
+ p > 0 && l?.(X, p);
483
+ }, [p, X, l]);
484
+ const Ne = B || Y, qe = () => /* @__PURE__ */ e("div", { className: "rdv-settings-overlay", onClick: () => O(!1), children: /* @__PURE__ */ c("div", { className: "rdv-settings-modal", onClick: (n) => n.stopPropagation(), children: [
509
485
  /* @__PURE__ */ c("div", { className: "rdv-settings-header", children: [
510
486
  /* @__PURE__ */ e("h3", { children: "Viewer Settings" }),
511
- /* @__PURE__ */ e("button", { className: "rdv-settings-close", onClick: () => $(!1), children: "×" })
487
+ /* @__PURE__ */ e("button", { className: "rdv-settings-close", onClick: () => O(!1), children: "×" })
512
488
  ] }),
513
489
  /* @__PURE__ */ c("div", { className: "rdv-settings-body", children: [
514
490
  /* @__PURE__ */ c("div", { className: "rdv-settings-section", children: [
@@ -518,8 +494,8 @@ function Gg({
518
494
  "input",
519
495
  {
520
496
  type: "checkbox",
521
- checked: t.renderFootnotesAndEndnotes,
522
- onChange: (g) => p({ renderFootnotesAndEndnotes: g.target.checked })
497
+ checked: a.renderFootnotesAndEndnotes,
498
+ onChange: (n) => v({ renderFootnotesAndEndnotes: n.target.checked })
523
499
  }
524
500
  ),
525
501
  /* @__PURE__ */ e("span", { children: "Show footnotes and endnotes" })
@@ -529,8 +505,8 @@ function Gg({
529
505
  "input",
530
506
  {
531
507
  type: "checkbox",
532
- checked: t.renderHeadersAndFooters,
533
- onChange: (g) => p({ renderHeadersAndFooters: g.target.checked })
508
+ checked: a.renderHeadersAndFooters,
509
+ onChange: (n) => v({ renderHeadersAndFooters: n.target.checked })
534
510
  }
535
511
  ),
536
512
  /* @__PURE__ */ e("span", { children: "Show headers and footers" })
@@ -540,8 +516,8 @@ function Gg({
540
516
  "input",
541
517
  {
542
518
  type: "checkbox",
543
- checked: t.showPageNumbers,
544
- onChange: (g) => p({ showPageNumbers: g.target.checked })
519
+ checked: a.showPageNumbers,
520
+ onChange: (n) => v({ showPageNumbers: n.target.checked })
545
521
  }
546
522
  ),
547
523
  /* @__PURE__ */ e("span", { children: "Show page numbers" })
@@ -549,36 +525,36 @@ function Gg({
549
525
  ] }),
550
526
  /* @__PURE__ */ c("div", { className: "rdv-settings-section", children: [
551
527
  /* @__PURE__ */ e("h4", { children: "Comment Rendering" }),
552
- /* @__PURE__ */ e("div", { className: "rdv-settings-radio-group", children: ["disabled", "endnote", "inline", "margin"].map((g) => /* @__PURE__ */ c("label", { className: "rdv-settings-radio", children: [
528
+ /* @__PURE__ */ e("div", { className: "rdv-settings-radio-group", children: ["disabled", "endnote", "inline", "margin"].map((n) => /* @__PURE__ */ c("label", { className: "rdv-settings-radio", children: [
553
529
  /* @__PURE__ */ e(
554
530
  "input",
555
531
  {
556
532
  type: "radio",
557
533
  name: "commentMode",
558
- checked: t.commentMode === g,
559
- onChange: () => p({ commentMode: g })
534
+ checked: a.commentMode === n,
535
+ onChange: () => v({ commentMode: n })
560
536
  }
561
537
  ),
562
538
  /* @__PURE__ */ c("span", { children: [
563
- g.charAt(0).toUpperCase() + g.slice(1),
564
- g === "endnote" ? "s" : ""
539
+ n.charAt(0).toUpperCase() + n.slice(1),
540
+ n === "endnote" ? "s" : ""
565
541
  ] })
566
- ] }, g)) })
542
+ ] }, n)) })
567
543
  ] }),
568
544
  /* @__PURE__ */ c("div", { className: "rdv-settings-section", children: [
569
545
  /* @__PURE__ */ e("h4", { children: "Annotation Rendering" }),
570
- /* @__PURE__ */ e("div", { className: "rdv-settings-radio-group", children: ["disabled", "above", "inline", "tooltip", "none"].map((g) => /* @__PURE__ */ c("label", { className: "rdv-settings-radio", children: [
546
+ /* @__PURE__ */ e("div", { className: "rdv-settings-radio-group", children: ["disabled", "above", "inline", "tooltip", "none"].map((n) => /* @__PURE__ */ c("label", { className: "rdv-settings-radio", children: [
571
547
  /* @__PURE__ */ e(
572
548
  "input",
573
549
  {
574
550
  type: "radio",
575
551
  name: "annotationMode",
576
- checked: t.annotationMode === g,
577
- onChange: () => p({ annotationMode: g })
552
+ checked: a.annotationMode === n,
553
+ onChange: () => v({ annotationMode: n })
578
554
  }
579
555
  ),
580
- /* @__PURE__ */ e("span", { children: g === "none" ? "Highlight Only" : g.charAt(0).toUpperCase() + g.slice(1) })
581
- ] }, g)) })
556
+ /* @__PURE__ */ e("span", { children: n === "none" ? "Highlight Only" : n.charAt(0).toUpperCase() + n.slice(1) })
557
+ ] }, n)) })
582
558
  ] }),
583
559
  /* @__PURE__ */ c("div", { className: "rdv-settings-section", children: [
584
560
  /* @__PURE__ */ e("h4", { children: "Tracked Changes" }),
@@ -587,20 +563,20 @@ function Gg({
587
563
  "input",
588
564
  {
589
565
  type: "checkbox",
590
- checked: t.renderTrackedChanges,
591
- onChange: (g) => p({ renderTrackedChanges: g.target.checked })
566
+ checked: a.renderTrackedChanges,
567
+ onChange: (n) => v({ renderTrackedChanges: n.target.checked })
592
568
  }
593
569
  ),
594
570
  /* @__PURE__ */ e("span", { children: "Show tracked changes" })
595
571
  ] }),
596
- t.renderTrackedChanges && /* @__PURE__ */ c("div", { className: "rdv-settings-subsection", children: [
572
+ a.renderTrackedChanges && /* @__PURE__ */ c("div", { className: "rdv-settings-subsection", children: [
597
573
  /* @__PURE__ */ c("label", { className: "rdv-settings-checkbox", children: [
598
574
  /* @__PURE__ */ e(
599
575
  "input",
600
576
  {
601
577
  type: "checkbox",
602
- checked: t.showDeletedContent,
603
- onChange: (g) => p({ showDeletedContent: g.target.checked })
578
+ checked: a.showDeletedContent,
579
+ onChange: (n) => v({ showDeletedContent: n.target.checked })
604
580
  }
605
581
  ),
606
582
  /* @__PURE__ */ e("span", { children: "Show deleted content" })
@@ -610,8 +586,8 @@ function Gg({
610
586
  "input",
611
587
  {
612
588
  type: "checkbox",
613
- checked: t.renderMoveOperations,
614
- onChange: (g) => p({ renderMoveOperations: g.target.checked })
589
+ checked: a.renderMoveOperations,
590
+ onChange: (n) => v({ renderMoveOperations: n.target.checked })
615
591
  }
616
592
  ),
617
593
  /* @__PURE__ */ e("span", { children: "Distinguish move operations" })
@@ -620,31 +596,31 @@ function Gg({
620
596
  ] })
621
597
  ] }),
622
598
  /* @__PURE__ */ e("div", { className: "rdv-settings-footer", children: /* @__PURE__ */ e("button", { className: "rdv-settings-apply", onClick: () => {
623
- Ee(), $(!1);
599
+ Me(), O(!1);
624
600
  }, children: "Apply & Close" }) })
625
- ] }) }), cg = re.length > 0, we = () => /* @__PURE__ */ c("div", { className: "rdv-toolbar", children: [
601
+ ] }) }), en = de.length > 0, Re = () => /* @__PURE__ */ c("div", { className: "rdv-toolbar", children: [
626
602
  /* @__PURE__ */ c("div", { className: "rdv-toolbar-left", children: [
627
- /* @__PURE__ */ e("label", { htmlFor: "rdv-file-input", className: "rdv-toolbar-file-btn", children: Be || "Open Document" }),
603
+ /* @__PURE__ */ e("label", { htmlFor: "rdv-file-input", className: "rdv-toolbar-file-btn", children: Ge || "Open Document" }),
628
604
  /* @__PURE__ */ e(
629
605
  "input",
630
606
  {
631
607
  id: "rdv-file-input",
632
608
  type: "file",
633
609
  accept: ".docx",
634
- onChange: je,
635
- disabled: He,
610
+ onChange: xe,
611
+ disabled: Ne,
636
612
  className: "rdv-file-input"
637
613
  }
638
614
  ),
639
- Be && /* @__PURE__ */ e("button", { className: "rdv-toolbar-btn rdv-toolbar-clear", onClick: Te, disabled: He, children: "×" }),
640
- k && cg && (u ? h : B) && /* @__PURE__ */ c(Je, { children: [
615
+ Ge && /* @__PURE__ */ e("button", { className: "rdv-toolbar-btn rdv-toolbar-clear", onClick: Le, disabled: Ne, children: "×" }),
616
+ P && en && G && /* @__PURE__ */ c(ze, { children: [
641
617
  /* @__PURE__ */ e("div", { className: "rdv-toolbar-separator" }),
642
618
  /* @__PURE__ */ c("div", { className: "rdv-view-tabs", children: [
643
619
  /* @__PURE__ */ e(
644
620
  "button",
645
621
  {
646
- className: `rdv-view-tab ${Y === "document" ? "rdv-view-tab--active" : ""}`,
647
- onClick: () => S("document"),
622
+ className: `rdv-view-tab ${J === "document" ? "rdv-view-tab--active" : ""}`,
623
+ onClick: () => k("document"),
648
624
  title: "View Document",
649
625
  children: "Document"
650
626
  }
@@ -652,27 +628,27 @@ function Gg({
652
628
  /* @__PURE__ */ c(
653
629
  "button",
654
630
  {
655
- className: `rdv-view-tab ${Y === "revisions" ? "rdv-view-tab--active" : ""}`,
656
- onClick: () => S("revisions"),
631
+ className: `rdv-view-tab ${J === "revisions" ? "rdv-view-tab--active" : ""}`,
632
+ onClick: () => k("revisions"),
657
633
  title: "View Tracked Changes",
658
634
  children: [
659
635
  "Changes (",
660
- re.length,
636
+ de.length,
661
637
  ")"
662
638
  ]
663
639
  }
664
640
  )
665
641
  ] })
666
642
  ] }),
667
- k && Me && /* @__PURE__ */ e("span", { className: "rdv-extracting-indicator", title: "Extracting tracked changes...", children: "..." })
643
+ P && Ue && /* @__PURE__ */ e("span", { className: "rdv-extracting-indicator", title: "Extracting tracked changes...", children: "..." })
668
644
  ] }),
669
- /* @__PURE__ */ e("div", { className: "rdv-toolbar-center", children: (u && h || B) && G > 0 && Y === "document" && /* @__PURE__ */ c(Je, { children: [
645
+ /* @__PURE__ */ e("div", { className: "rdv-toolbar-center", children: G && p > 0 && J === "document" && /* @__PURE__ */ c(ze, { children: [
670
646
  /* @__PURE__ */ e(
671
647
  "button",
672
648
  {
673
649
  className: "rdv-toolbar-btn",
674
- onClick: eg,
675
- disabled: R <= 1,
650
+ onClick: Ee,
651
+ disabled: X <= 1,
676
652
  title: "Previous Page",
677
653
  children: "◀"
678
654
  }
@@ -683,26 +659,26 @@ function Gg({
683
659
  {
684
660
  type: "number",
685
661
  className: "rdv-page-input",
686
- value: R,
662
+ value: X,
687
663
  min: 1,
688
- max: G,
689
- onChange: (g) => {
690
- const l = parseInt(g.target.value);
691
- isNaN(l) || me(l);
664
+ max: p,
665
+ onChange: (n) => {
666
+ const I = parseInt(n.target.value);
667
+ isNaN(I) || re(I);
692
668
  }
693
669
  }
694
670
  ),
695
671
  /* @__PURE__ */ c("span", { className: "rdv-page-total", children: [
696
672
  "/ ",
697
- G
673
+ p
698
674
  ] })
699
675
  ] }),
700
676
  /* @__PURE__ */ e(
701
677
  "button",
702
678
  {
703
679
  className: "rdv-toolbar-btn",
704
- onClick: gg,
705
- disabled: R >= G,
680
+ onClick: _e,
681
+ disabled: X >= p,
706
682
  title: "Next Page",
707
683
  children: "▶"
708
684
  }
@@ -712,8 +688,8 @@ function Gg({
712
688
  "button",
713
689
  {
714
690
  className: "rdv-toolbar-btn",
715
- onClick: $e,
716
- disabled: t.paginationScale <= 0.3,
691
+ onClick: Oe,
692
+ disabled: a.paginationScale <= 0.3,
717
693
  title: "Zoom Out",
718
694
  children: "−"
719
695
  }
@@ -722,8 +698,8 @@ function Gg({
722
698
  "select",
723
699
  {
724
700
  className: "rdv-zoom-select",
725
- value: t.paginationScale,
726
- onChange: (g) => qe(parseFloat(g.target.value)),
701
+ value: a.paginationScale,
702
+ onChange: (n) => Te(parseFloat(n.target.value)),
727
703
  children: [
728
704
  /* @__PURE__ */ e("option", { value: "0.5", children: "50%" }),
729
705
  /* @__PURE__ */ e("option", { value: "0.75", children: "75%" }),
@@ -740,119 +716,102 @@ function Gg({
740
716
  "button",
741
717
  {
742
718
  className: "rdv-toolbar-btn",
743
- onClick: _e,
744
- disabled: t.paginationScale >= 2,
719
+ onClick: je,
720
+ disabled: a.paginationScale >= 2,
745
721
  title: "Zoom In",
746
722
  children: "+"
747
723
  }
748
724
  )
749
725
  ] }) }),
750
- /* @__PURE__ */ e("div", { className: "rdv-toolbar-right", children: ae && /* @__PURE__ */ e(
726
+ /* @__PURE__ */ e("div", { className: "rdv-toolbar-right", children: te && /* @__PURE__ */ e(
751
727
  "button",
752
728
  {
753
729
  className: "rdv-toolbar-btn rdv-toolbar-settings",
754
- onClick: () => $(!0),
730
+ onClick: () => O(!0),
755
731
  title: "Settings",
756
732
  children: "⚙"
757
733
  }
758
734
  ) })
759
- ] }), Ig = ["rdv-viewer", A].filter(Boolean).join(" ");
760
- return /* @__PURE__ */ c("div", { className: Ig, style: Z, children: [
761
- o === "top" && /* @__PURE__ */ e(we, {}),
735
+ ] }), nn = ["rdv-viewer", b].filter(Boolean).join(" ");
736
+ return /* @__PURE__ */ c("div", { className: nn, style: y, children: [
737
+ r === "top" && /* @__PURE__ */ e(Re, {}),
762
738
  /* @__PURE__ */ c("div", { className: "rdv-content", children: [
763
- E && /* @__PURE__ */ e("div", { className: "rdv-message rdv-message--error", children: /* @__PURE__ */ c("p", { children: [
739
+ L && /* @__PURE__ */ e("div", { className: "rdv-message rdv-message--error", children: /* @__PURE__ */ c("p", { children: [
764
740
  "Failed to initialize: ",
765
- E.message
741
+ L.message
766
742
  ] }) }),
767
- !E && (Q || X) && (f && X ? (
743
+ !L && (Y || B) && (F && B ? (
768
744
  // Show page placeholders while converting
769
- /* @__PURE__ */ e("div", { className: "rdv-pages rdv-pages--loading", children: /* @__PURE__ */ e("div", { className: "rdv-page-placeholders", style: { backgroundColor: "#525659" }, children: Array.from({ length: f.estimatedPageCount || 1 }).map((g, l) => {
770
- const W = f.sections[Math.min(l, f.sections.length - 1)], Ze = t.paginationScale, ee = Math.round((W?.pageWidthPt || 612) * (96 / 72) * Ze), x = Math.round((W?.pageHeightPt || 792) * (96 / 72) * Ze);
745
+ /* @__PURE__ */ e("div", { className: "rdv-pages rdv-pages--loading", children: /* @__PURE__ */ e("div", { className: "rdv-page-placeholders", style: { backgroundColor: "#525659" }, children: Array.from({ length: F.estimatedPageCount || 1 }).map((n, I) => {
746
+ const V = F.sections[Math.min(I, F.sections.length - 1)], Ae = a.paginationScale, E = Math.round((V?.pageWidthPt || 612) * (96 / 72) * Ae), Q = Math.round((V?.pageHeightPt || 792) * (96 / 72) * Ae);
771
747
  return /* @__PURE__ */ c(
772
748
  "div",
773
749
  {
774
750
  className: "rdv-page-placeholder",
775
751
  style: {
776
- width: `${ee}px`,
777
- height: `${x}px`,
752
+ width: `${E}px`,
753
+ height: `${Q}px`,
778
754
  marginBottom: "20px"
779
755
  },
780
756
  children: [
781
757
  /* @__PURE__ */ e("div", { className: "rdv-page-placeholder__shimmer" }),
782
- l === 0 && /* @__PURE__ */ c("div", { className: "rdv-page-placeholder__info", children: [
758
+ I === 0 && /* @__PURE__ */ c("div", { className: "rdv-page-placeholder__info", children: [
783
759
  /* @__PURE__ */ e("div", { className: "rdv-spinner rdv-spinner--small" }),
784
760
  /* @__PURE__ */ e("span", { children: "Converting document..." }),
785
761
  /* @__PURE__ */ c("span", { className: "rdv-page-placeholder__count", children: [
786
762
  "~",
787
- f.estimatedPageCount,
763
+ F.estimatedPageCount,
788
764
  " page",
789
- f.estimatedPageCount !== 1 ? "s" : ""
765
+ F.estimatedPageCount !== 1 ? "s" : ""
790
766
  ] })
791
767
  ] }),
792
- /* @__PURE__ */ e("div", { className: "rdv-page-placeholder__number", children: l + 1 })
768
+ /* @__PURE__ */ e("div", { className: "rdv-page-placeholder__number", children: I + 1 })
793
769
  ]
794
770
  },
795
- l
771
+ I
796
772
  );
797
773
  }) }) })
798
774
  ) : /* @__PURE__ */ c("div", { className: "rdv-message", children: [
799
775
  /* @__PURE__ */ e("div", { className: "rdv-spinner" }),
800
- /* @__PURE__ */ e("p", { children: Q && h ? "Loading engine & preparing document..." : Q ? "Loading document engine..." : "Processing document..." })
776
+ /* @__PURE__ */ e("p", { children: Y && N ? "Loading engine & preparing document..." : Y ? "Loading document engine..." : "Processing document..." })
801
777
  ] })),
802
- !Q && !E && !B && !X && !h && /* @__PURE__ */ c("div", { className: "rdv-message", children: [
778
+ !Y && !L && !G && !B && !N && /* @__PURE__ */ c("div", { className: "rdv-message", children: [
803
779
  /* @__PURE__ */ e("div", { className: "rdv-message__icon", children: "📄" }),
804
- /* @__PURE__ */ e("p", { children: ke })
780
+ /* @__PURE__ */ e("p", { children: fe })
805
781
  ] }),
806
- de && !X && /* @__PURE__ */ e("div", { className: "rdv-message rdv-message--error", children: /* @__PURE__ */ c("p", { children: [
782
+ pe && !B && /* @__PURE__ */ e("div", { className: "rdv-message rdv-message--error", children: /* @__PURE__ */ c("p", { children: [
807
783
  "Error: ",
808
- de.message
784
+ pe.message
809
785
  ] }) }),
810
- Y === "document" && u && h && !de && /* @__PURE__ */ e("div", { ref: q, className: "rdv-pages", children: /* @__PURE__ */ e(
811
- lg,
812
- {
813
- document: h,
814
- scale: t.paginationScale,
815
- bufferPages: 3,
816
- pageGap: 20,
817
- backgroundColor: "#525659",
818
- className: "rdv-paginated-document",
819
- wasmBasePath: L,
820
- renderOptions: Le(),
821
- onMetadataLoaded: (g) => {
822
- _(g.estimatedPageCount), P(g);
823
- },
824
- onPageVisible: Re
825
- }
826
- ) }),
827
- Y === "document" && !u && B && !X && /* @__PURE__ */ e("div", { ref: q, className: "rdv-pages", children: /* @__PURE__ */ e(
828
- Cg,
786
+ J === "document" && G && !B && /* @__PURE__ */ e("div", { ref: oe, className: "rdv-pages", children: /* @__PURE__ */ e(
787
+ cn,
829
788
  {
830
- html: B,
831
- scale: t.paginationScale,
832
- showPageNumbers: t.showPageNumbers,
789
+ html: G,
790
+ scale: a.paginationScale,
791
+ showPageNumbers: a.showPageNumbers,
833
792
  pageGap: 20,
834
793
  backgroundColor: "#525659",
835
794
  className: "rdv-paginated-document",
836
- onPaginationComplete: (g) => {
837
- _(g.totalPages);
795
+ onPaginationComplete: (n) => {
796
+ se(n.totalPages);
838
797
  },
839
- onPageVisible: Re
798
+ onPageVisible: $e
840
799
  }
841
800
  ) }),
842
- Y === "revisions" && (u ? h : B && !X) && /* @__PURE__ */ e(hg, { revisions: re })
801
+ J === "revisions" && G && !B && /* @__PURE__ */ e(bn, { revisions: de })
843
802
  ] }),
844
- o === "bottom" && /* @__PURE__ */ e(we, {}),
845
- De && /* @__PURE__ */ e(ng, {})
803
+ r === "bottom" && /* @__PURE__ */ e(Re, {}),
804
+ De && /* @__PURE__ */ e(qe, {})
846
805
  ] });
847
806
  }
848
807
  export {
849
- rg as DEFAULT_SETTINGS,
850
- Gg as DocumentViewer,
851
- Xg as RevisionType,
852
- Rg as isDeletion,
853
- Hg as isFormatChange,
854
- wg as isInsertion,
855
- zg as isMove,
856
- og as isWorkerSupported
808
+ dn as DEFAULT_SETTINGS,
809
+ pn as DocumentViewer,
810
+ Bn as RevisionType,
811
+ Xn as isDeletion,
812
+ Nn as isFormatChange,
813
+ Rn as isInsertion,
814
+ Hn as isMove,
815
+ sn as isWorkerSupported
857
816
  };
858
817
  //# sourceMappingURL=react-docxodus-viewer.es.js.map