react-docxodus-viewer 0.1.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +94 -154
- package/dist/react-docxodus-viewer.cjs.js +1 -1
- package/dist/react-docxodus-viewer.cjs.js.map +1 -1
- package/dist/react-docxodus-viewer.css +1 -1
- package/dist/react-docxodus-viewer.es.js +470 -357
- package/dist/react-docxodus-viewer.es.js.map +1 -1
- package/dist/types/DocumentViewer.d.ts +1 -1
- package/dist/types/DocumentViewer.d.ts.map +1 -1
- package/dist/types/components/RevisionPanel.d.ts.map +1 -1
- package/dist/types/types/index.d.ts +7 -1
- package/dist/types/types/index.d.ts.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,179 +1,114 @@
|
|
|
1
|
-
#
|
|
1
|
+
# react-docxodus-viewer
|
|
2
2
|
|
|
3
|
-
A
|
|
3
|
+
A React component for viewing DOCX documents in the browser, powered by [Docxodus](https://github.com/JSv4/Docxodus). All document processing happens entirely in the browser using WebAssembly - no server required.
|
|
4
4
|
|
|
5
|
-
**[Live Demo](https://jsv4.github.io/
|
|
5
|
+
**[Live Demo](https://jsv4.github.io/react-docxodus-viewer/)** | **[Docxodus Engine](https://github.com/JSv4/Docxodus)** | **[npm](https://www.npmjs.com/package/react-docxodus-viewer)**
|
|
6
6
|
|
|
7
7
|
## Features
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
-
|
|
11
|
-
- **
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
- **Advanced options** (collapsible panel):
|
|
17
|
-
- Page title, CSS prefix, comment CSS prefix
|
|
18
|
-
- Fabricate CSS classes toggle
|
|
19
|
-
- Custom additional CSS
|
|
20
|
-
|
|
21
|
-
### Document Comparison
|
|
22
|
-
- Compare two DOCX files and generate a redlined document with tracked changes
|
|
23
|
-
- Visual diff with insertions (green), deletions (red), and moves (purple) highlighted
|
|
24
|
-
- **Configurable comparison options:**
|
|
25
|
-
- **Detail Level** - Control comparison granularity (lower = more detailed)
|
|
26
|
-
- **Case-insensitive** - Ignore case differences when comparing
|
|
27
|
-
- **Author name** - Set the author for tracked changes
|
|
28
|
-
- **Show tracked changes** - Toggle visibility of changes in preview
|
|
29
|
-
- Download the comparison result as a DOCX file with tracked changes
|
|
30
|
-
|
|
31
|
-
### Revision Extraction
|
|
32
|
-
- Extract structured revision data from documents with tracked changes
|
|
33
|
-
- View revision details: type, author, date, and changed text
|
|
34
|
-
- Summary statistics for insertions, deletions, and moves
|
|
35
|
-
- **Move detection options** (collapsible panel):
|
|
36
|
-
- Enable/disable move detection
|
|
37
|
-
- Similarity threshold (50-100%)
|
|
38
|
-
- Minimum word count filter
|
|
39
|
-
- Case-insensitive matching
|
|
40
|
-
- Move pair linking with group badges
|
|
41
|
-
|
|
42
|
-
## Technology
|
|
43
|
-
|
|
44
|
-
- **React 19** with TypeScript
|
|
45
|
-
- **Vite** for fast development and optimized builds
|
|
46
|
-
- **[Docxodus](https://github.com/docxodus/docxodus)** - WebAssembly-powered DOCX processing engine
|
|
9
|
+
- 📄 **DOCX to HTML conversion** - View Word documents directly in the browser
|
|
10
|
+
- 🔄 **Web Worker support** - Non-blocking conversion in background thread (enabled by default)
|
|
11
|
+
- 📊 **Progressive loading** - Page placeholders show while documents convert
|
|
12
|
+
- 📝 **Tracked changes** - View insertions, deletions, moves, and formatting changes
|
|
13
|
+
- 💬 **Comments** - Multiple rendering modes (endnotes, inline, margin)
|
|
14
|
+
- 📑 **Pagination** - PDF.js-style page view with smooth scrolling
|
|
15
|
+
- ⚙️ **Customizable** - CSS variables for theming, configurable height
|
|
47
16
|
|
|
48
|
-
##
|
|
49
|
-
|
|
50
|
-
All document processing happens locally in your browser. Your files never leave your device - there's no server-side processing, no uploads, and no data collection.
|
|
51
|
-
|
|
52
|
-
## Getting Started
|
|
53
|
-
|
|
54
|
-
### Prerequisites
|
|
55
|
-
|
|
56
|
-
- Node.js 18+
|
|
57
|
-
- npm or yarn
|
|
58
|
-
|
|
59
|
-
### Installation
|
|
17
|
+
## Installation
|
|
60
18
|
|
|
61
19
|
```bash
|
|
62
|
-
|
|
63
|
-
git clone https://github.com/JSv4/Docxodus-Viewer.git
|
|
64
|
-
cd Docxodus-Viewer
|
|
65
|
-
|
|
66
|
-
# Install dependencies
|
|
67
|
-
npm install
|
|
68
|
-
|
|
69
|
-
# Start development server
|
|
70
|
-
npm run dev
|
|
20
|
+
npm install react-docxodus-viewer docxodus
|
|
71
21
|
```
|
|
72
22
|
|
|
73
|
-
|
|
23
|
+
## Quick Start
|
|
74
24
|
|
|
75
|
-
|
|
25
|
+
```tsx
|
|
26
|
+
import { DocumentViewer } from 'react-docxodus-viewer';
|
|
27
|
+
import 'react-docxodus-viewer/styles.css';
|
|
76
28
|
|
|
77
|
-
|
|
78
|
-
|
|
29
|
+
function App() {
|
|
30
|
+
return (
|
|
31
|
+
<DocumentViewer
|
|
32
|
+
placeholder="Select a DOCX file to view"
|
|
33
|
+
/>
|
|
34
|
+
);
|
|
35
|
+
}
|
|
79
36
|
```
|
|
80
37
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
38
|
+
## Props
|
|
39
|
+
|
|
40
|
+
| Prop | Type | Default | Description |
|
|
41
|
+
|------|------|---------|-------------|
|
|
42
|
+
| `file` | `File \| null` | - | Controlled file input |
|
|
43
|
+
| `html` | `string \| null` | - | Controlled HTML output |
|
|
44
|
+
| `onFileChange` | `(file: File \| null) => void` | - | Called when file changes |
|
|
45
|
+
| `onConversionComplete` | `(html: string) => void` | - | Called when conversion finishes |
|
|
46
|
+
| `onError` | `(error: Error) => void` | - | Called on conversion error |
|
|
47
|
+
| `settings` | `ViewerSettings` | - | Controlled viewer settings |
|
|
48
|
+
| `defaultSettings` | `Partial<ViewerSettings>` | - | Initial settings (uncontrolled) |
|
|
49
|
+
| `toolbar` | `'top' \| 'bottom' \| 'none'` | `'top'` | Toolbar position |
|
|
50
|
+
| `showSettingsButton` | `boolean` | `true` | Show settings gear icon |
|
|
51
|
+
| `showRevisionsTab` | `boolean` | `true` | Show tracked changes tab |
|
|
52
|
+
| `placeholder` | `string` | `'Open a DOCX file to view'` | Empty state message |
|
|
53
|
+
| `useWorker` | `boolean` | `true` | Use Web Worker for conversion |
|
|
54
|
+
| `wasmBasePath` | `string` | - | Custom WASM file location |
|
|
55
|
+
| `className` | `string` | - | Additional CSS class |
|
|
56
|
+
| `style` | `CSSProperties` | - | Inline styles |
|
|
57
|
+
|
|
58
|
+
## Viewer Settings
|
|
59
|
+
|
|
60
|
+
```tsx
|
|
61
|
+
interface ViewerSettings {
|
|
62
|
+
commentMode: 'disabled' | 'endnote' | 'inline' | 'margin';
|
|
63
|
+
annotationMode: 'disabled' | 'above' | 'inline' | 'tooltip' | 'none';
|
|
64
|
+
paginationScale: number; // 0.3 - 2.0
|
|
65
|
+
showPageNumbers: boolean;
|
|
66
|
+
renderFootnotesAndEndnotes: boolean;
|
|
67
|
+
renderHeadersAndFooters: boolean;
|
|
68
|
+
renderTrackedChanges: boolean;
|
|
69
|
+
showDeletedContent: boolean;
|
|
70
|
+
renderMoveOperations: boolean;
|
|
71
|
+
}
|
|
96
72
|
```
|
|
97
73
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
## Deployment
|
|
101
|
-
|
|
102
|
-
### GitHub Pages
|
|
103
|
-
|
|
104
|
-
This repository includes a GitHub Actions workflow that automatically builds and deploys to GitHub Pages on push to `main`.
|
|
105
|
-
|
|
106
|
-
To enable:
|
|
107
|
-
1. Go to your repository Settings > Pages
|
|
108
|
-
2. Set Source to "GitHub Actions"
|
|
109
|
-
3. Push to `main` branch
|
|
74
|
+
## CSS Customization
|
|
110
75
|
|
|
111
|
-
|
|
76
|
+
Override CSS variables to customize the viewer:
|
|
112
77
|
|
|
113
|
-
|
|
78
|
+
```css
|
|
79
|
+
.rdv-viewer {
|
|
80
|
+
/* Height constraints */
|
|
81
|
+
--rdv-height: 80vh;
|
|
82
|
+
--rdv-min-height: 400px;
|
|
83
|
+
--rdv-max-height: 90vh;
|
|
114
84
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
[headers.values]
|
|
121
|
-
Cross-Origin-Opener-Policy = "same-origin"
|
|
122
|
-
Cross-Origin-Embedder-Policy = "require-corp"
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
### Vercel
|
|
126
|
-
|
|
127
|
-
Add a `vercel.json` to your repo root:
|
|
128
|
-
|
|
129
|
-
```json
|
|
130
|
-
{
|
|
131
|
-
"headers": [
|
|
132
|
-
{
|
|
133
|
-
"source": "/(.*)",
|
|
134
|
-
"headers": [
|
|
135
|
-
{ "key": "Cross-Origin-Opener-Policy", "value": "same-origin" },
|
|
136
|
-
{ "key": "Cross-Origin-Embedder-Policy", "value": "require-corp" }
|
|
137
|
-
]
|
|
138
|
-
}
|
|
139
|
-
]
|
|
85
|
+
/* Colors */
|
|
86
|
+
--rdv-background: #525659;
|
|
87
|
+
--rdv-toolbar-bg: #323639;
|
|
88
|
+
--rdv-btn-bg: #474c50;
|
|
89
|
+
--rdv-btn-color: #d4d4d4;
|
|
140
90
|
}
|
|
141
91
|
```
|
|
142
92
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
The app requires specific CORS headers for the .NET WebAssembly runtime:
|
|
146
|
-
|
|
147
|
-
```
|
|
148
|
-
Cross-Origin-Opener-Policy: same-origin
|
|
149
|
-
Cross-Origin-Embedder-Policy: require-corp
|
|
150
|
-
```
|
|
93
|
+
## Controlled Mode
|
|
151
94
|
|
|
152
|
-
|
|
95
|
+
For full control over state:
|
|
153
96
|
|
|
154
|
-
|
|
97
|
+
```tsx
|
|
98
|
+
function ControlledViewer() {
|
|
99
|
+
const [file, setFile] = useState<File | null>(null);
|
|
100
|
+
const [html, setHtml] = useState<string | null>(null);
|
|
155
101
|
|
|
102
|
+
return (
|
|
103
|
+
<DocumentViewer
|
|
104
|
+
file={file}
|
|
105
|
+
html={html}
|
|
106
|
+
onFileChange={setFile}
|
|
107
|
+
onConversionComplete={setHtml}
|
|
108
|
+
/>
|
|
109
|
+
);
|
|
110
|
+
}
|
|
156
111
|
```
|
|
157
|
-
src/
|
|
158
|
-
├── App.tsx # Main app with tab navigation
|
|
159
|
-
├── App.css # Application styles
|
|
160
|
-
├── components/
|
|
161
|
-
│ ├── DocumentViewer.tsx # DOCX to HTML conversion
|
|
162
|
-
│ ├── DocumentComparer.tsx # Two-document comparison
|
|
163
|
-
│ └── RevisionViewer.tsx # Revision extraction
|
|
164
|
-
└── main.tsx # Entry point
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
## Docxodus Library
|
|
168
|
-
|
|
169
|
-
This viewer is powered by [Docxodus](https://github.com/docxodus/docxodus), a WebAssembly library for DOCX processing. For more information about the underlying engine, including:
|
|
170
|
-
|
|
171
|
-
- API documentation
|
|
172
|
-
- Comment rendering architecture
|
|
173
|
-
- Comparison algorithm details
|
|
174
|
-
- Bundle size and browser support
|
|
175
|
-
|
|
176
|
-
Visit the [Docxodus repository](https://github.com/JSv4/Docxodus).
|
|
177
112
|
|
|
178
113
|
## Browser Support
|
|
179
114
|
|
|
@@ -184,10 +119,15 @@ Visit the [Docxodus repository](https://github.com/JSv4/Docxodus).
|
|
|
184
119
|
|
|
185
120
|
Requires WebAssembly SIMD support.
|
|
186
121
|
|
|
187
|
-
##
|
|
122
|
+
## Privacy
|
|
188
123
|
|
|
189
|
-
|
|
124
|
+
All document processing happens locally in your browser. Files are never uploaded to any server.
|
|
125
|
+
|
|
126
|
+
## Related
|
|
190
127
|
|
|
191
|
-
|
|
128
|
+
- [Docxodus](https://github.com/JSv4/Docxodus) - The WebAssembly engine powering this viewer
|
|
129
|
+
- [Live Demo](https://jsv4.github.io/react-docxodus-viewer/) - Try it out
|
|
192
130
|
|
|
193
|
-
|
|
131
|
+
## License
|
|
132
|
+
|
|
133
|
+
MIT
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),I=require("react"),ue=require("docxodus/react"),C=require("docxodus");var ge=typeof document<"u"?document.currentScript:null;function H(){return`${Date.now()}-${Math.random().toString(36).slice(2,11)}`}async function z(s){if(s instanceof Uint8Array)return s;const l=await s.arrayBuffer();return new Uint8Array(l)}function Qe(){if(typeof document<"u"){const s=document.querySelectorAll('script[src*="docxodus"]');if(s.length>0){const l=s[0].src;return l.substring(0,l.lastIndexOf("/")+1)+"wasm/"}}return"/wasm/"}async function De(s){const l=s?.wasmBasePath??Qe(),p=new URL("data:text/javascript;base64,Ly8gc3JjL2RvY3hvZHVzLndvcmtlci50cwp2YXIgd2FzbUV4cG9ydHMgPSBudWxsOwp2YXIgaW5pdFByb21pc2UgPSBudWxsOwphc3luYyBmdW5jdGlvbiBpbml0aWFsaXplV2FzbShiYXNlUGF0aCkgewogIGlmICh3YXNtRXhwb3J0cykgewogICAgcmV0dXJuOwogIH0KICBpZiAoaW5pdFByb21pc2UpIHsKICAgIHJldHVybiBpbml0UHJvbWlzZTsKICB9CiAgaW5pdFByb21pc2UgPSAoYXN5bmMgKCkgPT4gewogICAgdHJ5IHsKICAgICAgY29uc3Qgbm9ybWFsaXplZFBhdGggPSBiYXNlUGF0aC5lbmRzV2l0aCgiLyIpID8gYmFzZVBhdGggOiBiYXNlUGF0aCArICIvIjsKICAgICAgY29uc3QgZG90bmV0TW9kdWxlID0gYXdhaXQgaW1wb3J0KAogICAgICAgIC8qIHdlYnBhY2tJZ25vcmU6IHRydWUgKi8KICAgICAgICBgJHtub3JtYWxpemVkUGF0aH1fZnJhbWV3b3JrL2RvdG5ldC5qc2AKICAgICAgKTsKICAgICAgY29uc3QgeyBnZXRBc3NlbWJseUV4cG9ydHMsIGdldENvbmZpZyB9ID0gYXdhaXQgZG90bmV0TW9kdWxlLmRvdG5ldC53aXRoRGlhZ25vc3RpY1RyYWNpbmcoZmFsc2UpLmNyZWF0ZSgpOwogICAgICBjb25zdCBjb25maWcgPSBnZXRDb25maWcoKTsKICAgICAgY29uc3QgZXhwb3J0cyA9IGF3YWl0IGdldEFzc2VtYmx5RXhwb3J0cyhjb25maWcubWFpbkFzc2VtYmx5TmFtZSk7CiAgICAgIHdhc21FeHBvcnRzID0gewogICAgICAgIERvY3VtZW50Q29udmVydGVyOiBleHBvcnRzLkRvY3hvZHVzV2FzbS5Eb2N1bWVudENvbnZlcnRlciwKICAgICAgICBEb2N1bWVudENvbXBhcmVyOiBleHBvcnRzLkRvY3hvZHVzV2FzbS5Eb2N1bWVudENvbXBhcmVyCiAgICAgIH07CiAgICB9IGNhdGNoIChlcnJvcikgewogICAgICBpbml0UHJvbWlzZSA9IG51bGw7CiAgICAgIHRocm93IGVycm9yOwogICAgfQogIH0pKCk7CiAgcmV0dXJuIGluaXRQcm9taXNlOwp9CmZ1bmN0aW9uIGVuc3VyZUluaXRpYWxpemVkKCkgewogIGlmICghd2FzbUV4cG9ydHMpIHsKICAgIHRocm93IG5ldyBFcnJvcigiV29ya2VyIG5vdCBpbml0aWFsaXplZC4gQ2FsbCBpbml0IGZpcnN0LiIpOwogIH0KICByZXR1cm4gd2FzbUV4cG9ydHM7Cn0KZnVuY3Rpb24gaXNFcnJvclJlc3BvbnNlKHJlc3VsdCkgewogIHJldHVybiByZXN1bHQuc3RhcnRzV2l0aCgieyIpICYmIHJlc3VsdC5pbmNsdWRlcygnIkVycm9yIicpOwp9CmZ1bmN0aW9uIHBhcnNlRXJyb3IocmVzdWx0KSB7CiAgdHJ5IHsKICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UocmVzdWx0KTsKICAgIHJldHVybiB7IGVycm9yOiBwYXJzZWQuRXJyb3IgfHwgcGFyc2VkLmVycm9yIHx8ICJVbmtub3duIGVycm9yIiB9OwogIH0gY2F0Y2ggewogICAgcmV0dXJuIHsgZXJyb3I6IHJlc3VsdCB9OwogIH0KfQpmdW5jdGlvbiBoYW5kbGVDb252ZXJ0KHJlcXVlc3QpIHsKICBjb25zdCBleHBvcnRzID0gZW5zdXJlSW5pdGlhbGl6ZWQoKTsKICBjb25zdCBvcHRpb25zID0gcmVxdWVzdC5vcHRpb25zOwogIHRyeSB7CiAgICBsZXQgcmVzdWx0OwogICAgY29uc3QgbmVlZHNDb21wbGV0ZU1ldGhvZCA9IG9wdGlvbnM/LnJlbmRlckZvb3Rub3Rlc0FuZEVuZG5vdGVzICE9PSB2b2lkIDAgfHwgb3B0aW9ucz8ucmVuZGVySGVhZGVyc0FuZEZvb3RlcnMgIT09IHZvaWQgMCB8fCBvcHRpb25zPy5yZW5kZXJUcmFja2VkQ2hhbmdlcyAhPT0gdm9pZCAwIHx8IG9wdGlvbnM/LnNob3dEZWxldGVkQ29udGVudCAhPT0gdm9pZCAwIHx8IG9wdGlvbnM/LnJlbmRlck1vdmVPcGVyYXRpb25zICE9PSB2b2lkIDA7CiAgICBpZiAobmVlZHNDb21wbGV0ZU1ldGhvZCB8fCBvcHRpb25zPy5yZW5kZXJBbm5vdGF0aW9ucykgewogICAgICByZXN1bHQgPSBleHBvcnRzLkRvY3VtZW50Q29udmVydGVyLkNvbnZlcnREb2N4VG9IdG1sQ29tcGxldGUoCiAgICAgICAgcmVxdWVzdC5kb2N1bWVudEJ5dGVzLAogICAgICAgIG9wdGlvbnM/LnBhZ2VUaXRsZSA/PyAiRG9jdW1lbnQiLAogICAgICAgIG9wdGlvbnM/LmNzc1ByZWZpeCA/PyAiZG9jeC0iLAogICAgICAgIG9wdGlvbnM/LmZhYnJpY2F0ZUNsYXNzZXMgPz8gdHJ1ZSwKICAgICAgICBvcHRpb25zPy5hZGRpdGlvbmFsQ3NzID8/ICIiLAogICAgICAgIG9wdGlvbnM/LmNvbW1lbnRSZW5kZXJNb2RlID8/IC0xLAogICAgICAgIG9wdGlvbnM/LmNvbW1lbnRDc3NDbGFzc1ByZWZpeCA/PyAiY29tbWVudC0iLAogICAgICAgIG9wdGlvbnM/LnBhZ2luYXRpb25Nb2RlID8/IDAsCiAgICAgICAgb3B0aW9ucz8ucGFnaW5hdGlvblNjYWxlID8/IDEsCiAgICAgICAgb3B0aW9ucz8ucGFnaW5hdGlvbkNzc0NsYXNzUHJlZml4ID8/ICJwYWdlLSIsCiAgICAgICAgb3B0aW9ucz8ucmVuZGVyQW5ub3RhdGlvbnMgPz8gZmFsc2UsCiAgICAgICAgb3B0aW9ucz8uYW5ub3RhdGlvbkxhYmVsTW9kZSA/PyAwLAogICAgICAgIG9wdGlvbnM/LmFubm90YXRpb25Dc3NDbGFzc1ByZWZpeCA/PyAiYW5ub3QtIiwKICAgICAgICBvcHRpb25zPy5yZW5kZXJGb290bm90ZXNBbmRFbmRub3RlcyA/PyBmYWxzZSwKICAgICAgICBvcHRpb25zPy5yZW5kZXJIZWFkZXJzQW5kRm9vdGVycyA/PyBmYWxzZSwKICAgICAgICBvcHRpb25zPy5yZW5kZXJUcmFja2VkQ2hhbmdlcyA/PyBmYWxzZSwKICAgICAgICBvcHRpb25zPy5zaG93RGVsZXRlZENvbnRlbnQgPz8gdHJ1ZSwKICAgICAgICBvcHRpb25zPy5yZW5kZXJNb3ZlT3BlcmF0aW9ucyA/PyB0cnVlCiAgICAgICk7CiAgICB9IGVsc2UgaWYgKG9wdGlvbnM/LnBhZ2luYXRpb25Nb2RlICE9PSB2b2lkIDAgJiYgb3B0aW9ucy5wYWdpbmF0aW9uTW9kZSAhPT0gMCkgewogICAgICByZXN1bHQgPSBleHBvcnRzLkRvY3VtZW50Q29udmVydGVyLkNvbnZlcnREb2N4VG9IdG1sV2l0aFBhZ2luYXRpb24oCiAgICAgICAgcmVxdWVzdC5kb2N1bWVudEJ5dGVzLAogICAgICAgIG9wdGlvbnMucGFnZVRpdGxlID8/ICJEb2N1bWVudCIsCiAgICAgICAgb3B0aW9ucy5jc3NQcmVmaXggPz8gImRvY3gtIiwKICAgICAgICBvcHRpb25zLmZhYnJpY2F0ZUNsYXNzZXMgPz8gdHJ1ZSwKICAgICAgICBvcHRpb25zLmFkZGl0aW9uYWxDc3MgPz8gIiIsCiAgICAgICAgb3B0aW9ucy5jb21tZW50UmVuZGVyTW9kZSA/PyAtMSwKICAgICAgICBvcHRpb25zLmNvbW1lbnRDc3NDbGFzc1ByZWZpeCA/PyAiY29tbWVudC0iLAogICAgICAgIG9wdGlvbnMucGFnaW5hdGlvbk1vZGUsCiAgICAgICAgb3B0aW9ucy5wYWdpbmF0aW9uU2NhbGUgPz8gMSwKICAgICAgICBvcHRpb25zLnBhZ2luYXRpb25Dc3NDbGFzc1ByZWZpeCA/PyAicGFnZS0iCiAgICAgICk7CiAgICB9IGVsc2UgaWYgKG9wdGlvbnMpIHsKICAgICAgcmVzdWx0ID0gZXhwb3J0cy5Eb2N1bWVudENvbnZlcnRlci5Db252ZXJ0RG9jeFRvSHRtbFdpdGhPcHRpb25zKAogICAgICAgIHJlcXVlc3QuZG9jdW1lbnRCeXRlcywKICAgICAgICBvcHRpb25zLnBhZ2VUaXRsZSA/PyAiRG9jdW1lbnQiLAogICAgICAgIG9wdGlvbnMuY3NzUHJlZml4ID8/ICJkb2N4LSIsCiAgICAgICAgb3B0aW9ucy5mYWJyaWNhdGVDbGFzc2VzID8/IHRydWUsCiAgICAgICAgb3B0aW9ucy5hZGRpdGlvbmFsQ3NzID8/ICIiLAogICAgICAgIG9wdGlvbnMuY29tbWVudFJlbmRlck1vZGUgPz8gLTEsCiAgICAgICAgb3B0aW9ucy5jb21tZW50Q3NzQ2xhc3NQcmVmaXggPz8gImNvbW1lbnQtIgogICAgICApOwogICAgfSBlbHNlIHsKICAgICAgcmVzdWx0ID0gZXhwb3J0cy5Eb2N1bWVudENvbnZlcnRlci5Db252ZXJ0RG9jeFRvSHRtbCgKICAgICAgICByZXF1ZXN0LmRvY3VtZW50Qnl0ZXMKICAgICAgKTsKICAgIH0KICAgIGlmIChpc0Vycm9yUmVzcG9uc2UocmVzdWx0KSkgewogICAgICByZXR1cm4gcGFyc2VFcnJvcihyZXN1bHQpOwogICAgfQogICAgcmV0dXJuIHsgaHRtbDogcmVzdWx0IH07CiAgfSBjYXRjaCAoZXJyb3IpIHsKICAgIHJldHVybiB7IGVycm9yOiBTdHJpbmcoZXJyb3IpIH07CiAgfQp9CmZ1bmN0aW9uIGhhbmRsZUNvbXBhcmUocmVxdWVzdCkgewogIGNvbnN0IGV4cG9ydHMgPSBlbnN1cmVJbml0aWFsaXplZCgpOwogIGNvbnN0IG9wdGlvbnMgPSByZXF1ZXN0Lm9wdGlvbnM7CiAgdHJ5IHsKICAgIGxldCByZXN1bHQ7CiAgICBpZiAob3B0aW9ucz8uZGV0YWlsVGhyZXNob2xkICE9PSB2b2lkIDAgfHwgb3B0aW9ucz8uY2FzZUluc2Vuc2l0aXZlKSB7CiAgICAgIHJlc3VsdCA9IGV4cG9ydHMuRG9jdW1lbnRDb21wYXJlci5Db21wYXJlRG9jdW1lbnRzV2l0aE9wdGlvbnMoCiAgICAgICAgcmVxdWVzdC5vcmlnaW5hbEJ5dGVzLAogICAgICAgIHJlcXVlc3QubW9kaWZpZWRCeXRlcywKICAgICAgICBvcHRpb25zPy5hdXRob3JOYW1lID8/ICJEb2N4b2R1cyIsCiAgICAgICAgb3B0aW9ucz8uZGV0YWlsVGhyZXNob2xkID8/IDAuMTUsCiAgICAgICAgb3B0aW9ucz8uY2FzZUluc2Vuc2l0aXZlID8/IGZhbHNlCiAgICAgICk7CiAgICB9IGVsc2UgewogICAgICByZXN1bHQgPSBleHBvcnRzLkRvY3VtZW50Q29tcGFyZXIuQ29tcGFyZURvY3VtZW50cygKICAgICAgICByZXF1ZXN0Lm9yaWdpbmFsQnl0ZXMsCiAgICAgICAgcmVxdWVzdC5tb2RpZmllZEJ5dGVzLAogICAgICAgIG9wdGlvbnM/LmF1dGhvck5hbWUgPz8gIkRvY3hvZHVzIgogICAgICApOwogICAgfQogICAgaWYgKHJlc3VsdC5sZW5ndGggPT09IDApIHsKICAgICAgcmV0dXJuIHsgZXJyb3I6ICJDb21wYXJpc29uIHJldHVybmVkIGVtcHR5IHJlc3VsdCIgfTsKICAgIH0KICAgIHJldHVybiB7IGRvY3VtZW50Qnl0ZXM6IHJlc3VsdCB9OwogIH0gY2F0Y2ggKGVycm9yKSB7CiAgICByZXR1cm4geyBlcnJvcjogU3RyaW5nKGVycm9yKSB9OwogIH0KfQpmdW5jdGlvbiBoYW5kbGVDb21wYXJlVG9IdG1sKHJlcXVlc3QpIHsKICBjb25zdCBleHBvcnRzID0gZW5zdXJlSW5pdGlhbGl6ZWQoKTsKICBjb25zdCBvcHRpb25zID0gcmVxdWVzdC5vcHRpb25zOwogIHRyeSB7CiAgICBjb25zdCByZW5kZXJUcmFja2VkQ2hhbmdlcyA9IG9wdGlvbnM/LnJlbmRlclRyYWNrZWRDaGFuZ2VzID8/IHRydWU7CiAgICBjb25zdCByZXN1bHQgPSBleHBvcnRzLkRvY3VtZW50Q29tcGFyZXIuQ29tcGFyZURvY3VtZW50c1RvSHRtbFdpdGhPcHRpb25zKAogICAgICByZXF1ZXN0Lm9yaWdpbmFsQnl0ZXMsCiAgICAgIHJlcXVlc3QubW9kaWZpZWRCeXRlcywKICAgICAgb3B0aW9ucz8uYXV0aG9yTmFtZSA/PyAiRG9jeG9kdXMiLAogICAgICByZW5kZXJUcmFja2VkQ2hhbmdlcwogICAgKTsKICAgIGlmIChpc0Vycm9yUmVzcG9uc2UocmVzdWx0KSkgewogICAgICByZXR1cm4gcGFyc2VFcnJvcihyZXN1bHQpOwogICAgfQogICAgcmV0dXJuIHsgaHRtbDogcmVzdWx0IH07CiAgfSBjYXRjaCAoZXJyb3IpIHsKICAgIHJldHVybiB7IGVycm9yOiBTdHJpbmcoZXJyb3IpIH07CiAgfQp9CmZ1bmN0aW9uIGhhbmRsZUdldFJldmlzaW9ucyhyZXF1ZXN0KSB7CiAgY29uc3QgZXhwb3J0cyA9IGVuc3VyZUluaXRpYWxpemVkKCk7CiAgY29uc3Qgb3B0aW9ucyA9IHJlcXVlc3Qub3B0aW9uczsKICB0cnkgewogICAgY29uc3QgZGV0ZWN0TW92ZXMgPSBvcHRpb25zPy5kZXRlY3RNb3ZlcyA/PyB0cnVlOwogICAgY29uc3QgbW92ZVNpbWlsYXJpdHlUaHJlc2hvbGQgPSBvcHRpb25zPy5tb3ZlU2ltaWxhcml0eVRocmVzaG9sZCA/PyAwLjg7CiAgICBjb25zdCBtb3ZlTWluaW11bVdvcmRDb3VudCA9IG9wdGlvbnM/Lm1vdmVNaW5pbXVtV29yZENvdW50ID8/IDM7CiAgICBjb25zdCBjYXNlSW5zZW5zaXRpdmUgPSBvcHRpb25zPy5jYXNlSW5zZW5zaXRpdmUgPz8gZmFsc2U7CiAgICBjb25zdCByZXN1bHQgPSBleHBvcnRzLkRvY3VtZW50Q29tcGFyZXIuR2V0UmV2aXNpb25zSnNvbldpdGhPcHRpb25zKAogICAgICByZXF1ZXN0LmRvY3VtZW50Qnl0ZXMsCiAgICAgIGRldGVjdE1vdmVzLAogICAgICBtb3ZlU2ltaWxhcml0eVRocmVzaG9sZCwKICAgICAgbW92ZU1pbmltdW1Xb3JkQ291bnQsCiAgICAgIGNhc2VJbnNlbnNpdGl2ZQogICAgKTsKICAgIGlmIChpc0Vycm9yUmVzcG9uc2UocmVzdWx0KSkgewogICAgICByZXR1cm4gcGFyc2VFcnJvcihyZXN1bHQpOwogICAgfQogICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZShyZXN1bHQpOwogICAgY29uc3QgcmV2aXNpb25zID0gKHBhcnNlZC5SZXZpc2lvbnMgfHwgcGFyc2VkLnJldmlzaW9ucyB8fCBbXSkubWFwKAogICAgICAocikgPT4gKHsKICAgICAgICBhdXRob3I6IHIuQXV0aG9yIHx8IHIuYXV0aG9yLAogICAgICAgIGRhdGU6IHIuRGF0ZSB8fCByLmRhdGUsCiAgICAgICAgcmV2aXNpb25UeXBlOiByLlJldmlzaW9uVHlwZSB8fCByLnJldmlzaW9uVHlwZSwKICAgICAgICB0ZXh0OiByLlRleHQgfHwgci50ZXh0LAogICAgICAgIG1vdmVHcm91cElkOiByLk1vdmVHcm91cElkID8/IHIubW92ZUdyb3VwSWQsCiAgICAgICAgaXNNb3ZlU291cmNlOiByLklzTW92ZVNvdXJjZSA/PyByLmlzTW92ZVNvdXJjZSwKICAgICAgICBmb3JtYXRDaGFuZ2U6IHIuRm9ybWF0Q2hhbmdlIHx8IHIuZm9ybWF0Q2hhbmdlID8gewogICAgICAgICAgb2xkUHJvcGVydGllczogci5Gb3JtYXRDaGFuZ2U/Lk9sZFByb3BlcnRpZXMgfHwgci5mb3JtYXRDaGFuZ2U/Lm9sZFByb3BlcnRpZXMsCiAgICAgICAgICBuZXdQcm9wZXJ0aWVzOiByLkZvcm1hdENoYW5nZT8uTmV3UHJvcGVydGllcyB8fCByLmZvcm1hdENoYW5nZT8ubmV3UHJvcGVydGllcywKICAgICAgICAgIGNoYW5nZWRQcm9wZXJ0eU5hbWVzOiByLkZvcm1hdENoYW5nZT8uQ2hhbmdlZFByb3BlcnR5TmFtZXMgfHwgci5mb3JtYXRDaGFuZ2U/LmNoYW5nZWRQcm9wZXJ0eU5hbWVzCiAgICAgICAgfSA6IHZvaWQgMAogICAgICB9KQogICAgKTsKICAgIHJldHVybiB7IHJldmlzaW9ucyB9OwogIH0gY2F0Y2ggKGVycm9yKSB7CiAgICByZXR1cm4geyBlcnJvcjogU3RyaW5nKGVycm9yKSB9OwogIH0KfQpmdW5jdGlvbiBoYW5kbGVHZXREb2N1bWVudE1ldGFkYXRhKHJlcXVlc3QpIHsKICBjb25zdCBleHBvcnRzID0gZW5zdXJlSW5pdGlhbGl6ZWQoKTsKICB0cnkgewogICAgY29uc3QgcmVzdWx0ID0gZXhwb3J0cy5Eb2N1bWVudENvbnZlcnRlci5HZXREb2N1bWVudE1ldGFkYXRhKAogICAgICByZXF1ZXN0LmRvY3VtZW50Qnl0ZXMKICAgICk7CiAgICBpZiAoaXNFcnJvclJlc3BvbnNlKHJlc3VsdCkpIHsKICAgICAgcmV0dXJuIHBhcnNlRXJyb3IocmVzdWx0KTsKICAgIH0KICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UocmVzdWx0KTsKICAgIGNvbnN0IGNvbnZlcnRTZWN0aW9uID0gKHMpID0+ICh7CiAgICAgIHNlY3Rpb25JbmRleDogcy5TZWN0aW9uSW5kZXggPz8gcy5zZWN0aW9uSW5kZXgsCiAgICAgIHBhZ2VXaWR0aFB0OiBzLlBhZ2VXaWR0aFB0ID8/IHMucGFnZVdpZHRoUHQsCiAgICAgIHBhZ2VIZWlnaHRQdDogcy5QYWdlSGVpZ2h0UHQgPz8gcy5wYWdlSGVpZ2h0UHQsCiAgICAgIG1hcmdpblRvcFB0OiBzLk1hcmdpblRvcFB0ID8/IHMubWFyZ2luVG9wUHQsCiAgICAgIG1hcmdpblJpZ2h0UHQ6IHMuTWFyZ2luUmlnaHRQdCA/PyBzLm1hcmdpblJpZ2h0UHQsCiAgICAgIG1hcmdpbkJvdHRvbVB0OiBzLk1hcmdpbkJvdHRvbVB0ID8/IHMubWFyZ2luQm90dG9tUHQsCiAgICAgIG1hcmdpbkxlZnRQdDogcy5NYXJnaW5MZWZ0UHQgPz8gcy5tYXJnaW5MZWZ0UHQsCiAgICAgIGNvbnRlbnRXaWR0aFB0OiBzLkNvbnRlbnRXaWR0aFB0ID8/IHMuY29udGVudFdpZHRoUHQsCiAgICAgIGNvbnRlbnRIZWlnaHRQdDogcy5Db250ZW50SGVpZ2h0UHQgPz8gcy5jb250ZW50SGVpZ2h0UHQsCiAgICAgIGhlYWRlclB0OiBzLkhlYWRlclB0ID8/IHMuaGVhZGVyUHQsCiAgICAgIGZvb3RlclB0OiBzLkZvb3RlclB0ID8/IHMuZm9vdGVyUHQsCiAgICAgIHBhcmFncmFwaENvdW50OiBzLlBhcmFncmFwaENvdW50ID8/IHMucGFyYWdyYXBoQ291bnQsCiAgICAgIHRhYmxlQ291bnQ6IHMuVGFibGVDb3VudCA/PyBzLnRhYmxlQ291bnQsCiAgICAgIGhhc0hlYWRlcjogcy5IYXNIZWFkZXIgPz8gcy5oYXNIZWFkZXIsCiAgICAgIGhhc0Zvb3Rlcjogcy5IYXNGb290ZXIgPz8gcy5oYXNGb290ZXIsCiAgICAgIGhhc0ZpcnN0UGFnZUhlYWRlcjogcy5IYXNGaXJzdFBhZ2VIZWFkZXIgPz8gcy5oYXNGaXJzdFBhZ2VIZWFkZXIsCiAgICAgIGhhc0ZpcnN0UGFnZUZvb3Rlcjogcy5IYXNGaXJzdFBhZ2VGb290ZXIgPz8gcy5oYXNGaXJzdFBhZ2VGb290ZXIsCiAgICAgIGhhc0V2ZW5QYWdlSGVhZGVyOiBzLkhhc0V2ZW5QYWdlSGVhZGVyID8/IHMuaGFzRXZlblBhZ2VIZWFkZXIsCiAgICAgIGhhc0V2ZW5QYWdlRm9vdGVyOiBzLkhhc0V2ZW5QYWdlRm9vdGVyID8/IHMuaGFzRXZlblBhZ2VGb290ZXIsCiAgICAgIHN0YXJ0UGFyYWdyYXBoSW5kZXg6IHMuU3RhcnRQYXJhZ3JhcGhJbmRleCA/PyBzLnN0YXJ0UGFyYWdyYXBoSW5kZXgsCiAgICAgIGVuZFBhcmFncmFwaEluZGV4OiBzLkVuZFBhcmFncmFwaEluZGV4ID8/IHMuZW5kUGFyYWdyYXBoSW5kZXgsCiAgICAgIHN0YXJ0VGFibGVJbmRleDogcy5TdGFydFRhYmxlSW5kZXggPz8gcy5zdGFydFRhYmxlSW5kZXgsCiAgICAgIGVuZFRhYmxlSW5kZXg6IHMuRW5kVGFibGVJbmRleCA/PyBzLmVuZFRhYmxlSW5kZXgKICAgIH0pOwogICAgY29uc3QgbWV0YWRhdGEgPSB7CiAgICAgIHNlY3Rpb25zOiAocGFyc2VkLlNlY3Rpb25zIHx8IHBhcnNlZC5zZWN0aW9ucyB8fCBbXSkubWFwKGNvbnZlcnRTZWN0aW9uKSwKICAgICAgdG90YWxQYXJhZ3JhcGhzOiBwYXJzZWQuVG90YWxQYXJhZ3JhcGhzID8/IHBhcnNlZC50b3RhbFBhcmFncmFwaHMsCiAgICAgIHRvdGFsVGFibGVzOiBwYXJzZWQuVG90YWxUYWJsZXMgPz8gcGFyc2VkLnRvdGFsVGFibGVzLAogICAgICBoYXNGb290bm90ZXM6IHBhcnNlZC5IYXNGb290bm90ZXMgPz8gcGFyc2VkLmhhc0Zvb3Rub3RlcywKICAgICAgaGFzRW5kbm90ZXM6IHBhcnNlZC5IYXNFbmRub3RlcyA/PyBwYXJzZWQuaGFzRW5kbm90ZXMsCiAgICAgIGhhc1RyYWNrZWRDaGFuZ2VzOiBwYXJzZWQuSGFzVHJhY2tlZENoYW5nZXMgPz8gcGFyc2VkLmhhc1RyYWNrZWRDaGFuZ2VzLAogICAgICBoYXNDb21tZW50czogcGFyc2VkLkhhc0NvbW1lbnRzID8/IHBhcnNlZC5oYXNDb21tZW50cywKICAgICAgZXN0aW1hdGVkUGFnZUNvdW50OiBwYXJzZWQuRXN0aW1hdGVkUGFnZUNvdW50ID8/IHBhcnNlZC5lc3RpbWF0ZWRQYWdlQ291bnQKICAgIH07CiAgICByZXR1cm4geyBtZXRhZGF0YSB9OwogIH0gY2F0Y2ggKGVycm9yKSB7CiAgICByZXR1cm4geyBlcnJvcjogU3RyaW5nKGVycm9yKSB9OwogIH0KfQpmdW5jdGlvbiBoYW5kbGVHZXRWZXJzaW9uKCkgewogIGNvbnN0IGV4cG9ydHMgPSBlbnN1cmVJbml0aWFsaXplZCgpOwogIHRyeSB7CiAgICBjb25zdCByZXN1bHQgPSBleHBvcnRzLkRvY3VtZW50Q29udmVydGVyLkdldFZlcnNpb24oKTsKICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UocmVzdWx0KTsKICAgIHJldHVybiB7CiAgICAgIHZlcnNpb246IHsKICAgICAgICBsaWJyYXJ5OiBwYXJzZWQuTGlicmFyeSB8fCBwYXJzZWQubGlicmFyeSwKICAgICAgICBkb3RuZXRWZXJzaW9uOiBwYXJzZWQuRG90bmV0VmVyc2lvbiB8fCBwYXJzZWQuZG90bmV0VmVyc2lvbiwKICAgICAgICBwbGF0Zm9ybTogcGFyc2VkLlBsYXRmb3JtIHx8IHBhcnNlZC5wbGF0Zm9ybQogICAgICB9CiAgICB9OwogIH0gY2F0Y2ggKGVycm9yKSB7CiAgICByZXR1cm4geyBlcnJvcjogU3RyaW5nKGVycm9yKSB9OwogIH0KfQpzZWxmLm9ubWVzc2FnZSA9IGFzeW5jIChldmVudCkgPT4gewogIGNvbnN0IHJlcXVlc3QgPSBldmVudC5kYXRhOwogIHRyeSB7CiAgICBsZXQgcmVzcG9uc2U7CiAgICBzd2l0Y2ggKHJlcXVlc3QudHlwZSkgewogICAgICBjYXNlICJpbml0IjogewogICAgICAgIGNvbnN0IGluaXRSZXF1ZXN0ID0gcmVxdWVzdDsKICAgICAgICB0cnkgewogICAgICAgICAgYXdhaXQgaW5pdGlhbGl6ZVdhc20oaW5pdFJlcXVlc3Qud2FzbUJhc2VQYXRoKTsKICAgICAgICAgIHJlc3BvbnNlID0gewogICAgICAgICAgICBpZDogcmVxdWVzdC5pZCwKICAgICAgICAgICAgdHlwZTogImluaXQiLAogICAgICAgICAgICBzdWNjZXNzOiB0cnVlCiAgICAgICAgICB9OwogICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgICByZXNwb25zZSA9IHsKICAgICAgICAgICAgaWQ6IHJlcXVlc3QuaWQsCiAgICAgICAgICAgIHR5cGU6ICJpbml0IiwKICAgICAgICAgICAgc3VjY2VzczogZmFsc2UsCiAgICAgICAgICAgIGVycm9yOiBTdHJpbmcoZXJyb3IpCiAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICBicmVhazsKICAgICAgfQogICAgICBjYXNlICJjb252ZXJ0RG9jeFRvSHRtbCI6IHsKICAgICAgICBjb25zdCBjb252ZXJ0UmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgICAgY29uc3QgcmVzdWx0ID0gaGFuZGxlQ29udmVydChjb252ZXJ0UmVxdWVzdCk7CiAgICAgICAgcmVzcG9uc2UgPSB7CiAgICAgICAgICBpZDogcmVxdWVzdC5pZCwKICAgICAgICAgIHR5cGU6ICJjb252ZXJ0RG9jeFRvSHRtbCIsCiAgICAgICAgICBzdWNjZXNzOiAhcmVzdWx0LmVycm9yLAogICAgICAgICAgaHRtbDogcmVzdWx0Lmh0bWwsCiAgICAgICAgICBlcnJvcjogcmVzdWx0LmVycm9yCiAgICAgICAgfTsKICAgICAgICBicmVhazsKICAgICAgfQogICAgICBjYXNlICJjb21wYXJlRG9jdW1lbnRzIjogewogICAgICAgIGNvbnN0IGNvbXBhcmVSZXF1ZXN0ID0gcmVxdWVzdDsKICAgICAgICBjb25zdCByZXN1bHQgPSBoYW5kbGVDb21wYXJlKGNvbXBhcmVSZXF1ZXN0KTsKICAgICAgICByZXNwb25zZSA9IHsKICAgICAgICAgIGlkOiByZXF1ZXN0LmlkLAogICAgICAgICAgdHlwZTogImNvbXBhcmVEb2N1bWVudHMiLAogICAgICAgICAgc3VjY2VzczogIXJlc3VsdC5lcnJvciwKICAgICAgICAgIGRvY3VtZW50Qnl0ZXM6IHJlc3VsdC5kb2N1bWVudEJ5dGVzLAogICAgICAgICAgZXJyb3I6IHJlc3VsdC5lcnJvcgogICAgICAgIH07CiAgICAgICAgaWYgKHJlc3VsdC5kb2N1bWVudEJ5dGVzKSB7CiAgICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKHJlc3BvbnNlLCB7IHRyYW5zZmVyOiBbcmVzdWx0LmRvY3VtZW50Qnl0ZXMuYnVmZmVyXSB9KTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgICAgY2FzZSAiY29tcGFyZURvY3VtZW50c1RvSHRtbCI6IHsKICAgICAgICBjb25zdCBjb21wYXJlVG9IdG1sUmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgICAgY29uc3QgcmVzdWx0ID0gaGFuZGxlQ29tcGFyZVRvSHRtbChjb21wYXJlVG9IdG1sUmVxdWVzdCk7CiAgICAgICAgcmVzcG9uc2UgPSB7CiAgICAgICAgICBpZDogcmVxdWVzdC5pZCwKICAgICAgICAgIHR5cGU6ICJjb21wYXJlRG9jdW1lbnRzVG9IdG1sIiwKICAgICAgICAgIHN1Y2Nlc3M6ICFyZXN1bHQuZXJyb3IsCiAgICAgICAgICBodG1sOiByZXN1bHQuaHRtbCwKICAgICAgICAgIGVycm9yOiByZXN1bHQuZXJyb3IKICAgICAgICB9OwogICAgICAgIGJyZWFrOwogICAgICB9CiAgICAgIGNhc2UgImdldFJldmlzaW9ucyI6IHsKICAgICAgICBjb25zdCBnZXRSZXZpc2lvbnNSZXF1ZXN0ID0gcmVxdWVzdDsKICAgICAgICBjb25zdCByZXN1bHQgPSBoYW5kbGVHZXRSZXZpc2lvbnMoZ2V0UmV2aXNpb25zUmVxdWVzdCk7CiAgICAgICAgcmVzcG9uc2UgPSB7CiAgICAgICAgICBpZDogcmVxdWVzdC5pZCwKICAgICAgICAgIHR5cGU6ICJnZXRSZXZpc2lvbnMiLAogICAgICAgICAgc3VjY2VzczogIXJlc3VsdC5lcnJvciwKICAgICAgICAgIHJldmlzaW9uczogcmVzdWx0LnJldmlzaW9ucywKICAgICAgICAgIGVycm9yOiByZXN1bHQuZXJyb3IKICAgICAgICB9OwogICAgICAgIGJyZWFrOwogICAgICB9CiAgICAgIGNhc2UgImdldERvY3VtZW50TWV0YWRhdGEiOiB7CiAgICAgICAgY29uc3QgZ2V0TWV0YWRhdGFSZXF1ZXN0ID0gcmVxdWVzdDsKICAgICAgICBjb25zdCByZXN1bHQgPSBoYW5kbGVHZXREb2N1bWVudE1ldGFkYXRhKGdldE1ldGFkYXRhUmVxdWVzdCk7CiAgICAgICAgcmVzcG9uc2UgPSB7CiAgICAgICAgICBpZDogcmVxdWVzdC5pZCwKICAgICAgICAgIHR5cGU6ICJnZXREb2N1bWVudE1ldGFkYXRhIiwKICAgICAgICAgIHN1Y2Nlc3M6ICFyZXN1bHQuZXJyb3IsCiAgICAgICAgICBtZXRhZGF0YTogcmVzdWx0Lm1ldGFkYXRhLAogICAgICAgICAgZXJyb3I6IHJlc3VsdC5lcnJvcgogICAgICAgIH07CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgICAgY2FzZSAiZ2V0VmVyc2lvbiI6IHsKICAgICAgICBjb25zdCByZXN1bHQgPSBoYW5kbGVHZXRWZXJzaW9uKCk7CiAgICAgICAgcmVzcG9uc2UgPSB7CiAgICAgICAgICBpZDogcmVxdWVzdC5pZCwKICAgICAgICAgIHR5cGU6ICJnZXRWZXJzaW9uIiwKICAgICAgICAgIHN1Y2Nlc3M6ICFyZXN1bHQuZXJyb3IsCiAgICAgICAgICB2ZXJzaW9uOiByZXN1bHQudmVyc2lvbiwKICAgICAgICAgIGVycm9yOiByZXN1bHQuZXJyb3IKICAgICAgICB9OwogICAgICAgIGJyZWFrOwogICAgICB9CiAgICAgIGRlZmF1bHQ6IHsKICAgICAgICBjb25zdCB1bmtub3duUmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgICAgc2VsZi5wb3N0TWVzc2FnZSh7CiAgICAgICAgICBpZDogdW5rbm93blJlcXVlc3QuaWQsCiAgICAgICAgICB0eXBlOiB1bmtub3duUmVxdWVzdC50eXBlLAogICAgICAgICAgc3VjY2VzczogZmFsc2UsCiAgICAgICAgICBlcnJvcjogYFVua25vd24gcmVxdWVzdCB0eXBlOiAke3Vua25vd25SZXF1ZXN0LnR5cGV9YAogICAgICAgIH0pOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgfQogICAgc2VsZi5wb3N0TWVzc2FnZShyZXNwb25zZSk7CiAgfSBjYXRjaCAoZXJyb3IpIHsKICAgIHNlbGYucG9zdE1lc3NhZ2UoewogICAgICBpZDogcmVxdWVzdC5pZCwKICAgICAgdHlwZTogcmVxdWVzdC50eXBlLAogICAgICBzdWNjZXNzOiBmYWxzZSwKICAgICAgZXJyb3I6IFN0cmluZyhlcnJvcikKICAgIH0pOwogIH0KfTsKc2VsZi5wb3N0TWVzc2FnZSh7IHR5cGU6ICJyZWFkeSIgfSk7Cg==",typeof document>"u"?require("url").pathToFileURL(__filename).href:ge&&ge.tagName.toUpperCase()==="SCRIPT"&&ge.src||new URL("react-docxodus-viewer.cjs.js",document.baseURI).href).href,b=new Worker(p,{type:"module"}),A=new Map;let h=!0;b.onmessage=n=>{const i=n.data;if(i.type==="ready")return;const a=A.get(i.id);a&&(A.delete(i.id),i.success?a.resolve(i):a.reject(new Error(i.error||"Unknown error")))},b.onerror=n=>{for(const i of A.values())i.reject(new Error(`Worker error: ${n.message}`));A.clear(),h=!1};function o(n,i){return new Promise((a,d)=>{if(!h){d(new Error("Worker has been terminated"));return}A.set(n.id,{resolve:a,reject:d}),i&&i.length>0?b.postMessage(n,i):b.postMessage(n)})}const X=await o({id:H(),type:"init",wasmBasePath:l});if(!X.success)throw b.terminate(),new Error(`Failed to initialize worker: ${X.error}`);return{async convertDocxToHtml(n,i){const a=await z(n);return(await o({id:H(),type:"convertDocxToHtml",documentBytes:a,options:i},[a.buffer])).html},async compareDocuments(n,i,a){const d=await z(n),r=await z(i);return(await o({id:H(),type:"compareDocuments",originalBytes:d,modifiedBytes:r,options:a},[d.buffer,r.buffer])).documentBytes},async compareDocumentsToHtml(n,i,a){const d=await z(n),r=await z(i);return(await o({id:H(),type:"compareDocumentsToHtml",originalBytes:d,modifiedBytes:r,options:a},[d.buffer,r.buffer])).html},async getRevisions(n,i){const a=await z(n);return(await o({id:H(),type:"getRevisions",documentBytes:a,options:i},[a.buffer])).revisions},async getDocumentMetadata(n){const i=await z(n);return(await o({id:H(),type:"getDocumentMetadata",documentBytes:i},[i.buffer])).metadata},async getVersion(){return(await o({id:H(),type:"getVersion"})).version},terminate(){h=!1,b.terminate();for(const n of A.values())n.reject(new Error("Worker terminated"));A.clear()},isActive(){return h}}}function Ze(){return typeof Worker<"u"}const he={paginationScale:.8,showPageNumbers:!0,renderFootnotesAndEndnotes:!0,renderHeadersAndFooters:!0,commentMode:"disabled",annotationMode:"disabled",renderTrackedChanges:!1,showDeletedContent:!0,renderMoveOperations:!0,pageTitle:"Document",cssPrefix:"docx-",fabricateClasses:!0,additionalCss:"",commentCssClassPrefix:"comment-",annotationCssClassPrefix:"annot-"};function Ue(s){return C.isInsertion(s)?"Inserted":C.isDeletion(s)?"Deleted":C.isMove(s)?s.isMoveSource?"Moved from":"Moved to":C.isFormatChange(s)?"Formatted":String(s.revisionType)}function Pe(s){return C.isInsertion(s)?"rdv-revision--insertion":C.isDeletion(s)?"rdv-revision--deletion":C.isMove(s)?"rdv-revision--move":C.isFormatChange(s)?"rdv-revision--format":""}function Me(s){try{return new Date(s).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}catch{return s}}function Le(s,l=100){return s.length<=l?s:s.substring(0,l)+"..."}function Oe({revisions:s}){const[l,p]=I.useState("all"),[b,A]=I.useState(new Set),h=I.useMemo(()=>l==="all"?s:s.filter(n=>{switch(l){case"insertions":return C.isInsertion(n);case"deletions":return C.isDeletion(n);case"moves":return C.isMove(n);case"formatting":return C.isFormatChange(n);default:return!0}}),[s,l]),o=I.useMemo(()=>({total:s.length,insertions:s.filter(C.isInsertion).length,deletions:s.filter(C.isDeletion).length,moves:s.filter(C.isMove).length,formatting:s.filter(C.isFormatChange).length}),[s]),X=n=>{A(i=>{const a=new Set(i);return a.has(n)?a.delete(n):a.add(n),a})};return s.length===0?e.jsx("div",{className:"rdv-revision-panel",children:e.jsxs("div",{className:"rdv-revision-empty",children:[e.jsx("div",{className:"rdv-revision-empty__icon",children:"📝"}),e.jsx("p",{children:"No tracked changes found in this document."})]})}):e.jsxs("div",{className:"rdv-revision-panel",children:[e.jsxs("div",{className:"rdv-revision-header",children:[e.jsxs("div",{className:"rdv-revision-stats",children:[e.jsxs("span",{className:"rdv-revision-stat rdv-revision-stat--total",children:[o.total," changes"]}),o.insertions>0&&e.jsxs("span",{className:"rdv-revision-stat rdv-revision-stat--insertion",children:["+",o.insertions]}),o.deletions>0&&e.jsxs("span",{className:"rdv-revision-stat rdv-revision-stat--deletion",children:["−",o.deletions]}),o.moves>0&&e.jsxs("span",{className:"rdv-revision-stat rdv-revision-stat--move",children:["↔",o.moves]}),o.formatting>0&&e.jsxs("span",{className:"rdv-revision-stat rdv-revision-stat--format",children:["✎",o.formatting]})]}),e.jsxs("select",{className:"rdv-revision-filter",value:l,onChange:n=>p(n.target.value),children:[e.jsx("option",{value:"all",children:"All Changes"}),e.jsxs("option",{value:"insertions",children:["Insertions (",o.insertions,")"]}),e.jsxs("option",{value:"deletions",children:["Deletions (",o.deletions,")"]}),e.jsxs("option",{value:"moves",children:["Moves (",o.moves,")"]}),e.jsxs("option",{value:"formatting",children:["Formatting (",o.formatting,")"]})]})]}),e.jsx("div",{className:"rdv-revision-list",children:h.map((n,i)=>{const a=b.has(i),d=n.text.length>100;return e.jsxs("div",{className:`rdv-revision-item ${Pe(n)}`,children:[e.jsxs("div",{className:"rdv-revision-item__header",children:[e.jsx("span",{className:"rdv-revision-type",children:Ue(n)}),e.jsx("span",{className:"rdv-revision-author",children:n.author}),e.jsx("span",{className:"rdv-revision-date",children:Me(n.date)})]}),e.jsxs("div",{className:"rdv-revision-item__content",children:[e.jsx("span",{className:"rdv-revision-text",children:a?n.text:Le(n.text)}),d&&e.jsx("button",{className:"rdv-revision-expand",onClick:()=>X(i),children:a?"Show less":"Show more"})]}),C.isFormatChange(n)&&n.formatChange&&e.jsxs("div",{className:"rdv-revision-item__format-details",children:[n.formatChange.oldProperties&&Object.entries(n.formatChange.oldProperties).map(([r,V])=>e.jsxs("span",{children:[r,": ",V," → "]},`old-${r}`)),n.formatChange.newProperties&&Object.entries(n.formatChange.newProperties).map(([r,V])=>e.jsxs("span",{children:[r,": ",V]},`new-${r}`))]})]},i)})})]})}function Te(s){switch(s){case"endnote":return C.CommentRenderMode.EndnoteStyle;case"inline":return C.CommentRenderMode.Inline;case"margin":return C.CommentRenderMode.Margin;default:return C.CommentRenderMode.Disabled}}function Ee(s){switch(s){case"above":return C.AnnotationLabelMode.Above;case"inline":return C.AnnotationLabelMode.Inline;case"tooltip":return C.AnnotationLabelMode.Tooltip;case"none":return C.AnnotationLabelMode.None;default:return}}function _e({file:s,html:l,onFileChange:p,onConversionStart:b,onConversionComplete:A,onError:h,onPageChange:o,onRevisionsExtracted:X,settings:n,defaultSettings:i,onSettingsChange:a,className:d,style:r,toolbar:V="top",showSettingsButton:ve=!0,showRevisionsTab:J=!0,placeholder:Ve="Open a DOCX file to view",wasmBasePath:P,useWorker:u=!1}){const M=I.useMemo(()=>({...he,...i}),[i]),[ye,ne]=I.useState(null),[We,k]=I.useState(null),[se,Ge]=I.useState(M),y=s!==void 0?s:ye,W=l!==void 0?l:We,t=I.useMemo(()=>n?{...M,...n}:se,[n,M,se]),R=ue.useDocxodus(P),[w,ce]=I.useState(null),[Be,te]=I.useState(!1),[pe,L]=I.useState(!1),[Xe,Ie]=I.useState(null),f=I.useRef(null);I.useEffect(()=>{if(!u||!Ze())return;let g=!1;return L(!0),Ie(null),De({wasmBasePath:P}).then(c=>{g?c.terminate():(f.current=c,ce(c),te(!0),L(!1))}).catch(c=>{g||(Ie(c instanceof Error?c:new Error(String(c))),L(!1))}),()=>{g=!0,f.current&&(f.current.terminate(),f.current=null,ce(null),te(!1))}},[u,P]);const N=u?Be:R.isReady,F=u?pe:R.isLoading,j=u?Xe:R.error,[G,ie]=I.useState(!1),[Ce,S]=I.useState(null),[ae,le]=I.useState(""),[v,O]=I.useState(1),[Z,T]=I.useState(0),[Re,K]=I.useState(!1),[x,Q]=I.useState("document"),[E,D]=I.useState([]),[Ne,oe]=I.useState(!1),_=I.useRef(null),$=I.useCallback(()=>({commentRenderMode:Te(t.commentMode),pageTitle:t.pageTitle,cssPrefix:t.cssPrefix,fabricateClasses:t.fabricateClasses,additionalCss:t.additionalCss||void 0,commentCssClassPrefix:t.commentCssClassPrefix,paginationMode:C.PaginationMode.Paginated,paginationScale:t.paginationScale,renderAnnotations:t.annotationMode!=="disabled",annotationLabelMode:Ee(t.annotationMode),annotationCssClassPrefix:t.annotationCssClassPrefix,renderFootnotesAndEndnotes:t.renderFootnotesAndEndnotes,renderHeadersAndFooters:t.renderHeadersAndFooters,renderTrackedChanges:t.renderTrackedChanges,showDeletedContent:t.showDeletedContent,renderMoveOperations:t.renderMoveOperations}),[t]),de=I.useCallback(async g=>{if(!(!N||!J)){oe(!0);try{const c=u&&w?await w.getRevisions(g):await R.getRevisions(g);D(c),X?.(c)}catch{D([])}finally{oe(!1)}}},[N,u,w,R,J,X]),Y=I.useCallback(async g=>{if(N){ie(!0),S(null),D([]),Q("document"),b?.(),u||await new Promise(c=>requestAnimationFrame(()=>requestAnimationFrame(c)));try{const c=u&&w?await w.convertDocxToHtml(g,$()):await R.convertToHtml(g,$());l===void 0&&k(c),A?.(c),de(g)}catch(c){const B=c instanceof Error?c:new Error(String(c));S(B),h?.(B)}finally{ie(!1)}}},[N,u,w,R,$,l,b,A,h,de]);I.useEffect(()=>{N&&y&&!W&&!G&&l===void 0&&Y(y)},[N,y,W,G,Y,l]);const He=async g=>{const c=g.target.files?.[0];c&&(le(c.name),S(null),O(1),T(0),s===void 0&&(ne(c),k(null)),p?.(c),N&&l===void 0&&await Y(c))},ze=I.useCallback(async()=>{y&&(l===void 0&&k(null),await Y(y))},[y,Y,l]),we=()=>{s===void 0&&ne(null),l===void 0&&k(null),S(null),le(""),O(1),T(0),D([]),Q("document"),p?.(null);const g=document.getElementById("rdv-file-input");g&&(g.value="")},m=I.useCallback(g=>{const c={...t,...g};n===void 0&&Ge(c),a?.(c)},[t,n,a]),Fe=()=>m({paginationScale:Math.min(t.paginationScale+.1,2)}),xe=()=>m({paginationScale:Math.max(t.paginationScale-.1,.3)}),Ye=g=>m({paginationScale:Math.max(.3,Math.min(2,g))}),q=g=>{const c=_.current;if(!c||g<1||g>Z)return;const B=c.querySelector(`[data-page-number="${g}"]`);B&&B.scrollIntoView({behavior:"smooth",block:"start"})},Je=()=>v>1&&q(v-1),ke=()=>v<Z&&q(v+1),fe=g=>{O(g),o?.(g,Z)};I.useEffect(()=>{const g=_.current;if(!g)return;const c=B=>{const be=B.target.closest('a[href^="#"]');if(!be)return;const ee=be.getAttribute("href");if(!ee||!ee.startsWith("#"))return;B.preventDefault();const me=ee.substring(1),U=g.querySelector(`[id="${me}"], [name="${me}"]`);U&&(U.scrollIntoView({behavior:"smooth",block:"center"}),U.classList.add("rdv-footnote-highlight"),setTimeout(()=>U.classList.remove("rdv-footnote-highlight"),2e3))};return g.addEventListener("click",c),()=>g.removeEventListener("click",c)},[W]),I.useEffect(()=>{Z>0&&o?.(v,Z)},[Z,v,o]);const re=G||F,je=()=>e.jsx("div",{className:"rdv-settings-overlay",onClick:()=>K(!1),children:e.jsxs("div",{className:"rdv-settings-modal",onClick:g=>g.stopPropagation(),children:[e.jsxs("div",{className:"rdv-settings-header",children:[e.jsx("h3",{children:"Viewer Settings"}),e.jsx("button",{className:"rdv-settings-close",onClick:()=>K(!1),children:"×"})]}),e.jsxs("div",{className:"rdv-settings-body",children:[e.jsxs("div",{className:"rdv-settings-section",children:[e.jsx("h4",{children:"Display Options"}),e.jsxs("label",{className:"rdv-settings-checkbox",children:[e.jsx("input",{type:"checkbox",checked:t.renderFootnotesAndEndnotes,onChange:g=>m({renderFootnotesAndEndnotes:g.target.checked})}),e.jsx("span",{children:"Show footnotes and endnotes"})]}),e.jsxs("label",{className:"rdv-settings-checkbox",children:[e.jsx("input",{type:"checkbox",checked:t.renderHeadersAndFooters,onChange:g=>m({renderHeadersAndFooters:g.target.checked})}),e.jsx("span",{children:"Show headers and footers"})]}),e.jsxs("label",{className:"rdv-settings-checkbox",children:[e.jsx("input",{type:"checkbox",checked:t.showPageNumbers,onChange:g=>m({showPageNumbers:g.target.checked})}),e.jsx("span",{children:"Show page numbers"})]})]}),e.jsxs("div",{className:"rdv-settings-section",children:[e.jsx("h4",{children:"Comment Rendering"}),e.jsx("div",{className:"rdv-settings-radio-group",children:["disabled","endnote","inline","margin"].map(g=>e.jsxs("label",{className:"rdv-settings-radio",children:[e.jsx("input",{type:"radio",name:"commentMode",checked:t.commentMode===g,onChange:()=>m({commentMode:g})}),e.jsxs("span",{children:[g.charAt(0).toUpperCase()+g.slice(1),g==="endnote"?"s":""]})]},g))})]}),e.jsxs("div",{className:"rdv-settings-section",children:[e.jsx("h4",{children:"Annotation Rendering"}),e.jsx("div",{className:"rdv-settings-radio-group",children:["disabled","above","inline","tooltip","none"].map(g=>e.jsxs("label",{className:"rdv-settings-radio",children:[e.jsx("input",{type:"radio",name:"annotationMode",checked:t.annotationMode===g,onChange:()=>m({annotationMode:g})}),e.jsx("span",{children:g==="none"?"Highlight Only":g.charAt(0).toUpperCase()+g.slice(1)})]},g))})]}),e.jsxs("div",{className:"rdv-settings-section",children:[e.jsx("h4",{children:"Tracked Changes"}),e.jsxs("label",{className:"rdv-settings-checkbox",children:[e.jsx("input",{type:"checkbox",checked:t.renderTrackedChanges,onChange:g=>m({renderTrackedChanges:g.target.checked})}),e.jsx("span",{children:"Show tracked changes"})]}),t.renderTrackedChanges&&e.jsxs("div",{className:"rdv-settings-subsection",children:[e.jsxs("label",{className:"rdv-settings-checkbox",children:[e.jsx("input",{type:"checkbox",checked:t.showDeletedContent,onChange:g=>m({showDeletedContent:g.target.checked})}),e.jsx("span",{children:"Show deleted content"})]}),e.jsxs("label",{className:"rdv-settings-checkbox",children:[e.jsx("input",{type:"checkbox",checked:t.renderMoveOperations,onChange:g=>m({renderMoveOperations:g.target.checked})}),e.jsx("span",{children:"Distinguish move operations"})]})]})]})]}),e.jsx("div",{className:"rdv-settings-footer",children:e.jsx("button",{className:"rdv-settings-apply",onClick:()=>{ze(),K(!1)},children:"Apply & Close"})})]})}),Se=E.length>0,Ae=()=>e.jsxs("div",{className:"rdv-toolbar",children:[e.jsxs("div",{className:"rdv-toolbar-left",children:[e.jsx("label",{htmlFor:"rdv-file-input",className:"rdv-toolbar-file-btn",children:ae||"Open Document"}),e.jsx("input",{id:"rdv-file-input",type:"file",accept:".docx",onChange:He,disabled:re,className:"rdv-file-input"}),ae&&e.jsx("button",{className:"rdv-toolbar-btn rdv-toolbar-clear",onClick:we,disabled:re,children:"×"}),J&&Se&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"rdv-toolbar-separator"}),e.jsxs("div",{className:"rdv-view-tabs",children:[e.jsx("button",{className:`rdv-view-tab ${x==="document"?"rdv-view-tab--active":""}`,onClick:()=>Q("document"),title:"View Document",children:"Document"}),e.jsxs("button",{className:`rdv-view-tab ${x==="revisions"?"rdv-view-tab--active":""}`,onClick:()=>Q("revisions"),title:"View Tracked Changes",children:["Changes (",E.length,")"]})]})]}),J&&Ne&&e.jsx("span",{className:"rdv-extracting-indicator",title:"Extracting tracked changes...",children:"..."})]}),e.jsx("div",{className:"rdv-toolbar-center",children:W&&Z>0&&x==="document"&&e.jsxs(e.Fragment,{children:[e.jsx("button",{className:"rdv-toolbar-btn",onClick:Je,disabled:v<=1,title:"Previous Page",children:"◀"}),e.jsxs("div",{className:"rdv-page-input-group",children:[e.jsx("input",{type:"number",className:"rdv-page-input",value:v,min:1,max:Z,onChange:g=>{const c=parseInt(g.target.value);isNaN(c)||q(c)}}),e.jsxs("span",{className:"rdv-page-total",children:["/ ",Z]})]}),e.jsx("button",{className:"rdv-toolbar-btn",onClick:ke,disabled:v>=Z,title:"Next Page",children:"▶"}),e.jsx("div",{className:"rdv-toolbar-separator"}),e.jsx("button",{className:"rdv-toolbar-btn",onClick:xe,disabled:t.paginationScale<=.3,title:"Zoom Out",children:"−"}),e.jsxs("select",{className:"rdv-zoom-select",value:t.paginationScale,onChange:g=>Ye(parseFloat(g.target.value)),children:[e.jsx("option",{value:"0.5",children:"50%"}),e.jsx("option",{value:"0.75",children:"75%"}),e.jsx("option",{value:"0.8",children:"80%"}),e.jsx("option",{value:"0.9",children:"90%"}),e.jsx("option",{value:"1",children:"100%"}),e.jsx("option",{value:"1.25",children:"125%"}),e.jsx("option",{value:"1.5",children:"150%"}),e.jsx("option",{value:"2",children:"200%"})]}),e.jsx("button",{className:"rdv-toolbar-btn",onClick:Fe,disabled:t.paginationScale>=2,title:"Zoom In",children:"+"})]})}),e.jsx("div",{className:"rdv-toolbar-right",children:ve&&e.jsx("button",{className:"rdv-toolbar-btn rdv-toolbar-settings",onClick:()=>K(!0),title:"Settings",children:"⚙"})})]}),Ke=["rdv-viewer",d].filter(Boolean).join(" ");return e.jsxs("div",{className:Ke,style:r,children:[V==="top"&&e.jsx(Ae,{}),e.jsxs("div",{className:"rdv-content",children:[j&&e.jsx("div",{className:"rdv-message rdv-message--error",children:e.jsxs("p",{children:["Failed to initialize: ",j.message]})}),!j&&(F||G)&&e.jsxs("div",{className:"rdv-message",children:[e.jsx("div",{className:"rdv-spinner"}),e.jsx("p",{children:F&&y?"Loading engine & preparing document...":F?"Loading document engine...":"Processing document..."})]}),!F&&!j&&!W&&!G&&!y&&e.jsxs("div",{className:"rdv-message",children:[e.jsx("div",{className:"rdv-message__icon",children:"📄"}),e.jsx("p",{children:Ve})]}),Ce&&!G&&e.jsx("div",{className:"rdv-message rdv-message--error",children:e.jsxs("p",{children:["Error: ",Ce.message]})}),W&&!G&&x==="document"&&e.jsx("div",{ref:_,className:"rdv-pages",children:e.jsx(ue.PaginatedDocument,{html:W,scale:t.paginationScale,showPageNumbers:t.showPageNumbers,pageGap:20,backgroundColor:"#525659",className:"rdv-paginated-document",onPaginationComplete:g=>{T(g.totalPages)},onPageVisible:fe})}),W&&!G&&x==="revisions"&&e.jsx(Oe,{revisions:E})]}),V==="bottom"&&e.jsx(Ae,{}),Re&&e.jsx(je,{})]})}Object.defineProperty(exports,"RevisionType",{enumerable:!0,get:()=>C.RevisionType});Object.defineProperty(exports,"isDeletion",{enumerable:!0,get:()=>C.isDeletion});Object.defineProperty(exports,"isFormatChange",{enumerable:!0,get:()=>C.isFormatChange});Object.defineProperty(exports,"isInsertion",{enumerable:!0,get:()=>C.isInsertion});Object.defineProperty(exports,"isMove",{enumerable:!0,get:()=>C.isMove});exports.DEFAULT_SETTINGS=he;exports.DocumentViewer=_e;exports.isWorkerSupported=Ze;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),I=require("react"),ie=require("docxodus/react"),i=require("docxodus");var Ce=typeof document<"u"?document.currentScript:null;function H(){return`${Date.now()}-${Math.random().toString(36).slice(2,11)}`}async function w(g){if(g instanceof Uint8Array)return g;const C=await g.arrayBuffer();return new Uint8Array(C)}function $e(){if(typeof document<"u"){const g=document.querySelectorAll('script[src*="docxodus"]');if(g.length>0){const C=g[0].src;return C.substring(0,C.lastIndexOf("/")+1)+"wasm/"}}return"/wasm/"}async function qe(g){const C=g?.wasmBasePath??$e(),y=new URL("data:text/javascript;base64,Ly8gc3JjL2RvY3hvZHVzLndvcmtlci50cwp2YXIgd2FzbUV4cG9ydHMgPSBudWxsOwp2YXIgaW5pdFByb21pc2UgPSBudWxsOwphc3luYyBmdW5jdGlvbiBpbml0aWFsaXplV2FzbShiYXNlUGF0aCkgewogIGlmICh3YXNtRXhwb3J0cykgewogICAgcmV0dXJuOwogIH0KICBpZiAoaW5pdFByb21pc2UpIHsKICAgIHJldHVybiBpbml0UHJvbWlzZTsKICB9CiAgaW5pdFByb21pc2UgPSAoYXN5bmMgKCkgPT4gewogICAgdHJ5IHsKICAgICAgY29uc3Qgbm9ybWFsaXplZFBhdGggPSBiYXNlUGF0aC5lbmRzV2l0aCgiLyIpID8gYmFzZVBhdGggOiBiYXNlUGF0aCArICIvIjsKICAgICAgY29uc3QgZG90bmV0TW9kdWxlID0gYXdhaXQgaW1wb3J0KAogICAgICAgIC8qIHdlYnBhY2tJZ25vcmU6IHRydWUgKi8KICAgICAgICBgJHtub3JtYWxpemVkUGF0aH1fZnJhbWV3b3JrL2RvdG5ldC5qc2AKICAgICAgKTsKICAgICAgY29uc3QgeyBnZXRBc3NlbWJseUV4cG9ydHMsIGdldENvbmZpZyB9ID0gYXdhaXQgZG90bmV0TW9kdWxlLmRvdG5ldC53aXRoRGlhZ25vc3RpY1RyYWNpbmcoZmFsc2UpLmNyZWF0ZSgpOwogICAgICBjb25zdCBjb25maWcgPSBnZXRDb25maWcoKTsKICAgICAgY29uc3QgZXhwb3J0cyA9IGF3YWl0IGdldEFzc2VtYmx5RXhwb3J0cyhjb25maWcubWFpbkFzc2VtYmx5TmFtZSk7CiAgICAgIHdhc21FeHBvcnRzID0gewogICAgICAgIERvY3VtZW50Q29udmVydGVyOiBleHBvcnRzLkRvY3hvZHVzV2FzbS5Eb2N1bWVudENvbnZlcnRlciwKICAgICAgICBEb2N1bWVudENvbXBhcmVyOiBleHBvcnRzLkRvY3hvZHVzV2FzbS5Eb2N1bWVudENvbXBhcmVyCiAgICAgIH07CiAgICB9IGNhdGNoIChlcnJvcikgewogICAgICBpbml0UHJvbWlzZSA9IG51bGw7CiAgICAgIHRocm93IGVycm9yOwogICAgfQogIH0pKCk7CiAgcmV0dXJuIGluaXRQcm9taXNlOwp9CmZ1bmN0aW9uIGVuc3VyZUluaXRpYWxpemVkKCkgewogIGlmICghd2FzbUV4cG9ydHMpIHsKICAgIHRocm93IG5ldyBFcnJvcigiV29ya2VyIG5vdCBpbml0aWFsaXplZC4gQ2FsbCBpbml0IGZpcnN0LiIpOwogIH0KICByZXR1cm4gd2FzbUV4cG9ydHM7Cn0KZnVuY3Rpb24gaXNFcnJvclJlc3BvbnNlKHJlc3VsdCkgewogIHJldHVybiByZXN1bHQuc3RhcnRzV2l0aCgieyIpICYmIHJlc3VsdC5pbmNsdWRlcygnIkVycm9yIicpOwp9CmZ1bmN0aW9uIHBhcnNlRXJyb3IocmVzdWx0KSB7CiAgdHJ5IHsKICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UocmVzdWx0KTsKICAgIHJldHVybiB7IGVycm9yOiBwYXJzZWQuRXJyb3IgfHwgcGFyc2VkLmVycm9yIHx8ICJVbmtub3duIGVycm9yIiB9OwogIH0gY2F0Y2ggewogICAgcmV0dXJuIHsgZXJyb3I6IHJlc3VsdCB9OwogIH0KfQpmdW5jdGlvbiBoYW5kbGVDb252ZXJ0KHJlcXVlc3QpIHsKICBjb25zdCBleHBvcnRzID0gZW5zdXJlSW5pdGlhbGl6ZWQoKTsKICBjb25zdCBvcHRpb25zID0gcmVxdWVzdC5vcHRpb25zOwogIHRyeSB7CiAgICBsZXQgcmVzdWx0OwogICAgY29uc3QgbmVlZHNDb21wbGV0ZU1ldGhvZCA9IG9wdGlvbnM/LnJlbmRlckZvb3Rub3Rlc0FuZEVuZG5vdGVzICE9PSB2b2lkIDAgfHwgb3B0aW9ucz8ucmVuZGVySGVhZGVyc0FuZEZvb3RlcnMgIT09IHZvaWQgMCB8fCBvcHRpb25zPy5yZW5kZXJUcmFja2VkQ2hhbmdlcyAhPT0gdm9pZCAwIHx8IG9wdGlvbnM/LnNob3dEZWxldGVkQ29udGVudCAhPT0gdm9pZCAwIHx8IG9wdGlvbnM/LnJlbmRlck1vdmVPcGVyYXRpb25zICE9PSB2b2lkIDA7CiAgICBpZiAobmVlZHNDb21wbGV0ZU1ldGhvZCB8fCBvcHRpb25zPy5yZW5kZXJBbm5vdGF0aW9ucykgewogICAgICByZXN1bHQgPSBleHBvcnRzLkRvY3VtZW50Q29udmVydGVyLkNvbnZlcnREb2N4VG9IdG1sQ29tcGxldGUoCiAgICAgICAgcmVxdWVzdC5kb2N1bWVudEJ5dGVzLAogICAgICAgIG9wdGlvbnM/LnBhZ2VUaXRsZSA/PyAiRG9jdW1lbnQiLAogICAgICAgIG9wdGlvbnM/LmNzc1ByZWZpeCA/PyAiZG9jeC0iLAogICAgICAgIG9wdGlvbnM/LmZhYnJpY2F0ZUNsYXNzZXMgPz8gdHJ1ZSwKICAgICAgICBvcHRpb25zPy5hZGRpdGlvbmFsQ3NzID8/ICIiLAogICAgICAgIG9wdGlvbnM/LmNvbW1lbnRSZW5kZXJNb2RlID8/IC0xLAogICAgICAgIG9wdGlvbnM/LmNvbW1lbnRDc3NDbGFzc1ByZWZpeCA/PyAiY29tbWVudC0iLAogICAgICAgIG9wdGlvbnM/LnBhZ2luYXRpb25Nb2RlID8/IDAsCiAgICAgICAgb3B0aW9ucz8ucGFnaW5hdGlvblNjYWxlID8/IDEsCiAgICAgICAgb3B0aW9ucz8ucGFnaW5hdGlvbkNzc0NsYXNzUHJlZml4ID8/ICJwYWdlLSIsCiAgICAgICAgb3B0aW9ucz8ucmVuZGVyQW5ub3RhdGlvbnMgPz8gZmFsc2UsCiAgICAgICAgb3B0aW9ucz8uYW5ub3RhdGlvbkxhYmVsTW9kZSA/PyAwLAogICAgICAgIG9wdGlvbnM/LmFubm90YXRpb25Dc3NDbGFzc1ByZWZpeCA/PyAiYW5ub3QtIiwKICAgICAgICBvcHRpb25zPy5yZW5kZXJGb290bm90ZXNBbmRFbmRub3RlcyA/PyBmYWxzZSwKICAgICAgICBvcHRpb25zPy5yZW5kZXJIZWFkZXJzQW5kRm9vdGVycyA/PyBmYWxzZSwKICAgICAgICBvcHRpb25zPy5yZW5kZXJUcmFja2VkQ2hhbmdlcyA/PyBmYWxzZSwKICAgICAgICBvcHRpb25zPy5zaG93RGVsZXRlZENvbnRlbnQgPz8gdHJ1ZSwKICAgICAgICBvcHRpb25zPy5yZW5kZXJNb3ZlT3BlcmF0aW9ucyA/PyB0cnVlCiAgICAgICk7CiAgICB9IGVsc2UgaWYgKG9wdGlvbnM/LnBhZ2luYXRpb25Nb2RlICE9PSB2b2lkIDAgJiYgb3B0aW9ucy5wYWdpbmF0aW9uTW9kZSAhPT0gMCkgewogICAgICByZXN1bHQgPSBleHBvcnRzLkRvY3VtZW50Q29udmVydGVyLkNvbnZlcnREb2N4VG9IdG1sV2l0aFBhZ2luYXRpb24oCiAgICAgICAgcmVxdWVzdC5kb2N1bWVudEJ5dGVzLAogICAgICAgIG9wdGlvbnMucGFnZVRpdGxlID8/ICJEb2N1bWVudCIsCiAgICAgICAgb3B0aW9ucy5jc3NQcmVmaXggPz8gImRvY3gtIiwKICAgICAgICBvcHRpb25zLmZhYnJpY2F0ZUNsYXNzZXMgPz8gdHJ1ZSwKICAgICAgICBvcHRpb25zLmFkZGl0aW9uYWxDc3MgPz8gIiIsCiAgICAgICAgb3B0aW9ucy5jb21tZW50UmVuZGVyTW9kZSA/PyAtMSwKICAgICAgICBvcHRpb25zLmNvbW1lbnRDc3NDbGFzc1ByZWZpeCA/PyAiY29tbWVudC0iLAogICAgICAgIG9wdGlvbnMucGFnaW5hdGlvbk1vZGUsCiAgICAgICAgb3B0aW9ucy5wYWdpbmF0aW9uU2NhbGUgPz8gMSwKICAgICAgICBvcHRpb25zLnBhZ2luYXRpb25Dc3NDbGFzc1ByZWZpeCA/PyAicGFnZS0iCiAgICAgICk7CiAgICB9IGVsc2UgaWYgKG9wdGlvbnMpIHsKICAgICAgcmVzdWx0ID0gZXhwb3J0cy5Eb2N1bWVudENvbnZlcnRlci5Db252ZXJ0RG9jeFRvSHRtbFdpdGhPcHRpb25zKAogICAgICAgIHJlcXVlc3QuZG9jdW1lbnRCeXRlcywKICAgICAgICBvcHRpb25zLnBhZ2VUaXRsZSA/PyAiRG9jdW1lbnQiLAogICAgICAgIG9wdGlvbnMuY3NzUHJlZml4ID8/ICJkb2N4LSIsCiAgICAgICAgb3B0aW9ucy5mYWJyaWNhdGVDbGFzc2VzID8/IHRydWUsCiAgICAgICAgb3B0aW9ucy5hZGRpdGlvbmFsQ3NzID8/ICIiLAogICAgICAgIG9wdGlvbnMuY29tbWVudFJlbmRlck1vZGUgPz8gLTEsCiAgICAgICAgb3B0aW9ucy5jb21tZW50Q3NzQ2xhc3NQcmVmaXggPz8gImNvbW1lbnQtIgogICAgICApOwogICAgfSBlbHNlIHsKICAgICAgcmVzdWx0ID0gZXhwb3J0cy5Eb2N1bWVudENvbnZlcnRlci5Db252ZXJ0RG9jeFRvSHRtbCgKICAgICAgICByZXF1ZXN0LmRvY3VtZW50Qnl0ZXMKICAgICAgKTsKICAgIH0KICAgIGlmIChpc0Vycm9yUmVzcG9uc2UocmVzdWx0KSkgewogICAgICByZXR1cm4gcGFyc2VFcnJvcihyZXN1bHQpOwogICAgfQogICAgcmV0dXJuIHsgaHRtbDogcmVzdWx0IH07CiAgfSBjYXRjaCAoZXJyb3IpIHsKICAgIHJldHVybiB7IGVycm9yOiBTdHJpbmcoZXJyb3IpIH07CiAgfQp9CmZ1bmN0aW9uIGhhbmRsZUNvbXBhcmUocmVxdWVzdCkgewogIGNvbnN0IGV4cG9ydHMgPSBlbnN1cmVJbml0aWFsaXplZCgpOwogIGNvbnN0IG9wdGlvbnMgPSByZXF1ZXN0Lm9wdGlvbnM7CiAgdHJ5IHsKICAgIGxldCByZXN1bHQ7CiAgICBpZiAob3B0aW9ucz8uZGV0YWlsVGhyZXNob2xkICE9PSB2b2lkIDAgfHwgb3B0aW9ucz8uY2FzZUluc2Vuc2l0aXZlKSB7CiAgICAgIHJlc3VsdCA9IGV4cG9ydHMuRG9jdW1lbnRDb21wYXJlci5Db21wYXJlRG9jdW1lbnRzV2l0aE9wdGlvbnMoCiAgICAgICAgcmVxdWVzdC5vcmlnaW5hbEJ5dGVzLAogICAgICAgIHJlcXVlc3QubW9kaWZpZWRCeXRlcywKICAgICAgICBvcHRpb25zPy5hdXRob3JOYW1lID8/ICJEb2N4b2R1cyIsCiAgICAgICAgb3B0aW9ucz8uZGV0YWlsVGhyZXNob2xkID8/IDAuMTUsCiAgICAgICAgb3B0aW9ucz8uY2FzZUluc2Vuc2l0aXZlID8/IGZhbHNlCiAgICAgICk7CiAgICB9IGVsc2UgewogICAgICByZXN1bHQgPSBleHBvcnRzLkRvY3VtZW50Q29tcGFyZXIuQ29tcGFyZURvY3VtZW50cygKICAgICAgICByZXF1ZXN0Lm9yaWdpbmFsQnl0ZXMsCiAgICAgICAgcmVxdWVzdC5tb2RpZmllZEJ5dGVzLAogICAgICAgIG9wdGlvbnM/LmF1dGhvck5hbWUgPz8gIkRvY3hvZHVzIgogICAgICApOwogICAgfQogICAgaWYgKHJlc3VsdC5sZW5ndGggPT09IDApIHsKICAgICAgcmV0dXJuIHsgZXJyb3I6ICJDb21wYXJpc29uIHJldHVybmVkIGVtcHR5IHJlc3VsdCIgfTsKICAgIH0KICAgIHJldHVybiB7IGRvY3VtZW50Qnl0ZXM6IHJlc3VsdCB9OwogIH0gY2F0Y2ggKGVycm9yKSB7CiAgICByZXR1cm4geyBlcnJvcjogU3RyaW5nKGVycm9yKSB9OwogIH0KfQpmdW5jdGlvbiBoYW5kbGVDb21wYXJlVG9IdG1sKHJlcXVlc3QpIHsKICBjb25zdCBleHBvcnRzID0gZW5zdXJlSW5pdGlhbGl6ZWQoKTsKICBjb25zdCBvcHRpb25zID0gcmVxdWVzdC5vcHRpb25zOwogIHRyeSB7CiAgICBjb25zdCByZW5kZXJUcmFja2VkQ2hhbmdlcyA9IG9wdGlvbnM/LnJlbmRlclRyYWNrZWRDaGFuZ2VzID8/IHRydWU7CiAgICBjb25zdCByZXN1bHQgPSBleHBvcnRzLkRvY3VtZW50Q29tcGFyZXIuQ29tcGFyZURvY3VtZW50c1RvSHRtbFdpdGhPcHRpb25zKAogICAgICByZXF1ZXN0Lm9yaWdpbmFsQnl0ZXMsCiAgICAgIHJlcXVlc3QubW9kaWZpZWRCeXRlcywKICAgICAgb3B0aW9ucz8uYXV0aG9yTmFtZSA/PyAiRG9jeG9kdXMiLAogICAgICByZW5kZXJUcmFja2VkQ2hhbmdlcwogICAgKTsKICAgIGlmIChpc0Vycm9yUmVzcG9uc2UocmVzdWx0KSkgewogICAgICByZXR1cm4gcGFyc2VFcnJvcihyZXN1bHQpOwogICAgfQogICAgcmV0dXJuIHsgaHRtbDogcmVzdWx0IH07CiAgfSBjYXRjaCAoZXJyb3IpIHsKICAgIHJldHVybiB7IGVycm9yOiBTdHJpbmcoZXJyb3IpIH07CiAgfQp9CmZ1bmN0aW9uIGhhbmRsZUdldFJldmlzaW9ucyhyZXF1ZXN0KSB7CiAgY29uc3QgZXhwb3J0cyA9IGVuc3VyZUluaXRpYWxpemVkKCk7CiAgY29uc3Qgb3B0aW9ucyA9IHJlcXVlc3Qub3B0aW9uczsKICB0cnkgewogICAgY29uc3QgZGV0ZWN0TW92ZXMgPSBvcHRpb25zPy5kZXRlY3RNb3ZlcyA/PyB0cnVlOwogICAgY29uc3QgbW92ZVNpbWlsYXJpdHlUaHJlc2hvbGQgPSBvcHRpb25zPy5tb3ZlU2ltaWxhcml0eVRocmVzaG9sZCA/PyAwLjg7CiAgICBjb25zdCBtb3ZlTWluaW11bVdvcmRDb3VudCA9IG9wdGlvbnM/Lm1vdmVNaW5pbXVtV29yZENvdW50ID8/IDM7CiAgICBjb25zdCBjYXNlSW5zZW5zaXRpdmUgPSBvcHRpb25zPy5jYXNlSW5zZW5zaXRpdmUgPz8gZmFsc2U7CiAgICBjb25zdCByZXN1bHQgPSBleHBvcnRzLkRvY3VtZW50Q29tcGFyZXIuR2V0UmV2aXNpb25zSnNvbldpdGhPcHRpb25zKAogICAgICByZXF1ZXN0LmRvY3VtZW50Qnl0ZXMsCiAgICAgIGRldGVjdE1vdmVzLAogICAgICBtb3ZlU2ltaWxhcml0eVRocmVzaG9sZCwKICAgICAgbW92ZU1pbmltdW1Xb3JkQ291bnQsCiAgICAgIGNhc2VJbnNlbnNpdGl2ZQogICAgKTsKICAgIGlmIChpc0Vycm9yUmVzcG9uc2UocmVzdWx0KSkgewogICAgICByZXR1cm4gcGFyc2VFcnJvcihyZXN1bHQpOwogICAgfQogICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZShyZXN1bHQpOwogICAgY29uc3QgcmV2aXNpb25zID0gKHBhcnNlZC5SZXZpc2lvbnMgfHwgcGFyc2VkLnJldmlzaW9ucyB8fCBbXSkubWFwKAogICAgICAocikgPT4gKHsKICAgICAgICBhdXRob3I6IHIuQXV0aG9yIHx8IHIuYXV0aG9yLAogICAgICAgIGRhdGU6IHIuRGF0ZSB8fCByLmRhdGUsCiAgICAgICAgcmV2aXNpb25UeXBlOiByLlJldmlzaW9uVHlwZSB8fCByLnJldmlzaW9uVHlwZSwKICAgICAgICB0ZXh0OiByLlRleHQgfHwgci50ZXh0LAogICAgICAgIG1vdmVHcm91cElkOiByLk1vdmVHcm91cElkID8/IHIubW92ZUdyb3VwSWQsCiAgICAgICAgaXNNb3ZlU291cmNlOiByLklzTW92ZVNvdXJjZSA/PyByLmlzTW92ZVNvdXJjZSwKICAgICAgICBmb3JtYXRDaGFuZ2U6IHIuRm9ybWF0Q2hhbmdlIHx8IHIuZm9ybWF0Q2hhbmdlID8gewogICAgICAgICAgb2xkUHJvcGVydGllczogci5Gb3JtYXRDaGFuZ2U/Lk9sZFByb3BlcnRpZXMgfHwgci5mb3JtYXRDaGFuZ2U/Lm9sZFByb3BlcnRpZXMsCiAgICAgICAgICBuZXdQcm9wZXJ0aWVzOiByLkZvcm1hdENoYW5nZT8uTmV3UHJvcGVydGllcyB8fCByLmZvcm1hdENoYW5nZT8ubmV3UHJvcGVydGllcywKICAgICAgICAgIGNoYW5nZWRQcm9wZXJ0eU5hbWVzOiByLkZvcm1hdENoYW5nZT8uQ2hhbmdlZFByb3BlcnR5TmFtZXMgfHwgci5mb3JtYXRDaGFuZ2U/LmNoYW5nZWRQcm9wZXJ0eU5hbWVzCiAgICAgICAgfSA6IHZvaWQgMAogICAgICB9KQogICAgKTsKICAgIHJldHVybiB7IHJldmlzaW9ucyB9OwogIH0gY2F0Y2ggKGVycm9yKSB7CiAgICByZXR1cm4geyBlcnJvcjogU3RyaW5nKGVycm9yKSB9OwogIH0KfQpmdW5jdGlvbiBoYW5kbGVHZXREb2N1bWVudE1ldGFkYXRhKHJlcXVlc3QpIHsKICBjb25zdCBleHBvcnRzID0gZW5zdXJlSW5pdGlhbGl6ZWQoKTsKICB0cnkgewogICAgY29uc3QgcmVzdWx0ID0gZXhwb3J0cy5Eb2N1bWVudENvbnZlcnRlci5HZXREb2N1bWVudE1ldGFkYXRhKAogICAgICByZXF1ZXN0LmRvY3VtZW50Qnl0ZXMKICAgICk7CiAgICBpZiAoaXNFcnJvclJlc3BvbnNlKHJlc3VsdCkpIHsKICAgICAgcmV0dXJuIHBhcnNlRXJyb3IocmVzdWx0KTsKICAgIH0KICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UocmVzdWx0KTsKICAgIGNvbnN0IGNvbnZlcnRTZWN0aW9uID0gKHMpID0+ICh7CiAgICAgIHNlY3Rpb25JbmRleDogcy5TZWN0aW9uSW5kZXggPz8gcy5zZWN0aW9uSW5kZXgsCiAgICAgIHBhZ2VXaWR0aFB0OiBzLlBhZ2VXaWR0aFB0ID8/IHMucGFnZVdpZHRoUHQsCiAgICAgIHBhZ2VIZWlnaHRQdDogcy5QYWdlSGVpZ2h0UHQgPz8gcy5wYWdlSGVpZ2h0UHQsCiAgICAgIG1hcmdpblRvcFB0OiBzLk1hcmdpblRvcFB0ID8/IHMubWFyZ2luVG9wUHQsCiAgICAgIG1hcmdpblJpZ2h0UHQ6IHMuTWFyZ2luUmlnaHRQdCA/PyBzLm1hcmdpblJpZ2h0UHQsCiAgICAgIG1hcmdpbkJvdHRvbVB0OiBzLk1hcmdpbkJvdHRvbVB0ID8/IHMubWFyZ2luQm90dG9tUHQsCiAgICAgIG1hcmdpbkxlZnRQdDogcy5NYXJnaW5MZWZ0UHQgPz8gcy5tYXJnaW5MZWZ0UHQsCiAgICAgIGNvbnRlbnRXaWR0aFB0OiBzLkNvbnRlbnRXaWR0aFB0ID8/IHMuY29udGVudFdpZHRoUHQsCiAgICAgIGNvbnRlbnRIZWlnaHRQdDogcy5Db250ZW50SGVpZ2h0UHQgPz8gcy5jb250ZW50SGVpZ2h0UHQsCiAgICAgIGhlYWRlclB0OiBzLkhlYWRlclB0ID8/IHMuaGVhZGVyUHQsCiAgICAgIGZvb3RlclB0OiBzLkZvb3RlclB0ID8/IHMuZm9vdGVyUHQsCiAgICAgIHBhcmFncmFwaENvdW50OiBzLlBhcmFncmFwaENvdW50ID8/IHMucGFyYWdyYXBoQ291bnQsCiAgICAgIHRhYmxlQ291bnQ6IHMuVGFibGVDb3VudCA/PyBzLnRhYmxlQ291bnQsCiAgICAgIGhhc0hlYWRlcjogcy5IYXNIZWFkZXIgPz8gcy5oYXNIZWFkZXIsCiAgICAgIGhhc0Zvb3Rlcjogcy5IYXNGb290ZXIgPz8gcy5oYXNGb290ZXIsCiAgICAgIGhhc0ZpcnN0UGFnZUhlYWRlcjogcy5IYXNGaXJzdFBhZ2VIZWFkZXIgPz8gcy5oYXNGaXJzdFBhZ2VIZWFkZXIsCiAgICAgIGhhc0ZpcnN0UGFnZUZvb3Rlcjogcy5IYXNGaXJzdFBhZ2VGb290ZXIgPz8gcy5oYXNGaXJzdFBhZ2VGb290ZXIsCiAgICAgIGhhc0V2ZW5QYWdlSGVhZGVyOiBzLkhhc0V2ZW5QYWdlSGVhZGVyID8/IHMuaGFzRXZlblBhZ2VIZWFkZXIsCiAgICAgIGhhc0V2ZW5QYWdlRm9vdGVyOiBzLkhhc0V2ZW5QYWdlRm9vdGVyID8/IHMuaGFzRXZlblBhZ2VGb290ZXIsCiAgICAgIHN0YXJ0UGFyYWdyYXBoSW5kZXg6IHMuU3RhcnRQYXJhZ3JhcGhJbmRleCA/PyBzLnN0YXJ0UGFyYWdyYXBoSW5kZXgsCiAgICAgIGVuZFBhcmFncmFwaEluZGV4OiBzLkVuZFBhcmFncmFwaEluZGV4ID8/IHMuZW5kUGFyYWdyYXBoSW5kZXgsCiAgICAgIHN0YXJ0VGFibGVJbmRleDogcy5TdGFydFRhYmxlSW5kZXggPz8gcy5zdGFydFRhYmxlSW5kZXgsCiAgICAgIGVuZFRhYmxlSW5kZXg6IHMuRW5kVGFibGVJbmRleCA/PyBzLmVuZFRhYmxlSW5kZXgKICAgIH0pOwogICAgY29uc3QgbWV0YWRhdGEgPSB7CiAgICAgIHNlY3Rpb25zOiAocGFyc2VkLlNlY3Rpb25zIHx8IHBhcnNlZC5zZWN0aW9ucyB8fCBbXSkubWFwKGNvbnZlcnRTZWN0aW9uKSwKICAgICAgdG90YWxQYXJhZ3JhcGhzOiBwYXJzZWQuVG90YWxQYXJhZ3JhcGhzID8/IHBhcnNlZC50b3RhbFBhcmFncmFwaHMsCiAgICAgIHRvdGFsVGFibGVzOiBwYXJzZWQuVG90YWxUYWJsZXMgPz8gcGFyc2VkLnRvdGFsVGFibGVzLAogICAgICBoYXNGb290bm90ZXM6IHBhcnNlZC5IYXNGb290bm90ZXMgPz8gcGFyc2VkLmhhc0Zvb3Rub3RlcywKICAgICAgaGFzRW5kbm90ZXM6IHBhcnNlZC5IYXNFbmRub3RlcyA/PyBwYXJzZWQuaGFzRW5kbm90ZXMsCiAgICAgIGhhc1RyYWNrZWRDaGFuZ2VzOiBwYXJzZWQuSGFzVHJhY2tlZENoYW5nZXMgPz8gcGFyc2VkLmhhc1RyYWNrZWRDaGFuZ2VzLAogICAgICBoYXNDb21tZW50czogcGFyc2VkLkhhc0NvbW1lbnRzID8/IHBhcnNlZC5oYXNDb21tZW50cywKICAgICAgZXN0aW1hdGVkUGFnZUNvdW50OiBwYXJzZWQuRXN0aW1hdGVkUGFnZUNvdW50ID8/IHBhcnNlZC5lc3RpbWF0ZWRQYWdlQ291bnQKICAgIH07CiAgICByZXR1cm4geyBtZXRhZGF0YSB9OwogIH0gY2F0Y2ggKGVycm9yKSB7CiAgICByZXR1cm4geyBlcnJvcjogU3RyaW5nKGVycm9yKSB9OwogIH0KfQpmdW5jdGlvbiBoYW5kbGVSZW5kZXJQYWdlUmFuZ2UocmVxdWVzdCkgewogIGNvbnN0IGV4cG9ydHMgPSBlbnN1cmVJbml0aWFsaXplZCgpOwogIGNvbnN0IG9wdGlvbnMgPSByZXF1ZXN0Lm9wdGlvbnM7CiAgdHJ5IHsKICAgIGxldCByZXN1bHQ7CiAgICBjb25zdCBuZWVkc0Z1bGxNZXRob2QgPSBvcHRpb25zPy5yZW5kZXJUcmFja2VkQ2hhbmdlcyAhPT0gdm9pZCAwIHx8IG9wdGlvbnM/LnNob3dEZWxldGVkQ29udGVudCAhPT0gdm9pZCAwIHx8IG9wdGlvbnM/LnJlbmRlckNvbW1lbnRzICE9PSB2b2lkIDAgfHwgb3B0aW9ucz8uYWRkaXRpb25hbENzcyAhPT0gdm9pZCAwOwogICAgaWYgKG5lZWRzRnVsbE1ldGhvZCkgewogICAgICByZXN1bHQgPSBleHBvcnRzLkRvY3VtZW50Q29udmVydGVyLlJlbmRlclBhZ2VSYW5nZUZ1bGwoCiAgICAgICAgcmVxdWVzdC5kb2N1bWVudEJ5dGVzLAogICAgICAgIHJlcXVlc3Quc3RhcnRQYWdlLAogICAgICAgIHJlcXVlc3QuZW5kUGFnZSwKICAgICAgICBvcHRpb25zPy5wYWdlVGl0bGUgPz8gIkRvY3VtZW50IiwKICAgICAgICBvcHRpb25zPy5jc3NQcmVmaXggPz8gImRvY3gtIiwKICAgICAgICBvcHRpb25zPy5mYWJyaWNhdGVDbGFzc2VzID8/IHRydWUsCiAgICAgICAgb3B0aW9ucz8uYWRkaXRpb25hbENzcyA/PyAiIiwKICAgICAgICBvcHRpb25zPy5wYWdpbmF0aW9uU2NhbGUgPz8gMSwKICAgICAgICBvcHRpb25zPy5wYWdpbmF0aW9uQ3NzQ2xhc3NQcmVmaXggPz8gInBhZ2UtIiwKICAgICAgICBvcHRpb25zPy5yZW5kZXJGb290bm90ZXNBbmRFbmRub3RlcyA/PyBmYWxzZSwKICAgICAgICBvcHRpb25zPy5yZW5kZXJIZWFkZXJzQW5kRm9vdGVycyA/PyBmYWxzZSwKICAgICAgICBvcHRpb25zPy5yZW5kZXJUcmFja2VkQ2hhbmdlcyA/PyBmYWxzZSwKICAgICAgICBvcHRpb25zPy5zaG93RGVsZXRlZENvbnRlbnQgPz8gdHJ1ZSwKICAgICAgICBvcHRpb25zPy5yZW5kZXJDb21tZW50cyA/PyBmYWxzZSwKICAgICAgICBvcHRpb25zPy5jb21tZW50UmVuZGVyTW9kZSA/PyAwCiAgICAgICk7CiAgICB9IGVsc2UgewogICAgICByZXN1bHQgPSBleHBvcnRzLkRvY3VtZW50Q29udmVydGVyLlJlbmRlclBhZ2VSYW5nZSgKICAgICAgICByZXF1ZXN0LmRvY3VtZW50Qnl0ZXMsCiAgICAgICAgcmVxdWVzdC5zdGFydFBhZ2UsCiAgICAgICAgcmVxdWVzdC5lbmRQYWdlLAogICAgICAgIG9wdGlvbnM/LnBhZ2VUaXRsZSA/PyAiRG9jdW1lbnQiLAogICAgICAgIG9wdGlvbnM/LmNzc1ByZWZpeCA/PyAiZG9jeC0iLAogICAgICAgIG9wdGlvbnM/LmZhYnJpY2F0ZUNsYXNzZXMgPz8gdHJ1ZSwKICAgICAgICBvcHRpb25zPy5wYWdpbmF0aW9uU2NhbGUgPz8gMSwKICAgICAgICBvcHRpb25zPy5wYWdpbmF0aW9uQ3NzQ2xhc3NQcmVmaXggPz8gInBhZ2UtIiwKICAgICAgICBvcHRpb25zPy5yZW5kZXJGb290bm90ZXNBbmRFbmRub3RlcyA/PyBmYWxzZSwKICAgICAgICBvcHRpb25zPy5yZW5kZXJIZWFkZXJzQW5kRm9vdGVycyA/PyBmYWxzZQogICAgICApOwogICAgfQogICAgaWYgKGlzRXJyb3JSZXNwb25zZShyZXN1bHQpKSB7CiAgICAgIHJldHVybiBwYXJzZUVycm9yKHJlc3VsdCk7CiAgICB9CiAgICByZXR1cm4geyBodG1sOiByZXN1bHQgfTsKICB9IGNhdGNoIChlcnJvcikgewogICAgcmV0dXJuIHsgZXJyb3I6IFN0cmluZyhlcnJvcikgfTsKICB9Cn0KZnVuY3Rpb24gaGFuZGxlR2V0VmVyc2lvbigpIHsKICBjb25zdCBleHBvcnRzID0gZW5zdXJlSW5pdGlhbGl6ZWQoKTsKICB0cnkgewogICAgY29uc3QgcmVzdWx0ID0gZXhwb3J0cy5Eb2N1bWVudENvbnZlcnRlci5HZXRWZXJzaW9uKCk7CiAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKHJlc3VsdCk7CiAgICByZXR1cm4gewogICAgICB2ZXJzaW9uOiB7CiAgICAgICAgbGlicmFyeTogcGFyc2VkLkxpYnJhcnkgfHwgcGFyc2VkLmxpYnJhcnksCiAgICAgICAgZG90bmV0VmVyc2lvbjogcGFyc2VkLkRvdG5ldFZlcnNpb24gfHwgcGFyc2VkLmRvdG5ldFZlcnNpb24sCiAgICAgICAgcGxhdGZvcm06IHBhcnNlZC5QbGF0Zm9ybSB8fCBwYXJzZWQucGxhdGZvcm0KICAgICAgfQogICAgfTsKICB9IGNhdGNoIChlcnJvcikgewogICAgcmV0dXJuIHsgZXJyb3I6IFN0cmluZyhlcnJvcikgfTsKICB9Cn0Kc2VsZi5vbm1lc3NhZ2UgPSBhc3luYyAoZXZlbnQpID0+IHsKICBjb25zdCByZXF1ZXN0ID0gZXZlbnQuZGF0YTsKICB0cnkgewogICAgbGV0IHJlc3BvbnNlOwogICAgc3dpdGNoIChyZXF1ZXN0LnR5cGUpIHsKICAgICAgY2FzZSAiaW5pdCI6IHsKICAgICAgICBjb25zdCBpbml0UmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGF3YWl0IGluaXRpYWxpemVXYXNtKGluaXRSZXF1ZXN0Lndhc21CYXNlUGF0aCk7CiAgICAgICAgICByZXNwb25zZSA9IHsKICAgICAgICAgICAgaWQ6IHJlcXVlc3QuaWQsCiAgICAgICAgICAgIHR5cGU6ICJpbml0IiwKICAgICAgICAgICAgc3VjY2VzczogdHJ1ZQogICAgICAgICAgfTsKICAgICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgICAgcmVzcG9uc2UgPSB7CiAgICAgICAgICAgIGlkOiByZXF1ZXN0LmlkLAogICAgICAgICAgICB0eXBlOiAiaW5pdCIsCiAgICAgICAgICAgIHN1Y2Nlc3M6IGZhbHNlLAogICAgICAgICAgICBlcnJvcjogU3RyaW5nKGVycm9yKQogICAgICAgICAgfTsKICAgICAgICB9CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgICAgY2FzZSAiY29udmVydERvY3hUb0h0bWwiOiB7CiAgICAgICAgY29uc3QgY29udmVydFJlcXVlc3QgPSByZXF1ZXN0OwogICAgICAgIGNvbnN0IHJlc3VsdCA9IGhhbmRsZUNvbnZlcnQoY29udmVydFJlcXVlc3QpOwogICAgICAgIHJlc3BvbnNlID0gewogICAgICAgICAgaWQ6IHJlcXVlc3QuaWQsCiAgICAgICAgICB0eXBlOiAiY29udmVydERvY3hUb0h0bWwiLAogICAgICAgICAgc3VjY2VzczogIXJlc3VsdC5lcnJvciwKICAgICAgICAgIGh0bWw6IHJlc3VsdC5odG1sLAogICAgICAgICAgZXJyb3I6IHJlc3VsdC5lcnJvcgogICAgICAgIH07CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgICAgY2FzZSAiY29tcGFyZURvY3VtZW50cyI6IHsKICAgICAgICBjb25zdCBjb21wYXJlUmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgICAgY29uc3QgcmVzdWx0ID0gaGFuZGxlQ29tcGFyZShjb21wYXJlUmVxdWVzdCk7CiAgICAgICAgcmVzcG9uc2UgPSB7CiAgICAgICAgICBpZDogcmVxdWVzdC5pZCwKICAgICAgICAgIHR5cGU6ICJjb21wYXJlRG9jdW1lbnRzIiwKICAgICAgICAgIHN1Y2Nlc3M6ICFyZXN1bHQuZXJyb3IsCiAgICAgICAgICBkb2N1bWVudEJ5dGVzOiByZXN1bHQuZG9jdW1lbnRCeXRlcywKICAgICAgICAgIGVycm9yOiByZXN1bHQuZXJyb3IKICAgICAgICB9OwogICAgICAgIGlmIChyZXN1bHQuZG9jdW1lbnRCeXRlcykgewogICAgICAgICAgc2VsZi5wb3N0TWVzc2FnZShyZXNwb25zZSwgeyB0cmFuc2ZlcjogW3Jlc3VsdC5kb2N1bWVudEJ5dGVzLmJ1ZmZlcl0gfSk7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGJyZWFrOwogICAgICB9CiAgICAgIGNhc2UgImNvbXBhcmVEb2N1bWVudHNUb0h0bWwiOiB7CiAgICAgICAgY29uc3QgY29tcGFyZVRvSHRtbFJlcXVlc3QgPSByZXF1ZXN0OwogICAgICAgIGNvbnN0IHJlc3VsdCA9IGhhbmRsZUNvbXBhcmVUb0h0bWwoY29tcGFyZVRvSHRtbFJlcXVlc3QpOwogICAgICAgIHJlc3BvbnNlID0gewogICAgICAgICAgaWQ6IHJlcXVlc3QuaWQsCiAgICAgICAgICB0eXBlOiAiY29tcGFyZURvY3VtZW50c1RvSHRtbCIsCiAgICAgICAgICBzdWNjZXNzOiAhcmVzdWx0LmVycm9yLAogICAgICAgICAgaHRtbDogcmVzdWx0Lmh0bWwsCiAgICAgICAgICBlcnJvcjogcmVzdWx0LmVycm9yCiAgICAgICAgfTsKICAgICAgICBicmVhazsKICAgICAgfQogICAgICBjYXNlICJnZXRSZXZpc2lvbnMiOiB7CiAgICAgICAgY29uc3QgZ2V0UmV2aXNpb25zUmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgICAgY29uc3QgcmVzdWx0ID0gaGFuZGxlR2V0UmV2aXNpb25zKGdldFJldmlzaW9uc1JlcXVlc3QpOwogICAgICAgIHJlc3BvbnNlID0gewogICAgICAgICAgaWQ6IHJlcXVlc3QuaWQsCiAgICAgICAgICB0eXBlOiAiZ2V0UmV2aXNpb25zIiwKICAgICAgICAgIHN1Y2Nlc3M6ICFyZXN1bHQuZXJyb3IsCiAgICAgICAgICByZXZpc2lvbnM6IHJlc3VsdC5yZXZpc2lvbnMsCiAgICAgICAgICBlcnJvcjogcmVzdWx0LmVycm9yCiAgICAgICAgfTsKICAgICAgICBicmVhazsKICAgICAgfQogICAgICBjYXNlICJnZXREb2N1bWVudE1ldGFkYXRhIjogewogICAgICAgIGNvbnN0IGdldE1ldGFkYXRhUmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgICAgY29uc3QgcmVzdWx0ID0gaGFuZGxlR2V0RG9jdW1lbnRNZXRhZGF0YShnZXRNZXRhZGF0YVJlcXVlc3QpOwogICAgICAgIHJlc3BvbnNlID0gewogICAgICAgICAgaWQ6IHJlcXVlc3QuaWQsCiAgICAgICAgICB0eXBlOiAiZ2V0RG9jdW1lbnRNZXRhZGF0YSIsCiAgICAgICAgICBzdWNjZXNzOiAhcmVzdWx0LmVycm9yLAogICAgICAgICAgbWV0YWRhdGE6IHJlc3VsdC5tZXRhZGF0YSwKICAgICAgICAgIGVycm9yOiByZXN1bHQuZXJyb3IKICAgICAgICB9OwogICAgICAgIGJyZWFrOwogICAgICB9CiAgICAgIGNhc2UgInJlbmRlclBhZ2VSYW5nZSI6IHsKICAgICAgICBjb25zdCByZW5kZXJSZXF1ZXN0ID0gcmVxdWVzdDsKICAgICAgICBjb25zdCByZXN1bHQgPSBoYW5kbGVSZW5kZXJQYWdlUmFuZ2UocmVuZGVyUmVxdWVzdCk7CiAgICAgICAgcmVzcG9uc2UgPSB7CiAgICAgICAgICBpZDogcmVxdWVzdC5pZCwKICAgICAgICAgIHR5cGU6ICJyZW5kZXJQYWdlUmFuZ2UiLAogICAgICAgICAgc3VjY2VzczogIXJlc3VsdC5lcnJvciwKICAgICAgICAgIGh0bWw6IHJlc3VsdC5odG1sLAogICAgICAgICAgZXJyb3I6IHJlc3VsdC5lcnJvcgogICAgICAgIH07CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgICAgY2FzZSAiZ2V0VmVyc2lvbiI6IHsKICAgICAgICBjb25zdCByZXN1bHQgPSBoYW5kbGVHZXRWZXJzaW9uKCk7CiAgICAgICAgcmVzcG9uc2UgPSB7CiAgICAgICAgICBpZDogcmVxdWVzdC5pZCwKICAgICAgICAgIHR5cGU6ICJnZXRWZXJzaW9uIiwKICAgICAgICAgIHN1Y2Nlc3M6ICFyZXN1bHQuZXJyb3IsCiAgICAgICAgICB2ZXJzaW9uOiByZXN1bHQudmVyc2lvbiwKICAgICAgICAgIGVycm9yOiByZXN1bHQuZXJyb3IKICAgICAgICB9OwogICAgICAgIGJyZWFrOwogICAgICB9CiAgICAgIGRlZmF1bHQ6IHsKICAgICAgICBjb25zdCB1bmtub3duUmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgICAgc2VsZi5wb3N0TWVzc2FnZSh7CiAgICAgICAgICBpZDogdW5rbm93blJlcXVlc3QuaWQsCiAgICAgICAgICB0eXBlOiB1bmtub3duUmVxdWVzdC50eXBlLAogICAgICAgICAgc3VjY2VzczogZmFsc2UsCiAgICAgICAgICBlcnJvcjogYFVua25vd24gcmVxdWVzdCB0eXBlOiAke3Vua25vd25SZXF1ZXN0LnR5cGV9YAogICAgICAgIH0pOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgfQogICAgc2VsZi5wb3N0TWVzc2FnZShyZXNwb25zZSk7CiAgfSBjYXRjaCAoZXJyb3IpIHsKICAgIHNlbGYucG9zdE1lc3NhZ2UoewogICAgICBpZDogcmVxdWVzdC5pZCwKICAgICAgdHlwZTogcmVxdWVzdC50eXBlLAogICAgICBzdWNjZXNzOiBmYWxzZSwKICAgICAgZXJyb3I6IFN0cmluZyhlcnJvcikKICAgIH0pOwogIH0KfTsKc2VsZi5wb3N0TWVzc2FnZSh7IHR5cGU6ICJyZWFkeSIgfSk7Cg==",typeof document>"u"?require("url").pathToFileURL(__filename).href:Ce&&Ce.tagName.toUpperCase()==="SCRIPT"&&Ce.src||new URL("react-docxodus-viewer.cjs.js",document.baseURI).href).href,b=new Worker(y,{type:"module"}),m=new Map;let r=!0;b.onmessage=c=>{const l=c.data;if(l.type==="ready")return;const d=m.get(l.id);d&&(m.delete(l.id),l.success?d.resolve(l):d.reject(new Error(l.error||"Unknown error")))},b.onerror=c=>{for(const l of m.values())l.reject(new Error(`Worker error: ${c.message}`));m.clear(),r=!1};function a(c,l){return new Promise((d,A)=>{if(!r){A(new Error("Worker has been terminated"));return}m.set(c.id,{resolve:d,reject:A}),l&&l.length>0?b.postMessage(c,l):b.postMessage(c)})}const V=await a({id:H(),type:"init",wasmBasePath:C});if(!V.success)throw b.terminate(),new Error(`Failed to initialize worker: ${V.error}`);return{async convertDocxToHtml(c,l){const d=await w(c);return(await a({id:H(),type:"convertDocxToHtml",documentBytes:d,options:l},[d.buffer])).html},async compareDocuments(c,l,d){const A=await w(c),Z=await w(l);return(await a({id:H(),type:"compareDocuments",originalBytes:A,modifiedBytes:Z,options:d},[A.buffer,Z.buffer])).documentBytes},async compareDocumentsToHtml(c,l,d){const A=await w(c),Z=await w(l);return(await a({id:H(),type:"compareDocumentsToHtml",originalBytes:A,modifiedBytes:Z,options:d},[A.buffer,Z.buffer])).html},async getRevisions(c,l){const d=await w(c);return(await a({id:H(),type:"getRevisions",documentBytes:d,options:l},[d.buffer])).revisions},async getDocumentMetadata(c){const l=await w(c);return(await a({id:H(),type:"getDocumentMetadata",documentBytes:l},[l.buffer])).metadata},async renderPageRange(c,l,d,A){const Z=await w(c);return(await a({id:H(),type:"renderPageRange",documentBytes:Z,startPage:l,endPage:d,options:A},[Z.buffer])).html},async getVersion(){return(await a({id:H(),type:"getVersion"})).version},terminate(){r=!1,b.terminate();for(const c of m.values())c.reject(new Error("Worker terminated"));m.clear()},isActive(){return r}}}function Xe(){return typeof Worker<"u"}const Re={paginationScale:.8,showPageNumbers:!0,renderFootnotesAndEndnotes:!0,renderHeadersAndFooters:!0,commentMode:"disabled",annotationMode:"disabled",renderTrackedChanges:!1,showDeletedContent:!0,renderMoveOperations:!0,pageTitle:"Document",cssPrefix:"docx-",fabricateClasses:!0,additionalCss:"",commentCssClassPrefix:"comment-",annotationCssClassPrefix:"annot-"};function en(g){return i.isInsertion(g)?"Inserted":i.isDeletion(g)?"Deleted":i.isMove(g)?g.isMoveSource?"Moved from":"Moved to":i.isFormatChange(g)?"Formatted":String(g.revisionType)}function nn(g){return i.isInsertion(g)?"rdv-revision--insertion":i.isDeletion(g)?"rdv-revision--deletion":i.isMove(g)?"rdv-revision--move":i.isFormatChange(g)?"rdv-revision--format":""}function gn(g){try{return new Date(g).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}catch{return g}}function cn(g,C=150){return g.length<=C?g:g.substring(0,C)+"..."}function de(g){return!(!g||typeof g!="string"||g.includes("<")||g.includes("xmlns")||g.includes("Unid=")||g.length>100)}function Be(g){return g.replace(/([A-Z])/g," $1").replace(/^./,C=>C.toUpperCase()).trim()}function oe(g){return g==="true"?"Yes":g==="false"?"No":g==="single"?"Single":g==="double"?"Double":g}function sn(g){if(!g.formatChange)return[];const{oldProperties:C,newProperties:y}=g.formatChange,b=[],m=new Set;if(C)for(const[r,a]of Object.entries(C)){if(!de(a))continue;m.add(r);const V=y?.[r];b.push({property:Be(r),oldValue:oe(a),newValue:V&&de(V)?oe(V):void 0})}if(y)for(const[r,a]of Object.entries(y))m.has(r)||de(a)&&b.push({property:Be(r),oldValue:void 0,newValue:oe(a)});return b}function tn({revisions:g}){const[C,y]=I.useState("all"),[b,m]=I.useState(new Set),r=I.useMemo(()=>C==="all"?g:g.filter(c=>{switch(C){case"insertions":return i.isInsertion(c);case"deletions":return i.isDeletion(c);case"moves":return i.isMove(c);case"formatting":return i.isFormatChange(c);default:return!0}}),[g,C]),a=I.useMemo(()=>({total:g.length,insertions:g.filter(i.isInsertion).length,deletions:g.filter(i.isDeletion).length,moves:g.filter(i.isMove).length,formatting:g.filter(i.isFormatChange).length}),[g]),V=c=>{m(l=>{const d=new Set(l);return d.has(c)?d.delete(c):d.add(c),d})};return g.length===0?e.jsx("div",{className:"rdv-revision-panel",children:e.jsxs("div",{className:"rdv-revision-empty",children:[e.jsx("div",{className:"rdv-revision-empty__icon",children:"📝"}),e.jsx("p",{children:"No tracked changes found in this document."})]})}):e.jsxs("div",{className:"rdv-revision-panel",children:[e.jsxs("div",{className:"rdv-revision-header",children:[e.jsxs("div",{className:"rdv-revision-stats",children:[e.jsxs("span",{className:"rdv-revision-stat rdv-revision-stat--total",children:[a.total," change",a.total!==1?"s":""]}),a.insertions>0&&e.jsxs("span",{className:"rdv-revision-stat rdv-revision-stat--insertion",children:["+",a.insertions]}),a.deletions>0&&e.jsxs("span",{className:"rdv-revision-stat rdv-revision-stat--deletion",children:["−",a.deletions]}),a.moves>0&&e.jsxs("span",{className:"rdv-revision-stat rdv-revision-stat--move",children:["↔",a.moves]}),a.formatting>0&&e.jsxs("span",{className:"rdv-revision-stat rdv-revision-stat--format",children:["✎",a.formatting]})]}),e.jsxs("select",{className:"rdv-revision-filter",value:C,onChange:c=>y(c.target.value),children:[e.jsx("option",{value:"all",children:"All Changes"}),e.jsxs("option",{value:"insertions",children:["Insertions (",a.insertions,")"]}),e.jsxs("option",{value:"deletions",children:["Deletions (",a.deletions,")"]}),e.jsxs("option",{value:"moves",children:["Moves (",a.moves,")"]}),e.jsxs("option",{value:"formatting",children:["Formatting (",a.formatting,")"]})]})]}),e.jsx("div",{className:"rdv-revision-list",children:r.map((c,l)=>{const d=b.has(l),A=c.text.length>150,Z=i.isFormatChange(c)?sn(c):[];return e.jsxs("div",{className:`rdv-revision-item ${nn(c)}`,children:[e.jsxs("div",{className:"rdv-revision-item__header",children:[e.jsx("span",{className:"rdv-revision-type",children:en(c)}),i.isMove(c)&&c.moveGroupId!==void 0&&e.jsxs("span",{className:"rdv-revision-move-id",children:["#",c.moveGroupId]}),e.jsx("span",{className:"rdv-revision-author",children:c.author||"Unknown"}),e.jsx("span",{className:"rdv-revision-date",children:gn(c.date)})]}),c.text&&e.jsxs("div",{className:"rdv-revision-item__content",children:[e.jsx("span",{className:"rdv-revision-text",children:d?c.text:cn(c.text)}),A&&e.jsx("button",{className:"rdv-revision-expand",onClick:()=>V(l),children:d?"Show less":"Show more"})]}),Z.length>0&&e.jsx("div",{className:"rdv-revision-item__format-details",children:Z.map((o,q)=>e.jsxs("div",{className:"rdv-format-change",children:[e.jsx("span",{className:"rdv-format-change__property",children:o.property}),e.jsxs("span",{className:"rdv-format-change__values",children:[o.oldValue&&e.jsx("span",{className:"rdv-format-change__old",children:o.oldValue}),o.oldValue&&o.newValue&&e.jsx("span",{className:"rdv-format-change__arrow",children:"→"}),o.newValue&&e.jsx("span",{className:"rdv-format-change__new",children:o.newValue}),!o.oldValue&&o.newValue&&e.jsx("span",{className:"rdv-format-change__added",children:"(added)"}),o.oldValue&&!o.newValue&&e.jsx("span",{className:"rdv-format-change__removed",children:"(removed)"})]})]},q))})]},l)})})]})}function Ne(g){switch(g){case"endnote":return i.CommentRenderMode.EndnoteStyle;case"inline":return i.CommentRenderMode.Inline;case"margin":return i.CommentRenderMode.Margin;default:return i.CommentRenderMode.Disabled}}function In(g){switch(g){case"above":return i.AnnotationLabelMode.Above;case"inline":return i.AnnotationLabelMode.Inline;case"tooltip":return i.AnnotationLabelMode.Tooltip;case"none":return i.AnnotationLabelMode.None;default:return}}function ln({file:g,html:C,onFileChange:y,onConversionStart:b,onConversionComplete:m,onError:r,onPageChange:a,onRevisionsExtracted:V,settings:c,defaultSettings:l,onSettingsChange:d,className:A,style:Z,toolbar:o="top",showSettingsButton:q=!0,showRevisionsTab:J=!0,placeholder:He="Open a DOCX file to view",wasmBasePath:P,useWorker:v=!0,useLazyLoading:u=!0}){const ee=I.useMemo(()=>({...Re,...l}),[l]),[we,re]=I.useState(null),[ze,U]=I.useState(null),[Ae,xe]=I.useState(ee),h=g!==void 0?g:we,B=C!==void 0?C:ze,s=I.useMemo(()=>c?{...ee,...c}:Ae,[c,ee,Ae]),z=ie.useDocxodus(P),[N,be]=I.useState(null),[Fe,me]=I.useState(!1),[fe,ne]=I.useState(!1),[Je,Ze]=I.useState(null),M=I.useRef(null);I.useEffect(()=>{if(u||!v||!Xe())return;let n=!1;return ne(!0),Ze(null),qe({wasmBasePath:P}).then(t=>{n?t.terminate():(M.current=t,be(t),me(!0),ne(!1))}).catch(t=>{n||(Ze(t instanceof Error?t:new Error(String(t))),ne(!1))}),()=>{n=!0,M.current&&(M.current.terminate(),M.current=null,be(null),me(!1))}},[u,v,P]);const x=u?!0:v?Fe:z.isReady,Y=u?!1:v?fe:z.isLoading,D=u?null:v?Je:z.error,[X,ue]=I.useState(!1),[ge,L]=I.useState(null),[he,ve]=I.useState(""),[R,ce]=I.useState(1),[G,O]=I.useState(0),[Ye,E]=I.useState(!1),[F,k]=I.useState("document"),[se,j]=I.useState([]),[ke,ye]=I.useState(!1),[f,S]=I.useState(null),T=I.useRef(null),te=I.useCallback(()=>({commentRenderMode:Ne(s.commentMode),pageTitle:s.pageTitle,cssPrefix:s.cssPrefix,fabricateClasses:s.fabricateClasses,additionalCss:s.additionalCss||void 0,commentCssClassPrefix:s.commentCssClassPrefix,paginationMode:i.PaginationMode.Paginated,paginationScale:s.paginationScale,renderAnnotations:s.annotationMode!=="disabled",annotationLabelMode:In(s.annotationMode),annotationCssClassPrefix:s.annotationCssClassPrefix,renderFootnotesAndEndnotes:s.renderFootnotesAndEndnotes,renderHeadersAndFooters:s.renderHeadersAndFooters,renderTrackedChanges:s.renderTrackedChanges,showDeletedContent:s.showDeletedContent,renderMoveOperations:s.renderMoveOperations}),[s]),je=I.useCallback(()=>({pageTitle:s.pageTitle,cssPrefix:s.cssPrefix,fabricateClasses:s.fabricateClasses,additionalCss:s.additionalCss||void 0,paginationScale:s.paginationScale,renderFootnotesAndEndnotes:s.renderFootnotesAndEndnotes,renderHeadersAndFooters:s.renderHeadersAndFooters,renderTrackedChanges:s.renderTrackedChanges,showDeletedContent:s.showDeletedContent,renderComments:s.commentMode!=="disabled",commentRenderMode:Ne(s.commentMode)}),[s]),Se=I.useCallback(async n=>{try{const t=v&&N?await N.getDocumentMetadata(n):await i.getDocumentMetadata(n);S(t)}catch{S(null)}},[v,N]),Ie=I.useCallback(async n=>{if(!(!x||!J)){ye(!0);try{const t=v&&N?await N.getRevisions(n):await z.getRevisions(n);j(t),V?.(t)}catch{j([])}finally{ye(!1)}}},[x,v,N,z,J,V]),Q=I.useCallback(async n=>{if(x){ue(!0),L(null),j([]),k("document"),b?.(),v||await new Promise(t=>requestAnimationFrame(()=>requestAnimationFrame(t)));try{const t=v&&N?await N.convertDocxToHtml(n,te()):await z.convertToHtml(n,te());C===void 0&&U(t),m?.(t),Ie(n)}catch(t){const W=t instanceof Error?t:new Error(String(t));L(W),r?.(W)}finally{ue(!1)}}},[x,v,N,z,te,C,b,m,r,Ie]);I.useEffect(()=>{!u&&x&&h&&!B&&!X&&C===void 0&&Q(h)},[u,x,h,B,X,Q,C]);const Qe=async n=>{const t=n.target.files?.[0];t&&(ve(t.name),L(null),ce(1),O(0),S(null),j([]),k("document"),g===void 0&&(re(t),U(null)),y?.(t),u?J&&Ie(t):(Se(t),x&&C===void 0&&await Q(t)))},Ke=I.useCallback(async()=>{h&&(C===void 0&&U(null),await Q(h))},[h,Q,C]),Pe=()=>{g===void 0&&re(null),C===void 0&&U(null),L(null),ve(""),ce(1),O(0),j([]),k("document"),S(null),y?.(null);const n=document.getElementById("rdv-file-input");n&&(n.value="")},p=I.useCallback(n=>{const t={...s,...n};c===void 0&&xe(t),d?.(t)},[s,c,d]),Ue=()=>p({paginationScale:Math.min(s.paginationScale+.1,2)}),Me=()=>p({paginationScale:Math.max(s.paginationScale-.1,.3)}),De=n=>p({paginationScale:Math.max(.3,Math.min(2,n))}),le=n=>{const t=T.current;if(!t||n<1||n>G)return;const W=t.querySelector(`[data-page-number="${n}"]`);W&&W.scrollIntoView({behavior:"smooth",block:"start"})},Le=()=>R>1&&le(R-1),Oe=()=>R<G&&le(R+1),Ve=n=>{ce(n),a?.(n,G)};I.useEffect(()=>{const n=T.current;if(!n)return;const t=W=>{const _=W.target.closest('a[href^="#"]');if(!_)return;const K=_.getAttribute("href");if(!K||!K.startsWith("#"))return;W.preventDefault();const Ge=K.substring(1),$=n.querySelector(`[id="${Ge}"], [name="${Ge}"]`);$&&($.scrollIntoView({behavior:"smooth",block:"center"}),$.classList.add("rdv-footnote-highlight"),setTimeout(()=>$.classList.remove("rdv-footnote-highlight"),2e3))};return n.addEventListener("click",t),()=>n.removeEventListener("click",t)},[B]),I.useEffect(()=>{G>0&&a?.(R,G)},[G,R,a]);const pe=X||Y,Ee=()=>e.jsx("div",{className:"rdv-settings-overlay",onClick:()=>E(!1),children:e.jsxs("div",{className:"rdv-settings-modal",onClick:n=>n.stopPropagation(),children:[e.jsxs("div",{className:"rdv-settings-header",children:[e.jsx("h3",{children:"Viewer Settings"}),e.jsx("button",{className:"rdv-settings-close",onClick:()=>E(!1),children:"×"})]}),e.jsxs("div",{className:"rdv-settings-body",children:[e.jsxs("div",{className:"rdv-settings-section",children:[e.jsx("h4",{children:"Display Options"}),e.jsxs("label",{className:"rdv-settings-checkbox",children:[e.jsx("input",{type:"checkbox",checked:s.renderFootnotesAndEndnotes,onChange:n=>p({renderFootnotesAndEndnotes:n.target.checked})}),e.jsx("span",{children:"Show footnotes and endnotes"})]}),e.jsxs("label",{className:"rdv-settings-checkbox",children:[e.jsx("input",{type:"checkbox",checked:s.renderHeadersAndFooters,onChange:n=>p({renderHeadersAndFooters:n.target.checked})}),e.jsx("span",{children:"Show headers and footers"})]}),e.jsxs("label",{className:"rdv-settings-checkbox",children:[e.jsx("input",{type:"checkbox",checked:s.showPageNumbers,onChange:n=>p({showPageNumbers:n.target.checked})}),e.jsx("span",{children:"Show page numbers"})]})]}),e.jsxs("div",{className:"rdv-settings-section",children:[e.jsx("h4",{children:"Comment Rendering"}),e.jsx("div",{className:"rdv-settings-radio-group",children:["disabled","endnote","inline","margin"].map(n=>e.jsxs("label",{className:"rdv-settings-radio",children:[e.jsx("input",{type:"radio",name:"commentMode",checked:s.commentMode===n,onChange:()=>p({commentMode:n})}),e.jsxs("span",{children:[n.charAt(0).toUpperCase()+n.slice(1),n==="endnote"?"s":""]})]},n))})]}),e.jsxs("div",{className:"rdv-settings-section",children:[e.jsx("h4",{children:"Annotation Rendering"}),e.jsx("div",{className:"rdv-settings-radio-group",children:["disabled","above","inline","tooltip","none"].map(n=>e.jsxs("label",{className:"rdv-settings-radio",children:[e.jsx("input",{type:"radio",name:"annotationMode",checked:s.annotationMode===n,onChange:()=>p({annotationMode:n})}),e.jsx("span",{children:n==="none"?"Highlight Only":n.charAt(0).toUpperCase()+n.slice(1)})]},n))})]}),e.jsxs("div",{className:"rdv-settings-section",children:[e.jsx("h4",{children:"Tracked Changes"}),e.jsxs("label",{className:"rdv-settings-checkbox",children:[e.jsx("input",{type:"checkbox",checked:s.renderTrackedChanges,onChange:n=>p({renderTrackedChanges:n.target.checked})}),e.jsx("span",{children:"Show tracked changes"})]}),s.renderTrackedChanges&&e.jsxs("div",{className:"rdv-settings-subsection",children:[e.jsxs("label",{className:"rdv-settings-checkbox",children:[e.jsx("input",{type:"checkbox",checked:s.showDeletedContent,onChange:n=>p({showDeletedContent:n.target.checked})}),e.jsx("span",{children:"Show deleted content"})]}),e.jsxs("label",{className:"rdv-settings-checkbox",children:[e.jsx("input",{type:"checkbox",checked:s.renderMoveOperations,onChange:n=>p({renderMoveOperations:n.target.checked})}),e.jsx("span",{children:"Distinguish move operations"})]})]})]})]}),e.jsx("div",{className:"rdv-settings-footer",children:e.jsx("button",{className:"rdv-settings-apply",onClick:()=>{Ke(),E(!1)},children:"Apply & Close"})})]})}),Te=se.length>0,We=()=>e.jsxs("div",{className:"rdv-toolbar",children:[e.jsxs("div",{className:"rdv-toolbar-left",children:[e.jsx("label",{htmlFor:"rdv-file-input",className:"rdv-toolbar-file-btn",children:he||"Open Document"}),e.jsx("input",{id:"rdv-file-input",type:"file",accept:".docx",onChange:Qe,disabled:pe,className:"rdv-file-input"}),he&&e.jsx("button",{className:"rdv-toolbar-btn rdv-toolbar-clear",onClick:Pe,disabled:pe,children:"×"}),J&&Te&&(u?h:B)&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"rdv-toolbar-separator"}),e.jsxs("div",{className:"rdv-view-tabs",children:[e.jsx("button",{className:`rdv-view-tab ${F==="document"?"rdv-view-tab--active":""}`,onClick:()=>k("document"),title:"View Document",children:"Document"}),e.jsxs("button",{className:`rdv-view-tab ${F==="revisions"?"rdv-view-tab--active":""}`,onClick:()=>k("revisions"),title:"View Tracked Changes",children:["Changes (",se.length,")"]})]})]}),J&&ke&&e.jsx("span",{className:"rdv-extracting-indicator",title:"Extracting tracked changes...",children:"..."})]}),e.jsx("div",{className:"rdv-toolbar-center",children:(u&&h||B)&&G>0&&F==="document"&&e.jsxs(e.Fragment,{children:[e.jsx("button",{className:"rdv-toolbar-btn",onClick:Le,disabled:R<=1,title:"Previous Page",children:"◀"}),e.jsxs("div",{className:"rdv-page-input-group",children:[e.jsx("input",{type:"number",className:"rdv-page-input",value:R,min:1,max:G,onChange:n=>{const t=parseInt(n.target.value);isNaN(t)||le(t)}}),e.jsxs("span",{className:"rdv-page-total",children:["/ ",G]})]}),e.jsx("button",{className:"rdv-toolbar-btn",onClick:Oe,disabled:R>=G,title:"Next Page",children:"▶"}),e.jsx("div",{className:"rdv-toolbar-separator"}),e.jsx("button",{className:"rdv-toolbar-btn",onClick:Me,disabled:s.paginationScale<=.3,title:"Zoom Out",children:"−"}),e.jsxs("select",{className:"rdv-zoom-select",value:s.paginationScale,onChange:n=>De(parseFloat(n.target.value)),children:[e.jsx("option",{value:"0.5",children:"50%"}),e.jsx("option",{value:"0.75",children:"75%"}),e.jsx("option",{value:"0.8",children:"80%"}),e.jsx("option",{value:"0.9",children:"90%"}),e.jsx("option",{value:"1",children:"100%"}),e.jsx("option",{value:"1.25",children:"125%"}),e.jsx("option",{value:"1.5",children:"150%"}),e.jsx("option",{value:"2",children:"200%"})]}),e.jsx("button",{className:"rdv-toolbar-btn",onClick:Ue,disabled:s.paginationScale>=2,title:"Zoom In",children:"+"})]})}),e.jsx("div",{className:"rdv-toolbar-right",children:q&&e.jsx("button",{className:"rdv-toolbar-btn rdv-toolbar-settings",onClick:()=>E(!0),title:"Settings",children:"⚙"})})]}),_e=["rdv-viewer",A].filter(Boolean).join(" ");return e.jsxs("div",{className:_e,style:Z,children:[o==="top"&&e.jsx(We,{}),e.jsxs("div",{className:"rdv-content",children:[D&&e.jsx("div",{className:"rdv-message rdv-message--error",children:e.jsxs("p",{children:["Failed to initialize: ",D.message]})}),!D&&(Y||X)&&(f&&X?e.jsx("div",{className:"rdv-pages rdv-pages--loading",children:e.jsx("div",{className:"rdv-page-placeholders",style:{backgroundColor:"#525659"},children:Array.from({length:f.estimatedPageCount||1}).map((n,t)=>{const W=f.sections[Math.min(t,f.sections.length-1)],ae=s.paginationScale,_=Math.round((W?.pageWidthPt||612)*(96/72)*ae),K=Math.round((W?.pageHeightPt||792)*(96/72)*ae);return e.jsxs("div",{className:"rdv-page-placeholder",style:{width:`${_}px`,height:`${K}px`,marginBottom:"20px"},children:[e.jsx("div",{className:"rdv-page-placeholder__shimmer"}),t===0&&e.jsxs("div",{className:"rdv-page-placeholder__info",children:[e.jsx("div",{className:"rdv-spinner rdv-spinner--small"}),e.jsx("span",{children:"Converting document..."}),e.jsxs("span",{className:"rdv-page-placeholder__count",children:["~",f.estimatedPageCount," page",f.estimatedPageCount!==1?"s":""]})]}),e.jsx("div",{className:"rdv-page-placeholder__number",children:t+1})]},t)})})}):e.jsxs("div",{className:"rdv-message",children:[e.jsx("div",{className:"rdv-spinner"}),e.jsx("p",{children:Y&&h?"Loading engine & preparing document...":Y?"Loading document engine...":"Processing document..."})]})),!Y&&!D&&!B&&!X&&!h&&e.jsxs("div",{className:"rdv-message",children:[e.jsx("div",{className:"rdv-message__icon",children:"📄"}),e.jsx("p",{children:He})]}),ge&&!X&&e.jsx("div",{className:"rdv-message rdv-message--error",children:e.jsxs("p",{children:["Error: ",ge.message]})}),F==="document"&&u&&h&&!ge&&e.jsx("div",{ref:T,className:"rdv-pages",children:e.jsx(ie.VirtualPaginatedDocument,{document:h,scale:s.paginationScale,bufferPages:3,pageGap:20,backgroundColor:"#525659",className:"rdv-paginated-document",wasmBasePath:P,renderOptions:je(),onMetadataLoaded:n=>{O(n.estimatedPageCount),S(n)},onPageVisible:Ve})}),F==="document"&&!u&&B&&!X&&e.jsx("div",{ref:T,className:"rdv-pages",children:e.jsx(ie.PaginatedDocument,{html:B,scale:s.paginationScale,showPageNumbers:s.showPageNumbers,pageGap:20,backgroundColor:"#525659",className:"rdv-paginated-document",onPaginationComplete:n=>{O(n.totalPages)},onPageVisible:Ve})}),F==="revisions"&&(u?h:B&&!X)&&e.jsx(tn,{revisions:se})]}),o==="bottom"&&e.jsx(We,{}),Ye&&e.jsx(Ee,{})]})}Object.defineProperty(exports,"RevisionType",{enumerable:!0,get:()=>i.RevisionType});Object.defineProperty(exports,"isDeletion",{enumerable:!0,get:()=>i.isDeletion});Object.defineProperty(exports,"isFormatChange",{enumerable:!0,get:()=>i.isFormatChange});Object.defineProperty(exports,"isInsertion",{enumerable:!0,get:()=>i.isInsertion});Object.defineProperty(exports,"isMove",{enumerable:!0,get:()=>i.isMove});exports.DEFAULT_SETTINGS=Re;exports.DocumentViewer=ln;exports.isWorkerSupported=Xe;
|
|
2
2
|
//# sourceMappingURL=react-docxodus-viewer.cjs.js.map
|