@projektemacher/storymapjs 0.10.8 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (195) hide show
  1. package/CHANGELOG +81 -0
  2. package/README.md +129 -12
  3. package/dist/assets/{demo-DBpeF31K.js → demo-bWnOyfUw.js} +1 -1
  4. package/dist/assets/harness-C3JUv5Ii.js +1 -0
  5. package/dist/assets/{harness-multi-CYHgI0a9.js → harness-multi-XZNex3tb.js} +1 -1
  6. package/dist/assets/{harness-support-Do7sIp2j.js → harness-support-CjfZIVeb.js} +1 -1
  7. package/dist/assets/main-DQ32hWBM.js +17 -0
  8. package/dist/context.json +13 -2
  9. package/dist/css/storymap.css +1 -1
  10. package/dist/demo.html +3 -2
  11. package/dist/docs/api/assets/navigation.js +1 -1
  12. package/dist/docs/api/assets/search.js +1 -1
  13. package/dist/docs/api/classes/StoryMap.html +777 -269
  14. package/dist/docs/api/functions/MediaType.html +1 -1
  15. package/dist/docs/api/functions/isPresentation3Collection.html +1 -1
  16. package/dist/docs/api/functions/isPresentation3Manifest.html +1 -1
  17. package/dist/docs/api/functions/isSlideshowCollection.html +51 -0
  18. package/dist/docs/api/functions/loadCSS.html +1 -1
  19. package/dist/docs/api/functions/manifestToStorymapData.html +1 -1
  20. package/dist/docs/api/functions/setLanguage.html +1 -1
  21. package/dist/docs/api/functions/slideshowToStorymapData.html +51 -0
  22. package/dist/docs/api/functions/slideshowVersion.html +48 -0
  23. package/dist/docs/api/functions/storymapToManifest.html +1 -1
  24. package/dist/docs/api/functions/validateStorymap.html +1 -1
  25. package/dist/docs/api/functions/validateStorymapAndReport.html +1 -1
  26. package/dist/docs/api/index.html +115 -12
  27. package/dist/docs/api/interfaces/AnimationHandle.html +2 -2
  28. package/dist/docs/api/interfaces/ImagereadyPayload.html +4 -4
  29. package/dist/docs/api/interfaces/LanguageEntry.html +6 -6
  30. package/dist/docs/api/interfaces/LatLngLiteral.html +4 -4
  31. package/dist/docs/api/interfaces/LoadOptions.html +2 -2
  32. package/dist/docs/api/interfaces/MapEvents.html +116 -0
  33. package/dist/docs/api/interfaces/MapMarkerEvents.html +66 -0
  34. package/dist/docs/api/interfaces/MarkerEventPayload.html +57 -0
  35. package/dist/docs/api/interfaces/MediaEvents.html +78 -0
  36. package/dist/docs/api/interfaces/MenuBarEvents.html +114 -0
  37. package/dist/docs/api/interfaces/MessageEvents.html +72 -0
  38. package/dist/docs/api/interfaces/OlLayer.html +1 -1
  39. package/dist/docs/api/interfaces/OlMap.html +1 -1
  40. package/dist/docs/api/interfaces/OlSource.html +1 -1
  41. package/dist/docs/api/interfaces/OlTileLayer.html +1 -1
  42. package/dist/docs/api/interfaces/OlVectorLayer.html +1 -1
  43. package/dist/docs/api/interfaces/OlView.html +1 -1
  44. package/dist/docs/api/interfaces/SlideBackgroundState.html +66 -0
  45. package/dist/docs/api/interfaces/SlideEvents.html +78 -0
  46. package/dist/docs/api/interfaces/SlideNavEvents.html +72 -0
  47. package/dist/docs/api/interfaces/SlideshowPlayerSettings.html +182 -0
  48. package/dist/docs/api/interfaces/SlideshowToStorymapResult.html +60 -0
  49. package/dist/docs/api/interfaces/SlideshowTranslatorOptions.html +65 -0
  50. package/dist/docs/api/interfaces/SlideshowWarning.html +72 -0
  51. package/dist/docs/api/interfaces/StoryMapEvents.html +146 -0
  52. package/dist/docs/api/interfaces/StoryMapMarker.html +763 -0
  53. package/dist/docs/api/interfaces/StorySliderEvents.html +102 -0
  54. package/dist/docs/api/interfaces/StorymapBasemap.html +69 -0
  55. package/dist/docs/api/interfaces/StorymapData.html +12 -6
  56. package/dist/docs/api/interfaces/StorymapDataWrapper.html +2 -2
  57. package/dist/docs/api/interfaces/StorymapDocument.html +2 -2
  58. package/dist/docs/api/interfaces/StorymapError.html +3 -3
  59. package/dist/docs/api/interfaces/StorymapGeoreference.html +5 -5
  60. package/dist/docs/api/interfaces/StorymapGeoreferenceBody.html +4 -4
  61. package/dist/docs/api/interfaces/StorymapGroundControlPoint.html +4 -4
  62. package/dist/docs/api/interfaces/StorymapLanguageMap.html +2 -2
  63. package/dist/docs/api/interfaces/StorymapManifest.html +12 -12
  64. package/dist/docs/api/interfaces/StorymapManifestAnnotation.html +43 -11
  65. package/dist/docs/api/interfaces/StorymapManifestBackground.html +6 -6
  66. package/dist/docs/api/interfaces/StorymapManifestCanvas.html +65 -17
  67. package/dist/docs/api/interfaces/StorymapManifestContentResource.html +8 -8
  68. package/dist/docs/api/interfaces/StorymapManifestFeatureCollection.html +4 -4
  69. package/dist/docs/api/interfaces/StorymapManifestGeoreferencing.html +7 -7
  70. package/dist/docs/api/interfaces/StorymapManifestImageService.html +4 -4
  71. package/dist/docs/api/interfaces/StorymapManifestRange.html +5 -5
  72. package/dist/docs/api/interfaces/StorymapManifestService.html +4 -4
  73. package/dist/docs/api/interfaces/StorymapManifestSpecificResource.html +4 -4
  74. package/dist/docs/api/interfaces/StorymapManifestStatement.html +3 -3
  75. package/dist/docs/api/interfaces/StorymapMapOptions.html +5 -5
  76. package/dist/docs/api/interfaces/StorymapOptions.html +277 -75
  77. package/dist/docs/api/interfaces/StorymapOverlayLayer.html +42 -11
  78. package/dist/docs/api/interfaces/StorymapSlide.html +70 -16
  79. package/dist/docs/api/interfaces/StorymapSlideBackground.html +4 -4
  80. package/dist/docs/api/interfaces/StorymapSlideLocation.html +58 -14
  81. package/dist/docs/api/interfaces/StorymapSlideMarker.html +8 -9
  82. package/dist/docs/api/interfaces/StorymapSlideMedia.html +49 -10
  83. package/dist/docs/api/interfaces/StorymapSlideNarration.html +61 -9
  84. package/dist/docs/api/interfaces/StorymapSlideText.html +4 -4
  85. package/dist/docs/api/interfaces/StorymapTilejson.html +8 -8
  86. package/dist/docs/api/interfaces/SwipableEvents.html +102 -0
  87. package/dist/docs/api/interfaces/TextEvents.html +66 -0
  88. package/dist/docs/api/media/events.md +66 -0
  89. package/dist/docs/api/media/migration-from-knightlab.md +89 -49
  90. package/dist/docs/api/media/slideshow.md +109 -0
  91. package/dist/docs/api/media/storymap-as-iiif-manifest.md +1007 -0
  92. package/dist/docs/api/modules.html +6 -6
  93. package/dist/docs/api/types/ContentState.html +3 -3
  94. package/dist/docs/api/types/FiredEvent.html +43 -0
  95. package/dist/docs/api/types/ImagereadyKind.html +1 -1
  96. package/dist/docs/api/types/MediaTypeMatch.html +5 -5
  97. package/dist/docs/api/types/SwipeDirection.html +36 -0
  98. package/dist/docs/api/types/TileSourceFactory.html +1 -1
  99. package/dist/docs/authoring.html +20 -7
  100. package/dist/docs/events.html +263 -0
  101. package/dist/docs/iiif.html +136 -22
  102. package/dist/docs/migration.html +66 -19
  103. package/dist/docs/readme.html +113 -12
  104. package/dist/embed/index.html +7 -0
  105. package/dist/examples/font-css-false.json +33 -0
  106. package/dist/examples/issue-image-region.json +1 -1
  107. package/dist/examples/layers-control.json +60 -0
  108. package/dist/examples/map-template-provider.json +36 -0
  109. package/dist/examples/multi-media.json +71 -0
  110. package/dist/examples-iiif/annotated-image.json +16 -0
  111. package/dist/examples-iiif/font-css-false.json +114 -0
  112. package/dist/examples-iiif/issue-image-region.json +1 -1
  113. package/dist/examples-iiif/layers-control.json +226 -0
  114. package/dist/examples-iiif/map-template-provider.json +133 -0
  115. package/dist/examples-iiif/multi-media.json +237 -0
  116. package/dist/examples-slideshow/single.json +79 -0
  117. package/dist/examples-slideshow/static/pixel.png +0 -0
  118. package/dist/examples-slideshow/static.json +44 -0
  119. package/dist/harness-multi.html +3 -3
  120. package/dist/harness.html +4 -3
  121. package/dist/index.html +3 -2
  122. package/dist/js/storymap.d.ts +1326 -289
  123. package/dist/js/storymap.js +6690 -4784
  124. package/dist/js/storymap.js.map +1 -1
  125. package/dist/navplace-properties.json +14 -0
  126. package/dist/site.css +54 -36
  127. package/docs/migration-from-knightlab.md +89 -49
  128. package/docs/storymap-as-iiif-manifest.md +199 -126
  129. package/package.json +4 -2
  130. package/schema/storymap.schema.json +334 -34
  131. package/src/core/Util.ts +3 -1
  132. package/src/core/mixins.ts +42 -28
  133. package/src/language/Language.ts +7 -0
  134. package/src/language/locale/.expected-gaps.json +287 -27
  135. package/src/language/locale/de.json +11 -1
  136. package/src/language/locale/en.json +11 -1
  137. package/src/main.ts +51 -0
  138. package/src/map/Map.ts +44 -6
  139. package/src/map/MapMarker.ts +16 -3
  140. package/src/map/openlayers/Map.OpenLayers.ts +787 -62
  141. package/src/map/openlayers/MapMarker.OpenLayers.ts +113 -13
  142. package/src/map/slideView.ts +149 -0
  143. package/src/map/types.ts +2 -0
  144. package/src/media/EmbedUtil.ts +27 -2
  145. package/src/media/Media.ts +27 -4
  146. package/src/media/embedId.ts +6 -0
  147. package/src/media/types/Flickr.ts +14 -3
  148. package/src/media/types/HtmlMedia.ts +66 -0
  149. package/src/media/types/Image.ts +15 -3
  150. package/src/media/types/SoundCloud.ts +1 -1
  151. package/src/media/types/Text.ts +27 -8
  152. package/src/media/types/Twitter.ts +9 -7
  153. package/src/media/types/Vimeo.ts +1 -1
  154. package/src/media/types/YouTube.ts +2 -2
  155. package/src/scss/Typography.scss +15 -15
  156. package/src/scss/VCO.StoryMap.scss +173 -8
  157. package/src/scss/core/Reset.scss +5 -18
  158. package/src/scss/map/VCO.Map.scss +1 -1
  159. package/src/scss/map/VCO.MapMarker.scss +20 -9
  160. package/src/scss/map/openlayers/VCO.Map.OpenLayers.scss +7 -4
  161. package/src/scss/media/VCO.Media.scss +7 -7
  162. package/src/scss/media/types/VCO.Media.Blockquote.scss +1 -1
  163. package/src/scss/media/types/VCO.Media.Text.scss +5 -5
  164. package/src/scss/media/types/VCO.Media.Twitter.scss +4 -4
  165. package/src/scss/media/types/VCO.Media.Wikipedia.scss +2 -19
  166. package/src/scss/site/site.scss +55 -36
  167. package/src/scss/slider/VCO.Slide.scss +49 -11
  168. package/src/scss/slider/VCO.SlideNav.scss +23 -7
  169. package/src/scss/slider/VCO.StorySlider.scss +50 -0
  170. package/src/scss/snapmap/VCO.SnapMap.scss +3 -3
  171. package/src/scss/ui/VCO.Consent.scss +20 -14
  172. package/src/scss/ui/VCO.Layers.scss +119 -0
  173. package/src/scss/ui/VCO.MenuBar.Button.scss +140 -19
  174. package/src/scss/ui/VCO.MenuBar.scss +9 -2
  175. package/src/scss/ui/VCO.Message.scss +14 -0
  176. package/src/slider/Slide.ts +232 -74
  177. package/src/slider/SlideNav.ts +15 -4
  178. package/src/slider/StorySlider.ts +203 -22
  179. package/src/storymap/Consent.ts +22 -0
  180. package/src/storymap/StoryMap.ts +944 -131
  181. package/src/storymap/content-state.ts +3 -8
  182. package/src/storymap/font-css.ts +72 -0
  183. package/src/storymap/from-slideshow.ts +785 -0
  184. package/src/storymap/iiif-shared.ts +228 -0
  185. package/src/storymap/iiif.ts +289 -100
  186. package/src/storymap/to-iiif.ts +131 -44
  187. package/src/types.ts +382 -17
  188. package/src/ui/LayersControl.ts +302 -0
  189. package/src/ui/MenuBar.ts +232 -21
  190. package/src/ui/Message.ts +36 -3
  191. package/src/ui/Swipable.ts +25 -7
  192. package/dist/assets/harness-Cr0rYpvt.js +0 -1
  193. package/dist/assets/main-DXalctuR.js +0 -17
  194. package/src/scss/VCO.StoryMap.Dark.scss +0 -150
  195. package/src/scss/Variables.Dark.scss +0 -57
@@ -31,7 +31,7 @@ Vimeo, images, audio, video, ...</p>
31
31
  <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">false</span> <span class="tsd-signature-symbol">|</span> <a href="../types/MediaTypeMatch.html" class="tsd-signature-type tsd-kind-type-alias">MediaTypeMatch</a></h4><p>The matching media type entry, or <code>false</code> for unknown media.</p>
32
32
  <aside class="tsd-sources">
33
33
  <ul>
34
- <li>Defined in <a href="https://github.com/cmahnke/StoryMapJS/blob/62f871ee8c2189324f8b92fd4a1c0c138e04de77/src/media/MediaType.ts#L43">src/media/MediaType.ts:43</a></li></ul></aside></div></li></ul></section></div>
34
+ <li>Defined in <a href="https://github.com/cmahnke/StoryMapJS/blob/ffcd40cfccb804f667ff3b975dd61e8cf12bd289/src/media/MediaType.ts#L43">src/media/MediaType.ts:43</a></li></ul></aside></div></li></ul></section></div>
35
35
  <div class="col-sidebar">
36
36
  <div class="page-menu">
37
37
  <div class="tsd-navigation settings">
@@ -27,7 +27,7 @@ directly as a StoryMap source).</p>
27
27
  <li><span><span class="tsd-kind-parameter">data</span>: <span class="tsd-signature-type">unknown</span></span></li></ul></div>
28
28
  <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><aside class="tsd-sources">
29
29
  <ul>
30
- <li>Defined in <a href="https://github.com/cmahnke/StoryMapJS/blob/62f871ee8c2189324f8b92fd4a1c0c138e04de77/src/storymap/iiif.ts#L384">src/storymap/iiif.ts:384</a></li></ul></aside></div></li></ul></section></div>
30
+ <li>Defined in <a href="https://github.com/cmahnke/StoryMapJS/blob/ffcd40cfccb804f667ff3b975dd61e8cf12bd289/src/storymap/iiif.ts#L364">src/storymap/iiif.ts:364</a></li></ul></aside></div></li></ul></section></div>
31
31
  <div class="col-sidebar">
32
32
  <div class="page-menu">
33
33
  <div class="tsd-navigation settings">
@@ -33,7 +33,7 @@ private <code>collectionToStorymapData</code> below, and anything else is reject
33
33
  <li><span><span class="tsd-kind-parameter">data</span>: <span class="tsd-signature-type">unknown</span></span></li></ul></div>
34
34
  <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><aside class="tsd-sources">
35
35
  <ul>
36
- <li>Defined in <a href="https://github.com/cmahnke/StoryMapJS/blob/62f871ee8c2189324f8b92fd4a1c0c138e04de77/src/storymap/iiif.ts#L371">src/storymap/iiif.ts:371</a></li></ul></aside></div></li></ul></section></div>
36
+ <li>Defined in <a href="https://github.com/cmahnke/StoryMapJS/blob/ffcd40cfccb804f667ff3b975dd61e8cf12bd289/src/storymap/iiif.ts#L351">src/storymap/iiif.ts:351</a></li></ul></aside></div></li></ul></section></div>
37
37
  <div class="col-sidebar">
38
38
  <div class="page-menu">
39
39
  <div class="tsd-navigation settings">
@@ -0,0 +1,51 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>isSlideshowCollection | StoryMapJS API</title><meta name="description" content="Documentation for StoryMapJS API"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><link rel="stylesheet" href="../assets/custom.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar">
2
+ <div class="tsd-toolbar-contents container"><a href="../index.html" class="title">StoryMapJS API</a>
3
+ <div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/>
4
+ <ul role="listbox" id="tsd-search-results"></ul>
5
+ <div id="tsd-search-status" aria-live="polite" aria-atomic="true">
6
+ <div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header>
7
+ <div class="container container-main">
8
+ <div class="col-content">
9
+ <div class="tsd-page-title">
10
+ <ul class="tsd-breadcrumb" aria-label="Breadcrumb">
11
+ <li><a href="" aria-current="page">isSlideshowCollection</a></li></ul>
12
+ <h1>Function isSlideshowCollection</h1></div>
13
+ <section class="tsd-panel tsd-comment">
14
+ <div class="tsd-comment tsd-typography"><p>Read a slideshow tour (W3C AnnotationCollection + extension) as storymap
15
+ data — the counterpart of <code>manifestToStorymapData()</code> for that format.
16
+ Pure, so the same document always produces the same story.</p>
17
+ </div></section>
18
+ <section class="tsd-panel">
19
+ <ul class="tsd-signatures">
20
+ <li class="">
21
+ <div class="tsd-signature tsd-anchor-link" id="isslideshowcollection"><span class="tsd-kind-call-signature">isSlideshowCollection</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">doc</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span><a href="#isslideshowcollection" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div>
22
+ <div class="tsd-description">
23
+ <div class="tsd-comment tsd-typography"><p>True for a slideshow tour document: a v2 <code>AnnotationCollection</code> or a v1
24
+ <code>AnnotationPageSequence</code> carrying the matching extension context (never a
25
+ P3 <code>Manifest</code>/<code>Collection</code>), with items shaped like tour annotations.
26
+ Narrow by conjunction so P3 <code>seeAlso</code> collections never match.</p>
27
+ </div>
28
+ <div class="tsd-parameters">
29
+ <h4 class="tsd-parameters-title">Parameters</h4>
30
+ <ul class="tsd-parameter-list">
31
+ <li><span><span class="tsd-kind-parameter">doc</span>: <span class="tsd-signature-type">unknown</span></span></li></ul></div>
32
+ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><aside class="tsd-sources">
33
+ <ul>
34
+ <li>Defined in <a href="https://github.com/cmahnke/StoryMapJS/blob/ffcd40cfccb804f667ff3b975dd61e8cf12bd289/src/storymap/from-slideshow.ts#L123">src/storymap/from-slideshow.ts:123</a></li></ul></aside></div></li></ul></section></div>
35
+ <div class="col-sidebar">
36
+ <div class="page-menu">
37
+ <div class="tsd-navigation settings">
38
+ <details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>
39
+ <h3>Settings</h3></summary>
40
+ <div class="tsd-accordion-details">
41
+ <div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span>
42
+ <ul id="tsd-filter-options">
43
+ <li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
44
+ <li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
45
+ <li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div>
46
+ <div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div>
47
+ <div class="site-menu">
48
+ <nav class="tsd-navigation"><a href="../modules.html">StoryMapJS API</a>
49
+ <ul class="tsd-small-nested-navigation" id="tsd-nav-container">
50
+ <li>Loading...</li></ul></nav></div></div></div><footer></footer>
51
+ <div class="overlay"></div></body></html>
@@ -43,7 +43,7 @@
43
43
  <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4><p>Resolves when the stylesheet has loaded, rejects on error or abort.</p>
44
44
  <aside class="tsd-sources">
45
45
  <ul>
46
- <li>Defined in <a href="https://github.com/cmahnke/StoryMapJS/blob/62f871ee8c2189324f8b92fd4a1c0c138e04de77/src/core/Load.ts#L124">src/core/Load.ts:124</a></li></ul></aside></div></li></ul></section></div>
46
+ <li>Defined in <a href="https://github.com/cmahnke/StoryMapJS/blob/ffcd40cfccb804f667ff3b975dd61e8cf12bd289/src/core/Load.ts#L124">src/core/Load.ts:124</a></li></ul></aside></div></li></ul></section></div>
47
47
  <div class="col-sidebar">
48
48
  <div class="page-menu">
49
49
  <div class="tsd-navigation settings">
@@ -29,7 +29,7 @@ result always contains at least <code>{slides: []}</code>.</p>
29
29
  <li><span><span class="tsd-kind-parameter">manifest</span>: <span class="tsd-signature-type">unknown</span></span></li></ul></div>
30
30
  <h4 class="tsd-returns-title">Returns <a href="../interfaces/StorymapData.html" class="tsd-signature-type tsd-kind-interface">StorymapData</a></h4><aside class="tsd-sources">
31
31
  <ul>
32
- <li>Defined in <a href="https://github.com/cmahnke/StoryMapJS/blob/62f871ee8c2189324f8b92fd4a1c0c138e04de77/src/storymap/iiif.ts#L1478">src/storymap/iiif.ts:1478</a></li></ul></aside></div></li></ul></section></div>
32
+ <li>Defined in <a href="https://github.com/cmahnke/StoryMapJS/blob/ffcd40cfccb804f667ff3b975dd61e8cf12bd289/src/storymap/iiif.ts#L1661">src/storymap/iiif.ts:1661</a></li></ul></aside></div></li></ul></section></div>
33
33
  <div class="col-sidebar">
34
34
  <div class="page-menu">
35
35
  <div class="tsd-navigation settings">
@@ -34,7 +34,7 @@ while it is being constructed.</p>
34
34
  <h4 class="tsd-returns-title">Returns <a href="../interfaces/LanguageEntry.html" class="tsd-signature-type tsd-kind-interface">LanguageEntry</a></h4><p>The language entry that is now active.</p>
35
35
  <aside class="tsd-sources">
36
36
  <ul>
37
- <li>Defined in <a href="https://github.com/cmahnke/StoryMapJS/blob/62f871ee8c2189324f8b92fd4a1c0c138e04de77/src/language/Language.ts#L237">src/language/Language.ts:237</a></li></ul></aside></div></li></ul></section></div>
37
+ <li>Defined in <a href="https://github.com/cmahnke/StoryMapJS/blob/ffcd40cfccb804f667ff3b975dd61e8cf12bd289/src/language/Language.ts#L237">src/language/Language.ts:237</a></li></ul></aside></div></li></ul></section></div>
38
38
  <div class="col-sidebar">
39
39
  <div class="page-menu">
40
40
  <div class="tsd-navigation settings">
@@ -0,0 +1,51 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>slideshowToStorymapData | StoryMapJS API</title><meta name="description" content="Documentation for StoryMapJS API"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><link rel="stylesheet" href="../assets/custom.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar">
2
+ <div class="tsd-toolbar-contents container"><a href="../index.html" class="title">StoryMapJS API</a>
3
+ <div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/>
4
+ <ul role="listbox" id="tsd-search-results"></ul>
5
+ <div id="tsd-search-status" aria-live="polite" aria-atomic="true">
6
+ <div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header>
7
+ <div class="container container-main">
8
+ <div class="col-content">
9
+ <div class="tsd-page-title">
10
+ <ul class="tsd-breadcrumb" aria-label="Breadcrumb">
11
+ <li><a href="" aria-current="page">slideshowToStorymapData</a></li></ul>
12
+ <h1>Function slideshowToStorymapData</h1></div>
13
+ <section class="tsd-panel tsd-comment">
14
+ <div class="tsd-comment tsd-typography"><p>Read a slideshow tour (W3C AnnotationCollection + extension) as storymap
15
+ data — the counterpart of <code>manifestToStorymapData()</code> for that format.
16
+ Pure, so the same document always produces the same story.</p>
17
+ </div></section>
18
+ <section class="tsd-panel">
19
+ <ul class="tsd-signatures">
20
+ <li class="">
21
+ <div class="tsd-signature tsd-anchor-link" id="slideshowtostorymapdata"><span class="tsd-kind-call-signature">slideshowToStorymapData</span><span class="tsd-signature-symbol">(</span><br/>    <span class="tsd-kind-parameter">doc</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">opts</span><span class="tsd-signature-symbol">?:</span> <a href="../interfaces/SlideshowTranslatorOptions.html" class="tsd-signature-type tsd-kind-interface">SlideshowTranslatorOptions</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="../interfaces/SlideshowToStorymapResult.html" class="tsd-signature-type tsd-kind-interface">SlideshowToStorymapResult</a><a href="#slideshowtostorymapdata" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div>
22
+ <div class="tsd-description">
23
+ <div class="tsd-comment tsd-typography"><p>Translate one slideshow tour document (plus any following pages) into
24
+ storymap data. Slideshow-only fields land verbatim; internal validation
25
+ (<code>validateStorymap</code>) must still pass on the result.</p>
26
+ </div>
27
+ <div class="tsd-parameters">
28
+ <h4 class="tsd-parameters-title">Parameters</h4>
29
+ <ul class="tsd-parameter-list">
30
+ <li><span><span class="tsd-kind-parameter">doc</span>: <span class="tsd-signature-type">unknown</span></span></li>
31
+ <li><span><span class="tsd-kind-parameter">opts</span>: <a href="../interfaces/SlideshowTranslatorOptions.html" class="tsd-signature-type tsd-kind-interface">SlideshowTranslatorOptions</a><span class="tsd-signature-symbol"> = {}</span></span></li></ul></div>
32
+ <h4 class="tsd-returns-title">Returns <a href="../interfaces/SlideshowToStorymapResult.html" class="tsd-signature-type tsd-kind-interface">SlideshowToStorymapResult</a></h4><aside class="tsd-sources">
33
+ <ul>
34
+ <li>Defined in <a href="https://github.com/cmahnke/StoryMapJS/blob/ffcd40cfccb804f667ff3b975dd61e8cf12bd289/src/storymap/from-slideshow.ts#L614">src/storymap/from-slideshow.ts:614</a></li></ul></aside></div></li></ul></section></div>
35
+ <div class="col-sidebar">
36
+ <div class="page-menu">
37
+ <div class="tsd-navigation settings">
38
+ <details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>
39
+ <h3>Settings</h3></summary>
40
+ <div class="tsd-accordion-details">
41
+ <div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span>
42
+ <ul id="tsd-filter-options">
43
+ <li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
44
+ <li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
45
+ <li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div>
46
+ <div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div>
47
+ <div class="site-menu">
48
+ <nav class="tsd-navigation"><a href="../modules.html">StoryMapJS API</a>
49
+ <ul class="tsd-small-nested-navigation" id="tsd-nav-container">
50
+ <li>Loading...</li></ul></nav></div></div></div><footer></footer>
51
+ <div class="overlay"></div></body></html>
@@ -0,0 +1,48 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>slideshowVersion | StoryMapJS API</title><meta name="description" content="Documentation for StoryMapJS API"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><link rel="stylesheet" href="../assets/custom.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar">
2
+ <div class="tsd-toolbar-contents container"><a href="../index.html" class="title">StoryMapJS API</a>
3
+ <div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/>
4
+ <ul role="listbox" id="tsd-search-results"></ul>
5
+ <div id="tsd-search-status" aria-live="polite" aria-atomic="true">
6
+ <div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header>
7
+ <div class="container container-main">
8
+ <div class="col-content">
9
+ <div class="tsd-page-title">
10
+ <ul class="tsd-breadcrumb" aria-label="Breadcrumb">
11
+ <li><a href="" aria-current="page">slideshowVersion</a></li></ul>
12
+ <h1>Function slideshowVersion</h1></div>
13
+ <section class="tsd-panel tsd-comment">
14
+ <div class="tsd-comment tsd-typography"><p>Read a slideshow tour (W3C AnnotationCollection + extension) as storymap
15
+ data — the counterpart of <code>manifestToStorymapData()</code> for that format.
16
+ Pure, so the same document always produces the same story.</p>
17
+ </div></section>
18
+ <section class="tsd-panel">
19
+ <ul class="tsd-signatures">
20
+ <li class="">
21
+ <div class="tsd-signature tsd-anchor-link" id="slideshowversion"><span class="tsd-kind-call-signature">slideshowVersion</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">doc</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">0</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">1</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">2</span><a href="#slideshowversion" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div>
22
+ <div class="tsd-description">
23
+ <div class="tsd-comment tsd-typography"><p>2 for the <code>strollview</code> extension, 1 for the legacy context, else 0.</p>
24
+ </div>
25
+ <div class="tsd-parameters">
26
+ <h4 class="tsd-parameters-title">Parameters</h4>
27
+ <ul class="tsd-parameter-list">
28
+ <li><span><span class="tsd-kind-parameter">doc</span>: <span class="tsd-signature-type">unknown</span></span></li></ul></div>
29
+ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">0</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">1</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">2</span></h4><aside class="tsd-sources">
30
+ <ul>
31
+ <li>Defined in <a href="https://github.com/cmahnke/StoryMapJS/blob/ffcd40cfccb804f667ff3b975dd61e8cf12bd289/src/storymap/from-slideshow.ts#L108">src/storymap/from-slideshow.ts:108</a></li></ul></aside></div></li></ul></section></div>
32
+ <div class="col-sidebar">
33
+ <div class="page-menu">
34
+ <div class="tsd-navigation settings">
35
+ <details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>
36
+ <h3>Settings</h3></summary>
37
+ <div class="tsd-accordion-details">
38
+ <div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span>
39
+ <ul id="tsd-filter-options">
40
+ <li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
41
+ <li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
42
+ <li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div>
43
+ <div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div>
44
+ <div class="site-menu">
45
+ <nav class="tsd-navigation"><a href="../modules.html">StoryMapJS API</a>
46
+ <ul class="tsd-small-nested-navigation" id="tsd-nav-container">
47
+ <li>Loading...</li></ul></nav></div></div></div><footer></footer>
48
+ <div class="overlay"></div></body></html>
@@ -37,7 +37,7 @@ manifest — which is what makes regenerating <code>public/examples-iiif/</code>
37
37
  <h4 class="tsd-returns-title">Returns <a href="../interfaces/StorymapManifest.html" class="tsd-signature-type tsd-kind-interface">StorymapManifest</a></h4><p>The manifest, ready to serialise.</p>
38
38
  <aside class="tsd-sources">
39
39
  <ul>
40
- <li>Defined in <a href="https://github.com/cmahnke/StoryMapJS/blob/62f871ee8c2189324f8b92fd4a1c0c138e04de77/src/storymap/to-iiif.ts#L326">src/storymap/to-iiif.ts:326</a></li></ul></aside></div></li></ul></section></div>
40
+ <li>Defined in <a href="https://github.com/cmahnke/StoryMapJS/blob/ffcd40cfccb804f667ff3b975dd61e8cf12bd289/src/storymap/to-iiif.ts#L312">src/storymap/to-iiif.ts:312</a></li></ul></aside></div></li></ul></section></div>
41
41
  <div class="col-sidebar">
42
42
  <div class="page-menu">
43
43
  <div class="tsd-navigation settings">
@@ -33,7 +33,7 @@
33
33
  <li><span><span class="tsd-kind-parameter">data</span>: <span class="tsd-signature-type">unknown</span></span></li></ul></div>
34
34
  <h4 class="tsd-returns-title">Returns <a href="../interfaces/StorymapError.html" class="tsd-signature-type tsd-kind-interface">StorymapError</a><span class="tsd-signature-symbol">[]</span></h4><aside class="tsd-sources">
35
35
  <ul>
36
- <li>Defined in <a href="https://github.com/cmahnke/StoryMapJS/blob/62f871ee8c2189324f8b92fd4a1c0c138e04de77/src/storymap/validate.ts#L232">src/storymap/validate.ts:232</a></li></ul></aside></div></li></ul></section></div>
36
+ <li>Defined in <a href="https://github.com/cmahnke/StoryMapJS/blob/ffcd40cfccb804f667ff3b975dd61e8cf12bd289/src/storymap/validate.ts#L232">src/storymap/validate.ts:232</a></li></ul></aside></div></li></ul></section></div>
37
37
  <div class="col-sidebar">
38
38
  <div class="page-menu">
39
39
  <div class="tsd-navigation settings">
@@ -34,7 +34,7 @@
34
34
  <li><span><code class="tsd-tag">Optional</code><span class="tsd-kind-parameter">source</span>: <span class="tsd-signature-type">string</span></span></li></ul></div>
35
35
  <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><aside class="tsd-sources">
36
36
  <ul>
37
- <li>Defined in <a href="https://github.com/cmahnke/StoryMapJS/blob/62f871ee8c2189324f8b92fd4a1c0c138e04de77/src/storymap/validate.ts#L245">src/storymap/validate.ts:245</a></li></ul></aside></div></li></ul></section></div>
37
+ <li>Defined in <a href="https://github.com/cmahnke/StoryMapJS/blob/ffcd40cfccb804f667ff3b975dd61e8cf12bd289/src/storymap/validate.ts#L245">src/storymap/validate.ts:245</a></li></ul></aside></div></li></ul></section></div>
38
38
  <div class="col-sidebar">
39
39
  <div class="page-menu">
40
40
  <div class="tsd-navigation settings">
@@ -40,8 +40,10 @@ value of the storymap's <code>language</code> option must match the file name).<
40
40
  <p>Large images served over the IIIF Image API are rendered so when set to be map_as_image the entire image is shown. When set as cartography the zoom will set so that all the markers fit.</p>
41
41
  <p>Points are set to only display on mouseover in image mode, but you can set map_as_image to false in the config options to always show the points. The points are hidden when the intent is an image so that nothing obstructs the image the viewer is looking at. Looking at a painting is hard with a bunch of points on it.</p>
42
42
  <h2 id="map-options" class="tsd-anchor-link">Map Options<a href="#map-options" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
43
- <p>To disable connecting lines on maps set <code>map_as_image: true</code> in the storymap
44
- options (the default <code>false</code> renders cartography).</p>
43
+ <p>To disable connecting lines on maps set <code>show_lines: false</code> in the storymap
44
+ options (the default <code>true</code> renders cartography with <code>show_history_line</code>).
45
+ <code>map_as_image: true</code> is something else: image-map mode, only meaningful with
46
+ <code>map_type: &quot;iiif&quot;</code> (the image itself becomes the map).</p>
45
47
  <p><code>storymap.map</code> is the raw OpenLayers map, typed with the re-exported <code>ol</code>
46
48
  types, and <code>getBaseLayer()</code>, <code>getOverlayLayers()</code>, <code>getMinimap()</code>,
47
49
  <code>getMarkers()</code> and friends hand out the layers the viewer built. Listen for
@@ -67,6 +69,72 @@ show_lines: true,
67
69
  show_history_line: true,
68
70
  </code></pre>
69
71
  <p>To disable zoom calculation/edit zoom level set calculate_zoom to false in the config options.</p>
72
+ <h3 id="more-data-options" class="tsd-anchor-link">More data options<a href="#more-data-options" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
73
+ <p>Beyond the map options above, the storymap data takes <code>overlays[]</code>
74
+ (stacked raster layers over the basemap), <code>tilejson</code> (a TileJSON source for
75
+ the base layer), <code>overview_extent</code> (the overview slide's bounds),
76
+ <code>keyboard</code> (page-wide arrow-key navigation for multi-viewer pages),
77
+ per-slide <code>marker: { popup, audioBadge }</code> (the active marker's card, openable
78
+ via <code>storymap.openMarkerPopup(n)</code>, and the narration/audio dot) and
79
+ <code>narration: { url }</code> per slide. <code>autoplay_media</code> is global (wait for slide
80
+ media to end while autoplaying); the per-slide dwell is <code>slidetimeout</code>.
81
+ All are validated
82
+ against <code>schema/storymap.schema.json</code> — read it (or <code>src/types.ts</code>) for the
83
+ full list with defaults.</p>
84
+ <p><code>show_layers_control: true</code> adds a menubar disclosure button listing the
85
+ <code>overlays[]</code> as checkboxes and <code>basemaps[]</code> as basemap radios, so the
86
+ visitor can switch layers without touching code.</p>
87
+ <p><code>theme: &quot;dark&quot;</code> forces the dark palette, <code>&quot;light&quot;</code> pins the light one;
88
+ unset, the widget follows <code>prefers-color-scheme</code>.</p>
89
+ <h3 id="slideshow-style-tours" class="tsd-anchor-link">Slideshow-style tours<a href="#slideshow-style-tours" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
90
+ <p>Slides can carry per-slide presentation for image tours (a stop can restyle
91
+ the view while it is active; everything is optional and validated against
92
+ <code>schema/storymap.schema.json</code>):</p>
93
+ <pre><code>location: {
94
+ region: [x, y, w, h], // image-pixel stop (IIIF xywh); negative origins clamp to the canvas
95
+ rotation: 45, // view rotation in degrees clockwise
96
+ filter: { sepia: 40 }, // brightness/contrast/saturate 0-200 (%), hueRotate -180-180 (°), sepia 0-100 (%), blur 0-20 (px)
97
+ mask: { x: 0.1, y: 0.1, w: 0.8, h: 0.8, opacity: 0.5 }, // spotlight mask (fractions) + color/invert
98
+ basemap: &quot;osm:bright&quot;, // per-slide basemap (any map_type, IIIF info.json URL or image file)
99
+ },
100
+ narration: { url, loop, offset, play: &quot;auto&quot;|&quot;click&quot;, stopOnExit, stopAllPrevious },
101
+ slidetimeout: 9000, // per-slide autoplay dwell in ms (0 holds); default is the global autoplay
102
+ imgoverlay: { url, size, extent, opacity }, // image overlay while the slide is active
103
+ </code></pre>
104
+ <p>Audio/video media take the same <code>offset</code>/<code>loop</code>/<code>play</code>/<code>stopOnExit</code> flags
105
+ on the slide's <code>media</code> object (<code>stopAllPrevious</code> is narration-only).</p>
106
+ <p>When a slide's IIIF <code>info.json</code> cannot be loaded, <code>iiif: { width, height, fallbackUrl }</code> paints the static image instead of a blank basemap. Without
107
+ stated dimensions the viewer probes the fallback image's natural size first,
108
+ but only for slideshow tours (15s timeout); other documents keep the logged
109
+ error path. Per-slide static basemaps (<code>image_srv</code> pointing at a plain
110
+ image file, absolute or same-origin relative) probe the same way, and a
111
+ failed <code>info.json</code> fetch falls back to a probed static image in place.</p>
112
+ <p>The player chrome is opt-in storymap options (absent means the default
113
+ layout): <code>textmode: &quot;left&quot;|&quot;right&quot;|&quot;bottom&quot;</code> with <code>textsize</code> (10–80 %,
114
+ bottom dock only — the player drops side-dock sizes too),
115
+ <code>progressbar: &quot;bar&quot;|&quot;dots&quot;|&quot;squares&quot;|&quot;block&quot;|&quot;thinblock&quot;|&quot;off&quot;</code> (<code>true</code>
116
+ means <code>&quot;bar&quot;</code>, <code>false</code> means hidden),
117
+ <code>fxmode: &quot;slide&quot;|&quot;fade&quot;|&quot;none&quot;</code>, <code>mode: &quot;static&quot;</code> (stacked reading list with
118
+ scroll-spy map sync), <code>hudcolor</code>/<code>hudbgcolor</code>/<code>hudopacity</code>,
119
+ <code>shownav</code>/<code>show_headings</code>/<code>show_scrollbars</code>/<code>show_info</code> toggles and
120
+ <code>viewerheight: &quot;400px&quot;</code>.</p>
121
+ <p><strong>IIIF round-trip:</strong> the per-slide fields do survive — <code>rotation</code>,
122
+ <code>filter</code>, <code>mask</code>, <code>basemap</code>, <code>slidetimeout</code>, <code>imgoverlay</code>, <code>provenance</code>
123
+ and the playback bags travel as <code>storymap:</code> terms (see
124
+ <a href="media/storymap-as-iiif-manifest.md">docs/storymap-as-iiif-manifest.md</a>).
125
+ The player chrome does <strong>not</strong>: it has no IIIF vocabulary and is
126
+ translator-only (a storymap→manifest→storymap cycle drops it).</p>
127
+ <p>These presentation fields render <strong>only for slideshow tours</strong> (documents
128
+ loaded from that format, which set the internal <code>slideshow_source</code> marker).
129
+ Hand-written storymap documents and IIIF manifests keep the long-standing
130
+ rendering even when they name the new keys — captions always show, the
131
+ autoplay interval stays global, the panel keeps its default dock. Hosts may
132
+ pass <code>slideshow_source: true</code> explicitly as an escape hatch (e.g. in tests).</p>
133
+ <p>Slideshow tours (W3C <code>AnnotationCollection</code> documents) load directly — by
134
+ object, file or URL, following <code>next</code> pages — or convert offline with
135
+ <code>npm run convert:slideshow -- [--settings settings.json] [--out out.json] &lt;tour-url-or-file&gt;</code>
136
+ (see <a href="media/slideshow.md">docs/slideshow.md</a> for the field mapping,
137
+ player-settings handling and loss table).</p>
70
138
  <p>Images can now be used in place of map pins.
71
139
  Use <code>image</code> inside the location object and include a url to use, together with
72
140
  <code>use_custom_marker: true</code> in the location object (or set <code>use_custom_markers: true</code> globally in the storymap options). Same goes for custom icons except you
@@ -91,18 +159,27 @@ map_type: &quot;https://tiles.openfreemap.org/styles/bright&quot;, // vector st
91
159
  <p>Any value containing <code>{z}</code> renders as a raster XYZ layer; a path without <code>{z}</code>
92
160
  that looks like a URL/path renders as a vector style layer; anything else falls
93
161
  back to classic OSM raster — except <code>&quot;none&quot;</code>, which builds no map at all and
94
- runs the story as text and media only.</p>
162
+ runs the story as text and media only. A full template naming a known provider
163
+ (<code>https://tile.openstreetmap.org/{z}/{x}/{y}.png</code>) is credited to that
164
+ provider; anything else gets the generic &quot;Map data&quot; line (add your own via
165
+ <code>attribution</code>).</p>
95
166
  <h3 id="switching-the-basemap-at-runtime" class="tsd-anchor-link">Switching the basemap at runtime<a href="#switching-the-basemap-at-runtime" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
96
167
  <p><code>storymap.setMapOption(&quot;map_type&quot;, next)</code> / <code>setMapOptions({...})</code> rebuilds the
97
168
  main tile layer <strong>and</strong> the minimap (<code>ol/control/OverviewMap</code>) layer, keeping
98
169
  the overview fitted to the marker bounds (zoomify/IIIF extents preserved). The
99
170
  current slide is re-fitted after the swap.</p>
100
171
  <h3 id="icons" class="tsd-anchor-link">Icons<a href="#icons" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
101
- <p>Default pins use the bundled <code>vco-icons</code> font (<code>dist/css/icons/</code>, referenced via
102
- relative <code>./icons/...</code> URLs from <code>dist/css/storymap.css</code>), so pins render on
103
- subpath deploys, bundler consumers (Vite leaves absolute <code>/css/...</code> untouched)
104
- and <code>file://</code>/Electron hosts without extra configuration. Import the stylesheet
105
- once (<code>import &quot;@projektemacher/storymapjs/css/storymap.css&quot;</code>).</p>
172
+ <p>Default pins use the bundled <code>vco-icons</code> font (<code>dist/css/icons/</code>). The SCSS
173
+ source uses the absolute public path (<code>/css/icons/...</code>) so <code>vite dev</code> serves
174
+ the fonts directly; <code>vite build</code> rewrites them to relative <code>./icons/...</code> in
175
+ <code>dist/css/storymap.css</code>, so pins render on subpath deploys, for bundler
176
+ consumers and on <code>file://</code>/Electron hosts without extra configuration.
177
+ Import the stylesheet once
178
+ (<code>import &quot;@projektemacher/storymapjs/css/storymap.css&quot;</code>).</p>
179
+ <p>Font themes (<code>font_css: &quot;stock:&lt;name&gt;&quot;</code>) resolve via <code>import.meta.url</code>, so
180
+ they only work script-tagged, unbundled. A bundler consumer imports the theme
181
+ instead (<code>import &quot;@projektemacher/storymapjs/css/fonts/font.default.css&quot;</code>)
182
+ and passes <code>font_css: false</code> for no injected <code>&lt;link&gt;</code>.</p>
106
183
  <h2 id="custom-html-in-slide-content" class="tsd-anchor-link">Custom HTML in slide content<a href="#custom-html-in-slide-content" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
107
184
  <p>Slide text is rendered as HTML: the <code>text</code> (and <code>headline</code>) fields accept
108
185
  arbitrary markup. If the text contains no <code>&lt;p&gt;</code> tag, it is wrapped in one
@@ -146,15 +223,38 @@ appear for services discovered later (e.g. a preloaded slide).</p>
146
223
  <p>Decisions are stored in <code>localStorage</code> under <code>storymapjs-consent</code> and have no
147
224
  expiry — clearing site data asks again.</p>
148
225
  <p>The consent labels are <strong>not</strong> fully translated. <code>src/language/locale/en.json</code>
149
- defines every string; 28 bundled locales fall back to English for the keys
150
- they lack — most are missing one, a handful are missing around ten (the
151
- per-service consent prompts and the fullscreen button labels). Run
226
+ defines every string (34 keys across 29 locale files: English plus 28
227
+ translations). German is missing 1 key, most locales are missing 9 (the audio
228
+ badge, autoplay, layer-switcher, iframe-title and narration-consent strings),
229
+ and five locales (<code>et</code>, <code>is</code>, <code>nn</code>, <code>ur</code>, <code>sr</code>) are missing 18–19 (additionally
230
+ the fullscreen, consent-dialog, error and overview strings). Run
152
231
  <code>npm run check:locales</code> to see the current state — it reports the gap per
153
232
  locale and is expected to be runnable without failing.</p>
154
233
  <h2 id="troubleshooting" class="tsd-anchor-link">Troubleshooting<a href="#troubleshooting" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
155
234
  <p>If a storymap fails to render, open the browser console: the viewer logs
156
235
  fetch and validation errors (e.g. &quot;could not load storymap data from ...&quot;).
157
- The <code>error</code> event also fires for programmatic consumers.</p>
236
+ The <code>error</code> event also fires for programmatic consumers. The full event
237
+ reference (payloads included) is <a href="media/events.md">docs/events.md</a>.</p>
238
+ <h2 id="accessibility" class="tsd-anchor-link">Accessibility<a href="#accessibility" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
239
+ <p>Supported, and covered by tests: text alternatives on slide images
240
+ (decorative <code>alt=&quot;&quot;</code> included); real <code>&lt;button&gt;</code> menubar actions and slide
241
+ navigation; polite live-region slide announcements; reduced-motion handling
242
+ of the slide glide and autoplay; an embed page that does not disable zoom;
243
+ sanitized author tables that keep their semantics; slides hidden from
244
+ assistive tech while inactive (<code>aria-hidden</code> + <code>inert</code>), with a layer
245
+ switcher built from native checkboxes, radios and fieldsets; keyboard
246
+ operable map pins and message dismissal; a skip link to the slide content;
247
+ an autoplay pause/resume toggle; slide text pronounced in its own language
248
+ (<code>lang</code>); consent dialogs exposed with labels and focus; media errors
249
+ announced as alerts; and a motion kill-switch that also honors an
250
+ OS reduced-motion toggle flipped mid-story.</p>
251
+ <p>Known limitations (not fixed here): map markers are pointer-only; audio and
252
+ video have no viewer-side captions or transcripts; narration ships without a
253
+ transcript; focus moves only when the layer panel closes with Escape; labels
254
+ and announcements are hardcoded English; several muted text colors fall
255
+ below 4.5:1; third-party embeds are the vendor's conformance. No VPAT or
256
+ ACR is claimed — §508 conformance is decided per deliverable by an
257
+ external audit.</p>
158
258
  <h2 id="bundled-credentials" class="tsd-anchor-link">Bundled credentials<a href="#bundled-credentials" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
159
259
  <p>The viewer ships no credentials. Mapbox/Stadia tiles need a token passed via
160
260
  <code>map_access_token</code>, and <code>flickr.com/photos</code> API URLs need <code>api_key_flickr</code>
@@ -182,6 +282,8 @@ The <code>error</code> event also fires for programmatic consumers.</p>
182
282
  <li><a href="#map-options"><span>Map <wbr/>Options</span></a></li>
183
283
  <li>
184
284
  <ul>
285
+ <li><a href="#more-data-options"><span>More data options</span></a></li>
286
+ <li><a href="#slideshow-style-tours"><span>Slideshow-<wbr/>style tours</span></a></li>
185
287
  <li><a href="#limit-the-map-to-a-bounding-box"><span>Limit the map to a bounding box</span></a></li>
186
288
  <li><a href="#custom-tile-templates"><span>Custom tile templates</span></a></li>
187
289
  <li><a href="#switching-the-basemap-at-runtime"><span>Switching the basemap at runtime</span></a></li>
@@ -189,6 +291,7 @@ The <code>error</code> event also fires for programmatic consumers.</p>
189
291
  <li><a href="#custom-html-in-slide-content"><span>Custom <wbr/>HTML in slide content</span></a></li>
190
292
  <li><a href="#gdpr-consent-for-external-services"><span>GDPR consent for external services</span></a></li>
191
293
  <li><a href="#troubleshooting"><span>Troubleshooting</span></a></li>
294
+ <li><a href="#accessibility"><span>Accessibility</span></a></li>
192
295
  <li><a href="#bundled-credentials"><span>Bundled credentials</span></a></li></ul></div></details></div>
193
296
  <div class="site-menu">
194
297
  <nav class="tsd-navigation"><a href="modules.html">StoryMapJS API</a>
@@ -18,7 +18,7 @@ documented member whose type it cannot link.</p>
18
18
  </div></section>
19
19
  <div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">AnimationHandle</span> <span class="tsd-signature-symbol">{</span><br/>    <a class="tsd-kind-property" href="#stop">stop</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">jump</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=&gt;</span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">;</span><br/><span class="tsd-signature-symbol">}</span></div><aside class="tsd-sources">
20
20
  <ul>
21
- <li>Defined in <a href="https://github.com/cmahnke/StoryMapJS/blob/62f871ee8c2189324f8b92fd4a1c0c138e04de77/src/types.ts#L325">src/types.ts:325</a></li></ul></aside>
21
+ <li>Defined in <a href="https://github.com/cmahnke/StoryMapJS/blob/ffcd40cfccb804f667ff3b975dd61e8cf12bd289/src/types.ts#L659">src/types.ts:659</a></li></ul></aside>
22
22
  <section class="tsd-panel-group tsd-index-group">
23
23
  <section class="tsd-panel tsd-index-panel">
24
24
  <details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>
@@ -35,7 +35,7 @@ documented member whose type it cannot link.</p>
35
35
  <h3 class="tsd-anchor-link" id="stop"><span>stop</span><a href="#stop" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
36
36
  <div class="tsd-signature"><span class="tsd-kind-property">stop</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">jump</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=&gt;</span> <span class="tsd-signature-type">void</span></div><aside class="tsd-sources">
37
37
  <ul>
38
- <li>Defined in <a href="https://github.com/cmahnke/StoryMapJS/blob/62f871ee8c2189324f8b92fd4a1c0c138e04de77/src/types.ts#L326">src/types.ts:326</a></li></ul></aside></section></section></details></div>
38
+ <li>Defined in <a href="https://github.com/cmahnke/StoryMapJS/blob/ffcd40cfccb804f667ff3b975dd61e8cf12bd289/src/types.ts#L660">src/types.ts:660</a></li></ul></aside></section></section></details></div>
39
39
  <div class="col-sidebar">
40
40
  <div class="page-menu">
41
41
  <div class="tsd-navigation settings">
@@ -17,7 +17,7 @@ outlives its layer).</p>
17
17
  </div></section>
18
18
  <div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">ImagereadyPayload</span> <span class="tsd-signature-symbol">{</span><br/>    <a class="tsd-kind-property" href="#kind">kind</a><span class="tsd-signature-symbol">:</span> <a href="../types/ImagereadyKind.html" class="tsd-signature-type tsd-kind-type-alias">ImagereadyKind</a><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#layer">layer</a><span class="tsd-signature-symbol">:</span> <a href="OlLayer.html" class="tsd-signature-type tsd-kind-interface">OlLayer</a><span class="tsd-signature-symbol">&lt;</span><a href="OlSource.html" class="tsd-signature-type tsd-kind-interface">OlSource</a><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">LayerRenderer</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-signature-symbol">[</span><span class="tsd-kind-index-signature">x</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]:</span> <span class="tsd-signature-type">any</span> <span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">&gt;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#source">source</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-call-signature">getState</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">;</span><br/><span class="tsd-signature-symbol">}</span></div><aside class="tsd-sources">
19
19
  <ul>
20
- <li>Defined in <a href="https://github.com/cmahnke/StoryMapJS/blob/62f871ee8c2189324f8b92fd4a1c0c138e04de77/src/map/openlayers/Map.OpenLayers.ts#L61">src/map/openlayers/Map.OpenLayers.ts:61</a></li></ul></aside>
20
+ <li>Defined in <a href="https://github.com/cmahnke/StoryMapJS/blob/ffcd40cfccb804f667ff3b975dd61e8cf12bd289/src/map/openlayers/Map.OpenLayers.ts#L84">src/map/openlayers/Map.OpenLayers.ts:84</a></li></ul></aside>
21
21
  <section class="tsd-panel-group tsd-index-group">
22
22
  <section class="tsd-panel tsd-index-panel">
23
23
  <details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>
@@ -36,17 +36,17 @@ outlives its layer).</p>
36
36
  <h3 class="tsd-anchor-link" id="kind"><span>kind</span><a href="#kind" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
37
37
  <div class="tsd-signature"><span class="tsd-kind-property">kind</span><span class="tsd-signature-symbol">:</span> <a href="../types/ImagereadyKind.html" class="tsd-signature-type tsd-kind-type-alias">ImagereadyKind</a></div><aside class="tsd-sources">
38
38
  <ul>
39
- <li>Defined in <a href="https://github.com/cmahnke/StoryMapJS/blob/62f871ee8c2189324f8b92fd4a1c0c138e04de77/src/map/openlayers/Map.OpenLayers.ts#L63">src/map/openlayers/Map.OpenLayers.ts:63</a></li></ul></aside></section>
39
+ <li>Defined in <a href="https://github.com/cmahnke/StoryMapJS/blob/ffcd40cfccb804f667ff3b975dd61e8cf12bd289/src/map/openlayers/Map.OpenLayers.ts#L86">src/map/openlayers/Map.OpenLayers.ts:86</a></li></ul></aside></section>
40
40
  <section class="tsd-panel tsd-member">
41
41
  <h3 class="tsd-anchor-link" id="layer"><span>layer</span><a href="#layer" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
42
42
  <div class="tsd-signature"><span class="tsd-kind-property">layer</span><span class="tsd-signature-symbol">:</span> <a href="OlLayer.html" class="tsd-signature-type tsd-kind-interface">OlLayer</a><span class="tsd-signature-symbol">&lt;</span><a href="OlSource.html" class="tsd-signature-type tsd-kind-interface">OlSource</a><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">LayerRenderer</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-signature-symbol">[</span><span class="tsd-kind-index-signature">x</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]:</span> <span class="tsd-signature-type">any</span> <span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">&gt;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">null</span></div><aside class="tsd-sources">
43
43
  <ul>
44
- <li>Defined in <a href="https://github.com/cmahnke/StoryMapJS/blob/62f871ee8c2189324f8b92fd4a1c0c138e04de77/src/map/openlayers/Map.OpenLayers.ts#L64">src/map/openlayers/Map.OpenLayers.ts:64</a></li></ul></aside></section>
44
+ <li>Defined in <a href="https://github.com/cmahnke/StoryMapJS/blob/ffcd40cfccb804f667ff3b975dd61e8cf12bd289/src/map/openlayers/Map.OpenLayers.ts#L87">src/map/openlayers/Map.OpenLayers.ts:87</a></li></ul></aside></section>
45
45
  <section class="tsd-panel tsd-member">
46
46
  <h3 class="tsd-anchor-link" id="source"><span>source</span><a href="#source" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
47
47
  <div class="tsd-signature"><span class="tsd-kind-property">source</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-call-signature">getState</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">}</span></div><aside class="tsd-sources">
48
48
  <ul>
49
- <li>Defined in <a href="https://github.com/cmahnke/StoryMapJS/blob/62f871ee8c2189324f8b92fd4a1c0c138e04de77/src/map/openlayers/Map.OpenLayers.ts#L62">src/map/openlayers/Map.OpenLayers.ts:62</a></li></ul></aside></section></section></details></div>
49
+ <li>Defined in <a href="https://github.com/cmahnke/StoryMapJS/blob/ffcd40cfccb804f667ff3b975dd61e8cf12bd289/src/map/openlayers/Map.OpenLayers.ts#L85">src/map/openlayers/Map.OpenLayers.ts:85</a></li></ul></aside></section></section></details></div>
50
50
  <div class="col-sidebar">
51
51
  <div class="page-menu">
52
52
  <div class="tsd-navigation settings">