Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (2024)

Galaxy Z Fold6

  • SPECIFICATIES
  • REVIEWS

Koop nu

  • Functies
  • FAQ
  • Accessoires
  • SPECIFICATIES
  • REVIEWS
Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (1)

Koop nu Reserveer nu Koop nu Waar te koop

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (2)

Galaxy AI is here

De kracht van een PC maar dan in zakformaat: maak kennis met de Galaxy Z Fold6. Krachtiger dan ooit met het superdunne, productieve scherm. De mogelijkheden zijn eindeloos met Galaxy AI op onze foldables.

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (3)

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (4)

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (5)

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (6)

Ultralicht, dun design

Ga naar Design

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (7)

We zien de Galaxy Z Fold6 in de kleur Silver Shadow vanuit een schuine hoek. Het apparaat wordt platter en hij klapt open. Het platform van de cameralenzen aan de achterkant wordt weergegeven.

Circle it. Search it. Boost Productivity

Ga naar Circle to Search

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (8)

De S Pen wordt gebruikt om een galette op een menu te omcirkelen. De zoekresultaten voor deze wafel worden weergegeven. Circle to Search met Google.

Note Assist vereenvoudigt je workflow

Ga naar Note Assist

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (9)

Na het laden van een geluidsbestand in de Samsung Notes-app wordt de Speech-to-Text-knop gebruikt om het geluidsbestand te converteren naar tekst. De knop Summary wordt ingedrukt om een samenvatting te maken.

Krachtige, meeslepende game-ervaring

Ga naar Prestaties

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (10)

Een chipset met de specificaties CPU, NPU en GPU lichten op. De chipset springt eruit en een game begint op een opengeklapt scherm. Het Dark and Darker Mobile logo en een scène uit de game worden getoond.

DE LICHTSTE

253 239 g

DE DUNSTE 6.1 5,6 mm

KLAP HEM OPEN. DIT IS PERFECTIE

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (11)

We zien een close-up van een Galaxy Z Fold6 vanuit een lichte hoek zodat we de zijkanten kunnen zien.

DE LICHTSTE

253 g

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (12)

DE PLATSTE 6,1 mm

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (13)

KLAP HEM OPEN. DIT IS PERFECTIE

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (14)

Dunner en lichter in een handig zakformaat en met een nog helderder uitklapbaar scherm.

Kleurrijk. Overtuigend. Prachtig

Kleuren die bij je karakter passen. Wees zelfverzekerd en niet bang om op te vallen met de Online Exclusive kleuren, alleen verkrijgbaar op samsung.com & Samsung Shop App.

3d 360 viewer Exclusief verkrijgbaar opsamsung.com& Samsung Shop App

Silver Shadow Pink Navy Crafted Black Exclusief verkrijgbaar opsamsung.com& Samsung Shop App White Exclusief verkrijgbaar opsamsung.com& Samsung Shop App

Standaard hoekinstelling

Silver Shadow Pink Navy Crafted Black Exclusief verkrijgbaar opsamsung.com& Samsung Shop App White Exclusief verkrijgbaar opsamsung.com& Samsung Shop App

Standaard hoekinstelling

Galaxy AI* is here op Galaxy Foldables

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (20)

Galaxy AI Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (21) Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (22)

is here op Galaxy Foldables is here op Galaxy Foldables

CIRCLE TO SEARCH

Circle to search op het grote scherm

Dit is pas echt efficiënt zoeken op je smartphone: maak gewoon een cirkel. Verhoog je productiviteit op het grote uitklapbare scherm en gebruik je vinger of de S Pen.

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (23)

We zien het menu van een restaurant. De S Pen wordt gebruikt om tekst op de kaart te omcirkelen: Galette. De zoekresultaten van Google worden weergegeven in een pop-up van Circle to Search met Google.

Tik om te proberen

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (24)

We zien de volledige weergave van de opengeklapte Galaxy Z Fold6. Als er op de Home-knop geklikt wordt, wordt Circle to Search geactiveerd.

Tik om te proberen

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (25)

Er wordt een cirkel getrokken om de galette. De galette wordt herkend en de zoekresultaten van Google worden weergegeven.

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (26)

NOTE ASSIST

De eenvoudigste manier om notities samen te vatten op Galaxy foldables

Met een paar keer tikken maak je aantekeningen van colleges, zelfs als je aan het multitasken bent. Note Assist zet je opnames om in tekst en verwerkt die tot aantekeningen zodat je efficiënte samenvattingen krijgt. Voor alle andere dingen is er de S Pen, waarmee je wonderen kunt verrichten als je veegt op het scherm.

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (27)

Er wordt op de spraakopnameknop getikt in de Samsung Notes-app. Met één druk op de Summary-knop wordt de transcriptie samengevat.

Tik om te proberen

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (28)

De geluidsopname wordt omgezet in tekst als de speech-to-text-knop wordt ingedrukt.

Tik om te proberen

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (29)

Tik op de knop Summary om de Samsung Notes-app een samenvatting van de geluidsopname te laten maken.

S Pen Fold Edition

Ontdek meer

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (30)

Chat Assist

Wil je snel even iets noteren? Typ een paar steekwoorden voor optimale productiviteit.

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (31)

Browsing Assist

Wil je snel weten wat er op een website staat? Maak een snelle samenvatting met AI.

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (32)

PHOTO ASSIST

Moeiteloos bewerken met Galaxy AI

Bewerk je foto's naar hartenlust. Met Photo Assist hoef je alleen je vinger maar op een object te houden om dit te verplaatsen, verwijderen of vergroten. Maar ook hoeken aanpassen of achtergronden opvullen heb je zo gedaan.

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (33)

Een van de onderwerpen wordt geselecteerd en verplaatst naar een andere plek in de foto. Daarna worden de ontbrekende gedeeltes opgevuld met AI.

Portrait Studio

Laat je fantasie prikkelen door AI met Portrait Studio. Zelfportretten veranderen in schitterende kunstwerken in een handomdraai.

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (34)

Instant Slow-mo

Met Instant Slow-mo kun je je op de belangrijkste momenten focussen door selectief gebruik te maken van slow motion in een video. Daarna kun je het fragment delen of opslaan.

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (35)

De video speelt af. Er wordt getikt op het scherm en het beeld vertraagt om Instant Slow-mo te laten zien.

Sketch to Image

Teken op een blanco vel of op een foto. Gebruik AI om je schets om te toveren in een afbeelding.

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (36)

INTERPRETER

Jouw ultieme vertaler met dubbele schermen,

Ben je op reis en wil je met de locals praten? Interpreter vertaalt ter plekke, of je nu zelf aan het woord bent, een internationale conferentie in een vreemde taal bijwoont of naar de gids luistert.

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (37)

We zien een gesprek dat in real time in twee talen wordt getranscribeerd en vertaald.

Tik om te proberen

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (38)

Galaxy AI transcribeert gesprekken in real time. De vertalingen worden onderaan het scherm weergegeven.

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (39)

De dual screen-knop activeert de Interpreter-app op het coverscherm.

LIVE TRANSLATE

Grenzeloze telefoongesprekken

Vertaal telefoongesprekken in real time. Perfect voor de vertaling van gesprekken in meerdere apps, vooral als deze in twee talen gevoerd worden.

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (40)

LAAT JE MEESLEPEN

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (41)

Het logo van Dark and Darker Mobile. We zien een close-up van een gamescène en daarna van verder weg totdat we het scherm van een opengeklapte Galaxy Z Fold6 zien met de game die wordt gespeeld.

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (42)

*DARK AND DARKER MOBILE IS EEN HANDELSMERK OF DIENSTMERK VAN KRAFTON, INC.

Gamen op een Samsung-smartphone was nog nooit zo meeslepend

Klap de gamekrachtpatser open en laat je verrassen door het supergrote scherm. Dankzij Vision Booster profiteer je nu van een nog helderdere en scherpere beeldkwaliteit, zelfs in fel daglicht.,

  • 2600 nits

  • 1,5x helderder

Krachtig gamen met de snelste processor tot nu toe op Galaxy foldables

Ervaar supersnel gamen met Vulkan, zelfs in AAA games. Laat het renderen van de graphics maar aan Snapdragon® 8 Gen 3 voor Galaxy over.

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (43)

De snelste Snapdragon op een Galaxy Z Fold tot nu toe,

  • GPU

    19 % snellere rendering van graphics

  • NPU

    42 % verbeterde AI-prestaties op het apparaat

  • CPU

    18 % snellere prestaties

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (44)

De snelste Snapdragon op een Galaxy Z Fold ooit,

Beter gamen Langer gamen

Onze batterij kan jou de hele dag bijbenen. De batterij is niet alleen gigantisch, maar ook het display wordt beter benut. Game on!

  • Muziek luisteren

    Tot 77 uur

  • Video's kijken

    Tot 23 uur

Word een pro met ProVisual Engine

Maak kennis met het krachtigste camerasysteem op een Fold tot nu toe. Tel daar nog de geüpgradede NPU, indrukwekkende specificaties en ProVisual Engine bij op en je multimedia-ervaring is compleet.

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (45)

camera voorkant

  • 10 MP Cover Camera

  • 4 MP Under Display Camera

camera achter

  • 12 MP Ultra Wide Camera

  • 50 MP Wide-angle Camera 2x Optical Quality Zoom

  • 10 MP 3x Optical Zoom Telephoto Camera

Extreem krachtig

Met onze high-resolution, 50MP camera, komt elk detail tot leven met indrukwekkende helderheid en levendigheid.

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (46)

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (47)

Vastgelegd met de Galaxy Z Fold6 #withGalaxy

Crystal-clear zoom. Op basis van AI

Zoom extreem in zonder concessies te doen aan de resolutie en helderheid dankzij ProVisual Engine. De scherpe analyse van het ingezoomde gebied zorgt voor een verbluffend beeld.

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (48)

We zien een foto die van 1,0x naar 1,9x inzoomt. Zelfs ingezoomd, blijven de details duidelijk zichtbaar.

Vastgelegd met de Galaxy Z Fold6 #withGalaxy

Zoom Map

Gebruik de Zoom Map om een idee te krijgen van je omgeving wanneer je inzoomt. Navigeren is een eitje.

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (49)

Vastgelegd met de Galaxy Z Fold6 #withGalaxy

Creëer meer helderheid met Super HDR

De details doen ertoe! Super HDR benadrukt de details en laat ze opvallen, nog voordat je de foto maakt.

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (50)

Vastgelegd met de Galaxy Z Fold6 #withGalaxy

Waarom overstappen naar de Galaxy?

  • Eenvoudig overstappen van iOS

    Overstappen van iOS is zo eenvoudig! Dankzij Smart Switch kun je je foto's, video's, contacten en apps moeiteloos overzetten.,,

    Ontdek meer

    Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (51)

  • Moeiteloos delen

    Deel bestanden, gegevens en content met andere apparaten, zoals iOS en PC's. Een snelle en veilige manier om openlijk te delen.

    Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (52)

  • Jouw privacy gegarandeerd

    Kijk onder Privacy en veiligheid om te zien welke apps toegang hebben tot je informatie en pas je instellingen aan. En met Advanced Intelligence kun je gegevens voor AI-diensten van je Galaxy-apparaat of in de cloud verwerken.

    Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (53)

Stevig. Betrouwbaar. Bestendig

  • Stevig ontwerp

    Maak kennis met onze dunne en innovatieve FlexHinge.

    Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (54)

  • Gehuld in aluminium

    Dankzij het verbeterde Armor Aluminium ben je nog beter beschermd.,

    Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (55)

  • Supersterk

    Stevige bescherming met Corning® Gorilla® Glass Victus® 2.

    Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (56)

  • Waterbestendig

    IP48-waterbestendigheid voor onverwachte ongelukjes.

    Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (57)

Samsung Care+

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (58)

Gecertificeerde bescherming van Samsung-experts.

Ontdek meer

Try Galaxy op je telefoon

Heb je al kennisgemaakt met het nieuwste Galaxy-apparaat tot nu toe? Probeer het nu, op je telefoon! Scan de QR-code en download om te beginnen.

Ga naar trygalaxy.com

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (59)

De Fold helpt je op weg naar een fittere levensstijl

Begin aan je volgende avontuur met de Galaxy Buds3 Pro en bepaal je Energy Score met de geheel nieuwe Galaxy Watch Ultra of Galaxy Watch7.,

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (60)

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (61)

Samsung Health

Ontdek meer

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (62)

Accessoires

Ontdek meer

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (63)

Veelgestelde vragen

Galaxy Z Flip6

Ontdek meer

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (64)

Ontdek slimme manieren om jouw Galaxy Z Fold6 te kunnen bemachtigen

Koop nu Reserveer nu Koop nu Where to buy

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (65)

Bekijk de Galaxy Z Fold6 in AR Openen in AR

Life opens up with Galaxy

Ontdek meer

Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (69)

3d 360 viewer Exclusief verkrijgbaar opsamsung.com& Samsung Shop App

Silver Shadow Pink Navy Crafted Black Exclusief verkrijgbaar opsamsung.com& Samsung Shop App White Exclusief verkrijgbaar opsamsung.com& Samsung Shop App

Standaard hoekinstelling

Unfold a new era of business

Ga naar Samsung Business

*De hier vermelde specificaties en beschrijvingen kunnen verschillen van de werkelijke productspecificaties en beschrijvingen. Samsung behoudt zich het recht voor dit document en het product te allen tijde te wijzigen, zonder voorafgaande aankondiging. Alle functies, features, specificaties, GUI en andere productinformatie in dit document wat betreft de voordelen, het design, de prijs, de onderdelen, prestaties, beschikbaarheid en functies van het product kunnen worden gewijzigd zonder voorafgaande waarschuwing. De afbeeldingen op de schermen zijn gesimuleerde beelden en louter illustratief.

*Inloggen op je Samsung-account kan vereist zijn voor het gebruik van bepaalde Samsung Galaxy AI-functies. Samsung doet geen beloftes, toezeggingen of garanties ten aanzien van de nauwkeurigheid, compleetheid of betrouwbaarheid van de output van Galaxy AI-functies. Het gebruik van Galaxy AI-functies kan extra kosten met zich mee brengen.

  1. Scènes zijn ingekort en gesimuleerd. Resultaten dienen uitsluitend voor illustratieve doeleinden. De beschikbaarheid van de functie kan verschillen per land, taal en model. Internetverbinding vereist. Gebruikers moeten Android en de Google-app mogelijk updaten naar de nieuwste versie. Werkt op compatibele apps en oppervlakken. Resultaten kunnen verschillen afhankelijk van visuele overeenkomsten. De nauwkeurigheid van resultaten wordt niet gegarandeerd.
  2. Voor het gebruik van de samenvattingsfunctie in Note Assist is een internetverbinding vereist en moet je zijn ingelogd op je Samsung-account. Beschikbaarheid van de service kan per taal verschillen. De samenvattingsfunctie voor Note Assist kan worden geactiveerd vanaf een bepaald aantal karakters en het aantal karakters moet binnen de limiet vallen. De spraakopnamefunctie voor Note Assist wordt in sommige landen mogelijk niet ondersteund. Audiobestanden mogen niet langer zijn dan 3 uur om te kunnen worden verwerkt. De nauwkeurigheid van resultaten wordt niet gegarandeerd.
  3. In vergelijking met eerdere Galaxy Z Fold-modellen.
  4. Dikte gemeten van het boven- naar het onderscherm in opengeklapte stand.
  5. De Galaxy Z Fold6 heeft geen geïntegreerde sleuf voor de S Pen. De S Pen is apart verkrijgbaar. Gebruik alleen de S Pen die speciaal ontworpen is voor de Galaxy Z Fold. De S Pen Fold Edition is compatibel met de Galaxy Z Fold5 en Z Fold6. Alle andere S pennen en styluspennen kunnen het scherm beschadigen. De S Pen wordt alleen ondersteund op het hoofdscherm.
  6. Voor het gebruik van Composer in Chat Assist is een netwerkverbinding vereist en dien je ingelogd te zijn op je Samsung-account. Deze functie kan vanaf een bepaald aantal karakters worden geactiveerd. De beschikbaarheid van diensten kan variëren per taal. De nauwkeurigheid van resultaten wordt niet gegarandeerd.
  7. Voor het gebruik van Summary in Browsing Assist is een netwerkverbinding vereist en dien je ingelogd te zijn op je Samsung-account. Er geldt een karakterlimiet. De beschikbaarheid van diensten kan variëren per taal. De werking van de dienst kan beperkt zijn of de dienst kan niet beschikbaar zijn op bepaalde betaalde websites. De nauwkeurigheid van resultaten wordt niet gegarandeerd.
  8. Voor het gebruik van Generative Edit in Photo Assist is een internetverbinding vereist en moet je zijn ingelogd op je Samsung-account. Als je een foto bewerkt met Generative Edit, krijg je een foto in aangepast formaat tot 12 MP. Er wordt een zichtbaar watermerk over de afbeelding geplaatst om aan te geven dat de afbeelding door AI is gegenereerd. De nauwkeurigheid en betrouwbaarheid van de geleverde output zijn niet gegarandeerd.
  9. Voor het gebruik van Portrait Studio in Photo Assist is een internetverbinding vereist en moet je zijn ingelogd op je Samsung-account. Als je een foto bewerkt met Portrait Studio, krijg je een foto in aangepast formaat tot 9 MP. Er wordt een zichtbaar watermerk over de afbeelding geplaatst om aan te geven dat de afbeelding door AI is gegenereerd. De nauwkeurigheid en betrouwbaarheid van de geleverde output zijn niet gegarandeerd.
  10. Instant Slow-mo voor Photo Assist is beschikbaar op Samsung Video Player en Samsung Gallery. Mogelijk niet beschikbaar voor bepaalde videobestandsformaten. De nauwkeurigheid van resultaten wordt niet gegarandeerd.
  11. Voor het gebruik van Sketch to Image is een netwerkverbinding vereist en dien je ingelogd te zijn op je Samsung-account. Als je een foto bewerkt met Sketch to Image, krijg je een foto in aangepast formaat tot 12 MP. Er wordt een zichtbaar watermerk over de afbeelding geplaatst om aan te geven dat de afbeelding door AI is gegenereerd. De nauwkeurigheid en betrouwbaarheid van de geleverde output zijn niet gegarandeerd.
  12. Voor het gebruik van Interpreter dien je ingelogd te zijn op je Samsung-account. Voor bepaalde talen is het downloaden van een taalpakket vereist. De nauwkeurigheid van resultaten wordt niet gegarandeerd. De beschikbaarheid en ondersteunde functies kunnen verschillen per land, regio of provider. Ondersteunde talen kunnen variëren.
  13. Het gebruik van dubbele schermen is alleen beschikbaar in de Gespreksmodus.
  14. Voor het gebruik van Live Translate is een internetverbinding vereist om gespreksberichten te ontvangen. De functie kan zonder internetverbinding vertalen zodra de gespreksberichten door het apparaat zijn ontvangen. Live Translate is alleen beschikbaar op vooraf geïnstalleerde Samsung Phone-apps en op een aantal apps van derden. De beschikbaarheid van diensten kan variëren per taal of regio. Voor bepaalde talen is het downloaden van een taalpakket vereist. De nauwkeurigheid van resultaten wordt niet gegarandeerd.
  15. Beperkt tot Samsung smartphones.
  16. De Galaxy Z Fold6 heeft een piekhelderheid van 2600 nits op het hoofdscherm en het coverscherm. De schermen zijn adaptief en passen het helderheidsniveau automatisch aan op basis van de omgeving. In een omgeving van 5000 lux of hoger worden de High Brightness Mode en Vision Booster geactiveerd.
  17. Vergeleken met de Galaxy Z Fold5.
  18. Producten van het merk Snapdragon zijn producten van Qualcomm Technologies, Inc. en/of haar dochterondernemingen.
  19. De weergegeven AP-prestatieverbeteringen zijn vergeleken met de Galaxy Z Fold5. De daadwerkelijke prestaties hangen af van de gebruikersomgeving, omstandigheden en vooraf geïnstalleerde software en applicaties.
  20. Beperkt tot Galaxy foldables.
  21. De werkelijke batterijduur is afhankelijk van netwerkomgeving, gebruikte functies en apps, aantal gesprekken en berichten, aantal keren opladen en veel andere factoren. Geschat op basis van het gebruiksprofiel van een gemiddelde/typische gebruiker zoals vastgesteld en onafhankelijk getest door UX Connect Research met de standaardinstellingen van LTE en 5G Sub-6 netwerken.
  22. Gebaseerd op testomstandigheden in het interne laboratorium van Samsung met de pre-releaseversies van een bepaald model, verbonden met een koptelefoon via Bluetooth en standaardinstellingen via LTE. Geschat op basis van de batterijcapaciteit en de gemeten stroom bij het batterijverbruik tijdens het afspelen van video's (respectievelijk videoresolutie van 720p, opgeslagen op het toestel) en audio (mp3-bestand, 192 kbps, opgeslagen op het toestel met LCD-scherm uitgeschakeld). De daadwerkelijke afspeelduur van video en audio varieert afhankelijk van de netwerkverbinding, instellingen, bestandsformaat, schermhelderheid, batterijconditie en vele andere factoren.
  23. AI Zoom wordt toegepast op afstanden tussen digitale zoomafstanden. De nauwkeurigheid van resultaten is niet gegarandeerd.
  24. De Zoom Map-functie wordt geactiveerd vanaf 20x zoom en hoger.
  25. Voor bekabelde overdrachten van Android™-apparaten geldt dat zowel het versturende apparaat als het ontvangende apparaat voorzien moeten zijn van Android™ 4.3 of hoger. Overdrachten kunnen worden voltooid zonder kabel via een draadloze verbinding. Voor draadloze verbindingen geldt dat zowel het versturende apparaat als het ontvangende apparaat voorzien moeten zijn van Android™ 4.0 of hoger. Open Smart Switch Mobile in Instellingen op het ontvangende Galaxy-apparaat of download de Smart Switch mobiele app in de Galaxy Store. De gegevens, content en apps die kunnen worden overgedragen, kunnen verschillen per overdrachtsmethode.
  26. Voor bekabelde overdrachten van iOS-apparaten geldt dat zowel het ontvangende apparaat voorzien moeten zijn van Android™ 4.3 of hoger en het versturende apparaat van iOS 5 of hoger. Overdrachten kunnen worden voltooid zonder kabel via een draadloze verbinding of iCloud. Voor draadloze verbindingen geldt dat het ontvangende apparaat voorzien moeten zijn van Android™ 4.0 of hoger en het versturende apparaat van iOS 12 of hoger. Voor iCloud-overdrachten geldt dat het ontvangende apparaat voorzien moet zijn van Android™ 4.0 of hoger en het versturende apparaat van iOS 5 of hoger. Open Smart Switch Mobile in Instellingen op het ontvangende Galaxy-apparaat of download de Smart Switch mobiele app in de Galaxy Store. Voor draadloze overdrachten kun je Smart Switch voor iOS downloaden in de App Store op je iPhone of iPad. De gegevens en content die kunnen worden overgedragen, kunnen verschillen per overdrachtsmethode. Contactpersonen, de galerij, video's, agenda's en herinneringen kunnen draadloos worden overgezet van een iOS-apparaat.
  27. We raden aan om een bekabelde verbinding te gebruiken als je meerdere sets gegevens tegelijk overzet.
  28. De Quick Share-functie tussen Galaxy-apparaten is beschikbaar op de volgende besturingssystemen: smartphones en tablets met Android OS-versie 10.0 (Q) en One UI 2.1 of hoger en PC's met Windows 10 of hoger. Voor het gebruik van de functie zijn een Samsung-account en een Wi-Fi- en Bluetooth-verbinding vereist. Quick Share naar iOS- en Android-apparaten kan worden gebruikt door de gedeelde link te versturen: afzonderlijke bestanden mogen niet groter zijn dan 5 GB (met een totaal van 5 GB per dag) en de link verloopt na twee dagen. Een Samsung-account en een netwerkverbinding zijn vereist.
  29. In vergelijking met vorige modellen.
  30. De volume- en zijknoppen en de SIM-kaarthouder behoren niet tot het Armor Aluminum Frame.
  31. De voor- en achterkant van het apparaat is voorzien van Corning® Gorilla® Glass Victus® 2.
  32. Het toestel is in het lab getest door het gedurende 30 minuten tot 1,5 meter diep onder te dompelen in zoet water en voor bescherming tegen een solide object groter dan 1 mm, zoals een draad. Gebruik op het strand of in het zwembad niet aanbevolen. De waterbestendigheid van het toestel is niet permanent en kan met de tijd verminderen. Niet stof- en zandbestendig.
  33. Samsung Care+ dekking, type dienstverlening en promotiedetails kunnen verschillen per land/regio en er kunnen servicekosten van toepassing zijn. Om in aanmerking te komen voor Samsung Care+ is registratie vereist. Voor meer informatie over Samsung Care+ kun je kijken op https://www.samsung.com/samsung-care-plus/.
  34. De Galaxy Buds3 Pro, Galaxy Watch Ultra en Galaxy Watch7 zijn apart verkrijgbaar.
  35. Energy Score is beschikbaar op Android-telefoons (Android 11 of hoger) en vereist de Samsung Health-app (v6.27 of hoger). Inloggen op een Samsung-account is vereist. De beschikbaarheid kan variëren per land of regio. Om de Energy Score te checken, moeten de welzijnsgegevens die met de Samsung Galaxy Watch zijn bijgehouden, worden gesynchroniseerd met de Samsung Health-app. De activiteits-, slaap- en hartslaggegevens van de vorige dag zijn minimaal vereist. Niet bedoeld voor het gebruik bij de opsporing, diagnosticering en behandeling van medische aandoeningen of ziektes. Het resultaat dient alleen als persoonlijke informatie. Neem contact op met een medische professional voor advies.
  36. De diagonaal gemeten afmeting van het hoofdscherm van de Galaxy Z Fold6 is 7,6” als een volledige rechthoek en 7,6'' als je rekening houdt met de afgeronde hoeken. Het eigenlijke weergavegebied is kleiner, vanwege de afgeronde hoeken.
  37. Het scherm van de Galaxy Z Fold6 is diagonaal gemeten als volledige rechthoek 6,3'' en 6,2'' rekening houdend met de afgeronde hoeken; het eigenlijke weergavegebied is kleiner, omwille van de afgeronde hoeken en de camera-uitsparing.
  38. De beschikbaarheid van de Air Command-functies kunnen verschillen per model of app.
  39. Gemiddelde waarde zoals getest onder laboratoriumomstandigheden door een externe partij. De gemiddelde waarde is het geschatte rekenkundig gemiddelde, rekening houdend met de verschillen in batterijcapaciteit van de batterijsamples die zijn getest onder de IEC 61960-standaard. De opgegeven (minimum)capaciteit is 4273 mAh voor de Galaxy Z Fold6. De daadwerkelijke levensduur van de batterij kan verschillen afhankelijk van netwerkomgeving, gebruik en andere factoren.
  40. Expert RAW dient voor gebruik kosteloos te worden gedownload in de Galaxy Store. Ondersteund op apparaten uit de S24- en S23-serie, toestellen uit de S22-serie, S21 Ultra, S20 Ultra, Note20 Ultra, Z Fold6, Z Flip6, Z Fold5, Z Fold4, Z Fold3 en Z Fold2.

" ) ); } } }; const isZoom = function () { let zoomLevel = 100 / ((window.innerWidth / window.outerWidth) * 100); if (zoomLevel > 1.7) { document.documentElement.classList.add("browser-zoomed-175"); } else { document.documentElement.classList.remove("browser-zoomed-175"); } if (zoomLevel > 3) { document.documentElement.classList.add("browser-zoomed-300"); } else { document.documentElement.classList.remove("browser-zoomed-300"); } if (zoomLevel > 4) { document.documentElement.classList.add("browser-zoomed-400"); } else { document.documentElement.classList.remove("browser-zoomed-400"); } }; const getViewerUrl = function () { let defaultParams = "", viewerSection = document.querySelector(".js-colors-viewer"), viewerButton = document.querySelector(".viewer-btn"), viewerModel = utils.isLowNetwork() ? viewerButton.getAttribute("data-model-name") : viewerSection.getAttribute("data-model-name"), viewerColor = utils.isLowNetwork() ? viewerButton.getAttribute("data-model-color") : viewerSection.getAttribute("data-model-color"), viewerUrl = "//www.samsung.com/global/galaxy/3d-360/viewer/?"; defaultParams = "&gesture_guide=0"; defaultParams += "&bgcolor=transparent"; defaultParams += "&skin=colorlayer"; defaultParams += "&theme=roundlayer"; defaultParams += "&auto_rotation=0"; defaultParams += "&intro=1"; defaultParams += "&ruler=1"; defaultParams += "&breakpoint_criteria=outer"; defaultParams += "&breakpoint_desktop_width=1024"; defaultParams += "&x=180"; defaultParams += "&status_toggle=1"; defaultParams += "&intro_pose=3"; defaultParams += "&intro_pose_hold=1"; defaultParams += "&intro_pose_hold_limit=9999999"; defaultParams += "&controls=0"; defaultParams += "&use_zoom=0"; defaultParams += "&use_pan=0"; defaultParams += "&screen_mode=on"; // model_name viewerUrl += "model_name=" + viewerModel; if ( document.documentElement.classList.contains("color_yb") || (utils.getCookie("highContrastMode") != null && utils.getCookie("highContrastMode") == 1) ) { viewerUrl += "&highcontrast=1"; } else { viewerUrl += "&highcontrast=0"; } // RTL utils.isRTL() && (viewerUrl += "&rtl=1"); viewerUrl += defaultParams; viewerUrl += "#color=" + (viewerColor ? viewerColor : "null"); return viewerUrl; }; return { addLoadStatusClass: addLoadStatusClass, setResolution: setResolution, clickSup: clickSup, centeredFocus: centeredFocus, setArBanner: setArBanner, isZoom: isZoom, getViewerUrl: getViewerUrl, }; })(); flagship.features.setting = (function () { const resize = window.flagship.common.resize, common = window.flagship.features.common, utils = window.flagship.common.utils, agent = navigator.userAgent.toLowerCase(), maxOs = agent.indexOf("mac os") > -1, touchDevice = "ontouchstart" in window || (window.DocumentTouch && document instanceof window.DocumentTouch), isGlobal = document.documentElement.classList.contains("global"); let els = {}; const init = function () { common.addLoadStatusClass(); common.setArBanner(); setElements(); bindEvents(); setResize(); if (!maxOs && !touchDevice) { setScrollControl(); } setImageLoader(); setVideoLoader(); setMp4VideoLoader(); setCenteredfocus(); setDisclaimerNumber(); setDisclaimer(); setVideoTheme(); setVideoBlind(); common.isZoom(); resize.add(common.isZoom); }; const setElements = function () { // video els.videoWrap = document.querySelectorAll(".js-video-wrap"); }; const bindEvents = function () { window.addEventListener("load", anchorPosition); window.addEventListener("hashchange", anchorPosition); }; const anchorPosition = function () { if (window.location.hash != "") { let hash = location.hash.split("#")[1], hashSection = document.querySelector("#contents #" + hash), hashTimeout = null; clearTimeout(hashTimeout); hashTimeout = setTimeout(function () { let sectionTop = hashSection.getBoundingClientRect().top, navHeight = utils.getNavHeight(), hashScroll = window.pageYOffset + sectionTop - navHeight; window.scrollTo(0, hashScroll); }, 300); } }; const setResize = function () { resize.init( [ { resolution: 1920, resolutionName: "desktop", eventFunction: "", }, { resolution: 1023, resolutionName: "tablet", eventFunction: "", }, { resolution: 767, resolutionName: "mobile", eventFunction: "", }, { resolution: 320, resolutionName: "mobileS", eventFunction: "", }, ], 200 ); resize.add(common.setResolution); }; const setScrollControl = function () { window.scrollController = utils.scrollController(); scrollController.init({ speed: 120, duration: 0.6, }); }; const setImageLoader = function () { window.imageLoader = utils.mediaLoader({ lazyClass: ".js-img-src", responsiveClass: ".js-res-img", preset: isGlobal ? "" : "?imbypass=true", loadOption: [ { resolution: 1920, attribute: "data-src-pc", }, { resolution: 1023, attribute: "data-src-tb", }, { resolution: 767, attribute: "data-src-mo", }, { resolution: 360, attribute: "data-src-mo-s", }, ], visiblePoint: 2, }); window.bgLoader = utils.mediaLoader({ type: "bgImage", lazyClass: ".js-bg-img", loadOption: [ { resolution: 1920, attribute: "", bgOpts: "", }, ], visiblePoint: 2, }); }; const setVideoLoader = function () { window.videoLoader = utils.mediaLoader({ type: "video", lazyClass: ".js-video-src", responsiveClass: ".js-res-video", preset: isGlobal ? "" : "?imbypass=true", loadOption: [ { resolution: 1920, attribute: "data-video-src-pc", }, { resolution: 1023, attribute: "data-video-src-tb", }, { resolution: 767, attribute: "data-video-src-mo", }, { resolution: 360, attribute: "data-video-src-mo-s", }, ], visiblePoint: 1, endCallback: function (video) { if ( !!video.videoHandler && !video.videoHandler.wrap.classList.contains("is-loaded") ) { video.videoHandler.wrap.classList.add("is-loaded"); } }, }); }; const setMp4VideoLoader = function () { window.mp4VideoLoader = utils.mediaLoader({ type: "mp4Video", lazyClass: ".js-mp4-video-src", responsiveClass: ".js-res-video", preset: isGlobal ? "" : "?imbypass=true", loadOption: [ { resolution: 1920, attribute: "data-video-src-pc", }, { resolution: 1023, attribute: "data-video-src-tb", }, { resolution: 767, attribute: "data-video-src-mo", }, { resolution: 360, attribute: "data-video-src-mo-s", }, ], visiblePoint: 1, endCallback: function (video) { if ( !!video.videoHandler && !video.videoHandler.wrap.classList.contains("is-loaded") ) { video.videoHandler.wrap.classList.add("is-loaded"); } }, }); }; const setCenteredfocus = function () { els.contents = document.querySelector("#contents"); els.allClickables = els.contents.querySelectorAll( "a, button, input, select" ); for (let i = 0; i < els.allClickables.length; i++) { els.allClickables[i].addEventListener( "focusin", common.centeredFocus ); } }; const setDisclaimerNumber = function () { const supTag = document.querySelectorAll(".click_sup"), btmDicl = document.querySelectorAll( "li.common-bottom-disclaimer__list-item" ); let btmDiclArr = []; for (let i = 0; i < btmDicl.length; i++) { let dataSup = btmDicl[i].getAttribute("data-sup"); btmDiclArr.push(dataSup); } for (let j = 0; j < supTag.length; j++) { let dataSupTag = supTag[j].getAttribute("data-sup-tag"); let supChildCount = supTag[j].parentElement.childElementCount; if (btmDiclArr.indexOf(dataSupTag) > -1) { supTag[j].innerText = btmDiclArr.indexOf(dataSupTag) + 1; } else { if (supChildCount == 1) { supTag[j].parentElement.remove(); } else { let supParent = supTag[j].parentElement.childNodes; let supArr = []; for (let supIndex = 0; supIndex < supParent.length; supIndex++) { supArr.push(supParent[supIndex]); } let index = supArr.indexOf(supTag[j]); if (index != 0 && index % 2 == 0) { supParent[index].remove(); supParent[index - 1].remove(); } else { if (index != supArr.length) supParent[index + 1].remove(); supParent[index].remove(); } } } } }; const setDisclaimer = function () { els.supClicker = document.querySelectorAll("a.click_sup"); for (let i = 0; i < els.supClicker.length; i++) { els.supClicker[i].addEventListener("click", common.clickSup); } }; const setVideoTheme = function () { for (let i = 0; i < els.videoWrap.length; i++) { let colorType = els.videoWrap[i].getAttribute("data-theme-type"); if (colorType === "white") { els.videoWrap[i].classList.add("common-video--white"); } else if (colorType === "black") { els.videoWrap[i].classList.add("common-video--black"); } } }; const setVideoBlind = function () { for (let i = 0; i < els.videoWrap.length; i++) { let controlBlind = els.videoWrap[i].querySelector( ".js-video-control .blind" ); controlBlind.innerHTML = typeof LOCAL_VARI != "undefined" && !!LOCAL_VARI ? LOCAL_VARI.play : "play"; } }; return { init: init, }; })(); flagship.features.setting.init();(function () { window.flagship.features.clickToVideo = (function () { const utils = window.flagship.common.utils; let els = { clickToVideosWrap: [], clickToVideo: [], }; const init = function () { els.clickToVideosWrap = document.querySelectorAll('.js-click-video'); if (els.clickToVideosWrap.length > 0) { setProperty(); bindEvents(); } }; const setProperty = function () { for (let i = 0; i < els.clickToVideosWrap.length; i++) { els.clickToVideosWrap[i].video = els.clickToVideosWrap[i].querySelector('video'); els.clickToVideosWrap[i].controller = els.clickToVideosWrap[i].querySelector('.js-video-control'); els.clickToVideosWrap[i].controller.video = els.clickToVideosWrap[i].video; } }; const bindEvents = function () { eventList.setVideo(); eventHandler.click(); }; const eventHandler = { click: function () { for (let i = 0; i < els.clickToVideosWrap.length; i++) { els.clickToVideosWrap[i].controller.addEventListener('click', eventList.clickVideoCta); } } }; const eventList = { setVideo: function () { for (let i = 0; i < els.clickToVideosWrap.length; i++) { els.clickToVideo[i] = utils.videoHandler({ wrap: els.clickToVideosWrap[i], video: els.clickToVideosWrap[i].video, controller: els.clickToVideosWrap[i].controller, resetCallback: function () { if (this.wrap.classList.contains('is-completed')) { this.wrap.classList.remove('is-completed'); } if (this.wrap.classList.contains('is-started')) { this.wrap.classList.remove('is-started'); } }, playCallback: function () { if (!this.wrap.classList.contains('is-started')) { this.wrap.classList.add('is-started'); } setTagging.pause(this.controller); }, pauseCallback: function () { setTagging.play(this.controller); }, endCallback: function () { if (!this.wrap.classList.contains('is-completed')) { this.wrap.classList.add('is-completed'); } } }); } }, clickVideoCta: function (e) { if (e.target == e.currentTarget) { if (e.currentTarget.video.paused) { e.currentTarget.video.play(); } else { e.currentTarget.video.pause(); } } } }; const setTagging = { play: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('pause', 'play')); } }, pause: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('play', 'pause')); } } }; return { init: init } })();})();(function () { window.flagship.features.headline = (function () { const utils = window.flagship.common.utils; let els = {}; const init = function () { setElements(); bindEvents(); }; const setElements = function() { els.moveText = document.querySelectorAll('.js-move-text'); }; const bindEvents = function () { eventList.setScene(); eventHandler.scroll(); eventList.scroll(); }; const eventHandler = { scroll: function () { window.addEventListener('scroll', eventList.scroll); } }; const eventList = { scroll: function () { for (let i = 0; i < els.moveText.length; i++) { els.moveText[i].sceneObj.trackAnimation(function () { if(this.progress >= 10) { els.moveText[i].classList.add('is-moved'); if (this.trackElement.classList.contains('common-description')) this.trackElement.style.transitionDelay = "0.2s"; } if(this.progress <= 0) { els.moveText[i].classList.remove('is-moved'); } }); } }, setScene: function () { for(let i = 0; i < els.moveText.length; i++) { els.moveText[i].sceneObj = SCROLLER({ trackElement: els.moveText[i], useFixed: false, }); } } }; return { init: init } })();})();(function () { window.flagship = window.flagship || {}; window.flagship.features = window.flagship.features || {}; window.flagship.features.oneColumnCarousel = (function () { const utils = window.flagship.common.utils; const resize = window.flagship.common.resize; let els = {}; let prevDevice; let currDevice = resize.checkResolution(); let dimmedClass = 'is-dimmed'; const isRtl = document.documentElement.classList.contains('rtl'); const init = function () { els.section = document.querySelectorAll('.js-one-column-carousel'); if (!!els.section) { setElements(); setProperty(); bindEvents(); } }; const setElements = function () { for (let i = 0; i < els.section.length; i++) { els.section[i].swiperContainer = els.section[i]; els.section[i].swiperSlides = els.section[i].swiperContainer.querySelectorAll('.swiper-slide'); els.section[i].prevArrow = els.section[i].parentElement.querySelector('.swiper-button-prev'); els.section[i].nextArrow = els.section[i].parentElement.querySelector('.swiper-button-next'); els.section[i].scrollbar = els.section[i].parentElement.querySelector('.swiper-scrollbar'); } }; const setProperty = function() { for (let i = 0; i < els.section.length; i++) { let isSlideLength = els.section[i].swiperSlides.length; for (let j = 0; j < isSlideLength; j++) { els.section[i].swiperSlides[j].video = els.section[i].swiperSlides[j].querySelector('.common-video__video'); } } } const bindEvents = function () { eventList.load(); resize.add(eventList.resize); }; const eventList = { load: function() { swiperEvents.set(); for (let i = 0; i < els.section.length; i++) { els.section[i].swiper.init(); if (els.section[i].swiperSlides.length >= 2) { els.section[i].swiper.init(); } } }, resize: function() { currDevice = resize.checkResolution(); if (prevDevice != currDevice) { eventList.responsive(); prevDevice = currDevice; }; }, responsive: function() { for (let i = 0; i < els.section.length; i++) { eventList.resetDimmedSlide(els.section[i].swiper); els.section[i].swiper.slideTo(0, false); if (eventList.getCarouselSizeInfo(els.section[i].swiper).viewLength > 0 && currDevice != 'mobile') eventList.initDimmedSlides(els.section[i].swiper); } }, setMedia: function(swiper, index) { let isIndex = index + 1 > swiper.slides.length -1 ? swiper.slides.length -1 : index + 1; let videoLength = swiper.el.querySelectorAll('video').length - 1; let imageLength = swiper.el.querySelectorAll('img').length - 1; let videoloadComplateLength = swiper.el.querySelectorAll('.is-video-load-complete').length - 1; let imageloadComplateLength = swiper.el.querySelectorAll('.is-img-load-complete').length - 1; let nextVideo = swiper.slides[isIndex].querySelector('video'); let nextImage = swiper.slides[isIndex].querySelector('img'); if (videoloadComplateLength != videoLength) { if (!!nextVideo) { videoLoader.setResponsiveMedia([nextVideo]); } } if (imageloadComplateLength != imageLength) { if (!!nextImage) { imageLoader.setResponsiveMedia([nextImage]); } } }, resetVideo: function(swiper) { for (let i = 0; i < swiper.slides.length; i++) { let isVideo = swiper.slides[i].video; if (!!isVideo && !isVideo.paused) { isVideo.pause(); isVideo.currentTime = 0; }; }; }, getCarouselSizeInfo: function(swiper) { let slideLength = swiper.slides.length; let slideWidth = swiper.slides[0].clientWidth; let slideMargin = parseInt(window.getComputedStyle(swiper.slides[0]).margin.split(' ')[isRtl ? 3 : 1]); let slideSize = slideWidth + slideMargin; let maxMoveSize = ((slideSize * slideLength) - slideMargin) - swiper.wrapperEl.clientWidth; let viewWidth = swiper.wrapperEl.clientWidth; let viewLength = parseInt((viewWidth + slideMargin)/slideSize); let lastBeforeSize = slideLength == 2 ? 0 : Math.abs((maxMoveSize - slideSize)) + Math.abs((viewWidth - slideWidth)); let isMoveSize = Math.abs(parseInt(window.getComputedStyle(swiper.wrapperEl).transform.split(',')[4])); return { slideWidth: slideWidth, slideMargin: slideMargin, slideSize: slideSize, maxMoveSize: maxMoveSize, viewWidth: viewWidth, viewLength: viewLength, lastBeforeSize: lastBeforeSize, isMoveSize: isMoveSize } }, initDimmedSlides: function(swiper) { for (let i = 0; i < swiper.slides.length; i++) { if ((swiper.activeIndex + eventList.getCarouselSizeInfo(swiper).viewLength) <= i) { swiper.slides[i].classList.add(dimmedClass); } } }, setDimmedSlide: function(swiper) { if (currDevice != 'mobile') { for (let i = 0; i < swiper.slides.length; i++) { let dimmedSlide = (swiper.activeIndex) > i || (swiper.activeIndex + (eventList.getCarouselSizeInfo(swiper).viewLength - 1)) < i; if (dimmedSlide) { swiper.slides[i].classList.add(dimmedClass); } else { swiper.slides[i].classList.remove(dimmedClass); } } } }, resetDimmedSlide: function(swiper) { for (let i = 0; i < swiper.slides.length; i++) { swiper.slides[i].classList.remove(dimmedClass); } }, } const swiperEvents = { set: function () { for (let i = 0; i < els.section.length; i++) { if (els.section[i].swiper == null) { new Swiper(els.section[i].swiperContainer, { init: false, slidesPerView: 'auto', navigation: { nextEl: els.section[i].nextArrow, prevEl: els.section[i].prevArrow, }, scrollbar: { el: els.section[i].scrollbar, draggable: true }, }); els.section[i].swiper.on('init', swiperEvents.init); els.section[i].swiper.on('slideChange', swiperEvents.slideChange); els.section[i].swiper.on('transitionEnd', swiperEvents.transitionEnd); } } }, init: function () { let isNextArrow = this.el.parentElement.querySelector('.swiper-button-next'); let isPrevArrow = this.el.parentElement.querySelector('.swiper-button-prev'); isNextArrow.removeAttribute('aria-label'); isNextArrow.removeAttribute('role'); isPrevArrow.removeAttribute('aria-label'); isPrevArrow.removeAttribute('role'); accessibility.slide(this); if (eventList.getCarouselSizeInfo(this).viewLength > 0 && currDevice != 'mobile') eventList.initDimmedSlides(this); }, slideChange: function () { accessibility.slide(this); eventList.resetVideo(this); if (eventList.getCarouselSizeInfo(this).viewLength > 0 && currDevice != 'mobile') eventList.setDimmedSlide(this); if (this.realIndex > 0) eventList.setMedia(this, this.realIndex); }, transitionEnd: function() { if (this.slides.length < 3 && currDevice == 'mobile') return; setTimeout(() => { let carouselInfo = eventList.getCarouselSizeInfo(this); let lastIndex = this.slides.length -1; let lastSlide = this.slides[lastIndex]; let lastBeforeSlide = this.slides[lastIndex - 1]; if (carouselInfo.isMoveSize > carouselInfo.lastBeforeSize || carouselInfo.maxMoveSize == carouselInfo.isMoveSize) { eventList.resetVideo(this); lastSlide.classList.add('is-last-slide'); lastBeforeSlide.classList.add('is-dimmed'); lastSlide.classList.remove('is-dimmed'); utils.offAccessibility(this.slides[lastIndex]); utils.onAccessibility(this.slides[lastIndex - 1]); } else if (lastSlide.classList.contains('is-last-slide') && carouselInfo.lastBeforeSize == carouselInfo.isMoveSize) { eventList.resetVideo(this); lastSlide.classList.add('is-dimmed'); lastSlide.classList.remove('is-last-slide'); lastBeforeSlide.classList.remove('is-dimmed'); utils.onAccessibility(this.slides[lastIndex]); utils.offAccessibility(this.slides[lastIndex - 1]); } }, 0); }, destroy: function (swiper) { if (swiper != null) { swiper.navigation.destroy(true); swiper.destroy(true); swiper = null; } }, }; const accessibility = { slide: function (swiper) { for (let i = 0; i < swiper.slides.length; i++) { if (i != swiper.activeIndex) { utils.onAccessibility(swiper.slides[i]); } else { utils.offAccessibility(swiper.slides[i]); } } } }; return { init: init, } })();})();(function () { window.flagship.features.scrollVideo = (function () { const utils = window.flagship.common.utils, resize = window.flagship.common.resize; let els = { scrollVideoWraps: [], scrollVideo: [], scene: [], }, currDevice = resize.checkResolution(); const init = function () { els.scrollVideoWraps = document.querySelectorAll('div:not(.js-interactive-intro-video)>.js-scroll-video'); if (els.scrollVideoWraps.length > 0) { setProperty(); eventList.setVideo(); eventList.setScene(); bindEvents(); } }; const setProperty = function () { for (let i = 0; i < els.scrollVideoWraps.length; i++) { els.scrollVideoWraps[i].video = els.scrollVideoWraps[i].querySelector('video'); els.scrollVideoWraps[i].controller = els.scrollVideoWraps[i].querySelector('.js-video-control'); els.scrollVideoWraps[i].controller.video = els.scrollVideoWraps[i].video; els.scrollVideoWraps[i].startPoint = !!els.scrollVideoWraps[i].getAttribute('data-start-point') ? parseInt(els.scrollVideoWraps[i].getAttribute('data-start-point')) : undefined; els.scrollVideoWraps[i].reversePoint = !!els.scrollVideoWraps[i].getAttribute('data-reverse-point') ? parseInt(els.scrollVideoWraps[i].getAttribute('data-reverse-point')) : undefined; els.scrollVideoWraps[i].moStartPoint = !!els.scrollVideoWraps[i].getAttribute('data-mo-start-point') ? parseInt(els.scrollVideoWraps[i].getAttribute('data-mo-start-point')) : undefined; els.scrollVideoWraps[i].moReversePoint = !!els.scrollVideoWraps[i].getAttribute('data-mo-reverse-point') ? parseInt(els.scrollVideoWraps[i].getAttribute('data-mo-reverse-point')) : undefined; } }; const bindEvents = function () { eventHandler.scroll(); eventList.scroll(); eventHandler.click(); resize.add(eventList.resize); }; const eventHandler = { scroll: function () { window.addEventListener('scroll', eventList.scroll); }, click: function () { for (let i = 0; i < els.scrollVideoWraps.length; i++) { els.scrollVideoWraps[i].controller.addEventListener('click', eventList.clickVideoCta); } } }; const eventList = { setVideo: function () { for (let i = 0; i < els.scrollVideoWraps.length; i++) { els.scrollVideo[i] = utils.videoHandler({ playType: 'scrollPlay', startPoint: (currDevice.indexOf('mobile') > -1) ? els.scrollVideoWraps[i].moStartPoint : els.scrollVideoWraps[i].startPoint, reversePoint: (currDevice.indexOf('mobile') > -1) ? els.scrollVideoWraps[i].moReversePoint : els.scrollVideoWraps[i].reversePoint, wrap: els.scrollVideoWraps[i], video: els.scrollVideoWraps[i].video, controller: els.scrollVideoWraps[i].controller, resetCallback: function () { if (this.wrap.classList.contains('is-completed')) { this.wrap.classList.remove('is-completed'); } if (this.wrap.classList.contains('is-started')) { this.wrap.classList.remove('is-started'); } if (!!this.video.videoWrap && this.video.videoWrap.classList.contains('js-interactive-intro-video')) { this.video.tooltip.classList.remove('is-visible'); } }, playCallback: function () { if (!this.wrap.classList.contains('is-started')) { this.wrap.classList.add('is-started'); } setTagging.pause(this.controller); }, pauseCallback: function () { setTagging.play(this.controller); }, endCallback: function () { if (!this.wrap.classList.contains('is-completed')) { this.wrap.classList.add('is-completed'); } } }); } }, setScene: function () { for (let i = 0; i < els.scrollVideoWraps.length; i++) { els.scene[i] = SCROLLER({ trackElement: els.scrollVideoWraps[i].video, useFixed: false, resize: utils.detector.isTouchDevice ? false : true }); } }, scroll: function () { for (let i = 0; i < els.scrollVideoWraps.length; i++) { els.scene[i].trackAnimation(function () { els.scrollVideo[i].scrollActive(this.progress); }); } }, resize: function (currRes) { currDevice = currRes; }, clickVideoCta: function (e) { if (e.target == e.currentTarget) { if (e.currentTarget.video.paused) { e.currentTarget.video.play(); } else { e.currentTarget.video.pause(); } } } }; const setTagging = { play: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('pause', 'play')); } }, pause: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('play', 'pause')); } } }; return { init: init } })();})();;(function () { window.flagship.features.threeColumnCarousel = (function () { const utils = window.flagship.common.utils, resize = window.flagship.common.resize; let els = {}, swiperObj, prevDevice = null, currDevice = resize.checkResolution(); dimmedClass = 'is-dimmed'; const isRtl = document.documentElement.classList.contains('rtl'); const init = function () { els.section = document.querySelectorAll('.js-three-column-carousel'); if (!!els.section) { setElements(); bindEvents(); } }; const setElements = function () { for (let i = 0; i < els.section.length; i++) { els.section[i].swiperContainer = els.section[i]; els.section[i].swiperSlide = els.section[i].querySelectorAll('.swiper-slide'); els.section[i].nextArrow = els.section[i].parentElement.querySelector('.swiper-button-next'); els.section[i].prevArrow = els.section[i].parentElement.querySelector('.swiper-button-prev'); els.section[i].scrollbar = els.section[i].parentElement.querySelector('.swiper-scrollbar'); }; }; const bindEvents = function () { eventList.load(); resize.add(eventList.resize); }; const eventHandler = { swiper: function() { for (let i = 0; i < els.section.length; i++) { els.section[i].swiper.on('init', swiperEvents.init); els.section[i].swiper.on('slideChange', swiperEvents.slideChange); els.section[i].swiper.on('transitionEnd', swiperEvents.transitionEnd); }; } }; const eventList = { load: function() { for (let i = 0; i < els.section.length; i++) { let desktopStatus = (currDevice == 'desktop' || currDevice == 'tablet') && els.section[i].swiperSlide.length > 3; let mobileStatus = (currDevice == 'mobile' || currDevice == 'mobileS') && els.section[i].swiperSlide.length > 1; if (desktopStatus || mobileStatus) { swiperEvents.set(); eventHandler.swiper(); els.section[i].swiper.init(); } } }, resize: function() { currDevice = resize.checkResolution(); if (prevDevice != currDevice) { eventList.responsive(); prevDevice = currDevice; }; }, responsive: function() { for (let i = 0; i < els.section.length; i++) { let isSection = els.section[i]; let desktopStatus = (currDevice == 'desktop' || currDevice == 'tablet') && isSection.swiperSlide.length > 3; let mobileStatus = currDevice == 'mobile' && isSection.swiperSlide.length > 1; eventList.resetDimmedSlide(isSection.swiper); accessibility.reset(isSection.swiper); if (desktopStatus || mobileStatus) { if (isSection.swiper.initialized) swiperEvents.destroy(isSection.swiper); swiperEvents.set(); eventHandler.swiper(); isSection.swiper.init(); if (desktopStatus) eventList.initDimmedSlides(isSection.swiper); if (mobileStatus) accessibility.slide(isSection.swiper); } else if ((!desktopStatus || !mobileStatus) && isSection.swiper != undefined) { if (isSection.swiper.initialized) swiperEvents.destroy(isSection.swiper); } }; }, getCarouselSizeInfo: function(swiperObj) { let slideLength = swiperObj.slides.length; let slideWidth = swiperObj.slides[0].clientWidth; let slideMargin = parseInt(window.getComputedStyle(swiperObj.slides[0]).margin.split(' ')[isRtl ? 3 : 1]); let slideSize = slideWidth + slideMargin; let maxMoveSize = ((slideSize * slideLength) - slideMargin) - swiperObj.wrapperEl.clientWidth; let viewWidth = swiperObj.wrapperEl.clientWidth; let viewLength = Math.round((viewWidth + slideMargin)/slideSize); let lastBeforeSize = slideLength == 3 ? 0 : (slideWidth + slideMargin) * ((slideLength - viewLength) - 1); let isMoveSize = Math.abs(parseInt(window.getComputedStyle(swiperObj.wrapperEl).transform.split(',')[4])); return { slideLength: slideLength, slideWidth: slideWidth, slideMargin: slideMargin, slideSize: slideSize, maxMoveSize: maxMoveSize, viewWidth: viewWidth, viewLength: viewLength, lastBeforeSize: lastBeforeSize, isMoveSize: isMoveSize } }, initDimmedSlides: function(swiperObj) { for (let i = 0; i < swiperObj.slides.length; i++) { let isSlide = swiperObj.slides[i]; if ((swiperObj.activeIndex + eventList.getCarouselSizeInfo(swiperObj).viewLength) <= i) { isSlide.classList.add(dimmedClass); utils.onAccessibility(isSlide) } } }, setDimmedSlide: function(swiperObj) { if (currDevice != 'mobile') { for (let i = 0; i < swiperObj.slides.length; i++) { let isSlide = swiperObj.slides[i]; let dimmedSlide = (swiperObj.activeIndex) > i || (swiperObj.activeIndex + (eventList.getCarouselSizeInfo(swiperObj).viewLength - 1)) < i; if (dimmedSlide) { isSlide.classList.add(dimmedClass); utils.onAccessibility(isSlide) } else { isSlide.classList.remove(dimmedClass); utils.offAccessibility(isSlide) } } } }, resetDimmedSlide: function(swiperObj) { if (!!!swiperObj) return; for (let i = 0; i < swiperObj.slides.length; i++) { swiperObj.slides[i].classList.remove(dimmedClass); } }, tagging: function () { const values = { 'data-omni-type': 'microsite_pcontentinter', 'data-omni': 'galaxy-z-fold6:highlights:indicator:sldr-dots:', 'ga-ca': 'indication', 'ga-ac': 'carousel', 'ga-la': 'galaxy-z-fold6:highlights:indicator:sldr-dots:', }; } }; const swiperEvents = { set: function () { for (let i = 0; i < els.section.length; i++) { if (els.section[i].swiper == null) { new Swiper(els.section[i].swiperContainer, { init: false, slidesPerView: 'auto', speed: 200, navigation: { nextEl: els.section[i].nextArrow, prevEl: els.section[i].prevArrow, }, scrollbar: { el: els.section[i].scrollbar, draggable: true } }); } } }, init: function () { let isNextArrow = this.el.parentElement.querySelector('.swiper-button-next'); let isPrevArrow = this.el.parentElement.querySelector('.swiper-button-prev'); isNextArrow.removeAttribute('aria-label'); isNextArrow.removeAttribute('role'); isPrevArrow.removeAttribute('aria-label'); isPrevArrow.removeAttribute('role'); eventList.tagging(); if (currDevice != 'mobile') { eventList.initDimmedSlides(this); } else { accessibility.slide(this); }; }, transitionEnd: function() { let carouselInfo = eventList.getCarouselSizeInfo(this); if (currDevice == 'mobile' || currDevice == 'tablet') return; if (carouselInfo.viewLength < 3) return; setTimeout(() => { let lastIndex = this.slides.length -1 ; let lastSlide = this.slides[lastIndex]; let lsatDimmedLength = (carouselInfo.slideLength - 1) - carouselInfo.viewLength; let lastBeforeSlide = this.slides[lsatDimmedLength]; if (carouselInfo.isMoveSize > carouselInfo.lastBeforeSize && carouselInfo.maxMoveSize >= carouselInfo.isMoveSize) { lastSlide.classList.add('is-last-slide'); lastBeforeSlide.classList.add('is-dimmed'); lastSlide.classList.remove('is-dimmed'); } else if (lastSlide.classList.contains('is-last-slide') && carouselInfo.lastBeforeSize == carouselInfo.isMoveSize) { lastSlide.classList.add('is-dimmed'); lastSlide.classList.remove('is-last-slide'); lastBeforeSlide.classList.remove('is-dimmed'); } }, 0); }, slideChange: function () { eventList.setDimmedSlide(this); if (currDevice == 'mobile') accessibility.slide(this); }, destroy: function (swiperObj) { swiperObj.navigation.destroy(true); swiperObj.destroy(true); swiperObj = null; }, }; const accessibility = { slide: function (swiper) { for (let i = 0; i < swiper.slides.length; i++) { if (i != swiper.activeIndex) { utils.onAccessibility(swiper.slides[i]); } else { utils.offAccessibility(swiper.slides[i]); } } }, reset: function(swiper) { for (let i = 0; i < swiper.slides.length; i++) { utils.offAccessibility(swiper.slides[i]); } } }; return { init: init } })();})();(function () { window.flagship.features.aiOverview = (function () { const utils = window.flagship.common.utils, resize = flagship.common.resize; let els = {}; let currDevice = resize.checkResolution(); let isLoaded = false; const init = function () { els.section = document.querySelector('.features-ai-overview'); if (!!els.section) { setElements(); bindEvents(); } }; const setElements = function () { // fixed els.fixedTrack = els.section.querySelector('.js-fixed-track'); els.fixedInner = els.section.querySelector('.js-fixed-inner'); // title els.overviewTextWrap = els.section.querySelector('.js-overview-text-wrap'); els.overviewTopText = els.section.querySelector('.js-overview-top-text'); els.overviewMiddleTextPc = els.section.querySelector('.js-overview-middle-text-pc'); els.overviewMiddleTextMo = els.section.querySelector('.js-overview-middle-text-mo'); els.overviewBottomTextPc = els.section.querySelector('.js-overview-bottom-text-pc'); els.overviewBottomTextMo = els.section.querySelector('.js-overview-bottom-text-mo'); // introLogoVideo els.introLogoWrap = els.section.querySelector('.js-intro-logo-wrap'); els.introLogoVideoWrap = els.section.querySelector('.js-intro-logo-video-wrap'); els.introLogoVideoWrap.video = els.introLogoVideoWrap.querySelector('video'); els.introLogoVideoWrap.coverImg = els.introLogoVideoWrap.querySelector('.js-intro-logo-cover-image'); // logoVideo els.logoWrap = els.section.querySelector('.js-logo-wrap'); els.logoVideoWrap = els.section.querySelector('.js-logo-video-wrap'); els.logoVideoWrap.video = els.logoVideoWrap.querySelector('video'); els.logoVideoWrap.coverImg = els.logoVideoWrap.querySelector('.js-logo-cover-image'); // dimmed els.dimmed = els.section.querySelector('.js-dimmed'); }; const bindEvents = function () { eventHandler.load(); resize.add(eventHandler.resize); }; const eventHandler = { load: function () { eventList.checkBrokenFixed(); if (document.documentElement.classList.contains('is-ai-broken-fixed') || document.documentElement.classList.contains('low_network')) { window.addEventListener('DOMContentLoaded', eventList.setStaticContents, {once:true}); } else { window.addEventListener('DOMContentLoaded', function () { eventList.setVideoHandler(); eventList.fixedScroller.set(); }, {once : true}); window.addEventListener('scroll', eventList.setScroll); eventList.setScroll(); } window.addEventListener('orientationchange', eventHandler.orientationchange); }, resize: function (currRes) { currDevice = currRes; eventList.setContents(); }, orientationchange: function () { setTimeout(function () { eventList.setContents(); }, 150); } }; const eventList = { mediaLoader: function () { let scrollTop = window.pageYOffset, kv = document.querySelector('.features-kv'), kvTop = scrollTop + kv.getBoundingClientRect().top; if ((scrollTop > kvTop) && !isLoaded) { if (!els.introLogoVideoWrap.coverImg.classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia([els.introLogoVideoWrap.coverImg]); } if (!els.introLogoVideoWrap.video.classList.contains('is-mp4video-load-complete')) { mp4VideoLoader.setResponsiveMedia([els.introLogoVideoWrap.video]); } if (!els.logoVideoWrap.coverImg.classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia([els.logoVideoWrap.coverImg]); } if (!els.logoVideoWrap.video.classList.contains('is-mp4video-load-complete')) { mp4VideoLoader.setResponsiveMedia([els.logoVideoWrap.video]); } isLoaded = true; } }, setVideoHandler: function () { utils.videoHandler({ wrap: els.introLogoVideoWrap, video: els.introLogoVideoWrap.video }); utils.videoHandler({ wrap: els.logoVideoWrap, video: els.logoVideoWrap.video }); }, fixedScroller: { set: function () { if (els.fixedTrack.scene == null) { els.fixedTrack.scene = SCROLLER({ trackElement: els.fixedTrack, fixedElement: els.fixedInner, useFixed: true, useFixedStlye: false, useStrictMode: false, trackHeight: 3, resize: (utils.detector.isTouchDevice) ? false : true }); } }, destroy: function () { if (els.fixedTrack.scene != null) { els.fixedTrack.scene.destroy(true, true); els.fixedTrack.scene = null; els.fixedTrack.style = ''; } }, play: function () { if (els.fixedTrack.scene != null) { els.fixedTrack.scene.trackAnimation(function () { let progress = this.progress; let isMobile = currDevice.indexOf('mobile') > -1; introLogoHideValue = utils.calRange({ targetValue: 1, progress: progress, startPoint: 45, endPoint: 55 }), introLogoScaleValue = utils.calRange({ targetValue: 0.5, progress: progress, startPoint: 45, endPoint: 55 }), textWrapShowValue = utils.calRange({ targetValue: 1, progress: progress, startPoint: 53, endPoint: 58 }), topMiddleTextShowValue = utils.calRange({ targetValue: 1, progress: progress, startPoint: 48, endPoint: 55 }), logoShowValue = utils.calRange({ targetValue: 1, progress: progress, startPoint: 50, endPoint: 56 }), bottomTextShowValue = utils.calRange({ targetValue: 1, progress: progress, startPoint: 60, endPoint: 65 }), bottomTextTopValue = utils.calRange({ targetValue: 50, progress: progress, startPoint: 62, endPoint: 70 }); // introLogoVideo if (progress < -36) { if (!els.introLogoVideoWrap.video.paused) { if (els.introLogoWrap.classList.contains('is-visible')) { els.introLogoWrap.classList.remove('is-visible'); } els.introLogoVideoWrap.video.pause(); els.introLogoVideoWrap.video.currentTime = 0; } } if (progress > -20) { if (els.introLogoVideoWrap.video.paused) { if (!els.introLogoWrap.classList.contains('is-visible')) { els.introLogoWrap.classList.add('is-visible'); } els.introLogoVideoWrap.video.play(); } } if (progress >= 0 && progress <= 100) { if (progress > 40) { TweenMax.to(els.introLogoWrap, 0.5, { opacity: 1 - introLogoHideValue, scale: 1 - introLogoScaleValue, ease: 'cubic-bezier(0, 0.25, 0, 1.06)' }); } else { els.introLogoWrap.style.opacity = 1; } // text TweenMax.to(els.overviewTextWrap, 0.1, { opacity: textWrapShowValue }); TweenMax.to(els.overviewTopText, 0.1, { opacity: topMiddleTextShowValue }); if (isMobile) { TweenMax.to(els.overviewMiddleTextMo, 0.1, { opacity: topMiddleTextShowValue }); } else { TweenMax.to(els.overviewMiddleTextPc, 0.1, { opacity: topMiddleTextShowValue }); } TweenMax.to(els.logoWrap, 0.1, { opacity: logoShowValue }); if (progress > 55) { if (els.logoVideoWrap.video.paused) { if (!els.logoWrap.classList.contains('is-visible')) { els.logoWrap.classList.add('is-visible'); } els.logoVideoWrap.video.play(); } } else { if (!els.logoVideoWrap.video.paused) { if (els.logoWrap.classList.contains('is-visible')) { els.logoWrap.classList.remove('is-visible'); } els.logoVideoWrap.video.pause(); els.logoVideoWrap.video.currentTime = 0; } } // dimmed if (progress > 55) { if (!els.dimmed.classList.contains('is-active')) { els.dimmed.classList.add('is-active') } } else { if (els.dimmed.classList.contains('is-active')) { els.dimmed.classList.remove('is-active') } } if (isMobile) { TweenMax.to(els.overviewBottomTextMo, 0.3, { opacity: bottomTextShowValue, y: 50 - bottomTextTopValue + '%', ease: 'cubic-bezier(0, 0.25, 0, 1.06)' }); } else { TweenMax.to(els.overviewBottomTextPc, 0.3, { opacity: bottomTextShowValue, y: 50 - bottomTextTopValue + '%', ease: 'cubic-bezier(0, 0.25, 0, 1.06)' }); } } }); } }, }, checkBrokenFixed: function () { let winWidth = window.innerWidth, winHeight = window.innerHeight; document.documentElement.classList.remove('is-ai-broken-fixed'); if (winWidth > 1440 && winHeight <= 720) { document.documentElement.classList.add('is-ai-broken-fixed'); } else if (winWidth <= 1440 && (winHeight / winWidth) < 0.5277) { document.documentElement.classList.add('is-ai-broken-fixed'); } else { document.documentElement.classList.remove('is-ai-broken-fixed'); } }, setStaticContents: function () { els.section.classList.add('none-fixed'); }, setFixedContents: function () { if (els.section.classList.contains('none-fixed')) { els.section.classList.remove('none-fixed'); } window.addEventListener('scroll', eventList.setScroll); eventList.setVideoHandler(); eventList.fixedScroller.set(); }, setContents: function () { eventList.checkBrokenFixed(); if (document.documentElement.classList.contains('is-ai-broken-fixed') || document.documentElement.classList.contains('low_network')) { eventList.fixedScroller.destroy(); eventList.setStaticContents(); window.removeEventListener('scroll', eventList.setScroll); } else { eventList.setFixedContents(); } }, setScroll: function () { eventList.mediaLoader(); eventList.fixedScroller.play(); }, }; return { init: init } })();})();;(function () { window.flagship.features.cameraSpec = (function () { const utils = window.flagship.common.utils, resize = window.flagship.common.resize; let els = {}, prevDevice = null, currDevice = resize.checkResolution(); const init = function () { els.section = document.querySelector('.features-camera-spec'); if (!!els.section) { setElements(); bindEvents(); } }; const setElements = function () { els.listInner = els.section.querySelectorAll('.js-camera-spec-inner'); }; const bindEvents = function () { resize.add(eventList.resize); eventList.load(); eventList.showCollout(); eventHandler.scroll(); }; const eventHandler = { scroll: function() { window.addEventListener('scroll', eventList.showCollout); } } const eventList = { load: function() { eventList.setSecene(); }, resize: function (currRes) { currDevice = currRes; if (currDevice != prevDevice) { prevDevice = currDevice; } }, setSecene: function () { for (let i = 0; i < els.listInner.length; i++) { SCROLLER({ trackElement: els.listInner[i], useFixed: false }); } }, showCollout: function() { for (let i = 0; i < els.listInner.length; i++) { els.listInner[i].scroller.trackAnimation(function() { if (this.progress > 0) { this.trackElement.classList.add('is-active'); } if (i == 0) { if (this.progress <= 0) { for (let j = 0; j < els.listInner.length; j++) { els.listInner[j].classList.remove('is-active'); } } } }); } } }; return { init: init } })();})();(function () { window.flagship.features.colorchip = function (colorchipWrap) { const utils = window.flagship.common.utils, common = window.flagship.features.common, resize = window.flagship.common.resize; let els = {}, activeClass = 'is-active', currentDevice = resize.checkResolution(), prevDevice = null, currentSlidesPerView = currentDevice.indexOf('mobile') > -1 ? 5 : 7; const init = function () { els.section = document.querySelector('.js-colors'); els.popup = document.querySelector('.js-viewer'); if (colorchipWrap.type == 'popup') { colorchipWrap.contentWrap = els.popup; } else { colorchipWrap.contentWrap = els.section; } setElements(); setProperty(); bindEvents(); }; const setElements = function () { // panel els.panelWrap = els.section.querySelector('.js-panel-wrap'); els.panelItems = els.panelWrap.querySelectorAll('.js-panel-item'); // colorchip els.swiperContainer = colorchipWrap.querySelector('.js-colorchip-container'); els.colorchipButtons = colorchipWrap.querySelectorAll('.js-colorchip-button'); els.swiperArrowWrap = colorchipWrap.querySelector('.js-arrow-wrap'); els.swiperNextArrow = colorchipWrap.querySelector('.js-colorchip-next'); els.swiperPrevArrow = colorchipWrap.querySelector('.js-colorchip-prev'); els.colorchipNames = colorchipWrap.querySelectorAll('.js-colorchip-name'); // 360 Popup Btn els.viewerBtn = els.section.querySelector('.viewer-btn'); // viewer els.viewerSection = els.section.querySelector('.js-colors-viewer'); els.viewerIframe = colorchipWrap.contentWrap.querySelector('iframe'); // exclusive badge els.exclusive = colorchipWrap.contentWrap.querySelector('.js-exclusive-badge'); }; const setProperty = function () { for (let i = 0; i < els.colorchipButtons.length; i++) { els.colorchipButtons[i].index = i; } }; const bindEvents = function () { eventList.checkColorchipSwiper(); if (colorchipWrap.type != 'popup') eventList.setColors(0); eventHandler.click(); eventHandler.keydown(); resize.add(eventList.resize); eventHandler.scroll(); }; const eventHandler = { click: function () { for (let i = 0; i < els.colorchipButtons.length; i++) { els.colorchipButtons[i].addEventListener('click', eventList.clickColorchip); } els.viewerBtn.addEventListener('click', function () { let activeIndex = this.getAttribute('data-target-index'); eventList.setColorchip(activeIndex); eventList.setColorName(activeIndex); eventList.setExclusive(activeIndex); }); els.swiperNextArrow.addEventListener('click', accessibility.clickArrow); els.swiperPrevArrow.addEventListener('click', accessibility.clickArrow); }, keydown: function () { els.swiperNextArrow.addEventListener('keydown', accessibility.clickArrow); els.swiperPrevArrow.addEventListener('keydown', accessibility.clickArrow); }, scroll: function () { window.addEventListener('scroll', eventList.scroll); } }; const eventList = { scroll: function () { let winOffsetBottom = window.pageYOffset + window.innerHeight, kv = document.querySelector('.features-kv'), kvHeight = kv.getBoundingClientRect().height + utils.getNavHeight(); if (winOffsetBottom >= kvHeight) { // bg load colorchipWrap.bgImgs = colorchipWrap.querySelectorAll('.js-bg-img'); if(!!colorchipWrap.bgImgs) bgLoader.setResponsiveMedia(colorchipWrap.bgImgs); eventList.setViewer(); window.removeEventListener('scroll', eventList.scroll); } }, setViewer: function () { if (!utils.isLowNetwork()) { setTimeout(function () { els.viewerIframe.style.position = 'fixed'; els.viewerIframe.style.top = 0; els.viewerIframe.style.opacity = 0; setTimeout(function () { els.viewerIframe.style.position = ''; els.viewerIframe.style.top = ''; els.viewerIframe.style.opacity = ''; }, 300); }, 1000); // set eventList.setViewerUrl(els.colorchipButtons[0].getAttribute('data-colors')); } }, checkColorchipSwiper: function () { let colorchipSwiperLength = currentDevice.indexOf('mobile') > -1 ? 6 : 8; if (els.colorchipButtons.length >= colorchipSwiperLength) { if (els.swiperArrowWrap.style.display == 'none') { els.swiperArrowWrap.style.display = ''; } swiperEvents.set(); } else { if (els.swiperArrowWrap.style.display != 'none') { els.swiperArrowWrap.style.display = 'none'; } if (els.colorchipSwiper != null) { swiperEvents.destroy(); } } }, setColors: function (activeIndex) { eventList.setPopupBtn(els.colorchipButtons[activeIndex]); eventList.setColorchip(activeIndex); eventList.setPanel(activeIndex); eventList.setColorName(activeIndex); eventList.setExclusive(activeIndex); }, resize: function (currRes) { currentDevice = currRes; if (currentDevice !== prevDevice) { eventList.checkColorchipSwiper(); currentSlidesPerView = currentDevice.indexOf('mobile') > -1 ? 5 : 7; prevDevice = currentDevice; } }, clickColorchip: function () { let targetColor = this; eventList.setColors(targetColor.index); eventList.setViewerUrl(targetColor.getAttribute('data-colors')); }, setColorchip: function (activeIndex) { let targetcolorchipButton = els.colorchipButtons[activeIndex]; for (let i = 0; i < els.colorchipButtons.length; i++) { els.colorchipButtons[i].classList.remove(activeClass); if (!!colorchipWrap.isStatic) { els.colorchipButtons[i].setAttribute('aria-selected', false); } else { els.colorchipButtons[i].removeAttribute('title'); } } if (!targetcolorchipButton.classList.contains(activeClass)) { targetcolorchipButton.classList.add(activeClass); if (!!colorchipWrap.isStatic) { targetcolorchipButton.setAttribute('aria-selected', true); } else { accessibility.selected(targetcolorchipButton); } } }, setPanel: function (activeIndex) { if (!colorchipWrap.isStatic) return; for (let i = 0; i < els.panelItems.length; i++) { if (els.panelItems[i].classList.contains(activeClass)) { els.panelItems[i].classList.remove(activeClass); els.panelItems[i].setAttribute('aria-hidden', true); } } if (!els.panelItems[activeIndex].classList.contains(activeClass)) { els.panelItems[activeIndex].classList.add(activeClass); els.panelItems[activeIndex].setAttribute('aria-hidden', false); } }, setColorName: function (activeIndex) { for (let i = 0; i < els.colorchipNames.length; i++) { if (els.colorchipNames[i].classList.contains(activeClass)) { els.colorchipNames[i].classList.remove(activeClass); els.colorchipNames[i].setAttribute('aria-hidden', true); } } if (!els.colorchipNames[activeIndex].classList.contains(activeClass)) { els.colorchipNames[activeIndex].classList.add(activeClass); els.colorchipNames[activeIndex].setAttribute('aria-hidden', false); } }, setViewerUrl: function (colorName) { if (!!colorchipWrap.isStatic) return; if (colorchipWrap.type == 'popup') { let viewerSrc = els.viewerIframe.getAttribute('src').split('#color=')[0]; els.viewerIframe.setAttribute('src', `${viewerSrc}#color=${colorName}`); } else { els.viewerSection.setAttribute('data-model-color', colorName); els.viewerIframe.setAttribute('src', common.getViewerUrl()); } }, setPopupBtn: function (target) { if (colorchipWrap.type == 'popup') return; els.viewerBtn.setAttribute('data-target-index', target.index); els.viewerBtn.setAttribute('data-model-color', target.getAttribute('aria-controls')); }, setExclusive: function (activeIndex) { if (!!els.colorchipButtons[activeIndex].getAttribute('data-exclusive')) { els.exclusive.classList.add('is-active'); } else { els.exclusive.classList.remove('is-active'); } } }; const swiperEvents = { set: function () { if (els.colorchipSwiper == null) { els.colorchipSwiper = new Swiper(els.swiperContainer, { init: false, navigation: { nextEl: els.swiperNextArrow, prevEl: els.swiperPrevArrow, }, slidesPerView: currentSlidesPerView, speed: 300, }); els.colorchipSwiper.on('init', swiperEvents.init); els.colorchipSwiper.on('slideChange', swiperEvents.slideChange); els.colorchipSwiper.init(); } }, init: function () { let notification = this.el.querySelector('.swiper-notification'); if (!!notification) this.el.removeChild(notification); els.swiperPrevArrow.removeAttribute('aria-label'); els.swiperPrevArrow.removeAttribute('role'); els.swiperNextArrow.removeAttribute('aria-label'); els.swiperNextArrow.removeAttribute('role'); accessibility.colorchip(els.colorchipSwiper); }, slideChange: function () { accessibility.colorchip(els.colorchipSwiper); }, destroy: function () { els.colorchipSwiper.destroy(true); els.colorchipSwiper = null; }, }; const accessibility = { clickArrow: function (e) { let arrowTimeout = null, arrowStyleTimeout = null; if ((e.type == 'keydown' && e.keyCode == 13) || e.type == 'click') { e.preventDefault(); if (els.colorchipSwiper.isBeginning && !els.colorchipSwiper.isEnd) { els.swiperPrevArrow.style.setProperty('display', 'block'); clearTimeout(arrowTimeout); arrowTimeout = setTimeout(function () { els.swiperNextArrow.focus(); }, 300); clearTimeout(arrowStyleTimeout); arrowStyleTimeout = setTimeout(function () { els.swiperPrevArrow.style.display = ''; }, 400); } else if (!els.colorchipSwiper.isBeginning && els.colorchipSwiper.isEnd) { els.swiperNextArrow.style.setProperty('display', 'block'); clearTimeout(arrowTimeout); arrowTimeout = setTimeout(function () { els.swiperPrevArrow.focus(); }, 300); clearTimeout(arrowStyleTimeout); arrowStyleTimeout = setTimeout(function () { els.swiperNextArrow.style.display = ''; }, 400); } } }, colorchip: function (swiperObj) { let isNotActivedColorchips = null; for (let i = 0; i < swiperObj.slides.length; i++) { if (currentDevice.indexOf('mobile') > -1) { isNotActivedColorchips = (i != swiperObj.activeIndex) && (i > swiperObj.activeIndex + 4) || (swiperObj.activeIndex > i); } else { isNotActivedColorchips = (i != swiperObj.activeIndex) && (i > swiperObj.activeIndex + 6) || (swiperObj.activeIndex > i); } if (isNotActivedColorchips) { utils.onAccessibility(swiperObj.slides[i]); setTimeout(function () { utils.onAccessibility(swiperObj.slides[i]); }, 300); } else { utils.offAccessibility(swiperObj.slides[i]); setTimeout(function () { utils.offAccessibility(swiperObj.slides[i]); }, 300); } } }, selected: function (target) { if (typeof LOCAL_VARI != 'undefined' && !!LOCAL_VARI) { target.setAttribute('title', LOCAL_VARI.selected); } else { target.setAttribute('title', 'Selected'); } } }; return init(colorchipWrap); }; let colorchips = document.querySelectorAll('.js-colorchip'); for (let i = 0; i < colorchips.length; i++) { colorchips[i].type = colorchips[i].parentElement.classList.contains('js-popup-colorchip') ? 'popup' : 'colors'; colorchips[i].isStatic = colorchips[i].parentElement.getAttribute('data-static'); flagship.features.colorchip(colorchips[i]); }})();;(function () { window.flagship.features.faq = (function () { const resize = window.flagship.common.resize, utils = window.flagship.common.utils; let els = {}, prevDevice = null, currDevice = resize.checkResolution(); const init = function () { els.section = document.querySelector('.js-faq'); if (!!els.section) { setElements(); bindEvents(); } }; const setElements = function () { els.faqList = els.section.querySelector('.js-faq-list'); }; const bindEvents = function () { resize.add(eventList.resize); eventList.setAccordion(); }; const eventList = { resize: function (currRes) { currDevice = currRes; if (currDevice != prevDevice) { eventList.responsive(); prevDevice = currDevice; } }, responsive: function () { let isOpenedItems = els.faqList.querySelectorAll('.js-faq-item.is-open'); if (isOpenedItems.length > 0) { for (let i = 0; i < isOpenedItems.length; i++) { let isOpenedItemContent = isOpenedItems[i].querySelector('.js-faq-answer'); let clientHeight = isOpenedItemContent.children[0].clientHeight; isOpenedItemContent.style.height = `${clientHeight}px`; } } }, setAccordion: function () { els.accordion = new window.flagship.common.accordion({ wrap: els.faqList, classList: { item: 'js-faq-item', button: 'js-faq-open', contents: 'js-faq-answer', activeClass: 'is-open' }, open: { start: function (target) { let targetInnerCta = target.querySelector('.js-featue-cta'); if (targetInnerCta) targetInnerCta.addEventListener('click', accessibility.moveFocus); } } }); els.accordion.init(); }, }; const accessibility = { moveFocus: function (e) { if (this.getAttribute('href').indexOf('#') > -1) { e.preventDefault(); let sectionId = this.getAttribute('href'), section = document.querySelector(`${sectionId}`), sectionTop = section.getBoundingClientRect().top, movePosition = (sectionTop + window.pageYOffset) - utils.getNavHeight(), clickable = section.querySelectorAll('a, button'), title = section.querySelector('h2') || section.querySelector('h3'); if (!!title) { let _focusOut = function () { title.removeAttribute('tabindex'); title.removeEventListener('focusout', _focusOut); }; title.addEventListener('focusout', _focusOut); title.setAttribute('tabindex', 0); title.focus(); } else { clickable[0].focus(); } window.scrollTo(0, movePosition); } } }; return { init: init } })();})();(function () { window.flagship.features.formfactor = (function () { const utils = window.flagship.common.utils, resize = flagship.common.resize; let els = {}; let currDevice = resize.checkResolution(); let isAos = utils.detector.isTouchDevice && document.documentElement.classList.contains('android'); let sizeCount = { num: 6.1 }; let weightCount = { num: 253 }; const init = function () { els.section = document.querySelector('.js-form-factor'); if (!!els.section) { setElements(); bindEvents(); } }; const setElements = function () { // fixed els.fixedVideoTrack = els.section.querySelector('.js-fixed-track'); els.fixedVideoInner = els.section.querySelector('.js-fixed-inner'); els.fixedVideoWrap = els.section.querySelector('.js-fixed-scroll-video .js-video-wrap'); els.fixedVideo = els.section.querySelector('.js-fixed-scroll-video video'); // title els.titleWrap1 = els.section.querySelector('.js-title-1'); els.titleWrap2 = els.section.querySelector('.js-title-2'); els.titleWrap3 = els.section.querySelector('.js-title-3'); els.titleWrap1.text = els.titleWrap1.querySelector('.js-title-text-1'); els.titleWrap2.text = els.titleWrap2.querySelector('.js-title-text-2'); els.titleWrap3.text = els.titleWrap3.querySelector('.features-form-factor__title'); els.titleWrap1.infoWrap = els.titleWrap1.querySelector('.js-info-wrap-1'); els.titleWrap2.infoWrap = els.titleWrap2.querySelector('.js-info-wrap-2'); els.titleWrap1.infoWrap.value = els.titleWrap1.infoWrap.querySelector('.js-value-1'); els.titleWrap2.infoWrap.value = els.titleWrap2.infoWrap.querySelector('.js-value-2'); }; const bindEvents = function () { eventHandler.load(); resize.add(eventHandler.resize); }; const eventHandler = { load: function () { eventList.checkBrokenFixed(); if (document.documentElement.classList.contains('is-formfactor-broken-fixed') || document.documentElement.classList.contains('low_network')) { window.addEventListener('DOMContentLoaded', eventList.setStaticContents, {once: true}); } else { if (isAos) { window.addEventListener('DOMContentLoaded', function () { eventList.fixedScroller.set(); eventList.sequencePlayer.set(); }, {once: true}); window.addEventListener('scroll', eventList.sequencePlayer.play); } else { window.addEventListener('DOMContentLoaded', eventList.setVideoHandler, {once: true}); els.fixedVideo.addEventListener('canplaythrough', function () { window.addEventListener('scroll', eventList.fixedScroller.play); eventList.fixedScroller.set(); }, {once: true}); } } window.addEventListener('orientationchange', eventHandler.orientationchange); }, resize: function () { eventList.setContents(); }, orientationchange: function () { setTimeout(function () { eventList.setContents(); }, 150); } }; const eventList = { setVideoHandler: function () { utils.videoHandler({ wrap: els.fixedVideoWrap, video: els.fixedVideo }); }, fixedScroller: { set: function () { if (els.fixedVideoTrack.scene == null) { els.fixedVideoTrack.scene = SCROLLER({ trackElement: els.fixedVideoTrack, fixedElement: els.fixedVideoInner, useFixed: true, useFixedStyle: false, trackHeight: isAos ? 5 : 7, resize: (utils.detector.isTouchDevice) ? false : true }); } }, destroy: function () { if (els.fixedVideoTrack.scene != null) { els.fixedVideoTrack.scene.destroy(true, true); els.fixedVideoTrack.scene = null; els.fixedVideoTrack.style = ''; } }, play: function () { if (els.fixedVideoTrack.scene != null) { els.fixedVideoTrack.scene.trackAnimation(eventList.fixedScrollMotion); } } }, sequencePlayer: { set: function () { let imageName = null; if (currDevice.indexOf('desktop') > -1) { imageName = 'galaxy-z-fold6-features-form-factor-'; } else if (currDevice.indexOf('mobile') > -1) { imageName = 'galaxy-z-fold6-features-form-factor-mo-'; } else { imageName = 'galaxy-z-fold6-features-form-factor-tb-'; } els.fixedVideoTrack.seqSence = SEQUENCEPLAYER({ targetElement: els.fixedVideoWrap, startNum: 0, endNum: (currDevice.indexOf('mobile') > -1) ? 123 : 147, path: typeof SEQUENCE_IMG_PATH == 'undefined' ? './images/seq/' : SEQUENCE_IMG_PATH, name: imageName, extension: 'jpg', addType: 'append' }); }, destroy: function () { if (els.fixedVideoTrack.seqSence != null) { els.fixedVideoWrap.removeChild(els.fixedVideoWrap.querySelector('canvas')); els.fixedVideoTrack.seqSence = null; } }, play: function () { if (els.fixedVideoTrack.scene != null) { els.fixedVideoTrack.scene.trackAnimation(eventList.fixedScrollMotion); } } }, fixedScrollMotion: function () { let progress = this.progress; let isMobile = currDevice.indexOf('mobile') > -1; if (els.fixedVideoTrack.seqSence != null) { let motionValue = utils.calRange({ targetValue: (currDevice.indexOf('mobile') > -1) ? 123 : 147, progress: progress, }); els.fixedVideoTrack.seqSence.play({ index: parseInt(motionValue) }); } else { if (els.fixedVideo.readyState >= 4) { let scrollTimeValue = utils.calRange({ targetValue: els.fixedVideo.duration, progress: progress, }); els.fixedVideo.currentTime = scrollTimeValue - 0.1; } } if (isMobile) { // title1 let titleOpacityValue1 = utils.calRange({ targetValue: 1, progress: progress, startPoint: 30, endPoint: 35 }), numOpacityValue1 = utils.calRange({ targetValue: 1, progress: progress, startPoint: 28, endPoint: 33 }), titleWrapShowTopValue1 = utils.calRange({ targetValue: 70, progress: progress, startPoint: 33, endPoint: 44 }), titleHideValue1 = utils.calRange({ targetValue: 1, progress: progress, startPoint: 55, endPoint: 60 }), numHideValue1 = utils.calRange({ targetValue: 1, progress: progress, startPoint: 55, endPoint: 60 }), titleWrapHideTopValue1 = utils.calRange({ targetValue: 50, progress: progress, startPoint: 57, endPoint: 60 }); TweenMax.to(els.titleWrap1.infoWrap, 0.1, { opacity: numOpacityValue1 - 0.01 }); TweenMax.to(els.titleWrap1.text, 0.1, { opacity: titleOpacityValue1 - 0.01 }); TweenMax.to(els.titleWrap1, 0.1, { y: 50 - titleWrapShowTopValue1 + '%' }); if (titleOpacityValue1 == 1) { els.titleWrap1.text.classList.add('is-text-visible'); els.titleWrap1.infoWrap.classList.add('is-text-visible'); } if (this.wheelDirection == 'down') { if (progress >= 28) { TweenMax.to(weightCount, 0.6, { num: 239, onUpdate: function () { els.titleWrap1.infoWrap.value.innerText = Math.floor(weightCount.num); } }); } } else { if (progress == 0) { TweenMax.to(els.titleWrap1.infoWrap.value, 0.5, { onUpdate: function () { els.titleWrap1.infoWrap.value.innerText = '253'; els.titleWrap2.infoWrap.value.innerText = 6.1; weightCount.num = 253; } }); } } if (progress > 55) { TweenMax.to(els.titleWrap1.infoWrap, 0.1, { opacity: 1 - numHideValue1 }); TweenMax.to(els.titleWrap1.text, 0.1, { opacity: 1 - titleHideValue1 }); if (titleHideValue1 == 1) { els.titleWrap1.text.classList.remove('is-text-visible'); els.titleWrap1.infoWrap.classList.remove('is-text-visible'); } } if (progress >= 57) { TweenMax.to(els.titleWrap1, 0.1, { y: -(titleWrapShowTopValue1 + titleWrapHideTopValue1) + '%' }); } // title2 let titleOpacityValue2 = utils.calRange({ targetValue: 1, progress: progress, startPoint: 58, endPoint: 67 }), numOpacityValue2 = utils.calRange({ targetValue: 1, progress: progress, startPoint: 56, endPoint: 65 }), titleWrapShowTopValue2 = utils.calRange({ targetValue: 50, progress: progress, startPoint: 56, endPoint: 67 }), titleHideValue2 = utils.calRange({ targetValue: 1, progress: progress, startPoint: 87, endPoint: 90 }), numHideValue2 = utils.calRange({ targetValue: 1, progress: progress, startPoint: 87, endPoint: 90 }), titleHideScaleValue2 = utils.calRange({ targetValue: 0.1, progress: progress, startPoint: 87, endPoint: 90 }); TweenMax.to(els.titleWrap2.infoWrap, 0.1, { opacity: numOpacityValue2 - 0.01 }); TweenMax.to(els.titleWrap2.text, 0.1, { opacity: titleOpacityValue2 - 0.01 }); TweenMax.to(els.titleWrap2, 0.1, { y: 50 - titleWrapShowTopValue2 + '%', }); if (titleOpacityValue2 == 1) { els.titleWrap2.text.classList.add('is-text-visible'); els.titleWrap2.infoWrap.classList.add('is-text-visible'); } if (this.wheelDirection == 'down') { if (progress >= 56) { TweenMax.to(sizeCount, 0.6, { num: 5.6, onUpdate: function () { els.titleWrap2.infoWrap.value.innerText = sizeCount.num.toFixed(1); } }); } } else { if (progress < 65) { TweenMax.to(els.titleWrap2.infoWrap.value, 0.5, { onUpdate: function () { sizeCount.num = 6.1; } }); } } if (progress > 86) { TweenMax.to(els.titleWrap2.infoWrap, 0.1, { opacity: 1 - numHideValue2 }); TweenMax.to(els.titleWrap2.text, 0.1, { opacity: 1 - titleHideValue2 }); if (titleHideValue2 == 1) { els.titleWrap2.text.classList.remove('is-text-visible'); els.titleWrap2.infoWrap.classList.remove('is-text-visible'); } } TweenMax.to(els.titleWrap2, 0.1, { scale: 1 - titleHideScaleValue2, }); // title3 let titleOpacityValue3 = utils.calRange({ targetValue: 1, progress: progress, startPoint: 90, endPoint: 93 }), titleScaleValue3 = utils.calRange({ targetValue: 0.9, progress: progress, startPoint: 90, endPoint: 100 }); TweenMax.to(els.titleWrap3, 0.1, { opacity: titleOpacityValue3, }); TweenMax.to(els.titleWrap3, 0.1, { scale: 1.9 - titleScaleValue3 }); if (titleOpacityValue3 == 1) { els.titleWrap3.text.classList.add('is-text-visible'); } else { els.titleWrap3.text.classList.remove('is-text-visible'); } } else { // title1 let titleOpacityValue1 = utils.calRange({ targetValue: 1, progress: progress, startPoint: 40, endPoint: 44 }), numOpacityValue1 = utils.calRange({ targetValue: 1, progress: progress, startPoint: 38, endPoint: 42 }), titleHideValue1 = utils.calRange({ targetValue: 1, progress: progress, startPoint: 52, endPoint: 57 }), numHideValue1 = utils.calRange({ targetValue: 1, progress: progress, startPoint: 52, endPoint: 57 }), infoLeftValue = utils.calRange({ targetValue: 35, progress: progress, startPoint: 28, endPoint: 44 }); hideTopValue1 = utils.calRange({ targetValue: 85, progress: progress, startPoint: 52, endPoint: 57 }); TweenMax.to(els.titleWrap1.text, 0, { x: -35 + infoLeftValue + '%' }); TweenMax.to(els.titleWrap1.infoWrap, 0, { x: 35 - infoLeftValue + '%' }); TweenMax.to(els.titleWrap1.infoWrap, 0.1, { opacity: numOpacityValue1 }); TweenMax.to(els.titleWrap1.text, 0.1, { opacity: titleOpacityValue1 }); if (titleOpacityValue1 >= 0.1) { if (!els.titleWrap1.text.classList.contains('is-text-visible')) { els.titleWrap1.text.classList.add('is-text-visible'); } } if (numOpacityValue1 >= 0.1) { if (!els.titleWrap1.infoWrap.classList.contains('is-text-visible')) { els.titleWrap1.infoWrap.classList.add('is-text-visible'); } } if (this.wheelDirection == 'down') { if (progress >= 42) { TweenMax.to(weightCount, 0.5, { num: 239, onUpdate: function () { els.titleWrap1.infoWrap.value.innerText = Math.floor(weightCount.num); } }); } } else { if (progress == 0) { TweenMax.to(els.titleWrap1.infoWrap.value, 0.5, { onUpdate: function () { els.titleWrap1.infoWrap.value.innerText = '253'; els.titleWrap2.infoWrap.value.innerText = 6.1; weightCount.num = 253; } }); } } TweenMax.to(els.titleWrap1.text, 0, { y: -hideTopValue1 + '%' }); TweenMax.to(els.titleWrap1.infoWrap, 0, { y: hideTopValue1 + '%' }); if (progress > 57) { TweenMax.to(els.titleWrap1.infoWrap, 0.1, { opacity: 1 - numHideValue1 }); TweenMax.to(els.titleWrap1.text, 0.1, { opacity: 1 - titleHideValue1 }); if (titleHideValue1 == 1) { els.titleWrap1.text.classList.remove('is-text-visible'); els.titleWrap1.infoWrap.classList.remove('is-text-visible'); } } // title2 let titleOpacityValue2 = utils.calRange({ targetValue: 1, progress: progress, startPoint: 64, endPoint: 73 }), numOpacityValue2 = utils.calRange({ targetValue: 1, progress: progress, startPoint: 62, endPoint: 71 }), titleHideValue2 = utils.calRange({ targetValue: 1, progress: progress, startPoint: 82, endPoint: 86 }), numHideValue2 = utils.calRange({ targetValue: 1, progress: progress, startPoint: 82, endPoint: 86 }), titleTopValue2 = utils.calRange({ targetValue: 50, progress: progress, startPoint: 62, endPoint: 71 }), titleScaleValue2 = utils.calRange({ targetValue: 0.3, progress: progress, startPoint: 84, endPoint: 86 }); TweenMax.to(els.titleWrap2.infoWrap, 0.1, { opacity: numOpacityValue2 }); TweenMax.to(els.titleWrap2.text, 0.1, { opacity: titleOpacityValue2 }); if (titleOpacityValue2 >= 0.1) { if (!els.titleWrap2.text.classList.contains('is-text-visible')) { els.titleWrap2.text.classList.add('is-text-visible'); } if (!els.titleWrap2.infoWrap.classList.contains('is-text-visible')) { els.titleWrap2.infoWrap.classList.add('is-text-visible'); } } TweenMax.to(els.titleWrap2, 0, { y: -titleTopValue2 + '%' }); if (this.wheelDirection == 'down') { if (progress >= 65) { TweenMax.to(sizeCount, 0.5, { num: 5.6, onUpdate: function () { els.titleWrap2.infoWrap.value.innerText = sizeCount.num.toFixed(1); } }); } } else { if (progress < 42) { TweenMax.to(els.titleWrap2.infoWrap.value, 0.1, { onUpdate: function () { sizeCount.num = 6.1; } }); } } if (progress > 82) { TweenMax.to(els.titleWrap2.infoWrap, 0.1, { opacity: 1 - numHideValue2 }); TweenMax.to(els.titleWrap2.text, 0.1, { opacity: 1 - titleHideValue2 }); TweenMax.to(els.titleWrap2, 0.1, { scale: 1 - titleScaleValue2 }); if (titleHideValue2 == 1) { els.titleWrap2.text.classList.remove('is-text-visible'); els.titleWrap2.infoWrap.classList.remove('is-text-visible'); } } // title3 let titleOpacityValue3 = utils.calRange({ targetValue: 1, progress: progress, startPoint: 85, endPoint: 92 }), titleScaleValue3 = utils.calRange({ targetValue: 0.8, progress: progress, startPoint: 85, endPoint: 92 }); TweenMax.to(els.titleWrap3, 0.1, { opacity: titleOpacityValue3 }); TweenMax.to(els.titleWrap3, 0.1, { scale: 1.8 - titleScaleValue3 }); if (titleOpacityValue3 == 1) { els.titleWrap3.text.classList.add('is-text-visible'); } else { els.titleWrap3.text.classList.remove('is-text-visible'); } } }, checkBrokenFixed: function () { let winWidth = window.innerWidth, winHeight = window.innerHeight; document.documentElement.classList.remove('is-formfactor-broken-fixed'); if (winWidth > 1440 && winHeight <= 720) { document.documentElement.classList.add('is-formfactor-broken-fixed'); } else if (winWidth <= 1440 && (winHeight / winWidth) < 0.5277) { document.documentElement.classList.add('is-formfactor-broken-fixed'); } else { document.documentElement.classList.remove('is-formfactor-broken-fixed'); } }, setStaticContents: function () { if (!els.section.classList.contains('none-fixed')) { els.section.classList.add('none-fixed'); } }, setFixedContents: function () { if (els.section.classList.contains('none-fixed')) { els.section.classList.remove('none-fixed'); } if (isAos) { window.addEventListener('DOMContentLoaded', function () { eventList.fixedScroller.set(); eventList.sequencePlayer.set(); }, {once: true}); window.addEventListener('scroll', eventList.sequencePlayer.play); } else { eventList.setVideoHandler(); eventList.fixedScroller.set(); eventList.fixedScroller.play(); window.addEventListener('scroll', eventList.fixedScroller.play); } }, setContents: function () { eventList.checkBrokenFixed(); if (document.documentElement.classList.contains('is-formfactor-broken-fixed') || document.documentElement.classList.contains('low_network')) { eventList.fixedScroller.destroy(); if (isAos) { eventList.sequencePlayer.destroy(); window.removeEventListener('scroll', eventList.sequencePlayer.play); } else { window.removeEventListener('scroll', eventList.fixedScroller.play); } eventList.setStaticContents(); } else { eventList.setFixedContents(); } }, }; return { init: init } })();})();(function () { window.flagship = window.flagship || {}; window.flagship.features = window.flagship.features || {}; window.flagship.features.highlightsZone = (function () { const utils = window.flagship.common.utils; const resize = window.flagship.common.resize; let els = {}; let prevDevice; let swiperObj = {}; let pointerOffset = {}; let currDevice = resize.checkResolution(); let dimmedClass = 'is-dimmed'; let ctaPlayStatus = true; let scrollProgress = null; let lowNetwork = document.documentElement.classList.contains('low_network'); let isBgLoaded = false; const init = function () { els.section = document.querySelector('.features-highlights'); if (!!els.section) { setElements(); setProperty(); bindEvents(); } }; const setElements = function () { els.mainContainer = els.section.querySelector('.js-highlights-main-container'); els.mainSwiperSlides = els.mainContainer.querySelectorAll('.swiper-slide'); els.videoWrap = els.mainContainer.querySelectorAll('.js-video-wrap'); els.prevArrow = els.mainContainer.parentElement.querySelector('.swiper-button-prev'); els.nextArrow = els.mainContainer.parentElement.querySelector('.swiper-button-next'); els.scrollbar = els.section.querySelector('.js-highlights-scrollbar'); els.bgContainer = els.section.querySelector('.js-highlights-bg-container'); els.bgSwiperSlides = els.bgContainer.querySelectorAll('.swiper-slide'); }; const setProperty = function () { els.mainContainer.autoPlay = true; els.videoWrap = els.mainContainer.querySelectorAll('.js-video-wrap'); for (let i = 0; i < els.videoWrap.length; i++) { els.videoWrap[i].video = els.videoWrap[i].querySelector('.common-video__video'); els.videoWrap[i].image = els.mainContainer.querySelector('img'); els.videoWrap[i].controller = els.videoWrap[i].querySelector('.js-video-control'); els.videoWrap[i].controller.video = els.videoWrap[i].video; els.videoWrap[i].progressBar = els.videoWrap[i].querySelector('.common-video__control-progress-bar'); els.bgSwiperSlides[i].image = els.bgSwiperSlides[i].querySelector('img'); } }; const bindEvents = function () { eventList.load(); eventHandler.click(); eventHandler.scroll(); eventHandler.flickSwiper(); resize.add(eventList.resize); }; const eventHandler = { flickSwiper: function () { els.mainContainer.addEventListener('touchstart', function (e) { pointerOffset.start = null; pointerOffset.current = null; pointerOffset.start = e.touches[0].clientX; els.mainContainer.addEventListener('touchmove', eventList.getPointerMoveSize); }); els.mainContainer.addEventListener('touchend', function () { if (pointerOffset.start == null) return; els.mainContainer.autoPlay = false; els.mainContainer.removeEventListener('touchmove', eventList.getPointerMoveSize); }); els.mainContainer.addEventListener('mousedown', function (e) { pointerOffset.start = null; pointerOffset.current = null; pointerOffset.start = e.offsetX; els.mainContainer.addEventListener('mousemove', eventList.getPointerMoveSize); }); els.mainContainer.addEventListener('mouseup', function () { els.mainContainer.autoPlay = false; els.mainContainer.removeEventListener('mousemove', eventList.getPointerMoveSize); }); els.mainContainer.addEventListener('mouseleave', function () { if (pointerOffset.start == null) return; pointerOffset.start = null; pointerOffset.current = null; els.mainContainer.removeEventListener('mousemove', eventList.getPointerMoveSize); }); }, click: function () { for (let i = 0; i < els.videoWrap.length; i++) { els.videoWrap[i].controller.addEventListener('click', eventList.clickVideoCta); } for (let i = 0; i < els.videoWrap.length; i++) { els.videoWrap[i].controller.addEventListener('click', eventList.stopAutoPlay); } els.nextArrow.addEventListener('click', function (e) { eventList.stopAutoPlay(e) eventList.swiperArrow(e); }); els.prevArrow.addEventListener('click', function (e) { eventList.stopAutoPlay(e) eventList.swiperArrow(e); }); els.scrollbar.addEventListener('click', eventList.stopAutoPlay); }, scroll: function () { window.addEventListener('scroll', eventList.scroll) } } const eventList = { load: function () { swiperEvents.set(); swiperObj.main.init(); swiperObj.bg.init(); eventList.setVideo(); eventList.setScene(); eventList.scroll(); }, resize: function () { currDevice = resize.checkResolution(); if (prevDevice != currDevice) { eventList.responsive(); prevDevice = currDevice; }; }, responsive: function () { let desktopStatus = eventList.getCarouselSizeInfo(swiperObj.main).viewLength > 0 && currDevice == 'desktop'; eventList.resetDimmedSlide(swiperObj.main); swiperObj.main.slideTo(0, false); if (desktopStatus) eventList.initDimmedSlides(swiperObj.main); }, setVideo: function () { for (let i = 0; i < els.videoWrap.length; i++) { utils.videoHandler({ playType: 'scrollPlay', startPoint: currDevice != 'mobile' ? 40 : 24, reversePoint: currDevice != 'mobile' ? 88 : 80, wrap: els.videoWrap[i], video: els.videoWrap[i].video, controller: els.videoWrap[i].controller, resetCallback: function () { if (this.wrap.classList.contains('is-completed')) { this.wrap.classList.remove('is-completed'); } if (this.wrap.classList.contains('is-started')) { this.wrap.classList.remove('is-started'); } }, playCallback: function () { if (!this.wrap.classList.contains('is-started')) { this.wrap.classList.add('is-started'); } setTagging.pause(this.controller); eventList.setProgerssDuration(i); }, pauseCallback: function () { setTagging.play(this.controller); }, endCallback: function () { if (!this.wrap.classList.contains('is-completed')) { this.wrap.classList.add('is-completed'); } if (els.mainContainer.autoPlay) { if (scrollProgress > 40 && scrollProgress < 55) { clearTimeout(swiperObj.main.videoTiming); swiperObj.main.videoTiming = setTimeout(() => { swiperObj.main.slideNext(); }, 1000); } } } }); } }, playVideo: function (video) { if (video.readyState >= 1) { video.play(); } else { video.addEventListener('canplay', function () { this.play(); }, { once: true }) } }, clickVideoCta: function (e) { if (e.target == e.currentTarget) { if (e.currentTarget.video.paused) { eventList.playVideo(e.currentTarget.video); ctaPlayStatus = true; } else { e.currentTarget.video.pause(); ctaPlayStatus = false; } } }, stopAutoPlay: function (e) { if (e.target.classList.contains('js-video-control') || e.target.classList.contains('swiper-button-next') || e.target.classList.contains('swiper-button-prev') || e.target.classList.contains('js-highlights-scrollbar') ) { els.mainContainer.autoPlay = false; }; }, swiperArrowVisiblirity: function () { let mainSlidesLength = els.mainSwiperSlides.length - 1; let mainSwiper = swiperObj.main; let prevArrow = mainSwiper.previousIndex > mainSwiper.realIndex; let nextArrow = mainSwiper.previousIndex < mainSwiper.realIndex; if (prevArrow) { if (mainSwiper.realIndex == (mainSlidesLength - 1)) { if (els.nextArrow.style.display == 'none') els.nextArrow.style.display = ''; } else if (mainSwiper.realIndex == 0) { els.prevArrow.style.display = 'none'; } }; if (nextArrow) { if (mainSwiper.realIndex == 1) { if (els.prevArrow.style.display == 'none') els.prevArrow.style.display = ''; } else if (mainSwiper.realIndex == mainSlidesLength) { els.nextArrow.style.display = 'none'; } }; }, swiperArrow: function (e) { let mainSwiper = swiperObj.main; let mainSlidesLength = els.mainSwiperSlides.length - 1; let prevArrow = e.target.classList.contains('swiper-button-prev'); let nextArrow = e.target.classList.contains('swiper-button-next'); if (prevArrow) { clearTimeout(swiperObj.main.videoTiming); mainSwiper.slidePrev(); if (mainSwiper.realIndex == 0) { setTimeout(() => { els.nextArrow.blur(); els.nextArrow.focus(); }, 300); } }; if (nextArrow) { clearTimeout(swiperObj.main.videoTiming); mainSwiper.slideNext(); if (mainSwiper.realIndex == mainSlidesLength) { setTimeout(() => { els.prevArrow.blur(); els.prevArrow.focus(); }, 300); } }; }, scroll: function () { els.section.scene.trackAnimation(function () { let isIndex = swiperObj.main.realIndex; let isMainVideoHandler = els.videoWrap[isIndex].video.videoHandler; scrollProgress = this.progress; if (!lowNetwork && ctaPlayStatus) isMainVideoHandler.scrollActive(this.progress); if (scrollProgress > 0 && !isBgLoaded) { for (let i = 0; i < els.bgSwiperSlides.length; i++) { if (!els.bgSwiperSlides[i].image.classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia([els.bgSwiperSlides[i].image]); } } isBgLoaded = true; } }); }, slideVideoPlay: function () { let isIndex = swiperObj.main.realIndex; let isVideoWrap = els.videoWrap[isIndex]; isVideoWrap.classList.add('is-ended'); setTimeout(function () { isVideoWrap.classList.remove('is-started', 'is-paused'); if (!ctaPlayStatus) isVideoWrap.video.paused(); isVideoWrap.video.currentTime = 0; if (ctaPlayStatus) { eventList.playVideo(isVideoWrap.video); setTimeout(function () { if (els.mainContainer.autoPlay) isVideoWrap.video.videoHandler.controller.blur(); if (els.mainContainer.autoPlay) isVideoWrap.video.videoHandler.controller.focus(); if (isIndex == (swiperObj.main.slides.length - 1)) { els.mainContainer.autoPlay = false; } }, 300); } }, 50); }, setProgerssDuration: function (index) { let isDuration = els.videoWrap[index].video.duration; if (!!!els.videoWrap[index].durationSet) { els.videoWrap[index].progressBar.style.animationDuration = `${isDuration}s`; els.videoWrap[index].durationSet = true; } }, setMedia: function (index) { let videoLength = els.mainSwiperSlides.length - 1; let isIndex = index + 1 let loadIndex = isIndex < videoLength ? isIndex : videoLength; let mainVideoloadComplateLength = els.mainContainer.querySelectorAll('.is-video-load-complete').length - 1; for (let i = 0; i <= loadIndex; i++) { if (mainVideoloadComplateLength != videoLength && !els.videoWrap[i].video.classList.contains('.is-video-load-complete')) { if (!!els.videoWrap[i].video) videoLoader.setResponsiveMedia([els.videoWrap[i].video]); if (!!els.videoWrap[i].image) imageLoader.setResponsiveMedia([els.videoWrap[i].image]); if (!!els.bgSwiperSlides[i].image) imageLoader.setResponsiveMedia([els.bgSwiperSlides[i].image]); } } }, pauseVideo: function (swiper) { for (let i = 0; i < swiper.slides.length; i++) { let isVideo = swiper.slides[i].querySelector('video'); if (!!isVideo && !isVideo.paused) { isVideo.pause(); }; }; }, getCarouselSizeInfo: function (swiper) { let slideLength = swiper.slides.length; let slideWidth = swiper.slides[0].clientWidth; let slideMargin = parseInt(window.getComputedStyle(swiper.slides[0]).margin.split(' ')[1]); let slideSize = slideWidth + slideMargin; let maxMoveSize = ((slideSize * slideLength) - slideMargin) - swiper.wrapperEl.clientWidth; let viewWidth = swiper.wrapperEl.clientWidth; let viewLength = parseInt((viewWidth + slideMargin) / slideSize); let lastBeforeSize = slideLength == 2 ? 0 : Math.abs((maxMoveSize - slideSize)) + Math.abs((viewWidth - slideWidth)); let isMoveSize = Math.abs(parseInt(window.getComputedStyle(swiper.wrapperEl).transform.split(',')[4])); return { slideWidth: slideWidth, slideMargin: slideMargin, slideSize: slideSize, maxMoveSize: maxMoveSize, viewWidth: viewWidth, viewLength: viewLength, lastBeforeSize: lastBeforeSize, isMoveSize: isMoveSize } }, setScene: function () { els.section.scene = SCROLLER({ trackElement: els.section, useFixed: false }); }, initDimmedSlides: function (swiper) { for (let i = 0; i < swiper.slides.length; i++) { if ((swiper.activeIndex + eventList.getCarouselSizeInfo(swiper).viewLength) <= i) { swiper.slides[i].classList.add(dimmedClass); } } }, setDimmedSlide: function (swiper) { if (currDevice != 'mobile') { for (let i = 0; i < swiper.slides.length; i++) { let dimmedSlide = (swiper.activeIndex) > i || (swiper.activeIndex + (eventList.getCarouselSizeInfo(swiper).viewLength - 1)) < i; if (dimmedSlide) { swiper.slides[i].classList.add(dimmedClass); } else { swiper.slides[i].classList.remove(dimmedClass); } } } }, resetDimmedSlide: function (swiper) { for (let i = 0; i < swiper.slides.length; i++) { swiper.slides[i].classList.remove(dimmedClass); } }, getPointerMoveSize: function (e) { if (!!e.touches) { pointerOffset.current = e.touches[0].clientX; } else { pointerOffset.current = e.offsetX; } } } const swiperEvents = { set: function () { if (swiperObj.main == null) { swiperObj.main = new Swiper(els.mainContainer, { init: false, slidesPerView: 'auto', scrollbar: { el: els.scrollbar, draggable: true }, }); swiperObj.main.on('init', swiperEvents.init); swiperObj.main.on('slideChange', swiperEvents.slideChange); swiperObj.main.on('transitionEnd', swiperEvents.transitionEnd); } if (swiperObj.bg == null) { swiperObj.bg = new Swiper(els.bgContainer, { init: false, slidesPerView: 'auto', allowTouchMove: false }); } els.prevArrow.style.display = 'none'; }, init: function () { let isNextArrow = this.el.parentElement.querySelector('.swiper-button-next'); let isPrevArrow = this.el.parentElement.querySelector('.swiper-button-prev'); isNextArrow.removeAttribute('aria-label'); isNextArrow.removeAttribute('role'); isPrevArrow.removeAttribute('aria-label'); isPrevArrow.removeAttribute('role'); accessibility.slide(this); if (eventList.getCarouselSizeInfo(this).viewLength > 0 && currDevice == 'desktop') eventList.initDimmedSlides(this); }, slideChange: function () { swiperObj.bg.slideTo(this.realIndex); accessibility.slide(this); eventList.pauseVideo(this); if (eventList.getCarouselSizeInfo(this).viewLength > 0 && currDevice == 'desktop') eventList.setDimmedSlide(this); if (this.realIndex > 0) eventList.setMedia(this.realIndex); if (!lowNetwork) eventList.slideVideoPlay(); eventList.swiperArrowVisiblirity(); let nextIndex = (this.realIndex < this.slides.length - 1) ? (this.realIndex + 1) : 0; let nextCoverImg = this.slides[nextIndex].querySelector('.common-video__cover-image'); if (imageLoader && !nextCoverImg.classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia([nextCoverImg]); } }, transitionEnd: function () { setTimeout(() => { let carouselInfo = eventList.getCarouselSizeInfo(this); let lastIndex = this.slides.length - 1; let lastSlide = this.slides[lastIndex]; let lastBeforeSlide = this.slides[lastIndex - 1]; let isIndex = swiperObj.main.previousIndex; let isMoveSize = currDevice != 'mobile' ? carouselInfo.isMoveSize : carouselInfo.isMoveSize + Math.abs(carouselInfo.slideMargin); els.videoWrap[isIndex].video.pause(); if (carouselInfo.maxMoveSize == isMoveSize) { lastSlide.classList.add('is-last-slide'); lastBeforeSlide.classList.add('is-dimmed'); lastSlide.classList.remove('is-dimmed'); if (currDevice == 'mobile') { eventList.pauseVideo(this); if (!lowNetwork && ctaPlayStatus) { lastSlide.querySelector('video').play(); }; lastSlide.classList.add('swiper-slide-active'); lastBeforeSlide.classList.remove('swiper-slide-active'); } } else if (lastSlide.classList.contains('is-last-slide') && carouselInfo.lastBeforeSize == carouselInfo.isMoveSize) { lastSlide.classList.add('is-dimmed'); lastSlide.classList.remove('is-last-slide'); lastBeforeSlide.classList.remove('is-dimmed'); if (currDevice == 'mobile') { eventList.pauseVideo(this); if (!lowNetwork && ctaPlayStatus) { lastBeforeSlide.querySelector('video').play(); }; lastSlide.classList.remove('swiper-slide-active'); lastBeforeSlide.classList.add('swiper-slide-active'); } } }, 0); }, destroy: function (swiper) { if (swiper != null) { swiper.navigation.destroy(true); swiper.destroy(true); swiper = null; } }, }; const setTagging = { play: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('pause', 'play')); } }, pause: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('play', 'pause')); } } }; const accessibility = { slide: function (swiper) { for (let i = 0; i < swiper.slides.length; i++) { if (i != swiper.activeIndex) { utils.onAccessibility(swiper.slides[i]); } else { utils.offAccessibility(swiper.slides[i]); } } } }; return { init: init, } })();})();;(function () { window.flagship.features.interactiveCircleToSearch = (function () { const utils = window.flagship.common.utils, resize = window.flagship.common.resize; let els = {}; let objs = {}; let stepInfo = []; let scrollProgress = null; let isPlaySection = null; const init = function () { els.section = document.querySelector('.js-circle-to-search'); if (!!els.section) { setElements(); bindEvents(); } }; const setElements = function () { els.interactiveContent = els.section.querySelector('.js-interactive'); els.tutorialVideoContainer = els.section.querySelector('.common-interactive__tutorial'); els.videoList = els.tutorialVideoContainer.querySelectorAll('.common-interactive__tutorial-video'); els.videoWrap = els.tutorialVideoContainer.querySelectorAll('.common-interactive__tutorial-video .common-video'); els.videos = els.tutorialVideoContainer.querySelectorAll('.common-interactive__tutorial-video .common-video__video'); els.tooltipCta = els.tutorialVideoContainer.querySelectorAll('.js-tutorial-tooltip-cta'); els.tutorialReplay = els.tutorialVideoContainer.querySelector('.js-replay-cta'); }; const setProperty = function (el, index) { el.video = el.querySelector('video'); el.video.videoWrap = el; el.controller = el.querySelector('.js-video-control'); el.controller.video = el.querySelector('video'); el.alert = el.parentElement.querySelector('.common-tutorial__alert'); el.tooltip = el.parentElement.querySelector('.js-tutorial-tooltip'); el.tooltipCta = el.parentElement.querySelector('.js-tutorial-tooltip-cta'); el.video.playIndex = index; el.video.coverImage = el.querySelector('.common-video__cover-image'); }; const bindEvents = function () { for (let i = 0; i < els.videoWrap.length; i++) { setProperty(els.videoWrap[i], i); setStepStatus(els.videoList[i]) } setVideos(); eventList.videoController(); eventList.click(); eventList.setScroller(); eventHandler.scroll(); }; const setStepStatus = function (el) { stepInfo.push({ alert: el.getAttribute('data-alert'), tooltip: el.getAttribute('data-tooltip') }); }; const eventList = { setScroller: function () { if (els.interactiveContent.scene == null) { els.interactiveContent.scene = SCROLLER({ trackElement: els.interactiveContent, useFixed: false }); } }, scrollEvent: function () { if (els.interactiveContent.scene != null) { if (els.interactiveContent.classList.contains('is-tutorial-opened')) { els.interactiveContent.scene.trackAnimation(function () { scrollProgress = this.progress; let activeVideo = els.tutorialVideoContainer.querySelector('.is-visible video'); let firstVideoHandler = els.videoWrap[0].video.videoHandler; let replayStatus = !document.documentElement.classList.contains('low_network') && activeVideo.paused && !els.videoWrap[0].classList.contains(firstVideoHandler.endedClass) && !els.videoWrap[0].classList.contains(firstVideoHandler.pauseClass) && scrollProgress > 0 && scrollProgress < 100; let resetStatus = scrollProgress === 0 || scrollProgress === 100; if (replayStatus) { if (els.videoWrap[0].video.readyState == 4 && els.videoWrap[0].video.paused) { els.videoWrap[0].video.play(); } else { els.videoWrap[0].video.addEventListener('canplay', function() { els.videoWrap[0].video.play(); }, {once:true}); } } if (resetStatus) { activeVideo.pause(); activeVideo.currentTime = 0; eventList.tutorialReset(); } }); } } }, videoController: function () { for (let i = 0; i < objs.videos.length; i++) { objs.videos[i].controller.addEventListener('click', function () { if (this.video.paused) { this.video.play(); } else { this.video.pause(); } }); } }, nextVideoPlay: function (index) { if (!!els.videoList[index].tooltip) { utils.onAccessibility(els.videoList[index].tooltip); } els.videoList[index + 1].classList.add('is-visible'); utils.onAccessibility(els.videoList[index]); if (els.videos[index + 1].readyState > 3) { els.videos[index + 1].play(); } else { els.videos[index + 1].addEventListener('loadeddata', function () { if (this.paused) this.play(); }); } els.videoList[index].classList.remove('is-visible'); }, click: function () { let self = this; for (let i = 0; i < els.tooltipCta.length; i++) { els.tooltipCta[i].addEventListener('click', function () { self.nextVideoPlay(i); }); } }, tutorialReset: function () { let firstVideoHandler = els.videoWrap[0].video.videoHandler; els.videoWrap[0].classList.remove(firstVideoHandler.playClass); els.videoWrap[0].classList.remove(firstVideoHandler.pauseClass); els.videoWrap[0].classList.remove(firstVideoHandler.endedClass); // video wrap if (!els.videoList[0].classList.contains('is-visible')) { els.videoList[0].classList.add('is-visible'); } // tooltip if (!!els.videoWrap[0].tooltip && els.videoWrap[0].tooltip.classList.contains('is-visible')) { els.videoWrap[0].tooltip.classList.remove('is-visible'); } // tootip accessibility utils.offAccessibility(els.videoWrap[0]); if (!!els.videoWrap[0].tooltip) utils.onAccessibility(els.videoWrap[0].tooltip); for (let i = 0; i < els.videoWrap.length; i++) { if (i != 0) { if (els.videoList[i].classList.contains('is-visible')) { els.videoList[i].classList.remove('is-visible'); } if (!els.videoWrap[i].video.paused) { els.videoWrap[i].video.pause(); els.videoWrap[i].video.currentTime = 0; } // tooltip if (!!els.videoWrap[i].tooltip && els.videoWrap[i].tooltip.classList.contains('is-visible')) { els.videoWrap[i].tooltip.classList.remove('is-visible'); } utils.onAccessibility(els.videoWrap[i]); if (!!els.videoWrap[i].tooltip) utils.onAccessibility(els.videoWrap[i].tooltip); } } // replay cta els.tutorialReplay.style.display = 'none'; els.tutorialReplay.setAttribute('aria-hidden', true); els.tutorialReplay.setAttribute('tabindex', -1); } }; const eventHandler = { scroll: function () { window.addEventListener('scroll', eventList.scrollEvent); eventList.scrollEvent(); } } const setVideos = function () { objs.videos = []; for (let i = 0; i < els.videoWrap.length; i++) { let isVideoWrap = els.videoWrap[i]; objs.videos.push(utils.videoHandler({ wrap: isVideoWrap, video: isVideoWrap.video, controller: isVideoWrap.controller, resetCallback: function () { if (this.wrap.classList.contains('is-completed')) { this.wrap.classList.remove('is-completed'); if (this.controller.style.display = 'none') { this.controller.style.display = ''; } } }, playCallback: function () { els.videoList[this.video.playIndex].removeAttribute('tabindex'); els.videoList[this.video.playIndex].removeAttribute('aria-hidden'); this.controller.style.display = 'block'; utils.offAccessibility(this.controller); setTagging.pause(this.controller); let nextPlayindex = this.video.playIndex + 1; if ((els.videos.length - 1) > this.video.playIndex && els.videos[nextPlayindex].readyState < 4) { if (!els.videos[nextPlayindex].classList.contains('is-video-load-complete')) { videoLoader.setResponsiveMedia([els.videos[nextPlayindex]]); } if (!els.videos[nextPlayindex].coverImage.classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia([els.videos[nextPlayindex].coverImage]); } } }, pauseCallback: function () { setTagging.play(this.controller); }, endCallback: function () { if (!!this.wrap.tooltip && stepInfo[this.video.playIndex].tooltip == 'true') { let self = this; if (!!this.wrap.tooltipCta) this.wrap.tooltipCta.removeAttribute('disabled'); if (!!this.wrap.tooltip) this.wrap.tooltip.classList.add('is-visible'); utils.offAccessibility(this.wrap.tooltip); } if (!this.wrap.classList.contains('is-completed')) { this.wrap.classList.add('is-completed'); } this.controller.style.display = 'none'; if ((els.videos.length - 1) == this.video.playIndex) { els.tutorialReplay.style.display = 'block'; els.tutorialReplay.removeAttribute('tabindex'); els.tutorialReplay.removeAttribute('aria-hidden'); } } })); } }; const setTagging = { play: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('pause', 'play')); } }, pause: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('play', 'pause')); } } }; return { init: init } })();})();;(function () { window.flagship.features.interactiveInterpreter = (function () { const utils = window.flagship.common.utils, resize = window.flagship.common.resize; let els = {}; let objs = {}; let stepInfo = []; let scrollProgress = null; let isMute = null; let isPlaySection = null; const init = function () { els.section = document.querySelector('.js-interpreter'); if (!!els.section) { setElements(); bindEvents(); } }; const setElements = function () { els.interactiveContent = els.section.querySelector('.js-interactive'); els.tutorialVideoContainer = els.section.querySelector('.common-interactive__tutorial'); els.videoList = els.tutorialVideoContainer.querySelectorAll('.common-interactive__tutorial-video'); els.videoWrap = els.tutorialVideoContainer.querySelectorAll('.common-interactive__tutorial-video .common-video'); els.videos = els.tutorialVideoContainer.querySelectorAll('.common-interactive__tutorial-video .common-video__video'); els.tooltipCta = els.tutorialVideoContainer.querySelectorAll('.js-tutorial-tooltip-cta'); els.tutorialReplay = els.tutorialVideoContainer.querySelector('.js-replay-cta'); els.allVideoWrap = els.section.querySelectorAll('.js-video-wrap'); els.muteCta = els.section.querySelectorAll('.js-mute-cta'); // status isMute = !!els.muteCta && els.muteCta.length > 0; }; const setProperty = function (el, index) { el.video = el.querySelector('video'); el.video.videoWrap = el; el.controller = el.querySelector('.js-video-control'); el.controller.video = el.querySelector('video'); el.alert = el.parentElement.querySelector('.common-tutorial__alert'); el.tooltip = el.parentElement.querySelector('.js-tutorial-tooltip'); el.tooltipCta = el.parentElement.querySelector('.js-tutorial-tooltip-cta'); el.video.playIndex = index; el.video.coverImage = el.querySelector('.common-video__cover-image'); if (isMute) { el.muteCta = els.muteCta[index + 1]; } }; const bindEvents = function () { for (let i = 0; i < els.videoWrap.length; i++) { setProperty(els.videoWrap[i], i); setStepStatus(els.videoList[i]) } setVideos(); eventList.videoController(); eventList.click.tooltipCta(); eventList.setScroller(); eventHandler.scroll(); if (isMute) { muteEventHandler(); } }; const setStepStatus = function (el) { stepInfo.push({ alert: el.getAttribute('data-alert'), tooltip: el.getAttribute('data-tooltip') }); }; const muteEventHandler = function () { for (let i = 0; i < els.muteCta.length; i++) { muteEventList.setProperty(els.muteCta[i], i); muteEventList.setMuteBlindText(els.muteCta[i], i); muteEventList.click(els.muteCta[i], i); els.allVideoWrap[i].querySelector('video').style.pointerEvents = 'none'; } }; const muteEventList = { setProperty: function (muteCta, index) { muteCta.videoWrap = els.allVideoWrap[index]; muteCta.videoWrap.muteCta = muteCta; muteCta.video = els.allVideoWrap[index].querySelector('video'); muteCta.blind = muteCta.querySelector('.blind'); }, setMuteBlindText: function (muteCta) { muteCta.blind.innerText = muteCta.getAttribute('data-unmute');}, click: function (muteCta) { muteCta.addEventListener('click', function () { let isMute = this.video.muted; if (!!isMute) { this.classList.remove('is-muted'); this.classList.add('is-unmuted'); this.blind.innerText = this.getAttribute('data-mute'); this.video.muted = false; setTagging.mute(this); } else { this.classList.remove('is-unmuted'); this.classList.add('is-muted'); this.blind.innerText = this.getAttribute('data-unmute'); this.video.muted = true; setTagging.unmute(this); } }); }, }; const eventList = { setScroller: function () { if (els.interactiveContent.scene == null) { els.interactiveContent.scene = SCROLLER({ trackElement: els.interactiveContent, useFixed: false }); } }, scrollEvent: function () { if (els.interactiveContent.scene != null) { if (els.interactiveContent.classList.contains('is-tutorial-opened')) { els.interactiveContent.scene.trackAnimation(function () { scrollProgress = this.progress; let activeVideo = els.tutorialVideoContainer.querySelector('.is-visible video'); let firstVideoHandler = els.videoWrap[0].video.videoHandler; let replayStatus = !document.documentElement.classList.contains('low_network') && activeVideo.paused && !els.videoWrap[0].classList.contains(firstVideoHandler.endedClass) && !els.videoWrap[0].classList.contains(firstVideoHandler.pauseClass) && scrollProgress > 0 && scrollProgress < 100; let resetStatus = scrollProgress === 0 || scrollProgress === 100; if (replayStatus) { if (els.videoWrap[0].video.readyState == 4 && els.videoWrap[0].video.paused) { els.videoWrap[0].video.play(); } else { els.videoWrap[0].video.addEventListener('canplay', function() { els.videoWrap[0].video.play(); }, {once:true}); } } if (resetStatus) { activeVideo.pause(); activeVideo.currentTime = 0; eventList.tutorialReset(); } }); } } }, videoController: function () { for (let i = 0; i < objs.videos.length; i++) { objs.videos[i].controller.addEventListener('click', function () { if (this.video.paused) { this.video.play(); } else { this.video.pause(); } }); } }, nextVideoPlay: function (index) { if (!!els.videoList[index].tooltip) { utils.onAccessibility(els.videoList[index].tooltip); } els.videoList[index + 1].classList.add('is-visible'); utils.onAccessibility(els.videoList[index]); if (els.videos[index + 1].readyState > 3) { els.videos[index + 1].play(); } else { els.videos[index + 1].addEventListener('loadeddata', function () { if (this.paused) this.play(); }); } els.videoList[index].classList.remove('is-visible'); }, click: { tooltipCta: function () { for (let i = 0; i < els.tooltipCta.length; i++) { els.tooltipCta[i].addEventListener('click', function () { eventList.nextVideoPlay(i); }); } } }, tutorialReset: function () { let firstVideoHandler = els.videoWrap[0].video.videoHandler; els.videoWrap[0].classList.remove(firstVideoHandler.playClass); els.videoWrap[0].classList.remove(firstVideoHandler.pauseClass); els.videoWrap[0].classList.remove(firstVideoHandler.endedClass); // video wrap if (!els.videoList[0].classList.contains('is-visible')) { els.videoList[0].classList.add('is-visible'); } // tooltip if (!!els.videoWrap[0].tooltip && els.videoWrap[0].tooltip.classList.contains('is-visible')) { els.videoWrap[0].tooltip.classList.remove('is-visible'); } // tootip accessibility utils.offAccessibility(els.videoWrap[0]); if (!!els.videoWrap[0].tooltip) utils.onAccessibility(els.videoWrap[0].tooltip); for (let i = 0; i < els.videoWrap.length; i++) { if (i != 0) { if (els.videoList[i].classList.contains('is-visible')) { els.videoList[i].classList.remove('is-visible'); } if (!els.videoWrap[i].video.paused) { els.videoWrap[i].video.pause(); els.videoWrap[i].video.currentTime = 0; } // tooltip if (!!els.videoWrap[i].tooltip && els.videoWrap[i].tooltip.classList.contains('is-visible')) { els.videoWrap[i].tooltip.classList.remove('is-visible'); } utils.onAccessibility(els.videoWrap[i]); if (!!els.videoWrap[i].tooltip) utils.onAccessibility(els.videoWrap[i].tooltip); } } // replay cta els.tutorialReplay.style.display = 'none'; els.tutorialReplay.setAttribute('aria-hidden', true); els.tutorialReplay.setAttribute('tabindex', -1); } }; const eventHandler = { scroll: function () { window.addEventListener('scroll', eventList.scrollEvent); eventList.scrollEvent(); } } const setVideos = function () { objs.videos = []; for (let i = 0; i < els.videoWrap.length; i++) { let isVideoWrap = els.videoWrap[i]; objs.videos.push(utils.videoHandler({ wrap: isVideoWrap, video: isVideoWrap.video, controller: isVideoWrap.controller, resetCallback: function () { if (this.wrap.classList.contains('is-completed')) { this.wrap.classList.remove('is-completed'); if (this.controller.style.display = 'none') { this.controller.style.display = ''; } } }, playCallback: function () { els.videoList[this.video.playIndex].removeAttribute('tabindex'); els.videoList[this.video.playIndex].removeAttribute('aria-hidden'); utils.offAccessibility(this.wrap.muteCta);if (!this.video.muted) {this.wrap.muteCta.classList.remove('is-unmuted');this.wrap.muteCta.video.muted = true;this.wrap.muteCta.blind.innerText = this.wrap.muteCta.getAttribute('data-unmute');setTagging.unmute(this.wrap.muteCta);} this.controller.style.display = 'block'; utils.offAccessibility(this.controller); setTagging.pause(this.controller); let nextPlayindex = this.video.playIndex + 1; if ((els.videos.length - 1) > this.video.playIndex && els.videos[nextPlayindex].readyState < 4) { if (!els.videos[nextPlayindex].classList.contains('is-video-load-complete')) { videoLoader.setResponsiveMedia([els.videos[nextPlayindex]]); } if (!els.videos[nextPlayindex].coverImage.classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia([els.videos[nextPlayindex].coverImage]); } } }, pauseCallback: function () { setTagging.play(this.controller); }, endCallback: function () { if (!!this.wrap.tooltip && stepInfo[this.video.playIndex].tooltip == 'true') { let self = this; if (!!this.wrap.tooltipCta) this.wrap.tooltipCta.removeAttribute('disabled'); if (!!this.wrap.tooltip) this.wrap.tooltip.classList.add('is-visible'); utils.offAccessibility(this.wrap.tooltip); } if (!this.wrap.classList.contains('is-completed')) { this.wrap.classList.add('is-completed'); } this.controller.style.display = 'none'; if ((els.videos.length - 1) == this.video.playIndex) { els.tutorialReplay.style.display = 'block'; els.tutorialReplay.removeAttribute('tabindex'); els.tutorialReplay.removeAttribute('aria-hidden'); } } })); } }; const setTagging = { play: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('pause', 'play')); } }, pause: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('play', 'pause')); } }, mute: function (targetCta) { if (targetCta.hasAttribute('data-omni')) { let dataOmni = targetCta.getAttribute('data-omni').toLowerCase(); targetCta.setAttribute('data-omni', dataOmni.replace('unmute', 'mute')); } if (targetCta.hasAttribute('ga-la')) { let gaLa = targetCta.getAttribute('ga-la').toLowerCase(); targetCta.setAttribute('ga-la', gaLa.replace('unmute', 'mute')); } },unmute: function (targetCta) { if (targetCta.hasAttribute('data-omni')) { let dataOmni = targetCta.getAttribute('data-omni').toLowerCase(); targetCta.setAttribute('data-omni', dataOmni.replace('mute', 'unmute')); } if (targetCta.hasAttribute('ga-la')) { let gaLa = targetCta.getAttribute('ga-la').toLowerCase(); targetCta.setAttribute('ga-la', gaLa.replace('mute', 'unmute')); } }, }; return { init: init } })();})();;(function () { window.flagship.features.interactiveNoteAssist = (function () { const utils = window.flagship.common.utils, resize = window.flagship.common.resize; let els = {}; let objs = {}; let stepInfo = []; let scrollProgress = null; let isPlaySection = null; const init = function () { els.section = document.querySelector('.js-note-assist'); if (!!els.section) { setElements(); bindEvents(); } }; const setElements = function () { els.interactiveContent = els.section.querySelector('.js-interactive'); els.tutorialVideoContainer = els.section.querySelector('.common-interactive__tutorial'); els.videoList = els.tutorialVideoContainer.querySelectorAll('.common-interactive__tutorial-video'); els.videoWrap = els.tutorialVideoContainer.querySelectorAll('.common-interactive__tutorial-video .common-video'); els.videos = els.tutorialVideoContainer.querySelectorAll('.common-interactive__tutorial-video .common-video__video'); els.tooltipCta = els.tutorialVideoContainer.querySelectorAll('.js-tutorial-tooltip-cta'); els.tutorialReplay = els.tutorialVideoContainer.querySelector('.js-replay-cta'); }; const setProperty = function (el, index) { el.video = el.querySelector('video'); el.video.videoWrap = el; el.controller = el.querySelector('.js-video-control'); el.controller.video = el.querySelector('video'); el.alert = el.parentElement.querySelector('.common-tutorial__alert'); el.tooltip = el.parentElement.querySelector('.js-tutorial-tooltip'); el.tooltipCta = el.parentElement.querySelector('.js-tutorial-tooltip-cta'); el.video.playIndex = index; el.video.coverImage = el.querySelector('.common-video__cover-image'); }; const bindEvents = function () { for (let i = 0; i < els.videoWrap.length; i++) { setProperty(els.videoWrap[i], i); setStepStatus(els.videoList[i]) } setVideos(); eventList.videoController(); eventList.click(); eventList.setScroller(); eventHandler.scroll(); }; const setStepStatus = function (el) { stepInfo.push({ alert: el.getAttribute('data-alert'), tooltip: el.getAttribute('data-tooltip') }); }; const eventList = { setScroller: function () { if (els.interactiveContent.scene == null) { els.interactiveContent.scene = SCROLLER({ trackElement: els.interactiveContent, useFixed: false }); } }, scrollEvent: function () { if (els.interactiveContent.scene != null) { if (els.interactiveContent.classList.contains('is-tutorial-opened')) { els.interactiveContent.scene.trackAnimation(function () { scrollProgress = this.progress; let activeVideo = els.tutorialVideoContainer.querySelector('.is-visible video'); let firstVideoHandler = els.videoWrap[0].video.videoHandler; let replayStatus = !document.documentElement.classList.contains('low_network') && activeVideo.paused && !els.videoWrap[0].classList.contains(firstVideoHandler.endedClass) && !els.videoWrap[0].classList.contains(firstVideoHandler.pauseClass) && scrollProgress > 0 && scrollProgress < 100; let resetStatus = scrollProgress === 0 || scrollProgress === 100; if (replayStatus) { if (els.videoWrap[0].video.readyState == 4 && els.videoWrap[0].video.paused) { els.videoWrap[0].video.play(); } else { els.videoWrap[0].video.addEventListener('canplay', function() { els.videoWrap[0].video.play(); }, {once:true}); } } if (resetStatus) { activeVideo.pause(); activeVideo.currentTime = 0; eventList.tutorialReset(); } }); } } }, videoController: function () { for (let i = 0; i < objs.videos.length; i++) { objs.videos[i].controller.addEventListener('click', function () { if (this.video.paused) { this.video.play(); } else { this.video.pause(); } }); } }, nextVideoPlay: function (index) { if (!!els.videoList[index].tooltip) { utils.onAccessibility(els.videoList[index].tooltip); } els.videoList[index + 1].classList.add('is-visible'); utils.onAccessibility(els.videoList[index]); if (els.videos[index + 1].readyState > 3) { els.videos[index + 1].play(); } else { els.videos[index + 1].addEventListener('loadeddata', function () { if (this.paused) this.play(); }); } els.videoList[index].classList.remove('is-visible'); }, click: function () { let self = this; for (let i = 0; i < els.tooltipCta.length; i++) { els.tooltipCta[i].addEventListener('click', function () { self.nextVideoPlay(i); }); } }, tutorialReset: function () { let firstVideoHandler = els.videoWrap[0].video.videoHandler; els.videoWrap[0].classList.remove(firstVideoHandler.playClass); els.videoWrap[0].classList.remove(firstVideoHandler.pauseClass); els.videoWrap[0].classList.remove(firstVideoHandler.endedClass); // video wrap if (!els.videoList[0].classList.contains('is-visible')) { els.videoList[0].classList.add('is-visible'); } // tooltip if (!!els.videoWrap[0].tooltip && els.videoWrap[0].tooltip.classList.contains('is-visible')) { els.videoWrap[0].tooltip.classList.remove('is-visible'); } // tootip accessibility utils.offAccessibility(els.videoWrap[0]); if (!!els.videoWrap[0].tooltip) utils.onAccessibility(els.videoWrap[0].tooltip); for (let i = 0; i < els.videoWrap.length; i++) { if (i != 0) { if (els.videoList[i].classList.contains('is-visible')) { els.videoList[i].classList.remove('is-visible'); } if (!els.videoWrap[i].video.paused) { els.videoWrap[i].video.pause(); els.videoWrap[i].video.currentTime = 0; } // tooltip if (!!els.videoWrap[i].tooltip && els.videoWrap[i].tooltip.classList.contains('is-visible')) { els.videoWrap[i].tooltip.classList.remove('is-visible'); } utils.onAccessibility(els.videoWrap[i]); if (!!els.videoWrap[i].tooltip) utils.onAccessibility(els.videoWrap[i].tooltip); } } // replay cta els.tutorialReplay.style.display = 'none'; els.tutorialReplay.setAttribute('aria-hidden', true); els.tutorialReplay.setAttribute('tabindex', -1); } }; const eventHandler = { scroll: function () { window.addEventListener('scroll', eventList.scrollEvent); eventList.scrollEvent(); } } const setVideos = function () { objs.videos = []; for (let i = 0; i < els.videoWrap.length; i++) { let isVideoWrap = els.videoWrap[i]; objs.videos.push(utils.videoHandler({ wrap: isVideoWrap, video: isVideoWrap.video, controller: isVideoWrap.controller, resetCallback: function () { if (this.wrap.classList.contains('is-completed')) { this.wrap.classList.remove('is-completed'); if (this.controller.style.display = 'none') { this.controller.style.display = ''; } } }, playCallback: function () { els.videoList[this.video.playIndex].removeAttribute('tabindex'); els.videoList[this.video.playIndex].removeAttribute('aria-hidden'); this.controller.style.display = 'block'; utils.offAccessibility(this.controller); setTagging.pause(this.controller); let nextPlayindex = this.video.playIndex + 1; if ((els.videos.length - 1) > this.video.playIndex && els.videos[nextPlayindex].readyState < 4) { if (!els.videos[nextPlayindex].classList.contains('is-video-load-complete')) { videoLoader.setResponsiveMedia([els.videos[nextPlayindex]]); } if (!els.videos[nextPlayindex].coverImage.classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia([els.videos[nextPlayindex].coverImage]); } } }, pauseCallback: function () { setTagging.play(this.controller); }, endCallback: function () { if (!!this.wrap.tooltip && stepInfo[this.video.playIndex].tooltip == 'true') { if (!!this.wrap.tooltipCta) this.wrap.tooltipCta.removeAttribute('disabled'); if (!!this.wrap.tooltip) this.wrap.tooltip.classList.add('is-visible'); utils.offAccessibility(this.wrap.tooltip); } if (!this.wrap.classList.contains('is-completed')) { this.wrap.classList.add('is-completed'); } this.controller.style.display = 'none'; if ((els.videos.length - 1) == this.video.playIndex) { els.tutorialReplay.style.display = 'block'; els.tutorialReplay.removeAttribute('tabindex'); els.tutorialReplay.removeAttribute('aria-hidden'); } } })); } }; const setTagging = { play: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('pause', 'play')); } }, pause: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('play', 'pause')); } } }; return { init: init } })();})();;(function () { window.flagship.features.interactive = (function () { const utils = window.flagship.common.utils, resize = window.flagship.common.resize; let els = {}, prevDevice = null, currDevice = resize.checkResolution(), scrollProgress = null; const init = function () { els.interactiveContents = document.querySelectorAll('.js-interactive'); if (!!els.interactiveContents && els.interactiveContents.length > 0) { for (let i = 0; i < els.interactiveContents.length; i++) { setProperty(els.interactiveContents[i], i); eventList.setIntroVideo(els.interactiveContents[i]); eventList.setIntroScene(els.interactiveContents[i]); bindEvents(els.interactiveContents[i], i); } } }; const setProperty = function (content, index) { // introVideo content.index = index; content.introVideo = content.querySelector('.js-interactive-intro-video video'); content.introVideo.videoWrap = content.querySelector('.js-interactive-intro-video'); content.introVideo.wrap = content.querySelector('.js-interactive-intro-video .js-video-wrap'); content.introVideo.parentWrap = content.parentElement; content.introVideo.controllerCta = content.introVideo.videoWrap.querySelector('.js-video-control'); content.introVideo.controllerCta.video = content.introVideo; content.introVideo.tooltip = content.querySelector('.js-tutorial-tooltip'); content.introVideo.tooltipCta = content.querySelector('.js-tutorial-tooltip-cta'); content.introVideo.tooltipCta.parentWrap = content; content.tutorialContentWrap = content.querySelectorAll('.js-tutorial-video'); content.tutorialContentWrap.tooltip = content.querySelectorAll('.js-tutorial-video .js-tutorial-tooltip'); // start, reverse point content.introVideo.wrap.startPoint = !!content.introVideo.wrap.getAttribute('data-start-point') ? parseInt(content.introVideo.wrap.getAttribute('data-start-point')) : undefined; content.introVideo.wrap.reversePoint = !!content.introVideo.wrap.getAttribute('data-reverse-point') ? parseInt(content.introVideo.wrap.getAttribute('data-reverse-point')) : undefined; content.introVideo.wrap.moStartPoint = !!content.introVideo.wrap.getAttribute('data-mo-start-point') ? parseInt(content.introVideo.wrap.getAttribute('data-mo-start-point')) : undefined; content.introVideo.wrap.moReversePoint = !!content.introVideo.wrap.getAttribute('data-mo-reverse-point') ? parseInt(content.introVideo.wrap.getAttribute('data-mo-reverse-point')) : undefined; // replayCta content.replayCta = content.querySelector('.js-replay-cta'); content.replayCta.parentWrap = content; }; const bindEvents = function (content, i) { eventHandler.click.introTooltipCta(content.introVideo.tooltipCta); eventHandler.click.replayCta(content.replayCta); eventHandler.click.videoController(content.introVideo.controllerCta); eventHandler.scroll(content); eventList.scroll(content); resize.add(function (currRes) { eventList.resize(currRes, content); }); }; const eventList = { setIntroVideo: function (content) { utils.videoHandler({ playType: 'scrollPlay', startPoint: content.introVideo.wrap.startPoint, reversePoint: content.introVideo.wrap.reversePoint, wrap: content.introVideo.wrap, video: content.introVideo, controller: content.introVideo.controllerCta, resetCallback: function () { if (this.wrap.classList.contains('is-completed')) { this.wrap.classList.remove('is-completed'); } if (this.wrap.classList.contains('is-started')) { this.wrap.classList.remove('is-started'); } if (this.video.tooltip.classList.contains('is-visible')) { this.video.tooltip.classList.remove('is-visible'); } content.introVideo.tooltip.classList.remove('is-visible'); utils.onAccessibility(content.introVideo.tooltip); utils.offAccessibility(content.introVideo.videoWrap); if (content.introVideo.controllerCta.style.display == 'none') { content.introVideo.controllerCta.style.display = 'block'; } }, playCallback: function () { if (!this.wrap.classList.contains('is-started')) { this.wrap.classList.add('is-started'); } setTagging.pause(this.controller); let videoWrap = content.tutorialContentWrap[0].querySelector('.js-video-wrap'); videoWrap.coverImg = videoWrap.querySelector('.common-video__cover-image'); videoWrap.video = videoWrap.querySelector('video'); if (!!videoWrap.coverImg && !videoWrap.coverImg.classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia([videoWrap.coverImg]); } if (!!videoWrap.video && !videoWrap.video.classList.contains('is-video-load-complete')) { videoLoader.setResponsiveMedia([videoWrap.video]); } }, pauseCallback: function () { setTagging.play(this.controller); }, endCallback: function () { let self = this; if (!this.wrap.classList.contains('is-completed')) { this.wrap.classList.add('is-completed'); } this.controller.style.display = 'none'; this.video.tooltip.classList.add('is-visible'); utils.offAccessibility(this.video.tooltip); } }); }, setIntroScene: function (content) { content.introVideo.scene = SCROLLER({ trackElement: content.introVideo, useFixed: false, resize: utils.detector.isTouchDevice ? false : true }); }, scroll: function (content) { if (!content.classList.contains('is-tutorial-opened')) { content.introVideo.scene.trackAnimation(function () { content.introVideo.videoHandler.scrollActive(this.progress); scrollProgress = this.progress; }); } }, click: { introVideoTooltipCta: function () { let content = this.parentWrap; content.classList.add('is-tutorial-opened'); content.introVideo.tooltip.classList.remove('is-visible'); utils.onAccessibility(content.introVideo.videoWrap); content.tutorialContentWrap[0].classList.add('is-visible'); utils.offAccessibility(content.tutorialContentWrap[0]); let videoWrap = content.tutorialContentWrap[0].querySelector('.js-video-wrap'); videoWrap.video.play(); }, replayCta: function () { let content = this.parentWrap; content.replayCta.style.display = 'none'; content.replayCta.setAttribute('aria-hidden', true); content.replayCta.setAttribute('tabindex', -1); for (let i = 0; i < content.tutorialContentWrap.length; i++) { content.tutorialContentWrap[i].classList.remove('is-visible'); if (!!content.tutorialContentWrap.tooltip[i]) { content.tutorialContentWrap.tooltip[i].classList.remove('is-visible'); } utils.onAccessibility(content.tutorialContentWrap[i]); setTimeout(function () { content.tutorialContentWrap[i].querySelector('video').currentTime = 0; }, 300); } content.introVideo.controllerCta.style.display = 'block'; content.introVideo.tooltip.classList.remove('is-visible'); utils.offAccessibility(content.introVideo.videoWrap); utils.onAccessibility(content.introVideo.tooltip); content.classList.remove('is-tutorial-opened'); content.introVideo.play(); }, videoController: function (e) { if (e.target == e.currentTarget) { if (e.currentTarget.video.paused) { e.currentTarget.video.play(); } else { e.currentTarget.video.pause(); } } }, }, reset: function (content) { if (content.classList.contains('is-tutorial-opened')) { content.classList.remove('is-tutorial-opened'); } // replay cta if (content.replayCta.style.display == 'block') { content.replayCta.style.display = 'none'; content.replayCta.setAttribute('aria-hidden', true); content.replayCta.setAttribute('tabindex', -1); } // tutorial video let tutorialWrap = content.tutorialContentWrap; for (let i = 0; i < tutorialWrap.length; i++) { tutorialWrap[i].classList.remove('is-visible'); utils.onAccessibility(tutorialWrap[i]); // video tutorialWrap[i].video = tutorialWrap[i].querySelector('video'); if (!tutorialWrap[i].video.paused) { tutorialWrap[i].video.pause(); tutorialWrap[i].video.currentTime = 0; } // tooltip if (!!tutorialWrap.tooltip[i]) { if (tutorialWrap.tooltip[i].classList.contains('is-visible')) { tutorialWrap.tooltip[i].classList.remove('is-visible'); } utils.onAccessibility(tutorialWrap.tooltip[i]); } } // intro video utils.offAccessibility(content.introVideo.videoWrap); if (content.introVideo.controllerCta.style.display == 'none') { content.introVideo.controllerCta.style.display = 'block'; } // intro tooltip if (content.introVideo.tooltip.classList.contains('is-visible')) { content.introVideo.tooltip.classList.remove('is-visible') } if (scrollProgress >= 40 && scrollProgress <= 60) { if (content.introVideo.paused) { content.introVideo.currentTime = 0; content.introVideo.play(); } } }, resize: function (currRes, content) { currDevice = currRes; if (prevDevice != currDevice) { eventList.reset(content); } prevDevice = currDevice; }, }; const eventHandler = { click: { replayCta: function (replayCta) { replayCta.addEventListener('click', eventList.click.replayCta); }, introTooltipCta: function (introTooltipCta) { introTooltipCta.addEventListener('click', eventList.click.introVideoTooltipCta); }, videoController: function (introVideoController) { introVideoController.addEventListener('click', eventList.click.videoController); } }, scroll: function (content) { window.addEventListener('scroll', function () { eventList.scroll(content); }); } }; const setTagging = { play: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('pause', 'play')); } }, pause: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('play', 'pause')); } } }; return { init: init } })();})();(function () { window.flagship.features.moveFeature = (function () { const utils = window.flagship.common.utils; let els = {}; const init = function () { els.jumpCta = document.querySelectorAll('.js-jump-cta'); if (!!els.jumpCta) { setProperty(); bindEvents(); } }; const setProperty = function () { for (let i = 0; i < els.jumpCta.length; i++) { els.jumpCta[i].sectionId = els.jumpCta[i].getAttribute('href'); els.jumpCta[i].section = document.querySelector(`${els.jumpCta[i].sectionId}`); els.jumpCta[i].returnCta = els.jumpCta[i].section.querySelector('.js-return-cta'); els.jumpCta[i].returnCta.jumpCta = els.jumpCta[i]; els.jumpCta[i].returnCta.section = els.jumpCta[i].section; } }; const bindEvents = function () { eventHandler.click(); eventList.setScene(); eventHandler.scroll(); }; const eventHandler = { click: function () { for (let i = 0; i < els.jumpCta.length; i++) { els.jumpCta[i].addEventListener('click', eventList.clickJumpCta); els.jumpCta[i].returnCta.addEventListener('click', eventList.clickReturnCta); } }, scroll: function () { window.addEventListener('scroll', eventList.hideReturnCta); } }; const eventList = { setScene: function () { for(let i=0; i

swiper.slides.length -1 ? swiper.slides.length -1 : index + 1; let videoLength = swiper.el.querySelectorAll('video').length - 1; let imageLength = swiper.el.querySelectorAll('img').length - 1; let videoloadComplateLength = swiper.el.querySelectorAll('.is-video-load-complete').length - 1; let imageloadComplateLength = swiper.el.querySelectorAll('.is-img-load-complete').length - 1; let nextVideo = swiper.slides[isIndex].querySelector('video'); let nextImage = swiper.slides[isIndex].querySelector('img'); if (videoloadComplateLength != videoLength) { if (!!nextVideo) { videoLoader.setResponsiveMedia([nextVideo]); } } if (imageloadComplateLength != imageLength) { if (!!nextImage) { imageLoader.setResponsiveMedia([nextImage]); } } }, resetVideo: function(swiper) { for (let i = 0; i < swiper.slides.length; i++) { let isVideo = swiper.slides[i].video; if (!!isVideo && !isVideo.paused) { isVideo.pause(); isVideo.currentTime = 0; }; }; }, getCarouselSizeInfo: function(swiper) { let slideLength = swiper.slides.length; let slideWidth = swiper.slides[0].clientWidth; let slideMargin = parseInt(window.getComputedStyle(swiper.slides[0]).margin.split(' ')[isRtl ? 3 : 1]); let slideSize = slideWidth + slideMargin; let maxMoveSize = ((slideSize * slideLength) - slideMargin) - swiper.wrapperEl.clientWidth; let viewWidth = swiper.wrapperEl.clientWidth; let viewLength = parseInt((viewWidth + slideMargin)/slideSize); let lastBeforeSize = slideLength == 2 ? 0 : Math.abs((maxMoveSize - slideSize)) + Math.abs((viewWidth - slideWidth)); let isMoveSize = Math.abs(parseInt(window.getComputedStyle(swiper.wrapperEl).transform.split(',')[4])); return { slideWidth: slideWidth, slideMargin: slideMargin, slideSize: slideSize, maxMoveSize: maxMoveSize, viewWidth: viewWidth, viewLength: viewLength, lastBeforeSize: lastBeforeSize, isMoveSize: isMoveSize } }, setDimmedSlide: function(swiper) { if (currDevice != 'mobile') { for (let i = 0; i < swiper.slides.length; i++) { let dimmedSlide = (swiper.activeIndex) > i || (swiper.activeIndex + (eventList.getCarouselSizeInfo(swiper).viewLength - 1)) < i; if (dimmedSlide) { swiper.slides[i].classList.add(dimmedClass); } else { swiper.slides[i].classList.remove(dimmedClass); } } } }, slideChange: function () { accessibility.slide(this); eventList.resetVideo(this); if (eventList.getCarouselSizeInfo(this).viewLength > 0 && currDevice != 'mobile') eventList.setDimmedSlide(this); if (this.realIndex > 0) eventList.setMedia(this, this.realIndex); }, transitionEnd: function() { if (this.slides.length < 3 && currDevice == 'mobile') return; setTimeout(() => { let carouselInfo = eventList.getCarouselSizeInfo(this); let lastIndex = this.slides.length -1; let lastSlide = this.slides[lastIndex]; let lastBeforeSlide = this.slides[lastIndex - 1]; if (carouselInfo.isMoveSize > carouselInfo.lastBeforeSize || carouselInfo.maxMoveSize == carouselInfo.isMoveSize) { eventList.resetVideo(this); lastSlide.classList.add('is-last-slide'); lastBeforeSlide.classList.add('is-dimmed'); lastSlide.classList.remove('is-dimmed'); utils.offAccessibility(this.slides[lastIndex]); utils.onAccessibility(this.slides[lastIndex - 1]); } else if (lastSlide.classList.contains('is-last-slide') && carouselInfo.lastBeforeSize == carouselInfo.isMoveSize) { eventList.resetVideo(this); lastSlide.classList.add('is-dimmed'); lastSlide.classList.remove('is-last-slide'); lastBeforeSlide.classList.remove('is-dimmed'); utils.onAccessibility(this.slides[lastIndex]); utils.offAccessibility(this.slides[lastIndex - 1]); } let swiperActiveSlide = els.section.querySelector('.swiper-slide-active'); let lastSlideActive = els.section.querySelector('.is-last-slide'); let isActiveSlide = !!lastSlideActive ? lastSlideActive : swiperActiveSlide; let isActiveVideo = isActiveSlide.querySelector('video'); if (!!isActiveVideo && !isLowBand) isActiveVideo.play() }, 0); }, setScene: function() { els.section.scene = SCROLLER({ trackElement: els.section }); }, setVideoType: function() { if (!!els.videos) { for (let i = 0; i < els.videos.length; i++) { els.videos[i].videoHandler.playType = 'scrollPlay'; } } }, scroll: function() { els.section.scene.trackAnimation(function() { let swiperActiveSlide = els.section.querySelector('.swiper-slide-active'); let lastSlideActive = els.section.querySelector('.is-last-slide'); let isActiveSlide = !!lastSlideActive ? lastSlideActive : swiperActiveSlide; let isActiveVideo = isActiveSlide.querySelector('video'); if (!!isActiveVideo && !isLowBand) isActiveVideo.videoHandler.scrollActive(this.progress); }); } }; const accessibility = { slide: function (swiper) { for (let i = 0; i < swiper.slides.length; i++) { if (i != swiper.activeIndex) { utils.onAccessibility(swiper.slides[i]); } else { utils.offAccessibility(swiper.slides[i]); } } } }; return { init: init } })();})();;(function () { window.flagship.features.viewer = (function () { const utils = window.flagship.common.utils, resize = window.flagship.common.resize, common = window.flagship.features.common, isLow = utils.isLowNetwork(); let els = {}, currDevice = resize.checkResolution(); const init = function () { els.viewerBtn = document.querySelector('.viewer-btn'); els.section = document.querySelector('.js-colors'); els.popup = document.querySelector('.js-viewer'); if (!!isLow) { if (!els.viewerBtn) return; els.currentWrap = els.popup; setElements(); setProperty(); popupEvents.set(); bindEvents(); } else { if (!els.section) return; els.currentWrap = els.section; setElements(); setProperty(); bindEvents(); } }; const setElements = function () { els.wrapEl = document.querySelector('#wrap'); els.contents = document.querySelector('#contents'); // popup els.popupWrap = els.currentWrap.querySelector('.js-viewer-wrap'); els.popupInner = els.currentWrap.querySelector('.js-viewer-inner'); els.closeCta = els.currentWrap.querySelector('.js-viewer-close'); els.popupContents = els.currentWrap.querySelector('.js-viewer-contents'); // popup-scroll els.popupScroll = els.currentWrap.querySelector('.js-viewer-scroll'); els.popupScrollUpBtn = els.currentWrap.querySelector('.js-scroll-up'); els.popupScrollDownBtn = els.currentWrap.querySelector('.js-scroll-down'); // viewer els.viewerIframe = els.currentWrap.querySelector('iframe'); els.foldBtn = els.currentWrap.querySelector('.js-fold-btn'); els.resetBtn = els.currentWrap.querySelector('.js-reset-btn'); // angle preset els.presetOpen = els.currentWrap.querySelector('.js-preset-open'); els.presetClose = els.currentWrap.querySelector('.js-preset-close'); els.presetLayer = els.currentWrap.querySelector('.js-preset-layer'); els.angleCta = els.currentWrap.querySelectorAll('.js-angle-cta'); }; const setProperty = function () { // timeout els.resizeTimeout = null; els.resizeInnerTimeout = null; els.viewerOpener = null; els.viewerIframe.isHash = false; els.viewerIframe.isIntroposeReady = false; els.viewerIframe.isFold = false; els.viewerIframe.resetTimeout = null; }; const bindEvents = function () { eventHandler.load(); eventHandler.message(); eventHandler.click(); resize.add(eventList.resize); if (!isLow) { eventList.setScene(); } }; const eventHandler = { load: function () { window.addEventListener('DOMContentLoaded', eventList.load, { once: true }); }, message: function () { window.addEventListener('message', eventList.receiveV3DMessage, false); }, click: function () { if (!!isLow) { els.popupScroll.addEventListener('click', eventList.clickLayerScroll); } els.foldBtn && els.foldBtn.addEventListener('click', eventList.clickFold); els.resetBtn && els.resetBtn.addEventListener('click', eventList.clickReset); els.presetOpen && els.presetOpen.addEventListener('click', eventList.openPresetPopup); for (let i = 0; i < els.angleCta.length; i++) { els.angleCta[i].addEventListener('click', eventList.setAngle); } els.contents.addEventListener('click', function (e) { if (e.target.classList.contains('js-reset-btn') || e.target.classList.contains('js-fold-btn') || e.target.classList.contains('js-preset-open') || e.target.closest('.js-preset-layer')) return; eventList.closePresetPopup(); }); }, scroll: function () { window.addEventListener('scroll', eventList.runIntroPose); } }; const eventList = { load: function () { if (!!isLow) { eventList.innerWrapHeight(); eventList.layerScroll(); } accessibility.fold.ariaLabel(); eventList.setFoldClass(); }, receiveV3DMessage: function (e) { if (e.data == 'V3D.state.popOpen') { if (currDevice.indexOf('mobile') > -1 || currDevice == 'tablet') { if (els.closeCta) { if (!els.popupWrap.classList.contains('is-popup-opened')) els.popupWrap.classList.add('is-popup-opened'); els.closeCta.setAttribute('tabindex', '-1'); els.closeCta.setAttribute('aria-hidden', 'true'); els.closeCta.setAttribute('disabled', 'disabled'); } } } else if (e.data == 'V3D.state.popClose') { if (currDevice.indexOf('mobile') > -1 || currDevice == 'tablet') { if (els.closeCta) { if (els.popupWrap.classList.contains('is-popup-opened')) els.popupWrap.classList.remove('is-popup-opened'); els.closeCta.removeAttribute('tabindex'); els.closeCta.removeAttribute('aria-hidden'); els.closeCta.removeAttribute('disabled'); } } } else if (e.data == 'V3D.state.introPose.ready') { if (!isLow) { els.viewerIframe.isIntroposeReady = true; eventHandler.scroll(); eventList.runIntroPose(); } else { els.viewerIframe && els.viewerIframe.contentWindow.postMessage('V3D.introPose.run', '*'); } } else if (e.data == 'V3D.state.localData.ready') { els.viewerIframe && els.viewerIframe.contentWindow.postMessage(JSON.stringify(V3DLOCALDATA), '*'); } else if (e.data == 'V3D.state.actionPose.0') { els.viewerIframe.isFold = true; eventList.setFoldClass(); } else if (e.data == 'V3D.state.actionPose.1') { els.viewerIframe.isFold = false; eventList.setFoldClass(); } else if (e.data == 'V3D.event.pointerdown') { eventList.closePresetPopup(); } }, resize: function (currRes) { currDevice = currRes; if (utils.detector.isTouchDevice && !utils.detector.isIosDevice) eventList.innerWrapHeight(); eventList.layerScroll(); }, innerWrapHeight: function () { clearTimeout(els.resizeInnerTimeout); els.resizeInnerTimeout = setTimeout(function () { if (els.popupInner) { els.popupInner.style.height = parseInt(window.innerHeight * 0.9) + 'px'; } }, 0); }, layerScroll: function () { clearTimeout(els.resizeTimeout); els.resizeTimeout = setTimeout(function () { eventList.setLayerScroll(); }, 300); }, setLayerScroll: function () { if (!els.popupContents) return; if (els.popupContents.scrollHeight > els.popupContents.clientHeight) { utils.offAccessibility(els.popupScroll); els.popupScroll && els.popupScroll.classList.add('is-scroll-btn'); } else { utils.onAccessibility(els.popupScroll); els.popupScroll && els.popupScroll.classList.remove('is-scroll-btn'); } }, clickLayerScroll: function (e) { e && e.preventDefault(); if (e.target.matches('.js-scroll-btn')) { let scrollDown = e.target.classList.contains('js-scroll-down'), $popupContents = $(els.popupContents); if (scrollDown) { $popupContents.stop().animate({ scrollTop: $popupContents.scrollTop() + 100 }, { duration: 300, complete: function () { eventList.updateLayerScroll(true); } }); } else { $popupContents.stop().animate({ scrollTop: $popupContents.scrollTop() - 100 }, { duration: 300, complete: function () { eventList.updateLayerScroll(true); } }); } } }, updateLayerScroll: function (isClicked) { const offsetTop = els.popupContents.scrollTop, layerBottom = els.popupContents.scrollHeight - els.popupContents.clientHeight; els.popupScrollUpBtn.removeAttribute('tabindex'); els.popupScrollUpBtn.removeAttribute('aria-hidden'); els.popupScrollUpBtn.removeAttribute('disabled'); els.popupScrollDownBtn.removeAttribute('tabindex'); els.popupScrollDownBtn.removeAttribute('aria-hidden'); els.popupScrollDownBtn.removeAttribute('disabled'); if (offsetTop == 0) { isClicked && els.popupScrollDownBtn && els.popupScrollDownBtn.focus(); els.popupScrollUpBtn.setAttribute('tabindex', '-1'); els.popupScrollUpBtn.setAttribute('aria-hidden', 'true'); els.popupScrollUpBtn.setAttribute('disabled', 'disabled'); } else if (offsetTop >= layerBottom - 1) { isClicked && els.popupScrollUpBtn && els.popupScrollUpBtn.focus(); els.popupScrollDownBtn.setAttribute('tabindex', '-1'); els.popupScrollDownBtn.setAttribute('aria-hidden', 'true'); els.popupScrollDownBtn.setAttribute('disabled', 'disabled'); } }, setScene: function () { els.sceneObj = SCROLLER({ trackElement: els.section, useFixed: false }); }, runIntroPose: function () { els.sceneObj.trackAnimation(function () { let progress = currDevice.indexOf('mobile') > -1 ? 50 : 30; if (this.progress >= progress && !!els.viewerIframe.isIntroposeReady) { els.viewerIframe && els.viewerIframe.contentWindow.postMessage('V3D.introPose.run', '*'); window.removeEventListener('scroll', eventList.runIntroPose); } }); }, clickFold: function () { if (!els.viewerIframe.isFold) { els.viewerIframe.isFold = true; els.viewerIframe.contentWindow.postMessage('V3D.action.reverse', '*'); } else { els.viewerIframe.isFold = false; els.viewerIframe.contentWindow.postMessage('V3D.action', '*'); } accessibility.fold.ariaLabel(); eventList.setFoldClass(); accessibility.fold.tagging(); }, clickReset: function () { let viewerSrc = els.viewerIframe.getAttribute('src'); els.viewerIframe.setAttribute('src', `${viewerSrc}#reset=1`); clearTimeout(els.viewerIframe.resetTimeout); els.viewerIframe.resetTimeout = setTimeout(function () { viewerSrc = viewerSrc.split('#reset=1')[0]; els.viewerIframe.setAttribute('src', viewerSrc); }, 300); }, openPresetPopup: function () { if (!els.presetLayer.classList.contains('is-active')) { els.presetOpen.classList.add('is-open'); els.presetLayer.classList.add('is-active'); els.presetOpen.setAttribute('aria-expanded', true); els.presetClose.focus(); } else { eventList.closePresetPopup(); } els.presetClose && els.presetClose.addEventListener('click', eventList.closePresetPopup); }, closePresetPopup: function (e) { if (els.presetLayer.classList.contains('is-active')) { els.presetOpen.classList.remove('is-open'); els.presetLayer.classList.remove('is-active'); els.presetOpen.setAttribute('aria-expanded', false); if (e && e.target.classList.contains('js-preset-close')) { els.presetOpen.focus(); } } }, setFoldClass: function () { if (!els.viewerIframe.isFold) { if (els.foldBtn.classList.contains('is-folded')) els.foldBtn.classList.remove('is-folded'); els.foldBtn.classList.add('is-fold'); } else { if (els.foldBtn.classList.contains('is-fold')) els.foldBtn.classList.remove('is-fold'); els.foldBtn.classList.add('is-folded'); } }, setAngle: function () { let target = this, targetAngle = target.innerText.toLowerCase(); if (targetAngle == 'front') { els.viewerIframe.contentWindow.postMessage('V3D.setPosition.angleX: 0,angleY: 0', '*'); } else if (targetAngle == 'back') { els.viewerIframe.contentWindow.postMessage('V3D.setPosition.angleX: 0,angleY: 3.141592653589793', '*'); } else if (targetAngle == 'top') { els.viewerIframe.contentWindow.postMessage('V3D.setPosition.angleX: 1.5707963267948966,angleY: 3.141592653589793', '*'); } else if (targetAngle == 'bottom') { els.viewerIframe.contentWindow.postMessage('V3D.setPosition.angleX: -1.5707963267948966,angleY: 0', '*'); } else if (targetAngle == 'left') { els.viewerIframe.contentWindow.postMessage('V3D.setPosition.angleX: 0,angleY: 1.5707963267948966', '*'); } else if (targetAngle == 'right') { els.viewerIframe.contentWindow.postMessage('V3D.setPosition.angleX: 0,angleY: -1.5707963267948966', '*'); } accessibility.selected(target); } }; const popupEvents = { set: function () { utils.layerPopup({ layerPopup: els.popup, layerPopupClass: '.js-viewer', openerEvent: { element: els.viewerBtn, }, closeCtas: [els.closeCta], dimmed: els.popupWrap, moveTarget: document.documentElement, contents: els.contents, show: { start: function (target) { els.popup.classList.add('is-init'); popupEvents.show(target.openerCta); }, end: function () { if (utils.detector.isIosDevice) els.popup.style.display = 'block'; els.popup.classList.add('is-open'); } }, hide: { start: function () { els.popup.classList.remove('is-open'); }, end: function () { setTimeout(function () { els.popup.classList.remove('is-init'); }, 300); popupEvents.hide(); } } }); }, show: function (viewerOpener) { if (viewerOpener.classList.contains('viewer-btn')) { els.viewerIframe.isHash = false; els.viewerOpener = viewerOpener; } else { els.viewerIframe.isHash = true; els.viewerOpener = els.viewerBtn; } els.viewerIframe.setAttribute('src', common.getViewerUrl()); }, hide: function () { els.viewerIframe.setAttribute('src', 'about:blank'); if (els.viewerIframe.isHash) { setTimeout(function () { els.viewerOpener.focus(); }, 300); } }, }; const accessibility = { fold: { ariaLabel: function () { if (!els.viewerIframe.isFold) { els.foldBtn.setAttribute('aria-label', `${els.foldBtn.getAttribute('data-unfolded')}`); } else { els.foldBtn.setAttribute('aria-label', `${els.foldBtn.getAttribute('data-folded')}`); } }, tagging: function () { let dataOmni = els.foldBtn.getAttribute('data-omni'), gaLa = els.foldBtn.getAttribute('ga-la'); if (!els.viewerIframe.isFold) { els.foldBtn.setAttribute('data-omni', dataOmni.replace('folded', 'unfolded')); els.foldBtn.setAttribute('ga-la', gaLa.replace('folded', 'unfolded')); } else { els.foldBtn.setAttribute('data-omni', dataOmni.replace('unfolded', 'folded')); els.foldBtn.setAttribute('ga-la', gaLa.replace('unfolded', 'folded')); } }, }, selected: function (target) { for (let i = 0; i < els.angleCta.length; i++) { els.angleCta[i].removeAttribute('title'); if (els.angleCta[i].classList.contains('is-selected')) { els.angleCta[i].classList.remove('is-selected'); } } if (!target.classList.contains('is-selected')) { target.classList.add('is-selected'); } if (typeof LOCAL_VARI != 'undefined' && !!LOCAL_VARI) { target.setAttribute('title', LOCAL_VARI.selected); } else { target.setAttribute('title', 'Selected'); } } }; return { init: init } })();})();flagship.features.initialize = (function () { window.flagship.common.resize.bindEvent(); const init = function () { flagship.features.clickToVideo.init(); flagship.features.headline.init(); flagship.features.oneColumnCarousel.init(); flagship.features.scrollVideo.init(); flagship.features.threeColumnCarousel.init(); flagship.features.aiOverview.init(); flagship.features.cameraSpec.init(); flagship.features.faq.init(); flagship.features.highlightsZone.init(); flagship.features.formfactor.init(); flagship.features.interactiveCircleToSearch.init(); flagship.features.interactiveInterpreter.init(); flagship.features.interactiveNoteAssist.init(); flagship.features.interactive.init(); flagship.features.moveFeature.init(); flagship.features.performance.init(); flagship.features.photoAssist.init(); flagship.features.viewer.init(); }; return { init: init }})();flagship.features.initialize.init();});
Galaxy Z Fold 6 | Camera & Specificaties | Samsung NL (2024)
Top Articles
Family Update - 2023-2024 district calendars updated, family guides for rising seniors and recent graduates and more
Destiny 2: The Witch Queen campaign walkthrough
Where To Go After Howling Pit Code Vein
Srtc Tifton Ga
Design215 Word Pattern Finder
Craigslist Cars Augusta Ga
J & D E-Gitarre 905 HSS Bat Mark Goth Black bei uns günstig einkaufen
Obor Guide Osrs
Mate Me If You May Sapir Englard Pdf
How Many Cc's Is A 96 Cubic Inch Engine
How To Be A Reseller: Heather Hooks Is Hooked On Pickin’ - Seeking Connection: Life Is Like A Crossword Puzzle
Evil Dead Rise Showtimes Near Massena Movieplex
2024 Fantasy Baseball: Week 10 trade values chart and rest-of-season rankings for H2H and Rotisserie leagues
Athletic Squad With Poles Crossword
Fire Rescue 1 Login
Was sind ACH-Routingnummern? | Stripe
The Weather Channel Facebook
Uhcs Patient Wallet
Busty Bruce Lee
Games Like Mythic Manor
Unit 33 Quiz Listening Comprehension
Munich residents spend the most online for food
Busby, FM - Demu 1-3 - The Demu Trilogy - PDF Free Download
Gdp E124
Driving Directions To Bed Bath & Beyond
Me Cojo A Mama Borracha
Boston Gang Map
Ms Rabbit 305
Rimworld Prison Break
What Equals 16
Hdmovie2 Sbs
Rogold Extension
Fox And Friends Mega Morning Deals July 2022
Gabrielle Enright Weight Loss
Lucky Larry's Latina's
Magicseaweed Capitola
Tds Wifi Outage
Chatropolis Call Me
Pepsi Collaboration
The Banshees Of Inisherin Showtimes Near Reading Cinemas Town Square
Craigslist Pets Plattsburgh Ny
Lacy Soto Mechanic
Dwc Qme Database
Swoop Amazon S3
Mauston O'reilly's
9:00 A.m. Cdt
This Doctor Was Vilified After Contracting Ebola. Now He Sees History Repeating Itself With Coronavirus
The Pretty Kitty Tanglewood
Displacer Cub – 5th Edition SRD
Gander Mountain Mastercard Login
Bunbrat
Latest Posts
Article information

Author: Mr. See Jast

Last Updated:

Views: 6069

Rating: 4.4 / 5 (55 voted)

Reviews: 86% of readers found this page helpful

Author information

Name: Mr. See Jast

Birthday: 1999-07-30

Address: 8409 Megan Mountain, New Mathew, MT 44997-8193

Phone: +5023589614038

Job: Chief Executive

Hobby: Leather crafting, Flag Football, Candle making, Flying, Poi, Gunsmithing, Swimming

Introduction: My name is Mr. See Jast, I am a open, jolly, gorgeous, courageous, inexpensive, friendly, homely person who loves writing and wants to share my knowledge and understanding with you.