@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.
Files changed (382) hide show
  1. package/README.md +102 -2
  2. package/dist/extensions/GoToMetaphorAnnotationView.d.ts +3 -0
  3. package/dist/extensions/GoToMetaphorAnnotationView.d.ts.map +1 -0
  4. package/dist/extensions/GoToMetaphorAnnotationView.js +14 -0
  5. package/dist/index.d.ts +4 -0
  6. package/dist/index.d.ts.map +1 -0
  7. package/dist/index.js +37 -0
  8. package/dist/pages/_components/ImageMetaphorView/ImageMetaphorView.css +22 -0
  9. package/dist/pages/_components/ImageMetaphorView/ImageMetaphorView.d.ts +10 -0
  10. package/dist/pages/_components/ImageMetaphorView/ImageMetaphorView.d.ts.map +1 -0
  11. package/dist/pages/_components/ImageMetaphorView/ImageMetaphorView.js +136 -0
  12. package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/AnnotationPanel.d.ts +9 -0
  13. package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/AnnotationPanel.d.ts.map +1 -0
  14. package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/AnnotationPanel.js +12 -0
  15. package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/ListTab/ImageListCard.d.ts +11 -0
  16. package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/ListTab/ImageListCard.d.ts.map +1 -0
  17. package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/ListTab/ImageListCard.js +37 -0
  18. package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/ListTab/ListTab.d.ts +2 -0
  19. package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/ListTab/ListTab.d.ts.map +1 -0
  20. package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/ListTab/ListTab.js +70 -0
  21. package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/ListTab/index.d.ts +2 -0
  22. package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/ListTab/index.d.ts.map +1 -0
  23. package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/ListTab/index.js +1 -0
  24. package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/SelectedTab/SelectedArrowAnnotation.d.ts +8 -0
  25. package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/SelectedTab/SelectedArrowAnnotation.d.ts.map +1 -0
  26. package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/SelectedTab/SelectedArrowAnnotation.js +20 -0
  27. package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/SelectedTab/SelectedImageAnnotation.d.ts +9 -0
  28. package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/SelectedTab/SelectedImageAnnotation.d.ts.map +1 -0
  29. package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/SelectedTab/SelectedImageAnnotation.js +25 -0
  30. package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/SelectedTab/SelectedTab.d.ts +6 -0
  31. package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/SelectedTab/SelectedTab.d.ts.map +1 -0
  32. package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/SelectedTab/SelectedTab.js +16 -0
  33. package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/SelectedTab/index.d.ts +2 -0
  34. package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/SelectedTab/index.d.ts.map +1 -0
  35. package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/SelectedTab/index.js +1 -0
  36. package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/SettingsTab/SettingsTab.d.ts +2 -0
  37. package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/SettingsTab/SettingsTab.d.ts.map +1 -0
  38. package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/SettingsTab/SettingsTab.js +10 -0
  39. package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/SettingsTab/index.d.ts +2 -0
  40. package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/SettingsTab/index.d.ts.map +1 -0
  41. package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/SettingsTab/index.js +1 -0
  42. package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/index.d.ts +2 -0
  43. package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/index.d.ts.map +1 -0
  44. package/dist/pages/_components/ImageMetaphorView/components/AnnotationPanel/index.js +1 -0
  45. package/dist/pages/_components/ImageMetaphorView/components/ArrowToolbar/ArrowToolbar.d.ts +3 -0
  46. package/dist/pages/_components/ImageMetaphorView/components/ArrowToolbar/ArrowToolbar.d.ts.map +1 -0
  47. package/dist/pages/_components/ImageMetaphorView/components/ArrowToolbar/ArrowToolbar.js +27 -0
  48. package/dist/pages/_components/ImageMetaphorView/components/ArrowToolbar/index.d.ts +2 -0
  49. package/dist/pages/_components/ImageMetaphorView/components/ArrowToolbar/index.d.ts.map +1 -0
  50. package/dist/pages/_components/ImageMetaphorView/components/ArrowToolbar/index.js +1 -0
  51. package/dist/pages/_components/ImageMetaphorView/components/FilterAdapter/FilterAdapter.d.ts +9 -0
  52. package/dist/pages/_components/ImageMetaphorView/components/FilterAdapter/FilterAdapter.d.ts.map +1 -0
  53. package/dist/pages/_components/ImageMetaphorView/components/FilterAdapter/FilterAdapter.js +23 -0
  54. package/dist/pages/_components/ImageMetaphorView/components/FilterAdapter/index.d.ts +2 -0
  55. package/dist/pages/_components/ImageMetaphorView/components/FilterAdapter/index.d.ts.map +1 -0
  56. package/dist/pages/_components/ImageMetaphorView/components/FilterAdapter/index.js +1 -0
  57. package/dist/pages/_components/ImageMetaphorView/components/HoverTooltip/HoverTooltip.d.ts +11 -0
  58. package/dist/pages/_components/ImageMetaphorView/components/HoverTooltip/HoverTooltip.d.ts.map +1 -0
  59. package/dist/pages/_components/ImageMetaphorView/components/HoverTooltip/HoverTooltip.js +16 -0
  60. package/dist/pages/_components/ImageMetaphorView/components/HoverTooltip/index.d.ts +2 -0
  61. package/dist/pages/_components/ImageMetaphorView/components/HoverTooltip/index.d.ts.map +1 -0
  62. package/dist/pages/_components/ImageMetaphorView/components/HoverTooltip/index.js +1 -0
  63. package/dist/pages/_components/ImageMetaphorView/components/ImageArrows/ImageArrows.d.ts +13 -0
  64. package/dist/pages/_components/ImageMetaphorView/components/ImageArrows/ImageArrows.d.ts.map +1 -0
  65. package/dist/pages/_components/ImageMetaphorView/components/ImageArrows/ImageArrows.js +42 -0
  66. package/dist/pages/_components/ImageMetaphorView/components/ImageArrows/index.d.ts +2 -0
  67. package/dist/pages/_components/ImageMetaphorView/components/ImageArrows/index.d.ts.map +1 -0
  68. package/dist/pages/_components/ImageMetaphorView/components/ImageArrows/index.js +1 -0
  69. package/dist/pages/_components/ImageMetaphorView/components/ImageUndoStack/ImageUndoStack.d.ts +7 -0
  70. package/dist/pages/_components/ImageMetaphorView/components/ImageUndoStack/ImageUndoStack.d.ts.map +1 -0
  71. package/dist/pages/_components/ImageMetaphorView/components/ImageUndoStack/ImageUndoStack.js +22 -0
  72. package/dist/pages/_components/ImageMetaphorView/components/ImageUndoStack/index.d.ts +2 -0
  73. package/dist/pages/_components/ImageMetaphorView/components/ImageUndoStack/index.d.ts.map +1 -0
  74. package/dist/pages/_components/ImageMetaphorView/components/ImageUndoStack/index.js +1 -0
  75. package/dist/pages/_components/ImageMetaphorView/components/MetadataPanel/Contents.d.ts +14 -0
  76. package/dist/pages/_components/ImageMetaphorView/components/MetadataPanel/Contents.d.ts.map +1 -0
  77. package/dist/pages/_components/ImageMetaphorView/components/MetadataPanel/Contents.js +36 -0
  78. package/dist/pages/_components/ImageMetaphorView/components/MetadataPanel/Info.d.ts +9 -0
  79. package/dist/pages/_components/ImageMetaphorView/components/MetadataPanel/Info.d.ts.map +1 -0
  80. package/dist/pages/_components/ImageMetaphorView/components/MetadataPanel/Info.js +35 -0
  81. package/dist/pages/_components/ImageMetaphorView/components/MetadataPanel/MetadataPanel.css +96 -0
  82. package/dist/pages/_components/ImageMetaphorView/components/MetadataPanel/MetadataPanel.d.ts +18 -0
  83. package/dist/pages/_components/ImageMetaphorView/components/MetadataPanel/MetadataPanel.d.ts.map +1 -0
  84. package/dist/pages/_components/ImageMetaphorView/components/MetadataPanel/MetadataPanel.js +33 -0
  85. package/dist/pages/_components/ImageMetaphorView/components/MetadataPanel/index.d.ts +2 -0
  86. package/dist/pages/_components/ImageMetaphorView/components/MetadataPanel/index.d.ts.map +1 -0
  87. package/dist/pages/_components/ImageMetaphorView/components/MetadataPanel/index.js +1 -0
  88. package/dist/pages/_components/ImageMetaphorView/components/ShapeToolbar/ShapeToolbar.d.ts +9 -0
  89. package/dist/pages/_components/ImageMetaphorView/components/ShapeToolbar/ShapeToolbar.d.ts.map +1 -0
  90. package/dist/pages/_components/ImageMetaphorView/components/ShapeToolbar/ShapeToolbar.js +20 -0
  91. package/dist/pages/_components/ImageMetaphorView/components/ShapeToolbar/index.d.ts +2 -0
  92. package/dist/pages/_components/ImageMetaphorView/components/ShapeToolbar/index.d.ts.map +1 -0
  93. package/dist/pages/_components/ImageMetaphorView/components/ShapeToolbar/index.js +1 -0
  94. package/dist/pages/_components/ImageMetaphorView/components/Toolbar/ImageMoreTools.d.ts +11 -0
  95. package/dist/pages/_components/ImageMetaphorView/components/Toolbar/ImageMoreTools.d.ts.map +1 -0
  96. package/dist/pages/_components/ImageMetaphorView/components/Toolbar/ImageMoreTools.js +15 -0
  97. package/dist/pages/_components/ImageMetaphorView/components/Toolbar/Toolbar.css +105 -0
  98. package/dist/pages/_components/ImageMetaphorView/components/Toolbar/Toolbar.d.ts +22 -0
  99. package/dist/pages/_components/ImageMetaphorView/components/Toolbar/Toolbar.d.ts.map +1 -0
  100. package/dist/pages/_components/ImageMetaphorView/components/Toolbar/Toolbar.js +61 -0
  101. package/dist/pages/_components/ImageMetaphorView/components/Toolbar/index.d.ts +3 -0
  102. package/dist/pages/_components/ImageMetaphorView/components/Toolbar/index.d.ts.map +1 -0
  103. package/dist/pages/_components/ImageMetaphorView/components/Toolbar/index.js +2 -0
  104. package/dist/pages/_components/ImageMetaphorView/components/image-panel.css +347 -0
  105. package/dist/pages/_components/ImageMetaphorView/components/shared/AddProperty.d.ts +6 -0
  106. package/dist/pages/_components/ImageMetaphorView/components/shared/AddProperty.d.ts.map +1 -0
  107. package/dist/pages/_components/ImageMetaphorView/components/shared/AddProperty.js +21 -0
  108. package/dist/pages/_components/ImageMetaphorView/components/shared/RelationPreview.d.ts +12 -0
  109. package/dist/pages/_components/ImageMetaphorView/components/shared/RelationPreview.d.ts.map +1 -0
  110. package/dist/pages/_components/ImageMetaphorView/components/shared/RelationPreview.js +34 -0
  111. package/dist/pages/_components/ImageMetaphorView/components/shared/SetCategory.d.ts +8 -0
  112. package/dist/pages/_components/ImageMetaphorView/components/shared/SetCategory.d.ts.map +1 -0
  113. package/dist/pages/_components/ImageMetaphorView/components/shared/SetCategory.js +20 -0
  114. package/dist/pages/_components/ImageMetaphorView/components/shared/colors.d.ts +2 -0
  115. package/dist/pages/_components/ImageMetaphorView/components/shared/colors.d.ts.map +1 -0
  116. package/dist/pages/_components/ImageMetaphorView/components/shared/colors.js +17 -0
  117. package/dist/pages/_components/ImageMetaphorView/components/shared/index.d.ts +6 -0
  118. package/dist/pages/_components/ImageMetaphorView/components/shared/index.d.ts.map +1 -0
  119. package/dist/pages/_components/ImageMetaphorView/components/shared/index.js +5 -0
  120. package/dist/pages/_components/ImageMetaphorView/components/shared/useRelations.d.ts +8 -0
  121. package/dist/pages/_components/ImageMetaphorView/components/shared/useRelations.d.ts.map +1 -0
  122. package/dist/pages/_components/ImageMetaphorView/components/shared/useRelations.js +13 -0
  123. package/dist/pages/_components/ImageMetaphorView/hooks/index.d.ts +2 -0
  124. package/dist/pages/_components/ImageMetaphorView/hooks/index.d.ts.map +1 -0
  125. package/dist/pages/_components/ImageMetaphorView/hooks/index.js +1 -0
  126. package/dist/pages/_components/ImageMetaphorView/hooks/useMultiPagePresence.d.ts +17 -0
  127. package/dist/pages/_components/ImageMetaphorView/hooks/useMultiPagePresence.d.ts.map +1 -0
  128. package/dist/pages/_components/ImageMetaphorView/hooks/useMultiPagePresence.js +43 -0
  129. package/dist/pages/_components/ImageMetaphorView/index.d.ts +2 -0
  130. package/dist/pages/_components/ImageMetaphorView/index.d.ts.map +1 -0
  131. package/dist/pages/_components/ImageMetaphorView/index.js +1 -0
  132. package/dist/pages/_components/TeiMetaphorView/TeiMetaphorView.css +2055 -0
  133. package/dist/pages/_components/TeiMetaphorView/TeiMetaphorView.d.ts +10 -0
  134. package/dist/pages/_components/TeiMetaphorView/TeiMetaphorView.d.ts.map +1 -0
  135. package/dist/pages/_components/TeiMetaphorView/TeiMetaphorView.js +41 -0
  136. package/dist/pages/_components/TeiMetaphorView/components/AnnotatableTEI/AnnotatableTEI.d.ts +14 -0
  137. package/dist/pages/_components/TeiMetaphorView/components/AnnotatableTEI/AnnotatableTEI.d.ts.map +1 -0
  138. package/dist/pages/_components/TeiMetaphorView/components/AnnotatableTEI/AnnotatableTEI.js +35 -0
  139. package/dist/pages/_components/TeiMetaphorView/components/AnnotatableTEI/index.d.ts +2 -0
  140. package/dist/pages/_components/TeiMetaphorView/components/AnnotatableTEI/index.d.ts.map +1 -0
  141. package/dist/pages/_components/TeiMetaphorView/components/AnnotatableTEI/index.js +1 -0
  142. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/AnnotationPanel.css +67 -0
  143. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/AnnotationPanel.d.ts +10 -0
  144. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/AnnotationPanel.d.ts.map +1 -0
  145. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/AnnotationPanel.js +15 -0
  146. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/ListTab/ListCard.d.ts +13 -0
  147. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/ListTab/ListCard.d.ts.map +1 -0
  148. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/ListTab/ListCard.js +32 -0
  149. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/ListTab/ListTab.css +230 -0
  150. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/ListTab/ListTab.d.ts +7 -0
  151. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/ListTab/ListTab.d.ts.map +1 -0
  152. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/ListTab/ListTab.js +100 -0
  153. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/ListTab/index.d.ts +2 -0
  154. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/ListTab/index.d.ts.map +1 -0
  155. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/ListTab/index.js +1 -0
  156. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/SelectedTab.css +449 -0
  157. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/SelectedTab.d.ts +10 -0
  158. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/SelectedTab.d.ts.map +1 -0
  159. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/SelectedTab.js +81 -0
  160. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/LinkedWordItem.d.ts +11 -0
  161. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/LinkedWordItem.d.ts.map +1 -0
  162. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/LinkedWordItem.js +11 -0
  163. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/MetaphorLinkedWords.d.ts +9 -0
  164. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/MetaphorLinkedWords.d.ts.map +1 -0
  165. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/MetaphorLinkedWords.js +45 -0
  166. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/MetaphorPreview.d.ts +8 -0
  167. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/MetaphorPreview.d.ts.map +1 -0
  168. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/MetaphorPreview.js +27 -0
  169. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/MetaphorTags.d.ts +10 -0
  170. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/MetaphorTags.d.ts.map +1 -0
  171. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/MetaphorTags.js +39 -0
  172. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/SpanTools.d.ts +8 -0
  173. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/SpanTools.d.ts.map +1 -0
  174. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/SpanTools.js +9 -0
  175. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/Tag.d.ts +7 -0
  176. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/Tag.d.ts.map +1 -0
  177. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/Tag.js +7 -0
  178. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/TypeSelector.d.ts +9 -0
  179. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/TypeSelector.d.ts.map +1 -0
  180. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/TypeSelector.js +8 -0
  181. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/WordTags.d.ts +10 -0
  182. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/WordTags.d.ts.map +1 -0
  183. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/WordTags.js +32 -0
  184. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/WordUplink.d.ts +7 -0
  185. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/WordUplink.d.ts.map +1 -0
  186. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/components/WordUplink.js +17 -0
  187. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/index.d.ts +2 -0
  188. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/index.d.ts.map +1 -0
  189. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SelectedTab/index.js +1 -0
  190. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SettingsTab/SettingsTab.css +157 -0
  191. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SettingsTab/SettingsTab.d.ts +2 -0
  192. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SettingsTab/SettingsTab.d.ts.map +1 -0
  193. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SettingsTab/SettingsTab.js +12 -0
  194. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SettingsTab/components/AnnotationStyle.d.ts +2 -0
  195. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SettingsTab/components/AnnotationStyle.d.ts.map +1 -0
  196. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SettingsTab/components/AnnotationStyle.js +19 -0
  197. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SettingsTab/index.d.ts +2 -0
  198. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SettingsTab/index.d.ts.map +1 -0
  199. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/SettingsTab/index.js +1 -0
  200. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/index.d.ts +2 -0
  201. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/index.d.ts.map +1 -0
  202. package/dist/pages/_components/TeiMetaphorView/components/AnnotationPanel/index.js +1 -0
  203. package/dist/pages/_components/TeiMetaphorView/components/ColorCodingState/ColorCodingState.d.ts +31 -0
  204. package/dist/pages/_components/TeiMetaphorView/components/ColorCodingState/ColorCodingState.d.ts.map +1 -0
  205. package/dist/pages/_components/TeiMetaphorView/components/ColorCodingState/ColorCodingState.js +64 -0
  206. package/dist/pages/_components/TeiMetaphorView/components/ColorCodingState/index.d.ts +2 -0
  207. package/dist/pages/_components/TeiMetaphorView/components/ColorCodingState/index.d.ts.map +1 -0
  208. package/dist/pages/_components/TeiMetaphorView/components/ColorCodingState/index.js +1 -0
  209. package/dist/pages/_components/TeiMetaphorView/components/InlineToolbar/InlineToolbar.css +189 -0
  210. package/dist/pages/_components/TeiMetaphorView/components/InlineToolbar/InlineToolbar.d.ts +7 -0
  211. package/dist/pages/_components/TeiMetaphorView/components/InlineToolbar/InlineToolbar.d.ts.map +1 -0
  212. package/dist/pages/_components/TeiMetaphorView/components/InlineToolbar/InlineToolbar.js +24 -0
  213. package/dist/pages/_components/TeiMetaphorView/components/InlineToolbar/ToolbarStateChoice.d.ts +8 -0
  214. package/dist/pages/_components/TeiMetaphorView/components/InlineToolbar/ToolbarStateChoice.d.ts.map +1 -0
  215. package/dist/pages/_components/TeiMetaphorView/components/InlineToolbar/ToolbarStateChoice.js +26 -0
  216. package/dist/pages/_components/TeiMetaphorView/components/InlineToolbar/ToolbarStateSelected.d.ts +7 -0
  217. package/dist/pages/_components/TeiMetaphorView/components/InlineToolbar/ToolbarStateSelected.d.ts.map +1 -0
  218. package/dist/pages/_components/TeiMetaphorView/components/InlineToolbar/ToolbarStateSelected.js +71 -0
  219. package/dist/pages/_components/TeiMetaphorView/components/InlineToolbar/index.d.ts +2 -0
  220. package/dist/pages/_components/TeiMetaphorView/components/InlineToolbar/index.d.ts.map +1 -0
  221. package/dist/pages/_components/TeiMetaphorView/components/InlineToolbar/index.js +1 -0
  222. package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Info/Info.d.ts +8 -0
  223. package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Info/Info.d.ts.map +1 -0
  224. package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Info/Info.js +41 -0
  225. package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Info/getTeiMetadata.d.ts +9 -0
  226. package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Info/getTeiMetadata.d.ts.map +1 -0
  227. package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Info/getTeiMetadata.js +33 -0
  228. package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Info/index.d.ts +2 -0
  229. package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Info/index.d.ts.map +1 -0
  230. package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Info/index.js +1 -0
  231. package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/MetadataPanel.css +159 -0
  232. package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/MetadataPanel.d.ts +9 -0
  233. package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/MetadataPanel.d.ts.map +1 -0
  234. package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/MetadataPanel.js +47 -0
  235. package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Toc/Toc.d.ts +6 -0
  236. package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Toc/Toc.d.ts.map +1 -0
  237. package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Toc/Toc.js +15 -0
  238. package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Toc/TocLevel.d.ts +7 -0
  239. package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Toc/TocLevel.d.ts.map +1 -0
  240. package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Toc/TocLevel.js +13 -0
  241. package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Toc/buildTableOfContents.d.ts +12 -0
  242. package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Toc/buildTableOfContents.d.ts.map +1 -0
  243. package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Toc/buildTableOfContents.js +97 -0
  244. package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Toc/index.d.ts +2 -0
  245. package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Toc/index.d.ts.map +1 -0
  246. package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/Toc/index.js +1 -0
  247. package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/index.d.ts +2 -0
  248. package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/index.d.ts.map +1 -0
  249. package/dist/pages/_components/TeiMetaphorView/components/MetadataPanel/index.js +1 -0
  250. package/dist/pages/_components/TeiMetaphorView/hooks/index.d.ts +6 -0
  251. package/dist/pages/_components/TeiMetaphorView/hooks/index.d.ts.map +1 -0
  252. package/dist/pages/_components/TeiMetaphorView/hooks/index.js +5 -0
  253. package/dist/pages/_components/TeiMetaphorView/hooks/useAnnotationsStyle.d.ts +3 -0
  254. package/dist/pages/_components/TeiMetaphorView/hooks/useAnnotationsStyle.d.ts.map +1 -0
  255. package/dist/pages/_components/TeiMetaphorView/hooks/useAnnotationsStyle.js +138 -0
  256. package/dist/pages/_components/TeiMetaphorView/hooks/useIntersectingAnnotations.d.ts +5 -0
  257. package/dist/pages/_components/TeiMetaphorView/hooks/useIntersectingAnnotations.d.ts.map +1 -0
  258. package/dist/pages/_components/TeiMetaphorView/hooks/useIntersectingAnnotations.js +35 -0
  259. package/dist/pages/_components/TeiMetaphorView/hooks/useLinkedMetaphors.d.ts +5 -0
  260. package/dist/pages/_components/TeiMetaphorView/hooks/useLinkedMetaphors.d.ts.map +1 -0
  261. package/dist/pages/_components/TeiMetaphorView/hooks/useLinkedMetaphors.js +14 -0
  262. package/dist/pages/_components/TeiMetaphorView/hooks/useMrwOptions.d.ts +6 -0
  263. package/dist/pages/_components/TeiMetaphorView/hooks/useMrwOptions.d.ts.map +1 -0
  264. package/dist/pages/_components/TeiMetaphorView/hooks/useMrwOptions.js +24 -0
  265. package/dist/pages/_components/TeiMetaphorView/hooks/useSuggestAnnotationType.d.ts +2 -0
  266. package/dist/pages/_components/TeiMetaphorView/hooks/useSuggestAnnotationType.d.ts.map +1 -0
  267. package/dist/pages/_components/TeiMetaphorView/hooks/useSuggestAnnotationType.js +35 -0
  268. package/dist/pages/_components/TeiMetaphorView/hooks/useTagVocabulary.d.ts +3 -0
  269. package/dist/pages/_components/TeiMetaphorView/hooks/useTagVocabulary.d.ts.map +1 -0
  270. package/dist/pages/_components/TeiMetaphorView/hooks/useTagVocabulary.js +46 -0
  271. package/dist/pages/_components/TeiMetaphorView/index.d.ts +2 -0
  272. package/dist/pages/_components/TeiMetaphorView/index.d.ts.map +1 -0
  273. package/dist/pages/_components/TeiMetaphorView/index.js +1 -0
  274. package/dist/pages/_components/TeiMetaphorView/utils.d.ts +15 -0
  275. package/dist/pages/_components/TeiMetaphorView/utils.d.ts.map +1 -0
  276. package/dist/pages/_components/TeiMetaphorView/utils.js +146 -0
  277. package/dist/pages/_components/shared/components/Accordion/Accordion.css +55 -0
  278. package/dist/pages/_components/shared/components/Accordion/Accordion.d.ts +6 -0
  279. package/dist/pages/_components/shared/components/Accordion/Accordion.d.ts.map +1 -0
  280. package/dist/pages/_components/shared/components/Accordion/Accordion.js +7 -0
  281. package/dist/pages/_components/shared/components/Accordion/index.d.ts +2 -0
  282. package/dist/pages/_components/shared/components/Accordion/index.d.ts.map +1 -0
  283. package/dist/pages/_components/shared/components/Accordion/index.js +1 -0
  284. package/dist/pages/_components/shared/components/AccountActions/AccountActions.css +49 -0
  285. package/dist/pages/_components/shared/components/AccountActions/AccountActions.d.ts +2 -0
  286. package/dist/pages/_components/shared/components/AccountActions/AccountActions.d.ts.map +1 -0
  287. package/dist/pages/_components/shared/components/AccountActions/AccountActions.js +33 -0
  288. package/dist/pages/_components/shared/components/AccountActions/index.d.ts +2 -0
  289. package/dist/pages/_components/shared/components/AccountActions/index.d.ts.map +1 -0
  290. package/dist/pages/_components/shared/components/AccountActions/index.js +1 -0
  291. package/dist/pages/_components/shared/components/Conversation/Comment.d.ts +6 -0
  292. package/dist/pages/_components/shared/components/Conversation/Comment.d.ts.map +1 -0
  293. package/dist/pages/_components/shared/components/Conversation/Comment.js +12 -0
  294. package/dist/pages/_components/shared/components/Conversation/Conversation.css +93 -0
  295. package/dist/pages/_components/shared/components/Conversation/Conversation.d.ts +8 -0
  296. package/dist/pages/_components/shared/components/Conversation/Conversation.d.ts.map +1 -0
  297. package/dist/pages/_components/shared/components/Conversation/Conversation.js +55 -0
  298. package/dist/pages/_components/shared/components/Conversation/index.d.ts +2 -0
  299. package/dist/pages/_components/shared/components/Conversation/index.d.ts.map +1 -0
  300. package/dist/pages/_components/shared/components/Conversation/index.js +1 -0
  301. package/dist/pages/_components/shared/components/EditorToolbar/EditorToolbar.css +218 -0
  302. package/dist/pages/_components/shared/components/EditorToolbar/EditorToolbar.d.ts +23 -0
  303. package/dist/pages/_components/shared/components/EditorToolbar/EditorToolbar.d.ts.map +1 -0
  304. package/dist/pages/_components/shared/components/EditorToolbar/EditorToolbar.js +13 -0
  305. package/dist/pages/_components/shared/components/EditorToolbar/PrivacySelector.d.ts +8 -0
  306. package/dist/pages/_components/shared/components/EditorToolbar/PrivacySelector.d.ts.map +1 -0
  307. package/dist/pages/_components/shared/components/EditorToolbar/PrivacySelector.js +9 -0
  308. package/dist/pages/_components/shared/components/EditorToolbar/UndoRedo.d.ts +2 -0
  309. package/dist/pages/_components/shared/components/EditorToolbar/UndoRedo.d.ts.map +1 -0
  310. package/dist/pages/_components/shared/components/EditorToolbar/UndoRedo.js +42 -0
  311. package/dist/pages/_components/shared/components/EditorToolbar/index.d.ts +3 -0
  312. package/dist/pages/_components/shared/components/EditorToolbar/index.d.ts.map +1 -0
  313. package/dist/pages/_components/shared/components/EditorToolbar/index.js +2 -0
  314. package/dist/pages/_components/shared/components/Filters/Filters.d.ts +6 -0
  315. package/dist/pages/_components/shared/components/Filters/Filters.d.ts.map +1 -0
  316. package/dist/pages/_components/shared/components/Filters/Filters.js +61 -0
  317. package/dist/pages/_components/shared/components/Filters/VisibilityFilter.d.ts +2 -0
  318. package/dist/pages/_components/shared/components/Filters/VisibilityFilter.d.ts.map +1 -0
  319. package/dist/pages/_components/shared/components/Filters/VisibilityFilter.js +23 -0
  320. package/dist/pages/_components/shared/components/Filters/index.d.ts +3 -0
  321. package/dist/pages/_components/shared/components/Filters/index.d.ts.map +1 -0
  322. package/dist/pages/_components/shared/components/Filters/index.js +2 -0
  323. package/dist/pages/_components/shared/components/HideAllState/HideAllState.d.ts +12 -0
  324. package/dist/pages/_components/shared/components/HideAllState/HideAllState.d.ts.map +1 -0
  325. package/dist/pages/_components/shared/components/HideAllState/HideAllState.js +9 -0
  326. package/dist/pages/_components/shared/components/HideAllState/index.d.ts +2 -0
  327. package/dist/pages/_components/shared/components/HideAllState/index.d.ts.map +1 -0
  328. package/dist/pages/_components/shared/components/HideAllState/index.js +1 -0
  329. package/dist/pages/_components/shared/components/Metadata/MetadataList.d.ts +10 -0
  330. package/dist/pages/_components/shared/components/Metadata/MetadataList.d.ts.map +1 -0
  331. package/dist/pages/_components/shared/components/Metadata/MetadataList.js +11 -0
  332. package/dist/pages/_components/shared/components/Metadata/index.d.ts +3 -0
  333. package/dist/pages/_components/shared/components/Metadata/index.d.ts.map +1 -0
  334. package/dist/pages/_components/shared/components/Metadata/index.js +2 -0
  335. package/dist/pages/_components/shared/components/Metadata/sanitize.d.ts +3 -0
  336. package/dist/pages/_components/shared/components/Metadata/sanitize.d.ts.map +1 -0
  337. package/dist/pages/_components/shared/components/Metadata/sanitize.js +53 -0
  338. package/dist/pages/_components/shared/components/StorageAdapter.d.ts +8 -0
  339. package/dist/pages/_components/shared/components/StorageAdapter.d.ts.map +1 -0
  340. package/dist/pages/_components/shared/components/StorageAdapter.js +12 -0
  341. package/dist/pages/_components/shared/components/SupabaseStorageAdapter.d.ts +23 -0
  342. package/dist/pages/_components/shared/components/SupabaseStorageAdapter.d.ts.map +1 -0
  343. package/dist/pages/_components/shared/components/SupabaseStorageAdapter.js +46 -0
  344. package/dist/pages/_components/shared/components/Tabs/Tabs.css +90 -0
  345. package/dist/pages/_components/shared/components/Tabs/Tabs.d.ts +6 -0
  346. package/dist/pages/_components/shared/components/Tabs/Tabs.d.ts.map +1 -0
  347. package/dist/pages/_components/shared/components/Tabs/Tabs.js +6 -0
  348. package/dist/pages/_components/shared/components/Tabs/index.d.ts +2 -0
  349. package/dist/pages/_components/shared/components/Tabs/index.d.ts.map +1 -0
  350. package/dist/pages/_components/shared/components/Tabs/index.js +1 -0
  351. package/dist/pages/_components/shared/components/index.d.ts +9 -0
  352. package/dist/pages/_components/shared/components/index.d.ts.map +1 -0
  353. package/dist/pages/_components/shared/components/index.js +8 -0
  354. package/dist/pages/_components/shared/hooks/index.d.ts +2 -0
  355. package/dist/pages/_components/shared/hooks/index.d.ts.map +1 -0
  356. package/dist/pages/_components/shared/hooks/index.js +1 -0
  357. package/dist/pages/_components/shared/hooks/useDocument.d.ts +3 -0
  358. package/dist/pages/_components/shared/hooks/useDocument.d.ts.map +1 -0
  359. package/dist/pages/_components/shared/hooks/useDocument.js +14 -0
  360. package/dist/pages/_components/shared/hooks/useDocumentLayers.d.ts +6 -0
  361. package/dist/pages/_components/shared/hooks/useDocumentLayers.d.ts.map +1 -0
  362. package/dist/pages/_components/shared/hooks/useDocumentLayers.js +18 -0
  363. package/dist/pages/_components/shared/hooks/useLayerPolicies.d.ts +3 -0
  364. package/dist/pages/_components/shared/hooks/useLayerPolicies.d.ts.map +1 -0
  365. package/dist/pages/_components/shared/hooks/useLayerPolicies.js +16 -0
  366. package/dist/pages/_components/shared/hooks/useSelectAction.d.ts +18 -0
  367. package/dist/pages/_components/shared/hooks/useSelectAction.d.ts.map +1 -0
  368. package/dist/pages/_components/shared/hooks/useSelectAction.js +26 -0
  369. package/dist/pages/_components/shared/hooks/useStoredFileDocument.d.ts +5 -0
  370. package/dist/pages/_components/shared/hooks/useStoredFileDocument.d.ts.map +1 -0
  371. package/dist/pages/_components/shared/hooks/useStoredFileDocument.js +22 -0
  372. package/dist/pages/_components/shared/i18n.d.ts +4 -0
  373. package/dist/pages/_components/shared/i18n.d.ts.map +1 -0
  374. package/dist/pages/_components/shared/i18n.js +31 -0
  375. package/dist/pages/_components/shared/supabase.d.ts +7 -0
  376. package/dist/pages/_components/shared/supabase.d.ts.map +1 -0
  377. package/dist/pages/_components/shared/supabase.js +7 -0
  378. package/dist/pages/_components/shared/types.d.ts +16 -0
  379. package/dist/pages/_components/shared/types.d.ts.map +1 -0
  380. package/dist/pages/_components/shared/types.js +1 -0
  381. package/dist/pages/metaphor-annotation-view.astro +122 -0
  382. package/package.json +69 -4
@@ -0,0 +1,47 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useRef, useState } from 'react';
3
+ import { useTranslation } from 'react-i18next';
4
+ import { XIcon, ListBulletsIcon, CodeIcon } from '@phosphor-icons/react';
5
+ import { Tabs, TabsList, TabsTrigger, TabsContent, } from '../../../shared/components';
6
+ import { Toc } from './Toc';
7
+ import { Info } from './Info';
8
+ export const MetadataPanel = (props) => {
9
+ const { t } = useTranslation();
10
+ const [tab, setTab] = useState('contents');
11
+ const headingRef = useRef(null);
12
+ const wasOpen = useRef(props.open);
13
+ useEffect(() => {
14
+ // return focus to panel heading on re-open for accessibility
15
+ if (props.open && !wasOpen.current) {
16
+ headingRef.current?.focus();
17
+ }
18
+ wasOpen.current = props.open;
19
+ }, [props.open]);
20
+ // TEI is rendered async by CETEIcean into `.tei-container`. Grab first
21
+ // tei-div, or the container, as the root for the TOC when ready.
22
+ const [teiRoot, setTeiRoot] = useState();
23
+ useEffect(() => {
24
+ const find = () => {
25
+ const container = document.querySelector('.tei-container');
26
+ if (!container || container.childElementCount === 0)
27
+ return undefined;
28
+ return container.querySelector('tei-div') ?? container;
29
+ };
30
+ const existing = find();
31
+ if (existing) {
32
+ setTeiRoot(existing);
33
+ return;
34
+ }
35
+ const target = document.getElementById('main') ?? document.body;
36
+ const observer = new MutationObserver(() => {
37
+ const el = find();
38
+ if (el) {
39
+ setTeiRoot(el);
40
+ observer.disconnect();
41
+ }
42
+ });
43
+ observer.observe(target, { childList: true, subtree: true });
44
+ return () => observer.disconnect();
45
+ }, []);
46
+ return (_jsxs("aside", { id: 'metadata-panel', inert: !props.open, "data-open": props.open, children: [_jsx("h2", { className: 'sr-only', children: t('Document navigation and metadata') }), _jsxs("div", { className: 'header', children: [_jsx("h3", { ref: headingRef, tabIndex: -1, children: props.document.name }), _jsx("button", { "aria-label": t('Close navigation/metadata panel'), "aria-expanded": props.open, "aria-controls": 'metadata-panel', className: 'unstyled icon-only', onClick: () => props.onOpenChange(false), type: 'button', children: _jsx(XIcon, { size: 16 }) })] }), _jsxs(Tabs, { value: tab, onValueChange: (val) => setTab(val), className: 'metadata-tabs-root', children: [_jsxs(TabsList, { children: [_jsxs(TabsTrigger, { value: 'contents', children: [_jsx(ListBulletsIcon, { weight: 'bold', "aria-hidden": 'true' }), _jsx("span", { className: 'tab-label', children: t('Contents') })] }), _jsxs(TabsTrigger, { value: 'info', children: [_jsx(CodeIcon, { weight: 'bold', "aria-hidden": 'true' }), _jsx("span", { className: 'tab-label', children: t('Info') })] })] }), _jsx(TabsContent, { value: 'contents', className: 'metadata-tab-content', children: _jsx("nav", { className: 'metadata-panel-body', "aria-label": t('Contents'), children: _jsx(Toc, { tei: teiRoot }) }) }), _jsx(TabsContent, { value: 'info', className: 'metadata-tab-content', children: _jsx("div", { className: 'metadata-panel-body', children: _jsx(Info, { document: props.document, teiRoot: teiRoot }) }) })] })] }));
47
+ };
@@ -0,0 +1,6 @@
1
+ interface TocProps {
2
+ tei?: Element;
3
+ }
4
+ export declare const Toc: (props: TocProps) => import("react").JSX.Element | null;
5
+ export {};
6
+ //# sourceMappingURL=Toc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toc.d.ts","sourceRoot":"","sources":["../../../../../../../src/pages/_components/TeiMetaphorView/components/MetadataPanel/Toc/Toc.tsx"],"names":[],"mappings":"AAIA,UAAU,QAAQ;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,eAAO,MAAM,GAAG,GAAI,OAAO,QAAQ,uCAgBlC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useState } from 'react';
3
+ import { buildTableOfContents } from './buildTableOfContents';
4
+ import { TocLevel } from './TocLevel';
5
+ export const Toc = (props) => {
6
+ const [toc, setToc] = useState();
7
+ useEffect(() => {
8
+ if (!props.tei)
9
+ return;
10
+ setToc(buildTableOfContents(props.tei));
11
+ }, [props.tei]);
12
+ if (!toc)
13
+ return null;
14
+ return (_jsxs("div", { className: 'toc', children: [toc.title && _jsx("h3", { className: 'toc-title', children: toc.title }), _jsx(TocLevel, { nodes: toc.nodes })] }));
15
+ };
@@ -0,0 +1,7 @@
1
+ import type { TableOfContentsNode } from './buildTableOfContents';
2
+ interface TocLevelProps {
3
+ nodes: TableOfContentsNode[];
4
+ }
5
+ export declare const TocLevel: (props: TocLevelProps) => import("react").JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=TocLevel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TocLevel.d.ts","sourceRoot":"","sources":["../../../../../../../src/pages/_components/TeiMetaphorView/components/MetadataPanel/Toc/TocLevel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,UAAU,aAAa;IACrB,KAAK,EAAE,mBAAmB,EAAE,CAAC;CAC9B;AAED,eAAO,MAAM,QAAQ,GAAI,OAAO,aAAa,gCA4B5C,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ export const TocLevel = (props) => {
3
+ return (_jsx("ul", { className: 'toc-list', children: props.nodes.map((node, index) => {
4
+ const id = node.element.getAttribute('id');
5
+ return (_jsxs("li", { className: 'toc-item', children: [_jsxs("a", { className: 'toc-link', href: id ? `#${id}` : '#', onClick: (evt) => {
6
+ evt.preventDefault();
7
+ node.element.scrollIntoView({
8
+ behavior: 'smooth',
9
+ block: 'start',
10
+ });
11
+ }, children: [node.prefix && _jsx("span", { className: 'toc-prefix', children: node.prefix }), node.label] }), node.childNodes.length > 0 && _jsx(TocLevel, { nodes: node.childNodes })] }, id || `${node.label}::${index}`));
12
+ }) }));
13
+ };
@@ -0,0 +1,12 @@
1
+ export interface TableOfContents {
2
+ title?: string;
3
+ nodes: TableOfContentsNode[];
4
+ }
5
+ export interface TableOfContentsNode {
6
+ prefix?: string;
7
+ label: string;
8
+ element: Element;
9
+ childNodes: TableOfContentsNode[];
10
+ }
11
+ export declare const buildTableOfContents: (div: Element) => TableOfContents;
12
+ //# sourceMappingURL=buildTableOfContents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildTableOfContents.d.ts","sourceRoot":"","sources":["../../../../../../../src/pages/_components/TeiMetaphorView/components/MetadataPanel/Toc/buildTableOfContents.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,KAAK,EAAE,mBAAmB,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,KAAK,EAAE,MAAM,CAAC;IAEd,OAAO,EAAE,OAAO,CAAC;IAEjB,UAAU,EAAE,mBAAmB,EAAE,CAAC;CACnC;AA4GD,eAAO,MAAM,oBAAoB,GAAI,KAAK,OAAO,KAAG,eAmBnD,CAAC"}
@@ -0,0 +1,97 @@
1
+ const SNIPPET_WORDS = 8;
2
+ const directChildren = (parent, name, type) => Array.from(parent.children).filter((e) => e.nodeName.toLowerCase() === name &&
3
+ (type === undefined || e.getAttribute('type') === type));
4
+ // First few words of an element's text
5
+ const snippet = (el) => {
6
+ const allWords = (el?.textContent || '')
7
+ .replace(/\s+/g, ' ')
8
+ .trim()
9
+ .split(' ')
10
+ .filter(Boolean);
11
+ if (allWords.length === 0)
12
+ return '';
13
+ const words = allWords.slice(0, SNIPPET_WORDS);
14
+ const ellipsis = allWords.length > SNIPPET_WORDS ? '…' : '';
15
+ return `${words.join(' ')}${ellipsis}`;
16
+ };
17
+ // As a fallback, use the teiHeader title, or the first <head>, in the TOC
18
+ const headingText = (el) => {
19
+ const root = el.closest('.tei-container') ?? el;
20
+ const heading = root.querySelector('tei-teiheader tei-titlestmt tei-title') ??
21
+ root.querySelector('tei-teiheader tei-title') ??
22
+ root.querySelector('tei-head');
23
+ return heading?.textContent?.replace(/\s+/g, ' ').trim() || undefined;
24
+ };
25
+ // The structural label from the XML: a div's @type, or the (de-namespaced)
26
+ // element name for everything else.
27
+ const typeLabel = (el) => {
28
+ const name = el.nodeName.toLowerCase();
29
+ if (name === 'tei-div')
30
+ return el.getAttribute('type') || 'section';
31
+ return name.replace(/^tei-/, '');
32
+ };
33
+ // Structured documents: nested div[type] with @n + @xml:id
34
+ const walkChildren = (parent) => directChildren(parent, 'tei-div')
35
+ .filter((e) => e.getAttribute('type'))
36
+ .map((teiDiv) => ({
37
+ label: `${teiDiv.getAttribute('type')} ${teiDiv.getAttribute('n') || ''}`.trim(),
38
+ element: teiDiv,
39
+ childNodes: walkChildren(teiDiv),
40
+ }));
41
+ // Reddit documents: <div type="replies"> with nested <post> and <div type="thread">.
42
+ // Label posts by snippet of text or author
43
+ const labelForPost = (post) => {
44
+ const text = snippet(post.querySelector('tei-ab') ?? post);
45
+ if (text)
46
+ return text;
47
+ return post.getAttribute('who') || '';
48
+ };
49
+ // Reddit node types
50
+ const postNode = (post) => ({
51
+ prefix: typeLabel(post),
52
+ label: labelForPost(post),
53
+ element: post,
54
+ childNodes: [],
55
+ });
56
+ const repliesNode = (replies) => ({
57
+ prefix: typeLabel(replies),
58
+ label: '',
59
+ element: replies,
60
+ childNodes: walkReplies(replies),
61
+ });
62
+ const threadNode = (thread) => {
63
+ const post = directChildren(thread, 'tei-post')[0];
64
+ const replies = directChildren(thread, 'tei-div', 'replies')[0];
65
+ return {
66
+ prefix: typeLabel(thread),
67
+ label: post ? labelForPost(post) : '',
68
+ element: post ?? thread,
69
+ childNodes: replies ? [repliesNode(replies)] : [],
70
+ };
71
+ };
72
+ // Redddit replies structure
73
+ const walkReplies = (replies) => Array.from(replies.children).flatMap((child) => {
74
+ const name = child.nodeName.toLowerCase();
75
+ if (name === 'tei-post')
76
+ return [postNode(child)];
77
+ if (name === 'tei-div' && child.getAttribute('type') === 'thread')
78
+ return [threadNode(child)];
79
+ return [];
80
+ });
81
+ export const buildTableOfContents = (div) => {
82
+ // treat reddit threads differently than typical hierarchical docs
83
+ if (div.getAttribute('type') === 'thread') {
84
+ const post = directChildren(div, 'tei-post')[0];
85
+ const head = post ? directChildren(post, 'tei-head')[0] : undefined;
86
+ const title = head?.textContent?.replace(/\s+/g, ' ').trim();
87
+ return { title, nodes: [threadNode(div)] };
88
+ }
89
+ const type = div.getAttribute('type');
90
+ const title = type
91
+ ? `${type} ${div.getAttribute('n') || ''}`.trim()
92
+ : undefined;
93
+ return {
94
+ title: title || headingText(div),
95
+ nodes: walkChildren(div),
96
+ };
97
+ };
@@ -0,0 +1,2 @@
1
+ export * from './Toc';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/pages/_components/TeiMetaphorView/components/MetadataPanel/Toc/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './MetadataPanel';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/pages/_components/TeiMetaphorView/components/MetadataPanel/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './MetadataPanel';
@@ -0,0 +1,6 @@
1
+ export * from './useAnnotationsStyle';
2
+ export * from './useIntersectingAnnotations';
3
+ export * from './useMrwOptions';
4
+ export * from './useSuggestAnnotationType';
5
+ export * from './useTagVocabulary';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/pages/_components/TeiMetaphorView/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './useAnnotationsStyle';
2
+ export * from './useIntersectingAnnotations';
3
+ export * from './useMrwOptions';
4
+ export * from './useSuggestAnnotationType';
5
+ export * from './useTagVocabulary';
@@ -0,0 +1,3 @@
1
+ import type { HighlightStyleExpression, TEIAnnotation } from '@recogito/react-text-annotator';
2
+ export declare const useAnnotationsStyle: (activeLayerId?: string) => HighlightStyleExpression<TEIAnnotation>;
3
+ //# sourceMappingURL=useAnnotationsStyle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAnnotationsStyle.d.ts","sourceRoot":"","sources":["../../../../../src/pages/_components/TeiMetaphorView/hooks/useAnnotationsStyle.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,wBAAwB,EAExB,aAAa,EACd,MAAM,gCAAgC,CAAC;AA2IxC,eAAO,MAAM,mBAAmB,GAC9B,gBAAgB,MAAM,KACrB,wBAAwB,CAAC,aAAa,CAgDxC,CAAC"}
@@ -0,0 +1,138 @@
1
+ import { useAnnotationStore, useSelection, } from '@annotorious/react';
2
+ import { useMemo } from 'react';
3
+ import { getAnnotationType } from '../utils';
4
+ import { THEMES, useColorCoding, } from '../components/ColorCodingState';
5
+ // dimmed underline for when another annotation is selected
6
+ const DIMMED_UNDERLINE = '#e2e2ff';
7
+ // 'by-type': single-hue themes, with fill for mrw, underline for metaphor
8
+ const themeNoSelection = (theme) => (annotation, _state, z) => {
9
+ const type = getAnnotationType(annotation);
10
+ const underlineOffset = z ? 4 * z : 0;
11
+ if (type === 'mrw') {
12
+ return {
13
+ // @ts-ignore
14
+ fill: theme.FILL_COLOR_OPAQUE,
15
+ };
16
+ }
17
+ else {
18
+ return {
19
+ fillOpacity: 0,
20
+ // @ts-ignore
21
+ underlineColor: theme.UNDERLINE_COLOR_OPAQUE,
22
+ underlineThickness: 2,
23
+ underlineOffset,
24
+ };
25
+ }
26
+ };
27
+ const themeWithSelection = (theme, emphasized) => (annotation, state, z) => {
28
+ const type = getAnnotationType(annotation);
29
+ const isEmphasized = emphasized.includes(annotation.id) || state.selected;
30
+ const underlineOffset = z ? 4 * z : 0;
31
+ if (type === 'mrw') {
32
+ return {
33
+ // @ts-ignore
34
+ fill: isEmphasized ? theme.FILL_COLOR_OPAQUE : '#1a1a1a',
35
+ fillOpacity: isEmphasized ? undefined : 0.12,
36
+ };
37
+ }
38
+ else {
39
+ return {
40
+ // @ts-ignore
41
+ fill: isEmphasized ? theme.FILL_COLOR_SEMITRANSPARENT : undefined,
42
+ fillOpacity: isEmphasized ? undefined : 0,
43
+ // @ts-ignore
44
+ underlineColor: isEmphasized
45
+ ? theme.UNDERLINE_COLOR_OPAQUE
46
+ : DIMMED_UNDERLINE,
47
+ underlineThickness: 2,
48
+ underlineOffset,
49
+ };
50
+ }
51
+ };
52
+ // 'by-tag': color by first tag, underline or fill determined by type (mrw/metaphor)
53
+ const byTagStyle = (getColor, hasSelection, emphasized) => (annotation, state, z) => {
54
+ const type = getAnnotationType(annotation);
55
+ const color = getColor(annotation);
56
+ const underlineOffset = z ? 4 * z : 0;
57
+ const isEmphasized = !hasSelection || emphasized.includes(annotation.id) || state.selected;
58
+ if (type === 'mrw') {
59
+ return {
60
+ // @ts-ignore
61
+ fill: color,
62
+ fillOpacity: isEmphasized ? 0.45 : 0.12,
63
+ };
64
+ }
65
+ else {
66
+ return {
67
+ fillOpacity: 0,
68
+ // @ts-ignore
69
+ underlineColor: isEmphasized ? color : DIMMED_UNDERLINE,
70
+ underlineThickness: 2,
71
+ underlineOffset,
72
+ };
73
+ }
74
+ };
75
+ // Annotations on inactive (read-only) layers: neutral grey regardless of color
76
+ // coding, but keeping the type distinction (fill for MRWs, underline for
77
+ // metaphors). Darker when selected.
78
+ const READ_ONLY_COLOR = '#6b7280';
79
+ const READ_ONLY_COLOR_SELECTED = '#374151';
80
+ const readOnlyStyle = (annotation, state, z) => {
81
+ const color = state?.selected ? READ_ONLY_COLOR_SELECTED : READ_ONLY_COLOR;
82
+ if (getAnnotationType(annotation) === 'mrw') {
83
+ return {
84
+ // @ts-ignore
85
+ fill: color,
86
+ fillOpacity: state?.selected ? 0.35 : 0.2,
87
+ };
88
+ }
89
+ else {
90
+ return {
91
+ // @ts-ignore
92
+ fill: state?.selected ? color : undefined,
93
+ fillOpacity: state?.selected ? 0.08 : 0,
94
+ // @ts-ignore
95
+ underlineColor: color,
96
+ underlineThickness: 2,
97
+ underlineOffset: z ? 4 * z : 0,
98
+ };
99
+ }
100
+ };
101
+ export const useAnnotationsStyle = (activeLayerId) => {
102
+ const { coding, theme, getColor } = useColorCoding();
103
+ const selection = useSelection();
104
+ const hasSelection = selection.selected.length > 0;
105
+ const store = useAnnotationStore();
106
+ const emphasizedIds = useMemo(() => {
107
+ if (!store || selection.selected.length === 0)
108
+ return [];
109
+ const ids = new Set();
110
+ selection.selected.forEach(({ annotation }) => {
111
+ ids.add(annotation.id); // Emphasize the selected annotation itself
112
+ const type = getAnnotationType(annotation);
113
+ if (type !== 'mrw') {
114
+ // If it's a metaphor, emphasize any linked MRWs
115
+ annotation.bodies.forEach((b) => {
116
+ if (b.purpose === 'linking' && b.value) {
117
+ ids.add(b.value);
118
+ }
119
+ });
120
+ }
121
+ });
122
+ return Array.from(ids);
123
+ }, [selection.selected, store]);
124
+ return useMemo(() => {
125
+ const activeLayerStyle = coding === 'by-type'
126
+ ? hasSelection
127
+ ? themeWithSelection(THEMES[theme], emphasizedIds)
128
+ : themeNoSelection(THEMES[theme])
129
+ : byTagStyle(getColor, hasSelection, emphasizedIds);
130
+ return (annotation, state, z) => {
131
+ const layerId = annotation
132
+ .layer_id;
133
+ return activeLayerId && layerId && layerId !== activeLayerId
134
+ ? readOnlyStyle(annotation, state, z)
135
+ : activeLayerStyle(annotation, state, z);
136
+ };
137
+ }, [coding, theme, getColor, hasSelection, emphasizedIds, activeLayerId]);
138
+ };
@@ -0,0 +1,5 @@
1
+ import { TEIAnnotation } from '@recogito/react-text-annotator';
2
+ export declare const useIntersectingAnnotations: () => {
3
+ getIntersecting: (annotation: TEIAnnotation) => TEIAnnotation[];
4
+ };
5
+ //# sourceMappingURL=useIntersectingAnnotations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIntersectingAnnotations.d.ts","sourceRoot":"","sources":["../../../../../src/pages/_components/TeiMetaphorView/hooks/useIntersectingAnnotations.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EAEd,MAAM,gCAAgC,CAAC;AAExC,eAAO,MAAM,0BAA0B;kCAiBA,aAAa;CAyBnD,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { useAnnotationStore } from '@annotorious/react';
2
+ export const useIntersectingAnnotations = () => {
3
+ const store = useAnnotationStore();
4
+ const rectOverlaps = (a, b) => a.x < b.x + b.width &&
5
+ a.x + a.width > b.x &&
6
+ a.y < b.y + b.height &&
7
+ a.y + a.height > b.y;
8
+ const hasIntersectingRect = (sourceRects, otherId) => {
9
+ const candidateRects = store.getAnnotationRects(otherId);
10
+ if (!candidateRects || candidateRects.length === 0)
11
+ return false;
12
+ // True intersection only if at least one rect pair overlaps
13
+ return sourceRects.some(sr => candidateRects.some(cr => rectOverlaps(sr, cr)));
14
+ };
15
+ const getIntersecting = (annotation) => {
16
+ if (!store)
17
+ return [];
18
+ // Outer bounds - use this to find intersection candidates
19
+ const bounds = store.getAnnotationBounds(annotation.id);
20
+ if (!bounds)
21
+ return []; // Should never happen
22
+ const { x, y, width, height } = bounds;
23
+ // Individual rects per span - use this to check the actual intersection
24
+ const sourceRects = store.getAnnotationRects(annotation.id);
25
+ if (!sourceRects || sourceRects.length === 0)
26
+ return []; // Should never happen
27
+ const intersecting = store.getIntersecting(x, y, x + width, y + height)
28
+ .filter((rects) => rects.annotation.id !== annotation.id)
29
+ .filter((rects) => hasIntersectingRect(sourceRects, rects.annotation.id))
30
+ .map((rects) => rects.annotation);
31
+ // order by document position via the TEI selector position property
32
+ return intersecting.sort((a, b) => a.target.selector[0].position.localeCompare(b.target.selector[0].position));
33
+ };
34
+ return { getIntersecting };
35
+ };
@@ -0,0 +1,5 @@
1
+ import { TEIAnnotation } from '@recogito/react-text-annotator';
2
+ export declare const useLinkedMetaphors: () => {
3
+ isLinkedBy: (annotation: TEIAnnotation) => TEIAnnotation[];
4
+ };
5
+ //# sourceMappingURL=useLinkedMetaphors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLinkedMetaphors.d.ts","sourceRoot":"","sources":["../../../../../src/pages/_components/TeiMetaphorView/hooks/useLinkedMetaphors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,eAAO,MAAM,kBAAkB;6BAGG,aAAa;CAc9C,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { useAnnotationStore } from '@annotorious/react';
2
+ export const useLinkedMetaphors = () => {
3
+ const store = useAnnotationStore();
4
+ const isLinkedBy = (annotation) => {
5
+ if (!store)
6
+ return [];
7
+ return store
8
+ .all()
9
+ .filter((a) => a.bodies.some((b) => b.purpose === 'linking' && b.value === annotation.id));
10
+ };
11
+ return {
12
+ isLinkedBy,
13
+ };
14
+ };
@@ -0,0 +1,6 @@
1
+ export interface MrwOption {
2
+ uri: string;
3
+ prefLabel: string;
4
+ }
5
+ export declare const useMrwOptions: () => MrwOption[];
6
+ //# sourceMappingURL=useMrwOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMrwOptions.d.ts","sourceRoot":"","sources":["../../../../../src/pages/_components/TeiMetaphorView/hooks/useMrwOptions.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,aAAa,mBAyBzB,CAAA"}
@@ -0,0 +1,24 @@
1
+ import { useEffect, useState } from "react";
2
+ export const useMrwOptions = () => {
3
+ const [mrwOptions, setMrwOptions] = useState([]);
4
+ useEffect(() => {
5
+ const fetchOptions = async () => {
6
+ try {
7
+ const base = import.meta.env.PUBLIC_VOCABULARY_API_BASE_URL?.endsWith('/')
8
+ ? import.meta.env.PUBLIC_VOCABULARY_API_BASE_URL
9
+ : import.meta.env.PUBLIC_VOCABULARY_API_BASE_URL + '/';
10
+ const url = new URL('narrower', base);
11
+ url.searchParams.set('uri', import.meta.env.PUBLIC_MRW_PARENT_URI);
12
+ const data = await fetch(url).then((res) => (res.json()));
13
+ if (data?.narrower) {
14
+ setMrwOptions(data.narrower);
15
+ }
16
+ }
17
+ catch (error) {
18
+ console.log(error);
19
+ }
20
+ };
21
+ fetchOptions();
22
+ }, []);
23
+ return mrwOptions;
24
+ };
@@ -0,0 +1,2 @@
1
+ export declare const useSuggestAnnotationType: () => void;
2
+ //# sourceMappingURL=useSuggestAnnotationType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSuggestAnnotationType.d.ts","sourceRoot":"","sources":["../../../../../src/pages/_components/TeiMetaphorView/hooks/useSuggestAnnotationType.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,wBAAwB,YA6BpC,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { useEffect } from 'react';
2
+ import { useAnnotationStore, useAnnotator } from '@annotorious/react';
3
+ import { getAnnotationType, getQuote, setAnnotationType } from '../utils';
4
+ // Trivial heuristic for "suggesting" the initial annotation type:
5
+ // multi-word selections are metaphors, single words are MRWs.
6
+ const suggestType = (annotation) => getQuote(annotation).includes(' ') ? 'metaphor' : 'mrw';
7
+ // Track annotation IDs we've already auto-typed
8
+ const autoTyped = new Set();
9
+ // Assign a suggested type to each newly created annotation, as part of
10
+ // a createAnnotation event listener
11
+ export const useSuggestAnnotationType = () => {
12
+ const anno = useAnnotator();
13
+ const store = useAnnotationStore();
14
+ useEffect(() => {
15
+ if (!anno || !store)
16
+ return;
17
+ const onCreate = (annotation) => {
18
+ const { id } = annotation;
19
+ // Deduplication
20
+ if (autoTyped.has(id))
21
+ return;
22
+ autoTyped.add(id);
23
+ setTimeout(() => {
24
+ // Re-read from the store: the annotation may have been revived/updated/
25
+ // deleted since creation
26
+ const current = store.getAnnotation(id);
27
+ if (!current || getAnnotationType(current))
28
+ return;
29
+ store.updateAnnotation(setAnnotationType(current, suggestType(current)));
30
+ }, 0);
31
+ };
32
+ anno.on('createAnnotation', onCreate);
33
+ return () => anno.off('createAnnotation', onCreate);
34
+ }, [anno, store]);
35
+ };
@@ -0,0 +1,3 @@
1
+ import { type VocabularyTerm } from '@recogito/studio-sdk';
2
+ export declare const useTagVocabulary: (projectId: string) => VocabularyTerm[];
3
+ //# sourceMappingURL=useTagVocabulary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTagVocabulary.d.ts","sourceRoot":"","sources":["../../../../../src/pages/_components/TeiMetaphorView/hooks/useTagVocabulary.ts"],"names":[],"mappings":"AAGA,OAAO,EAAW,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAKpE,eAAO,MAAM,gBAAgB,GAAI,WAAW,MAAM,qBAsDjD,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { useEffect, useState } from 'react';
2
+ import { useAnnotationStore } from '@annotorious/react';
3
+ import { getTags } from '@recogito/studio-sdk';
4
+ import { sdk } from '../../shared/supabase';
5
+ // Hook to load the project tag vocabulary via the SDK, kept up to date with any
6
+ // tags users create during the session
7
+ export const useTagVocabulary = (projectId) => {
8
+ const [vocabulary, setVocabulary] = useState([]);
9
+ const store = useAnnotationStore();
10
+ useEffect(() => {
11
+ sdk.tags.getProjectTagVocabulary(projectId).then(({ error, data }) => {
12
+ if (error)
13
+ console.error(error);
14
+ else
15
+ setVocabulary(data);
16
+ });
17
+ }, [projectId]);
18
+ const getUniqueTags = (annotations) => {
19
+ const labels = annotations.reduce((all, annotation) => [...all, ...getTags(annotation).map((t) => t.label)], []);
20
+ return Array.from(new Set(labels));
21
+ };
22
+ const addToVocabulary = (labels) => setVocabulary((current) => {
23
+ const toAdd = labels.filter((label) => !current.some((t) => t.label === label));
24
+ return [...current, ...toAdd.map((label) => ({ label }))];
25
+ });
26
+ // Ensure tags users create during the session become part of the vocabulary
27
+ useEffect(() => {
28
+ if (!store)
29
+ return;
30
+ const onChange = (event) => {
31
+ const { created, updated } = event.changes;
32
+ let labels = [];
33
+ if (created)
34
+ labels = getUniqueTags(created);
35
+ if (updated)
36
+ labels = [...labels, ...getUniqueTags(updated.map((u) => u.newValue))];
37
+ if (labels.length > 0)
38
+ addToVocabulary(labels);
39
+ };
40
+ store.observe(onChange);
41
+ return () => {
42
+ store.unobserve(onChange);
43
+ };
44
+ }, [store]);
45
+ return vocabulary;
46
+ };
@@ -0,0 +1,2 @@
1
+ export * from './TeiMetaphorView';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/pages/_components/TeiMetaphorView/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './TeiMetaphorView';