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