dbf-mirador 4.2.3

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 (384) hide show
  1. package/LICENSE +203 -0
  2. package/README.md +133 -0
  3. package/dist/CommentSharp-B0J_-jEq.js +325 -0
  4. package/dist/CommentSharp-B0J_-jEq.js.map +1 -0
  5. package/dist/FailedImageContext-aQXnWSHN.js +318 -0
  6. package/dist/FailedImageContext-aQXnWSHN.js.map +1 -0
  7. package/dist/PluginHook-CFw_6P5c.js +54 -0
  8. package/dist/PluginHook-CFw_6P5c.js.map +1 -0
  9. package/dist/WindowCanvasNavigationControls-CUX723BQ.js +242 -0
  10. package/dist/WindowCanvasNavigationControls-CUX723BQ.js.map +1 -0
  11. package/dist/action-types-DjIbTE-A.js +74 -0
  12. package/dist/action-types-DjIbTE-A.js.map +1 -0
  13. package/dist/canvas-C8oHvXFN.js +41 -0
  14. package/dist/canvas-C8oHvXFN.js.map +1 -0
  15. package/dist/canvases-gRqhr-IH.js +3154 -0
  16. package/dist/canvases-gRqhr-IH.js.map +1 -0
  17. package/dist/createSvgIcon-Cwt8YPfm.js +2 -0
  18. package/dist/getters-COus7Mvg.js +2066 -0
  19. package/dist/getters-COus7Mvg.js.map +1 -0
  20. package/dist/index.module-CbBRf_R8.js +403 -0
  21. package/dist/index.module-CbBRf_R8.js.map +1 -0
  22. package/dist/mirador.es.js +39600 -0
  23. package/dist/mirador.es.js.map +1 -0
  24. package/dist/mirador.min.js +334 -0
  25. package/dist/mirador.min.js.map +1 -0
  26. package/dist/react-error-boundary.esm-B_pT-oCS.js +67 -0
  27. package/dist/react-error-boundary.esm-B_pT-oCS.js.map +1 -0
  28. package/dist/visuallyHidden-DmYvwNdU.js +98 -0
  29. package/dist/visuallyHidden-DmYvwNdU.js.map +1 -0
  30. package/dist/window-zelwU7wz.js +138 -0
  31. package/dist/window-zelwU7wz.js.map +1 -0
  32. package/package.json +138 -0
  33. package/src/components/AccessTokenSender.jsx +34 -0
  34. package/src/components/AnnotationSettings.jsx +31 -0
  35. package/src/components/AnnotationsOverlay.jsx +328 -0
  36. package/src/components/App.jsx +34 -0
  37. package/src/components/AppProviders.jsx +129 -0
  38. package/src/components/AttributionPanel.jsx +78 -0
  39. package/src/components/AudioViewer.jsx +39 -0
  40. package/src/components/BackgroundPluginArea.jsx +9 -0
  41. package/src/components/Branding.jsx +33 -0
  42. package/src/components/CanvasAnnotations.jsx +125 -0
  43. package/src/components/CanvasInfo.jsx +46 -0
  44. package/src/components/CanvasLayers.jsx +367 -0
  45. package/src/components/ChangeThemeDialog.jsx +65 -0
  46. package/src/components/CollapsibleSection.jsx +53 -0
  47. package/src/components/CollectionDialog.jsx +236 -0
  48. package/src/components/CollectionInfo.jsx +48 -0
  49. package/src/components/CompanionArea.jsx +140 -0
  50. package/src/components/CompanionWindow.jsx +228 -0
  51. package/src/components/CompanionWindowFactory.jsx +38 -0
  52. package/src/components/CompanionWindowSection.jsx +11 -0
  53. package/src/components/CustomPanel.jsx +22 -0
  54. package/src/components/ErrorContent.jsx +65 -0
  55. package/src/components/ErrorDialog.jsx +47 -0
  56. package/src/components/FullScreenButton.jsx +47 -0
  57. package/src/components/GalleryView.jsx +36 -0
  58. package/src/components/GalleryViewThumbnail.jsx +160 -0
  59. package/src/components/IIIFAuthentication.jsx +144 -0
  60. package/src/components/IIIFDropTarget.jsx +168 -0
  61. package/src/components/IIIFIFrameCommunication.jsx +45 -0
  62. package/src/components/IIIFResourceLabel.jsx +26 -0
  63. package/src/components/IIIFThumbnail.jsx +214 -0
  64. package/src/components/ImageFailureMessage.jsx +42 -0
  65. package/src/components/LabelValueMetadata.jsx +46 -0
  66. package/src/components/LanguageSettings.jsx +46 -0
  67. package/src/components/LayersPanel.jsx +24 -0
  68. package/src/components/LocalePicker.jsx +56 -0
  69. package/src/components/ManifestForm.jsx +79 -0
  70. package/src/components/ManifestInfo.jsx +67 -0
  71. package/src/components/ManifestListItem.jsx +209 -0
  72. package/src/components/ManifestListItemError.jsx +53 -0
  73. package/src/components/ManifestRelatedLinks.jsx +154 -0
  74. package/src/components/MinimalWindow.jsx +104 -0
  75. package/src/components/MiradorMenuButton.jsx +71 -0
  76. package/src/components/MosaicRenderPreview.jsx +16 -0
  77. package/src/components/NestedMenu.jsx +42 -0
  78. package/src/components/NewBrowserWindow.jsx +34 -0
  79. package/src/components/OpenSeadragonComponent.jsx +258 -0
  80. package/src/components/OpenSeadragonTileSource.jsx +105 -0
  81. package/src/components/OpenSeadragonViewer.jsx +161 -0
  82. package/src/components/PluginHook.jsx +27 -0
  83. package/src/components/PrimaryWindow.jsx +115 -0
  84. package/src/components/SanitizedHtml.jsx +37 -0
  85. package/src/components/ScrollIndicatedDialogContent.jsx +60 -0
  86. package/src/components/ScrollTo.jsx +61 -0
  87. package/src/components/SearchHit.jsx +220 -0
  88. package/src/components/SearchPanel.jsx +80 -0
  89. package/src/components/SearchPanelControls.jsx +174 -0
  90. package/src/components/SearchPanelNavigation.jsx +84 -0
  91. package/src/components/SearchResults.jsx +138 -0
  92. package/src/components/SelectCollection.jsx +44 -0
  93. package/src/components/SidebarIndexItem.jsx +11 -0
  94. package/src/components/SidebarIndexList.jsx +73 -0
  95. package/src/components/SidebarIndexTableOfContents.jsx +170 -0
  96. package/src/components/SidebarIndexThumbnail.jsx +22 -0
  97. package/src/components/TextViewer.jsx +37 -0
  98. package/src/components/ThumbnailCanvasGrouping.jsx +122 -0
  99. package/src/components/ThumbnailNavigation.jsx +231 -0
  100. package/src/components/VideoViewer.jsx +35 -0
  101. package/src/components/ViewerInfo.jsx +55 -0
  102. package/src/components/ViewerNavigation.jsx +72 -0
  103. package/src/components/Window.jsx +150 -0
  104. package/src/components/WindowAuthenticationBar.jsx +176 -0
  105. package/src/components/WindowCanvasNavigationControls.jsx +91 -0
  106. package/src/components/WindowList.jsx +71 -0
  107. package/src/components/WindowListButton.jsx +57 -0
  108. package/src/components/WindowSideBar.jsx +48 -0
  109. package/src/components/WindowSideBarAnnotationsPanel.jsx +51 -0
  110. package/src/components/WindowSideBarButtons.jsx +151 -0
  111. package/src/components/WindowSideBarCanvasPanel.jsx +165 -0
  112. package/src/components/WindowSideBarCollectionPanel.jsx +179 -0
  113. package/src/components/WindowSideBarInfoPanel.jsx +67 -0
  114. package/src/components/WindowThumbnailSettings.jsx +130 -0
  115. package/src/components/WindowTopBar.jsx +125 -0
  116. package/src/components/WindowTopBarPluginArea.jsx +8 -0
  117. package/src/components/WindowTopBarPluginMenu.jsx +78 -0
  118. package/src/components/WindowTopBarTitle.jsx +73 -0
  119. package/src/components/WindowTopMenu.jsx +81 -0
  120. package/src/components/WindowTopMenuButton.jsx +49 -0
  121. package/src/components/WindowViewSettings.jsx +95 -0
  122. package/src/components/WindowViewer.jsx +26 -0
  123. package/src/components/Workspace.jsx +124 -0
  124. package/src/components/WorkspaceAdd.jsx +221 -0
  125. package/src/components/WorkspaceAddButton.jsx +73 -0
  126. package/src/components/WorkspaceArea.jsx +66 -0
  127. package/src/components/WorkspaceControlPanel.jsx +85 -0
  128. package/src/components/WorkspaceControlPanelButtons.jsx +20 -0
  129. package/src/components/WorkspaceDialog.jsx +11 -0
  130. package/src/components/WorkspaceElastic.jsx +88 -0
  131. package/src/components/WorkspaceElasticWindow.jsx +79 -0
  132. package/src/components/WorkspaceExport.jsx +99 -0
  133. package/src/components/WorkspaceImport.jsx +89 -0
  134. package/src/components/WorkspaceMenu.jsx +126 -0
  135. package/src/components/WorkspaceMenuButton.jsx +42 -0
  136. package/src/components/WorkspaceMosaic.jsx +149 -0
  137. package/src/components/WorkspaceOptionsButton.jsx +35 -0
  138. package/src/components/WorkspaceOptionsMenu.jsx +112 -0
  139. package/src/components/WorkspaceSelectionDialog.jsx +165 -0
  140. package/src/components/ZoomControls.jsx +57 -0
  141. package/src/components/icons/BookViewIcon.jsx +14 -0
  142. package/src/components/icons/CanvasIndexIcon.jsx +14 -0
  143. package/src/components/icons/GalleryViewIcon.jsx +17 -0
  144. package/src/components/icons/MiradorIcon.jsx +14 -0
  145. package/src/components/icons/RestoreZoomIcon.jsx +15 -0
  146. package/src/components/icons/ThumbnailNavigationBottomIcon.jsx +15 -0
  147. package/src/components/icons/ThumbnailNavigationRightIcon.jsx +16 -0
  148. package/src/components/icons/WindowMaxIcon.jsx +15 -0
  149. package/src/components/icons/WindowMinIcon.jsx +15 -0
  150. package/src/components/icons/WindowOptionsIcon.jsx +16 -0
  151. package/src/components/icons/WorkspaceTypeElasticIcon.jsx +157 -0
  152. package/src/components/icons/WorkspaceTypeMosaicIcon.jsx +162 -0
  153. package/src/components/icons/index.js +27 -0
  154. package/src/components/index.js +108 -0
  155. package/src/config/css-ns.js +10 -0
  156. package/src/config/index.js +2 -0
  157. package/src/config/settings.js +607 -0
  158. package/src/containers/AnnotationSettings.js +27 -0
  159. package/src/containers/AnnotationsOverlay.js +51 -0
  160. package/src/containers/AppProviders.js +20 -0
  161. package/src/containers/AttributionPanel.js +20 -0
  162. package/src/containers/AudioViewer.js +16 -0
  163. package/src/containers/BackgroundPluginArea.js +4 -0
  164. package/src/containers/Branding.js +4 -0
  165. package/src/containers/CanvasAnnotations.js +32 -0
  166. package/src/containers/CanvasInfo.js +20 -0
  167. package/src/containers/CanvasLayers.js +25 -0
  168. package/src/containers/ChangeThemeDialog.js +29 -0
  169. package/src/containers/CollapsibleSection.js +3 -0
  170. package/src/containers/CollectionDialog.js +48 -0
  171. package/src/containers/CollectionInfo.js +29 -0
  172. package/src/containers/CompanionArea.js +22 -0
  173. package/src/containers/CompanionWindow.js +40 -0
  174. package/src/containers/CompanionWindowFactory.js +23 -0
  175. package/src/containers/CustomPanel.js +13 -0
  176. package/src/containers/ErrorContent.js +20 -0
  177. package/src/containers/ErrorDialog.js +28 -0
  178. package/src/containers/FullScreenButton.js +22 -0
  179. package/src/containers/GalleryView.js +23 -0
  180. package/src/containers/GalleryViewThumbnail.js +51 -0
  181. package/src/containers/IIIFAuthentication.js +86 -0
  182. package/src/containers/IIIFThumbnail.js +17 -0
  183. package/src/containers/LabelValueMetadata.js +14 -0
  184. package/src/containers/LanguageSettings.js +26 -0
  185. package/src/containers/LayersPanel.js +16 -0
  186. package/src/containers/LocalePicker.js +3 -0
  187. package/src/containers/ManifestForm.js +16 -0
  188. package/src/containers/ManifestInfo.js +29 -0
  189. package/src/containers/ManifestListItem.js +52 -0
  190. package/src/containers/ManifestListItemError.js +15 -0
  191. package/src/containers/ManifestRelatedLinks.js +28 -0
  192. package/src/containers/MinimalWindow.js +25 -0
  193. package/src/containers/MiradorMenuButton.js +7 -0
  194. package/src/containers/MosaicRenderPreview.js +14 -0
  195. package/src/containers/OpenSeadragonViewer.js +59 -0
  196. package/src/containers/PrimaryWindow.js +27 -0
  197. package/src/containers/SanitizedHtml.js +3 -0
  198. package/src/containers/ScrollIndicatedDialogContent.js +3 -0
  199. package/src/containers/SearchHit.js +71 -0
  200. package/src/containers/SearchPanel.js +23 -0
  201. package/src/containers/SearchPanelControls.js +36 -0
  202. package/src/containers/SearchPanelNavigation.js +39 -0
  203. package/src/containers/SearchResults.js +38 -0
  204. package/src/containers/SelectCollection.js +24 -0
  205. package/src/containers/SidebarIndexItem.js +8 -0
  206. package/src/containers/SidebarIndexList.js +28 -0
  207. package/src/containers/SidebarIndexTableOfContents.js +31 -0
  208. package/src/containers/SidebarIndexThumbnail.js +18 -0
  209. package/src/containers/TextViewer.js +19 -0
  210. package/src/containers/ThumbnailCanvasGrouping.js +29 -0
  211. package/src/containers/ThumbnailNavigation.js +48 -0
  212. package/src/containers/VideoViewer.js +16 -0
  213. package/src/containers/ViewerInfo.js +30 -0
  214. package/src/containers/ViewerNavigation.js +31 -0
  215. package/src/containers/Window.js +45 -0
  216. package/src/containers/WindowAuthenticationBar.js +7 -0
  217. package/src/containers/WindowCanvasNavigationControls.js +15 -0
  218. package/src/containers/WindowList.js +30 -0
  219. package/src/containers/WindowListButton.js +15 -0
  220. package/src/containers/WindowSideBar.js +20 -0
  221. package/src/containers/WindowSideBarAnnotationsPanel.js +23 -0
  222. package/src/containers/WindowSideBarButtons.js +75 -0
  223. package/src/containers/WindowSideBarCanvasPanel.js +50 -0
  224. package/src/containers/WindowSideBarCollectionPanel.js +48 -0
  225. package/src/containers/WindowSideBarInfoPanel.js +35 -0
  226. package/src/containers/WindowThumbnailSettings.js +31 -0
  227. package/src/containers/WindowTopBar.js +39 -0
  228. package/src/containers/WindowTopBarPluginArea.js +8 -0
  229. package/src/containers/WindowTopBarPluginMenu.js +7 -0
  230. package/src/containers/WindowTopBarTitle.js +17 -0
  231. package/src/containers/WindowTopMenu.js +28 -0
  232. package/src/containers/WindowTopMenuButton.js +7 -0
  233. package/src/containers/WindowViewSettings.js +30 -0
  234. package/src/containers/WindowViewer.js +10 -0
  235. package/src/containers/Workspace.js +36 -0
  236. package/src/containers/WorkspaceAdd.js +27 -0
  237. package/src/containers/WorkspaceAddButton.js +30 -0
  238. package/src/containers/WorkspaceArea.js +21 -0
  239. package/src/containers/WorkspaceControlPanel.js +10 -0
  240. package/src/containers/WorkspaceControlPanelButtons.js +7 -0
  241. package/src/containers/WorkspaceElastic.js +41 -0
  242. package/src/containers/WorkspaceElasticWindow.js +36 -0
  243. package/src/containers/WorkspaceExport.js +18 -0
  244. package/src/containers/WorkspaceImport.js +19 -0
  245. package/src/containers/WorkspaceMenu.js +30 -0
  246. package/src/containers/WorkspaceMenuButton.js +10 -0
  247. package/src/containers/WorkspaceMosaic.js +32 -0
  248. package/src/containers/WorkspaceOptionsButton.js +7 -0
  249. package/src/containers/WorkspaceOptionsMenu.js +3 -0
  250. package/src/containers/WorkspaceSelectionDialog.js +26 -0
  251. package/src/containers/ZoomControls.js +26 -0
  252. package/src/containers/index.js +94 -0
  253. package/src/contexts/FailedImageContext.js +8 -0
  254. package/src/contexts/FailedImageProvider.jsx +34 -0
  255. package/src/contexts/FullScreenContext.js +5 -0
  256. package/src/contexts/LocaleContext.js +5 -0
  257. package/src/contexts/OpenSeadragonViewerContext.js +5 -0
  258. package/src/contexts/WorkspaceContext.js +5 -0
  259. package/src/contexts/index.js +4 -0
  260. package/src/extend/PluginContext.js +5 -0
  261. package/src/extend/PluginProvider.jsx +22 -0
  262. package/src/extend/index.js +9 -0
  263. package/src/extend/pluginMapping.js +44 -0
  264. package/src/extend/pluginPreprocessing.js +45 -0
  265. package/src/extend/pluginValidation.js +58 -0
  266. package/src/extend/usePlugins.js +13 -0
  267. package/src/extend/withPlugins.jsx +46 -0
  268. package/src/hooks/index.js +4 -0
  269. package/src/hooks/useCanvasWorldService.js +10 -0
  270. package/src/hooks/useThumbnailService.js +8 -0
  271. package/src/i18n.js +71 -0
  272. package/src/index.js +18 -0
  273. package/src/init.js +20 -0
  274. package/src/lib/AnnotationFactory.js +23 -0
  275. package/src/lib/AnnotationItem.js +123 -0
  276. package/src/lib/AnnotationList.js +31 -0
  277. package/src/lib/AnnotationPage.js +41 -0
  278. package/src/lib/AnnotationResource.js +122 -0
  279. package/src/lib/CanvasAnnotationDisplay.js +148 -0
  280. package/src/lib/CanvasGroupings.js +55 -0
  281. package/src/lib/CanvasWorld.js +214 -0
  282. package/src/lib/CompanionWindowRegistry.js +23 -0
  283. package/src/lib/FullScreenHandle.jsx +76 -0
  284. package/src/lib/MiradorCanvas.js +211 -0
  285. package/src/lib/MiradorManifest.js +44 -0
  286. package/src/lib/MiradorViewer.jsx +53 -0
  287. package/src/lib/MosaicLayout.js +77 -0
  288. package/src/lib/OpenSeadragonCanvasOverlay.js +114 -0
  289. package/src/lib/ThumbnailFactory.js +310 -0
  290. package/src/lib/TruncatedHit.js +34 -0
  291. package/src/lib/asArray.js +11 -0
  292. package/src/lib/htmlRules.js +28 -0
  293. package/src/lib/iiif.js +12 -0
  294. package/src/lib/index.js +23 -0
  295. package/src/lib/readImageMetadata.js +21 -0
  296. package/src/lib/svgShapesToPath.js +49 -0
  297. package/src/locales/README.md +60 -0
  298. package/src/locales/ar/translation.json +141 -0
  299. package/src/locales/bg/translation.json +164 -0
  300. package/src/locales/de/translation.json +169 -0
  301. package/src/locales/en/translation.json +170 -0
  302. package/src/locales/et/translation.json +164 -0
  303. package/src/locales/fa/translation.json +164 -0
  304. package/src/locales/fr/translation.json +158 -0
  305. package/src/locales/hr/translation.json +164 -0
  306. package/src/locales/hu/translation.json +166 -0
  307. package/src/locales/it/translation.json +162 -0
  308. package/src/locales/ja/translation.json +156 -0
  309. package/src/locales/kr/translation.json +162 -0
  310. package/src/locales/lt/translation.json +153 -0
  311. package/src/locales/nbNo/translation.json +162 -0
  312. package/src/locales/nl/translation.json +139 -0
  313. package/src/locales/pl/translation.json +162 -0
  314. package/src/locales/ptBr/translation.json +133 -0
  315. package/src/locales/sr/translation.json +155 -0
  316. package/src/locales/sv/translation.json +157 -0
  317. package/src/locales/ta/translation.json +167 -0
  318. package/src/locales/vi/translation.json +156 -0
  319. package/src/locales/zhCn/translation.json +163 -0
  320. package/src/locales/zhTw/translation.json +163 -0
  321. package/src/plugins/OSDReferences.js +15 -0
  322. package/src/plugins/index.js +1 -0
  323. package/src/state/actions/action-types.js +76 -0
  324. package/src/state/actions/annotation.js +123 -0
  325. package/src/state/actions/auth.js +109 -0
  326. package/src/state/actions/canvas.js +65 -0
  327. package/src/state/actions/catalog.js +22 -0
  328. package/src/state/actions/companionWindow.js +107 -0
  329. package/src/state/actions/config.js +49 -0
  330. package/src/state/actions/elasticLayout.js +10 -0
  331. package/src/state/actions/errors.js +22 -0
  332. package/src/state/actions/index.js +19 -0
  333. package/src/state/actions/infoResponse.js +90 -0
  334. package/src/state/actions/layers.js +14 -0
  335. package/src/state/actions/manifest.js +65 -0
  336. package/src/state/actions/search.js +97 -0
  337. package/src/state/actions/window.js +209 -0
  338. package/src/state/actions/workspace.js +84 -0
  339. package/src/state/createPluggableStore.js +24 -0
  340. package/src/state/createStore.js +33 -0
  341. package/src/state/index.js +21 -0
  342. package/src/state/reducers/accessTokens.js +59 -0
  343. package/src/state/reducers/annotations.js +48 -0
  344. package/src/state/reducers/auth.js +43 -0
  345. package/src/state/reducers/catalog.js +30 -0
  346. package/src/state/reducers/companionWindows.js +49 -0
  347. package/src/state/reducers/config.js +39 -0
  348. package/src/state/reducers/elasticLayout.js +29 -0
  349. package/src/state/reducers/errors.js +51 -0
  350. package/src/state/reducers/index.js +15 -0
  351. package/src/state/reducers/infoResponses.js +61 -0
  352. package/src/state/reducers/layers.js +23 -0
  353. package/src/state/reducers/manifests.js +52 -0
  354. package/src/state/reducers/rootReducer.js +44 -0
  355. package/src/state/reducers/search.js +145 -0
  356. package/src/state/reducers/utils.js +45 -0
  357. package/src/state/reducers/viewers.js +42 -0
  358. package/src/state/reducers/windows.js +185 -0
  359. package/src/state/reducers/workspace.js +111 -0
  360. package/src/state/sagas/annotations.js +48 -0
  361. package/src/state/sagas/app.js +56 -0
  362. package/src/state/sagas/auth.js +151 -0
  363. package/src/state/sagas/iiif.js +233 -0
  364. package/src/state/sagas/index.js +30 -0
  365. package/src/state/sagas/windows.js +293 -0
  366. package/src/state/selectors/annotations.js +138 -0
  367. package/src/state/selectors/auth.js +100 -0
  368. package/src/state/selectors/canvases.js +260 -0
  369. package/src/state/selectors/companionWindows.js +182 -0
  370. package/src/state/selectors/config.js +100 -0
  371. package/src/state/selectors/getters.js +90 -0
  372. package/src/state/selectors/index.js +17 -0
  373. package/src/state/selectors/layers.js +79 -0
  374. package/src/state/selectors/manifests.js +433 -0
  375. package/src/state/selectors/ranges.js +147 -0
  376. package/src/state/selectors/searches.js +249 -0
  377. package/src/state/selectors/sequences.js +134 -0
  378. package/src/state/selectors/thumbnails.js +28 -0
  379. package/src/state/selectors/utils.js +18 -0
  380. package/src/state/selectors/viewer.js +19 -0
  381. package/src/state/selectors/windows.js +98 -0
  382. package/src/state/selectors/workspace.js +52 -0
  383. package/src/state/selectors/wrappers.js +15 -0
  384. package/src/styles/react-mosaic-component.js +288 -0
@@ -0,0 +1,28 @@
1
+ import { compose } from 'redux';
2
+ import { connect } from 'react-redux';
3
+ import { withPlugins } from '../extend/withPlugins';
4
+ import * as actions from '../state/actions';
5
+ import { WindowTopMenu } from '../components/WindowTopMenu';
6
+ import { getConfig } from '../state/selectors';
7
+
8
+ /**
9
+ * mapStateToProps - to hook up connect
10
+ * @memberof WindowTopMenu
11
+ * @private
12
+ */
13
+ const mapStateToProps = (state) => ({
14
+ showThumbnailNavigationSettings: getConfig(state).thumbnailNavigation.displaySettings,
15
+ });
16
+
17
+ /**
18
+ * mapStateToProps - used to hook up connect to state
19
+ * @memberof WindowTopMenu
20
+ * @private
21
+ */
22
+ const mapDispatchToProps = (dispatch) => ({
23
+ toggleDraggingEnabled: () => dispatch(actions.toggleDraggingEnabled()),
24
+ });
25
+
26
+ const enhance = compose(connect(mapStateToProps, mapDispatchToProps), withPlugins('WindowTopMenu'));
27
+
28
+ export default enhance(WindowTopMenu);
@@ -0,0 +1,7 @@
1
+ import { compose } from 'redux';
2
+ import { withPlugins } from '../extend/withPlugins';
3
+ import { WindowTopMenuButton } from '../components/WindowTopMenuButton';
4
+
5
+ const enhance = compose(withPlugins('WindowTopMenuButton'));
6
+
7
+ export default enhance(WindowTopMenuButton);
@@ -0,0 +1,30 @@
1
+ import { compose } from 'redux';
2
+ import { connect } from 'react-redux';
3
+ import { withPlugins } from '../extend/withPlugins';
4
+ import * as actions from '../state/actions';
5
+ import { getAllowedWindowViewTypes, getWindowViewType } from '../state/selectors';
6
+ import { WindowViewSettings } from '../components/WindowViewSettings';
7
+
8
+ /**
9
+ * mapDispatchToProps - used to hook up connect to action creators
10
+ * @memberof ManifestListItem
11
+ * @private
12
+ */
13
+ const mapDispatchToProps = { setWindowViewType: actions.setWindowViewType };
14
+
15
+ /**
16
+ * mapStateToProps - to hook up connect
17
+ * @memberof WindowViewer
18
+ * @private
19
+ */
20
+ const mapStateToProps = (state, { windowId }) => ({
21
+ viewTypes: getAllowedWindowViewTypes(state, { windowId }),
22
+ windowViewType: getWindowViewType(state, { windowId }),
23
+ });
24
+
25
+ const enhance = compose(
26
+ connect(mapStateToProps, mapDispatchToProps, null, { forwardRef: true }),
27
+ withPlugins('WindowViewSettings'),
28
+ );
29
+
30
+ export default enhance(WindowViewSettings);
@@ -0,0 +1,10 @@
1
+ import { compose } from 'redux';
2
+ import { withPlugins } from '../extend/withPlugins';
3
+ import { WindowViewer } from '../components/WindowViewer';
4
+
5
+ const enhance = compose(
6
+ withPlugins('WindowViewer'),
7
+ // further HOC go here
8
+ );
9
+
10
+ export default enhance(WindowViewer);
@@ -0,0 +1,36 @@
1
+ import { compose } from 'redux';
2
+ import { connect } from 'react-redux';
3
+ import { withPlugins } from '../extend/withPlugins';
4
+ import { Workspace } from '../components/Workspace';
5
+ import { getMaximizedWindowsIds, getWindowIds, getWorkspaceType, getConfig, getWorkspace } from '../state/selectors';
6
+ import * as actions from '../state/actions';
7
+
8
+ /**
9
+ * mapStateToProps - to hook up connect
10
+ * @memberof Workspace
11
+ * @private
12
+ */
13
+ const mapStateToProps = (state) => ({
14
+ allowNewWindows: getConfig(state).workspace.allowNewWindows,
15
+ maximizedWindowIds: getMaximizedWindowsIds(state),
16
+ windowIds: getWindowIds(state),
17
+ workspaceId: getWorkspace(state).id,
18
+ workspaceType: getWorkspaceType(state),
19
+ });
20
+
21
+ /**
22
+ * mapDispatchToProps - used to hook up connect to action creators
23
+ * @memberof Workspace
24
+ * @private
25
+ */
26
+ const mapDispatchToProps = {
27
+ addWindow: actions.addWindow,
28
+ };
29
+
30
+ const enhance = compose(
31
+ connect(mapStateToProps, mapDispatchToProps),
32
+ withPlugins('Workspace'),
33
+ // further HOC go here
34
+ );
35
+
36
+ export default enhance(Workspace);
@@ -0,0 +1,27 @@
1
+ import { compose } from 'redux';
2
+ import { connect } from 'react-redux';
3
+ import { withPlugins } from '../extend/withPlugins';
4
+ import * as actions from '../state/actions';
5
+ import { WorkspaceAdd } from '../components/WorkspaceAdd';
6
+ import { getCatalog } from '../state/selectors';
7
+
8
+ /**
9
+ * mapStateToProps - to hook up connect
10
+ * @memberof Workspace
11
+ * @private
12
+ */
13
+ const mapStateToProps = (state) => ({ catalog: getCatalog(state) });
14
+
15
+ /**
16
+ * mapDispatchToProps - used to hook up connect to action creators
17
+ * @memberof Workspace
18
+ * @private
19
+ */
20
+ const mapDispatchToProps = {
21
+ addResource: actions.addResource,
22
+ setWorkspaceAddVisibility: actions.setWorkspaceAddVisibility,
23
+ };
24
+
25
+ const enhance = compose(connect(mapStateToProps, mapDispatchToProps), withPlugins('WorkspaceAdd'));
26
+
27
+ export default enhance(WorkspaceAdd);
@@ -0,0 +1,30 @@
1
+ import { connect } from 'react-redux';
2
+ import { compose } from 'redux';
3
+ import { withPlugins } from '../extend/withPlugins';
4
+ import * as actions from '../state/actions';
5
+ import { getWindowIds, getWorkspace } from '../state/selectors';
6
+ import { WorkspaceAddButton } from '../components/WorkspaceAddButton';
7
+
8
+ /**
9
+ * mapStateToProps - to hook up connect
10
+ * @memberof WorkspaceControlPanel
11
+ * @private
12
+ */
13
+ const mapStateToProps = (state, { width }) => {
14
+ const { isWorkspaceAddVisible } = getWorkspace(state);
15
+ return {
16
+ isWorkspaceAddVisible,
17
+ useExtendedFab: !isWorkspaceAddVisible && getWindowIds(state).length === 0,
18
+ };
19
+ };
20
+
21
+ /**
22
+ * mapDispatchToProps - used to hook up connect to action creators
23
+ * @memberof Workspace
24
+ * @private
25
+ */
26
+ const mapDispatchToProps = { setWorkspaceAddVisibility: actions.setWorkspaceAddVisibility };
27
+
28
+ const enhance = compose(connect(mapStateToProps, mapDispatchToProps), withPlugins('WorkspaceAddButton'));
29
+
30
+ export default enhance(WorkspaceAddButton);
@@ -0,0 +1,21 @@
1
+ import { compose } from 'redux';
2
+ import { connect } from 'react-redux';
3
+ import { withPlugins } from '../extend/withPlugins';
4
+ import { WorkspaceArea } from '../components/WorkspaceArea';
5
+ import { getConfig, getWindowIds, getWorkspace } from '../state/selectors';
6
+
7
+ /**
8
+ * mapStateToProps - to hook up connect
9
+ * @memberof App
10
+ * @private
11
+ */
12
+ const mapStateToProps = (state) => ({
13
+ controlPanelVariant: getWorkspace(state).isWorkspaceAddVisible || getWindowIds(state).length > 0 ? undefined : 'wide',
14
+ isWorkspaceAddVisible: getWorkspace(state).isWorkspaceAddVisible,
15
+ isWorkspaceControlPanelVisible: getConfig(state).workspaceControlPanel.enabled,
16
+ lang: getConfig(state).language,
17
+ });
18
+
19
+ const enhance = compose(connect(mapStateToProps), withPlugins('WorkspaceArea'));
20
+
21
+ export default enhance(WorkspaceArea);
@@ -0,0 +1,10 @@
1
+ import { compose } from 'redux';
2
+ import { withPlugins } from '../extend/withPlugins';
3
+ import { WorkspaceControlPanel } from '../components/WorkspaceControlPanel';
4
+
5
+ const enhance = compose(
6
+ withPlugins('WorkspaceControlPanel'),
7
+ // further HOC go here
8
+ );
9
+
10
+ export default enhance(WorkspaceControlPanel);
@@ -0,0 +1,7 @@
1
+ import { compose } from 'redux';
2
+ import { withPlugins } from '../extend/withPlugins';
3
+ import { WorkspaceControlPanelButtons } from '../components/WorkspaceControlPanelButtons';
4
+
5
+ const enhance = compose(withPlugins('WorkspaceControlPanelButtons'));
6
+
7
+ export default enhance(WorkspaceControlPanelButtons);
@@ -0,0 +1,41 @@
1
+ import { compose } from 'redux';
2
+ import { connect } from 'react-redux';
3
+ import { withPlugins } from '../extend/withPlugins';
4
+ import * as actions from '../state/actions';
5
+ import WorkspaceElastic from '../components/WorkspaceElastic';
6
+ import { getElasticLayout, getWorkspace } from '../state/selectors';
7
+
8
+ /**
9
+ * mapStateToProps - to hook up connect
10
+ * @memberof Workspace
11
+ * @private
12
+ */
13
+ const mapStateToProps = (state) => ({
14
+ elasticLayout: getElasticLayout(state),
15
+ workspace: getWorkspace(state),
16
+ });
17
+
18
+ /**
19
+ * mapDispatchToProps - used to hook up connect to action creators
20
+ * @memberof Workspace
21
+ * @private
22
+ */
23
+ const mapDispatchToProps = (dispatch, props) => ({
24
+ setWorkspaceViewportDimensions: (position) => {
25
+ dispatch(actions.setWorkspaceViewportDimensions(position));
26
+ },
27
+ setWorkspaceViewportPosition: (position) => {
28
+ dispatch(actions.setWorkspaceViewportPosition(position));
29
+ },
30
+ updateElasticWindowLayout: (windowId, position) => {
31
+ dispatch(actions.updateElasticWindowLayout(windowId, position));
32
+ },
33
+ });
34
+
35
+ const enhance = compose(
36
+ connect(mapStateToProps, mapDispatchToProps),
37
+ withPlugins('WorkspaceElastic'),
38
+ // further HOC go here
39
+ );
40
+
41
+ export default enhance(WorkspaceElastic);
@@ -0,0 +1,36 @@
1
+ import { compose } from 'redux';
2
+ import { connect } from 'react-redux';
3
+ import * as actions from '../state/actions';
4
+ import WorkspaceElasticWindow from '../components/WorkspaceElasticWindow';
5
+ import { selectCompanionWindowDimensions, getWorkspace, isFocused, getElasticLayout } from '../state/selectors';
6
+
7
+ /**
8
+ * mapStateToProps - to hook up connect
9
+ * @memberof Workspace
10
+ * @private
11
+ */
12
+ const mapStateToProps = (state, { windowId }) => ({
13
+ companionWindowDimensions: selectCompanionWindowDimensions(state, { windowId }),
14
+ focused: isFocused(state, { windowId }),
15
+ layout: getElasticLayout(state)[windowId],
16
+ workspace: getWorkspace(state),
17
+ });
18
+
19
+ /**
20
+ * mapDispatchToProps - used to hook up connect to action creators
21
+ * @memberof Workspace
22
+ * @private
23
+ */
24
+ const mapDispatchToProps = (dispatch, props) => ({
25
+ focusWindow: () => dispatch(actions.focusWindow(props.windowId)),
26
+ updateElasticWindowLayout: (windowId, position) => {
27
+ dispatch(actions.updateElasticWindowLayout(windowId, position));
28
+ },
29
+ });
30
+
31
+ const enhance = compose(
32
+ connect(mapStateToProps, mapDispatchToProps),
33
+ // further HOC go here
34
+ );
35
+
36
+ export default enhance(WorkspaceElasticWindow);
@@ -0,0 +1,18 @@
1
+ import { compose } from 'redux';
2
+ import { connect } from 'react-redux';
3
+ import { withPlugins } from '../extend/withPlugins';
4
+ import { WorkspaceExport } from '../components/WorkspaceExport';
5
+ import { getExportableState } from '../state/selectors';
6
+
7
+ /**
8
+ * mapStateToProps - to hook up connect
9
+ * @memberof Workspace
10
+ * @private
11
+ */
12
+ const mapStateToProps = (state) => ({
13
+ exportableState: getExportableState(state),
14
+ });
15
+
16
+ const enhance = compose(connect(mapStateToProps, {}), withPlugins('WorkspaceExport'));
17
+
18
+ export default enhance(WorkspaceExport);
@@ -0,0 +1,19 @@
1
+ import { compose } from 'redux';
2
+ import { connect } from 'react-redux';
3
+ import { withPlugins } from '../extend/withPlugins';
4
+ import { WorkspaceImport } from '../components/WorkspaceImport';
5
+ import * as actions from '../state/actions';
6
+
7
+ /**
8
+ * mapDispatchToProps - used to hook up connect to action creators
9
+ * @memberof App
10
+ * @private
11
+ */
12
+ const mapDispatchToProps = {
13
+ addError: actions.addError,
14
+ importConfig: actions.importMiradorState,
15
+ };
16
+
17
+ const enhance = compose(connect(null, mapDispatchToProps), withPlugins('WorkspaceImport'));
18
+
19
+ export default enhance(WorkspaceImport);
@@ -0,0 +1,30 @@
1
+ import { compose } from 'redux';
2
+ import { connect } from 'react-redux';
3
+ import { withPlugins } from '../extend/withPlugins';
4
+ import * as actions from '../state/actions';
5
+ import { getShowZoomControlsConfig, getThemeIds, getWorkspace } from '../state/selectors';
6
+ import { WorkspaceMenu } from '../components/WorkspaceMenu';
7
+
8
+ /**
9
+ * mapDispatchToProps - used to hook up connect to action creators
10
+ * @memberof WorkspaceMenu
11
+ * @private
12
+ */
13
+ const mapDispatchToProps = {
14
+ toggleZoomControls: actions.toggleZoomControls,
15
+ };
16
+
17
+ /**
18
+ * mapStateToProps - to hook up connect
19
+ * @memberof WindowViewer
20
+ * @private
21
+ */
22
+ const mapStateToProps = (state) => ({
23
+ isWorkspaceAddVisible: getWorkspace(state).isWorkspaceAddVisible,
24
+ showThemePicker: getThemeIds(state).length > 0,
25
+ showZoomControls: getShowZoomControlsConfig(state),
26
+ });
27
+
28
+ const enhance = compose(connect(mapStateToProps, mapDispatchToProps), withPlugins('WorkspaceMenu'));
29
+
30
+ export default enhance(WorkspaceMenu);
@@ -0,0 +1,10 @@
1
+ import { compose } from 'redux';
2
+ import { withPlugins } from '../extend/withPlugins';
3
+ import { WorkspaceMenuButton } from '../components/WorkspaceMenuButton';
4
+
5
+ const enhance = compose(
6
+ withPlugins('WorkspaceMenuButton'),
7
+ // further HOC
8
+ );
9
+
10
+ export default enhance(WorkspaceMenuButton);
@@ -0,0 +1,32 @@
1
+ import { compose } from 'redux';
2
+ import { connect } from 'react-redux';
3
+ import { withPlugins } from '../extend/withPlugins';
4
+ import { getWorkspace } from '../state/selectors';
5
+ import * as actions from '../state/actions';
6
+ import { WorkspaceMosaic } from '../components/WorkspaceMosaic';
7
+
8
+ /**
9
+ * mapStateToProps - to hook up connect
10
+ * @memberof Workspace
11
+ * @private
12
+ */
13
+ const mapStateToProps = (state) => ({
14
+ layout: getWorkspace(state).layout,
15
+ windowIds: getWorkspace(state).windowIds,
16
+ workspaceId: getWorkspace(state).id,
17
+ });
18
+
19
+ /**
20
+ * mapDispatchToProps - used to hook up connect to action creators
21
+ * @memberof Workspace
22
+ * @private
23
+ */
24
+ const mapDispatchToProps = { updateWorkspaceMosaicLayout: actions.updateWorkspaceMosaicLayout };
25
+
26
+ const enhance = compose(
27
+ connect(mapStateToProps, mapDispatchToProps),
28
+ withPlugins('WorkspaceMosaic'),
29
+ // further HOC go here
30
+ );
31
+
32
+ export default enhance(WorkspaceMosaic);
@@ -0,0 +1,7 @@
1
+ import { compose } from 'redux';
2
+ import { withPlugins } from '../extend/withPlugins';
3
+ import { WorkspaceOptionsButton } from '../components/WorkspaceOptionsButton';
4
+
5
+ const enhance = compose(withPlugins('WorkspaceOptionsButton'));
6
+
7
+ export default enhance(WorkspaceOptionsButton);
@@ -0,0 +1,3 @@
1
+ import { WorkspaceOptionsMenu } from '../components/WorkspaceOptionsMenu';
2
+
3
+ export default WorkspaceOptionsMenu;
@@ -0,0 +1,26 @@
1
+ import { compose } from 'redux';
2
+ import { connect } from 'react-redux';
3
+ import { withPlugins } from '../extend/withPlugins';
4
+ import { WorkspaceSelectionDialog } from '../components/WorkspaceSelectionDialog';
5
+ import * as actions from '../state/actions';
6
+ import { getWorkspaceType } from '../state/selectors';
7
+
8
+ /**
9
+ * mapDispatchToProps - used to hook up connect to action creators
10
+ * @memberof ManifestListItem
11
+ * @private
12
+ */
13
+ const mapDispatchToProps = {
14
+ updateWorkspace: actions.updateWorkspace,
15
+ };
16
+
17
+ /**
18
+ * mapStateToProps - to hook up connect
19
+ * @memberof Workspace
20
+ * @private
21
+ */
22
+ const mapStateToProps = (state) => ({ workspaceType: getWorkspaceType(state) });
23
+
24
+ const enhance = compose(connect(mapStateToProps, mapDispatchToProps), withPlugins('WorkspaceSelectionDialog'));
25
+
26
+ export default enhance(WorkspaceSelectionDialog);
@@ -0,0 +1,26 @@
1
+ import { compose } from 'redux';
2
+ import { connect } from 'react-redux';
3
+ import { withPlugins } from '../extend/withPlugins';
4
+ import * as actions from '../state/actions';
5
+ import { getViewer } from '../state/selectors';
6
+ import { ZoomControls } from '../components/ZoomControls';
7
+
8
+ /**
9
+ * mapStateToProps - to hook up connect
10
+ * @memberof Workspace
11
+ * @private
12
+ */
13
+ const mapStateToProps = (state, { windowId }) => ({
14
+ viewer: getViewer(state, { windowId }),
15
+ });
16
+
17
+ /**
18
+ * mapDispatchToProps - used to hook up connect to action creators
19
+ * @memberof Workspace
20
+ * @private
21
+ */
22
+ const mapDispatchToProps = { updateViewport: actions.updateViewport };
23
+
24
+ const enhance = compose(connect(mapStateToProps, mapDispatchToProps), withPlugins('ZoomControls'));
25
+
26
+ export default enhance(ZoomControls);
@@ -0,0 +1,94 @@
1
+ export { default as ConnectedAnnotationSettings } from './AnnotationSettings';
2
+ export { default as ConnectedAnnotationsOverlay } from './AnnotationsOverlay';
3
+ export { default as ConnectedAppProviders } from './AppProviders';
4
+ export { default as ConnectedAttributionPanel } from './AttributionPanel';
5
+ export { default as ConnectedAudioViewer } from './AudioViewer';
6
+ export { default as ConnectedBackgroundPluginArea } from './BackgroundPluginArea';
7
+ export { default as ConnectedBranding } from './Branding';
8
+ export { default as ConnectedCanvasAnnotations } from './CanvasAnnotations';
9
+ export { default as ConnectedCanvasInfo } from './CanvasInfo';
10
+ export { default as ConnectedCanvasLayers } from './CanvasLayers';
11
+ export { default as ConnectedChangeThemeDialog } from './ChangeThemeDialog';
12
+ export { default as ConnectedCollapsibleSection } from './CollapsibleSection';
13
+ export { default as ConnectedCollectionDialog } from './CollectionDialog';
14
+ export { default as ConnectedCollectionInfo } from './CollectionInfo';
15
+ export { default as ConnectedCompanionArea } from './CompanionArea';
16
+ export { default as ConnectedCompanionWindow } from './CompanionWindow';
17
+ export { default as ConnectedCompanionWindowFactory } from './CompanionWindowFactory';
18
+ export { default as ConnectedCustomPanel } from './CustomPanel';
19
+ export { default as ConnectedErrorContent } from './ErrorContent';
20
+ export { default as ConnectedErrorDialog } from './ErrorDialog';
21
+ export { default as ConnectedFullScreenButton } from './FullScreenButton';
22
+ export { default as ConnectedGalleryView } from './GalleryView';
23
+ export { default as ConnectedGalleryViewThumbnail } from './GalleryViewThumbnail';
24
+ export { default as ConnectedIIIFAuthentication } from './IIIFAuthentication';
25
+ export { default as ConnectedIIIFThumbnail } from './IIIFThumbnail';
26
+ export { default as ConnectedLanguageSettings } from './LanguageSettings';
27
+ export { default as ConnectedLabelValueMetadata } from './LabelValueMetadata';
28
+ export { default as ConnectedLayersPanel } from './LayersPanel';
29
+ export { default as ConnectedLocalePicker } from './LocalePicker';
30
+ export { default as ConnectedManifestForm } from './ManifestForm';
31
+ export { default as ConnectedManifestInfo } from './ManifestInfo';
32
+ export { default as ConnectedManifestListItem } from './ManifestListItem';
33
+ export { default as ConnectedManifestListItemError } from './ManifestListItemError';
34
+ export { default as ConnectedManifestRelatedLinks } from './ManifestRelatedLinks';
35
+ export { default as ConnectedMinimalWindow } from './MinimalWindow';
36
+ export { default as ConnectedMiradorMenuButton } from './MiradorMenuButton';
37
+ export { default as ConnectedMosaicRenderPreview } from './MosaicRenderPreview';
38
+ export { default as ConnectedOpenSeadragonViewer } from './OpenSeadragonViewer';
39
+ export { default as ConnectedPrimaryWindow } from './PrimaryWindow';
40
+ export { default as ConnectedSanitizedHtml } from './SanitizedHtml';
41
+ export { default as ConnectedScrollIndicatedDialogContent } from './ScrollIndicatedDialogContent';
42
+ export { default as ConnectedSearchHit } from './SearchHit';
43
+ export { default as ConnectedSearchPanel } from './SearchPanel';
44
+ export { default as ConnectedSearchPanelControls } from './SearchPanelControls';
45
+ export { default as ConnectedSearchPanelNavigation } from './SearchPanelNavigation';
46
+ export { default as ConnectedSearchResults } from './SearchResults';
47
+ export { default as ConnectedSelectCollection } from './SelectCollection';
48
+ export { default as ConnectedSidebarIndexItem } from './SidebarIndexItem';
49
+ export { default as ConnectedSidebarIndexList } from './SidebarIndexList';
50
+ export { default as ConnectedSidebarIndexTableOfContents } from './SidebarIndexTableOfContents';
51
+ export { default as ConnectedSidebarIndexThumbnail } from './SidebarIndexThumbnail';
52
+ export { default as ConnectedTextViewer } from './TextViewer';
53
+ export { default as ConnectedThumbnailCanvasGrouping } from './ThumbnailCanvasGrouping';
54
+ export { default as ConnectedThumbnailNavigation } from './ThumbnailNavigation';
55
+ export { default as ConnectedVideoViewer } from './VideoViewer';
56
+ export { default as ConnectedViewerInfo } from './ViewerInfo';
57
+ export { default as ConnectedViewerNavigation } from './ViewerNavigation';
58
+ export { default as ConnectedWindow } from './Window';
59
+ export { default as ConnectedWindowAuthenticationBar } from './WindowAuthenticationBar';
60
+ export { default as ConnectedWindowCanvasNavigationControls } from './WindowCanvasNavigationControls';
61
+ export { default as ConnectedWindowList } from './WindowList';
62
+ export { default as ConnectedWindowListButton } from './WindowListButton';
63
+ export { default as ConnectedWindowSideBar } from './WindowSideBar';
64
+ export { default as ConnectedWindowSideBarAnnotationsPanel } from './WindowSideBarAnnotationsPanel';
65
+ export { default as ConnectedWindowSideBarButtons } from './WindowSideBarButtons';
66
+ export { default as ConnectedWindowSideBarCanvasPanel } from './WindowSideBarCanvasPanel';
67
+ export { default as ConnectedWindowSideBarCollectionPanel } from './WindowSideBarCollectionPanel';
68
+ export { default as ConnectedWindowSideBarInfoPanel } from './WindowSideBarInfoPanel';
69
+ export { default as ConnectedWindowThumbnailSettings } from './WindowThumbnailSettings';
70
+ export { default as ConnectedWindowTopBar } from './WindowTopBar';
71
+ export { default as ConnectedWindowTopBarPluginArea } from './WindowTopBarPluginArea';
72
+ export { default as ConnectedWindowTopBarPluginMenu } from './WindowTopBarPluginMenu';
73
+ export { default as ConnectedWindowTopBarTitle } from './WindowTopBarTitle';
74
+ export { default as ConnectedWindowTopMenu } from './WindowTopMenu';
75
+ export { default as ConnectedWindowTopMenuButton } from './WindowTopMenuButton';
76
+ export { default as ConnectedWindowViewSettings } from './WindowViewSettings';
77
+ export { default as ConnectedWindowViewer } from './WindowViewer';
78
+ export { default as ConnectedWorkspace } from './Workspace';
79
+ export { default as ConnectedWorkspaceAdd } from './WorkspaceAdd';
80
+ export { default as ConnectedWorkspaceAddButton } from './WorkspaceAddButton';
81
+ export { default as ConnectedWorkspaceArea } from './WorkspaceArea';
82
+ export { default as ConnectedWorkspaceControlPanel } from './WorkspaceControlPanel';
83
+ export { default as ConnectedWorkspaceControlPanelButtons } from './WorkspaceControlPanelButtons';
84
+ export { default as ConnectedWorkspaceElastic } from './WorkspaceElastic';
85
+ export { default as ConnectedWorkspaceElasticWindow } from './WorkspaceElasticWindow';
86
+ export { default as ConnectedWorkspaceExport } from './WorkspaceExport';
87
+ export { default as ConnectedWorkspaceImport } from './WorkspaceImport';
88
+ export { default as ConnectedWorkspaceMenu } from './WorkspaceMenu';
89
+ export { default as ConnectedWorkspaceMenuButton } from './WorkspaceMenuButton';
90
+ export { default as ConnectedWorkspaceMosaic } from './WorkspaceMosaic';
91
+ export { default as ConnectedWorkspaceOptionsButton } from './WorkspaceOptionsButton';
92
+ export { default as ConnectedWorkspaceOptionsMenu } from './WorkspaceOptionsMenu';
93
+ export { default as ConnectedWorkspaceSelectionDialog } from './WorkspaceSelectionDialog';
94
+ export { default as ConnectedZoomControls } from './ZoomControls';
@@ -0,0 +1,8 @@
1
+ import { createContext } from 'react';
2
+
3
+ const FailedImageContext = createContext({
4
+ fallbackImage: '',
5
+ hasFailed: false,
6
+ notifyFailure: () => {},
7
+ });
8
+ export default FailedImageContext;
@@ -0,0 +1,34 @@
1
+ import { useState, useCallback } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import FailedImageContext from './FailedImageContext';
4
+ import config from '../config/settings';
5
+
6
+ // SVG fallback with Material-UI Warning icon
7
+ // Uses default primary blue (#1967d2) - override entire image via config.fallbackImage if needed
8
+ const defaultFallback =
9
+ 'data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" width="400" height="600"%3E%3Crect width="400" height="600" fill="%23f5f5f5"/%3E%3Cpath d="M 200 240 L 254 354 L 146 354 Z M 200 228 L 128 372 L 272 372 Z M 204.5 336 L 195.5 336 L 195.5 345 L 204.5 345 Z M 204.5 309 L 195.5 309 L 195.5 327 L 204.5 327 Z" fill="%231967d2"/%3E%3C/svg%3E';
10
+
11
+ export default function FailedImageProvider({ children }) {
12
+ const fallbackImage = config.fallbackImage || defaultFallback;
13
+ const [failedImages, setFailedImages] = useState(new Set());
14
+
15
+ const notifyFailure = useCallback((imageId) => {
16
+ setFailedImages((prev) => new Set(prev).add(imageId));
17
+ }, []);
18
+
19
+ return (
20
+ <FailedImageContext.Provider
21
+ value={{
22
+ failedImages,
23
+ fallbackImage,
24
+ notifyFailure,
25
+ }}
26
+ >
27
+ {children}
28
+ </FailedImageContext.Provider>
29
+ );
30
+ }
31
+
32
+ FailedImageProvider.propTypes = {
33
+ children: PropTypes.node.isRequired,
34
+ };
@@ -0,0 +1,5 @@
1
+ import { createContext } from 'react';
2
+
3
+ const FullScreenContext = createContext();
4
+
5
+ export default FullScreenContext;
@@ -0,0 +1,5 @@
1
+ import { createContext } from 'react';
2
+
3
+ const LocaleContext = createContext();
4
+
5
+ export default LocaleContext;
@@ -0,0 +1,5 @@
1
+ import { createContext } from 'react';
2
+
3
+ const ViewerContext = createContext(undefined);
4
+
5
+ export default ViewerContext;
@@ -0,0 +1,5 @@
1
+ import { createContext } from 'react';
2
+
3
+ const WorkspaceContext = createContext({ current: document.body });
4
+
5
+ export default WorkspaceContext;
@@ -0,0 +1,4 @@
1
+ import FullScreenContext from './FullScreenContext';
2
+ import WorkspaceContext from './WorkspaceContext';
3
+
4
+ export { FullScreenContext, WorkspaceContext };