react-docxodus-viewer 0.4.1 → 0.6.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,125 +1,203 @@
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() {
1
+ import { jsx as e, jsxs as c, Fragment as ie } from "react/jsx-runtime";
2
+ import { useState as A, useMemo as re, useRef as oe, useEffect as K, useCallback as D } from "react";
3
+ import { useDocxodus as Ag, PaginatedDocument as bg } from "docxodus/react";
4
+ import { isFormatChange as $, isMove as q, isDeletion as Ae, isInsertion as be, PaginationMode as mg, getDocumentMetadata as ug, AnnotationLabelMode as se, CommentRenderMode as de } from "docxodus";
5
+ import { RevisionType as xg, isDeletion as Lg, isFormatChange as Ug, isInsertion as Pg, isMove as Dg } from "docxodus";
6
+ function v() {
7
7
  return `${Date.now()}-${Math.random().toString(36).slice(2, 11)}`;
8
8
  }
9
- async function w(g) {
10
- if (g instanceof Uint8Array)
11
- return g;
12
- const s = await g.arrayBuffer();
13
- return new Uint8Array(s);
9
+ async function Q(n) {
10
+ if (n instanceof Uint8Array)
11
+ return n;
12
+ const a = await n.arrayBuffer();
13
+ return new Uint8Array(a);
14
14
  }
15
- function an() {
15
+ function hg() {
16
16
  if (typeof document < "u") {
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/";
17
+ const n = document.querySelectorAll('script[src*="docxodus"]');
18
+ if (n.length > 0) {
19
+ const a = n[0].src;
20
+ return a.substring(0, a.lastIndexOf("/") + 1) + "wasm/";
21
21
  }
22
22
  }
23
23
  return "/wasm/";
24
24
  }
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")
25
+ async function Zg(n) {
26
+ const a = n?.wasmBasePath ?? hg(), y = new URL("data:text/javascript;base64,Ly8gc3JjL2RvY3hvZHVzLndvcmtlci50cwp2YXIgd2FzbUV4cG9ydHMgPSBudWxsOwp2YXIgaW5pdFByb21pc2UgPSBudWxsOwp2YXIgc2Vzc2lvbkhhbmRsZXMgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwphc3luYyBmdW5jdGlvbiBpbml0aWFsaXplV2FzbShiYXNlUGF0aCkgewogIGlmICh3YXNtRXhwb3J0cykgewogICAgcmV0dXJuOwogIH0KICBpZiAoaW5pdFByb21pc2UpIHsKICAgIHJldHVybiBpbml0UHJvbWlzZTsKICB9CiAgaW5pdFByb21pc2UgPSAoYXN5bmMgKCkgPT4gewogICAgdHJ5IHsKICAgICAgY29uc3Qgbm9ybWFsaXplZFBhdGggPSBiYXNlUGF0aC5lbmRzV2l0aCgiLyIpID8gYmFzZVBhdGggOiBiYXNlUGF0aCArICIvIjsKICAgICAgY29uc3QgZG90bmV0TW9kdWxlID0gYXdhaXQgaW1wb3J0KAogICAgICAgIC8qIHdlYnBhY2tJZ25vcmU6IHRydWUgKi8KICAgICAgICBgJHtub3JtYWxpemVkUGF0aH1fZnJhbWV3b3JrL2RvdG5ldC5qc2AKICAgICAgKTsKICAgICAgY29uc3QgeyBnZXRBc3NlbWJseUV4cG9ydHMsIGdldENvbmZpZyB9ID0gYXdhaXQgZG90bmV0TW9kdWxlLmRvdG5ldC53aXRoRGlhZ25vc3RpY1RyYWNpbmcoZmFsc2UpLmNyZWF0ZSgpOwogICAgICBjb25zdCBjb25maWcgPSBnZXRDb25maWcoKTsKICAgICAgY29uc3QgZXhwb3J0cyA9IGF3YWl0IGdldEFzc2VtYmx5RXhwb3J0cyhjb25maWcubWFpbkFzc2VtYmx5TmFtZSk7CiAgICAgIHdhc21FeHBvcnRzID0gewogICAgICAgIERvY3VtZW50Q29udmVydGVyOiBleHBvcnRzLkRvY3hvZHVzV2FzbS5Eb2N1bWVudENvbnZlcnRlciwKICAgICAgICBEb2N1bWVudENvbXBhcmVyOiBleHBvcnRzLkRvY3hvZHVzV2FzbS5Eb2N1bWVudENvbXBhcmVyLAogICAgICAgIERvY3hTZXNzaW9uQnJpZGdlOiBleHBvcnRzLkRvY3hvZHVzV2FzbS5Eb2N4U2Vzc2lvbkJyaWRnZQogICAgICB9OwogICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgaW5pdFByb21pc2UgPSBudWxsOwogICAgICB0aHJvdyBlcnJvcjsKICAgIH0KICB9KSgpOwogIHJldHVybiBpbml0UHJvbWlzZTsKfQpmdW5jdGlvbiBlbnN1cmVJbml0aWFsaXplZCgpIHsKICBpZiAoIXdhc21FeHBvcnRzKSB7CiAgICB0aHJvdyBuZXcgRXJyb3IoIldvcmtlciBub3QgaW5pdGlhbGl6ZWQuIENhbGwgaW5pdCBmaXJzdC4iKTsKICB9CiAgcmV0dXJuIHdhc21FeHBvcnRzOwp9CmZ1bmN0aW9uIGlzRXJyb3JSZXNwb25zZShyZXN1bHQpIHsKICByZXR1cm4gcmVzdWx0LnN0YXJ0c1dpdGgoInsiKSAmJiByZXN1bHQuaW5jbHVkZXMoJyJFcnJvciInKTsKfQpmdW5jdGlvbiBwYXJzZUVycm9yKHJlc3VsdCkgewogIHRyeSB7CiAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKHJlc3VsdCk7CiAgICByZXR1cm4geyBlcnJvcjogcGFyc2VkLkVycm9yIHx8IHBhcnNlZC5lcnJvciB8fCAiVW5rbm93biBlcnJvciIgfTsKICB9IGNhdGNoIHsKICAgIHJldHVybiB7IGVycm9yOiByZXN1bHQgfTsKICB9Cn0KZnVuY3Rpb24gaGFuZGxlQ29udmVydChyZXF1ZXN0KSB7CiAgY29uc3QgZXhwb3J0cyA9IGVuc3VyZUluaXRpYWxpemVkKCk7CiAgY29uc3Qgb3B0aW9ucyA9IHJlcXVlc3Qub3B0aW9uczsKICB0cnkgewogICAgbGV0IHJlc3VsdDsKICAgIGNvbnN0IG5lZWRzQ29tcGxldGVNZXRob2QgPSBvcHRpb25zPy5yZW5kZXJGb290bm90ZXNBbmRFbmRub3RlcyAhPT0gdm9pZCAwIHx8IG9wdGlvbnM/LnJlbmRlckhlYWRlcnNBbmRGb290ZXJzICE9PSB2b2lkIDAgfHwgb3B0aW9ucz8ucmVuZGVyVHJhY2tlZENoYW5nZXMgIT09IHZvaWQgMCB8fCBvcHRpb25zPy5zaG93RGVsZXRlZENvbnRlbnQgIT09IHZvaWQgMCB8fCBvcHRpb25zPy5yZW5kZXJNb3ZlT3BlcmF0aW9ucyAhPT0gdm9pZCAwIHx8IG9wdGlvbnM/LnJlbmRlclVuc3VwcG9ydGVkQ29udGVudFBsYWNlaG9sZGVycyAhPT0gdm9pZCAwIHx8IG9wdGlvbnM/LmRvY3VtZW50TGFuZ3VhZ2UgIT09IHZvaWQgMDsKICAgIGlmIChuZWVkc0NvbXBsZXRlTWV0aG9kIHx8IG9wdGlvbnM/LnJlbmRlckFubm90YXRpb25zKSB7CiAgICAgIHJlc3VsdCA9IGV4cG9ydHMuRG9jdW1lbnRDb252ZXJ0ZXIuQ29udmVydERvY3hUb0h0bWxDb21wbGV0ZSgKICAgICAgICByZXF1ZXN0LmRvY3VtZW50Qnl0ZXMsCiAgICAgICAgb3B0aW9ucz8ucGFnZVRpdGxlID8/ICJEb2N1bWVudCIsCiAgICAgICAgb3B0aW9ucz8uY3NzUHJlZml4ID8/ICJkb2N4LSIsCiAgICAgICAgb3B0aW9ucz8uZmFicmljYXRlQ2xhc3NlcyA/PyB0cnVlLAogICAgICAgIG9wdGlvbnM/LmFkZGl0aW9uYWxDc3MgPz8gIiIsCiAgICAgICAgb3B0aW9ucz8uY29tbWVudFJlbmRlck1vZGUgPz8gLTEsCiAgICAgICAgb3B0aW9ucz8uY29tbWVudENzc0NsYXNzUHJlZml4ID8/ICJjb21tZW50LSIsCiAgICAgICAgb3B0aW9ucz8ucGFnaW5hdGlvbk1vZGUgPz8gMCwKICAgICAgICBvcHRpb25zPy5wYWdpbmF0aW9uU2NhbGUgPz8gMSwKICAgICAgICBvcHRpb25zPy5wYWdpbmF0aW9uQ3NzQ2xhc3NQcmVmaXggPz8gInBhZ2UtIiwKICAgICAgICBvcHRpb25zPy5yZW5kZXJBbm5vdGF0aW9ucyA/PyBmYWxzZSwKICAgICAgICBvcHRpb25zPy5hbm5vdGF0aW9uTGFiZWxNb2RlID8/IDAsCiAgICAgICAgb3B0aW9ucz8uYW5ub3RhdGlvbkNzc0NsYXNzUHJlZml4ID8/ICJhbm5vdC0iLAogICAgICAgIG9wdGlvbnM/LnJlbmRlckZvb3Rub3Rlc0FuZEVuZG5vdGVzID8/IGZhbHNlLAogICAgICAgIG9wdGlvbnM/LnJlbmRlckhlYWRlcnNBbmRGb290ZXJzID8/IGZhbHNlLAogICAgICAgIG9wdGlvbnM/LnJlbmRlclRyYWNrZWRDaGFuZ2VzID8/IGZhbHNlLAogICAgICAgIG9wdGlvbnM/LnNob3dEZWxldGVkQ29udGVudCA/PyB0cnVlLAogICAgICAgIG9wdGlvbnM/LnJlbmRlck1vdmVPcGVyYXRpb25zID8/IHRydWUsCiAgICAgICAgb3B0aW9ucz8ucmVuZGVyVW5zdXBwb3J0ZWRDb250ZW50UGxhY2Vob2xkZXJzID8/IGZhbHNlLAogICAgICAgIG9wdGlvbnM/LmRvY3VtZW50TGFuZ3VhZ2UgPz8gbnVsbAogICAgICApOwogICAgfSBlbHNlIGlmIChvcHRpb25zPy5wYWdpbmF0aW9uTW9kZSAhPT0gdm9pZCAwICYmIG9wdGlvbnMucGFnaW5hdGlvbk1vZGUgIT09IDApIHsKICAgICAgcmVzdWx0ID0gZXhwb3J0cy5Eb2N1bWVudENvbnZlcnRlci5Db252ZXJ0RG9jeFRvSHRtbFdpdGhQYWdpbmF0aW9uKAogICAgICAgIHJlcXVlc3QuZG9jdW1lbnRCeXRlcywKICAgICAgICBvcHRpb25zLnBhZ2VUaXRsZSA/PyAiRG9jdW1lbnQiLAogICAgICAgIG9wdGlvbnMuY3NzUHJlZml4ID8/ICJkb2N4LSIsCiAgICAgICAgb3B0aW9ucy5mYWJyaWNhdGVDbGFzc2VzID8/IHRydWUsCiAgICAgICAgb3B0aW9ucy5hZGRpdGlvbmFsQ3NzID8/ICIiLAogICAgICAgIG9wdGlvbnMuY29tbWVudFJlbmRlck1vZGUgPz8gLTEsCiAgICAgICAgb3B0aW9ucy5jb21tZW50Q3NzQ2xhc3NQcmVmaXggPz8gImNvbW1lbnQtIiwKICAgICAgICBvcHRpb25zLnBhZ2luYXRpb25Nb2RlLAogICAgICAgIG9wdGlvbnMucGFnaW5hdGlvblNjYWxlID8/IDEsCiAgICAgICAgb3B0aW9ucy5wYWdpbmF0aW9uQ3NzQ2xhc3NQcmVmaXggPz8gInBhZ2UtIgogICAgICApOwogICAgfSBlbHNlIGlmIChvcHRpb25zKSB7CiAgICAgIHJlc3VsdCA9IGV4cG9ydHMuRG9jdW1lbnRDb252ZXJ0ZXIuQ29udmVydERvY3hUb0h0bWxXaXRoT3B0aW9ucygKICAgICAgICByZXF1ZXN0LmRvY3VtZW50Qnl0ZXMsCiAgICAgICAgb3B0aW9ucy5wYWdlVGl0bGUgPz8gIkRvY3VtZW50IiwKICAgICAgICBvcHRpb25zLmNzc1ByZWZpeCA/PyAiZG9jeC0iLAogICAgICAgIG9wdGlvbnMuZmFicmljYXRlQ2xhc3NlcyA/PyB0cnVlLAogICAgICAgIG9wdGlvbnMuYWRkaXRpb25hbENzcyA/PyAiIiwKICAgICAgICBvcHRpb25zLmNvbW1lbnRSZW5kZXJNb2RlID8/IC0xLAogICAgICAgIG9wdGlvbnMuY29tbWVudENzc0NsYXNzUHJlZml4ID8/ICJjb21tZW50LSIKICAgICAgKTsKICAgIH0gZWxzZSB7CiAgICAgIHJlc3VsdCA9IGV4cG9ydHMuRG9jdW1lbnRDb252ZXJ0ZXIuQ29udmVydERvY3hUb0h0bWwoCiAgICAgICAgcmVxdWVzdC5kb2N1bWVudEJ5dGVzCiAgICAgICk7CiAgICB9CiAgICBpZiAoaXNFcnJvclJlc3BvbnNlKHJlc3VsdCkpIHsKICAgICAgcmV0dXJuIHBhcnNlRXJyb3IocmVzdWx0KTsKICAgIH0KICAgIHJldHVybiB7IGh0bWw6IHJlc3VsdCB9OwogIH0gY2F0Y2ggKGVycm9yKSB7CiAgICByZXR1cm4geyBlcnJvcjogU3RyaW5nKGVycm9yKSB9OwogIH0KfQpmdW5jdGlvbiBoYW5kbGVDb21wYXJlKHJlcXVlc3QpIHsKICBjb25zdCBleHBvcnRzID0gZW5zdXJlSW5pdGlhbGl6ZWQoKTsKICBjb25zdCBvcHRpb25zID0gcmVxdWVzdC5vcHRpb25zOwogIHRyeSB7CiAgICBsZXQgcmVzdWx0OwogICAgaWYgKG9wdGlvbnM/LmRldGFpbFRocmVzaG9sZCAhPT0gdm9pZCAwIHx8IG9wdGlvbnM/LmNhc2VJbnNlbnNpdGl2ZSkgewogICAgICByZXN1bHQgPSBleHBvcnRzLkRvY3VtZW50Q29tcGFyZXIuQ29tcGFyZURvY3VtZW50c1dpdGhPcHRpb25zKAogICAgICAgIHJlcXVlc3Qub3JpZ2luYWxCeXRlcywKICAgICAgICByZXF1ZXN0Lm1vZGlmaWVkQnl0ZXMsCiAgICAgICAgb3B0aW9ucz8uYXV0aG9yTmFtZSA/PyAiRG9jeG9kdXMiLAogICAgICAgIG9wdGlvbnM/LmRldGFpbFRocmVzaG9sZCA/PyAwLjE1LAogICAgICAgIG9wdGlvbnM/LmNhc2VJbnNlbnNpdGl2ZSA/PyBmYWxzZQogICAgICApOwogICAgfSBlbHNlIHsKICAgICAgcmVzdWx0ID0gZXhwb3J0cy5Eb2N1bWVudENvbXBhcmVyLkNvbXBhcmVEb2N1bWVudHMoCiAgICAgICAgcmVxdWVzdC5vcmlnaW5hbEJ5dGVzLAogICAgICAgIHJlcXVlc3QubW9kaWZpZWRCeXRlcywKICAgICAgICBvcHRpb25zPy5hdXRob3JOYW1lID8/ICJEb2N4b2R1cyIKICAgICAgKTsKICAgIH0KICAgIGlmIChyZXN1bHQubGVuZ3RoID09PSAwKSB7CiAgICAgIHJldHVybiB7IGVycm9yOiAiQ29tcGFyaXNvbiByZXR1cm5lZCBlbXB0eSByZXN1bHQiIH07CiAgICB9CiAgICByZXR1cm4geyBkb2N1bWVudEJ5dGVzOiByZXN1bHQgfTsKICB9IGNhdGNoIChlcnJvcikgewogICAgcmV0dXJuIHsgZXJyb3I6IFN0cmluZyhlcnJvcikgfTsKICB9Cn0KZnVuY3Rpb24gaGFuZGxlQ29tcGFyZVRvSHRtbChyZXF1ZXN0KSB7CiAgY29uc3QgZXhwb3J0cyA9IGVuc3VyZUluaXRpYWxpemVkKCk7CiAgY29uc3Qgb3B0aW9ucyA9IHJlcXVlc3Qub3B0aW9uczsKICB0cnkgewogICAgY29uc3QgcmVuZGVyVHJhY2tlZENoYW5nZXMgPSBvcHRpb25zPy5yZW5kZXJUcmFja2VkQ2hhbmdlcyA/PyB0cnVlOwogICAgY29uc3QgcmVzdWx0ID0gZXhwb3J0cy5Eb2N1bWVudENvbXBhcmVyLkNvbXBhcmVEb2N1bWVudHNUb0h0bWxXaXRoT3B0aW9ucygKICAgICAgcmVxdWVzdC5vcmlnaW5hbEJ5dGVzLAogICAgICByZXF1ZXN0Lm1vZGlmaWVkQnl0ZXMsCiAgICAgIG9wdGlvbnM/LmF1dGhvck5hbWUgPz8gIkRvY3hvZHVzIiwKICAgICAgcmVuZGVyVHJhY2tlZENoYW5nZXMKICAgICk7CiAgICBpZiAoaXNFcnJvclJlc3BvbnNlKHJlc3VsdCkpIHsKICAgICAgcmV0dXJuIHBhcnNlRXJyb3IocmVzdWx0KTsKICAgIH0KICAgIHJldHVybiB7IGh0bWw6IHJlc3VsdCB9OwogIH0gY2F0Y2ggKGVycm9yKSB7CiAgICByZXR1cm4geyBlcnJvcjogU3RyaW5nKGVycm9yKSB9OwogIH0KfQpmdW5jdGlvbiBoYW5kbGVHZXRSZXZpc2lvbnMocmVxdWVzdCkgewogIGNvbnN0IGV4cG9ydHMgPSBlbnN1cmVJbml0aWFsaXplZCgpOwogIGNvbnN0IG9wdGlvbnMgPSByZXF1ZXN0Lm9wdGlvbnM7CiAgdHJ5IHsKICAgIGNvbnN0IGRldGVjdE1vdmVzID0gb3B0aW9ucz8uZGV0ZWN0TW92ZXMgPz8gdHJ1ZTsKICAgIGNvbnN0IG1vdmVTaW1pbGFyaXR5VGhyZXNob2xkID0gb3B0aW9ucz8ubW92ZVNpbWlsYXJpdHlUaHJlc2hvbGQgPz8gMC44OwogICAgY29uc3QgbW92ZU1pbmltdW1Xb3JkQ291bnQgPSBvcHRpb25zPy5tb3ZlTWluaW11bVdvcmRDb3VudCA/PyAzOwogICAgY29uc3QgY2FzZUluc2Vuc2l0aXZlID0gb3B0aW9ucz8uY2FzZUluc2Vuc2l0aXZlID8/IGZhbHNlOwogICAgY29uc3QgcmVzdWx0ID0gZXhwb3J0cy5Eb2N1bWVudENvbXBhcmVyLkdldFJldmlzaW9uc0pzb25XaXRoT3B0aW9ucygKICAgICAgcmVxdWVzdC5kb2N1bWVudEJ5dGVzLAogICAgICBkZXRlY3RNb3ZlcywKICAgICAgbW92ZVNpbWlsYXJpdHlUaHJlc2hvbGQsCiAgICAgIG1vdmVNaW5pbXVtV29yZENvdW50LAogICAgICBjYXNlSW5zZW5zaXRpdmUKICAgICk7CiAgICBpZiAoaXNFcnJvclJlc3BvbnNlKHJlc3VsdCkpIHsKICAgICAgcmV0dXJuIHBhcnNlRXJyb3IocmVzdWx0KTsKICAgIH0KICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UocmVzdWx0KTsKICAgIGNvbnN0IHJldmlzaW9ucyA9IChwYXJzZWQuUmV2aXNpb25zIHx8IHBhcnNlZC5yZXZpc2lvbnMgfHwgW10pLm1hcCgKICAgICAgKHIpID0+ICh7CiAgICAgICAgYXV0aG9yOiByLkF1dGhvciB8fCByLmF1dGhvciwKICAgICAgICBkYXRlOiByLkRhdGUgfHwgci5kYXRlLAogICAgICAgIHJldmlzaW9uVHlwZTogci5SZXZpc2lvblR5cGUgfHwgci5yZXZpc2lvblR5cGUsCiAgICAgICAgdGV4dDogci5UZXh0IHx8IHIudGV4dCwKICAgICAgICBtb3ZlR3JvdXBJZDogci5Nb3ZlR3JvdXBJZCA/PyByLm1vdmVHcm91cElkLAogICAgICAgIGlzTW92ZVNvdXJjZTogci5Jc01vdmVTb3VyY2UgPz8gci5pc01vdmVTb3VyY2UsCiAgICAgICAgZm9ybWF0Q2hhbmdlOiByLkZvcm1hdENoYW5nZSB8fCByLmZvcm1hdENoYW5nZSA/IHsKICAgICAgICAgIG9sZFByb3BlcnRpZXM6IHIuRm9ybWF0Q2hhbmdlPy5PbGRQcm9wZXJ0aWVzIHx8IHIuZm9ybWF0Q2hhbmdlPy5vbGRQcm9wZXJ0aWVzLAogICAgICAgICAgbmV3UHJvcGVydGllczogci5Gb3JtYXRDaGFuZ2U/Lk5ld1Byb3BlcnRpZXMgfHwgci5mb3JtYXRDaGFuZ2U/Lm5ld1Byb3BlcnRpZXMsCiAgICAgICAgICBjaGFuZ2VkUHJvcGVydHlOYW1lczogci5Gb3JtYXRDaGFuZ2U/LkNoYW5nZWRQcm9wZXJ0eU5hbWVzIHx8IHIuZm9ybWF0Q2hhbmdlPy5jaGFuZ2VkUHJvcGVydHlOYW1lcwogICAgICAgIH0gOiB2b2lkIDAKICAgICAgfSkKICAgICk7CiAgICByZXR1cm4geyByZXZpc2lvbnMgfTsKICB9IGNhdGNoIChlcnJvcikgewogICAgcmV0dXJuIHsgZXJyb3I6IFN0cmluZyhlcnJvcikgfTsKICB9Cn0KZnVuY3Rpb24gaGFuZGxlR2V0RG9jdW1lbnRNZXRhZGF0YShyZXF1ZXN0KSB7CiAgY29uc3QgZXhwb3J0cyA9IGVuc3VyZUluaXRpYWxpemVkKCk7CiAgdHJ5IHsKICAgIGNvbnN0IHJlc3VsdCA9IGV4cG9ydHMuRG9jdW1lbnRDb252ZXJ0ZXIuR2V0RG9jdW1lbnRNZXRhZGF0YSgKICAgICAgcmVxdWVzdC5kb2N1bWVudEJ5dGVzCiAgICApOwogICAgaWYgKGlzRXJyb3JSZXNwb25zZShyZXN1bHQpKSB7CiAgICAgIHJldHVybiBwYXJzZUVycm9yKHJlc3VsdCk7CiAgICB9CiAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKHJlc3VsdCk7CiAgICBjb25zdCBjb252ZXJ0U2VjdGlvbiA9IChzKSA9PiAoewogICAgICBzZWN0aW9uSW5kZXg6IHMuU2VjdGlvbkluZGV4ID8/IHMuc2VjdGlvbkluZGV4LAogICAgICBwYWdlV2lkdGhQdDogcy5QYWdlV2lkdGhQdCA/PyBzLnBhZ2VXaWR0aFB0LAogICAgICBwYWdlSGVpZ2h0UHQ6IHMuUGFnZUhlaWdodFB0ID8/IHMucGFnZUhlaWdodFB0LAogICAgICBtYXJnaW5Ub3BQdDogcy5NYXJnaW5Ub3BQdCA/PyBzLm1hcmdpblRvcFB0LAogICAgICBtYXJnaW5SaWdodFB0OiBzLk1hcmdpblJpZ2h0UHQgPz8gcy5tYXJnaW5SaWdodFB0LAogICAgICBtYXJnaW5Cb3R0b21QdDogcy5NYXJnaW5Cb3R0b21QdCA/PyBzLm1hcmdpbkJvdHRvbVB0LAogICAgICBtYXJnaW5MZWZ0UHQ6IHMuTWFyZ2luTGVmdFB0ID8/IHMubWFyZ2luTGVmdFB0LAogICAgICBjb250ZW50V2lkdGhQdDogcy5Db250ZW50V2lkdGhQdCA/PyBzLmNvbnRlbnRXaWR0aFB0LAogICAgICBjb250ZW50SGVpZ2h0UHQ6IHMuQ29udGVudEhlaWdodFB0ID8/IHMuY29udGVudEhlaWdodFB0LAogICAgICBoZWFkZXJQdDogcy5IZWFkZXJQdCA/PyBzLmhlYWRlclB0LAogICAgICBmb290ZXJQdDogcy5Gb290ZXJQdCA/PyBzLmZvb3RlclB0LAogICAgICBwYXJhZ3JhcGhDb3VudDogcy5QYXJhZ3JhcGhDb3VudCA/PyBzLnBhcmFncmFwaENvdW50LAogICAgICB0YWJsZUNvdW50OiBzLlRhYmxlQ291bnQgPz8gcy50YWJsZUNvdW50LAogICAgICBoYXNIZWFkZXI6IHMuSGFzSGVhZGVyID8/IHMuaGFzSGVhZGVyLAogICAgICBoYXNGb290ZXI6IHMuSGFzRm9vdGVyID8/IHMuaGFzRm9vdGVyLAogICAgICBoYXNGaXJzdFBhZ2VIZWFkZXI6IHMuSGFzRmlyc3RQYWdlSGVhZGVyID8/IHMuaGFzRmlyc3RQYWdlSGVhZGVyLAogICAgICBoYXNGaXJzdFBhZ2VGb290ZXI6IHMuSGFzRmlyc3RQYWdlRm9vdGVyID8/IHMuaGFzRmlyc3RQYWdlRm9vdGVyLAogICAgICBoYXNFdmVuUGFnZUhlYWRlcjogcy5IYXNFdmVuUGFnZUhlYWRlciA/PyBzLmhhc0V2ZW5QYWdlSGVhZGVyLAogICAgICBoYXNFdmVuUGFnZUZvb3Rlcjogcy5IYXNFdmVuUGFnZUZvb3RlciA/PyBzLmhhc0V2ZW5QYWdlRm9vdGVyLAogICAgICBzdGFydFBhcmFncmFwaEluZGV4OiBzLlN0YXJ0UGFyYWdyYXBoSW5kZXggPz8gcy5zdGFydFBhcmFncmFwaEluZGV4LAogICAgICBlbmRQYXJhZ3JhcGhJbmRleDogcy5FbmRQYXJhZ3JhcGhJbmRleCA/PyBzLmVuZFBhcmFncmFwaEluZGV4LAogICAgICBzdGFydFRhYmxlSW5kZXg6IHMuU3RhcnRUYWJsZUluZGV4ID8/IHMuc3RhcnRUYWJsZUluZGV4LAogICAgICBlbmRUYWJsZUluZGV4OiBzLkVuZFRhYmxlSW5kZXggPz8gcy5lbmRUYWJsZUluZGV4CiAgICB9KTsKICAgIGNvbnN0IG1ldGFkYXRhID0gewogICAgICBzZWN0aW9uczogKHBhcnNlZC5TZWN0aW9ucyB8fCBwYXJzZWQuc2VjdGlvbnMgfHwgW10pLm1hcChjb252ZXJ0U2VjdGlvbiksCiAgICAgIHRvdGFsUGFyYWdyYXBoczogcGFyc2VkLlRvdGFsUGFyYWdyYXBocyA/PyBwYXJzZWQudG90YWxQYXJhZ3JhcGhzLAogICAgICB0b3RhbFRhYmxlczogcGFyc2VkLlRvdGFsVGFibGVzID8/IHBhcnNlZC50b3RhbFRhYmxlcywKICAgICAgaGFzRm9vdG5vdGVzOiBwYXJzZWQuSGFzRm9vdG5vdGVzID8/IHBhcnNlZC5oYXNGb290bm90ZXMsCiAgICAgIGhhc0VuZG5vdGVzOiBwYXJzZWQuSGFzRW5kbm90ZXMgPz8gcGFyc2VkLmhhc0VuZG5vdGVzLAogICAgICBoYXNUcmFja2VkQ2hhbmdlczogcGFyc2VkLkhhc1RyYWNrZWRDaGFuZ2VzID8/IHBhcnNlZC5oYXNUcmFja2VkQ2hhbmdlcywKICAgICAgaGFzQ29tbWVudHM6IHBhcnNlZC5IYXNDb21tZW50cyA/PyBwYXJzZWQuaGFzQ29tbWVudHMsCiAgICAgIGVzdGltYXRlZFBhZ2VDb3VudDogcGFyc2VkLkVzdGltYXRlZFBhZ2VDb3VudCA/PyBwYXJzZWQuZXN0aW1hdGVkUGFnZUNvdW50CiAgICB9OwogICAgcmV0dXJuIHsgbWV0YWRhdGEgfTsKICB9IGNhdGNoIChlcnJvcikgewogICAgcmV0dXJuIHsgZXJyb3I6IFN0cmluZyhlcnJvcikgfTsKICB9Cn0KZnVuY3Rpb24gaGFuZGxlU2Vzc2lvbk9wZW4ocmVxdWVzdCkgewogIGNvbnN0IGV4cG9ydHMgPSBlbnN1cmVJbml0aWFsaXplZCgpOwogIHRyeSB7CiAgICBjb25zdCBoYW5kbGUgPSBleHBvcnRzLkRvY3hTZXNzaW9uQnJpZGdlLk9wZW5TZXNzaW9uKAogICAgICByZXF1ZXN0LmRvY3VtZW50Qnl0ZXMsCiAgICAgIHJlcXVlc3Quc2V0dGluZ3NKc29uID8/ICIiCiAgICApOwogICAgc2Vzc2lvbkhhbmRsZXMuYWRkKGhhbmRsZSk7CiAgICByZXR1cm4geyBoYW5kbGUgfTsKICB9IGNhdGNoIChlcnJvcikgewogICAgcmV0dXJuIHsgZXJyb3I6IFN0cmluZyhlcnJvcikgfTsKICB9Cn0KZnVuY3Rpb24gaGFuZGxlU2Vzc2lvbkNsb3NlKHJlcXVlc3QpIHsKICBjb25zdCBleHBvcnRzID0gZW5zdXJlSW5pdGlhbGl6ZWQoKTsKICB0cnkgewogICAgZXhwb3J0cy5Eb2N4U2Vzc2lvbkJyaWRnZS5DbG9zZVNlc3Npb24ocmVxdWVzdC5oYW5kbGUpOwogICAgc2Vzc2lvbkhhbmRsZXMuZGVsZXRlKHJlcXVlc3QuaGFuZGxlKTsKICAgIHJldHVybiB7fTsKICB9IGNhdGNoIChlcnJvcikgewogICAgcmV0dXJuIHsgZXJyb3I6IFN0cmluZyhlcnJvcikgfTsKICB9Cn0KZnVuY3Rpb24gaGFuZGxlU2Vzc2lvbkFkZEFubm90YXRpb24ocmVxdWVzdCkgewogIGNvbnN0IGV4cG9ydHMgPSBlbnN1cmVJbml0aWFsaXplZCgpOwogIHRyeSB7CiAgICBjb25zdCBqc29uID0gZXhwb3J0cy5Eb2N4U2Vzc2lvbkJyaWRnZS5BZGRBbm5vdGF0aW9uKAogICAgICByZXF1ZXN0LmhhbmRsZSwKICAgICAgcmVxdWVzdC5hbmNob3JJZCwKICAgICAgcmVxdWVzdC5zcGFuSnNvbiwKICAgICAgcmVxdWVzdC5hbm5vdGF0aW9uSnNvbgogICAgKTsKICAgIGNvbnN0IHJlc3VsdCA9IEpTT04ucGFyc2UoanNvbik7CiAgICByZXR1cm4geyByZXN1bHQgfTsKICB9IGNhdGNoIChlcnJvcikgewogICAgcmV0dXJuIHsgZXJyb3I6IFN0cmluZyhlcnJvcikgfTsKICB9Cn0KZnVuY3Rpb24gaGFuZGxlU2Vzc2lvblJlbW92ZUFubm90YXRpb24ocmVxdWVzdCkgewogIGNvbnN0IGV4cG9ydHMgPSBlbnN1cmVJbml0aWFsaXplZCgpOwogIHRyeSB7CiAgICBjb25zdCBqc29uID0gZXhwb3J0cy5Eb2N4U2Vzc2lvbkJyaWRnZS5TZXNzaW9uUmVtb3ZlQW5ub3RhdGlvbigKICAgICAgcmVxdWVzdC5oYW5kbGUsCiAgICAgIHJlcXVlc3QuYW5ub3RhdGlvbklkCiAgICApOwogICAgY29uc3QgcmVzdWx0ID0gSlNPTi5wYXJzZShqc29uKTsKICAgIHJldHVybiB7IHJlc3VsdCB9OwogIH0gY2F0Y2ggKGVycm9yKSB7CiAgICByZXR1cm4geyBlcnJvcjogU3RyaW5nKGVycm9yKSB9OwogIH0KfQpmdW5jdGlvbiBoYW5kbGVTZXNzaW9uVXBkYXRlQW5ub3RhdGlvbihyZXF1ZXN0KSB7CiAgY29uc3QgZXhwb3J0cyA9IGVuc3VyZUluaXRpYWxpemVkKCk7CiAgdHJ5IHsKICAgIGNvbnN0IGpzb24gPSBleHBvcnRzLkRvY3hTZXNzaW9uQnJpZGdlLlVwZGF0ZUFubm90YXRpb24oCiAgICAgIHJlcXVlc3QuaGFuZGxlLAogICAgICByZXF1ZXN0LmFubm90YXRpb25JZCwKICAgICAgcmVxdWVzdC51cGRhdGVKc29uCiAgICApOwogICAgY29uc3QgcmVzdWx0ID0gSlNPTi5wYXJzZShqc29uKTsKICAgIHJldHVybiB7IHJlc3VsdCB9OwogIH0gY2F0Y2ggKGVycm9yKSB7CiAgICByZXR1cm4geyBlcnJvcjogU3RyaW5nKGVycm9yKSB9OwogIH0KfQpmdW5jdGlvbiBoYW5kbGVTZXNzaW9uTW92ZUFubm90YXRpb24ocmVxdWVzdCkgewogIGNvbnN0IGV4cG9ydHMgPSBlbnN1cmVJbml0aWFsaXplZCgpOwogIHRyeSB7CiAgICBjb25zdCBqc29uID0gZXhwb3J0cy5Eb2N4U2Vzc2lvbkJyaWRnZS5Nb3ZlQW5ub3RhdGlvbigKICAgICAgcmVxdWVzdC5oYW5kbGUsCiAgICAgIHJlcXVlc3QuYW5ub3RhdGlvbklkLAogICAgICByZXF1ZXN0Lm5ld0FuY2hvcklkLAogICAgICByZXF1ZXN0Lm5ld1NwYW5Kc29uCiAgICApOwogICAgY29uc3QgcmVzdWx0ID0gSlNPTi5wYXJzZShqc29uKTsKICAgIHJldHVybiB7IHJlc3VsdCB9OwogIH0gY2F0Y2ggKGVycm9yKSB7CiAgICByZXR1cm4geyBlcnJvcjogU3RyaW5nKGVycm9yKSB9OwogIH0KfQpmdW5jdGlvbiBoYW5kbGVQcmVwYXJlKCkgewogIGNvbnN0IGV4cG9ydHMgPSBlbnN1cmVJbml0aWFsaXplZCgpOwogIHRyeSB7CiAgICBjb25zdCByZXN1bHQgPSBleHBvcnRzLkRvY3VtZW50Q29tcGFyZXIuV2FybXVwKCk7CiAgICBpZiAoaXNFcnJvclJlc3BvbnNlKHJlc3VsdCkpIHsKICAgICAgcmV0dXJuIHBhcnNlRXJyb3IocmVzdWx0KTsKICAgIH0KICAgIHJldHVybiB7fTsKICB9IGNhdGNoIChlcnJvcikgewogICAgcmV0dXJuIHsgZXJyb3I6IFN0cmluZyhlcnJvcikgfTsKICB9Cn0KZnVuY3Rpb24gaGFuZGxlR2V0VmVyc2lvbigpIHsKICBjb25zdCBleHBvcnRzID0gZW5zdXJlSW5pdGlhbGl6ZWQoKTsKICB0cnkgewogICAgY29uc3QgcmVzdWx0ID0gZXhwb3J0cy5Eb2N1bWVudENvbnZlcnRlci5HZXRWZXJzaW9uKCk7CiAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKHJlc3VsdCk7CiAgICByZXR1cm4gewogICAgICB2ZXJzaW9uOiB7CiAgICAgICAgbGlicmFyeTogcGFyc2VkLkxpYnJhcnkgfHwgcGFyc2VkLmxpYnJhcnksCiAgICAgICAgZG90bmV0VmVyc2lvbjogcGFyc2VkLkRvdG5ldFZlcnNpb24gfHwgcGFyc2VkLmRvdG5ldFZlcnNpb24sCiAgICAgICAgcGxhdGZvcm06IHBhcnNlZC5QbGF0Zm9ybSB8fCBwYXJzZWQucGxhdGZvcm0KICAgICAgfQogICAgfTsKICB9IGNhdGNoIChlcnJvcikgewogICAgcmV0dXJuIHsgZXJyb3I6IFN0cmluZyhlcnJvcikgfTsKICB9Cn0Kc2VsZi5vbm1lc3NhZ2UgPSBhc3luYyAoZXZlbnQpID0+IHsKICBjb25zdCByZXF1ZXN0ID0gZXZlbnQuZGF0YTsKICB0cnkgewogICAgbGV0IHJlc3BvbnNlOwogICAgc3dpdGNoIChyZXF1ZXN0LnR5cGUpIHsKICAgICAgY2FzZSAiaW5pdCI6IHsKICAgICAgICBjb25zdCBpbml0UmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGF3YWl0IGluaXRpYWxpemVXYXNtKGluaXRSZXF1ZXN0Lndhc21CYXNlUGF0aCk7CiAgICAgICAgICByZXNwb25zZSA9IHsKICAgICAgICAgICAgaWQ6IHJlcXVlc3QuaWQsCiAgICAgICAgICAgIHR5cGU6ICJpbml0IiwKICAgICAgICAgICAgc3VjY2VzczogdHJ1ZQogICAgICAgICAgfTsKICAgICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgICAgcmVzcG9uc2UgPSB7CiAgICAgICAgICAgIGlkOiByZXF1ZXN0LmlkLAogICAgICAgICAgICB0eXBlOiAiaW5pdCIsCiAgICAgICAgICAgIHN1Y2Nlc3M6IGZhbHNlLAogICAgICAgICAgICBlcnJvcjogU3RyaW5nKGVycm9yKQogICAgICAgICAgfTsKICAgICAgICB9CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgICAgY2FzZSAiY29udmVydERvY3hUb0h0bWwiOiB7CiAgICAgICAgY29uc3QgY29udmVydFJlcXVlc3QgPSByZXF1ZXN0OwogICAgICAgIGNvbnN0IHJlc3VsdCA9IGhhbmRsZUNvbnZlcnQoY29udmVydFJlcXVlc3QpOwogICAgICAgIHJlc3BvbnNlID0gewogICAgICAgICAgaWQ6IHJlcXVlc3QuaWQsCiAgICAgICAgICB0eXBlOiAiY29udmVydERvY3hUb0h0bWwiLAogICAgICAgICAgc3VjY2VzczogIXJlc3VsdC5lcnJvciwKICAgICAgICAgIGh0bWw6IHJlc3VsdC5odG1sLAogICAgICAgICAgZXJyb3I6IHJlc3VsdC5lcnJvcgogICAgICAgIH07CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgICAgY2FzZSAiY29tcGFyZURvY3VtZW50cyI6IHsKICAgICAgICBjb25zdCBjb21wYXJlUmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgICAgY29uc3QgcmVzdWx0ID0gaGFuZGxlQ29tcGFyZShjb21wYXJlUmVxdWVzdCk7CiAgICAgICAgcmVzcG9uc2UgPSB7CiAgICAgICAgICBpZDogcmVxdWVzdC5pZCwKICAgICAgICAgIHR5cGU6ICJjb21wYXJlRG9jdW1lbnRzIiwKICAgICAgICAgIHN1Y2Nlc3M6ICFyZXN1bHQuZXJyb3IsCiAgICAgICAgICBkb2N1bWVudEJ5dGVzOiByZXN1bHQuZG9jdW1lbnRCeXRlcywKICAgICAgICAgIGVycm9yOiByZXN1bHQuZXJyb3IKICAgICAgICB9OwogICAgICAgIGlmIChyZXN1bHQuZG9jdW1lbnRCeXRlcykgewogICAgICAgICAgc2VsZi5wb3N0TWVzc2FnZShyZXNwb25zZSwgeyB0cmFuc2ZlcjogW3Jlc3VsdC5kb2N1bWVudEJ5dGVzLmJ1ZmZlcl0gfSk7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGJyZWFrOwogICAgICB9CiAgICAgIGNhc2UgImNvbXBhcmVEb2N1bWVudHNUb0h0bWwiOiB7CiAgICAgICAgY29uc3QgY29tcGFyZVRvSHRtbFJlcXVlc3QgPSByZXF1ZXN0OwogICAgICAgIGNvbnN0IHJlc3VsdCA9IGhhbmRsZUNvbXBhcmVUb0h0bWwoY29tcGFyZVRvSHRtbFJlcXVlc3QpOwogICAgICAgIHJlc3BvbnNlID0gewogICAgICAgICAgaWQ6IHJlcXVlc3QuaWQsCiAgICAgICAgICB0eXBlOiAiY29tcGFyZURvY3VtZW50c1RvSHRtbCIsCiAgICAgICAgICBzdWNjZXNzOiAhcmVzdWx0LmVycm9yLAogICAgICAgICAgaHRtbDogcmVzdWx0Lmh0bWwsCiAgICAgICAgICBlcnJvcjogcmVzdWx0LmVycm9yCiAgICAgICAgfTsKICAgICAgICBicmVhazsKICAgICAgfQogICAgICBjYXNlICJnZXRSZXZpc2lvbnMiOiB7CiAgICAgICAgY29uc3QgZ2V0UmV2aXNpb25zUmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgICAgY29uc3QgcmVzdWx0ID0gaGFuZGxlR2V0UmV2aXNpb25zKGdldFJldmlzaW9uc1JlcXVlc3QpOwogICAgICAgIHJlc3BvbnNlID0gewogICAgICAgICAgaWQ6IHJlcXVlc3QuaWQsCiAgICAgICAgICB0eXBlOiAiZ2V0UmV2aXNpb25zIiwKICAgICAgICAgIHN1Y2Nlc3M6ICFyZXN1bHQuZXJyb3IsCiAgICAgICAgICByZXZpc2lvbnM6IHJlc3VsdC5yZXZpc2lvbnMsCiAgICAgICAgICBlcnJvcjogcmVzdWx0LmVycm9yCiAgICAgICAgfTsKICAgICAgICBicmVhazsKICAgICAgfQogICAgICBjYXNlICJnZXREb2N1bWVudE1ldGFkYXRhIjogewogICAgICAgIGNvbnN0IGdldE1ldGFkYXRhUmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgICAgY29uc3QgcmVzdWx0ID0gaGFuZGxlR2V0RG9jdW1lbnRNZXRhZGF0YShnZXRNZXRhZGF0YVJlcXVlc3QpOwogICAgICAgIHJlc3BvbnNlID0gewogICAgICAgICAgaWQ6IHJlcXVlc3QuaWQsCiAgICAgICAgICB0eXBlOiAiZ2V0RG9jdW1lbnRNZXRhZGF0YSIsCiAgICAgICAgICBzdWNjZXNzOiAhcmVzdWx0LmVycm9yLAogICAgICAgICAgbWV0YWRhdGE6IHJlc3VsdC5tZXRhZGF0YSwKICAgICAgICAgIGVycm9yOiByZXN1bHQuZXJyb3IKICAgICAgICB9OwogICAgICAgIGJyZWFrOwogICAgICB9CiAgICAgIGNhc2UgImdldFZlcnNpb24iOiB7CiAgICAgICAgY29uc3QgcmVzdWx0ID0gaGFuZGxlR2V0VmVyc2lvbigpOwogICAgICAgIHJlc3BvbnNlID0gewogICAgICAgICAgaWQ6IHJlcXVlc3QuaWQsCiAgICAgICAgICB0eXBlOiAiZ2V0VmVyc2lvbiIsCiAgICAgICAgICBzdWNjZXNzOiAhcmVzdWx0LmVycm9yLAogICAgICAgICAgdmVyc2lvbjogcmVzdWx0LnZlcnNpb24sCiAgICAgICAgICBlcnJvcjogcmVzdWx0LmVycm9yCiAgICAgICAgfTsKICAgICAgICBicmVhazsKICAgICAgfQogICAgICBjYXNlICJwcmVwYXJlIjogewogICAgICAgIGNvbnN0IHJlc3VsdCA9IGhhbmRsZVByZXBhcmUoKTsKICAgICAgICByZXNwb25zZSA9IHsKICAgICAgICAgIGlkOiByZXF1ZXN0LmlkLAogICAgICAgICAgdHlwZTogInByZXBhcmUiLAogICAgICAgICAgc3VjY2VzczogIXJlc3VsdC5lcnJvciwKICAgICAgICAgIGVycm9yOiByZXN1bHQuZXJyb3IKICAgICAgICB9OwogICAgICAgIGJyZWFrOwogICAgICB9CiAgICAgIGNhc2UgInNlc3Npb25PcGVuIjogewogICAgICAgIGNvbnN0IHNlc3Npb25PcGVuUmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgICAgY29uc3QgcmVzdWx0ID0gaGFuZGxlU2Vzc2lvbk9wZW4oc2Vzc2lvbk9wZW5SZXF1ZXN0KTsKICAgICAgICByZXNwb25zZSA9IHsKICAgICAgICAgIGlkOiByZXF1ZXN0LmlkLAogICAgICAgICAgdHlwZTogInNlc3Npb25PcGVuIiwKICAgICAgICAgIHN1Y2Nlc3M6ICFyZXN1bHQuZXJyb3IsCiAgICAgICAgICBoYW5kbGU6IHJlc3VsdC5oYW5kbGUsCiAgICAgICAgICBlcnJvcjogcmVzdWx0LmVycm9yCiAgICAgICAgfTsKICAgICAgICBicmVhazsKICAgICAgfQogICAgICBjYXNlICJzZXNzaW9uQ2xvc2UiOiB7CiAgICAgICAgY29uc3Qgc2Vzc2lvbkNsb3NlUmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgICAgY29uc3QgcmVzdWx0ID0gaGFuZGxlU2Vzc2lvbkNsb3NlKHNlc3Npb25DbG9zZVJlcXVlc3QpOwogICAgICAgIHJlc3BvbnNlID0gewogICAgICAgICAgaWQ6IHJlcXVlc3QuaWQsCiAgICAgICAgICB0eXBlOiAic2Vzc2lvbkNsb3NlIiwKICAgICAgICAgIHN1Y2Nlc3M6ICFyZXN1bHQuZXJyb3IsCiAgICAgICAgICBlcnJvcjogcmVzdWx0LmVycm9yCiAgICAgICAgfTsKICAgICAgICBicmVhazsKICAgICAgfQogICAgICBjYXNlICJzZXNzaW9uQWRkQW5ub3RhdGlvbiI6IHsKICAgICAgICBjb25zdCBhZGRBbm5vdFJlcXVlc3QgPSByZXF1ZXN0OwogICAgICAgIGNvbnN0IHJlc3VsdCA9IGhhbmRsZVNlc3Npb25BZGRBbm5vdGF0aW9uKGFkZEFubm90UmVxdWVzdCk7CiAgICAgICAgcmVzcG9uc2UgPSB7CiAgICAgICAgICBpZDogcmVxdWVzdC5pZCwKICAgICAgICAgIHR5cGU6ICJzZXNzaW9uQWRkQW5ub3RhdGlvbiIsCiAgICAgICAgICBzdWNjZXNzOiAhcmVzdWx0LmVycm9yLAogICAgICAgICAgcmVzdWx0OiByZXN1bHQucmVzdWx0LAogICAgICAgICAgZXJyb3I6IHJlc3VsdC5lcnJvcgogICAgICAgIH07CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgICAgY2FzZSAic2Vzc2lvblJlbW92ZUFubm90YXRpb24iOiB7CiAgICAgICAgY29uc3QgcmVtb3ZlQW5ub3RSZXF1ZXN0ID0gcmVxdWVzdDsKICAgICAgICBjb25zdCByZXN1bHQgPSBoYW5kbGVTZXNzaW9uUmVtb3ZlQW5ub3RhdGlvbihyZW1vdmVBbm5vdFJlcXVlc3QpOwogICAgICAgIHJlc3BvbnNlID0gewogICAgICAgICAgaWQ6IHJlcXVlc3QuaWQsCiAgICAgICAgICB0eXBlOiAic2Vzc2lvblJlbW92ZUFubm90YXRpb24iLAogICAgICAgICAgc3VjY2VzczogIXJlc3VsdC5lcnJvciwKICAgICAgICAgIHJlc3VsdDogcmVzdWx0LnJlc3VsdCwKICAgICAgICAgIGVycm9yOiByZXN1bHQuZXJyb3IKICAgICAgICB9OwogICAgICAgIGJyZWFrOwogICAgICB9CiAgICAgIGNhc2UgInNlc3Npb25VcGRhdGVBbm5vdGF0aW9uIjogewogICAgICAgIGNvbnN0IHVwZGF0ZUFubm90UmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgICAgY29uc3QgcmVzdWx0ID0gaGFuZGxlU2Vzc2lvblVwZGF0ZUFubm90YXRpb24odXBkYXRlQW5ub3RSZXF1ZXN0KTsKICAgICAgICByZXNwb25zZSA9IHsKICAgICAgICAgIGlkOiByZXF1ZXN0LmlkLAogICAgICAgICAgdHlwZTogInNlc3Npb25VcGRhdGVBbm5vdGF0aW9uIiwKICAgICAgICAgIHN1Y2Nlc3M6ICFyZXN1bHQuZXJyb3IsCiAgICAgICAgICByZXN1bHQ6IHJlc3VsdC5yZXN1bHQsCiAgICAgICAgICBlcnJvcjogcmVzdWx0LmVycm9yCiAgICAgICAgfTsKICAgICAgICBicmVhazsKICAgICAgfQogICAgICBjYXNlICJzZXNzaW9uTW92ZUFubm90YXRpb24iOiB7CiAgICAgICAgY29uc3QgbW92ZUFubm90UmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgICAgY29uc3QgcmVzdWx0ID0gaGFuZGxlU2Vzc2lvbk1vdmVBbm5vdGF0aW9uKG1vdmVBbm5vdFJlcXVlc3QpOwogICAgICAgIHJlc3BvbnNlID0gewogICAgICAgICAgaWQ6IHJlcXVlc3QuaWQsCiAgICAgICAgICB0eXBlOiAic2Vzc2lvbk1vdmVBbm5vdGF0aW9uIiwKICAgICAgICAgIHN1Y2Nlc3M6ICFyZXN1bHQuZXJyb3IsCiAgICAgICAgICByZXN1bHQ6IHJlc3VsdC5yZXN1bHQsCiAgICAgICAgICBlcnJvcjogcmVzdWx0LmVycm9yCiAgICAgICAgfTsKICAgICAgICBicmVhazsKICAgICAgfQogICAgICBkZWZhdWx0OiB7CiAgICAgICAgY29uc3QgdW5rbm93blJlcXVlc3QgPSByZXF1ZXN0OwogICAgICAgIHNlbGYucG9zdE1lc3NhZ2UoewogICAgICAgICAgaWQ6IHVua25vd25SZXF1ZXN0LmlkLAogICAgICAgICAgdHlwZTogdW5rbm93blJlcXVlc3QudHlwZSwKICAgICAgICAgIHN1Y2Nlc3M6IGZhbHNlLAogICAgICAgICAgZXJyb3I6IGBVbmtub3duIHJlcXVlc3QgdHlwZTogJHt1bmtub3duUmVxdWVzdC50eXBlfWAKICAgICAgICB9KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgIH0KICAgIHNlbGYucG9zdE1lc3NhZ2UocmVzcG9uc2UpOwogIH0gY2F0Y2ggKGVycm9yKSB7CiAgICBzZWxmLnBvc3RNZXNzYWdlKHsKICAgICAgaWQ6IHJlcXVlc3QuaWQsCiAgICAgIHR5cGU6IHJlcXVlc3QudHlwZSwKICAgICAgc3VjY2VzczogZmFsc2UsCiAgICAgIGVycm9yOiBTdHJpbmcoZXJyb3IpCiAgICB9KTsKICB9Cn07CnNlbGYucG9zdE1lc3NhZ2UoeyB0eXBlOiAicmVhZHkiIH0pOwo=", import.meta.url).href, m = new Worker(y, { type: "module" }), u = /* @__PURE__ */ new Map();
27
+ let b = !0, i = null;
28
+ m.onmessage = (o) => {
29
+ const t = o.data;
30
+ if (t.type === "ready")
31
31
  return;
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;
32
+ const d = u.get(t.id);
33
+ d && (u.delete(t.id), t.success ? d.resolve(t) : d.reject(new Error(t.error || "Unknown error")));
34
+ }, m.onerror = (o) => {
35
+ for (const t of u.values())
36
+ t.reject(new Error(`Worker error: ${o.message}`));
37
+ u.clear(), b = !1;
38
38
  };
39
- function l(t, i) {
40
- return new Promise((d, b) => {
41
- if (!C) {
42
- b(new Error("Worker has been terminated"));
39
+ function s(o, t) {
40
+ return new Promise((d, h) => {
41
+ if (!b) {
42
+ h(new Error("Worker has been terminated"));
43
43
  return;
44
44
  }
45
- m.set(t.id, { resolve: d, reject: b }), i && i.length > 0 ? A.postMessage(t, i) : A.postMessage(t);
45
+ u.set(o.id, { resolve: d, reject: h }), t && t.length > 0 ? m.postMessage(o, t) : m.postMessage(o);
46
46
  });
47
47
  }
48
- const h = await l({
49
- id: z(),
48
+ const C = await s({
49
+ id: v(),
50
50
  type: "init",
51
- wasmBasePath: s
51
+ wasmBasePath: a
52
52
  });
53
- if (!h.success)
54
- throw A.terminate(), new Error(`Failed to initialize worker: ${h.error}`);
53
+ if (!C.success)
54
+ throw m.terminate(), new Error(`Failed to initialize worker: ${C.error}`);
55
55
  return {
56
- async convertDocxToHtml(t, i) {
57
- const d = await w(t);
58
- return (await l({
59
- id: z(),
56
+ async convertDocxToHtml(o, t) {
57
+ const d = await Q(o);
58
+ return (await s({
59
+ id: v(),
60
60
  type: "convertDocxToHtml",
61
61
  documentBytes: d,
62
- options: i
62
+ options: t
63
63
  }, [d.buffer])).html;
64
64
  },
65
- async compareDocuments(t, i, d) {
66
- const b = await w(t), y = await w(i);
67
- return (await l({
68
- id: z(),
65
+ async compareDocuments(o, t, d) {
66
+ const h = await Q(o), r = await Q(t);
67
+ return (await s({
68
+ id: v(),
69
69
  type: "compareDocuments",
70
- originalBytes: b,
71
- modifiedBytes: y,
70
+ originalBytes: h,
71
+ modifiedBytes: r,
72
72
  options: d
73
- }, [b.buffer, y.buffer])).documentBytes;
73
+ }, [h.buffer, r.buffer])).documentBytes;
74
74
  },
75
- async compareDocumentsToHtml(t, i, d) {
76
- const b = await w(t), y = await w(i);
77
- return (await l({
78
- id: z(),
75
+ async compareDocumentsToHtml(o, t, d) {
76
+ const h = await Q(o), r = await Q(t);
77
+ return (await s({
78
+ id: v(),
79
79
  type: "compareDocumentsToHtml",
80
- originalBytes: b,
81
- modifiedBytes: y,
80
+ originalBytes: h,
81
+ modifiedBytes: r,
82
82
  options: d
83
- }, [b.buffer, y.buffer])).html;
83
+ }, [h.buffer, r.buffer])).html;
84
84
  },
85
- async getRevisions(t, i) {
86
- const d = await w(t);
87
- return (await l({
88
- id: z(),
85
+ async getRevisions(o, t) {
86
+ const d = await Q(o);
87
+ return (await s({
88
+ id: v(),
89
89
  type: "getRevisions",
90
90
  documentBytes: d,
91
- options: i
91
+ options: t
92
92
  }, [d.buffer])).revisions;
93
93
  },
94
- async getDocumentMetadata(t) {
95
- const i = await w(t);
96
- return (await l({
97
- id: z(),
94
+ async getDocumentMetadata(o) {
95
+ const t = await Q(o);
96
+ return (await s({
97
+ id: v(),
98
98
  type: "getDocumentMetadata",
99
- documentBytes: i
100
- }, [i.buffer])).metadata;
99
+ documentBytes: t
100
+ }, [t.buffer])).metadata;
101
101
  },
102
102
  async getVersion() {
103
- return (await l({
104
- id: z(),
103
+ return (await s({
104
+ id: v(),
105
105
  type: "getVersion"
106
106
  })).version;
107
107
  },
108
+ prepare() {
109
+ return i || (i = s({
110
+ id: v(),
111
+ type: "prepare"
112
+ }).then(() => {
113
+ }), i.catch(() => {
114
+ i = null;
115
+ }), i);
116
+ },
117
+ async openDocxSession(o, t) {
118
+ const d = await Q(o), h = t ? JSON.stringify(t) : "", r = await s({
119
+ id: v(),
120
+ type: "sessionOpen",
121
+ documentBytes: d,
122
+ settingsJson: h
123
+ }, [d.buffer]);
124
+ if (!r.success || r.handle === void 0)
125
+ throw new Error(`Failed to open worker DocxSession: ${r.error ?? "unknown error"}`);
126
+ const B = r.handle;
127
+ return {
128
+ async addAnnotation(w, V, H) {
129
+ const J = await s({
130
+ id: v(),
131
+ type: "sessionAddAnnotation",
132
+ handle: B,
133
+ anchorId: w,
134
+ spanJson: V ? JSON.stringify(V) : "",
135
+ annotationJson: JSON.stringify(H)
136
+ });
137
+ if (!J.success)
138
+ throw new Error(J.error ?? "sessionAddAnnotation failed");
139
+ return J.result;
140
+ },
141
+ async removeAnnotation(w) {
142
+ const V = await s({
143
+ id: v(),
144
+ type: "sessionRemoveAnnotation",
145
+ handle: B,
146
+ annotationId: w
147
+ });
148
+ if (!V.success)
149
+ throw new Error(V.error ?? "sessionRemoveAnnotation failed");
150
+ return V.result;
151
+ },
152
+ async updateAnnotation(w, V) {
153
+ const H = await s({
154
+ id: v(),
155
+ type: "sessionUpdateAnnotation",
156
+ handle: B,
157
+ annotationId: w,
158
+ updateJson: JSON.stringify(V)
159
+ });
160
+ if (!H.success)
161
+ throw new Error(H.error ?? "sessionUpdateAnnotation failed");
162
+ return H.result;
163
+ },
164
+ async moveAnnotation(w, V, H) {
165
+ const J = await s({
166
+ id: v(),
167
+ type: "sessionMoveAnnotation",
168
+ handle: B,
169
+ annotationId: w,
170
+ newAnchorId: V,
171
+ newSpanJson: H ? JSON.stringify(H) : ""
172
+ });
173
+ if (!J.success)
174
+ throw new Error(J.error ?? "sessionMoveAnnotation failed");
175
+ return J.result;
176
+ },
177
+ async close() {
178
+ await s({
179
+ id: v(),
180
+ type: "sessionClose",
181
+ handle: B
182
+ });
183
+ }
184
+ };
185
+ },
108
186
  terminate() {
109
- C = !1, A.terminate();
110
- for (const t of m.values())
111
- t.reject(new Error("Worker terminated"));
112
- m.clear();
187
+ b = !1, m.terminate();
188
+ for (const o of u.values())
189
+ o.reject(new Error("Worker terminated"));
190
+ u.clear();
113
191
  },
114
192
  isActive() {
115
- return C;
193
+ return b;
116
194
  }
117
195
  };
118
196
  }
119
- function sn() {
197
+ function Vg() {
120
198
  return typeof Worker < "u";
121
199
  }
122
- const dn = {
200
+ const vg = {
123
201
  paginationScale: 0.8,
124
202
  showPageNumbers: !0,
125
203
  renderFootnotesAndEndnotes: !0,
@@ -134,17 +212,19 @@ const dn = {
134
212
  fabricateClasses: !0,
135
213
  additionalCss: "",
136
214
  commentCssClassPrefix: "comment-",
137
- annotationCssClassPrefix: "annot-"
215
+ annotationCssClassPrefix: "annot-",
216
+ renderUnsupportedContentPlaceholders: !0,
217
+ documentLanguage: ""
138
218
  };
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);
219
+ function yg(n) {
220
+ return be(n) ? "Inserted" : Ae(n) ? "Deleted" : q(n) ? n.isMoveSource ? "Moved from" : "Moved to" : $(n) ? "Formatted" : String(n.revisionType);
141
221
  }
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" : "";
222
+ function Gg(n) {
223
+ return be(n) ? "rdv-revision--insertion" : Ae(n) ? "rdv-revision--deletion" : q(n) ? "rdv-revision--move" : $(n) ? "rdv-revision--format" : "";
144
224
  }
145
- function rn(g) {
225
+ function pg(n) {
146
226
  try {
147
- return new Date(g).toLocaleDateString(void 0, {
227
+ return new Date(n).toLocaleDateString(void 0, {
148
228
  year: "numeric",
149
229
  month: "short",
150
230
  day: "numeric",
@@ -152,158 +232,158 @@ function rn(g) {
152
232
  minute: "2-digit"
153
233
  });
154
234
  } catch {
155
- return g;
235
+ return n;
156
236
  }
157
237
  }
158
- function An(g, s = 150) {
159
- return g.length <= s ? g : g.substring(0, s) + "...";
238
+ function Bg(n, a = 150) {
239
+ return n.length <= a ? n : n.substring(0, a) + "...";
160
240
  }
161
- function me(g) {
162
- return !(!g || typeof g != "string" || g.includes("<") || g.includes("xmlns") || g.includes("Unid=") || g.length > 100);
241
+ function Be(n) {
242
+ return !(!n || typeof n != "string" || n.includes("<") || n.includes("xmlns") || n.includes("Unid=") || n.length > 100);
163
243
  }
164
- function Fe(g) {
165
- return g.replace(/([A-Z])/g, " $1").replace(/^./, (s) => s.toUpperCase()).trim();
244
+ function Le(n) {
245
+ return n.replace(/([A-Z])/g, " $1").replace(/^./, (a) => a.toUpperCase()).trim();
166
246
  }
167
- function be(g) {
168
- return g === "true" ? "Yes" : g === "false" ? "No" : g === "single" ? "Single" : g === "double" ? "Double" : g;
247
+ function Ne(n) {
248
+ return n === "true" ? "Yes" : n === "false" ? "No" : n === "single" ? "Single" : n === "double" ? "Double" : n;
169
249
  }
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
250
+ function Ng(n) {
251
+ if (!n.formatChange) return [];
252
+ const { oldProperties: a, newProperties: y } = n.formatChange, m = [], u = /* @__PURE__ */ new Set();
253
+ if (a)
254
+ for (const [b, i] of Object.entries(a)) {
255
+ if (!Be(i)) continue;
256
+ u.add(b);
257
+ const s = y?.[b];
258
+ m.push({
259
+ property: Le(b),
260
+ oldValue: Ne(i),
261
+ newValue: s && Be(s) ? Ne(s) : void 0
182
262
  });
183
263
  }
184
- if (Z)
185
- for (const [C, l] of Object.entries(Z))
186
- m.has(C) || me(l) && A.push({
187
- property: Fe(C),
264
+ if (y)
265
+ for (const [b, i] of Object.entries(y))
266
+ u.has(b) || Be(i) && m.push({
267
+ property: Le(b),
188
268
  oldValue: void 0,
189
- newValue: be(l)
269
+ newValue: Ne(i)
190
270
  });
191
- return A;
271
+ return m;
192
272
  }
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) {
273
+ function Wg({ revisions: n }) {
274
+ const [a, y] = A("all"), [m, u] = A(/* @__PURE__ */ new Set()), b = re(() => a === "all" ? n : n.filter((C) => {
275
+ switch (a) {
196
276
  case "insertions":
197
- return ce(t);
277
+ return be(C);
198
278
  case "deletions":
199
- return ge(t);
279
+ return Ae(C);
200
280
  case "moves":
201
- return U(t);
281
+ return q(C);
202
282
  case "formatting":
203
- return D(t);
283
+ return $(C);
204
284
  default:
205
285
  return !0;
206
286
  }
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;
287
+ }), [n, a]), i = re(() => ({
288
+ total: n.length,
289
+ insertions: n.filter(be).length,
290
+ deletions: n.filter(Ae).length,
291
+ moves: n.filter(q).length,
292
+ formatting: n.filter($).length
293
+ }), [n]), s = (C) => {
294
+ u((o) => {
295
+ const t = new Set(o);
296
+ return t.has(C) ? t.delete(C) : t.add(C), t;
217
297
  });
218
298
  };
219
- return g.length === 0 ? /* @__PURE__ */ e("div", { className: "rdv-revision-panel", children: /* @__PURE__ */ c("div", { className: "rdv-revision-empty", children: [
299
+ return n.length === 0 ? /* @__PURE__ */ e("div", { className: "rdv-revision-panel", children: /* @__PURE__ */ c("div", { className: "rdv-revision-empty", children: [
220
300
  /* @__PURE__ */ e("div", { className: "rdv-revision-empty__icon", children: "📝" }),
221
301
  /* @__PURE__ */ e("p", { children: "No tracked changes found in this document." })
222
302
  ] }) }) : /* @__PURE__ */ c("div", { className: "rdv-revision-panel", children: [
223
303
  /* @__PURE__ */ c("div", { className: "rdv-revision-header", children: [
224
304
  /* @__PURE__ */ c("div", { className: "rdv-revision-stats", children: [
225
305
  /* @__PURE__ */ c("span", { className: "rdv-revision-stat rdv-revision-stat--total", children: [
226
- l.total,
306
+ i.total,
227
307
  " change",
228
- l.total !== 1 ? "s" : ""
308
+ i.total !== 1 ? "s" : ""
229
309
  ] }),
230
- l.insertions > 0 && /* @__PURE__ */ c("span", { className: "rdv-revision-stat rdv-revision-stat--insertion", children: [
310
+ i.insertions > 0 && /* @__PURE__ */ c("span", { className: "rdv-revision-stat rdv-revision-stat--insertion", children: [
231
311
  "+",
232
- l.insertions
312
+ i.insertions
233
313
  ] }),
234
- l.deletions > 0 && /* @__PURE__ */ c("span", { className: "rdv-revision-stat rdv-revision-stat--deletion", children: [
314
+ i.deletions > 0 && /* @__PURE__ */ c("span", { className: "rdv-revision-stat rdv-revision-stat--deletion", children: [
235
315
  "−",
236
- l.deletions
316
+ i.deletions
237
317
  ] }),
238
- l.moves > 0 && /* @__PURE__ */ c("span", { className: "rdv-revision-stat rdv-revision-stat--move", children: [
318
+ i.moves > 0 && /* @__PURE__ */ c("span", { className: "rdv-revision-stat rdv-revision-stat--move", children: [
239
319
  "↔",
240
- l.moves
320
+ i.moves
241
321
  ] }),
242
- l.formatting > 0 && /* @__PURE__ */ c("span", { className: "rdv-revision-stat rdv-revision-stat--format", children: [
322
+ i.formatting > 0 && /* @__PURE__ */ c("span", { className: "rdv-revision-stat rdv-revision-stat--format", children: [
243
323
  "✎",
244
- l.formatting
324
+ i.formatting
245
325
  ] })
246
326
  ] }),
247
327
  /* @__PURE__ */ c(
248
328
  "select",
249
329
  {
250
330
  className: "rdv-revision-filter",
251
- value: s,
252
- onChange: (t) => Z(t.target.value),
331
+ value: a,
332
+ onChange: (C) => y(C.target.value),
253
333
  children: [
254
334
  /* @__PURE__ */ e("option", { value: "all", children: "All Changes" }),
255
335
  /* @__PURE__ */ c("option", { value: "insertions", children: [
256
336
  "Insertions (",
257
- l.insertions,
337
+ i.insertions,
258
338
  ")"
259
339
  ] }),
260
340
  /* @__PURE__ */ c("option", { value: "deletions", children: [
261
341
  "Deletions (",
262
- l.deletions,
342
+ i.deletions,
263
343
  ")"
264
344
  ] }),
265
345
  /* @__PURE__ */ c("option", { value: "moves", children: [
266
346
  "Moves (",
267
- l.moves,
347
+ i.moves,
268
348
  ")"
269
349
  ] }),
270
350
  /* @__PURE__ */ c("option", { value: "formatting", children: [
271
351
  "Formatting (",
272
- l.formatting,
352
+ i.formatting,
273
353
  ")"
274
354
  ] })
275
355
  ]
276
356
  }
277
357
  )
278
358
  ] }),
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) : [];
359
+ /* @__PURE__ */ e("div", { className: "rdv-revision-list", children: b.map((C, o) => {
360
+ const t = m.has(o), d = C.text.length > 150, h = $(C) ? Ng(C) : [];
281
361
  return /* @__PURE__ */ c(
282
362
  "div",
283
363
  {
284
- className: `rdv-revision-item ${Cn(t)}`,
364
+ className: `rdv-revision-item ${Gg(C)}`,
285
365
  children: [
286
366
  /* @__PURE__ */ c("div", { className: "rdv-revision-item__header", 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: [
367
+ /* @__PURE__ */ e("span", { className: "rdv-revision-type", children: yg(C) }),
368
+ q(C) && C.moveGroupId !== void 0 && /* @__PURE__ */ c("span", { className: "rdv-revision-move-id", children: [
289
369
  "#",
290
- t.moveGroupId
370
+ C.moveGroupId
291
371
  ] }),
292
- /* @__PURE__ */ e("span", { className: "rdv-revision-author", children: t.author || "Unknown" }),
293
- /* @__PURE__ */ e("span", { className: "rdv-revision-date", children: rn(t.date) })
372
+ /* @__PURE__ */ e("span", { className: "rdv-revision-author", children: C.author || "Unknown" }),
373
+ /* @__PURE__ */ e("span", { className: "rdv-revision-date", children: pg(C.date) })
294
374
  ] }),
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(
375
+ C.text && /* @__PURE__ */ c("div", { className: "rdv-revision-item__content", children: [
376
+ /* @__PURE__ */ e("span", { className: "rdv-revision-text", children: t ? C.text : Bg(C.text) }),
377
+ d && /* @__PURE__ */ e(
298
378
  "button",
299
379
  {
300
380
  className: "rdv-revision-expand",
301
- onClick: () => h(i),
302
- children: d ? "Show less" : "Show more"
381
+ onClick: () => s(o),
382
+ children: t ? "Show less" : "Show more"
303
383
  }
304
384
  )
305
385
  ] }),
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: [
386
+ h.length > 0 && /* @__PURE__ */ e("div", { className: "rdv-revision-item__format-details", children: h.map((r, B) => /* @__PURE__ */ c("div", { className: "rdv-format-change", children: [
307
387
  /* @__PURE__ */ e("span", { className: "rdv-format-change__property", children: r.property }),
308
388
  /* @__PURE__ */ c("span", { className: "rdv-format-change__values", children: [
309
389
  r.oldValue && /* @__PURE__ */ e("span", { className: "rdv-format-change__old", children: r.oldValue }),
@@ -312,179 +392,249 @@ function bn({ revisions: g }) {
312
392
  !r.oldValue && r.newValue && /* @__PURE__ */ e("span", { className: "rdv-format-change__added", children: "(added)" }),
313
393
  r.oldValue && !r.newValue && /* @__PURE__ */ e("span", { className: "rdv-format-change__removed", children: "(removed)" })
314
394
  ] })
315
- ] }, te)) })
395
+ ] }, B)) })
316
396
  ]
317
397
  },
318
- i
398
+ o
319
399
  );
320
400
  }) })
321
401
  ] });
322
402
  }
323
- function un(g) {
324
- switch (g) {
403
+ const Xg = () => /* @__PURE__ */ c(
404
+ "svg",
405
+ {
406
+ width: "16",
407
+ height: "16",
408
+ viewBox: "0 0 24 24",
409
+ fill: "none",
410
+ stroke: "currentColor",
411
+ strokeWidth: "2",
412
+ strokeLinecap: "round",
413
+ strokeLinejoin: "round",
414
+ "aria-hidden": "true",
415
+ children: [
416
+ /* @__PURE__ */ e("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }),
417
+ /* @__PURE__ */ e("polyline", { points: "17 8 12 3 7 8" }),
418
+ /* @__PURE__ */ e("line", { x1: "12", y1: "3", x2: "12", y2: "15" })
419
+ ]
420
+ }
421
+ );
422
+ function Jg(n) {
423
+ switch (n) {
325
424
  case "endnote":
326
- return ee.EndnoteStyle;
425
+ return de.EndnoteStyle;
327
426
  case "inline":
328
- return ee.Inline;
427
+ return de.Inline;
329
428
  case "margin":
330
- return ee.Margin;
429
+ return de.Margin;
331
430
  default:
332
- return ee.Disabled;
431
+ return de.Disabled;
333
432
  }
334
433
  }
335
- function Zn(g) {
336
- switch (g) {
434
+ function Hg(n) {
435
+ switch (n) {
337
436
  case "above":
338
- return q.Above;
437
+ return se.Above;
339
438
  case "inline":
340
- return q.Inline;
439
+ return se.Inline;
341
440
  case "tooltip":
342
- return q.Tooltip;
441
+ return se.Tooltip;
343
442
  case "none":
344
- return q.None;
443
+ return se.None;
345
444
  default:
346
445
  return;
347
446
  }
348
447
  }
349
- function pn({
350
- file: g,
351
- html: s,
352
- onFileChange: Z,
353
- onConversionStart: A,
354
- onConversionComplete: m,
355
- onError: C,
356
- onPageChange: l,
357
- onRevisionsExtracted: h,
358
- settings: t,
359
- defaultSettings: i,
448
+ function M(n) {
449
+ if (n != null)
450
+ return typeof n == "number" ? `${n}px` : n;
451
+ }
452
+ const Ue = 96 / 72, Pe = 40, wg = 0.3, Rg = 2;
453
+ function zg(n, a, y, m, u) {
454
+ const b = m * Ue, i = u * Ue, s = (a - Pe) / b, C = (y - Pe) / i, o = n === "page-width" ? s : Math.min(s, C), t = Math.max(wg, Math.min(Rg, o));
455
+ return Math.round(t * 100) / 100;
456
+ }
457
+ function Kg({
458
+ file: n,
459
+ html: a,
460
+ onFileChange: y,
461
+ onConversionStart: m,
462
+ onConversionComplete: u,
463
+ onError: b,
464
+ onPageChange: i,
465
+ onRevisionsExtracted: s,
466
+ settings: C,
467
+ defaultSettings: o,
468
+ defaultZoom: t,
360
469
  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
470
+ className: h,
471
+ style: r,
472
+ toolbar: B = "top",
473
+ showSettingsButton: w = !0,
474
+ showRevisionsTab: V = !0,
475
+ placeholder: H = "Open a DOCX file to view",
476
+ wasmBasePath: J,
477
+ useWorker: N = !0,
478
+ warmup: We = !1,
479
+ fitMode: me = "manual",
480
+ toolbarActions: ee
369
481
  }) {
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())
482
+ const ue = re(() => {
483
+ const g = { ...vg };
484
+ return t !== void 0 && (g.paginationScale = Math.max(0.3, Math.min(2, t))), { ...g, ...o };
485
+ }, [o, t]), [De, Xe] = A(null), [Me, ge] = A(null), [Je, He] = A(ue), Y = n !== void 0 ? n : De, G = a !== void 0 ? a : Me, I = re(
486
+ () => C ? { ...ue, ...C } : Je,
487
+ [C, ue, Je]
488
+ ), S = Ag(J), [W, we] = A(null), [Oe, Re] = A(!1), [Te, he] = A(!1), [je, ze] = A(null), ne = oe(null);
489
+ K(() => {
490
+ if (!N || !Vg())
379
491
  return;
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));
492
+ let g = !1;
493
+ return he(!0), ze(null), Zg({ wasmBasePath: J }).then((l) => {
494
+ g ? l.terminate() : (ne.current = l, we(l), Re(!0), he(!1));
495
+ }).catch((l) => {
496
+ g || (ze(l instanceof Error ? l : new Error(String(l))), he(!1));
385
497
  }), () => {
386
- n = !0, M.current && (M.current.terminate(), M.current = null, he(null), ve(!1));
498
+ g = !0, ne.current && (ne.current.terminate(), ne.current = null, we(null), Re(!1));
499
+ };
500
+ }, [N, J]), K(() => {
501
+ !We || !W || W.prepare().catch(() => {
502
+ });
503
+ }, [We, W]);
504
+ const x = N ? Oe : S.isReady, O = N ? Te : S.isLoading, ce = N ? je : S.error, [R, Fe] = A(!1), [Ye, Ie] = A(null), [le, fe] = A(""), [z, Ze] = A(1), [X, Ve] = A(0), [Ee, te] = A(!1), [L, T] = A("document"), [ve, j] = A([]), [_e, ke] = A(!1), [F, Ce] = A(null), Ke = oe(null), ae = oe(null), [$e, qe] = A(20);
505
+ K(() => {
506
+ const g = () => {
507
+ const l = Ke.current;
508
+ if (!l) return;
509
+ const Z = getComputedStyle(l).getPropertyValue("--rdv-page-gap").trim(), f = parseFloat(Z);
510
+ Number.isNaN(f) || qe(f);
387
511
  };
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) => {
512
+ return g(), window.addEventListener("resize", g), () => window.removeEventListener("resize", g);
513
+ }, []);
514
+ const ye = D(() => ({
515
+ commentRenderMode: Jg(I.commentMode),
516
+ pageTitle: I.pageTitle,
517
+ cssPrefix: I.cssPrefix,
518
+ fabricateClasses: I.fabricateClasses,
519
+ additionalCss: I.additionalCss || void 0,
520
+ commentCssClassPrefix: I.commentCssClassPrefix,
521
+ paginationMode: mg.Paginated,
522
+ paginationScale: I.paginationScale,
523
+ renderAnnotations: I.annotationMode !== "disabled",
524
+ annotationLabelMode: Hg(I.annotationMode),
525
+ annotationCssClassPrefix: I.annotationCssClassPrefix,
526
+ renderFootnotesAndEndnotes: I.renderFootnotesAndEndnotes,
527
+ renderHeadersAndFooters: I.renderHeadersAndFooters,
528
+ renderTrackedChanges: I.renderTrackedChanges,
529
+ showDeletedContent: I.showDeletedContent,
530
+ renderMoveOperations: I.renderMoveOperations,
531
+ renderUnsupportedContentPlaceholders: I.renderUnsupportedContentPlaceholders,
532
+ documentLanguage: I.documentLanguage || void 0
533
+ }), [I]), eg = D(async (g) => {
407
534
  try {
408
- const I = u && W ? await W.getDocumentMetadata(n) : await In(n);
409
- T(I);
535
+ const l = N && W ? await W.getDocumentMetadata(g) : await ug(g);
536
+ Ce(l);
410
537
  } catch {
411
- T(null);
538
+ Ce(null);
412
539
  }
413
- }, [u, W]), Xe = f(async (n) => {
414
- if (!(!H || !P)) {
415
- Be(!0);
540
+ }, [N, W]), Qe = D(async (g) => {
541
+ if (!(!x || !V)) {
542
+ ke(!0);
416
543
  try {
417
- const I = u && W ? await W.getRevisions(n) : await R.getRevisions(n);
418
- K(I), h?.(I);
544
+ const l = N && W ? await W.getRevisions(g) : await S.getRevisions(g);
545
+ j(l), s?.(l);
419
546
  } catch {
420
- K([]);
547
+ j([]);
421
548
  } finally {
422
- Be(!1);
549
+ ke(!1);
423
550
  }
424
551
  }
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)));
552
+ }, [x, N, W, S, V, s]), E = D(async (g) => {
553
+ if (x) {
554
+ Fe(!0), Ie(null), j([]), T("document"), m?.(), N || await new Promise((l) => requestAnimationFrame(() => requestAnimationFrame(l)));
428
555
  try {
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);
556
+ const l = N && W ? await W.convertDocxToHtml(g, ye()) : await S.convertToHtml(g, ye());
557
+ a === void 0 && ge(l), u?.(l), Qe(g);
558
+ } catch (l) {
559
+ const Z = l instanceof Error ? l : new Error(String(l));
560
+ Ie(Z), b?.(Z);
434
561
  } finally {
435
- ye(!1);
562
+ Fe(!1);
436
563
  }
437
564
  }
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);
565
+ }, [x, N, W, S, ye, a, m, u, b, Qe]);
566
+ K(() => {
567
+ x && Y && !G && !R && a === void 0 && E(Y);
568
+ }, [x, Y, G, R, E, a]);
569
+ const gg = async (g) => {
570
+ const l = g.target.files?.[0];
571
+ l && (fe(l.name), Ie(null), Ze(1), Ve(0), Ce(null), j([]), T("document"), n === void 0 && (Xe(l), ge(null)), y?.(l), eg(l), x && a === void 0 && await E(l));
572
+ }, ng = D(async () => {
573
+ Y && (a === void 0 && ge(null), await E(Y));
574
+ }, [Y, E, a]), cg = () => {
575
+ n === void 0 && Xe(null), a === void 0 && ge(null), Ie(null), fe(""), Ze(1), Ve(0), j([]), T("document"), Ce(null), y?.(null);
576
+ const g = document.getElementById("rdv-file-input");
577
+ g && (g.value = "");
578
+ }, p = D((g) => {
579
+ const l = { ...I, ...g };
580
+ C === void 0 && He(l), d?.(l);
581
+ }, [I, C, d]), Ig = () => p({
582
+ paginationScale: Math.min(I.paginationScale + 0.1, 2)
583
+ }), lg = () => p({
584
+ paginationScale: Math.max(I.paginationScale - 0.1, 0.3)
585
+ }), tg = (g) => p({
586
+ paginationScale: Math.max(0.3, Math.min(2, g))
587
+ }), Ge = oe(I);
588
+ K(() => {
589
+ Ge.current = I;
590
+ }), K(() => {
591
+ if (me === "manual" || !F || !G) return;
592
+ const g = ae.current;
593
+ if (!g || typeof ResizeObserver > "u") return;
594
+ const l = F.sections[0], Z = l?.pageWidthPt ?? 612, f = l?.pageHeightPt ?? 792, U = () => {
595
+ const _ = zg(
596
+ me,
597
+ g.clientWidth,
598
+ g.clientHeight,
599
+ Z,
600
+ f
601
+ );
602
+ if (Math.abs(Ge.current.paginationScale - _) < 5e-3) return;
603
+ const P = { ...Ge.current, paginationScale: _ };
604
+ C === void 0 && He(P), d?.(P);
605
+ };
606
+ U();
607
+ const k = new ResizeObserver(U);
608
+ return k.observe(g), () => k.disconnect();
609
+ }, [me, F, G, C, d]);
610
+ const pe = (g) => {
611
+ const l = ae.current;
612
+ if (!l || g < 1 || g > X) return;
613
+ const Z = l.querySelector(`[data-page-number="${g}"]`);
614
+ Z && Z.scrollIntoView({ behavior: "smooth", block: "start" });
615
+ }, Cg = () => z > 1 && pe(z - 1), ag = () => z < X && pe(z + 1), ig = (g) => {
616
+ Ze(g), i?.(g, X);
467
617
  };
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));
618
+ K(() => {
619
+ const g = ae.current;
620
+ if (!g) return;
621
+ const l = (Z) => {
622
+ const U = Z.target.closest('a[href^="#"]');
623
+ if (!U) return;
624
+ const k = U.getAttribute("href");
625
+ if (!k || !k.startsWith("#")) return;
626
+ Z.preventDefault();
627
+ const _ = k.substring(1), P = g.querySelector(`[id="${_}"], [name="${_}"]`);
628
+ P && (P.scrollIntoView({ behavior: "smooth", block: "center" }), P.classList.add("rdv-footnote-highlight"), setTimeout(() => P.classList.remove("rdv-footnote-highlight"), 2e3));
479
629
  };
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: [
630
+ return g.addEventListener("click", l), () => g.removeEventListener("click", l);
631
+ }, [G]), K(() => {
632
+ X > 0 && i?.(z, X);
633
+ }, [X, z, i]);
634
+ const Se = R || O, og = () => /* @__PURE__ */ e("div", { className: "rdv-settings-overlay", onClick: () => te(!1), children: /* @__PURE__ */ c("div", { className: "rdv-settings-modal", onClick: (g) => g.stopPropagation(), children: [
485
635
  /* @__PURE__ */ c("div", { className: "rdv-settings-header", children: [
486
636
  /* @__PURE__ */ e("h3", { children: "Viewer Settings" }),
487
- /* @__PURE__ */ e("button", { className: "rdv-settings-close", onClick: () => O(!1), children: "×" })
637
+ /* @__PURE__ */ e("button", { className: "rdv-settings-close", onClick: () => te(!1), children: "×" })
488
638
  ] }),
489
639
  /* @__PURE__ */ c("div", { className: "rdv-settings-body", children: [
490
640
  /* @__PURE__ */ c("div", { className: "rdv-settings-section", children: [
@@ -494,8 +644,8 @@ function pn({
494
644
  "input",
495
645
  {
496
646
  type: "checkbox",
497
- checked: a.renderFootnotesAndEndnotes,
498
- onChange: (n) => v({ renderFootnotesAndEndnotes: n.target.checked })
647
+ checked: I.renderFootnotesAndEndnotes,
648
+ onChange: (g) => p({ renderFootnotesAndEndnotes: g.target.checked })
499
649
  }
500
650
  ),
501
651
  /* @__PURE__ */ e("span", { children: "Show footnotes and endnotes" })
@@ -505,8 +655,8 @@ function pn({
505
655
  "input",
506
656
  {
507
657
  type: "checkbox",
508
- checked: a.renderHeadersAndFooters,
509
- onChange: (n) => v({ renderHeadersAndFooters: n.target.checked })
658
+ checked: I.renderHeadersAndFooters,
659
+ onChange: (g) => p({ renderHeadersAndFooters: g.target.checked })
510
660
  }
511
661
  ),
512
662
  /* @__PURE__ */ e("span", { children: "Show headers and footers" })
@@ -516,8 +666,8 @@ function pn({
516
666
  "input",
517
667
  {
518
668
  type: "checkbox",
519
- checked: a.showPageNumbers,
520
- onChange: (n) => v({ showPageNumbers: n.target.checked })
669
+ checked: I.showPageNumbers,
670
+ onChange: (g) => p({ showPageNumbers: g.target.checked })
521
671
  }
522
672
  ),
523
673
  /* @__PURE__ */ e("span", { children: "Show page numbers" })
@@ -525,36 +675,36 @@ function pn({
525
675
  ] }),
526
676
  /* @__PURE__ */ c("div", { className: "rdv-settings-section", children: [
527
677
  /* @__PURE__ */ e("h4", { children: "Comment Rendering" }),
528
- /* @__PURE__ */ e("div", { className: "rdv-settings-radio-group", children: ["disabled", "endnote", "inline", "margin"].map((n) => /* @__PURE__ */ c("label", { className: "rdv-settings-radio", children: [
678
+ /* @__PURE__ */ e("div", { className: "rdv-settings-radio-group", children: ["disabled", "endnote", "inline", "margin"].map((g) => /* @__PURE__ */ c("label", { className: "rdv-settings-radio", children: [
529
679
  /* @__PURE__ */ e(
530
680
  "input",
531
681
  {
532
682
  type: "radio",
533
683
  name: "commentMode",
534
- checked: a.commentMode === n,
535
- onChange: () => v({ commentMode: n })
684
+ checked: I.commentMode === g,
685
+ onChange: () => p({ commentMode: g })
536
686
  }
537
687
  ),
538
688
  /* @__PURE__ */ c("span", { children: [
539
- n.charAt(0).toUpperCase() + n.slice(1),
540
- n === "endnote" ? "s" : ""
689
+ g.charAt(0).toUpperCase() + g.slice(1),
690
+ g === "endnote" ? "s" : ""
541
691
  ] })
542
- ] }, n)) })
692
+ ] }, g)) })
543
693
  ] }),
544
694
  /* @__PURE__ */ c("div", { className: "rdv-settings-section", children: [
545
695
  /* @__PURE__ */ e("h4", { children: "Annotation Rendering" }),
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: [
696
+ /* @__PURE__ */ e("div", { className: "rdv-settings-radio-group", children: ["disabled", "above", "inline", "tooltip", "none"].map((g) => /* @__PURE__ */ c("label", { className: "rdv-settings-radio", children: [
547
697
  /* @__PURE__ */ e(
548
698
  "input",
549
699
  {
550
700
  type: "radio",
551
701
  name: "annotationMode",
552
- checked: a.annotationMode === n,
553
- onChange: () => v({ annotationMode: n })
702
+ checked: I.annotationMode === g,
703
+ onChange: () => p({ annotationMode: g })
554
704
  }
555
705
  ),
556
- /* @__PURE__ */ e("span", { children: n === "none" ? "Highlight Only" : n.charAt(0).toUpperCase() + n.slice(1) })
557
- ] }, n)) })
706
+ /* @__PURE__ */ e("span", { children: g === "none" ? "Highlight Only" : g.charAt(0).toUpperCase() + g.slice(1) })
707
+ ] }, g)) })
558
708
  ] }),
559
709
  /* @__PURE__ */ c("div", { className: "rdv-settings-section", children: [
560
710
  /* @__PURE__ */ e("h4", { children: "Tracked Changes" }),
@@ -563,20 +713,20 @@ function pn({
563
713
  "input",
564
714
  {
565
715
  type: "checkbox",
566
- checked: a.renderTrackedChanges,
567
- onChange: (n) => v({ renderTrackedChanges: n.target.checked })
716
+ checked: I.renderTrackedChanges,
717
+ onChange: (g) => p({ renderTrackedChanges: g.target.checked })
568
718
  }
569
719
  ),
570
720
  /* @__PURE__ */ e("span", { children: "Show tracked changes" })
571
721
  ] }),
572
- a.renderTrackedChanges && /* @__PURE__ */ c("div", { className: "rdv-settings-subsection", children: [
722
+ I.renderTrackedChanges && /* @__PURE__ */ c("div", { className: "rdv-settings-subsection", children: [
573
723
  /* @__PURE__ */ c("label", { className: "rdv-settings-checkbox", children: [
574
724
  /* @__PURE__ */ e(
575
725
  "input",
576
726
  {
577
727
  type: "checkbox",
578
- checked: a.showDeletedContent,
579
- onChange: (n) => v({ showDeletedContent: n.target.checked })
728
+ checked: I.showDeletedContent,
729
+ onChange: (g) => p({ showDeletedContent: g.target.checked })
580
730
  }
581
731
  ),
582
732
  /* @__PURE__ */ e("span", { children: "Show deleted content" })
@@ -586,41 +736,109 @@ function pn({
586
736
  "input",
587
737
  {
588
738
  type: "checkbox",
589
- checked: a.renderMoveOperations,
590
- onChange: (n) => v({ renderMoveOperations: n.target.checked })
739
+ checked: I.renderMoveOperations,
740
+ onChange: (g) => p({ renderMoveOperations: g.target.checked })
591
741
  }
592
742
  ),
593
743
  /* @__PURE__ */ e("span", { children: "Distinguish move operations" })
594
744
  ] })
595
745
  ] })
746
+ ] }),
747
+ /* @__PURE__ */ c("div", { className: "rdv-settings-section", children: [
748
+ /* @__PURE__ */ e("h4", { children: "Advanced" }),
749
+ /* @__PURE__ */ c("label", { className: "rdv-settings-checkbox", children: [
750
+ /* @__PURE__ */ e(
751
+ "input",
752
+ {
753
+ type: "checkbox",
754
+ checked: I.renderUnsupportedContentPlaceholders,
755
+ onChange: (g) => p({ renderUnsupportedContentPlaceholders: g.target.checked })
756
+ }
757
+ ),
758
+ /* @__PURE__ */ e("span", { children: "Show placeholders for unsupported content" })
759
+ ] }),
760
+ /* @__PURE__ */ e("p", { className: "rdv-settings-hint", children: "Display visual indicators for WMF/EMF images, math equations, form fields, and other unsupported elements" }),
761
+ /* @__PURE__ */ c("label", { className: "rdv-settings-input-label", children: [
762
+ /* @__PURE__ */ e("span", { children: "Document language override" }),
763
+ /* @__PURE__ */ e(
764
+ "input",
765
+ {
766
+ type: "text",
767
+ className: "rdv-settings-text-input",
768
+ value: I.documentLanguage,
769
+ onChange: (g) => p({ documentLanguage: g.target.value }),
770
+ placeholder: "Auto-detect (e.g., en-US, fr-FR)"
771
+ }
772
+ )
773
+ ] })
596
774
  ] })
597
775
  ] }),
598
776
  /* @__PURE__ */ e("div", { className: "rdv-settings-footer", children: /* @__PURE__ */ e("button", { className: "rdv-settings-apply", onClick: () => {
599
- Me(), O(!1);
777
+ ng(), te(!1);
600
778
  }, children: "Apply & Close" }) })
601
- ] }) }), en = de.length > 0, Re = () => /* @__PURE__ */ c("div", { className: "rdv-toolbar", children: [
779
+ ] }) }), sg = ve.length > 0, dg = (g) => {
780
+ const Z = [
781
+ "rdv-toolbar-btn",
782
+ "rdv-toolbar-icon-btn",
783
+ g.variant === "primary" ? "rdv-toolbar-icon-btn--primary" : "",
784
+ g.className
785
+ ].filter(Boolean).join(" ");
786
+ return /* @__PURE__ */ e(
787
+ "button",
788
+ {
789
+ type: "button",
790
+ className: Z,
791
+ onClick: g.onClick,
792
+ disabled: g.disabled,
793
+ title: g.label,
794
+ "aria-label": g.label,
795
+ children: g.icon
796
+ },
797
+ g.key
798
+ );
799
+ }, xe = () => /* @__PURE__ */ c("div", { className: "rdv-toolbar", children: [
602
800
  /* @__PURE__ */ c("div", { className: "rdv-toolbar-left", children: [
603
- /* @__PURE__ */ e("label", { htmlFor: "rdv-file-input", className: "rdv-toolbar-file-btn", children: Ge || "Open Document" }),
801
+ /* @__PURE__ */ e(
802
+ "label",
803
+ {
804
+ htmlFor: "rdv-file-input",
805
+ className: "rdv-toolbar-btn rdv-toolbar-icon-btn rdv-toolbar-open-btn",
806
+ title: "Open Document",
807
+ "aria-label": "Open Document",
808
+ children: /* @__PURE__ */ e(Xg, {})
809
+ }
810
+ ),
604
811
  /* @__PURE__ */ e(
605
812
  "input",
606
813
  {
607
814
  id: "rdv-file-input",
608
815
  type: "file",
609
816
  accept: ".docx",
610
- onChange: xe,
611
- disabled: Ne,
817
+ onChange: gg,
818
+ disabled: Se,
612
819
  className: "rdv-file-input"
613
820
  }
614
821
  ),
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: [
822
+ le && /* @__PURE__ */ e("span", { className: "rdv-toolbar-filename", title: le, children: le }),
823
+ le && /* @__PURE__ */ e(
824
+ "button",
825
+ {
826
+ className: "rdv-toolbar-btn rdv-toolbar-icon-btn rdv-toolbar-clear",
827
+ onClick: cg,
828
+ disabled: Se,
829
+ title: "Clear Document",
830
+ "aria-label": "Clear Document",
831
+ children: "×"
832
+ }
833
+ ),
834
+ V && sg && G && /* @__PURE__ */ c(ie, { children: [
617
835
  /* @__PURE__ */ e("div", { className: "rdv-toolbar-separator" }),
618
836
  /* @__PURE__ */ c("div", { className: "rdv-view-tabs", children: [
619
837
  /* @__PURE__ */ e(
620
838
  "button",
621
839
  {
622
- className: `rdv-view-tab ${J === "document" ? "rdv-view-tab--active" : ""}`,
623
- onClick: () => k("document"),
840
+ className: `rdv-view-tab ${L === "document" ? "rdv-view-tab--active" : ""}`,
841
+ onClick: () => T("document"),
624
842
  title: "View Document",
625
843
  children: "Document"
626
844
  }
@@ -628,190 +846,240 @@ function pn({
628
846
  /* @__PURE__ */ c(
629
847
  "button",
630
848
  {
631
- className: `rdv-view-tab ${J === "revisions" ? "rdv-view-tab--active" : ""}`,
632
- onClick: () => k("revisions"),
849
+ className: `rdv-view-tab ${L === "revisions" ? "rdv-view-tab--active" : ""}`,
850
+ onClick: () => T("revisions"),
633
851
  title: "View Tracked Changes",
634
852
  children: [
635
853
  "Changes (",
636
- de.length,
854
+ ve.length,
637
855
  ")"
638
856
  ]
639
857
  }
640
858
  )
641
859
  ] })
642
860
  ] }),
643
- P && Ue && /* @__PURE__ */ e("span", { className: "rdv-extracting-indicator", title: "Extracting tracked changes...", children: "..." })
861
+ V && _e && /* @__PURE__ */ e("span", { className: "rdv-extracting-indicator", title: "Extracting tracked changes...", children: "..." })
644
862
  ] }),
645
- /* @__PURE__ */ e("div", { className: "rdv-toolbar-center", children: G && p > 0 && J === "document" && /* @__PURE__ */ c(ze, { children: [
646
- /* @__PURE__ */ e(
647
- "button",
648
- {
649
- className: "rdv-toolbar-btn",
650
- onClick: Ee,
651
- disabled: X <= 1,
652
- title: "Previous Page",
653
- children: "◀"
654
- }
655
- ),
656
- /* @__PURE__ */ c("div", { className: "rdv-page-input-group", children: [
863
+ /* @__PURE__ */ c("div", { className: "rdv-toolbar-right", children: [
864
+ G && X > 0 && L === "document" && /* @__PURE__ */ c(ie, { children: [
657
865
  /* @__PURE__ */ e(
658
- "input",
866
+ "button",
659
867
  {
660
- type: "number",
661
- className: "rdv-page-input",
662
- value: X,
663
- min: 1,
664
- max: p,
665
- onChange: (n) => {
666
- const I = parseInt(n.target.value);
667
- isNaN(I) || re(I);
868
+ className: "rdv-toolbar-btn rdv-toolbar-icon-btn",
869
+ onClick: Cg,
870
+ disabled: z <= 1,
871
+ title: "Previous Page",
872
+ "aria-label": "Previous Page",
873
+ children: "◀"
874
+ }
875
+ ),
876
+ /* @__PURE__ */ c("div", { className: "rdv-page-input-group", children: [
877
+ /* @__PURE__ */ e(
878
+ "input",
879
+ {
880
+ type: "number",
881
+ className: "rdv-page-input",
882
+ value: z,
883
+ min: 1,
884
+ max: X,
885
+ onChange: (g) => {
886
+ const l = parseInt(g.target.value);
887
+ isNaN(l) || pe(l);
888
+ }
668
889
  }
890
+ ),
891
+ /* @__PURE__ */ c("span", { className: "rdv-page-total", children: [
892
+ "/ ",
893
+ X
894
+ ] })
895
+ ] }),
896
+ /* @__PURE__ */ e(
897
+ "button",
898
+ {
899
+ className: "rdv-toolbar-btn rdv-toolbar-icon-btn",
900
+ onClick: ag,
901
+ disabled: z >= X,
902
+ title: "Next Page",
903
+ "aria-label": "Next Page",
904
+ children: "▶"
669
905
  }
670
906
  ),
671
- /* @__PURE__ */ c("span", { className: "rdv-page-total", children: [
672
- "/ ",
673
- p
907
+ /* @__PURE__ */ e("div", { className: "rdv-toolbar-separator" }),
908
+ /* @__PURE__ */ c("div", { className: "rdv-zoom-group", children: [
909
+ /* @__PURE__ */ e(
910
+ "button",
911
+ {
912
+ className: "rdv-toolbar-btn rdv-toolbar-icon-btn rdv-zoom-btn",
913
+ onClick: lg,
914
+ disabled: I.paginationScale <= 0.3,
915
+ title: "Zoom Out",
916
+ "aria-label": "Zoom Out",
917
+ children: "−"
918
+ }
919
+ ),
920
+ /* @__PURE__ */ c(
921
+ "select",
922
+ {
923
+ className: "rdv-zoom-select",
924
+ value: I.paginationScale,
925
+ onChange: (g) => tg(parseFloat(g.target.value)),
926
+ "aria-label": "Zoom level",
927
+ children: [
928
+ /* @__PURE__ */ e("option", { value: "0.5", children: "50%" }),
929
+ /* @__PURE__ */ e("option", { value: "0.75", children: "75%" }),
930
+ /* @__PURE__ */ e("option", { value: "0.8", children: "80%" }),
931
+ /* @__PURE__ */ e("option", { value: "0.9", children: "90%" }),
932
+ /* @__PURE__ */ e("option", { value: "1", children: "100%" }),
933
+ /* @__PURE__ */ e("option", { value: "1.25", children: "125%" }),
934
+ /* @__PURE__ */ e("option", { value: "1.5", children: "150%" }),
935
+ /* @__PURE__ */ e("option", { value: "2", children: "200%" })
936
+ ]
937
+ }
938
+ ),
939
+ /* @__PURE__ */ e(
940
+ "button",
941
+ {
942
+ className: "rdv-toolbar-btn rdv-toolbar-icon-btn rdv-zoom-btn",
943
+ onClick: Ig,
944
+ disabled: I.paginationScale >= 2,
945
+ title: "Zoom In",
946
+ "aria-label": "Zoom In",
947
+ children: "+"
948
+ }
949
+ )
674
950
  ] })
675
951
  ] }),
676
- /* @__PURE__ */ e(
677
- "button",
678
- {
679
- className: "rdv-toolbar-btn",
680
- onClick: _e,
681
- disabled: X >= p,
682
- title: "Next Page",
683
- children: ""
684
- }
685
- ),
686
- /* @__PURE__ */ e("div", { className: "rdv-toolbar-separator" }),
687
- /* @__PURE__ */ e(
688
- "button",
689
- {
690
- className: "rdv-toolbar-btn",
691
- onClick: Oe,
692
- disabled: a.paginationScale <= 0.3,
693
- title: "Zoom Out",
694
- children: ""
695
- }
696
- ),
697
- /* @__PURE__ */ c(
698
- "select",
699
- {
700
- className: "rdv-zoom-select",
701
- value: a.paginationScale,
702
- onChange: (n) => Te(parseFloat(n.target.value)),
703
- children: [
704
- /* @__PURE__ */ e("option", { value: "0.5", children: "50%" }),
705
- /* @__PURE__ */ e("option", { value: "0.75", children: "75%" }),
706
- /* @__PURE__ */ e("option", { value: "0.8", children: "80%" }),
707
- /* @__PURE__ */ e("option", { value: "0.9", children: "90%" }),
708
- /* @__PURE__ */ e("option", { value: "1", children: "100%" }),
709
- /* @__PURE__ */ e("option", { value: "1.25", children: "125%" }),
710
- /* @__PURE__ */ e("option", { value: "1.5", children: "150%" }),
711
- /* @__PURE__ */ e("option", { value: "2", children: "200%" })
712
- ]
713
- }
714
- ),
715
- /* @__PURE__ */ e(
716
- "button",
717
- {
718
- className: "rdv-toolbar-btn",
719
- onClick: je,
720
- disabled: a.paginationScale >= 2,
721
- title: "Zoom In",
722
- children: "+"
723
- }
724
- )
725
- ] }) }),
726
- /* @__PURE__ */ e("div", { className: "rdv-toolbar-right", children: te && /* @__PURE__ */ e(
727
- "button",
728
- {
729
- className: "rdv-toolbar-btn rdv-toolbar-settings",
730
- onClick: () => O(!0),
731
- title: "Settings",
732
- children: "⚙"
733
- }
734
- ) })
735
- ] }), nn = ["rdv-viewer", b].filter(Boolean).join(" ");
736
- return /* @__PURE__ */ c("div", { className: nn, style: y, children: [
737
- r === "top" && /* @__PURE__ */ e(Re, {}),
952
+ ee && ee.length > 0 && /* @__PURE__ */ c(ie, { children: [
953
+ G && X > 0 && L === "document" && /* @__PURE__ */ e("div", { className: "rdv-toolbar-separator" }),
954
+ ee.map(dg)
955
+ ] }),
956
+ w && /* @__PURE__ */ c(ie, { children: [
957
+ (ee?.length || G && X > 0 && L === "document") && /* @__PURE__ */ e("div", { className: "rdv-toolbar-separator" }),
958
+ /* @__PURE__ */ e(
959
+ "button",
960
+ {
961
+ className: "rdv-toolbar-btn rdv-toolbar-icon-btn rdv-toolbar-settings",
962
+ onClick: () => te(!0),
963
+ title: "Settings",
964
+ "aria-label": "Settings",
965
+ children: "⚙"
966
+ }
967
+ )
968
+ ] })
969
+ ] })
970
+ ] }), rg = ["rdv-viewer", h].filter(Boolean).join(" ");
971
+ return /* @__PURE__ */ c("div", { ref: Ke, className: rg, style: r, children: [
972
+ B === "top" && /* @__PURE__ */ e(xe, {}),
738
973
  /* @__PURE__ */ c("div", { className: "rdv-content", children: [
739
- L && /* @__PURE__ */ e("div", { className: "rdv-message rdv-message--error", children: /* @__PURE__ */ c("p", { children: [
974
+ ce && /* @__PURE__ */ e("div", { className: "rdv-message rdv-message--error", children: /* @__PURE__ */ c("p", { children: [
740
975
  "Failed to initialize: ",
741
- L.message
976
+ ce.message
742
977
  ] }) }),
743
- !L && (Y || B) && (F && B ? (
744
- // Show page placeholders while converting
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);
747
- return /* @__PURE__ */ c(
748
- "div",
749
- {
750
- className: "rdv-page-placeholder",
751
- style: {
752
- width: `${E}px`,
753
- height: `${Q}px`,
754
- marginBottom: "20px"
755
- },
756
- children: [
757
- /* @__PURE__ */ e("div", { className: "rdv-page-placeholder__shimmer" }),
758
- I === 0 && /* @__PURE__ */ c("div", { className: "rdv-page-placeholder__info", children: [
759
- /* @__PURE__ */ e("div", { className: "rdv-spinner rdv-spinner--small" }),
760
- /* @__PURE__ */ e("span", { children: "Converting document..." }),
761
- /* @__PURE__ */ c("span", { className: "rdv-page-placeholder__count", children: [
762
- "~",
763
- F.estimatedPageCount,
764
- " page",
765
- F.estimatedPageCount !== 1 ? "s" : ""
766
- ] })
767
- ] }),
768
- /* @__PURE__ */ e("div", { className: "rdv-page-placeholder__number", children: I + 1 })
769
- ]
978
+ !ce && (O || R) && (F && R ? (
979
+ // Show page placeholders while converting - matches actual page dimensions for stable layout
980
+ /* @__PURE__ */ e(
981
+ "div",
982
+ {
983
+ className: "rdv-pages rdv-pages--loading",
984
+ style: {
985
+ // Apply stable dimensions to match rendered state - prevents layout shift
986
+ ...I.stableWidth && { "--rdv-stable-width": M(I.stableWidth) },
987
+ ...I.stableHeight && { minHeight: M(I.stableHeight) }
770
988
  },
771
- I
772
- );
773
- }) }) })
989
+ children: /* @__PURE__ */ e("div", { className: "rdv-page-placeholders", style: { backgroundColor: "#525659" }, children: Array.from({ length: F.estimatedPageCount || 1 }).map((g, l) => {
990
+ const Z = F.sections[Math.min(l, F.sections.length - 1)], f = I.paginationScale, U = Math.round((Z?.pageWidthPt || 612) * (96 / 72) * f), k = Math.round((Z?.pageHeightPt || 792) * (96 / 72) * f);
991
+ return /* @__PURE__ */ c(
992
+ "div",
993
+ {
994
+ className: "rdv-page-placeholder",
995
+ style: {
996
+ width: `${U}px`,
997
+ height: `${k}px`
998
+ },
999
+ children: [
1000
+ /* @__PURE__ */ e("div", { className: "rdv-page-placeholder__shimmer" }),
1001
+ l === 0 && /* @__PURE__ */ c("div", { className: "rdv-page-placeholder__info", children: [
1002
+ /* @__PURE__ */ e("div", { className: "rdv-spinner rdv-spinner--small" }),
1003
+ /* @__PURE__ */ e("span", { children: "Converting document..." }),
1004
+ /* @__PURE__ */ c("span", { className: "rdv-page-placeholder__count", children: [
1005
+ "~",
1006
+ F.estimatedPageCount,
1007
+ " page",
1008
+ F.estimatedPageCount !== 1 ? "s" : ""
1009
+ ] })
1010
+ ] }),
1011
+ /* @__PURE__ */ e("div", { className: "rdv-page-placeholder__number", children: l + 1 })
1012
+ ]
1013
+ },
1014
+ l
1015
+ );
1016
+ }) })
1017
+ }
1018
+ )
774
1019
  ) : /* @__PURE__ */ c("div", { className: "rdv-message", children: [
775
1020
  /* @__PURE__ */ e("div", { className: "rdv-spinner" }),
776
- /* @__PURE__ */ e("p", { children: Y && N ? "Loading engine & preparing document..." : Y ? "Loading document engine..." : "Processing document..." })
1021
+ /* @__PURE__ */ e("p", { children: O && Y ? "Loading engine & preparing document..." : O ? "Loading document engine..." : "Processing document..." })
777
1022
  ] })),
778
- !Y && !L && !G && !B && !N && /* @__PURE__ */ c("div", { className: "rdv-message", children: [
779
- /* @__PURE__ */ e("div", { className: "rdv-message__icon", children: "📄" }),
780
- /* @__PURE__ */ e("p", { children: fe })
781
- ] }),
782
- pe && !B && /* @__PURE__ */ e("div", { className: "rdv-message rdv-message--error", children: /* @__PURE__ */ c("p", { children: [
1023
+ !O && !ce && !G && !R && !Y && /* @__PURE__ */ c(
1024
+ "div",
1025
+ {
1026
+ className: "rdv-message",
1027
+ style: {
1028
+ // Apply stable dimensions for consistent sizing across all states
1029
+ ...I.stableWidth && { width: M(I.stableWidth), maxWidth: "100%" },
1030
+ ...I.stableHeight && { minHeight: M(I.stableHeight) }
1031
+ },
1032
+ children: [
1033
+ /* @__PURE__ */ e("div", { className: "rdv-message__icon", children: "📄" }),
1034
+ /* @__PURE__ */ e("p", { children: H })
1035
+ ]
1036
+ }
1037
+ ),
1038
+ Ye && !R && /* @__PURE__ */ e("div", { className: "rdv-message rdv-message--error", children: /* @__PURE__ */ c("p", { children: [
783
1039
  "Error: ",
784
- pe.message
1040
+ Ye.message
785
1041
  ] }) }),
786
- J === "document" && G && !B && /* @__PURE__ */ e("div", { ref: oe, className: "rdv-pages", children: /* @__PURE__ */ e(
787
- cn,
1042
+ L === "document" && G && !R && /* @__PURE__ */ e(
1043
+ "div",
788
1044
  {
789
- html: G,
790
- scale: a.paginationScale,
791
- showPageNumbers: a.showPageNumbers,
792
- pageGap: 20,
793
- backgroundColor: "#525659",
794
- className: "rdv-paginated-document",
795
- onPaginationComplete: (n) => {
796
- se(n.totalPages);
1045
+ ref: ae,
1046
+ className: "rdv-pages",
1047
+ style: {
1048
+ // Apply stable dimensions if provided - provides pdf.js-like sizing behavior
1049
+ ...I.stableWidth && { "--rdv-stable-width": M(I.stableWidth) },
1050
+ ...I.stableHeight && { minHeight: M(I.stableHeight) }
797
1051
  },
798
- onPageVisible: $e
1052
+ children: /* @__PURE__ */ e(
1053
+ bg,
1054
+ {
1055
+ html: G,
1056
+ scale: I.paginationScale,
1057
+ showPageNumbers: I.showPageNumbers,
1058
+ pageGap: $e,
1059
+ backgroundColor: "#525659",
1060
+ className: "rdv-paginated-document",
1061
+ onPaginationComplete: (g) => {
1062
+ Ve(g.totalPages);
1063
+ },
1064
+ onPageVisible: ig
1065
+ }
1066
+ )
799
1067
  }
800
- ) }),
801
- J === "revisions" && G && !B && /* @__PURE__ */ e(bn, { revisions: de })
1068
+ ),
1069
+ L === "revisions" && G && !R && /* @__PURE__ */ e(Wg, { revisions: ve })
802
1070
  ] }),
803
- r === "bottom" && /* @__PURE__ */ e(Re, {}),
804
- De && /* @__PURE__ */ e(qe, {})
1071
+ B === "bottom" && /* @__PURE__ */ e(xe, {}),
1072
+ Ee && /* @__PURE__ */ e(og, {})
805
1073
  ] });
806
1074
  }
807
1075
  export {
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
1076
+ vg as DEFAULT_SETTINGS,
1077
+ Kg as DocumentViewer,
1078
+ xg as RevisionType,
1079
+ Lg as isDeletion,
1080
+ Ug as isFormatChange,
1081
+ Pg as isInsertion,
1082
+ Dg as isMove,
1083
+ Vg as isWorkerSupported
816
1084
  };
817
1085
  //# sourceMappingURL=react-docxodus-viewer.es.js.map