@recogito/metaphor-annotation-plugin 0.0.0-stage → 0.0.11-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +102 -2
- package/dist/extensions/GoToMetaphorAnnotationView.d.ts +3 -0
- package/dist/extensions/GoToMetaphorAnnotationView.d.ts.map +1 -0
- package/dist/extensions/GoToMetaphorAnnotationView.js +14 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +37 -0
- package/dist/pages/_components/ImageMetaphorView/ImageMetaphorView.css +22 -0
- package/dist/pages/_components/ImageMetaphorView/ImageMetaphorView.d.ts +10 -0
- package/dist/pages/_components/ImageMetaphorView/ImageMetaphorView.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/ImageMetaphorView.js +136 -0
- package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/AnnotationPanel.d.ts +9 -0
- package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/AnnotationPanel.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/AnnotationPanel.js +12 -0
- package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/ListTab/ImageListCard.d.ts +11 -0
- package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/ListTab/ImageListCard.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/ListTab/ImageListCard.js +37 -0
- package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/ListTab/ListTab.d.ts +2 -0
- package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/ListTab/ListTab.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/ListTab/ListTab.js +70 -0
- package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/ListTab/index.d.ts +2 -0
- package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/ListTab/index.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/ListTab/index.js +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/SelectedTab/SelectedArrowAnnotation.d.ts +8 -0
- package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/SelectedTab/SelectedArrowAnnotation.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/SelectedTab/SelectedArrowAnnotation.js +20 -0
- package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/SelectedTab/SelectedImageAnnotation.d.ts +9 -0
- package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/SelectedTab/SelectedImageAnnotation.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/SelectedTab/SelectedImageAnnotation.js +25 -0
- package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/SelectedTab/SelectedTab.d.ts +6 -0
- package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/SelectedTab/SelectedTab.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/SelectedTab/SelectedTab.js +16 -0
- package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/SelectedTab/index.d.ts +2 -0
- package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/SelectedTab/index.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/SelectedTab/index.js +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/SettingsTab/SettingsTab.d.ts +2 -0
- package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/SettingsTab/SettingsTab.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/SettingsTab/SettingsTab.js +10 -0
- package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/SettingsTab/index.d.ts +2 -0
- package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/SettingsTab/index.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/SettingsTab/index.js +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/index.d.ts +2 -0
- package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/index.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/index.js +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/ArrowToolbar/ArrowToolbar.d.ts +3 -0
- package/dist/pages/_components/ImageMetaphorView/components/ArrowToolbar/ArrowToolbar.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/ArrowToolbar/ArrowToolbar.js +27 -0
- package/dist/pages/_components/ImageMetaphorView/components/ArrowToolbar/index.d.ts +2 -0
- package/dist/pages/_components/ImageMetaphorView/components/ArrowToolbar/index.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/ArrowToolbar/index.js +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/FilterAdapter/FilterAdapter.d.ts +9 -0
- package/dist/pages/_components/ImageMetaphorView/components/FilterAdapter/FilterAdapter.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/FilterAdapter/FilterAdapter.js +23 -0
- package/dist/pages/_components/ImageMetaphorView/components/FilterAdapter/index.d.ts +2 -0
- package/dist/pages/_components/ImageMetaphorView/components/FilterAdapter/index.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/FilterAdapter/index.js +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/HoverTooltip/HoverTooltip.d.ts +11 -0
- package/dist/pages/_components/ImageMetaphorView/components/HoverTooltip/HoverTooltip.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/HoverTooltip/HoverTooltip.js +16 -0
- package/dist/pages/_components/ImageMetaphorView/components/HoverTooltip/index.d.ts +2 -0
- package/dist/pages/_components/ImageMetaphorView/components/HoverTooltip/index.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/HoverTooltip/index.js +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/ImageArrows/ImageArrows.d.ts +13 -0
- package/dist/pages/_components/ImageMetaphorView/components/ImageArrows/ImageArrows.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/ImageArrows/ImageArrows.js +42 -0
- package/dist/pages/_components/ImageMetaphorView/components/ImageArrows/index.d.ts +2 -0
- package/dist/pages/_components/ImageMetaphorView/components/ImageArrows/index.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/ImageArrows/index.js +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/ImageUndoStack/ImageUndoStack.d.ts +7 -0
- package/dist/pages/_components/ImageMetaphorView/components/ImageUndoStack/ImageUndoStack.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/ImageUndoStack/ImageUndoStack.js +22 -0
- package/dist/pages/_components/ImageMetaphorView/components/ImageUndoStack/index.d.ts +2 -0
- package/dist/pages/_components/ImageMetaphorView/components/ImageUndoStack/index.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/ImageUndoStack/index.js +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/MetadataPanel/Contents.d.ts +14 -0
- package/dist/pages/_components/ImageMetaphorView/components/MetadataPanel/Contents.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/MetadataPanel/Contents.js +36 -0
- package/dist/pages/_components/ImageMetaphorView/components/MetadataPanel/Info.d.ts +9 -0
- package/dist/pages/_components/ImageMetaphorView/components/MetadataPanel/Info.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/MetadataPanel/Info.js +35 -0
- package/dist/pages/_components/ImageMetaphorView/components/MetadataPanel/MetadataPanel.css +96 -0
- package/dist/pages/_components/ImageMetaphorView/components/MetadataPanel/MetadataPanel.d.ts +18 -0
- package/dist/pages/_components/ImageMetaphorView/components/MetadataPanel/MetadataPanel.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/MetadataPanel/MetadataPanel.js +33 -0
- package/dist/pages/_components/ImageMetaphorView/components/MetadataPanel/index.d.ts +2 -0
- package/dist/pages/_components/ImageMetaphorView/components/MetadataPanel/index.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/MetadataPanel/index.js +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/ShapeToolbar/ShapeToolbar.d.ts +9 -0
- package/dist/pages/_components/ImageMetaphorView/components/ShapeToolbar/ShapeToolbar.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/ShapeToolbar/ShapeToolbar.js +20 -0
- package/dist/pages/_components/ImageMetaphorView/components/ShapeToolbar/index.d.ts +2 -0
- package/dist/pages/_components/ImageMetaphorView/components/ShapeToolbar/index.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/ShapeToolbar/index.js +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/Toolbar/ImageMoreTools.d.ts +11 -0
- package/dist/pages/_components/ImageMetaphorView/components/Toolbar/ImageMoreTools.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/Toolbar/ImageMoreTools.js +15 -0
- package/dist/pages/_components/ImageMetaphorView/components/Toolbar/Toolbar.css +105 -0
- package/dist/pages/_components/ImageMetaphorView/components/Toolbar/Toolbar.d.ts +22 -0
- package/dist/pages/_components/ImageMetaphorView/components/Toolbar/Toolbar.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/Toolbar/Toolbar.js +61 -0
- package/dist/pages/_components/ImageMetaphorView/components/Toolbar/index.d.ts +3 -0
- package/dist/pages/_components/ImageMetaphorView/components/Toolbar/index.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/Toolbar/index.js +2 -0
- package/dist/pages/_components/ImageMetaphorView/components/image-panel.css +347 -0
- package/dist/pages/_components/ImageMetaphorView/components/shared/AddProperty.d.ts +6 -0
- package/dist/pages/_components/ImageMetaphorView/components/shared/AddProperty.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/shared/AddProperty.js +21 -0
- package/dist/pages/_components/ImageMetaphorView/components/shared/RelationPreview.d.ts +12 -0
- package/dist/pages/_components/ImageMetaphorView/components/shared/RelationPreview.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/shared/RelationPreview.js +34 -0
- package/dist/pages/_components/ImageMetaphorView/components/shared/SetCategory.d.ts +8 -0
- package/dist/pages/_components/ImageMetaphorView/components/shared/SetCategory.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/shared/SetCategory.js +20 -0
- package/dist/pages/_components/ImageMetaphorView/components/shared/colors.d.ts +2 -0
- package/dist/pages/_components/ImageMetaphorView/components/shared/colors.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/shared/colors.js +17 -0
- package/dist/pages/_components/ImageMetaphorView/components/shared/index.d.ts +6 -0
- package/dist/pages/_components/ImageMetaphorView/components/shared/index.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/shared/index.js +5 -0
- package/dist/pages/_components/ImageMetaphorView/components/shared/useRelations.d.ts +8 -0
- package/dist/pages/_components/ImageMetaphorView/components/shared/useRelations.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/components/shared/useRelations.js +13 -0
- package/dist/pages/_components/ImageMetaphorView/hooks/index.d.ts +2 -0
- package/dist/pages/_components/ImageMetaphorView/hooks/index.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/hooks/index.js +1 -0
- package/dist/pages/_components/ImageMetaphorView/hooks/useMultiPagePresence.d.ts +17 -0
- package/dist/pages/_components/ImageMetaphorView/hooks/useMultiPagePresence.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/hooks/useMultiPagePresence.js +43 -0
- package/dist/pages/_components/ImageMetaphorView/index.d.ts +2 -0
- package/dist/pages/_components/ImageMetaphorView/index.d.ts.map +1 -0
- package/dist/pages/_components/ImageMetaphorView/index.js +1 -0
- package/dist/pages/_components/TeiMetaphorView/TeiMetaphorView.css +2055 -0
- package/dist/pages/_components/TeiMetaphorView/TeiMetaphorView.d.ts +10 -0
- package/dist/pages/_components/TeiMetaphorView/TeiMetaphorView.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/TeiMetaphorView.js +41 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotatableTEI/AnnotatableTEI.d.ts +14 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotatableTEI/AnnotatableTEI.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotatableTEI/AnnotatableTEI.js +35 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotatableTEI/index.d.ts +2 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotatableTEI/index.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotatableTEI/index.js +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/AnnotationPanel.css +67 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/AnnotationPanel.d.ts +10 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/AnnotationPanel.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/AnnotationPanel.js +15 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/ListTab/ListCard.d.ts +13 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/ListTab/ListCard.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/ListTab/ListCard.js +32 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/ListTab/ListTab.css +230 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/ListTab/ListTab.d.ts +7 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/ListTab/ListTab.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/ListTab/ListTab.js +100 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/ListTab/index.d.ts +2 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/ListTab/index.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/ListTab/index.js +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/SelectedTab.css +449 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/SelectedTab.d.ts +10 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/SelectedTab.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/SelectedTab.js +81 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/LinkedWordItem.d.ts +11 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/LinkedWordItem.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/LinkedWordItem.js +11 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/MetaphorLinkedWords.d.ts +9 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/MetaphorLinkedWords.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/MetaphorLinkedWords.js +45 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/MetaphorPreview.d.ts +8 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/MetaphorPreview.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/MetaphorPreview.js +27 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/MetaphorTags.d.ts +10 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/MetaphorTags.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/MetaphorTags.js +39 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/SpanTools.d.ts +8 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/SpanTools.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/SpanTools.js +9 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/Tag.d.ts +7 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/Tag.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/Tag.js +7 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/TypeSelector.d.ts +9 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/TypeSelector.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/TypeSelector.js +8 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/WordTags.d.ts +10 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/WordTags.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/WordTags.js +32 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/WordUplink.d.ts +7 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/WordUplink.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/WordUplink.js +17 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/index.d.ts +2 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/index.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/index.js +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SettingsTab/SettingsTab.css +157 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SettingsTab/SettingsTab.d.ts +2 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SettingsTab/SettingsTab.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SettingsTab/SettingsTab.js +12 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SettingsTab/components/AnnotationStyle.d.ts +2 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SettingsTab/components/AnnotationStyle.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SettingsTab/components/AnnotationStyle.js +19 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SettingsTab/index.d.ts +2 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SettingsTab/index.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SettingsTab/index.js +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/index.d.ts +2 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/index.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/index.js +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/ColorCodingState/ColorCodingState.d.ts +31 -0
- package/dist/pages/_components/TeiMetaphorView/components/ColorCodingState/ColorCodingState.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/ColorCodingState/ColorCodingState.js +64 -0
- package/dist/pages/_components/TeiMetaphorView/components/ColorCodingState/index.d.ts +2 -0
- package/dist/pages/_components/TeiMetaphorView/components/ColorCodingState/index.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/ColorCodingState/index.js +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/InlineToolbar/InlineToolbar.css +189 -0
- package/dist/pages/_components/TeiMetaphorView/components/InlineToolbar/InlineToolbar.d.ts +7 -0
- package/dist/pages/_components/TeiMetaphorView/components/InlineToolbar/InlineToolbar.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/InlineToolbar/InlineToolbar.js +24 -0
- package/dist/pages/_components/TeiMetaphorView/components/InlineToolbar/ToolbarStateChoice.d.ts +8 -0
- package/dist/pages/_components/TeiMetaphorView/components/InlineToolbar/ToolbarStateChoice.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/InlineToolbar/ToolbarStateChoice.js +26 -0
- package/dist/pages/_components/TeiMetaphorView/components/InlineToolbar/ToolbarStateSelected.d.ts +7 -0
- package/dist/pages/_components/TeiMetaphorView/components/InlineToolbar/ToolbarStateSelected.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/InlineToolbar/ToolbarStateSelected.js +71 -0
- package/dist/pages/_components/TeiMetaphorView/components/InlineToolbar/index.d.ts +2 -0
- package/dist/pages/_components/TeiMetaphorView/components/InlineToolbar/index.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/InlineToolbar/index.js +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Info/Info.d.ts +8 -0
- package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Info/Info.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Info/Info.js +41 -0
- package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Info/getTeiMetadata.d.ts +9 -0
- package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Info/getTeiMetadata.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Info/getTeiMetadata.js +33 -0
- package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Info/index.d.ts +2 -0
- package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Info/index.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Info/index.js +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/MetadataPanel.css +159 -0
- package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/MetadataPanel.d.ts +9 -0
- package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/MetadataPanel.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/MetadataPanel.js +47 -0
- package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Toc/Toc.d.ts +6 -0
- package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Toc/Toc.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Toc/Toc.js +15 -0
- package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Toc/TocLevel.d.ts +7 -0
- package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Toc/TocLevel.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Toc/TocLevel.js +13 -0
- package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Toc/buildTableOfContents.d.ts +12 -0
- package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Toc/buildTableOfContents.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Toc/buildTableOfContents.js +97 -0
- package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Toc/index.d.ts +2 -0
- package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Toc/index.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Toc/index.js +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/index.d.ts +2 -0
- package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/index.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/index.js +1 -0
- package/dist/pages/_components/TeiMetaphorView/hooks/index.d.ts +6 -0
- package/dist/pages/_components/TeiMetaphorView/hooks/index.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/hooks/index.js +5 -0
- package/dist/pages/_components/TeiMetaphorView/hooks/useAnnotationsStyle.d.ts +3 -0
- package/dist/pages/_components/TeiMetaphorView/hooks/useAnnotationsStyle.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/hooks/useAnnotationsStyle.js +138 -0
- package/dist/pages/_components/TeiMetaphorView/hooks/useIntersectingAnnotations.d.ts +5 -0
- package/dist/pages/_components/TeiMetaphorView/hooks/useIntersectingAnnotations.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/hooks/useIntersectingAnnotations.js +35 -0
- package/dist/pages/_components/TeiMetaphorView/hooks/useLinkedMetaphors.d.ts +5 -0
- package/dist/pages/_components/TeiMetaphorView/hooks/useLinkedMetaphors.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/hooks/useLinkedMetaphors.js +14 -0
- package/dist/pages/_components/TeiMetaphorView/hooks/useMrwOptions.d.ts +6 -0
- package/dist/pages/_components/TeiMetaphorView/hooks/useMrwOptions.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/hooks/useMrwOptions.js +24 -0
- package/dist/pages/_components/TeiMetaphorView/hooks/useSuggestAnnotationType.d.ts +2 -0
- package/dist/pages/_components/TeiMetaphorView/hooks/useSuggestAnnotationType.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/hooks/useSuggestAnnotationType.js +35 -0
- package/dist/pages/_components/TeiMetaphorView/hooks/useTagVocabulary.d.ts +3 -0
- package/dist/pages/_components/TeiMetaphorView/hooks/useTagVocabulary.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/hooks/useTagVocabulary.js +46 -0
- package/dist/pages/_components/TeiMetaphorView/index.d.ts +2 -0
- package/dist/pages/_components/TeiMetaphorView/index.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/index.js +1 -0
- package/dist/pages/_components/TeiMetaphorView/utils.d.ts +15 -0
- package/dist/pages/_components/TeiMetaphorView/utils.d.ts.map +1 -0
- package/dist/pages/_components/TeiMetaphorView/utils.js +146 -0
- package/dist/pages/_components/shared/components/Accordion/Accordion.css +55 -0
- package/dist/pages/_components/shared/components/Accordion/Accordion.d.ts +6 -0
- package/dist/pages/_components/shared/components/Accordion/Accordion.d.ts.map +1 -0
- package/dist/pages/_components/shared/components/Accordion/Accordion.js +7 -0
- package/dist/pages/_components/shared/components/Accordion/index.d.ts +2 -0
- package/dist/pages/_components/shared/components/Accordion/index.d.ts.map +1 -0
- package/dist/pages/_components/shared/components/Accordion/index.js +1 -0
- package/dist/pages/_components/shared/components/AccountActions/AccountActions.css +49 -0
- package/dist/pages/_components/shared/components/AccountActions/AccountActions.d.ts +2 -0
- package/dist/pages/_components/shared/components/AccountActions/AccountActions.d.ts.map +1 -0
- package/dist/pages/_components/shared/components/AccountActions/AccountActions.js +33 -0
- package/dist/pages/_components/shared/components/AccountActions/index.d.ts +2 -0
- package/dist/pages/_components/shared/components/AccountActions/index.d.ts.map +1 -0
- package/dist/pages/_components/shared/components/AccountActions/index.js +1 -0
- package/dist/pages/_components/shared/components/Conversation/Comment.d.ts +6 -0
- package/dist/pages/_components/shared/components/Conversation/Comment.d.ts.map +1 -0
- package/dist/pages/_components/shared/components/Conversation/Comment.js +12 -0
- package/dist/pages/_components/shared/components/Conversation/Conversation.css +93 -0
- package/dist/pages/_components/shared/components/Conversation/Conversation.d.ts +8 -0
- package/dist/pages/_components/shared/components/Conversation/Conversation.d.ts.map +1 -0
- package/dist/pages/_components/shared/components/Conversation/Conversation.js +55 -0
- package/dist/pages/_components/shared/components/Conversation/index.d.ts +2 -0
- package/dist/pages/_components/shared/components/Conversation/index.d.ts.map +1 -0
- package/dist/pages/_components/shared/components/Conversation/index.js +1 -0
- package/dist/pages/_components/shared/components/EditorToolbar/EditorToolbar.css +218 -0
- package/dist/pages/_components/shared/components/EditorToolbar/EditorToolbar.d.ts +23 -0
- package/dist/pages/_components/shared/components/EditorToolbar/EditorToolbar.d.ts.map +1 -0
- package/dist/pages/_components/shared/components/EditorToolbar/EditorToolbar.js +13 -0
- package/dist/pages/_components/shared/components/EditorToolbar/PrivacySelector.d.ts +8 -0
- package/dist/pages/_components/shared/components/EditorToolbar/PrivacySelector.d.ts.map +1 -0
- package/dist/pages/_components/shared/components/EditorToolbar/PrivacySelector.js +9 -0
- package/dist/pages/_components/shared/components/EditorToolbar/UndoRedo.d.ts +2 -0
- package/dist/pages/_components/shared/components/EditorToolbar/UndoRedo.d.ts.map +1 -0
- package/dist/pages/_components/shared/components/EditorToolbar/UndoRedo.js +42 -0
- package/dist/pages/_components/shared/components/EditorToolbar/index.d.ts +3 -0
- package/dist/pages/_components/shared/components/EditorToolbar/index.d.ts.map +1 -0
- package/dist/pages/_components/shared/components/EditorToolbar/index.js +2 -0
- package/dist/pages/_components/shared/components/Filters/Filters.d.ts +6 -0
- package/dist/pages/_components/shared/components/Filters/Filters.d.ts.map +1 -0
- package/dist/pages/_components/shared/components/Filters/Filters.js +61 -0
- package/dist/pages/_components/shared/components/Filters/VisibilityFilter.d.ts +2 -0
- package/dist/pages/_components/shared/components/Filters/VisibilityFilter.d.ts.map +1 -0
- package/dist/pages/_components/shared/components/Filters/VisibilityFilter.js +23 -0
- package/dist/pages/_components/shared/components/Filters/index.d.ts +3 -0
- package/dist/pages/_components/shared/components/Filters/index.d.ts.map +1 -0
- package/dist/pages/_components/shared/components/Filters/index.js +2 -0
- package/dist/pages/_components/shared/components/HideAllState/HideAllState.d.ts +12 -0
- package/dist/pages/_components/shared/components/HideAllState/HideAllState.d.ts.map +1 -0
- package/dist/pages/_components/shared/components/HideAllState/HideAllState.js +9 -0
- package/dist/pages/_components/shared/components/HideAllState/index.d.ts +2 -0
- package/dist/pages/_components/shared/components/HideAllState/index.d.ts.map +1 -0
- package/dist/pages/_components/shared/components/HideAllState/index.js +1 -0
- package/dist/pages/_components/shared/components/Metadata/MetadataList.d.ts +10 -0
- package/dist/pages/_components/shared/components/Metadata/MetadataList.d.ts.map +1 -0
- package/dist/pages/_components/shared/components/Metadata/MetadataList.js +11 -0
- package/dist/pages/_components/shared/components/Metadata/index.d.ts +3 -0
- package/dist/pages/_components/shared/components/Metadata/index.d.ts.map +1 -0
- package/dist/pages/_components/shared/components/Metadata/index.js +2 -0
- package/dist/pages/_components/shared/components/Metadata/sanitize.d.ts +3 -0
- package/dist/pages/_components/shared/components/Metadata/sanitize.d.ts.map +1 -0
- package/dist/pages/_components/shared/components/Metadata/sanitize.js +53 -0
- package/dist/pages/_components/shared/components/StorageAdapter.d.ts +8 -0
- package/dist/pages/_components/shared/components/StorageAdapter.d.ts.map +1 -0
- package/dist/pages/_components/shared/components/StorageAdapter.js +12 -0
- package/dist/pages/_components/shared/components/SupabaseStorageAdapter.d.ts +23 -0
- package/dist/pages/_components/shared/components/SupabaseStorageAdapter.d.ts.map +1 -0
- package/dist/pages/_components/shared/components/SupabaseStorageAdapter.js +46 -0
- package/dist/pages/_components/shared/components/Tabs/Tabs.css +90 -0
- package/dist/pages/_components/shared/components/Tabs/Tabs.d.ts +6 -0
- package/dist/pages/_components/shared/components/Tabs/Tabs.d.ts.map +1 -0
- package/dist/pages/_components/shared/components/Tabs/Tabs.js +6 -0
- package/dist/pages/_components/shared/components/Tabs/index.d.ts +2 -0
- package/dist/pages/_components/shared/components/Tabs/index.d.ts.map +1 -0
- package/dist/pages/_components/shared/components/Tabs/index.js +1 -0
- package/dist/pages/_components/shared/components/index.d.ts +9 -0
- package/dist/pages/_components/shared/components/index.d.ts.map +1 -0
- package/dist/pages/_components/shared/components/index.js +8 -0
- package/dist/pages/_components/shared/hooks/index.d.ts +2 -0
- package/dist/pages/_components/shared/hooks/index.d.ts.map +1 -0
- package/dist/pages/_components/shared/hooks/index.js +1 -0
- package/dist/pages/_components/shared/hooks/useDocument.d.ts +3 -0
- package/dist/pages/_components/shared/hooks/useDocument.d.ts.map +1 -0
- package/dist/pages/_components/shared/hooks/useDocument.js +14 -0
- package/dist/pages/_components/shared/hooks/useDocumentLayers.d.ts +6 -0
- package/dist/pages/_components/shared/hooks/useDocumentLayers.d.ts.map +1 -0
- package/dist/pages/_components/shared/hooks/useDocumentLayers.js +18 -0
- package/dist/pages/_components/shared/hooks/useLayerPolicies.d.ts +3 -0
- package/dist/pages/_components/shared/hooks/useLayerPolicies.d.ts.map +1 -0
- package/dist/pages/_components/shared/hooks/useLayerPolicies.js +16 -0
- package/dist/pages/_components/shared/hooks/useSelectAction.d.ts +18 -0
- package/dist/pages/_components/shared/hooks/useSelectAction.d.ts.map +1 -0
- package/dist/pages/_components/shared/hooks/useSelectAction.js +26 -0
- package/dist/pages/_components/shared/hooks/useStoredFileDocument.d.ts +5 -0
- package/dist/pages/_components/shared/hooks/useStoredFileDocument.d.ts.map +1 -0
- package/dist/pages/_components/shared/hooks/useStoredFileDocument.js +22 -0
- package/dist/pages/_components/shared/i18n.d.ts +4 -0
- package/dist/pages/_components/shared/i18n.d.ts.map +1 -0
- package/dist/pages/_components/shared/i18n.js +31 -0
- package/dist/pages/_components/shared/supabase.d.ts +7 -0
- package/dist/pages/_components/shared/supabase.d.ts.map +1 -0
- package/dist/pages/_components/shared/supabase.js +7 -0
- package/dist/pages/_components/shared/types.d.ts +16 -0
- package/dist/pages/_components/shared/types.d.ts.map +1 -0
- package/dist/pages/_components/shared/types.js +1 -0
- package/dist/pages/metaphor-annotation-view.astro +122 -0
- package/package.json +69 -4
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { AnnotationBody, TEIAnnotation } from '@recogito/react-text-annotator';
|
|
2
|
+
import { AnnotationType } from '../shared/types';
|
|
3
|
+
export declare const getAnnotationType: (annotation: TEIAnnotation) => AnnotationType;
|
|
4
|
+
export declare const getQuote: (annotation: TEIAnnotation) => string;
|
|
5
|
+
export declare const setAnnotationType: (annotation: TEIAnnotation, type: AnnotationType) => TEIAnnotation;
|
|
6
|
+
export declare const getStartOffset: (a: TEIAnnotation) => string;
|
|
7
|
+
export declare const sortAnnotationsByCharPosition: (annotations: TEIAnnotation[]) => TEIAnnotation[];
|
|
8
|
+
export declare const interleaveLinkedAnnotations: (metaphor: TEIAnnotation, words: TEIAnnotation[]) => {
|
|
9
|
+
value: string;
|
|
10
|
+
type: "metaphor" | "word";
|
|
11
|
+
}[];
|
|
12
|
+
export declare const isMRWTypeBody: (b: AnnotationBody) => string | false | undefined;
|
|
13
|
+
export declare const getMRWType: (a: TEIAnnotation) => string | undefined;
|
|
14
|
+
export declare function timeAgo(date: Date | string | number, locale?: string): string;
|
|
15
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/pages/_components/TeiMetaphorView/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAEd,aAAa,EAEd,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAYjD,eAAO,MAAM,iBAAiB,GAAI,YAAY,aAAa,KAAG,cAEjC,CAAC;AAE9B,eAAO,MAAM,QAAQ,GAAI,YAAY,aAAa,KAAG,MACK,CAAC;AAE3D,eAAO,MAAM,iBAAiB,GAC5B,YAAY,aAAa,EACzB,MAAM,cAAc,KACnB,aAaF,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,GAAG,aAAa,KAAG,MAM1C,CAAC;AAET,eAAO,MAAM,6BAA6B,GAAI,aAAa,aAAa,EAAE,oBAGvE,CAAC;AAEJ,eAAO,MAAM,2BAA2B,GACtC,UAAU,aAAa,EACvB,OAAO,aAAa,EAAE;WA2DC,MAAM;UAAQ,UAAU,GAAG,MAAM;GAiEzD,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,GAAG,cAAc,+BAItC,CAAC;AAEV,eAAO,MAAM,UAAU,GAAI,GAAG,aAAa,uBACN,CAAC;AAEtC,wBAAgB,OAAO,CACrB,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,EAC5B,MAAM,GAAE,MAAa,GACpB,MAAM,CAkCR"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { createBody, } from '@recogito/react-text-annotator';
|
|
2
|
+
export const getAnnotationType = (annotation) => (annotation.bodies || []).find((b) => b.purpose === 'classifying')
|
|
3
|
+
?.value;
|
|
4
|
+
export const getQuote = (annotation) => annotation.target.selector.map((s) => s.quote).join(' ');
|
|
5
|
+
export const setAnnotationType = (annotation, type) => {
|
|
6
|
+
const body = createBody(annotation, {
|
|
7
|
+
purpose: 'classifying',
|
|
8
|
+
value: type,
|
|
9
|
+
});
|
|
10
|
+
return {
|
|
11
|
+
...annotation,
|
|
12
|
+
bodies: [
|
|
13
|
+
...(annotation.bodies || []).filter((b) => b.purpose !== 'classifying'),
|
|
14
|
+
body,
|
|
15
|
+
],
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
export const getStartOffset = (a) => (a.target.selector || []).reduce((lowest, selector) => {
|
|
19
|
+
// position property can be missing if a selector wasn't fully revived
|
|
20
|
+
const position = selector?.position;
|
|
21
|
+
if (!position)
|
|
22
|
+
return lowest;
|
|
23
|
+
return !lowest || position < lowest ? position : lowest;
|
|
24
|
+
}, '');
|
|
25
|
+
export const sortAnnotationsByCharPosition = (annotations) => [...annotations].sort((a, b) => getStartOffset(a).localeCompare(getStartOffset(b)));
|
|
26
|
+
export const interleaveLinkedAnnotations = (metaphor, words) => {
|
|
27
|
+
const metaphorSelectors = metaphor.target.selector || [];
|
|
28
|
+
const wordSelectors = words
|
|
29
|
+
.reduce((all, word) => [
|
|
30
|
+
...all,
|
|
31
|
+
...(word.target.selector || []),
|
|
32
|
+
], [])
|
|
33
|
+
// limit to selectors with a DOM Range
|
|
34
|
+
.filter((s) => Boolean(s.range));
|
|
35
|
+
// Shorthand: deflate XML indentation
|
|
36
|
+
const d = (str) => str.replace(/\s+/g, ' ');
|
|
37
|
+
// char offset relative to the start of the DOM Range
|
|
38
|
+
const offsetFromStart = (range, node, offset) => {
|
|
39
|
+
const r = document.createRange();
|
|
40
|
+
r.setStart(range.startContainer, range.startOffset);
|
|
41
|
+
r.setEnd(node, offset);
|
|
42
|
+
// 0 if it is at or before the start
|
|
43
|
+
return r.collapsed ? 0 : r.toString().length;
|
|
44
|
+
};
|
|
45
|
+
// offsets relative to the start of the metaphor, using start/end from
|
|
46
|
+
// RevivedTextSelector when available
|
|
47
|
+
const relativeOffsets = (metaphor, word) => {
|
|
48
|
+
if (metaphor.start !== undefined &&
|
|
49
|
+
word.start !== undefined &&
|
|
50
|
+
word.end !== undefined) {
|
|
51
|
+
return {
|
|
52
|
+
start: word.start - metaphor.start,
|
|
53
|
+
end: word.end - metaphor.start,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
57
|
+
start: offsetFromStart(metaphor.range, word.range.startContainer, word.range.startOffset),
|
|
58
|
+
end: offsetFromStart(metaphor.range, word.range.endContainer, word.range.endOffset),
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
const tokens = [];
|
|
62
|
+
for (const metaphor of metaphorSelectors) {
|
|
63
|
+
const metaphorRange = metaphor.range;
|
|
64
|
+
if (!metaphorRange) {
|
|
65
|
+
if (metaphor.quote)
|
|
66
|
+
tokens.push({ value: d(metaphor.quote), type: 'metaphor' });
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
const metaphorText = metaphorRange.toString();
|
|
70
|
+
const len = metaphorText.length;
|
|
71
|
+
// MRWs whose range overlaps this metaphor, as offsets in the metaphor's
|
|
72
|
+
// DOM range, ordered by start position
|
|
73
|
+
const intersectingWords = wordSelectors
|
|
74
|
+
.map((w) => ({
|
|
75
|
+
quote: w.quote,
|
|
76
|
+
...relativeOffsets(metaphor, w),
|
|
77
|
+
}))
|
|
78
|
+
.filter((w) => w.end > 0 && w.start < len)
|
|
79
|
+
.map((w) => ({
|
|
80
|
+
quote: w.quote,
|
|
81
|
+
start: Math.max(0, Math.min(w.start, len)),
|
|
82
|
+
end: Math.max(0, Math.min(w.end, len)),
|
|
83
|
+
}))
|
|
84
|
+
.sort((a, b) => a.start - b.start);
|
|
85
|
+
if (intersectingWords.length === 0) {
|
|
86
|
+
// Nothing to interleave
|
|
87
|
+
tokens.push({ value: d(metaphor.quote), type: 'metaphor' });
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
// Head (metaphor) token, if any
|
|
91
|
+
const head = d(metaphorText.substring(0, intersectingWords[0].start));
|
|
92
|
+
if (head.trim().length > 0)
|
|
93
|
+
// Don't add if just whitespace
|
|
94
|
+
tokens.push({ value: head, type: 'metaphor' });
|
|
95
|
+
// Loop through intersecting words
|
|
96
|
+
intersectingWords.forEach((word, idx) => {
|
|
97
|
+
tokens.push({ value: d(word.quote), type: 'word' });
|
|
98
|
+
if (idx + 1 < intersectingWords.length) {
|
|
99
|
+
// If there's another word, compute interim metaphor token
|
|
100
|
+
const interim = d(metaphorText.substring(word.end, intersectingWords[idx + 1].start));
|
|
101
|
+
if (interim.trim().length > 0)
|
|
102
|
+
// Don't add if just whitespace
|
|
103
|
+
tokens.push({ value: interim, type: 'metaphor' });
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
// Append tail, if any
|
|
107
|
+
const tail = d(metaphorText.substring(intersectingWords[intersectingWords.length - 1].end));
|
|
108
|
+
if (tail.trim().length > 0)
|
|
109
|
+
tokens.push({ value: tail, type: 'metaphor' });
|
|
110
|
+
}
|
|
111
|
+
return tokens;
|
|
112
|
+
};
|
|
113
|
+
export const isMRWTypeBody = (b) => b.purpose === 'classifying' &&
|
|
114
|
+
'conformsTo' in b &&
|
|
115
|
+
b.conformsTo === 'mrw_type' &&
|
|
116
|
+
b.value;
|
|
117
|
+
export const getMRWType = (a) => a.bodies.find(isMRWTypeBody)?.value;
|
|
118
|
+
export function timeAgo(date, locale = 'en') {
|
|
119
|
+
const timeMs = typeof date === 'number' ? date : new Date(date).getTime();
|
|
120
|
+
const deltaSeconds = Math.round((timeMs - Date.now()) / 1000);
|
|
121
|
+
// Cutoffs for different time units in seconds
|
|
122
|
+
const cutoffs = [
|
|
123
|
+
60,
|
|
124
|
+
3600,
|
|
125
|
+
86400,
|
|
126
|
+
86400 * 7,
|
|
127
|
+
86400 * 30,
|
|
128
|
+
86400 * 365,
|
|
129
|
+
Infinity,
|
|
130
|
+
];
|
|
131
|
+
const units = [
|
|
132
|
+
'second',
|
|
133
|
+
'minute',
|
|
134
|
+
'hour',
|
|
135
|
+
'day',
|
|
136
|
+
'week',
|
|
137
|
+
'month',
|
|
138
|
+
'year',
|
|
139
|
+
];
|
|
140
|
+
// Find the ideal unit
|
|
141
|
+
const unitIndex = cutoffs.findIndex((cutoff) => cutoff > Math.abs(deltaSeconds));
|
|
142
|
+
const divisor = unitIndex ? cutoffs[unitIndex - 1] : 1;
|
|
143
|
+
// Use the native browser API
|
|
144
|
+
const rtf = new Intl.RelativeTimeFormat(locale, { numeric: 'auto' });
|
|
145
|
+
return rtf.format(Math.floor(deltaSeconds / divisor), units[unitIndex]);
|
|
146
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
.accordion-header {
|
|
2
|
+
display: flex;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.accordion-header[data-state='open'] {
|
|
6
|
+
border-bottom: none;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
button.accordion-trigger {
|
|
10
|
+
width: 100%;
|
|
11
|
+
font-family: Inter, sans-serif;
|
|
12
|
+
font-size: 14px;
|
|
13
|
+
font-weight: 500;
|
|
14
|
+
text-align: left;
|
|
15
|
+
cursor: pointer;
|
|
16
|
+
display: flex;
|
|
17
|
+
flex: 1;
|
|
18
|
+
align-items: center;
|
|
19
|
+
justify-content: space-between;
|
|
20
|
+
gap: 16px;
|
|
21
|
+
background: transparent;
|
|
22
|
+
border: none;
|
|
23
|
+
color: var(--gray-900);
|
|
24
|
+
outline: none;
|
|
25
|
+
padding: 0;
|
|
26
|
+
box-shadow: none;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
button.accordion-trigger:hover {
|
|
30
|
+
box-shadow: none;
|
|
31
|
+
text-decoration: underline;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
button.accordion-trigger:focus-visible {
|
|
35
|
+
outline: 1px solid var(--bright-blue);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.accordion-chevron {
|
|
39
|
+
flex-shrink: 0;
|
|
40
|
+
color: var(--gray-500);
|
|
41
|
+
transition: transform 0.2s cubic-bezier(0.87, 0, 0.13, 1);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
button.accordion-trigger[data-state='open'] .accordion-chevron {
|
|
45
|
+
transform: rotate(180deg);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.accordion-content {
|
|
49
|
+
overflow: hidden;
|
|
50
|
+
font-size: 14px;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
div.accordion-item:not(:last-of-type) {
|
|
54
|
+
border-bottom: 1px solid var(--border-light-color);
|
|
55
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as AccordionPrimitive from '@radix-ui/react-accordion';
|
|
2
|
+
export declare const Accordion: import("react").ForwardRefExoticComponent<(AccordionPrimitive.AccordionSingleProps | AccordionPrimitive.AccordionMultipleProps) & import("react").RefAttributes<HTMLDivElement>>;
|
|
3
|
+
export declare const AccordionItem: (props: AccordionPrimitive.AccordionItemProps) => import("react").JSX.Element;
|
|
4
|
+
export declare const AccordionTrigger: (props: AccordionPrimitive.AccordionTriggerProps) => import("react").JSX.Element;
|
|
5
|
+
export declare const AccordionContent: (props: AccordionPrimitive.AccordionContentProps) => import("react").JSX.Element;
|
|
6
|
+
//# sourceMappingURL=Accordion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Accordion.d.ts","sourceRoot":"","sources":["../../../../../../src/pages/_components/shared/components/Accordion/Accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,kBAAkB,MAAM,2BAA2B,CAAC;AAGhE,eAAO,MAAM,SAAS,kLAA0B,CAAC;AAEjD,eAAO,MAAM,aAAa,GAAI,OAAO,kBAAkB,CAAC,kBAAkB,gCAKzE,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,OAAO,kBAAkB,CAAC,qBAAqB,gCAehD,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,OAAO,kBAAkB,CAAC,qBAAqB,gCAQhD,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as AccordionPrimitive from '@radix-ui/react-accordion';
|
|
3
|
+
import { CaretDownIcon } from '@phosphor-icons/react';
|
|
4
|
+
export const Accordion = AccordionPrimitive.Root;
|
|
5
|
+
export const AccordionItem = (props) => (_jsx(AccordionPrimitive.Item, { ...props, className: `accordion-item ${props.className || ''}` }));
|
|
6
|
+
export const AccordionTrigger = (props) => (_jsx(AccordionPrimitive.Header, { className: 'accordion-header', children: _jsxs(AccordionPrimitive.Trigger, { ...props, className: `accordion-trigger ${props.className || ''}`, children: [props.children, _jsx(CaretDownIcon, { className: 'accordion-chevron', weight: 'bold', "aria-hidden": 'true' })] }) }));
|
|
7
|
+
export const AccordionContent = (props) => (_jsx(AccordionPrimitive.Content, { ...props, className: `accordion-content ${props.className || ''}`, children: _jsx("div", { className: 'accordion-content-inner', children: props.children }) }));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/pages/_components/shared/components/Accordion/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Accordion';
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
.account-actions-trigger.unstyled {
|
|
2
|
+
border-radius: 50%;
|
|
3
|
+
margin-left: 0;
|
|
4
|
+
padding: 0;
|
|
5
|
+
cursor: pointer;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.account-actions-trigger.unstyled .avatar {
|
|
9
|
+
height: 30px;
|
|
10
|
+
width: 30px;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.dropdown-content .account-actions-meta {
|
|
14
|
+
border-bottom: 1px solid var(--gray-100);
|
|
15
|
+
margin-bottom: 5px;
|
|
16
|
+
padding: 3px 10px 8px 10px;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.dropdown-content .account-actions-meta p {
|
|
20
|
+
margin: 0;
|
|
21
|
+
line-height: 160%;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.dropdown-content .account-actions-meta .account-actions-nickname {
|
|
25
|
+
font-size: 14px;
|
|
26
|
+
font-weight: 500;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.dropdown-content .account-actions-meta .account-actions-real-name {
|
|
30
|
+
color: var(--font-light);
|
|
31
|
+
font-size: 0.675em;
|
|
32
|
+
font-weight: 400;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.dropdown-content .account-actions-meta .role-badge {
|
|
36
|
+
background-color: var(--orange-500);
|
|
37
|
+
border-radius: 4px;
|
|
38
|
+
display: block;
|
|
39
|
+
font-size: 0.675em;
|
|
40
|
+
line-height: 200%;
|
|
41
|
+
margin-top: 0.3em;
|
|
42
|
+
text-align: center;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.dropdown-separator {
|
|
46
|
+
border-top: 1px solid var(--gray-200);
|
|
47
|
+
margin: 0.25rem 0.5rem;
|
|
48
|
+
}
|
|
49
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccountActions.d.ts","sourceRoot":"","sources":["../../../../../../src/pages/_components/shared/components/AccountActions/AccountActions.tsx"],"names":[],"mappings":"AAyBA,eAAO,MAAM,cAAc,0CA6H1B,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useMemo, useState } from 'react';
|
|
3
|
+
import * as Dropdown from '@radix-ui/react-dropdown-menu';
|
|
4
|
+
import { FolderIcon, ListChecksIcon, SignOutIcon, SlidersIcon, UsersIcon, } from '@phosphor-icons/react';
|
|
5
|
+
import { useTranslation } from 'react-i18next';
|
|
6
|
+
import { Avatar, getInitials } from '@recogito/studio-sdk/components';
|
|
7
|
+
import { sdk } from '../../../shared/supabase';
|
|
8
|
+
const { Content, Item, Portal, Root, Trigger } = Dropdown;
|
|
9
|
+
const getRealName = (profile) => [profile.first_name, profile.last_name].filter(Boolean).join(' ');
|
|
10
|
+
const getProfileInitials = (profile) => {
|
|
11
|
+
if (profile.nickname)
|
|
12
|
+
return getInitials(profile.nickname);
|
|
13
|
+
const realname = getRealName(profile);
|
|
14
|
+
return realname ? getInitials(realname) : '';
|
|
15
|
+
};
|
|
16
|
+
export const AccountActions = () => {
|
|
17
|
+
const { i18n, t } = useTranslation();
|
|
18
|
+
const [profile, setProfile] = useState();
|
|
19
|
+
useEffect(() => {
|
|
20
|
+
sdk.profile.getMyProfile().then(({ error, data }) => {
|
|
21
|
+
if (error)
|
|
22
|
+
console.error(error);
|
|
23
|
+
else
|
|
24
|
+
setProfile(data);
|
|
25
|
+
});
|
|
26
|
+
}, []);
|
|
27
|
+
const realname = useMemo(() => (profile ? getRealName(profile) : ''), [profile]);
|
|
28
|
+
const initials = useMemo(() => (profile ? getProfileInitials(profile) : ''), [profile]);
|
|
29
|
+
if (!profile)
|
|
30
|
+
return null;
|
|
31
|
+
const goto = (url) => () => (window.location.href = url);
|
|
32
|
+
return (_jsxs(Root, { children: [_jsx(Trigger, { asChild: true, children: _jsx("button", { className: 'unstyled account-actions-trigger', style: { border: 'none' }, "aria-label": t('Account'), children: _jsx(Avatar, { id: profile.id, initials: initials, avatar: profile.avatar_url }) }) }), _jsx(Portal, { children: _jsxs(Content, { className: 'dropdown-content', align: 'end', alignOffset: -10, sideOffset: 8, children: [(Boolean(profile.nickname) || Boolean(realname)) && (_jsxs("section", { className: 'account-actions-meta', children: [profile.nickname && realname ? (_jsxs(_Fragment, { children: [_jsx("p", { className: 'account-actions-nickname', children: profile.nickname }), _jsx("p", { className: 'account-actions-real-name', children: realname })] })) : profile.nickname ? (_jsx("p", { className: 'account-actions-nickname', children: profile.nickname })) : (_jsx("p", { className: 'account-actions-real-name', children: realname })), profile.isOrgAdmin && (_jsx("div", { className: 'role-badge', children: t('Organization Admin') }))] })), _jsxs("section", { children: [_jsxs(Item, { className: 'dropdown-item', onSelect: goto(`/${i18n.language}/account/me`), children: [_jsx(SlidersIcon, { size: 16 }), _jsx("a", { href: `/${i18n.language}/account/me`, children: t('Profile Settings') })] }), _jsxs(Item, { className: 'dropdown-item', onSelect: goto(`/${i18n.language}/sign-out`), children: [_jsx(SignOutIcon, { size: 16 }), _jsx("a", { href: `/${i18n.language}/sign-out`, children: t('Sign out') })] }), profile.isOrgAdmin && (_jsxs(_Fragment, { children: [_jsx("div", { className: 'dropdown-separator' }), _jsx("div", { className: 'dropdown-label', children: t('Site Administration') }), _jsxs(Item, { className: 'dropdown-item', onSelect: goto(`/${i18n.language}/users`), children: [_jsx(UsersIcon, { size: 16 }), _jsx("a", { href: `/${i18n.language}/users`, children: t('Users') })] }), _jsxs(Item, { className: 'dropdown-item', onSelect: goto(`/${i18n.language}/collections`), children: [_jsx(FolderIcon, { size: 16 }), _jsx("a", { href: `/${i18n.language}/collections`, children: t('Collections') })] }), _jsxs(Item, { className: 'dropdown-item', onSelect: goto(`/${i18n.language}/jobs`), children: [_jsx(ListChecksIcon, { size: 16 }), _jsx("a", { href: `/${i18n.language}/jobs`, children: t('Jobs') })] })] }))] })] }) })] }));
|
|
33
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/pages/_components/shared/components/AccountActions/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './AccountActions';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Comment.d.ts","sourceRoot":"","sources":["../../../../../../src/pages/_components/shared/components/Conversation/Comment.tsx"],"names":[],"mappings":"AAGA,UAAU,YAAY;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID,eAAO,MAAM,OAAO,GAAI,OAAO,YAAY,gCA0B1C,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { useTranslation } from 'react-i18next';
|
|
4
|
+
const CHAR_LIMIT = 140;
|
|
5
|
+
export const Comment = (props) => {
|
|
6
|
+
const { t } = useTranslation();
|
|
7
|
+
const [isExpanded, setIsExpanded] = useState(false);
|
|
8
|
+
const text = props.children || '';
|
|
9
|
+
const shouldTruncate = text.length > CHAR_LIMIT;
|
|
10
|
+
const truncatedText = text.slice(0, CHAR_LIMIT);
|
|
11
|
+
return (_jsxs("div", { className: 'comment-container', children: [_jsx("p", { className: 'comment-text', children: isExpanded ? text : shouldTruncate ? `${truncatedText}...` : text }), !isExpanded && shouldTruncate && _jsx("div", { className: 'comment-fade' }), shouldTruncate && (_jsx("button", { className: 'comment-toggle-btn', onClick: () => setIsExpanded(!isExpanded), children: isExpanded ? t('Read less') : t('Read more') }))] }));
|
|
12
|
+
};
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/* Conversation */
|
|
2
|
+
.conversation-section {
|
|
3
|
+
padding: 12px 8px;
|
|
4
|
+
border-bottom: 1px solid var(--border-light-color);
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.conversation-meta {
|
|
8
|
+
font-size: 12px;
|
|
9
|
+
display: flex;
|
|
10
|
+
gap: 6px;
|
|
11
|
+
align-items: center;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.conversation-meta .author {
|
|
15
|
+
font-weight: 500;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.conversation-meta .date {
|
|
19
|
+
color: var(--font-light);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.conversation-reply-area {
|
|
23
|
+
padding: 12px 8px;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.conversation-reply-wrapper {
|
|
27
|
+
position: relative;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.conversation-reply-input {
|
|
31
|
+
width: 100%;
|
|
32
|
+
background-color: var(--gray-50);
|
|
33
|
+
border: 1px solid var(--input-border-color);
|
|
34
|
+
border-radius: 6px;
|
|
35
|
+
padding: 8px 40px 8px 12px;
|
|
36
|
+
min-height: 40px;
|
|
37
|
+
resize: none;
|
|
38
|
+
font-size: 13px;
|
|
39
|
+
font-family: Inter, sans-serif;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.conversation-reply-submit {
|
|
43
|
+
position: absolute;
|
|
44
|
+
right: 6px;
|
|
45
|
+
bottom: 6px;
|
|
46
|
+
background: transparent;
|
|
47
|
+
color: var(--font-dark);
|
|
48
|
+
padding: 4px;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.conversation-reply-submit:hover {
|
|
52
|
+
color: var(--primary);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.comment-container {
|
|
56
|
+
position: relative;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.comment-text {
|
|
60
|
+
font-weight: 300;
|
|
61
|
+
padding: 4px 0;
|
|
62
|
+
line-height: 1.6;
|
|
63
|
+
font-size: 13px;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.comment-fade {
|
|
67
|
+
position: absolute;
|
|
68
|
+
bottom: 24px;
|
|
69
|
+
left: 0;
|
|
70
|
+
right: 0;
|
|
71
|
+
height: 24px;
|
|
72
|
+
background: linear-gradient(
|
|
73
|
+
to bottom,
|
|
74
|
+
rgba(255, 255, 255, 0),
|
|
75
|
+
rgba(255, 255, 255, 1)
|
|
76
|
+
);
|
|
77
|
+
pointer-events: none;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.comment-toggle-btn {
|
|
81
|
+
background: transparent;
|
|
82
|
+
border: none;
|
|
83
|
+
padding: 0;
|
|
84
|
+
font-size: 12px;
|
|
85
|
+
font-weight: 500;
|
|
86
|
+
cursor: pointer;
|
|
87
|
+
color: var(--gray-600);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.comment-toggle-btn:hover {
|
|
91
|
+
text-decoration: underline;
|
|
92
|
+
color: var(--gray-900);
|
|
93
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type Annotation } from '@annotorious/react';
|
|
2
|
+
interface ConversationProps {
|
|
3
|
+
annotation: Annotation;
|
|
4
|
+
isLocked?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare const Conversation: (props: ConversationProps) => import("react").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=Conversation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Conversation.d.ts","sourceRoot":"","sources":["../../../../../../src/pages/_components/shared/components/Conversation/Conversation.tsx"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAC;AAO5B,UAAU,iBAAiB;IACzB,UAAU,EAAE,UAAU,CAAC;IAGvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,YAAY,GAAI,OAAO,iBAAiB,gCAsGpD,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo, useState } from 'react';
|
|
3
|
+
import { ArrowRightIcon } from '@phosphor-icons/react';
|
|
4
|
+
import { createBody, useAnnotationStore, useAnnotatorUser, } from '@annotorious/react';
|
|
5
|
+
import { Avatar, Button } from '@recogito/studio-sdk/components';
|
|
6
|
+
import { Comment } from './Comment';
|
|
7
|
+
import { useTranslation } from 'react-i18next';
|
|
8
|
+
export const Conversation = (props) => {
|
|
9
|
+
const { t } = useTranslation();
|
|
10
|
+
const store = useAnnotationStore();
|
|
11
|
+
const currentUser = useAnnotatorUser();
|
|
12
|
+
const [replyText, setReplyText] = useState('');
|
|
13
|
+
const comments = useMemo(() => {
|
|
14
|
+
return (props.annotation.bodies || [])
|
|
15
|
+
.filter((b) => b.purpose === 'commenting' || b.purpose === 'replying')
|
|
16
|
+
.sort((a, b) => {
|
|
17
|
+
if (!a.created || !b.created)
|
|
18
|
+
return 0;
|
|
19
|
+
return a.created.getTime() - b.created.getTime();
|
|
20
|
+
});
|
|
21
|
+
}, [props.annotation]);
|
|
22
|
+
const onReplySubmit = () => {
|
|
23
|
+
if (!replyText.trim() || !store)
|
|
24
|
+
return;
|
|
25
|
+
const updated = {
|
|
26
|
+
...props.annotation,
|
|
27
|
+
bodies: [
|
|
28
|
+
...(props.annotation.bodies || []),
|
|
29
|
+
createBody(props.annotation, {
|
|
30
|
+
purpose: 'replying',
|
|
31
|
+
value: replyText.trim(),
|
|
32
|
+
creator: currentUser,
|
|
33
|
+
}),
|
|
34
|
+
],
|
|
35
|
+
};
|
|
36
|
+
store.updateAnnotation(updated);
|
|
37
|
+
setReplyText('');
|
|
38
|
+
};
|
|
39
|
+
const onKeyDown = (e) => {
|
|
40
|
+
if (e.key === 'Enter' && !e.shiftKey) {
|
|
41
|
+
e.preventDefault();
|
|
42
|
+
onReplySubmit();
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
return (_jsxs("div", { className: 'annotation', children: [comments.map((comment) => {
|
|
46
|
+
const authorName = comment.creator?.name || t('Unknown');
|
|
47
|
+
const dateStr = comment.created
|
|
48
|
+
? new Intl.DateTimeFormat('en-US', {
|
|
49
|
+
month: 'short',
|
|
50
|
+
day: 'numeric',
|
|
51
|
+
}).format(comment.created)
|
|
52
|
+
: t('Unknown date');
|
|
53
|
+
return (_jsxs("div", { className: 'annotation-section conversation-section', children: [_jsx("div", { className: 'annotation-header', children: _jsx("div", { className: 'annotation-header-left', children: _jsxs("div", { className: 'conversation-meta', children: [_jsx(Avatar, { id: comment.creator?.id || 'default', name: authorName, avatar: comment.creator?.avatar, size: 'sm' }), _jsx("span", { className: 'author', children: authorName }), _jsxs("span", { className: 'date', children: ["\u00B7 ", dateStr] })] }) }) }), _jsx(Comment, { children: comment.value })] }, comment.id));
|
|
54
|
+
}), !props.isLocked && (_jsx("div", { className: 'conversation-reply-area', children: _jsxs("div", { className: 'conversation-reply-wrapper', children: [_jsx("textarea", { id: 'conversation-reply', className: 'conversation-reply-input', placeholder: t('Add a reply...'), "aria-label": t('Add a reply...'), value: replyText, onChange: (e) => setReplyText(e.target.value), onKeyDown: onKeyDown }), _jsx(Button, { className: 'unstyled conversation-reply-submit', onClick: onReplySubmit, disabled: !replyText.trim(), "aria-label": t('Save reply'), children: _jsx(ArrowRightIcon, { size: 18, "aria-hidden": 'true' }) })] }) }))] }));
|
|
55
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/pages/_components/shared/components/Conversation/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Conversation';
|