@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeLoader.js","names":["_interopRequireDefault","require","Object","defineProperty","exports","value","ThemeLoader","_react","_interopRequireWildcard","_libraryThemes","_AppContextProvider","_appEnvironment","_libraryCDN","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","getOwnPropertyDescriptor","themes","libraryThemes","useMin","forceProd","forceCacheBusting","userTheme","useLatest","baseCssLink","useRef","themeCssLink","appContextProvider","useContext","AppContext","appTheme","appContext","theme","activeTheme","publicLibraryDomain","env","process","NODE_ENV","isProduction","isDevelopment","cdnBaseUrl","LIBRARY_CDN_PROD_BASE_URL","LIBRARY_CDN_DEV_BASE_URL","LIBRARY_VERSION","getThemeCss","console","warn","buildPath","dev","min","versioned","cssFile","css","cacheBuster","CURRENT_DOMAIN","Date","getTime","libraryDomain","baseCss","useMemo","themeCss","useEffect","current","href","createElement","Fragment","ref","rel","as"],"sources":["../../../../../src/components/design/themeLoader/ThemeLoader.tsx"],"sourcesContent":["'use client';\n\nimport React, { useContext, useEffect, useRef, useMemo } from 'react';\n\nimport libraryThemes from '../../../autoGenerated/libraryThemes';\nimport { AppContext } from '../../../contextProviders/appContext/AppContextProvider';\nimport { CURRENT_DOMAIN } from '../../../constants/appEnvironment';\nimport { LIBRARY_CDN_DEV_BASE_URL, LIBRARY_CDN_PROD_BASE_URL, LIBRARY_VERSION } from '../../../constants/libraryCDN';\n\nexport type ThemeStructure = {\n buildPath: string;\n dev: {\n css: string;\n map: string;\n };\n min: {\n css: string;\n map: string;\n };\n versioned: {\n css: string;\n map: string;\n };\n};\n\ntype AvailableThemes = {\n [themeName: string]: ThemeStructure;\n};\n\ntype themeLoaderProps = {\n useMin?: boolean,\n forceProd?: boolean,\n forceCacheBusting?: boolean,\n userTheme?: string;\n useLatest?: boolean;\n};\n\nconst themes: AvailableThemes = libraryThemes || {};\n\nexport const ThemeLoader: React.FC<themeLoaderProps> = (\n {\n useMin = false,\n forceProd = false,\n forceCacheBusting = false,\n userTheme,\n useLatest =
|
|
1
|
+
{"version":3,"file":"ThemeLoader.js","names":["_interopRequireDefault","require","Object","defineProperty","exports","value","ThemeLoader","_react","_interopRequireWildcard","_libraryThemes","_AppContextProvider","_appEnvironment","_libraryCDN","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","getOwnPropertyDescriptor","themes","libraryThemes","useMin","forceProd","forceCacheBusting","userTheme","useLatest","baseCssLink","useRef","themeCssLink","appContextProvider","useContext","AppContext","appTheme","appContext","theme","activeTheme","publicLibraryDomain","env","process","NODE_ENV","isProduction","isDevelopment","cdnBaseUrl","LIBRARY_CDN_PROD_BASE_URL","LIBRARY_CDN_DEV_BASE_URL","LIBRARY_VERSION","getThemeCss","console","warn","buildPath","dev","min","versioned","cssFile","css","cacheBuster","CURRENT_DOMAIN","Date","getTime","libraryDomain","baseCss","useMemo","themeCss","useEffect","current","href","createElement","Fragment","ref","rel","as"],"sources":["../../../../../src/components/design/themeLoader/ThemeLoader.tsx"],"sourcesContent":["'use client';\n\nimport React, { useContext, useEffect, useRef, useMemo } from 'react';\n\nimport libraryThemes from '../../../autoGenerated/libraryThemes';\nimport { AppContext } from '../../../contextProviders/appContext/AppContextProvider';\nimport { CURRENT_DOMAIN } from '../../../constants/appEnvironment';\nimport { LIBRARY_CDN_DEV_BASE_URL, LIBRARY_CDN_PROD_BASE_URL, LIBRARY_VERSION } from '../../../constants/libraryCDN';\n\nexport type ThemeStructure = {\n buildPath: string;\n dev: {\n css: string;\n map: string;\n };\n min: {\n css: string;\n map: string;\n };\n versioned: {\n css: string;\n map: string;\n };\n};\n\ntype AvailableThemes = {\n [themeName: string]: ThemeStructure;\n};\n\ntype themeLoaderProps = {\n useMin?: boolean,\n forceProd?: boolean,\n forceCacheBusting?: boolean,\n userTheme?: string;\n // Load the CDN's `latest` stylesheets instead of those for the installed library version. Off by\n // default: `latest` changes under the app on every release, so it can restyle apps that never\n // upgraded with CSS written for components they do not have.\n useLatest?: boolean;\n};\n\nconst themes: AvailableThemes = libraryThemes || {};\n\nexport const ThemeLoader: React.FC<themeLoaderProps> = (\n {\n useMin = false,\n forceProd = false,\n forceCacheBusting = false,\n userTheme,\n useLatest = false,\n }\n) => {\n const baseCssLink = useRef<HTMLLinkElement>(null);\n const themeCssLink = useRef<HTMLLinkElement>(null);\n\n const appContextProvider = useContext(AppContext);\n const appTheme = appContextProvider?.appContext?.theme;\n\n const activeTheme = userTheme || appTheme;\n const publicLibraryDomain = appContextProvider?.appContext?.publicLibraryDomain || '';\n\n const env = process.env.NODE_ENV;\n const isProduction = env === 'production' || env === 'prod';\n const isDevelopment = env === 'development' || env === 'dev';\n\n const cdnBaseUrl = `${ isProduction ? LIBRARY_CDN_PROD_BASE_URL : LIBRARY_CDN_DEV_BASE_URL }/${ useLatest ? 'latest' : LIBRARY_VERSION }`;\n\n const getThemeCss = (theme: string | undefined) => {\n if (!theme || !themes[theme]) {\n console.warn(`Theme \"${ theme }\" not found. Using default variables instead.`);\n return null;\n }\n\n const {\n buildPath, dev, min, versioned\n } = themes[theme];\n\n const cssFile = () => {\n if (forceProd) {\n return versioned.css;\n }\n\n if (isProduction) {\n return useMin ? versioned.css : min.css;\n }\n\n if (isDevelopment) {\n return useMin ? min.css : dev.css;\n }\n\n return dev.css;\n };\n\n const cacheBuster = CURRENT_DOMAIN === 'localhost' || forceCacheBusting ? `?v=${ new Date().getTime() }` : '';\n const libraryDomain = publicLibraryDomain !== '' ? `${ publicLibraryDomain }` : cdnBaseUrl;\n\n return `${ libraryDomain }/${ buildPath }/${ cssFile() }${ cacheBuster }`;\n };\n\n const baseCss = useMemo(() => getThemeCss('base'), [activeTheme, useMin, forceProd, forceCacheBusting]);\n const themeCss = useMemo(() => getThemeCss(activeTheme), [activeTheme, useMin, forceProd, forceCacheBusting]);\n\n useEffect(() => {\n if (baseCss && baseCssLink.current) {\n baseCssLink.current.href = baseCss;\n }\n if (themeCss && themeCssLink.current) {\n themeCssLink.current.href = themeCss;\n }\n }, [activeTheme]);\n\n return (\n <>\n <link ref={ baseCssLink } rel=\"stylesheet\" as=\"style\" />\n <link ref={ themeCssLink } rel=\"stylesheet\" as=\"style\" />\n </>\n );\n};\n"],"mappings":";AAAA,YAAY;;AAAC,IAAAA,sBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,KAAA;AAAA;AAAAD,OAAA,CAAAE,WAAA;AAEb,IAAAC,MAAA,GAAAC,uBAAA,CAAAP,OAAA;AAEA,IAAAQ,cAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,mBAAA,GAAAT,OAAA;AACA,IAAAU,eAAA,GAAAV,OAAA;AACA,IAAAW,WAAA,GAAAX,OAAA;AAAqH,SAAAO,wBAAAK,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAP,uBAAA,YAAAA,CAAAK,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAjB,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAA2B,wBAAA,CAAAhB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAiCrH,MAAMgB,MAAuB,GAAGC,sBAAa,IAAI,CAAC,CAAC;AAE5C,MAAMzB,WAAuC,GAAGA,CACrD;EACE0B,MAAM,GAAG,KAAK;EACdC,SAAS,GAAG,KAAK;EACjBC,iBAAiB,GAAG,KAAK;EACzBC,SAAS;EACTC,SAAS,GAAG;AACd,CAAC,KACE;EACH,MAAMC,WAAW,GAAG,IAAAC,aAAM,EAAkB,IAAI,CAAC;EACjD,MAAMC,YAAY,GAAG,IAAAD,aAAM,EAAkB,IAAI,CAAC;EAElD,MAAME,kBAAkB,GAAG,IAAAC,iBAAU,EAACC,8BAAU,CAAC;EACjD,MAAMC,QAAQ,GAAGH,kBAAkB,EAAEI,UAAU,EAAEC,KAAK;EAEtD,MAAMC,WAAW,GAAGX,SAAS,IAAIQ,QAAQ;EACzC,MAAMI,mBAAmB,GAAGP,kBAAkB,EAAEI,UAAU,EAAEG,mBAAmB,IAAI,EAAE;EAErF,MAAMC,GAAG,GAAGC,OAAO,CAACD,GAAG,CAACE,QAAQ;EAChC,MAAMC,YAAY,GAAGH,GAAG,KAAK,YAAY,IAAIA,GAAG,KAAK,MAAM;EAC3D,MAAMI,aAAa,GAAGJ,GAAG,KAAK,aAAa,IAAIA,GAAG,KAAK,KAAK;EAE5D,MAAMK,UAAU,GAAG,GAAIF,YAAY,GAAGG,qCAAyB,GAAGC,oCAAwB,IAAMnB,SAAS,GAAG,QAAQ,GAAGoB,2BAAe,EAAG;EAEzI,MAAMC,WAAW,GAAIZ,KAAyB,IAAK;IACjD,IAAI,CAACA,KAAK,IAAI,CAACf,MAAM,CAACe,KAAK,CAAC,EAAE;MAC5Ba,OAAO,CAACC,IAAI,CAAC,UAAWd,KAAK,+CAAgD,CAAC;MAC9E,OAAO,IAAI;IACb;IAEA,MAAM;MACJe,SAAS;MAAEC,GAAG;MAAEC,GAAG;MAAEC;IACvB,CAAC,GAAGjC,MAAM,CAACe,KAAK,CAAC;IAEjB,MAAMmB,OAAO,GAAGA,CAAA,KAAM;MACpB,IAAI/B,SAAS,EAAE;QACb,OAAO8B,SAAS,CAACE,GAAG;MACtB;MAEA,IAAId,YAAY,EAAE;QAChB,OAAOnB,MAAM,GAAG+B,SAAS,CAACE,GAAG,GAAGH,GAAG,CAACG,GAAG;MACzC;MAEA,IAAIb,aAAa,EAAE;QACjB,OAAOpB,MAAM,GAAG8B,GAAG,CAACG,GAAG,GAAGJ,GAAG,CAACI,GAAG;MACnC;MAEA,OAAOJ,GAAG,CAACI,GAAG;IAChB,CAAC;IAED,MAAMC,WAAW,GAAGC,8BAAc,KAAK,WAAW,IAAIjC,iBAAiB,GAAG,MAAO,IAAIkC,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,EAAG,GAAG,EAAE;IAC7G,MAAMC,aAAa,GAAGvB,mBAAmB,KAAK,EAAE,GAAG,GAAIA,mBAAmB,EAAG,GAAGM,UAAU;IAE1F,OAAO,GAAIiB,aAAa,IAAMV,SAAS,IAAMI,OAAO,CAAC,CAAC,GAAKE,WAAW,EAAG;EAC3E,CAAC;EAED,MAAMK,OAAO,GAAG,IAAAC,cAAO,EAAC,MAAMf,WAAW,CAAC,MAAM,CAAC,EAAE,CAACX,WAAW,EAAEd,MAAM,EAAEC,SAAS,EAAEC,iBAAiB,CAAC,CAAC;EACvG,MAAMuC,QAAQ,GAAG,IAAAD,cAAO,EAAC,MAAMf,WAAW,CAACX,WAAW,CAAC,EAAE,CAACA,WAAW,EAAEd,MAAM,EAAEC,SAAS,EAAEC,iBAAiB,CAAC,CAAC;EAE7G,IAAAwC,gBAAS,EAAC,MAAM;IACd,IAAIH,OAAO,IAAIlC,WAAW,CAACsC,OAAO,EAAE;MAClCtC,WAAW,CAACsC,OAAO,CAACC,IAAI,GAAGL,OAAO;IACpC;IACA,IAAIE,QAAQ,IAAIlC,YAAY,CAACoC,OAAO,EAAE;MACpCpC,YAAY,CAACoC,OAAO,CAACC,IAAI,GAAGH,QAAQ;IACtC;EACF,CAAC,EAAE,CAAC3B,WAAW,CAAC,CAAC;EAEjB,oBACEvC,MAAA,CAAAgB,OAAA,CAAAsD,aAAA,CAAAtE,MAAA,CAAAgB,OAAA,CAAAuD,QAAA,qBACEvE,MAAA,CAAAgB,OAAA,CAAAsD,aAAA;IAAME,GAAG,EAAG1C,WAAa;IAAC2C,GAAG,EAAC,YAAY;IAACC,EAAE,EAAC;EAAO,CAAE,CAAC,eACxD1E,MAAA,CAAAgB,OAAA,CAAAsD,aAAA;IAAME,GAAG,EAAGxC,YAAc;IAACyC,GAAG,EAAC,YAAY;IAACC,EAAE,EAAC;EAAO,CAAE,CACxD,CAAC;AAEP,CAAC;AAAC7E,OAAA,CAAAE,WAAA,GAAAA,WAAA","ignoreList":[]}
|
|
@@ -24,6 +24,7 @@ const SimpleButton = exports.Button = exports.SimpleButton = /*#__PURE__*/(0, _r
|
|
|
24
24
|
disabledMessage = 'This button has been disabled temporarily. There is likely an issue elsewhere on your form that needs to be resolved first.',
|
|
25
25
|
onClickHandler = () => {},
|
|
26
26
|
buttonStyle,
|
|
27
|
+
ariaPressed,
|
|
27
28
|
children
|
|
28
29
|
}, ref) => {
|
|
29
30
|
const buttonCssClass = (0, _react.useMemo)(() => {
|
|
@@ -49,7 +50,8 @@ const SimpleButton = exports.Button = exports.SimpleButton = /*#__PURE__*/(0, _r
|
|
|
49
50
|
className: buttonCssClass,
|
|
50
51
|
type: buttonType,
|
|
51
52
|
onClick: onClickHandler,
|
|
52
|
-
disabled: disabled
|
|
53
|
+
disabled: disabled,
|
|
54
|
+
"aria-pressed": ariaPressed
|
|
53
55
|
}, disabled && {
|
|
54
56
|
'aria-describedby': disabledMessageId
|
|
55
57
|
}), (0, _iconHelpers.renderIcon)(leftIcon), /*#__PURE__*/_react.default.createElement("span", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleButton.js","names":["_interopRequireDefault","require","Object","defineProperty","exports","value","default","SimpleButton","Button","_extends2","_react","_interopRequireWildcard","_iconHelpers","_button","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","has","get","set","hasOwnProperty","call","getOwnPropertyDescriptor","forwardRef","buttonType","leftIcon","rightIcon","hideLabel","label","title","id","cssClass","disabled","disabledMessage","onClickHandler","buttonStyle","children","ref","buttonCssClass","useMemo","generateButtonClass","disabledMessageId","buttonHoverTitle","createElement","Fragment","className","type","onClick","renderIcon","_default"],"sources":["../../../../../src/components/form/buttons/SimpleButton.tsx"],"sourcesContent":["'use client';\n\nimport React, { useMemo, forwardRef } from 'react';\nimport { ButtonProps } from './button.interface';\nimport { renderIcon } from '../../../helpers/iconHelpers';\nimport { generateButtonClass } from './button.helpers';\n\nexport const SimpleButton = forwardRef<HTMLButtonElement, ButtonProps>((\n {\n buttonType = 'button',\n leftIcon,\n rightIcon,\n hideLabel = false,\n label = 'A button',\n title,\n id = 'buttonIdRequired',\n cssClass = 'button primary',\n disabled = false,\n disabledMessage = 'This button has been disabled temporarily. There is likely an issue elsewhere on your form that needs to be resolved first.',\n onClickHandler = () => { },\n buttonStyle,\n children\n },\n ref\n) => {\n \n const buttonCssClass = useMemo(() => {\n return generateButtonClass({ cssClass, buttonStyle, hideLabel });\n }, [cssClass, buttonStyle, hideLabel]);\n\n const disabledMessageId = `${ id }-disabledMessage`;\n\n const buttonHoverTitle = () => {\n if (title) {\n return title;\n }\n if (hideLabel && typeof label === 'string') {\n return label;\n }\n };\n\n return (\n <>\n <button\n ref={ ref }\n id={ id }\n title={ buttonHoverTitle() }\n className={ buttonCssClass }\n type={ buttonType }\n onClick={ onClickHandler }\n disabled={ disabled }\n { ...(disabled && { 'aria-describedby': disabledMessageId }) }\n >\n { renderIcon(leftIcon) }\n\n <span className={ `${ hideLabel ? 'sr-only' : 'labelText' }` }>{ label }</span>\n\n { children }\n\n { renderIcon(rightIcon) }\n </button>\n {\n disabled && (\n <span id={ disabledMessageId } className=\"sr-only\">\n {\n disabledMessage\n }\n </span>\n )\n }\n </>\n );\n});\n\nexport default SimpleButton;\n\nexport { SimpleButton as Button };"],"mappings":";AAAA,YAAY;;AAAC,IAAAA,sBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,KAAA;AAAA;AAAAD,OAAA,CAAAE,OAAA,GAAAF,OAAA,CAAAG,YAAA,GAAAH,OAAA,CAAAI,MAAA;AAAA,IAAAC,SAAA,GAAAT,sBAAA,CAAAC,OAAA;AAEb,IAAAS,MAAA,GAAAC,uBAAA,CAAAV,OAAA;AAEA,IAAAW,YAAA,GAAAX,OAAA;AACA,IAAAY,OAAA,GAAAZ,OAAA;AAAuD,SAAAU,wBAAAG,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAL,uBAAA,YAAAA,CAAAG,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAjB,OAAA,EAAAQ,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAI,GAAA,CAAAV,CAAA,UAAAM,CAAA,CAAAK,GAAA,CAAAX,CAAA,GAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAY,cAAA,CAAAC,IAAA,CAAAd,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAlB,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAA2B,wBAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAI,GAAA,IAAAJ,CAAA,CAAAK,GAAA,IAAAN,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAEhD,MAAMR,YAAY,GAAAH,OAAA,CAAAI,MAAA,GAAAJ,OAAA,CAAAG,YAAA,gBAAG,IAAAuB,iBAAU,EAAiC,CACrE;EACEC,UAAU,GAAG,QAAQ;EACrBC,QAAQ;EACRC,SAAS;EACTC,SAAS,GAAG,KAAK;EACjBC,KAAK,GAAG,UAAU;EAClBC,KAAK;EACLC,EAAE,GAAG,kBAAkB;EACvBC,QAAQ,GAAG,gBAAgB;EAC3BC,QAAQ,GAAG,KAAK;EAChBC,eAAe,GAAG,6HAA6H;EAC/IC,cAAc,GAAGA,CAAA,KAAM,CAAE,CAAC;EAC1BC,WAAW;EACXC;AACF,CAAC,EACDC,GAAG,KACA;EAEH,MAAMC,cAAc,GAAG,IAAAC,cAAO,EAAC,MAAM;IACnC,OAAO,IAAAC,2BAAmB,EAAC;
|
|
1
|
+
{"version":3,"file":"SimpleButton.js","names":["_interopRequireDefault","require","Object","defineProperty","exports","value","default","SimpleButton","Button","_extends2","_react","_interopRequireWildcard","_iconHelpers","_button","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","has","get","set","hasOwnProperty","call","getOwnPropertyDescriptor","forwardRef","buttonType","leftIcon","rightIcon","hideLabel","label","title","id","cssClass","disabled","disabledMessage","onClickHandler","buttonStyle","ariaPressed","children","ref","buttonCssClass","useMemo","generateButtonClass","disabledMessageId","buttonHoverTitle","createElement","Fragment","className","type","onClick","renderIcon","_default"],"sources":["../../../../../src/components/form/buttons/SimpleButton.tsx"],"sourcesContent":["'use client';\n\nimport React, { useMemo, forwardRef } from 'react';\nimport { ButtonProps } from './button.interface';\nimport { renderIcon } from '../../../helpers/iconHelpers';\nimport { generateButtonClass } from './button.helpers';\n\nexport const SimpleButton = forwardRef<HTMLButtonElement, ButtonProps>((\n {\n buttonType = 'button',\n leftIcon,\n rightIcon,\n hideLabel = false,\n label = 'A button',\n title,\n id = 'buttonIdRequired',\n cssClass = 'button primary',\n disabled = false,\n disabledMessage = 'This button has been disabled temporarily. There is likely an issue elsewhere on your form that needs to be resolved first.',\n onClickHandler = () => { },\n buttonStyle,\n ariaPressed,\n children\n },\n ref\n) => {\n \n const buttonCssClass = useMemo(() => {\n return generateButtonClass({ cssClass, buttonStyle, hideLabel });\n }, [cssClass, buttonStyle, hideLabel]);\n\n const disabledMessageId = `${ id }-disabledMessage`;\n\n const buttonHoverTitle = () => {\n if (title) {\n return title;\n }\n if (hideLabel && typeof label === 'string') {\n return label;\n }\n };\n\n return (\n <>\n <button\n ref={ ref }\n id={ id }\n title={ buttonHoverTitle() }\n className={ buttonCssClass }\n type={ buttonType }\n onClick={ onClickHandler }\n disabled={ disabled }\n aria-pressed={ ariaPressed }\n { ...(disabled && { 'aria-describedby': disabledMessageId }) }\n >\n { renderIcon(leftIcon) }\n\n <span className={ `${ hideLabel ? 'sr-only' : 'labelText' }` }>{ label }</span>\n\n { children }\n\n { renderIcon(rightIcon) }\n </button>\n {\n disabled && (\n <span id={ disabledMessageId } className=\"sr-only\">\n {\n disabledMessage\n }\n </span>\n )\n }\n </>\n );\n});\n\nexport default SimpleButton;\n\nexport { SimpleButton as Button };"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.interface.js","names":[],"sources":["../../../../../src/components/form/buttons/button.interface.ts"],"sourcesContent":["import { ReactElement, ReactNode, RefObject } from 'react';\nimport { IconSource } from '../../../helpers/iconHelpers';\nimport { GenericFunction } from '../../../interfaces/generic.interface';\nimport { ButtonClassCombination } from './buttonVariations';\n\nexport interface ButtonStyles {\n color?: 'primary' | 'secondary' | 'tertiary';\n variant?: 'solid' | 'outline' | 'text-only' | 'icon-only';\n size?: 'default' | 'compact';\n}\n\nexport interface ButtonProps {\n label: string | ReactNode;\n id: string;\n title?: string;\n cssClass?: string | ButtonClassCombination;\n onClickHandler?: GenericFunction;\n buttonType?: 'button' | 'submit' | 'reset';\n buttonStyle?: ButtonStyles;\n leftIcon?: IconSource;\n rightIcon?: IconSource;\n hideLabel?: boolean;\n children?: ReactNode | ReactElement;\n disabled?: boolean;\n disabledMessage?: string;\n ref?: RefObject<HTMLButtonElement>;\n}\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"button.interface.js","names":[],"sources":["../../../../../src/components/form/buttons/button.interface.ts"],"sourcesContent":["import { ReactElement, ReactNode, RefObject } from 'react';\nimport { IconSource } from '../../../helpers/iconHelpers';\nimport { GenericFunction } from '../../../interfaces/generic.interface';\nimport { ButtonClassCombination } from './buttonVariations';\n\nexport interface ButtonStyles {\n color?: 'primary' | 'secondary' | 'tertiary';\n variant?: 'solid' | 'outline' | 'text-only' | 'icon-only';\n size?: 'default' | 'compact';\n}\n\nexport interface ButtonProps {\n label: string | ReactNode;\n id: string;\n title?: string;\n cssClass?: string | ButtonClassCombination;\n onClickHandler?: GenericFunction;\n buttonType?: 'button' | 'submit' | 'reset';\n buttonStyle?: ButtonStyles;\n leftIcon?: IconSource;\n rightIcon?: IconSource;\n hideLabel?: boolean;\n children?: ReactNode | ReactElement;\n disabled?: boolean;\n disabledMessage?: string;\n // Makes the button a toggle; set for buttons that switch a state on or off, e.g. a view selector.\n ariaPressed?: boolean;\n ref?: RefObject<HTMLButtonElement>;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -11,12 +11,14 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
11
11
|
var _SimpleButton = require("../SimpleButton");
|
|
12
12
|
var _Icon = require("../../../design/icons/basicIcon/Icon");
|
|
13
13
|
var _stringHelpers = require("../../../../helpers/stringHelpers");
|
|
14
|
+
var _urlHelpers = require("../../../../helpers/urlHelpers");
|
|
14
15
|
require("./userPicButton.css");
|
|
15
16
|
const UserPicButton = props => {
|
|
16
17
|
const {
|
|
17
18
|
user,
|
|
18
19
|
...buttonProps
|
|
19
20
|
} = props;
|
|
21
|
+
const backgroundImage = (0, _urlHelpers.toCssImageUrl)(user.imageUrl);
|
|
20
22
|
return /*#__PURE__*/_react.default.createElement(_SimpleButton.SimpleButton, (0, _extends2.default)({}, buttonProps, {
|
|
21
23
|
hideLabel: true,
|
|
22
24
|
cssClass: "button icon_only userPicButton"
|
|
@@ -24,9 +26,9 @@ const UserPicButton = props => {
|
|
|
24
26
|
title: user.fullName || 'User profile',
|
|
25
27
|
className: "userPicFallbacks"
|
|
26
28
|
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
27
|
-
style: {
|
|
28
|
-
backgroundImage
|
|
29
|
-
},
|
|
29
|
+
style: backgroundImage ? {
|
|
30
|
+
backgroundImage
|
|
31
|
+
} : undefined,
|
|
30
32
|
className: "userPic"
|
|
31
33
|
}), user.fullName && /*#__PURE__*/_react.default.createElement("span", {
|
|
32
34
|
className: "userInitials"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserPicButton.js","names":["_interopRequireDefault","require","Object","defineProperty","exports","value","UserPicButton","_extends2","_react","_SimpleButton","_Icon","_stringHelpers","props","user","buttonProps","default","createElement","SimpleButton","hideLabel","cssClass","title","fullName","className","style","
|
|
1
|
+
{"version":3,"file":"UserPicButton.js","names":["_interopRequireDefault","require","Object","defineProperty","exports","value","UserPicButton","_extends2","_react","_SimpleButton","_Icon","_stringHelpers","_urlHelpers","props","user","buttonProps","backgroundImage","toCssImageUrl","imageUrl","default","createElement","SimpleButton","hideLabel","cssClass","title","fullName","className","style","undefined","getInitialsOrAcronym","Icon","icon","customCssClass"],"sources":["../../../../../../src/components/form/buttons/userPicButton/UserPicButton.tsx"],"sourcesContent":["'use client';\n\nimport React from 'react';\nimport { ButtonProps } from '../button.interface';\nimport { SimpleButton } from '../SimpleButton';\nimport { Icon } from '../../../design/icons/basicIcon/Icon';\nimport { getInitialsOrAcronym } from '../../../../helpers/stringHelpers';\nimport { toCssImageUrl } from '../../../../helpers/urlHelpers';\n\nimport './userPicButton.scss';\n\nexport interface UserPicButtonProps extends ButtonProps {\n user: {\n imageUrl?: string;\n fullName?: string;\n }\n}\n\nexport const UserPicButton: React.FC<UserPicButtonProps> = (props) => {\n const {\n user, ...buttonProps\n } = props;\n const backgroundImage = toCssImageUrl(user.imageUrl);\n\n return (\n <SimpleButton { ...buttonProps } hideLabel cssClass=\"button icon_only userPicButton\">\n <span title={ user.fullName || 'User profile' } className=\"userPicFallbacks\">\n <span\n style={ backgroundImage ? { backgroundImage } : undefined }\n className=\"userPic\"\n />\n {\n user.fullName\n && (\n <span className=\"userInitials\">\n { getInitialsOrAcronym(user.fullName) }\n </span>\n )\n }\n <Icon icon=\"user\" customCssClass=\"userPicFallbackIcon\" />\n </span>\n </SimpleButton>\n );\n};\n"],"mappings":";AAAA,YAAY;;AAAC,IAAAA,sBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,KAAA;AAAA;AAAAD,OAAA,CAAAE,aAAA;AAAA,IAAAC,SAAA,GAAAP,sBAAA,CAAAC,OAAA;AAEb,IAAAO,MAAA,GAAAR,sBAAA,CAAAC,OAAA;AAEA,IAAAQ,aAAA,GAAAR,OAAA;AACA,IAAAS,KAAA,GAAAT,OAAA;AACA,IAAAU,cAAA,GAAAV,OAAA;AACA,IAAAW,WAAA,GAAAX,OAAA;AAEAA,OAAA;AASO,MAAMK,aAA2C,GAAIO,KAAK,IAAK;EACpE,MAAM;IACJC,IAAI;IAAE,GAAGC;EACX,CAAC,GAAGF,KAAK;EACT,MAAMG,eAAe,GAAG,IAAAC,yBAAa,EAACH,IAAI,CAACI,QAAQ,CAAC;EAEpD,oBACEV,MAAA,CAAAW,OAAA,CAAAC,aAAA,CAACX,aAAA,CAAAY,YAAY,MAAAd,SAAA,CAAAY,OAAA,MAAMJ,WAAW;IAAGO,SAAS;IAACC,QAAQ,EAAC;EAAgC,iBAClFf,MAAA,CAAAW,OAAA,CAAAC,aAAA;IAAMI,KAAK,EAAGV,IAAI,CAACW,QAAQ,IAAI,cAAgB;IAACC,SAAS,EAAC;EAAkB,gBAC1ElB,MAAA,CAAAW,OAAA,CAAAC,aAAA;IACEO,KAAK,EAAGX,eAAe,GAAG;MAAEA;IAAgB,CAAC,GAAGY,SAAW;IAC3DF,SAAS,EAAC;EAAS,CACpB,CAAC,EAEAZ,IAAI,CAACW,QAAQ,iBAEXjB,MAAA,CAAAW,OAAA,CAAAC,aAAA;IAAMM,SAAS,EAAC;EAAc,GAC1B,IAAAG,mCAAoB,EAACf,IAAI,CAACW,QAAQ,CAChC,CACP,eAEHjB,MAAA,CAAAW,OAAA,CAAAC,aAAA,CAACV,KAAA,CAAAoB,IAAI;IAACC,IAAI,EAAC,MAAM;IAACC,cAAc,EAAC;EAAqB,CAAE,CACpD,CACM,CAAC;AAEnB,CAAC;AAAC5B,OAAA,CAAAE,aAAA,GAAAA,aAAA","ignoreList":[]}
|
|
@@ -8,6 +8,7 @@ exports.default = exports.DragAndDropFileUpload = void 0;
|
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
9
|
var _iconDefinitions = require("@x15ventures/x15-ui-library-icons/iconDefinitions");
|
|
10
10
|
var _reactHookForm = require("react-hook-form");
|
|
11
|
+
var _fileHelpers = require("../../../../../../../helpers/fileHelpers");
|
|
11
12
|
var _iconHelpers = require("../../../../../../../helpers/iconHelpers");
|
|
12
13
|
var _HookFormWrapper = require("../../../../../hookFormWrapper/HookFormWrapper");
|
|
13
14
|
var _Spinner = require("../../../../../../design/spinner/Spinner");
|
|
@@ -19,6 +20,52 @@ var _FileAttachmentsList = require("../fileAttachmentList/FileAttachmentsList");
|
|
|
19
20
|
var _constants = require("../../../../../../../constants");
|
|
20
21
|
require("./dragAndDropFileUpload.css");
|
|
21
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
|
+
// A dot-file such as `.exe` has no extension by convention, but its name is still checked as one so
|
|
24
|
+
// it cannot slip past the blacklist.
|
|
25
|
+
const getUploadExtension = fileName => (0, _fileHelpers.getFileExtension)(fileName.startsWith('.') ? `upload${fileName}` : fileName);
|
|
26
|
+
const DEFAULT_VALID_FILES = {
|
|
27
|
+
extensions: _constants.DEFAULT_UPLOAD_FILE_EXTENSIONS,
|
|
28
|
+
fileTypes: _constants.DEFAULT_UPLOAD_FILE_TYPES,
|
|
29
|
+
maxFileCount: 5,
|
|
30
|
+
maxFileSize: 52428800 // 50 MB
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
/*
|
|
34
|
+
Limits-only configurations keep the default type restrictions. Once either `extensions` or
|
|
35
|
+
`fileTypes` is supplied (even as undefined), both are taken from the configuration so the picker
|
|
36
|
+
filter and the validation cannot disagree.
|
|
37
|
+
*/
|
|
38
|
+
const resolveValidFiles = customValidFiles => {
|
|
39
|
+
if (!customValidFiles) {
|
|
40
|
+
return DEFAULT_VALID_FILES;
|
|
41
|
+
}
|
|
42
|
+
const customisesTypes = 'extensions' in customValidFiles || 'fileTypes' in customValidFiles;
|
|
43
|
+
return customisesTypes ? {
|
|
44
|
+
...DEFAULT_VALID_FILES,
|
|
45
|
+
...customValidFiles,
|
|
46
|
+
extensions: customValidFiles.extensions,
|
|
47
|
+
fileTypes: customValidFiles.fileTypes
|
|
48
|
+
} : {
|
|
49
|
+
...DEFAULT_VALID_FILES,
|
|
50
|
+
...customValidFiles
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
// Matches a file against `accept`-style tokens: `.ext`, `type/*` or an exact MIME type.
|
|
55
|
+
const matchesFileTypes = (file, fileTypes) => {
|
|
56
|
+
const extension = getUploadExtension(file.name);
|
|
57
|
+
const mimeType = file.type.toLowerCase();
|
|
58
|
+
return fileTypes.some(token => {
|
|
59
|
+
const normalised = token.trim().toLowerCase();
|
|
60
|
+
if (normalised.startsWith('.')) {
|
|
61
|
+
return normalised.slice(1) === extension;
|
|
62
|
+
}
|
|
63
|
+
if (normalised.endsWith('/*')) {
|
|
64
|
+
return mimeType.startsWith(normalised.slice(0, -1));
|
|
65
|
+
}
|
|
66
|
+
return normalised !== '' && normalised === mimeType;
|
|
67
|
+
});
|
|
68
|
+
};
|
|
22
69
|
const DragAndDropFileUpload = props => /*#__PURE__*/_react.default.createElement(_HookFormWrapper.HookFormWrapper, {
|
|
23
70
|
formContext: props.formContext
|
|
24
71
|
}, /*#__PURE__*/_react.default.createElement(DragAndDropFileUploadField, props));
|
|
@@ -41,14 +88,10 @@ const DragAndDropFileUploadField = ({
|
|
|
41
88
|
labelUploadIcon = _iconDefinitions.arrowUpFromBracket,
|
|
42
89
|
multiple = false,
|
|
43
90
|
restrictionsTxt = '',
|
|
44
|
-
validFiles
|
|
45
|
-
extensions: _constants.DEFAULT_UPLOAD_FILE_EXTENSIONS,
|
|
46
|
-
fileTypes: _constants.DEFAULT_UPLOAD_FILE_TYPES,
|
|
47
|
-
maxFileCount: 5,
|
|
48
|
-
maxFileSize: 52428800 // 50 MB
|
|
49
|
-
},
|
|
91
|
+
validFiles: customValidFiles,
|
|
50
92
|
onFilesChange = () => {}
|
|
51
93
|
}) => {
|
|
94
|
+
const validFiles = (0, _react.useMemo)(() => resolveValidFiles(customValidFiles), [customValidFiles]);
|
|
52
95
|
const {
|
|
53
96
|
setValue,
|
|
54
97
|
trigger
|
|
@@ -80,15 +123,16 @@ const DragAndDropFileUploadField = ({
|
|
|
80
123
|
return () => window.removeEventListener('focus', onFocus);
|
|
81
124
|
}, [trigger, field.name]);
|
|
82
125
|
const supportedFileTypes = (0, _react.useMemo)(() => validFiles?.fileTypes?.join(', ') || '', [validFiles?.fileTypes]);
|
|
126
|
+
const isFileAllowed = (0, _react.useCallback)(file => {
|
|
127
|
+
const ext = getUploadExtension(file.name);
|
|
128
|
+
const isBlacklisted = _constants.BLACKLISTED_FILE_TYPES.includes(ext);
|
|
129
|
+
// Without an extension allowlist, the picker's file types are enforced so dropped files obey them too.
|
|
130
|
+
const isValidExt = validFiles.extensions ? validFiles.extensions.includes(ext) : validFiles.fileTypes?.length ? matchesFileTypes(file, validFiles.fileTypes) : true;
|
|
131
|
+
const isValidSize = validFiles.maxFileSize ? file.size <= validFiles.maxFileSize : true;
|
|
132
|
+
return !isBlacklisted && isValidExt && isValidSize;
|
|
133
|
+
}, [validFiles]);
|
|
83
134
|
const validateAndCommit = (0, _react.useCallback)(files => {
|
|
84
|
-
|
|
85
|
-
const validated = files.filter(file => {
|
|
86
|
-
const ext = file.name.split('.').pop()?.toLowerCase() || '';
|
|
87
|
-
const isBlacklisted = _constants.BLACKLISTED_FILE_TYPES.includes(ext);
|
|
88
|
-
const isValidExt = validFiles.extensions ? validFiles.extensions.includes(ext) : true;
|
|
89
|
-
const isValidSize = validFiles.maxFileSize ? file.size <= validFiles.maxFileSize : true;
|
|
90
|
-
return !isBlacklisted && isValidExt && isValidSize;
|
|
91
|
-
});
|
|
135
|
+
const validated = files.filter(isFileAllowed);
|
|
92
136
|
const clipped = validFiles.maxFileCount ? validated.slice(0, validFiles.maxFileCount) : validated;
|
|
93
137
|
setFileList(clipped);
|
|
94
138
|
setIsTouched(true);
|
|
@@ -98,7 +142,7 @@ const DragAndDropFileUploadField = ({
|
|
|
98
142
|
shouldTouch: true
|
|
99
143
|
});
|
|
100
144
|
onFilesChange(clipped);
|
|
101
|
-
}, [field.name, onFilesChange, setValue,
|
|
145
|
+
}, [field.name, onFilesChange, setValue, isFileAllowed, validFiles]);
|
|
102
146
|
const handleFileInputChange = (0, _react.useCallback)(event => {
|
|
103
147
|
const target = event.target;
|
|
104
148
|
const files = Array.from(target.files ?? []);
|
|
@@ -110,9 +154,10 @@ const DragAndDropFileUploadField = ({
|
|
|
110
154
|
validateAndCommit(dropped);
|
|
111
155
|
trigger(field.name);
|
|
112
156
|
}, [trigger, field.name, validateAndCommit]);
|
|
113
|
-
const handleFilesEdited = (0, _react.useCallback)(
|
|
114
|
-
//
|
|
115
|
-
//
|
|
157
|
+
const handleFilesEdited = (0, _react.useCallback)(editedFiles => {
|
|
158
|
+
// Edits may rename files, so they are checked again: renaming `notes.txt` to `notes.exe` must not
|
|
159
|
+
// get past the extension rules the original name passed.
|
|
160
|
+
const files = editedFiles.filter(isFileAllowed);
|
|
116
161
|
setFileList(files);
|
|
117
162
|
setValue(field.name, files.length > 0 ? files : null, {
|
|
118
163
|
shouldValidate: true,
|
|
@@ -120,7 +165,7 @@ const DragAndDropFileUploadField = ({
|
|
|
120
165
|
shouldTouch: true
|
|
121
166
|
});
|
|
122
167
|
onFilesChange(files);
|
|
123
|
-
}, [field.name, setValue, onFilesChange]);
|
|
168
|
+
}, [field.name, setValue, onFilesChange, isFileAllowed]);
|
|
124
169
|
const wrapperCssClass = `
|
|
125
170
|
formField
|
|
126
171
|
dragAndDropFileUpload
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DragAndDropFileUpload.js","names":["Object","defineProperty","exports","value","default","DragAndDropFileUpload","_react","_interopRequireWildcard","require","_iconDefinitions","_reactHookForm","_iconHelpers","_HookFormWrapper","_Spinner","_FormFieldLabel","_InputFile","_ValidationMessages","_button","_FileAttachmentsList","_constants","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","has","get","set","hasOwnProperty","call","getOwnPropertyDescriptor","props","createElement","HookFormWrapper","formContext","DragAndDropFileUploadField","label","field","showSpinner","fileDisplayStyle","fileListSettings","fileList","validation","customContent","customCssClasses","labelStyle","labelAsButtonStyles","color","variant","labelUploadIcon","arrowUpFromBracket","multiple","restrictionsTxt","validFiles","extensions","DEFAULT_UPLOAD_FILE_EXTENSIONS","fileTypes","DEFAULT_UPLOAD_FILE_TYPES","maxFileCount","maxFileSize","onFilesChange","setValue","trigger","useFormContext","activeFileList","setFileList","useState","isTouched","setIsTouched","isDragActive","setIsDragActive","inputId","id","inputElRef","useRef","dialogOpenRef","useEffect","current","document","getElementById","onFocus","noneSelected","files","length","name","window","addEventListener","removeEventListener","supportedFileTypes","useMemo","join","validateAndCommit","useCallback","validated","filter","file","ext","split","pop","toLowerCase","isBlacklisted","BLACKLISTED_FILE_TYPES","includes","isValidExt","isValidSize","size","clipped","slice","shouldValidate","shouldDirty","shouldTouch","handleFileInputChange","event","target","Array","from","handleDrop","dropped","handleFilesEdited","wrapperCssClass","wrapper","position","labelProps","isRequired","required","labelStyleAsButtonClasses","generateButtonClass","cssClass","buttonStyle","hideLabel","hide","labelCssClass","className","onDragOver","preventDefault","onDragLeave","currentTarget","onDrop","dataTransfer","labelId","htmlFor","onClick","renderIcon","FormFieldLabel","InputFile","type","defaultValue","accept","onInput","Spinner","map","index","key","ValidationMessages","FileAttachmentsList","customFileListSettings","onFilesRemoved","onFilesEdited","_default"],"sources":["../../../../../../../../../src/components/form/formFields/subComponents/inputs/file/dragAndDrop/DragAndDropFileUpload.tsx"],"sourcesContent":["'use client';\n\nimport React, { FormEvent, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { arrowUpFromBracket } from '@x15ventures/x15-ui-library-icons/iconDefinitions';\nimport { useFormContext } from 'react-hook-form';\nimport { renderIcon } from '../../../../../../../helpers/iconHelpers';\nimport { HookFormWrapper } from '../../../../../hookFormWrapper/HookFormWrapper';\nimport { Spinner } from '../../../../../../design/spinner/Spinner';\nimport { FormFieldLabel } from '../../../../subComponents/labels/FormFieldLabel';\nimport { InputFile } from '../../../../subComponents/inputs/file/InputFile';\nimport { ValidationMessages } from '../../../../../validation/ValidationMessages';\nimport { generateButtonClass } from '../../../../../buttons/button.helpers';\nimport { FileAttachmentsList } from '../fileAttachmentList/FileAttachmentsList';\nimport { DragAndDropFileUploadProps } from '../fileInputProps';\nimport {\n DEFAULT_UPLOAD_FILE_EXTENSIONS,\n DEFAULT_UPLOAD_FILE_TYPES,\n BLACKLISTED_FILE_TYPES\n} from '../../../../../../../constants';\n\nimport './dragAndDropFileUpload.scss';\n\nexport const DragAndDropFileUpload: React.FC<DragAndDropFileUploadProps> = (props) => (\n <HookFormWrapper formContext={ props.formContext }>\n <DragAndDropFileUploadField { ...props } />\n </HookFormWrapper>\n);\n\nconst DragAndDropFileUploadField: React.FC<DragAndDropFileUploadProps> = (\n {\n label,\n field,\n showSpinner,\n fileDisplayStyle = 'names',\n fileListSettings,\n fileList,\n validation,\n customContent,\n customCssClasses,\n labelStyle = 'dragArea',\n labelAsButtonStyles = { color: 'primary', variant: 'outline' },\n labelUploadIcon = arrowUpFromBracket,\n multiple = false,\n restrictionsTxt = '',\n validFiles = {\n extensions: DEFAULT_UPLOAD_FILE_EXTENSIONS,\n fileTypes: DEFAULT_UPLOAD_FILE_TYPES,\n maxFileCount: 5,\n maxFileSize: 52428800 // 50 MB\n },\n onFilesChange = () => {}\n }\n) => {\n const { setValue, trigger } = useFormContext();\n\n const [activeFileList, setFileList] = useState<File[]>(fileList || []);\n const [isTouched, setIsTouched] = useState(false);\n const [isDragActive, setIsDragActive] = useState(false);\n\n const inputId = field.id;\n const inputElRef = useRef<HTMLInputElement | null>(null);\n const dialogOpenRef = useRef(false);\n\n useEffect(() => {\n inputElRef.current = document.getElementById(inputId) as HTMLInputElement | null;\n }, [inputId]);\n\n // Detect “Cancel” -> dialog closes, window regains focus, but input had no change.\n useEffect(() => {\n const onFocus = () => {\n if (!dialogOpenRef.current) { return; }\n dialogOpenRef.current = false;\n const noneSelected = !inputElRef.current?.files?.length;\n if (noneSelected) {\n // Trigger React Hook Form validators (e.g., required)\n trigger(field.name);\n }\n };\n window.addEventListener('focus', onFocus);\n return () => window.removeEventListener('focus', onFocus);\n }, [trigger, field.name]);\n\n const supportedFileTypes = useMemo(\n () => validFiles?.fileTypes?.join(', ') || '',\n [validFiles?.fileTypes]\n );\n\n const validateAndCommit = useCallback(\n (files: File[]) => {\n // basic validations\n const validated = files.filter((file) => {\n const ext = file.name.split('.').pop()?.toLowerCase() || '';\n const isBlacklisted = BLACKLISTED_FILE_TYPES.includes(ext);\n const isValidExt = validFiles.extensions ? validFiles.extensions.includes(ext) : true;\n const isValidSize = validFiles.maxFileSize ? file.size <= validFiles.maxFileSize : true;\n return !isBlacklisted && isValidExt && isValidSize;\n });\n\n const clipped = validFiles.maxFileCount\n ? validated.slice(0, validFiles.maxFileCount)\n : validated;\n\n setFileList(clipped);\n setIsTouched(true);\n\n setValue(field.name, clipped.length ? clipped : null, {\n shouldValidate: true,\n shouldDirty: true,\n shouldTouch: true\n });\n\n onFilesChange(clipped);\n },\n [field.name, onFilesChange, setValue, fileDisplayStyle, validFiles]\n );\n\n const handleFileInputChange = useCallback((event: FormEvent<HTMLInputElement>) => {\n const target = event.target as HTMLInputElement;\n const files = Array.from(target.files ?? []);\n validateAndCommit(files);\n trigger(field.name);\n dialogOpenRef.current = false;\n }, [trigger, field.name, validateAndCommit]);\n\n const handleDrop = useCallback((dropped: File[]) => {\n validateAndCommit(dropped);\n trigger(field.name);\n }, [trigger, field.name, validateAndCommit]);\n\n const handleFilesEdited = useCallback((files: File[]) => {\n // No need to validate again as they were already validated\n // Changes may include renaming or removing files\n setFileList(files);\n setValue(field.name, files.length > 0 ? files : null, {\n shouldValidate: true,\n shouldDirty: true,\n shouldTouch: true\n });\n onFilesChange(files);\n }, [field.name, setValue, onFilesChange]);\n\n const wrapperCssClass = `\n formField \n dragAndDropFileUpload \n ${ fileDisplayStyle === 'list' ? 'withFileList' : '' } \n ${ labelStyle || '' }Style \n ${ customCssClasses?.wrapper || '' } \n ${ isTouched ? 'touched' : '' } \n ${ typeof validation !== 'undefined' ? 'withValidation' : '' } \n ${ label?.position === 'inset' ? 'insetLabel' : '' } \n ${ isDragActive ? 'isDragActive' : '' }\n `;\n\n const labelProps = {\n ...label,\n inputId: inputId,\n isRequired: validation && typeof validation.required !== 'undefined',\n customContent\n };\n\n const labelStyleAsButtonClasses = generateButtonClass({\n cssClass: 'button dragAndDropFileUploadButtonLabel',\n buttonStyle: labelAsButtonStyles,\n hideLabel: label.hide\n });\n\n const labelCssClass = `\n ${ labelStyle === 'button' ? labelStyleAsButtonClasses : '' }\n ${ customCssClasses?.label || '' } \n ${ showSpinner ? 'withSpinner' : '' } \n ${ label.hide ? 'hiddenLabel' : '' }\n `;\n\n return (\n <div\n className={ wrapperCssClass }\n onDragOver={ (e) => {\n e.preventDefault();\n if (!isDragActive) setIsDragActive(true);\n } }\n onDragLeave={ (e) => {\n if (e.currentTarget === e.target) setIsDragActive(false);\n } }\n onDrop={ (e) => {\n e.preventDefault();\n setIsDragActive(false);\n const files = Array.from(e.dataTransfer?.files ?? []);\n handleDrop(files);\n } }\n >\n <label\n id={ label.labelId || `${ inputId }_label` }\n className={ labelCssClass }\n htmlFor={ inputId }\n onClick={ () => { dialogOpenRef.current = true; } }\n >\n <span className=\"dragAndDropFileUploadLabel\">\n { renderIcon(labelUploadIcon) }\n <FormFieldLabel { ...labelProps } />\n { restrictionsTxt && <span className=\"fileRestrictionsText\">{ restrictionsTxt }</span> }\n </span>\n\n <span className=\"inputContainer\">\n <InputFile\n {\n ...{\n label,\n field: {\n ...field,\n type: 'file',\n id: inputId, // ensure we can query it by id\n defaultValue: '',\n multiple,\n accept: supportedFileTypes,\n onInput: (event: FormEvent<HTMLInputElement>) => {\n handleFileInputChange(event);\n }\n },\n validation,\n showSpinner,\n customCssClasses,\n customContent\n }\n }\n />\n </span>\n\n { showSpinner && <Spinner /> }\n\n { fileDisplayStyle === 'names' && activeFileList.length > 0 && (\n <span className=\"uploadedFileNames\">\n { activeFileList.map((file, index) => (\n <small key={ index } className=\"uploadedFileName\">\n { file.name }{ index < activeFileList.length - 1 ? ', ' : '' }\n </small>\n )) }\n </span>\n ) }\n\n <ValidationMessages name={ field.name } validation={ validation } />\n </label>\n\n { fileDisplayStyle === 'list' && activeFileList.length > 0 && (\n <FileAttachmentsList\n customFileListSettings={ fileListSettings }\n files={ activeFileList }\n onFilesRemoved={ handleFilesEdited }\n onFilesEdited={ handleFilesEdited }\n />\n ) }\n </div>\n );\n};\n\nexport default { DragAndDropFileUpload };\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DragAndDropFileUpload.js","names":["Object","defineProperty","exports","value","default","DragAndDropFileUpload","_react","_interopRequireWildcard","require","_iconDefinitions","_reactHookForm","_fileHelpers","_iconHelpers","_HookFormWrapper","_Spinner","_FormFieldLabel","_InputFile","_ValidationMessages","_button","_FileAttachmentsList","_constants","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","has","get","set","hasOwnProperty","call","getOwnPropertyDescriptor","getUploadExtension","fileName","getFileExtension","startsWith","DEFAULT_VALID_FILES","extensions","DEFAULT_UPLOAD_FILE_EXTENSIONS","fileTypes","DEFAULT_UPLOAD_FILE_TYPES","maxFileCount","maxFileSize","resolveValidFiles","customValidFiles","customisesTypes","matchesFileTypes","file","extension","name","mimeType","type","toLowerCase","some","token","normalised","trim","slice","endsWith","props","createElement","HookFormWrapper","formContext","DragAndDropFileUploadField","label","field","showSpinner","fileDisplayStyle","fileListSettings","fileList","validation","customContent","customCssClasses","labelStyle","labelAsButtonStyles","color","variant","labelUploadIcon","arrowUpFromBracket","multiple","restrictionsTxt","validFiles","onFilesChange","useMemo","setValue","trigger","useFormContext","activeFileList","setFileList","useState","isTouched","setIsTouched","isDragActive","setIsDragActive","inputId","id","inputElRef","useRef","dialogOpenRef","useEffect","current","document","getElementById","onFocus","noneSelected","files","length","window","addEventListener","removeEventListener","supportedFileTypes","join","isFileAllowed","useCallback","ext","isBlacklisted","BLACKLISTED_FILE_TYPES","includes","isValidExt","isValidSize","size","validateAndCommit","validated","filter","clipped","shouldValidate","shouldDirty","shouldTouch","handleFileInputChange","event","target","Array","from","handleDrop","dropped","handleFilesEdited","editedFiles","wrapperCssClass","wrapper","position","labelProps","isRequired","required","labelStyleAsButtonClasses","generateButtonClass","cssClass","buttonStyle","hideLabel","hide","labelCssClass","className","onDragOver","preventDefault","onDragLeave","currentTarget","onDrop","dataTransfer","labelId","htmlFor","onClick","renderIcon","FormFieldLabel","InputFile","defaultValue","accept","onInput","Spinner","map","index","key","ValidationMessages","FileAttachmentsList","customFileListSettings","onFilesRemoved","onFilesEdited","_default"],"sources":["../../../../../../../../../src/components/form/formFields/subComponents/inputs/file/dragAndDrop/DragAndDropFileUpload.tsx"],"sourcesContent":["'use client';\n\nimport React, { FormEvent, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { arrowUpFromBracket } from '@x15ventures/x15-ui-library-icons/iconDefinitions';\nimport { useFormContext } from 'react-hook-form';\nimport { getFileExtension } from '../../../../../../../helpers/fileHelpers';\nimport { renderIcon } from '../../../../../../../helpers/iconHelpers';\nimport { HookFormWrapper } from '../../../../../hookFormWrapper/HookFormWrapper';\nimport { Spinner } from '../../../../../../design/spinner/Spinner';\nimport { FormFieldLabel } from '../../../../subComponents/labels/FormFieldLabel';\nimport { InputFile } from '../../../../subComponents/inputs/file/InputFile';\nimport { ValidationMessages } from '../../../../../validation/ValidationMessages';\nimport { generateButtonClass } from '../../../../../buttons/button.helpers';\nimport { FileAttachmentsList } from '../fileAttachmentList/FileAttachmentsList';\nimport { DragAndDropFileUploadProps } from '../fileInputProps';\nimport {\n DEFAULT_UPLOAD_FILE_EXTENSIONS,\n DEFAULT_UPLOAD_FILE_TYPES,\n BLACKLISTED_FILE_TYPES\n} from '../../../../../../../constants';\n\nimport './dragAndDropFileUpload.scss';\n\n// A dot-file such as `.exe` has no extension by convention, but its name is still checked as one so\n// it cannot slip past the blacklist.\nconst getUploadExtension = (fileName: string): string =>\n getFileExtension(fileName.startsWith('.') ? `upload${ fileName }` : fileName);\n\ntype ValidFiles = NonNullable<DragAndDropFileUploadProps['validFiles']>;\n\nconst DEFAULT_VALID_FILES: ValidFiles = {\n extensions: DEFAULT_UPLOAD_FILE_EXTENSIONS,\n fileTypes: DEFAULT_UPLOAD_FILE_TYPES,\n maxFileCount: 5,\n maxFileSize: 52428800 // 50 MB\n};\n\n/*\n Limits-only configurations keep the default type restrictions. Once either `extensions` or\n `fileTypes` is supplied (even as undefined), both are taken from the configuration so the picker\n filter and the validation cannot disagree.\n */\nconst resolveValidFiles = (customValidFiles?: ValidFiles): ValidFiles => {\n if (!customValidFiles) {\n return DEFAULT_VALID_FILES;\n }\n const customisesTypes = 'extensions' in customValidFiles || 'fileTypes' in customValidFiles;\n return customisesTypes\n ? {\n ...DEFAULT_VALID_FILES,\n ...customValidFiles,\n extensions: customValidFiles.extensions,\n fileTypes: customValidFiles.fileTypes\n }\n : { ...DEFAULT_VALID_FILES, ...customValidFiles };\n};\n\n// Matches a file against `accept`-style tokens: `.ext`, `type/*` or an exact MIME type.\nconst matchesFileTypes = (file: File, fileTypes: string[]): boolean => {\n const extension = getUploadExtension(file.name);\n const mimeType = file.type.toLowerCase();\n return fileTypes.some((token) => {\n const normalised = token.trim().toLowerCase();\n if (normalised.startsWith('.')) {\n return normalised.slice(1) === extension;\n }\n if (normalised.endsWith('/*')) {\n return mimeType.startsWith(normalised.slice(0, -1));\n }\n return normalised !== '' && normalised === mimeType;\n });\n};\n\nexport const DragAndDropFileUpload: React.FC<DragAndDropFileUploadProps> = (props) => (\n <HookFormWrapper formContext={ props.formContext }>\n <DragAndDropFileUploadField { ...props } />\n </HookFormWrapper>\n);\n\nconst DragAndDropFileUploadField: React.FC<DragAndDropFileUploadProps> = (\n {\n label,\n field,\n showSpinner,\n fileDisplayStyle = 'names',\n fileListSettings,\n fileList,\n validation,\n customContent,\n customCssClasses,\n labelStyle = 'dragArea',\n labelAsButtonStyles = { color: 'primary', variant: 'outline' },\n labelUploadIcon = arrowUpFromBracket,\n multiple = false,\n restrictionsTxt = '',\n validFiles: customValidFiles,\n onFilesChange = () => {}\n }\n) => {\n const validFiles = useMemo(() => resolveValidFiles(customValidFiles), [customValidFiles]);\n const { setValue, trigger } = useFormContext();\n\n const [activeFileList, setFileList] = useState<File[]>(fileList || []);\n const [isTouched, setIsTouched] = useState(false);\n const [isDragActive, setIsDragActive] = useState(false);\n\n const inputId = field.id;\n const inputElRef = useRef<HTMLInputElement | null>(null);\n const dialogOpenRef = useRef(false);\n\n useEffect(() => {\n inputElRef.current = document.getElementById(inputId) as HTMLInputElement | null;\n }, [inputId]);\n\n // Detect “Cancel” -> dialog closes, window regains focus, but input had no change.\n useEffect(() => {\n const onFocus = () => {\n if (!dialogOpenRef.current) { return; }\n dialogOpenRef.current = false;\n const noneSelected = !inputElRef.current?.files?.length;\n if (noneSelected) {\n // Trigger React Hook Form validators (e.g., required)\n trigger(field.name);\n }\n };\n window.addEventListener('focus', onFocus);\n return () => window.removeEventListener('focus', onFocus);\n }, [trigger, field.name]);\n\n const supportedFileTypes = useMemo(\n () => validFiles?.fileTypes?.join(', ') || '',\n [validFiles?.fileTypes]\n );\n\n const isFileAllowed = useCallback((file: File) => {\n const ext = getUploadExtension(file.name);\n const isBlacklisted = BLACKLISTED_FILE_TYPES.includes(ext);\n // Without an extension allowlist, the picker's file types are enforced so dropped files obey them too.\n const isValidExt = validFiles.extensions\n ? validFiles.extensions.includes(ext)\n : validFiles.fileTypes?.length ? matchesFileTypes(file, validFiles.fileTypes) : true;\n const isValidSize = validFiles.maxFileSize ? file.size <= validFiles.maxFileSize : true;\n return !isBlacklisted && isValidExt && isValidSize;\n }, [validFiles]);\n\n const validateAndCommit = useCallback(\n (files: File[]) => {\n const validated = files.filter(isFileAllowed);\n\n const clipped = validFiles.maxFileCount\n ? validated.slice(0, validFiles.maxFileCount)\n : validated;\n\n setFileList(clipped);\n setIsTouched(true);\n\n setValue(field.name, clipped.length ? clipped : null, {\n shouldValidate: true,\n shouldDirty: true,\n shouldTouch: true\n });\n\n onFilesChange(clipped);\n },\n [field.name, onFilesChange, setValue, isFileAllowed, validFiles]\n );\n\n const handleFileInputChange = useCallback((event: FormEvent<HTMLInputElement>) => {\n const target = event.target as HTMLInputElement;\n const files = Array.from(target.files ?? []);\n validateAndCommit(files);\n trigger(field.name);\n dialogOpenRef.current = false;\n }, [trigger, field.name, validateAndCommit]);\n\n const handleDrop = useCallback((dropped: File[]) => {\n validateAndCommit(dropped);\n trigger(field.name);\n }, [trigger, field.name, validateAndCommit]);\n\n const handleFilesEdited = useCallback((editedFiles: File[]) => {\n // Edits may rename files, so they are checked again: renaming `notes.txt` to `notes.exe` must not\n // get past the extension rules the original name passed.\n const files = editedFiles.filter(isFileAllowed);\n setFileList(files);\n setValue(field.name, files.length > 0 ? files : null, {\n shouldValidate: true,\n shouldDirty: true,\n shouldTouch: true\n });\n onFilesChange(files);\n }, [field.name, setValue, onFilesChange, isFileAllowed]);\n\n const wrapperCssClass = `\n formField \n dragAndDropFileUpload \n ${ fileDisplayStyle === 'list' ? 'withFileList' : '' } \n ${ labelStyle || '' }Style \n ${ customCssClasses?.wrapper || '' } \n ${ isTouched ? 'touched' : '' } \n ${ typeof validation !== 'undefined' ? 'withValidation' : '' } \n ${ label?.position === 'inset' ? 'insetLabel' : '' } \n ${ isDragActive ? 'isDragActive' : '' }\n `;\n\n const labelProps = {\n ...label,\n inputId: inputId,\n isRequired: validation && typeof validation.required !== 'undefined',\n customContent\n };\n\n const labelStyleAsButtonClasses = generateButtonClass({\n cssClass: 'button dragAndDropFileUploadButtonLabel',\n buttonStyle: labelAsButtonStyles,\n hideLabel: label.hide\n });\n\n const labelCssClass = `\n ${ labelStyle === 'button' ? labelStyleAsButtonClasses : '' }\n ${ customCssClasses?.label || '' } \n ${ showSpinner ? 'withSpinner' : '' } \n ${ label.hide ? 'hiddenLabel' : '' }\n `;\n\n return (\n <div\n className={ wrapperCssClass }\n onDragOver={ (e) => {\n e.preventDefault();\n if (!isDragActive) setIsDragActive(true);\n } }\n onDragLeave={ (e) => {\n if (e.currentTarget === e.target) setIsDragActive(false);\n } }\n onDrop={ (e) => {\n e.preventDefault();\n setIsDragActive(false);\n const files = Array.from(e.dataTransfer?.files ?? []);\n handleDrop(files);\n } }\n >\n <label\n id={ label.labelId || `${ inputId }_label` }\n className={ labelCssClass }\n htmlFor={ inputId }\n onClick={ () => { dialogOpenRef.current = true; } }\n >\n <span className=\"dragAndDropFileUploadLabel\">\n { renderIcon(labelUploadIcon) }\n <FormFieldLabel { ...labelProps } />\n { restrictionsTxt && <span className=\"fileRestrictionsText\">{ restrictionsTxt }</span> }\n </span>\n\n <span className=\"inputContainer\">\n <InputFile\n {\n ...{\n label,\n field: {\n ...field,\n type: 'file',\n id: inputId, // ensure we can query it by id\n defaultValue: '',\n multiple,\n accept: supportedFileTypes,\n onInput: (event: FormEvent<HTMLInputElement>) => {\n handleFileInputChange(event);\n }\n },\n validation,\n showSpinner,\n customCssClasses,\n customContent\n }\n }\n />\n </span>\n\n { showSpinner && <Spinner /> }\n\n { fileDisplayStyle === 'names' && activeFileList.length > 0 && (\n <span className=\"uploadedFileNames\">\n { activeFileList.map((file, index) => (\n <small key={ index } className=\"uploadedFileName\">\n { file.name }{ index < activeFileList.length - 1 ? ', ' : '' }\n </small>\n )) }\n </span>\n ) }\n\n <ValidationMessages name={ field.name } validation={ validation } />\n </label>\n\n { fileDisplayStyle === 'list' && activeFileList.length > 0 && (\n <FileAttachmentsList\n customFileListSettings={ fileListSettings }\n files={ activeFileList }\n onFilesRemoved={ handleFilesEdited }\n onFilesEdited={ handleFilesEdited }\n />\n ) }\n </div>\n );\n};\n\nexport default { DragAndDropFileUpload };\n"],"mappings":";AAAA,YAAY;;AAACA,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,KAAA;AAAA;AAAAD,OAAA,CAAAE,OAAA,GAAAF,OAAA,CAAAG,qBAAA;AAEb,IAAAC,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;AACA,IAAAK,gBAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AACA,IAAAO,eAAA,GAAAP,OAAA;AACA,IAAAQ,UAAA,GAAAR,OAAA;AACA,IAAAS,mBAAA,GAAAT,OAAA;AACA,IAAAU,OAAA,GAAAV,OAAA;AACA,IAAAW,oBAAA,GAAAX,OAAA;AAEA,IAAAY,UAAA,GAAAZ,OAAA;AAMAA,OAAA;AAAsC,SAAAD,wBAAAc,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAhB,uBAAA,YAAAA,CAAAc,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAA1B,OAAA,EAAAiB,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAI,GAAA,CAAAV,CAAA,UAAAM,CAAA,CAAAK,GAAA,CAAAX,CAAA,GAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAY,cAAA,CAAAC,IAAA,CAAAd,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAA3B,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAoC,wBAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAI,GAAA,IAAAJ,CAAA,CAAAK,GAAA,IAAAN,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAEtC;AACA;AACA,MAAMe,kBAAkB,GAAIC,QAAgB,IAC1C,IAAAC,6BAAgB,EAACD,QAAQ,CAACE,UAAU,CAAC,GAAG,CAAC,GAAG,SAAUF,QAAQ,EAAG,GAAGA,QAAQ,CAAC;AAI/E,MAAMG,mBAA+B,GAAG;EACtCC,UAAU,EAAEC,yCAA8B;EAC1CC,SAAS,EAAEC,oCAAyB;EACpCC,YAAY,EAAE,CAAC;EACfC,WAAW,EAAE,QAAQ,CAAC;AACxB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAMC,iBAAiB,GAAIC,gBAA6B,IAAiB;EACvE,IAAI,CAACA,gBAAgB,EAAE;IACrB,OAAOR,mBAAmB;EAC5B;EACA,MAAMS,eAAe,GAAG,YAAY,IAAID,gBAAgB,IAAI,WAAW,IAAIA,gBAAgB;EAC3F,OAAOC,eAAe,GAClB;IACA,GAAGT,mBAAmB;IACtB,GAAGQ,gBAAgB;IACnBP,UAAU,EAAEO,gBAAgB,CAACP,UAAU;IACvCE,SAAS,EAAEK,gBAAgB,CAACL;EAC9B,CAAC,GACC;IAAE,GAAGH,mBAAmB;IAAE,GAAGQ;EAAiB,CAAC;AACrD,CAAC;;AAED;AACA,MAAME,gBAAgB,GAAGA,CAACC,IAAU,EAAER,SAAmB,KAAc;EACrE,MAAMS,SAAS,GAAGhB,kBAAkB,CAACe,IAAI,CAACE,IAAI,CAAC;EAC/C,MAAMC,QAAQ,GAAGH,IAAI,CAACI,IAAI,CAACC,WAAW,CAAC,CAAC;EACxC,OAAOb,SAAS,CAACc,IAAI,CAAEC,KAAK,IAAK;IAC/B,MAAMC,UAAU,GAAGD,KAAK,CAACE,IAAI,CAAC,CAAC,CAACJ,WAAW,CAAC,CAAC;IAC7C,IAAIG,UAAU,CAACpB,UAAU,CAAC,GAAG,CAAC,EAAE;MAC9B,OAAOoB,UAAU,CAACE,KAAK,CAAC,CAAC,CAAC,KAAKT,SAAS;IAC1C;IACA,IAAIO,UAAU,CAACG,QAAQ,CAAC,IAAI,CAAC,EAAE;MAC7B,OAAOR,QAAQ,CAACf,UAAU,CAACoB,UAAU,CAACE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACrD;IACA,OAAOF,UAAU,KAAK,EAAE,IAAIA,UAAU,KAAKL,QAAQ;EACrD,CAAC,CAAC;AACJ,CAAC;AAEM,MAAMlD,qBAA2D,GAAI2D,KAAK,iBAC/E1D,MAAA,CAAAF,OAAA,CAAA6D,aAAA,CAACpD,gBAAA,CAAAqD,eAAe;EAACC,WAAW,EAAGH,KAAK,CAACG;AAAa,gBAChD7D,MAAA,CAAAF,OAAA,CAAA6D,aAAA,CAACG,0BAA0B,EAAMJ,KAAS,CAC3B,CAClB;AAAC9D,OAAA,CAAAG,qBAAA,GAAAA,qBAAA;AAEF,MAAM+D,0BAAgE,GAAGA,CACvE;EACEC,KAAK;EACLC,KAAK;EACLC,WAAW;EACXC,gBAAgB,GAAG,OAAO;EAC1BC,gBAAgB;EAChBC,QAAQ;EACRC,UAAU;EACVC,aAAa;EACbC,gBAAgB;EAChBC,UAAU,GAAG,UAAU;EACvBC,mBAAmB,GAAG;IAAEC,KAAK,EAAE,SAAS;IAAEC,OAAO,EAAE;EAAU,CAAC;EAC9DC,eAAe,GAAGC,mCAAkB;EACpCC,QAAQ,GAAG,KAAK;EAChBC,eAAe,GAAG,EAAE;EACpBC,UAAU,EAAErC,gBAAgB;EAC5BsC,aAAa,GAAGA,CAAA,KAAM,CAAC;AACzB,CAAC,KACE;EACH,MAAMD,UAAU,GAAG,IAAAE,cAAO,EAAC,MAAMxC,iBAAiB,CAACC,gBAAgB,CAAC,EAAE,CAACA,gBAAgB,CAAC,CAAC;EACzF,MAAM;IAAEwC,QAAQ;IAAEC;EAAQ,CAAC,GAAG,IAAAC,6BAAc,EAAC,CAAC;EAE9C,MAAM,CAACC,cAAc,EAAEC,WAAW,CAAC,GAAG,IAAAC,eAAQ,EAASpB,QAAQ,IAAI,EAAE,CAAC;EACtE,MAAM,CAACqB,SAAS,EAAEC,YAAY,CAAC,GAAG,IAAAF,eAAQ,EAAC,KAAK,CAAC;EACjD,MAAM,CAACG,YAAY,EAAEC,eAAe,CAAC,GAAG,IAAAJ,eAAQ,EAAC,KAAK,CAAC;EAEvD,MAAMK,OAAO,GAAG7B,KAAK,CAAC8B,EAAE;EACxB,MAAMC,UAAU,GAAG,IAAAC,aAAM,EAA0B,IAAI,CAAC;EACxD,MAAMC,aAAa,GAAG,IAAAD,aAAM,EAAC,KAAK,CAAC;EAEnC,IAAAE,gBAAS,EAAC,MAAM;IACdH,UAAU,CAACI,OAAO,GAAGC,QAAQ,CAACC,cAAc,CAACR,OAAO,CAA4B;EAClF,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;;EAEb;EACA,IAAAK,gBAAS,EAAC,MAAM;IACd,MAAMI,OAAO,GAAGA,CAAA,KAAM;MACpB,IAAI,CAACL,aAAa,CAACE,OAAO,EAAE;QAAE;MAAQ;MACtCF,aAAa,CAACE,OAAO,GAAG,KAAK;MAC7B,MAAMI,YAAY,GAAG,CAACR,UAAU,CAACI,OAAO,EAAEK,KAAK,EAAEC,MAAM;MACvD,IAAIF,YAAY,EAAE;QAChB;QACAnB,OAAO,CAACpB,KAAK,CAAChB,IAAI,CAAC;MACrB;IACF,CAAC;IACD0D,MAAM,CAACC,gBAAgB,CAAC,OAAO,EAAEL,OAAO,CAAC;IACzC,OAAO,MAAMI,MAAM,CAACE,mBAAmB,CAAC,OAAO,EAAEN,OAAO,CAAC;EAC3D,CAAC,EAAE,CAAClB,OAAO,EAAEpB,KAAK,CAAChB,IAAI,CAAC,CAAC;EAEzB,MAAM6D,kBAAkB,GAAG,IAAA3B,cAAO,EAChC,MAAMF,UAAU,EAAE1C,SAAS,EAAEwE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAC7C,CAAC9B,UAAU,EAAE1C,SAAS,CACxB,CAAC;EAED,MAAMyE,aAAa,GAAG,IAAAC,kBAAW,EAAElE,IAAU,IAAK;IAChD,MAAMmE,GAAG,GAAGlF,kBAAkB,CAACe,IAAI,CAACE,IAAI,CAAC;IACzC,MAAMkE,aAAa,GAAGC,iCAAsB,CAACC,QAAQ,CAACH,GAAG,CAAC;IAC1D;IACA,MAAMI,UAAU,GAAGrC,UAAU,CAAC5C,UAAU,GACpC4C,UAAU,CAAC5C,UAAU,CAACgF,QAAQ,CAACH,GAAG,CAAC,GACnCjC,UAAU,CAAC1C,SAAS,EAAEmE,MAAM,GAAG5D,gBAAgB,CAACC,IAAI,EAAEkC,UAAU,CAAC1C,SAAS,CAAC,GAAG,IAAI;IACtF,MAAMgF,WAAW,GAAGtC,UAAU,CAACvC,WAAW,GAAGK,IAAI,CAACyE,IAAI,IAAIvC,UAAU,CAACvC,WAAW,GAAG,IAAI;IACvF,OAAO,CAACyE,aAAa,IAAIG,UAAU,IAAIC,WAAW;EACpD,CAAC,EAAE,CAACtC,UAAU,CAAC,CAAC;EAEhB,MAAMwC,iBAAiB,GAAG,IAAAR,kBAAW,EAClCR,KAAa,IAAK;IACjB,MAAMiB,SAAS,GAAGjB,KAAK,CAACkB,MAAM,CAACX,aAAa,CAAC;IAE7C,MAAMY,OAAO,GAAG3C,UAAU,CAACxC,YAAY,GACnCiF,SAAS,CAACjE,KAAK,CAAC,CAAC,EAAEwB,UAAU,CAACxC,YAAY,CAAC,GAC3CiF,SAAS;IAEblC,WAAW,CAACoC,OAAO,CAAC;IACpBjC,YAAY,CAAC,IAAI,CAAC;IAElBP,QAAQ,CAACnB,KAAK,CAAChB,IAAI,EAAE2E,OAAO,CAAClB,MAAM,GAAGkB,OAAO,GAAG,IAAI,EAAE;MACpDC,cAAc,EAAE,IAAI;MACpBC,WAAW,EAAE,IAAI;MACjBC,WAAW,EAAE;IACf,CAAC,CAAC;IAEF7C,aAAa,CAAC0C,OAAO,CAAC;EACxB,CAAC,EACD,CAAC3D,KAAK,CAAChB,IAAI,EAAEiC,aAAa,EAAEE,QAAQ,EAAE4B,aAAa,EAAE/B,UAAU,CACjE,CAAC;EAED,MAAM+C,qBAAqB,GAAG,IAAAf,kBAAW,EAAEgB,KAAkC,IAAK;IAChF,MAAMC,MAAM,GAAGD,KAAK,CAACC,MAA0B;IAC/C,MAAMzB,KAAK,GAAG0B,KAAK,CAACC,IAAI,CAACF,MAAM,CAACzB,KAAK,IAAI,EAAE,CAAC;IAC5CgB,iBAAiB,CAAChB,KAAK,CAAC;IACxBpB,OAAO,CAACpB,KAAK,CAAChB,IAAI,CAAC;IACnBiD,aAAa,CAACE,OAAO,GAAG,KAAK;EAC/B,CAAC,EAAE,CAACf,OAAO,EAAEpB,KAAK,CAAChB,IAAI,EAAEwE,iBAAiB,CAAC,CAAC;EAE5C,MAAMY,UAAU,GAAG,IAAApB,kBAAW,EAAEqB,OAAe,IAAK;IAClDb,iBAAiB,CAACa,OAAO,CAAC;IAC1BjD,OAAO,CAACpB,KAAK,CAAChB,IAAI,CAAC;EACrB,CAAC,EAAE,CAACoC,OAAO,EAAEpB,KAAK,CAAChB,IAAI,EAAEwE,iBAAiB,CAAC,CAAC;EAE5C,MAAMc,iBAAiB,GAAG,IAAAtB,kBAAW,EAAEuB,WAAmB,IAAK;IAC7D;IACA;IACA,MAAM/B,KAAK,GAAG+B,WAAW,CAACb,MAAM,CAACX,aAAa,CAAC;IAC/CxB,WAAW,CAACiB,KAAK,CAAC;IAClBrB,QAAQ,CAACnB,KAAK,CAAChB,IAAI,EAAEwD,KAAK,CAACC,MAAM,GAAG,CAAC,GAAGD,KAAK,GAAG,IAAI,EAAE;MACpDoB,cAAc,EAAE,IAAI;MACpBC,WAAW,EAAE,IAAI;MACjBC,WAAW,EAAE;IACf,CAAC,CAAC;IACF7C,aAAa,CAACuB,KAAK,CAAC;EACtB,CAAC,EAAE,CAACxC,KAAK,CAAChB,IAAI,EAAEmC,QAAQ,EAAEF,aAAa,EAAE8B,aAAa,CAAC,CAAC;EAExD,MAAMyB,eAAe,GAAG;AAC1B;AACA;AACA,MAAOtE,gBAAgB,KAAK,MAAM,GAAG,cAAc,GAAG,EAAE;AACxD,MAAOM,UAAU,IAAI,EAAE;AACvB,MAAOD,gBAAgB,EAAEkE,OAAO,IAAI,EAAE;AACtC,MAAOhD,SAAS,GAAG,SAAS,GAAG,EAAE;AACjC,MAAO,OAAOpB,UAAU,KAAK,WAAW,GAAG,gBAAgB,GAAG,EAAE;AAChE,MAAON,KAAK,EAAE2E,QAAQ,KAAK,OAAO,GAAG,YAAY,GAAG,EAAE;AACtD,MAAO/C,YAAY,GAAG,cAAc,GAAG,EAAE;AACzC,GAAG;EAED,MAAMgD,UAAU,GAAG;IACjB,GAAG5E,KAAK;IACR8B,OAAO,EAAEA,OAAO;IAChB+C,UAAU,EAAEvE,UAAU,IAAI,OAAOA,UAAU,CAACwE,QAAQ,KAAK,WAAW;IACpEvE;EACF,CAAC;EAED,MAAMwE,yBAAyB,GAAG,IAAAC,2BAAmB,EAAC;IACpDC,QAAQ,EAAE,yCAAyC;IACnDC,WAAW,EAAExE,mBAAmB;IAChCyE,SAAS,EAAEnF,KAAK,CAACoF;EACnB,CAAC,CAAC;EAEF,MAAMC,aAAa,GAAG;AACxB,MAAO5E,UAAU,KAAK,QAAQ,GAAGsE,yBAAyB,GAAG,EAAE;AAC/D,MAAOvE,gBAAgB,EAAER,KAAK,IAAI,EAAE;AACpC,MAAOE,WAAW,GAAG,aAAa,GAAG,EAAE;AACvC,MAAOF,KAAK,CAACoF,IAAI,GAAG,aAAa,GAAG,EAAE;AACtC,GAAG;EAED,oBACEnJ,MAAA,CAAAF,OAAA,CAAA6D,aAAA;IACE0F,SAAS,EAAGb,eAAiB;IAC7Bc,UAAU,EAAIvI,CAAC,IAAK;MAClBA,CAAC,CAACwI,cAAc,CAAC,CAAC;MAClB,IAAI,CAAC5D,YAAY,EAAEC,eAAe,CAAC,IAAI,CAAC;IAC1C,CAAG;IACH4D,WAAW,EAAIzI,CAAC,IAAK;MACnB,IAAIA,CAAC,CAAC0I,aAAa,KAAK1I,CAAC,CAACkH,MAAM,EAAErC,eAAe,CAAC,KAAK,CAAC;IAC1D,CAAG;IACH8D,MAAM,EAAI3I,CAAC,IAAK;MACdA,CAAC,CAACwI,cAAc,CAAC,CAAC;MAClB3D,eAAe,CAAC,KAAK,CAAC;MACtB,MAAMY,KAAK,GAAG0B,KAAK,CAACC,IAAI,CAACpH,CAAC,CAAC4I,YAAY,EAAEnD,KAAK,IAAI,EAAE,CAAC;MACrD4B,UAAU,CAAC5B,KAAK,CAAC;IACnB;EAAG,gBAEHxG,MAAA,CAAAF,OAAA,CAAA6D,aAAA;IACEmC,EAAE,EAAG/B,KAAK,CAAC6F,OAAO,IAAI,GAAI/D,OAAO,QAAW;IAC5CwD,SAAS,EAAGD,aAAe;IAC3BS,OAAO,EAAGhE,OAAS;IACnBiE,OAAO,EAAGA,CAAA,KAAM;MAAE7D,aAAa,CAACE,OAAO,GAAG,IAAI;IAAE;EAAG,gBAEnDnG,MAAA,CAAAF,OAAA,CAAA6D,aAAA;IAAM0F,SAAS,EAAC;EAA4B,GACxC,IAAAU,uBAAU,EAACnF,eAAe,CAAC,eAC7B5E,MAAA,CAAAF,OAAA,CAAA6D,aAAA,CAAClD,eAAA,CAAAuJ,cAAc,EAAMrB,UAAc,CAAC,EAClC5D,eAAe,iBAAI/E,MAAA,CAAAF,OAAA,CAAA6D,aAAA;IAAM0F,SAAS,EAAC;EAAsB,GAAGtE,eAAuB,CACjF,CAAC,eAEP/E,MAAA,CAAAF,OAAA,CAAA6D,aAAA;IAAM0F,SAAS,EAAC;EAAgB,gBAC9BrJ,MAAA,CAAAF,OAAA,CAAA6D,aAAA,CAACjD,UAAA,CAAAuJ,SAAS;IAGJlG,KAAK;IACLC,KAAK,EAAE;MACL,GAAGA,KAAK;MACRd,IAAI,EAAE,MAAM;MACZ4C,EAAE,EAAED,OAAO;MAAc;MACzBqE,YAAY,EAAE,EAAE;MAChBpF,QAAQ;MACRqF,MAAM,EAAEtD,kBAAkB;MAC1BuD,OAAO,EAAGpC,KAAkC,IAAK;QAC/CD,qBAAqB,CAACC,KAAK,CAAC;MAC9B;IACF,CAAC;IACD3D,UAAU;IACVJ,WAAW;IACXM,gBAAgB;IAChBD;EAAa,CAGlB,CACG,CAAC,EAELL,WAAW,iBAAIjE,MAAA,CAAAF,OAAA,CAAA6D,aAAA,CAACnD,QAAA,CAAA6J,OAAO,MAAE,CAAC,EAE1BnG,gBAAgB,KAAK,OAAO,IAAIoB,cAAc,CAACmB,MAAM,GAAG,CAAC,iBACzDzG,MAAA,CAAAF,OAAA,CAAA6D,aAAA;IAAM0F,SAAS,EAAC;EAAmB,GAC/B/D,cAAc,CAACgF,GAAG,CAAC,CAACxH,IAAI,EAAEyH,KAAK,kBAC/BvK,MAAA,CAAAF,OAAA,CAAA6D,aAAA;IAAO6G,GAAG,EAAGD,KAAO;IAAClB,SAAS,EAAC;EAAkB,GAC7CvG,IAAI,CAACE,IAAI,EAAIuH,KAAK,GAAGjF,cAAc,CAACmB,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,EACrD,CACR,CACG,CACP,eAEDzG,MAAA,CAAAF,OAAA,CAAA6D,aAAA,CAAChD,mBAAA,CAAA8J,kBAAkB;IAACzH,IAAI,EAAGgB,KAAK,CAAChB,IAAM;IAACqB,UAAU,EAAGA;EAAY,CAAE,CAC9D,CAAC,EAENH,gBAAgB,KAAK,MAAM,IAAIoB,cAAc,CAACmB,MAAM,GAAG,CAAC,iBACxDzG,MAAA,CAAAF,OAAA,CAAA6D,aAAA,CAAC9C,oBAAA,CAAA6J,mBAAmB;IAClBC,sBAAsB,EAAGxG,gBAAkB;IAC3CqC,KAAK,EAAGlB,cAAgB;IACxBsF,cAAc,EAAGtC,iBAAmB;IACpCuC,aAAa,EAAGvC;EAAmB,CACpC,CAEA,CAAC;AAEV,CAAC;AAAC,IAAAwC,QAAA,GAAAlL,OAAA,CAAAE,OAAA,GAEa;EAAEC;AAAsB,CAAC","ignoreList":[]}
|
|
@@ -7,13 +7,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.default = exports.Link = void 0;
|
|
9
9
|
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _urlHelpers = require("../../../helpers/urlHelpers");
|
|
10
11
|
const Link = ({
|
|
11
12
|
href,
|
|
12
13
|
label,
|
|
13
14
|
target = '_self',
|
|
14
15
|
customCssClass = ''
|
|
15
16
|
}) => /*#__PURE__*/_react.default.createElement("a", {
|
|
16
|
-
href: href,
|
|
17
|
+
href: (0, _urlHelpers.getSafeLinkHref)(href),
|
|
17
18
|
title: label,
|
|
18
19
|
target: target,
|
|
19
20
|
className: `link ${customCssClass}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Link.js","names":["_interopRequireDefault","require","Object","defineProperty","exports","value","default","Link","_react","href","label","target","customCssClass","createElement","title","className","rel","undefined","_default"],"sources":["../../../../../src/components/navigation/link/Link.tsx"],"sourcesContent":["'use client';\n\nimport React from 'react';\n\nexport interface LinkProps {\n href: string;\n label: string;\n target?: '_self' | '_blank' | '_parent' | '_top';\n customCssClass?: string;\n}\n\nexport const Link: React.FC<LinkProps> = ({\n href,\n label,\n target = '_self',\n customCssClass = ''\n}) => (\n <a\n href={ href }\n title={ label }\n target={ target }\n className={ `link ${ customCssClass }` }\n rel={ target === '_blank' ? 'noopener noreferrer' : undefined }\n >\n { label }\n </a>\n);\n\nexport default Link;"],"mappings":";AAAA,YAAY;;AAAC,IAAAA,sBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,KAAA;AAAA;AAAAD,OAAA,CAAAE,OAAA,GAAAF,OAAA,CAAAG,IAAA;AAEb,IAAAC,MAAA,GAAAR,sBAAA,CAAAC,OAAA;AASO,MAAMM,IAAyB,GAAGA,CAAC;
|
|
1
|
+
{"version":3,"file":"Link.js","names":["_interopRequireDefault","require","Object","defineProperty","exports","value","default","Link","_react","_urlHelpers","href","label","target","customCssClass","createElement","getSafeLinkHref","title","className","rel","undefined","_default"],"sources":["../../../../../src/components/navigation/link/Link.tsx"],"sourcesContent":["'use client';\n\nimport React from 'react';\nimport { getSafeLinkHref } from '../../../helpers/urlHelpers';\n\nexport interface LinkProps {\n href: string;\n label: string;\n target?: '_self' | '_blank' | '_parent' | '_top';\n customCssClass?: string;\n}\n\nexport const Link: React.FC<LinkProps> = ({\n href,\n label,\n target = '_self',\n customCssClass = ''\n}) => (\n <a\n href={ getSafeLinkHref(href) }\n title={ label }\n target={ target }\n className={ `link ${ customCssClass }` }\n rel={ target === '_blank' ? 'noopener noreferrer' : undefined }\n >\n { label }\n </a>\n);\n\nexport default Link;"],"mappings":";AAAA,YAAY;;AAAC,IAAAA,sBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,KAAA;AAAA;AAAAD,OAAA,CAAAE,OAAA,GAAAF,OAAA,CAAAG,IAAA;AAEb,IAAAC,MAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,WAAA,GAAAR,OAAA;AASO,MAAMM,IAAyB,GAAGA,CAAC;EACxCG,IAAI;EACJC,KAAK;EACLC,MAAM,GAAG,OAAO;EAChBC,cAAc,GAAG;AACnB,CAAC,kBACCL,MAAA,CAAAF,OAAA,CAAAQ,aAAA;EACEJ,IAAI,EAAG,IAAAK,2BAAe,EAACL,IAAI,CAAG;EAC9BM,KAAK,EAAGL,KAAO;EACfC,MAAM,EAAGA,MAAQ;EACjBK,SAAS,EAAG,QAASJ,cAAc,EAAK;EACxCK,GAAG,EAAGN,MAAM,KAAK,QAAQ,GAAG,qBAAqB,GAAGO;AAAW,GAE7DR,KACD,CACJ;AAACP,OAAA,CAAAG,IAAA,GAAAA,IAAA;AAAA,IAAAa,QAAA,GAAAhB,OAAA,CAAAE,OAAA,GAEaC,IAAI","ignoreList":[]}
|
|
@@ -9,9 +9,11 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
9
9
|
var _ThemeSwitch = require("../themeSwitch/ThemeSwitch");
|
|
10
10
|
var _UserContextProvider = require("../../../contextProviders/userContext/UserContextProvider");
|
|
11
11
|
var _SimpleButton = require("../../form/buttons/SimpleButton");
|
|
12
|
-
require("./devToolbar.css");
|
|
13
12
|
var _SidePanel = require("../../design/sidePanel/SidePanel");
|
|
13
|
+
require("./devToolbar.css");
|
|
14
14
|
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); }
|
|
15
|
+
// @ts-ignore SCSS side-effect imports are handled by the bundler.
|
|
16
|
+
|
|
15
17
|
const DevToolbar = () => {
|
|
16
18
|
const context = (0, _react.useContext)(_UserContextProvider.UserContext);
|
|
17
19
|
const env = process.env.NODE_ENV;
|
|
@@ -42,8 +44,8 @@ const DevToolbar = () => {
|
|
|
42
44
|
}
|
|
43
45
|
}
|
|
44
46
|
}
|
|
45
|
-
} catch
|
|
46
|
-
console.
|
|
47
|
+
} catch {
|
|
48
|
+
console.warn('Could not access stylesheet.');
|
|
47
49
|
}
|
|
48
50
|
}
|
|
49
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevToolbar.js","names":["Object","defineProperty","exports","value","DevToolbar","_react","_interopRequireWildcard","require","_ThemeSwitch","_UserContextProvider","_SimpleButton","_SidePanel","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","getOwnPropertyDescriptor","context","useContext","UserContext","env","process","NODE_ENV","handleThemeChange","newTheme","applyThemeChange","listThemeCssVariables","stylesheets","document","styleSheets","length","stylesheet","ownerNode","id","includes","rules","cssRules","j","rule","CSSStyleRule","selectorText","k","style","prop","startsWith","console","log","getPropertyValue","trim","
|
|
1
|
+
{"version":3,"file":"DevToolbar.js","names":["Object","defineProperty","exports","value","DevToolbar","_react","_interopRequireWildcard","require","_ThemeSwitch","_UserContextProvider","_SimpleButton","_SidePanel","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","getOwnPropertyDescriptor","context","useContext","UserContext","env","process","NODE_ENV","handleThemeChange","newTheme","applyThemeChange","listThemeCssVariables","stylesheets","document","styleSheets","length","stylesheet","ownerNode","id","includes","rules","cssRules","j","rule","CSSStyleRule","selectorText","k","style","prop","startsWith","console","log","getPropertyValue","trim","warn","createElement","SidePanel","open","size","position","panelLabel","className","ThemeSwitch","onThemeChangeAction","SimpleButton","cssClass","label","onClickHandler"],"sources":["../../../../../src/components/testing/devToolbar/DevToolbar.tsx"],"sourcesContent":["'use client';\n\nimport React, { useContext } from 'react';\nimport { ThemeSwitch } from '../themeSwitch/ThemeSwitch';\nimport { UserContext } from '../../../contextProviders/userContext/UserContextProvider';\nimport { SimpleButton } from '../../form/buttons/SimpleButton';\nimport { SidePanel } from '../../design/sidePanel/SidePanel';\n\n// @ts-ignore SCSS side-effect imports are handled by the bundler.\nimport './devToolbar.scss';\n\nexport const DevToolbar: React.FC = () => {\n const context = useContext(UserContext);\n\n const env = process.env.NODE_ENV;\n\n const handleThemeChange = (newTheme: string) => {\n if (context && context?.applyThemeChange) {\n context.applyThemeChange(newTheme);\n }\n };\n\n const listThemeCssVariables = () => {\n const stylesheets = document.styleSheets;\n\n // Loop through all stylesheets\n for (let i = 0; i < stylesheets.length; i += 1) {\n const stylesheet = stylesheets[i];\n\n if (stylesheet && stylesheet.ownerNode && 'id' in stylesheet.ownerNode && stylesheet.ownerNode.id.includes('x15-ui-library-theme')) {\n try {\n const rules = stylesheet.cssRules || stylesheet.rules;\n for (let j = 0; j < rules.length; j += 1) {\n const rule = rules[j];\n\n if (rule instanceof CSSStyleRule) {\n if (rule.selectorText === ':root') {\n for (let k = 0; k < rule.style.length; k += 1) {\n const prop = rule.style[k];\n if (prop.startsWith('--')) {\n console.log(`${ prop }: ${ rule.style.getPropertyValue(prop).trim() }`);\n }\n }\n }\n }\n }\n } catch {\n console.warn('Could not access stylesheet.');\n }\n }\n }\n };\n\n return (\n <SidePanel {\n ...{\n id: 'devToolbar',\n open: true,\n size: 's',\n position: 'top',\n panelLabel: 'dev toolbar'\n }\n }\n >\n <aside className=\"devToolbar\">\n <div>Environment: { env }</div>\n <ThemeSwitch onThemeChangeAction={ handleThemeChange } />\n <SimpleButton cssClass=\"button primary compact\" label=\"List css variables\" id=\"devCssTool\" onClickHandler={ listThemeCssVariables } />\n </aside>\n </SidePanel>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,13 +6,18 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = exports.DEFAULT_UPLOAD_FILE_TYPES = exports.DEFAULT_UPLOAD_FILE_EXTENSIONS = exports.BLACKLISTED_FILE_TYPES = void 0;
|
|
7
7
|
const BLACKLISTED_FILE_TYPES = exports.BLACKLISTED_FILE_TYPES = [
|
|
8
8
|
// Executable files
|
|
9
|
-
'exe', 'msi', 'msp', 'com', 'dll', 'ocx', 'sys', 'hta',
|
|
9
|
+
'exe', 'msi', 'msp', 'com', 'dll', 'ocx', 'sys', 'hta', 'scr', 'pif', 'cpl', 'msc', 'mst', 'jar', 'gadget', 'application', 'appx', 'appxbundle', 'msix', 'msixbundle',
|
|
10
10
|
// Batch, script or config files
|
|
11
|
-
'sh', 'cmd', 'bat', 'ps1', 'ps2', 'ini', 'config',
|
|
11
|
+
'sh', 'cmd', 'bat', 'ps1', 'ps2', 'psm1', 'psd1', 'ps1xml', 'js', 'jse', 'vbs', 'vbe', 'wsf', 'wsh', 'ws', 'reg', 'inf', 'ini', 'config',
|
|
12
|
+
// Help files and disk images, which can carry or mount executables
|
|
13
|
+
'chm', 'iso', 'img', 'vhd', 'vhdx',
|
|
12
14
|
// Shortcuts
|
|
13
15
|
'lnk', 'url', 'scf'];
|
|
14
|
-
|
|
15
|
-
|
|
16
|
+
|
|
17
|
+
// SVG is deliberately absent from the defaults: an SVG can carry script, which runs if the app later
|
|
18
|
+
// serves the upload from its own origin. Apps that need SVG uploads can opt in through validFiles.
|
|
19
|
+
const DEFAULT_UPLOAD_FILE_TYPES = exports.DEFAULT_UPLOAD_FILE_TYPES = ['.json', '.xml', '.csv', '.eml', 'image/png', 'image/jpeg', 'image/gif', 'text/plain', 'text/markdown', 'application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/vnd.ms-powerpoint', 'application/vnd.openxmlformats-officedocument.presentationml.presentation', 'application/pdf'];
|
|
20
|
+
const DEFAULT_UPLOAD_FILE_EXTENSIONS = exports.DEFAULT_UPLOAD_FILE_EXTENSIONS = ['json', 'xml', 'csv', 'eml', 'png', 'jpg', 'jpeg', 'gif', 'txt', 'md', 'doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'pdf'];
|
|
16
21
|
var _default = exports.default = {
|
|
17
22
|
BLACKLISTED_FILE_TYPES,
|
|
18
23
|
DEFAULT_UPLOAD_FILE_TYPES,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileUploadTypes.js","names":["BLACKLISTED_FILE_TYPES","exports","DEFAULT_UPLOAD_FILE_TYPES","DEFAULT_UPLOAD_FILE_EXTENSIONS","_default","default"],"sources":["../../../src/constants/fileUploadTypes.ts"],"sourcesContent":["export const BLACKLISTED_FILE_TYPES = [\n // Executable files\n 'exe',\n 'msi',\n 'msp',\n 'com',\n 'dll',\n 'ocx',\n 'sys',\n 'hta',\n // Batch, script or config files\n 'sh',\n 'cmd',\n 'bat',\n 'ps1',\n 'ps2',\n 'ini',\n 'config',\n // Shortcuts\n 'lnk',\n 'url',\n 'scf',\n];\n\nexport const DEFAULT_UPLOAD_FILE_TYPES = [\n '.json',\n '.xml',\n '.csv',\n '.eml',\n 'image/png',\n 'image/jpeg',\n 'image/gif',\n '
|
|
1
|
+
{"version":3,"file":"fileUploadTypes.js","names":["BLACKLISTED_FILE_TYPES","exports","DEFAULT_UPLOAD_FILE_TYPES","DEFAULT_UPLOAD_FILE_EXTENSIONS","_default","default"],"sources":["../../../src/constants/fileUploadTypes.ts"],"sourcesContent":["export const BLACKLISTED_FILE_TYPES = [\n // Executable files\n 'exe',\n 'msi',\n 'msp',\n 'com',\n 'dll',\n 'ocx',\n 'sys',\n 'hta',\n 'scr',\n 'pif',\n 'cpl',\n 'msc',\n 'mst',\n 'jar',\n 'gadget',\n 'application',\n 'appx',\n 'appxbundle',\n 'msix',\n 'msixbundle',\n // Batch, script or config files\n 'sh',\n 'cmd',\n 'bat',\n 'ps1',\n 'ps2',\n 'psm1',\n 'psd1',\n 'ps1xml',\n 'js',\n 'jse',\n 'vbs',\n 'vbe',\n 'wsf',\n 'wsh',\n 'ws',\n 'reg',\n 'inf',\n 'ini',\n 'config',\n // Help files and disk images, which can carry or mount executables\n 'chm',\n 'iso',\n 'img',\n 'vhd',\n 'vhdx',\n // Shortcuts\n 'lnk',\n 'url',\n 'scf',\n];\n\n// SVG is deliberately absent from the defaults: an SVG can carry script, which runs if the app later\n// serves the upload from its own origin. Apps that need SVG uploads can opt in through validFiles.\nexport const DEFAULT_UPLOAD_FILE_TYPES = [\n '.json',\n '.xml',\n '.csv',\n '.eml',\n 'image/png',\n 'image/jpeg',\n 'image/gif',\n 'text/plain',\n 'text/markdown',\n 'application/msword',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'application/vnd.ms-excel',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n 'application/vnd.ms-powerpoint',\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n 'application/pdf'\n];\n\nexport const DEFAULT_UPLOAD_FILE_EXTENSIONS = [\n 'json',\n 'xml',\n 'csv',\n 'eml',\n 'png',\n 'jpg',\n 'jpeg',\n 'gif',\n 'txt',\n 'md',\n 'doc',\n 'docx',\n 'xls',\n 'xlsx',\n 'ppt',\n 'pptx',\n 'pdf'\n];\n\nexport default {\n BLACKLISTED_FILE_TYPES,\n DEFAULT_UPLOAD_FILE_TYPES,\n DEFAULT_UPLOAD_FILE_EXTENSIONS\n};\n"],"mappings":";;;;;;AAAO,MAAMA,sBAAsB,GAAAC,OAAA,CAAAD,sBAAA,GAAG;AACpC;AACA,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,QAAQ,EACR,aAAa,EACb,MAAM,EACN,YAAY,EACZ,MAAM,EACN,YAAY;AACZ;AACA,IAAI,EACJ,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,IAAI,EACJ,KAAK,EACL,KAAK,EACL,KAAK,EACL,QAAQ;AACR;AACA,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,MAAM;AACN;AACA,KAAK,EACL,KAAK,EACL,KAAK,CACN;;AAED;AACA;AACO,MAAME,yBAAyB,GAAAD,OAAA,CAAAC,yBAAA,GAAG,CACvC,OAAO,EACP,MAAM,EACN,MAAM,EACN,MAAM,EACN,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,yEAAyE,EACzE,0BAA0B,EAC1B,mEAAmE,EACnE,+BAA+B,EAC/B,2EAA2E,EAC3E,iBAAiB,CAClB;AAEM,MAAMC,8BAA8B,GAAAF,OAAA,CAAAE,8BAAA,GAAG,CAC5C,MAAM,EACN,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,KAAK,EACL,KAAK,EACL,IAAI,EACJ,KAAK,EACL,MAAM,EACN,KAAK,EACL,MAAM,EACN,KAAK,EACL,MAAM,EACN,KAAK,CACN;AAAC,IAAAC,QAAA,GAAAH,OAAA,CAAAI,OAAA,GAEa;EACbL,sBAAsB;EACtBE,yBAAyB;EACzBC;AACF,CAAC","ignoreList":[]}
|