@x15ventures/x15-ui-library 3.19.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.
- package/THIRD_PARTY_LICENSES.md +11182 -0
- package/dist/cjs/autoGenerated/libraryThemes.js +12 -12
- package/dist/cjs/autoGenerated/libraryThemes.js.map +1 -1
- package/dist/cjs/autoGenerated/libraryThemes.json +12 -12
- package/dist/cjs/components/design/banners/pageBanner/PageBanner.js +27 -12
- package/dist/cjs/components/design/banners/pageBanner/PageBanner.js.map +1 -1
- package/dist/cjs/components/design/card/cardHeader/CardHeaderItem.js +22 -15
- package/dist/cjs/components/design/card/cardHeader/CardHeaderItem.js.map +1 -1
- package/dist/cjs/components/design/dialog/dialog.css +4 -0
- package/dist/cjs/components/design/logos/LogoLink.js +2 -1
- package/dist/cjs/components/design/logos/LogoLink.js.map +1 -1
- package/dist/cjs/components/design/logos/VentureLogo.js +2 -1
- package/dist/cjs/components/design/logos/VentureLogo.js.map +1 -1
- package/dist/cjs/components/design/revealMore/RevealMoreBelow.js +2 -2
- package/dist/cjs/components/design/revealMore/RevealMoreBelow.js.map +1 -1
- package/dist/cjs/components/design/skeleton/Skeleton.js +15 -5
- package/dist/cjs/components/design/skeleton/Skeleton.js.map +1 -1
- package/dist/cjs/components/design/themeLoader/ThemeLoader.js +1 -1
- package/dist/cjs/components/design/themeLoader/ThemeLoader.js.map +1 -1
- package/dist/cjs/components/form/buttons/SimpleButton.js +3 -1
- package/dist/cjs/components/form/buttons/SimpleButton.js.map +1 -1
- package/dist/cjs/components/form/buttons/button.interface.js.map +1 -1
- package/dist/cjs/components/form/buttons/userPicButton/UserPicButton.js +5 -3
- package/dist/cjs/components/form/buttons/userPicButton/UserPicButton.js.map +1 -1
- package/dist/cjs/components/form/formFields/subComponents/inputs/file/dragAndDrop/DragAndDropFileUpload.js +64 -19
- package/dist/cjs/components/form/formFields/subComponents/inputs/file/dragAndDrop/DragAndDropFileUpload.js.map +1 -1
- package/dist/cjs/components/navigation/link/Link.js +2 -1
- package/dist/cjs/components/navigation/link/Link.js.map +1 -1
- package/dist/cjs/components/testing/devToolbar/DevToolbar.js +5 -3
- package/dist/cjs/components/testing/devToolbar/DevToolbar.js.map +1 -1
- package/dist/cjs/constants/fileUploadTypes.js +9 -4
- package/dist/cjs/constants/fileUploadTypes.js.map +1 -1
- package/dist/cjs/helpers/dateHelpers.js +34 -23
- package/dist/cjs/helpers/dateHelpers.js.map +1 -1
- package/dist/cjs/helpers/fileHelpers.js +58 -0
- package/dist/cjs/helpers/fileHelpers.js.map +1 -0
- package/dist/cjs/helpers/index.js +44 -0
- package/dist/cjs/helpers/index.js.map +1 -1
- package/dist/cjs/helpers/interactionsHelper.js +8 -1
- package/dist/cjs/helpers/interactionsHelper.js.map +1 -1
- package/dist/cjs/helpers/objectHelpers.js +23 -9
- package/dist/cjs/helpers/objectHelpers.js.map +1 -1
- package/dist/cjs/helpers/stringHelpers.js +61 -5
- package/dist/cjs/helpers/stringHelpers.js.map +1 -1
- package/dist/cjs/helpers/urlHelpers.js +48 -0
- package/dist/cjs/helpers/urlHelpers.js.map +1 -0
- package/dist/cjs/index.js +191 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/package.json +3 -305
- package/dist/cjs/styles/index.css +18 -0
- package/dist/cjs/styles/variables/cssVars/_designVariables.css +18 -0
- package/dist/cjs/widgets/documentComments/DocumentComments.js +305 -0
- package/dist/cjs/widgets/documentComments/DocumentComments.js.map +1 -0
- package/dist/cjs/widgets/documentComments/_documentCommentsVariables.css +0 -0
- package/dist/cjs/widgets/documentComments/documentComments.css +107 -0
- package/dist/cjs/widgets/documentComments/documentComments.interfaces.js +6 -0
- package/dist/cjs/widgets/documentComments/documentComments.interfaces.js.map +1 -0
- package/dist/cjs/widgets/documentComments/index.js +19 -0
- package/dist/cjs/widgets/documentComments/index.js.map +1 -0
- package/dist/cjs/widgets/documentComparer/DocumentComparer.js +309 -0
- package/dist/cjs/widgets/documentComparer/DocumentComparer.js.map +1 -0
- package/dist/cjs/widgets/documentComparer/_documentComparerVariables.css +0 -0
- package/dist/cjs/widgets/documentComparer/documentComparer.css +117 -0
- package/dist/cjs/widgets/documentComparer/documentComparer.interfaces.js +6 -0
- package/dist/cjs/widgets/documentComparer/documentComparer.interfaces.js.map +1 -0
- package/dist/cjs/widgets/documentComparer/index.js +19 -0
- package/dist/cjs/widgets/documentComparer/index.js.map +1 -0
- package/dist/cjs/widgets/documentEditor/DocumentEditor.js +142 -0
- package/dist/cjs/widgets/documentEditor/DocumentEditor.js.map +1 -0
- package/dist/cjs/widgets/documentEditor/_documentEditorVariables.css +0 -0
- package/dist/cjs/widgets/documentEditor/documentEditor.css +33 -0
- package/dist/cjs/widgets/documentEditor/documentEditor.interfaces.js +6 -0
- package/dist/cjs/widgets/documentEditor/documentEditor.interfaces.js.map +1 -0
- package/dist/cjs/widgets/documentEditor/index.js +19 -0
- package/dist/cjs/widgets/documentEditor/index.js.map +1 -0
- package/dist/cjs/widgets/documentViewer/DocumentViewer.js +206 -0
- package/dist/cjs/widgets/documentViewer/DocumentViewer.js.map +1 -0
- package/dist/cjs/widgets/documentViewer/_documentViewerVariables.css +0 -0
- package/dist/cjs/widgets/documentViewer/documentViewer.css +82 -0
- package/dist/cjs/widgets/documentViewer/documentViewer.interfaces.js +6 -0
- package/dist/cjs/widgets/documentViewer/documentViewer.interfaces.js.map +1 -0
- package/dist/cjs/widgets/documentViewer/index.js +19 -0
- package/dist/cjs/widgets/documentViewer/index.js.map +1 -0
- package/dist/cjs/widgets/index.js +126 -0
- package/dist/cjs/widgets/index.js.map +1 -1
- package/dist/cjs/widgets/shared/documents/ToggleGroup.js +32 -0
- package/dist/cjs/widgets/shared/documents/ToggleGroup.js.map +1 -0
- package/dist/cjs/widgets/shared/documents/_documentVariables.css +0 -0
- package/dist/cjs/widgets/shared/documents/annotations/AnnotationLayer.js +279 -0
- package/dist/cjs/widgets/shared/documents/annotations/AnnotationLayer.js.map +1 -0
- package/dist/cjs/widgets/shared/documents/annotations/_annotationLayerVariables.css +0 -0
- package/dist/cjs/widgets/shared/documents/annotations/annotationLayer.css +65 -0
- package/dist/cjs/widgets/shared/documents/annotations/annotations.interfaces.js +21 -0
- package/dist/cjs/widgets/shared/documents/annotations/annotations.interfaces.js.map +1 -0
- package/dist/cjs/widgets/shared/documents/annotations/highlightRegistry.js +67 -0
- package/dist/cjs/widgets/shared/documents/annotations/highlightRegistry.js.map +1 -0
- package/dist/cjs/widgets/shared/documents/annotations/index.js +39 -0
- package/dist/cjs/widgets/shared/documents/annotations/index.js.map +1 -0
- package/dist/cjs/widgets/shared/documents/annotations/textIndex.js +112 -0
- package/dist/cjs/widgets/shared/documents/annotations/textIndex.js.map +1 -0
- package/dist/cjs/widgets/shared/documents/annotations/textQuoteAnchor.js +160 -0
- package/dist/cjs/widgets/shared/documents/annotations/textQuoteAnchor.js.map +1 -0
- package/dist/cjs/widgets/shared/documents/documentHelpers.js +186 -0
- package/dist/cjs/widgets/shared/documents/documentHelpers.js.map +1 -0
- package/dist/cjs/widgets/shared/documents/documents.interfaces.js +6 -0
- package/dist/cjs/widgets/shared/documents/documents.interfaces.js.map +1 -0
- package/dist/cjs/widgets/shared/documents/engines/documentDiff/DocumentDiff.js +73 -0
- package/dist/cjs/widgets/shared/documents/engines/documentDiff/DocumentDiff.js.map +1 -0
- package/dist/cjs/widgets/shared/documents/engines/documentDiff/_documentDiffVariables.css +0 -0
- package/dist/cjs/widgets/shared/documents/engines/documentDiff/buildDocumentDiff.js +114 -0
- package/dist/cjs/widgets/shared/documents/engines/documentDiff/buildDocumentDiff.js.map +1 -0
- package/dist/cjs/widgets/shared/documents/engines/documentDiff/documentDiff.css +69 -0
- package/dist/cjs/widgets/shared/documents/engines/documentDiff/documentDiff.interfaces.js +6 -0
- package/dist/cjs/widgets/shared/documents/engines/documentDiff/documentDiff.interfaces.js.map +1 -0
- package/dist/cjs/widgets/shared/documents/engines/lazyEngines.js +19 -0
- package/dist/cjs/widgets/shared/documents/engines/lazyEngines.js.map +1 -0
- package/dist/cjs/widgets/shared/documents/engines/markdownEditor/MarkdownEditorEngine.js +200 -0
- package/dist/cjs/widgets/shared/documents/engines/markdownEditor/MarkdownEditorEngine.js.map +1 -0
- package/dist/cjs/widgets/shared/documents/engines/markdownEditor/_markdownEditorEngineVariables.css +0 -0
- package/dist/cjs/widgets/shared/documents/engines/markdownEditor/markdownEditorEngine.css +50 -0
- package/dist/cjs/widgets/shared/documents/engines/markdownEditor/markdownEditorEngine.interfaces.js +6 -0
- package/dist/cjs/widgets/shared/documents/engines/markdownEditor/markdownEditorEngine.interfaces.js.map +1 -0
- package/dist/cjs/widgets/shared/documents/engines/markdownEditor/markdownTextIndex.js +179 -0
- package/dist/cjs/widgets/shared/documents/engines/markdownEditor/markdownTextIndex.js.map +1 -0
- package/dist/cjs/widgets/shared/documents/engines/markdownEditor/sanitizeForMdx.js +278 -0
- package/dist/cjs/widgets/shared/documents/engines/markdownEditor/sanitizeForMdx.js.map +1 -0
- package/dist/cjs/widgets/shared/documents/engines/markdownEditor/sourceAnnotations.js +208 -0
- package/dist/cjs/widgets/shared/documents/engines/markdownEditor/sourceAnnotations.js.map +1 -0
- package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/MarkdownRenderer.js +85 -0
- package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/MarkdownRenderer.js.map +1 -0
- package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/_markdownRendererVariables.css +0 -0
- package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/markdownRenderer.css +78 -0
- package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/plugins/index.js +64 -0
- package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/plugins/index.js.map +1 -0
- package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/plugins/markdownNode.interfaces.js +6 -0
- package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/plugins/markdownNode.interfaces.js.map +1 -0
- package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/plugins/rehypeTableCleanup.js +71 -0
- package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/plugins/rehypeTableCleanup.js.map +1 -0
- package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/plugins/remarkPlugins.js +192 -0
- package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/plugins/remarkPlugins.js.map +1 -0
- package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/plugins/remarkSafeTables.js +86 -0
- package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/plugins/remarkSafeTables.js.map +1 -0
- package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/plugins/tableHelpers.js +38 -0
- package/dist/cjs/widgets/shared/documents/engines/markdownRenderer/plugins/tableHelpers.js.map +1 -0
- package/dist/cjs/widgets/shared/documents/engines/wordRenderer/WordRenderer.js +49 -0
- package/dist/cjs/widgets/shared/documents/engines/wordRenderer/WordRenderer.js.map +1 -0
- package/dist/cjs/widgets/shared/documents/engines/wordRenderer/renderWordDocument.js +214 -0
- package/dist/cjs/widgets/shared/documents/engines/wordRenderer/renderWordDocument.js.map +1 -0
- package/dist/cjs/widgets/shared/documents/engines/wordRenderer/wordPreviewNumbering.js +112 -0
- package/dist/cjs/widgets/shared/documents/engines/wordRenderer/wordPreviewNumbering.js.map +1 -0
- package/dist/cjs/widgets/shared/documents/engines/wordRenderer/wordXml.js +68 -0
- package/dist/cjs/widgets/shared/documents/engines/wordRenderer/wordXml.js.map +1 -0
- package/dist/cjs/widgets/shared/documents/index.js +50 -0
- package/dist/cjs/widgets/shared/documents/index.js.map +1 -0
- package/dist/cjs/widgets/shared/documents/toggleGroup.css +8 -0
- package/dist/cjs/widgets/shared/documents/useDocumentContent.js +222 -0
- package/dist/cjs/widgets/shared/documents/useDocumentContent.js.map +1 -0
- package/dist/components/design/banners/pageBanner/PageBanner.d.ts.map +1 -1
- package/dist/components/design/card/cardHeader/CardHeaderItem.d.ts.map +1 -1
- package/dist/components/design/logos/LogoLink.d.ts.map +1 -1
- package/dist/components/design/logos/VentureLogo.d.ts.map +1 -1
- package/dist/components/design/skeleton/Skeleton.d.ts +1 -1
- package/dist/components/design/skeleton/Skeleton.d.ts.map +1 -1
- package/dist/components/design/themeLoader/ThemeLoader.d.ts.map +1 -1
- package/dist/components/form/buttons/SimpleButton.d.ts.map +1 -1
- package/dist/components/form/buttons/button.interface.d.ts +1 -0
- package/dist/components/form/buttons/button.interface.d.ts.map +1 -1
- package/dist/components/form/buttons/userPicButton/UserPicButton.d.ts.map +1 -1
- package/dist/components/form/formFields/subComponents/inputs/file/dragAndDrop/DragAndDropFileUpload.d.ts.map +1 -1
- package/dist/components/navigation/link/Link.d.ts.map +1 -1
- package/dist/components/testing/devToolbar/DevToolbar.d.ts.map +1 -1
- package/dist/constants/fileUploadTypes.d.ts.map +1 -1
- package/dist/esm/autoGenerated/libraryThemes.js +12 -12
- package/dist/esm/autoGenerated/libraryThemes.js.map +1 -1
- package/dist/esm/autoGenerated/libraryThemes.json +12 -12
- package/dist/esm/components/design/banners/pageBanner/PageBanner.js +27 -12
- package/dist/esm/components/design/banners/pageBanner/PageBanner.js.map +1 -1
- package/dist/esm/components/design/card/cardHeader/CardHeaderItem.js +22 -15
- package/dist/esm/components/design/card/cardHeader/CardHeaderItem.js.map +1 -1
- package/dist/esm/components/design/dialog/dialog.css +4 -0
- package/dist/esm/components/design/logos/LogoLink.js +2 -1
- package/dist/esm/components/design/logos/LogoLink.js.map +1 -1
- package/dist/esm/components/design/logos/VentureLogo.js +2 -1
- package/dist/esm/components/design/logos/VentureLogo.js.map +1 -1
- package/dist/esm/components/design/revealMore/RevealMoreBelow.js +1 -1
- package/dist/esm/components/design/revealMore/RevealMoreBelow.js.map +1 -1
- package/dist/esm/components/design/skeleton/Skeleton.js +15 -5
- package/dist/esm/components/design/skeleton/Skeleton.js.map +1 -1
- package/dist/esm/components/design/themeLoader/ThemeLoader.js +1 -1
- package/dist/esm/components/design/themeLoader/ThemeLoader.js.map +1 -1
- package/dist/esm/components/form/buttons/SimpleButton.js +3 -1
- package/dist/esm/components/form/buttons/SimpleButton.js.map +1 -1
- package/dist/esm/components/form/buttons/button.interface.js.map +1 -1
- package/dist/esm/components/form/buttons/userPicButton/UserPicButton.js +5 -3
- package/dist/esm/components/form/buttons/userPicButton/UserPicButton.js.map +1 -1
- package/dist/esm/components/form/formFields/subComponents/inputs/file/dragAndDrop/DragAndDropFileUpload.js +65 -19
- package/dist/esm/components/form/formFields/subComponents/inputs/file/dragAndDrop/DragAndDropFileUpload.js.map +1 -1
- package/dist/esm/components/navigation/link/Link.js +2 -1
- package/dist/esm/components/navigation/link/Link.js.map +1 -1
- package/dist/esm/components/testing/devToolbar/DevToolbar.js +5 -3
- package/dist/esm/components/testing/devToolbar/DevToolbar.js.map +1 -1
- package/dist/esm/constants/fileUploadTypes.js +9 -4
- package/dist/esm/constants/fileUploadTypes.js.map +1 -1
- package/dist/esm/helpers/dateHelpers.js +34 -23
- package/dist/esm/helpers/dateHelpers.js.map +1 -1
- package/dist/esm/helpers/fileHelpers.js +48 -0
- package/dist/esm/helpers/fileHelpers.js.map +1 -0
- package/dist/esm/helpers/index.js +2 -0
- package/dist/esm/helpers/index.js.map +1 -1
- package/dist/esm/helpers/interactionsHelper.js +5 -0
- package/dist/esm/helpers/interactionsHelper.js.map +1 -1
- package/dist/esm/helpers/objectHelpers.js +23 -9
- package/dist/esm/helpers/objectHelpers.js.map +1 -1
- package/dist/esm/helpers/stringHelpers.js +61 -5
- package/dist/esm/helpers/stringHelpers.js.map +1 -1
- package/dist/esm/helpers/urlHelpers.js +40 -0
- package/dist/esm/helpers/urlHelpers.js.map +1 -0
- package/dist/esm/index.js +3 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/package.json +2 -304
- package/dist/esm/styles/index.css +18 -0
- package/dist/esm/styles/variables/cssVars/_designVariables.css +18 -0
- package/dist/esm/widgets/documentComments/DocumentComments.js +298 -0
- package/dist/esm/widgets/documentComments/DocumentComments.js.map +1 -0
- package/dist/esm/widgets/documentComments/_documentCommentsVariables.css +0 -0
- package/dist/esm/widgets/documentComments/documentComments.css +107 -0
- package/dist/esm/widgets/documentComments/documentComments.interfaces.js +2 -0
- package/dist/esm/widgets/documentComments/documentComments.interfaces.js.map +1 -0
- package/dist/esm/widgets/documentComments/index.js +2 -0
- package/dist/esm/widgets/documentComments/index.js.map +1 -0
- package/dist/esm/widgets/documentComparer/DocumentComparer.js +301 -0
- package/dist/esm/widgets/documentComparer/DocumentComparer.js.map +1 -0
- package/dist/esm/widgets/documentComparer/_documentComparerVariables.css +0 -0
- package/dist/esm/widgets/documentComparer/documentComparer.css +117 -0
- package/dist/esm/widgets/documentComparer/documentComparer.interfaces.js +2 -0
- package/dist/esm/widgets/documentComparer/documentComparer.interfaces.js.map +1 -0
- package/dist/esm/widgets/documentComparer/index.js +2 -0
- package/dist/esm/widgets/documentComparer/index.js.map +1 -0
- package/dist/esm/widgets/documentEditor/DocumentEditor.js +135 -0
- package/dist/esm/widgets/documentEditor/DocumentEditor.js.map +1 -0
- package/dist/esm/widgets/documentEditor/_documentEditorVariables.css +0 -0
- package/dist/esm/widgets/documentEditor/documentEditor.css +33 -0
- package/dist/esm/widgets/documentEditor/documentEditor.interfaces.js +2 -0
- package/dist/esm/widgets/documentEditor/documentEditor.interfaces.js.map +1 -0
- package/dist/esm/widgets/documentEditor/index.js +2 -0
- package/dist/esm/widgets/documentEditor/index.js.map +1 -0
- package/dist/esm/widgets/documentViewer/DocumentViewer.js +198 -0
- package/dist/esm/widgets/documentViewer/DocumentViewer.js.map +1 -0
- package/dist/esm/widgets/documentViewer/_documentViewerVariables.css +0 -0
- package/dist/esm/widgets/documentViewer/documentViewer.css +82 -0
- package/dist/esm/widgets/documentViewer/documentViewer.interfaces.js +2 -0
- package/dist/esm/widgets/documentViewer/documentViewer.interfaces.js.map +1 -0
- package/dist/esm/widgets/documentViewer/index.js +2 -0
- package/dist/esm/widgets/documentViewer/index.js.map +1 -0
- package/dist/esm/widgets/index.js +6 -0
- package/dist/esm/widgets/index.js.map +1 -1
- package/dist/esm/widgets/shared/documents/ToggleGroup.js +24 -0
- package/dist/esm/widgets/shared/documents/ToggleGroup.js.map +1 -0
- package/dist/esm/widgets/shared/documents/_documentVariables.css +0 -0
- package/dist/esm/widgets/shared/documents/annotations/AnnotationLayer.js +273 -0
- package/dist/esm/widgets/shared/documents/annotations/AnnotationLayer.js.map +1 -0
- package/dist/esm/widgets/shared/documents/annotations/_annotationLayerVariables.css +0 -0
- package/dist/esm/widgets/shared/documents/annotations/annotationLayer.css +65 -0
- package/dist/esm/widgets/shared/documents/annotations/annotations.interfaces.js +14 -0
- package/dist/esm/widgets/shared/documents/annotations/annotations.interfaces.js.map +1 -0
- package/dist/esm/widgets/shared/documents/annotations/highlightRegistry.js +58 -0
- package/dist/esm/widgets/shared/documents/annotations/highlightRegistry.js.map +1 -0
- package/dist/esm/widgets/shared/documents/annotations/index.js +4 -0
- package/dist/esm/widgets/shared/documents/annotations/index.js.map +1 -0
- package/dist/esm/widgets/shared/documents/annotations/textIndex.js +103 -0
- package/dist/esm/widgets/shared/documents/annotations/textIndex.js.map +1 -0
- package/dist/esm/widgets/shared/documents/annotations/textQuoteAnchor.js +150 -0
- package/dist/esm/widgets/shared/documents/annotations/textQuoteAnchor.js.map +1 -0
- package/dist/esm/widgets/shared/documents/documentHelpers.js +168 -0
- package/dist/esm/widgets/shared/documents/documentHelpers.js.map +1 -0
- package/dist/esm/widgets/shared/documents/documents.interfaces.js +2 -0
- package/dist/esm/widgets/shared/documents/documents.interfaces.js.map +1 -0
- package/dist/esm/widgets/shared/documents/engines/documentDiff/DocumentDiff.js +65 -0
- package/dist/esm/widgets/shared/documents/engines/documentDiff/DocumentDiff.js.map +1 -0
- package/dist/esm/widgets/shared/documents/engines/documentDiff/_documentDiffVariables.css +0 -0
- package/dist/esm/widgets/shared/documents/engines/documentDiff/buildDocumentDiff.js +102 -0
- package/dist/esm/widgets/shared/documents/engines/documentDiff/buildDocumentDiff.js.map +1 -0
- package/dist/esm/widgets/shared/documents/engines/documentDiff/documentDiff.css +69 -0
- package/dist/esm/widgets/shared/documents/engines/documentDiff/documentDiff.interfaces.js +2 -0
- package/dist/esm/widgets/shared/documents/engines/documentDiff/documentDiff.interfaces.js.map +1 -0
- package/dist/esm/widgets/shared/documents/engines/lazyEngines.js +13 -0
- package/dist/esm/widgets/shared/documents/engines/lazyEngines.js.map +1 -0
- package/dist/esm/widgets/shared/documents/engines/markdownEditor/MarkdownEditorEngine.js +191 -0
- package/dist/esm/widgets/shared/documents/engines/markdownEditor/MarkdownEditorEngine.js.map +1 -0
- package/dist/esm/widgets/shared/documents/engines/markdownEditor/_markdownEditorEngineVariables.css +0 -0
- package/dist/esm/widgets/shared/documents/engines/markdownEditor/markdownEditorEngine.css +50 -0
- package/dist/esm/widgets/shared/documents/engines/markdownEditor/markdownEditorEngine.interfaces.js +2 -0
- package/dist/esm/widgets/shared/documents/engines/markdownEditor/markdownEditorEngine.interfaces.js.map +1 -0
- package/dist/esm/widgets/shared/documents/engines/markdownEditor/markdownTextIndex.js +170 -0
- package/dist/esm/widgets/shared/documents/engines/markdownEditor/markdownTextIndex.js.map +1 -0
- package/dist/esm/widgets/shared/documents/engines/markdownEditor/sanitizeForMdx.js +270 -0
- package/dist/esm/widgets/shared/documents/engines/markdownEditor/sanitizeForMdx.js.map +1 -0
- package/dist/esm/widgets/shared/documents/engines/markdownEditor/sourceAnnotations.js +198 -0
- package/dist/esm/widgets/shared/documents/engines/markdownEditor/sourceAnnotations.js.map +1 -0
- package/dist/esm/widgets/shared/documents/engines/markdownRenderer/MarkdownRenderer.js +76 -0
- package/dist/esm/widgets/shared/documents/engines/markdownRenderer/MarkdownRenderer.js.map +1 -0
- package/dist/esm/widgets/shared/documents/engines/markdownRenderer/_markdownRendererVariables.css +0 -0
- package/dist/esm/widgets/shared/documents/engines/markdownRenderer/markdownRenderer.css +78 -0
- package/dist/esm/widgets/shared/documents/engines/markdownRenderer/plugins/index.js +5 -0
- package/dist/esm/widgets/shared/documents/engines/markdownRenderer/plugins/index.js.map +1 -0
- package/dist/esm/widgets/shared/documents/engines/markdownRenderer/plugins/markdownNode.interfaces.js +2 -0
- package/dist/esm/widgets/shared/documents/engines/markdownRenderer/plugins/markdownNode.interfaces.js.map +1 -0
- package/dist/esm/widgets/shared/documents/engines/markdownRenderer/plugins/rehypeTableCleanup.js +64 -0
- package/dist/esm/widgets/shared/documents/engines/markdownRenderer/plugins/rehypeTableCleanup.js.map +1 -0
- package/dist/esm/widgets/shared/documents/engines/markdownRenderer/plugins/remarkPlugins.js +182 -0
- package/dist/esm/widgets/shared/documents/engines/markdownRenderer/plugins/remarkPlugins.js.map +1 -0
- package/dist/esm/widgets/shared/documents/engines/markdownRenderer/plugins/remarkSafeTables.js +78 -0
- package/dist/esm/widgets/shared/documents/engines/markdownRenderer/plugins/remarkSafeTables.js.map +1 -0
- package/dist/esm/widgets/shared/documents/engines/markdownRenderer/plugins/tableHelpers.js +30 -0
- package/dist/esm/widgets/shared/documents/engines/markdownRenderer/plugins/tableHelpers.js.map +1 -0
- package/dist/esm/widgets/shared/documents/engines/wordRenderer/WordRenderer.js +41 -0
- package/dist/esm/widgets/shared/documents/engines/wordRenderer/WordRenderer.js.map +1 -0
- package/dist/esm/widgets/shared/documents/engines/wordRenderer/renderWordDocument.js +207 -0
- package/dist/esm/widgets/shared/documents/engines/wordRenderer/renderWordDocument.js.map +1 -0
- package/dist/esm/widgets/shared/documents/engines/wordRenderer/wordPreviewNumbering.js +105 -0
- package/dist/esm/widgets/shared/documents/engines/wordRenderer/wordPreviewNumbering.js.map +1 -0
- package/dist/esm/widgets/shared/documents/engines/wordRenderer/wordXml.js +57 -0
- package/dist/esm/widgets/shared/documents/engines/wordRenderer/wordXml.js.map +1 -0
- package/dist/esm/widgets/shared/documents/index.js +3 -0
- package/dist/esm/widgets/shared/documents/index.js.map +1 -0
- package/dist/esm/widgets/shared/documents/toggleGroup.css +8 -0
- package/dist/esm/widgets/shared/documents/useDocumentContent.js +215 -0
- package/dist/esm/widgets/shared/documents/useDocumentContent.js.map +1 -0
- package/dist/helpers/dateHelpers.d.ts.map +1 -1
- package/dist/helpers/fileHelpers.d.ts +5 -0
- package/dist/helpers/fileHelpers.d.ts.map +1 -0
- package/dist/helpers/index.d.ts +3 -0
- package/dist/helpers/index.d.ts.map +1 -1
- package/dist/helpers/interactionsHelper.d.ts +2 -0
- package/dist/helpers/interactionsHelper.d.ts.map +1 -1
- package/dist/helpers/objectHelpers.d.ts.map +1 -1
- package/dist/helpers/stringHelpers.d.ts.map +1 -1
- package/dist/helpers/urlHelpers.d.ts +3 -0
- package/dist/helpers/urlHelpers.d.ts.map +1 -0
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/package.json +42 -28
- package/dist/widgets/documentComments/DocumentComments.d.ts +7 -0
- package/dist/widgets/documentComments/DocumentComments.d.ts.map +1 -0
- package/dist/widgets/documentComments/documentComments.interfaces.d.ts +57 -0
- package/dist/widgets/documentComments/documentComments.interfaces.d.ts.map +1 -0
- package/dist/widgets/documentComments/index.d.ts +3 -0
- package/dist/widgets/documentComments/index.d.ts.map +1 -0
- package/dist/widgets/documentComparer/DocumentComparer.d.ts +7 -0
- package/dist/widgets/documentComparer/DocumentComparer.d.ts.map +1 -0
- package/dist/widgets/documentComparer/documentComparer.interfaces.d.ts +78 -0
- package/dist/widgets/documentComparer/documentComparer.interfaces.d.ts.map +1 -0
- package/dist/widgets/documentComparer/index.d.ts +3 -0
- package/dist/widgets/documentComparer/index.d.ts.map +1 -0
- package/dist/widgets/documentEditor/DocumentEditor.d.ts +7 -0
- package/dist/widgets/documentEditor/DocumentEditor.d.ts.map +1 -0
- package/dist/widgets/documentEditor/documentEditor.interfaces.d.ts +40 -0
- package/dist/widgets/documentEditor/documentEditor.interfaces.d.ts.map +1 -0
- package/dist/widgets/documentEditor/index.d.ts +3 -0
- package/dist/widgets/documentEditor/index.d.ts.map +1 -0
- package/dist/widgets/documentViewer/DocumentViewer.d.ts +7 -0
- package/dist/widgets/documentViewer/DocumentViewer.d.ts.map +1 -0
- package/dist/widgets/documentViewer/documentViewer.interfaces.d.ts +47 -0
- package/dist/widgets/documentViewer/documentViewer.interfaces.d.ts.map +1 -0
- package/dist/widgets/documentViewer/index.d.ts +3 -0
- package/dist/widgets/documentViewer/index.d.ts.map +1 -0
- package/dist/widgets/index.d.ts +12 -0
- package/dist/widgets/index.d.ts.map +1 -1
- package/dist/widgets/shared/documents/ToggleGroup.d.ts +15 -0
- package/dist/widgets/shared/documents/ToggleGroup.d.ts.map +1 -0
- package/dist/widgets/shared/documents/annotations/AnnotationLayer.d.ts +27 -0
- package/dist/widgets/shared/documents/annotations/AnnotationLayer.d.ts.map +1 -0
- package/dist/widgets/shared/documents/annotations/annotations.interfaces.d.ts +43 -0
- package/dist/widgets/shared/documents/annotations/annotations.interfaces.d.ts.map +1 -0
- package/dist/widgets/shared/documents/annotations/highlightRegistry.d.ts +12 -0
- package/dist/widgets/shared/documents/annotations/highlightRegistry.d.ts.map +1 -0
- package/dist/widgets/shared/documents/annotations/index.d.ts +6 -0
- package/dist/widgets/shared/documents/annotations/index.d.ts.map +1 -0
- package/dist/widgets/shared/documents/annotations/textIndex.d.ts +16 -0
- package/dist/widgets/shared/documents/annotations/textIndex.d.ts.map +1 -0
- package/dist/widgets/shared/documents/annotations/textQuoteAnchor.d.ts +15 -0
- package/dist/widgets/shared/documents/annotations/textQuoteAnchor.d.ts.map +1 -0
- package/dist/widgets/shared/documents/documentHelpers.d.ts +14 -0
- package/dist/widgets/shared/documents/documentHelpers.d.ts.map +1 -0
- package/dist/widgets/shared/documents/documents.interfaces.d.ts +20 -0
- package/dist/widgets/shared/documents/documents.interfaces.d.ts.map +1 -0
- package/dist/widgets/shared/documents/engines/documentDiff/DocumentDiff.d.ts +6 -0
- package/dist/widgets/shared/documents/engines/documentDiff/DocumentDiff.d.ts.map +1 -0
- package/dist/widgets/shared/documents/engines/documentDiff/buildDocumentDiff.d.ts +25 -0
- package/dist/widgets/shared/documents/engines/documentDiff/buildDocumentDiff.d.ts.map +1 -0
- package/dist/widgets/shared/documents/engines/documentDiff/documentDiff.interfaces.d.ts +17 -0
- package/dist/widgets/shared/documents/engines/documentDiff/documentDiff.interfaces.d.ts.map +1 -0
- package/dist/widgets/shared/documents/engines/lazyEngines.d.ts +5 -0
- package/dist/widgets/shared/documents/engines/lazyEngines.d.ts.map +1 -0
- package/dist/widgets/shared/documents/engines/markdownEditor/MarkdownEditorEngine.d.ts +8 -0
- package/dist/widgets/shared/documents/engines/markdownEditor/MarkdownEditorEngine.d.ts.map +1 -0
- package/dist/widgets/shared/documents/engines/markdownEditor/markdownEditorEngine.interfaces.d.ts +23 -0
- package/dist/widgets/shared/documents/engines/markdownEditor/markdownEditorEngine.interfaces.d.ts.map +1 -0
- package/dist/widgets/shared/documents/engines/markdownEditor/markdownTextIndex.d.ts +12 -0
- package/dist/widgets/shared/documents/engines/markdownEditor/markdownTextIndex.d.ts.map +1 -0
- package/dist/widgets/shared/documents/engines/markdownEditor/sanitizeForMdx.d.ts +8 -0
- package/dist/widgets/shared/documents/engines/markdownEditor/sanitizeForMdx.d.ts.map +1 -0
- package/dist/widgets/shared/documents/engines/markdownEditor/sourceAnnotations.d.ts +32 -0
- package/dist/widgets/shared/documents/engines/markdownEditor/sourceAnnotations.d.ts.map +1 -0
- package/dist/widgets/shared/documents/engines/markdownRenderer/MarkdownRenderer.d.ts +12 -0
- package/dist/widgets/shared/documents/engines/markdownRenderer/MarkdownRenderer.d.ts.map +1 -0
- package/dist/widgets/shared/documents/engines/markdownRenderer/plugins/index.d.ts +7 -0
- package/dist/widgets/shared/documents/engines/markdownRenderer/plugins/index.d.ts.map +1 -0
- package/dist/widgets/shared/documents/engines/markdownRenderer/plugins/markdownNode.interfaces.d.ts +16 -0
- package/dist/widgets/shared/documents/engines/markdownRenderer/plugins/markdownNode.interfaces.d.ts.map +1 -0
- package/dist/widgets/shared/documents/engines/markdownRenderer/plugins/rehypeTableCleanup.d.ts +3 -0
- package/dist/widgets/shared/documents/engines/markdownRenderer/plugins/rehypeTableCleanup.d.ts.map +1 -0
- package/dist/widgets/shared/documents/engines/markdownRenderer/plugins/remarkPlugins.d.ts +6 -0
- package/dist/widgets/shared/documents/engines/markdownRenderer/plugins/remarkPlugins.d.ts.map +1 -0
- package/dist/widgets/shared/documents/engines/markdownRenderer/plugins/remarkSafeTables.d.ts +3 -0
- package/dist/widgets/shared/documents/engines/markdownRenderer/plugins/remarkSafeTables.d.ts.map +1 -0
- package/dist/widgets/shared/documents/engines/markdownRenderer/plugins/tableHelpers.d.ts +8 -0
- package/dist/widgets/shared/documents/engines/markdownRenderer/plugins/tableHelpers.d.ts.map +1 -0
- package/dist/widgets/shared/documents/engines/wordRenderer/WordRenderer.d.ts +11 -0
- package/dist/widgets/shared/documents/engines/wordRenderer/WordRenderer.d.ts.map +1 -0
- package/dist/widgets/shared/documents/engines/wordRenderer/renderWordDocument.d.ts +7 -0
- package/dist/widgets/shared/documents/engines/wordRenderer/renderWordDocument.d.ts.map +1 -0
- package/dist/widgets/shared/documents/engines/wordRenderer/wordPreviewNumbering.d.ts +3 -0
- package/dist/widgets/shared/documents/engines/wordRenderer/wordPreviewNumbering.d.ts.map +1 -0
- package/dist/widgets/shared/documents/engines/wordRenderer/wordXml.d.ts +21 -0
- package/dist/widgets/shared/documents/engines/wordRenderer/wordXml.d.ts.map +1 -0
- package/dist/widgets/shared/documents/index.d.ts +5 -0
- package/dist/widgets/shared/documents/index.d.ts.map +1 -0
- package/dist/widgets/shared/documents/useDocumentContent.d.ts +11 -0
- package/dist/widgets/shared/documents/useDocumentContent.d.ts.map +1 -0
- package/package.json +42 -28
- package/readme.md +49 -2
- package/dist/components/design/dialog/Dialog.test.d.ts +0 -5
- package/dist/components/design/dialog/Dialog.test.d.ts.map +0 -1
- package/dist/components/design/progressIndicators/circularProgressIndicator/CircularProgressIndicator.test.d.ts +0 -5
- package/dist/components/design/progressIndicators/circularProgressIndicator/CircularProgressIndicator.test.d.ts.map +0 -1
- package/dist/components/design/tooltip/Tooltip.test.d.ts +0 -2
- package/dist/components/design/tooltip/Tooltip.test.d.ts.map +0 -1
- package/dist/components/form/buttons/SimpleButton.test.d.ts +0 -5
- package/dist/components/form/buttons/SimpleButton.test.d.ts.map +0 -1
- package/dist/components/form/formFields/formFieldWrapper/FormField.test.d.ts +0 -5
- package/dist/components/form/formFields/formFieldWrapper/FormField.test.d.ts.map +0 -1
- package/dist/components/form/formFields/subComponents/inputs/checkbox/InputCheckbox.test.d.ts +0 -5
- package/dist/components/form/formFields/subComponents/inputs/checkbox/InputCheckbox.test.d.ts.map +0 -1
- package/dist/components/form/formFields/subComponents/inputs/checkbox/checkboxSwitch/CheckboxSwitch.test.d.ts +0 -5
- package/dist/components/form/formFields/subComponents/inputs/checkbox/checkboxSwitch/CheckboxSwitch.test.d.ts.map +0 -1
- package/dist/components/form/formFields/subComponents/inputs/file/dragAndDrop/DragAndDropFileUpload.test.d.ts +0 -5
- package/dist/components/form/formFields/subComponents/inputs/file/dragAndDrop/DragAndDropFileUpload.test.d.ts.map +0 -1
- package/dist/components/form/formFields/subComponents/inputs/file/fileAttachmentList/FileAttachmentsList.test.d.ts +0 -5
- package/dist/components/form/formFields/subComponents/inputs/file/fileAttachmentList/FileAttachmentsList.test.d.ts.map +0 -1
- package/dist/components/form/formFields/subComponents/inputs/text/InputText.test.d.ts +0 -5
- package/dist/components/form/formFields/subComponents/inputs/text/InputText.test.d.ts.map +0 -1
- package/dist/components/form/formFields/subComponents/nestedFormContext.test.d.ts +0 -5
- package/dist/components/form/formFields/subComponents/nestedFormContext.test.d.ts.map +0 -1
- package/dist/components/form/formFields/subComponents/select/Select.test.d.ts +0 -5
- package/dist/components/form/formFields/subComponents/select/Select.test.d.ts.map +0 -1
- package/dist/components/form/formFields/subComponents/textarea/Textarea.test.d.ts +0 -5
- package/dist/components/form/formFields/subComponents/textarea/Textarea.test.d.ts.map +0 -1
- package/dist/components/form/hookFormWrapper/HookFormWrapper.test.d.ts +0 -5
- package/dist/components/form/hookFormWrapper/HookFormWrapper.test.d.ts.map +0 -1
- package/dist/components/form/validation/ValidationMessages.test.d.ts +0 -5
- package/dist/components/form/validation/ValidationMessages.test.d.ts.map +0 -1
- package/dist/components/navigation/bubbleNavigator/bubbleNavigatorUtilities.test.d.ts +0 -2
- package/dist/components/navigation/bubbleNavigator/bubbleNavigatorUtilities.test.d.ts.map +0 -1
- package/dist/components/navigation/menu/menuItemContent/MenuItemIcon.test.d.ts +0 -5
- package/dist/components/navigation/menu/menuItemContent/MenuItemIcon.test.d.ts.map +0 -1
- package/dist/helpers/ageHelpers.test.d.ts +0 -2
- package/dist/helpers/ageHelpers.test.d.ts.map +0 -1
- package/dist/helpers/dateHelpers.test.d.ts +0 -2
- package/dist/helpers/dateHelpers.test.d.ts.map +0 -1
- package/dist/helpers/formatters.test.d.ts +0 -5
- package/dist/helpers/formatters.test.d.ts.map +0 -1
- package/dist/helpers/iconHelpers.test.d.ts +0 -5
- package/dist/helpers/iconHelpers.test.d.ts.map +0 -1
- package/dist/helpers/numberHelpers.test.d.ts +0 -5
- package/dist/helpers/numberHelpers.test.d.ts.map +0 -1
- package/dist/helpers/objectHelpers.test.d.ts +0 -2
- package/dist/helpers/objectHelpers.test.d.ts.map +0 -1
- package/dist/helpers/stringHelpers.test.d.ts +0 -2
- package/dist/helpers/stringHelpers.test.d.ts.map +0 -1
- package/dist/hooks/InteractiveHostFocus.test.d.ts +0 -5
- package/dist/hooks/InteractiveHostFocus.test.d.ts.map +0 -1
- package/dist/widgets/processLauncher/ProcessLauncher.test.d.ts +0 -5
- 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":[]}
|
|
File without changes
|
|
@@ -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 @@
|
|
|
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":[]}
|
|
File without changes
|