react-docxodus-viewer 0.4.0 → 0.5.1

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