@x15ventures/x15-ui-library 3.18.0 → 3.20.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.
Files changed (484) hide show
  1. package/THIRD_PARTY_LICENSES.md +11182 -0
  2. package/dist/cjs/autoGenerated/libraryThemes.js +12 -12
  3. package/dist/cjs/autoGenerated/libraryThemes.js.map +1 -1
  4. package/dist/cjs/autoGenerated/libraryThemes.json +12 -12
  5. package/dist/cjs/components/design/banners/pageBanner/PageBanner.js +27 -12
  6. package/dist/cjs/components/design/banners/pageBanner/PageBanner.js.map +1 -1
  7. package/dist/cjs/components/design/card/cardHeader/CardHeaderItem.js +22 -15
  8. package/dist/cjs/components/design/card/cardHeader/CardHeaderItem.js.map +1 -1
  9. package/dist/cjs/components/design/dialog/dialog.css +4 -0
  10. package/dist/cjs/components/design/logos/LogoLink.js +2 -1
  11. package/dist/cjs/components/design/logos/LogoLink.js.map +1 -1
  12. package/dist/cjs/components/design/logos/VentureLogo.js +2 -1
  13. package/dist/cjs/components/design/logos/VentureLogo.js.map +1 -1
  14. package/dist/cjs/components/design/revealMore/RevealMoreBelow.js +2 -2
  15. package/dist/cjs/components/design/revealMore/RevealMoreBelow.js.map +1 -1
  16. package/dist/cjs/components/design/skeleton/Skeleton.js +15 -5
  17. package/dist/cjs/components/design/skeleton/Skeleton.js.map +1 -1
  18. package/dist/cjs/components/design/themeLoader/ThemeLoader.js +1 -1
  19. package/dist/cjs/components/design/themeLoader/ThemeLoader.js.map +1 -1
  20. package/dist/cjs/components/form/buttons/SimpleButton.js +3 -1
  21. package/dist/cjs/components/form/buttons/SimpleButton.js.map +1 -1
  22. package/dist/cjs/components/form/buttons/button.interface.js.map +1 -1
  23. package/dist/cjs/components/form/buttons/userPicButton/UserPicButton.js +5 -3
  24. package/dist/cjs/components/form/buttons/userPicButton/UserPicButton.js.map +1 -1
  25. package/dist/cjs/components/form/formFields/subComponents/inputs/file/dragAndDrop/DragAndDropFileUpload.js +64 -19
  26. package/dist/cjs/components/form/formFields/subComponents/inputs/file/dragAndDrop/DragAndDropFileUpload.js.map +1 -1
  27. package/dist/cjs/components/navigation/link/Link.js +2 -1
  28. package/dist/cjs/components/navigation/link/Link.js.map +1 -1
  29. package/dist/cjs/components/testing/devToolbar/DevToolbar.js +5 -3
  30. package/dist/cjs/components/testing/devToolbar/DevToolbar.js.map +1 -1
  31. package/dist/cjs/constants/fileUploadTypes.js +9 -4
  32. package/dist/cjs/constants/fileUploadTypes.js.map +1 -1
  33. package/dist/cjs/helpers/dateHelpers.js +34 -23
  34. package/dist/cjs/helpers/dateHelpers.js.map +1 -1
  35. package/dist/cjs/helpers/fileHelpers.js +58 -0
  36. package/dist/cjs/helpers/fileHelpers.js.map +1 -0
  37. package/dist/cjs/helpers/index.js +44 -0
  38. package/dist/cjs/helpers/index.js.map +1 -1
  39. package/dist/cjs/helpers/interactionsHelper.js +8 -1
  40. package/dist/cjs/helpers/interactionsHelper.js.map +1 -1
  41. package/dist/cjs/helpers/objectHelpers.js +23 -9
  42. package/dist/cjs/helpers/objectHelpers.js.map +1 -1
  43. package/dist/cjs/helpers/stringHelpers.js +61 -5
  44. package/dist/cjs/helpers/stringHelpers.js.map +1 -1
  45. package/dist/cjs/helpers/urlHelpers.js +48 -0
  46. package/dist/cjs/helpers/urlHelpers.js.map +1 -0
  47. package/dist/cjs/index.js +191 -0
  48. package/dist/cjs/index.js.map +1 -1
  49. package/dist/cjs/package.json +3 -305
  50. package/dist/cjs/styles/index.css +18 -0
  51. package/dist/cjs/styles/variables/cssVars/_designVariables.css +18 -0
  52. package/dist/cjs/widgets/documentComments/DocumentComments.js +305 -0
  53. package/dist/cjs/widgets/documentComments/DocumentComments.js.map +1 -0
  54. package/dist/cjs/widgets/documentComments/_documentCommentsVariables.css +0 -0
  55. package/dist/cjs/widgets/documentComments/documentComments.css +107 -0
  56. package/dist/cjs/widgets/documentComments/documentComments.interfaces.js +6 -0
  57. package/dist/cjs/widgets/documentComments/documentComments.interfaces.js.map +1 -0
  58. package/dist/cjs/widgets/documentComments/index.js +19 -0
  59. package/dist/cjs/widgets/documentComments/index.js.map +1 -0
  60. package/dist/cjs/widgets/documentComparer/DocumentComparer.js +309 -0
  61. package/dist/cjs/widgets/documentComparer/DocumentComparer.js.map +1 -0
  62. package/dist/cjs/widgets/documentComparer/_documentComparerVariables.css +0 -0
  63. package/dist/cjs/widgets/documentComparer/documentComparer.css +117 -0
  64. package/dist/cjs/widgets/documentComparer/documentComparer.interfaces.js +6 -0
  65. package/dist/cjs/widgets/documentComparer/documentComparer.interfaces.js.map +1 -0
  66. package/dist/cjs/widgets/documentComparer/index.js +19 -0
  67. package/dist/cjs/widgets/documentComparer/index.js.map +1 -0
  68. package/dist/cjs/widgets/documentEditor/DocumentEditor.js +142 -0
  69. package/dist/cjs/widgets/documentEditor/DocumentEditor.js.map +1 -0
  70. package/dist/cjs/widgets/documentEditor/_documentEditorVariables.css +0 -0
  71. package/dist/cjs/widgets/documentEditor/documentEditor.css +33 -0
  72. package/dist/cjs/widgets/documentEditor/documentEditor.interfaces.js +6 -0
  73. package/dist/cjs/widgets/documentEditor/documentEditor.interfaces.js.map +1 -0
  74. package/dist/cjs/widgets/documentEditor/index.js +19 -0
  75. package/dist/cjs/widgets/documentEditor/index.js.map +1 -0
  76. package/dist/cjs/widgets/documentViewer/DocumentViewer.js +206 -0
  77. package/dist/cjs/widgets/documentViewer/DocumentViewer.js.map +1 -0
  78. package/dist/cjs/widgets/documentViewer/_documentViewerVariables.css +0 -0
  79. package/dist/cjs/widgets/documentViewer/documentViewer.css +82 -0
  80. package/dist/cjs/widgets/documentViewer/documentViewer.interfaces.js +6 -0
  81. package/dist/cjs/widgets/documentViewer/documentViewer.interfaces.js.map +1 -0
  82. package/dist/cjs/widgets/documentViewer/index.js +19 -0
  83. package/dist/cjs/widgets/documentViewer/index.js.map +1 -0
  84. package/dist/cjs/widgets/index.js +126 -0
  85. package/dist/cjs/widgets/index.js.map +1 -1
  86. package/dist/cjs/widgets/shared/documents/ToggleGroup.js +32 -0
  87. package/dist/cjs/widgets/shared/documents/ToggleGroup.js.map +1 -0
  88. package/dist/cjs/widgets/shared/documents/_documentVariables.css +0 -0
  89. package/dist/cjs/widgets/shared/documents/annotations/AnnotationLayer.js +279 -0
  90. package/dist/cjs/widgets/shared/documents/annotations/AnnotationLayer.js.map +1 -0
  91. package/dist/cjs/widgets/shared/documents/annotations/_annotationLayerVariables.css +0 -0
  92. package/dist/cjs/widgets/shared/documents/annotations/annotationLayer.css +65 -0
  93. package/dist/cjs/widgets/shared/documents/annotations/annotations.interfaces.js +21 -0
  94. package/dist/cjs/widgets/shared/documents/annotations/annotations.interfaces.js.map +1 -0
  95. package/dist/cjs/widgets/shared/documents/annotations/highlightRegistry.js +67 -0
  96. package/dist/cjs/widgets/shared/documents/annotations/highlightRegistry.js.map +1 -0
  97. package/dist/cjs/widgets/shared/documents/annotations/index.js +39 -0
  98. package/dist/cjs/widgets/shared/documents/annotations/index.js.map +1 -0
  99. package/dist/cjs/widgets/shared/documents/annotations/textIndex.js +112 -0
  100. package/dist/cjs/widgets/shared/documents/annotations/textIndex.js.map +1 -0
  101. package/dist/cjs/widgets/shared/documents/annotations/textQuoteAnchor.js +160 -0
  102. package/dist/cjs/widgets/shared/documents/annotations/textQuoteAnchor.js.map +1 -0
  103. package/dist/cjs/widgets/shared/documents/documentHelpers.js +186 -0
  104. package/dist/cjs/widgets/shared/documents/documentHelpers.js.map +1 -0
  105. package/dist/cjs/widgets/shared/documents/documents.interfaces.js +6 -0
  106. package/dist/cjs/widgets/shared/documents/documents.interfaces.js.map +1 -0
  107. package/dist/cjs/widgets/shared/documents/engines/documentDiff/DocumentDiff.js +73 -0
  108. package/dist/cjs/widgets/shared/documents/engines/documentDiff/DocumentDiff.js.map +1 -0
  109. package/dist/cjs/widgets/shared/documents/engines/documentDiff/_documentDiffVariables.css +0 -0
  110. package/dist/cjs/widgets/shared/documents/engines/documentDiff/buildDocumentDiff.js +114 -0
  111. package/dist/cjs/widgets/shared/documents/engines/documentDiff/buildDocumentDiff.js.map +1 -0
  112. package/dist/cjs/widgets/shared/documents/engines/documentDiff/documentDiff.css +69 -0
  113. package/dist/cjs/widgets/shared/documents/engines/documentDiff/documentDiff.interfaces.js +6 -0
  114. package/dist/cjs/widgets/shared/documents/engines/documentDiff/documentDiff.interfaces.js.map +1 -0
  115. package/dist/cjs/widgets/shared/documents/engines/lazyEngines.js +19 -0
  116. package/dist/cjs/widgets/shared/documents/engines/lazyEngines.js.map +1 -0
  117. package/dist/cjs/widgets/shared/documents/engines/markdownEditor/MarkdownEditorEngine.js +200 -0
  118. package/dist/cjs/widgets/shared/documents/engines/markdownEditor/MarkdownEditorEngine.js.map +1 -0
  119. package/dist/cjs/widgets/shared/documents/engines/markdownEditor/_markdownEditorEngineVariables.css +0 -0
  120. package/dist/cjs/widgets/shared/documents/engines/markdownEditor/markdownEditorEngine.css +50 -0
  121. package/dist/cjs/widgets/shared/documents/engines/markdownEditor/markdownEditorEngine.interfaces.js +6 -0
  122. package/dist/cjs/widgets/shared/documents/engines/markdownEditor/markdownEditorEngine.interfaces.js.map +1 -0
  123. package/dist/cjs/widgets/shared/documents/engines/markdownEditor/markdownTextIndex.js +179 -0
  124. package/dist/cjs/widgets/shared/documents/engines/markdownEditor/markdownTextIndex.js.map +1 -0
  125. package/dist/cjs/widgets/shared/documents/engines/markdownEditor/sanitizeForMdx.js +278 -0
  126. package/dist/cjs/widgets/shared/documents/engines/markdownEditor/sanitizeForMdx.js.map +1 -0
  127. package/dist/cjs/widgets/shared/documents/engines/markdownEditor/sourceAnnotations.js +208 -0
  128. package/dist/cjs/widgets/shared/documents/engines/markdownEditor/sourceAnnotations.js.map +1 -0
  129. package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/MarkdownRenderer.js +85 -0
  130. package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/MarkdownRenderer.js.map +1 -0
  131. package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/_markdownRendererVariables.css +0 -0
  132. package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/markdownRenderer.css +78 -0
  133. package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/plugins/index.js +64 -0
  134. package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/plugins/index.js.map +1 -0
  135. package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/plugins/markdownNode.interfaces.js +6 -0
  136. package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/plugins/markdownNode.interfaces.js.map +1 -0
  137. package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/plugins/rehypeTableCleanup.js +71 -0
  138. package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/plugins/rehypeTableCleanup.js.map +1 -0
  139. package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/plugins/remarkPlugins.js +192 -0
  140. package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/plugins/remarkPlugins.js.map +1 -0
  141. package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/plugins/remarkSafeTables.js +86 -0
  142. package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/plugins/remarkSafeTables.js.map +1 -0
  143. package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/plugins/tableHelpers.js +38 -0
  144. package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/plugins/tableHelpers.js.map +1 -0
  145. package/dist/cjs/widgets/shared/documents/engines/wordRenderer/WordRenderer.js +49 -0
  146. package/dist/cjs/widgets/shared/documents/engines/wordRenderer/WordRenderer.js.map +1 -0
  147. package/dist/cjs/widgets/shared/documents/engines/wordRenderer/renderWordDocument.js +214 -0
  148. package/dist/cjs/widgets/shared/documents/engines/wordRenderer/renderWordDocument.js.map +1 -0
  149. package/dist/cjs/widgets/shared/documents/engines/wordRenderer/wordPreviewNumbering.js +112 -0
  150. package/dist/cjs/widgets/shared/documents/engines/wordRenderer/wordPreviewNumbering.js.map +1 -0
  151. package/dist/cjs/widgets/shared/documents/engines/wordRenderer/wordXml.js +68 -0
  152. package/dist/cjs/widgets/shared/documents/engines/wordRenderer/wordXml.js.map +1 -0
  153. package/dist/cjs/widgets/shared/documents/index.js +50 -0
  154. package/dist/cjs/widgets/shared/documents/index.js.map +1 -0
  155. package/dist/cjs/widgets/shared/documents/toggleGroup.css +8 -0
  156. package/dist/cjs/widgets/shared/documents/useDocumentContent.js +222 -0
  157. package/dist/cjs/widgets/shared/documents/useDocumentContent.js.map +1 -0
  158. package/dist/components/design/banners/pageBanner/PageBanner.d.ts.map +1 -1
  159. package/dist/components/design/card/cardHeader/CardHeaderItem.d.ts.map +1 -1
  160. package/dist/components/design/logos/LogoLink.d.ts.map +1 -1
  161. package/dist/components/design/logos/VentureLogo.d.ts.map +1 -1
  162. package/dist/components/design/skeleton/Skeleton.d.ts +1 -1
  163. package/dist/components/design/skeleton/Skeleton.d.ts.map +1 -1
  164. package/dist/components/design/themeLoader/ThemeLoader.d.ts.map +1 -1
  165. package/dist/components/form/buttons/SimpleButton.d.ts.map +1 -1
  166. package/dist/components/form/buttons/button.interface.d.ts +1 -0
  167. package/dist/components/form/buttons/button.interface.d.ts.map +1 -1
  168. package/dist/components/form/buttons/userPicButton/UserPicButton.d.ts.map +1 -1
  169. package/dist/components/form/formFields/subComponents/inputs/file/dragAndDrop/DragAndDropFileUpload.d.ts.map +1 -1
  170. package/dist/components/navigation/link/Link.d.ts.map +1 -1
  171. package/dist/components/testing/devToolbar/DevToolbar.d.ts.map +1 -1
  172. package/dist/constants/fileUploadTypes.d.ts.map +1 -1
  173. package/dist/esm/autoGenerated/libraryThemes.js +12 -12
  174. package/dist/esm/autoGenerated/libraryThemes.js.map +1 -1
  175. package/dist/esm/autoGenerated/libraryThemes.json +12 -12
  176. package/dist/esm/components/design/banners/pageBanner/PageBanner.js +27 -12
  177. package/dist/esm/components/design/banners/pageBanner/PageBanner.js.map +1 -1
  178. package/dist/esm/components/design/card/cardHeader/CardHeaderItem.js +22 -15
  179. package/dist/esm/components/design/card/cardHeader/CardHeaderItem.js.map +1 -1
  180. package/dist/esm/components/design/dialog/dialog.css +4 -0
  181. package/dist/esm/components/design/logos/LogoLink.js +2 -1
  182. package/dist/esm/components/design/logos/LogoLink.js.map +1 -1
  183. package/dist/esm/components/design/logos/VentureLogo.js +2 -1
  184. package/dist/esm/components/design/logos/VentureLogo.js.map +1 -1
  185. package/dist/esm/components/design/revealMore/RevealMoreBelow.js +1 -1
  186. package/dist/esm/components/design/revealMore/RevealMoreBelow.js.map +1 -1
  187. package/dist/esm/components/design/skeleton/Skeleton.js +15 -5
  188. package/dist/esm/components/design/skeleton/Skeleton.js.map +1 -1
  189. package/dist/esm/components/design/themeLoader/ThemeLoader.js +1 -1
  190. package/dist/esm/components/design/themeLoader/ThemeLoader.js.map +1 -1
  191. package/dist/esm/components/form/buttons/SimpleButton.js +3 -1
  192. package/dist/esm/components/form/buttons/SimpleButton.js.map +1 -1
  193. package/dist/esm/components/form/buttons/button.interface.js.map +1 -1
  194. package/dist/esm/components/form/buttons/userPicButton/UserPicButton.js +5 -3
  195. package/dist/esm/components/form/buttons/userPicButton/UserPicButton.js.map +1 -1
  196. package/dist/esm/components/form/formFields/subComponents/inputs/file/dragAndDrop/DragAndDropFileUpload.js +65 -19
  197. package/dist/esm/components/form/formFields/subComponents/inputs/file/dragAndDrop/DragAndDropFileUpload.js.map +1 -1
  198. package/dist/esm/components/navigation/link/Link.js +2 -1
  199. package/dist/esm/components/navigation/link/Link.js.map +1 -1
  200. package/dist/esm/components/testing/devToolbar/DevToolbar.js +5 -3
  201. package/dist/esm/components/testing/devToolbar/DevToolbar.js.map +1 -1
  202. package/dist/esm/constants/fileUploadTypes.js +9 -4
  203. package/dist/esm/constants/fileUploadTypes.js.map +1 -1
  204. package/dist/esm/helpers/dateHelpers.js +34 -23
  205. package/dist/esm/helpers/dateHelpers.js.map +1 -1
  206. package/dist/esm/helpers/fileHelpers.js +48 -0
  207. package/dist/esm/helpers/fileHelpers.js.map +1 -0
  208. package/dist/esm/helpers/index.js +2 -0
  209. package/dist/esm/helpers/index.js.map +1 -1
  210. package/dist/esm/helpers/interactionsHelper.js +5 -0
  211. package/dist/esm/helpers/interactionsHelper.js.map +1 -1
  212. package/dist/esm/helpers/objectHelpers.js +23 -9
  213. package/dist/esm/helpers/objectHelpers.js.map +1 -1
  214. package/dist/esm/helpers/stringHelpers.js +61 -5
  215. package/dist/esm/helpers/stringHelpers.js.map +1 -1
  216. package/dist/esm/helpers/urlHelpers.js +40 -0
  217. package/dist/esm/helpers/urlHelpers.js.map +1 -0
  218. package/dist/esm/index.js +3 -1
  219. package/dist/esm/index.js.map +1 -1
  220. package/dist/esm/package.json +2 -304
  221. package/dist/esm/styles/index.css +18 -0
  222. package/dist/esm/styles/variables/cssVars/_designVariables.css +18 -0
  223. package/dist/esm/widgets/documentComments/DocumentComments.js +298 -0
  224. package/dist/esm/widgets/documentComments/DocumentComments.js.map +1 -0
  225. package/dist/esm/widgets/documentComments/_documentCommentsVariables.css +0 -0
  226. package/dist/esm/widgets/documentComments/documentComments.css +107 -0
  227. package/dist/esm/widgets/documentComments/documentComments.interfaces.js +2 -0
  228. package/dist/esm/widgets/documentComments/documentComments.interfaces.js.map +1 -0
  229. package/dist/esm/widgets/documentComments/index.js +2 -0
  230. package/dist/esm/widgets/documentComments/index.js.map +1 -0
  231. package/dist/esm/widgets/documentComparer/DocumentComparer.js +301 -0
  232. package/dist/esm/widgets/documentComparer/DocumentComparer.js.map +1 -0
  233. package/dist/esm/widgets/documentComparer/_documentComparerVariables.css +0 -0
  234. package/dist/esm/widgets/documentComparer/documentComparer.css +117 -0
  235. package/dist/esm/widgets/documentComparer/documentComparer.interfaces.js +2 -0
  236. package/dist/esm/widgets/documentComparer/documentComparer.interfaces.js.map +1 -0
  237. package/dist/esm/widgets/documentComparer/index.js +2 -0
  238. package/dist/esm/widgets/documentComparer/index.js.map +1 -0
  239. package/dist/esm/widgets/documentEditor/DocumentEditor.js +135 -0
  240. package/dist/esm/widgets/documentEditor/DocumentEditor.js.map +1 -0
  241. package/dist/esm/widgets/documentEditor/_documentEditorVariables.css +0 -0
  242. package/dist/esm/widgets/documentEditor/documentEditor.css +33 -0
  243. package/dist/esm/widgets/documentEditor/documentEditor.interfaces.js +2 -0
  244. package/dist/esm/widgets/documentEditor/documentEditor.interfaces.js.map +1 -0
  245. package/dist/esm/widgets/documentEditor/index.js +2 -0
  246. package/dist/esm/widgets/documentEditor/index.js.map +1 -0
  247. package/dist/esm/widgets/documentViewer/DocumentViewer.js +198 -0
  248. package/dist/esm/widgets/documentViewer/DocumentViewer.js.map +1 -0
  249. package/dist/esm/widgets/documentViewer/_documentViewerVariables.css +0 -0
  250. package/dist/esm/widgets/documentViewer/documentViewer.css +82 -0
  251. package/dist/esm/widgets/documentViewer/documentViewer.interfaces.js +2 -0
  252. package/dist/esm/widgets/documentViewer/documentViewer.interfaces.js.map +1 -0
  253. package/dist/esm/widgets/documentViewer/index.js +2 -0
  254. package/dist/esm/widgets/documentViewer/index.js.map +1 -0
  255. package/dist/esm/widgets/index.js +6 -0
  256. package/dist/esm/widgets/index.js.map +1 -1
  257. package/dist/esm/widgets/shared/documents/ToggleGroup.js +24 -0
  258. package/dist/esm/widgets/shared/documents/ToggleGroup.js.map +1 -0
  259. package/dist/esm/widgets/shared/documents/_documentVariables.css +0 -0
  260. package/dist/esm/widgets/shared/documents/annotations/AnnotationLayer.js +273 -0
  261. package/dist/esm/widgets/shared/documents/annotations/AnnotationLayer.js.map +1 -0
  262. package/dist/esm/widgets/shared/documents/annotations/_annotationLayerVariables.css +0 -0
  263. package/dist/esm/widgets/shared/documents/annotations/annotationLayer.css +65 -0
  264. package/dist/esm/widgets/shared/documents/annotations/annotations.interfaces.js +14 -0
  265. package/dist/esm/widgets/shared/documents/annotations/annotations.interfaces.js.map +1 -0
  266. package/dist/esm/widgets/shared/documents/annotations/highlightRegistry.js +58 -0
  267. package/dist/esm/widgets/shared/documents/annotations/highlightRegistry.js.map +1 -0
  268. package/dist/esm/widgets/shared/documents/annotations/index.js +4 -0
  269. package/dist/esm/widgets/shared/documents/annotations/index.js.map +1 -0
  270. package/dist/esm/widgets/shared/documents/annotations/textIndex.js +103 -0
  271. package/dist/esm/widgets/shared/documents/annotations/textIndex.js.map +1 -0
  272. package/dist/esm/widgets/shared/documents/annotations/textQuoteAnchor.js +150 -0
  273. package/dist/esm/widgets/shared/documents/annotations/textQuoteAnchor.js.map +1 -0
  274. package/dist/esm/widgets/shared/documents/documentHelpers.js +168 -0
  275. package/dist/esm/widgets/shared/documents/documentHelpers.js.map +1 -0
  276. package/dist/esm/widgets/shared/documents/documents.interfaces.js +2 -0
  277. package/dist/esm/widgets/shared/documents/documents.interfaces.js.map +1 -0
  278. package/dist/esm/widgets/shared/documents/engines/documentDiff/DocumentDiff.js +65 -0
  279. package/dist/esm/widgets/shared/documents/engines/documentDiff/DocumentDiff.js.map +1 -0
  280. package/dist/esm/widgets/shared/documents/engines/documentDiff/_documentDiffVariables.css +0 -0
  281. package/dist/esm/widgets/shared/documents/engines/documentDiff/buildDocumentDiff.js +102 -0
  282. package/dist/esm/widgets/shared/documents/engines/documentDiff/buildDocumentDiff.js.map +1 -0
  283. package/dist/esm/widgets/shared/documents/engines/documentDiff/documentDiff.css +69 -0
  284. package/dist/esm/widgets/shared/documents/engines/documentDiff/documentDiff.interfaces.js +2 -0
  285. package/dist/esm/widgets/shared/documents/engines/documentDiff/documentDiff.interfaces.js.map +1 -0
  286. package/dist/esm/widgets/shared/documents/engines/lazyEngines.js +13 -0
  287. package/dist/esm/widgets/shared/documents/engines/lazyEngines.js.map +1 -0
  288. package/dist/esm/widgets/shared/documents/engines/markdownEditor/MarkdownEditorEngine.js +191 -0
  289. package/dist/esm/widgets/shared/documents/engines/markdownEditor/MarkdownEditorEngine.js.map +1 -0
  290. package/dist/esm/widgets/shared/documents/engines/markdownEditor/_markdownEditorEngineVariables.css +0 -0
  291. package/dist/esm/widgets/shared/documents/engines/markdownEditor/markdownEditorEngine.css +50 -0
  292. package/dist/esm/widgets/shared/documents/engines/markdownEditor/markdownEditorEngine.interfaces.js +2 -0
  293. package/dist/esm/widgets/shared/documents/engines/markdownEditor/markdownEditorEngine.interfaces.js.map +1 -0
  294. package/dist/esm/widgets/shared/documents/engines/markdownEditor/markdownTextIndex.js +170 -0
  295. package/dist/esm/widgets/shared/documents/engines/markdownEditor/markdownTextIndex.js.map +1 -0
  296. package/dist/esm/widgets/shared/documents/engines/markdownEditor/sanitizeForMdx.js +270 -0
  297. package/dist/esm/widgets/shared/documents/engines/markdownEditor/sanitizeForMdx.js.map +1 -0
  298. package/dist/esm/widgets/shared/documents/engines/markdownEditor/sourceAnnotations.js +198 -0
  299. package/dist/esm/widgets/shared/documents/engines/markdownEditor/sourceAnnotations.js.map +1 -0
  300. package/dist/esm/widgets/shared/documents/engines/markdownRenderer/MarkdownRenderer.js +76 -0
  301. package/dist/esm/widgets/shared/documents/engines/markdownRenderer/MarkdownRenderer.js.map +1 -0
  302. package/dist/esm/widgets/shared/documents/engines/markdownRenderer/_markdownRendererVariables.css +0 -0
  303. package/dist/esm/widgets/shared/documents/engines/markdownRenderer/markdownRenderer.css +78 -0
  304. package/dist/esm/widgets/shared/documents/engines/markdownRenderer/plugins/index.js +5 -0
  305. package/dist/esm/widgets/shared/documents/engines/markdownRenderer/plugins/index.js.map +1 -0
  306. package/dist/esm/widgets/shared/documents/engines/markdownRenderer/plugins/markdownNode.interfaces.js +2 -0
  307. package/dist/esm/widgets/shared/documents/engines/markdownRenderer/plugins/markdownNode.interfaces.js.map +1 -0
  308. package/dist/esm/widgets/shared/documents/engines/markdownRenderer/plugins/rehypeTableCleanup.js +64 -0
  309. package/dist/esm/widgets/shared/documents/engines/markdownRenderer/plugins/rehypeTableCleanup.js.map +1 -0
  310. package/dist/esm/widgets/shared/documents/engines/markdownRenderer/plugins/remarkPlugins.js +182 -0
  311. package/dist/esm/widgets/shared/documents/engines/markdownRenderer/plugins/remarkPlugins.js.map +1 -0
  312. package/dist/esm/widgets/shared/documents/engines/markdownRenderer/plugins/remarkSafeTables.js +78 -0
  313. package/dist/esm/widgets/shared/documents/engines/markdownRenderer/plugins/remarkSafeTables.js.map +1 -0
  314. package/dist/esm/widgets/shared/documents/engines/markdownRenderer/plugins/tableHelpers.js +30 -0
  315. package/dist/esm/widgets/shared/documents/engines/markdownRenderer/plugins/tableHelpers.js.map +1 -0
  316. package/dist/esm/widgets/shared/documents/engines/wordRenderer/WordRenderer.js +41 -0
  317. package/dist/esm/widgets/shared/documents/engines/wordRenderer/WordRenderer.js.map +1 -0
  318. package/dist/esm/widgets/shared/documents/engines/wordRenderer/renderWordDocument.js +207 -0
  319. package/dist/esm/widgets/shared/documents/engines/wordRenderer/renderWordDocument.js.map +1 -0
  320. package/dist/esm/widgets/shared/documents/engines/wordRenderer/wordPreviewNumbering.js +105 -0
  321. package/dist/esm/widgets/shared/documents/engines/wordRenderer/wordPreviewNumbering.js.map +1 -0
  322. package/dist/esm/widgets/shared/documents/engines/wordRenderer/wordXml.js +57 -0
  323. package/dist/esm/widgets/shared/documents/engines/wordRenderer/wordXml.js.map +1 -0
  324. package/dist/esm/widgets/shared/documents/index.js +3 -0
  325. package/dist/esm/widgets/shared/documents/index.js.map +1 -0
  326. package/dist/esm/widgets/shared/documents/toggleGroup.css +8 -0
  327. package/dist/esm/widgets/shared/documents/useDocumentContent.js +215 -0
  328. package/dist/esm/widgets/shared/documents/useDocumentContent.js.map +1 -0
  329. package/dist/helpers/dateHelpers.d.ts.map +1 -1
  330. package/dist/helpers/fileHelpers.d.ts +5 -0
  331. package/dist/helpers/fileHelpers.d.ts.map +1 -0
  332. package/dist/helpers/index.d.ts +3 -0
  333. package/dist/helpers/index.d.ts.map +1 -1
  334. package/dist/helpers/interactionsHelper.d.ts +2 -0
  335. package/dist/helpers/interactionsHelper.d.ts.map +1 -1
  336. package/dist/helpers/objectHelpers.d.ts.map +1 -1
  337. package/dist/helpers/stringHelpers.d.ts.map +1 -1
  338. package/dist/helpers/urlHelpers.d.ts +3 -0
  339. package/dist/helpers/urlHelpers.d.ts.map +1 -0
  340. package/dist/index.d.ts +5 -2
  341. package/dist/index.d.ts.map +1 -1
  342. package/dist/package.json +42 -28
  343. package/dist/widgets/documentComments/DocumentComments.d.ts +7 -0
  344. package/dist/widgets/documentComments/DocumentComments.d.ts.map +1 -0
  345. package/dist/widgets/documentComments/documentComments.interfaces.d.ts +57 -0
  346. package/dist/widgets/documentComments/documentComments.interfaces.d.ts.map +1 -0
  347. package/dist/widgets/documentComments/index.d.ts +3 -0
  348. package/dist/widgets/documentComments/index.d.ts.map +1 -0
  349. package/dist/widgets/documentComparer/DocumentComparer.d.ts +7 -0
  350. package/dist/widgets/documentComparer/DocumentComparer.d.ts.map +1 -0
  351. package/dist/widgets/documentComparer/documentComparer.interfaces.d.ts +78 -0
  352. package/dist/widgets/documentComparer/documentComparer.interfaces.d.ts.map +1 -0
  353. package/dist/widgets/documentComparer/index.d.ts +3 -0
  354. package/dist/widgets/documentComparer/index.d.ts.map +1 -0
  355. package/dist/widgets/documentEditor/DocumentEditor.d.ts +7 -0
  356. package/dist/widgets/documentEditor/DocumentEditor.d.ts.map +1 -0
  357. package/dist/widgets/documentEditor/documentEditor.interfaces.d.ts +40 -0
  358. package/dist/widgets/documentEditor/documentEditor.interfaces.d.ts.map +1 -0
  359. package/dist/widgets/documentEditor/index.d.ts +3 -0
  360. package/dist/widgets/documentEditor/index.d.ts.map +1 -0
  361. package/dist/widgets/documentViewer/DocumentViewer.d.ts +7 -0
  362. package/dist/widgets/documentViewer/DocumentViewer.d.ts.map +1 -0
  363. package/dist/widgets/documentViewer/documentViewer.interfaces.d.ts +47 -0
  364. package/dist/widgets/documentViewer/documentViewer.interfaces.d.ts.map +1 -0
  365. package/dist/widgets/documentViewer/index.d.ts +3 -0
  366. package/dist/widgets/documentViewer/index.d.ts.map +1 -0
  367. package/dist/widgets/index.d.ts +12 -0
  368. package/dist/widgets/index.d.ts.map +1 -1
  369. package/dist/widgets/shared/documents/ToggleGroup.d.ts +15 -0
  370. package/dist/widgets/shared/documents/ToggleGroup.d.ts.map +1 -0
  371. package/dist/widgets/shared/documents/annotations/AnnotationLayer.d.ts +27 -0
  372. package/dist/widgets/shared/documents/annotations/AnnotationLayer.d.ts.map +1 -0
  373. package/dist/widgets/shared/documents/annotations/annotations.interfaces.d.ts +43 -0
  374. package/dist/widgets/shared/documents/annotations/annotations.interfaces.d.ts.map +1 -0
  375. package/dist/widgets/shared/documents/annotations/highlightRegistry.d.ts +12 -0
  376. package/dist/widgets/shared/documents/annotations/highlightRegistry.d.ts.map +1 -0
  377. package/dist/widgets/shared/documents/annotations/index.d.ts +6 -0
  378. package/dist/widgets/shared/documents/annotations/index.d.ts.map +1 -0
  379. package/dist/widgets/shared/documents/annotations/textIndex.d.ts +16 -0
  380. package/dist/widgets/shared/documents/annotations/textIndex.d.ts.map +1 -0
  381. package/dist/widgets/shared/documents/annotations/textQuoteAnchor.d.ts +15 -0
  382. package/dist/widgets/shared/documents/annotations/textQuoteAnchor.d.ts.map +1 -0
  383. package/dist/widgets/shared/documents/documentHelpers.d.ts +14 -0
  384. package/dist/widgets/shared/documents/documentHelpers.d.ts.map +1 -0
  385. package/dist/widgets/shared/documents/documents.interfaces.d.ts +20 -0
  386. package/dist/widgets/shared/documents/documents.interfaces.d.ts.map +1 -0
  387. package/dist/widgets/shared/documents/engines/documentDiff/DocumentDiff.d.ts +6 -0
  388. package/dist/widgets/shared/documents/engines/documentDiff/DocumentDiff.d.ts.map +1 -0
  389. package/dist/widgets/shared/documents/engines/documentDiff/buildDocumentDiff.d.ts +25 -0
  390. package/dist/widgets/shared/documents/engines/documentDiff/buildDocumentDiff.d.ts.map +1 -0
  391. package/dist/widgets/shared/documents/engines/documentDiff/documentDiff.interfaces.d.ts +17 -0
  392. package/dist/widgets/shared/documents/engines/documentDiff/documentDiff.interfaces.d.ts.map +1 -0
  393. package/dist/widgets/shared/documents/engines/lazyEngines.d.ts +5 -0
  394. package/dist/widgets/shared/documents/engines/lazyEngines.d.ts.map +1 -0
  395. package/dist/widgets/shared/documents/engines/markdownEditor/MarkdownEditorEngine.d.ts +8 -0
  396. package/dist/widgets/shared/documents/engines/markdownEditor/MarkdownEditorEngine.d.ts.map +1 -0
  397. package/dist/widgets/shared/documents/engines/markdownEditor/markdownEditorEngine.interfaces.d.ts +23 -0
  398. package/dist/widgets/shared/documents/engines/markdownEditor/markdownEditorEngine.interfaces.d.ts.map +1 -0
  399. package/dist/widgets/shared/documents/engines/markdownEditor/markdownTextIndex.d.ts +12 -0
  400. package/dist/widgets/shared/documents/engines/markdownEditor/markdownTextIndex.d.ts.map +1 -0
  401. package/dist/widgets/shared/documents/engines/markdownEditor/sanitizeForMdx.d.ts +8 -0
  402. package/dist/widgets/shared/documents/engines/markdownEditor/sanitizeForMdx.d.ts.map +1 -0
  403. package/dist/widgets/shared/documents/engines/markdownEditor/sourceAnnotations.d.ts +32 -0
  404. package/dist/widgets/shared/documents/engines/markdownEditor/sourceAnnotations.d.ts.map +1 -0
  405. package/dist/widgets/shared/documents/engines/markdownRenderer/MarkdownRenderer.d.ts +12 -0
  406. package/dist/widgets/shared/documents/engines/markdownRenderer/MarkdownRenderer.d.ts.map +1 -0
  407. package/dist/widgets/shared/documents/engines/markdownRenderer/plugins/index.d.ts +7 -0
  408. package/dist/widgets/shared/documents/engines/markdownRenderer/plugins/index.d.ts.map +1 -0
  409. package/dist/widgets/shared/documents/engines/markdownRenderer/plugins/markdownNode.interfaces.d.ts +16 -0
  410. package/dist/widgets/shared/documents/engines/markdownRenderer/plugins/markdownNode.interfaces.d.ts.map +1 -0
  411. package/dist/widgets/shared/documents/engines/markdownRenderer/plugins/rehypeTableCleanup.d.ts +3 -0
  412. package/dist/widgets/shared/documents/engines/markdownRenderer/plugins/rehypeTableCleanup.d.ts.map +1 -0
  413. package/dist/widgets/shared/documents/engines/markdownRenderer/plugins/remarkPlugins.d.ts +6 -0
  414. package/dist/widgets/shared/documents/engines/markdownRenderer/plugins/remarkPlugins.d.ts.map +1 -0
  415. package/dist/widgets/shared/documents/engines/markdownRenderer/plugins/remarkSafeTables.d.ts +3 -0
  416. package/dist/widgets/shared/documents/engines/markdownRenderer/plugins/remarkSafeTables.d.ts.map +1 -0
  417. package/dist/widgets/shared/documents/engines/markdownRenderer/plugins/tableHelpers.d.ts +8 -0
  418. package/dist/widgets/shared/documents/engines/markdownRenderer/plugins/tableHelpers.d.ts.map +1 -0
  419. package/dist/widgets/shared/documents/engines/wordRenderer/WordRenderer.d.ts +11 -0
  420. package/dist/widgets/shared/documents/engines/wordRenderer/WordRenderer.d.ts.map +1 -0
  421. package/dist/widgets/shared/documents/engines/wordRenderer/renderWordDocument.d.ts +7 -0
  422. package/dist/widgets/shared/documents/engines/wordRenderer/renderWordDocument.d.ts.map +1 -0
  423. package/dist/widgets/shared/documents/engines/wordRenderer/wordPreviewNumbering.d.ts +3 -0
  424. package/dist/widgets/shared/documents/engines/wordRenderer/wordPreviewNumbering.d.ts.map +1 -0
  425. package/dist/widgets/shared/documents/engines/wordRenderer/wordXml.d.ts +21 -0
  426. package/dist/widgets/shared/documents/engines/wordRenderer/wordXml.d.ts.map +1 -0
  427. package/dist/widgets/shared/documents/index.d.ts +5 -0
  428. package/dist/widgets/shared/documents/index.d.ts.map +1 -0
  429. package/dist/widgets/shared/documents/useDocumentContent.d.ts +11 -0
  430. package/dist/widgets/shared/documents/useDocumentContent.d.ts.map +1 -0
  431. package/package.json +42 -28
  432. package/readme.md +49 -2
  433. package/dist/components/design/dialog/Dialog.test.d.ts +0 -5
  434. package/dist/components/design/dialog/Dialog.test.d.ts.map +0 -1
  435. package/dist/components/design/progressIndicators/circularProgressIndicator/CircularProgressIndicator.test.d.ts +0 -5
  436. package/dist/components/design/progressIndicators/circularProgressIndicator/CircularProgressIndicator.test.d.ts.map +0 -1
  437. package/dist/components/design/tooltip/Tooltip.test.d.ts +0 -2
  438. package/dist/components/design/tooltip/Tooltip.test.d.ts.map +0 -1
  439. package/dist/components/form/buttons/SimpleButton.test.d.ts +0 -5
  440. package/dist/components/form/buttons/SimpleButton.test.d.ts.map +0 -1
  441. package/dist/components/form/formFields/formFieldWrapper/FormField.test.d.ts +0 -5
  442. package/dist/components/form/formFields/formFieldWrapper/FormField.test.d.ts.map +0 -1
  443. package/dist/components/form/formFields/subComponents/inputs/checkbox/InputCheckbox.test.d.ts +0 -5
  444. package/dist/components/form/formFields/subComponents/inputs/checkbox/InputCheckbox.test.d.ts.map +0 -1
  445. package/dist/components/form/formFields/subComponents/inputs/checkbox/checkboxSwitch/CheckboxSwitch.test.d.ts +0 -5
  446. package/dist/components/form/formFields/subComponents/inputs/checkbox/checkboxSwitch/CheckboxSwitch.test.d.ts.map +0 -1
  447. package/dist/components/form/formFields/subComponents/inputs/file/dragAndDrop/DragAndDropFileUpload.test.d.ts +0 -5
  448. package/dist/components/form/formFields/subComponents/inputs/file/dragAndDrop/DragAndDropFileUpload.test.d.ts.map +0 -1
  449. package/dist/components/form/formFields/subComponents/inputs/file/fileAttachmentList/FileAttachmentsList.test.d.ts +0 -5
  450. package/dist/components/form/formFields/subComponents/inputs/file/fileAttachmentList/FileAttachmentsList.test.d.ts.map +0 -1
  451. package/dist/components/form/formFields/subComponents/inputs/text/InputText.test.d.ts +0 -5
  452. package/dist/components/form/formFields/subComponents/inputs/text/InputText.test.d.ts.map +0 -1
  453. package/dist/components/form/formFields/subComponents/nestedFormContext.test.d.ts +0 -5
  454. package/dist/components/form/formFields/subComponents/nestedFormContext.test.d.ts.map +0 -1
  455. package/dist/components/form/formFields/subComponents/select/Select.test.d.ts +0 -5
  456. package/dist/components/form/formFields/subComponents/select/Select.test.d.ts.map +0 -1
  457. package/dist/components/form/formFields/subComponents/textarea/Textarea.test.d.ts +0 -5
  458. package/dist/components/form/formFields/subComponents/textarea/Textarea.test.d.ts.map +0 -1
  459. package/dist/components/form/hookFormWrapper/HookFormWrapper.test.d.ts +0 -5
  460. package/dist/components/form/hookFormWrapper/HookFormWrapper.test.d.ts.map +0 -1
  461. package/dist/components/form/validation/ValidationMessages.test.d.ts +0 -5
  462. package/dist/components/form/validation/ValidationMessages.test.d.ts.map +0 -1
  463. package/dist/components/navigation/bubbleNavigator/bubbleNavigatorUtilities.test.d.ts +0 -2
  464. package/dist/components/navigation/bubbleNavigator/bubbleNavigatorUtilities.test.d.ts.map +0 -1
  465. package/dist/components/navigation/menu/menuItemContent/MenuItemIcon.test.d.ts +0 -5
  466. package/dist/components/navigation/menu/menuItemContent/MenuItemIcon.test.d.ts.map +0 -1
  467. package/dist/helpers/ageHelpers.test.d.ts +0 -2
  468. package/dist/helpers/ageHelpers.test.d.ts.map +0 -1
  469. package/dist/helpers/dateHelpers.test.d.ts +0 -2
  470. package/dist/helpers/dateHelpers.test.d.ts.map +0 -1
  471. package/dist/helpers/formatters.test.d.ts +0 -5
  472. package/dist/helpers/formatters.test.d.ts.map +0 -1
  473. package/dist/helpers/iconHelpers.test.d.ts +0 -5
  474. package/dist/helpers/iconHelpers.test.d.ts.map +0 -1
  475. package/dist/helpers/numberHelpers.test.d.ts +0 -5
  476. package/dist/helpers/numberHelpers.test.d.ts.map +0 -1
  477. package/dist/helpers/objectHelpers.test.d.ts +0 -2
  478. package/dist/helpers/objectHelpers.test.d.ts.map +0 -1
  479. package/dist/helpers/stringHelpers.test.d.ts +0 -2
  480. package/dist/helpers/stringHelpers.test.d.ts.map +0 -1
  481. package/dist/hooks/InteractiveHostFocus.test.d.ts +0 -5
  482. package/dist/hooks/InteractiveHostFocus.test.d.ts.map +0 -1
  483. package/dist/widgets/processLauncher/ProcessLauncher.test.d.ts +0 -5
  484. package/dist/widgets/processLauncher/ProcessLauncher.test.d.ts.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocumentComments.js","names":["Object","defineProperty","exports","value","defaultDocumentCommentsLabels","default","DocumentComments","_react","_interopRequireWildcard","require","_reactHookForm","_components","_dateHelpers","_interactionsHelper","_ToggleGroup","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","has","get","set","hasOwnProperty","call","getOwnPropertyDescriptor","heading","filter","open","count","resolved","newPinnedComment","newGeneralComment","post","cancel","reply","replyTo","authorName","sendReply","resolve","reopen","showInDocument","detached","generalComment","noOpenComments","noResolvedComments","quoteLabel","CommentHeader","createdAt","formatDate","createElement","className","dateTime","id","comments","headingLevel","selectedCommentId","pendingAnchor","detachedCommentIds","canComment","canCommentRequested","canReply","canReplyRequested","canResolve","canResolveRequested","allowGeneralComments","initialFilter","dateToShortReadableDate","onAddComment","onReply","onToggleResolved","onSelectComment","onCancelPending","headerActions","labels","customLabels","customCssClasses","useMemo","Boolean","formMethods","useForm","defaultValues","newComment","setFilter","useState","replyingToId","setReplyingToId","isSubmitting","setIsSubmitting","cardRefs","useRef","Map","String","watch","openComments","comment","resolvedComments","displayedComments","showNewCommentForm","useEffect","commentsRef","current","selected","find","scrollIntoView","block","behavior","getPreferredScrollBehavior","submit","action","field","setValue","handlePost","content","trim","posted","anchor","handleCancelPending","handleReply","commentId","openReply","renderThread","isSelected","isDetached","includes","cardClasses","card","join","key","ref","element","delete","undefined","author","name","exact","replies","length","map","replyItem","Textarea","formContext","label","text","SimpleButton","cssClass","onClickHandler","disabled","ariaPressed","wrapper","HeaderBar","ToggleGroup","legend","onChange","options","form","list","_default"],"sources":["../../../../src/widgets/documentComments/DocumentComments.tsx"],"sourcesContent":["'use client';\n\nimport React, { FC, useEffect, useMemo, useRef, useState } from 'react';\nimport { FieldValues, useForm } from 'react-hook-form';\n\nimport { HeaderBar, SimpleButton, Textarea } from '../../components';\nimport { dateToShortReadableDate } from '../../helpers/dateHelpers';\nimport { getPreferredScrollBehavior } from '../../helpers/interactionsHelper';\nimport { DocumentComment } from '../shared/documents/annotations/annotations.interfaces';\nimport { ToggleGroup } from '../shared/documents/ToggleGroup';\nimport {\n DocumentCommentsFilter,\n DocumentCommentsLabels,\n DocumentCommentsProps\n} from './documentComments.interfaces';\n\nimport './documentComments.scss';\n\nexport const defaultDocumentCommentsLabels: DocumentCommentsLabels = {\n heading: 'Comments',\n filter: 'Show comments',\n open: (count) => `Open (${ count })`,\n resolved: (count) => `Resolved (${ count })`,\n newPinnedComment: 'Comment on the selected text',\n newGeneralComment: 'Comment on the document',\n post: 'Post comment',\n cancel: 'Cancel',\n reply: 'Reply',\n replyTo: (authorName) => `Reply to ${ authorName }`,\n sendReply: 'Send reply',\n resolve: 'Resolve',\n reopen: 'Reopen',\n showInDocument: 'Show in document',\n detached: 'The text this comment was on has changed or been removed.',\n generalComment: 'General comment',\n noOpenComments: 'There are no open comments.',\n noResolvedComments: 'There are no resolved comments.',\n quoteLabel: 'Commented text'\n};\n\ntype FormValues = { newComment: string; reply: string };\n\ntype CommentHeaderProps = {\n authorName: string;\n createdAt: string;\n formatDate: NonNullable<DocumentCommentsProps['formatDate']>;\n};\n\nconst CommentHeader: FC<CommentHeaderProps> = ({ authorName, createdAt, formatDate }) => (\n <div className=\"documentComments__cardHeader\">\n <span className=\"documentComments__author\">{ authorName }</span>\n <time className=\"documentComments__date\" dateTime={ createdAt }>{ formatDate(createdAt) ?? createdAt }</time>\n </div>\n);\n\n/*\n DocumentComments lists a document's comment threads and lets people add comments (on selected\n text or the whole document), reply, and resolve or reopen them. The host application owns the\n comment data and persistence; this widget renders it and reports actions through callbacks.\n */\nexport const DocumentComments: FC<DocumentCommentsProps> = (\n {\n id,\n comments,\n headingLevel = 3,\n selectedCommentId,\n pendingAnchor = null,\n detachedCommentIds = [],\n canComment: canCommentRequested = true,\n canReply: canReplyRequested = canCommentRequested,\n canResolve: canResolveRequested = canCommentRequested,\n allowGeneralComments = true,\n initialFilter = 'open',\n formatDate = dateToShortReadableDate,\n onAddComment,\n onReply,\n onToggleResolved,\n onSelectComment,\n onCancelPending,\n headerActions,\n labels: customLabels,\n customCssClasses = {}\n }\n) => {\n const labels = useMemo(() => ({ ...defaultDocumentCommentsLabels, ...customLabels }), [customLabels]);\n // An action is only offered when the host can act on it; otherwise a submitted draft would be lost.\n const canComment = canCommentRequested && Boolean(onAddComment);\n const canReply = canReplyRequested && Boolean(onReply);\n const canResolve = canResolveRequested && Boolean(onToggleResolved);\n // Untyped because the library's form fields accept a generic form context.\n const formMethods = useForm<FieldValues>({ defaultValues: { newComment: '', reply: '' } satisfies FormValues });\n const [filter, setFilter] = useState<DocumentCommentsFilter>(initialFilter);\n const [replyingToId, setReplyingToId] = useState<string | null>(null);\n const [isSubmitting, setIsSubmitting] = useState(false);\n const cardRefs = useRef(new Map<string, HTMLLIElement>());\n\n const newComment = String(formMethods.watch('newComment') ?? '');\n const reply = String(formMethods.watch('reply') ?? '');\n const openComments = comments.filter((comment) => !comment.resolved);\n const resolvedComments = comments.filter((comment) => comment.resolved);\n const displayedComments = filter === 'open' ? openComments : resolvedComments;\n const showNewCommentForm = canComment && filter === 'open' && (pendingAnchor !== null || allowGeneralComments);\n\n // A new selection is commented on in the open list, so switch to it.\n useEffect(() => {\n if (pendingAnchor) {\n setFilter('open');\n }\n }, [pendingAnchor]);\n\n // Read through a ref so only a change of selection scrolls the list, not new comments or replies.\n const commentsRef = useRef(comments);\n commentsRef.current = comments;\n\n // Bring the selected thread into view, e.g. after its bubble is chosen in the document.\n useEffect(() => {\n const selected = commentsRef.current.find((comment) => comment.id === selectedCommentId);\n if (!selected) {\n return;\n }\n setFilter(selected.resolved ? 'resolved' : 'open');\n cardRefs.current.get(selected.id)?.scrollIntoView?.({ block: 'nearest', behavior: getPreferredScrollBehavior() });\n }, [selectedCommentId]);\n\n const submit = async (action: () => void | Promise<void>, field: keyof FormValues) => {\n setIsSubmitting(true);\n try {\n await action();\n formMethods.setValue(field, '');\n return true;\n } catch {\n // The host's callback reports the failure; the draft is kept so it can be retried.\n return false;\n } finally {\n setIsSubmitting(false);\n }\n };\n\n const handlePost = async () => {\n const content = newComment.trim();\n if (!content || !onAddComment) {\n return;\n }\n const posted = await submit(() => onAddComment({ content, ...(pendingAnchor ? { anchor: pendingAnchor } : {}) }), 'newComment');\n if (posted && pendingAnchor) {\n onCancelPending?.();\n }\n };\n\n const handleCancelPending = () => {\n formMethods.setValue('newComment', '');\n onCancelPending?.();\n };\n\n const handleReply = async (commentId: string) => {\n const content = reply.trim();\n if (content && onReply && await submit(() => onReply(commentId, content), 'reply')) {\n setReplyingToId(null);\n }\n };\n\n const openReply = (commentId: string) => {\n formMethods.setValue('reply', '');\n setReplyingToId(commentId);\n };\n\n const renderThread = (comment: DocumentComment) => {\n const isSelected = comment.id === selectedCommentId;\n const isDetached = Boolean(comment.anchor) && detachedCommentIds.includes(comment.id);\n const cardClasses = [\n 'documentComments__card',\n isSelected ? 'documentComments__card--selected' : '',\n comment.resolved ? 'documentComments__card--resolved' : '',\n isDetached ? 'documentComments__card--detached' : '',\n customCssClasses.card || ''\n ].filter(Boolean).join(' ');\n\n return (\n <li\n key={ comment.id }\n ref={ (element) => {\n if (element) {\n cardRefs.current.set(comment.id, element);\n } else {\n cardRefs.current.delete(comment.id);\n }\n } }\n className={ cardClasses }\n aria-current={ isSelected ? 'true' : undefined }\n >\n <CommentHeader authorName={ comment.author.name } createdAt={ comment.createdAt } formatDate={ formatDate } />\n\n { comment.anchor ? (\n <blockquote className=\"documentComments__quote\" aria-label={ labels.quoteLabel }>{ comment.anchor.exact }</blockquote>\n ) : (\n <p className=\"documentComments__general\">{ labels.generalComment }</p>\n ) }\n { isDetached && <p className=\"documentComments__detached\">{ labels.detached }</p> }\n\n <p className=\"documentComments__content\">{ comment.content }</p>\n\n { comment.replies?.length ? (\n <ul className=\"documentComments__replies\">\n { comment.replies.map((replyItem) => (\n <li key={ replyItem.id } className=\"documentComments__reply\">\n <CommentHeader authorName={ replyItem.author.name } createdAt={ replyItem.createdAt } formatDate={ formatDate } />\n <p className=\"documentComments__content\">{ replyItem.content }</p>\n </li>\n )) }\n </ul>\n ) : null }\n\n { replyingToId === comment.id ? (\n <div className=\"documentComments__replyForm\">\n <Textarea\n formContext={ formMethods }\n label={ { text: labels.replyTo(comment.author.name) } }\n field={ { id: `${ id }_reply_${ comment.id }`, name: 'reply' } }\n />\n <div className=\"documentComments__actions\">\n <SimpleButton\n id={ `${ id }_cancelReply_${ comment.id }` }\n label={ labels.cancel }\n cssClass=\"button secondary outline compact\"\n onClickHandler={ () => setReplyingToId(null) }\n />\n <SimpleButton\n id={ `${ id }_sendReply_${ comment.id }` }\n label={ labels.sendReply }\n cssClass=\"button primary compact\"\n disabled={ !reply.trim() || isSubmitting }\n onClickHandler={ () => handleReply(comment.id) }\n />\n </div>\n </div>\n ) : (\n <div className=\"documentComments__actions\">\n { comment.anchor && !isDetached && onSelectComment && (\n <SimpleButton\n id={ `${ id }_show_${ comment.id }` }\n label={ labels.showInDocument }\n cssClass=\"button secondary text-only compact\"\n ariaPressed={ isSelected }\n onClickHandler={ () => onSelectComment?.(comment.id) }\n />\n ) }\n { canReply && !comment.resolved && (\n <SimpleButton\n id={ `${ id }_reply_${ comment.id }` }\n label={ labels.reply }\n cssClass=\"button secondary outline compact\"\n onClickHandler={ () => openReply(comment.id) }\n />\n ) }\n { canResolve && (\n <SimpleButton\n id={ `${ id }_resolve_${ comment.id }` }\n label={ comment.resolved ? labels.reopen : labels.resolve }\n cssClass=\"button secondary outline compact\"\n onClickHandler={ () => onToggleResolved?.(comment.id, !comment.resolved) }\n />\n ) }\n </div>\n ) }\n </li>\n );\n };\n\n return (\n <section id={ id } className={ `documentComments ${ customCssClasses.wrapper || '' }`.trim() } aria-label={ labels.heading }>\n <HeaderBar text={ labels.heading } headingLevel={ headingLevel }>\n { headerActions }\n </HeaderBar>\n\n <ToggleGroup\n id={ `${ id }_filter` }\n legend={ labels.filter }\n value={ filter }\n onChange={ setFilter }\n options={ [\n { value: 'open', label: labels.open(openComments.length) },\n { value: 'resolved', label: labels.resolved(resolvedComments.length) }\n ] }\n />\n\n { showNewCommentForm && (\n <div className={ `documentComments__form ${ customCssClasses.form || '' }`.trim() }>\n { pendingAnchor && (\n <blockquote className=\"documentComments__quote\" aria-label={ labels.quoteLabel }>{ pendingAnchor.exact }</blockquote>\n ) }\n <Textarea\n formContext={ formMethods }\n label={ { text: pendingAnchor ? labels.newPinnedComment : labels.newGeneralComment } }\n field={ { id: `${ id }_newComment`, name: 'newComment' } }\n />\n <div className=\"documentComments__actions\">\n { pendingAnchor && (\n <SimpleButton\n id={ `${ id }_cancelPending` }\n label={ labels.cancel }\n cssClass=\"button secondary outline compact\"\n onClickHandler={ handleCancelPending }\n />\n ) }\n <SimpleButton\n id={ `${ id }_post` }\n label={ labels.post }\n cssClass=\"button primary compact\"\n disabled={ !newComment.trim() || isSubmitting }\n onClickHandler={ handlePost }\n />\n </div>\n </div>\n ) }\n\n { displayedComments.length ? (\n <ul className={ `documentComments__list ${ customCssClasses.list || '' }`.trim() }>\n { displayedComments.map(renderThread) }\n </ul>\n ) : (\n <p className=\"documentComments__empty\">{ filter === 'open' ? labels.noOpenComments : labels.noResolvedComments }</p>\n ) }\n </section>\n );\n};\n\nexport default DocumentComments;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,107 @@
1
+ .documentComments {
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: var(--documentCommentsGap, var(--documentGap, 10px));
5
+ min-width: 0;
6
+ font-size: var(--documentCommentsFontSize, 0.875rem);
7
+ }
8
+ .documentComments .headerBar {
9
+ margin-bottom: 0;
10
+ }
11
+
12
+ .documentComments__form,
13
+ .documentComments__replyForm {
14
+ display: flex;
15
+ flex-direction: column;
16
+ gap: var(--documentCommentsGap, var(--documentGap, 10px));
17
+ }
18
+
19
+ .documentComments__list,
20
+ .documentComments__replies {
21
+ display: flex;
22
+ flex-direction: column;
23
+ gap: var(--documentCommentsGap, var(--documentGap, 10px));
24
+ margin: 0;
25
+ padding: 0;
26
+ list-style: none;
27
+ }
28
+
29
+ .documentComments__card {
30
+ display: flex;
31
+ flex-direction: column;
32
+ gap: var(--documentCommentsGap, var(--documentGap, 10px));
33
+ padding: var(--documentCommentsCardPadding, 15px);
34
+ border: var(--documentCommentsCardBorder, var(--documentBorder));
35
+ border-radius: var(--documentCommentsCardBorderRadius, var(--documentBorderRadius, 5px));
36
+ background: var(--documentCommentsCardBg, var(--documentBg, #fff));
37
+ }
38
+
39
+ .documentComments__card--selected {
40
+ border-color: var(--documentCommentsSelectedBorderColor, var(--primaryButtonBg, currentColor));
41
+ box-shadow: 0 0 0 var(--documentCommentsSelectedBorderWidth, 2px) var(--documentCommentsSelectedBorderColor, var(--primaryButtonBg, currentColor));
42
+ }
43
+
44
+ .documentComments__card--resolved {
45
+ opacity: var(--documentCommentsResolvedOpacity, 0.75);
46
+ }
47
+
48
+ .documentComments__cardHeader {
49
+ display: flex;
50
+ flex-wrap: wrap;
51
+ justify-content: space-between;
52
+ gap: 5px;
53
+ }
54
+
55
+ .documentComments__author {
56
+ font-weight: 600;
57
+ }
58
+
59
+ .documentComments__date,
60
+ .documentComments__general,
61
+ .documentComments__empty {
62
+ color: var(--documentCommentsMutedColor, var(--documentMutedFgColor));
63
+ }
64
+
65
+ .documentComments__quote {
66
+ margin: 0;
67
+ padding: 5px 10px;
68
+ border-left: var(--documentCommentsQuoteBorder, 3px solid var(--statusWarnColor, #fc0));
69
+ background: var(--documentCommentsQuoteBg, var(--documentSubtleBg));
70
+ font-style: italic;
71
+ overflow-wrap: anywhere;
72
+ white-space: pre-line;
73
+ }
74
+
75
+ .documentComments__general,
76
+ .documentComments__content,
77
+ .documentComments__empty {
78
+ margin: 0;
79
+ }
80
+
81
+ .documentComments__content {
82
+ overflow-wrap: anywhere;
83
+ white-space: pre-line;
84
+ }
85
+
86
+ .documentComments__detached {
87
+ margin: 0;
88
+ color: var(--documentCommentsDetachedColor, var(--documentErrorColor, #f00));
89
+ }
90
+
91
+ .documentComments__replies {
92
+ padding-left: var(--documentCommentsReplyIndent, 15px);
93
+ border-left: var(--documentCommentsCardBorder, var(--documentBorder));
94
+ }
95
+
96
+ .documentComments__reply {
97
+ display: flex;
98
+ flex-direction: column;
99
+ gap: 5px;
100
+ }
101
+
102
+ .documentComments__actions {
103
+ display: flex;
104
+ flex-wrap: wrap;
105
+ justify-content: flex-end;
106
+ gap: 5px;
107
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=documentComments.interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documentComments.interfaces.js","names":[],"sources":["../../../../src/widgets/documentComments/documentComments.interfaces.ts"],"sourcesContent":["import { ReactNode } from 'react';\n\nimport { DocumentComment, TextQuoteAnchor } from '../shared/documents/annotations/annotations.interfaces';\n\nexport type DocumentCommentsFilter = 'open' | 'resolved';\n\nexport type NewDocumentComment = {\n content: string;\n // Absent for a general comment about the whole document.\n anchor?: TextQuoteAnchor;\n};\n\nexport type DocumentCommentsLabels = {\n heading: string;\n filter: string;\n /* eslint-disable-next-line no-unused-vars */\n open: (count: number) => string;\n /* eslint-disable-next-line no-unused-vars */\n resolved: (count: number) => string;\n newPinnedComment: string;\n newGeneralComment: string;\n post: string;\n cancel: string;\n reply: string;\n /* eslint-disable-next-line no-unused-vars */\n replyTo: (authorName: string) => string;\n sendReply: string;\n resolve: string;\n reopen: string;\n showInDocument: string;\n detached: string;\n generalComment: string;\n noOpenComments: string;\n noResolvedComments: string;\n quoteLabel: string;\n};\n\nexport type DocumentCommentsCssClasses = {\n wrapper?: string;\n form?: string;\n list?: string;\n card?: string;\n};\n\nexport type DocumentCommentsProps = {\n id: string;\n comments: DocumentComment[];\n headingLevel?: 2 | 3 | 4 | 5;\n selectedCommentId?: string;\n // Text the reader has just selected to comment on; shows a pinned new-comment form.\n pendingAnchor?: TextQuoteAnchor | null;\n // Pinned comments whose quoted text can no longer be found, e.g. from DocumentViewer's onAnchorStatusChange.\n detachedCommentIds?: string[];\n canComment?: boolean;\n canReply?: boolean;\n canResolve?: boolean;\n // Allow comments about the whole document as well as on selected text.\n allowGeneralComments?: boolean;\n initialFilter?: DocumentCommentsFilter;\n // Defaults to the library's dateToShortReadableDate; return null to show the value as given.\n /* eslint-disable-next-line no-unused-vars */\n formatDate?: (value: string) => string | null;\n // Return a promise to keep the form disabled until it settles; the draft is kept if it rejects.\n /* eslint-disable-next-line no-unused-vars */\n onAddComment?: (comment: NewDocumentComment) => void | Promise<void>;\n /* eslint-disable-next-line no-unused-vars */\n onReply?: (commentId: string, content: string) => void | Promise<void>;\n /* eslint-disable-next-line no-unused-vars */\n onToggleResolved?: (commentId: string, resolved: boolean) => void;\n /* eslint-disable-next-line no-unused-vars */\n onSelectComment?: (commentId: string) => void;\n onCancelPending?: () => void;\n // Rendered in the panel header, e.g. a close button.\n headerActions?: ReactNode;\n labels?: Partial<DocumentCommentsLabels>;\n customCssClasses?: DocumentCommentsCssClasses;\n};\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "DocumentComments", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _DocumentComments.DocumentComments;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "defaultDocumentCommentsLabels", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _DocumentComments.defaultDocumentCommentsLabels;
16
+ }
17
+ });
18
+ var _DocumentComments = require("./DocumentComments");
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_DocumentComments","require"],"sources":["../../../../src/widgets/documentComments/index.ts"],"sourcesContent":["export { DocumentComments, defaultDocumentCommentsLabels } from './DocumentComments';\n\nexport type {\n DocumentCommentsCssClasses,\n DocumentCommentsFilter,\n DocumentCommentsLabels,\n DocumentCommentsProps,\n NewDocumentComment\n} from './documentComments.interfaces';\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA","ignoreList":[]}
@@ -0,0 +1,309 @@
1
+ "use strict";
2
+ 'use client';
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.defaultDocumentComparerLabels = exports.default = exports.DocumentComparer = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _components = require("../../components");
12
+ var _LoadingMessage = require("../../components/design/loadingMessage/LoadingMessage");
13
+ var _DocumentEditor = require("../documentEditor/DocumentEditor");
14
+ var _DocumentViewer = require("../documentViewer/DocumentViewer");
15
+ var _AnnotationLayer = require("../shared/documents/annotations/AnnotationLayer");
16
+ var _dateHelpers = require("../../helpers/dateHelpers");
17
+ var _documentHelpers = require("../shared/documents/documentHelpers");
18
+ var _lazyEngines = require("../shared/documents/engines/lazyEngines");
19
+ var _ToggleGroup = require("../shared/documents/ToggleGroup");
20
+ var _useDocumentContent = require("../shared/documents/useDocumentContent");
21
+ require("./documentComparer.css");
22
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
23
+ const defaultDocumentComparerLabels = exports.defaultDocumentComparerLabels = {
24
+ originalHeading: 'Original',
25
+ revisedHeading: 'Revised',
26
+ viewSelector: 'Comparison view',
27
+ sideBySide: 'Side by side',
28
+ differences: 'Differences',
29
+ diffSelector: 'Difference format',
30
+ formatted: 'Formatted',
31
+ source: 'Markdown source',
32
+ edit: 'Edit',
33
+ save: 'Save changes',
34
+ cancel: 'Cancel',
35
+ version: 'Version',
36
+ lastModified: 'Last modified',
37
+ notRecorded: 'Not recorded',
38
+ loadingHeading: 'Loading',
39
+ loadingMessage: 'Loading document',
40
+ loadError: 'The revised document could not be loaded.',
41
+ noSourcePreview: 'No preview of the original document is available.',
42
+ added: 'Added',
43
+ removed: 'Removed',
44
+ noChanges: 'There are no differences between the documents.',
45
+ diffSummary: (added, removed) => `${added} added, ${removed} removed`,
46
+ pageImageAlt: (page, total, title) => `Page ${page} of ${total} of ${title}`
47
+ };
48
+
49
+ /*
50
+ DocumentComparer shows an original document beside a revised markdown version, or the
51
+ differences between the revised version and a baseline, and optionally lets the revised version
52
+ be edited. Review and lifecycle workflow belongs to the host application, which supplies it
53
+ through the action slots.
54
+ */
55
+ const DocumentComparer = ({
56
+ id,
57
+ title,
58
+ headingLevel = 2,
59
+ originalDocument,
60
+ revisedDocument,
61
+ baselineMarkdown,
62
+ initialView = 'sideBySide',
63
+ initialDiffView = 'rendered',
64
+ revisedPosition = 'start',
65
+ enableEditing = false,
66
+ onChange,
67
+ onSave,
68
+ editorProps = {},
69
+ originalRenderers,
70
+ resolveResourceUrl,
71
+ trustedPdfOrigins,
72
+ formatDate = _dateHelpers.dateToShortReadableDate,
73
+ headerActions,
74
+ originalPanelActions,
75
+ revisedPanelActions,
76
+ footerActions,
77
+ annotations,
78
+ labels: customLabels,
79
+ customCssClasses = {}
80
+ }) => {
81
+ const labels = (0, _react.useMemo)(() => ({
82
+ ...defaultDocumentComparerLabels,
83
+ ...customLabels
84
+ }), [customLabels]);
85
+ const revisedContent = (0, _useDocumentContent.useDocumentContent)(revisedDocument, 'markdown');
86
+ const loadedMarkdown = revisedContent.loaded?.content;
87
+ const [savedMarkdown, setSavedMarkdown] = (0, _react.useState)(undefined);
88
+ const [draftMarkdown, setDraftMarkdown] = (0, _react.useState)(undefined);
89
+ const [isEditing, setIsEditing] = (0, _react.useState)(false);
90
+ const [isSaving, setIsSaving] = (0, _react.useState)(false);
91
+ const [view, setView] = (0, _react.useState)(initialView);
92
+ const [diffView, setDiffView] = (0, _react.useState)(initialDiffView);
93
+
94
+ // A newly loaded revised document replaces any local edits made to the previous one.
95
+ (0, _react.useEffect)(() => {
96
+ setSavedMarkdown(loadedMarkdown);
97
+ setDraftMarkdown(loadedMarkdown);
98
+ setIsEditing(false);
99
+ }, [loadedMarkdown]);
100
+ const currentMarkdown = (isEditing ? draftMarkdown : savedMarkdown) ?? '';
101
+ const baseline = baselineMarkdown ?? loadedMarkdown ?? '';
102
+ const isDirty = draftMarkdown !== savedMarkdown;
103
+ const panelHeadingLevel = Math.min(headingLevel + 1, 6);
104
+ const resolveRevisedResource = resource => (0, _documentHelpers.resolveDocumentResourceWithFallback)(resource, revisedDocument.url, resolveResourceUrl);
105
+ const handleDraftChange = markdown => {
106
+ setDraftMarkdown(markdown);
107
+ onChange?.(markdown);
108
+ };
109
+ const handleCancel = () => {
110
+ setDraftMarkdown(savedMarkdown);
111
+ setIsEditing(false);
112
+ };
113
+ const handleSave = async () => {
114
+ const markdown = draftMarkdown ?? '';
115
+ setIsSaving(true);
116
+ try {
117
+ await onSave?.({
118
+ markdown,
119
+ baselineMarkdown: baseline
120
+ });
121
+ setSavedMarkdown(markdown);
122
+ setIsEditing(false);
123
+ } catch {
124
+ // The host's onSave reports the failure; staying in edit mode keeps the draft so it can be retried.
125
+ } finally {
126
+ setIsSaving(false);
127
+ }
128
+ };
129
+ const loadingIndicator = /*#__PURE__*/_react.default.createElement(_LoadingMessage.LoadingMessage, {
130
+ heading: labels.loadingHeading,
131
+ loadingMessage: labels.loadingMessage,
132
+ isInline: true
133
+ });
134
+ const renderMetadata = document => /*#__PURE__*/_react.default.createElement("dl", {
135
+ className: "documentComparer__metadata"
136
+ }, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("dt", null, labels.version), /*#__PURE__*/_react.default.createElement("dd", null, document.version || labels.notRecorded)), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("dt", null, labels.lastModified), /*#__PURE__*/_react.default.createElement("dd", null, document.lastModified ? formatDate(document.lastModified) ?? document.lastModified : labels.notRecorded)));
137
+ const renderPanel = (panel, document, heading, body, actions) => {
138
+ const cssClass = panel === 'original' ? customCssClasses.originalPanel : customCssClasses.revisedPanel;
139
+ return /*#__PURE__*/_react.default.createElement("article", {
140
+ className: `documentComparer__panel documentComparer__panel--${panel} ${cssClass || ''}`.trim(),
141
+ "aria-label": heading
142
+ }, /*#__PURE__*/_react.default.createElement("div", {
143
+ className: "documentComparer__panelHeader"
144
+ }, /*#__PURE__*/_react.default.createElement(_components.HeaderBar, {
145
+ text: heading,
146
+ headingLevel: panelHeadingLevel
147
+ }), /*#__PURE__*/_react.default.createElement("p", {
148
+ className: "documentComparer__documentTitle"
149
+ }, document.title), renderMetadata(document)), /*#__PURE__*/_react.default.createElement("div", {
150
+ className: "documentComparer__panelBody"
151
+ }, body), actions && /*#__PURE__*/_react.default.createElement("div", {
152
+ className: "documentComparer__panelActions"
153
+ }, actions));
154
+ };
155
+ const renderOriginalBody = () => {
156
+ const {
157
+ pageImages = []
158
+ } = originalDocument;
159
+ if (pageImages.length) {
160
+ return /*#__PURE__*/_react.default.createElement("div", {
161
+ className: "documentComparer__pages"
162
+ }, pageImages.map((pageUrl, pageIndex) => /*#__PURE__*/_react.default.createElement("img", {
163
+ key: pageUrl,
164
+ src: pageUrl,
165
+ alt: labels.pageImageAlt(pageIndex + 1, pageImages.length, originalDocument.title),
166
+ loading: "lazy"
167
+ })));
168
+ }
169
+ if (!originalDocument.file && !originalDocument.url && originalDocument.text === undefined) {
170
+ return /*#__PURE__*/_react.default.createElement("p", {
171
+ className: "documentComparer__message"
172
+ }, labels.noSourcePreview);
173
+ }
174
+ return /*#__PURE__*/_react.default.createElement(_DocumentViewer.DocumentViewer, {
175
+ id: `${id}_originalViewer`,
176
+ document: originalDocument,
177
+ showHeader: false,
178
+ showMetadata: false,
179
+ contentHeadingOffset: panelHeadingLevel,
180
+ renderers: originalRenderers,
181
+ resolveResourceUrl: resolveResourceUrl,
182
+ trustedPdfOrigins: trustedPdfOrigins,
183
+ customCssClasses: {
184
+ wrapper: 'documentComparer__viewer'
185
+ }
186
+ });
187
+ };
188
+ const renderRevisedBody = () => {
189
+ if (revisedContent.status === 'error') {
190
+ return /*#__PURE__*/_react.default.createElement(_components.PageBanner, {
191
+ id: `${id}_revisedError`,
192
+ type: "error",
193
+ icon: "warning",
194
+ displayMode: "inline",
195
+ animation: "none",
196
+ disableClose: true
197
+ }, /*#__PURE__*/_react.default.createElement("span", {
198
+ role: "alert"
199
+ }, labels.loadError));
200
+ }
201
+ if (revisedContent.status !== 'ready') {
202
+ return loadingIndicator;
203
+ }
204
+ if (isEditing) {
205
+ return /*#__PURE__*/_react.default.createElement(_DocumentEditor.DocumentEditor, (0, _extends2.default)({
206
+ id: `${id}_editor`,
207
+ label: `${labels.edit}: ${revisedDocument.title}`,
208
+ hideLabel: true,
209
+ markdown: currentMarkdown,
210
+ baselineMarkdown: baseline,
211
+ onChange: handleDraftChange,
212
+ resolveResourceUrl: resolveRevisedResource,
213
+ annotations: annotations
214
+ }, editorProps));
215
+ }
216
+ const renderer = /*#__PURE__*/_react.default.createElement(_react.Suspense, {
217
+ fallback: loadingIndicator
218
+ }, /*#__PURE__*/_react.default.createElement(_lazyEngines.LazyMarkdownRenderer, {
219
+ markdown: currentMarkdown,
220
+ headingOffset: panelHeadingLevel,
221
+ resolveResourceUrl: resolveRevisedResource
222
+ }));
223
+ return annotations ? /*#__PURE__*/_react.default.createElement(_AnnotationLayer.AnnotationLayer, (0, _extends2.default)({}, annotations, {
224
+ id: `${id}_annotations`
225
+ }), renderer) : renderer;
226
+ };
227
+ const editingActions = enableEditing && revisedContent.status === 'ready' && (isEditing ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_components.SimpleButton, {
228
+ id: `${id}_cancel`,
229
+ label: labels.cancel,
230
+ cssClass: "button secondary outline compact",
231
+ onClickHandler: handleCancel
232
+ }), /*#__PURE__*/_react.default.createElement(_components.SimpleButton, {
233
+ id: `${id}_save`,
234
+ label: labels.save,
235
+ cssClass: "button primary compact",
236
+ disabled: !isDirty || isSaving,
237
+ onClickHandler: handleSave
238
+ })) : /*#__PURE__*/_react.default.createElement(_components.SimpleButton, {
239
+ id: `${id}_edit`,
240
+ label: labels.edit,
241
+ cssClass: "button secondary compact",
242
+ onClickHandler: () => setIsEditing(true)
243
+ }));
244
+ const revisedActions = (editingActions || revisedPanelActions) && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, revisedPanelActions, editingActions);
245
+ const panels = [/*#__PURE__*/_react.default.createElement(_react.default.Fragment, {
246
+ key: "revised"
247
+ }, renderPanel('revised', revisedDocument, labels.revisedHeading, renderRevisedBody(), revisedActions)), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, {
248
+ key: "original"
249
+ }, renderPanel('original', originalDocument, labels.originalHeading, renderOriginalBody(), originalPanelActions))];
250
+ return /*#__PURE__*/_react.default.createElement("section", {
251
+ id: id,
252
+ className: `documentComparer ${customCssClasses.wrapper || ''}`.trim(),
253
+ "aria-label": title
254
+ }, /*#__PURE__*/_react.default.createElement("div", {
255
+ className: `documentComparer__header ${customCssClasses.header || ''}`.trim()
256
+ }, /*#__PURE__*/_react.default.createElement(_components.HeaderBar, {
257
+ text: title,
258
+ headingLevel: headingLevel
259
+ }, headerActions), /*#__PURE__*/_react.default.createElement("div", {
260
+ className: "documentComparer__controls"
261
+ }, /*#__PURE__*/_react.default.createElement(_ToggleGroup.ToggleGroup, {
262
+ id: `${id}_view`,
263
+ legend: labels.viewSelector,
264
+ value: view,
265
+ onChange: setView,
266
+ options: [{
267
+ value: 'sideBySide',
268
+ label: labels.sideBySide
269
+ }, {
270
+ value: 'differences',
271
+ label: labels.differences
272
+ }]
273
+ }), view === 'differences' && /*#__PURE__*/_react.default.createElement(_ToggleGroup.ToggleGroup, {
274
+ id: `${id}_diffView`,
275
+ legend: labels.diffSelector,
276
+ value: diffView,
277
+ onChange: setDiffView,
278
+ options: [{
279
+ value: 'rendered',
280
+ label: labels.formatted
281
+ }, {
282
+ value: 'source',
283
+ label: labels.source
284
+ }]
285
+ }))), view === 'sideBySide' && /*#__PURE__*/_react.default.createElement("div", {
286
+ className: `documentComparer__columns ${customCssClasses.columns || ''}`.trim()
287
+ }, revisedPosition === 'start' ? panels : [...panels].reverse()), view === 'differences' && /*#__PURE__*/_react.default.createElement("div", {
288
+ className: `documentComparer__differences ${customCssClasses.differences || ''}`.trim()
289
+ }, revisedContent.status === 'ready' ? /*#__PURE__*/_react.default.createElement(_react.Suspense, {
290
+ fallback: loadingIndicator
291
+ }, /*#__PURE__*/_react.default.createElement(_lazyEngines.LazyDocumentDiff, {
292
+ baseline: baseline,
293
+ revised: currentMarkdown,
294
+ view: diffView,
295
+ headingOffset: headingLevel,
296
+ resolveResourceUrl: resolveRevisedResource,
297
+ labels: {
298
+ added: labels.added,
299
+ removed: labels.removed,
300
+ noChanges: labels.noChanges,
301
+ summary: labels.diffSummary
302
+ }
303
+ })) : renderRevisedBody()), footerActions && /*#__PURE__*/_react.default.createElement("div", {
304
+ className: `documentComparer__footer ${customCssClasses.footer || ''}`.trim()
305
+ }, footerActions));
306
+ };
307
+ exports.DocumentComparer = DocumentComparer;
308
+ var _default = exports.default = DocumentComparer;
309
+ //# sourceMappingURL=DocumentComparer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocumentComparer.js","names":["_interopRequireDefault","require","Object","defineProperty","exports","value","defaultDocumentComparerLabels","default","DocumentComparer","_extends2","_react","_interopRequireWildcard","_components","_LoadingMessage","_DocumentEditor","_DocumentViewer","_AnnotationLayer","_dateHelpers","_documentHelpers","_lazyEngines","_ToggleGroup","_useDocumentContent","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","has","get","set","hasOwnProperty","call","getOwnPropertyDescriptor","originalHeading","revisedHeading","viewSelector","sideBySide","differences","diffSelector","formatted","source","edit","save","cancel","version","lastModified","notRecorded","loadingHeading","loadingMessage","loadError","noSourcePreview","added","removed","noChanges","diffSummary","pageImageAlt","page","total","title","id","headingLevel","originalDocument","revisedDocument","baselineMarkdown","initialView","initialDiffView","revisedPosition","enableEditing","onChange","onSave","editorProps","originalRenderers","resolveResourceUrl","trustedPdfOrigins","formatDate","dateToShortReadableDate","headerActions","originalPanelActions","revisedPanelActions","footerActions","annotations","labels","customLabels","customCssClasses","useMemo","revisedContent","useDocumentContent","loadedMarkdown","loaded","content","savedMarkdown","setSavedMarkdown","useState","undefined","draftMarkdown","setDraftMarkdown","isEditing","setIsEditing","isSaving","setIsSaving","view","setView","diffView","setDiffView","useEffect","currentMarkdown","baseline","isDirty","panelHeadingLevel","Math","min","resolveRevisedResource","resource","resolveDocumentResourceWithFallback","url","handleDraftChange","markdown","handleCancel","handleSave","loadingIndicator","createElement","LoadingMessage","heading","isInline","renderMetadata","document","className","renderPanel","panel","body","actions","cssClass","originalPanel","revisedPanel","trim","HeaderBar","text","renderOriginalBody","pageImages","length","map","pageUrl","pageIndex","key","src","alt","loading","file","DocumentViewer","showHeader","showMetadata","contentHeadingOffset","renderers","wrapper","renderRevisedBody","status","PageBanner","type","icon","displayMode","animation","disableClose","role","DocumentEditor","label","hideLabel","renderer","Suspense","fallback","LazyMarkdownRenderer","headingOffset","AnnotationLayer","editingActions","Fragment","SimpleButton","onClickHandler","disabled","revisedActions","panels","header","ToggleGroup","legend","options","columns","reverse","LazyDocumentDiff","revised","summary","footer","_default"],"sources":["../../../../src/widgets/documentComparer/DocumentComparer.tsx"],"sourcesContent":["'use client';\n\nimport React, { FC, ReactNode, Suspense, useEffect, useMemo, useState } from 'react';\n\nimport { HeaderBar, PageBanner, SimpleButton } from '../../components';\nimport { LoadingMessage } from '../../components/design/loadingMessage/LoadingMessage';\nimport { DocumentEditor } from '../documentEditor/DocumentEditor';\nimport { DocumentViewer } from '../documentViewer/DocumentViewer';\nimport { AnnotationLayer } from '../shared/documents/annotations/AnnotationLayer';\nimport { dateToShortReadableDate } from '../../helpers/dateHelpers';\nimport { resolveDocumentResourceWithFallback } from '../shared/documents/documentHelpers';\nimport { LazyDocumentDiff, LazyMarkdownRenderer } from '../shared/documents/engines/lazyEngines';\nimport { ToggleGroup } from '../shared/documents/ToggleGroup';\nimport { useDocumentContent } from '../shared/documents/useDocumentContent';\nimport {\n ComparisonDocument,\n DocumentComparerLabels,\n DocumentComparerProps,\n DocumentComparerView,\n DocumentDiffView\n} from './documentComparer.interfaces';\n\nimport './documentComparer.scss';\n\n\nexport const defaultDocumentComparerLabels: DocumentComparerLabels = {\n originalHeading: 'Original',\n revisedHeading: 'Revised',\n viewSelector: 'Comparison view',\n sideBySide: 'Side by side',\n differences: 'Differences',\n diffSelector: 'Difference format',\n formatted: 'Formatted',\n source: 'Markdown source',\n edit: 'Edit',\n save: 'Save changes',\n cancel: 'Cancel',\n version: 'Version',\n lastModified: 'Last modified',\n notRecorded: 'Not recorded',\n loadingHeading: 'Loading',\n loadingMessage: 'Loading document',\n loadError: 'The revised document could not be loaded.',\n noSourcePreview: 'No preview of the original document is available.',\n added: 'Added',\n removed: 'Removed',\n noChanges: 'There are no differences between the documents.',\n diffSummary: (added, removed) => `${ added } added, ${ removed } removed`,\n pageImageAlt: (page, total, title) => `Page ${ page } of ${ total } of ${ title }`\n};\n\n/*\n DocumentComparer shows an original document beside a revised markdown version, or the\n differences between the revised version and a baseline, and optionally lets the revised version\n be edited. Review and lifecycle workflow belongs to the host application, which supplies it\n through the action slots.\n */\nexport const DocumentComparer: FC<DocumentComparerProps> = (\n {\n id,\n title,\n headingLevel = 2,\n originalDocument,\n revisedDocument,\n baselineMarkdown,\n initialView = 'sideBySide',\n initialDiffView = 'rendered',\n revisedPosition = 'start',\n enableEditing = false,\n onChange,\n onSave,\n editorProps = {},\n originalRenderers,\n resolveResourceUrl,\n trustedPdfOrigins,\n formatDate = dateToShortReadableDate,\n headerActions,\n originalPanelActions,\n revisedPanelActions,\n footerActions,\n annotations,\n labels: customLabels,\n customCssClasses = {}\n }\n) => {\n const labels = useMemo(() => ({ ...defaultDocumentComparerLabels, ...customLabels }), [customLabels]);\n const revisedContent = useDocumentContent(revisedDocument, 'markdown');\n const loadedMarkdown = revisedContent.loaded?.content;\n\n const [savedMarkdown, setSavedMarkdown] = useState<string | undefined>(undefined);\n const [draftMarkdown, setDraftMarkdown] = useState<string | undefined>(undefined);\n const [isEditing, setIsEditing] = useState(false);\n const [isSaving, setIsSaving] = useState(false);\n const [view, setView] = useState<DocumentComparerView>(initialView);\n const [diffView, setDiffView] = useState<DocumentDiffView>(initialDiffView);\n\n // A newly loaded revised document replaces any local edits made to the previous one.\n useEffect(() => {\n setSavedMarkdown(loadedMarkdown);\n setDraftMarkdown(loadedMarkdown);\n setIsEditing(false);\n }, [loadedMarkdown]);\n\n const currentMarkdown = (isEditing ? draftMarkdown : savedMarkdown) ?? '';\n const baseline = baselineMarkdown ?? loadedMarkdown ?? '';\n const isDirty = draftMarkdown !== savedMarkdown;\n const panelHeadingLevel = Math.min(headingLevel + 1, 6) as 2 | 3 | 4 | 5;\n\n const resolveRevisedResource = (resource: string) =>\n resolveDocumentResourceWithFallback(resource, revisedDocument.url, resolveResourceUrl);\n\n const handleDraftChange = (markdown: string) => {\n setDraftMarkdown(markdown);\n onChange?.(markdown);\n };\n\n const handleCancel = () => {\n setDraftMarkdown(savedMarkdown);\n setIsEditing(false);\n };\n\n const handleSave = async () => {\n const markdown = draftMarkdown ?? '';\n setIsSaving(true);\n try {\n await onSave?.({ markdown, baselineMarkdown: baseline });\n setSavedMarkdown(markdown);\n setIsEditing(false);\n } catch {\n // The host's onSave reports the failure; staying in edit mode keeps the draft so it can be retried.\n } finally {\n setIsSaving(false);\n }\n };\n\n const loadingIndicator = <LoadingMessage heading={ labels.loadingHeading } loadingMessage={ labels.loadingMessage } isInline />;\n\n const renderMetadata = (document: ComparisonDocument) => (\n <dl className=\"documentComparer__metadata\">\n <div>\n <dt>{ labels.version }</dt>\n <dd>{ document.version || labels.notRecorded }</dd>\n </div>\n <div>\n <dt>{ labels.lastModified }</dt>\n <dd>{ document.lastModified ? formatDate(document.lastModified) ?? document.lastModified : labels.notRecorded }</dd>\n </div>\n </dl>\n );\n\n const renderPanel = (\n panel: 'original' | 'revised',\n document: ComparisonDocument,\n heading: string,\n body: ReactNode,\n actions: ReactNode\n ) => {\n const cssClass = panel === 'original' ? customCssClasses.originalPanel : customCssClasses.revisedPanel;\n return (\n <article className={ `documentComparer__panel documentComparer__panel--${ panel } ${ cssClass || '' }`.trim() } aria-label={ heading }>\n <div className=\"documentComparer__panelHeader\">\n <HeaderBar text={ heading } headingLevel={ panelHeadingLevel } />\n <p className=\"documentComparer__documentTitle\">{ document.title }</p>\n { renderMetadata(document) }\n </div>\n <div className=\"documentComparer__panelBody\">{ body }</div>\n { actions && <div className=\"documentComparer__panelActions\">{ actions }</div> }\n </article>\n );\n };\n\n const renderOriginalBody = (): ReactNode => {\n const { pageImages = [] } = originalDocument;\n if (pageImages.length) {\n return (\n <div className=\"documentComparer__pages\">\n { pageImages.map((pageUrl, pageIndex) => (\n <img\n key={ pageUrl }\n src={ pageUrl }\n alt={ labels.pageImageAlt(pageIndex + 1, pageImages.length, originalDocument.title) }\n loading=\"lazy\"\n />\n )) }\n </div>\n );\n }\n if (!originalDocument.file && !originalDocument.url && originalDocument.text === undefined) {\n return <p className=\"documentComparer__message\">{ labels.noSourcePreview }</p>;\n }\n return (\n <DocumentViewer\n id={ `${ id }_originalViewer` }\n document={ originalDocument }\n showHeader={ false }\n showMetadata={ false }\n contentHeadingOffset={ panelHeadingLevel }\n renderers={ originalRenderers }\n resolveResourceUrl={ resolveResourceUrl }\n trustedPdfOrigins={ trustedPdfOrigins }\n customCssClasses={ { wrapper: 'documentComparer__viewer' } }\n />\n );\n };\n\n const renderRevisedBody = (): ReactNode => {\n if (revisedContent.status === 'error') {\n return (\n <PageBanner id={ `${ id }_revisedError` } type=\"error\" icon=\"warning\" displayMode=\"inline\" animation=\"none\" disableClose>\n <span role=\"alert\">{ labels.loadError }</span>\n </PageBanner>\n );\n }\n if (revisedContent.status !== 'ready') {\n return loadingIndicator;\n }\n if (isEditing) {\n return (\n <DocumentEditor\n id={ `${ id }_editor` }\n label={ `${ labels.edit }: ${ revisedDocument.title }` }\n hideLabel\n markdown={ currentMarkdown }\n baselineMarkdown={ baseline }\n onChange={ handleDraftChange }\n resolveResourceUrl={ resolveRevisedResource }\n annotations={ annotations }\n { ...editorProps }\n />\n );\n }\n const renderer = (\n <Suspense fallback={ loadingIndicator }>\n <LazyMarkdownRenderer\n markdown={ currentMarkdown }\n headingOffset={ panelHeadingLevel }\n resolveResourceUrl={ resolveRevisedResource }\n />\n </Suspense>\n );\n return annotations\n ? <AnnotationLayer { ...annotations } id={ `${ id }_annotations` }>{ renderer }</AnnotationLayer>\n : renderer;\n };\n\n const editingActions = enableEditing && revisedContent.status === 'ready' && (\n isEditing ? (\n <>\n <SimpleButton id={ `${ id }_cancel` } label={ labels.cancel } cssClass=\"button secondary outline compact\" onClickHandler={ handleCancel } />\n <SimpleButton\n id={ `${ id }_save` }\n label={ labels.save }\n cssClass=\"button primary compact\"\n disabled={ !isDirty || isSaving }\n onClickHandler={ handleSave }\n />\n </>\n ) : (\n <SimpleButton id={ `${ id }_edit` } label={ labels.edit } cssClass=\"button secondary compact\" onClickHandler={ () => setIsEditing(true) } />\n )\n );\n\n const revisedActions = (editingActions || revisedPanelActions) && (\n <>\n { revisedPanelActions }\n { editingActions }\n </>\n );\n\n const panels = [\n <React.Fragment key=\"revised\">\n { renderPanel('revised', revisedDocument, labels.revisedHeading, renderRevisedBody(), revisedActions) }\n </React.Fragment>,\n <React.Fragment key=\"original\">\n { renderPanel('original', originalDocument, labels.originalHeading, renderOriginalBody(), originalPanelActions) }\n </React.Fragment>\n ];\n\n return (\n <section id={ id } className={ `documentComparer ${ customCssClasses.wrapper || '' }`.trim() } aria-label={ title }>\n <div className={ `documentComparer__header ${ customCssClasses.header || '' }`.trim() }>\n <HeaderBar text={ title } headingLevel={ headingLevel }>\n { headerActions }\n </HeaderBar>\n <div className=\"documentComparer__controls\">\n <ToggleGroup\n id={ `${ id }_view` }\n legend={ labels.viewSelector }\n value={ view }\n onChange={ setView }\n options={ [{ value: 'sideBySide', label: labels.sideBySide }, { value: 'differences', label: labels.differences }] }\n />\n { view === 'differences' && (\n <ToggleGroup\n id={ `${ id }_diffView` }\n legend={ labels.diffSelector }\n value={ diffView }\n onChange={ setDiffView }\n options={ [{ value: 'rendered', label: labels.formatted }, { value: 'source', label: labels.source }] }\n />\n ) }\n </div>\n </div>\n\n { view === 'sideBySide' && (\n <div className={ `documentComparer__columns ${ customCssClasses.columns || '' }`.trim() }>\n { revisedPosition === 'start' ? panels : [...panels].reverse() }\n </div>\n ) }\n\n { view === 'differences' && (\n <div className={ `documentComparer__differences ${ customCssClasses.differences || '' }`.trim() }>\n { revisedContent.status === 'ready' ? (\n <Suspense fallback={ loadingIndicator }>\n <LazyDocumentDiff\n baseline={ baseline }\n revised={ currentMarkdown }\n view={ diffView }\n headingOffset={ headingLevel }\n resolveResourceUrl={ resolveRevisedResource }\n labels={ {\n added: labels.added,\n removed: labels.removed,\n noChanges: labels.noChanges,\n summary: labels.diffSummary\n } }\n />\n </Suspense>\n ) : renderRevisedBody() }\n </div>\n ) }\n\n { footerActions && <div className={ `documentComparer__footer ${ customCssClasses.footer || '' }`.trim() }>{ footerActions }</div> }\n </section>\n );\n};\n\nexport default DocumentComparer;\n"],"mappings":"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","ignoreList":[]}