Galaxy S24 Ultra
- Caractéristiques
- ASSISTANCE
- Avis
Acheter
- Présentation
- Comparer
- Accessoires
- Caractéristiques
- ASSISTANCE
- Avis
Acheter Réserver Acheter Où l'acheter
Galaxy AI est là
Bienvenue dans la nouvelle ère de l'Intelligence Artificielle mobile. Avec le Galaxy S24 Ultra entre vos mains, débloquez de nouveaux niveaux de créativité, de productivité et de possibilité - en commençant par l'outil le plus important de votre vie. Votre smartphone.
Entourer pour chercher
Découvrir la fonction Entourer pour chercher
Traduction instantanée
Découvrir la traduction instantanée
Interprète
Découvrir l’Interprète
Assistant Notes
Découvrir l'Assistant Notes
Assistant Photo
Découvrir l'Assistant Photo
Assistant Message
Découvrir l’Assistant Message
-
Entourer pour chercher
-
Traduction instantanée
-
Interprète
-
Assistant Notes
-
Assistant Photo
-
Assistant Message
Découvrez l’expérience Galaxy sur votre smartphone Scannez ce QR code ou visitez trygalaxy.com
Appareil photo
"Pour ceux qui veulent les meilleurs clichés de nuit ou un ajustement d’image avec AI"
Approuvé par Forbes
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 AI est un pas de géant »
Clubic
9/10
« Galaxy S24 Ultra : carton plein »
Les Numériques
5/5
« Une autonomie monstrueuse »
Phonandroid
4,5/5
Élégant. Puissant. Époustouflant.
Dites bonjour au Galaxy S24 Ultra, l'évolution ultime de la gamme Galaxy S qui arbore un sublime cadre en titane soutenant un écran de 6.8”., Une véritable pièce d'orfèvrerie au creux de votre main.
Le titane comme bouclier ultime
Le titane comme bouclier ultime
Aussi agréable à l'œil qu'au toucher, le cadre en titane confère au Galaxy S24 Ultra une résistance exceptionnelle. Idéal pour allier élégance et robustesse.
Résistance ultime aux rayures grâce au verre Corning® Gorilla® Armor
La nouvelle vitre en verre Corning® Gorilla® Armor aide à protéger votre Galaxy S24 Ultra des rayures accidentelles. Il peut alors se balader dans votre poche ou votre sac, sans crainte d'être abimé.
À l'abri de l'eau et de la poussière
Ne laissez pas la pluie gâcher votre bonne humeur. Le Galaxy S24 Ultra dispose d'une certification IP68, le rendant résistant à l'eau et à la poussière.
De toutes nouvelles couleurs minérales. Vous allez craquer.
Disponible en exclusivité sur samsung.com
Gris Titane Noir Titane Violet Titane Ambre Titane Bleu Titane Vert Titane Orange Titane
Trois Galaxy S24 Ultra gris. Deux d'entre eux sont montrés ensemble, l'un vu de l'avant et l'autre de l'arrière avec le S Pen à côté. Un autre téléphone est vu de côté pour montrer les bords du cadre.
Trois Galaxy S24 Ultra noir. Deux d'entre eux sont montrés ensemble, l'un vu de l'avant et l'autre de l'arrière avec le S Pen à côté. Un autre téléphone est vu de côté pour montrer les bords du cadre.
Trois Galaxy S24 Ultra noir. Deux d'entre eux sont montrés ensemble, l'un vu de l'avant et l'autre de l'arrière avec le S Pen à côté. Un autre téléphone est vu de côté pour montrer les bords du cadre.
Trois Galaxy S24 Ultra crème. Deux d'entre eux sont montrés ensemble, l'un vu de l'avant et l'autre de l'arrière avec le S Pen à côté. Un autre téléphone est vu de côté pour montrer les bords du cadre.
Trois Galaxy S24 Ultra bleu. Deux d'entre eux sont montrés ensemble, l'un vu de l'avant et l'autre de l'arrière avec le S Pen à côté. Un autre téléphone est vu de côté pour montrer les bords du cadre.
Exclusivité en ligne
En exclusivité sur Samsung.com
Trois Galaxy S24 Ultra vert. Deux d'entre eux sont montrés ensemble, l'un vu de l'avant et l'autre de l'arrière avec le S Pen à côté. Un autre téléphone est vu de côté pour montrer les bords du cadre.
Exclusivité en ligne
En exclusivité sur Samsung.com
Trois Galaxy S24 Ultra orange. Deux d'entre eux sont montrés ensemble, l'un vu de l'avant et l'autre de l'arrière avec le S Pen à côté. Un autre téléphone est vu de côté pour montrer les bords du cadre.
Exclusivité en ligne
En exclusivité sur Samsung.com
Découvrir l'inspiration minérale des nouveaux coloris
L'association du titane brossé et des couleurs minérales confèrent au Galaxy S24 Ultra un look ultra élégant. Vous tenez une véritable œuvre technologique entre les mains.
Écrivez votre propre histoire grâce au S Pen intégré
Écrivez votre propre histoire grâce au S Pen intégré
L'héritage du Galaxy Note est plus vivant que jamais. Écrivez, dessinez et naviguez grâce au S Pen avec une précision qui rendront vos doigts jaloux.
Galaxy AI
La fusion parfaite entre processeur d'exception et appareil photo révolutionnaire, désormais dotée d'IA
caméra arrière
200 Mpx
Optique Grand Angle & zoom de qualité optique 2x
12 Mpx
Optique Ultra Grand Angle
50 Mpx
Téléobjectif avec zoom optique 5x et zoom 10x de qualité optique
10 Mpx
Téléobjectif avec zoom optique 3x
caméra frontale
12 Mpx
Appareil photo selfie
200 Mpx Saisissez des détails bluffants de réalisme
200 Mpx Saisissez des détails bluffants de réalisme
Avec un capteur de 200 Mégapixels et un nouveau traitement d'image doté d'IA, le Galaxy S24 Ultra établit de nouvelles normes en matières de photo et vidéo sur smartphone. Son nouveau moteur ProVisual reconnait les objets pour ainsi améliorer la tonalité des couleurs, réduire le bruit et mettre en exergue les détails jusque là invisibles.
Photo prise avec le Galaxy S24 Ultra #withGalaxy
Polyvalence inégalée en zoom
Parce que chaque plan a des secrets à révéler, le Galaxy S24 Ultra dispose d'un zoom d'une polyvalence exceptionnelle. Sans perdre en qualité, vous pouvez ainsi jouer entre un 2x, 3x, 5x ou 10x de qualité optique.,, Et avec une stabilisation optique améliorée, plus besoin de trépied pour capturer chaque détail à (très) longue distance.
Appuyez pour zoomer
Photo prise avec le Galaxy S24 Ultra #withGalaxy
De loin notre meilleur téléobjectif
Le téléobjectif de 50 Mpx, associé à un zoom optique 5x, offre des clichés incroyablement nets à distance. Vous pouvez donc désormais obtenir des photographies zoomées en très haute définition.
Photo prise avec le Galaxy S24 Ultra #withGalaxy
1x, 5x
Réveillez le réalisateur qui sommeille en vous
Pour la première fois sur un smartphone Galaxy, filmez des vidéos sublimes en 8k avec un zoom optique 5x. Comptez sur lui pour être le meilleur allié de vos plus belles réalisations.
Photo prise avec le Galaxy S24 Ultra #withGalaxy
L'IA donne des détails saisissants à longue distance
L'IA donne des détails saisissants à longue distance
À chaque plan, l'IA joue un rôle crucial dans la mise en exergue de ce qui compte pour vous. Que vous capturiez un paysage dans sa globalité en Grand Angle 1x ou un détail infime en Space Zoom 100x, le Galaxy S24 Ultra passe en revue chaque plan pour en révéler les moindres fragments.,
Photo prise avec le Galaxy S24 Ultra #withGalaxy
Le moteur ProVisual immortalise chaque nuit avec une clarté remarquable
Le moteur ProVisual immortalise chaque nuit avec une clarté remarquable
Le Space Zoom du Galaxy S24 Ultra vous place au cœur de l'action, même la nuit. Avec des photodiodes 1.6x plus grands et un téléobjectif doté d'une stabilisation optique plus large, vos photos et vidéos sont plus lumineuses, et surtout plus stables.,,
Photo prise avec le Galaxy S24 Ultra #withGalaxy
L'IA sublime vos portraits en basse lumière
Le tout nouveau capteur 5x - composé de plus grands photodiodes - fait des miracles en matière de détail et netteté lorsque les conditions lumineuses sont extrêmes.,, Ajoutez à cela notre carte de profondeur AI Stereo et un nouveau mode Portrait en zoom 5x, et vos sujets seront mis en avant comme jamais auparavant.
Photo prise avec le Galaxy S24 Ultra #withGalaxy
Des vidéos éblouissantes à la tombée du jour.
Les capacités du zoom optique 5x en basse lumière permettent de capturer chaque moment dans une incroyable profusion de détails. Pour des vidéos à la clarté exceptionnelle lorsque le soleil se couche.
Photo prise avec le Galaxy S24 Ultra #withGalaxy
Retouches génératives par IA
Retouches génératives par IA
Un élément de votre photo vous turlupine ? La nouvelle fonction de retouches génératives par IA vous permet de déplacer, agrandir ou supprimer ce que vous voulez à l'image. Pratique, non ?
Assistant photo
Modifiez vos photos à souhait avec l'Assistant Photo
Appuyez ici
Appuyez ici
Appuyer ou dessiner pour sélectionner
Déplacer la sélection
Appuyez ici
Assistant photo
Transformez les images en repositionnant les personnes ou les objets et en remplissant les arrière-plans.
Changez les règles du temps avec le ralenti instantané
Changez les règles du temps avec le ralenti instantané
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.
Nouveau Super HDR, de la prévisualisation à votre post sur les réseaux
Nouveau Super HDR, de la prévisualisation à votre post sur les réseaux
La nouvelle fonctionnalité Super HDR du Galaxy S24 Ultra prévisualise le rendu final au sein de l'appareil photo avant la capture en Super HDR. Vous pouvez ainsi avoir un aperçu de vos créations en temps réel, avant même de les prendre. Et cela marche également au sein de vos réseaux sociaux préférés.
Photo prise avec le Galaxy S24 Ultra #withGalaxy
Entourer pour chercher. Tout simplement.
Recherchez comme jamais auparavant avec Entourer pour chercher. Entourez simplement un objet pour obtenir des résultats Google Search. La nouvelle façon visuelle de trouver ce que vous recherchez.
Entourer pour chercher
Entourez. Recherchez. Trouvez
Maintenir la touche Accueil appuyée
Entourez ou appuyez pour rechercher.
Entourer pour chercher
Recherchez n’importe quoi sans changer d’application.
Cassez les barrières de la langue avec la traduction instantanée
Avec la traduction instantanée, un interprète est directement intégré à l'application téléphone de votre Galaxy S24 Ultra. Vous êtes alors capable de communiquer dans votre langue maternelle avec des personnes qui ne la parlent pas, que ce soit à l'oral, mais aussi par message. Une révolution qui vient casser les barrières de la langue.
Traduction instantanée
Discutez en temps réel dans une langue étrangère disponible
Appuyer pour appeler
Appuyer pour traduire
Traduction instantanée
Vous avez oublié votre portefeuille dans un taxi lors d’un voyage! Comment parler à un chauffeur de taxi étranger?
Choisissez la bonne tonalité avec l'Assistant Message
Composez vos messages avec l'IA aux commandes grâce à l'Assistant Message. Écrivez simplement puis demandez à votre smartphone une reformulation dans le style de votre choix. Pour que votre message soit parfaitement adapté à son destinataire.
Assistant Message
Discutez avec le monde entier sans vous soucier de la langue
Appuyez ici
Appuyez ici
Appuyez ici
Appuyez ici
Assistant Message
Améliorez votre communication en traduisant les discussions et les SMS.
Vos notes réorganisées avec l'Assistant Notes
Que vous preniez des notes en cours ou rédigiez votre mémoire, l'Assistant Notes résume et compile ce que vous écrivez en quelques mots. Commencez simplement à écrire et, d'une touche, formatez votre texte en un résumé clair et facile à comprendre.
Et lorsque vous êtes à la recherche d'une ancienne note, les nouvelles couvertures affichent des résumés simples pour plus facilement s'y retrouver.
Assistant Notes
D'un trop-plein d’informations à la synthèse parfaite
Appuyez ici
Appuyez ici
Appuyez ici
Appuyez ici
Assistant Notes
Formater automatiquement le texte de vos notes en puces faciles à lire.
Le jeu sur mobile atteint des sommets
Logo Arena Breakout. Ray Tracing activé. Ray Tracing désactivé. Une comparaison avant/après sur l'écran du Galaxy S24 Ultra montre les effets du ray tracing dans une capture du gameplay d'Arena Breakout. Le ray tracing accentue les reflets sur les surfaces.
La nouvelle puce Snapdragon® 8 Gen 3 for Galaxy est la plus puissante jamais embarquée sur un smartphone Galaxy. Dédiée au gaming, elle donnera le surplus de puissance nécessaire à vos interminables sessions de jeu. Elle permet aussi au Galaxy S24 Ultra d'exploiter le Ray Tracing, pour des graphismes plus vrais que nature.
Pour une dissipation optimale de la chaleur, nous avons presque doublé la taille de la chambre à vapeur. Cela permet au Galaxy S24 Ultra de rester au frais, même en utilisation intensive.
- NPU
41 % Puissance de calcul boostée grâce à l'IA
- GPU
30 % Graphismes plus vrais que nature
- CPU
20 % Tâches plus rapide et moins énergivores
Un vrai marathonien
La symbiose idéale entre matériel et logiciel fait du Galaxy S24 Ultra un modèle d'endurance. Avec une gestion plus intelligente de l'énergie et une batterie de 5000 mAh, vous bénéficiez d'un smartphone capable de vous suivre partout, tout le temps.,
- Autonomie en lecture vidéo jusqu'à
30 heures
- Autonomie en écoute musicale jusqu'à
95 heures
2600 nits. Vraiment éblouissant.
Le Galaxy S24 Ultra embarque notre écran le plus immersif. Sa luminosité grimpant à 2600 nits et sa technologie Vision Booster permettent de profiter de ses contenus préférés, même en plein soleil. Le verre Corning® Gorilla® Armor réduit quant à lui les reflets pour une immersion optimale.
Une vidéo avec une visibilité claire est présentée dans une comparaison avant/après d'un écran Galaxy S24 Ultra. L'appareil est tenu à l'extérieur, à la lumière du jour, et une vidéo est diffusée sur l'écran.
Pourquoi passer à Galaxy ?
Passez facilement à Galaxy
Conservez vos photos, vos vidéos, vos contacts, votre calendrier et vos applications avec Smart Switch, même si vous venez d'un appareil iOS.,,
En savoir plus sur Smart Switch
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.
Cassez 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
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.
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.
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é.
Reprise de votre ancien smartphone
Échangez votre ancien téléphone contre l'appareil Galaxy que vous voulez, et découvrez combien vous pourriez économiser sur l'achat de votre nouveau Galaxy S24 Ultra.
En savoir plus
Jusqu'à 1To de stockage
Gardez vos meilleurs souvenirs au chaud avec des configurations en 256Go, 512Go et 1To de stockage.
Acheter
Pimpez votre Galaxy S24 Ultra
Découvrir
Questions fréquemment posées
-
Le Galaxy S24 Ultra est disponible en Gris Titane, Noir Titane, Violet Titane et Ambre Titane. Les coloris Bleu Titane, Vert Titane et Orange Titane sont des couleurs exclusives disponibles uniquement sur Samsung.com.
En savoir plus sur les couleurs
-
Du cadre en titane au logiciel doté d'Intelligence Artificielle, le Galaxy S24 Ultra offre une expérience supérieure par rapport à son prédécesseur, tant sur le plan logiciel que matériel.Le Galaxy S24 Ultra est doté d'un bloc photo doté de 4 téléobjectifs, permettant une incroyable polyvalence en zoom, avec des photos zoomées plus claires et en plus haute résolution par rapport au Galaxy S23 Ultra.Un téléobjectif de 50MP dispose désormais d'un zoom optique 5x, permettant à davantage de lumière de rentrer.Le nouveau moteur ProVisual prend en charge une expérience photo de haut vol comme la haute résolution, le Super HDR, la gestion du zoom par l'IA, la Nightography ou l'Assistant Photo.L'écran du Galaxy S24 Ultra offre également de meilleures performances que celui du Galaxy S23 Ultra grâce à une luminosité maximale plus élevée - jusqu'à 2600 nits - et un nouveau revêtement plus solide et anti reflets Corning® Gorilla® Armor.
-
Le bloc photo du Galaxy S24 Ultra est le premier smartphone Galaxy à être équipé d'un système à 4 téléobjectifs. Avec ce dernier, les utilisateurs sont en mesure de prendre des photos plus claires et plus nettes dans la plage de zoom optique qu'ils utilisent habituellement.,Même au sein de la plage de zoom numérique, les utilisateurs sont en mesure d'obtenir des photos et vidéos plus détaillées qu'auparavant grâce à la gestion du zoom par IA, permise par le nouveau moteur ProVisual.Outre le zoom, le puissant moteur ProVisual améliore les photos en Haute Résolution, en basse lumière et en Super HDR.,
En savoir plus sur l'appareil photo
-
Avec une taille de 6.8 pouces, l'écran du Galaxy S24 Ultra est 0.6 pouce plus grand que celui du Galaxy S24 (6.2 pouces) et 0.1 pouce plus grand que celui du Galaxy S24+ (6.7 pouces).
En savoir plus sur le design
-
Oui, le Galaxy S24 Ultra intègre un S Pen dans son châssis.
En savoir plus sur le S Pen
-
La batterie de 5000mAh (valeur typique) du Galaxy S24 Ultra dispose d'une autonomie longue durée, et permet de regarder des vidéos jusqu'à 30 heures ou d'écouter de la musique jusqu'à 95 heures.,,
En savoir plus sur l'autonomie
-
D'un point de vue matériel, le Galaxy S24 Ultra est un monstre de puissance grâce à son nouveau processeur, son système de dissipation thermique ultra efficace, son écran ultra lumineux et sa batterie conséquente.Ces performances matérielles s'accompagnent d'outils de jeux avancés tels que le Ray Tracing, qui rendra les graphismes de vos jeux plus vrais que nature.
En savoir plus sur les performances
-
Le Galaxy S24 Ultra utilise l'IA au sein de nombreuses applications. Par exemple, l'appareil photo utilise le zoom par IA pour améliorer la qualité des clichés à très longue distance. L'assistant Photo utilise quant à lui l'IA pour remplir un arrière-plan ou déplacer, redimensionner ou effacer un objet. La fonction de traduction instantanée casse les barrières de la langue en vous permettant de communiquer dans d'autre langues via l'application Téléphone.
En savoir plus sur Galaxy AI
-
Oui, vous pouvez facilement transférer vos données d'un appareil iOS ou d'un autre appareil Android vers votre nouveau Galaxy grâce à Smart Switch.,,
En savoir plus sur Smart Switch
-
Le Galaxy S24 Ultra est équipé d'un processeur plus puissant, avec des performances NPU améliorées de 41%, GPU de 31% et CPU de 20% par rapport au Galaxy S23 Ultra. Sa chambre à vapeur est 92% plus grande que son prédécesseur pour une meilleure dissipation de la chaleur. Avec 2600 nits, le Galaxy S24 Ultra dispose de l'écran le plus lumineux sur un smartphone Galaxy à ce jour. De plus, grâce au Corning® Gorilla® Armor, l'écran est moins réfléchissant que celui du Galaxy S23 Ultra. Enfin, le Galaxy S24 Ultra est doté d'un appareil photo grand angle de 200 mégapixels avec moteur ProVisual et amélioration de vos photos par IA.
Découvrir les Galaxy S24 | S24+
En savoir plus
Entrez dans la nouvelle ère de l’IA Mobile
Acheter Réserver Acheter Où l'acheter
Votre Galaxy à votre image
En savoir plus
Voir à 360°
Faites le tour du propriétaire
*Les couleurs exclusives sont uniquement disponibles sur samsung.com.
Parlons affaires
Samsung pour les professionnels
DAS Galaxy S24 Ultra tête : 1,056 W/kg | DAS tronc : 1,30 W/kg | DAS membres : 2,40 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.
- 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 du produit 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.
- 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 linguistique. 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.
- 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.
- La fonctionnalité Assistant Notes nécessite une connexion réseau et une connexion au compte Samsung. Assistant Notes est limité à un certain nombre de caractères. 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.
- La fonction Retouches génératives nécessite une connexion réseau et à 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.
- Mesurée en diagonale, la taille de l'écran du Galaxy S24 Ultra est de 6,8 pouces dans le rectangle complet et de 6,8 pouces en tenant compte des coins arrondis ; la surface visible réelle est inférieure en raison des coins arrondis et de l'orifice de l'appareil photo.
- Le titane n'est présent que sur le cadre de l'appareil. Le cadre n'inclut pas les touches de volume et les touches latérales.
- Comparé au Galaxy S23 Ultra.
- La disponibilité des couleurs peut varier en fonction du pays ou du revendeur.
- Le zoom de qualité optique est assuré par le capteur Adaptive Pixel.
- Le zoom par IA est appliqué aux distances entre les longueurs de zoom numérique. L'exactitude des résultats n'est pas garantie.
- 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.
- Les distances de 3x et 5x correspondent à un zoom optique. Les distances 2x et 10x sont des zooms de qualité optique.
- Le zoom 2x doit être activé dans les paramètres de l'application Camera Assistant. L'application Camera Assistant peut être téléchargée à partir du Galaxy Store.
- Les vidéos 8K doivent être visionnées sur un appareil compatible avec la visualisation de vidéos 8k.
- Le Space Zoom 100x comprend un zoom optique 10x et un zoom numérique 100x avec la technologie Super Resolution. Les distances de zoom supérieures à 10x peuvent entraîner une détérioration de l'image.
- Certaines applications peuvent ne pas prendre en charge le Super HDR.
- La suggestion de tonalité au sein de la fonction 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.
- Arena Breakout © Proxima Beta Pte. Limited. Tous droits réservés. Toutes les autres marques, logos et droits d'auteur appartiennent à leurs propriétaires respectifs. Disponible à l'achat dans le Samsung Galaxy Store et d'autres magasins d'applications dans certains pays.
- Les produits de marque Snapdragon sont des produits de Qualcomm Technologies, Inc. et/ou de ses filiales.
- La chambre à vapeur installée sur le Galaxy S24 Ultra est 92% plus grande que celle du Galaxy S23 Ultra.
- Améliorations des performances du processeur par rapport au Galaxy S23 Ultra. Les performances réelles dépendent de l'environnement de l'utilisateur, des conditions et du système d'exploitation et des applications préinstallés.
- 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 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.
- Basé sur les conditions de test du laboratoire interne de Samsung avec une version de 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 par rapport à la consommation d'énergie de la batterie pendant la lecture vidéo (résolution du fichier vidéo 720p, sauvegardé sur l'appareil) et la lecture audio (fichier mp3, 192kbps, enregistré sur l'appareil avec l'écran LCD éteint), respectivement. Les durées réelles 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.
- L'écran Dynamic AMOLED 2X du Galaxy S24 Ultra 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.
- 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.
- 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. par 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.
- Il est recommandé d'utiliser une connexion filaire pour transférer plusieurs ensembles de données à la fois.
- Galaxy Buds2 Pro, Galaxy Watch6 Classic et Galaxy Tab S9 vendus séparément.
- 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 Samsung et les Galaxy Books, y compris les PC basés sur Qualcomm commercialisés en 2020 ou plus tard, 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.
- Galaxy Tab S9 vendue séparément.
- 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 disposer d'une connexion Internet.
- Galaxy Tab S9 et Galaxy Book3 vendus séparément.
- Knox Matrix est pris en charge sur les smartphones et tablettes Galaxy disposant de One UI 6.0 ou version ultérieure. La disponibilité peut varier selon le pays ou le continent.
- 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.
- 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.
- Tous les accessoires sont vendus séparément.
- Mesurée en diagonale, la taille de l'écran du Galaxy S24 Ultra est de 6,8 pouces dans le rectangle complet et de 6,8 pouces en tenant compte des coins arrondis, 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 et 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 de l'orifice de l'appareil photo.
- 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.
- 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é. - 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.
- 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.
- 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.lowLightPopup = document.querySelector('.highlights-low-light-popup'); els.zoomVideoPopup = document.querySelector('.highlights-quad-telephoto-popup'); els.generativeEditPopup = document.querySelector('.highlights-suggestion-ai-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'); els.noteAssistExperience = document.querySelector('#note-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 '#see-in-360': if (els.viewerPopup) els.viewerPopup.show(); break; case '#low-light-zoom': if (els.lowLightPopup) els.lowLightPopup.show(); break; case '#5x-zoom': if (els.zoomVideoPopup) els.zoomVideoPopup.show(); break; case '#generative-edit': if (els.generativeEditPopup) els.generativeEditPopup.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; case '#note-assist-experience': if (els.noteAssistExperience) { els.noteAssistExperience.show(); } break; default: let hash = location.hash.split('#')[1], hashSection = document.querySelector('#contents #' + hash), hashTimeout = null; clearTimeout(hashTimeout); hashTimeout = setTimeout(function () { let sectionTop = hashSection.getBoundingClientRect().top, navHeight = utils.getNavHeight(), hashScroll = window.pageYOffset + sectionTop - navHeight; window.scrollTo(0, hashScroll); }, 300); 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: 'single', 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') ? parseInt(els.pageScrollVideoWraps[i].getAttribute('data-start-point')) : undefined; els.pageScrollVideoWraps[i].reversePoint = !!els.pageScrollVideoWraps[i].getAttribute('data-reverse-point') ? parseInt(els.pageScrollVideoWraps[i].getAttribute('data-reverse-point')) : undefined; els.pageScrollVideoWraps[i].moStartPoint = !!els.pageScrollVideoWraps[i].getAttribute('data-mo-start-point') ? parseInt(els.pageScrollVideoWraps[i].getAttribute('data-mo-start-point')) : undefined; els.pageScrollVideoWraps[i].moReversePoint = !!els.pageScrollVideoWraps[i].getAttribute('data-mo-reverse-point') ? parseInt(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.camera = (function () { let els = {}; let objs = {}; const init = function () { els.section = document.querySelector('.highlights-camera'); if (!!els.section) { bindEvents(); } }; const bindEvents = function () { setScene(); window.addEventListener('scroll', scrollHandler); }; const setScene = function(){ TweenMax.set(els.section, {y: 150}); objs.scene = SCROLLER({ trackElement: els.section, useFixed: false }); }; const scrollHandler = function(){ objs.scene.trackAnimation(function(){ let activeValue = ANIUTIL.calRange({ targetValue: 1, progress: this.progress, startPoint: 0, endPoint: 40 }); let moveValue = ANIUTIL.calRange({ targetValue: 150, progress: this.progress, startPoint: 0, endPoint: 40 }); TweenMax.to(els.section, 0, {y: 150 - moveValue}); els.section.style.opacity = activeValue; }); } 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-ai'); if (!!els.section) { setElements(); bindEvents(); } }; const setElements = function () { els.gradient = els.section.querySelector('.highlights-ai__gradient'); els.text = els.section.querySelector('.common-headline span'); els.intelligence = els.section.querySelector('.highlights-ai__intelligence video'); }; const bindEvents = function () { setScene(); window.addEventListener('scroll', scrollHandler); scrollHandler(); }; const setScene = function () { TweenMax.set(els.section, {y: 100}); objs.scene = SCROLLER({ trackElement: els.section, useFixed: false }); }; const scrollHandler = function () { objs.scene.trackAnimation(function () { let activeValue = ANIUTIL.calRange({ targetValue: 70, progress: this.progress, startPoint: 10, endPoint: 30 }); TweenMax.to(els.section, 0, {y: 100 - activeValue}); let _active = function () { if (els.intelligence.readyState < 4) { els.intelligence.addEventListener('canplay', function () { if (!els.section.classList.contains('is-active') && els.intelligence.paused) { els.intelligence.currentTime = 0; els.intelligence.play(); } }); } else { if (!els.section.classList.contains('is-active') && els.intelligence.paused) { els.intelligence.currentTime = 0; els.intelligence.play(); } } if (!els.section.classList.contains('is-active')) { setTimeout(() => { els.section.classList.add('is-active'); }, 700); } }; if (this.wheelDirection == 'down' && this.progress > 40 && this.progress < 70) { _active(); } else if (this.wheelDirection == 'up' && this.progress > 50 && this.progress < 70) { _active(); } if(this.progress == 0 || this.progress == 100) { els.section.classList.remove('is-active'); els.intelligence.pause(); els.intelligence.currentTime = 0; } }); } 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();}, 200);},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-ultra:highlights:design^colors:index:', 'ga-ca': 'gallery', 'ga-ac': 'feature gallery', 'ga-la': 'galaxy-s24-ultra: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.display = (function () { const utils = window.flagship.common.utils; const resize = window.flagship.common.resize; let els = {}; let objs = {}; let status = {}; let currDevice = resize.checkResolution(); let prevDevice = null; const init = function () { els.section = document.querySelector('.highlights-display'); if (!!els.section) { setElements(); setStatus(); bindEvents(); } }; const setElements = function () { els.resizeTimeout = null; els.displayBarWrap = els.section.querySelector('.highlights-display__bar'); els.displayBar = els.displayBarWrap.querySelector('.bar'); els.displayImage = els.section.querySelector('.highlights-display__image'); els.displayCoverImage = els.section.querySelector('.highlights-display__cover'); els.isGrab = false; els.isAction = false; els.displayCoverLeftWrap = els.section.querySelector('.highlights-display__tap-left'); els.displayCoverLeftBtn = els.section.querySelector('.highlights-display__tap-left button'); els.displayCoverRightBtn = els.section.querySelector('.highlights-display__tap-right button'); els.controller = els.section.querySelector('.highlights-display__bar-controller'); els.imgWrap = els.section.querySelector('.highlights-display__image-inner'); els.tabWrap = els.section.querySelector('.highlights-display__tap-wrap'); maxPercent = currDevice.indexOf('mobile') > -1 ? 0.675 : 0.75; minPercent = currDevice.indexOf('mobile') > -1 ? 0.325 : 0.25; }; const setStatus = function () { status.isTabMove = false; }; const bindEvents = function () { window.addEventListener('DOMContentLoaded', onLoadHandler, {once: true}); window.addEventListener('scroll', onScrollHandler); els.section.addEventListener('keydown', grabEventHandler.onMoveEvent); els.section.addEventListener('click', grabEventHandler.onMoveEvent); els.section.addEventListener('mousedown', grabEventHandler.onStart); els.section.addEventListener('mousemove', grabEventHandler.onMove); els.section.addEventListener('mouseup', grabEventHandler.onEnd); els.section.addEventListener('mouseleave', grabEventHandler.onEnd); els.section.addEventListener('touchstart', grabEventHandler.onStart); els.section.addEventListener('touchmove', grabEventHandler.onMove); els.section.addEventListener('touchend', grabEventHandler.onEnd); els.section.addEventListener('touchcancel', grabEventHandler.onEnd); resize.add(onResizeHandler); }; const setAnimations = function () { let minValue = currDevice.indexOf('mobile') > -1 ? 32.5 : 25; let maxValue = currDevice.indexOf('mobile') > -1 ? 67.5 : 75; TweenMax.set(els.displayBar, {left: `${minValue}%`, ease: Power2.easeOut}); TweenMax.set(els.displayCoverImage, {width: `${minValue}%`, ease: Power2.easeOut}); objs.barAnim = new TimelineLite(); objs.barAnim .to(els.displayBar, 1, { left: `${maxValue}%`, ease: Power2.easeOut }) .to(els.displayBar, 1, { left: 50 + '%', ease: Power2.easeOut }); objs.imgAnim = new TimelineLite(); objs.imgAnim .to(els.displayCoverImage, 1, { width: `${maxValue}%`, ease: Power2.easeOut }) .to(els.displayCoverImage, 1, { width: 50 + '%', ease: Power2.easeOut }); TweenMax.set(els.displayCoverLeftWrap, {width: `${minValue}%`, ease: Power2.easeOut}); objs.imgAnim = new TimelineLite(); objs.imgAnim .to(els.displayCoverLeftWrap, 1, { width: `${maxValue}%`, ease: Power2.easeOut }) .to(els.displayCoverLeftWrap, 1, { width: 50 + '%', ease: Power2.easeOut }); }; const onLoadHandler = function () { onScrollHandler(); }; const onResizeHandler = function (currRes) { currDevice = currRes; clearTimeout(els.resizeTimeout); els.resizeTimeout = setTimeout(function () { onScrollHandler(); }, 150); if (currDevice != prevDevice) { onResponsiveHandler(); prevDevice = currDevice; } }; const onResponsiveHandler = function () { maxPercent = currDevice.indexOf('mobile') > -1 ? 0.675 : 0.75; minPercent = currDevice.indexOf('mobile') > -1 ? 0.325 : 0.25; TweenMax.set(els.displayBar, {left: 50 + '%'}); TweenMax.set(els.displayCoverImage, {width: 50 + '%'}); TweenMax.set(els.displayCoverLeftWrap, {width: 50 + '%'}); }; const onScrollHandler = function () { let winOffsetTop = window.pageYOffset + utils.getNavHeight(); let winOffsetBottom = window.pageYOffset + window.innerHeight; let targetRect = els.displayImage.getBoundingClientRect(); let targetOffsetTop = window.pageYOffset + targetRect.top; let targetOffsetBottom = window.pageYOffset + targetRect.bottom; if ((winOffsetBottom - (window.innerHeight * 0.25) > targetOffsetTop && winOffsetTop + (window.innerHeight * 0.25) < targetOffsetBottom) && !els.isAction) { setAnimations(); els.isAction = true; } }; const grabEventHandler = { onStart: function (e) { e.target.matches('.highlights-display__bar-controller') && (els.isGrab = true); }, onEnd: function () { els.isGrab = false; }, onMove: function (e) { if (els.isGrab) { e && e.preventDefault(); let wrapRect = els.displayBarWrap.getBoundingClientRect(); let wrapMaxWidth = wrapRect.width * maxPercent; let wrapMinWidth = wrapRect.width * minPercent; let xPosition = !e.touches ? e.pageX : e.touches[0].pageX; let barPosition = xPosition - wrapRect.left; if (barPosition > wrapMaxWidth) barPosition = wrapMaxWidth; else if (barPosition < wrapMinWidth) barPosition = wrapMinWidth; let barPercent = ((barPosition / wrapRect.width) * 100); els.displayBar.style.left = barPercent + '%'; els.displayCoverImage.style.width = barPercent + '%'; grabEventHandler.setArrowSize(barPercent); } }, onMoveEvent: function (e) { let wrapRect = els.displayBarWrap.getBoundingClientRect(); let wrapMaxWidth = wrapRect.width * maxPercent; let wrapMinWidth = wrapRect.width * minPercent; let barRect = els.displayBar.getBoundingClientRect(); let barPosition = barRect.left - wrapRect.left; let moveValue = Math.ceil(wrapMaxWidth / ((currDevice.indexOf('desktop') > -1) ? 8 : 5.5)); let isMove = e.target.classList.contains('highlights-display__tap-button') || e.target.classList.contains('highlights-display__bar-controller'); if (isMove) { status.isTabMove = true; if (e.type == 'click' && e.target.classList.contains('highlights-display__tap-button')) { let leftBtn = 'highlights-display__tap-left'; let rightBtn = 'highlights-display__tap-right'; if (e.target.parentElement.classList.contains(leftBtn)) { barPosition -= moveValue; } else if (e.target.parentElement.classList.contains(rightBtn)) { barPosition += moveValue; } } if (e.target.classList.contains('highlights-display__bar-controller') && (e.keyCode == 39 || e.keyCode == 37)) { e && e.preventDefault(); if (e.keyCode == 39) barPosition += moveValue; else if (e.keyCode == 37) barPosition -= moveValue; } if (barPosition < wrapMinWidth) barPosition = wrapMinWidth; else if (barPosition > wrapMaxWidth) barPosition = wrapMaxWidth; let barPercent = ((barPosition / wrapRect.width) * 100); TweenMax.to(els.displayBar, 0.3, { left: barPercent + '%', ease: Power2.easeOut }); TweenMax.to(els.displayCoverImage, 0.3, { width: barPercent + '%', ease: Power2.easeOut }); grabEventHandler.setArrowSize(barPercent); } }, setArrowSize: function (barPercent) { let imgWidth = els.imgWrap.getBoundingClientRect().width; let tabWidth = els.tabWrap.getBoundingClientRect().width; let imgValue = imgWidth * (barPercent * (1 / 100)); let tabValue = (imgWidth - tabWidth) / 2; let moveTabBtnValue = Math.floor(imgValue - tabValue); if (status.isTabMove) { TweenMax.to(els.displayCoverLeftWrap, 0.3, { width: moveTabBtnValue + 'px', ease: Power2.easeOut }); status.isTabMove = false; } else { els.displayCoverLeftWrap.style.width = moveTabBtnValue + 'px'; } } }; 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', 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, }, 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(); } } }; 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; } }, 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 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.gaming = (function () { const utils = window.flagship.common.utils; const resize = window.flagship.common.resize; let els = {}; let objs = {}; let currDevice = resize.checkResolution(); let prevDevice = null; let maxPercent = 0.975; let minPercent = 0.018; const init = function () { els.section = document.querySelector('.highlights-gaming'); isRemaster = els.section.querySelector('.js-remaster'); if (!!els.section && !!isRemaster) { setElements(); bindEvents(); } }; const setElements = function () { els.resizeTimeout = null; els.gamingBarWrap = els.section.querySelector('.highlights-gaming__bar'); els.gamingBar = els.gamingBarWrap.querySelector('.bar'); els.gamingImage = els.section.querySelector('.highlights-gaming__image'); els.gamingCoverImage = els.section.querySelector('.highlights-gaming__cover'); els.isGrab = false; els.isAction = false; els.gamingCoverLeftWrap = els.section.querySelector('.highlights-gaming__tap-left'); els.gamingCoverLeftBtn = els.section.querySelector('.highlights-gaming__tap-left button'); els.gamingCoverRightBtn = els.section.querySelector('.highlights-gaming__tap-right button'); els.controller = els.section.querySelector('button.highlights-gaming__bar-controller'); }; const bindEvents = function () { window.addEventListener('DOMContentLoaded', onLoadHandler, {once:true}); window.addEventListener('scroll', onScrollHandler); els.section.addEventListener('keydown', grabEventHandler.onMoveEvent); els.section.addEventListener('click', grabEventHandler.onMoveEvent); els.section.addEventListener('mousedown', grabEventHandler.onStart); els.section.addEventListener('mousemove', grabEventHandler.onMove); els.section.addEventListener('mouseup', grabEventHandler.onEnd); els.section.addEventListener('mouseleave', grabEventHandler.onEnd); els.section.addEventListener('touchstart', grabEventHandler.onStart); els.section.addEventListener('touchmove', grabEventHandler.onMove); els.section.addEventListener('touchend', grabEventHandler.onEnd); els.section.addEventListener('touchcancel', grabEventHandler.onEnd); resize.add(onResizeHandler); }; const setAnimations = function () { let minValue = 1.8; let maxValue = 97.5; TweenMax.set(els.gamingBar, {left: `${minValue}%`, ease: Power2.easeOut}); TweenMax.set(els.gamingCoverImage, {width: `${minValue}%`, ease: Power2.easeOut}); objs.barAnim = new TimelineLite(); objs.barAnim .to(els.gamingBar, 1, { left: `${maxValue}%`, ease: Power2.easeOut }) .to(els.gamingBar, 1, { left: 50 + '%', ease: Power2.easeOut }); objs.imgAnim = new TimelineLite(); objs.imgAnim .to(els.gamingCoverImage, 1, { width: `${maxValue}%`, ease: Power2.easeOut }) .to(els.gamingCoverImage, 1, { width: 50 + '%', ease: Power2.easeOut }); TweenMax.set(els.gamingCoverLeftWrap, {width: `${minValue}%`, ease: Power2.easeOut}); objs.imgAnim = new TimelineLite(); objs.imgAnim .to(els.gamingCoverLeftWrap, 1, { width: `${maxValue}%`, ease: Power2.easeOut }) .to(els.gamingCoverLeftWrap, 1, { width: 50 + '%', ease: Power2.easeOut }); }; const onLoadHandler = function () { onScrollHandler(); }; const onResizeHandler = function (currRes) { currDevice = currRes; clearTimeout(els.resizeTimeout); els.resizeTimeout = setTimeout(function () { onScrollHandler(); }, 150); if (currDevice != prevDevice) { prevDevice = currDevice; } }; const onScrollHandler = function () { let winOffsetTop = window.pageYOffset + utils.getNavHeight(); let winOffsetBottom = window.pageYOffset + window.innerHeight; let targetRect = els.gamingImage.getBoundingClientRect(); let targetOffsetTop = window.pageYOffset + targetRect.top; let targetOffsetBottom = window.pageYOffset + targetRect.bottom; if ((winOffsetBottom - (window.innerHeight * 0.25) > targetOffsetTop && winOffsetTop + (window.innerHeight * 0.25) < targetOffsetBottom) && !els.isAction) { setAnimations(); els.isAction = true; } }; const grabEventHandler = { onStart: function (e) { e.target.matches('.highlights-gaming__bar-controller') && (els.isGrab = true); }, onEnd: function () { els.isGrab = false; }, onMove: function (e) { if (els.isGrab) { e && e.preventDefault(); let wrapRect = els.gamingBarWrap.getBoundingClientRect(); let wrapMaxWidth = wrapRect.width * maxPercent; let wrapMinWidth = wrapRect.width * minPercent; let xPosition = !e.touches ? e.pageX : e.touches[0].pageX; let barPosition = xPosition - wrapRect.left; if (barPosition > wrapMaxWidth) barPosition = wrapMaxWidth; else if (barPosition < wrapMinWidth) barPosition = wrapMinWidth; let barPercent = ((barPosition / wrapRect.width) * 100); els.gamingBar.style.left = barPercent + '%'; els.gamingCoverImage.style.width = barPercent + '%'; els.gamingCoverLeftWrap.style.width = barPercent + '%'; } }, onMoveEvent: function (e) { let wrapRect = els.gamingBarWrap.getBoundingClientRect(); let wrapMaxWidth = wrapRect.width * maxPercent; let wrapMinWidth = wrapRect.width * minPercent; let barRect = els.gamingBar.getBoundingClientRect(); let barPosition = barRect.left - wrapRect.left; let moveValue = Math.ceil(wrapMaxWidth / ((currDevice.indexOf('desktop') > -1) ? 8 : 4)); let isMove = e.target.classList.contains('highlights-gaming__tap-button') || e.target.classList.contains('highlights-gaming__bar-controller'); if (isMove) { if (e.type == 'click' && e.target.classList.contains('highlights-gaming__tap-button')) { let leftBtn = 'highlights-gaming__tap-left'; let rightBtn = 'highlights-gaming__tap-right'; if (e.target.parentElement.classList.contains(leftBtn)) { barPosition -= moveValue; } else if (e.target.parentElement.classList.contains(rightBtn)) { barPosition += moveValue; } } if (e.target.classList.contains('highlights-gaming__bar-controller') && (e.keyCode == 39 || e.keyCode == 37)) { e && e.preventDefault(); if (e.keyCode == 39) barPosition += moveValue; else if (e.keyCode == 37) barPosition -= moveValue; } if (barPosition < wrapMinWidth) barPosition = wrapMinWidth; else if (barPosition > wrapMaxWidth) barPosition = wrapMaxWidth; let barPercent = ((barPosition / wrapRect.width) * 100); TweenMax.to(els.gamingBar, 0.3, { left: barPercent + '%', ease: Power2.easeOut }); TweenMax.to(els.gamingCoverImage, 0.3, { width: barPercent + '%', ease: Power2.easeOut }); TweenMax.to(els.gamingCoverLeftWrap, 0.3, { width: barPercent + '%', ease: Power2.easeOut }); } } }; 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.lowLightPopup = (function () {const utils = window.flagship.common.utils;const common = window.flagship.highlights.common;let els = {};let objs = {};let status = {};const setPopupLazyLoader = {image: function () {objs.imageLoader = ANIUTIL.mediaLoader({lazyClass: '.js-low-light-popup-img-src',responsiveClass: '.js-low-light-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-low-light-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-low-light-popup-video-src',responsiveClass: '.js-low-light-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 init = function () {els.section = document.querySelector('.highlights-low-light');els.layerPopup = document.querySelector('.highlights-low-light-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 = 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.videoWrap = els.layerPopup.querySelector('.common-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-low-light-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.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 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.lowLight = (function () { let els = {}; let objs = {}; let status = {}; const utils = window.flagship.common.utils; const init = function () { els.section = document.querySelector('.highlights-low-light'); if (!!els.section) { setElements(); bindEvents(); } }; const setElements = function () { els.swiperContainer = els.section.querySelector('.highlights-low-light__carousel'); els.prevArrow = els.section.querySelector('.swiper-button-prev'); els.nextArrow = els.section.querySelector('.swiper-button-next'); els.pagination = els.section.querySelector('.highlights-low-light__carousel-pagination'); }; const bindEvents = function () { setSwiper(); 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 setSwiper = function () { if (objs.swiper == null) { objs.swiper = new Swiper(els.swiperContainer, { init: false, slidesPerView: 'auto', speed: 800, navigation: { prevEl: els.prevArrow, nextEl: els.nextArrow, }, pagination: { el: els.pagination, type: 'bullets', clickable: true, renderBullet: function () { return '
'; } } }); }; 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'); els.bullets = this.pagination.bullets; if (!!notification) this.el.removeChild(notification); accessibility.slide(); accessibility.pagination.tagging(); accessibility.pagination.label(); els.nextArrow.removeAttribute('aria-label'); els.prevArrow.removeAttribute('aria-label'); 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); }); } }, 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-ultra:highlights:camera^zoom:index:', 'ga-ca': 'gallery', 'ga-ac': 'feature gallery', 'ga-la': 'galaxy-s24-ultra:highlights:camera^zoom: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.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