@projektemacher/storymapjs 0.10.6 → 0.10.7

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 (148) hide show
  1. package/CHANGELOG +11 -0
  2. package/dist/assets/{demo-CVQ7kFek.js → demo-D6cTmzn6.js} +1 -1
  3. package/dist/assets/{harness-C-VZV-ou.js → harness-BPFlzutp.js} +1 -1
  4. package/dist/assets/main-Y-MYUSJ4.js +17 -0
  5. package/dist/css/fonts/font.oldstandard.css +18 -22
  6. package/dist/demo.html +2 -2
  7. package/dist/docs/migration.html +1 -1
  8. package/dist/embed/index.html +129 -4
  9. package/dist/harness.html +2 -2
  10. package/dist/index.html +17 -0
  11. package/dist/js/storymap.d.ts +126 -7
  12. package/dist/js/storymap.js +4518 -3613
  13. package/dist/js/storymap.js.map +1 -1
  14. package/docs/migration-from-knightlab.md +139 -0
  15. package/docs/storymap-as-iiif-manifest.md +510 -0
  16. package/package.json +6 -3
  17. package/src/animation/easings.ts +18 -0
  18. package/src/animation/morpheus.d.ts +41 -0
  19. package/src/core/Browser.ts +19 -0
  20. package/src/core/Load.ts +180 -0
  21. package/src/core/Util.ts +354 -0
  22. package/src/core/mixins.ts +171 -0
  23. package/src/dom/Dom.ts +31 -0
  24. package/src/dom/DomEvent.ts +61 -0
  25. package/src/globals.d.ts +16 -0
  26. package/src/language/Language.ts +107 -0
  27. package/src/language/locale/be.json +18 -0
  28. package/src/language/locale/bg.json +18 -0
  29. package/src/language/locale/cs.json +18 -0
  30. package/src/language/locale/de.json +20 -0
  31. package/src/language/locale/el.json +18 -0
  32. package/src/language/locale/en.json +28 -0
  33. package/src/language/locale/es.json +18 -0
  34. package/src/language/locale/et.json +18 -0
  35. package/src/language/locale/fr.json +18 -0
  36. package/src/language/locale/he.json +18 -0
  37. package/src/language/locale/hu.json +18 -0
  38. package/src/language/locale/is.json +18 -0
  39. package/src/language/locale/it.json +18 -0
  40. package/src/language/locale/jp.json +18 -0
  41. package/src/language/locale/ko.json +18 -0
  42. package/src/language/locale/nl.json +18 -0
  43. package/src/language/locale/nn.json +18 -0
  44. package/src/language/locale/no.json +18 -0
  45. package/src/language/locale/pl.json +18 -0
  46. package/src/language/locale/pt.json +18 -0
  47. package/src/language/locale/ru.json +18 -0
  48. package/src/language/locale/sk.json +18 -0
  49. package/src/language/locale/sr.json +17 -0
  50. package/src/language/locale/sv.json +18 -0
  51. package/src/language/locale/tr.json +18 -0
  52. package/src/language/locale/uk.json +18 -0
  53. package/src/language/locale/ur.json +18 -0
  54. package/src/language/locale/zh-cn.json +18 -0
  55. package/src/language/locale/zh-tw.json +18 -0
  56. package/src/main.ts +51 -0
  57. package/src/map/Map.ts +717 -0
  58. package/src/map/MapMarker.ts +149 -0
  59. package/src/map/openlayers/Map.OpenLayers.ts +1879 -0
  60. package/src/map/openlayers/MapMarker.OpenLayers.ts +176 -0
  61. package/src/map/openlayers/zoomifyTiles.ts +28 -0
  62. package/src/map/types.ts +17 -0
  63. package/src/media/EmbedUtil.ts +168 -0
  64. package/src/media/Media.ts +409 -0
  65. package/src/media/MediaType.ts +163 -0
  66. package/src/media/types/Audio.ts +87 -0
  67. package/src/media/types/Blockquote.ts +40 -0
  68. package/src/media/types/DailyMotion.ts +58 -0
  69. package/src/media/types/DocumentCloud.ts +41 -0
  70. package/src/media/types/Facebook.ts +41 -0
  71. package/src/media/types/Flickr.ts +115 -0
  72. package/src/media/types/GoogleDoc.ts +59 -0
  73. package/src/media/types/IFrame.ts +51 -0
  74. package/src/media/types/Image.ts +49 -0
  75. package/src/media/types/Juxtapose.ts +32 -0
  76. package/src/media/types/SoundCloud.ts +77 -0
  77. package/src/media/types/Text.ts +172 -0
  78. package/src/media/types/Twitter.ts +96 -0
  79. package/src/media/types/Video.ts +84 -0
  80. package/src/media/types/Vimeo.ts +65 -0
  81. package/src/media/types/Website.ts +36 -0
  82. package/src/media/types/Wikipedia.ts +124 -0
  83. package/src/media/types/YouTube.ts +192 -0
  84. package/src/scss/Typography.scss +237 -0
  85. package/src/scss/VCO.StoryMap.Dark.scss +138 -0
  86. package/src/scss/VCO.StoryMap.scss +164 -0
  87. package/src/scss/Variables.Dark.scss +56 -0
  88. package/src/scss/Variables.scss +47 -0
  89. package/src/scss/core/Mixins.scss +112 -0
  90. package/src/scss/core/Reset.scss +206 -0
  91. package/src/scss/fonts/_font.base.scss +113 -0
  92. package/src/scss/fonts/font.abril-droidsans.scss +75 -0
  93. package/src/scss/fonts/font.amatic-andika.scss +73 -0
  94. package/src/scss/fonts/font.bitter-raleway.scss +86 -0
  95. package/src/scss/fonts/font.clicker-garamond.scss +92 -0
  96. package/src/scss/fonts/font.dancing-ledger.scss +74 -0
  97. package/src/scss/fonts/font.default.scss +9 -0
  98. package/src/scss/fonts/font.fjalla-average.scss +80 -0
  99. package/src/scss/fonts/font.georgia-helvetica.scss +58 -0
  100. package/src/scss/fonts/font.knightlab.scss +97 -0
  101. package/src/scss/fonts/font.lustria-lato.scss +80 -0
  102. package/src/scss/fonts/font.medula-lato.scss +73 -0
  103. package/src/scss/fonts/font.oldstandard.scss +88 -0
  104. package/src/scss/fonts/font.opensans-gentiumbook.scss +80 -0
  105. package/src/scss/fonts/font.playfair-faunaone.scss +86 -0
  106. package/src/scss/fonts/font.playfair.scss +85 -0
  107. package/src/scss/fonts/font.pt.scss +90 -0
  108. package/src/scss/fonts/font.roboto-megrim.scss +73 -0
  109. package/src/scss/fonts/font.rufina-sintony.scss +73 -0
  110. package/src/scss/fonts/font.ubuntu.scss +78 -0
  111. package/src/scss/fonts/font.unicaone-vollkorn.scss +85 -0
  112. package/src/scss/icons/Icons.scss +239 -0
  113. package/src/scss/map/VCO.ImageMarker.scss +23 -0
  114. package/src/scss/map/VCO.Map.scss +21 -0
  115. package/src/scss/map/VCO.MapMarker.scss +147 -0
  116. package/src/scss/map/openlayers/VCO.Map.OpenLayers.scss +126 -0
  117. package/src/scss/media/VCO.Media.scss +222 -0
  118. package/src/scss/media/types/VCO.Media.Blockquote.scss +76 -0
  119. package/src/scss/media/types/VCO.Media.IFrame.scss +11 -0
  120. package/src/scss/media/types/VCO.Media.Image.scss +13 -0
  121. package/src/scss/media/types/VCO.Media.Instagram.scss +7 -0
  122. package/src/scss/media/types/VCO.Media.Profile.scss +5 -0
  123. package/src/scss/media/types/VCO.Media.Text.scss +90 -0
  124. package/src/scss/media/types/VCO.Media.Twitter.scss +87 -0
  125. package/src/scss/media/types/VCO.Media.Wikipedia.scss +64 -0
  126. package/src/scss/site/site.scss +748 -0
  127. package/src/scss/slider/VCO.Slide.scss +447 -0
  128. package/src/scss/slider/VCO.SlideNav.scss +338 -0
  129. package/src/scss/slider/VCO.StorySlider.scss +64 -0
  130. package/src/scss/snapmap/VCO.SnapMap.scss +103 -0
  131. package/src/scss/ui/VCO.Consent.scss +77 -0
  132. package/src/scss/ui/VCO.MenuBar.Button.scss +99 -0
  133. package/src/scss/ui/VCO.MenuBar.scss +20 -0
  134. package/src/scss/ui/VCO.Message.scss +104 -0
  135. package/src/site/site.ts +87 -0
  136. package/src/slider/Slide.ts +460 -0
  137. package/src/slider/SlideNav.ts +212 -0
  138. package/src/slider/StorySlider.ts +722 -0
  139. package/src/storymap/Consent.ts +146 -0
  140. package/src/storymap/StoryMap.ts +1108 -0
  141. package/src/storymap/iiif.ts +386 -0
  142. package/src/storymap/validate.ts +184 -0
  143. package/src/types.ts +297 -0
  144. package/src/ui/Draggable.ts +374 -0
  145. package/src/ui/MenuBar.ts +323 -0
  146. package/src/ui/Message.ts +118 -0
  147. package/src/ui/Swipable.ts +388 -0
  148. package/dist/assets/main-DwbXrrYn.js +0 -17
@@ -0,0 +1,447 @@
1
+ @use "sass:color";
2
+ @use "../Variables" as *;
3
+ @use "../core/Mixins" as *;
4
+
5
+ /* SLIDE
6
+ ================================================== */
7
+ .vco-slide {
8
+ position: absolute;
9
+ width: 100%;
10
+ height: 100%;
11
+ padding: 0;
12
+ margin: 0;
13
+
14
+ // display:table;
15
+ // table-layout: fixed;
16
+ overflow: hidden auto;
17
+
18
+ // Visible, app-styled vertical scrollbar whenever the slide content
19
+ // overflows (desktop); touch devices get a wider one
20
+ scrollbar-width: thin;
21
+ scrollbar-color: $color-theme transparent;
22
+
23
+ // overflow-y:auto;
24
+ // z-index:26;
25
+
26
+ .vco-slide-calltoaction {
27
+ cursor: pointer;
28
+ font-weight: bold;
29
+ padding-top: 10px;
30
+ margin-bottom: 10px;
31
+ padding-bottom: 10px;
32
+
33
+ .vco-slide-calltoaction-button-text {
34
+ display: inline-block;
35
+ background-color: $color-theme;
36
+ color: $color-background;
37
+
38
+ // padding:10px;
39
+ padding: 10px 15px;
40
+ border-radius: 7px;
41
+ }
42
+
43
+ &:hover {
44
+ .vco-slide-calltoaction-button-text {
45
+ background-color: $color-theme-dark;
46
+ color: $color-background;
47
+ }
48
+ }
49
+ }
50
+
51
+ .vco-slide-background {
52
+ background-color: var(--vco-color-text-background, #{$color-background});
53
+ background-repeat: no-repeat;
54
+ background-position: center center;
55
+ background-size: cover;
56
+ position: absolute;
57
+ left: 0;
58
+ top: 0;
59
+ width: 100%;
60
+ height: 100%;
61
+ z-index: -1;
62
+ overflow: hidden;
63
+ display: none;
64
+
65
+ @include opacity(50);
66
+ }
67
+
68
+ .vco-slide-scrollable-container {
69
+ display: table;
70
+ table-layout: fixed;
71
+ height: 100%;
72
+ z-index: 1;
73
+ }
74
+
75
+ .vco-slide-content-container {
76
+ display: table-cell;
77
+ vertical-align: middle;
78
+ position: relative;
79
+ z-index: 3;
80
+
81
+ .vco-slide-content {
82
+ // width:100%;
83
+ // display:table;
84
+ vertical-align: middle;
85
+ padding-left: 100px;
86
+ padding-right: 100px;
87
+ position: relative;
88
+ max-width: 100%;
89
+
90
+ .vco-media {
91
+ // display:table-cell;
92
+ // vertical-align:middle;
93
+ position: relative;
94
+ width: 100%;
95
+ min-width: 50%;
96
+
97
+ // height:100%;
98
+ float: left;
99
+ margin-top: auto;
100
+ margin-bottom: auto;
101
+
102
+ // margin-right:auto;
103
+ img,
104
+ embed,
105
+ object,
106
+ video,
107
+ iframe {
108
+ // width:100%;
109
+ }
110
+ }
111
+
112
+ .vco-text {
113
+ width: 50%;
114
+ max-width: 50%;
115
+ min-width: 120px;
116
+
117
+ // height:100%;
118
+ // overflow-y:auto;
119
+ padding: 0 20px;
120
+ display: table-cell;
121
+ vertical-align: middle;
122
+ text-align: left;
123
+
124
+ // float:left;
125
+ .vco-slide-calltoaction {
126
+ width: 100%;
127
+ }
128
+ }
129
+ }
130
+ }
131
+ }
132
+
133
+ // touch devices (the container carries .vco-mobile on Browser.touch):
134
+ // a wider scrollbar for finger input — darker thumb on a visible track for
135
+ // contrast (standard scrollbar-width/color only; browsers without support
136
+ // keep their system overlay scrollbars)
137
+ .vco-mobile .vco-slide {
138
+ scrollbar-width: auto;
139
+ scrollbar-color: $color-theme-dark rgb(0 0 0 / 12%);
140
+ }
141
+
142
+ /* Scroll hint: a bouncing downward arrow when the slide content overflows
143
+ (the slide box is scrollable) — tappable to scroll down, hidden after the
144
+ first scroll of any kind. Anchored to the bottom of the visible slide area
145
+ (absolute children resolve against the slide's height, so top 100% minus
146
+ the chip is the visible bottom at scroll 0).
147
+ ================================================== */
148
+ @keyframes vco-scroll-hint-bounce {
149
+ 0%,
150
+ 100% {
151
+ transform: translate(-50%, 0);
152
+ }
153
+
154
+ 50% {
155
+ transform: translate(-50%, 8px);
156
+ }
157
+ }
158
+
159
+ .vco-slide-scroll-hint {
160
+ position: absolute;
161
+ left: 50%;
162
+ top: calc(100% - 72px);
163
+ z-index: 4;
164
+ width: 44px;
165
+ height: 44px;
166
+ display: flex;
167
+ align-items: center;
168
+ justify-content: center;
169
+ border-radius: 50%;
170
+ background-color: rgb(0 0 0 / 40%);
171
+ color: #fff;
172
+ cursor: pointer;
173
+ animation: vco-scroll-hint-bounce 1.2s ease-in-out infinite;
174
+
175
+ @media (prefers-reduced-motion: reduce) {
176
+ animation: none;
177
+ transform: translate(-50%, 0);
178
+ }
179
+
180
+ [class^="vco-icon-"],
181
+ [class*=" vco-icon-"] {
182
+ font-size: 26px;
183
+ line-height: 1;
184
+ }
185
+ }
186
+
187
+ /* Only Media (no text)
188
+ ================================================== */
189
+ .vco-slide-media-only {
190
+ .vco-slide-content-container {
191
+ .vco-slide-content {
192
+ // width:100%;
193
+ text-align: center;
194
+
195
+ .vco-media {
196
+ // display:table-cell;
197
+ // vertical-align:middle;
198
+ text-align: center;
199
+ max-width: 100%;
200
+
201
+ // height:100%;
202
+ float: none;
203
+
204
+ // margin-right:auto;
205
+ img,
206
+ embed,
207
+ object,
208
+ video,
209
+ iframe {
210
+ // width:100%;
211
+ }
212
+ }
213
+
214
+ .vco-text {
215
+ display: block;
216
+ margin-left: auto;
217
+ margin-right: auto;
218
+
219
+ h2 {
220
+ margin-top: 20px;
221
+ margin-bottom: 20px;
222
+ }
223
+
224
+ // float:left;
225
+ }
226
+ }
227
+ }
228
+ }
229
+
230
+ /* Only Text (no media)
231
+ ================================================== */
232
+ .vco-slide-text-only {
233
+ .vco-slide-content-container {
234
+ .vco-slide-content {
235
+ // width:100%;
236
+ .vco-text {
237
+ max-width: 80%;
238
+ width: 80%;
239
+
240
+ // float:left;
241
+ }
242
+ }
243
+ }
244
+ }
245
+
246
+ /* Background
247
+ ================================================== */
248
+
249
+ .vco-slide.vco-full-image-background,
250
+ .vco-slide.vco-full-color-background {
251
+ @include slide-text-shadow;
252
+
253
+ p,
254
+ h1,
255
+ h2,
256
+ h3,
257
+ h4,
258
+ h5,
259
+ h6 {
260
+ @include slide-text-shadow;
261
+ }
262
+
263
+ a,
264
+ a:hover,
265
+ b,
266
+ i,
267
+ blockquote,
268
+ blockquote p {
269
+ @include slide-text-shadow;
270
+
271
+ color: color.adjust($color-theme, $lightness: 90%);
272
+ }
273
+
274
+ .vco-caption,
275
+ .vco-credit {
276
+ @include slide-text-shadow;
277
+ }
278
+
279
+ .vco-media-twitter,
280
+ .vco-media-blockquote {
281
+ blockquote {
282
+ @include slide-text-shadow;
283
+
284
+ p {
285
+ @include slide-text-shadow;
286
+ }
287
+ }
288
+ }
289
+
290
+ .vcard {
291
+ a,
292
+ .nickname {
293
+ @include slide-text-shadow;
294
+ }
295
+ }
296
+ }
297
+
298
+ /* Landscape
299
+ ================================================== */
300
+ .vco-layout-landscape {
301
+ .vco-slide {
302
+ // .translucent-background(#FFF, 0.85);
303
+ .vco-slide-content-container {
304
+ .vco-slide-content {
305
+ // .translucent-background(#FFF, 0.85);
306
+ }
307
+ }
308
+ }
309
+ }
310
+
311
+ /* Full Image Background
312
+ ================================================== */
313
+ .vco-slide.vco-full-image-background {
314
+ background: no-repeat center center;
315
+ background-size: cover;
316
+ background-position: center 25%;
317
+ text-shadow: 1px 1px 2px #000;
318
+
319
+ p,
320
+ h1,
321
+ h2,
322
+ h3,
323
+ h4,
324
+ h5,
325
+ h6 {
326
+ text-shadow: 1px 1px 2px #000;
327
+ }
328
+
329
+ .vco-media-twitter,
330
+ .vco-media-blockquote {
331
+ blockquote {
332
+ text-shadow: 1px 1px 2px #000 !important;
333
+
334
+ p {
335
+ text-shadow: 1px 1px 2px #000 !important;
336
+ }
337
+ }
338
+ }
339
+ }
340
+
341
+ /* Text alignment (issue #244)
342
+ ================================================== */
343
+ .vco-text-content-container.vco-text-align-center {
344
+ text-align: center;
345
+ }
346
+
347
+ .vco-text-content-container.vco-text-align-right {
348
+ text-align: right;
349
+ }
350
+
351
+ /* Text Background
352
+ ================================================== */
353
+ .vco-slide.vco-text-background {
354
+ .vco-text {
355
+ .vco-text-content-container {
356
+ padding: 20px;
357
+
358
+ @include background-color-opacity(0, 0, 0, 60);
359
+ @include border-radius(7px);
360
+
361
+ h2 {
362
+ margin-top: 5px;
363
+ }
364
+ }
365
+ }
366
+ }
367
+
368
+ /* Landscape
369
+ ================================================== */
370
+ .vco-layout-landscape {
371
+ .vco-slide {
372
+ .vco-slide-content-container {
373
+ .vco-slide-content {
374
+ .vco-media {
375
+ display: block;
376
+
377
+ // position:static;
378
+ vertical-align: baseline;
379
+ height: auto;
380
+ max-height: 50%;
381
+ }
382
+
383
+ .vco-text {
384
+ // position:static;
385
+ max-width: 100%;
386
+ min-width: 0;
387
+ float: none;
388
+ padding: 0;
389
+
390
+ .vco-text-content-container {
391
+ // padding-left:10px;
392
+ // padding-right:10px;
393
+ // padding-bottom:100px;
394
+ }
395
+ }
396
+ }
397
+ }
398
+ }
399
+ }
400
+
401
+ // Skinny 500px or less
402
+ .vco-skinny {
403
+ .vco-slide {
404
+ display: block;
405
+
406
+ .vco-slide-content-container {
407
+ display: block;
408
+ position: static;
409
+ height: auto;
410
+ vertical-align: baseline;
411
+
412
+ .vco-slide-content {
413
+ position: static;
414
+ vertical-align: baseline;
415
+ height: auto;
416
+
417
+ .vco-media {
418
+ position: static;
419
+ }
420
+
421
+ .vco-text {
422
+ .vco-text-content-container {
423
+ padding-left: 10px;
424
+ padding-right: 10px;
425
+ padding-bottom: 10px;
426
+ }
427
+ }
428
+ }
429
+ }
430
+ }
431
+ }
432
+
433
+ .vco-mobile.vco-skinny {
434
+ .vco-slide-content-container {
435
+ .vco-slide-content {
436
+ .vco-media {
437
+ img,
438
+ embed,
439
+ object,
440
+ video,
441
+ iframe {
442
+ max-height: 175px;
443
+ }
444
+ }
445
+ }
446
+ }
447
+ }