@internetstiftelsen/styleguide 2.24.30-beta.0.1 → 2.24.30-beta.0.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.
@@ -0,0 +1,474 @@
1
+ WEBVTT
2
+
3
+ 00:00:00.000 --> 00:00:05.433
4
+ Hallå, hej! Jag heter Måns Jonasson
5
+ och jag är internetexpert på Internetstiftelsen
6
+
7
+ 00:00:05.500 --> 00:00:07.500
8
+ och grundare av Internetmuseum.
9
+
10
+ 00:00:07.633 --> 00:00:13.600
11
+ I den här guidade turen ska vi gå igenom hur det
12
+ gick till när internet tog sig in i våra svenska hem
13
+
14
+ 00:00:13.633 --> 00:00:16.067
15
+ och våra allra första möten med internet.
16
+
17
+ 00:00:16.400 --> 00:00:22.033
18
+ Om du vill så kan du när som helst under föreläsningen klicka på någon av de länkar som dyker upp till höger om mig
19
+
20
+ 00:00:22.067 --> 00:00:26.033
21
+ för att fördjupa dig och läsa mer på våra tidslinjepunkter på Internetmuseum.
22
+
23
+ 00:00:26.367 --> 00:00:31.967
24
+ Och när du vill så återvänder du till den här guidade turen så fortsätter den precis där du slutade.
25
+
26
+ 00:00:32.100 --> 00:00:36.133
27
+ Minns du ditt alldeles egna första möte med internet?
28
+
29
+ 00:00:36.700 --> 00:00:40.733
30
+ Om du är under 25-30 år gammal så är sannolikheten ganska låg
31
+
32
+ 00:00:40.833 --> 00:00:45.633
33
+ att du kommer ihåg hur det kändes när du kopplade upp dig på nätet den allra första gången.
34
+
35
+ 00:00:46.067 --> 00:00:51.167
36
+ Men om du är äldre så är sannolikheten ganska stor att du kommer ihåg den här pirrande känslan
37
+
38
+ 00:00:51.233 --> 00:00:56.533
39
+ av att för första gången kliva ut på det världsomspännande datornätverket internet.
40
+
41
+ 00:00:56.833 --> 00:01:00.100
42
+ Idag har vi internet med oss i fickan överallt, hela tiden
43
+
44
+ 00:01:00.400 --> 00:01:04.933
45
+ Men på 90-talet när internet tog sig in i svenska hem var det inte lika enkelt.
46
+
47
+ 00:01:05.067 --> 00:01:10.267
48
+ Man var från början tvungen att ha en speciell liten låda som kallas "modem".
49
+
50
+ 00:01:10.567 --> 00:01:12.733
51
+ Jag tog med ett modem från våra samlingar.
52
+
53
+ 00:01:12.867 --> 00:01:17.633
54
+ Det här är ett US Robotics, ett av de allra vanligaste modemen
55
+
56
+ 00:01:17.667 --> 00:01:21.133
57
+ som fanns i svenska hem på 90-talet när vi skulle ta oss ut på internet.
58
+
59
+ 00:01:21.400 --> 00:01:25.500
60
+ Det här modemet kopplades in till den fasta telefonlinjen hemma
61
+
62
+ 00:01:25.600 --> 00:01:30.333
63
+ och en av de saker som gjorde det här speciellt var att det pep väldigt när det kopplade upp sig.
64
+
65
+ 00:01:30.433 --> 00:01:32.433
66
+ Vi tar och lyssnar lite på hur det lät.
67
+
68
+ 00:01:32.633 --> 00:01:38.600
69
+ [MODEMLJUD]
70
+
71
+ 00:01:38.800 --> 00:01:42.533
72
+ Det här oljudet betydde att du var på väg att koppla upp dig på internet
73
+
74
+ 00:01:42.767 --> 00:01:47.733
75
+ och för första gången kanske ta reda på vem det var som spelade huvudrollen i den där filmen
76
+
77
+ 00:01:47.967 --> 00:01:50.867
78
+ eller kanske leta upp bilder på nånting specifikt.
79
+
80
+ 00:01:51.300 --> 00:01:55.233
81
+ Och de här modemen var väldigt sällsynta till att börja med
82
+
83
+ 00:01:55.300 --> 00:01:58.067
84
+ för det var både dyrt och komplicerat att ansluta till nätet.
85
+
86
+ 00:01:58.500 --> 00:02:04.067
87
+ Eftersom de kopplades på telefonnätet så betydde det att samtidigt som du var uppkopplad på internet
88
+
89
+ 00:02:04.167 --> 00:02:07.800
90
+ så kunde ingen ringa. Det gick bara att göra en sak i taget på telefonlinjen.
91
+
92
+ 00:02:08.000 --> 00:02:13.567
93
+ Om någon satt och surfade så kunde ingen ringa in eller ut på familjens telefon därhemma.
94
+
95
+ 00:02:13.700 --> 00:02:17.400
96
+ Det skapade ganska många konflikter i svenska hem i början av internet-tiden.
97
+
98
+ 00:02:18.600 --> 00:02:23.233
99
+ Själv så kopplade jag upp mig via en av de första svenska internetoperatörerna
100
+
101
+ 00:02:23.333 --> 00:02:27.100
102
+ faktiskt den första som vände sig till privatpersoner, den hette Algonet.
103
+
104
+ 00:02:27.100 --> 00:02:30.467
105
+ och jag skaffade min första uppkoppling 1994.
106
+
107
+ 00:02:30.633 --> 00:02:36.167
108
+ På den här tiden var det väldigt få svenskar, bara några tusen faktiskt som hade uppkoppling hemma
109
+
110
+ 00:02:36.333 --> 00:02:39.933
111
+ och det gick väldigt långsamt att surfa, men det spelade ingen roll för oss
112
+
113
+ 00:02:40.067 --> 00:02:43.500
114
+ vi tyckte att det var så enormt spännande att bara vara med på nätet
115
+
116
+ 00:02:43.567 --> 00:02:45.967
117
+ att ha möjlighet att kommunicera över hela världen.
118
+
119
+ 00:02:46.933 --> 00:02:50.233
120
+ 1994 var det många som tog sina första steg ut på nätet
121
+
122
+ 00:02:50.333 --> 00:02:55.667
123
+ men det dröjde till 1996 innan internet blev "årets julklapp"
124
+
125
+ 00:02:55.767 --> 00:03:00.800
126
+ Jag tog med från våra samlingar dels det här modemet som följde med i internetpaketet
127
+
128
+ 00:03:01.033 --> 00:03:03.267
129
+ men också den här: Connect2internet.
130
+
131
+ 00:03:03.400 --> 00:03:07.467
132
+ Det här var Tele 2:s internetpaket som var en av de stora storsäljarna
133
+
134
+ 00:03:07.633 --> 00:03:11.133
135
+ som för många svenskar var det allra första mötet med internet hemma.
136
+
137
+ 00:03:11.333 --> 00:03:14.967
138
+ Känner du igen den här boken så är du troligtvis gammal nog att ha varit med på den här tiden.
139
+
140
+ 00:03:16.167 --> 00:03:20.033
141
+ Jag jobbade på en internetoperatör på den här tiden och jag minns
142
+
143
+ 00:03:20.300 --> 00:03:24.567
144
+ att supporten, när de här julklapparna packades upp under julgranen
145
+
146
+ 00:03:24.700 --> 00:03:29.100
147
+ och man fick det här paketet med modemet och instruktionsboken
148
+
149
+ 00:03:29.433 --> 00:03:33.433
150
+ men behöver man något mer till internet? Behöver man kanske en dator till exempel?
151
+
152
+ 00:03:33.867 --> 00:03:38.333
153
+ Tro det eller ej, men det var rätt många som fick ett internetpaket i julkapp som inte hade någon dator hemma
154
+
155
+ 00:03:38.600 --> 00:03:44.267
156
+ och den som hade köpt hade helt enkelt inte förstått att internet behövde också en dator för att fungera.
157
+
158
+ 00:03:45.333 --> 00:03:51.233
159
+ När internet tog fart så var en av de allra första sakerna som vi internetentusiaster gjorde i början
160
+
161
+ 00:03:51.367 --> 00:03:53.500
162
+ att bygga våra egna hemsidor.
163
+
164
+ 00:03:54.233 --> 00:03:57.067
165
+ Idag är det ganska sällsynt att svenskar har en egen hemsida
166
+
167
+ 00:03:57.133 --> 00:04:02.100
168
+ men på 90-talet så var det här en otroligt populär syssla för den som hade skaffat internet
169
+
170
+ 00:04:02.433 --> 00:04:06.367
171
+ För vad skulle man göra på nätet om inte dela med sig av sina egna hobbies?
172
+
173
+ 00:04:06.433 --> 00:04:10.100
174
+ Man kanske skapade en webbsida som berättade om ens egen skivsamling
175
+
176
+ 00:04:10.133 --> 00:04:12.500
177
+ eller kanske en webbsida om salamandrar.
178
+
179
+ 00:04:12.767 --> 00:04:16.633
180
+ Folk överallt startade hemsidor om sina egna hobbies
181
+
182
+ 00:04:16.700 --> 00:04:19.000
183
+ om sina familjer, la upp bilder
184
+
185
+ 00:04:19.200 --> 00:04:22.933
186
+ och en av de internetpionjärer som vi på Internetmuseum särskilt hyllar
187
+
188
+ 00:04:23.333 --> 00:04:28.633
189
+ som var en av de som var först med att skapa en HTML-skola.
190
+
191
+ 00:04:28.767 --> 00:04:32.267
192
+ Där kunde man lära sig att bygga sina egna hemsidor.
193
+
194
+ 00:04:32.433 --> 00:04:36.233
195
+ Det här med att bygga egna hemsidor och lära sig HTML, det var faktiskt
196
+
197
+ 00:04:36.367 --> 00:04:39.833
198
+ väldigt många svenskars första steg in i programmeringsvärlden.
199
+
200
+ 00:04:40.200 --> 00:04:45.700
201
+ Det är en av de grundstenar som gjort att Sverige idag är ett framgångsrikt land
202
+
203
+ 00:04:45.833 --> 00:04:49.900
204
+ när det gäller internetprogrammering, spelutveckling och programmering i allmänhet.
205
+
206
+ 00:04:50.033 --> 00:04:55.233
207
+ Dåtidens uppkopplingar var väldigt långsamma, så webbsidorna måste vara små.
208
+
209
+ 00:04:55.567 --> 00:04:59.833
210
+ Eftersom uppkopplingarna gick via de här modemen och alltså över telefonnätet, som ljud
211
+
212
+ 00:05:00.133 --> 00:05:03.467
213
+ så jobbade man med väldigt långsamma hastigheter och det var faktiskt så att
214
+
215
+ 00:05:03.567 --> 00:05:07.067
216
+ bilderna laddades in långsamt, så här.
217
+
218
+ 00:05:07.233 --> 00:05:11.033
219
+ Man kunde få sitta flera minuter och vänta på att en stor bild skulle laddas in på webbsidan.
220
+
221
+ 00:05:11.200 --> 00:05:15.567
222
+ Det betydde att när man byggde webbsidor på den här tiden var de tvungna att vara väldigt små.
223
+
224
+ 00:05:15.700 --> 00:05:18.833
225
+ Små bilder, hårt komprimerade, väldigt få effekter
226
+
227
+ 00:05:19.033 --> 00:05:22.533
228
+ inga filmer, inga ljud och så. Väldigt statisk webb jämför med idag.
229
+
230
+ 00:05:23.433 --> 00:05:26.700
231
+ Ett sånt här modem kallas för "56K".
232
+
233
+ 00:05:27.133 --> 00:05:30.567
234
+ Det betyder att det går i en hastighet av 56 kilobit per sekund.
235
+
236
+ 00:05:30.933 --> 00:05:34.167
237
+ Det är ungefär 0,05 megabit per sekund.
238
+
239
+ 00:05:34.833 --> 00:05:39.733
240
+ En vanlig svensk uppkoppling idag via fiber ligger nånstans mellan 10, 20, 50, 100
241
+
242
+ 00:05:39.833 --> 00:05:41.667
243
+ eller till och med 1000 megabit per sekund.
244
+
245
+ 00:05:41.700 --> 00:05:45.567
246
+ Alltså många tusen gånger snabbare än de här modemuppkopplingarna.
247
+
248
+ 00:05:45.900 --> 00:05:49.900
249
+ Jag läste alldeles nyligen att dagens förstasida på Google.com
250
+
251
+ 00:05:50.100 --> 00:05:53.000
252
+ skulle ta 20 minuter att ladda ner på ett sånt här modem.
253
+
254
+ 00:05:53.233 --> 00:05:57.967
255
+ Så det har hänt väldigt mycket på de här drygt 25 åren som gått sen vi började koppla upp oss.
256
+
257
+ 00:06:00.267 --> 00:06:02.100
258
+ Vad skulle vi då göra på nätet?
259
+
260
+ 00:06:02.433 --> 00:06:06.300
261
+ Skulle vi titta på folks salamandersamlingar och kanske ta reda på vem som spelade
262
+
263
+ 00:06:06.467 --> 00:06:09.200
264
+ huvudrollen i en viss film, eller skulle vi umgås?
265
+
266
+ 00:06:09.433 --> 00:06:13.167
267
+ Det visade sig att styrkan i nätet, att koppla ihop människor
268
+
269
+ 00:06:13.367 --> 00:06:17.400
270
+ var perfekt för en helt ny generation av entreprenörer på internet.
271
+
272
+ 00:06:17.667 --> 00:06:21.233
273
+ Och nånting som grundades 1996 är Lunarstorm
274
+
275
+ 00:06:21.333 --> 00:06:26.667
276
+ som var en av de första, kanske faktiskt världens första sociala media på nätet.
277
+
278
+ 00:06:27.533 --> 00:06:31.967
279
+ Lunarstorm var lite likt dagens Facebook: En plattform där man kunde bli medlem
280
+
281
+ 00:06:32.167 --> 00:06:35.067
282
+ man kunde ladda upp bilder och skriva till varandra.
283
+
284
+ 00:06:35.533 --> 00:06:39.167
285
+ Men till skillnad från dagens Facebook så var det lite mer semi-publikt.
286
+
287
+ 00:06:39.500 --> 00:06:43.233
288
+ Det var mindre troligt att du pratade med människor du inte kände
289
+
290
+ 00:06:43.267 --> 00:06:48.300
291
+ du höll dig till din lilla vänkrets, och folk hade väldigt fantasifulla namn.
292
+
293
+ 00:06:48.933 --> 00:06:52.467
294
+ Istället för att ha våra riktiga namn, som vi oftast har i sociala medier idag.
295
+
296
+ 00:06:52.733 --> 00:06:58.900
297
+ Lunarstorm blev riktigt stort och hade 1,2 miljoner medlemmar i Sverige när det var som störst.
298
+
299
+ 00:06:59.233 --> 00:07:04.200
300
+ Det fanns en tid när 90% av alla tonåringar i Sverige hade ett konto på Lunarstorm.
301
+
302
+ 00:07:04.467 --> 00:07:08.700
303
+ Så för många ungdomar var Lunarstorm det första mötet med sociala medier.
304
+
305
+ 00:07:09.400 --> 00:07:15.033
306
+ Året efter att internet blev årets julklapp och Lunarstorm grundades, alltså 1997
307
+
308
+ 00:07:15.233 --> 00:07:21.067
309
+ då tävlar Nick Borgen med låten "World Wide Web" i Mello, och den gick så här.
310
+
311
+ 00:07:21.133 --> 00:07:35.267
312
+ [MUSIK]
313
+
314
+ 00:07:35.500 --> 00:07:42.200
315
+ Så det sjungs om internet i Melodifestivalen, betyder det att internet är mainstream 1997?
316
+
317
+ 00:07:42.567 --> 00:07:49.200
318
+ Nej, faktum är att 1997 är det bara 10% av svenskarna som har tillgång till internet i hemmet.
319
+
320
+ 00:07:49.400 --> 00:07:54.167
321
+ Det är inte så många som ens har skaffat en dator hem än, och än mindre internet - bara 10%!
322
+
323
+ 00:07:54.567 --> 00:07:58.233
324
+ Men år 1998 kommer Hem-PC-reformen.
325
+
326
+ 00:07:58.700 --> 00:08:02.133
327
+ Hem-PC-reformen gjorde att det för första gången blev möjligt för många svenskar
328
+
329
+ 00:08:02.233 --> 00:08:05.967
330
+ att ha råd att skaffa en dator och ett internetpaket hem.
331
+
332
+ 00:08:06.133 --> 00:08:10.600
333
+ Och mellan 1997, då endast 10% av svenskarna hade tillgång till internet hemma
334
+
335
+ 00:08:10.767 --> 00:08:15.033
336
+ och år 2000 så växer internettillgången dramatiskt.
337
+
338
+ 00:08:15.167 --> 00:08:21.433
339
+ År 2000 är det för första gången hälften av svenskarna som har skaffat internet hem.
340
+
341
+ 00:08:21.800 --> 00:08:27.867
342
+ 2000-talet tillhör Flash. Det här är när en majoritet har börjat skaffa internet hem.
343
+
344
+ 00:08:28.000 --> 00:08:30.800
345
+ Och med Flash blir det för första gången möjligt att ta del av
346
+
347
+ 00:08:30.900 --> 00:08:36.433
348
+ animationer, spel, video och ljud på webben på ett enkelt och tillgängligt sätt.
349
+
350
+ 00:08:36.533 --> 00:08:41.000
351
+ Fortfarande med långsamma uppkopplingar, så kvaliteten på videon och ljudet
352
+
353
+ 00:08:41.167 --> 00:08:43.733
354
+ är kanske inte riktigt som vi är vana vid idag.
355
+
356
+ 00:08:43.800 --> 00:08:47.033
357
+ Men Flash fick ett enormt genomslag och gav oss enorma mängder av
358
+
359
+ 00:08:47.133 --> 00:08:49.533
360
+ spel, underhållning och filmer
361
+
362
+ 00:08:49.700 --> 00:08:55.433
363
+ och det är faktiskt Flash som möjliggör den allra första svenska virala succén:
364
+
365
+ 00:08:55.633 --> 00:08:59.833
366
+ Nämligen "Ansiktsburk" år 2001. Den gick så här:
367
+
368
+ 00:09:00.067 --> 00:09:07.533
369
+ [MUSIK]
370
+
371
+ 00:09:07.767 --> 00:09:11.300
372
+ En låt med arabisk text som någon tycker låter som svenska.
373
+
374
+ 00:09:11.533 --> 00:09:15.933
375
+ Han sjunger naturligtvis inte "ansiktsburk", men låter det inte lite så?
376
+
377
+ 00:09:16.467 --> 00:09:20.233
378
+ Någon skapar en Flash-film och lägger upp den här bilden och låten
379
+
380
+ 00:09:20.300 --> 00:09:23.300
381
+ och lägger svenska undertexter som är någorlunda likt
382
+
383
+ 00:09:23.533 --> 00:09:27.400
384
+ och den här skickas runt, inte via sociala medier som vi gör idag,
385
+
386
+ 00:09:27.467 --> 00:09:31.100
387
+ utan väldigt mycket via e-mail. Folk mejlar den här länken till varandra
388
+
389
+ 00:09:31.167 --> 00:09:37.100
390
+ för det här är ju innan sociala medier och den otroliga delningskultur vi har idag.
391
+
392
+ 00:09:37.400 --> 00:09:40.100
393
+ På 00-talet så växer internet rekordsnabbt
394
+
395
+ 00:09:40.267 --> 00:09:44.200
396
+ inte bara andelen människor som är uppkopplade utan också innehållet.
397
+
398
+ 00:09:44.567 --> 00:09:48.767
399
+ Och det är på 00-talet som mycket av det vi tar för givet på internet idag skapas.
400
+
401
+ 00:09:49.067 --> 00:09:52.900
402
+ Facebook, Youtube, Wikipedia och väldigt mycket annat
403
+
404
+ 00:09:52.900 --> 00:09:57.300
405
+ som vi idag tycker är en naturlig del av internet ser dagens ljus på 00-talet.
406
+
407
+ 00:09:57.667 --> 00:10:01.033
408
+ Även utanför Sverige växer internet väldigt snabbt.
409
+
410
+ 00:10:01.433 --> 00:10:06.300
411
+ Många av de som är uppvuxna på 00-talet har helt enkelt vant sig vid att alltid kunna
412
+
413
+ 00:10:06.467 --> 00:10:11.233
414
+ använda internet för att ta reda på fakta, använda det i skolan och ha kontakt med vänner.
415
+
416
+ 00:10:11.500 --> 00:10:14.800
417
+ Istället för att ringa varandra så chattar man, man skickar direktmeddelanden
418
+
419
+ 00:10:15.067 --> 00:10:18.433
420
+ först kanske via ICQ eller MSN Messenger
421
+
422
+ 00:10:18.600 --> 00:10:24.600
423
+ och idag via Facebook eller WhatsApp eller någon av alla internetbaserade meddelandetjänster
424
+
425
+ 00:10:25.567 --> 00:10:31.800
426
+ Det är först år 2008 som Iphone lanseras i Sverige och gör internet mobilt på riktigt.
427
+
428
+ 00:10:32.133 --> 00:10:37.133
429
+ Den här lilla enheten som nu 90% av svenskarna går runt med: En smartphone
430
+
431
+ 00:10:37.500 --> 00:10:41.700
432
+ har möjliggjort att vi tar internet med oss överallt och har förflyttat internet
433
+
434
+ 00:10:41.833 --> 00:10:43.833
435
+ från nånting som vi använder då och då...
436
+
437
+ 00:10:44.500 --> 00:10:48.167
438
+ Jag brukar säga att vi har gått från att säga att vi "kopplar upp oss" på internet
439
+
440
+ 00:10:48.267 --> 00:10:52.400
441
+ som vi ju faktiskt gjorde med de här modemen: Vi var tvungna att välja att "nu ska jag gå ut på internet"
442
+
443
+ 00:10:52.533 --> 00:10:56.533
444
+ "Nu kan ingen ringa och nu kopplar jag ner från internet och nu är jag inte på internet längre".
445
+
446
+ 00:10:57.133 --> 00:11:00.033
447
+ Det kunde alltså hända saker på nätet medan vi inte var uppkopplade.
448
+
449
+ 00:11:00.533 --> 00:11:05.000
450
+ Men idag går vi ju runt och är uppkopplade hela tiden, och det är smartphonen som har möjliggjort detta.
451
+
452
+ 00:11:05.233 --> 00:11:09.900
453
+ Nu när vi går runt med en smartphone i fickan hela tiden så är vi ju ständigt uppkopplade.
454
+
455
+ 00:11:10.133 --> 00:11:12.833
456
+ Vi är inte längre "offline" eller "online".
457
+
458
+ 00:11:12.867 --> 00:11:15.833
459
+ Vi är inte längre "på internet" eller "utanför internet".
460
+
461
+ 00:11:16.300 --> 00:11:19.833
462
+ Och kanske är det nu, när vi alltid är uppkopplade som vi använder
463
+
464
+ 00:11:19.833 --> 00:11:22.700
465
+ nätet på det sättet som nätet alltid var tänkt.
466
+
467
+ 00:11:22.800 --> 00:11:26.867
468
+ Det är nu vi kan använda det som det världsomspännande datorkommunikationsnät
469
+
470
+ 00:11:27.067 --> 00:11:28.767
471
+ som det var från första början.
472
+
473
+ 00:11:29.033 --> 00:11:34.600
474
+ Nu kan vi prata med vem vi vill, när vi vill, om vad vi vill, precis när vi önskar det.
@@ -118,6 +118,7 @@ html {
118
118
  transition: opacity 1s ease-out, transform 5s cubic-bezier(0, 1, 0, 1);
119
119
  transform: translateY(200px);
120
120
  will-change: opacity, transform;
121
+ transition-delay: 0.5s;
121
122
  flex: 100%;
122
123
 
123
124
  &.animate {
@@ -0,0 +1,213 @@
1
+ import getCurrentCueIndex from './getCurrentCueIndex';
2
+
3
+ export default class VideoGuidePlayback {
4
+ constructor(element, video) {
5
+ this.video = video;
6
+ this.playBtn = element.querySelector('.js-play-btn');
7
+ this.playIcon = element.querySelector('.js-play-icon');
8
+ this.pauseIcon = element.querySelector('.js-pause-icon');
9
+ this.forwardsButton = element.querySelector('.js-next-chapter');
10
+ this.backwardsButton = element.querySelector('.js-previous-chapter');
11
+ this.totaltimeElement = element.querySelector('.js-totaltime');
12
+ this.countDownElement = element.querySelector('.js-countdown');
13
+ this.chapterElements = Array.from(element.querySelectorAll('.js-chapters li'));
14
+ this.sessionKeys = {
15
+ currentTime: 'InmsCurrentTime',
16
+ duration: 'InmsDuration',
17
+ currentGuideURL: 'InmsCurrentGuideURL',
18
+ currentGuideImage: 'InmsCurrentGuideImage',
19
+ };
20
+
21
+ this.duration = null;
22
+ this.timeLeft = null;
23
+
24
+ this.init();
25
+ this.attach();
26
+ }
27
+
28
+ init() {
29
+ this.duration = this.video.duration;
30
+ this.chapters = this.video.textTracks.getTrackById('video-chapters');
31
+
32
+ if (this.chapters) {
33
+ this.chapters.addEventListener('cuechange', this.onCueChange);
34
+ this.setForwardState(true);
35
+ }
36
+
37
+ // Run on next tick to ensure that the video has loaded and event listeners are attached
38
+ setTimeout(() => {
39
+ this.sync();
40
+ }, 0);
41
+
42
+ // Format duration to minutes and seconds
43
+ const minutes = Math.floor(this.duration / 60);
44
+ const seconds = Math.floor(this.duration % 60);
45
+ const formattedDuration = `${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;
46
+
47
+ this.totaltimeElement.innerText = `${formattedDuration} – `;
48
+ }
49
+
50
+ sync() {
51
+ const key = this.sessionKeys.currentTime;
52
+ const guideURL = window.location.href;
53
+
54
+ // If the current guide URL is not the same as the one in session storage, do not sync
55
+ if (sessionStorage.getItem(this.sessionKeys.currentGuideURL) !== guideURL) {
56
+ return;
57
+ }
58
+
59
+ if (sessionStorage.getItem(key)) {
60
+ const videoCurrentTime = sessionStorage.getItem(key);
61
+
62
+ if (videoCurrentTime > 0) {
63
+ this.video.currentTime = videoCurrentTime;
64
+ }
65
+ }
66
+ }
67
+
68
+ attach() {
69
+ this.playBtn.addEventListener('click', this.togglePlay);
70
+ this.forwardsButton.addEventListener('click', this.nextChapter);
71
+ this.backwardsButton.addEventListener('click', this.previousChapter);
72
+
73
+ window.addEventListener('visibilitychange', this.saveState);
74
+ window.addEventListener('beforeunload', this.saveState);
75
+ }
76
+
77
+ setPlayActive() {
78
+ this.pauseIcon.classList.remove('is-hidden');
79
+ this.playIcon.classList.add('is-hidden');
80
+ }
81
+
82
+ setPauseActive() {
83
+ this.pauseIcon.classList.add('is-hidden');
84
+ this.playIcon.classList.remove('is-hidden');
85
+ }
86
+
87
+ setForwardState(active) {
88
+ if (active) {
89
+ this.forwardsButton.disabled = false;
90
+ } else {
91
+ this.forwardsButton.disabled = true;
92
+ }
93
+ }
94
+
95
+ setBackwardState(active) {
96
+ if (active) {
97
+ this.backwardsButton.disabled = false;
98
+ } else {
99
+ this.backwardsButton.disabled = true;
100
+ }
101
+ }
102
+
103
+ updateChapterState() {
104
+ const { cues } = this.chapters;
105
+ const activeCueIndex = getCurrentCueIndex(this.chapters);
106
+
107
+ this.setBackwardState(activeCueIndex > 0);
108
+ this.setForwardState(activeCueIndex < cues.length - 1);
109
+
110
+ this.chapterElements.forEach((chapter, i) => {
111
+ if (i === activeCueIndex) {
112
+ chapter.classList.add('is-current-item');
113
+ } else {
114
+ chapter.classList.remove('is-current-item');
115
+ }
116
+ });
117
+ }
118
+
119
+ saveState = () => {
120
+ if (this.video.currentTime > 0) {
121
+ const {
122
+ currentTime,
123
+ duration,
124
+ currentGuideURL,
125
+ currentGuideImage,
126
+ } = this.sessionKeys;
127
+ const guideURL = window.location.href;
128
+ const guideImage = this.video.dataset.featuredImage;
129
+
130
+ sessionStorage.setItem(currentTime, this.video.currentTime);
131
+ sessionStorage.setItem(duration, this.video.duration);
132
+ sessionStorage.setItem(currentGuideURL, guideURL);
133
+ sessionStorage.setItem(currentGuideImage, guideImage);
134
+ }
135
+ };
136
+
137
+ clearState = () => {
138
+ Object.values(this.sessionKeys).forEach((key) => {
139
+ sessionStorage.removeItem(key);
140
+ });
141
+ };
142
+
143
+ onPlay = () => {
144
+ this.setPlayActive();
145
+ };
146
+
147
+ onPause = () => {
148
+ this.setPauseActive();
149
+ };
150
+
151
+ onEnded = () => {
152
+ this.setPlayActive();
153
+ this.clearState();
154
+ this.setBackwardState(false);
155
+ this.setForwardState(false);
156
+
157
+ this.video.currentTime = 0;
158
+ };
159
+
160
+ onAbort = () => {
161
+ this.video.pause();
162
+ this.onEnded();
163
+ };
164
+
165
+ onTimeUpdate = () => {
166
+ const timeLeft = Math.floor(this.duration - this.video.currentTime);
167
+
168
+ // Time update fires every 250ms, so we only want to update the DOM when the time left changes
169
+ if (timeLeft === this.timeLeft) {
170
+ return;
171
+ }
172
+
173
+ this.timeLeft = timeLeft;
174
+
175
+ const minutes = Math.floor(timeLeft / 60);
176
+ const seconds = Math.floor(timeLeft % 60);
177
+ const formattedTimeLeft = `${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;
178
+
179
+ this.countDownElement.innerText = formattedTimeLeft;
180
+ };
181
+
182
+ onCueChange = () => {
183
+ this.updateChapterState();
184
+ };
185
+
186
+ togglePlay = () => {
187
+ if (this.video.paused) {
188
+ this.video.play();
189
+ } else {
190
+ this.video.pause();
191
+ }
192
+ };
193
+
194
+ nextChapter = () => {
195
+ const { cues } = this.chapters;
196
+ const activeCueIndex = getCurrentCueIndex(this.chapters);
197
+
198
+ if (activeCueIndex < cues.length - 1) {
199
+ this.video.currentTime = cues[activeCueIndex + 1].startTime + 0.01;
200
+ this.updateChapterState();
201
+ }
202
+ };
203
+
204
+ previousChapter = () => {
205
+ const { cues } = this.chapters;
206
+ const activeCueIndex = getCurrentCueIndex(this.chapters);
207
+
208
+ if (activeCueIndex > 0) {
209
+ this.video.currentTime = Math.max(0, cues[activeCueIndex - 1].startTime + 0.01);
210
+ this.updateChapterState();
211
+ }
212
+ }
213
+ }