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 @@
1
+ {"version":3,"file":"canvases-gRqhr-IH.js","names":[],"sources":["../../node_modules/lodash/_isKey.js","../../node_modules/lodash/_nativeCreate.js","../../node_modules/lodash/_hashClear.js","../../node_modules/lodash/_hashDelete.js","../../node_modules/lodash/_hashGet.js","../../node_modules/lodash/_hashHas.js","../../node_modules/lodash/_hashSet.js","../../node_modules/lodash/_Hash.js","../../node_modules/lodash/_listCacheClear.js","../../node_modules/lodash/eq.js","../../node_modules/lodash/_assocIndexOf.js","../../node_modules/lodash/_listCacheDelete.js","../../node_modules/lodash/_listCacheGet.js","../../node_modules/lodash/_listCacheHas.js","../../node_modules/lodash/_listCacheSet.js","../../node_modules/lodash/_ListCache.js","../../node_modules/lodash/_mapCacheClear.js","../../node_modules/lodash/_isKeyable.js","../../node_modules/lodash/_getMapData.js","../../node_modules/lodash/_mapCacheDelete.js","../../node_modules/lodash/_mapCacheGet.js","../../node_modules/lodash/_mapCacheHas.js","../../node_modules/lodash/_mapCacheSet.js","../../node_modules/lodash/_MapCache.js","../../node_modules/lodash/memoize.js","../../node_modules/lodash/_memoizeCapped.js","../../node_modules/lodash/_stringToPath.js","../../node_modules/lodash/_arrayMap.js","../../node_modules/lodash/_baseToString.js","../../node_modules/lodash/toString.js","../../node_modules/lodash/_castPath.js","../../node_modules/lodash/_toKey.js","../../node_modules/lodash/_baseGet.js","../../node_modules/lodash/_baseAssignValue.js","../../node_modules/lodash/_arrayFilter.js","../../node_modules/lodash/_createBaseFor.js","../../node_modules/lodash/_baseFor.js","../../node_modules/lodash/_baseTimes.js","../../node_modules/lodash/_arrayLikeKeys.js","../../node_modules/lodash/keys.js","../../node_modules/lodash/_baseForOwn.js","../../node_modules/lodash/_createBaseEach.js","../../node_modules/lodash/_baseEach.js","../../node_modules/lodash/_stackClear.js","../../node_modules/lodash/_stackDelete.js","../../node_modules/lodash/_stackGet.js","../../node_modules/lodash/_stackHas.js","../../node_modules/lodash/_stackSet.js","../../node_modules/lodash/_Stack.js","../../node_modules/lodash/_setCacheAdd.js","../../node_modules/lodash/_setCacheHas.js","../../node_modules/lodash/_SetCache.js","../../node_modules/lodash/_arraySome.js","../../node_modules/lodash/_cacheHas.js","../../node_modules/lodash/_equalArrays.js","../../node_modules/lodash/_Uint8Array.js","../../node_modules/lodash/_mapToArray.js","../../node_modules/lodash/_setToArray.js","../../node_modules/lodash/_equalByTag.js","../../node_modules/lodash/_arrayPush.js","../../node_modules/lodash/_baseGetAllKeys.js","../../node_modules/lodash/stubArray.js","../../node_modules/lodash/_getSymbols.js","../../node_modules/lodash/_getAllKeys.js","../../node_modules/lodash/_equalObjects.js","../../node_modules/lodash/_baseIsEqualDeep.js","../../node_modules/lodash/_baseIsEqual.js","../../node_modules/lodash/_baseIsMatch.js","../../node_modules/lodash/_isStrictComparable.js","../../node_modules/lodash/_getMatchData.js","../../node_modules/lodash/_matchesStrictComparable.js","../../node_modules/lodash/_baseMatches.js","../../node_modules/lodash/get.js","../../node_modules/lodash/_baseHasIn.js","../../node_modules/lodash/_hasPath.js","../../node_modules/lodash/hasIn.js","../../node_modules/lodash/_baseMatchesProperty.js","../../node_modules/lodash/_baseProperty.js","../../node_modules/lodash/_basePropertyDeep.js","../../node_modules/lodash/property.js","../../node_modules/lodash/_baseIteratee.js","../src/lib/CanvasGroupings.js","../../node_modules/manifesto.js/dist-umd/manifesto.js","../src/lib/iiif.js","../src/lib/MiradorCanvas.js","../src/lib/MiradorManifest.js","../src/state/selectors/wrappers.js","../src/lib/asArray.js","../../node_modules/lodash/_arrayAggregator.js","../../node_modules/lodash/_baseAggregator.js","../../node_modules/lodash/_createAggregator.js","../../node_modules/lodash/groupBy.js","../src/state/selectors/companionWindows.js","../../node_modules/deepmerge/dist/cjs.js","../src/state/selectors/config.js","../src/lib/ThumbnailFactory.js","../src/state/selectors/thumbnails.js","../src/state/selectors/manifests.js","../src/state/selectors/sequences.js","../src/state/selectors/workspace.js","../src/state/selectors/windows.js","../src/state/selectors/canvases.js"],"sourcesContent":["var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","/**\n *\n */\nexport default class CanvasGroupings {\n /**\n */\n constructor(canvases, viewType = 'single') {\n this.canvases = canvases;\n this.viewType = viewType;\n this._groupings = null;\n }\n\n /**\n */\n getCanvases(index) {\n switch (this.viewType) {\n case 'book':\n return this.groupings()[Math.ceil(index / 2)];\n default:\n return this.groupings()[index];\n }\n }\n\n /**\n * Groups a set of canvases based on the view type. Single, is just an array\n * of canvases, while book view creates pairs.\n */\n groupings() {\n if (this._groupings) {\n return this._groupings;\n }\n if (this.viewType === 'scroll') {\n return [this.canvases];\n }\n if (this.viewType !== 'book') {\n return this.canvases.map((canvas) => [canvas]);\n }\n const groupings = [];\n this.canvases.forEach((canvas, i) => {\n if (i === 0) {\n groupings.push([canvas]);\n return;\n }\n // Odd page\n if (i % 2 !== 0) {\n groupings.push([canvas]);\n } else {\n // Even page\n groupings[Math.ceil(i / 2)].push(canvas);\n }\n });\n this._groupings = groupings;\n return groupings;\n }\n}\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(\"manifesto\",[],t):\"object\"==typeof exports?exports.manifesto=t():e.manifesto=t()}(Object(\"undefined\"!=typeof self?self:this),()=>(()=>{var e={19(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.CONTINUE=100,t.SWITCHING_PROTOCOLS=101,t.PROCESSING=102,t.OK=200,t.CREATED=201,t.ACCEPTED=202,t.NON_AUTHORITATIVE_INFORMATION=203,t.NO_CONTENT=204,t.RESET_CONTENT=205,t.PARTIAL_CONTENT=206,t.MULTI_STATUS=207,t.MULTIPLE_CHOICES=300,t.MOVED_PERMANENTLY=301,t.MOVED_TEMPORARILY=302,t.SEE_OTHER=303,t.NOT_MODIFIED=304,t.USE_PROXY=305,t.TEMPORARY_REDIRECT=307,t.BAD_REQUEST=400,t.UNAUTHORIZED=401,t.PAYMENT_REQUIRED=402,t.FORBIDDEN=403,t.NOT_FOUND=404,t.METHOD_NOT_ALLOWED=405,t.NOT_ACCEPTABLE=406,t.PROXY_AUTHENTICATION_REQUIRED=407,t.REQUEST_TIME_OUT=408,t.CONFLICT=409,t.GONE=410,t.LENGTH_REQUIRED=411,t.PRECONDITION_FAILED=412,t.REQUEST_ENTITY_TOO_LARGE=413,t.REQUEST_URI_TOO_LARGE=414,t.UNSUPPORTED_MEDIA_TYPE=415,t.REQUESTED_RANGE_NOT_SATISFIABLE=416,t.EXPECTATION_FAILED=417,t.IM_A_TEAPOT=418,t.UNPROCESSABLE_ENTITY=422,t.LOCKED=423,t.FAILED_DEPENDENCY=424,t.UNORDERED_COLLECTION=425,t.UPGRADE_REQUIRED=426,t.PRECONDITION_REQUIRED=428,t.TOO_MANY_REQUESTS=429,t.REQUEST_HEADER_FIELDS_TOO_LARGE=431,t.INTERNAL_SERVER_ERROR=500,t.NOT_IMPLEMENTED=501,t.BAD_GATEWAY=502,t.SERVICE_UNAVAILABLE=503,t.GATEWAY_TIME_OUT=504,t.HTTP_VERSION_NOT_SUPPORTED=505,t.VARIANT_ALSO_NEGOTIATES=506,t.INSUFFICIENT_STORAGE=507,t.BANDWIDTH_LIMIT_EXCEEDED=509,t.NOT_EXTENDED=510,t.NETWORK_AUTHENTICATION_REQUIRED=511},957(e,t){\"use strict\";var r,n,o,i,a,s,u,l,c,p;Object.defineProperty(t,\"__esModule\",{value:!0}),t.ViewingHint=t.ViewingDirection=t.ServiceType=t.ServiceProfile=t.RenderingFormat=t.MediaType=t.IIIFResourceType=t.ExternalResourceType=t.Behavior=t.AnnotationMotivation=void 0,function(e){e.BOOKMARKING=\"oa:bookmarking\",e.CLASSIFYING=\"oa:classifying\",e.COMMENTING=\"oa:commenting\",e.DESCRIBING=\"oa:describing\",e.EDITING=\"oa:editing\",e.HIGHLIGHTING=\"oa:highlighting\",e.IDENTIFYING=\"oa:identifying\",e.LINKING=\"oa:linking\",e.MODERATING=\"oa:moderating\",e.PAINTING=\"sc:painting\",e.QUESTIONING=\"oa:questioning\",e.REPLYING=\"oa:replying\",e.TAGGING=\"oa:tagging\",e.TRANSCRIBING=\"oad:transcribing\"}(r||(t.AnnotationMotivation=r={})),function(e){e.AUTO_ADVANCE=\"auto-advance\",e.CONTINUOUS=\"continuous\",e.FACING_PAGES=\"facing-pages\",e.HIDDEN=\"hidden\",e.INDIVIDUALS=\"individuals\",e.MULTI_PART=\"multi-part\",e.NO_NAV=\"no-nav\",e.NON_PAGED=\"non-paged\",e.PAGED=\"paged\",e.REPEAT=\"repeat\",e.SEQUENCE=\"sequence\",e.THUMBNAIL_NAV=\"thumbnail-nav\",e.TOGETHER=\"together\",e.UNORDERED=\"unordered\"}(n||(t.Behavior=n={})),function(e){e.CANVAS=\"canvas\",e.CHOICE=\"choice\",e.OA_CHOICE=\"oa:choice\",e.CONTENT_AS_TEXT=\"contentastext\",e.DATASET=\"dataset\",e.DOCUMENT=\"document\",e.IMAGE=\"image\",e.MODEL=\"model\",e.MOVING_IMAGE=\"movingimage\",e.PDF=\"pdf\",e.PHYSICAL_OBJECT=\"physicalobject\",e.SOUND=\"sound\",e.TEXT=\"text\",e.TEXTUALBODY=\"textualbody\",e.VIDEO=\"video\"}(o||(t.ExternalResourceType=o={})),function(e){e.ANNOTATION=\"annotation\",e.CANVAS=\"canvas\",e.COLLECTION=\"collection\",e.MANIFEST=\"manifest\",e.RANGE=\"range\",e.SEQUENCE=\"sequence\"}(i||(t.IIIFResourceType=i={})),function(e){e.AUDIO_MP4=\"audio/mp4\",e.CORTO=\"application/corto\",e.DICOM=\"application/dicom\",e.DRACO=\"application/draco\",e.EPUB=\"application/epub+zip\",e.GIRDER=\"image/vnd.kitware.girder\",e.GLB=\"model/gltf-binary\",e.GLTF=\"model/gltf+json\",e.IIIF_PRESENTATION_2='application/ld+json;profile=\"http://iiif.io/api/presentation/2/context.json\"',e.IIIF_PRESENTATION_3='application/ld+json;profile=\"http://iiif.io/api/presentation/3/context.json\"',e.JPG=\"image/jpeg\",e.M3U8=\"application/vnd.apple.mpegurl\",e.MP3=\"audio/mp3\",e.MPEG=\"audio/mpeg\",e.MPEG_DASH=\"application/dash+xml\",e.OBJ=\"model/obj\",e.OPF=\"application/oebps-package+xml\",e.PDF=\"application/pdf\",e.PLY=\"application/ply\",e.THREEJS=\"application/vnd.threejs+json\",e.USDZ=\"model/vnd.usd+zip\",e.VIDEO_MP4=\"video/mp4\",e.WAV=\"audio/wav\",e.WEBM=\"video/webm\"}(a||(t.MediaType=a={})),function(e){e.DOC=\"application/msword\",e.DOCX=\"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",e.ODT=\"application/vnd.oasis.opendocument.text\",e.PDF=\"application/pdf\"}(s||(t.RenderingFormat=s={})),function(e){e.IMAGE_0_COMPLIANCE_LEVEL_0=\"http://library.stanford.edu/iiif/image-api/compliance.html#level0\",e.IMAGE_0_COMPLIANCE_LEVEL_1=\"http://library.stanford.edu/iiif/image-api/compliance.html#level1\",e.IMAGE_0_COMPLIANCE_LEVEL_2=\"http://library.stanford.edu/iiif/image-api/compliance.html#level2\",e.IMAGE_0_CONFORMANCE_LEVEL_0=\"http://library.stanford.edu/iiif/image-api/conformance.html#level0\",e.IMAGE_0_CONFORMANCE_LEVEL_1=\"http://library.stanford.edu/iiif/image-api/conformance.html#level1\",e.IMAGE_0_CONFORMANCE_LEVEL_2=\"http://library.stanford.edu/iiif/image-api/conformance.html#level2\",e.IMAGE_1_COMPLIANCE_LEVEL_0=\"http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level0\",e.IMAGE_1_COMPLIANCE_LEVEL_1=\"http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level1\",e.IMAGE_1_COMPLIANCE_LEVEL_2=\"http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2\",e.IMAGE_1_CONFORMANCE_LEVEL_0=\"http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level0\",e.IMAGE_1_CONFORMANCE_LEVEL_1=\"http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1\",e.IMAGE_1_CONFORMANCE_LEVEL_2=\"http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level2\",e.IMAGE_1_LEVEL_0=\"http://iiif.io/api/image/1/level0.json\",e.IMAGE_1_PROFILE_LEVEL_0=\"http://iiif.io/api/image/1/profiles/level0.json\",e.IMAGE_1_LEVEL_1=\"http://iiif.io/api/image/1/level1.json\",e.IMAGE_1_PROFILE_LEVEL_1=\"http://iiif.io/api/image/1/profiles/level1.json\",e.IMAGE_1_LEVEL_2=\"http://iiif.io/api/image/1/level2.json\",e.IMAGE_1_PROFILE_LEVEL_2=\"http://iiif.io/api/image/1/profiles/level2.json\",e.IMAGE_2_LEVEL_0=\"http://iiif.io/api/image/2/level0.json\",e.IMAGE_2_PROFILE_LEVEL_0=\"http://iiif.io/api/image/2/profiles/level0.json\",e.IMAGE_2_LEVEL_1=\"http://iiif.io/api/image/2/level1.json\",e.IMAGE_2_PROFILE_LEVEL_1=\"http://iiif.io/api/image/2/profiles/level1.json\",e.IMAGE_2_LEVEL_2=\"http://iiif.io/api/image/2/level2.json\",e.IMAGE_2_PROFILE_LEVEL_2=\"http://iiif.io/api/image/2/profiles/level2.json\",e.AUTH_0_CLICK_THROUGH=\"http://iiif.io/api/auth/0/login/clickthrough\",e.AUTH_0_LOGIN=\"http://iiif.io/api/auth/0/login\",e.AUTH_0_LOGOUT=\"http://iiif.io/api/auth/0/logout\",e.AUTH_0_RESTRICTED=\"http://iiif.io/api/auth/0/login/restricted\",e.AUTH_0_TOKEN=\"http://iiif.io/api/auth/0/token\",e.AUTH_1_CLICK_THROUGH=\"http://iiif.io/api/auth/1/clickthrough\",e.AUTH_1_EXTERNAL=\"http://iiif.io/api/auth/1/external\",e.AUTH_1_KIOSK=\"http://iiif.io/api/auth/1/kiosk\",e.AUTH_1_LOGIN=\"http://iiif.io/api/auth/1/login\",e.AUTH_1_LOGOUT=\"http://iiif.io/api/auth/1/logout\",e.AUTH_1_PROBE=\"http://iiif.io/api/auth/1/probe\",e.AUTH_1_TOKEN=\"http://iiif.io/api/auth/1/token\",e.SEARCH_0=\"http://iiif.io/api/search/0/search\",e.SEARCH_0_AUTO_COMPLETE=\"http://iiif.io/api/search/0/autocomplete\",e.SEARCH_1=\"http://iiif.io/api/search/1/search\",e.SEARCH_1_AUTO_COMPLETE=\"http://iiif.io/api/search/1/autocomplete\",e.TRACKING_EXTENSIONS=\"http://universalviewer.io/tracking-extensions-profile\",e.UI_EXTENSIONS=\"http://universalviewer.io/ui-extensions-profile\",e.PRINT_EXTENSIONS=\"http://universalviewer.io/print-extensions-profile\",e.SHARE_EXTENSIONS=\"http://universalviewer.io/share-extensions-profile\",e.DOWNLOAD_EXTENSIONS=\"http://universalviewer.io/download-extensions-profile\",e.OTHER_MANIFESTATIONS=\"http://iiif.io/api/otherManifestations.json\",e.IXIF=\"http://wellcomelibrary.org/ld/ixif/0/alpha.json\"}(u||(t.ServiceProfile=u={})),function(e){e.IMAGE_SERVICE_2=\"ImageService2\",e.IMAGE_SERVICE_3=\"ImageService3\"}(l||(t.ServiceType=l={})),function(e){e.BOTTOM_TO_TOP=\"bottom-to-top\",e.LEFT_TO_RIGHT=\"left-to-right\",e.RIGHT_TO_LEFT=\"right-to-left\",e.TOP_TO_BOTTOM=\"top-to-bottom\"}(c||(t.ViewingDirection=c={})),function(e){e.CONTINUOUS=\"continuous\",e.INDIVIDUALS=\"individuals\",e.NON_PAGED=\"non-paged\",e.PAGED=\"paged\",e.TOP=\"top\"}(p||(t.ViewingHint=p={}))},916(e,t,r){e.exports=self.fetch||(self.fetch=r(782).default||r(782))},39(e,t,r){\"use strict\";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0}),t.Annotation=void 0;var i=r(799),a=function(e){function t(t,r){return e.call(this,t,r)||this}return o(t,e),t.prototype.getBody=function(){var e=[],t=this.getProperty(\"body\");if(t)if(Array.isArray(t))for(var r=0;r<t.length;r++)if((a=t[r]).items)for(var n=0;n<a.items.length;n++){var o=a.items[n];e.push(new i.AnnotationBody(o,this.options))}else e.push(new i.AnnotationBody(a,this.options));else if(t.items)for(r=0;r<t.items.length;r++){var a=t.items[r];e.push(new i.AnnotationBody(a,this.options))}else e.push(new i.AnnotationBody(t,this.options));return e},t.prototype.getMotivation=function(){return this.getProperty(\"motivation\")||null},t.prototype.getOn=function(){return this.getProperty(\"on\")},t.prototype.getTarget=function(){return this.getProperty(\"target\")},t.prototype.getResource=function(){return new i.Resource(this.getProperty(\"resource\"),this.options)},t}(i.ManifestResource);t.Annotation=a},339(e,t,r){\"use strict\";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0}),t.AnnotationBody=void 0;var i=r(799),a=function(e){function t(t,r){return e.call(this,t,r)||this}return o(t,e),t.prototype.getFormat=function(){var e=this.getProperty(\"format\");return e?i.Utils.getMediaType(e):null},t.prototype.getType=function(){return this.getProperty(\"type\")?i.Utils.normaliseType(this.getProperty(\"type\")):null},t.prototype.getValue=function(){return this.getProperty(\"value\")},t.prototype.getLanguage=function(){return this.getProperty(\"language\")},t.prototype.getWidth=function(){return this.getProperty(\"width\")},t.prototype.getHeight=function(){return this.getProperty(\"height\")},t}(i.ManifestResource);t.AnnotationBody=a},435(e,t,r){\"use strict\";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0}),t.AnnotationList=void 0;var i=r(799),a=function(e){function t(t,r,n){var o=e.call(this,r)||this;return o.label=t,o.options=n,o}return o(t,e),t.prototype.getIIIFResourceType=function(){return i.Utils.normaliseType(this.getProperty(\"type\"))},t.prototype.getLabel=function(){return this.label},t.prototype.getResources=function(){var e=this;return this.getProperty(\"resources\").map(function(t){return new i.Annotation(t,e.options)})},t.prototype.load=function(){var e=this;return new Promise(function(t,r){if(e.isLoaded)t(e);else{var n=e.__jsonld.id;n||(n=e.__jsonld[\"@id\"]),i.Utils.loadManifest(n).then(function(r){e.__jsonld=r,e.context=e.getProperty(\"context\"),e.id=e.getProperty(\"id\"),e.isLoaded=!0,t(e)}).catch(r)}})},t}(i.JSONLDResource);t.AnnotationList=a},556(e,t,r){\"use strict\";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0}),t.AnnotationPage=void 0;var i=r(799),a=function(e){function t(t,r){return e.call(this,t,r)||this}return o(t,e),t.prototype.getItems=function(){return this.getProperty(\"items\")},t.prototype.getAnnotations=function(){var e=[],t=this.getProperty(\"items\");if(!t||!Array.isArray(t))return e;for(var r=0;r<t.length;r++){var n=new i.Annotation(t[r],this.options);e.push(n)}return e},t}(i.ManifestResource);t.AnnotationPage=a},98(e,t,r){\"use strict\";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0}),t.Canvas=void 0;var i=r(957),a=r(799),s=function(e){function t(t,r){return e.call(this,t,r)||this}return o(t,e),t.prototype.getCanonicalImageUri=function(e){var t=null,r=\"default\",n=e,o=n+\",\";if(this.externalResource&&this.externalResource.data&&this.externalResource.data[\"@id\"])t=this.externalResource.data[\"@id\"],n||(n=this.externalResource.data.width),this.externalResource.data[\"@context\"]&&(this.externalResource.data[\"@context\"].indexOf(\"/1.0/context.json\")>-1||this.externalResource.data[\"@context\"].indexOf(\"/1.1/context.json\")>-1||this.externalResource.data[\"@context\"].indexOf(\"/1/context.json\")>-1)&&(r=\"native\");else{var i=void 0;if((i=this.getImages())&&i.length){var s=i[0].getResource(),u=s.getServices();if(n||(n=s.getWidth()),l=u?u.find(function(e){return a.Utils.isImageProfile(e.getProfile())||a.Utils.isImageServiceType(e.getIIIFResourceType())}):null)t=l.id,r=a.Utils.getImageQuality(l.getProfile());else if(n===s.getWidth())return s.id}if((i=this.getContent())&&i.length){var l,c=i[0].getBody()[0];if(u=c.getServices(),n||(n=c.getWidth()),l=u?u.find(function(e){return a.Utils.isImageServiceType(e.getIIIFResourceType())}):null)t=l.id,r=a.Utils.getImageQuality(l.getProfile());else if(n===c.getWidth())return c.id}if(!t){var p=this.getProperty(\"thumbnail\");if(p){if(\"string\"==typeof p)return p;if(p[\"@id\"])return p[\"@id\"];if(p.length)return p[0].id}}}return t&&t.endsWith(\"/\")&&(t=t.substr(0,t.length-1)),[t,\"full\",o,0,r+\".jpg\"].join(\"/\")},t.prototype.getMaxDimensions=function(){var e,t=null;return this.externalResource&&this.externalResource.data&&this.externalResource.data.profile&&(e=this.externalResource.data.profile,Array.isArray(e)&&(e=e.filter(function(e){var t;return null!==(t=e.maxWidth)&&void 0!==t?t:e.maxwidth})[0])&&(t=new a.Size(e.maxWidth,e.maxHeight?e.maxHeight:e.maxWidth))),this.externalResource&&this.externalResource.data&&this.externalResource.data.maxWidth&&(t=new a.Size(this.externalResource.data.maxWidth,this.externalResource.data.maxHeight?this.externalResource.data.maxHeight:this.externalResource.data.maxWidth)),t},t.prototype.getContent=function(){var e=[],t=this.__jsonld.items||this.__jsonld.content;if(!t)return e;var r=null;if(t.length&&(r=new a.AnnotationPage(t[0],this.options)),!r)return e;for(var n=r.getAnnotations(),o=0;o<n.length;o++){var i=n[o];e.push(i)}return e},t.prototype.getAnnotations=function(){var e=[],t=this.__jsonld.annotations;if(!t||!Array.isArray(t))return e;for(var r=0;r<t.length;r++){var n=new a.AnnotationPage(t[r],this.options);e.push(n)}return e},t.prototype.getDuration=function(){return this.getProperty(\"duration\")},t.prototype.getImages=function(){var e=[];if(!this.__jsonld.images)return e;for(var t=0;t<this.__jsonld.images.length;t++){var r=this.__jsonld.images[t],n=new a.Annotation(r,this.options);e.push(n)}return e},t.prototype.getIndex=function(){return this.getProperty(\"index\")},t.prototype.getOtherContent=function(){var e=this,t=(Array.isArray(this.getProperty(\"otherContent\"))?this.getProperty(\"otherContent\"):[this.getProperty(\"otherContent\")]).filter(function(e){return e&&(\"string\"==typeof(t=e[\"@type\"])&&t.toLowerCase()==t.toLowerCase());var t}).map(function(t,r){return new a.AnnotationList(t.label||\"Annotation list \".concat(r),t,e.options)}).map(function(e){return e.load()});return Promise.all(t)},t.prototype.getWidth=function(){return this.getProperty(\"width\")},t.prototype.getHeight=function(){return this.getProperty(\"height\")},t.prototype.getViewingHint=function(){var e=this.getProperty(\"viewingHint\");return Array.isArray(e)&&(e=e[0]),e||null},Object.defineProperty(t.prototype,\"imageResources\",{get:function(){var e=this;return[this.getImages().map(function(e){return e.getResource()}),this.getContent().map(function(e){return e.getBody()})].flat(1/0).map(function(r){switch(r.getProperty(\"type\").toLowerCase()){case i.ExternalResourceType.CHOICE:case i.ExternalResourceType.OA_CHOICE:return new t({images:[r.getProperty(\"default\"),r.getProperty(\"item\")].flat().map(function(e){return{resource:e}})},e.options).getImages().map(function(e){return e.getResource()});default:return r}}).flat()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"resourceAnnotations\",{get:function(){return[this.getImages(),this.getContent()].flat(1/0)},enumerable:!1,configurable:!0}),t.prototype.resourceAnnotation=function(e){return this.resourceAnnotations.find(function(t){return t.getResource().id===e||[t.getBody()].flat().some(function(t){return t.id===e})})},t.prototype.onFragment=function(e){var t=this.resourceAnnotation(e);if(t){var r=t.getProperty(\"on\"),n=t.getProperty(\"target\");if(r&&n){var o=(r||n).match(/xywh=(.*)$/);if(o)return o[1].split(\",\").map(function(e){return parseInt(e,10)})}}},Object.defineProperty(t.prototype,\"iiifImageResources\",{get:function(){return this.imageResources.filter(function(e){return e&&e.getServices()[0]&&e.getServices()[0].id})},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"imageServiceIds\",{get:function(){return this.iiifImageResources.map(function(e){return e.getServices()[0].id})},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"aspectRatio\",{get:function(){return this.getWidth()/this.getHeight()},enumerable:!1,configurable:!0}),t.prototype.getChoices=function(){for(var e,t=this,r=0,n=this.getContent();r<n.length;r++){var o=n[r].getProperty(\"body\");if(o&&(null===(e=o.type)||void 0===e?void 0:e.toLowerCase())===i.ExternalResourceType.CHOICE&&o.items&&o.items.length)return o.items.map(function(e){return new a.AnnotationBody(e,t.options)})}return[]},t}(a.Resource);t.Canvas=s},214(e,t,r){\"use strict\";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0}),t.Collection=void 0;var i=r(957),a=r(799),s=function(e){function t(t,r){var n=e.call(this,t,r)||this;return n.items=[],n._collections=null,n._manifests=null,t.__collection=n,n}return o(t,e),t.prototype.getCollections=function(){return this._collections?this._collections:this._collections=this.items.filter(function(e){return e.isCollection()})},t.prototype.getManifests=function(){return this._manifests?this._manifests:this._manifests=this.items.filter(function(e){return e.isManifest()})},t.prototype.getCollectionByIndex=function(e){for(var t,r=this.getCollections(),n=0;n<r.length;n++){var o=r[n];o.index===e&&(t=o)}if(t)return t.options.index=e,t.load();throw new Error(\"Collection index not found\")},t.prototype.getManifestByIndex=function(e){for(var t,r=this.getManifests(),n=0;n<r.length;n++){var o=r[n];o.index===e&&(t=o)}if(t)return t.options.index=e,t.load();throw new Error(\"Manifest index not found\")},t.prototype.getTotalCollections=function(){return this.getCollections().length},t.prototype.getTotalManifests=function(){return this.getManifests().length},t.prototype.getTotalItems=function(){return this.items.length},t.prototype.getViewingDirection=function(){return this.getProperty(\"viewingDirection\")?this.getProperty(\"viewingDirection\"):i.ViewingDirection.LEFT_TO_RIGHT},t.prototype.getBehavior=function(){var e=this.getProperty(\"behavior\");return Array.isArray(e)&&(e=e[0]),e||null},t.prototype.getViewingHint=function(){var e=this.getProperty(\"viewingHint\");return Array.isArray(e)&&(e=e[0]),e||null},t.prototype.getDefaultTree=function(){return e.prototype.getDefaultTree.call(this),this.defaultTree.data.type=a.Utils.normaliseType(a.TreeNodeType.COLLECTION),this._parseManifests(this),this._parseCollections(this),a.Utils.generateTreeNodeIds(this.defaultTree),this.defaultTree},t.prototype._parseManifests=function(e){if(e.getManifests()&&e.getManifests().length)for(var t=0;t<e.getManifests().length;t++){var r=e.getManifests()[t],n=r.getDefaultTree();n.label=r.parentLabel||r.getLabel().getValue(this.options.locale)||\"manifest \"+(t+1),n.navDate=r.getNavDate(),n.data.id=r.id,n.data.type=a.Utils.normaliseType(a.TreeNodeType.MANIFEST),e.defaultTree.addNode(n)}},t.prototype._parseCollections=function(e){if(e.getCollections()&&e.getCollections().length)for(var t=0;t<e.getCollections().length;t++){var r=e.getCollections()[t],n=r.getDefaultTree();n.label=r.parentLabel||r.getLabel().getValue(this.options.locale)||\"collection \"+(t+1),n.navDate=r.getNavDate(),n.data.id=r.id,n.data.type=a.Utils.normaliseType(a.TreeNodeType.COLLECTION),e.defaultTree.addNode(n)}},t}(a.IIIFResource);t.Collection=s},858(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.Duration=void 0;var r=function(){function e(e,t){this.start=e,this.end=t}return e.prototype.getLength=function(){return this.end-this.start},e}();t.Duration=r},712(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0})},167(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0})},672(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0})},376(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0})},184(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0})},107(e,t,r){\"use strict\";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0}),t.IIIFResource=void 0;var i=r(799),a=r(957),s=function(e){function t(t,r){var n=e.call(this,t,r)||this;n.index=-1,n.isLoaded=!1;var o={defaultLabel:\"-\",locale:\"en-GB\",resource:n,pessimisticAccessControl:!1};return n.options=Object.assign(o,r),n}return o(t,e),t.prototype.getAttribution=function(){var e=this.getProperty(\"attribution\");return e?i.PropertyValue.parse(e,this.options.locale):new i.PropertyValue([],this.options.locale)},t.prototype.getDescription=function(){var e=this.getProperty(\"description\");return void 0===e&&(e=this.getProperty(\"summary\")),e?i.PropertyValue.parse(e,this.options.locale):new i.PropertyValue([],this.options.locale)},t.prototype.getSummary=function(){var e=this.getProperty(\"summary\");return void 0===e&&(e=this.getProperty(\"description\")),e?i.PropertyValue.parse(e,this.options.locale):new i.PropertyValue([],this.options.locale)},t.prototype.getHomepage=function(){var e=this.getProperty(\"homepage\");return e?\"string\"==typeof e?e:(Array.isArray(e)&&e.length&&(e=e[0]),e[\"@id\"]||e.id):null},t.prototype.getIIIFResourceType=function(){return i.Utils.normaliseType(this.getProperty(\"type\"))},t.prototype.getLogo=function(){var e=this.getProperty(\"logo\");if(!e){var t=this.getProperty(\"provider\");if(!t)return null;var r=t.find(function(e){return void 0!==e.logo});e=r&&void 0!==r.logo?r.logo:null}return e?\"string\"==typeof e?e:(Array.isArray(e)&&e.length&&(e=e[0]),e[\"@id\"]||(null==e?void 0:e.id)):null},t.prototype.getLicense=function(){return i.Utils.getLocalisedValue(this.getProperty(\"license\"),this.options.locale)},t.prototype.getRights=function(){var e=this.getProperty(\"rights\");return e?\"string\"==typeof e?e:(Array.isArray(e)&&e.length&&(e=e[0]),e[\"@id\"]||e.id):null},t.prototype.getNavDate=function(){return new Date(this.getProperty(\"navDate\"))},t.prototype.getRelated=function(){return this.getProperty(\"related\")},t.prototype.getSeeAlso=function(){return this.getProperty(\"seeAlso\")},t.prototype.getTrackingLabel=function(){var e=this.getService(a.ServiceProfile.TRACKING_EXTENSIONS);return e?e.getProperty(\"trackingLabel\"):\"\"},t.prototype.getDefaultTree=function(){return this.defaultTree=new i.TreeNode(\"root\"),this.defaultTree.data=this,this.defaultTree},t.prototype.getRequiredStatement=function(){var e=null,t=this.getProperty(\"requiredStatement\");if(t)(e=new i.LabelValuePair(this.options.locale)).parse(t);else{var r=this.getAttribution();r&&r.length&&((e=new i.LabelValuePair(this.options.locale)).value=r)}return e},t.prototype.isCollection=function(){return this.getIIIFResourceType()===a.IIIFResourceType.COLLECTION},t.prototype.isManifest=function(){return this.getIIIFResourceType()===a.IIIFResourceType.MANIFEST},t.prototype.load=function(){var e=this;return new Promise(function(t){if(e.isLoaded)t(e);else{var r=e.options;r.navDate=e.getNavDate();var n=e.__jsonld.id;n||(n=e.__jsonld[\"@id\"]),i.Utils.loadManifest(n).then(function(n){e.parentLabel=e.getLabel().getValue(r.locale);var o=i.Deserialiser.parse(n,r);(e=Object.assign(e,o)).index=r.index,t(e)})}})},t}(i.ManifestResource);t.IIIFResource=s},739(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0})},436(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.JSONLDResource=void 0;var r=function(){function e(e){this.__jsonld=e,this.context=this.getProperty(\"context\"),this.id=this.getProperty(\"id\")}return e.prototype.getProperty=function(e){var t=null;return this.__jsonld&&((t=this.__jsonld[e])||(t=this.__jsonld[\"@\"+e])),t},e}();t.JSONLDResource=r},817(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.LabelValuePair=void 0;var n=r(799),o=function(){function e(e){this.label=null,this.value=null,this.defaultLocale=e}return e.prototype.parse=function(e){this.resource=e,this.label=n.PropertyValue.parse(this.resource.label,this.defaultLocale),this.value=n.PropertyValue.parse(this.resource.value,this.defaultLocale)},e.prototype.getLabel=function(e){return null===this.label?null:(Array.isArray(e)&&!e.length&&(e=void 0),this.label.getValue(e||this.defaultLocale))},e.prototype.getLabels=function(e){return null===this.label?[]:(Array.isArray(e)&&!e.length&&(e=void 0),this.label.getValues(e||this.defaultLocale))},e.prototype.setLabel=function(e){null===this.label&&(this.label=new n.PropertyValue([])),this.label.setValue(e,this.defaultLocale)},e.prototype.getValue=function(e,t){return void 0===t&&(t=\"<br/>\"),null===this.value?null:(Array.isArray(e)&&!e.length&&(e=void 0),this.value.getValue(e||this.defaultLocale,t))},e.prototype.getValues=function(e){return null===this.value?[]:(Array.isArray(e)&&!e.length&&(e=void 0),this.value.getValues(e||this.defaultLocale))},e.prototype.setValue=function(e){null===this.value&&(this.value=new n.PropertyValue([])),this.value.setValue(e,this.defaultLocale)},e}();t.LabelValuePair=o},72(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0})},212(e,t){\"use strict\";var r,n=this&&this.__extends||(r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},r(e,t)},function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,\"__esModule\",{value:!0}),t.LanguageMap=void 0;var o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.getValue=function(e,t){return e.getValue(t,\"<br/>\")},t.getValues=function(e,t){return e.getValues(t)},t}(Array);t.LanguageMap=o},531(e,t,r){\"use strict\";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0}),t.Manifest=void 0;var i=r(957),a=r(799),s=function(e){function t(t,r){var n=e.call(this,t,r)||this;if(n.index=0,n._allRanges=null,n.items=[],n._topRanges=[],n.__jsonld.structures&&n.__jsonld.structures.length)for(var o=n._getTopRanges(),i=0;i<o.length;i++){var a=o[i];n._parseRanges(a,String(i))}return n}return o(t,e),t.prototype.getPosterCanvas=function(){var e=this.getProperty(\"posterCanvas\");return e&&(e=new a.Canvas(e,this.options)),e},t.prototype.getAccompanyingCanvas=function(){var e=this.getProperty(\"accompanyingCanvas\");return e&&(e=new a.Canvas(e,this.options)),e},t.prototype.getBehavior=function(){var e=this.getProperty(\"behavior\");return Array.isArray(e)&&(e=e[0]),e||null},t.prototype.getDefaultTree=function(){if(e.prototype.getDefaultTree.call(this),this.defaultTree.data.type=a.Utils.normaliseType(a.TreeNodeType.MANIFEST),!this.isLoaded)return this.defaultTree;var t=this.getTopRanges();return t.length&&t[0].getTree(this.defaultTree),a.Utils.generateTreeNodeIds(this.defaultTree),this.defaultTree},t.prototype._getTopRanges=function(){var e=[];if(this.__jsonld.structures&&this.__jsonld.structures.length){for(var t=0;t<this.__jsonld.structures.length;t++){var r=this.__jsonld.structures[t];r.viewingHint===i.ViewingHint.TOP&&e.push(r)}if(!e.length){var n={};n.ranges=this.__jsonld.structures,e.push(n)}}return e},t.prototype.getTopRanges=function(){return this._topRanges},t.prototype._getRangeById=function(e){if(this.__jsonld.structures&&this.__jsonld.structures.length)for(var t=0;t<this.__jsonld.structures.length;t++){var r=this.__jsonld.structures[t];if(r[\"@id\"]===e||r.id===e)return r}return null},t.prototype._parseRanges=function(e,t,r){var n=null;if(\"string\"==typeof e&&(n=e,e=this._getRangeById(n)),e){var o=new a.Range(e,this.options);o.parentRange=r,o.path=t,r?r.items.push(o):this._topRanges.push(o);var i=e.items||e.members;if(i)for(var s=0;s<i.length;s++){var u=i[s];if(u[\"@type\"]&&\"sc:range\"===u[\"@type\"].toLowerCase()||u.type&&\"range\"===u.type.toLowerCase())this._parseRanges(u,t+\"/\"+s,o);else if(u[\"@type\"]&&\"sc:canvas\"===u[\"@type\"].toLowerCase()||u.type&&\"canvas\"===u.type.toLowerCase()){o.canvases||(o.canvases=[]);var l=u.id||u[\"@id\"];o.canvases.push(l)}}else if(e.ranges)for(s=0;s<e.ranges.length;s++)this._parseRanges(e.ranges[s],t+\"/\"+s,o)}else console.warn(\"Range:\",n,\"does not exist\")},t.prototype.getAllRanges=function(){if(null!=this._allRanges)return this._allRanges;this._allRanges=[];for(var e=this.getTopRanges(),t=function(t){var n=e[t];n.id&&r._allRanges.push(n);var o=function(e,t){e.add(t);var r=t.getRanges();return r.length?r.reduce(o,e):e},i=Array.from(n.getRanges().reduce(o,new Set));r._allRanges=r._allRanges.concat(i)},r=this,n=0;n<e.length;n++)t(n);return this._allRanges},t.prototype.getRangeById=function(e){for(var t=this.getAllRanges(),r=0;r<t.length;r++){var n=t[r];if(n.id===e)return n}return null},t.prototype.getRangeByPath=function(e){for(var t=this.getAllRanges(),r=0;r<t.length;r++){var n=t[r];if(n.path===e)return n}return null},t.prototype.getSequences=function(){if(this.items.length)return this.items;var e=this.__jsonld.mediaSequences||this.__jsonld.sequences;if(e)for(var t=0;t<e.length;t++){var r=e[t],n=new a.Sequence(r,this.options);this.items.push(n)}else this.__jsonld.items&&(n=new a.Sequence(this.__jsonld.items,this.options),this.items.push(n));return this.items},t.prototype.getSequenceByIndex=function(e){return this.getSequences()[e]},t.prototype.getTotalSequences=function(){return this.getSequences().length},t.prototype.getManifestType=function(){var e=this.getService(i.ServiceProfile.UI_EXTENSIONS);return e?e.getProperty(\"manifestType\"):a.ManifestType.EMPTY},t.prototype.isMultiSequence=function(){return this.getTotalSequences()>1},t.prototype.isPagingEnabled=function(){var e=this.getViewingHint();if(e)return e===i.ViewingHint.PAGED;var t=this.getBehavior();return!!t&&t===i.Behavior.PAGED},t.prototype.getViewingDirection=function(){return this.getProperty(\"viewingDirection\")},t.prototype.getViewingHint=function(){var e=this.getProperty(\"viewingHint\");return Array.isArray(e)&&(e=e[0]),e||null},t}(a.IIIFResource);t.Manifest=s},315(e,t,r){\"use strict\";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0}),t.ManifestResource=void 0;var i=r(799),a=r(957),s=function(e){function t(t,r){var n=e.call(this,t)||this;return n.options=r,n}return o(t,e),t.prototype.getIIIFResourceType=function(){return i.Utils.normaliseType(this.getProperty(\"type\"))},t.prototype.getLabel=function(){var e=this.getProperty(\"label\");return e?i.PropertyValue.parse(e,this.options.locale):new i.PropertyValue([],this.options.locale)},t.prototype.getDefaultLabel=function(){return this.getLabel().getValue(this.options.locale)},t.prototype.getMetadata=function(){var e=this.getProperty(\"metadata\"),t=[];if(!e)return t;for(var r=0;r<e.length;r++){var n=e[r],o=new i.LabelValuePair(this.options.locale);o.parse(n),t.push(o)}return t},t.prototype.getRendering=function(e){for(var t=this.getRenderings(),r=0;r<t.length;r++){var n=t[r];if(n.getFormat()===e)return n}return null},t.prototype.getRenderings=function(){var e,t=[];if(!(e=this.__jsonld?this.__jsonld.rendering:this.rendering))return t;Array.isArray(e)||(e=[e]);for(var r=0;r<e.length;r++){var n=e[r];t.push(new i.Rendering(n,this.options))}return t},t.prototype.getRequiredStatement=function(){var e=null,t=this.getProperty(\"requiredStatement\");return t&&(e=new i.LabelValuePair(this.options.locale)).parse(t),e},t.prototype.getService=function(e){return i.Utils.getService(this,e)},t.prototype.getServices=function(){return i.Utils.getServices(this)},t.prototype.getThumbnail=function(){var e=this.getProperty(\"thumbnail\");return Array.isArray(e)&&(e=e[0]),e?new i.Thumbnail(e,this.options):null},t.prototype.isAnnotation=function(){return this.getIIIFResourceType()===a.IIIFResourceType.ANNOTATION},t.prototype.isCanvas=function(){return this.getIIIFResourceType()===a.IIIFResourceType.CANVAS},t.prototype.isCollection=function(){return this.getIIIFResourceType()===a.IIIFResourceType.COLLECTION},t.prototype.isManifest=function(){return this.getIIIFResourceType()===a.IIIFResourceType.MANIFEST},t.prototype.isRange=function(){return this.getIIIFResourceType()===a.IIIFResourceType.RANGE},t.prototype.isSequence=function(){return this.getIIIFResourceType()===a.IIIFResourceType.SEQUENCE},t}(i.JSONLDResource);t.ManifestResource=s},43(e,t){\"use strict\";var r;Object.defineProperty(t,\"__esModule\",{value:!0}),t.ManifestType=void 0,function(e){e.EMPTY=\"\",e.MANUSCRIPT=\"manuscript\",e.MONOGRAPH=\"monograph\"}(r||(t.ManifestType=r={}))},6(e,t,r){\"use strict\";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0}),t.PropertyValue=t.LocalizedValue=void 0;var i=r(41),a=function(){function e(e,t,r){void 0===r&&(r=\"none\"),Array.isArray(e)&&1===e.length?this._value=e[0]:this._value=e,\"none\"!==t&&\"@none\"!==t||(t=void 0),this._locale=t,this._defaultLocale=r}return e.parseV2Value=function(t,r){return\"string\"==typeof t?new e(t,void 0,r):t[\"@value\"]?new e(t[\"@value\"],t[\"@language\"],r):null},Object.defineProperty(e.prototype,\"value\",{get:function(){return Array.isArray(this._value)?this._value.join(\"<br/>\"):this._value},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"locale\",{get:function(){return void 0===this._locale?this._defaultLocale:this._locale},enumerable:!1,configurable:!0}),e.prototype.addValue=function(e){Array.isArray(this._value)||(this._value=[this._value]),Array.isArray(e)?this._value=this._value.concat(e):this._value.push(e)},e}();t.LocalizedValue=a;var s=function(e){function t(r,n){void 0===r&&(r=[]);var o=e.apply(this,r)||this;return o.__proto__=t.prototype,o._defaultLocale=n,o}return o(t,e),t.parse=function(e,r){if(!e)return new t([],r);if(Array.isArray(e)){var n=(o=e.map(function(e){return a.parseV2Value(e,r)}).filter(function(e){return null!==e})).reduce(function(e,t){var r=t._locale;return r||(r=\"none\"),e[r]?e[r].addValue(t._value):e[r]=t,e},{});return new t(Object.values(n),r)}return\"string\"==typeof e?new t([new a(e,void 0,r)],r):e[\"@language\"]||e[\"@value\"]?new t(null!==(o=a.parseV2Value(e))?[o]:[],r):new t(Object.keys(e).map(function(t){var n=e[t];if(!Array.isArray(n))throw new Error(\"A IIIF v3 localized property value must have an array as the value for a given language.\");return new a(n,t,r)}),r);var o},t.prototype.getSuitableLocale=function(e){for(var t=Array.from(this.values()).map(function(e){return e._locale}).filter(function(e){return void 0!==e}),r=function(e){var r=t.find(function(t){return t===e});if(r)return{value:r}},n=0,o=e;n<o.length;n++){var a=r(o[n]);if(\"object\"==typeof a)return a.value}for(var s=function(e){var r=t.find(function(t){return i.Utils.getInexactLocale(t)===i.Utils.getInexactLocale(e)});if(r)return{value:r}},u=0,l=e;u<l.length;u++){var c=s(l[u]);if(\"object\"==typeof c)return c.value}},t.prototype.setValue=function(e,t){var r=void 0;if(t){var n=this.getSuitableLocale([t]);n&&(r=this.find(function(e){return e._locale===n}))}else r=this.find(function(e){return void 0===e._locale});r?r._value=e:this.push(new a(e,t,this._defaultLocale))},t.prototype.getValue=function(e,t){var r=this.getValues(e);return 0===r.length?null:t?r.join(t):r[0]},t.prototype.getValues=function(e){if(!this.length)return[];var t;if(t=e?Array.isArray(e)?e:[e]:[],1===this.length&&void 0===this[0]._locale){var r=this[0]._value;return Array.isArray(r)?r:[r]}var n=this.getSuitableLocale(t);if(n)return r=this.find(function(e){return e._locale===n})._value,Array.isArray(r)?r:[r];var o=!this.find(function(e){return void 0===e._locale});if(o)return r=this[0]._value,Array.isArray(r)?r:[r];var i=this.find(function(e){return void 0===e._locale});return i?Array.isArray(i._value)?i._value:[i._value]:[]},t}(Array);t.PropertyValue=s},845(e,t,r){\"use strict\";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0}),t.Range=void 0;var i=r(799),a=r(957),s=function(e){function t(t,r){var n=e.call(this,t,r)||this;return n._ranges=null,n.canvases=null,n.items=[],n}return o(t,e),t.prototype.getCanvasIds=function(){return this.__jsonld.canvases?this.__jsonld.canvases:this.canvases?this.canvases:[]},t.prototype.getDuration=function(){if(this.canvases&&this.canvases.length){for(var e=[],t=[],r=0,n=this.canvases;r<n.length;r++)if(_=n[r]){var o=_.match(/(.*)#t=([0-9.]+),?([0-9.]+)?/)||[void 0,_],a=o[1],s=o[2],u=o[3];a&&(e.push(parseFloat(s)),t.push(parseFloat(u)))}if(e.length&&t.length)return new i.Duration(Math.min.apply(Math,e),Math.max.apply(Math,t))}else{e=[],t=[];for(var l=0,c=d=this.getRanges();l<c.length;l++)(v=c[l].getDuration())&&(e.push(v.start),t.push(v.end));if(e.length&&t.length)return new i.Duration(Math.min.apply(Math,e),Math.max.apply(Math,t))}var p,f;if(this.canvases&&this.canvases.length)for(var h=0;h<this.canvases.length;h++){var _=this.canvases[h],g=i.Utils.getTemporalComponent(_);g&&g.length>1&&(0===h&&(p=Number(g[0])),h===this.canvases.length-1&&(f=Number(g[1])))}else{var d=this.getRanges();for(h=0;h<d.length;h++){var v;(v=d[h].getDuration())&&(0===h&&(p=v.start),h===d.length-1&&(f=v.end))}}if(void 0!==p&&void 0!==f)return new i.Duration(p,f)},t.prototype.getRanges=function(){return this._ranges?this._ranges:this._ranges=this.items.filter(function(e){return e.isRange()})},t.prototype.getBehavior=function(){var e=this.getProperty(\"behavior\");return Array.isArray(e)&&(e=e[0]),e||null},t.prototype.getViewingDirection=function(){return this.getProperty(\"viewingDirection\")},t.prototype.getViewingHint=function(){var e=this.getProperty(\"viewingHint\");return Array.isArray(e)&&(e=e[0]),e||null},t.prototype.getTree=function(e){e.data=this,this.treeNode=e;var t=this.getRanges();if(t&&t.length)for(var r=0;r<t.length;r++){var n=t[r],o=new i.TreeNode;e.addNode(o),this._parseTreeNode(o,n)}return i.Utils.generateTreeNodeIds(e),e},t.prototype.spansTime=function(e){var t=this.getDuration();return!!(t&&e>=t.start&&e<=t.end)},t.prototype._parseTreeNode=function(e,t){e.label=t.getLabel().getValue(this.options.locale),e.data=t,e.data.type=i.Utils.normaliseType(i.TreeNodeType.RANGE),t.treeNode=e;var r=t.getRanges();if(r&&r.length)for(var n=0;n<r.length;n++){var o=r[n];if(o.getBehavior()!==a.Behavior.NO_NAV){var s=new i.TreeNode;e.addNode(s),this._parseTreeNode(s,o)}}},t}(i.ManifestResource);t.Range=s},940(e,t,r){\"use strict\";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0}),t.Rendering=void 0;var i=function(e){function t(t,r){return e.call(this,t,r)||this}return o(t,e),t.prototype.getFormat=function(){return this.getProperty(\"format\")},t}(r(799).ManifestResource);t.Rendering=i},258(e,t,r){\"use strict\";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0}),t.Resource=void 0;var i=r(799),a=function(e){function t(t,r){return e.call(this,t,r)||this}return o(t,e),t.prototype.getFormat=function(){var e=this.getProperty(\"format\");return e?e.toLowerCase():null},t.prototype.getResources=function(){var e=[];if(!this.__jsonld.resources)return e;for(var t=0;t<this.__jsonld.resources.length;t++){var r=this.__jsonld.resources[t],n=new i.Annotation(r,this.options);e.push(n)}return e},t.prototype.getType=function(){var e=this.getProperty(\"type\");return e?i.Utils.normaliseType(e):null},t.prototype.getWidth=function(){return this.getProperty(\"width\")},t.prototype.getHeight=function(){return this.getProperty(\"height\")},t.prototype.getMaxWidth=function(){return this.getProperty(\"maxWidth\")},t.prototype.getMaxHeight=function(){return this.getProperty(\"maxHeight\")?null:this.getMaxWidth()},t}(i.ManifestResource);t.Resource=a},591(e,t,r){\"use strict\";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0}),t.Sequence=void 0;var i=r(957),a=r(799),s=function(e){function t(t,r){var n=e.call(this,t,r)||this;return n.items=[],n._thumbnails=null,n}return o(t,e),t.prototype.getCanvases=function(){if(this.items.length)return this.items;var e=this.__jsonld.canvases||this.__jsonld.elements;if(e)for(var t=0;t<e.length;t++){var r=e[t];(n=new a.Canvas(r,this.options)).index=t,this.items.push(n)}else if(this.__jsonld)for(t=0;t<this.__jsonld.length;t++){var n;r=this.__jsonld[t],(n=new a.Canvas(r,this.options)).index=t,this.items.push(n)}return this.items},t.prototype.getCanvasById=function(e){for(var t=0;t<this.getTotalCanvases();t++){var r=this.getCanvasByIndex(t),n=a.Utils.normaliseUrl(r.id);if(a.Utils.normaliseUrl(e)===n)return r}return null},t.prototype.getCanvasByIndex=function(e){return this.getCanvases()[e]},t.prototype.getCanvasIndexById=function(e){for(var t=0;t<this.getTotalCanvases();t++)if(this.getCanvasByIndex(t).id===e)return t;return null},t.prototype.getCanvasIndexByLabel=function(e,t){e=e.trim(),isNaN(e)||(e=parseInt(e,10).toString(),t&&(e+=\"r\"));for(var r,n,o,i=/(\\d*)\\D+(\\d*)/,a=0;a<this.getTotalCanvases();a++){var s=this.getCanvasByIndex(a);if(s.getLabel().getValue(this.options.locale)===e)return a;if((r=i.exec(e))&&(n=r[1],(o=r[2])&&new RegExp(\"^\"+n+\"\\\\D+\"+o+\"$\").test(s.getLabel().toString())))return a}return-1},t.prototype.getLastCanvasLabel=function(e){for(var t=this.getTotalCanvases()-1;t>=0;t--){var r=this.getCanvasByIndex(t).getLabel().getValue(this.options.locale);if(e){if(/^[a-zA-Z0-9]*$/.test(r))return r}else if(r)return r}return this.options.defaultLabel},t.prototype.getLastPageIndex=function(){return this.getTotalCanvases()-1},t.prototype.getNextPageIndex=function(e,t){var r;if(t){var n=this.getPagedIndices(e),o=this.getViewingDirection();r=o&&o===i.ViewingDirection.RIGHT_TO_LEFT?n[0]+1:n[n.length-1]+1}else r=e+1;return r>this.getLastPageIndex()?-1:r},t.prototype.getPagedIndices=function(e,t){var r=[];if(t){r=this.isFirstCanvas(e)||this.isLastCanvas(e)?[e]:e%2?[e,e+1]:[e-1,e];var n=this.getViewingDirection();n&&n===i.ViewingDirection.RIGHT_TO_LEFT&&(r=r.reverse())}else r.push(e);return r},t.prototype.getPrevPageIndex=function(e,t){var r;if(t){var n=this.getPagedIndices(e),o=this.getViewingDirection();r=o&&o===i.ViewingDirection.RIGHT_TO_LEFT?n[n.length-1]-1:n[0]-1}else r=e-1;return r},t.prototype.getStartCanvasIndex=function(){var e=this.getStartCanvas();if(e)for(var t=0;t<this.getTotalCanvases();t++)if(this.getCanvasByIndex(t).id===e)return t;return 0},t.prototype.getThumbs=function(e,t){for(var r=[],n=this.getTotalCanvases(),o=0;o<n;o++){var i=this.getCanvasByIndex(o),s=new a.Thumb(e,i);r.push(s)}return r},t.prototype.getThumbnails=function(){if(null!=this._thumbnails)return this._thumbnails;this._thumbnails=[];for(var e=this.getCanvases(),t=0;t<e.length;t++){var r=e[t].getThumbnail();r&&this._thumbnails.push(r)}return this._thumbnails},t.prototype.getStartCanvas=function(){return this.getProperty(\"startCanvas\")},t.prototype.getTotalCanvases=function(){return this.getCanvases().length},t.prototype.getViewingDirection=function(){return this.getProperty(\"viewingDirection\")?this.getProperty(\"viewingDirection\"):this.options.resource.getViewingDirection?this.options.resource.getViewingDirection():null},t.prototype.getViewingHint=function(){var e=this.getProperty(\"viewingHint\");return Array.isArray(e)&&(e=e[0]),e||null},t.prototype.isCanvasIndexOutOfRange=function(e){return e>this.getTotalCanvases()-1},t.prototype.isFirstCanvas=function(e){return 0===e},t.prototype.isLastCanvas=function(e){return e===this.getTotalCanvases()-1},t.prototype.isMultiCanvas=function(){return this.getTotalCanvases()>1},t.prototype.isPagingEnabled=function(){var e=this.getViewingHint();return!!e&&e===i.ViewingHint.PAGED},t.prototype.isTotalCanvasesEven=function(){return this.getTotalCanvases()%2==0},t}(a.ManifestResource);t.Sequence=s},29(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.Deserialiser=void 0;var n=r(799),o=function(){function e(){}return e.parse=function(e,t){return\"string\"==typeof e&&(e=JSON.parse(e)),this.parseJson(e,t)},e.parseJson=function(e,t){var r;if(t&&t.navDate&&!isNaN(t.navDate.getTime())&&(e.navDate=t.navDate.toString()),e[\"@type\"])switch(e[\"@type\"]){case\"sc:Collection\":r=this.parseCollection(e,t);break;case\"sc:Manifest\":r=this.parseManifest(e,t);break;default:return null}else switch(e.type){case\"Collection\":r=this.parseCollection(e,t);break;case\"Manifest\":r=this.parseManifest(e,t);break;default:return null}return r.isLoaded=!0,r},e.parseCollection=function(e,t){var r=new n.Collection(e,t);return t?(r.index=t.index||0,t.resource&&(r.parentCollection=t.resource.parentCollection)):r.index=0,this.parseCollections(r,t),this.parseManifests(r,t),this.parseItems(r,t),r},e.parseCollections=function(e,t){var r;if(e.__jsonld.collections?r=e.__jsonld.collections:e.__jsonld.items&&(r=e.__jsonld.items.filter(function(e){return\"collection\"===e.type.toLowerCase()})),r)for(var n=0;n<r.length;n++){t&&(t.index=n);var o=this.parseCollection(r[n],t);o.index=n,o.parentCollection=e,e.items.push(o)}},e.parseManifest=function(e,t){return new n.Manifest(e,t)},e.parseManifests=function(e,t){var r;if(e.__jsonld.manifests?r=e.__jsonld.manifests:e.__jsonld.items&&(r=e.__jsonld.items.filter(function(e){return\"manifest\"===e.type.toLowerCase()})),r)for(var n=0;n<r.length;n++){var o=this.parseManifest(r[n],t);o.index=n,o.parentCollection=e,e.items.push(o)}},e.parseItem=function(e,t){if(e[\"@type\"]){if(\"sc:manifest\"===e[\"@type\"].toLowerCase())return this.parseManifest(e,t);if(\"sc:collection\"===e[\"@type\"].toLowerCase())return this.parseCollection(e,t)}else if(e.type){if(\"manifest\"===e.type.toLowerCase())return this.parseManifest(e,t);if(\"collection\"===e.type.toLowerCase())return this.parseCollection(e,t)}return null},e.parseItems=function(e,t){var r=e.__jsonld.members||e.__jsonld.items;if(r)for(var n=function(n){t&&(t.index=n);var i=o.parseItem(r[n],t);return i?e.items.filter(function(e){return e.id===i.id})[0]?\"continue\":(i.index=n,i.parentCollection=e,void e.items.push(i)):{value:void 0}},o=this,i=0;i<r.length;i++){var a=n(i);if(\"object\"==typeof a)return a.value}},e}();t.Deserialiser=o},579(e,t,r){\"use strict\";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0}),t.Service=void 0;var i=r(799),a=function(e){function t(t,r){return e.call(this,t,r)||this}return o(t,e),t.prototype.getProfile=function(){var e=this.getProperty(\"profile\");return e||(e=this.getProperty(\"dcterms:conformsTo\")),Array.isArray(e)?e[0]:e},t.prototype.getConfirmLabel=function(){return i.Utils.getLocalisedValue(this.getProperty(\"confirmLabel\"),this.options.locale)},t.prototype.getDescription=function(){return i.Utils.getLocalisedValue(this.getProperty(\"description\"),this.options.locale)},t.prototype.getFailureDescription=function(){return i.Utils.getLocalisedValue(this.getProperty(\"failureDescription\"),this.options.locale)},t.prototype.getFailureHeader=function(){return i.Utils.getLocalisedValue(this.getProperty(\"failureHeader\"),this.options.locale)},t.prototype.getHeader=function(){return i.Utils.getLocalisedValue(this.getProperty(\"header\"),this.options.locale)},t.prototype.getServiceLabel=function(){return i.Utils.getLocalisedValue(this.getProperty(\"label\"),this.options.locale)},t.prototype.getInfoUri=function(){var e=this.id;return e.endsWith(\"/\")||(e+=\"/\"),e+\"info.json\"},t}(i.ManifestResource);t.Service=a},639(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.Size=void 0;t.Size=function(e,t){this.width=e,this.height=t}},633(e,t){\"use strict\";var r;Object.defineProperty(t,\"__esModule\",{value:!0}),t.StatusCode=void 0,function(e){e[e.AUTHORIZATION_FAILED=1]=\"AUTHORIZATION_FAILED\",e[e.FORBIDDEN=2]=\"FORBIDDEN\",e[e.INTERNAL_SERVER_ERROR=3]=\"INTERNAL_SERVER_ERROR\",e[e.RESTRICTED=4]=\"RESTRICTED\"}(r||(t.StatusCode=r={}))},692(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.Thumb=void 0;t.Thumb=function(e,t){this.data=t,this.index=t.index,this.width=e;var r=t.getHeight()/t.getWidth();this.height=r?Math.floor(this.width*r):e,this.uri=t.getCanonicalImageUri(e),this.label=t.getLabel().getValue(),this.viewingHint=t.getViewingHint()}},204(e,t,r){\"use strict\";var n,o=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)},function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0}),t.Thumbnail=void 0;var i=function(e){function t(t,r){return e.call(this,t,r)||this}return o(t,e),t}(r(799).Resource);t.Thumbnail=i},570(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.TreeNode=void 0;var n=r(799),o=function(){function e(e,t){this.label=e,this.data=t||{},this.nodes=[]}return e.prototype.addNode=function(e){this.nodes.push(e),e.parentNode=this},e.prototype.isCollection=function(){return this.data.type===n.Utils.normaliseType(n.TreeNodeType.COLLECTION)},e.prototype.isManifest=function(){return this.data.type===n.Utils.normaliseType(n.TreeNodeType.MANIFEST)},e.prototype.isRange=function(){return this.data.type===n.Utils.normaliseType(n.TreeNodeType.RANGE)},e}();t.TreeNode=o},386(e,t){\"use strict\";var r;Object.defineProperty(t,\"__esModule\",{value:!0}),t.TreeNodeType=void 0,function(e){e.COLLECTION=\"collection\",e.MANIFEST=\"manifest\",e.RANGE=\"range\"}(r||(t.TreeNodeType=r={}))},41(e,t,r){\"use strict\";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(o,i){function a(e){try{u(n.next(e))}catch(e){i(e)}}function s(e){try{u(n.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(a,s)}u((n=n.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var r,n,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create((\"function\"==typeof Iterator?Iterator:Object).prototype);return a.next=s(0),a.throw=s(1),a.return=s(2),\"function\"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(s){return function(u){return function(s){if(r)throw new TypeError(\"Generator is already executing.\");for(;a&&(a=0,s[0]&&(i=0)),i;)try{if(r=1,n&&(o=2&s[0]?n.return:s[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,s[1])).done)return o;switch(n=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return i.label++,{value:s[1],done:!1};case 5:i.label++,n=s[1],s=[0];continue;case 7:s=i.ops.pop(),i.trys.pop();continue;default:if(!((o=(o=i.trys).length>0&&o[o.length-1])||6!==s[0]&&2!==s[0])){i=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){i.label=s[1];break}if(6===s[0]&&i.label<o[1]){i.label=o[1],o=s;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(s);break}o[2]&&i.ops.pop(),i.trys.pop();continue}s=t.call(e,i)}catch(e){s=[6,e],n=0}finally{r=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,u])}}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.Utils=void 0;var i=r(799),a=r(957),s=r(19);r(916);var u=function(){function e(){}return e.getMediaType=function(e){return(e=(e=e.toLowerCase()).split(\";\")[0]).trim()},e.getImageQuality=function(e){return e===a.ServiceProfile.IMAGE_0_COMPLIANCE_LEVEL_1||e===a.ServiceProfile.IMAGE_0_COMPLIANCE_LEVEL_2||e===a.ServiceProfile.IMAGE_1_COMPLIANCE_LEVEL_1||e===a.ServiceProfile.IMAGE_1_COMPLIANCE_LEVEL_2||e===a.ServiceProfile.IMAGE_0_CONFORMANCE_LEVEL_1||e===a.ServiceProfile.IMAGE_0_CONFORMANCE_LEVEL_2||e===a.ServiceProfile.IMAGE_1_CONFORMANCE_LEVEL_1||e===a.ServiceProfile.IMAGE_1_CONFORMANCE_LEVEL_2||e===a.ServiceProfile.IMAGE_1_LEVEL_1||e===a.ServiceProfile.IMAGE_1_PROFILE_LEVEL_1||e===a.ServiceProfile.IMAGE_1_LEVEL_2||e===a.ServiceProfile.IMAGE_1_PROFILE_LEVEL_2?\"native\":\"default\"},e.getInexactLocale=function(e){return-1!==e.indexOf(\"-\")?e.substr(0,e.indexOf(\"-\")):e},e.getLocalisedValue=function(e,t){if(!Array.isArray(e))return e;for(var r=0;r<e.length;r++){var n=e[r];if(t===n[\"@language\"])return n[\"@value\"]}var o=t.substr(0,t.indexOf(\"-\"));for(r=0;r<e.length;r++){var i=e[r];if(i[\"@language\"]===o)return i[\"@value\"]}return null},e.generateTreeNodeIds=function(t,r){var n;void 0===r&&(r=0),n=t.parentNode?t.parentNode.id+\"-\"+r:\"0\",t.id=n;for(var o=0;o<t.nodes.length;o++){var i=t.nodes[o];e.generateTreeNodeIds(i,o)}},e.normaliseType=function(e){return-1!==(e=(e||\"\").toLowerCase()).indexOf(\":\")?e.split(\":\")[1]:e},e.normaliseUrl=function(e){return-1!==(e=e.substr(e.indexOf(\"://\"))).indexOf(\"#\")&&(e=e.split(\"#\")[0]),e},e.normalisedUrlsMatch=function(t,r){return e.normaliseUrl(t)===e.normaliseUrl(r)},e.isImageProfile=function(t){return!!(e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_0_COMPLIANCE_LEVEL_0)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_0_COMPLIANCE_LEVEL_1)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_0_COMPLIANCE_LEVEL_2)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_1_COMPLIANCE_LEVEL_0)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_1_COMPLIANCE_LEVEL_2)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_0_CONFORMANCE_LEVEL_0)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_0_CONFORMANCE_LEVEL_1)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_0_CONFORMANCE_LEVEL_2)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_1_CONFORMANCE_LEVEL_1)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_1_CONFORMANCE_LEVEL_2)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_1_LEVEL_0)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_1_PROFILE_LEVEL_0)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_1_LEVEL_1)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_1_PROFILE_LEVEL_1)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_1_LEVEL_2)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_1_PROFILE_LEVEL_2)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_2_LEVEL_0)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_2_PROFILE_LEVEL_0)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_2_LEVEL_1)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_2_PROFILE_LEVEL_1)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_2_LEVEL_2)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_2_PROFILE_LEVEL_2))},e.isImageServiceType=function(e){return null!==e&&e.toLowerCase()===a.ServiceType.IMAGE_SERVICE_2.toLowerCase()||e===a.ServiceType.IMAGE_SERVICE_3.toLowerCase()},e.isLevel0ImageProfile=function(t){return!!(e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_0_COMPLIANCE_LEVEL_0)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_1_COMPLIANCE_LEVEL_0)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_0_CONFORMANCE_LEVEL_0)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_1_CONFORMANCE_LEVEL_0)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_1_LEVEL_0)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_1_PROFILE_LEVEL_0)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_2_LEVEL_0)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_2_PROFILE_LEVEL_0))},e.isLevel1ImageProfile=function(t){return!!(e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_0_COMPLIANCE_LEVEL_1)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_1_COMPLIANCE_LEVEL_1)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_0_CONFORMANCE_LEVEL_1)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_1_CONFORMANCE_LEVEL_1)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_1_LEVEL_1)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_1_PROFILE_LEVEL_1)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_2_LEVEL_1)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_2_PROFILE_LEVEL_1))},e.isLevel2ImageProfile=function(t){return!!(e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_0_COMPLIANCE_LEVEL_2)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_1_COMPLIANCE_LEVEL_2)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_0_CONFORMANCE_LEVEL_2)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_1_CONFORMANCE_LEVEL_2)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_1_LEVEL_2)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_1_PROFILE_LEVEL_2)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_2_LEVEL_2)||e.normalisedUrlsMatch(t,a.ServiceProfile.IMAGE_2_PROFILE_LEVEL_2))},e.parseManifest=function(e,t){return i.Deserialiser.parse(e,t)},e.checkStatus=function(e){if(e.ok)return e;var t=new Error(e.statusText);return t.response=e,Promise.reject(t)},e.loadManifest=function(t){return new Promise(function(r,n){fetch(t).then(e.checkStatus).then(function(e){return e.json()}).then(function(e){r(e)}).catch(function(e){n()})})},e.loadExternalResourcesAuth1=function(t,r,n,o,i,a,s,u){return new Promise(function(l,c){var p=t.map(function(t){return e.loadExternalResourceAuth1(t,r,n,o,i,a,s,u)});Promise.all(p).then(function(){l(t)}).catch(function(e){c(e)})})},e.loadExternalResourceAuth1=function(t,r,i,a,u,l,c,p){return n(this,void 0,void 0,function(){var n;return o(this,function(o){switch(o.label){case 0:return[4,a(t)];case 1:return(n=o.sent())?[4,t.getData(n)]:[3,6];case 2:return o.sent(),t.status!==s.OK?[3,3]:[2,t];case 3:return[4,e.doAuthChain(t,r,i,u,l,c,p)];case 4:o.sent(),o.label=5;case 5:if(t.status===s.OK||t.status===s.MOVED_TEMPORARILY)return[2,t];throw e.createAuthorizationFailedError();case 6:return[4,t.getData()];case 7:return o.sent(),t.status!==s.MOVED_TEMPORARILY&&t.status!==s.UNAUTHORIZED?[3,9]:[4,e.doAuthChain(t,r,i,u,l,c,p)];case 8:o.sent(),o.label=9;case 9:if(t.status===s.OK||t.status===s.MOVED_TEMPORARILY)return[2,t];throw e.createAuthorizationFailedError()}})})},e.doAuthChain=function(t,r,i,a,u,l,c){return n(this,void 0,void 0,function(){var n,p,f,h,_,g,d,v;return o(this,function(o){switch(o.label){case 0:return t.isAccessControlled()?((n=t.externalService)&&(n.options=t.options),(p=t.kioskService)&&(p.options=t.options),(f=t.clickThroughService)&&(f.options=t.options),(h=t.loginService)&&(h.options=t.options),t.isResponseHandled||t.status!==s.MOVED_TEMPORARILY?[3,2]:[4,l(t)]):[2,t];case 1:case 3:case 6:case 10:case 14:return o.sent(),[2,t];case 2:return _=null,g=null,(_=n)?(g=_,[4,e.attemptResourceWithToken(t,i,_)]):[3,4];case 4:return(_=p)?(g=_,(d=r(_))?[4,a(d)]:[3,7]):[3,7];case 5:case 9:case 13:return o.sent(),[4,e.attemptResourceWithToken(t,i,_)];case 7:return(_=f)?(g=_,[4,u(t,_)]):[3,11];case 8:return(v=o.sent())?[4,a(v)]:[3,11];case 11:return(_=h)?(g=_,[4,u(t,_)]):[3,15];case 12:return(v=o.sent())?[4,a(v)]:[3,15];case 15:return g&&c(t,g),[2]}})})},e.attemptResourceWithToken=function(e,t,r){return n(this,void 0,void 0,function(){var n,i;return o(this,function(o){switch(o.label){case 0:return(n=r.getService(a.ServiceProfile.AUTH_1_TOKEN))?[4,t(e,n)]:[3,3];case 1:return(i=o.sent())&&i.accessToken?[4,e.getData(i)]:[3,3];case 2:return o.sent(),[2,e];case 3:return[2]}})})},e.loadExternalResourcesAuth09=function(t,r,n,o,i,a,s,u,l,c){return new Promise(function(p,f){var h=t.map(function(t){return e.loadExternalResourceAuth09(t,r,n,o,i,a,s,u,l,c)});Promise.all(h).then(function(){p(t)}).catch(function(e){f(e)})})},e.loadExternalResourceAuth09=function(t,r,n,o,i,a,u,l,c,p){return new Promise(function(f,h){p&&p.pessimisticAccessControl?t.getData().then(function(){t.isAccessControlled()?t.clickThroughService?(f(n(t)),f(o(t))):i(t).then(function(){a(t,!0).then(function(r){t.getData(r).then(function(){f(c(t))}).catch(function(t){h(e.createInternalServerError(t))})}).catch(function(t){h(e.createInternalServerError(t))})}).catch(function(t){h(e.createInternalServerError(t))}):f(t)}).catch(function(t){h(e.createInternalServerError(t))}):l(t,r).then(function(p){p?t.getData(p).then(function(){t.status===s.OK?f(c(t)):e.authorize(t,r,n,o,i,a,u,l).then(function(){f(c(t))}).catch(function(t){h(e.createAuthorizationFailedError())})}).catch(function(t){h(e.createAuthorizationFailedError())}):e.authorize(t,r,n,o,i,a,u,l).then(function(){f(c(t))}).catch(function(t){h(e.createAuthorizationFailedError())})}).catch(function(t){h(e.createAuthorizationFailedError())})})},e.createError=function(e,t){var r=new Error;return r.message=t,r.name=String(e),r},e.createAuthorizationFailedError=function(){return e.createError(i.StatusCode.AUTHORIZATION_FAILED,\"Authorization failed\")},e.createRestrictedError=function(){return e.createError(i.StatusCode.RESTRICTED,\"Restricted\")},e.createInternalServerError=function(t){return e.createError(i.StatusCode.INTERNAL_SERVER_ERROR,t)},e.authorize=function(t,r,n,o,i,a,u,l){return new Promise(function(c,p){t.getData().then(function(){t.isAccessControlled()?l(t,r).then(function(l){l?t.getData(l).then(function(){t.status===s.OK?c(t):e.showAuthInteraction(t,r,n,o,i,a,u,c,p)}).catch(function(t){p(e.createInternalServerError(t))}):a(t,!1).then(function(l){l?u(t,l,r).then(function(){t.getData(l).then(function(){t.status===s.OK?c(t):e.showAuthInteraction(t,r,n,o,i,a,u,c,p)}).catch(function(t){p(e.createInternalServerError(t))})}).catch(function(t){p(e.createInternalServerError(t))}):e.showAuthInteraction(t,r,n,o,i,a,u,c,p)})}).catch(function(t){p(e.createInternalServerError(t))}):c(t)})})},e.showAuthInteraction=function(t,r,n,o,i,a,u,l,c){t.status!==s.MOVED_TEMPORARILY||t.isResponseHandled?t.clickThroughService&&!t.isResponseHandled?n(t).then(function(){a(t,!0).then(function(n){u(t,n,r).then(function(){t.getData(n).then(function(){l(t)}).catch(function(t){c(e.createInternalServerError(t))})}).catch(function(t){c(e.createInternalServerError(t))})}).catch(function(t){c(e.createInternalServerError(t))})}):i(t).then(function(){a(t,!0).then(function(n){u(t,n,r).then(function(){t.getData(n).then(function(){l(t)}).catch(function(t){c(e.createInternalServerError(t))})}).catch(function(t){c(e.createInternalServerError(t))})}).catch(function(t){c(e.createInternalServerError(t))})}):l(t)},e.getService=function(e,t){for(var r=this.getServices(e),n=0;n<r.length;n++){var o=r[n];if(o.getProfile()===t)return o}return null},e.getResourceById=function(t,r){return e.traverseAndFind(t.__jsonld,\"@id\",r)},e.traverseAndFind=function(t,r,n){if(t.hasOwnProperty(r)&&t[r]===n)return t;for(var o=0;o<Object.keys(t).length;o++)if(\"object\"==typeof t[Object.keys(t)[o]]){var i=e.traverseAndFind(t[Object.keys(t)[o]],r,n);if(null!=i)return i}},e.getServices=function(t,r){var n=void 0===r?{}:r,o=n.onlyService,a=void 0!==o&&o,s=n.onlyServices,u=void 0!==s&&s,l=n.skipParentResources,c=[];(void 0===l||!l)&&t&&t.options&&t.options.resource&&t.options.resource!==t&&c.push.apply(c,e.getServices(t.options.resource,{onlyServices:!0}));var p=u?[]:(t.__jsonld||t).service||[];if(Array.isArray(p)||(p=[p]),a||p.push.apply(p,(t.__jsonld||t).services||[]),0===p.length)return c;for(var f=0;f<p.length;f++){var h=p[f];if(\"string\"==typeof h){var _=this.getResourceById(t.options.resource,h);_&&c.push(new i.Service(_.__jsonld||_,t.options))}else c.push(new i.Service(h,t.options))}return c},e.getTemporalComponent=function(e){var t=/t=([^&]+)/g.exec(e),r=null;return t&&t[1]&&(r=t[1].split(\",\")),r},e}();t.Utils=u},156(e,t,r){\"use strict\";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!(\"get\"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)\"default\"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,\"__esModule\",{value:!0}),t.parseManifest=t.loadManifest=void 0,o(r(799),t);var i=r(41);t.loadManifest=function(e){return i.Utils.loadManifest(e)},t.parseManifest=function(e,t){return i.Utils.parseManifest(e,t)}},799(e,t,r){\"use strict\";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!(\"get\"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)\"default\"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,\"__esModule\",{value:!0}),o(r(436),t),o(r(315),t),o(r(258),t),o(r(107),t),o(r(39),t),o(r(339),t),o(r(435),t),o(r(556),t),o(r(98),t),o(r(214),t),o(r(858),t),o(r(712),t),o(r(167),t),o(r(672),t),o(r(376),t),o(r(184),t),o(r(739),t),o(r(817),t),o(r(72),t),o(r(212),t),o(r(6),t),o(r(531),t),o(r(43),t),o(r(845),t),o(r(940),t),o(r(591),t),o(r(29),t),o(r(579),t),o(r(639),t),o(r(633),t),o(r(692),t),o(r(204),t),o(r(570),t),o(r(386),t),o(r(41),t)},782(e,t,r){\"use strict\";function n(e,t){return t=t||{},new Promise(function(r,n){var o=new XMLHttpRequest,i=[],a=[],s={},u=function(){return{ok:2==(o.status/100|0),statusText:o.statusText,status:o.status,url:o.responseURL,text:function(){return Promise.resolve(o.responseText)},json:function(){return Promise.resolve(o.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([o.response]))},clone:u,headers:{keys:function(){return i},entries:function(){return a},get:function(e){return s[e.toLowerCase()]},has:function(e){return e.toLowerCase()in s}}}};for(var l in o.open(t.method||\"get\",e,!0),o.onload=function(){o.getAllResponseHeaders().replace(/^(.*?):[^\\S\\n]*([\\s\\S]*?)$/gm,function(e,t,r){i.push(t=t.toLowerCase()),a.push([t,r]),s[t]=s[t]?s[t]+\",\"+r:r}),r(u())},o.onerror=n,o.withCredentials=\"include\"==t.credentials,t.headers)o.setRequestHeader(l,t.headers[l]);o.send(t.body||null)})}r.r(t),r.d(t,{default:()=>n})}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,r),i.exports}return r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},r(156)})());","import { Utils } from 'manifesto.js';\n\n/** @returns an IIIF image service for the given resource */\nexport function getIiifResourceImageService(resource) {\n return resource\n .getServices()\n .find(\n (service) =>\n (service.getProfile && Utils.isImageProfile(service.getProfile() || '')) ||\n Utils.isImageServiceType(service.getIIIFResourceType() || ''),\n );\n}\n","import { Canvas, AnnotationPage, Annotation } from 'manifesto.js';\nimport { getIiifResourceImageService } from './iiif';\n\n/**\n * MiradorCanvas - adds additional, testable logic around Manifesto's Canvas\n * https://iiif-commons.github.io/manifesto/classes/_canvas_.manifesto.canvas.html\n */\nexport default class MiradorCanvas {\n /**\n * @param {MiradorCanvas} canvas\n */\n constructor(canvas) {\n this.canvas = canvas;\n }\n\n /** */\n get id() {\n return this.canvas.id;\n }\n\n /** */\n getWidth() {\n return this.canvas.getWidth();\n }\n\n /** */\n getHeight() {\n return this.canvas.getHeight();\n }\n\n /**\n */\n get aspectRatio() {\n return this.canvas.getWidth() / this.canvas.getHeight();\n }\n\n /**\n * Fetches AnnotationList URIs from canvas's otherContent property\n *\n * Supported otherContent types:\n * - Objects having @type property of \"sc:AnnotationList\" and URI in @id\n * - Strings being the URIs\n */\n get annotationListUris() {\n return new Array(this.canvas.__jsonld.otherContent)\n .flat()\n .filter(\n (otherContent) => otherContent && (typeof otherContent === 'string' || otherContent['@type'] === 'sc:AnnotationList'),\n )\n .map((otherContent) => (typeof otherContent === 'string' ? otherContent : otherContent['@id']));\n }\n\n /** */\n get canvasAnnotationPages() {\n return new Array(this.canvas.__jsonld.annotations)\n .flat()\n .filter((annotations) => annotations && annotations.type === 'AnnotationPage');\n }\n\n /**\n * Will negotiate a v2 or v3 type of resource\n */\n get imageResource() {\n return this.imageResources[0];\n }\n\n /** */\n get imageResources() {\n // TODO Clean up the following hack as soon as manifesto.js provides any information if an annotation body is a Choice option, and if so, whether it is the preferred one.\n const resources = [\n this.canvas.getImages().map((i) => i.getResource()),\n this.canvas.getContent().map((i) => (i.__jsonld.body.type === 'Choice' ? i.__jsonld.body : i.getBody())),\n ].flat(Infinity);\n\n return resources.flatMap((resource) => {\n const type = resource.type || resource.getProperty('type');\n switch (type) {\n case 'Choice': {\n return new Canvas({ images: resource.items.map((r) => ({ resource: r })) }, this.canvas.options)\n .getImages()\n .map((img, index) => {\n const r = img.getResource();\n if (r) {\n r.preferred = !index;\n }\n return r;\n });\n }\n case 'oa:Choice': {\n return new Canvas(\n {\n images: [resource.getProperty('default'), resource.getProperty('item')].flat(Infinity).map((r) => ({\n resource: r,\n })),\n },\n this.canvas.options,\n )\n .getImages()\n .map((img, index) => {\n const r = img.getResource();\n if (r) {\n r.preferred = !index;\n }\n return r;\n });\n }\n default: {\n const r = resource;\n r.preferred = true;\n return r;\n }\n }\n });\n }\n\n /** */\n get textResources() {\n const resources = [this.canvas.getContent().map((i) => i.getBody())].flat(Infinity);\n return resources.filter((resource) => resource.getProperty('type') === 'Text').flat();\n }\n\n /** */\n get videoResources() {\n const resources = [this.canvas.getContent().map((i) => i.getBody())].flat(Infinity);\n return resources.filter((resource) => resource.getProperty('type') === 'Video').flat();\n }\n\n /** */\n get audioResources() {\n const resources = [this.canvas.getContent().map((i) => i.getBody())].flat(Infinity);\n\n return resources.filter((resource) => resource.getProperty('type') === 'Sound').flat();\n }\n\n /** */\n get v2VttContent() {\n const resources = [this.canvas.getContent().map((i) => i.getBody())].flat(Infinity);\n\n return resources.filter((resource) => resource.getProperty('format') === 'text/vtt').flat();\n }\n\n /** IIIF v3 captions are stored as 'supplementing' Annotations rather than in the resource content itself */\n get v3VttContent() {\n const resources = this.canvasAnnotationPages\n .map((annoPage) => {\n const manifestoAnnoPage = new AnnotationPage(annoPage, this.canvas.options);\n return manifestoAnnoPage.getItems().map((item) => {\n const manifestoAnnotation = new Annotation(item, this.canvas.options);\n return manifestoAnnotation.getBody();\n });\n })\n .flat(Infinity);\n\n return resources.filter((resource) => resource.getProperty('format') === 'text/vtt').flat();\n }\n\n /** */\n get resourceAnnotations() {\n return [this.canvas.getImages(), this.canvas.getContent()].flat(Infinity);\n }\n\n /**\n * Returns a given resource Annotation, based on a contained resource or body\n * id\n */\n resourceAnnotation(id) {\n return this.resourceAnnotations.find(\n (anno) => anno.getResource().id === id || new Array(anno.getBody()).flat().some((body) => body.id === id),\n );\n }\n\n /**\n * Returns the fragment placement values if a resourceAnnotation is placed on\n * a canvas somewhere besides the full extent\n */\n onFragment(id) {\n const resourceAnnotation = this.resourceAnnotation(id);\n if (!resourceAnnotation) return undefined;\n // IIIF v2\n const on = resourceAnnotation.getProperty('on');\n // IIIF v3\n const target = resourceAnnotation.getProperty('target');\n const fragmentMatch = (on || target).match(/xywh=(.*)$/);\n if (!fragmentMatch) return undefined;\n return fragmentMatch[1].split(',').map((str) => parseInt(str, 10));\n }\n\n /** */\n get iiifImageResources() {\n return this.imageResources.filter((r) => r && getIiifResourceImageService(r)?.id);\n }\n\n /** */\n get imageServiceIds() {\n return this.iiifImageResources.map((r) => r && getIiifResourceImageService(r)?.id);\n }\n\n /**\n * Get the canvas service\n */\n get service() {\n return this.canvas.__jsonld.service;\n }\n\n /**\n * Get the canvas label\n */\n getLabel(locale = undefined) {\n return this.canvas.getLabel().length > 0 ? this.canvas.getLabel().getValue(locale) : String(this.canvas.index + 1);\n }\n}\n","/**\n * MiradorManifest - adds additional, testable logic around Manifesto's Manifest\n * https://iiif-commons.github.io/manifesto/classes/_canvas_.manifesto.canvas.html\n */\nexport default class MiradorManifest {\n /** */\n constructor(manifest) {\n this.manifest = manifest;\n }\n\n /**\n * Returns the starting canvas specified in the manifest\n * @param {object} manifest manifesto instance\n * @param {number} canvasIndexFromState\n * @return {Canvas}\n */\n get startCanvas() {\n let canvasId;\n\n const sequence = this.manifest.getSequences()[0];\n\n if (!sequence) return undefined;\n\n // IIIF v2\n canvasId = sequence.getProperty('startCanvas');\n\n if (!canvasId) {\n // IIIF v3\n const start = this.manifest.getProperty('start') || sequence.getProperty('start');\n\n canvasId = start && (start.id || start.source);\n }\n\n return (canvasId && sequence.getCanvasById(canvasId)) || undefined;\n }\n\n /** */\n canvasAt(index) {\n const sequence = this.manifest.getSequences()[0];\n const canvases = sequence && sequence.getCanvases();\n\n return canvases && canvases[index];\n }\n}\n","import { createSelector } from 'reselect';\nimport MiradorCanvas from '../../lib/MiradorCanvas';\nimport MiradorManifest from '../../lib/MiradorManifest';\n\n/** */\nexport const getMiradorCanvasWrapper = createSelector(\n [],\n (canvasTypes, imageProfiles) => (canvas) => canvas && new MiradorCanvas(canvas),\n);\n\n/** */\nexport const getMiradorManifestWrapper = createSelector(\n [],\n (resourceTypes) => (manifest) => manifest && new MiradorManifest(manifest),\n);\n","/**\n */\nexport default function asArray(value) {\n if (value === undefined) return [];\n\n if (!Array.isArray(value)) {\n return [value];\n }\n\n return value;\n}\n","/**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n}\n\nmodule.exports = arrayAggregator;\n","var baseEach = require('./_baseEach');\n\n/**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n}\n\nmodule.exports = baseAggregator;\n","var arrayAggregator = require('./_arrayAggregator'),\n baseAggregator = require('./_baseAggregator'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray');\n\n/**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\nfunction createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, baseIteratee(iteratee, 2), accumulator);\n };\n}\n\nmodule.exports = createAggregator;\n","var baseAssignValue = require('./_baseAssignValue'),\n createAggregator = require('./_createAggregator');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\nvar groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n});\n\nmodule.exports = groupBy;\n","import { createSelector } from 'reselect';\nimport groupBy from 'lodash/groupBy';\nimport { miradorSlice, EMPTY_ARRAY, EMPTY_OBJECT } from './utils';\nimport { getWindow, getWindows } from './getters';\n\n/**\n * Returns companion windows.\n * @param {object} state\n * @returns {object}\n */\nexport function getCompanionWindows(state) {\n return miradorSlice(state).companionWindows || EMPTY_OBJECT;\n}\n\n/**\n * Returns the companion window.\n * @param {object} state\n * @param {object} props\n * @param {string} props.companionWindowId\n * @returns {object|undefined}\n */\nexport const getCompanionWindow = createSelector(\n [getCompanionWindows, (state, { companionWindowId }) => companionWindowId],\n (companionWindows, companionWindowId) => companionWindowId && companionWindows[companionWindowId],\n);\n\n/**\n * Returns the companion window locale.\n * @param {object} state\n * @param {object} props\n * @param {string} props.companionWindowId\n * @returns {string|undefined}\n */\nexport const getCompanionWindowLocale = createSelector(\n [getCompanionWindow],\n (companionWindow) => companionWindow && companionWindow.locale,\n);\n\n/**\n * Return position of thumbnail navigation in a certain window.\n * @param {object} state\n * @param {object} props\n * @param {string} props.windowId\n * @returns {string|undefined}\n */\nexport const getThumbnailNavigationPosition = createSelector(\n [getWindow, getCompanionWindows],\n (window, companionWindows) =>\n window && companionWindows[window.thumbnailNavigationId] && companionWindows[window.thumbnailNavigationId].position,\n);\n\n/**\n * Return companion window ids from a window.\n * @param {string} windowId\n * @returns {Array}\n */\nconst getCompanionWindowIndexByWindowAndPosition = createSelector(\n [getWindows, getCompanionWindows],\n (windows, companionWindows) =>\n (Object.keys(windows) || []).reduce(\n (obj, id) => ({\n ...obj,\n [id]: groupBy(\n windows[id].companionWindowIds || EMPTY_ARRAY,\n (cwid) => companionWindows[cwid] && companionWindows[cwid].position,\n ),\n }),\n {},\n ),\n);\n\n/**\n * Return companion window ids from a window.\n * @param {string} windowId\n * @returns {Array}\n */\nconst getCompanionWindowsByWindowAndPosition = createSelector([getWindows, getCompanionWindows], (windows, companionWindows) =>\n (Object.keys(windows) || []).reduce(\n (obj, id) => ({\n ...obj,\n [id]: groupBy(\n (windows[id].companionWindowIds || EMPTY_ARRAY).map((cwid) => companionWindows[cwid]),\n (cw) => cw.position,\n ),\n }),\n {},\n ),\n);\n\n/**\n * Return companion windows of a window.\n * @param {object} state\n * @param {string} windowId\n * @returns {Array}\n */\nconst getCompanionWindowsOfWindow = createSelector(\n [(state, { windowId }) => windowId, getCompanionWindowsByWindowAndPosition],\n (windowId, companionWindows) => companionWindows[windowId] || EMPTY_OBJECT,\n);\n\n/**\n * Return companion windows ids of a window.\n * @param {object} state\n * @param {string} windowId\n * @returns {Array}\n */\nconst getCompanionWindowIdsOfWindow = createSelector(\n [(state, { windowId }) => windowId, getCompanionWindowIndexByWindowAndPosition],\n (windowId, companionWindowIds) => companionWindowIds[windowId] || EMPTY_OBJECT,\n);\n\n/**\n * Return the companion window string from state in a given windowId and position.\n * @param {object} state\n * @param {string} windowId\n * @param {string} position\n * @returns {string}\n */\nexport const getCompanionWindowsForPosition = createSelector(\n [getCompanionWindowsOfWindow, (state, { position }) => position],\n (companionWindows, position) => companionWindows[position] || EMPTY_ARRAY,\n);\n\n/**\n * Return the companion window string from state in a given windowId and content type.\n * @param {object} state\n * @param {string} windowId\n * @param {string} position\n * @returns {string}\n */\nexport const getCompanionWindowsForContent = createSelector(\n [getCompanionWindowsOfWindow, (state, { content }) => content],\n (companionWindows, content) => [].concat(...Object.values(companionWindows)).filter((w) => w.content === content),\n);\n\n/**\n * Returns companion window ids for position.\n * @param {object} state\n * @param {object} props\n * @param {string} props.windowId\n * @param {string} props.position\n * @returns {Array}\n */\nexport const getCompanionWindowIdsForPosition = createSelector(\n [getCompanionWindowIdsOfWindow, (state, { position }) => position],\n (companionWindowIds, position) => companionWindowIds[position] || EMPTY_ARRAY,\n);\n\n/**\n * Returns the visibility of the companion area.\n * @param {object} state\n * @param {string} position\n * @returns {boolean}\n */\nexport const getCompanionAreaVisibility = createSelector([(state, { position }) => position, getWindow], (position, window) => {\n if (!window) return false;\n const { companionAreaOpen, sideBarOpen } = window;\n if (position !== 'left') return true;\n return !!(companionAreaOpen && sideBarOpen);\n});\n\n/**\n * Returns the dimensions.\n * @param {object} state\n * @param {string} companionWindowId\n * @returns {object} containing height and width\n */\nexport const selectCompanionWindowDimensions = createSelector([getCompanionWindowsOfWindow], (companionWindows) => {\n let width = 0;\n let height = 0;\n [].concat(...Object.values(companionWindows)).forEach((cw) => {\n if (cw.position.match(/right/)) {\n width += 235;\n }\n\n if (cw.position.match(/bottom/)) {\n height += 201;\n }\n });\n\n return { height, width };\n});\n","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn Object.propertyIsEnumerable.call(target, symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","import { createSelector } from 'reselect';\nimport deepmerge from 'deepmerge';\nimport { miradorSlice, EMPTY_ARRAY, EMPTY_OBJECT } from './utils';\nimport { getWorkspace } from './getters';\n\n/**\n * Returns the config from the redux state.\n * @param {object} state\n * @returns {object} containing config\n */\nexport function getConfig(state) {\n const slice = miradorSlice(state || {});\n return slice.config || EMPTY_OBJECT;\n}\n\n/**\n * Extract an exportable version of state using the configuration from the config.\n * @param {object} state\n * @returns {object} containing exportable state\n */\nexport function getExportableState(state) {\n const exportConfig = getConfig(state).export;\n\n return Object.entries(exportConfig).reduce((acc, [stem, value]) => {\n if (value === true) {\n // eslint-disable-next-line no-param-reassign\n acc[stem] = state[stem];\n } else if (value.filter) {\n // eslint-disable-next-line no-param-reassign\n acc[stem] = Object.entries(state[stem])\n .filter(value.filter)\n .reduce((stemAcc, [k, v]) => {\n // eslint-disable-next-line no-param-reassign\n stemAcc[k] = v;\n return stemAcc;\n }, {});\n }\n return acc;\n }, {});\n}\n\n/**\n * Return languages from config (in state) and indicate which is currently set.\n * @param {object} state\n * @returns {Array} [ {locale: 'de', label: 'Deutsch', current: true}, ... ]\n */\nexport const getLanguagesFromConfigWithCurrent = createSelector([getConfig], ({ availableLanguages, language }) =>\n Object.keys(availableLanguages).map((key) => ({\n current: key === language,\n label: availableLanguages[key],\n locale: key,\n })),\n);\n\n/**\n * Returns if showZoomControls is set in the config.\n * @param {object} state\n * @returns {boolean}\n */\nexport const getShowZoomControlsConfig = createSelector([getWorkspace, getConfig], (workspace, config) =>\n workspace.showZoomControls === undefined ? config.workspace.showZoomControls : workspace.showZoomControls,\n);\n\n/**\n * Returns the theme from the config.\n * @param {object} state\n * @returns {object} {palette: {...}, typography: {...}, overrides: {...}, ...}\n */\nexport const getTheme = createSelector([getConfig], ({ theme, themes, selectedTheme }) =>\n deepmerge(theme, themes[selectedTheme] || {}),\n);\n\n/**\n * Returns the theme ids from the config.\n * @param {object} state\n * @returns {Array} ['dark', 'light']\n */\nexport const getThemeIds = createSelector([getConfig], ({ themes }) => Object.keys(themes));\n\n/* @deprecated */\nexport const getContainerId = createSelector([getConfig], ({ id }) => id);\n\n/**\n * Returns the theme direction from the config.\n * @param {object} state\n * @returns {string}\n */\nexport const getThemeDirection = createSelector([getConfig], ({ theme }) => theme.direction || 'ltr');\n/**\n * Returns the requests configurations from the config.\n * @param {object} state\n * @returns {object} {preprocessor: [...], postprocessor: [...]}\n */\nexport const getRequestsConfig = createSelector([getConfig], ({ requests }) => requests || EMPTY_OBJECT);\n/**\n * Returns the thumbnails configurations from the config.\n * @param {object} state\n * @returns {object} {preprocessor: [...], postprocessor: [...]}\n */\nexport const getThumbnailsConfig = createSelector([getConfig], ({ thumbnails }) => thumbnails || EMPTY_OBJECT);\n","import { Utils } from 'manifesto.js';\nimport MiradorManifest from './MiradorManifest';\nimport MiradorCanvas from './MiradorCanvas';\nimport asArray from './asArray';\n\n/** */\nfunction isLevel0ImageProfile(service) {\n const profile = service.getProfile();\n\n // work around a bug in manifesto with normalized urls that strip # values.\n if (profile.endsWith('#level1') || profile.endsWith('#level2')) return false;\n\n // support IIIF v3-style profiles\n if (profile === 'level0') return true;\n\n return Utils.isLevel0ImageProfile(profile);\n}\n\n/** */\nfunction isLevel2ImageProfile(service) {\n const profile = service.getProfile();\n\n // work around a bug in manifesto with normalized urls that strip # values.\n if (profile.endsWith('#level0') || profile.endsWith('#level1')) return false;\n\n // support IIIF v3-style profiles\n if (profile === 'level2') return true;\n\n return Utils.isLevel2ImageProfile(profile);\n}\n\n/** */\nfunction iiifv3ImageServiceType(service) {\n const type = service.getProperty('type') || [];\n\n return asArray(type).some((v) => v.startsWith('ImageService'));\n}\n\n/** */\nfunction iiifImageService(resource) {\n const service =\n resource && resource.getServices().find((s) => iiifv3ImageServiceType(s) || Utils.isImageProfile(s.getProfile()));\n\n if (!service) return undefined;\n\n return service;\n}\n\n/** */\nclass ThumbnailFactory {\n /** */\n constructor(iiifOpts = {}, { getMiradorCanvas, getMiradorManifest }) {\n this.iiifOpts = iiifOpts;\n this.getMiradorCanvas = getMiradorCanvas;\n this.getMiradorManifest = getMiradorManifest;\n }\n\n /** */\n static staticImageUrl(resource) {\n return {\n height: resource.getProperty('height'),\n url: resource.id,\n width: resource.getProperty('width'),\n };\n }\n\n /**\n * Selects the image resource that is representative of the given canvas.\n * @param {Object} canvas A Manifesto Canvas\n * @return {Object} A Manifesto Image Resource\n */\n static getPreferredImage(miradorCanvas) {\n return miradorCanvas.iiifImageResources[0] || miradorCanvas.imageResource;\n }\n\n /**\n * Chooses the best available image size based on a target area (w x h) value.\n * @param {Object} service A IIIF Image API service that has a `sizes` array\n * @param {Number} targetArea The target area value to compare potential sizes against\n * @return {Object|undefined} The best size, or undefined if none are acceptable\n */\n static selectBestImageSize(service, targetArea) {\n const sizes = asArray(service.getProperty('sizes'));\n\n let closestSize = {\n default: true,\n height: service.getProperty('height') || Number.MAX_SAFE_INTEGER,\n width: service.getProperty('width') || Number.MAX_SAFE_INTEGER,\n };\n\n /** Compare the total image area to our target */\n const imageFitness = (test) => test.width * test.height - targetArea;\n\n /** Look for the size that's just bigger than we prefer... */\n closestSize = sizes.reduce((best, test) => {\n const score = imageFitness(test);\n\n if (score < 0) return best;\n\n return Math.abs(score) < Math.abs(imageFitness(best)) ? test : best;\n }, closestSize);\n\n /** .... but not \"too\" big; we'd rather scale up an image than download too much */\n if (closestSize.width * closestSize.height > targetArea * 6) {\n closestSize = sizes.reduce(\n (best, test) => (Math.abs(imageFitness(test)) < Math.abs(imageFitness(best)) ? test : best),\n closestSize,\n );\n }\n\n if (closestSize.default) return undefined;\n\n return closestSize;\n }\n\n /**\n * Determines the appropriate thumbnail to use to represent an Image Resource.\n * @param {Object} resource The Image Resource from which to derive a thumbnail\n * @return {Object} The thumbnail URL and any spatial dimensions that can be determined\n */\n // eslint-disable-next-line complexity\n iiifThumbnailUrl(resource) {\n let size;\n let width;\n let height;\n const minDimension = 120;\n let maxHeight = minDimension;\n let maxWidth = minDimension;\n const { maxHeight: requestedMaxHeight, maxWidth: requestedMaxWidth } = this.iiifOpts;\n\n if (requestedMaxHeight) maxHeight = Math.max(requestedMaxHeight, minDimension);\n if (requestedMaxWidth) maxWidth = Math.max(requestedMaxWidth, minDimension);\n\n const service = iiifImageService(resource);\n\n if (!service) return ThumbnailFactory.staticImageUrl(resource);\n\n const aspectRatio = resource.getWidth() && resource.getHeight() && resource.getWidth() / resource.getHeight();\n const target = requestedMaxWidth && requestedMaxHeight ? requestedMaxWidth * requestedMaxHeight : maxHeight * maxWidth;\n const closestSize = ThumbnailFactory.selectBestImageSize(service, target);\n\n if (closestSize) {\n // Embedded service advertises an appropriate size\n width = closestSize.width;\n height = closestSize.height;\n size = `${width},${height}`;\n } else if (isLevel0ImageProfile(service)) {\n /** Bail if the best available size is the full size.. maybe we'll get lucky with the @id */\n if (!service.getProperty('height') && !service.getProperty('width')) {\n return ThumbnailFactory.staticImageUrl(resource);\n }\n } else if (requestedMaxHeight && requestedMaxWidth) {\n // IIIF level 2, no problem.\n if (isLevel2ImageProfile(service)) {\n size = `!${maxWidth},${maxHeight}`;\n width = maxWidth;\n height = maxHeight;\n\n if (aspectRatio && aspectRatio > 1) height = Math.round(maxWidth / aspectRatio);\n if (aspectRatio && aspectRatio < 1) width = Math.round(maxHeight * aspectRatio);\n } else if (maxWidth / maxHeight < aspectRatio) {\n size = `${maxWidth},`;\n width = maxWidth;\n if (aspectRatio) height = Math.round(maxWidth / aspectRatio);\n } else {\n size = `,${maxHeight}`;\n height = maxHeight;\n if (aspectRatio) width = Math.round(maxHeight * aspectRatio);\n }\n } else if (requestedMaxHeight && !requestedMaxWidth) {\n size = `,${maxHeight}`;\n height = maxHeight;\n if (aspectRatio) width = Math.round(maxHeight * aspectRatio);\n } else if (!requestedMaxHeight && requestedMaxWidth) {\n size = `${maxWidth},`;\n width = maxWidth;\n if (aspectRatio) height = Math.round(maxWidth / aspectRatio);\n } else {\n size = `,${minDimension}`;\n height = minDimension;\n if (aspectRatio) width = Math.round(height * aspectRatio);\n }\n\n const region = 'full';\n const quality = Utils.getImageQuality(service.getProfile());\n const id = service.id.replace(/\\/+$/, '');\n const format = this.getFormat(service);\n return {\n height,\n url: [id, region, size, 0, `${quality}.${format}`].join('/'),\n width,\n };\n }\n\n /**\n * Figure out what format thumbnail to use by looking at the preferred formats\n * on offer, and selecting a format shared in common with the application's\n * preferred format list.\n *\n * Fall back to jpg, which is required to work for all IIIF services.\n */\n getFormat(service) {\n const { preferredFormats = [] } = this.iiifOpts;\n const servicePreferredFormats = service.getProperty('preferredFormats');\n\n if (!servicePreferredFormats) return 'jpg';\n\n const filteredFormats = servicePreferredFormats.filter((value) => preferredFormats.includes(value));\n\n // this is a format found in common between the preferred formats of the service\n // and the application\n if (filteredFormats[0]) return filteredFormats[0];\n\n // IIIF Image API guarantees jpg support; if it wasn't provided by the service\n // but the application is fine with it, we might as well try it.\n if (!servicePreferredFormats.includes('jpg') && preferredFormats.includes('jpg')) {\n return 'jpg';\n }\n\n // there were no formats in common, and the application didn't want jpg... so\n // just trust that the IIIF service is advertising something useful?\n if (servicePreferredFormats[0]) return servicePreferredFormats[0];\n\n // JPG support is guaranteed by the spec, so it's a good worst-case fallback\n return 'jpg';\n }\n\n /**\n * Determines the content resource from which to derive a thumbnail to represent a given resource.\n * This method is recursive.\n * @param {Object} resource A IIIF resource to derive a thumbnail from\n * @return {Object|undefined} The Image Resource to derive a thumbnail from, or undefined\n * if no appropriate resource exists\n */\n getSourceContentResource(resource) {\n const thumbnail = resource.getThumbnail();\n\n // Any resource type may have a thumbnail\n if (thumbnail) {\n if (typeof thumbnail.__jsonld === 'string') return thumbnail.__jsonld;\n\n // Prefer an image's ImageService over its image's thumbnail\n // Note that Collection, Manifest, and Canvas don't have `getType()`\n if (!resource.isCollection() && !resource.isManifest() && !resource.isCanvas()) {\n if (resource.getType() === 'image' && iiifImageService(resource) && !iiifImageService(thumbnail)) {\n return resource;\n }\n }\n\n return thumbnail;\n }\n\n if (resource.isCollection()) {\n const firstManifest = resource.getManifests()[0];\n if (firstManifest) return this.getSourceContentResource(firstManifest);\n\n return undefined;\n }\n\n if (resource.isManifest()) {\n const miradorManifest = this.getMiradorManifest(resource);\n const canvas = miradorManifest.startCanvas || miradorManifest.canvasAt(0);\n if (canvas) return this.getSourceContentResource(canvas);\n\n return undefined;\n }\n\n if (resource.isCanvas()) {\n const image = ThumbnailFactory.getPreferredImage(this.getMiradorCanvas(resource));\n if (image) return this.getSourceContentResource(image);\n\n return undefined;\n }\n\n if (resource.getType() === 'image') {\n return resource;\n }\n\n return undefined;\n }\n\n /**\n * Gets a thumbnail representing the resource.\n * @return {Object|undefined} A thumbnail representing the resource, or undefined if none could\n * be determined\n */\n get(resource) {\n if (!resource) return undefined;\n\n // Determine which content resource we should use to derive a thumbnail\n const sourceContentResource = this.getSourceContentResource(resource);\n if (!sourceContentResource) return undefined;\n\n // Special treatment for external resources\n if (typeof sourceContentResource === 'string') return { url: sourceContentResource };\n\n return this.iiifThumbnailUrl(sourceContentResource);\n }\n}\n\n/** */\nfunction getBestThumbnail(resource, iiifOpts = {}) {\n return new ThumbnailFactory(iiifOpts, {\n getMiradorCanvas: (r) => new MiradorCanvas(r),\n getMiradorManifest: (r) => new MiradorManifest(r),\n }).get(resource);\n}\n\nexport { ThumbnailFactory };\nexport default getBestThumbnail;\n","import { createSelector } from 'reselect';\n\nimport { getThumbnailsConfig } from './config';\nimport { getMiradorCanvasWrapper, getMiradorManifestWrapper } from './wrappers';\n\nimport { ThumbnailFactory } from '../../lib/ThumbnailFactory';\n\n/** memoize thumbnail opts for selector */\nexport const getIiifThumbnailOpts = createSelector(\n [getThumbnailsConfig, (state, maxHeight, maxWidth) => maxHeight, (state, maxHeight, maxWidth) => maxWidth],\n (thumbnails, maxHeight, maxWidth) => ({\n maxHeight,\n maxWidth,\n preferredFormats: thumbnails.preferredFormats,\n }),\n);\n\n/**\n * Instantiate a thumbnail factory.\n * @param {object} state\n * @param {integer} maxHeight\n * @param {integer} maxWidth\n * @return {object}\n */\nexport const getThumbnailFactory = createSelector(\n [getIiifThumbnailOpts, getMiradorCanvasWrapper, getMiradorManifestWrapper],\n (iiifOpts, getMiradorCanvas, getMiradorManifest) => new ThumbnailFactory(iiifOpts, { getMiradorCanvas, getMiradorManifest }),\n);\n","import { createSelector } from 'reselect';\nimport { PropertyValue, Utils, Resource } from 'manifesto.js';\nimport asArray from '../../lib/asArray';\nimport { getCompanionWindowLocale } from './companionWindows';\nimport { getManifest } from './getters';\nimport { getConfig } from './config';\nimport { getThumbnailFactory } from './thumbnails';\n\n/** */\nfunction createManifestoInstance(json, locale) {\n if (!json) return undefined;\n // Use structuredClone to create a deep copy and prevent Manifesto from mutating the json\n const manifestoObject = Utils.parseManifest(structuredClone(json), locale ? { locale } : undefined);\n if (manifestoObject) {\n // Local patching of Manifesto so that when its a Collection, it behaves similarly\n if (typeof manifestoObject.getSequences != 'function') {\n manifestoObject.getSequences = () => [];\n }\n return manifestoObject;\n }\n return undefined;\n}\n\n/** */\nexport const getLocale = createSelector(\n [getCompanionWindowLocale, getConfig, (state, { locale }) => locale],\n (companionWindowLocale, config = {}, locale) => locale || companionWindowLocale || config.language || config.fallbackLanguages,\n);\n\nconst defaultManifestStatus = Object.freeze({ missing: true });\n\n/**\n * Convenience selector to get a manifest (or placeholder).\n * @param {object} state\n * @param {object} props\n * @param {string} props.windowId\n * @returns {object} {error: null: id: string, isFetching: boolean, json: {...}}\n */\nexport const getManifestStatus = createSelector([getManifest], (manifest) => manifest || defaultManifestStatus);\n\n/**\n * Convenience selector to get a manifest loading error\n * @param {object} state\n * @param {object} props\n * @param {string} props.manifestId\n * @returns {string|null}\n */\nexport const getManifestError = createSelector([getManifest], (manifest) => manifest && manifest.error);\n\n/** Instantiate a manifesto instance */\nconst getContextualManifestoInstance = createSelector(\n getManifest,\n (manifest) => manifest && createManifestoInstance(manifest.json),\n);\n\n/**\n * Instantiate a manifesto instance\n * @param {object} state\n * @param {object} props\n * @param {string} props.manifestId\n * @returns {object}\n */\nexport const getManifestoInstance = createSelector(\n getContextualManifestoInstance,\n (state, { json }) => json,\n (manifesto, manifestJson) => (manifestJson && createManifestoInstance(manifestJson)) || manifesto,\n);\n\nexport const getManifestLocale = createSelector(\n [getManifestoInstance, getLocale],\n (manifest, locale) =>\n locale ?? (manifest && manifest.options && manifest.options.locale && manifest.options.locale.replace(/-.*$/, '')),\n);\n\n/** */\nfunction getProperty(property) {\n return createSelector([getManifestoInstance], (manifest) => manifest && manifest.getProperty(property));\n}\n\n/**\n * Return the IIIF v3 provider of a manifest or null.\n * @param {object} state\n * @param {object} props\n * @param {string} props.manifestId\n * @param {string} props.windowId\n * @returns {string|null}\n */\nexport const getManifestProviderName = createSelector(\n [getProperty('provider'), getManifestLocale],\n (provider, locale) => provider && provider[0].label && PropertyValue.parse(provider[0].label).getValue(locale),\n);\n\nconst EMPTY_LOGO_OPTS = Object.freeze({});\n\n/**\n * Return the IIIF v3 provider logo.\n * @param {object} state\n * @param {object} props\n * @returns {string|null}\n */\nexport const getProviderLogo = createSelector(\n [getProperty('provider'), (state) => getThumbnailFactory(state, EMPTY_LOGO_OPTS)],\n (provider, thumbnailFactory) => {\n const logo = provider && provider[0] && provider[0].logo && provider[0].logo[0];\n if (!logo) return null;\n return thumbnailFactory.get(new Resource(logo))?.url;\n },\n);\n\n/**\n * Get the logo for a manifest.\n * @param {object} state\n * @param {object} props\n * @returns {string|null}\n */\nexport const getManifestLogo = createSelector(\n [getManifestoInstance, getProviderLogo],\n (manifest, v3logo) => v3logo || (manifest && manifest.getLogo()),\n);\n\n/**\n * Return the IIIF v3 homepage of a manifest or null.\n * @param {object} state\n * @param {object} props\n * @param {string} props.manifestId\n * @param {string} props.windowId\n * @returns {string|null}\n */\nexport const getManifestHomepage = createSelector(\n [getProperty('homepage'), getManifestLocale],\n (homepages, locale) =>\n homepages &&\n asArray(homepages).map((homepage) => ({\n label: PropertyValue.parse(homepage.label).getValue(locale),\n value: homepage.id || homepage['@id'],\n })),\n);\n\n/**\n * Return the IIIF v3 renderings of a manifest or null.\n * @param {object} state\n * @param {object} props\n * @param {string} props.manifestId\n * @param {string} props.windowId\n * @returns {string|null}\n */\nexport const getManifestRenderings = createSelector(\n [getManifestoInstance, getManifestLocale],\n (manifest, locale) =>\n manifest &&\n manifest.getRenderings().map((rendering) => ({\n label: rendering.getLabel().getValue(locale),\n value: rendering.id,\n })),\n);\n\n/**\n * Return the IIIF v2/v3 seeAlso data from a manifest or null.\n * @param {object} state\n * @param {object} props\n * @param {string} props.manifestId\n * @param {string} props.windowId\n * @returns {string|null}\n */\nexport const getManifestSeeAlso = createSelector(\n [getProperty('seeAlso'), getManifestLocale],\n (seeAlso, locale) =>\n seeAlso &&\n asArray(seeAlso).map((related) => ({\n format: related.format,\n label: PropertyValue.parse(related.label).getValue(locale),\n value: related.id || related['@id'],\n })),\n);\n\n/**\n * Return the IIIF v2/v3 seeAlso data from a manifest or null.\n * @param {object} state\n * @param {object} props\n * @param {string} props.manifestId\n * @param {string} props.windowId\n * @returns {string|null}\n * @deprecated This does not actually return the content of \"related\" and\n * might be removed in a future version.\n * @see getManifestSeeAlso\n */\nexport const getManifestRelatedContent = getManifestSeeAlso;\n\n/**\n * Return the IIIF v2 realated links manifest or null\n * @param {object} state\n * @param {object} props\n * @param {string} props.manifestId\n * @param {string} props.windowId\n * @returns {string|null}\n */\nexport const getManifestRelated = createSelector(\n [getProperty('related'), getManifestLocale],\n (relatedLinks, locale) =>\n relatedLinks &&\n asArray(relatedLinks).map((related) =>\n typeof related === 'string'\n ? {\n value: related,\n }\n : {\n format: related.format,\n label: PropertyValue.parse(related.label).getValue(locale),\n value: related.id || related['@id'],\n },\n ),\n);\n\n/**\n * Return the IIIF requiredStatement (v3) or attribution (v2) data from a manifest or null\n * @param {object} state\n * @param {object} props\n * @param {string} props.manifestId\n * @param {string} props.windowId\n * @returns {string|null}\n */\nexport const getRequiredStatement = createSelector(\n [getLocale, getManifestoInstance],\n (locale, manifest) =>\n manifest &&\n asArray(manifest.getRequiredStatement()).flatMap((labelValuePair) => {\n const values = labelValuePair?.getValues(locale) ?? [];\n if (!values.length) {\n return [];\n }\n const labels = labelValuePair?.getLabels(locale) ?? [];\n return Array.from({ length: Math.max(labels.length, values.length) }, (_, idx) => idx)\n .filter((idx) => values[idx])\n .map((idx) => ({\n label: labels[idx] ?? null,\n values: [values[idx]],\n }));\n }),\n);\n\n/**\n * Return the IIIF v2 rights (v3) or license (v2) data from a manifest or null\n * @param {object} state\n * @param {object} props\n * @param {string} props.manifestId\n * @param {string} props.windowId\n * @returns {string|null}\n */\nexport const getRights = createSelector(\n [getProperty('rights'), getProperty('license'), getManifestLocale],\n (rights, license, locale) => {\n const data = rights || license;\n return asArray(PropertyValue.parse(data).getValues(locale));\n },\n);\n\n/**\n * Return the supplied thumbnail for a manifest or null.\n * @param {object} state\n * @param {object} props\n * @param {string} props.manifestId\n * @param {string} props.windowId\n * @returns {string|null}\n */\nexport function getManifestThumbnail(state, props) {\n const manifest = getManifestoInstance(state, props);\n const thumbnailFactory = getThumbnailFactory(state, 80, 120);\n if (!manifest) return undefined;\n const thumbnail = thumbnailFactory.get(manifest);\n return thumbnail && thumbnail.url;\n}\n\n/**\n * Return manifest title.\n * @param {object} state\n * @param {object} props\n * @param {string} props.manifestId\n * @param {string} props.windowId\n * @returns {string}\n */\nexport const getManifestTitle = createSelector(\n [getManifestoInstance, getManifestLocale],\n (manifest, locale) => manifest && manifest.getLabel().getValue(locale),\n);\n\n/**\n * Return manifest description (IIIF v2) -- distinct from any description field nested under metadata.\n * @param {object} state\n * @param {object} props\n * @param {string} props.manifestId\n * @param {string} props.windowId\n * @returns {string|null}\n */\nexport const getManifestDescription = createSelector(\n [getLocale, getManifestoInstance],\n (locale, manifest) => manifest && manifest.getDescription().getValue(locale),\n);\n\n/**\n * Return manifest summary (IIIF v3).\n * @param {object} state\n * @param {object} props\n * @param {string} props.manifestId\n * @param {string} props.windowId\n * @return {string|null}\n */\nexport const getManifestSummary = createSelector(\n [getProperty('summary'), getManifestLocale],\n (summary, locale) => summary && PropertyValue.parse(summary).getValue(locale),\n);\n\n/**\n * Return manifest title.\n * @param {object} state\n * @param {object} props\n * @param {string} props.manifestId\n * @param {string} props.windowId\n * @returns {string}\n */\nexport const getManifestUrl = createSelector([getManifestoInstance], (manifest) => manifest && manifest.id);\n\n/**\n * Return metadata in a label / value structure\n * This is a potential seam for pulling the i18n locale from\n * state and plucking out the appropriate language.\n * For now we're just getting the first.\n * @param {object} Manifesto IIIF Resource (e.g. canvas, manifest)\n * @param iiifResource\n * @returns {Array[Object]}\n */\nexport function getDestructuredMetadata(iiifResource, locale = undefined) {\n return (\n iiifResource &&\n iiifResource.getMetadata().map((labelValuePair) => ({\n label: labelValuePair.getLabel(locale),\n values: labelValuePair.getValues(locale),\n }))\n );\n}\n\n/**\n * Return manifest metadata in a label / value structure\n * @param {object} state\n * @param {object} props\n * @param {string} props.manifestId\n * @param {string} props.windowId\n * @returns {Array[Object]}\n */\nexport const getManifestMetadata = createSelector(\n [getManifestoInstance, getManifestLocale],\n (manifest, locale) => manifest && getDestructuredMetadata(manifest, locale),\n);\n\n/** */\nfunction getLocalesForStructure(item) {\n const languages = new Set([]);\n\n /** Extract language indicators from IIIF v2 or v3 manifests */\n const extractLanguage = (i) => {\n if (!(i && typeof i === 'object')) return;\n\n // IIIF v2 pattern\n if (i['@language'] && i['@value']) {\n languages.add(i['@language']);\n return;\n }\n\n // IIIF v3 pattern\n Object.keys(i).forEach((key) => {\n languages.add(key);\n });\n };\n\n if (Array.isArray(item)) {\n item.forEach((i) => extractLanguage(i));\n } else {\n extractLanguage(item);\n }\n\n return [...languages];\n}\n\n/** */\nfunction getLocales(resource) {\n if (!resource) return [];\n\n const metadata = resource.getProperty('metadata') || [];\n const languages = {};\n\n for (let i = 0; i < metadata.length; i += 1) {\n const item = metadata[i];\n getLocalesForStructure(item.label).forEach((l) => {\n languages[l] = true;\n });\n getLocalesForStructure(item.value).forEach((l) => {\n languages[l] = true;\n });\n }\n return Object.keys(languages);\n}\n\nexport const getMetadataLocales = createSelector([getManifestoInstance], (manifest) => getLocales(manifest));\n\n/**\n * Returns manifest search service.\n * @param {object} state\n * @param {object} props\n * @param {string} props.manifestId\n * @returns {string|null}\n */\nexport const getManifestSearchService = createSelector([getManifestoInstance], (manifest) => {\n if (!manifest) return null;\n const searchService =\n manifest.getService('http://iiif.io/api/search/0/search') || manifest.getService('http://iiif.io/api/search/1/search');\n if (searchService) return searchService;\n return null;\n});\n\n/**\n * Returns manifest autocomplete service.\n * @param {object} state\n * @param {object} props\n * @param {string} props.manifestId\n * @returns {string|null}\n */\nexport const getManifestAutocompleteService = createSelector([getManifestSearchService], (searchService) => {\n const autocompleteService =\n searchService &&\n (searchService.getService('http://iiif.io/api/search/0/autocomplete') ||\n searchService.getService('http://iiif.io/api/search/1/autocomplete'));\n\n return autocompleteService && autocompleteService;\n});\n","import { createSelector } from 'reselect';\nimport { TreeNode } from 'manifesto.js';\nimport { getManifestoInstance } from './manifests';\nimport { getWindow } from './getters';\n\n/**\n * Returns the sequences for a given windowId\n * @param {object} state\n * @param {object} props\n * @param {string} props.windowId\n * @returns {Array}\n */\nexport const getSequences = createSelector([getManifestoInstance], (manifest) => {\n if (!manifest || !manifest.getTopRanges) return null;\n\n const topRangesOrRoot = manifest.getTopRanges();\n const v2TopRanges = topRangesOrRoot.filter((r) => r.getProperty('viewingHint') === 'top');\n let v3RangeSequences = [];\n\n if (v2TopRanges.length === 0 && topRangesOrRoot.length === 1) {\n v3RangeSequences = topRangesOrRoot[0].getRanges().filter((r) => r.getBehavior() === 'sequence');\n }\n\n const sequences = [].concat(\n // v2: multi-sequence manifests, or v3: items\n manifest.getSequences(),\n // v3: all top-level ranges with behavior=sequence\n v3RangeSequences,\n );\n\n return sequences;\n});\n\n/**\n * Returns the sequence for a given windowId\n * @param {object} state\n * @param {object} props\n * @param {string} props.windowId\n * @returns {Array}\n */\nexport const getSequence = createSelector(\n [getSequences, getWindow, (state, { sequenceId }) => sequenceId],\n (sequences, window, sequenceId) => {\n if (!sequences) return null;\n\n if (sequenceId || (window && window.sequenceId)) {\n const currentSequence = sequences.find((s) => s.id === (sequenceId || window.sequenceId));\n\n if (currentSequence) return currentSequence;\n }\n\n return sequences[0];\n },\n);\n\n/**\n * Return the canvas index for a certain window.\n * @param {Object} state\n * @param {string} windowId\n * @returns {number}\n */\nexport const getCanvasIndex = createSelector(\n [getWindow, getSequence],\n (window, sequence) => ((sequence && window && window.canvasId && sequence.getCanvasById(window.canvasId)) || {}).index || 0,\n);\n\n/**\n * Returns the viewing hint for the first sequence in the manifest or the manifest.\n * @param {object} state\n * @param {object} props\n * @param {string} props.manifestId\n * @param {string} props.windowId\n * @returns {number}\n */\nexport const getSequenceViewingHint = createSelector([getSequence, getManifestoInstance], (sequence, manifest) => {\n if (!manifest) return null;\n const viewingHint = (sequence && sequence.getViewingHint()) || manifest.getViewingHint();\n if (viewingHint) return viewingHint;\n return null;\n});\n\n/**\n * @param {object} state\n * @param {string} windowId\n * @return {string|null}\n */\nexport const getSequenceViewingDirection = createSelector(\n [getWindow, getSequence, getManifestoInstance],\n (window, sequence, manifest) => {\n const viewingDirection =\n (window && window.viewingDirection) ||\n (sequence && sequence.getViewingDirection()) ||\n (manifest && manifest.getViewingDirection());\n if (viewingDirection) return viewingDirection;\n return null;\n },\n);\n\n/**\n * Returns the behaviors viewing hint for the manifest\n * @param {Object} state\n * @param {Object} props\n * @param {string} props.manifestId\n * @param {string} props.windowId\n * @return {number}\n */\nexport const getSequenceBehaviors = createSelector([getSequence, getManifestoInstance], (sequence, manifest) => {\n if (!manifest || !sequence) return [];\n const sequenceBehaviors = sequence && sequence.getProperty('behavior');\n\n if (sequenceBehaviors) {\n if (Array.isArray(sequenceBehaviors)) return sequenceBehaviors;\n return [sequenceBehaviors];\n }\n\n const behaviors = manifest.getProperty('behavior');\n\n if (!behaviors) return [];\n if (Array.isArray(behaviors)) return behaviors;\n return [behaviors];\n});\n\n/**\n * Retruns a sequence tree structure.\n * @param {object} state\n * @param {object} props\n * @param {string} props.windowId\n * @returns {object}\n */\nexport const getSequenceTreeStructure = createSelector([getSequence, getManifestoInstance], (sequence, manifest) => {\n if (sequence && sequence.getProperty('type') && sequence.isRange()) return sequence.getTree(new TreeNode('root'));\n\n return manifest && manifest.getDefaultTree();\n});\n","import { createSelector } from 'reselect';\nimport { getWorkspace } from './getters';\nimport { miradorSlice } from './utils';\n\n/**\n * Returns the elastic layout from the state.\n * @param {object} state\n * @returns {Object}\n */\nexport function getElasticLayout(state) {\n return miradorSlice(state).elasticLayout;\n}\n\n/**\n * Returns if fullscreen is enabled.\n * @param {object} state\n * @returns {boolean}\n */\nexport const getFullScreenEnabled = createSelector([getWorkspace], (workspace) => workspace.isFullscreenEnabled);\n\n/**\n * Returns the latest error from the state.\n * @param {object} state\n * @returns {object|undefined}\n */\nexport function getLatestError(state) {\n const [errorId] = miradorSlice(state).errors.items;\n\n return miradorSlice(state).errors[errorId];\n}\n\n/**\n * Returns the type of the workspace.\n * @param {Object} state\n * @returns {string} 'mosaic' | 'elastic'\n */\nexport const getWorkspaceType = createSelector([getWorkspace], ({ type }) => type);\n\n/**\n * Returns the ID of the focused window.\n * @param {object} state\n * @returns {string|undefined}\n */\nexport const getFocusedWindowId = createSelector([getWorkspace], ({ focusedWindowId }) => focusedWindowId);\n\n/**\n * Returns if a given window is focused.\n * @param {object} state\n * @param {string} windowId\n * @returns {boolean}\n */\nexport const isFocused = (state, { windowId }) => getFocusedWindowId(state) === windowId;\n","import { createSelector } from 'reselect';\nimport { getManifestTitle } from './manifests';\nimport { getConfig } from './config';\nimport { getWindows, getWindow, getWindowIds } from './getters';\nimport { getWorkspaceType } from './workspace';\nimport { getSequenceViewingHint, getSequenceBehaviors } from './sequences';\n\n/**\n * Returns the window configuration based.\n * @param {object} state\n * @param {string} windowId\n * @returns {object}\n */\nexport const getWindowConfig = createSelector([getConfig, getWindow], ({ window: defaultConfig }, windowConfig = {}) => ({\n ...defaultConfig,\n ...windowConfig,\n}));\n\n/**\n * Returns the manifest titles for all open windows.\n * @param {object} state\n * @returns {object}\n */\nexport function getWindowTitles(state) {\n const result = {};\n\n Object.keys(getWindows(state)).forEach((windowId) => {\n result[windowId] = getManifestTitle(state, { windowId });\n });\n\n return result;\n}\n\n/**\n * Returns an array containing the maximized windowIds.\n * @param {object} state\n * @return {Array}\n */\nexport const getMaximizedWindowsIds = createSelector([getWindows], (windows) =>\n Object.values(windows)\n .filter((window) => window.maximized === true)\n .map((window) => window.id),\n);\n\n/**\n * Returns type of view in a certain window.\n * @param {object} state\n * @param {object} props\n * @param {string} props.manifestId\n * @param {string} props.windowId\n * @param {string}\n */\nexport const getWindowViewType = createSelector(\n [getWindow, getWindowConfig, getSequenceViewingHint, getSequenceBehaviors],\n (window, { views = [], defaultView }, manifestViewingHint, manifestBehaviors) => {\n if (window && window.view) return window.view;\n\n const config = (views || []).find(\n (view) => view.behaviors && view.behaviors.some((b) => manifestViewingHint === b || manifestBehaviors.includes(b)),\n );\n\n return (config && config.key) || defaultView;\n },\n);\n\n/**\n * Returns the window view type for a given window.\n * @param {object} state\n * @param {string} windowId\n * @returns {string} 'single' | 'book' | 'scroll' | 'gallery'\n */\nexport const getAllowedWindowViewTypes = createSelector(\n [getSequenceViewingHint, getSequenceBehaviors, getWindowConfig],\n (manifestViewingHint, manifestBehaviors, { views = [], defaultView }) =>\n (views || []).reduce((allowedViews, view) => {\n if (\n view.key === defaultView ||\n !view.behaviors ||\n view.behaviors.some((b) => manifestViewingHint === b || manifestBehaviors.includes(b))\n )\n allowedViews.push(view.key);\n return allowedViews;\n }, []),\n);\n\n/**\n * Return the draggability of a window.\n * @param {object} state\n * @param {object} props\n * @returns {boolean}\n */\nexport const getWindowDraggability = createSelector(\n [getWorkspaceType, getWindow, (state) => getWindowIds(state).length > 1],\n (workspaceType, window, manyWindows) => {\n if (workspaceType === 'elastic') return true;\n return manyWindows && window && window.maximized === false;\n },\n);\n","import { createSelector } from 'reselect';\nimport CanvasGroupings from '../../lib/CanvasGroupings';\nimport { getIiifResourceImageService } from '../../lib/iiif';\nimport { getMiradorCanvasWrapper } from './wrappers';\nimport { miradorSlice, EMPTY_ARRAY } from './utils';\nimport { getWindow } from './getters';\nimport { getSequence } from './sequences';\nimport { getWindowViewType } from './windows';\nimport { getManifestLocale, getDestructuredMetadata } from './manifests';\n\n/**\n * Returns the info response.\n * @param {object} state\n * @returns {object}\n */\nexport const selectInfoResponses = (state) => miradorSlice(state).infoResponses;\n\nexport const getCanvases = createSelector([getSequence], (sequence) => (sequence && sequence.getCanvases()) || EMPTY_ARRAY);\n\n/**\n * Return the canvas selected by an id\n * @param {object} state\n * @param {object} props\n * @param {string} props.canvasId\n * @returns {object}\n */\nexport const getCanvas = createSelector([getSequence, (state, { canvasId }) => canvasId], (sequence, canvasId) => {\n if (!sequence || !canvasId) return undefined;\n\n return sequence.getCanvasById(canvasId);\n});\n\n/**\n * Returns the current canvas.\n * @param {object} state\n * @param {object} props\n * @param {string} props.windowId\n * @returns {object|undefined}\n */\nexport const getCurrentCanvas = createSelector([getSequence, getWindow], (sequence, window) => {\n if (!sequence || !window) return undefined;\n\n if (!window.canvasId) return sequence.getCanvasByIndex(0);\n\n return sequence.getCanvasById(window.canvasId);\n});\n\n/**\n * Returns the visible canvas ids.\n * @param {object} state\n * @param {object} props\n * @param {string} props.windowId\n * @returns {Array}\n */\nexport const getVisibleCanvasIds = createSelector(\n [getWindow],\n (window) => (window && (window.visibleCanvases || (window.canvasId && [window.canvasId]))) || EMPTY_ARRAY,\n);\n\n/**\n * Returns the visible canvses.\n * @param {object} state\n * @param {object} props\n * @param {string} props.windowId\n * @returns {Array}\n */\nexport const getVisibleCanvases = createSelector([getVisibleCanvasIds, getCanvases], (canvasIds, canvases) =>\n (canvases || []).filter((c) => canvasIds.includes(c.id)),\n);\n\n/**\n * Return the current canvases grouped by how they'll appear in the viewer.\n * For book view returns groups of 2, for single returns 1.\n * @param {object} state\n * @param {object} props\n * @param {string} props.manifestId\n * @param {string} props.windowId\n * @returns {Array}\n */\nexport const getCanvasGroupings = createSelector(\n [getCanvases, getWindowViewType],\n (canvases, view) => canvases && new CanvasGroupings(canvases, view).groupings(),\n);\n\n/**\n * Return the current canvases selected in a window.\n * For book view returns 2, for single returns 1.\n * @param {object} state\n * @param {object} props\n * @param {string} props.manifestId\n * @param {string} props.windowId\n * @param {string} props.canvasId\n * @returns {Array}\n */\nexport const getCanvasGrouping = createSelector(\n [getCanvasGroupings, (state, { canvasId }) => canvasId],\n (groupings, canvasId) => (groupings && groupings.find((group) => group.some((c) => c.id === canvasId))) || EMPTY_ARRAY,\n);\n\n/**\n * Return the next canvas(es) for a window.\n * For book view returns 2, for single returns 1.\n * @param {object} state\n * @param {object} props\n * @param {string} props.manifestId\n * @param {string} props.windowId\n * @returns {Array}\n */\nexport const getNextCanvasGrouping = createSelector([getCanvasGroupings, getCurrentCanvas], (groupings, canvas, view) => {\n if (!groupings || !canvas) return undefined;\n const currentGroupIndex = groupings.findIndex((group) => group.some((c) => c.id === canvas.id));\n\n if (currentGroupIndex < 0 || currentGroupIndex + 1 >= groupings.length) return undefined;\n const newGroup = groupings[currentGroupIndex + 1];\n\n return newGroup;\n});\n\n/**\n * Return the previous canvas(es) for a window.\n * For book view returns 2, for single returns 1.\n * @param {object} state\n * @param {object} props\n * @param {string} props.manifestId\n * @param {string} props.windowId\n * @returns {Array}\n */\nexport const getPreviousCanvasGrouping = createSelector([getCanvasGroupings, getCurrentCanvas], (groupings, canvas, view) => {\n if (!groupings || !canvas) return undefined;\n\n const currentGroupIndex = groupings.findIndex((group) => group.some((c) => c.id === canvas.id));\n\n if (currentGroupIndex < 1) return undefined;\n const newGroup = groupings[currentGroupIndex - 1];\n\n return newGroup;\n});\n\n/**\n * Return canvas label, or alternatively return the given index + 1 to be displayed.\n * @param {object} state\n * @param {object} props\n * @param {string} props.canvasId\n * @param {string} props.manifestId\n * @returns {string|number}\n */\nexport const getCanvasLabel = createSelector(\n [getCanvas, getManifestLocale],\n (canvas, locale) => canvas && (canvas.getLabel().length > 0 ? canvas.getLabel().getValue(locale) : String(canvas.index + 1)),\n);\n\n/**\n * Return canvas metadata in a label / value structure\n * @param {object} state\n * @param {object} props\n * @param {string} props.canvasId\n * @param {string} props.windowId\n * @returns {Array[Object]}\n */\nexport const getCanvasMetadata = createSelector(\n [getCanvas, getManifestLocale],\n (canvas, locale) => canvas && getDestructuredMetadata(canvas, locale),\n);\n\n/**\n * Return canvas description.\n * @param {object} canvas\n * @param {string} companionWindowId\n */\nexport const getCanvasDescription = createSelector([getCanvas], (canvas) => canvas && canvas.getProperty('description'));\n\n/**\n * Return visible non tiled canvas resources.\n * @param {object}\n * @param {string} windowId\n * @returns {Array}\n */\nexport const getVisibleCanvasNonTiledResources = createSelector(\n [getVisibleCanvases, getMiradorCanvasWrapper],\n (canvases, getMiradorCanvas) =>\n canvases\n .flatMap((canvas) => getMiradorCanvas(canvas).imageResources)\n .filter((resource) => !getIiifResourceImageService(resource)),\n);\n\n/**\n * Returns visible canvas text resources.\n * @param {object} state\n * @param {string} windowId\n * @return {Array}\n */\nexport const getVisibleCanvasTextResources = createSelector(\n [getVisibleCanvases, getMiradorCanvasWrapper],\n (canvases, getMiradorCanvas) => canvases.flatMap((canvas) => getMiradorCanvas(canvas).textResources),\n);\n\n/**\n * Returns visible canvas video resources.\n * @param {object} state\n * @param {string} windowId\n * @return {Array}\n */\nexport const getVisibleCanvasVideoResources = createSelector(\n [getVisibleCanvases, getMiradorCanvasWrapper],\n (canvases, getMiradorCanvas) => canvases.flatMap((canvas) => getMiradorCanvas(canvas).videoResources),\n);\n\n/**\n * Returns visible canvas captions.\n * @param {object} state\n * @param {string} windowId\n * @return {Array}\n */\nexport const getVisibleCanvasCaptions = createSelector(\n [getVisibleCanvases, getMiradorCanvasWrapper],\n (canvases, getMiradorCanvas) =>\n canvases.flatMap((canvas) => {\n const miradorCanvas = getMiradorCanvas(canvas);\n // prefer v3, fallback to v2, which can also be an empty array if no captions exist.\n if (miradorCanvas.v3VttContent.length) return miradorCanvas.v3VttContent;\n return miradorCanvas.v2VttContent;\n }),\n);\n\n/**\n * Returns visible canvas audio resources.\n * @param {object} state\n * @param {string} windowId\n * @return {Array}\n */\nexport const getVisibleCanvasAudioResources = createSelector(\n [getVisibleCanvases, getMiradorCanvasWrapper],\n (canvases, getMiradorCanvas) => canvases.flatMap((canvas) => getMiradorCanvas(canvas).audioResources),\n);\n\n/**\n * Returns info response.\n * @param {object} state\n * @param {object} props\n * @param {string} props.windowId\n * @param {string} props.canvasId\n * @param {string} props.infoId\n * @returns {object|undefined}\n */\nexport const selectInfoResponse = createSelector(\n [(state, { infoId }) => infoId, getCanvas, getMiradorCanvasWrapper, selectInfoResponses],\n (infoId, canvas, getMiradorCanvas, infoResponses) => {\n let iiifServiceId = infoId;\n\n if (!infoId) {\n if (!canvas) return undefined;\n const image = getMiradorCanvas(canvas).iiifImageResources[0];\n iiifServiceId = image && getIiifResourceImageService(image)?.id;\n }\n\n return (\n iiifServiceId && infoResponses[iiifServiceId] && !infoResponses[iiifServiceId].isFetching && infoResponses[iiifServiceId]\n );\n },\n);\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,82,88,89,90,91,93],"mappings":"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"}