Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (2024)

Table of Contents
Galaxy AI est là Remarquable non ? Plus, plus et encore plus Le plus dur c'est de choisir Des couleurs à croquer Protégé avec l'Armor Aluminimum Des teintes juste stylées Des photos sensationnelles boostées par le moteur ProVisual Du détail… encore plus de détails Découvrir l'Appareil Photo Immortalisez la nuit. Même à distance Rapprochez-vous des détails Zoomez encore plus grâce à l'IA Déplacez-le. Retouchez-le. Tout simplement. Modifiez vos photos à souhait avec l'Assistant Photo Appuyez longuement pour le ralenti Appuyez longuement pour le ralenti Super HDR. Sublimé avant même d'être capturé Entourez-le. Trouvez-le. Tout simplement. Entourez. Recherchez. Trouvez Traduction instantanée. Parlez une autre langue sans avoir à l'apprendre Discutez en temps réel dans une langue étrangère disponible Une note vocale ? L'IA vous la résume. Un véritable interprète dans votre poche Les incontournables pour vous rendre la vie plus facile Ayez le bon ton avec Assistant Message Discutez avec le monde entier sans vous soucier de la langue Des sessions de jeu épiques Brillants, même face au soleil Avec vous partout et toute la journée, Pourquoi passer à Galaxy ? Passer facilement à Galaxy Galaxy AI ou la révolution mobile Casser les barrières entre appareils Découvrez l’expérience Galaxy sur votre smartphone Votre vie privée est à l'abri. Des petit* changements qui font la différence Faites reprendre votre ancien appareil Jusqu'à 512 Go de stockage Des accessoires pour être encore plus stylé Questions fréquemment posées References

Galaxy S24 | S24+

  • Caractéristiques
  • ASSISTANCE
  • Avis

Acheter

  • Présentation
  • Comparer
  • Accessoires
  • Caractéristiques
  • ASSISTANCE
  • Avis
Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (1)

Acheter Réserver Acheter Où acheter

Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (2)

Galaxy AI est là

Entrez dans une toute nouvelle ère avec l'IA. Les Galaxy S24 | S24+ vont radicalement changer la manière dont vous utilisez votre smartphone. Libérez votre plein potentiel grâce à l'IA, et découvrez une nouvelle façon de communiquer, de s'informer, de travailler et de créer.

Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (3)

Une page de blog est ouverte dans une application de navigateur Web. Pression longue sur le bouton Home. Une fenêtre Google apparaît au-dessus de l’application. Le texte d’une page de blog est entouré: Patate tornade. Les résultats de la recherche pour patate tornade apparaissent dans une fenêtre contextuelle sur l’application. La fenêtre contextuelle est déplacée vers le haut dans un écran complet de résultats de recherche Google.

Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (4)

Un appel téléphonique est traduit en temps réel. Le dialogue est affiché à l'écran sous forme de conversation textuelle en deux langues.

Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (5)

Dans l’application Interpreter, une conversation en deux langues est transcrite et traduite en temps réel.

Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (6)

La transcription d’un enregistrement vocal est affichée avec un dialogue séparé en fonction des locuteurs. Lorsque le clip est lu, les mots sont mis en surbrillance en synchronisation avec l’audio. Un résumé détaillé de l’enregistrement vocal est ensuite produit.

Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (7)

Une photo est modifiée. Le sujet est sélectionné, puis redimensionné et déplacé vers un autre emplacement sur l’image. Ensuite, les zones manquantes sont remplies.

Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (8)

Une conversation par SMS est affichée dans une langue étrangère. Une bulle contextuelle indique: «Appuyez pour traduire». Lorsque vous appuyez dessus, la bulle se transforme en une barre contenant un menu déroulant de langue source et langue cible. Chaque bulle de message affiche maintenant le message d’origine et sa traduction.

Entourer pour chercher

Découvrir Entourer pour chercher

Traduction instantanée

Découvrir la Traduction instantanée

Interprète

Découvrir l’Interprète

Assistant Retranscription

Découvrir l'Assistant Retranscription

Assistant Photo

Découvrir l'Assistant Photo

Assistant Message

Découvrir l’Assistant Message

  • Entourer pour chercher1

  • Traduction instantanée2

  • Interprète

  • Assistant Retranscription3

  • Assistant Photo4

  • Assistant Message

Découvrez l’expérience Galaxy sur votre smartphone Scannez ce QR code ou visitez trygalaxy.com

Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (9)

Vue d’ensemble

"Des batteries plus puissantes, des écrans plus lumineux et une AI plus intelligente"

CNET

Galaxy AI

"La nouvelle ère des smartphones optimisés par AI"

GQ

Galaxy AI

"Galaxy AI, c’est en fait déjà l’avenir des téléphones"

Inverse

    “Galaxy S24 et S24+ : incro-IA-bles”

    Journal du Geek

    9/10

    « Des clichés très réussis »

    Cnet

    4/5

    « Ce qu’il se fait de mieux en matière d’écran »

    Jeuxvidéo.com

    4,5/5

    Remarquable non ?

    Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (10)

    Gros plans sur les coins du Galaxy S24 plus. Le smartphone tourne lentement. Ensuite, un gros plan qui commence par les touches latérales et pivote jusqu'au panneau arrière. Ensuite, l'appareil est vu en entier depuis l'arrière.

    Un design à couper le souffle avec ses tranches taillées dans l'aluminium et une conception entièrement repensée, les Galaxy S24 et S24+ vont décidément attirer tous les regards.

    Plus, plus et encore plus

    Ils ont clairement musclé leur jeu : avec un écran plus grand, une capacité de batterie qui augmente et un processeur encore plus puissant, ce sont des virtuoses que vous aurez entre les mains. Et si vous en voulez encore plus, prenez le Galaxy S24+ : vous aurez la plus haute résolution disponible sur un smartphone Galaxy : QHD+.

    Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (11)

    Le plus dur c'est de choisir

    Tous deux ont encore élevé le niveau.6 Découvrez maintenant comment les Galaxy S24 et S24+ se différencient l'un de l'autre.

    Galaxy S24 Galaxy S24+

    Écran Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (12) 6,2” Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (13) 6,7”

    Résolution Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (14) FHD+ Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (15) QHD+

    Batterie (typique) Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (16) 4000mAh Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (17) 4900mAh

    Mémoire Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (18) 8Go Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (19) 12Go

    Ultra Wide Band - non disponible Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (20) UWB

    Des couleurs à croquer

    Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (21)

    Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (22)

    Disponible exclusivement sur Samsung.com

      Indigo Crème Noir Argent Vert Bleu Orange

      Deux smartphones de la gamme Galaxy S24 couleur Indigo. L'un d'eux se tient debout et est vu de l'arrière. L'autre smartphone est vu de côté pour montrer les bords du cadre.

      Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (23)

      Deux smartphones de la gamme Galaxy S24 couleur Crème. L'un d'eux se tient debout et est vu de l'arrière. L'autre smartphone est vu de côté pour montrer les bords du cadre.

      Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (25)

      Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (26)

      Deux smartphones de la gamme Galaxy S24 couleur Noir. L'un d'eux se tient debout et est vu de l'arrière. L'autre smartphone est vu de côté pour montrer les bords du cadre.

      Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (27)

      Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (28)

      Deux smartphones de la gamme Galaxy S24 couleur Argent. L'un d'eux se tient debout et est vu de l'arrière. L'autre smartphone est vu de côté pour montrer les bords du cadre.

      Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (29)

      Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (30)

      Deux smartphones de la gamme Galaxy S24 couleur Vert. L'un d'eux se tient debout et est vu de l'arrière. L'autre smartphone est vu de côté pour montrer les bords du cadre.

      Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (31)

      Couleurs exclusives

      Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (32)

      Disponible exclusivement sur Samsung.com

      Deux smartphones de la gamme Galaxy S24 couleur Bleu. L'un d'eux se tient debout et est vu de l'arrière. L'autre smartphone est vu de côté pour montrer les bords du cadre.

      Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (33)

      Couleurs exclusives

      Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (34)

      Disponible exclusivement sur Samsung.com

      Deux smartphones de la gamme Galaxy S24 couleur Orange. L'un d'eux se tient debout et est vu de l'arrière. L'autre smartphone est vu de côté pour montrer les bords du cadre.

      Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (35)

      Couleurs exclusives

      Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (36)

      Disponible exclusivement sur Samsung.com

      Protégé avec l'Armor Aluminimum

      Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (37)

      Avec son aluminium de qualité aérospatiale, les Galaxy S24 et S24+ sont prêts pour vous suivre dans toutes vos aventures. Plus léger que l'acier inoxydable, la nouvelle finition Armor Aluminium est encore plus résistante. Et avec sa résistance à l'eau (certifiée IP68), il ne craint pas les éclaboussures.

      Des teintes juste stylées

      Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (38)

      En s'inspirant des minéraux les plus précieux, ces couleurs saisissantes révèlent toute la puissance de la nature. Que ce soit en Indigo, Crème, Noir ou Argent, votre smartphone sera simplement sublime.

      Galaxy AI

      Des photos sensationnelles boostées par le moteur ProVisual

      Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (39)

      Captured by Galaxy S24+ #withGalaxy

      Du détail… encore plus de détails

      Pour que vos photos soient à la hauteur de vos souvenirs, capturez des images en très haute résolution avec les 50MP du capteur principal.

      Découvrir l'Appareil Photo

      Que ce soit pour prendre des selfies éblouissants, pour shooter en grand-angle ou pour zoomer sur un sujet précis, le rendu de vos clichés sera juste canon.

      caméra arrière

      10MP Zoom optique 3x

      50MP Grand Angle & Zoom qualité optique x2

      12MP Ultra Grand Angle

      caméra frontale

      12MP Selfie

      Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (40)

      Immortalisez la nuit. Même à distance

      Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (41)

      Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (42)

      Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (43)

      Photo prise avec le Galaxy S24+ #withGalaxy

        Capturez des photos lumineuses même dans la pénombre grâce à l'IA. Pour des portraits stylés, zoomez en x2 ou en x3 et découvrez un rendu aussi clair de jour comme de nuit

        Rapprochez-vous des détails

        Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (44) Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (45) Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (46)

        Appuyez pour zoomer

        Photo prise avec le Galaxy S24+ #withGalaxy

        Passez du zoom x1 au x2 voire même x3 pour vous rapprocher de votre sujet, le tout avec un niveau de qualité simplement prodigieux.,

        Zoomez encore plus grâce à l'IA

        Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (47)

        Le viseur de l'application Appareil photo montre une femme posant devant un paysage. L'appareil photo zoome de 1x à 2x, puis à 3x. Ensuite, une photo claire d'un sujet avec un arrière-plan pittoresque apparaît avec un zoom de 2,5 x.

        Photo prise avec le Galaxy S24+ #withGalaxy

        Photographiez sur une plus grande plage de zoom grâce à l'IA et obtenez des clichés saisissants, même à distance.,

        Déplacez-le.
        Retouchez-le.
        Tout simplement.

        On ne peut pas toujours prendre la photo parfaite du premier coup, alors avec l'Assistant Photo, améliorer une image devient vraiment magique. Et avec la Retouche Générative, déplacer un objet ou un sujet où vous le souhaitez fera automatiquement apparaître le fond manquant.

        Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (48)

        Une photo est éditée dans l'application Galerie. Pour la redresser, la photo est tournée et des coins vides apparaissent dans le cadre. Les zones manquantes et l'arrière-plan sont ensuite remplis.

        Recadrez votre photo et laissez l'arrière-plan se générer pour obtenir la photo parfaite, celle que vous auriez dû prendre.

        Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (49)

        Une photo est modifiée dans l'application Galerie. Un bouton de modification est actionné et le sujet est sélectionné. Il est redimensionné et déplacé vers un autre endroit de la photo. Les zones manquantes sont ensuite remplies.

        Sélectionnez un objet et déplacez-le. L'IA va combler l'espace manquant comme si de rien n'était.

        Assistant photo

        Modifiez vos photos à souhait avec l'Assistant Photo

        Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (50)

        Une photo de skateur se produisant dans un skatepark est affichée sur l’écran du Galaxy S24. Le bouton Modifier est sélectionné. Puis, l’utilisateur clique sur le bouton Étoiles Galaxy AI. Le skateur est tracé, puis placé plus haut. Le bouton «Générer» est activé. La photo est traitée et la zone manquante où le sujet se trouvait est comblée. Un avant/après s’affiche.

        Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (51)

        Dans l’application Gallery, une photo de skateur se produisant dans un skatepark est ouverte. Le bouton Modifier est sélectionné.

        Appuyez ici

        Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (52)

        La photo est maintenant dans le mode édition de l’application Gallery.

        Appuyez ici

        Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (53)

        En mode édition, le bouton Galaxy AI stars est activé. Une vague bleutée traverse la photo. Le skateur est détouré. Le skateur est ensuite placé plus haut dans la photo.

        Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (54)

        Appuyer ou dessiner pour sélectionner

        Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (55)

        Déplacer la sélection

        Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (56)

        Appuyez ici

        Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (57)

        La photo est traitée. La zone manquante où le sujet se trouvait est remplie.

        Assistant photo

        Transformez les images en repositionnant les personnes ou les objets et en remplissant les arrière-plans.

        Appuyez longuement pour le ralenti

        Appuyez longuement pour le ralenti

        Transformez les vidéos de votre galerie en véritables merveilles dignes d’un studio de cinéma. Avec la fonction ralenti instantané boostée à l’IA, restez simplement appuyé sur l’écran pour générer des plans supplémentaires entre les images et lancer un effet de ralenti.

        Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (59)

        Une vidéo d’un coureur est lue à vitesse normale sur l’écran du Galaxy S24 plus. Lorsque la caméra s’approche du coureur par l’arrière, la vidéo passe au ralenti.

        Super HDR. Sublimé avant même d'être capturé

        Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (60)

        Dans la fenêtre d'aperçu de l'application Appareil photo, une photo est prise. Le bouton Galerie est sélectionné pour ouvrir la photo la plus récente dans la Galerie. Le bouton Partager est appuyé. Une photo est sélectionnée pour être partagée. Ensuite, l'application d'un réseau social est sélectionnée. La photo apparaît alors dans l'application pour être téléchargée en tant que nouveau message. La photo s'affiche alors comme un message téléchargé dans le flux de l'application.

        Photo prise avec le Galaxy S24+ #withGalaxy

        Le Super HDR atteint un nouveau sommet. Ce que vous voulez capturer regorge de détails ? Vous pourrez les capturer depuis la prévisualisation jusqu'à la publication. Et ça, même sur Instagram.

        Avant d'avoir appuyé sur le déclencheur, ce que vous voyez à l'écran est déjà retravaillé avec le Super HDR. Vous n'avez plus qu'à conserver la photo dans votre Galerie ou la poster directement sur les réseaux.

        Entourez-le.
        Trouvez-le.
        Tout simplement.

        Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (61)

        Une page de blog est ouverte dans une application de navigateur Web. Pression longue sur le bouton Home. Une fenêtre Google apparaît au-dessus de l’application. Le texte d’une page de blog est entouré: Patate tornade. Les résultats de la recherche pour patate tornade apparaissent dans une fenêtre contextuelle sur l’application. La fenêtre contextuelle est déplacée vers le haut dans un écran complet de résultats de recherche Google.

        Découvrez une toute nouvelle façon de trouver des informations grâce à Entourer pour chercher. Il vous suffit d'encercler un objet avec votre doigt pour obtenir un résultat de recherche Google.

        Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (62)

        Entourer pour chercher

        Entourez. Recherchez. Trouvez

        Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (63)

        Une vidéo publiée sur une application de réseau social est diffusée sur l’écran du Galaxy S24. Elle montre une vue panoramique sur un salon fraîchement décoré. Entourer pour rechercher avec Google. La caméra zoome sur une affiche encadrée sur le mur. L’utilisateur appuie sur le bouton Home de manière prolongée. Une barre de recherche Google apparaît en bas de l’écran. Un cercle est tracé autour de l’affiche. L’affiche est identifiée et des résultats Google similaires apparaissent dans une fenêtre contextuelle sur l’application de réseau social. Entourer pour rechercher avec Google.

        Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (64)

        Une application de réseau social diffuse une publication vidéo. La publication sur les réseaux sociaux montre la vue panoramique d’un salon fraîchement décoré.

        Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (65)

        Maintenir la touche Accueil appuyée

        Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (66)

        Un cercle en pointillés est dessiné autour d’une affiche encadrée sur le mur.

        Entourez ou appuyez pour rechercher.

        Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (67)

        Google est écrit en haut du cadre et une barre de recherche Google apparaît en bas. Un cercle est tracé autour de l’affiche. L’affiche est identifiée et des résultats Google similaires apparaissent dans une fenêtre contextuelle sur l’application de réseau social.

        Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (68)

        Entourer pour chercher

        Recherchez n’importe quoi sans changer d’application.

        Traduction instantanée. Parlez une autre langue sans avoir à l'apprendre

        Désormais, vous pourrez appeler quelqu'un qui ne parle pas la même langue que vous, l'IA se chargera de traduire en temps réel votre conversation. Et ça marche également avec les messages.

        Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (69)

        Un appel téléphonique est interprété en temps réel. Le dialogue est affiché à l'écran sous forme d'une conversation textuelle en deux langues.

        Traduction instantanée

        Discutez en temps réel dans une langue étrangère disponible

        Appuyer pour appeler

        Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (70)

        Un appel téléphonique est en cours sur l’écran du Galaxy S24. Un bouton composé d’étoiles Galaxy AI est mis en surbrillance numériquement à l’écran. Ensuite, l’écran affiche un dialogue en textos avec un menu déroulant de langues en haut de la conversation. La conversation orale de l’appel téléphonique est transcrite à l’écran dans la langue parlée d’origine, puis la traduction apparaît sous la transcription d’origine.

        Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (71)

        Un appel téléphonique est en cours sur l’écran du Galaxy S24. Un menu déroulant de langues se trouve en haut de la conversation.

        Appuyer pour traduire

        Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (72)

        La conversation orale de l’appel téléphonique est transcrite à l’écran dans la langue parlée d’origine, puis la traduction apparaît sous la transcription d’origine.

        Traduction instantanée

        Vous avez oublié votre portefeuille dans un taxi lors d’un voyage! Comment parler à un chauffeur de taxi étranger?

        Une note vocale ? L'IA vous la résume.

        Vous avez désormais votre propre assistant personnel : enregistrez un mémo, l'IA le convertit en texte et peut même vous le synthétiser. Vous pouvez même le traduire en un clic.

        Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (73)

        Une transcription du dialogue est générée. Le script complet est affiché avec la mise en avant du texte de l'orateur. Lorsque l'enregistrement vocal est lu, les phrases sont surlignées en synchronisation avec l'audio. Lorsque l'on appuie sur l'onglet ”Résumé”, un résumé de l'enregistrement vocal est produit.

        Un véritable interprète dans votre poche

        Besoin d’aide à l’étranger ? Dégainez votre Galaxy S24 ou Galaxy S24+ et utilisez l’interprète pour communiquer dans la langue locale, même sans accès à internet.

        Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (74)

        Dans l’application Interpreter, une conversation en deux langues est transcrite et traduite en temps réel.

        Les incontournables pour vous rendre la vie plus facile

        La personnalisation passe au niveau supérieur : ajoutez des widgets comme la météo sur votre écran de verrouillage ; ils seront même disponibles sur Always on Display.

        Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (75)

        L'écran de verrouillage s'assombrit pour laisser place à un affichage permanent avec des widgets de météo, d'heure et d'alarme, ainsi qu'un panneau de contrôle du lecteur de musique.

        Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (76)

        Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (77)

        Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (78)

        Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (79)

          Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (80)

          Ayez le bon ton avec Assistant Message

          Qui n'a jamais réécrit dix fois un message ? Avec l'Assistant Message vous pouvez reformuler instantanément ce que vous écrivez, en utilisant plusieurs tonalités, pour que le fond et la forme soient les plus justes possibles.

          Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (81)

          Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (82)

          Assistant Message

          Discutez avec le monde entier sans vous soucier de la langue

          Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (83)

          Une conversation par SMS est ouverte sur l’écran du Galaxy S24. Les messages sont rédigés dans une langue étrangère. Une bulle contextuelle indique: «Appuyez pour traduire». Lorsque vous appuyez dessus, la bulle se transforme en une barre contenant un menu déroulant de langue source et langue cible. Chaque bulle de message affiche maintenant le message d’origine et sa traduction.

          Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (84)

          Une conversation par SMS est sélectionnée à partir d’une liste de conversations.

          Appuyez ici

          Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (85)

          La conversation s’ouvre pour afficher un dialogue dans une langue étrangère. Une bulle contextuelle indiquant «Appuyez pour traduire» apparaît et l’utilisateur clique dessus.

          Appuyez ici

          Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (86)

          Le menu déroulant de langue source et langue cible affiche Auto et Anglais respectivement. Chaque bulle de message affiche désormais à la fois le message d’origine et sa traduction en anglais. Le menu de langue cible est sélectionné.

          Appuyez ici

          Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (87)

          L’anglais est remplacé par le français dans le menu de la langue cible.

          Appuyez ici

          Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (88)

          Les messages sont maintenant traduits en français.

          Assistant Message

          Améliorez votre communication en traduisant les discussions et les SMS.

          Des sessions de jeu épiques

          Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (89)

          Les scènes de jeu de Gameloft sont affichées sur l'écran du Galaxy S24 plus. Les détails sont clairs et le contenu est fluide.

          Tirez pleinement parti de vos jeux vidéo grâce à l'amélioration du système de refroidissem*nt des Galaxy S24 | S24+.

          Chambre à vapeur

          x1,5 plus grande

          Brillants, même face au soleil

          Un régal pour les yeux avec leurs écrans plus grands, plus lumineux et aux bordures plus fines qu'auparavant. Les 6,2 pouces en FHD+ du Galaxy S24 enchantent les passionnés de smartphones compacts, tandis que l'écran de 6,7 pouces en QHD+ du Galaxy S24+ offre une immersion totale, rendant l'expérience grandiose.,

          Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (90)

          Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (91)

          Avec vous partout et toute la journée,

          Super endurants, les Galaxy S24 et S24+ sont prêts à vous accompagner dans toutes vos aventures grâce à leur gestion intelligente de leur batterie. Jouez, binge-watchez et partagez sans craindre la panne sèche.,,,

          • Lecture vidéo jusqu'à

            29 h Galaxy S24

            31 h Galaxy S24+

          • Lecture audio jusqu'à

            78 h Galaxy S24

            92 h Galaxy S24+

          Pourquoi passer à Galaxy ?

          Passer facilement à Galaxy

          Conservez toutes vos photos, contacts, agenda et applications grâce à Smart Switch, même si vous venez d'un appareil iOS ,,

          En savoir plus sur Smart Switch

          Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (92)

          Galaxy AI ou la révolution mobile

          Galaxy AI change fondamentalement la façon dont vous allez vous servir de votre smartphone. Pour une expérience plus simple, pratique et intuitive au quotidien.

          Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (93)

          Casser les barrières entre appareils

          Adopter un nouvel appareil Galaxy, c'est entrer dans un écosystème de produits qui fonctionnent en parfaite symbiose. Pour une expérience plus fluide entre votre smartphone, tablette, montre ou ordinateur Galaxy.

          En savoir plus sur l'Expérience Connectée Galaxy

          Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (94)

          Découvrez l’expérience Galaxy sur votre smartphone

          Et si vous testiez l’expérience d’un smartphone Galaxy, directement sur votre téléphone ? Scannez simplement le QR Code ci-dessous et téléchargez l’appli.

          Et si vous testiez l’expérience d’un smartphone Galaxy, directement sur votre téléphone ? Scannez simplement le QR Code ci-dessous et téléchargez l’appli.

          Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (95)

          Votre vie privée est à l'abri.

          La protection de la vie privée des utilisateurs reste notre priorité à l'ère de l'IA. Avec le lancement de Galaxy AI sur la série Galaxy S24, vous pouvez être assuré que nous ne stockerons ni n'utiliserons vos données à quelque fin que ce soit sans votre consentement.

          Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (96)

          Samsung Knox

          Des petit* changements qui font la différence

          Les Galaxy S24, S24+ et S24 Ultra sont dotés d’une plus grande variété de matériaux recyclés que leurs générations précédentes, notamment du cobalt recyclé, des terres rares recyclées et de l'acier recyclé.

          Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (97)

          Faites reprendre votre ancien appareil

          Échangez votre ancien appareil et obtenez une remise sur votre tout nouveau Galaxy S24 ou Galaxy S24+.

          En savoir plus

          Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (98)

          Jusqu'à 512 Go de stockage

          Choisissez entre 128Go et 256Go sur le Galaxy S24 ou entre 256Go et 512Go sur le Galaxy S24+.

          Acheter

          Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (99)

          Des accessoires pour être encore plus stylé

          Découvrir

          Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (100)

          Questions fréquemment posées

          Découvrir le Galaxy S24 Ultra

          En savoir plus

          Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (101)

          Entrez dans la nouvelle ère de l’IA Mobile

          Acheter Réserver Acheter Où acheter

          Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (102)

          Voir les Galaxy S24 | S24+ en réalité augmentée Ouvrir en réalité augmentée

          Votre Galaxy à votre image

          En savoir plus

          Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (106)

          Voir à 360°

          Faites le tour

          *Couleurs exclusives en ligne disponibles uniquement sur Samsung.com.

          Parlons affaires

          Voir Samsung business

          DAS Galaxy S24 tête : 0,869 W/kg | DAS tronc : 1,35 W/kg | DAS membres : 2,13 W/kgDAS Galaxy S24+ tête : 0,744 W/kg | DAS tronc : 1,245 W/kg | DAS membres : 1,92 W/kg

          Consultez les conditions d’utilisation des Services Samsung applicables au compte Samsung ci-après : https://account.samsung.com/membership/policy/terms

          *Samsung se réserve le droit d'apporter des modifications sur ce document et sur le produit qui y est décrit, à tout moment, sans avoir à fournir de notification concernant ces modifications. Toutes les fonctionnalités, caractéristiques, spécifications, interfaces utilisateurs graphiques (GUI) et autres informations relatives au produit fournies dans le présent document, y compris, mais sans s'y limiter, les avantages, la conception, le prix, les composants, les performances, la disponibilité et les capacités du produit, sont susceptibles d'être modifiées sans préavis ni obligation. Le contenu de l'écran est constitué d'images simulées et n'est utilisé qu'à des fins de démonstration.

          *La connexion au compte Samsung peut être requise pour utiliser certaines fonctionnalités IA.

          *Les fonctionnalités IA sont fournies en l'état, sans garantie quant à l'exactitude, l'exhaustivité ou la fiabilité des résultats fournis par celles-ci.

          *La disponibilité des fonctionnalités IA fournies par des tiers est susceptible de changer.

          *Les fonctionnalités Galaxy AI seront fournies gratuitement sur les appareils Samsung Galaxy compatibles, a minima jusqu'à fin 2025.

          *Images simulées à des fins d'illustration. Séquences raccourcies et simulées. L'interface utilisateur réelle peut être différente.

          1. Séquences raccourcies et simulées. Les résultats ne sont donnés qu'à titre d'exemple. Les résultats peuvent varier en fonction des correspondances visuelles. Requiert une connexion internet. La dernière version de Android peut être nécessaire pour l’utilisation de cette fonctionnalité. Les fonctionnalités peuvent dépendre des paramètres de l'application et de l'appareil. Certaines fonctions peuvent ne pas être compatibles avec certaines applications. La disponibilité de cette fonctionnalité varie selon le pays, la langue et l'appareil. L'exactitude des résultats n'est pas garantie. Google est une marque de Google LLC.
          2. La fonctionnalité Traduction instantanée nécessite une connexion réseau et une connexion au compte Samsung. Traduction instantanée est uniquement disponible sur l'application Téléphone préinstallée par Samsung. Certaines langues peuvent nécessiter le téléchargement d'un pack de langue. La disponibilité de cette fonctionnalité peut varier selon la langue. A compter de février 2024, les langues disponibles sont : Allemand, Anglais (Inde), Anglais (Royaume-Uni), Anglais (Etats-Unis), Chinois, Coréen, Espagnol (Espagne), Espagnol (Mexique), Espagnol (Etats-Unis), Français, Hindi, Italien, Japonais, Polonais, Portugais (Brésil), Thaï, Vietnamien. L'exactitude des résultats n'est pas garantie.
          3. Interpréter nécessite une connexion au compte Samsung. Certaines langues peuvent nécessiter le téléchargement du pack de langues, nécessitant une connexion internet. La disponibilité de la fonctionnalité peut varier selon les langues. A compter de février 2024, les langues disponibles sont : Allemand, Anglais (Inde), Anglais (Royaume-Uni), Anglais (Etats-Unis), Chinois, Coréen, Espagnol (Espagne), Espagnol (Mexique), Espagnol (Etats-Unis), Français, Hindi, Italien, Japonais, Polonais, Portugais (Brésil), Thaï, Vietnamien. L’exactitude des résultats n’est pas garantie. La disponibilité et les fonctionnalités prises en charge peuvent varier en fonction du pays, du continent et du revendeur.
          4. La fonctionnalité Assistant Retranscription nécessite une connexion réseau et une connexion au compte Samsung. L'Assistant Retranscription est uniquement disponible sur l'application Samsung Dictaphone préinstallée ou sur les fichiers enregistrés à l'aide de l'application Téléphone préinstallée par Samsung. La fonction d'enregistrement vocal de l'application Téléphone préinstallée par Samsung peut ne pas être prise en charge dans certains pays. Les fichiers audio doivent durer moins de 3 heures pour être traités. La fonction de résumé de l'Assistant Retranscription peut être activée lorsqu'un certain nombre de caractères est atteint. La disponibilité de cette fonctionnalité peut varier selon la langue. A compter de février 2024, les langues disponibles sont : Allemand, Anglais (Inde), Anglais (Royaume-Uni), Anglais (Etats-Unis), Chinois, Coréen, Espagnol (Espagne), Espagnol (Mexique), Espagnol (Etats-Unis), Français, Hindi, Italien, Japonais, Polonais, Portugais (Brésil), Thaï, Vietnamien. L'exactitude des résultats n'est pas garantie.
          5. Retouches génératives nécessite une connexion réseau et une connexion à un compte Samsung. L'édition à l'aide de Retouches génératives permet d'obtenir une photo redimensionnée jusqu'à 12 Mpx. Un filigrane visible est superposé à la sortie de l'image lors de l'enregistrement afin d'indiquer que l'image a été générée par l'IA. L'exactitude et la fiabilité de l'image générée ne sont pas garanties.
          6. Galaxy S24+ comparé au Galaxy S24.
          7. Comparé aux Galaxy S23 et S23+.
          8. Mesurée en diagonale, la taille de l'écran du Galaxy S24 est de 6,2 pouces dans le rectangle complet et de 6 pouces en tenant compte des coins arrondis. La taille de l'écran du Galaxy S24+ est de 6,7 pouces dans le rectangle complet et de 6,5 pouces en tenant compte des coins arrondis ; la surface d'affichage réelle est inférieure en raison des coins arrondis et du trou de l'appareil photo.
          9. Valeur typique testée selon les conditions d'un laboratoire tiers. La valeur typique est la valeur moyenne évaluée considérant la déviation de la capacité de la batterie parmi les échantillons de batterie ayant passé le test selon la norme IEC 61960. La capacité nominale (minimale) évaluée est de 3880mAh pour le Galaxy S24, 4755mAh pour le Galaxy S24+ et 4855mAh pour le Galaxy S24 Ultra. L'autonomie réelle de la batterie peut varier en fonction de l'environnement réseau, des habitudes d'utilisation et d'autres facteurs.
          10. La disponibilité des couleurs peut varier en fonction du pays ou du revendeur.
          11. Le cadre ne comprend pas les touches de volume et les touches latérales, ni le plateau SIM.
          12. Le zoom de qualité optique est assuré par le capteur Adaptive Pixel.
          13. Le zoom 2x doit être activé dans les paramètres de l'application Camera Assistant. Camera Assistant photo peut être téléchargé depuis le Galaxy Store.
          14. Les résultats peuvent varier en fonction de la luminosité et/ou des conditions de prise de vue, notamment en cas de sujets multiples, de flou ou de sujets en mouvement.
          15. Space Zoom 30X comprend un zoom optique 3x et un zoom numérique 30x avec la technologie Super Resolution. Les distances de zoom supérieures à 3x peuvent entraîner une détérioration de l'image.
          16. Le zoom par IA est appliqué aux distances entre les longueurs de zoom numérique. L'exactitude des résultats n'est pas garantie.
          17. Certaines applications de réseaux sociaux peuvent ne pas prendre en charge le Super HDR. L'exactitude des résultats n'est pas garantie.
          18. La qualité HDR est prise en charge sur les photos téléchargées sous forme de posts de flux Instagram et les vidéos téléchargées en Reels.
          19. La fonctionnalité de traduction dans l'Assistant Message peut nécessiter la connexion au compte Samsung. Certaines applications de chat peuvent ne pas prendre en charge cette fonction. Certaines langues peuvent nécessiter le téléchargement d'un pack linguistique. La disponibilité de cette fonctionnalité peut varier selon la langue. Cette fonctionnalité est activée lorsqu'une langue traduisible est détectée. L'exactitude des résultats n'est pas garantie.
          20. Certains widgets peuvent nécessiter une connexion réseau et/ou une connexion au compte Samsung. La disponibilité des fonctionnalités prises en charge par les applications peut varier selon les pays.
          21. La fonctionnalité de suggestion de tonalité dans l'Assistant Message nécessite une connexion réseau et à un compte Samsung. L'activation de la fonctionnalité peut être soumise à des conditions de durée (taille de message minimale et/ou maximale). La disponibilité de la fonctionnalité peut varier selon la langue. A compter de février 2024, les langues disponibles sont : Allemand, Anglais (Inde), Anglais (Royaume-Uni), Anglais (Etats-Unis), Chinois, Coréen, Espagnol (Espagne), Espagnol (Mexique), Espagnol (Etats-Unis), Français, Hindi, Italien, Japonais, Polonais, Portugais (Brésil), Thaï, Vietnamien. L'exactitude des résultats n'est pas garantie.
          22. ©2024 Gameloft. Tous droits réservés. Gameloft, le logo Gameloft et Asphalt sont des marques commerciales de Gameloft aux États-Unis et/ou dans d'autres pays. Tous les fabricants, voitures, noms, marques et images associées sont des marques commerciales et/ou des éléments protégés par le droit d'auteur de leurs propriétaires respectifs.
          23. L'écran Dynamic AMOLED 2X des Galaxy S24 et S24+ est certifié capable de reproduire 100 % du volume mobile colorimétrique par la Verband Deutscher Elektrotechniker (VDE) dans la gamme de couleurs DCI-P3, ce qui signifie que vos images ne sont pas délavées et que vous obtiendrez des couleurs incroyablement vives, quels que soient les différents niveaux de luminosité. L'écran peut atteindre une luminosité maximale allant jusqu'à 2 600 nits, améliorant le contraste entre les aspects sombres et clairs du contenu numérique pour une qualité d'image plus brillante, avec un rapport de contraste de 5 000 000:1 pour rendre votre expérience mobile plus immersive.
          24. L'autonomie réelle de la batterie varie en fonction de l'environnement réseau, de l'utilisation des fonctionnalités et des applications, de la fréquence des appels et des messages, du nombre de charges et de nombreux autres facteurs. Estimation faite selon les habitudes d'un utilisateur moyen/typique compilées par UX Connect Research. Évalué de manière indépendante par UX Connect research entre le 25 novembre 2023 et le 15 décembre 2023 aux États-Unis et au Royaume-Uni avec les versions de test des modèles de SM-S921, SM-S926 et SM-S928 avec les règlages par défaut sur des réseaux LTE et 5G Sub6. NON testé sur le réseau 5G mmWave.
          25. Basé sur les conditions de test du laboratoire interne de Samsung avec une version pré-lancement du modèle donné connectée à un écouteur via Bluetooth avec les paramètres par défaut sur LTE. Estimation par rapport à la capacité de la batterie et à la tension mesurée sur la consommation d'énergie de la batterie pendant la lecture vidéo (résolution du fichier vidéo 720p, enregistré sur l'appareil) et la lecture audio (fichier mp3, 192kbps, sauvegardé sur l'appareil avec l'écran LCD éteint), respectivement. La durée réelle de lecture vidéo et audio varient en fonction de la connexion réseau, des paramètres, du format de fichier, de la luminosité de l'écran, de l'état de la batterie et de nombreux autres facteurs.
          26. Les transferts filaires à partir d'appareils Android™ nécessitent que l'appareil récepteur ait Android™ 4.3 ou une version ultérieure et que l'appareil émetteur ait Android 4.3™ ou une version ultérieure. Les transferts peuvent être effectués sans câble par le biais d'une connexion sans fil. Pour les connexions sans fil, l'appareil récepteur doit avoir Android™ 4.0 ou une version ultérieure et l'appareil émetteur doit avoir Android™ 4.0 ou une version ultérieure. Ouvrez Smart Switch Mobile dans ”Paramètres” sur l'appareil Galaxy récepteur ou téléchargez l'application Smart Switch Mobile à partir du Galaxy Store. Les données et le contenu disponibles pour le transfert peuvent varier selon la méthode de transmission.
          27. Les transferts filaires à partir d'iOS nécessitent que l'appareil récepteur soit équipé d'Android™ 4.3 ou d'une version ultérieure et que l'appareil émetteur soit équipé d'iOS 5 ou d'une version ultérieure. Les transferts peuvent être réalisés sans câble par le biais d'une connexion sans fil ou d'iCloud. Pour les connexions sans fil, l'appareil récepteur doit avoir Android™ 4.0 ou une version ultérieure et l'appareil expéditeur doit avoir iOS 12 ou une version ultérieure. Les transferts iCloud nécessitent que l'appareil récepteur ait Android™ 4.0 ou une version ultérieure et que l'appareil expéditeur ait iOS 5 ou une version ultérieure. Ouvrez Smart Switch Mobile dans " Paramètres " sur l'appareil Galaxy récepteur ou téléchargez l'application Smart Switch Mobile depuis le Galaxy Store. Pour les transferts sans fil, téléchargez Smart Switch pour iOS depuis l'App Store sur votre appareil iOS. Les données et le contenu disponibles pour le transfert peuvent varier selon la méthode de transmission.
          28. Il est recommandé d'utiliser une connexion filaire pour transférer plusieurs ensembles de données à la fois.
          29. Galaxy Buds2 Pro, Galaxy Watch6 et Galaxy Tab S9 vendus séparément.
          30. Disponible sur les appareils équipés d'Android OS 10 (Q OS) ou d'une version ultérieure et de One UI 2.1 ou d'une version ultérieure. Les PC pris en charge comprennent les ordinateurs portables et les Galaxy Books de Samsung, y compris les PC basés sur Qualcomm commercialisés en 2020 ou ultérieurement, ainsi que les PC Windows d'autres fabricants fonctionnant sous Windows 10 version 2004 ou ultérieure et dotés de la version 22.50.02 des pilotes Bluetooth d'Intel ou ultérieure et de la version 22.50.07 des pilotes Wi-Fi d'Intel ou ultérieure.
          31. Galaxy Tab S9 vendu séparément.
          32. Lors du partage de fichiers à l'aide de codes QR et de contacts, il est possible de transférer jusqu'à 1 000 fichiers à la fois. Les fichiers individuels doivent être inférieurs à 3 Go, et jusqu'à 5 Go de données au total peuvent être transférés par jour. Les liens expirent au bout de deux jours. L'appareil de l'expéditeur doit disposer d'un compte Samsung, et les appareils de l'expéditeur et du destinataire doivent être connectés à Internet.
          33. Knox Matrix est pris en charge sur les smartphones et tablettes Galaxy sur One UI 6.0 ou supérieur. La disponibilité peut varier selon le pays ou le continent.
          34. Voir les conditions générales de reprise. La disponibilité peut varier en fonction du revendeur, du pays ou du continent. Vérifiez l'éligibilité de la reprise de l'appareil sur la page de reprise.
          35. Les options de stockage et la disponibilité peuvent varier en fonction du revendeur, du pays ou du continent. La disponibilité de la mémoire réelle peut varier en fonction du système d'exploitation et des applications préinstallés.
          36. Tous les accessoires sont vendus séparément.
          37. Par rapport aux Galaxy S23 Series.
            Les Galaxy S24 Series contiennent des matériaux recyclés dans le module du haut-parleur supérieur, le module de haut-parleur inférieur, la façade du boîtier, le couvercle intérieur du S Pen, le support de bouton du S Pen, la touche latérale, la touche de volume, l’insert SIM, la décoration de l’appareil photo, l’écran avant, la vitre arrière et la batterie.
            Les batteries des Galaxy S24 Ultra et de Galaxy S24+ contiennent au moins 50% de cobalt de pre- et post-consommation recyclé (soit 8,17 g pour le Galaxy S24 Ultra). La batterie du Galaxy S24 comprend un minimum de 10% de cobalt de pre- et post-consommation recyclé.
            Les haut-parleurs des Galaxy S24 Series contiennent 100% de néodyme de pre- et post-consommation.
            Les modules haut-parleur supérieur et haut-parleur inférieur des Galaxy S24 Series contiennent de l'acier recyclé.
          38. binge-watchez = regarder d'un coup
          39. Les Galaxy S24, S24+ et S24 Ultra sont conformes à la norme IP68. Basé sur des conditions d’essai de submersion en laboratoire jusqu’à 1,5mètre d’eau douce pendant 30minutes maximum. Il est conseillé de le tenir à distance de la plage ou de la piscine. La résistance à l’eau et à la poussière de l’appareil n’est pas permanente et peut diminuer avec le temps en raison de l’usure normale.
          40. Le ralenti instantané n’est disponible que sur le lecteur vidéo Samsung préinstallé et l’application Samsung Gallery. La disponibilité du service peut varier selon les caractéristiques vidéo.
          41. La fonctionnalité de traduction dans Chat Assist nécessite une connexion réseau, une connexion au Samsung Account et le téléchargement du pack de langues depuis le Galaxy store. Doit répondre aux exigences de longueur pour activer la fonction. La disponibilité du service peut varier en fonction du pays, de la région ou de la langue. Certaines applications de chat peuvent ne pas prendre en charge cette fonctionnalité. L’exactitude des résultats n’est pas garantie.

          ')); } } }; const isZoom = function () { const winInnerWidth = window.innerWidth, winOuterWidth = window.outerWidth; let zoomLevel = 100 / ((winInnerWidth / winOuterWidth) * 100); if(zoomLevel > 1.75) { document.documentElement.classList.add('browser-zoomed-175'); } else { document.documentElement.classList.remove('browser-zoomed-175'); } }; return { addLoadStatusClass: addLoadStatusClass, setResolution: setResolution, onClickSup: onClickSup, centeredFocus: centeredFocus, setArBanner:setArBanner, isZoom: isZoom, }})();(function () { const resize = window.flagship.common.resize, common = window.flagship.highlights.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)); let els = {}; const init = function () { els.videoWrap = document.querySelectorAll('.common-video'); els.isGlobal = document.documentElement.classList.contains('global'); if (!!els.videoWrap[0]) { setElements(); } }; const setElements = function () { // popup els.viewerPopup = document.querySelector('.highlights-viewer'); els.designSpecPopup = document.querySelector('.highlights-design-spec-popup'); els.cameraSpecPopup = document.querySelector('.highlights-resolution-popup'); els.dayVideoPopup = document.querySelector('.highlights-day-popup'); els.transcriptAssistPopup = document.querySelector('.highlights-live-translate-popup'); els.generativeEditExperience = document.querySelector('#generative-edit-experience'); els.circleToSearchExperience = document.querySelector('#circle-to-search-experience'); els.liveTranslateExperience = document.querySelector('#live-translate-experience'); els.chatAssistExperience = document.querySelector('#chat-assist-experience'); // video els.videosWrap = document.querySelectorAll('.common-video'); els.videos = document.querySelectorAll('.common-video video'); for (var i = 0; i < els.videosWrap.length; i++) { els.videos[i].videoWrap = els.videosWrap[i]; } }; const bindEvents = function () { window.addEventListener('load', anchorPosition); window.addEventListener('hashchange', anchorPosition); }; const anchorPosition = function () { if (window.location.hash != '') { switch (window.location.hash) { case '#s24-vs-s24-plus': if (els.designSpecPopup) els.designSpecPopup.show(); break; case '#see-in-360': if (els.viewerPopup) els.viewerPopup.show(); break; case '#camera-spec': if (els.cameraSpecPopup) els.cameraSpecPopup.show(); break; case '#day-video': if (els.dayVideoPopup) els.dayVideoPopup.show(); break; case '#transcript-assist': if (els.transcriptAssistPopup) els.transcriptAssistPopup.show(); break; case '#generative-edit-experience': if (els.generativeEditExperience) { els.generativeEditExperience.show(); } break; case '#circle-to-search-experience': if (els.circleToSearchExperience) { els.circleToSearchExperience.show(); } break; case '#live-translate-experience': if (els.liveTranslateExperience) { els.liveTranslateExperience.show(); } break; case '#chat-assist-experience': if (els.chatAssistExperience) { els.chatAssistExperience.show(); } break; default: let hash = location.hash.split('#')[1], hashSection = document.querySelector('#contents #' + hash), hashTimeout = null; clearTimeout(hashTimeout); hashTimeout = setTimeout(function () { if (hashSection) { let sectionTop = hashSection.getBoundingClientRect().top, navHeight = utils.getNavHeight(), hashScroll = window.pageYOffset + sectionTop - navHeight; window.scrollTo(0, hashScroll); } }, 300); break; } } }; var 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 = ANIUTIL.scrollController(); scrollController.init({ speed: 120, duration: 0.5 }); }; const setImageLoader = function () { window.imageLoader = ANIUTIL.mediaLoader({ lazyClass: '.js-img-src', responsiveClass: '.js-res-img', preset: els.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 = ANIUTIL.mediaLoader({ type: 'bgImage', lazyClass: '.js-bg-img', loadOption: [{ resolution: 1920, attribute: '', bgOpts: '' }], visiblePoint: 1 }); }; const setVideoLoader = function () { window.videoLoader = ANIUTIL.mediaLoader({ type: 'video', lazyClass: '.js-video-src', responsiveClass: '.js-res-video', preset: els.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.videoWrap && !video.videoWrap.classList.contains('is-loaded')) { video.videoWrap.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.onClickSup); } }; 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++) { els.videoWrap[i].control = els.videoWrap[i].querySelector('.common-video__control'); els.videoWrap[i].blind = els.videoWrap[i].querySelector('.blind'); els.videoWrap[i].blind.innerHTML = (typeof LOCAL_VARI != 'undefined' && !!LOCAL_VARI) ? LOCAL_VARI.play : 'play'; } }; const onLoadHandler = function () { common.addLoadStatusClass(); common.setArBanner(); init(); bindEvents(); setResize(); if (!maxOs && !touchDevice) { setScrollControl(); } setImageLoader(); setVideoLoader(); setCenteredfocus(); setDisclaimerNumber(); setDisclaimer(); setVideoTheme(); setVideoBlind(); common.isZoom(); resize.add(common.isZoom); }; onLoadHandler();})();;(function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.accordion = (function () { const resize = window.flagship.common.resize; let els = {}; let objs = { accordion: [] }; let prevDevice = null; let currDevice = resize.checkResolution(); const init = function () { els.accordionList = document.querySelectorAll('.common-accordion__list'); if (!!els.accordionList && els.accordionList.length > 0) { bindEvents(); } }; const bindEvents = function () { resize.add(onResizeHandler); setAccordion(); }; const onResizeHandler = function (currRes) { currDevice = currRes; if (currDevice != prevDevice) { onResponsiveHandler(); prevDevice = currDevice; } }; const onResponsiveHandler = function () { for (let i = 0; i < els.accordionList.length; i++) { let isOpenedItem = els.accordionList[i].querySelector('.is-open'); if (!!isOpenedItem) { let isOpenedItemContent = isOpenedItem.querySelector('.js-accordion-content'); let clientHeight = isOpenedItemContent.children[0].clientHeight; isOpenedItemContent.style.height = `${clientHeight}px`; } } }; const setAccordion = function () { for (let i = 0; i < els.accordionList.length; i++) { objs.accordion[i] = new window.flagship.common.accordion({ wrap: els.accordionList[i], openType: currDevice.indexOf('mobile') > -1 ? 'single' : 'multiple', open: { start: function (target) { handlerList.setImages(target); handlerList.setVideo(target); }, end: function (target) { let targetVideo = target.querySelector('.common-accordion__content video'); if (targetVideo && targetVideo.paused) targetVideo.play(); } }, close: { start: function (target) { let targetVideo = target.querySelector('.common-accordion__content video'); if (targetVideo && !targetVideo.paused) { targetVideo.pause(); targetVideo.currentTime = 0; } }, end: function () {} } }); objs.accordion[i].init(); } }; const handlerList = { setImages: function (target) { let targetImages = target.querySelectorAll('.common-accordion__content img'); if (targetImages && targetImages.length > 0) { for (let i = 0; i < targetImages.length; i++) { if (!targetImages[i].classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia([targetImages[i]]); } } } }, setVideo: function (target) { let targetVideos = target.querySelectorAll('.common-accordion__content video'); if (targetVideos && targetVideos.length > 0) { for (let i = 0; i < targetVideos.length; i++) { if (!targetVideos[i].classList.contains('is-video-load-complete')) { videoLoader.setResponsiveMedia([targetVideos[i]]); } } } } } return { init: init } })();})();(function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.clickToVideo = (function () { let els = {}, objs = { clickToVideo: [], }; const init = function () { els.clickToVideosWrap = document.querySelectorAll('.js-scroll-video-disable .common-video'); if (els.clickToVideosWrap.length > 0) { setElements(); setVideo(); } }; const setElements = function () { for (let i = 0; i < els.clickToVideosWrap.length; i++) { els.clickToVideosWrap[i].video = els.clickToVideosWrap[i].querySelector('.common-video__figure>video'); els.clickToVideosWrap[i].controller = els.clickToVideosWrap[i].querySelector('.common-video__control'); els.clickToVideosWrap[i].controller.video = els.clickToVideosWrap[i].video; els.clickToVideosWrap[i].controller.addEventListener('click', clickVideoCta); } }; const setVideo = function () { for (let i = 0; i < els.clickToVideosWrap.length; i++) { objs.clickToVideo[i] = ANIUTIL.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'); } }, playCallback: function () { 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'); } } }); } }; const 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 = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.scrollVideo = (function () { const utils = window.flagship.common.utils, resize = window.flagship.common.resize; let els = {}, objs = { scrollVideo: [], scene: [] }, currDevice = resize.checkResolution(); const init = function () { els.scrollVideoWraps = document.querySelectorAll('.common-video.js-scroll-video'); els.pageScrollVideoWraps = []; if (!!els.scrollVideoWraps) { for (let i = 0; i < els.scrollVideoWraps.length; i++) { if (!els.scrollVideoWraps[i].parentElement.classList.contains('common-popup__video') && !els.scrollVideoWraps[i].parentElement.classList.contains('js-scroll-video-disable')) { els.pageScrollVideoWraps.push(els.scrollVideoWraps[i]); } } } if (els.pageScrollVideoWraps.length > 0) { setElements(); objList.setVideo(); objList.setScene(); bindEvents(); } }; const setElements = function () { for (let i = 0; i < els.pageScrollVideoWraps.length; i++) { els.pageScrollVideoWraps[i].video = els.pageScrollVideoWraps[i].querySelector('.common-video__figure>video'); els.pageScrollVideoWraps[i].controller = els.pageScrollVideoWraps[i].querySelector('.common-video__control'); els.pageScrollVideoWraps[i].controller.video = els.pageScrollVideoWraps[i].video; els.pageScrollVideoWraps[i].startPoint = !!els.pageScrollVideoWraps[i].getAttribute('data-start-point') ? els.pageScrollVideoWraps[i].getAttribute('data-start-point') : undefined; els.pageScrollVideoWraps[i].reversePoint = !!els.pageScrollVideoWraps[i].getAttribute('data-reverse-point') ? els.pageScrollVideoWraps[i].getAttribute('data-reverse-point') : undefined; els.pageScrollVideoWraps[i].moStartPoint = !!els.pageScrollVideoWraps[i].getAttribute('data-mo-start-point') ? els.pageScrollVideoWraps[i].getAttribute('data-mo-start-point') : undefined; els.pageScrollVideoWraps[i].moReversePoint = !!els.pageScrollVideoWraps[i].getAttribute('data-mo-reverse-point') ? els.pageScrollVideoWraps[i].getAttribute('data-mo-reverse-point') : undefined; els.pageScrollVideoWraps[i].controller.addEventListener('click', handlerList.videoCta); } }; const bindEvents = function () { window.addEventListener('scroll', handlerList.scroll); handlerList.scroll(); resize.add(onResizeHandler); }; const onResizeHandler = function (currRes) { currDevice = currRes; }; const objList = { setVideo: function () { for (let i = 0; i < els.pageScrollVideoWraps.length; i++) { objs.scrollVideo[i] = ANIUTIL.videoHandler({ playType: 'scrollPlay', startPoint: (currDevice.indexOf('mobile') > -1) ? els.pageScrollVideoWraps[i].moStartPoint : els.pageScrollVideoWraps[i].startPoint, reversePoint: (currDevice.indexOf('mobile') > -1) ? els.pageScrollVideoWraps[i].moReversePoint : els.pageScrollVideoWraps[i].reversePoint, wrap: els.pageScrollVideoWraps[i], video: els.pageScrollVideoWraps[i].video, controller: els.pageScrollVideoWraps[i].controller, resetCallback: function () { if (this.wrap.classList.contains('is-completed')) { this.wrap.classList.remove('is-completed'); } }, playCallback: function () { 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.pageScrollVideoWraps.length; i++) { objs.scene[i] = SCROLLER({ trackElement: els.pageScrollVideoWraps[i].video, useFixed: false, resize: utils.detector.isTouchDevice ? false : true }); } } }; const handlerList = { scroll: function () { for (let i = 0; i < els.pageScrollVideoWraps.length; i++) { objs.scene[i].trackAnimation(function () { objs.scrollVideo[i].scrollActive(this.progress); }); } }, videoCta: 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 = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.tutorialPopup = function (opts) { const utils = window.flagship.common.utils; let els = {}; let status = {}; let show = {}, hide = {}; status.isGlobal = document.documentElement.classList.contains('global'); const init = function () { setElements(); setOpts(); bindEvent(); }; const setElements = function () { els.html = document.documentElement; els.tutorialPopup = opts.tutorialPopup; els.closeCtas = opts.closeCtas; els.dimmed = !!!opts.dimmed ? '' : opts.dimmed; els.tutorialPopupClass = opts.tutorialPopupClass; }; const setOpts = function () { show.start = (!!!opts.show) ? undefined : opts.show.start; show.end = (!!!opts.show) ? undefined : opts.show.end; hide.start = (!!!opts.hide) ? undefined : opts.hide.start; hide.end = (!!!opts.hide) ? undefined : opts.hide.end; } const bindEvent = function () { opts.openerEvent.element.addEventListener('click', showLayer); els.tutorialPopup.show = showLayer; els.tutorialPopup.hide = hideLayer; }; const showLayer = function (e) { if (opts.openerEvent.proxy) { if (opts.openerEvent.parent) { if (e.target.parentElement.classList.contains(opts.openerEvent.class)) { els.openerCta = e.target.parentElement; } } else { if (e.target.classList.contains(opts.openerEvent.class)) { els.openerCta = e.target; } } } else { els.openerCta = this; } els.tutorialPopup.opener = els.openerCta; if (show.start) show.start(els); els.html.classList.add('is-layer-open'); utils.hiddenScroll(els.tutorialPopup); if (utils.detector.isIosDevice) { els.tutorialPopup.opener.blur(); els.openerCta.style.display = 'none'; } els.closeCtas[0].focus(); setTimeout(function () { els.closeCtas[0].focus(); }, 400); for (let i = 0; i < els.closeCtas.length; i++) { els.closeCtas[i].addEventListener('click', hideLayer); } if (els.dimmed) els.dimmed.addEventListener('click', onClickDimmed); if (show.end) show.end(els); }; const hideLayer = function () { if (utils.detector.isIosDevice) els.openerCta.style.display = ''; if (hide.start) hide.start(els); for (let i = 0; i < els.closeCtas.length; i++) { els.closeCtas[i].removeEventListener('click', hideLayer); } if (els.dimmed) els.dimmed.removeEventListener('click', onClickDimmed); els.html.classList.remove('is-layer-open'); utils.visibleScroll(); if (!!!els.openerCta) { els.tutorialPopup.opener.focus(); } else { els.openerCta.focus(); } setTimeout(function () { if (!!!els.openerCta) { els.tutorialPopup.opener.focus(); } else { els.openerCta.focus(); } }, 300); if (hide.end) hide.end(els); }; const onClickDimmed = function (e) { if (e.currentTarget == e.target) { hideLayer(); } }; return init(); };})();(function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.aod = (function () { let els = {}; let status = {}; let objs = { videos: [], }; const utils = window.flagship.common.utils; const resize = window.flagship.common.resize; const init = function () { els.section = document.querySelector('.highlights-aod'); if (!!els.section) { setElements(); objList.setScene(); bindEvents(); } }; const setElements = function () { els.swiperContainer = els.section.querySelector('.highlights-aod__content-container'); els.nextArrow = els.section.querySelector('.highlights-aod__content-arrow--next'); els.prevArrow = els.section.querySelector('.highlights-aod__content-arrow--prev'); els.pagination = els.section.querySelector('.highlights-aod__content-pagination'); }; const bindEvents = function () { objList.swiper(); objs.swiper.on('init', swiperEvents.init); objs.swiper.on('slideChange', swiperEvents.slideChange); objs.swiper.on('transitionEnd', swiperEvents.transitionEnd); objs.swiper.init(); window.addEventListener('scroll', eventList.scrollHandler); }; const objList = { swiper: function () { if (objs.swiper == null) { objs.swiper = new Swiper(els.swiperContainer, { init: false, navigation: { nextEl: els.nextArrow, prevEl: els.prevArrow, }, pagination: { el: els.pagination, type: 'bullets', clickable: true, renderBullet: function () { return '

        • '; } }, loop: true, slidesPerView: 'auto', centeredSlides: true, speed: 800, }); } }, setVideo: function () { for (let i = 0; i < els.videoWrap.length; i++) { objs.videos[i] = ANIUTIL.videoHandler({ playType: 'scrollPlay', startPoint: resize.checkResolution().indexOf('mobile') > -1 ? 37 : 45, reversePoint: resize.checkResolution().indexOf('mobile') > -1 ? 70 : 100, wrap: els.videoWrap[i], video: els.videos[i], controller: els.videoController[i], endCallback: function () { if (!els.videoWrap[i].classList.contains('is-completed')) { els.videoWrap[i].classList.add('is-completed'); } }, resetCallback: function () { if (els.videoWrap[i].classList.contains('is-completed')) { els.videoWrap[i].classList.remove('is-completed'); } }, }); }; }, setScene: function () { objs.scene = SCROLLER({ trackElement: els.section, useFixed: false }); }, }; const swiperEvents = { init: function () { let notification = this.el.querySelector('.swiper-notification'); if (!!notification) this.el.removeChild(notification); els.bullets = this.pagination.bullets; els.videoWrap = els.section.querySelectorAll('.common-video'); els.videos = els.section.querySelectorAll('.common-video__video'); els.videoController = els.section.querySelectorAll('.common-video__control'); for(let i=0;i

          0)) { let isVideoSlide = (objs.swiper.activeIndex == 0) || (objs.swiper.activeIndex == 5) || (objs.swiper.activeIndex == 10); let isPaused = objs.videos[0].video.paused || objs.videos[1].video.paused || objs.videos[2].video.paused; clearTimeout(playStatus); if (isVideoSlide) { if (isPaused) { playStatus = setTimeout(() => { for (let i = 0; i < objs.videos.length; i++) { objs.videos[i].video.currentTime = 0; objs.videos[i].video.play(); } }, 600); } } else { if (!objs.videos[0].video.paused && !objs.videos[1].video.paused && !objs.videos[2].video.paused) { for (let i = 0; i < objs.videos.length; i++) { objs.videos[i].video.pause(); if (resize.checkResolution().indexOf('desktop') > -1) objs.videos[i].video.currentTime = 0; } } } } } }; const eventList = { scrollHandler: function () { objs.scene.trackAnimation(function () { let isVideoSlide = (objs.swiper.activeIndex == 0) || (objs.swiper.activeIndex == 5) || (objs.swiper.activeIndex == 10); if (!isVideoSlide) return; objs.videos[0].scrollActive(this.progress); objs.videos[1].scrollActive(this.progress); objs.videos[2].scrollActive(this.progress); }); }, clickVideoCta: function () { if(this.video.paused) { this.video.play(); } else { this.video.pause(); } } }; const accessibility = { slide: function () { for (let i = 0; i < objs.swiper.slides.length; i++) { if (i != objs.swiper.activeIndex) { utils.onAccessibility(objs.swiper.slides[i]); } else { utils.offAccessibility(objs.swiper.slides[i]); } } }, pagination: { tagging: function () { const tagging = { 'data-omni-type': 'microsite_gallery', 'data-omni': 'galaxy-s24:highlights:galaxy-ai^aod-lockscreen:index:', 'ga-ca': 'gallery', 'ga-ac': 'feature gallery', 'ga-la': 'galaxy-s24:highlights:galaxy-ai^aod-lockscreen:index:', }; for (let i = 0; i < els.bullets.length; i++) { Object.keys(tagging).forEach(key => { if (key == 'data-omni' || key == 'ga-la') { els.bullets[i].setAttribute(key, tagging[key] + (i + 1)); } else { els.bullets[i].setAttribute(key, tagging[key]); } }); } }, label: function () { for (let i = 0; i < els.bullets.length; i++) { let slideName = objs.swiper.slides[i].getAttribute('data-slide-name'); if (i === objs.swiper.realIndex) { if (typeof LOCAL_VARI != 'undefined' && !!LOCAL_VARI) { els.bullets[i].setAttribute('aria-label', `${LOCAL_VARI.slide}${i+1}: ${slideName} ${LOCAL_VARI.selected.toLowerCase()}`); } else { els.bullets[i].setAttribute('aria-label', `Slide${i+1}: ${slideName} selected`); } } else { if (typeof LOCAL_VARI != 'undefined' && !!LOCAL_VARI) { els.bullets[i].setAttribute('aria-label', `${LOCAL_VARI.slide}${i+1}: ${slideName}`); } else { els.bullets[i].setAttribute('aria-label', `Slide${i+1}: ${slideName}`); } } } }, } }; return { init: init, } })();})();;(function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.cameraAi = (function () { let els = {}; let objs = {}; const init = function () { els.section = document.querySelector('.highlights-camera-ai'); if (!!els.section) { setElements(); bindEvents(); } }; const setElements = function () { els.bgBlue = els.section.querySelector('.highlights-camera-ai__gradient--blue'); els.bgGreen = els.section.querySelector('.highlights-camera-ai__gradient--green'); }; const bindEvents = function () { setScene(); window.addEventListener('scroll', scrollHandler); scrollHandler(); }; const setScene = function () { objs.scene = SCROLLER({ trackElement: els.section, useFixed: false, }); }; const scrollHandler = function () { objs.scene.trackAnimation(function () { if (this.progress > 30 && this.progress < 70) { els.bgBlue.classList.add('is-active'); els.bgGreen.classList.add('is-active'); } else if (this.progress == 0) { els.bgBlue.classList.remove('is-active'); els.bgGreen.classList.remove('is-active'); } // TweenMax.to(els.bgBlue, 0, {opacity: BlueValue, ease: 'linear'}); // TweenMax.to(els.bgGreen, 0, {opacity: greenValue, ease: 'linear'}); }); } return { init: init } })();})();(function () {window.flagship = window.flagship || {};window.flagship.highlights = window.flagship.highlights || {};window.flagship.highlights.chatAssistTutorial = (function () {const utils = window.flagship.common.utils;const common = window.flagship.highlights.common;let els = {};let objs = {};let stepInfo = [];let status = {};const init = function () {els.section = document.querySelector('.highlights-chat-assist-tutorial');if (!!els.section) {setElements();bindEvents();}};const setElements = function () {els.tutorialVideoContainer = els.section.querySelector('.common-tutorial__main-video');els.videoList = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video');els.videoWrap = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video .common-video');els.videos = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video .common-video__video');els.tooltipCta = els.tutorialVideoContainer.querySelectorAll('.js-tutorial-tooltip-cta');els.tutorialReplay = els.tutorialVideoContainer.querySelector('.common-tutorial__replay-cta');};const setProperty = function(el, index){el.video = el.querySelector('video');el.controller = el.querySelector('.common-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;}const setStepStatus = function(el){stepInfo.push({alert: el.getAttribute('data-alert'),tooltip: el.getAttribute('data-tooltip')});}const eventList = {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('canplay', function(){if (this.paused) this.play();});}setTimeout(()=>{els.videoList[index].classList.remove('is-visible');if (!!els.videoList[index].tooltipCta) {els.videoList[index].tooltipCta.blur();}els.videos[index + 1].videoWrap.controller.focus();}, 200);},click: function(){let self = this;for (let i = 0; i < els.tooltipCta.length; i++) {els.tooltipCta[i].addEventListener('click', function(){self.nextVideoPlay(i);});}},endCallback: function () {if (stepInfo[this.video.playIndex].tooltip == 'true') {this.wrap.tooltipCta.removeAttribute('disabled');this.wrap.tooltip.classList.add('is-visible');}if (stepInfo[this.video.playIndex].alert == 'true') {this.wrap.alert.classList.add('is-visible');}if (!this.wrap.classList.contains('is-completed')) {this.wrap.classList.add('is-completed');this.controller.style.display = 'none';}}}const setVideos = function(){objs.videos = [];for (let i = 0; i < els.videoWrap.length; i++) {let isVideoWrap = els.videoWrap[i];objs.videos.push(ANIUTIL.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) {videoLoader.setResponsiveMedia([els.videos[nextPlayindex]]);}},pauseCallback: function () {setTagging.play(this.controller);},endCallback: function () {if (!!this.wrap.tooltip) {let self = this;utils.offAccessibility(this.wrap.tooltip);setTimeout(function () {self.wrap.tooltipCta.focus();}, 200);}this.controller.style.display = 'none !important';eventList.endCallback.call(this);if ((els.videos.length -1) == this.video.playIndex) {els.tutorialReplay.style.display = 'block';els.tutorialReplay.removeAttribute('tabindex');els.tutorialReplay.removeAttribute('aria-hidden');els.tutorialReplay.focus();}}}));}};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 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();};return {init: init,}})();})();(function () {window.flagship = window.flagship || {};window.flagship.highlights = window.flagship.highlights || {};window.flagship.highlights.circleToSearchTutorial = (function () {const utils = window.flagship.common.utils;const common = window.flagship.highlights.common;let els = {};let objs = {};let stepInfo = [];let status = {};const init = function () {els.section = document.querySelector('.highlights-circle-to-search-tutorial');if (!!els.section) {setElements();bindEvents();}};const setElements = function () {els.tutorialVideoContainer = els.section.querySelector('.common-tutorial__main-video');els.videoList = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video');els.videoWrap = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video .common-video');els.videos = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video .common-video__video');els.tooltipCta = els.tutorialVideoContainer.querySelectorAll('.js-tutorial-tooltip-cta');els.tutorialReplay = els.tutorialVideoContainer.querySelector('.common-tutorial__replay-cta');status.isKeydownTime = null;};const setProperty = function(el, index){el.video = el.querySelector('video');el.controller = el.querySelector('.common-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;}const setStepStatus = function(el){stepInfo.push({alert: el.getAttribute('data-alert'),tooltip: el.getAttribute('data-tooltip')});}const eventList = {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('canplay', function(){if (this.paused) this.play();});}setTimeout(()=>{els.videoList[index].classList.remove('is-visible');if (!!els.videoList[index].tooltipCta) {els.videoList[index].tooltipCta.blur();}els.videos[index + 1].videoWrap.controller.focus();}, 400);},click: function(){els.tooltipCta[0].addEventListener('mousedown', eventList.pressButton);els.tooltipCta[0].addEventListener('mouseup', function(){clearTimeout(status.mousedown);});els.tooltipCta[0].addEventListener('touchstart', eventList.pressButton);els.tooltipCta[0].addEventListener('touchend', function(){clearTimeout(status.mousedown);});els.tooltipCta[0].addEventListener('keydown', eventList.keydownButton);els.tooltipCta[1].addEventListener('click', function(){eventList.nextVideoPlay(2);});},pressButton: function (e) {e.preventDefault();if (els.videos[2].readyState < 4) {videoLoader.setResponsiveMedia([els.videos[2]]);}clearTimeout(status.mousedown);status.mousedown = setTimeout(()=>{eventList.nextVideoPlay(1);}, 1000);},keydownButton: function (e) {if (e.type == 'keydown' && e.keyCode != 13) return;if (status.isKeydownTime == null) {status.isKeydownTime = Date.now();} else {let keyDownDuration = Date.now() - status.isKeydownTime;if (keyDownDuration >= 1000) {if (els.videos[2].readyState < 4) {videoLoader.setResponsiveMedia([els.videos[2]]);}eventList.nextVideoPlay(1);status.isKeydownTime = null;}}},endCallback: function () {let autoplay = this.video.playIndex == 0 ||this.video.playIndex == 3;if (stepInfo[this.video.playIndex].tooltip == 'true') {this.wrap.tooltipCta.removeAttribute('disabled');this.wrap.tooltip.classList.add('is-visible');}if (stepInfo[this.video.playIndex].alert == 'true') {this.wrap.alert.classList.add('is-visible');}if (autoplay) {eventList.nextVideoPlay(this.video.playIndex);}if (!this.wrap.classList.contains('is-completed')) {this.wrap.classList.add('is-completed');this.controller.style.display = 'none';}}}const setVideos = function(){objs.videos = [];for (let i = 0; i < els.videoWrap.length; i++) {let isVideoWrap = els.videoWrap[i];objs.videos.push(ANIUTIL.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);switch (this.video.playIndex) {case 2:videoLoader.setResponsiveMedia([els.videos[3], els.videos[4]]);break;default:break;}},pauseCallback: function () {setTagging.play(this.controller);},endCallback: function () {if (!!this.wrap.tooltip) {let self = this;utils.offAccessibility(this.wrap.tooltip);setTimeout(function () {self.wrap.tooltipCta.focus();}, 200);}this.controller.style.display = 'none !important';eventList.endCallback.call(this);if ((els.videos.length -1) == this.video.playIndex) {els.tutorialReplay.style.display = 'block';els.tutorialReplay.removeAttribute('tabindex');els.tutorialReplay.removeAttribute('aria-hidden');els.tutorialReplay.focus();}}}));}};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 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();};return {init: init,}})();})();(function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.color = (function () { const utils = window.flagship.common.utils; const resize = window.flagship.common.resize; let els = {}, status = {}, objs = {}; let activeClass = 'is-active'; let oldIndex = null; let currDevice = resize.checkResolution(); let prevDevice = null; const init = function () { els.section = document.querySelector('.highlights-color'); if (!!els.section) { setElements(); setStatus(); bindEvents(); } }; const setElements = function () { // topSwiper els.topSwiperWrap = els.section.querySelector('.highlights-color__carousel'); if (!!els.topSwiperWrap) { els.topSwiperSlides = els.topSwiperWrap.querySelectorAll('.highlights-color__carousel-slide'); if (els.topSwiperSlides.length > 1) { els.topSwiperContainer = els.section.querySelector('.highlights-color__carousel-container'); els.topSwiperNextArrow = els.topSwiperContainer.querySelector('.highlights-color__arrow--next'); els.topSwiperPrevArrow = els.topSwiperContainer.querySelector('.highlights-color__arrow--prev'); els.topSwiperPagination = els.section.querySelector('.highlights-color__pagination'); } } // colorchipSwiper els.colorchipWrap = els.section.querySelector('.highlights-color__tab-colors'); els.colorchipSwiperContainer = els.colorchipWrap.querySelector('.swiper-container'); els.colorchipSwiperArrowWrap = els.colorchipWrap.querySelector('.highlights-color__tab-navigation'); els.colorchipSwiperNextArrow = els.colorchipWrap.querySelector('.highlights-color__navigation-arrow--next'); els.colorchipSwiperPrevArrow = els.colorchipWrap.querySelector('.highlights-color__navigation-arrow--prev'); // colorchipItem els.colorchipItemWrap = els.section.querySelector('.highlights-color__tab'); els.colorchipItems = els.colorchipItemWrap.querySelectorAll('.highlights-color__tab-item'); els.colorchipBtns = els.colorchipItemWrap.querySelectorAll('.highlights-color__tab-button'); for (let i = 0; i < els.colorchipBtns.length; i++) { els.colorchipBtns[i].setAttribute('data-js-index', i); } // colorName els.colorNameWrap = els.section.querySelector('.highlights-color__tab-names'); els.colorNames = els.colorNameWrap.querySelectorAll('.highlights-color__tab-name'); // colorPanel els.panelWrap = els.section.querySelector('.highlights-color__tab-panel-group'); els.panels = els.panelWrap.querySelectorAll('.highlights-color__tab-panel'); // 360 Popup Btn els.popupBtn = els.section.querySelector('.common-cta-area button'); }; const setStatus = function () { status.isClick = false; // index status.targetIndex = null; status.oldColorIndex = null; }; const bindEvents = function () { resize.add(handlerList.onResize); setColorchipEvent(); if (!els.topSwiperWrap || (!!els.topSwiperWrap && (!!els.topSwiperSlides && els.topSwiperSlides.length < 2))) return; setTimeout(function () { window.addEventListener('scroll', handlerList.scroll); }, 1000); objList.setScene(); setSwiper.top(); els.topSwiperNextArrow.addEventListener('click', handlerList.onClickArrow); els.topSwiperNextArrow.addEventListener('keydown', handlerList.onClickArrow); els.topSwiperPrevArrow.addEventListener('click', handlerList.onClickArrow); els.topSwiperPrevArrow.addEventListener('keydown', handlerList.onClickArrow); }; const setColorchipEvent = function () { let colorchipSwiperLength = currDevice.indexOf('mobile') > -1 ? 5 : 7; if (els.colorchipBtns.length >= colorchipSwiperLength) { status.isLoop = true; oldIndex = els.colorchipBtns.length; if (els.colorchipSwiperArrowWrap.style.display == 'none') { els.colorchipSwiperArrowWrap.style.display = ''; } if (els.colorchipWrap.classList.contains('js-colorchip-static')) { els.colorchipWrap.classList.remove('js-colorchip-static'); } setSwiper.colorchip(); } else { status.isLoop = false; if (els.colorchipSwiperArrowWrap.style.display != 'none') { els.colorchipSwiperArrowWrap.style.display = 'none'; } if (!els.colorchipWrap.classList.contains('js-colorchip-static')) { els.colorchipWrap.classList.add('js-colorchip-static'); } if (objs.colorchipSwiper != null) { let realIndex = objs.colorchipSwiper.realIndex; if (!els.colorchipBtns[realIndex].classList.contains(activeClass)) { els.colorchipBtns[realIndex].classList.add(activeClass); els.colorchipBtns[realIndex].setAttribute('aria-selected', true); } swiperEvents.colorchip.destroy(); } let currentColorchip = els.colorchipItemWrap.querySelector(`.${activeClass}`); status.oldColorIndex = currentColorchip.getAttribute('data-js-index'); for (let i = 0; i < els.colorchipBtns.length; i++) { els.colorchipBtns[i].addEventListener('click', handlerList.onClickColorchip); els.colorchipItems[i].removeAttribute('tabindex'); els.colorchipItems[i].removeAttribute('aria-hidden'); } } }; const objList = { topSwiper: function () { if (objs.topSwiper == null) { objs.topSwiper = new Swiper(els.topSwiperContainer, { init: false, speed: 800, navigation: { nextEl: els.topSwiperNextArrow, prevEl: els.topSwiperPrevArrow, }, pagination: { el: els.topSwiperPagination, type: 'bullets', clickable: true, renderBullet: function () { return '
        • '; } }, slidesPerView: 'auto', centeredSlides: true, }); } }, colorchipSwiper: function () { if (objs.colorchipSwiper == null) { objs.colorchipSwiper = new Swiper(els.colorchipSwiperContainer, { init: false, navigation: { nextEl: els.colorchipSwiperNextArrow, prevEl: els.colorchipSwiperPrevArrow, }, slidesPerView: 'auto', centeredSlides: true, loop: true, speed: 300, touchRatio: 0, }); } }, setScene: function () { objs.topScene = SCROLLER({ trackElement: els.topSwiperContainer, useFixed: false, resize: utils.detector.isTouchDevice ? false : true }); } }; const setSwiper = { top: function () { objList.topSwiper(); objs.topSwiper.on('init', swiperEvents.top.init); objs.topSwiper.on('slideChange', swiperEvents.top.slideChange); objs.topSwiper.init(); }, colorchip: function () { objList.colorchipSwiper(); objs.colorchipSwiper.on('init', swiperEvents.colorchip.init); objs.colorchipSwiper.on('slideChange', swiperEvents.colorchip.slideChange); objs.colorchipSwiper.on('transitionEnd', swiperEvents.colorchip.transitionEnd); objs.colorchipSwiper.init(); els.loopColorchipBtns = els.section.querySelectorAll('.highlights-color__tab-button'); for (let i = 0; i < els.loopColorchipBtns.length; i++) { els.loopColorchipBtns[i].index = i; els.loopColorchipBtns[i].addEventListener('click', handlerList.onClickColorchip); } if (status.targetIndex != 0) status.targetIndex = 0; eventList.colorchip(); eventList.colorName(); eventList.panel(); } }; const swiperEvents = { top: { init: function () { let notification = this.el.querySelector('.swiper-notification'); let bullets = this.pagination.bullets; this.slides[this.activeIndex].style.transitionDuration = '0s'; setTimeout(() => { this.slides[this.activeIndex].style.transitionDuration = ''; }, 100); if (!!notification) this.el.removeChild(notification); accessibility.slide.top(objs.topSwiper); accessibility.pagination.tagging(bullets); accessibility.pagination.label(bullets); els.topSwiperPrevArrow.removeAttribute('aria-label'); els.topSwiperNextArrow.removeAttribute('aria-label'); setTimeout(function () { handlerList.scroll(); }, 900); status.isTest = false; for (let i = 0; i < bullets.length; i++) { bullets[i].removeAttribute('role'); bullets[i].addEventListener('click', function (e) { e.preventDefault(); e.stopPropagation(); objs.topSwiper.slideTo(i); }); } }, slideChange: function () { accessibility.slide.top(objs.topSwiper); accessibility.pagination.label(objs.topSwiper.pagination.bullets); } }, colorchip: { init: function () { let notification = this.el.querySelector('.swiper-notification'); if (!!notification) this.el.removeChild(notification); accessibility.slide.colorchip(objs.colorchipSwiper); els.colorchipSwiperPrevArrow.removeAttribute('aria-label'); els.colorchipSwiperNextArrow.removeAttribute('aria-label'); let cloneSlide = this.el.querySelectorAll('.swiper-slide-duplicate'); for (let i = 0; i < cloneSlide.length; i++) { let activeClone = cloneSlide[i].querySelector('.highlights-color__tab-button.is-active'); if (!!activeClone) activeClone.classList.remove('is-active'); } }, slideChange: function () { let activeIndex = this.activeIndex; let oldColor = els.loopColorchipBtns[oldIndex]; status.oldColorIndex = oldColor.getAttribute('data-js-index'); status.targetIndex = els.loopColorchipBtns[activeIndex].getAttribute('data-js-index'); eventList.colorchip(); eventList.colorName(); eventList.panel(); accessibility.slide.colorchip(objs.colorchipSwiper); eventList.setPopupBtnColor(els.panels[status.targetIndex]); oldIndex = activeIndex; }, transitionEnd: function () { if (status.isClick) status.isClick = false; }, destroy: function () { objs.colorchipSwiper.destroy(true); objs.colorchipSwiper = null; }, }, }; const handlerList = { scroll: function () { objs.topScene.trackAnimation(function () { if (this.wheelDirection == 'down' && this.progress > 45 && this.progress < 70) { if (objs.topSwiper != null) { objs.topSwiper.slideNext(); objs.topScene.destroy(); window.removeEventListener('scroll', handlerList.scroll); } } else if (this.wheelDirection == 'up' && this.progress < 50) { if (objs.topSwiper != null) { objs.topSwiper.slideNext(); objs.topScene.destroy(); window.removeEventListener('scroll', handlerList.scroll); } } }); }, onResize: function (currRes) { currDevice = currRes; if (currDevice !== prevDevice) { setColorchipEvent(); if (objs.colorchipSwiper != null) { accessibility.slide.colorchip(objs.colorchipSwiper); } prevDevice = currDevice; } }, onClickArrow: function (e) { status.isArrowClick = true; status.arrowStyleTimeout = null; if ((e.type == 'keydown' && e.keyCode == 13) || e.type == 'click') { e.preventDefault(); if (objs.topSwiper.isBeginning && !objs.topSwiper.isEnd) { els.topSwiperPrevArrow.style.setProperty('display', 'block', 'important'); clearTimeout(status.arrowTimeout); status.arrowTimeout = setTimeout(function () { els.topSwiperNextArrow.focus(); }, 300); clearTimeout(status.arrowStyleTimeout); status.arrowStyleTimeout = setTimeout(function () { els.topSwiperPrevArrow.style.display = ''; }, 400); } else if (!objs.topSwiper.isBeginning && objs.topSwiper.isEnd) { els.topSwiperNextArrow.style.setProperty('display', 'block', 'important'); clearTimeout(status.arrowTimeout); status.arrowTimeout = setTimeout(function () { els.topSwiperPrevArrow.focus(); }, 300); clearTimeout(status.arrowStyleTimeout); status.arrowStyleTimeout = setTimeout(function () { els.topSwiperNextArrow.style.display = ''; }, 400); } } }, onClickColorchip: function () { status.isClick = true; let targetColor = this; if (status.isLoop) { if (targetColor.classList.contains('is-active')) return; eventList.slideTo(targetColor); } else { status.targetIndex = targetColor.getAttribute('data-js-index'); eventList.colorchip(); eventList.colorName(); eventList.panel(); status.oldColorIndex = status.targetIndex; } } }; const eventList = { colorchip: function () { let oldColor = els.colorchipItemWrap.querySelectorAll(`.${activeClass}`); let activeIndex = status.isLoop ? objs.colorchipSwiper.activeIndex : status.targetIndex; let targetColorchipBtns = status.isLoop ? els.loopColorchipBtns[activeIndex] : els.colorchipBtns[activeIndex]; if (!targetColorchipBtns.classList.contains(activeClass)) { for (let i = 0; i < oldColor.length; i++) { oldColor[i].classList.remove(activeClass); oldColor[i].setAttribute('aria-selected', false); } targetColorchipBtns.classList.add(activeClass); targetColorchipBtns.setAttribute('aria-selected', true); } }, colorName: function () { for (let i = 0; i < els.colorNames.length; i++) { if (els.colorNames[i].classList.contains(activeClass)) { els.colorNames[i].classList.remove(activeClass); } } if (!els.colorNames[status.targetIndex].classList.contains(activeClass)) { els.colorNames[status.targetIndex].classList.add(activeClass); } }, panel: function () { for (let i = 0; i < els.panels.length; i++) { if (els.panels[i].classList.contains(activeClass)) { els.panels[i].classList.remove(activeClass); els.panels[i].setAttribute('aria-hidden', true); } } if (!els.panels[status.targetIndex].classList.contains(activeClass)) { els.panels[status.targetIndex].classList.add(activeClass); els.panels[status.targetIndex].setAttribute('aria-hidden', false); els.popupBtn.setAttribute('data-model-color', els.panels[status.targetIndex].getAttribute('id')); } if (status.targetIndex != 0) { let targetPanelImgs = els.panels[status.targetIndex].querySelectorAll('img'); if (!targetPanelImgs[0].classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia([targetPanelImgs[0]]); } if (!targetPanelImgs[1].classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia([targetPanelImgs[1]]); } } }, slideTo: function (targetColor) { let self = objs.colorchipSwiper; let activeIndex = targetColor.index; objs.slideChangeTime = null; if (status.isClick) { let moveSize = oldIndex - activeIndex; if (moveSize > 0) { if (moveSize == 1) { objs.colorchipSwiper.slidePrev(); } else if (moveSize == 3) { objs.colorchipSwiper.slidePrev(0); objs.colorchipSwiper.slidePrev(0); self.slidePrev(); } else { objs.colorchipSwiper.slidePrev(0); self.slidePrev(); } } else { if (moveSize == -1) { objs.colorchipSwiper.slideNext(); } else if (moveSize == -3) { objs.colorchipSwiper.slideNext(0); objs.colorchipSwiper.slideNext(0); self.slideNext(); } else { objs.colorchipSwiper.slideNext(0); self.slideNext(); } } self.slides[self.activeIndex].querySelector('button').focus(); clearTimeout(objs.slideChangeTime); objs.slideChangeTime = setTimeout(function () { self.slides[self.activeIndex].querySelector('button').focus(); }, 200); status.isClick = false; } }, setPopupBtnColor: function (target) { els.popupBtn.setAttribute('data-model-color', target.getAttribute('id')); } }; const accessibility = { slide: { top: function (swiperObjs) { for (let i = 0; i < swiperObjs.slides.length; i++) { if (i != swiperObjs.activeIndex) { utils.onAccessibility(swiperObjs.slides[i]); } else { utils.offAccessibility(swiperObjs.slides[i]); } } }, colorchip: function (swiperObjs) { let isNotActivedColorchips = null; for (let i = 0; i < swiperObjs.slides.length; i++) { if (currDevice.indexOf('mobile') > -1) { isNotActivedColorchips = (i != swiperObjs.activeIndex) && (i > swiperObjs.activeIndex + 2) || (i < swiperObjs.activeIndex - 2) } else { isNotActivedColorchips = (i != swiperObjs.activeIndex) && (i > swiperObjs.activeIndex + 3) || (i < swiperObjs.activeIndex - 3) } if (isNotActivedColorchips) { utils.onAccessibility(swiperObjs.slides[i]); } else { utils.offAccessibility(swiperObjs.slides[i]); } } } }, pagination: { tagging: function (pagination) { const tagging = { 'data-omni-type': 'microsite_gallery', 'data-omni': 'galaxy-s24:highlights:design^colors:index:', 'ga-ca': 'gallery', 'ga-ac': 'feature gallery', 'ga-la': 'galaxy-s24:highlights:design^colors:index:' }; if (!!pagination) { for (let i = 0; i < pagination.length; i++) { Object.keys(tagging).forEach(key => { if (key == 'data-omni' || key == 'ga-la') { pagination[i].setAttribute(key, tagging[key] + (i + 1)); } else { pagination[i].setAttribute(key, tagging[key]); } }); } } }, label: function (bullets) { for (let i = 0; i < bullets.length; i++) { let isExclusive = objs.topSwiper.slides[i].getAttribute('data-colortype') == 'true' ? true : false; let slideName; if (typeof LOCAL_VARI != 'undefined' && !!LOCAL_VARI) { slideName = !!isExclusive ? LOCAL_VARI.exclusive : LOCAL_VARI.default; if (i === objs.topSwiper.realIndex) { bullets[i].setAttribute('aria-label', `${LOCAL_VARI.slide}${i+1}: ${slideName} ${LOCAL_VARI.selected.toLowerCase()}`); } else { bullets[i].setAttribute('aria-label', `${LOCAL_VARI.slide}${i+1}: ${slideName}`); } } else { slideName = !!isExclusive ? 'online exclusive color' : 'default color'; if (i === objs.topSwiper.realIndex) { bullets[i].setAttribute('aria-label', `Slide${i+1}: ${slideName} selected`); } else { bullets[i].setAttribute('aria-label', `Slide${i+1}: ${slideName}`); } } } }, } }; return { init: init, } })();})();(function () {window.flagship = window.flagship || {};window.flagship.highlights = window.flagship.highlights || {};window.flagship.highlights.dayPopup = (function () {const utils = window.flagship.common.utils;const common = window.flagship.highlights.common;let els = {};let objs = {};let status = {};const init = function () {els.section = document.querySelector('.highlights-super-hdr');els.layerPopup = document.querySelector('.highlights-day-popup');if (!!els.layerPopup && !!els.section) {setElements();setStatus();objList.setPopup();bindEvents();}};const setElements = function () {status.isGlobal = document.documentElement.classList.contains('global');els.contents = document.querySelector('#contents');els.openCta = els.section.querySelector('.highlights-super-hdr__cta button');els.innerWrap = els.layerPopup.querySelector('.common-popup__inner-wrapper');els.closeCtas = els.layerPopup.querySelectorAll('.common-popup__close-cta');els.dimmed = els.layerPopup.querySelector('.common-popup__dimmed');els.supClicker = els.layerPopup.querySelectorAll('a.click_sup');els.videoWrap = els.layerPopup.querySelector('.common-video.js-scroll-video');els.videoWrap.video = els.videoWrap.querySelector('.common-video__video');els.videoWrap.controller = els.videoWrap.querySelector('.common-video__control');els.videoWrap.controller.video = els.videoWrap.video;els.hashPopupOpener = null;};const setStatus = function () {status.isHash = false;};const bindEvents = function () {els.videoWrap.controller.addEventListener('click', handlerList.videoCta);for (let i = 0; i < els.supClicker.length; i++) {els.supClicker[i].addEventListener('click', handlerList.onClickSup);}};const objList = {setPopup: function () {utils.layerPopup({layerPopup: els.layerPopup,layerPopupClass: '.highlights-day-popup',openerEvent: {element: els.openCta,},closeCtas: [els.closeCtas[0], els.closeCtas[1]],dimmed: els.dimmed,moveTarget: document.documentElement,contents: els.contents,show: {start: function (target) {els.innerWrap.scrollTop = 0;els.layerPopup.classList.add('is-init');target.openerCta.blur();setPopupLazyLoader.image();setPopupLazyLoader.video();objList.setVideo();if (`#${els.openCta.getAttribute('data-hash')}` == window.location.hash) {status.isHash = true;els.hashPopupOpener = els.openCta;}},end: function () {if (utils.detector.isIosDevice) els.layerPopup.style.display = 'block';els.layerPopup.classList.add('is-open');}},hide: {start: function (target) {target.openerCta.focus();els.layerPopup.classList.remove('is-open');},end: function () {setTimeout(function () {els.layerPopup.classList.remove('is-init');}, 300);els.videoWrap.video.pause();els.videoWrap.video.currentTime = 0;if (status.isHash && els.hashPopupOpener) {els.hashPopupOpener.focus();setTimeout(function () {els.hashPopupOpener.focus();status.isHash = false;els.hashPopupOpener = null;}, 300);}}}});},setVideo: function () {objs.scrollVideo = ANIUTIL.videoHandler({wrap: els.videoWrap,video: els.videoWrap.video,controller: els.videoWrap.controller,resetCallback: function () {if (this.wrap.classList.contains('is-completed')) {this.wrap.classList.remove('is-completed');}},playCallback: function () {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');}}});}};const handlerList = {videoCta: function (e) { if (e.target == e.currentTarget) { if (e.currentTarget.video.paused) { e.currentTarget.video.play(); } else { e.currentTarget.video.pause(); } } },onClickSup: function (e) {e.preventDefault();e.stopPropagation();els.layerPopup.hide();let targetIndex = parseFloat(e.target.innerText),disclaimer = document.querySelectorAll('#desc-section li')[targetIndex - 1],disclaimerText = disclaimer.innerText,activeBlock = '' + disclaimerText + '';setTimeout(() => {disclaimer.innerHTML = activeBlock;disclaimer.querySelector('a').focus();}, 500);const eventList = {focusIn: function () {common.centeredFocus.call(disclaimer.querySelector('a'));disclaimer.removeEventListener('focusin', eventList.focusIn);},focusOut: function () {disclaimer.innerHTML = disclaimerText;disclaimer.removeAttribute('tabindex');disclaimer.removeEventListener('focusout', eventList.focusOut);},};disclaimer.addEventListener('focusin', eventList.focusIn);disclaimer.addEventListener('focusout', eventList.focusOut);}};const setPopupLazyLoader = {image: function () {objs.imageLoader = ANIUTIL.mediaLoader({lazyClass: '.js-day-popup-img-src',responsiveClass: '.js-day-popup-res-img',preset: status.isGlobal ? '' : '?imbypass=true',innerScroll: {use: true,wrap: els.layerPopup,},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.popupBgLoader = ANIUTIL.mediaLoader({type: 'bgImage',lazyClass: '.js-day-popup-bg-img',innerScroll: {use: true,wrap: els.layerPopup,},loadOption: [{resolution: 1920,attribute: '',bgOpts: ''}],visiblePoint: 1});},video: function () {objs.videoLoader = ANIUTIL.mediaLoader({type: 'video',lazyClass: '.js-day-popup-video-src',responsiveClass: '.js-day-popup-res-video',preset: status.isGlobal ? '' : '?imbypass=true',innerScroll: {use: true,wrap: els.layerPopup,},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.videoWrap && !video.videoWrap.classList.contains('is-loaded')) {video.videoWrap.classList.add('is-loaded');}}});}};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 = window.flagship || {};window.flagship.highlights = window.flagship.highlights || {};window.flagship.highlights.designSpecPopup = (function () {const utils = window.flagship.common.utils;const common = window.flagship.highlights.common;let els = {};let objs = {};let status = {};const init = function () {els.section = document.querySelector('.highlights-design-display');els.layerPopup = document.querySelector('.highlights-design-spec-popup');if (!!els.layerPopup) {setElements();setStatus();bindEvents();setPopup();}};const setElements = function () {status.isGlobal = document.documentElement.classList.contains('global');els.contents = document.querySelector('#contents');els.innerWrap = els.layerPopup.querySelector('.common-popup__inner-wrapper');els.openCta = els.section.querySelector('.highlights-design-display__cta button');els.closeCtas = els.layerPopup.querySelectorAll('.common-popup__close-cta');els.dimmed = els.layerPopup.querySelector('.common-popup__dimmed');els.supClicker = els.layerPopup.querySelectorAll('a.click_sup');els.hashPopupOpener = null;};const setStatus = function () {status.isHash = false;};const bindEvents = function () {for (let i = 0; i < els.supClicker.length; i++) {els.supClicker[i].addEventListener('click', onClickSup);}};const setPopup = function () {utils.layerPopup({layerPopup: els.layerPopup,layerPopupClass: '.highlights-design-spec-popup',openerEvent: {element: els.openCta,},closeCtas: [els.closeCtas[0], els.closeCtas[1]],dimmed: els.dimmed,moveTarget: document.documentElement,contents: els.contents,show: {start: function (target) {els.innerWrap.scrollTop = 0;els.layerPopup.classList.add('is-init');target.openerCta.blur();setPopupLazyLoader.image();if (`#${els.openCta.getAttribute('data-hash')}` == window.location.hash) {status.isHash = true;els.hashPopupOpener = els.openCta;}},end: function () {if (utils.detector.isIosDevice) els.layerPopup.style.display = 'block';els.layerPopup.classList.add('is-open');}},hide: {start: function (target) {target.openerCta.focus();els.layerPopup.classList.remove('is-open');},end: function () {setTimeout(function () {els.layerPopup.classList.remove('is-init');}, 300);if (status.isHash && els.hashPopupOpener) {els.hashPopupOpener.focus();setTimeout(function () {els.hashPopupOpener.focus();status.isHash = false;els.hashPopupOpener = null;}, 300);}}}});};const onClickSup = function (e) {e.preventDefault();e.stopPropagation();els.layerPopup.hide();let targetIndex = parseFloat(e.target.innerText),disclaimer = document.querySelectorAll('#desc-section li')[targetIndex - 1],disclaimerText = disclaimer.innerText,activeBlock = '' + disclaimerText + '';setTimeout(() => {disclaimer.innerHTML = activeBlock;disclaimer.querySelector('a').focus();}, 500);const eventList = {focusIn: function () {common.centeredFocus.call(disclaimer.querySelector('a'));disclaimer.removeEventListener('focusin', eventList.focusIn);},focusOut: function () {disclaimer.innerHTML = disclaimerText;disclaimer.removeAttribute('tabindex');disclaimer.removeEventListener('focusout', eventList.focusOut);},};disclaimer.addEventListener('focusin', eventList.focusIn);disclaimer.addEventListener('focusout', eventList.focusOut);};const setPopupLazyLoader = {image: function () {objs.imageLoader = ANIUTIL.mediaLoader({lazyClass: '.js-design-spec-popup-img-src',responsiveClass: '.js-design-spec-popup-res-img',preset: status.isGlobal ? '' : '?imbypass=true',innerScroll: {use: true,wrap: els.layerPopup,},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.popupBgLoader = ANIUTIL.mediaLoader({type: 'bgImage',lazyClass: '.js-design-spec-popup-bg-img',innerScroll: {use: true,wrap: els.layerPopup,},loadOption: [{resolution: 1920,attribute: '',bgOpts: ''}],visiblePoint: 1});}};return {init: init,}})();})();(function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.experiences = (function () { const utils = window.flagship.common.utils; const resize = window.flagship.common.resize; let els = {}, objs = {}, status = {}, prevDevice = null, currDevice = resize.checkResolution(); const init = function () { els.section = document.querySelector('.highlights-galaxy-offers'); if(!!els.section) { els.offersItems = els.section.querySelectorAll('.highlights-galaxy-offers__card-item'); if(!!els.offersItems && (els.offersItems.length > 1)) { setElements(); bindEvents(); } } }; const setElements = function () { els.swiperContainer = els.section.querySelector('.highlights-galaxy-offers__card-container'); els.nextArrow = els.section.querySelector('.highlights-galaxy-offers__arrow--next'); els.prevArrow = els.section.querySelector('.highlights-galaxy-offers__arrow--prev'); }; const bindEvents = function () { window.addEventListener('DOMContentLoaded', handlerList.onLoad, {once:true}); resize.add(handlerList.onResize); els.nextArrow.addEventListener('click', handlerList.onClickArrow); els.nextArrow.addEventListener('keydown', handlerList.onClickArrow); els.prevArrow.addEventListener('click', handlerList.onClickArrow); els.prevArrow.addEventListener('keydown', handlerList.onClickArrow); }; const objList = { swiper: function () { if (objs.swiper == null) { objs.swiper = new Swiper(els.swiperContainer, { init: false, navigation: { nextEl: els.nextArrow, prevEl: els.prevArrow, }, loop: false, slidesPerView: 'auto', centeredSlides: false }); } } }; const handlerList = { onLoad: function () { if (currDevice.indexOf('mobile') > -1) { setSwiper(); } }, onResize: function (currRes) { currDevice = currRes; if (currDevice != prevDevice) { handlerList.onResponsive(); prevDevice = currDevice; } }, onResponsive: function () { if (currDevice.indexOf('mobile') > -1) { setSwiper(); } else { swiperEvents.destroy(); } }, onClickArrow: function (e) { status.arrowTimeout = null; status.arrowStyleTimeout = null; if ((e.type == 'keydown' && e.keyCode == 13) || e.type == 'click') { e.preventDefault(); if (objs.swiper.isBeginning && !objs.swiper.isEnd) { els.nextArrow.style.setProperty('display', 'block', 'important'); clearTimeout(status.arrowTimeout); status.arrowTimeout = setTimeout(function () { els.prevArrow.focus(); }, 300); clearTimeout(status.arrowStyleTimeout); status.arrowStyleTimeout = setTimeout(function () { els.nextArrow.style.display = ''; }, 400); } else if (!objs.swiper.isBeginning && objs.swiper.isEnd) { els.prevArrow.style.setProperty('display', 'block', 'important'); clearTimeout(status.arrowTimeout); status.arrowTimeout = setTimeout(function () { els.nextArrow.focus(); }, 300); clearTimeout(status.arrowStyleTimeout); status.arrowStyleTimeout = setTimeout(function () { els.prevArrow.style.display = ''; }, 400); } } } }; const setSwiper = function () { objList.swiper(); objs.swiper.on('init', swiperEvents.init); objs.swiper.on('slideChange', swiperEvents.slideChange); objs.swiper.init(); }; const swiperEvents = { init: function () { let notification = this.el.querySelector('.swiper-notification'); if (!!notification) this.el.removeChild(notification); accessibility.slide(); }, slideChange: function () { accessibility.slide(); }, destroy: function () { if (objs.swiper != null) { objs.swiper.navigation.destroy(true); objs.swiper.destroy(true); objs.swiper = null; } }, }; const accessibility = { slide: function () { for (let i = 0; i < objs.swiper.slides.length; i++) { if (i != objs.swiper.activeIndex) { utils.onAccessibility(objs.swiper.slides[i]); } else { utils.offAccessibility(objs.swiper.slides[i]); } } } }; return { init: init, } })();})();;(function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.faq = (function () { const utils = window.flagship.common.utils; const resize = window.flagship.common.resize; let els = {}; let objs = {}; let prevDevice = null; let currDevice = resize.checkResolution(); const init = function () { els.section = document.querySelector('.highlights-faq'); if (!!els.section) { setElements(); bindEvents(); } }; const setElements = function () { els.faqList = els.section.querySelector('.highlights-faq__list'); }; const bindEvents = function () { resize.add(onResizeHandler); setAccordion(); }; const onResizeHandler = function (currRes) { currDevice = currRes; if (currDevice != prevDevice) { onResponsiveHandler(); prevDevice = currDevice; } }; const onResponsiveHandler = function () { let isOpenedItems = els.faqList.querySelectorAll('.highlights-faq__item.is-open'); if (isOpenedItems.length > 0) { for (let i = 0; i < isOpenedItems.length; i++) { let isOpenedItemContent = isOpenedItems[i].querySelector('.highlights-faq__answer'); let clientHeight = isOpenedItemContent.children[0].clientHeight; isOpenedItemContent.style.height = `${clientHeight}px`; } } }; const setAccordion = function () { objs.accordion = new window.flagship.common.accordion({ wrap: els.faqList, classList: { item: 'highlights-faq__item', button: 'highlights-faq__question-arrow', contents: 'highlights-faq__answer', activeClass: 'is-open' }, open: { start: function (target) { let targetInnerCta = target.querySelector('.highlights-faq__cta'); if (targetInnerCta) targetInnerCta.addEventListener('click', onClickFaqCta); } } }); objs.accordion.init(); }; const onClickFaqCta = function (e) { if (this.getAttribute('href').indexOf('#') == 0) { e.preventDefault(); let sectionId = this.getAttribute('href'); let section = document.querySelector(sectionId); let sectionTop = section.getBoundingClientRect().top; let movePosition = (sectionTop + window.pageYOffset) - utils.getNavHeight(); let clickable = section.querySelectorAll('a, button'); let title = (sectionId == '#galaxy-ai') ? section.querySelector('.common-headline') : section.querySelector('h2'); if(title.classList.contains('common-display-mo')) { if(resize.checkResolution().indexOf('mobile') > -1) { title = section.querySelector('h2.common-display-mo'); } else { title = section.querySelector('h2.common-display-pc'); } } 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 = window.flagship || {};window.flagship.highlights = window.flagship.highlights || {};window.flagship.highlights.generativeEditTutorial = (function () {const utils = window.flagship.common.utils;const common = window.flagship.highlights.common;let els = {};let objs = {};let stepInfo = [];let status = {};const init = function () {els.section = document.querySelector('.highlights-generative-edit-tutorial');if (!!els.section) {setElements();bindEvents();}};const setElements = function () {els.tutorialVideoContainer = els.section.querySelector('.common-tutorial__main-video');els.videoList = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video');els.videoWrap = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video .common-video');els.videos = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video .common-video__video');els.coverImages = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video .common-video__cover-image');els.tooltipCta = els.tutorialVideoContainer.querySelectorAll('.js-tutorial-tooltip-cta');els.generativeCta = els.tutorialVideoContainer.querySelector('.js-tutorial-generative-cta');els.tutorialReplay = els.tutorialVideoContainer.querySelector('.common-tutorial__replay-cta');};const setProperty = function(el, index){el.video = el.querySelector('video');el.controller = el.querySelector('.common-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;}const setStepStatus = function(el){stepInfo.push({alert: el.getAttribute('data-alert'),tooltip: el.getAttribute('data-tooltip')});}const eventList = {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('canplay', function(){if (this.paused) this.play();});}setTimeout(()=>{els.videoList[index].classList.remove('is-visible');if (!!els.videoList[index].tooltipCta) {els.videoList[index].tooltipCta.blur();}els.videos[index + 1].videoWrap.controller.focus();}, 200);},click: function(){let self = this;els.tooltipCta[0].addEventListener('click', function(){if (els.videos[2].readyState < 4) {imageLoader.setResponsiveMedia([els.coverImages[2], els.coverImages[3], els.coverImages[4]]);videoLoader.setResponsiveMedia([els.videos[2], els.videos[3], els.videos[4]]);}self.nextVideoPlay(0);})els.tooltipCta[1].addEventListener('click', function(){self.nextVideoPlay(1);}),els.generativeCta.addEventListener('click', function(){this.setAttribute('disabled', '');utils.onAccessibility(els.generativeCta);this.parentElement.classList.remove('is-visible');self.nextVideoPlay(5);})},endCallback: function () {let autoplay = this.video.playIndex == 2 ||this.video.playIndex == 6;if (stepInfo[this.video.playIndex].tooltip == 'true') {if (this.video.playIndex != 5) this.wrap.tooltipCta.removeAttribute('disabled');this.wrap.tooltip.classList.add('is-visible');}if (stepInfo[this.video.playIndex].alert == 'true') {this.wrap.alert.classList.add('is-visible');}if (autoplay) {eventList.nextVideoPlay(this.video.playIndex);}let self = this;switch (this.video.playIndex) {case 2:if (!els.generativeCta.classList.contains('is-bg-load-complete')) {els.generativeCta.classList.add('is-bg-load-complete');}els.generativeCta.parentElement.classList.add('is-visible');break;case 3:if (els.videos[5].readyState < 4) {imageLoader.setResponsiveMedia([els.coverImages[5]]);videoLoader.setResponsiveMedia([els.videos[5]]);}(function(wrap, video){setTimeout(()=>{self.wrap.alert.classList.remove('is-visible');eventList.nextVideoPlay(video.playIndex);}, 3000)})(this.wrap, this.video);break;case 4:if (els.videos[6].readyState < 4) {imageLoader.setResponsiveMedia([els.coverImages[6], els.coverImages[7]]);videoLoader.setResponsiveMedia([els.videos[6], els.videos[7]]);}(function(wrap, video){setTimeout(()=>{self.wrap.alert.classList.remove('is-visible');eventList.nextVideoPlay(video.playIndex);}, 3000)})(this.wrap, this.video);break;case 5:els.generativeCta.removeAttribute('disabled');utils.offAccessibility(els.generativeCta);break;case 7:els.generativeCta.parentElement.classList.add('is-visible');els.generativeCta.classList.add('is-tutorial-end');break;default:break;}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');els.tutorialReplay.focus();}}}const setVideos = function(){objs.videos = [];for (let i = 0; i < els.videoWrap.length; i++) {let isVideoWrap = els.videoWrap[i];objs.videos.push(ANIUTIL.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);},pauseCallback: function () {setTagging.play(this.controller);},endCallback: function () {if (!!this.wrap.tooltip) {let self = this;if (this.video.playIndex != 5) {utils.offAccessibility(this.wrap.tooltip);setTimeout(function () {self.wrap.tooltipCta.focus();}, 200);}}if (this.video.playIndex == (els.videos.length - 3)) {setTimeout(function () {els.generativeCta.focus();}, 200);}this.controller.style.display = 'none !important';eventList.endCallback.call(this)}}));}};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 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();};return {init: init,}})();})();(function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.innerPopup = (function () { let els = {}; const utils = window.flagship.common.utils; const innerPopup = function (opts) {let els = {};let show = {},hide = {};const init = function () {setElements();setOpts();bindEvent();};const setElements = function () {els.outPopup = opts.openerEvent.element.closest('.common-popup');els.innerPopup = opts.layerPopup;els.closeCtas = opts.closeCtas;els.moveTarget = opts.moveTarget;els.dimmed = !!!opts.dimmed ? '' : opts.dimmed;els.contents = opts.contents;els.innerPopupClass = opts.layerPopupClass;};const setOpts = function () {show.start = (!!!opts.show) ? undefined : opts.show.start;show.end = (!!!opts.show) ? undefined : opts.show.end;hide.start = (!!!opts.hide) ? undefined : opts.hide.start;hide.end = (!!!opts.hide) ? undefined : opts.hide.end;}const bindEvent = function () {opts.openerEvent.element.addEventListener('click', showLayer);els.innerPopup.show = showLayer;els.innerPopup.hide = hideLayer;};const showLayer = function (e) {if (opts.openerEvent.proxy) {if (opts.openerEvent.parent) {if (e.target.parentElement.classList.contains(opts.openerEvent.class)) {els.openerCta = e.target.parentElement;}} else {if (e.target.classList.contains(opts.openerEvent.class)) {els.openerCta = e.target;}}} else {els.openerCta = this;}els.innerPopup.opener = els.openerCta;if (show.start) show.start(els);els.outPopup.classList.add('is-layer-open');if (utils.detector.isIosDevice) {els.innerPopup.opener.blur();els.openerCta.style.display = 'none';}els.closeCtas[0].focus();setTimeout(function () {els.closeCtas[0].focus();accessibility.on();}, 300);for (let i = 0 ; i < els.closeCtas.length; i++) {els.closeCtas[i].addEventListener('click', hideLayer);}if (els.dimmed) els.dimmed.addEventListener('click', onClickDimmed);if (show.end) show.end(els);};const hideLayer = function () {if (utils.detector.isIosDevice) els.openerCta.style.display = '';if (hide.start) hide.start(els);for (let i = 0 ; i < els.closeCtas.length; i++) {els.closeCtas[i].removeEventListener('click', hideLayer);}if (els.dimmed) els.dimmed.removeEventListener('click', onClickDimmed);accessibility.off();els.outPopup.classList.remove('is-layer-open');if (!!!els.openerCta) {els.innerPopup.opener.focus();} else {els.openerCta.focus();}setTimeout(function () {if (!!!els.openerCta) {els.innerPopup.opener.focus();} else {els.openerCta.focus();}}, 300);if (hide.end) hide.end(els);};const onClickDimmed = function (e) {if (e.currentTarget == e.target) {hideLayer();}};const accessibility = {on: function () {utils.onPopupAccessibility(els.outPopup);utils.offAccessibility(els.innerPopup);},off: function () {utils.offPopupAccessibility(els.outPopup);utils.onAccessibility(els.innerPopup);}};return init();}; const init = function () { els.layerPopup = document.querySelector('.common-youtube-popup'); if(!!els.layerPopup) { setElements(); setPopup(); } }; const setElements = function () {els.contents = document.querySelector('#contents'); els.openCta = document.querySelector('.js-inner-popup'); els.closeCta = document.querySelector('.common-youtube-popup__close-cta'); els.ytIframe = els.layerPopup.querySelector('.common-youtube-popup__iframe > iframe'); els.ytDesc = els.layerPopup.querySelector('.youtube-player__desc'); els.dimmed = els.layerPopup.querySelector('.common-youtube-popup__close-area'); }; const setPopup = function () { innerPopup({ layerPopup: els.layerPopup, layerPopupClass: '.common-yotube-popup', openerEvent: { element: els.openCta, }, closeCtas: [els.closeCta],dimmed: els.dimmed,moveTarget: document.documentElement,contents: els.contents,show: {start: function () {els.layerPopup.classList.add('is-yt-open');},end: function (target) {eventList.setYoutube(target);}},hide: {start: function () {els.layerPopup.classList.remove('is-yt-open');},end: function (target) {eventList.clearYoutube();}} }); }; const eventList = { setYoutube: function (target) { let opener = target.openerCta, ytSrc = 'htt' + 'ps://www.youtube.com/embed/' + opener.getAttribute('data-youtube-id') + '?wmode=opaque&rel=0&enablejsapi=1&version=3&autoplay=1', ytTitle = opener.getAttribute('data-youtube-title'), ytBlind = opener.querySelector('.blind').innerHTML; els.ytIframe.setAttribute('src', ytSrc); els.ytIframe.setAttribute('title', ytTitle); els.ytDesc.innerHTML = ytBlind; els.OpenerTarget = opener; }, clearYoutube: function () { els.ytIframe.removeAttribute('src'); els.ytDesc.innerHTML = ''; } }; return { init: init, } })();})();(function () {window.flagship = window.flagship || {};window.flagship.highlights = window.flagship.highlights || {};window.flagship.highlights.liveTranslateTutorial = (function () {const utils = window.flagship.common.utils;const common = window.flagship.highlights.common;let els = {};let objs = {};let stepInfo = [];let status = {};const init = function () {els.section = document.querySelector('.highlights-live-translate-tutorial');if (!!els.section) {setElements();bindEvents();}};const setElements = function () {els.tutorialVideoContainer = els.section.querySelector('.common-tutorial__main-video');els.videoList = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video');els.videoWrap = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video .common-video');els.videos = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video .common-video__video');els.tooltipCta = els.tutorialVideoContainer.querySelectorAll('.js-tutorial-tooltip-cta');els.tutorialReplay = els.tutorialVideoContainer.querySelector('.common-tutorial__replay-cta');els.muteCtas = els.section.querySelectorAll('.common-mute-button');};const setProperty = function(el, index){el.video = el.querySelector('video');el.controller = el.querySelector('.common-play-button');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.videoMuteCta = el.querySelector('.common-mute-button');el.video.playIndex = index;}const setStepStatus = function(el){stepInfo.push({alert: el.getAttribute('data-alert'),tooltip: el.getAttribute('data-tooltip')});}const eventList = {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('canplay', function(){if (this.paused) this.play();});}setTimeout(()=>{els.videoList[index].classList.remove('is-visible');if (!!els.videoList[index].tooltipCta) {els.videoList[index].tooltipCta.blur();}els.videos[index + 1].videoWrap.videoMuteCta.focus();}, 200);},click: function(){let self = this;els.tooltipCta[0].addEventListener('click', function(){self.nextVideoPlay(0);});},endCallback: function () {if (stepInfo[this.video.playIndex].tooltip == 'true') {if (!this.wrap.tooltipCta.classList.contains('is-bg-load-complete')) {this.wrap.tooltipCta.classList.add('is-bg-load-complete');}this.wrap.tooltipCta.removeAttribute('disabled');this.wrap.tooltip.classList.add('is-visible');}if (stepInfo[this.video.playIndex].alert == 'true') {this.wrap.alert.classList.add('is-visible');}if (!this.wrap.classList.contains('is-completed')) {this.wrap.classList.add('is-completed');this.controller.style.display = 'none';}},onClickMute: function () {for (let i = 0; i < els.muteCtas.length; i++) {els.muteCtas[i].video = els.muteCtas[i].parentElement.parentElement.video;els.muteCtas[i].addEventListener('click', function () {let isMute = this.video.muted;if (!!isMute) {this.classList.add('is-unmuted');this.video.muted = false;this.blind.innerText = this.getAttribute('data-mute');setTagging.mute(this);} else {this.classList.remove('is-unmuted');this.video.muted = true;this.blind.innerText = this.getAttribute('data-unmute');setTagging.unmute(this);}});}},setMuteBlindText: function () {for (let i = 0; i < els.muteCtas.length; i++) {els.muteCtas[i].blind = els.muteCtas[i].querySelector('.blind');els.muteCtas[i].blind.innerText = els.muteCtas[i].getAttribute('data-unmute');}}}const setVideos = function(){objs.videos = [];for (let i = 0; i < els.videoWrap.length; i++) {let isVideoWrap = els.videoWrap[i];objs.videos.push(ANIUTIL.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.videoMuteCta);if (this.video.playIndex == 0) {let self = this;clearTimeout(status.videoFocusTimeout);status.videoFocusTimeout = setTimeout(function () {self.wrap.videoMuteCta.focus();status.videoFocusTimeout = null;}, 400);}if (!this.video.muted) {this.wrap.videoMuteCta.classList.remove('is-unmuted');this.wrap.videoMuteCta.video.muted = true;this.wrap.videoMuteCta.blind.innerText = this.wrap.videoMuteCta.getAttribute('data-unmute');setTagging.unmute(this.wrap.videoMuteCta);}this.controller.style.display = 'block';utils.offAccessibility(this.controller);setTagging.pause(this.controller);},pauseCallback: function () {setTagging.play(this.controller);},endCallback: function () {if (!!this.wrap.tooltip) {let self = this;utils.offAccessibility(this.wrap.tooltip);setTimeout(function () {self.wrap.tooltipCta.focus();}, 200);}this.controller.style.display = 'none !important';eventList.endCallback.call(this);if ((els.videos.length -1) == this.video.playIndex) {els.tutorialReplay.style.display = 'block';els.tutorialReplay.removeAttribute('tabindex');els.tutorialReplay.removeAttribute('aria-hidden');els.tutorialReplay.focus();}}}));}};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')); } }, };const bindEvents = function () {for (let i = 0; i < els.videoWrap.length; i++) {setProperty(els.videoWrap[i], i);setStepStatus(els.videoList[i])}setVideos();eventList.setMuteBlindText();eventList.videoController();eventList.click();eventList.onClickMute();};return {init: init,}})();})();(function () {window.flagship = window.flagship || {};window.flagship.highlights = window.flagship.highlights || {};window.flagship.highlights.liveTranslatePopup = (function () {const utils = window.flagship.common.utils;const common = window.flagship.highlights.common;let els = {};let objs = {};let status = {};const init = function () {els.layerPopup = document.querySelector('.highlights-live-translate-popup');if (!!els.layerPopup) {setElements();setStatus();objList.setPopup();bindEvents();}};const setElements = function () {status.isGlobal = document.documentElement.classList.contains('global');els.contents = document.querySelector('#contents');els.openCta = document.querySelector('.highlights-live-translate__cta button');els.innerWrap = els.layerPopup.querySelector('.common-popup__inner-wrapper');els.closeCtas = els.layerPopup.querySelectorAll('.common-popup__close-cta');els.dimmed = els.layerPopup.querySelector('.common-popup__dimmed');els.supClicker = els.layerPopup.querySelectorAll('a.click_sup');els.videoWrap = els.layerPopup.querySelector('.common-video.js-scroll-video');els.videoWrap.video = els.videoWrap.querySelector('.common-video__video');els.videoWrap.controller = els.videoWrap.querySelector('.common-video__control');els.videoWrap.controller.video = els.videoWrap.video;els.hashPopupOpener = null;};const setStatus = function () {status.isHash = false;};const bindEvents = function () {els.videoWrap.controller.addEventListener('click', handlerList.videoCta);for (let i = 0; i < els.supClicker.length; i++) {els.supClicker[i].addEventListener('click', handlerList.onClickSup);}};const objList = {setPopup: function () {utils.layerPopup({layerPopup: els.layerPopup,layerPopupClass: '.highlights-live-translate-popup',openerEvent: {element: els.openCta,},closeCtas: [els.closeCtas[0], els.closeCtas[1]],dimmed: els.dimmed,moveTarget: document.documentElement,contents: els.contents,show: {start: function (target) {els.innerWrap.scrollTop = 0;els.layerPopup.classList.add('is-init');target.openerCta.blur();setPopupLazyLoader.image();setPopupLazyLoader.video();objList.setVideo();if (`#${els.openCta.getAttribute('data-hash')}` == window.location.hash) {status.isHash = true;els.hashPopupOpener = els.openCta;}},end: function () {if (utils.detector.isIosDevice) els.layerPopup.style.display = 'block';els.layerPopup.classList.add('is-open');if(els.contents.querySelector('.common-youtube-popup')) {document.documentElement.appendChild(els.contents.querySelector('.common-youtube-popup'));}}},hide: {start: function (target) {target.openerCta.focus();els.layerPopup.classList.remove('is-open');},end: function () {setTimeout(function () {els.layerPopup.classList.remove('is-init');}, 300);els.videoWrap.video.pause();els.videoWrap.video.currentTime = 0;if (status.isHash && els.hashPopupOpener) {els.hashPopupOpener.focus();setTimeout(function () {els.hashPopupOpener.focus();status.isHash = false;els.hashPopupOpener = null;}, 300);}els.openCta.focus();setTimeout(() => {els.openCta.focus();}, 300);}}});},setVideo: function () {objs.video = ANIUTIL.videoHandler({wrap: els.videoWrap,video: els.videoWrap.video,controller: els.videoWrap.controller,resetCallback: function () {if (this.wrap.classList.contains('is-completed')) {this.wrap.classList.remove('is-completed');}},playCallback: function () {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');}}});}};const handlerList = {videoCta: function (e) {if (e.target == e.currentTarget) {if (e.currentTarget.video.paused) {e.currentTarget.video.play();} else {e.currentTarget.video.pause();}}},onClickSup: function (e) {e.preventDefault();e.stopPropagation();els.layerPopup.hide();let targetIndex = parseFloat(e.target.innerText),disclaimer = document.querySelectorAll('#desc-section li')[targetIndex - 1],disclaimerText = disclaimer.innerText,activeBlock = '' + disclaimerText + '';setTimeout(() => {disclaimer.innerHTML = activeBlock;disclaimer.querySelector('a').focus();}, 500);const eventList = {focusIn: function () {common.centeredFocus.call(disclaimer.querySelector('a'));disclaimer.removeEventListener('focusin', eventList.focusIn);},focusOut: function () {disclaimer.innerHTML = disclaimerText;disclaimer.removeAttribute('tabindex');disclaimer.removeEventListener('focusout', eventList.focusOut);},};disclaimer.addEventListener('focusin', eventList.focusIn);disclaimer.addEventListener('focusout', eventList.focusOut);}};const setPopupLazyLoader = {image: function () {objs.imageLoader = ANIUTIL.mediaLoader({lazyClass: '.js-live-translate-popup-img-src',responsiveClass: '.js-live-translate-popup-res-img',preset: status.isGlobal ? '' : '?imbypass=true',innerScroll: {use: true,wrap: els.layerPopup,},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.popupBgLoader = ANIUTIL.mediaLoader({type: 'bgImage',lazyClass: '.js-live-translate-popup-bg-img',innerScroll: {use: true,wrap: els.layerPopup,},loadOption: [{resolution: 1920,attribute: '',bgOpts: ''}],visiblePoint: 1});},video: function () {objs.videoLoader = ANIUTIL.mediaLoader({type: 'video',lazyClass: '.js-live-translate-popup-video-src',responsiveClass: '.js-live-translate-popup-res-video',preset: status.isGlobal ? '' : '?imbypass=true',innerScroll: {use: true,wrap: els.layerPopup,},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.videoWrap && !video.videoWrap.classList.contains('is-loaded')) {video.videoWrap.classList.add('is-loaded');}}});}};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 = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.nightography = (function () { let els = {}; let status = {}; let objs = {}; const utils = window.flagship.common.utils; const init = function () { els.section = document.querySelector('.highlights-nightography'); if (!!els.section) { setElements(); objList.swiper(); bindEvents(); } }; const setElements = function () { els.swiperContainer = els.section.querySelector('.swiper-container'); els.nextArrow = els.section.querySelector('.swiper-button-next'); els.prevArrow = els.section.querySelector('.swiper-button-prev'); els.pagination = els.section.querySelector('.swiper-pagination'); }; const bindEvents = function () { objs.swiper.on('init', swiperEvents.init); objs.swiper.on('slideChange', swiperEvents.slideChange); objs.swiper.init(); els.nextArrow.addEventListener('click', swiperEvents.onClickArrow); els.nextArrow.addEventListener('keydown', swiperEvents.onClickArrow); els.prevArrow.addEventListener('click', swiperEvents.onClickArrow); els.prevArrow.addEventListener('keydown', swiperEvents.onClickArrow); }; const objList = { swiper: function () { if (objs.swiper == null) { objs.swiper = new Swiper(els.swiperContainer, { init: false, navigation: { nextEl: els.nextArrow, prevEl: els.prevArrow, }, pagination: { el: els.pagination, type: 'bullets', clickable: true, renderBullet: function () { return '
        • '; } }, slidesPerView: 'auto', centeredSlides: true, spaceBetween: 10, breakpoints: { 768: { spaceBetween: 100, } }, }); } } }; const swiperEvents = { init: function () { let notification = this.el.querySelector('.swiper-notification'); els.bullets = this.pagination.bullets; for (let i = 0; i < els.bullets.length; i++) { els.bullets[i].removeAttribute('role'); els.bullets[i].addEventListener('click', function (e) { e.preventDefault(); e.stopPropagation(); objs.swiper.slideTo(i); }); } if (!!notification) this.el.removeChild(notification); accessibility.slide(); accessibility.pagination.tagging(); accessibility.pagination.label(); els.nextArrow.removeAttribute('aria-label'); els.prevArrow.removeAttribute('aria-label'); }, slideChange: function () { accessibility.slide(); accessibility.pagination.label(); }, onClickArrow: function (e) { status.arrowTimeout = null; status.arrowStyleTimeout = null; if ((e.type == 'keydown' && e.keyCode == 13) || e.type == 'click') { e.preventDefault(); if (objs.swiper.isBeginning && !objs.swiper.isEnd) { els.prevArrow.style.setProperty('display', 'block', 'important'); clearTimeout(status.arrowTimeout); status.arrowTimeout = setTimeout(function () { els.nextArrow.focus(); }, 300); clearTimeout(status.arrowStyleTimeout); status.arrowStyleTimeout = setTimeout(function () { els.prevArrow.style.display = ''; }, 400); } else if (!objs.swiper.isBeginning && objs.swiper.isEnd) { els.nextArrow.style.setProperty('display', 'block', 'important'); clearTimeout(status.arrowTimeout); status.arrowTimeout = setTimeout(function () { els.prevArrow.focus(); }, 300); clearTimeout(status.arrowStyleTimeout); status.arrowStyleTimeout = setTimeout(function () { els.nextArrow.style.display = ''; }, 400); } } } }; const accessibility = { slide: function () { for (let i = 0; i < objs.swiper.slides.length; i++) { if (i != objs.swiper.activeIndex) { utils.onAccessibility(objs.swiper.slides[i]); } else { utils.offAccessibility(objs.swiper.slides[i]); } } }, pagination: { tagging: function () { const tagging = { 'data-omni-type': 'microsite_gallery', 'data-omni': 'galaxy-s24:highlights:camera^nightography:index:', 'ga-ca': 'gallery', 'ga-ac': 'feature gallery', 'ga-la': 'galaxy-s24:highlights:camera^nightography:index:', }; for (let i = 0; i < els.bullets.length; i++) { Object.keys(tagging).forEach(key => { if (key == 'data-omni' || key == 'ga-la') { els.bullets[i].setAttribute(key, tagging[key] + (i + 1)); } else { els.bullets[i].setAttribute(key, tagging[key]); } }); } }, label: function () { for (let i = 0; i < els.bullets.length; i++) { let slideName = objs.swiper.slides[i].getAttribute('data-slide-name'); if (i === objs.swiper.realIndex) { if (typeof LOCAL_VARI != 'undefined' && !!LOCAL_VARI) { els.bullets[i].setAttribute('aria-label', `${LOCAL_VARI.slide}${i+1}: ${slideName} ${LOCAL_VARI.selected.toLowerCase()}`); } else { els.bullets[i].setAttribute('aria-label', `Slide${i+1}: ${slideName} selected`); } } else { if (typeof LOCAL_VARI != 'undefined' && !!LOCAL_VARI) { els.bullets[i].setAttribute('aria-label', `${LOCAL_VARI.slide}${i+1}: ${slideName}`); } else { els.bullets[i].setAttribute('aria-label', `Slide${i+1}: ${slideName}`); } } } }, } }; return { init: init, } })();})();;(function () {window.flagship = window.flagship || {};window.flagship.highlights = window.flagship.highlights || {};window.flagship.highlights.opticalZoom = (function () {const resize = window.flagship.common.resize;let els = {}; let objs = {};let classList = {isZoom: 'is-zoom',isHide: 'is-hide',active: 'is-active',zoomOutReady: 'is-zoom-out-ready'};let index = {}; let clickActive = false;const init = function () {els.section = document.querySelector('.highlights-optical-zoom');if (!!els.section) {setElements();setProperty();setScene();bindEvents();}};const setElements = function () {els.zoomCtaList = els.section.querySelector('.highlights-optical-zoom__zoom-button-list');els.zoomCta = els.section.querySelectorAll('.highlights-optical-zoom__zoom-button');els.zoomTarget = els.section.querySelector('.js-img-zoom');els.zoomImages = els.zoomTarget.querySelectorAll('img');els.tooltip = els.section.querySelector('.highlights-optical-zoom__zoom-tooltip');};const setProperty = function () {for (let i = 0; i < els.zoomImages.length; i++) {els.zoomImages[i].setAttribute('aria-hidden', true);}els.isActiveCtaWrap = els.zoomCta[0].parentElement;els.oldVisibleImage = els.zoomImages[0];accessibility.setTitle(els.zoomCta[0]);els.zoomImages[0].setAttribute('aria-hidden', false);els.zoomImages[0].style.transition = 'none';els.zoomImages[0].classList.add(classList.active);els.zoomImages[0].style.transition = '';els.oldVisibleImage = els.zoomImages[0];};const setScene = function () {objs.scene = SCROLLER({trackElement: els.section,useFixed: false});};const resetImages = function(){ setTimeout(() => { els.oldVisibleImage.classList.remove(classList.isZoom);els.oldVisibleImage.classList.remove('is-zoom-out-ready');els.isvisibleTargetImage.removeEventListener('transitionend', resetImages); els.oldVisibleImage.removeEventListener('transitionend', resetImages);els.oldVisibleImage = els.isvisibleTargetImage; clickActive = false; }, 200); };const bindEvents = function () {els.zoomCtaList.addEventListener('click', zoomClickEvent);els.section.addEventListener('keydown', zoomClickEvent);window.addEventListener('scroll', scrollHandler);scrollHandler();};const scrollHandler = function () {objs.scene.trackAnimation(function () {let startProgress = resize.checkResolution() == 'desktop' ? 40 : 35;if (this.progress > startProgress && this.progress < 70) {let speed = 1000; zoomClickEvent(undefined, els.zoomCta[1]); setTimeout(() => { zoomClickEvent(undefined, els.zoomCta[2]); }, speed); setTimeout(() => { zoomClickEvent(undefined, els.zoomCta[1]);TweenMax.to(els.tooltip, 0.4, {opacity: 1, ease: 'linear', delay: 1}); }, speed * 2);window.removeEventListener('scroll', scrollHandler);}});}; const zoomClickEvent = function (e, trigger) { if (clickActive) return; let actionableEventStatus;if (e != undefined) {if (e.type == 'click' && e.target.classList.contains('highlights-optical-zoom__zoom-tooltip-text')) return;let typeCheck = (e.type == 'click' || e.type == 'keydown');let commonClassCheck = e.target.classList.contains('highlights-optical-zoom__zoom-button-title');let clickClassCheck = e.type == 'click' && e.target.classList.contains('highlights-optical-zoom__zoom-button');let keyCodeCheck = e.keyCode == 13;actionableEventStatus = typeCheck && (commonClassCheck || clickClassCheck || keyCodeCheck);} else if (e == undefined && trigger != undefined) {actionableEventStatus = true;} if (actionableEventStatus) { els.isZoomCta = trigger ? trigger : e.target.classList.contains('highlights-optical-zoom__zoom-button-title') ? e.target.parentElement : e.target; els.isZoomCtaWrap = els.isZoomCta.parentElement; index.click = els.isZoomCta.getAttribute('data-index'); if (index.click == index.active) return; clickActive = true; els.isvisibleTargetImage = els.zoomImages[index.click]; if (!!!trigger && !els.tooltip.classList.contains(classList.isHide)) { TweenMax.to(els.tooltip, 0.4, {opacity: 0, ease: 'linear', onComplete: function(){ els.tooltip.style.display = 'none'; els.tooltip.setAttribute('aria-hidden', 'true'); }}); els.tooltip.classList.add(classList.isHide); }accessibility.removeTitle();accessibility.setTitle(els.isZoomCta);els.isActiveCtaWrap.classList.remove(classList.active);els.isZoomCtaWrap.classList.add(classList.active);if (!!!index.active || (index.active < index.click)) {els.isZoomImage = els.oldVisibleImage;els.oldVisibleImage.addEventListener('transitionend', resetImages);els.oldVisibleImage.classList.add(classList.isZoom);els.oldVisibleImage.classList.remove(classList.active, classList.zoomOutReady);els.isvisibleTargetImage.classList.add(classList.active);} else {els.isZoomImage = els.oldVisibleImage;els.isvisibleTargetImage.classList.add(classList.zoomOutReady);els.isvisibleTargetImage.addEventListener('transitionend', resetImages);setTimeout(() => {els.isvisibleTargetImage.classList.add(classList.active);}, 100);setTimeout(() => {els.oldVisibleImage.classList.remove(classList.active);}, 600);}els.oldVisibleImage.setAttribute('aria-hidden', true);els.isvisibleTargetImage.setAttribute('aria-hidden', false); els.isActiveCtaWrap = els.isZoomCtaWrap; index.active = index.click; } };const accessibility = {removeTitle: function () {for (let i = 0; i < els.zoomCta.length; i++) {els.zoomCta[i].removeAttribute('title');}},setTitle: function (cta) {if (typeof LOCAL_VARI != 'undefined' && !!LOCAL_VARI) {cta.setAttribute('title', LOCAL_VARI.selected);} else {cta.setAttribute('title', 'selected');}},};return {init: init}})();})();;(function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.overview = (() => { const utils = window.flagship.common.utils; const resize = window.flagship.common.resize; let els = {}; let objs = {}; let eventFnc = {}; let statusClass = { progress: { active: 'js-progress-active', pause: 'js-progress-pause' }, video: { load: 'is-loaded', complete: 'is-video-load-complete' }, navigation: 'is-active', info: { visible: 'is-visible', active: 'is-active' }, }; let status = { currentDevice: resize.checkResolution(), isAuto: true, isClickControl: false, }; const init = () => { els.section = document.querySelector('.highlights-overview'); if (!!els.section) { setElements(); setProperty(); objList.setScene(); bindEvents(); } }; const setElements = () => { els.sectionInner = els.section.querySelector('.common-inner'); els.overviewContents = els.section.querySelector('.highlights-overview__contents') els.swiperContainer = els.section.querySelector('.js-overview-carousel'); els.slides = els.section.querySelectorAll('.highlights-overview__carousel-slide'); els.videoWrap = els.section.querySelectorAll('.common-video'); els.videos = els.section.querySelectorAll('.common-video__video'); els.videoControlCta = els.section.querySelectorAll('.common-video__control'); els.nextArrow = els.section.querySelector('.swiper-button-next'); els.prevArrow = els.section.querySelector('.swiper-button-prev'); els.progressWrap = els.section.querySelectorAll('.js-progress-wrap'); els.progressBar = els.section.querySelectorAll('.js-progress-bar'); els.navigationWrap = els.section.querySelector('.highlights-overview__navigation'); els.navigationInner = els.navigationWrap.querySelector('.highlights-overview__navigation-inner'); els.navigationList = els.navigationWrap.querySelectorAll('.highlights-overview__navigation-listitem'); els.navigationBtn = els.navigationWrap.querySelectorAll('.highlights-overview__navigation-button-wrap'); els.infoItem = els.section.querySelectorAll('.highlights-overview__info-item'); els.featureCtas = els.section.querySelectorAll('a.common-cta-encased'); els.sup = els.section.querySelectorAll('a.click_sup'); // tutorial els.tutorialOpenCtas = els.section.querySelectorAll('.js-tutorial-popup'); els.tutorialCloseCtas = document.querySelectorAll('.common-tutorial__close-cta'); }; const setProperty = () => { status.navSlideWrapWidth = els.navigationWrap.clientWidth; status.isRtl = document.documentElement.classList.contains('rtl'); for (let i = 0; i < els.videos.length; i++) { els.videos[i].controlCta = els.videoControlCta[i]; els.videos[i].wrap = els.videoWrap[i]; els.videoControlCta[i].video = els.videos[i]; } for (let j = 0; j < els.navigationBtn.length; j++) { els.navigationBtn[j].index = j; els.navigationBtn[j].img = els.navigationBtn[j].querySelectorAll('.highlights-overview__navigation-button-image img'); els.navigationBtn[j].img[0].parentWrap = els.navigationBtn[j]; els.navigationBtn[j].img[1].parentWrap = els.navigationBtn[j]; els.navigationBtn[j].text = els.navigationBtn[j].querySelector('.highlights-overview__navigation-button-text'); els.navigationBtn[j].text.parentWrap = els.navigationBtn[j]; els.navigationBtn[j].addEventListener('keydown', eventList.onClickNavigation); } }; const objList = { setSwiper: () => { if (objs.swiper == null) { objs.swiper = new Swiper(els.swiperContainer, { navigation: { nextEl: els.nextArrow, prevEl: els.prevArrow, }, init: false, speed: 500, }); objs.swiper.currentIndex = 0; objs.swiper.on('init', function () { let notification = this.el.querySelector('.swiper-notification'); this.el.removeChild(notification); els.nextArrow.removeAttribute('aria-label'); els.prevArrow.removeAttribute('aria-label'); objList.setVideo(); eventList.setVideoController(); eventList.scroll(); eventList.animationEnd(); accessibility.slide(); accessibility.setTitle(); }); objs.swiper.on('slideChange', swiperEvent.slideChange); objs.swiper.on('transitionEnd', swiperEvent.transitionEnd); objs.swiper.on('touchMove', swiperEvent.touchMove); objs.swiper.on('touchEnd', swiperEvent.touchEnd); objs.swiper.init(); } }, setVideo: () => { for (let i = 0; i < els.slides.length; i++) { let isSlide = els.slides[i]; let isVideoWrap = isSlide.querySelector('.common-video'); let isVideo = isSlide.querySelector('.common-video__video'); objs[`video_${i}`] = ANIUTIL.videoHandler({ playType: 'scrollPlay', wrap: isVideoWrap, video: isVideo, controller: isVideo.controlCta, startPoint: resize.checkResolution().indexOf('mobile') > -1 ? 25 : 35, reversePoint: resize.checkResolution().indexOf('mobile') > -1 ? 75 : 80, playCallback: function () { status.isAuto = true; if (!!!els.progressBar[i].style['animation-duration']) els.progressBar[i].style['animation-duration'] = `${isVideo.duration}s`; els.progressWrap[i].classList.remove(statusClass.progress.pause); if(isVideo.currentTime == 0) els.progressWrap[i].classList.remove(statusClass.progress.active); setTimeout(() => { els.progressWrap[i].classList.add(statusClass.progress.active); }, 20); accessibility.setTagging.pause(isVideo.controlCta); }, pauseCallback: function () { status.isAuto = false; setTimeout(() => { els.progressWrap[i].classList.add(statusClass.progress.pause); }, 100); accessibility.setTagging.play(isVideo.controlCta); }, endCallback: function () { if (!isVideoWrap.classList.contains('is-completed')) isVideoWrap.classList.add('is-completed'); status.isAuto = true; }, resetCallback: function () { setTimeout(() => { els.progressWrap[i].classList.remove(statusClass.progress.pause); els.progressWrap[i].classList.remove(statusClass.progress.active); }, 100); } }); } }, setScene: () => { objs.scene = SCROLLER({ trackElement: els.overviewContents, useFixed: false }); }, setNavSwiper: () => { if (objs.navSwiper == null) { objs.navSwiper = new Swiper(els.navigationWrap, { init: false, slidesPerView: 'auto', }); objs.navSwiper.on('init', function () { let notification = this.el.querySelector('.swiper-notification'); this.el.removeChild(notification); }); objs.navSwiper.on('touchMove', swiperEvent.checkScrollEnd); objs.navSwiper.init(); } } }; const bindEvents = () => { objList.setSwiper(); window.addEventListener('scroll', eventList.scroll); els.navigationWrap.addEventListener('click', eventList.onClickNavigation); els.nextArrow.addEventListener('click', swiperEvent.onClickArrow); els.nextArrow.addEventListener('keydown', swiperEvent.onClickArrow); els.prevArrow.addEventListener('click', swiperEvent.onClickArrow); els.prevArrow.addEventListener('keydown', swiperEvent.onClickArrow); swiperEvent.navInitCheck(); for (let i = 0; i < els.featureCtas.length; i++) { els.featureCtas[i].addEventListener('click', eventList.clickFeatureCta); } // tutorial for (let j = 0; j < els.tutorialOpenCtas.length; j++) { els.tutorialOpenCtas[j].addEventListener('click', eventList.clickTutorialOpenCta); } // tutorial close for (let i=0; i < els.tutorialCloseCtas.length; i++) { els.tutorialCloseCtas[i].addEventListener('click', function () { if(!status.activeVideoPaused) status.activeVideo.play(); }) } for(let i=0; i { let activeIndex = objs.swiper.activeIndex; let currentIndex = objs.swiper.currentIndex; let slideLength = objs.swiper.slides.length; let loadIndex = activeIndex == slideLength - 1 ? 0 : activeIndex; let loadVideoLength = els.section.querySelectorAll(`.${statusClass.video.load}`).length; let allSlideloadComplete = els.videos.length == loadVideoLength; let nextIndex = (objs.swiper.activeIndex < objs.swiper.slides.length - 1) ? (objs.swiper.activeIndex + 1) : 0; if (!allSlideloadComplete && els.videos.length > loadIndex) { if (!els.videos[activeIndex].classList.contains(statusClass.video.complete)) { videoLoader.setResponsiveMedia([els.videos[activeIndex]]); els.videoWrap[activeIndex].classList.add(statusClass.video.load); } if (!els.videos[nextIndex].classList.contains(statusClass.video.complete)) { videoLoader.setResponsiveMedia([els.videos[nextIndex]]); els.videoWrap[nextIndex].classList.add(statusClass.video.load); } } if (currentIndex != activeIndex) { objs[`video_${currentIndex}`].eventList.reset.call(objs[`video_${currentIndex}`]); objs[`video_${currentIndex}`].video.removeEventListener('canplay', objs[`video_${currentIndex}`].video.play); if(!!utils.isLowNetwork() || !status.isAuto) { els.progressWrap[currentIndex].classList.remove(statusClass.progress.active); els.progressWrap[activeIndex].classList.remove(statusClass.progress.pause); } else { els.progressWrap[currentIndex].classList.remove(statusClass.progress.active); if (objs[`video_${activeIndex}`] != undefined && objs[`video_${activeIndex}`].video.readyState >= 4) { objs[`video_${activeIndex}`].video.play(); } else { objs[`video_${activeIndex}`].video.addEventListener('canplay', function () { this.play(); }); } } if (!els.navigationBtn[activeIndex].classList.contains(statusClass.navigation)) { els.navigationBtn[currentIndex].classList.remove(statusClass.navigation); els.navigationBtn[activeIndex].classList.add(statusClass.navigation); accessibility.setTitle(); } if (!els.infoItem[activeIndex].classList.contains(statusClass.info.visible)) { els.infoItem[currentIndex].classList.remove(statusClass.info.visible); els.infoItem[activeIndex].classList.add(statusClass.info.visible); } if (!els.infoItem[activeIndex].classList.contains(statusClass.info.active)) { els.infoItem[currentIndex].classList.remove(statusClass.info.active); els.infoItem[activeIndex].classList.add(statusClass.info.active); } } if (objs.navSwiper != null) swiperEvent.setNavSwiperXvalue(activeIndex); accessibility.slide(); objs.swiper.currentIndex = activeIndex; }, transitionEnd: function () { if(!!status.isClickControl) return; objs[`video_${objs.swiper.activeIndex}`].video.controlCta.focus(); }, touchMove: function () { objs.swiper.off('transitionEnd', swiperEvent.transitionEnd); }, touchEnd: function () { objs.swiper.on('transitionEnd', swiperEvent.transitionEnd); }, onClickArrow: function (e) { status.arrowTimeout = null; status.arrowStyleTimeout = null; status.accessibilityTimeout = null; if ((e.type == 'keydown' && e.keyCode == 13) || e.type == 'click') { e.preventDefault(); status.isClickControl = true; if (objs.swiper.isBeginning && !objs.swiper.isEnd) { els.prevArrow.style.setProperty('display', 'block', 'important'); clearTimeout(status.arrowTimeout); status.arrowTimeout = setTimeout(function () { els.nextArrow.focus(); }, 300); clearTimeout(status.arrowStyleTimeout); status.arrowStyleTimeout = setTimeout(function () { els.prevArrow.style.display = ''; }, 400); } else if (!objs.swiper.isBeginning && objs.swiper.isEnd) { els.nextArrow.style.setProperty('display', 'block', 'important'); clearTimeout(status.arrowTimeout); status.arrowTimeout = setTimeout(function () { els.prevArrow.focus(); }, 300); clearTimeout(status.arrowStyleTimeout); status.arrowStyleTimeout = setTimeout(function () { els.nextArrow.style.display = ''; }, 400); } else if(!objs.swiper.isBeginning && !objs.swiper.isEnd) { let target = e.target.classList.contains('swiper-button-next') ? els.nextArrow : els.prevArrow; let noTarget = target.classList.contains('swiper-button-next') ? els.prevArrow : els.nextArrow; objs.swiper.slides[objs.swiper.activeIndex].setAttribute('tabindex', -1); objs.swiper.slides[objs.swiper.activeIndex].setAttribute('aria-hidden', true); noTarget.setAttribute('tabindex', -1); noTarget.setAttribute('aria-hidden', true); clearTimeout(status.arrowTimeout); status.arrowTimeout = setTimeout(function () { target.focus(); }, 300); clearTimeout(status.accessibilityTimeout); status.accessibilityTimeout = setTimeout(function () { objs.swiper.slides[objs.swiper.activeIndex].removeAttribute('tabindex'); objs.swiper.slides[objs.swiper.activeIndex].removeAttribute('aria-hidden'); noTarget.removeAttribute('tabindex'); noTarget.removeAttribute('aria-hidden'); }, 400); } eventList.animationEndDestroy(); } }, navInitCheck: () => { let wrapPadding = parseInt(window.getComputedStyle(els.sectionInner).paddingLeft) * 2; let getComputedStyle = window.getComputedStyle(els.navigationList[0]); let navMargin = !!status.isRtl ? parseInt(getComputedStyle.marginLeft) : parseInt(getComputedStyle.marginRight); let navSlideWidth = els.navigationList[0].clientWidth; let slideWrapWidth = (navSlideWidth * els.navigationList.length) + (navMargin * (els.navigationList.length - 1)); status.navSwiperPadding = (status.navSlideWrapWidth - slideWrapWidth) / 2; let contentsWidth = els.sectionInner.clientWidth - wrapPadding - status.navSwiperPadding; status.isNavInit = (status.currentDevice.indexOf('mobile') > -1 && contentsWidth <= slideWrapWidth) || els.navigationList.length > 4; if(!!status.isNavInit) { objList.setNavSwiper(); } else { swiperEvent.destroy(); } }, setNavSwiperXvalue: (activeIndex) => { if (activeIndex === 0 || activeIndex === 1) { status.xValue = 0; } else if (activeIndex > 1) { if((status.navSwiperPadding * 2) < 0) { status.xValue = (status.navSlideWrapWidth - els.navigationInner.clientWidth) + Math.abs((status.navSwiperPadding * 2)); } else { status.xValue = status.navSlideWrapWidth - els.navigationInner.clientWidth; } } if(!status.isRtl) els.navigationInner.style.transform = `translate3d(-${status.xValue}px, 0px, 0px)`; else els.navigationInner.style.transform = `translate3d(${status.xValue}px, 0px, 0px)`; swiperEvent.checkScrollEnd(); }, checkScrollEnd: () => { if(!status.isRtl) { if(objs.navSwiper.getTranslate() < 0) els.navigationWrap.classList.add('is-scroll-end'); else els.navigationWrap.classList.remove('is-scroll-end'); } else { if(objs.navSwiper.getTranslate() < 0) els.navigationWrap.classList.remove('is-scroll-end'); else els.navigationWrap.classList.add('is-scroll-end'); } }, destroy: () => { if(objs.navSwiper != null) { objs.navSwiper.destroy(true); objs.navSwiper = null; } } } const eventList = { setVideoController: () => { for (let i = 0; i < els.videoControlCta.length; i++) { els.videoControlCta[i].addEventListener('click', function () { let isVideo = this.video; if (isVideo.paused) { isVideo.play(); } else { isVideo.pause(); } }); } }, scroll: () => { objs.scene.trackAnimation(function () { objs[`video_${objs.swiper.activeIndex}`].scrollActive(this.progress); }); }, animationEnd: () => { eventFnc.animationEnd = {}; if(!!utils.isLowNetwork()) return; for (let i = 0; i < els.progressBar.length; i++) { eventFnc.animationEnd[i] = function () { if (objs.swiper.activeIndex == (objs.swiper.slides.length - 1)) { status.isAuto = false; els.progressBar[i].removeEventListener('animationend', eventFnc.animationEnd[i]); } else { setTimeout(() => { if(!status.isAuto) return; objs.swiper.slideNext(500); els.progressBar[i].removeEventListener('animationend', eventFnc.animationEnd[i]); }, 800); } }; els.progressBar[i].addEventListener('animationend', eventFnc.animationEnd[i]); } }, animationEndDestroy: () => { for (let i = 0; i < els.progressBar.length; i++) { els.progressBar[i].removeEventListener('animationend', eventFnc.animationEnd[i]); } }, onClickNavigation: (e) => { if (e.target.classList.contains('swiper-wrapper') || (e.type == 'keydown' && e.keyCode != 13)) return; let oldTarget = els.navigationWrap.querySelector(`.${statusClass.navigation}`); let targetMatches = e.target.matches('.highlights-overview__navigation-button-image img') || e.target.matches('.highlights-overview__navigation-button-text'); if (targetMatches) { currentTarget = e.target.parentWrap; } else if (e.target.classList.contains('highlights-overview__navigation-button')) { currentTarget = e.target.parentElement; } if (!currentTarget.classList.contains(statusClass.navigation)) { oldTarget.classList.remove(statusClass.navigation); currentTarget.classList.add(statusClass.navigation); objs.swiper.slideTo(currentTarget.index, 500, false); accessibility.setTitle(); } status.isClickControl = true; eventList.animationEndDestroy(); }, clickFeatureCta: (e) => { e.preventDefault(); status.isAuto = false; let target = e.target.matches('.common-cta-encased__text') ? e.target.parentElement : e.target; let sectionId = target.getAttribute('href'); let section; if (sectionId == '#transcript-assist') { section = document.querySelector('.highlights-live-translate'); let layerPopup = document.querySelector(sectionId); let sectionTop = section.getBoundingClientRect().top; let movePosition = (sectionTop + window.pageYOffset) - utils.getNavHeight(); window.scrollTo(0, movePosition); setTimeout(() => { layerPopup.show(); }, 300); } else { section = document.querySelector(sectionId); let sectionTop = section.getBoundingClientRect().top; let movePosition = (sectionTop + window.pageYOffset) - utils.getNavHeight(); let title = section.querySelector('h2.common-sub-headline'); let clickable = section.querySelectorAll('a, button'); 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); } }, onResize: function (currRes) { status.currentDevice = currRes; status.navSlideWrapWidth = els.navigationWrap.clientWidth; swiperEvent.navInitCheck(); }, clickTutorialOpenCta: function () { let hash = this.getAttribute('data-hash'); let tutorialPopup = document.querySelector(`#${hash}`); let tutorialPopupList = document.querySelectorAll('.common-tutorial'); if (tutorialPopup) { status.isAuto = false; status.activeVideo = objs[`video_${objs.swiper.activeIndex}`].video; status.activeVideoPaused = status.activeVideo.paused; tutorialPopup.show(); if (utils.detector.isIosDevice || utils.detector.isTouchDevice) this.blur();else this.focus(); for (let i = 0; i < tutorialPopupList.length; i++) { tutorialPopupList[i].isOverview = true; tutorialPopupList[i].overviewCta = this; } } }, }; const accessibility = { slide: () => { for (let i = 0; i < objs.swiper.slides.length; i++) { if (i != objs.swiper.activeIndex) { utils.onAccessibility(objs.swiper.slides[i]); } else { utils.offAccessibility(objs.swiper.slides[i]); } } }, setTitle: () => { for (let i = 0; i < els.navigationBtn.length; i++) { let button = els.navigationBtn[i].querySelector('button'); button.removeAttribute('title'); if (i == objs.swiper.activeIndex) { if (typeof LOCAL_VARI != 'undefined' && !!LOCAL_VARI) { button.setAttribute('title', LOCAL_VARI.selected); } else { button.setAttribute('title', 'Selected'); } } } }, 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 = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.quote = (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('.highlights-media-quote'); if (!!els.section) { setElements(); bindEvents(); } }; const setElements = function () { els.swiper = null; els.itemArray = []; els.quoteWrap = els.section.querySelector('.highlights-media-quote__inner'); els.quoteContainer = els.section.querySelector('.highlights-media-quote__list-wrap'); els.quoteList = els.section.querySelector('.highlights-media-quote__list'); els.quoteListItems = els.quoteList.querySelectorAll('.highlights-media-quote__item'); els.arrowWrap = els.section.querySelector('.highlights-media-quote__arrow'); els.prevArrow = els.section.querySelector('.swiper-button-prev'); els.nextArrow = els.section.querySelector('.swiper-button-next'); els.quotePagination = els.section.querySelector('.highlights-media-quote__pagination'); }; const bindEvents = function () { window.addEventListener('DOMContentLoaded', onLodeHandler, {once : true}); resize.add(onResizeHandler); els.nextArrow.addEventListener('click', swiperEvents.onClickArrow); els.nextArrow.addEventListener('keydown', swiperEvents.onClickArrow); els.prevArrow.addEventListener('click', swiperEvents.onClickArrow); els.prevArrow.addEventListener('keydown', swiperEvents.onClickArrow); }; const onLodeHandler = function () { onResponsiveChange(); }; const onResizeHandler = function (currRes) { currDevice = currRes; if (currDevice != prevDevice) { onResponsiveChange(); prevDevice = currDevice; } }; const onResponsiveChange = function () { if (currDevice.indexOf('mobile') > -1) { setSwiper(); } else { swiperEvents.destroy(); } }; const setSwiper = function () { if (els.swiper === null) { els.quoteWrap.classList.add('js-swiper-initialized'); els.swiper = new Swiper(els.quoteContainer, { init: false, slidesPerView: 'auto', centeredSlides: true, navigation: { nextEl: els.nextArrow, prevEl: els.prevArrow, }, pagination: { el: els.quotePagination, type: 'bullets', renderBullet: function () { return '
        • '; } } }); els.swiper.on('init', swiperEvents.init); els.swiper.on('slideChange', swiperEvents.slideChange); els.swiper.init(); } }; const swiperEvents = { init: function () { let self = this, notification = self.el.querySelector('.swiper-notification'); if (!!notification) self.el.removeChild(notification); setAccessibility.slide(); setAccessibility.arrow(); setPaginationTagging.call(self); setPaginationLabel.call(self); for (let i = 0; i < self.pagination.bullets.length; i++) { (function (idx) { self.pagination.bullets[i].addEventListener('click', function () { self.slideTo(idx); }); })(i); } }, slideChange : function () { setAccessibility.slide(); setAccessibility.arrow(); setPaginationLabel.call(this); }, onClickArrow: function (e) { if ((e.type == 'keydown' && e.keyCode == 13) || (e.type == 'click' && document.documentElement.classList.contains('isTouchDevice'))) { e.preventDefault(); clearTimeout(els.arrowTimeout); els.arrowTimeout = setTimeout(function () { if (els.swiper.isBeginning && !els.swiper.isEnd) { els.nextArrow.focus(); } else if (!els.swiper.isBeginning && els.swiper.isEnd) { els.prevArrow.focus(); } }, 300); } }, destroy : function () { if (els.swiper != null) { els.quoteWrap.classList.remove('js-swiper-initialized'); els.swiper.pagination.destroy(true); els.swiper.navigation.destroy(true); els.swiper.destroy(true); els.swiper = null; } }, }; const setPaginationTagging = function () { let bullets = Array.prototype.slice.call(this.pagination.bullets), paginationTagging = { 'data-omni-type': 'microsite_contentinter', 'data-omni': 'galaxy-s24:highlights:overview:media-quote:index:', 'ga-ca': 'indication', 'ga-ac': 'carousel', 'ga-la': 'galaxy-s24:highlights:overview:media-quote:index:', }; bullets.forEach(function (ele, idx) { Object.keys(paginationTagging).forEach(function (key) { if (key == 'data-omni' || key == 'ga-la') { ele.setAttribute(key, paginationTagging[key] + (idx + 1)); } else { ele.setAttribute(key, paginationTagging[key]); } }); }); }; const setPaginationLabel = function () { let self = this, slides = Array.prototype.slice.call(this.slides), bullets = Array.prototype.slice.call(this.pagination.bullets); bullets.forEach(function (bullet, bulletIndex) { let ariaLabelText = slides[bulletIndex].querySelector('.highlights-media-quote__media').innerText; if (self.realIndex == bulletIndex) { bullet.setAttribute('aria-label', ariaLabelText + ' Selected'); } else { bullet.setAttribute('aria-label', ariaLabelText); } }); }; const setAccessibility = { slide: function () { for (let i = 0; i < els.swiper.slides.length; i++) { if (i != els.swiper.snapIndex) { utils.onAccessibility(els.swiper.slides[i]); } else { utils.offAccessibility(els.swiper.slides[i]); } } }, arrow: function () { if (els.swiper.isBeginning && !els.swiper.isEnd) { utils.offAccessibility(els.nextArrow); utils.onAccessibility(els.prevArrow); } else if (!els.swiper.isBeginning && els.swiper.isEnd) { utils.offAccessibility(els.prevArrow); utils.onAccessibility(els.nextArrow); } else { utils.offAccessibility(els.nextArrow); utils.offAccessibility(els.prevArrow); } } }; return { init: init, } })();})();(function () {window.flagship = window.flagship || {};window.flagship.highlights = window.flagship.highlights || {};window.flagship.highlights.resolutionPopup = (function () {const utils = window.flagship.common.utils;const common = window.flagship.highlights.common;let els = {};let objs = {};let status = {};const init = function () {els.section = document.querySelector('.highlights-resolution');els.layerPopup = document.querySelector('.highlights-resolution-popup');if (!!els.layerPopup) {setElements();setStatus();setPopup();bindEvents();}};const setElements = function () {status.isGlobal = document.documentElement.classList.contains('global');els.contents = document.querySelector('#contents');els.openCta = els.section.querySelector('.js-layer-popup');els.innerWrap = els.layerPopup.querySelector('.common-popup__inner-wrapper');els.closeCtas = els.layerPopup.querySelectorAll('.common-popup__close-cta');els.dimmed = els.layerPopup.querySelector('.common-popup__dimmed');els.supClicker = els.layerPopup.querySelectorAll('a.click_sup');els.hashPopupOpener = null;};const setStatus = function () {status.isHash = false;};const bindEvents = function () {for (let i = 0; i < els.supClicker.length; i++) {els.supClicker[i].addEventListener('click', onClickSup);}};const setPopup = function () {utils.layerPopup({layerPopup: els.layerPopup,layerPopupClass: '.highlights-resolution-popup',openerEvent: {element: els.openCta,},closeCtas: [els.closeCtas[0], els.closeCtas[1]],dimmed: els.dimmed,moveTarget: document.documentElement,contents: els.contents,show: {start: function (target) {els.innerWrap.scrollTop = 0;els.layerPopup.classList.add('is-init');target.openerCta.blur();setPopupLazyLoader.image();if (`#${els.openCta.getAttribute('data-hash')}` == window.location.hash) {status.isHash = true;els.hashPopupOpener = els.openCta;}},end: function () {if (utils.detector.isIosDevice) els.layerPopup.style.display = 'block';els.layerPopup.classList.add('is-open');}},hide: {start: function (target) {target.openerCta.focus();els.layerPopup.classList.remove('is-open');},end: function () {setTimeout(function () {els.layerPopup.classList.remove('is-init');}, 300);if (status.isHash && els.hashPopupOpener) {els.hashPopupOpener.focus();setTimeout(function () {els.hashPopupOpener.focus();status.isHash = false;els.hashPopupOpener = null;}, 300);}}}});};const setPopupLazyLoader = {image: function () {objs.imageLoader = ANIUTIL.mediaLoader({lazyClass: '.js-resolution-popup-img-src',responsiveClass: '.js-resolution-popup-res-img',preset: status.isGlobal ? '' : '?imbypass=true',innerScroll: {use: true,wrap: els.layerPopup,},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.popupBgLoader = ANIUTIL.mediaLoader({type: 'bgImage',lazyClass: '.js-resolution-popup-bg-img',innerScroll: {use: true,wrap: els.layerPopup,},loadOption: [{resolution: 1920,attribute: '',bgOpts: ''}],visiblePoint: 1});},};const onClickSup = function (e) {e.preventDefault();e.stopPropagation();els.layerPopup.hide();let targetIndex = parseFloat(e.target.innerText),disclaimer = document.querySelectorAll('#desc-section li')[targetIndex - 1],disclaimerText = disclaimer.innerText,activeBlock = '' + disclaimerText + '';setTimeout(() => {disclaimer.innerHTML = activeBlock;disclaimer.querySelector('a').focus();}, 500);const eventList = {focusIn: function () {common.centeredFocus.call(disclaimer.querySelector('a'));disclaimer.removeEventListener('focusin', eventList.focusIn);},focusOut: function () {disclaimer.innerHTML = disclaimerText;disclaimer.removeAttribute('tabindex');disclaimer.removeEventListener('focusout', eventList.focusOut);},};disclaimer.addEventListener('focusin', eventList.focusIn);disclaimer.addEventListener('focusout', eventList.focusOut);};return {init: init,}})();})();(function () {window.flagship = window.flagship || {};window.flagship.highlights = window.flagship.highlights || {};window.flagship.highlights.tutorial = (function () {const utils = window.flagship.common.utils;const resize = window.flagship.common.resize;const common = window.flagship.highlights.common;const tutorialPopup = window.flagship.highlights.tutorialPopup;let objs = {};let status = {};let commonEls = {};let isDevice = resize.checkResolution();status.isGlobal = document.documentElement.classList.contains('global'); let sectionList = document.querySelectorAll('#generative-edit, #circle-to-search, #live-translate, #chat-assist'); let layerPopup = document.querySelectorAll('#generative-edit-experience, #circle-to-search-experience, #live-translate-experience, #chat-assist-experience'); let popupClassList = [ '.highlights-generative-edit-tutorial', '.highlights-circle-to-search-tutorial','.highlights-live-translate-tutorial','.highlights-chat-assist-tutorial' ]let statusClass = {isVisible: 'is-visible',isTutorialOpend: 'is-tutorial-opened',isTutorialOpenedMo: 'is-tutorial-opened-mo',isInfoOpen: 'is-info-open',isInfoVisible: 'is-info-visible',isTutorialEnd: 'is-tutorial-end',isActive: 'is-active',isBgLoadComplete: 'is-bg-load-complete',isCompleted: 'is-completed',isOpen: 'is-open',}const init = function () {status.isHash = false;status.isIos = utils.detector.isIosDevice;status.overview = {};commonEls.globalSubNav = document.querySelector('#subnav');commonEls.globalContents = document.querySelector('#contents');commonEls.dotcomContents = document.querySelector('.pd-g-floating-nav');commonEls.overview = document.querySelector('.highlights-overview');commonEls.gnb = document.querySelector('.nv00-gnb');commonEls.tooltipWrap = document.querySelectorAll('.js-tutorial-tooltip');if (status.isGlobal) {commonEls.contentsChildren = document.querySelector('#contents').children;commonEls.commonUi = document.querySelectorAll('#accessibility-navigation, #header, #footer');} else {commonEls.wrapChildren = document.querySelector('#wrap').children;commonEls.contentChildren = document.querySelector('#content').children;commonEls.rootChildren = document.querySelector('#content .root .responsivegrid .aem-Grid--12').children;commonEls.flotingNavi = document.querySelector('.pd-g-floating-nav');commonEls.flotingNaviFixedWrap = document.querySelector('.floating-navigation__wrap');}for (let i = 0; i < sectionList.length; i++) {let opts = {section: sectionList[i],layerPopup: layerPopup[i],popupClass: popupClassList[i],openCta: sectionList[i].querySelector('.js-tutorial-popup'),closeCta: layerPopup[i].querySelector('.common-tutorial__close-cta--popup'),moCloseCta: layerPopup[i].querySelector('.common-tutorial__close-cta--video'),}els = getElements(opts);tooltipAccessibility();setPopup(opts, els);bindEvents(els, i);}};const getElements = function (opts) {let els = {};els.openCta = opts.section.querySelector('.js-tutorial-popup');els.layerPopup = opts.layerPopup;els.innerWrapper = opts.layerPopup.querySelector('.common-tutorial__inner-wrapper');els.innerWrap = opts.layerPopup.querySelector('.common-tutorial__inner-wrap');els.textWrap = opts.layerPopup.querySelector('.common-tutorial__text');els.closeCta = opts.layerPopup.querySelector('.common-tutorial__close-cta--popup');els.moCloseCta = opts.moCloseCta;els.infoPopup = opts.layerPopup.querySelector('.common-tutorial__info-area');els.videoContent = opts.layerPopup.querySelector('.common-tutorial__video-content');els.introVideoSection = opts.layerPopup.querySelector('.common-tutorial__intro-video');els.introVideoWrap = opts.layerPopup.querySelector('.common-tutorial__intro-video .common-video'); els.introVideo = opts.layerPopup.querySelector('.common-tutorial__intro-video video');els.introCoverImage = opts.layerPopup.querySelector('.common-tutorial__intro-video .common-video__cover-image');if (opts.layerPopup.classList.contains('highlights-live-translate-tutorial')) {els.introCta = opts.layerPopup.querySelector('.common-tutorial__intro-video .js-tutorial-tooltip-cta');}els.tutorialContents = opts.layerPopup.querySelector('.common-tutorial__video-content');els.tutorialVideoContainer = opts.layerPopup.querySelector('.common-tutorial__main-video');els.tutorialVideoWrap = opts.layerPopup.querySelectorAll('.common-tutorial__main-video .common-tutorial__video');els.tutorialVideos = opts.layerPopup.querySelectorAll('.common-tutorial__main-video .common-tutorial__video video');els.tutorialCoverImages = opts.layerPopup.querySelectorAll('.common-tutorial__main-video .common-video__cover-image');els.tutorialActiveCta = opts.layerPopup.querySelector('.common-tutorial__cta--play button');els.tutorialDeactiveCta = opts.layerPopup.querySelector('.common-tutorial__cta--pause button');els.tutorialTooltip = opts.layerPopup.querySelectorAll('.common-tutorial__main-video .js-tutorial-tooltip');els.tutorialAlert = opts.layerPopup.querySelectorAll('.common-tutorial__main-video .js-tutorial-alert');els.generativeCta = opts.layerPopup.querySelector('.js-tutorial-generative-cta');els.tutorialFrame = opts.layerPopup.querySelector('.common-tutorial__main-video.common-video__frame');els.tutorialReplay = opts.layerPopup.querySelector('.common-tutorial__replay-cta');els.tutorialNavigation = opts.layerPopup.querySelector('.common-tutorial__navigation');els.navPrev = els.tutorialNavigation.querySelector('.common-tutorial__navigation-button--prev');els.navNext = els.tutorialNavigation.querySelector('.common-tutorial__navigation-button--next');els.tutorialPagination = opts.layerPopup.querySelector('.common-tutorial__pagination-area');els.supClicker = opts.layerPopup.querySelectorAll('a.click_sup');els.layerPopup.opener = els.openCta;els.layerPopup.targetOpener = opts.openCta;return els;};const setProperty = function(els){els.introVideoWrap.video = els.introVideo;els.introVideoWrap.controller = els.introVideoWrap.querySelector('.common-video__control');els.introVideoWrap.controller.video = els.introVideo;};const tooltipAccessibility = function() {for (let i = 0; i < commonEls.tooltipWrap.length; i++) {utils.onAccessibility(commonEls.tooltipWrap[i]);}};const eventList = {common: {setMobileVideoWidth: function(els){if (els.layerPopup.classList.contains('is-open') && resize.checkResolution().indexOf('mobile') > -1) {let containerWidth = window.innerWidth;let containerHeight = window.innerHeight;if (!status.isIos) {let videoHeight = Math.floor(containerWidth * 2.1666);if (videoHeight > containerHeight) {els.tutorialVideoContainer.style.width = `${Math.floor(containerHeight * 0.4615)}px`;els.tutorialVideoContainer.style.height = `${containerHeight}px`;} else {els.tutorialVideoContainer.style.width = '';els.tutorialVideoContainer.style.height = `${videoHeight}px`;}} else {els.tutorialVideoContainer.style.width = `${Math.floor(containerHeight * 0.4615)}px`;}} else if (resize.checkResolution() != 'mobile' && els.tutorialVideoContainer.style.height) {if (!status.isIos) {els.tutorialVideoContainer.style.width = '';els.tutorialVideoContainer.style.height = '';} else {els.tutorialVideoContainer.style.width = '';}}},},resize: {position: function(els) {if (els.layerPopup.classList.contains('is-open')) {if (isDevice.indexOf('desktop') > -1 && resize.checkResolution().indexOf('desktop') > -1) {let isHash = location.hash;if (!status.isGlobal && window.pageYOffset == 0 && !!isHash) {eventList.popup.setPopupPosition(els.layerPopup);}}if (isDevice != resize.checkResolution()) {eventList.popup.setPopupPosition(els.layerPopup);if (els.layerPopup.querySelector('.is-info-open, .is-tutorial-opened')) {eventList.tutorial.deactive(els);eventList.tutorial.reset(els);};isDevice = resize.checkResolution();}}},},tutorial: {videoContentReset: function(els){els.videoContent.classList.remove(statusClass.isInfoOpen);els.videoContent.classList.remove(statusClass.isInfoVisible);els.videoContent.classList.add(statusClass.isTutorialOpend);},reset: function(els) {if (els.generativeCta) {els.generativeCta.classList.remove(statusClass.isVisible, statusClass.isTutorialEnd);els.generativeCta.parentElement.classList.remove(statusClass.isVisible);}els.tutorialActiveCta.parentElement.classList.add(statusClass.isActive);els.tutorialDeactiveCta.parentElement.classList.remove(statusClass.isActive);els.tutorialContents.classList.remove(statusClass.isInfoOpen);els.videoContent.classList.remove(statusClass.isInfoVisible);els.tutorialContents.classList.remove(statusClass.isTutorialOpend);if (resize.checkResolution().indexOf('mobile') > -1) {els.layerPopup.classList.remove(statusClass.isTutorialOpenedMo);}for (let i = 0; i < els.tutorialVideoWrap.length; i++) {if (els.tutorialVideoWrap[i]) els.tutorialVideoWrap[i].classList.remove(statusClass.isVisible);if (els.tutorialVideos[i]) {if (!els.tutorialVideos[i].paused) {els.tutorialVideos[i].pause();}els.tutorialVideos[i].currentTime = 0;}let isComplete = els.tutorialVideoWrap[i].querySelector(`.${statusClass.isCompleted}`);if (isComplete) els.tutorialVideos[i].videoHandler.resetCallback();if (els.tutorialTooltip[i]) els.tutorialTooltip[i].classList.remove(statusClass.isVisible);if (els.tutorialAlert[i]) els.tutorialAlert[i].classList.remove(statusClass.isVisible);clearTimeout(status.infoRemoveTiming);}if (!!els.introCta) {els.introCta.parentElement.classList.remove(statusClass.isVisible);utils.onAccessibility(els.introCta.parentElement);}els.tutorialReplay.style.display = '';if (!els.tutorialReplay.hasAttribute('tabindex')) els.tutorialReplay.setAttribute('tabindex', -1);if (!els.tutorialReplay.hasAttribute('aria-hidden')) els.tutorialReplay.setAttribute('aria-hidden', true);els.introVideoWrap.controller.removeAttribute('tabindex');els.introVideoWrap.controller.removeAttribute('aria-hidden');},videoVisible: function(els) {if (!els.introVideo.paused) {els.introVideo.pause();}els.videoContent.classList.add(statusClass.isInfoOpen);setTimeout(() => {els.videoContent.classList.add(statusClass.isInfoVisible);}, 0);els.tutorialVideoWrap[0].classList.add(statusClass.isVisible);},imageLoad: function(els){if (!els.tutorialFrame.classList.contains(statusClass.isBgLoadComplete)) {els.tutorialFrame.classList.add(statusClass.isBgLoadComplete);}if (!els.tutorialDeactiveCta.classList.contains(statusClass.isBgLoadComplete)) {els.tutorialDeactiveCta.classList.add(statusClass.isBgLoadComplete);}},setActiveCta: function(els) {els.tutorialActiveCta.parentElement.classList.remove(statusClass.isActive);els.tutorialDeactiveCta.parentElement.classList.add(statusClass.isActive);if (resize.checkResolution().indexOf('mobile') > -1) {els.layerPopup.classList.add(statusClass.isTutorialOpenedMo);}},activeInfo: function(els) {let self = this;clearTimeout(status.infoRemoveTiming);status.infoRemoveTiming = setTimeout(() => {self.videoContentReset(els);els.tutorialVideos[0].play();utils.offAccessibility(els.tutorialVideoWrap[0]);let tutorialVideoController = els.tutorialVideoWrap[0].querySelector('.common-video__control.common-play-button');tutorialVideoController.focus();if (resize.checkResolution().indexOf('mobile') > -1) {els.layerPopup.classList.add(statusClass.isTutorialOpenedMo);}if (els.tutorialVideos[1].readyState < 4) {imageLoader.setResponsiveMedia([els.tutorialCoverImages[1]]);videoLoader.setResponsiveMedia([els.tutorialVideos[1]]);}els.tutorialVideos[0].focus();status.infoRemoveTiming = null;}, 3000);},active: function (els) {this.onAccessibility(els);if (resize.checkResolution().indexOf('mobile') > -1 && !status.isIos) {document.documentElement.requestFullscreen();}if (resize.checkResolution().indexOf('mobile') > -1) {setTimeout(function () {els.moCloseCta.focus();}, 300);} else {setTimeout(function () {els.tutorialDeactiveCta.focus();}, 300);}status.infoRemoveTiming = null;this.videoVisible(els);this.imageLoad(els);this.setActiveCta(els);this.activeInfo(els);},videoReset: function(els) {els.introVideo.currentTime = 0;if (isDevice == resize.checkResolution()) {els.introVideo.play();} for (let i = 0; i < els.tutorialVideoWrap.length; i++) {els.tutorialVideoWrap[i].classList.remove(statusClass.isVisible);if (!els.tutorialVideos[i].paused) {els.tutorialVideos[i].pause();els.tutorialVideos[i].currentTime = 0;}}},ctaReset: function(els) {els.tutorialDeactiveCta.parentElement.classList.remove(statusClass.isActive);els.tutorialActiveCta.parentElement.classList.add(statusClass.isActive);if (resize.checkResolution().indexOf('mobile') == -1) {els.layerPopup.classList.remove(statusClass.isTutorialOpenedMo);}if (!!els.introCta) {els.introCta.parentElement.classList.remove(statusClass.isVisible);utils.onAccessibility(els.introCta.parentElement);}},deactive: function(els) {els.videoContent.classList.remove(statusClass.isInfoOpen, statusClass.isInfoVisible, statusClass.isTutorialOpend);this.offAccessibility(els);if (resize.checkResolution().indexOf('mobile') > -1 && !status.isIos) {if (document.fullscreenElement != null) document.exitFullscreen();}setTimeout(function () {els.tutorialActiveCta.focus();}, 300);this.videoReset(els)this.ctaReset(els);for (let i = 0; i < els.tutorialVideoWrap.length; i++) {utils.onAccessibility(els.tutorialVideoWrap[i]);}},onAccessibility: function(els) {if (resize.checkResolution().indexOf('mobile') > -1) {utils.onPopupAccessibility(els.textWrap);if (!status.isGlobal) {utils.onPopupAccessibility(commonEls.flotingNaviFixedWrap);} else {utils.onPopupAccessibility(commonEls.globalSubNav);}}utils.onPopupAccessibility(els.introVideoSection);},offAccessibility: function(els) {if (resize.checkResolution().indexOf('mobile') > -1) {utils.offPopupAccessibility(els.textWrap);if (!status.isGlobal) {utils.offPopupAccessibility(commonEls.flotingNaviFixedWrap);} else {utils.offPopupAccessibility(commonEls.globalSubNav);}}utils.offPopupAccessibility(els.introVideoSection);}},popup: {setOverviewStatus: function(opts) {if (opts.openCta.parentElement.getAttribute('class').indexOf('__tutorial-cta') > -1) {let isOverviewVideo = commonEls.overview.querySelector('.swiper-slide-active video');if (!isOverviewVideo.paused) {status.overview = {video: isOverviewVideo,paused: true}isOverviewVideo.pause();}}},mediaLoad: function(els) {if (!els.tutorialActiveCta.classList.contains(statusClass.isBgLoadComplete)) {els.tutorialActiveCta.classList.add(statusClass.isBgLoadComplete);}if (els.introVideo.readyState < 4) {imageLoader.setResponsiveMedia([els.introCoverImage]);videoLoader.setResponsiveMedia([els.introVideo]);}if (!els.navPrev.classList.contains(statusClass.isBgLoadComplete)) {els.navPrev.classList.add(statusClass.isBgLoadComplete);}if (!els.navNext.classList.contains(statusClass.isBgLoadComplete)) {els.navNext.classList.add(statusClass.isBgLoadComplete);}},playIntroVideo: function(els) {if (els.introVideo.readyState >= 4) {els.introVideo.currentTime = 0;els.introVideo.play();} else {els.introVideo.addEventListener('canplay', function(){if (this.paused) this.play();});}},tutorialIntroImgLoad: function(els) {if (!!els.introCoverImage && !els.introCoverImage.classList.contains('is-img-load-complete')) {imageLoader.setResponsiveMedia([els.introCoverImage]);}},tutorialMediaLoad: function(els) {if (els.tutorialVideos[0].readyState < 4) {imageLoader.setResponsiveMedia([els.tutorialCoverImages[0]]);videoLoader.setResponsiveMedia([els.tutorialVideos[0]]);}if (!els.tutorialReplay.classList.contains(statusClass.isBgLoadComplete)) {els.tutorialReplay.classList.add(statusClass.isBgLoadComplete)}},setPopupPosition: function(layerPopup) {let isHash = location.hash;let dotcomGnbHeight = 0;if (!status.isGlobal && window.pageYOffset == 0 && !!isHash) {dotcomGnbHeight = document.querySelector('.nv00-gnb').clientHeight;layerPopup.style.top = `${utils.getNavHeight() + dotcomGnbHeight}px`;} else {layerPopup.style.top = `${utils.getNavHeight()}px`;}},setUiEls: function(opts, els, target) {if (commonEls.globalSubNav) commonEls.globalSubNav.style.opacity = 1;opts.layerPopup.classList.add('is-init');target.openerCta.blur();if (`#${els.openCta.getAttribute('data-hash')}` == window.location.hash) {let oldOpenPopup = document.querySelector('.common-tutorial.is-open');if (!!oldOpenPopup) {let oldOpenPopupId = oldOpenPopup.getAttribute('id');if (`#${oldOpenPopupId}` != window.location.hash) {document.querySelector(`#${oldOpenPopupId}`).hide();}}status.isHash = true;if (!status.isGlobal) commonEls.gnb.style.display = 'none';}if (!!els.introCta) {els.introVideo.addEventListener('ended', function () {utils.offAccessibility(els.introCta.parentElement);setTimeout(function () {els.introCta.parentElement.classList.add(statusClass.isVisible);}, 100);});}},setSubnavi: function(opts) {if (commonEls.globalSubNav) commonEls.globalSubNav.style.opacity = .9;opts.layerPopup.classList.remove('is-init');},focusHandler: function(opts, els) {let isHash = status.isHash && els.layerPopup.targetOpener;let isOverview = els.layerPopup.isOverview;let isController = els.layerPopup.isController;if (isHash || !!isController && !!!isOverview) {els.layerPopup.targetOpener.blur();if (!status.isIos) els.layerPopup.targetOpener.focus();setTimeout(function () {els.layerPopup.targetOpener.focus();if (isHash) {status.isHash = false;history.pushState('', document.title, window.location.pathname);if (!status.isGlobal) commonEls.gnb.style.display = '';}if (!!isController) isController = false; }, 300);}if (!!isOverview) {opts.layerPopup.overviewCta.blur();if (!status.isIos) opts.layerPopup.overviewCta.focus();setTimeout(function () {if (!document.querySelector('.common-tutorial.is-open')) {opts.layerPopup.overviewCta.focus();for (let i = 0; i < layerPopup.length; i++) {layerPopup[i].isOverview = false;layerPopup[i].overviewCta = null;}}}, 300);}},onAccessibilityGlobal: function(els) {for (let i = 0; i < commonEls.contentsChildren.length; i++) {let isId = commonEls.contentsChildren[i].getAttribute('id');if ((isId != null && isId.indexOf('experience') == -1 && isId.indexOf('subnav') == -1) || isId == null) {utils.onPopupAccessibility(commonEls.contentsChildren[i]);}}for (let i = 0; i < commonEls.commonUi.length; i++) {utils.onPopupAccessibility(commonEls.commonUi[i]);}},offAccessibilityGlobal: function(els) {for (let i = 0; i < commonEls.contentsChildren.length; i++) {let isId = commonEls.contentsChildren[i].getAttribute('id');if ((isId != null && isId.indexOf('experience') == -1 && isId.indexOf('subnav') == -1) || isId == null) {utils.offPopupAccessibility(commonEls.contentsChildren[i]);}}for (let i = 0; i < commonEls.commonUi.length; i++) {utils.offPopupAccessibility(commonEls.commonUi[i]);}},onAccessibilityDotom: function(els) {let staticContent = document.querySelector('.static-content');staticContent.style.zIndex = -1;staticContent.style.position = 'relative';for (let i = 0; i < commonEls.wrapChildren.length; i++) {let isId = commonEls.wrapChildren[i].getAttribute('id');if ((isId != null && isId.indexOf('content') == -1) || isId == null) {utils.onPopupAccessibility(commonEls.wrapChildren[i]);}}for (let i = 0; i < commonEls.contentChildren.length; i++) {let isClass = commonEls.contentChildren[i].getAttribute('class');if ((isClass != null && isClass.indexOf('root') == -1) || isClass == null) {utils.onPopupAccessibility(commonEls.contentChildren[i]);}}for (let i = 0; i < commonEls.rootChildren.length; i++) {let isClass = commonEls.rootChildren[i].getAttribute('class');if ((isClass != null && isClass.indexOf('pd-g-floating-nav') == -1) || isClass == null) {utils.onPopupAccessibility(commonEls.rootChildren[i]);}}},offAccessibilityDotcom: function(els) {for (let i = 0; i < commonEls.wrapChildren.length; i++) {utils.offPopupAccessibility(commonEls.wrapChildren[i]);}if (!status.isIos) {for (let i = 0; i < commonEls.contentChildren.length; i++) {commonEls.contentChildren[i].removeAttribute('tabindex');commonEls.contentChildren[i].removeAttribute('aria-hidden');}for (let i = 0; i < commonEls.rootChildren.length; i++) {commonEls.rootChildren[i].removeAttribute('tabindex');commonEls.rootChildren[i].removeAttribute('aria-hidden');}} else {for (let i = 0; i < commonEls.contentChildren.length; i++) {utils.offPopupAccessibility(commonEls.contentChildren[i]);}for (let i = 0; i < commonEls.rootChildren.length; i++) {utils.offPopupAccessibility(commonEls.rootChildren[i]);}}setTimeout(function () {let staticContent = document.querySelector('.static-content');staticContent.style.zIndex = '';staticContent.style.position = '';}, 200);},onAccessibility: function(els) {els.closeCta.removeAttribute('tabindex');els.closeCta.removeAttribute('aria-hidden');if (status.isGlobal) {this.onAccessibilityGlobal(els);} else {this.onAccessibilityDotom(els);}},offAccessibility: function(els) {els.closeCta.setAttribute('tabindex', '-1');els.closeCta.setAttribute('aria-hidden', true);if (status.isGlobal) {this.offAccessibilityGlobal(els);} else {this.offAccessibilityDotcom(els);}}}}const eventHandler = {resize: function(els){window.addEventListener('resize', function() {eventList.resize.position(els);eventList.common.setMobileVideoWidth(els);});},infoPopupDeactive: function(els) {els.infoPopup.addEventListener('click', function(){eventList.tutorial.videoContentReset(els);clearTimeout(status.infoRemoveTiming);els.tutorialVideos[0].play();let tutorialVideoController = els.tutorialVideoWrap[0].querySelector('.common-video__control.common-play-button');tutorialVideoController.focus();if (resize.checkResolution().indexOf('mobile') > -1) {els.layerPopup.classList.add(statusClass.isTutorialOpenedMo);}if (els.tutorialVideos[1].readyState < 4) {imageLoader.setResponsiveMedia([els.tutorialCoverImages[1]]);videoLoader.setResponsiveMedia([els.tutorialVideos[1]]);}status.infoRemoveTiming = null;});},tutorialActiveEvent: function (els) {if (!!els.introCta) {els.introCta.addEventListener('click', function(){eventList.tutorial.active(els);});}els.tutorialActiveCta.addEventListener('click', function(){this.parentElement.classList.remove(statusClass.isActive);eventList.tutorial.active(els);});},tutorialDeactiveEvent: function(els) {els.tutorialDeactiveCta.addEventListener('click', function(){eventList.tutorial.deactive(els);eventList.tutorial.reset(els);});},reStartTutorial: function(els) {els.tutorialReplay.addEventListener('click', function(){this.style.display = '';eventList.tutorial.reset(els);eventList.tutorial.active(els);utils.onAccessibility(els.tutorialVideoWrap[els.tutorialVideoWrap.length - 1]);});},videoController: function (index) {objs[`introVideo_${index}`].controller.addEventListener('click', function () {if (this.video.paused) {this.video.play();} else {this.video.pause();}});},onClickMoCloseCta: function (els) {els.moCloseCta.addEventListener('click', function () {eventList.tutorial.deactive(els);eventList.tutorial.reset(els);});},onClickController: function (els) {els.tutorialNavigation.addEventListener('click', function (e) {let isNaviBtn = e.target.classList.contains('common-tutorial__navigation-button');if (isNaviBtn) {_controllEvent(e.target);}});els.tutorialPagination.addEventListener('click', function (e) {let isPaginationBtn = e.target.classList.contains('common-tutorial__pagination');if (isPaginationBtn) {let currOpenPopupId = document.querySelector('.common-tutorial.is-open').getAttribute('id');let targetId = e.target.getAttribute('data-hash');if (targetId != currOpenPopupId) {_controllEvent(e.target);}}});const _controllEvent = function (target) {let targetPopupId = target.getAttribute('data-hash');document.querySelector('.common-tutorial.is-open').hide();document.querySelector(`#${targetPopupId}`).show();eventList.tutorial.reset(els);document.querySelector(`#${targetPopupId}`).isController = true;};},tutorialintroImgLoad: function (els) {window.addEventListener('scroll', function () {if (this.pageYOffset > 0) {eventList.popup.tutorialIntroImgLoad(els);}})},moveToTutorialPopup: function (els) {window.addEventListener('DOMContentLoaded', function () {if (!status.isGlobal) {commonEls.flotingNaviFixedWrap.after(els.layerPopup);} else {document.querySelector('#contents').prepend(els.layerPopup);if (status.isIos) commonEls.globalSubNav.after(els.layerPopup);}});},onClickSup: function (els) {for (let i = 0; i < els.supClicker.length; i++) {els.supClicker[i].addEventListener('click', function (e) {e.preventDefault();e.stopPropagation();let targetIndex = parseFloat(e.target.innerText),disclaimer = document.querySelectorAll('#desc-section li')[targetIndex - 1],disclaimerText = disclaimer.innerText,activeBlock = '' + disclaimerText + '';els.layerPopup.hide();setTimeout(() => {disclaimer.innerHTML = activeBlock;disclaimer.querySelector('a').focus();}, 500);const eventList = {focusIn: function () {common.centeredFocus.call(disclaimer.querySelector('a'));disclaimer.removeEventListener('focusin', eventList.focusIn);},focusOut: function () {disclaimer.innerHTML = disclaimerText;disclaimer.removeAttribute('tabindex');disclaimer.removeEventListener('focusout', eventList.focusOut);},};disclaimer.addEventListener('focusin', eventList.focusIn);disclaimer.addEventListener('focusout', eventList.focusOut);});}}}const setIntroVideo = function (el, index) {objs[`introVideo_${index}`] = ANIUTIL.videoHandler({wrap: el,video: el.video,controller: el.controller,playCallback: function () {if (el.classList.contains(statusClass.isCompleted)) el.classList.remove(statusClass.isCompleted);setTagging.pause(el.controller);},pauseCallback: function () {setTagging.play(el.controller);},endCallback: function () {if (!el.classList.contains(statusClass.isCompleted)) el.classList.add(statusClass.isCompleted);}});};const setPopup = function (opts, els) {tutorialPopup({tutorialPopup: opts.layerPopup,tutorialPopupClass: opts.popupClass,openerEvent: {element: opts.openCta,},closeCtas: [opts.closeCta],show: {start: function (target) {eventList.popup.setOverviewStatus(opts);eventList.popup.mediaLoad(els);eventList.popup.playIntroVideo(els);eventList.popup.tutorialMediaLoad(els);eventList.popup.setPopupPosition(opts.layerPopup);eventList.popup.setUiEls(opts, els, target);eventList.popup.onAccessibility(els);},end: function () {if (status.isIos) opts.layerPopup.style.display = 'block';opts.layerPopup.classList.add('is-open');eventList.common.setMobileVideoWidth(els);}},hide: {start: function (target) {eventList.popup.offAccessibility(els);target.openerCta.focus();opts.layerPopup.classList.remove('is-open');},end: function () {eventList.tutorial.reset(els);els.introVideo.pause();eventList.popup.setSubnavi(opts);eventList.popup.focusHandler(opts, els);els.innerWrapper.scrollTop = 0;}}});};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 bindEvents = function (els, index) {eventHandler.moveToTutorialPopup(els);eventHandler.resize(els);eventHandler.infoPopupDeactive(els);eventHandler.tutorialActiveEvent(els);eventHandler.tutorialDeactiveEvent(els);eventHandler.reStartTutorial(els);eventHandler.onClickMoCloseCta(els);eventHandler.onClickController(els);eventHandler.tutorialintroImgLoad(els);eventHandler.onClickSup(els);// introVideosetProperty(els);setIntroVideo(els.introVideoWrap, index);eventHandler.videoController(index);};return {init: init,}})();})();;(function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.viewer = (function () { const utils = window.flagship.common.utils; const resize =window.flagship.common.resize; let els = {}, status = {}, currDevice = resize.checkResolution(); const init = function () { els.viewerBtn = document.querySelector('.viewer-btn'); if(!!els.viewerBtn) { setElements(); setStatus(); setPopup(); bindEvents(); } }; const setElements = function(){ els.wrapEl = document.querySelector('#wrap'); els.contents = document.querySelector('#contents'); // popup els.popup = document.querySelector('.highlights-viewer'); els.popupContents = els.popup.querySelector('.highlights-viewer__contents'); els.popupInner = els.popup.querySelector('.highlights-viewer__inner'); els.popupWrap = els.popup.querySelector('.highlights-viewer__wrap'); els.closeCta = els.popup.querySelector('.highlights-viewer__close-cta'); els.viewerWrap = els.popup.querySelector('.highlights-viewer__contents-wrap'); els.viewerContainer = els.popup.querySelector('.highlights-viewer__container'); els.viewerIframe = els.popup.querySelector('.highlights-viewer__container-viewer'); // popup-scroll els.popupScroll = els.popup.querySelector('.highlights-viewer__scroll'); els.popupScrollUpBtn = els.popup.querySelector('.highlights-viewer__scroll-btn--up'); els.popupScrollDownBtn = els.popup.querySelector('.highlights-viewer__scroll-btn--down'); // infoPopup els.infoBtn = els.popup.querySelector('.highlights-viewer__title-cta'); els.infoCloseBtn = els.popup.querySelector('.highlights-viewer__header-close-cta'); els.infoDimmed = els.popup.querySelector('.highlights-viewer__dimmed'); // timeout els.resizeTimeout = null; els.resizeInnerTimeout = null; // viewer els.viewerOpener = null; els.viewerModel = ''; els.viewerColor = ''; }; const setStatus = function () { status.viewerBaseUrl = '//www.samsung.com/global/galaxy/3d-360/viewer/?'; status.defaultParams = '&gesture_guide=0'; status.defaultParams += '&bgcolor=transparent'; status.defaultParams += '&skin=colorlayer'; status.defaultParams += '&theme=roundlayer'; status.defaultParams += '&intro=1'; status.defaultParams += '&ruler=1'; status.defaultParams += '&breakpoint_criteria=outer'; status.defaultParams += '&breakpoint_desktop_width=1024'; status.defaultParams += '&intro_pose=2'; status.defaultParams += '&intro_pose_once=1'; status.defaultParams += '&intro_pose_hold=1'; status.moPoseReady = false; status.isHash = false; }; const bindEvents = function () { window.addEventListener('DOMContentLoaded', onLoadHandler, {once : true}); window.addEventListener('message', onReceiveV3DMessage, false); //els.popupContents.addEventListener('scroll', onScrollPopupContents); els.viewerIframe.addEventListener('DOMContentLoaded', viewerEvents.onLoadLayerPopupIframe); els.popupScroll.addEventListener('click', layerPopupScrollHandler.onClickLayerScroll); resize.add(onResizeHandler); }; const onLoadHandler = function () { setViewerWrap.innerWrapHeight(); setViewerWrap.layerScroll(); }; const onResizeHandler = function (currRes) { currDevice = currRes; if (utils.detector.isTouchDevice && !utils.detector.isIosDevice) setViewerWrap.innerWrapHeight(); setViewerWrap.layerScroll(); }; const setViewerWrap = { 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 () { layerPopupScrollHandler.setLayerScroll(); }, 300); } }; const setPopup = function(){ utils.layerPopup({ layerPopup: els.popup, layerPopupClass: '.highlights-viewer', openerEvent: { element: els.viewerBtn, }, closeCtas: [els.closeCta], moveTarget: document.documentElement, contents: els.contents, show: { start: function (target) { els.popup.classList.add('is-init'); viewerEvents.show(target.openerCta); }, end: function () { if (utils.detector.isIosDevice) els.popup.style.display = 'block'; els.popup.classList.add('is-open'); if (els.popup.classList.contains('is-info-open')) { setTimeout(function () { els.infoCloseBtn.focus(); }, 500); } } }, hide: { start: function () { els.popup.classList.remove('is-open'); }, end: function () { setTimeout(function () { els.popup.classList.remove('is-init'); }, 300); viewerEvents.hide(); } } }); }; const viewerEvents = { show: function (viewerOpener) { if (viewerOpener.classList.contains('viewer-btn')) { status.isHash = false; els.viewerOpener = viewerOpener; } else { status.isHash = true; els.viewerOpener = els.viewerBtn; } els.viewerModel = els.viewerOpener.getAttribute('data-model-name'); els.viewerColor = els.viewerOpener.getAttribute('data-model-color'); els.viewerIframe.setAttribute('src', getViewerUrl()); if (currDevice.indexOf('mobile') > -1 || currDevice == 'tablet') { viewerEvents.infoPopupShow(); } els.infoBtn.addEventListener('click', function () { viewerEvents.infoPopupShow(); setTimeout(function () { els.infoCloseBtn.focus(); }, 400); }); els.popupWrap.addEventListener('click', viewerEvents.onclickViewerDimmed); }, hide: function () { els.viewerModel = ''; els.viewerIframe.setAttribute('src', 'about:blank'); if (status.isHash) { setTimeout(function () { els.viewerOpener.focus(); }, 300); } }, infoPopupShow: function () { if (!els.popup.classList.contains('is-info-open')) { els.popup.classList.add('is-info-open'); els.infoCloseBtn.addEventListener('click', viewerEvents.infoPopupHide); els.infoDimmed.addEventListener('click', viewerEvents.infoPopupHide); setTimeout(function () { els.closeCta.setAttribute('tabindex', -1); els.closeCta.setAttribute('aria-hidden', true); els.infoBtn.setAttribute('tabindex', -1); els.infoBtn.setAttribute('aria-hidden', true); els.viewerContainer.setAttribute('tabindex', -1); els.viewerContainer.setAttribute('aria-hidden', true); }, 400); } }, infoPopupHide: function () { if (els.popup.classList.contains('is-info-open')) { els.popup.classList.remove('is-info-open'); setTimeout(function () { els.infoBtn.focus(); }, 300); setTimeout(function () { els.closeCta.removeAttribute('tabindex'); els.closeCta.removeAttribute('aria-hidden'); els.infoBtn.removeAttribute('tabindex'); els.infoBtn.removeAttribute('aria-hidden'); els.viewerContainer.removeAttribute('tabindex'); els.viewerContainer.removeAttribute('aria-hidden'); }, 100); } }, onclickViewerDimmed: function (e) { if (e.currentTarget == e.target) { if(utils.detector.isIosDevice) els.viewerOpener.style.display = 'block'; els.popup.classList.remove('is-open'); document.documentElement.classList.remove('is-layer-open'); document.documentElement.style.overflow = ''; utils.visibleScroll(); utils.onAccessibility(els.popup); utils.offAccessibility(document.querySelector('#wrap')); setTimeout(function () { els.viewerOpener.focus(); }, 300); els.viewerModel = ''; els.viewerIframe.setAttribute('src', 'about:blank'); setTimeout(function () { els.popup.classList.remove('is-init'); }, 300); } }, onLoadLayerPopupIframe: function () { if (document.documentElement.classList.contains('color_yb') || (utils.getCookie('highContrastMode') != null && utils.getCookie('highContrastMode') == 1)) { els.viewerIframe.contentWindow.postMessage('V3D.highContrast.on', '*'); setTimeout(function () { els.viewerIframe.contentWindow.postMessage('V3D.highContrast.on', '*'); }, 300); } } }; const layerPopupScrollHandler = { 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'); } }, onScrollPopupContents: function () { onUpdateLayerScroll(false); }, onClickLayerScroll: function (e) { e && e.preventDefault(); if (e.target.matches('.highlights-viewer__scroll-btn')) { let scrollDown = e.target.classList.contains('highlights-viewer__scroll-btn--down'), $popupContents = $(els.popupContents); if (scrollDown) { $popupContents.stop().animate({ scrollTop: $popupContents.scrollTop() + 100 }, { duration: 300, complete: function () { layerPopupScrollHandler.onUpdateLayerScroll(true); } }); } else { $popupContents.stop().animate({ scrollTop: $popupContents.scrollTop() - 100 }, { duration: 300, complete: function () { layerPopupScrollHandler.onUpdateLayerScroll(true); } }); } } }, onUpdateLayerScroll: 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'); } } }; const onReceiveV3DMessage = 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'); } if (els.infoBtn) { els.infoBtn.setAttribute('tabindex', '-1'); els.infoBtn.setAttribute('aria-hidden', 'true'); } } } 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'); } if (els.infoBtn) { els.infoBtn.removeAttribute('tabindex'); els.infoBtn.removeAttribute('aria-hidden'); } } } else if (e.data == 'V3D.state.introPose.ready') { if (currDevice.indexOf('desktop') > -1) { els.viewerIframe && els.viewerIframe.contentWindow.postMessage('V3D.introPose.run', '*'); } status.moPoseReady = true; setTimeout(function () { status.moPoseReady = false; }, 2000); } else if (e.data == 'V3D.state.localData.ready') { els.viewerIframe && els.viewerIframe.contentWindow.postMessage(JSON.stringify(V3DLOCALDATA), '*'); } }; const getViewerUrl = function () { let viewerUrl = status.viewerBaseUrl; let viewerModelList = 'galaxy-s24,galaxy-s24-plus'; let isbasicLineShow = (!V3DLOCALDATA['galaxy-s24-plus']) || (!!V3DLOCALDATA['galaxy-s24-plus'] && V3DLOCALDATA['galaxy-s24-plus'].color.length == 0) let isPlusLineShow = (!V3DLOCALDATA['galaxy-s24']) || (!!V3DLOCALDATA['galaxy-s24'] && V3DLOCALDATA['galaxy-s24'].color.length == 0); if (isbasicLineShow) { viewerModelList = 'galaxy-s24'; } else if (isPlusLineShow) { viewerModelList = 'galaxy-s24-plus'; } // model_name viewerUrl += 'model_name=' + els.viewerModel + '&model_list=' + viewerModelList; 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 += status.defaultParams; viewerUrl += '#color=' + (els.viewerColor ? els.viewerColor : 'null'); return viewerUrl; }; return { init: init } })();})();(function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.ytPopup = (function () { let els = {}; const utils = window.flagship.common.utils; const init = function () { els.layerPopup = document.querySelector('.common-youtube-popup'); if(!!els.layerPopup) { setElements(); setPopup(); } }; const setElements = function () { els.contents = document.querySelector('#contents'); els.openCtas = document.querySelectorAll('.js-youtube-popup'); els.closeCta = document.querySelector('.common-youtube-popup__close-cta'); els.ytIframe = els.layerPopup.querySelector('.common-youtube-popup__iframe > iframe'); els.ytDesc = els.layerPopup.querySelector('.youtube-player__desc'); els.dimmed = els.layerPopup.querySelector('.common-youtube-popup__close-area'); }; const setPopup = function () { for (let i = 0; i < els.openCtas.length; i++) { utils.layerPopup({ layerPopup: els.layerPopup, layerPopupClass: '.common-youtube-popup', openerEvent: { element: els.openCtas[i], }, closeCtas: [els.closeCta], dimmed: els.dimmed, moveTarget: document.documentElement, contents: els.contents, show: { start: function () { els.layerPopup.classList.add('is-yt-open'); }, end: function (target) { eventList.setYoutube(target); } }, hide: { start: function () { els.layerPopup.classList.remove('is-yt-open'); }, end: function (target) { eventList.clearYoutube(); } } }); } }; const eventList = { setYoutube: function (target) { let opener = target.openerCta, ytSrc = 'htt' + 'ps://www.youtube.com/embed/' + opener.getAttribute('data-youtube-id') + '?wmode=opaque&rel=0&enablejsapi=1&version=3&autoplay=1', ytTitle = opener.getAttribute('data-youtube-title'), ytBlind = opener.querySelector('.blind').innerHTML; els.ytIframe.setAttribute('src', ytSrc); els.ytIframe.setAttribute('title', ytTitle); els.ytDesc.innerHTML = ytBlind; els.OpenerTarget = opener; }, clearYoutube: function () { els.ytIframe.removeAttribute('src'); els.ytDesc.innerHTML = ''; } }; return { init: init, } })();})();(function () { window.flagship.common.resize.bindEvent(); var initComponents = function () { flagship.highlights.accordion.init(); flagship.highlights.scrollVideo.init(); flagship.highlights.clickToVideo.init(); flagship.highlights.overview.init(); flagship.highlights.quote.init(); flagship.highlights.designSpecPopup.init(); flagship.highlights.color.init(); flagship.highlights.viewer.init(); flagship.highlights.cameraAi.init(); flagship.highlights.resolutionPopup.init(); flagship.highlights.nightography.init(); flagship.highlights.opticalZoom.init(); flagship.highlights.dayPopup.init(); flagship.highlights.liveTranslatePopup.init(); flagship.highlights.aod.init(); flagship.highlights.experiences.init(); flagship.highlights.faq.init(); flagship.highlights.ytPopup.init(); flagship.highlights.tutorial.init(); flagship.highlights.generativeEditTutorial.init(); flagship.highlights.circleToSearchTutorial.init(); flagship.highlights.liveTranslateTutorial.init(); flagship.highlights.chatAssistTutorial.init(); flagship.highlights.innerPopup.init(); }; initComponents();})();});
        • Galaxy S24 & S24 Plus | Galaxy AI | Samsung France (2024)

          References

          Top Articles
          Latest Posts
          Article information

          Author: Geoffrey Lueilwitz

          Last Updated:

          Views: 6556

          Rating: 5 / 5 (80 voted)

          Reviews: 95% of readers found this page helpful

          Author information

          Name: Geoffrey Lueilwitz

          Birthday: 1997-03-23

          Address: 74183 Thomas Course, Port Micheal, OK 55446-1529

          Phone: +13408645881558

          Job: Global Representative

          Hobby: Sailing, Vehicle restoration, Rowing, Ghost hunting, Scrapbooking, Rugby, Board sports

          Introduction: My name is Geoffrey Lueilwitz, I am a zealous, encouraging, sparkling, enchanting, graceful, faithful, nice person who loves writing and wants to share my knowledge and understanding with you.