@recogito/metaphor-annotation-plugin 0.0.0-stage → 0.0.11-beta.1
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,10 @@
|
|
|
1
|
+
import { type Context, type Document, type Project } from '@recogito/studio-sdk';
|
|
2
|
+
interface TeiMetaphorViewProps {
|
|
3
|
+
channelId: string;
|
|
4
|
+
context: Context;
|
|
5
|
+
document: Document;
|
|
6
|
+
project: Project;
|
|
7
|
+
}
|
|
8
|
+
export declare const TeiMetaphorView: (props: TeiMetaphorViewProps) => import("react").JSX.Element;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=TeiMetaphorView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TeiMetaphorView.d.ts","sourceRoot":"","sources":["../../../../src/pages/_components/TeiMetaphorView/TeiMetaphorView.tsx"],"names":[],"mappings":"AAgBA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,KAAK,OAAO,EACb,MAAM,sBAAsB,CAAC;AAU9B,UAAU,oBAAoB;IAC5B,SAAS,EAAE,MAAM,CAAC;IAElB,OAAO,EAAE,OAAO,CAAC;IAEjB,QAAQ,EAAE,QAAQ,CAAC;IAEnB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,eAAe,GAAI,OAAO,oBAAoB,gCAiH1D,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Annotorious } from '@annotorious/react';
|
|
3
|
+
import { useRef, useState } from 'react';
|
|
4
|
+
import { I18nextProvider } from 'react-i18next';
|
|
5
|
+
import { useStoredFileDocument } from '../shared/hooks/useStoredFileDocument';
|
|
6
|
+
import { AnnotatableTEI } from './components/AnnotatableTEI';
|
|
7
|
+
import { MetadataPanel } from './components/MetadataPanel';
|
|
8
|
+
import { useDocumentLayers } from '../shared/hooks/useDocumentLayers';
|
|
9
|
+
import { HideAllState, StorageAdapter } from '../shared/components';
|
|
10
|
+
import { useLayerPolicies } from '../shared/hooks/useLayerPolicies';
|
|
11
|
+
import { EditorToolbar } from '../shared/components/EditorToolbar';
|
|
12
|
+
import clientI18next from '../shared/i18n';
|
|
13
|
+
import { ColorCodingState } from './components/ColorCodingState';
|
|
14
|
+
import { AnnotationPanel, } from './components/AnnotationPanel';
|
|
15
|
+
import { AuthorColorProvider, FilterState, SelectionURLState, Spinner, UndoStack, } from '@recogito/studio-sdk/components';
|
|
16
|
+
export const TeiMetaphorView = (props) => {
|
|
17
|
+
const { context, document, project } = props;
|
|
18
|
+
const { layers, activeLayer } = useDocumentLayers(document.id, context.id);
|
|
19
|
+
const { content } = useStoredFileDocument(document.id);
|
|
20
|
+
const [metadataOpen, setMetadataOpen] = useState(true);
|
|
21
|
+
const metadataOpenButtonRef = useRef(null);
|
|
22
|
+
const [present, setPresent] = useState([]);
|
|
23
|
+
const [privacy, setPrivacy] = useState('public');
|
|
24
|
+
const onMetadataOpenChange = (open) => {
|
|
25
|
+
setMetadataOpen(open);
|
|
26
|
+
if (!open) {
|
|
27
|
+
metadataOpenButtonRef.current?.focus();
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
const [annotationTab, setAnnotationTab] = useState();
|
|
31
|
+
const annotationsOpenButtonRef = useRef(null);
|
|
32
|
+
const onAnnotationsOpenChange = (open) => {
|
|
33
|
+
setAnnotationTab(open ? 'list' : undefined);
|
|
34
|
+
if (!open) {
|
|
35
|
+
annotationsOpenButtonRef.current?.focus();
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
const policies = useLayerPolicies(activeLayer?.id);
|
|
39
|
+
const isLocked = Boolean(project.is_locked);
|
|
40
|
+
return (_jsx(I18nextProvider, { i18n: clientI18next, children: document.content_type !== 'text/xml' ? (_jsx("div", { className: 'view-unsupported', children: clientI18next.t('This document type is not supported in this view.') })) : document && content && activeLayer ? (_jsx(AuthorColorProvider, { children: _jsx(Annotorious, { children: _jsx(FilterState, { children: _jsx(ColorCodingState, { children: _jsx(HideAllState, { children: _jsxs("div", { id: 'metaphor-tei-root', children: [_jsx(MetadataPanel, { document: document, onOpenChange: onMetadataOpenChange, open: metadataOpen }), _jsxs("div", { id: 'main', children: [_jsx(EditorToolbar, { annotationsOpen: !!annotationTab, annotationsOpenButtonRef: annotationsOpenButtonRef, context: context, document: document, metadataOpen: metadataOpen, metadataOpenButtonRef: metadataOpenButtonRef, onAnnotationsOpenChange: onAnnotationsOpenChange, onMetadataOpenChange: onMetadataOpenChange, present: present, project: project, privacy: privacy, onChangePrivacy: setPrivacy }), _jsx(AnnotatableTEI, { document: document, content: content, isLocked: isLocked, activeLayerId: activeLayer.id, policies: policies, onFocusAnnotationPanel: setAnnotationTab }), _jsx(UndoStack, { undoEmpty: true }), _jsx(SelectionURLState, { backButton: true }), layers.length > 0 && (_jsx(StorageAdapter, { activeLayer: activeLayer, channelId: props.channelId, layers: layers, onPresence: setPresent, privacyMode: privacy === 'private' }))] }), _jsx(AnnotationPanel, { isLocked: isLocked, onStateChange: setAnnotationTab, projectId: project.id, tab: annotationTab })] }) }) }) }) }) })) : (_jsx("div", { className: 'spinner-container', children: _jsx(Spinner, { className: 'spinner', size: 32 }) })) }));
|
|
41
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Document, Policies } from '@recogito/studio-sdk';
|
|
2
|
+
import type { AnnotationPanelTab } from '../AnnotationPanel';
|
|
3
|
+
import '@recogito/text-annotator-plugin-inline-markers/style.css';
|
|
4
|
+
interface AnnotatableTEIProps {
|
|
5
|
+
content: string;
|
|
6
|
+
document: Document;
|
|
7
|
+
isLocked: boolean;
|
|
8
|
+
activeLayerId: string;
|
|
9
|
+
policies?: Policies;
|
|
10
|
+
onFocusAnnotationPanel(tab: AnnotationPanelTab): void;
|
|
11
|
+
}
|
|
12
|
+
export declare const AnnotatableTEI: (props: AnnotatableTEIProps) => import("react").JSX.Element;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=AnnotatableTEI.d.ts.map
|
package/dist/pages/_components/TeiMetaphorView/components/AnnotatableTEI/AnnotatableTEI.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnnotatableTEI.d.ts","sourceRoot":"","sources":["../../../../../../src/pages/_components/TeiMetaphorView/components/AnnotatableTEI/AnnotatableTEI.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAO/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,OAAO,0DAA0D,CAAC;AAElE,UAAU,mBAAmB;IAC3B,OAAO,EAAE,MAAM,CAAC;IAEhB,QAAQ,EAAE,QAAQ,CAAC;IAEnB,QAAQ,EAAE,OAAO,CAAC;IAElB,aAAa,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB,sBAAsB,CAAC,GAAG,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACvD;AAED,eAAO,MAAM,cAAc,GAAI,OAAO,mBAAmB,gCAiDxD,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useRef } from 'react';
|
|
3
|
+
import { useAnnotator } from '@annotorious/react';
|
|
4
|
+
import { CETEIcean, TEIAnnotator, } from '@recogito/react-text-annotator';
|
|
5
|
+
import { useAnnotationsStyle, useSuggestAnnotationType } from '../../hooks';
|
|
6
|
+
import { useFilter } from '@recogito/studio-sdk/components';
|
|
7
|
+
import { useHideAll } from '../../../shared/components';
|
|
8
|
+
import { useSelectAction } from '../../../shared/hooks/useSelectAction';
|
|
9
|
+
import { InlineMarkersPlugin } from '@recogito/text-annotator-plugin-inline-markers/react';
|
|
10
|
+
import { InlineToolbar } from '../InlineToolbar';
|
|
11
|
+
import '@recogito/text-annotator-plugin-inline-markers/style.css';
|
|
12
|
+
export const AnnotatableTEI = (props) => {
|
|
13
|
+
const style = useAnnotationsStyle(props.activeLayerId);
|
|
14
|
+
const { filter } = useFilter();
|
|
15
|
+
const { hideAll } = useHideAll();
|
|
16
|
+
// auto-assign a suggested type to each new annotation
|
|
17
|
+
useSuggestAnnotationType();
|
|
18
|
+
const anno = useAnnotator();
|
|
19
|
+
const annoRef = useRef(anno);
|
|
20
|
+
annoRef.current = anno;
|
|
21
|
+
// Creators and layer admins can edit, everyone else can only select
|
|
22
|
+
const selectAction = useSelectAction({
|
|
23
|
+
isLocked: props.isLocked,
|
|
24
|
+
activeLayerId: props.activeLayerId,
|
|
25
|
+
policies: props.policies,
|
|
26
|
+
getUser: () => annoRef.current?.getUser(),
|
|
27
|
+
});
|
|
28
|
+
// Set imperatively: <TEIAnnotator> only reads userSelectAction once, on
|
|
29
|
+
// creation. Re-setting also re-evaluates the current selection (e.g.
|
|
30
|
+
// once the policies have loaded).
|
|
31
|
+
useEffect(() => {
|
|
32
|
+
anno?.setUserSelectAction(selectAction);
|
|
33
|
+
}, [anno, selectAction]);
|
|
34
|
+
return (_jsx("main", { children: _jsxs(TEIAnnotator, { annotatingEnabled: !props.isLocked, filter: filter, hideAnnotations: hideAll, style: style, selectionMode: 'all', mergeHighlights: { horizontalTolerance: 24 }, children: [_jsx(InlineMarkersPlugin, {}), _jsx(CETEIcean, { tei: props.content }), _jsx(InlineToolbar, { onOpenListSidebar: () => props.onFocusAnnotationPanel('list'), onOpenSelectedSidebar: () => props.onFocusAnnotationPanel('selected') })] }) }));
|
|
35
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/pages/_components/TeiMetaphorView/components/AnnotatableTEI/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./AnnotatableTEI";
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/* AnnotationPanel */
|
|
2
|
+
.annotation-panel {
|
|
3
|
+
background-color: white;
|
|
4
|
+
border-left: 1px solid var(--gray-200);
|
|
5
|
+
transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
6
|
+
height: 100%;
|
|
7
|
+
display: flex;
|
|
8
|
+
flex-direction: column;
|
|
9
|
+
flex-shrink: 0;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.annotation-panel.open {
|
|
13
|
+
width: 320px;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.annotation-panel.closed {
|
|
17
|
+
width: 0;
|
|
18
|
+
border-left: none;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.annotation-panel-content {
|
|
22
|
+
width: 320px;
|
|
23
|
+
display: flex;
|
|
24
|
+
flex-direction: column;
|
|
25
|
+
flex-grow: 1;
|
|
26
|
+
overflow: hidden;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.annotation-panel-header {
|
|
30
|
+
background-color: white;
|
|
31
|
+
display: flex;
|
|
32
|
+
flex-flow: row nowrap;
|
|
33
|
+
align-items: center;
|
|
34
|
+
justify-content: space-between;
|
|
35
|
+
gap: 1rem;
|
|
36
|
+
padding: 0 1rem;
|
|
37
|
+
height: 4.25rem;
|
|
38
|
+
flex-shrink: 0;
|
|
39
|
+
border-bottom: 1px solid var(--gray-200);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.annotation-panel-title {
|
|
43
|
+
font-family: Poppins, sans-serif;
|
|
44
|
+
font-weight: 600;
|
|
45
|
+
margin: 0;
|
|
46
|
+
font-size: 16px;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.annotation-panel-tabs-root {
|
|
50
|
+
display: flex;
|
|
51
|
+
flex-direction: column;
|
|
52
|
+
flex-grow: 1;
|
|
53
|
+
min-height: 0;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.annotation-panel-tab-content[data-state='active'] {
|
|
57
|
+
display: flex;
|
|
58
|
+
flex-direction: column;
|
|
59
|
+
flex-grow: 1;
|
|
60
|
+
min-height: 0;
|
|
61
|
+
overflow-y: auto;
|
|
62
|
+
overflow-x: hidden;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.annotation-panel-tab-content[data-state='inactive'] {
|
|
66
|
+
display: none !important;
|
|
67
|
+
}
|
package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/AnnotationPanel.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export type AnnotationPanelTab = 'selected' | 'list' | 'settings';
|
|
2
|
+
interface AnnotationPanelProps {
|
|
3
|
+
isLocked: boolean;
|
|
4
|
+
projectId: string;
|
|
5
|
+
tab?: AnnotationPanelTab;
|
|
6
|
+
onStateChange(tab?: AnnotationPanelTab): void;
|
|
7
|
+
}
|
|
8
|
+
export declare const AnnotationPanel: (props: AnnotationPanelProps) => import("react").JSX.Element;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=AnnotationPanel.d.ts.map
|
package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/AnnotationPanel.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnnotationPanel.d.ts","sourceRoot":"","sources":["../../../../../../src/pages/_components/TeiMetaphorView/components/AnnotationPanel/AnnotationPanel.tsx"],"names":[],"mappings":"AAmBA,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC;AAElE,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAElB,SAAS,EAAE,MAAM,CAAC;IAElB,GAAG,CAAC,EAAE,kBAAkB,CAAC;IAEzB,aAAa,CAAC,GAAG,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;CAC/C;AAED,eAAO,MAAM,eAAe,GAAI,OAAO,oBAAoB,gCA4E1D,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { XIcon, CursorIcon, ChatsIcon, SlidersHorizontalIcon, } from '@phosphor-icons/react';
|
|
3
|
+
import { Button } from '@recogito/studio-sdk/components';
|
|
4
|
+
import { SelectedTab } from './SelectedTab';
|
|
5
|
+
import { ListTab } from './ListTab';
|
|
6
|
+
import { SettingsTab } from './SettingsTab';
|
|
7
|
+
import { Tabs, TabsList, TabsTrigger, TabsContent, } from '../../../shared/components';
|
|
8
|
+
import { useTranslation } from 'react-i18next';
|
|
9
|
+
import { useTagVocabulary, useMrwOptions } from '../../hooks';
|
|
10
|
+
export const AnnotationPanel = (props) => {
|
|
11
|
+
const { t } = useTranslation();
|
|
12
|
+
const tagVocabulary = useTagVocabulary(props.projectId);
|
|
13
|
+
const mrwOptions = useMrwOptions();
|
|
14
|
+
return (_jsx("div", { className: `annotation-panel ${props.tab ? 'open' : 'closed'}`, inert: !props.tab, children: _jsxs("div", { className: 'annotation-panel-content', children: [_jsxs("div", { className: 'annotation-panel-header', children: [_jsx("h3", { className: 'annotation-panel-title', children: t('Annotations') }), _jsx(Button, { className: 'unstyled toolbar-btn icon-only', onClick: () => props.onStateChange(undefined), "aria-label": t('Close sidebar'), children: _jsx(XIcon, { weight: 'bold', "aria-hidden": 'true' }) })] }), _jsxs(Tabs, { value: props.tab || 'selected', onValueChange: (val) => props.onStateChange(val), className: 'annotation-panel-tabs-root', children: [_jsxs(TabsList, { children: [_jsxs(TabsTrigger, { value: 'selected', children: [_jsx(CursorIcon, { weight: 'bold', "aria-hidden": 'true' }), _jsx("span", { className: 'tab-label', children: t('Selected') })] }), _jsxs(TabsTrigger, { value: 'list', children: [_jsx(ChatsIcon, { weight: 'bold', "aria-hidden": 'true' }), _jsx("span", { className: 'tab-label', children: t('List') })] }), _jsxs(TabsTrigger, { value: 'settings', children: [_jsx(SlidersHorizontalIcon, { weight: 'bold', "aria-hidden": 'true' }), _jsx("span", { className: 'tab-label', children: t('Settings') })] })] }), _jsx(TabsContent, { value: 'selected', className: 'annotation-panel-tab-content', children: _jsx(SelectedTab, { isLocked: props.isLocked, tagVocabulary: tagVocabulary, mrwOptions: mrwOptions }) }), _jsx(TabsContent, { value: 'list', className: 'annotation-panel-tab-content list-tab-container', children: _jsx(ListTab, { onStateChange: props.onStateChange }) }), _jsx(TabsContent, { value: 'settings', className: 'annotation-panel-tab-content', children: _jsx(SettingsTab, {}) })] })] }) }));
|
|
15
|
+
};
|
package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/ListTab/ListCard.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type SupabaseAnnotation } from '@recogito/annotorious-supabase';
|
|
2
|
+
interface ListCardProps {
|
|
3
|
+
annotation: SupabaseAnnotation;
|
|
4
|
+
linked: SupabaseAnnotation[];
|
|
5
|
+
selected: boolean;
|
|
6
|
+
emphasize: boolean;
|
|
7
|
+
deemphasize: boolean;
|
|
8
|
+
onToggleSelect: () => void;
|
|
9
|
+
onOpenComments: () => void;
|
|
10
|
+
}
|
|
11
|
+
export declare const ListCard: (props: ListCardProps) => import("react").JSX.Element;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=ListCard.d.ts.map
|
package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/ListTab/ListCard.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListCard.d.ts","sourceRoot":"","sources":["../../../../../../../src/pages/_components/TeiMetaphorView/components/AnnotationPanel/ListTab/ListCard.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,gCAAgC,CAAC;AAWxC,UAAU,aAAa;IACrB,UAAU,EAAE,kBAAkB,CAAC;IAE/B,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAE7B,QAAQ,EAAE,OAAO,CAAC;IAElB,SAAS,EAAE,OAAO,CAAC;IAEnB,WAAW,EAAE,OAAO,CAAC;IAErB,cAAc,EAAE,MAAM,IAAI,CAAC;IAE3B,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,eAAO,MAAM,QAAQ,GAAI,OAAO,aAAa,gCAiI5C,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo } from 'react';
|
|
3
|
+
import { useTranslation } from 'react-i18next';
|
|
4
|
+
import { Visibility, } from '@recogito/annotorious-supabase';
|
|
5
|
+
import { ChatTeardropTextIcon, LockIcon } from '@phosphor-icons/react';
|
|
6
|
+
import { Avatar } from '@recogito/studio-sdk/components';
|
|
7
|
+
import { getTags } from '@recogito/studio-sdk';
|
|
8
|
+
import { getAnnotationType, interleaveLinkedAnnotations, timeAgo, } from '../../../utils';
|
|
9
|
+
export const ListCard = (props) => {
|
|
10
|
+
const { t, i18n } = useTranslation();
|
|
11
|
+
const { annotation, linked, selected, emphasize, deemphasize, onToggleSelect, onOpenComments, } = props;
|
|
12
|
+
const type = getAnnotationType(annotation);
|
|
13
|
+
const creator = annotation.target.creator;
|
|
14
|
+
const creatorName = creator?.name || t('Unknown User');
|
|
15
|
+
const timestamp = timeAgo(annotation.target.created || new Date(), i18n.language);
|
|
16
|
+
const tags = useMemo(() => getTags(annotation), [annotation.bodies]);
|
|
17
|
+
const isPrivate = annotation.visibility === Visibility.PRIVATE;
|
|
18
|
+
const commentCount = useMemo(() => annotation.bodies.filter((b) => b.purpose === 'commenting' || b.purpose === 'replying').length, [annotation.bodies]);
|
|
19
|
+
const renderQuote = () => {
|
|
20
|
+
const tokens = interleaveLinkedAnnotations(annotation, linked);
|
|
21
|
+
return (_jsx("div", { className: 'list-card-quote-text', children: tokens.map(({ value, type }, idx) => (_jsx("span", { className: type === 'word' ? 'highlight-word' : '', children: value }, idx))) }));
|
|
22
|
+
};
|
|
23
|
+
const cardClass = [
|
|
24
|
+
'list-card',
|
|
25
|
+
type === 'mrw' ? 'is-mrw' : '',
|
|
26
|
+
emphasize ? 'is-emphasized' : '',
|
|
27
|
+
deemphasize ? 'is-deemphasized' : '',
|
|
28
|
+
]
|
|
29
|
+
.filter(Boolean)
|
|
30
|
+
.join(' ');
|
|
31
|
+
return (_jsxs("div", { className: cardClass, children: [_jsx("button", { type: 'button', className: 'unstyled list-card-select', "aria-pressed": selected, "aria-label": t('Select Annotation'), onClick: onToggleSelect }), _jsxs("div", { className: 'list-card-content', children: [tags.length > 0 && (_jsx("div", { className: 'list-card-tags', children: tags.map((tag, idx) => (_jsxs("div", { className: 'list-card-tag', children: [_jsx("div", { className: 'list-card-tag-dot' }), _jsx("span", { children: tag.label })] }, `${tag.id || tag.label}-${idx}`))) })), _jsx("div", { className: 'list-card-quote-box', children: renderQuote() }), _jsxs("div", { className: 'list-card-footer', children: [_jsxs("div", { className: 'list-card-meta', children: [_jsx(Avatar, { id: creator?.id || 'unknown', name: creatorName, avatar: creator?.avatar, size: 'sm' }), _jsx("span", { className: 'list-card-author', children: creatorName }), _jsxs("span", { className: 'list-card-date', children: ["\u00B7 ", timestamp] })] }), _jsxs("div", { className: 'list-card-footer-actions', children: [commentCount > 0 && (_jsxs("button", { type: 'button', className: 'unstyled list-card-comments', "aria-label": t('Comments'), onClick: onOpenComments, children: [_jsx(ChatTeardropTextIcon, { size: 14, weight: 'bold', "aria-hidden": 'true' }), _jsx("span", { children: commentCount })] })), isPrivate && (_jsx("span", { className: 'list-card-private', "aria-label": t('Private'), title: t('Private'), children: _jsx(LockIcon, { size: 14, weight: 'bold' }) }))] })] })] })] }));
|
|
32
|
+
};
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
.list-tab-container {
|
|
2
|
+
padding: 8px;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.list-header {
|
|
6
|
+
display: flex;
|
|
7
|
+
justify-content: space-between;
|
|
8
|
+
align-items: center;
|
|
9
|
+
color: var(--font-light, #6b7280);
|
|
10
|
+
margin-bottom: 12px;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.list-header-group {
|
|
14
|
+
display: flex;
|
|
15
|
+
align-items: center;
|
|
16
|
+
gap: 8px;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
button.list-select-trigger {
|
|
20
|
+
display: flex;
|
|
21
|
+
align-items: center;
|
|
22
|
+
gap: 4px;
|
|
23
|
+
font-size: 12px;
|
|
24
|
+
padding: 2px 8px;
|
|
25
|
+
cursor: pointer;
|
|
26
|
+
color: var(--font-light, #6b7280);
|
|
27
|
+
transition: color 0.15s ease;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
button.list-select-trigger:hover {
|
|
31
|
+
color: var(--font-dark, #111827);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.list-select-content {
|
|
35
|
+
background-color: white;
|
|
36
|
+
border-radius: 6px;
|
|
37
|
+
box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.1);
|
|
38
|
+
padding: 4px;
|
|
39
|
+
font-size: 12px;
|
|
40
|
+
border: 1px solid var(--gray-200, #e5e7eb);
|
|
41
|
+
z-index: 50;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.list-select-item {
|
|
45
|
+
display: flex;
|
|
46
|
+
align-items: center;
|
|
47
|
+
padding: 6px 24px 6px 8px;
|
|
48
|
+
position: relative;
|
|
49
|
+
border-radius: 4px;
|
|
50
|
+
cursor: default;
|
|
51
|
+
outline: none;
|
|
52
|
+
color: var(--font-dark, #111827);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.list-select-item:hover,
|
|
56
|
+
.list-select-item[data-highlighted] {
|
|
57
|
+
background-color: var(--gray-100, #f3f4f6);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.list-select-indicator {
|
|
61
|
+
position: absolute;
|
|
62
|
+
right: 6px;
|
|
63
|
+
display: flex;
|
|
64
|
+
align-items: center;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.list-search-icon {
|
|
68
|
+
margin-right: 2px;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.list-cards-wrapper {
|
|
72
|
+
display: flex;
|
|
73
|
+
flex-direction: column;
|
|
74
|
+
gap: 16px;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.list-card {
|
|
78
|
+
position: relative;
|
|
79
|
+
padding: 2px;
|
|
80
|
+
border-radius: 8px;
|
|
81
|
+
background-color: white;
|
|
82
|
+
border: 1px solid var(--gray-200, #e5e7eb);
|
|
83
|
+
transition: all 0.2s ease;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.list-card:hover {
|
|
87
|
+
border-color: var(--gray-300, #d1d5db);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.list-card-select {
|
|
91
|
+
position: absolute;
|
|
92
|
+
inset: 0;
|
|
93
|
+
z-index: 1;
|
|
94
|
+
width: 100%;
|
|
95
|
+
height: auto;
|
|
96
|
+
border-radius: inherit;
|
|
97
|
+
background-color: transparent;
|
|
98
|
+
transition: background-color 0.15s ease;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.list-card .list-card-select:not(:disabled):hover {
|
|
102
|
+
background-color: rgba(0, 0, 0, 0.06);
|
|
103
|
+
box-shadow: none;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.list-card-select:focus-visible {
|
|
107
|
+
outline: 2px solid var(--bright-blue, #2563eb);
|
|
108
|
+
outline-offset: -2px;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.list-card.is-mrw {
|
|
112
|
+
background-color: rgba(22, 163, 74, 0.15);
|
|
113
|
+
border-color: rgba(22, 163, 74, 0.3);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.list-card.is-emphasized {
|
|
117
|
+
box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.35);
|
|
118
|
+
border-color: transparent;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.list-card.is-deemphasized {
|
|
122
|
+
opacity: 0.5;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.list-card-content {
|
|
126
|
+
padding: 8px;
|
|
127
|
+
display: flex;
|
|
128
|
+
flex-direction: column;
|
|
129
|
+
gap: 12px;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.list-card-tags {
|
|
133
|
+
display: flex;
|
|
134
|
+
flex-wrap: wrap;
|
|
135
|
+
gap: 8px;
|
|
136
|
+
font-size: 11px;
|
|
137
|
+
color: var(--font-light, #6b7280);
|
|
138
|
+
font-weight: 300;
|
|
139
|
+
padding: 2px;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.list-card-tag {
|
|
143
|
+
display: flex;
|
|
144
|
+
align-items: center;
|
|
145
|
+
gap: 4px;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.list-card-tag-dot {
|
|
149
|
+
width: 8px;
|
|
150
|
+
height: 8px;
|
|
151
|
+
border-radius: 50%;
|
|
152
|
+
background-color: var(--purple-500, #a855f7);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
.list-card-quote-box {
|
|
156
|
+
font-family: ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif;
|
|
157
|
+
font-style: italic;
|
|
158
|
+
font-weight: 300;
|
|
159
|
+
padding: 10px;
|
|
160
|
+
background-color: var(--gray-100, #f3f4f6);
|
|
161
|
+
border-radius: 6px;
|
|
162
|
+
line-height: 1.625;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
.list-card-quote-text {
|
|
166
|
+
font-size: 14px;
|
|
167
|
+
color: var(--font-dark, #111827);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.highlight-word {
|
|
171
|
+
background-color: var(--pink-200, #fbcfe8);
|
|
172
|
+
padding: 2px 4px;
|
|
173
|
+
border-radius: 4px;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
.list-card-footer {
|
|
177
|
+
position: relative;
|
|
178
|
+
padding: 2px;
|
|
179
|
+
display: flex;
|
|
180
|
+
justify-content: space-between;
|
|
181
|
+
align-items: flex-end;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
.list-card-meta {
|
|
185
|
+
display: flex;
|
|
186
|
+
align-items: center;
|
|
187
|
+
gap: 6px;
|
|
188
|
+
font-size: 12px;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
.list-card-author {
|
|
192
|
+
font-weight: 500;
|
|
193
|
+
color: var(--font-dark, #111827);
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
.list-card-date {
|
|
197
|
+
color: var(--font-light, #6b7280);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
.list-card-footer-actions {
|
|
201
|
+
position: absolute;
|
|
202
|
+
bottom: -2px;
|
|
203
|
+
right: 2px;
|
|
204
|
+
z-index: 2;
|
|
205
|
+
display: flex;
|
|
206
|
+
align-items: center;
|
|
207
|
+
gap: 10px;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
.list-card-comments {
|
|
211
|
+
display: flex;
|
|
212
|
+
align-items: center;
|
|
213
|
+
gap: 4px;
|
|
214
|
+
font-size: 12px;
|
|
215
|
+
font-weight: 500;
|
|
216
|
+
color: var(--font-light, #6b7280);
|
|
217
|
+
cursor: pointer;
|
|
218
|
+
transition: color 0.15s ease;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
.list-card-footer-actions .list-card-comments:not(:disabled):hover {
|
|
222
|
+
color: var(--bright-blue, #2563eb);
|
|
223
|
+
box-shadow: none;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
.list-card-private {
|
|
227
|
+
display: flex;
|
|
228
|
+
align-items: center;
|
|
229
|
+
color: var(--font-light, #6b7280);
|
|
230
|
+
}
|
package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/ListTab/ListTab.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { AnnotationPanelTab } from '../AnnotationPanel';
|
|
2
|
+
interface ListTabProps {
|
|
3
|
+
onStateChange(tab: AnnotationPanelTab): void;
|
|
4
|
+
}
|
|
5
|
+
export declare const ListTab: (props: ListTabProps) => import("react").JSX.Element;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=ListTab.d.ts.map
|
package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/ListTab/ListTab.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListTab.d.ts","sourceRoot":"","sources":["../../../../../../../src/pages/_components/TeiMetaphorView/components/AnnotationPanel/ListTab/ListTab.tsx"],"names":[],"mappings":"AAwBA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,UAAU,YAAY;IACpB,aAAa,CAAC,GAAG,EAAE,kBAAkB,GAAG,IAAI,CAAC;CAC9C;AAED,eAAO,MAAM,OAAO,GAAI,OAAO,YAAY,gCAgP1C,CAAC"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo, useState } from 'react';
|
|
3
|
+
import { useTranslation } from 'react-i18next';
|
|
4
|
+
import { useAnnotations, useSelection, useViewportState, useAnnotator, } from '@annotorious/react';
|
|
5
|
+
import * as Select from '@radix-ui/react-select';
|
|
6
|
+
import * as Tooltip from '@radix-ui/react-tooltip';
|
|
7
|
+
import { CaretDownIcon, CheckIcon, SortAscendingIcon, SortDescendingIcon, } from '@phosphor-icons/react';
|
|
8
|
+
import { getAnnotationType, sortAnnotationsByCharPosition, } from '../../../utils';
|
|
9
|
+
import { useFilter } from '@recogito/studio-sdk/components';
|
|
10
|
+
import { ListCard } from './ListCard';
|
|
11
|
+
export const ListTab = (props) => {
|
|
12
|
+
const { t } = useTranslation();
|
|
13
|
+
const [sortBy, setSortBy] = useState('natural');
|
|
14
|
+
const [sortDirection, setSortDirection] = useState('asc');
|
|
15
|
+
const [viewportFilter, setViewportFilter] = useState('all');
|
|
16
|
+
const anno = useAnnotator();
|
|
17
|
+
const allAnnotations = useAnnotations(250);
|
|
18
|
+
const visibleAnnotations = useViewportState(250);
|
|
19
|
+
const { selected } = useSelection();
|
|
20
|
+
const hasSelection = selected.length > 0;
|
|
21
|
+
const isSelected = (annotation) => selected.some((t) => t.annotation.id === annotation.id);
|
|
22
|
+
const { filter } = useFilter();
|
|
23
|
+
// Toggle which array we process based on the dropdown, then apply
|
|
24
|
+
// the same filter that controls highlight visibility
|
|
25
|
+
const unfiltered = viewportFilter === 'viewport' ? visibleAnnotations : allAnnotations;
|
|
26
|
+
const activeAnnotations = filter ? unfiltered.filter(filter) : unfiltered;
|
|
27
|
+
const grouped = useMemo(() => {
|
|
28
|
+
const metaphors = activeAnnotations.filter((a) => getAnnotationType(a) === 'metaphor');
|
|
29
|
+
const words = activeAnnotations.filter((a) => getAnnotationType(a) === 'mrw');
|
|
30
|
+
const linkedWordIds = new Set(metaphors.reduce((ids, metaphor) => {
|
|
31
|
+
const linkedIds = metaphor.bodies
|
|
32
|
+
.filter((b) => b.purpose === 'linking' && b.value)
|
|
33
|
+
.map((b) => b.value);
|
|
34
|
+
return [...ids, ...linkedIds];
|
|
35
|
+
}, []));
|
|
36
|
+
let rootAnnotations = [
|
|
37
|
+
...metaphors,
|
|
38
|
+
...words.filter((a) => !linkedWordIds.has(a.id)),
|
|
39
|
+
];
|
|
40
|
+
// sort
|
|
41
|
+
if (sortBy === 'natural') {
|
|
42
|
+
rootAnnotations = sortAnnotationsByCharPosition(rootAnnotations);
|
|
43
|
+
}
|
|
44
|
+
else if (sortBy === 'created') {
|
|
45
|
+
rootAnnotations.sort((a, b) => {
|
|
46
|
+
const dateA = a.target.created?.getTime() || 0;
|
|
47
|
+
const dateB = b.target.created?.getTime() || 0;
|
|
48
|
+
return dateA - dateB;
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
else if (sortBy === 'updated') {
|
|
52
|
+
// find the most recent date between the target creation and all bodies (comments/replies)
|
|
53
|
+
const getLatestDate = (a) => {
|
|
54
|
+
const dates = [
|
|
55
|
+
a.target.created?.getTime() || 0,
|
|
56
|
+
...a.bodies.map((b) => b.created?.getTime() || 0),
|
|
57
|
+
];
|
|
58
|
+
return Math.max(...dates);
|
|
59
|
+
};
|
|
60
|
+
rootAnnotations.sort((a, b) => getLatestDate(a) - getLatestDate(b));
|
|
61
|
+
}
|
|
62
|
+
// sort direction
|
|
63
|
+
if (sortDirection === 'desc') {
|
|
64
|
+
rootAnnotations.reverse();
|
|
65
|
+
}
|
|
66
|
+
const getLinkedAnnotations = (annotation) => {
|
|
67
|
+
const linkedIds = annotation.bodies
|
|
68
|
+
.filter((b) => b.purpose === 'linking' && b.value)
|
|
69
|
+
.map((b) => b.value);
|
|
70
|
+
return linkedIds
|
|
71
|
+
.map((id) => activeAnnotations.find((a) => a.id === id))
|
|
72
|
+
.filter(Boolean);
|
|
73
|
+
};
|
|
74
|
+
return rootAnnotations.map((root) => [root, getLinkedAnnotations(root)]);
|
|
75
|
+
}, [activeAnnotations, sortBy, sortDirection]);
|
|
76
|
+
const handleToggleSelect = (annotation) => {
|
|
77
|
+
if (!anno)
|
|
78
|
+
return;
|
|
79
|
+
if (isSelected(annotation)) {
|
|
80
|
+
anno.state.selection.clear();
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
anno.state.selection.setSelected(annotation.id);
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
const handleOpenComments = (annotationId) => {
|
|
87
|
+
if (anno) {
|
|
88
|
+
anno.state.selection.setSelected(annotationId);
|
|
89
|
+
props.onStateChange('selected');
|
|
90
|
+
setTimeout(() => {
|
|
91
|
+
window.dispatchEvent(new CustomEvent('request-focus-conversation', {
|
|
92
|
+
detail: annotationId,
|
|
93
|
+
}));
|
|
94
|
+
}, 150);
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
return (_jsxs(_Fragment, { children: [_jsxs("header", { className: 'list-header', children: [_jsxs("div", { className: 'list-header-group', children: [_jsx(Tooltip.Provider, { children: _jsxs(Tooltip.Root, { children: [_jsx(Tooltip.Trigger, { asChild: true, children: _jsx("button", { className: 'unstyled toolbar-btn icon-only', "aria-label": t('Toggle sort direction'), onClick: () => setSortDirection((prev) => prev === 'asc' ? 'desc' : 'asc'), children: sortDirection === 'asc' ? (_jsx(SortAscendingIcon, {})) : (_jsx(SortDescendingIcon, {})) }) }), _jsx(Tooltip.Portal, { children: _jsxs(Tooltip.Content, { side: 'top', className: 'tooltip-content', children: [sortDirection === 'asc'
|
|
98
|
+
? t('Sort descending')
|
|
99
|
+
: t('Sort ascending'), _jsx(Tooltip.Arrow, { className: 'tooltip-arrow' })] }) })] }) }), _jsxs(Select.Root, { value: sortBy, onValueChange: (v) => setSortBy(v), children: [_jsxs(Select.Trigger, { className: 'unstyled list-select-trigger', children: [_jsx(Select.Value, {}), _jsx(Select.Icon, { children: _jsx(CaretDownIcon, { size: 12 }) })] }), _jsx(Select.Portal, { children: _jsx(Select.Content, { className: 'list-select-content', position: 'popper', sideOffset: 4, children: _jsxs(Select.Viewport, { children: [_jsxs(Select.Item, { value: 'natural', className: 'list-select-item', children: [_jsx(Select.ItemText, { children: t('Text order') }), _jsx(Select.ItemIndicator, { className: 'list-select-indicator', children: _jsx(CheckIcon, { size: 14 }) })] }), _jsxs(Select.Item, { value: 'created', className: 'list-select-item', children: [_jsx(Select.ItemText, { children: t('Created') }), _jsx(Select.ItemIndicator, { className: 'list-select-indicator', children: _jsx(CheckIcon, { size: 14 }) })] }), _jsxs(Select.Item, { value: 'updated', className: 'list-select-item', children: [_jsx(Select.ItemText, { children: t('Updated') }), _jsx(Select.ItemIndicator, { className: 'list-select-indicator', children: _jsx(CheckIcon, { size: 14 }) })] })] }) }) })] })] }), _jsx("div", { className: 'list-header-group', children: _jsxs(Select.Root, { value: viewportFilter, onValueChange: (v) => setViewportFilter(v), children: [_jsxs(Select.Trigger, { className: 'unstyled list-select-trigger', children: [_jsx(Select.Value, {}), _jsx(Select.Icon, { children: _jsx(CaretDownIcon, { size: 12 }) })] }), _jsx(Select.Portal, { children: _jsx(Select.Content, { className: 'list-select-content', position: 'popper', sideOffset: 4, children: _jsxs(Select.Viewport, { children: [_jsxs(Select.Item, { value: 'all', className: 'list-select-item', children: [_jsx(Select.ItemText, { children: t('Show all') }), _jsx(Select.ItemIndicator, { className: 'list-select-indicator', children: _jsx(CheckIcon, { size: 14 }) })] }), _jsxs(Select.Item, { value: 'viewport', className: 'list-select-item', children: [_jsx(Select.ItemText, { children: t('Current viewport') }), _jsx(Select.ItemIndicator, { className: 'list-select-indicator', children: _jsx(CheckIcon, { size: 14 }) })] })] }) }) })] }) })] }), _jsx("div", { className: 'list-cards-wrapper', children: grouped.map(([root, linked]) => (_jsx(ListCard, { annotation: root, linked: linked, selected: isSelected(root), emphasize: hasSelection && isSelected(root), deemphasize: hasSelection && !isSelected(root), onToggleSelect: () => handleToggleSelect(root), onOpenComments: () => handleOpenComments(root.id) }, root.id))) })] }));
|
|
100
|
+
};
|
package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/ListTab/index.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/pages/_components/TeiMetaphorView/components/AnnotationPanel/ListTab/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ListTab';
|