Ce site utilise des cookies. En cliquant ACCEPTER ou en continuant à naviguer le site, vous acceptez notre utilisation des cookies.
En savoir plus ici.
Samsung Neo QLED pousse l'excellence encore plus loin avec une qualité d'image et de son inégalée
Entering into the high-tech headquarters of Samsung NQ8 AI Gen3 Processor. A female agent with other identical agents shown with the identification information on a massive screen. Screen images simulated. Actual UX/UI may differ from images. Sequence shortened. They are interrupted by an On Air siren that alerts them. In real life, a woman starts watches a Sports Live tennis match on TV. Screen images simulated. To optimize AI Picture, the agents work together to sharpen grainy details and upscale the imagery of the player’s face, then smooth the blurry movement of a tennis ball. Screen images simulated for illustrative purposes. Viewing experience may vary according to types of content and format. Upscaling may not apply to PC connection and Game Mode. Next, the agents work to optimize AI Sound as the woman watches a detective movie. An agent puts on headphones and balances background and dialogue sound on a machine, so dialogue can be heard clearly. In the detective movie On Air, the man can be heard clearly as he confronts a suspect with an Evidence bag on air. Ambient sound goes down and Dialogue goes up. Screen images simulated for illustrative purposes. Next, the agents work for AI Optimization for game settings as the woman plays PUBG Battlegrounds. Screen images simulated. Graphics and sound are optimized for extra immersion. Screen image simulated for illustrative purposes. AI Energy Mode does not work with Game Mode. Finally, the agents work together for energy optimization, with an agent checking various energy stats on screen. 3D Map View on SmartThings is also shown. Energy saving rate may vary according to regions, models, sizes, viewing conditions or types of content. Products shipped in Eco Mode have some AI Energy Mode functions enabled by default, so energy savings level by turning on AI Energy Mode may appear lower than actual. AI Energy Mode does not work with Game Mode. Energy savings are based on internal test results and may
vary depending on content being displayed and surrounding brightness levels. Screen images simulated. All the agents gather together for a group shot at the end. Upscale every moment with more WOW. A new era of Samsung AI TV. Neo QLED 8K.
Neo QLED Review & Awards
QN900D
"If you’re after an 8K TV, you’ll struggle to find one capable of delivering the same levels of performance as the Samsung QN900D."
"This AI-enhanced powerhouse draws out an incredible level of detail regardless of the native resolution and flawlessly upscales anything below 8K to deliver finely rendered images free of any banding or compression artefacts"
QN900D
"Its picture quality improves considerably in just about every way on its predecessor, crucially leaving clear blue brightness water between it and 2024’s top OLED TVs, and rewriting the upscaling rule book to remind us in no uncertain terms that 8K TVs don’t have to be fed 8K content to make a difference."
QN900D
"Its picture quality is groundbreakingly good."
"The amount of detail the upscaler is able to add to already detailed parts of 4K pictures is astonishing; 4K really becomes 8K before your very eyes." "Don’t believe the 8K naysayers –Samsung’s new 75-inch flagship 8K TV proves there’s all sorts of life left in the 8K TV world yet."
QN800D
"Samsung’s AI-powered upscaling converts 1080P and 4K content into a better version for the QN800D."
"The gaming performance is great with the benefit of upscaling, high refresh rates and an AI-powered game mode."
QN95D
"The Samsung QN95D adds upgraded AI-powered picture and sound processing to take its already impressive performance to another level"
"The new processor helps deliver exceptional AI picture, sound and optimisation features, the upscaling and image processing are excellent and add value, as does the equally impressive AI-enhanced motion handling."
TV AI
Processeur avec IA
AI Processor
Elevez votre expérience vers de nouveaux sommets grâce à la puissance de Neo QLED. Le nouveau processeur de pointe de Samsung, alimenté par IA, utilise ses réseaux neuronaux pour apprendre scène par scène, optimisant ainsi l'image et le son pour une expérience visuelle incroyablement immersive.1
Le processeur Samsung NQ8 AI Gen3 optimise deux des nombreuses images de contenu en arrière-plan. Toutes les images sont organisées en deux rangées et optimisées lorsqu'elles entrent dans le cœur du processeur. Le processeur est incliné sur le côté.
* Le processeur NQ8 AI Gen3 n'est disponible qu'avec le modèle 2024 Neo QLED 8K QN900D.
Nouveau processeur NQ8 AI Gen3 Processor
Notre processeur 8K avec IA le plus performant
Découvrez le nouveau processeur Samsung le plus puissant avec IA à ce jour.
* Le processeur NQ8 AI Gen3 n'est disponible qu'avec le modèle 2024 Neo QLED 8K QN900D.
Processeur NQ8 Al Gen3 Processor (Neo QLED 8K QN900D)
NPU jusqu'à2xplus rapide
Jusqu'à8 foisplus de
réseaux neuronaux
GPU jusqu'à1.4xplus rapide
CPU jusqu'à15%plus rapide
* Le processeur NQ8 AI Gen3 n'est disponible qu'avec le modèle 2024 Neo QLED 8K QN900D.
* Toutes les spécifications sont comparées au processeur du téléviseur Neo QLED 8K de 2023.
La nouvelle technologie de mise à l'échelle AI Upscaling*, alimentée par les réseaux neuronaux améliore chaque contenu jusqu'à une résolution 8K. Cette génération de processeur est la plus avancée et permet d'obtenir la qualité d'image la plus nette et la plus fluide de tous les téléviseurs Samsung.
* Upscaling = Mise à l’échelle
* Le processeur NQ8 AI Gen3 n'est disponible qu'avec le modèle 2024 Neo QLED 8K QN900D.
Le processeur NQ8 AI Gen3 exploite l'IA pour affiner et fluidifier le mouvement des objets et du texte. Profitez d'une expérience des contenus sportifs à autre niveau.
* AI Motion Enhancer Pro est uniquement disponible avec le 2024 Neo QLED 8K QN900D.
* Le processeur NQ8 AI Gen3 est uniquement disponible avec le 2024 Neo QLED 8K QN900D.
L'amplificateur de profondeur permet d'augmenter les contrastes en détectant les zones où vos yeux se focalisent. Il optimise la gestion des mini-LED pour obtenir des images réalistes type 3D
* Real Depth Enhancer Pro est disponible avec 2024 Neo QLED QN900D/QN800D/QN95D/QN90D.
* Le processeur NQ8 AI Gen3 n'est disponible qu'avec le 2024 Neo QLED 8K QN900D.
La technologie AVA Pro avec IA identifie en temps réel les bruits ambiants potentiellement gênants pour le téléspectateur. L'IA augmente et isole automatiquement le volume des dialogues en fonction des bruits de fonds pour plus de clarté.
* Le processeur NQ8 AI Gen3 n'est disponible qu'avec le modèle 2024 Neo QLED 8K QN900D.
Plongez au cœur de l'action grâce à la technologie Object Tracking Sound. Vivez une nouvelle expérience sonore grâce à un son dynamique qui suit l'action, alimenté par l'IA et qui provient de tous les coins du téléviseur.
* Le processeur NQ8 AI Gen3 n'est disponible qu'avec le modèle 2024 Neo QLED 8K QN900D.
La technologie Adaptive Sound Pro optimise le son en tenant compte de votre espace et du contenu audio. Bénéficiez d'une meilleure clarté et d'un son à la fois vif et équilibré, grâce au traitement audio avec IA.
* Le processeur NQ8 AI Gen3 n'est disponible qu'avec le modèle 2024 Neo QLED 8K QN900D.
Laisser votre téléviseur détecter et s'adatper automatiquement au type de jeu auquel vous jouez pour vous proposer des paramètres optimales. Libérez-vous des tracas liés à la configuration des jeux et jouez.
* Le processeur NQ8 AI Gen3 n'est disponible qu'avec le modèle 2024 Neo QLED 8K QN900D.
Avec l'application SmartThings™ de votre smartphone et grâce au mode éco avec IA de votre TV, vous pouvez à présent piloter votre consommation d'énergie. L'intelligence artificelle ajuste automatiquement la luminosité du téléviseur en fonction de votre environnement afin de controler sa consommation.
* Le processeur NQ8 AI Gen3 n'est disponible qu'avec le modèle 2024 Neo QLED 8K QN900D.
Qualité d'Image
Percevez chaque détai
AI Upscaling
La nouvelle technologie de mise à l'échelle AI Upscaling, alimentée par les réseaux neuronaux améliore chaque contenu jusqu'à une résolution 8K. Cette génération de processeur est la plus avancée et permet d'obtenir la qualité d'image la plus nette et la plus fluide de tous les téléviseurs Samsung.1
La technologie AI Upscalling avec le processeur NQ8 AI Gen3 de Samsung optimise les détails d'un côté d'une scène. Au fur et à mesure que le côté moins clair disparaît, l'ensemble de la scène est mis à l'échelle pour plus de clarté.
Son
Un son comme au cinéma
Dolby Atmos® & Object Tracking Sound
Plongez dans le son de manière inédite grâce à la technologie Dolby Atmos®, révélant chaque détail avec clarté et profondeur. Des haut-parleurs autour de l'écran pour une meilleure immersion sonore : avec le système OTS (Object Tracking Sound), le son suit le mouvement d'un objet à l'écran pour une expérience sonore plus réaliste et comme au cinéma.9
Des ondes sonores suivent une voiture de course sur l'écran d'une salle de cinéma. Le même écran est montré dans le salon d'un homme alors que des ondes sonores dynamiques dépeignent le son immersif de Dolby Atmos et OTS sur le nouveau téléviseur 24 Neo QLED.
Profitez de votre contenu sans nuisance sonore grâce à l'IA
Active Voice Amplifier Pro
La technologie AVA Pro avec IA identifie en temps réel les bruits ambiants potentiellement gênants pour le téléspectateur. L'IA augmente et isole automatiquement le volume des dialogues en fonction des bruits de fonds pour plus de clarté.
4
Lorsque l'AVA Pro est désactivé, le dialogue d'un homme à l'écran émet des ondes sonores plus petites que le bruit de fond de la scène et le bruit d'un aspirateur dans la pièce. Lorsqu'il est activé, les ondes sonores du dialogue de l'homme sont plus importantes et se projettent plus loin de l'écran. Le logo du processeur Samsung NQ8 AI Gen3 se trouve en bas à droite de l'écran.
En parfaite harmonie
Q-Symphony
La technologie Q-symphony synchronise tous les haut-parleurs du téléviseur avec les barre de son Q-Series. Ils fonctionnent simultanément pour un meilleur effet de son surround.10
Lorsque la Q-Symphony de Samsung est désactivée, les ondes sonores émanent uniquement de la barre de son. Lorsqu'elle est activée, des ondes sonores plus dynamiques provenant du téléviseur Neo QLED entrent en synergie avec la barre de son pour créer une expérience audio plus immersive.
Smart TV
Améliorez votre diverstissement grâce à Tizen
Smart TV Tizen
Tirez le meilleur parti de votre téléviseur avec les derniers services et applications sur l'OS Tizen. Profitez de chaînes de télévision gratuites en direct et de milliers de films avec Samsung TV Plus, et de jeux en streaming au sein du Gaming Hub. Vous pouvez même gérer vos activités quotidiennes avec Daily+ et contrôler vos appareils intelligents depuis votre téléviseur avec SmartThings - tout cela en préservant votre vie privée grâce à Knox Security.11
Une femme allongée sur un canapé regarde une Smart TV Samsung avec Tizen OS. Samsung Tizen OS sur l'écran propose divers contenus et des chaînes de télévision gratuites en direct avec Samsung TV Plus.
Connectez vos appareils à votre téléviseur
Hub SmartThings™ intégré
Grâce au Hub SmartThings™ intégré à votre téléviseur, vous pouvez connecter et contrôler en toute transparence des appareils compatibles avec les normes Matter et HCA, sans avoir besoin d'un appareil supplémentaire.13
Le téléviseur Samsung Neo QLED présente l'icône SmartThings avec des ondes indiquant la connectivité. Il rend la maison plus intelligente en connectant les appareils domestiques environnants tels que l'aspirateur robot, les lumières, le purificateur d'air, le four intelligent, le lave-linge, le sèche-linge et le réfrigérateur pour un contrôle pratique via Samsung SmartThings. Compatible avec Matter.
Protégez votre vie privée avec Samsung Knox
Sécurisé par Samsung Knox
Verrouillez en temps réel vos données, vos codes PIN ou mots de passe grâçe à notre solution de sécurité à plusieurs niveaux. Bénéficiez de mises à jour régulières qui renforcent votre téléviseur, le protégeant ainsi des potentielles attaques.
14
Simulé à des fins de démonstration. Le personnage animé G-nusmas sélectionne son profil sur Samsung TV et saisit son code PIN. Vos mots de passe et vos données ? Pas de souci ! Ils sont protégés par une sécurité multicouche. Limité à certains codes PIN ou mots de passe. Le téléviseur avec le logo Knox Security est connecté à des appareils tels que le réfrigérateur, l'aspirateur robot, le four, le climatiseur et la machine à laver. Prend en charge la protection et le cryptage des données uniquement lorsque les appareils sont connectés à Samsung TV via SmartThings. Le bloqueur de sites d'hameçonnage protège vos informations de connexion. Samsung Knox Security est actif tout au long de la journée et régulièrement mis à jour. La mise à jour du logiciel de sécurité est garantie pendant au moins trois ans à compter du lancement du produit. La dernière mise à jour du logiciel est nécessaire. Les téléviseurs Samsung sont protégés par Samsung Knox.
Design
Une expérience sans limite
Ecran Infinity sans bord
Le profil latéral fin de l'écran du téléviseur Samsung Neo QLED 2024 est montré pour mettre en valeur le design Infinity Air. Il tourne sur lui-même, révélant une scène de nature sur l'écran et son support aérien unique.
Nouveau boitier déporté Slim One Connect
Le boîtier mince One Connect Box se fixe à l'arrière du téléviseur sur le socle, montrant ses connexions, dont 4 ports HDMI, l'un d'entre eux étant étiqueté eARC.
Ecran Infinity sans bord
Haut-parleurs ultra-performants
QLED Design
* La description du Design est basée sur le QN900D.
Comparer les téléviseurs Neo QLED
Lineup
Technologie
Taille d'écran
Contrast
La technologie Quantum Matrix est une technologie exclusive de Samsung qui utilise des Quantum mini LED pour créer de superbes détails dans les scènes les plus sombres et les plus lumineuses.
HDR
HDR : signifie High Dynamic Range et fait référence à une technologie qui exprime avec plus de précision les détails visuels dans les scènes très lumineuses et très sombres.
Processeur
Upscaling
La technologie unique d'IA Upscaling de Samsung, avec plusieurs réseaux neuronaux différents, apprend automatiquement scène par scène pour optimiser et améliorer votre contenu.
Fluiditié Gaming
Gaming Motion est une technologie qui offre des mouvements fluides et une qualité d'image nette sans saccade, même dans les scènes les plus rapides.
Dolby Atmos®
Dolby Atmos va au-delà de l'expérience d'écoute ordinaire et vous plonge dans le son d'une nouvelle manière spatiale. En combinaison avec des haut-parleurs orientés vers le haut, vous pouvez profiter pleinement du son immersif et cinématographique de Dolby Atmos.
Object Tracking Sound
OTS signifie « Object Tracking Sound » : la technologie audio haute performance exclusive de Samsung permet aux utilisateurs d'entendre le son directement depuis l'emplacement relatif de son objet sur l'écran, même si l'objet est en mouvement.
Design
Smart TV (Samsung Tizen OS)
Samsung Tizen OS fournit les dernières applications et services, notamment Samsung TV Plus, Gaming Hub et SmartThings.
* Available features and specifications for Neo QLED series may vary by TV size and region.19
Votre TV Neo QLED en quelques étapes
Découvrez votre téléviseur idéal en quelques étapes
* Télévision n°1 mondiale : Source –Omdia, février 2024. Les résultats ne constituent pas une approbation de Samsung. Toute confiance accordée à ces résultats se fait aux propres risques du tiers.
* Les images sont simulées et à des fins d'illustration uniquement. Les spécifications d'apparence et de conception qui n'affectent pas les performances du produit sont sujettes à modification sans préavis. L'interface utilisateur est susceptible d'être modifiée sans préavis.
Processeur IA et mise à l'échelle de l'IA : l'expérience de visionnage peut varier en fonction des types de contenu et du format. La mise à l'échelle peut ne pas s'appliquer à la connexion PC et au mode Jeu.
AI Motion Enhancer Pro : l'expérience de visionnage peut varier selon les types de contenu et le format. AI Motion Enhancer Pro ne s'applique pas à la connexion PC et au mode Jeu.
Real Depth Enhancer Pro : l'expérience de visionnage peut varier selon les types de contenu et le format.
Active Voice Amplifier Pro : L'activation dans le menu TV est requise pour activer Active Voice Amplifier Pro.
Son de suivi d'objet : la disponibilité des haut-parleurs du canal supérieur peut varier selon le modèle, alors reportez-vous à la page détaillée du produit pour plus d'informations.
Adaptive Sound Pro : Cette fonctionnalité peut être activée dans le menu TV > Mode intelligent > Adaptive Sound Pro. Le paramètre par défaut d’Adaptive Sound Pro est Désactivé.
Mode de jeu automatique AI : le mode de jeu automatique AI est disponible pour certains jeux sur console uniquement. La disponibilité peut varier en fonction du contenu et du format du jeu. L'interface utilisateur est susceptible d'être modifiée sans préavis.
Mode énergie AI : le taux d'économie d'énergie peut varier selon les régions, les modèles, les tailles, les conditions de visualisation ou les types de contenu. Les produits expédiés en mode Eco ont certaines fonctions du mode AI Energy activées par défaut, de sorte que les niveaux d'économie d'énergie en activant le mode AI Energy peuvent sembler inférieurs à ceux du mode Standard. Le mode AI Energy ne fonctionne pas avec le mode Jeu. Les économies d'énergie sont basées sur les résultats de tests internes et peuvent varier en fonction du contenu affiché et des niveaux de luminosité environnants.
Dolby Atmos® et son de suivi d'objet : la disponibilité des haut-parleurs du canal supérieur peut varier selon le modèle, alors reportez-vous à la page détaillée du produit pour plus d'informations.
Q-Symphony : vérifiez la compatibilité Q-Symphony dans les spécifications du produit de la barre de son. Barre de son vendue séparément.
Samsung Tizen OS : le contenu et les services peuvent varier selon les régions et sont sujets à changement sans préavis. L'accord sur les conditions générales et la politique de confidentialité de Smart Hub est requis avant utilisation. Certains contenus et services nécessitent une inscription et un abonnement.
a. (Sauf pour la Chine, la Turquie et Israël) Nécessite un compte Samsung pour accéder à la gamme complète des fonctionnalités du système d'exploitation Samsung Tizen, y compris les fonctionnalités et applications Smart TV. Si vous choisissez de ne pas vous connecter, vous ne pourrez vous connecter qu'à la télévision terrestre (applicable aux appareils équipés d'un tuner uniquement) et aux appareils externes (par exemple via HDMI). Vous aurez peut-être besoin d'un appareil distinct (par exemple un PC ou un mobile) pour créer un compte Samsung.
b. Pour Samsung TV Plus : nécessite un compte Samsung. Les appareils et chaînes Samsung pris en charge peuvent varier selon les pays. Les chaînes et l'interface utilisateur sont susceptibles d'être modifiées sans notifications. Disponible gratuitement sur les téléviseurs intelligents Samsung depuis 2016. Des publicités peuvent apparaître sur Samsung TV Plus.
Hub de jeux : les jeux et le contenu disponibles peuvent varier selon le pays et le modèle et sont sujets à changement sans préavis. Certains jeux nécessitent une manette distincte (vendue séparément). Une connexion Internet et un abonnement peuvent être requis. Nécessite un compte Samsung. L'interface utilisateur est susceptible d'être modifiée sans préavis. Vous devrez peut-être télécharger des applications en fonction du jeu ou du service. Uniquement disponible aux États-Unis/CA/UK/FR/DE/ES/IT/BR/KR/AU/MX. Le Gaming Hub est disponible uniquement sur les TV de gamme 2022 (hors The Freestyle) et ultérieur. Une connexion Internet requise. Les applications sont éditées par des tiers et sont susceptibles d’être soumises à un abonnement payant et de changer, d’évoluer ou d’être arrêtées selon les choix et décisions de leurs éditeurs respectifs. Le streaming musical tout en jouant à des jeux et l’Upscalling par l’IA sont disponibles sur à partir des modèles Q70 et +
SmartThings : la technologie, les fonctions et les caractéristiques disponibles peuvent varier selon le pays, le fournisseur de services, l'environnement réseau ou le produit, et sont sujettes à modification sans préavis. Nécessite une connexion Wi-Fi, Bluetooth ou autre réseau sans fil et une connexion au compte Samsung. Les appareils connectés sont vendus séparément. L'interface utilisateur est susceptible d'être modifiée sans préavis. L'activation/désactivation des appareils connectés dotés de capteurs de lumière n'est prise en charge que pour les appareils d'éclairage IoT compatibles avec SmartThings.
Samsung Knox Security : Samsung Knox Security s'applique aux téléviseurs Samsung alimentés par Tizen®, lancés depuis 2015. La mise à jour du logiciel de sécurité est fournie pendant trois ans à compter du lancement du produit. La dernière mise à jour du logiciel est requise.
Motion Xcelerator 240 Hz : 4K 240 Hz n'est disponible qu'avec les jeux connectés à un PC prenant en charge ces spécifications (carte graphique PC requise). Les performances peuvent varier.
Motion Xcelerator 165 Hz : 4K 165 Hz n'est disponible qu'avec les jeux connectés à un PC prenant en charge ces spécifications (carte graphique PC requise). Les performances peuvent varier.
Motion Xcelerator 144 Hz : 4K 144 Hz n'est disponible qu'avec les jeux connectés à un PC prenant en charge ces spécifications (carte graphique PC requise). Les performances peuvent varier.
Motion Xcelerator 120 Hz : l'expérience visuelle peut varier selon les types de contenu et le format.
Comparez les téléviseurs Samsung Neo QLED.
a. Pour QN900D 65 pouces : Neo Quantum HDR 8K+
b. Pour QN90D 50/43 pouces : Neo Quantum HDR, Dolby Atmos sans haut-parleurs haut de gamme, OTS Lite
c. Pour QN90D 98 pouces : Motion Xcelerator 120 Hz
");
return s.attr("data-swiper-slide-index") || s.attr("data-swiper-slide-index", t), i.cache && (a.virtual.cache[t] = s), s;
},
appendSlide: function (e) {
if ("object" == typeof e && "length" in e) for (var t = 0; t < e.length; t += 1) e[t] && this.virtual.slides.push(e[t]);
else this.virtual.slides.push(e);
this.virtual.update(!0);
},
prependSlide: function (e) {
var t = this,
a = t.activeIndex,
i = a + 1,
s = 1;
if (Array.isArray(e)) {
for (var r = 0; r < e.length; r += 1) e[r] && t.virtual.slides.unshift(e[r]);
(i = a + e.length), (s = e.length);
} else t.virtual.slides.unshift(e);
if (t.params.virtual.cache) {
var n = t.virtual.cache,
o = {};
Object.keys(n).forEach(function (e) {
o[parseInt(e, 10) + s] = n[e];
}),
(t.virtual.cache = o);
}
t.virtual.update(!0), t.slideTo(i, 0);
},
removeSlide: function (e) {
var t = this;
if (null != e) {
var a = t.activeIndex;
if (Array.isArray(e)) for (var i = e.length - 1; 0 <= i; i -= 1) t.virtual.slides.splice(e[i], 1), t.params.virtual.cache && delete t.virtual.cache[e[i]], e[i] < a && (a -= 1), (a = Math.max(a, 0));
else t.virtual.slides.splice(e, 1), t.params.virtual.cache && delete t.virtual.cache[e], e < a && (a -= 1), (a = Math.max(a, 0));
t.virtual.update(!0), t.slideTo(a, 0);
}
},
removeAllSlides: function () {
var e = this;
(e.virtual.slides = []), e.params.virtual.cache && (e.virtual.cache = {}), e.virtual.update(!0), e.slideTo(0, 0);
},
},
$ = {
name: "virtual",
params: { virtual: { enabled: !1, slides: [], cache: !0, renderSlide: null, renderExternal: null, addSlidesBefore: 0, addSlidesAfter: 0 } },
create: function () {
var e = this;
te.extend(e, { virtual: { update: z.update.bind(e), appendSlide: z.appendSlide.bind(e), prependSlide: z.prependSlide.bind(e), removeSlide: z.removeSlide.bind(e), removeAllSlides: z.removeAllSlides.bind(e), renderSlide: z.renderSlide.bind(e), slides: e.params.virtual.slides, cache: {} } });
},
on: {
beforeInit: function () {
var e = this;
if (e.params.virtual.enabled) {
e.classNames.push(e.params.containerModifierClass + "virtual");
var t = { watchSlidesProgress: !0 };
te.extend(e.params, t), te.extend(e.originalParams, t), e.params.initialSlide || e.virtual.update();
}
},
setTranslate: function () {
this.params.virtual.enabled && this.virtual.update();
},
},
},
L = {
handle: function (e) {
var t = this,
a = t.rtlTranslate,
i = e;
i.originalEvent && (i = i.originalEvent);
var s = i.keyCode || i.charCode;
if (!t.allowSlideNext && ((t.isHorizontal() && 39 === s) || (t.isVertical() && 40 === s) || 34 === s)) return !1;
if (!t.allowSlidePrev && ((t.isHorizontal() && 37 === s) || (t.isVertical() && 38 === s) || 33 === s)) return !1;
if (!(i.shiftKey || i.altKey || i.ctrlKey || i.metaKey || (f.activeElement && f.activeElement.nodeName && ("input" === f.activeElement.nodeName.toLowerCase() || "textarea" === f.activeElement.nodeName.toLowerCase())))) {
if (t.params.keyboard.onlyInViewport && (33 === s || 34 === s || 37 === s || 39 === s || 38 === s || 40 === s)) {
var r = !1;
if (0 < t.$el.parents("." + t.params.slideClass).length && 0 === t.$el.parents("." + t.params.slideActiveClass).length) return;
var n = ee.innerWidth,
o = ee.innerHeight,
l = t.$el.offset();
a && (l.left -= t.$el[0].scrollLeft);
for (
var d = [
[l.left, l.top],
[l.left + t.width, l.top],
[l.left, l.top + t.height],
[l.left + t.width, l.top + t.height],
],
p = 0;
p < d.length;
p += 1
) {
var c = d[p];
0 <= c[0] && c[0] <= n && 0 <= c[1] && c[1] <= o && (r = !0);
}
if (!r) return;
}
t.isHorizontal() ? ((33 !== s && 34 !== s && 37 !== s && 39 !== s) || (i.preventDefault ? i.preventDefault() : (i.returnValue = !1)), (((34 !== s && 39 !== s) || a) && ((33 !== s && 37 !== s) || !a)) || t.slideNext(), (((33 !== s && 37 !== s) || a) && ((34 !== s && 39 !== s) || !a)) || t.slidePrev()) : ((33 !== s && 34 !== s && 38 !== s && 40 !== s) || (i.preventDefault ? i.preventDefault() : (i.returnValue = !1)), (34 !== s && 40 !== s) || t.slideNext(), (33 !== s && 38 !== s) || t.slidePrev()), t.emit("keyPress", s);
}
},
enable: function () {
this.keyboard.enabled || (I(f).on("keydown", this.keyboard.handle), (this.keyboard.enabled = !0));
},
disable: function () {
this.keyboard.enabled && (I(f).off("keydown", this.keyboard.handle), (this.keyboard.enabled = !1));
},
},
D = {
name: "keyboard",
params: { keyboard: { enabled: !1, onlyInViewport: !0 } },
create: function () {
te.extend(this, { keyboard: { enabled: !1, enable: L.enable.bind(this), disable: L.disable.bind(this), handle: L.handle.bind(this) } });
},
on: {
init: function () {
this.params.keyboard.enabled && this.keyboard.enable();
},
destroy: function () {
this.keyboard.enabled && this.keyboard.disable();
},
},
};
var O = {
lastScrollTime: te.now(),
event:
-1 < ee.navigator.userAgent.indexOf("firefox")
? "DOMMouseScroll"
: (function () {
var e = "onwheel",
t = e in f;
if (!t) {
var a = f.createElement("div");
a.setAttribute(e, "return;"), (t = "function" == typeof a[e]);
}
return !t && f.implementation && f.implementation.hasFeature && !0 !== f.implementation.hasFeature("", "") && (t = f.implementation.hasFeature("Events.wheel", "3.0")), t;
})()
? "wheel"
: "mousewheel",
normalize: function (e) {
var t = 0,
a = 0,
i = 0,
s = 0;
return "detail" in e && (a = e.detail), "wheelDelta" in e && (a = -e.wheelDelta / 120), "wheelDeltaY" in e && (a = -e.wheelDeltaY / 120), "wheelDeltaX" in e && (t = -e.wheelDeltaX / 120), "axis" in e && e.axis === e.HORIZONTAL_AXIS && ((t = a), (a = 0)), (i = 10 * t), (s = 10 * a), "deltaY" in e && (s = e.deltaY), "deltaX" in e && (i = e.deltaX), (i || s) && e.deltaMode && (1 === e.deltaMode ? ((i *= 40), (s *= 40)) : ((i *= 800), (s *= 800))), i && !t && (t = i < 1 ? -1 : 1), s && !a && (a = s < 1 ? -1 : 1), { spinX: t, spinY: a, pixelX: i, pixelY: s };
},
handleMouseEnter: function () {
this.mouseEntered = !0;
},
handleMouseLeave: function () {
this.mouseEntered = !1;
},
handle: function (e) {
var t = e,
a = this,
i = a.params.mousewheel;
if (!a.mouseEntered && !i.releaseOnEdges) return !0;
t.originalEvent && (t = t.originalEvent);
var s = 0,
r = a.rtlTranslate ? -1 : 1,
n = O.normalize(t);
if (i.forceToAxis)
if (a.isHorizontal()) {
if (!(Math.abs(n.pixelX) > Math.abs(n.pixelY))) return !0;
s = n.pixelX * r;
} else {
if (!(Math.abs(n.pixelY) > Math.abs(n.pixelX))) return !0;
s = n.pixelY;
}
else s = Math.abs(n.pixelX) > Math.abs(n.pixelY) ? -n.pixelX * r : -n.pixelY;
if (0 === s) return !0;
if ((i.invert && (s = -s), a.params.freeMode)) {
a.params.loop && a.loopFix();
var o = a.getTranslate() + s * i.sensitivity,
l = a.isBeginning,
d = a.isEnd;
if (
(o >= a.minTranslate() && (o = a.minTranslate()),
o <= a.maxTranslate() && (o = a.maxTranslate()),
a.setTransition(0),
a.setTranslate(o),
a.updateProgress(),
a.updateActiveIndex(),
a.updateSlidesClasses(),
((!l && a.isBeginning) || (!d && a.isEnd)) && a.updateSlidesClasses(),
a.params.freeModeSticky &&
(clearTimeout(a.mousewheel.timeout),
(a.mousewheel.timeout = te.nextTick(function () {
a.slideToClosest();
}, 300))),
a.emit("scroll", t),
a.params.autoplay && a.params.autoplayDisableOnInteraction && a.autoplay.stop(),
o === a.minTranslate() || o === a.maxTranslate())
)
return !0;
} else {
if (60 < te.now() - a.mousewheel.lastScrollTime)
if (s < 0)
if ((a.isEnd && !a.params.loop) || a.animating) {
if (i.releaseOnEdges) return !0;
} else a.slideNext(), a.emit("scroll", t);
else if ((a.isBeginning && !a.params.loop) || a.animating) {
if (i.releaseOnEdges) return !0;
} else a.slidePrev(), a.emit("scroll", t);
a.mousewheel.lastScrollTime = new ee.Date().getTime();
}
return t.preventDefault ? t.preventDefault() : (t.returnValue = !1), !1;
},
enable: function () {
var e = this;
if (!O.event) return !1;
if (e.mousewheel.enabled) return !1;
var t = e.$el;
return "container" !== e.params.mousewheel.eventsTarged && (t = I(e.params.mousewheel.eventsTarged)), t.on("mouseenter", e.mousewheel.handleMouseEnter), t.on("mouseleave", e.mousewheel.handleMouseLeave), t.on(O.event, e.mousewheel.handle), (e.mousewheel.enabled = !0);
},
disable: function () {
var e = this;
if (!O.event) return !1;
if (!e.mousewheel.enabled) return !1;
var t = e.$el;
return "container" !== e.params.mousewheel.eventsTarged && (t = I(e.params.mousewheel.eventsTarged)), t.off(O.event, e.mousewheel.handle), !(e.mousewheel.enabled = !1);
},
},
A = {
update: function () {
var e = this,
t = e.params.navigation;
if (!e.params.loop) {
var a = e.navigation,
i = a.$nextEl,
s = a.$prevEl;
s && 0 < s.length && (e.isBeginning ? s.addClass(t.disabledClass) : s.removeClass(t.disabledClass), s[e.params.watchOverflow && e.isLocked ? "addClass" : "removeClass"](t.lockClass)), i && 0 < i.length && (e.isEnd ? i.addClass(t.disabledClass) : i.removeClass(t.disabledClass), i[e.params.watchOverflow && e.isLocked ? "addClass" : "removeClass"](t.lockClass));
}
},
onPrevClick: function (e) {
e.preventDefault(), (this.isBeginning && !this.params.loop) || this.slidePrev();
},
onNextClick: function (e) {
e.preventDefault(), (this.isEnd && !this.params.loop) || this.slideNext();
},
init: function () {
var e,
t,
a = this,
i = a.params.navigation;
(i.nextEl || i.prevEl) && (i.nextEl && ((e = I(i.nextEl)), a.params.uniqueNavElements && "string" == typeof i.nextEl && 1 < e.length && 1 === a.$el.find(i.nextEl).length && (e = a.$el.find(i.nextEl))), i.prevEl && ((t = I(i.prevEl)), a.params.uniqueNavElements && "string" == typeof i.prevEl && 1 < t.length && 1 === a.$el.find(i.prevEl).length && (t = a.$el.find(i.prevEl))), e && 0 < e.length && e.on("click", a.navigation.onNextClick), t && 0 < t.length && t.on("click", a.navigation.onPrevClick), te.extend(a.navigation, { $nextEl: e, nextEl: e && e[0], $prevEl: t, prevEl: t && t[0] }));
},
destroy: function () {
var e = this,
t = e.navigation,
a = t.$nextEl,
i = t.$prevEl;
a && a.length && (a.off("click", e.navigation.onNextClick), a.removeClass(e.params.navigation.disabledClass)), i && i.length && (i.off("click", e.navigation.onPrevClick), i.removeClass(e.params.navigation.disabledClass));
},
},
H = {
update: function () {
var e = this,
t = e.rtl,
s = e.params.pagination;
if (s.el && e.pagination.el && e.pagination.$el && 0 !== e.pagination.$el.length) {
var r,
a = e.virtual && e.params.virtual.enabled ? e.virtual.slides.length : e.slides.length,
i = e.pagination.$el,
n = e.params.loop ? Math.ceil((a - 2 * e.loopedSlides) / e.params.slidesPerGroup) : e.snapGrid.length;
if ((e.params.loop ? ((r = Math.ceil((e.activeIndex - e.loopedSlides) / e.params.slidesPerGroup)) > a - 1 - 2 * e.loopedSlides && (r -= a - 2 * e.loopedSlides), n - 1 < r && (r -= n), r < 0 && "bullets" !== e.params.paginationType && (r = n + r)) : (r = void 0 !== e.snapIndex ? e.snapIndex : e.activeIndex || 0), "bullets" === s.type && e.pagination.bullets && 0 < e.pagination.bullets.length)) {
var o,
l,
d,
p = e.pagination.bullets;
if ((s.dynamicBullets && ((e.pagination.bulletSize = p.eq(0)[e.isHorizontal() ? "outerWidth" : "outerHeight"](!0)), i.css(e.isHorizontal() ? "width" : "height", e.pagination.bulletSize * (s.dynamicMainBullets + 4) + "px"), 1 < s.dynamicMainBullets && void 0 !== e.previousIndex && ((e.pagination.dynamicBulletIndex += r - e.previousIndex), e.pagination.dynamicBulletIndex > s.dynamicMainBullets - 1 ? (e.pagination.dynamicBulletIndex = s.dynamicMainBullets - 1) : e.pagination.dynamicBulletIndex < 0 && (e.pagination.dynamicBulletIndex = 0)), (o = r - e.pagination.dynamicBulletIndex), (d = ((l = o + (Math.min(p.length, s.dynamicMainBullets) - 1)) + o) / 2)), p.removeClass(s.bulletActiveClass + " " + s.bulletActiveClass + "-next " + s.bulletActiveClass + "-next-next " + s.bulletActiveClass + "-prev " + s.bulletActiveClass + "-prev-prev " + s.bulletActiveClass + "-main"), 1 < i.length))
p.each(function (e, t) {
var a = I(t),
i = a.index();
i === r && a.addClass(s.bulletActiveClass),
s.dynamicBullets &&
(o <= i && i <= l && a.addClass(s.bulletActiveClass + "-main"),
i === o &&
a
.prev()
.addClass(s.bulletActiveClass + "-prev")
.prev()
.addClass(s.bulletActiveClass + "-prev-prev"),
i === l &&
a
.next()
.addClass(s.bulletActiveClass + "-next")
.next()
.addClass(s.bulletActiveClass + "-next-next"));
});
else if ((p.eq(r).addClass(s.bulletActiveClass), s.dynamicBullets)) {
for (var c = p.eq(o), u = p.eq(l), h = o; h <= l; h += 1) p.eq(h).addClass(s.bulletActiveClass + "-main");
c
.prev()
.addClass(s.bulletActiveClass + "-prev")
.prev()
.addClass(s.bulletActiveClass + "-prev-prev"),
u
.next()
.addClass(s.bulletActiveClass + "-next")
.next()
.addClass(s.bulletActiveClass + "-next-next");
}
if (s.dynamicBullets) {
var v = Math.min(p.length, s.dynamicMainBullets + 4),
f = (e.pagination.bulletSize * v - e.pagination.bulletSize) / 2 - d * e.pagination.bulletSize,
m = t ? "right" : "left";
p.css(e.isHorizontal() ? m : "top", f + "px");
}
}
if (("fraction" === s.type && (i.find("." + s.currentClass).text(s.formatFractionCurrent(r + 1)), i.find("." + s.totalClass).text(s.formatFractionTotal(n))), "progressbar" === s.type)) {
var g;
g = s.progressbarOpposite ? (e.isHorizontal() ? "vertical" : "horizontal") : e.isHorizontal() ? "horizontal" : "vertical";
var b = (r + 1) / n,
w = 1,
y = 1;
"horizontal" === g ? (w = b) : (y = b),
i
.find("." + s.progressbarFillClass)
.transform("translate3d(0,0,0) scaleX(" + w + ") scaleY(" + y + ")")
.transition(e.params.speed);
}
"custom" === s.type && s.renderCustom ? (i.html(s.renderCustom(e, r + 1, n)), e.emit("paginationRender", e, i[0])) : e.emit("paginationUpdate", e, i[0]), i[e.params.watchOverflow && e.isLocked ? "addClass" : "removeClass"](s.lockClass);
}
},
render: function () {
var e = this,
t = e.params.pagination;
if (t.el && e.pagination.el && e.pagination.$el && 0 !== e.pagination.$el.length) {
var a = e.virtual && e.params.virtual.enabled ? e.virtual.slides.length : e.slides.length,
i = e.pagination.$el,
s = "";
if ("bullets" === t.type) {
for (var r = e.params.loop ? Math.ceil((a - 2 * e.loopedSlides) / e.params.slidesPerGroup) : e.snapGrid.length, n = 0; n < r; n += 1) t.renderBullet ? (s += t.renderBullet.call(e, n, t.bulletClass)) : (s += "<" + t.bulletElement + ' class="' + t.bulletClass + '">' + t.bulletElement + ">");
i.html(s), (e.pagination.bullets = i.find("." + t.bulletClass));
}
"fraction" === t.type && ((s = t.renderFraction ? t.renderFraction.call(e, t.currentClass, t.totalClass) : ' / '), i.html(s)), "progressbar" === t.type && ((s = t.renderProgressbar ? t.renderProgressbar.call(e, t.progressbarFillClass) : ''), i.html(s)), "custom" !== t.type && e.emit("paginationRender", e.pagination.$el[0]);
}
},
init: function () {
var a = this,
e = a.params.pagination;
if (e.el) {
var t = I(e.el);
0 !== t.length &&
(a.params.uniqueNavElements && "string" == typeof e.el && 1 < t.length && 1 === a.$el.find(e.el).length && (t = a.$el.find(e.el)),
"bullets" === e.type && e.clickable && t.addClass(e.clickableClass),
t.addClass(e.modifierClass + e.type),
"bullets" === e.type && e.dynamicBullets && (t.addClass("" + e.modifierClass + e.type + "-dynamic"), (a.pagination.dynamicBulletIndex = 0), e.dynamicMainBullets < 1 && (e.dynamicMainBullets = 1)),
"progressbar" === e.type && e.progressbarOpposite && t.addClass(e.progressbarOppositeClass),
e.clickable &&
t.on("click", "." + e.bulletClass, function (e) {
e.preventDefault();
var t = I(this).index() * a.params.slidesPerGroup;
a.params.loop && (t += a.loopedSlides), a.slideTo(t);
}),
te.extend(a.pagination, { $el: t, el: t[0] }));
}
},
destroy: function () {
var e = this,
t = e.params.pagination;
if (t.el && e.pagination.el && e.pagination.$el && 0 !== e.pagination.$el.length) {
var a = e.pagination.$el;
a.removeClass(t.hiddenClass), a.removeClass(t.modifierClass + t.type), e.pagination.bullets && e.pagination.bullets.removeClass(t.bulletActiveClass), t.clickable && a.off("click", "." + t.bulletClass);
}
},
},
G = {
setTranslate: function () {
var e = this;
if (e.params.scrollbar.el && e.scrollbar.el) {
var t = e.scrollbar,
a = e.rtlTranslate,
i = e.progress,
s = t.dragSize,
r = t.trackSize,
n = t.$dragEl,
o = t.$el,
l = e.params.scrollbar,
d = s,
p = (r - s) * i;
a ? (0 < (p = -p) ? ((d = s - p), (p = 0)) : r < -p + s && (d = r + p)) : p < 0 ? ((d = s + p), (p = 0)) : r < p + s && (d = r - p),
e.isHorizontal() ? (ae.transforms3d ? n.transform("translate3d(" + p + "px, 0, 0)") : n.transform("translateX(" + p + "px)"), (n[0].style.width = d + "px")) : (ae.transforms3d ? n.transform("translate3d(0px, " + p + "px, 0)") : n.transform("translateY(" + p + "px)"), (n[0].style.height = d + "px")),
l.hide &&
(clearTimeout(e.scrollbar.timeout),
(o[0].style.opacity = 1),
(e.scrollbar.timeout = setTimeout(function () {
(o[0].style.opacity = 0), o.transition(400);
}, 1e3)));
}
},
setTransition: function (e) {
this.params.scrollbar.el && this.scrollbar.el && this.scrollbar.$dragEl.transition(e);
},
updateSize: function () {
var e = this;
if (e.params.scrollbar.el && e.scrollbar.el) {
var t = e.scrollbar,
a = t.$dragEl,
i = t.$el;
(a[0].style.width = ""), (a[0].style.height = "");
var s,
r = e.isHorizontal() ? i[0].offsetWidth : i[0].offsetHeight,
n = e.size / e.virtualSize,
o = n * (r / e.size);
(s = "auto" === e.params.scrollbar.dragSize ? r * n : parseInt(e.params.scrollbar.dragSize, 10)), e.isHorizontal() ? (a[0].style.width = s + "px") : (a[0].style.height = s + "px"), (i[0].style.display = 1 <= n ? "none" : ""), e.params.scrollbar.hide && (i[0].style.opacity = 0), te.extend(t, { trackSize: r, divider: n, moveDivider: o, dragSize: s }), t.$el[e.params.watchOverflow && e.isLocked ? "addClass" : "removeClass"](e.params.scrollbar.lockClass);
}
},
getPointerPosition: function (e) {
return this.isHorizontal() ? ("touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0].pageX : e.pageX || e.clientX) : "touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0].pageY : e.pageY || e.clientY;
},
setDragPosition: function (e) {
var t,
a = this,
i = a.scrollbar,
s = a.rtlTranslate,
r = i.$el,
n = i.dragSize,
o = i.trackSize,
l = i.dragStartPos;
(t = (i.getPointerPosition(e) - r.offset()[a.isHorizontal() ? "left" : "top"] - (null !== l ? l : n / 2)) / (o - n)), (t = Math.max(Math.min(t, 1), 0)), s && (t = 1 - t);
var d = a.minTranslate() + (a.maxTranslate() - a.minTranslate()) * t;
a.updateProgress(d), a.setTranslate(d), a.updateActiveIndex(), a.updateSlidesClasses();
},
onDragStart: function (e) {
var t = this,
a = t.params.scrollbar,
i = t.scrollbar,
s = t.$wrapperEl,
r = i.$el,
n = i.$dragEl;
(t.scrollbar.isTouched = !0), (t.scrollbar.dragStartPos = e.target === n[0] || e.target === n ? i.getPointerPosition(e) - e.target.getBoundingClientRect()[t.isHorizontal() ? "left" : "top"] : null), e.preventDefault(), e.stopPropagation(), s.transition(100), n.transition(100), i.setDragPosition(e), clearTimeout(t.scrollbar.dragTimeout), r.transition(0), a.hide && r.css("opacity", 1), t.emit("scrollbarDragStart", e);
},
onDragMove: function (e) {
var t = this.scrollbar,
a = this.$wrapperEl,
i = t.$el,
s = t.$dragEl;
this.scrollbar.isTouched && (e.preventDefault ? e.preventDefault() : (e.returnValue = !1), t.setDragPosition(e), a.transition(0), i.transition(0), s.transition(0), this.emit("scrollbarDragMove", e));
},
onDragEnd: function (e) {
var t = this,
a = t.params.scrollbar,
i = t.scrollbar.$el;
t.scrollbar.isTouched &&
((t.scrollbar.isTouched = !1),
a.hide &&
(clearTimeout(t.scrollbar.dragTimeout),
(t.scrollbar.dragTimeout = te.nextTick(function () {
i.css("opacity", 0), i.transition(400);
}, 1e3))),
t.emit("scrollbarDragEnd", e),
a.snapOnRelease && t.slideToClosest());
},
enableDraggable: function () {
var e = this;
if (e.params.scrollbar.el) {
var t = e.scrollbar,
a = e.touchEventsTouch,
i = e.touchEventsDesktop,
s = e.params,
r = t.$el[0],
n = !(!ae.passiveListener || !s.passiveListeners) && { passive: !1, capture: !1 },
o = !(!ae.passiveListener || !s.passiveListeners) && { passive: !0, capture: !1 };
ae.touch ? (r.addEventListener(a.start, e.scrollbar.onDragStart, n), r.addEventListener(a.move, e.scrollbar.onDragMove, n), r.addEventListener(a.end, e.scrollbar.onDragEnd, o)) : (r.addEventListener(i.start, e.scrollbar.onDragStart, n), f.addEventListener(i.move, e.scrollbar.onDragMove, n), f.addEventListener(i.end, e.scrollbar.onDragEnd, o));
}
},
disableDraggable: function () {
var e = this;
if (e.params.scrollbar.el) {
var t = e.scrollbar,
a = e.touchEventsTouch,
i = e.touchEventsDesktop,
s = e.params,
r = t.$el[0],
n = !(!ae.passiveListener || !s.passiveListeners) && { passive: !1, capture: !1 },
o = !(!ae.passiveListener || !s.passiveListeners) && { passive: !0, capture: !1 };
ae.touch ? (r.removeEventListener(a.start, e.scrollbar.onDragStart, n), r.removeEventListener(a.move, e.scrollbar.onDragMove, n), r.removeEventListener(a.end, e.scrollbar.onDragEnd, o)) : (r.removeEventListener(i.start, e.scrollbar.onDragStart, n), f.removeEventListener(i.move, e.scrollbar.onDragMove, n), f.removeEventListener(i.end, e.scrollbar.onDragEnd, o));
}
},
init: function () {
var e = this;
if (e.params.scrollbar.el) {
var t = e.scrollbar,
a = e.$el,
i = e.params.scrollbar,
s = I(i.el);
e.params.uniqueNavElements && "string" == typeof i.el && 1 < s.length && 1 === a.find(i.el).length && (s = a.find(i.el));
var r = s.find("." + e.params.scrollbar.dragClass);
0 === r.length && ((r = I('')), s.append(r)), te.extend(t, { $el: s, el: s[0], $dragEl: r, dragEl: r[0] }), i.draggable && t.enableDraggable();
}
},
destroy: function () {
this.scrollbar.disableDraggable();
},
},
N = {
setTransform: function (e, t) {
var a = this.rtl,
i = I(e),
s = a ? -1 : 1,
r = i.attr("data-swiper-parallax") || "0",
n = i.attr("data-swiper-parallax-x"),
o = i.attr("data-swiper-parallax-y"),
l = i.attr("data-swiper-parallax-scale"),
d = i.attr("data-swiper-parallax-opacity");
if ((n || o ? ((n = n || "0"), (o = o || "0")) : this.isHorizontal() ? ((n = r), (o = "0")) : ((o = r), (n = "0")), (n = 0 <= n.indexOf("%") ? parseInt(n, 10) * t * s + "%" : n * t * s + "px"), (o = 0 <= o.indexOf("%") ? parseInt(o, 10) * t + "%" : o * t + "px"), null != d)) {
var p = d - (d - 1) * (1 - Math.abs(t));
i[0].style.opacity = p;
}
if (null == l) i.transform("translate3d(" + n + ", " + o + ", 0px)");
else {
var c = l - (l - 1) * (1 - Math.abs(t));
i.transform("translate3d(" + n + ", " + o + ", 0px) scale(" + c + ")");
}
},
setTranslate: function () {
var i = this,
e = i.$el,
t = i.slides,
s = i.progress,
r = i.snapGrid;
e.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each(function (e, t) {
i.parallax.setTransform(t, s);
}),
t.each(function (e, t) {
var a = t.progress;
1 < i.params.slidesPerGroup && "auto" !== i.params.slidesPerView && (a += Math.ceil(e / 2) - s * (r.length - 1)),
(a = Math.min(Math.max(a, -1), 1)),
I(t)
.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]")
.each(function (e, t) {
i.parallax.setTransform(t, a);
});
});
},
setTransition: function (s) {
void 0 === s && (s = this.params.speed);
this.$el.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each(function (e, t) {
var a = I(t),
i = parseInt(a.attr("data-swiper-parallax-duration"), 10) || s;
0 === s && (i = 0), a.transition(i);
});
},
},
B = {
getDistanceBetweenTouches: function (e) {
if (e.targetTouches.length < 2) return 1;
var t = e.targetTouches[0].pageX,
a = e.targetTouches[0].pageY,
i = e.targetTouches[1].pageX,
s = e.targetTouches[1].pageY;
return Math.sqrt(Math.pow(i - t, 2) + Math.pow(s - a, 2));
},
onGestureStart: function (e) {
var t = this,
a = t.params.zoom,
i = t.zoom,
s = i.gesture;
if (((i.fakeGestureTouched = !1), (i.fakeGestureMoved = !1), !ae.gestures)) {
if ("touchstart" !== e.type || ("touchstart" === e.type && e.targetTouches.length < 2)) return;
(i.fakeGestureTouched = !0), (s.scaleStart = B.getDistanceBetweenTouches(e));
}
(s.$slideEl && s.$slideEl.length) || ((s.$slideEl = I(e.target).closest(".swiper-slide")), 0 === s.$slideEl.length && (s.$slideEl = t.slides.eq(t.activeIndex)), (s.$imageEl = s.$slideEl.find("img, svg, canvas")), (s.$imageWrapEl = s.$imageEl.parent("." + a.containerClass)), (s.maxRatio = s.$imageWrapEl.attr("data-swiper-zoom") || a.maxRatio), 0 !== s.$imageWrapEl.length) ? (s.$imageEl.transition(0), (t.zoom.isScaling = !0)) : (s.$imageEl = void 0);
},
onGestureChange: function (e) {
var t = this.params.zoom,
a = this.zoom,
i = a.gesture;
if (!ae.gestures) {
if ("touchmove" !== e.type || ("touchmove" === e.type && e.targetTouches.length < 2)) return;
(a.fakeGestureMoved = !0), (i.scaleMove = B.getDistanceBetweenTouches(e));
}
i.$imageEl && 0 !== i.$imageEl.length && ((a.scale = ae.gestures ? e.scale * a.currentScale : (i.scaleMove / i.scaleStart) * a.currentScale), a.scale > i.maxRatio && (a.scale = i.maxRatio - 1 + Math.pow(a.scale - i.maxRatio + 1, 0.5)), a.scale < t.minRatio && (a.scale = t.minRatio + 1 - Math.pow(t.minRatio - a.scale + 1, 0.5)), i.$imageEl.transform("translate3d(0,0,0) scale(" + a.scale + ")"));
},
onGestureEnd: function (e) {
var t = this.params.zoom,
a = this.zoom,
i = a.gesture;
if (!ae.gestures) {
if (!a.fakeGestureTouched || !a.fakeGestureMoved) return;
if ("touchend" !== e.type || ("touchend" === e.type && e.changedTouches.length < 2 && !g.android)) return;
(a.fakeGestureTouched = !1), (a.fakeGestureMoved = !1);
}
i.$imageEl && 0 !== i.$imageEl.length && ((a.scale = Math.max(Math.min(a.scale, i.maxRatio), t.minRatio)), i.$imageEl.transition(this.params.speed).transform("translate3d(0,0,0) scale(" + a.scale + ")"), (a.currentScale = a.scale), (a.isScaling = !1), 1 === a.scale && (i.$slideEl = void 0));
},
onTouchStart: function (e) {
var t = this.zoom,
a = t.gesture,
i = t.image;
a.$imageEl && 0 !== a.$imageEl.length && (i.isTouched || (g.android && e.preventDefault(), (i.isTouched = !0), (i.touchesStart.x = "touchstart" === e.type ? e.targetTouches[0].pageX : e.pageX), (i.touchesStart.y = "touchstart" === e.type ? e.targetTouches[0].pageY : e.pageY)));
},
onTouchMove: function (e) {
var t = this,
a = t.zoom,
i = a.gesture,
s = a.image,
r = a.velocity;
if (i.$imageEl && 0 !== i.$imageEl.length && ((t.allowClick = !1), s.isTouched && i.$slideEl)) {
s.isMoved || ((s.width = i.$imageEl[0].offsetWidth), (s.height = i.$imageEl[0].offsetHeight), (s.startX = te.getTranslate(i.$imageWrapEl[0], "x") || 0), (s.startY = te.getTranslate(i.$imageWrapEl[0], "y") || 0), (i.slideWidth = i.$slideEl[0].offsetWidth), (i.slideHeight = i.$slideEl[0].offsetHeight), i.$imageWrapEl.transition(0), t.rtl && ((s.startX = -s.startX), (s.startY = -s.startY)));
var n = s.width * a.scale,
o = s.height * a.scale;
if (!(n < i.slideWidth && o < i.slideHeight)) {
if (((s.minX = Math.min(i.slideWidth / 2 - n / 2, 0)), (s.maxX = -s.minX), (s.minY = Math.min(i.slideHeight / 2 - o / 2, 0)), (s.maxY = -s.minY), (s.touchesCurrent.x = "touchmove" === e.type ? e.targetTouches[0].pageX : e.pageX), (s.touchesCurrent.y = "touchmove" === e.type ? e.targetTouches[0].pageY : e.pageY), !s.isMoved && !a.isScaling)) {
if (t.isHorizontal() && ((Math.floor(s.minX) === Math.floor(s.startX) && s.touchesCurrent.x < s.touchesStart.x) || (Math.floor(s.maxX) === Math.floor(s.startX) && s.touchesCurrent.x > s.touchesStart.x))) return void (s.isTouched = !1);
if (!t.isHorizontal() && ((Math.floor(s.minY) === Math.floor(s.startY) && s.touchesCurrent.y < s.touchesStart.y) || (Math.floor(s.maxY) === Math.floor(s.startY) && s.touchesCurrent.y > s.touchesStart.y))) return void (s.isTouched = !1);
}
e.preventDefault(), e.stopPropagation(), (s.isMoved = !0), (s.currentX = s.touchesCurrent.x - s.touchesStart.x + s.startX), (s.currentY = s.touchesCurrent.y - s.touchesStart.y + s.startY), s.currentX < s.minX && (s.currentX = s.minX + 1 - Math.pow(s.minX - s.currentX + 1, 0.8)), s.currentX > s.maxX && (s.currentX = s.maxX - 1 + Math.pow(s.currentX - s.maxX + 1, 0.8)), s.currentY < s.minY && (s.currentY = s.minY + 1 - Math.pow(s.minY - s.currentY + 1, 0.8)), s.currentY > s.maxY && (s.currentY = s.maxY - 1 + Math.pow(s.currentY - s.maxY + 1, 0.8)), r.prevPositionX || (r.prevPositionX = s.touchesCurrent.x), r.prevPositionY || (r.prevPositionY = s.touchesCurrent.y), r.prevTime || (r.prevTime = Date.now()), (r.x = (s.touchesCurrent.x - r.prevPositionX) / (Date.now() - r.prevTime) / 2), (r.y = (s.touchesCurrent.y - r.prevPositionY) / (Date.now() - r.prevTime) / 2), Math.abs(s.touchesCurrent.x - r.prevPositionX) < 2 && (r.x = 0), Math.abs(s.touchesCurrent.y - r.prevPositionY) < 2 && (r.y = 0), (r.prevPositionX = s.touchesCurrent.x), (r.prevPositionY = s.touchesCurrent.y), (r.prevTime = Date.now()), i.$imageWrapEl.transform("translate3d(" + s.currentX + "px, " + s.currentY + "px,0)");
}
}
},
onTouchEnd: function () {
var e = this.zoom,
t = e.gesture,
a = e.image,
i = e.velocity;
if (t.$imageEl && 0 !== t.$imageEl.length) {
if (!a.isTouched || !a.isMoved) return (a.isTouched = !1), void (a.isMoved = !1);
(a.isTouched = !1), (a.isMoved = !1);
var s = 300,
r = 300,
n = i.x * s,
o = a.currentX + n,
l = i.y * r,
d = a.currentY + l;
0 !== i.x && (s = Math.abs((o - a.currentX) / i.x)), 0 !== i.y && (r = Math.abs((d - a.currentY) / i.y));
var p = Math.max(s, r);
(a.currentX = o), (a.currentY = d);
var c = a.width * e.scale,
u = a.height * e.scale;
(a.minX = Math.min(t.slideWidth / 2 - c / 2, 0)), (a.maxX = -a.minX), (a.minY = Math.min(t.slideHeight / 2 - u / 2, 0)), (a.maxY = -a.minY), (a.currentX = Math.max(Math.min(a.currentX, a.maxX), a.minX)), (a.currentY = Math.max(Math.min(a.currentY, a.maxY), a.minY)), t.$imageWrapEl.transition(p).transform("translate3d(" + a.currentX + "px, " + a.currentY + "px,0)");
}
},
onTransitionEnd: function () {
var e = this.zoom,
t = e.gesture;
t.$slideEl && this.previousIndex !== this.activeIndex && (t.$imageEl.transform("translate3d(0,0,0) scale(1)"), t.$imageWrapEl.transform("translate3d(0,0,0)"), (e.scale = 1), (e.currentScale = 1), (t.$slideEl = void 0), (t.$imageEl = void 0), (t.$imageWrapEl = void 0));
},
toggle: function (e) {
var t = this.zoom;
t.scale && 1 !== t.scale ? t.out() : t.in(e);
},
in: function (e) {
var t,
a,
i,
s,
r,
n,
o,
l,
d,
p,
c,
u,
h,
v,
f,
m,
g = this,
b = g.zoom,
w = g.params.zoom,
y = b.gesture,
x = b.image;
y.$slideEl || ((y.$slideEl = g.clickedSlide ? I(g.clickedSlide) : g.slides.eq(g.activeIndex)), (y.$imageEl = y.$slideEl.find("img, svg, canvas")), (y.$imageWrapEl = y.$imageEl.parent("." + w.containerClass))), y.$imageEl && 0 !== y.$imageEl.length && (y.$slideEl.addClass("" + w.zoomedSlideClass), (a = void 0 === x.touchesStart.x && e ? ((t = "touchend" === e.type ? e.changedTouches[0].pageX : e.pageX), "touchend" === e.type ? e.changedTouches[0].pageY : e.pageY) : ((t = x.touchesStart.x), x.touchesStart.y)), (b.scale = y.$imageWrapEl.attr("data-swiper-zoom") || w.maxRatio), (b.currentScale = y.$imageWrapEl.attr("data-swiper-zoom") || w.maxRatio), e ? ((f = y.$slideEl[0].offsetWidth), (m = y.$slideEl[0].offsetHeight), (i = y.$slideEl.offset().left + f / 2 - t), (s = y.$slideEl.offset().top + m / 2 - a), (o = y.$imageEl[0].offsetWidth), (l = y.$imageEl[0].offsetHeight), (d = o * b.scale), (p = l * b.scale), (h = -(c = Math.min(f / 2 - d / 2, 0))), (v = -(u = Math.min(m / 2 - p / 2, 0))), (r = i * b.scale) < c && (r = c), h < r && (r = h), (n = s * b.scale) < u && (n = u), v < n && (n = v)) : (n = r = 0), y.$imageWrapEl.transition(300).transform("translate3d(" + r + "px, " + n + "px,0)"), y.$imageEl.transition(300).transform("translate3d(0,0,0) scale(" + b.scale + ")"));
},
out: function () {
var e = this,
t = e.zoom,
a = e.params.zoom,
i = t.gesture;
i.$slideEl || ((i.$slideEl = e.clickedSlide ? I(e.clickedSlide) : e.slides.eq(e.activeIndex)), (i.$imageEl = i.$slideEl.find("img, svg, canvas")), (i.$imageWrapEl = i.$imageEl.parent("." + a.containerClass))), i.$imageEl && 0 !== i.$imageEl.length && ((t.scale = 1), (t.currentScale = 1), i.$imageWrapEl.transition(300).transform("translate3d(0,0,0)"), i.$imageEl.transition(300).transform("translate3d(0,0,0) scale(1)"), i.$slideEl.removeClass("" + a.zoomedSlideClass), (i.$slideEl = void 0));
},
enable: function () {
var e = this,
t = e.zoom;
if (!t.enabled) {
t.enabled = !0;
var a = !("touchstart" !== e.touchEvents.start || !ae.passiveListener || !e.params.passiveListeners) && { passive: !0, capture: !1 };
ae.gestures ? (e.$wrapperEl.on("gesturestart", ".swiper-slide", t.onGestureStart, a), e.$wrapperEl.on("gesturechange", ".swiper-slide", t.onGestureChange, a), e.$wrapperEl.on("gestureend", ".swiper-slide", t.onGestureEnd, a)) : "touchstart" === e.touchEvents.start && (e.$wrapperEl.on(e.touchEvents.start, ".swiper-slide", t.onGestureStart, a), e.$wrapperEl.on(e.touchEvents.move, ".swiper-slide", t.onGestureChange, a), e.$wrapperEl.on(e.touchEvents.end, ".swiper-slide", t.onGestureEnd, a)), e.$wrapperEl.on(e.touchEvents.move, "." + e.params.zoom.containerClass, t.onTouchMove);
}
},
disable: function () {
var e = this,
t = e.zoom;
if (t.enabled) {
e.zoom.enabled = !1;
var a = !("touchstart" !== e.touchEvents.start || !ae.passiveListener || !e.params.passiveListeners) && { passive: !0, capture: !1 };
ae.gestures ? (e.$wrapperEl.off("gesturestart", ".swiper-slide", t.onGestureStart, a), e.$wrapperEl.off("gesturechange", ".swiper-slide", t.onGestureChange, a), e.$wrapperEl.off("gestureend", ".swiper-slide", t.onGestureEnd, a)) : "touchstart" === e.touchEvents.start && (e.$wrapperEl.off(e.touchEvents.start, ".swiper-slide", t.onGestureStart, a), e.$wrapperEl.off(e.touchEvents.move, ".swiper-slide", t.onGestureChange, a), e.$wrapperEl.off(e.touchEvents.end, ".swiper-slide", t.onGestureEnd, a)), e.$wrapperEl.off(e.touchEvents.move, "." + e.params.zoom.containerClass, t.onTouchMove);
}
},
},
X = {
loadInSlide: function (e, l) {
void 0 === l && (l = !0);
var d = this,
p = d.params.lazy;
if (void 0 !== e && 0 !== d.slides.length) {
var c = d.virtual && d.params.virtual.enabled ? d.$wrapperEl.children("." + d.params.slideClass + '[data-swiper-slide-index="' + e + '"]') : d.slides.eq(e),
t = c.find("." + p.elementClass + ":not(." + p.loadedClass + "):not(." + p.loadingClass + ")");
!c.hasClass(p.elementClass) || c.hasClass(p.loadedClass) || c.hasClass(p.loadingClass) || (t = t.add(c[0])),
0 !== t.length &&
t.each(function (e, t) {
var i = I(t);
i.addClass(p.loadingClass);
var s = i.attr("data-background"),
r = i.attr("data-src"),
n = i.attr("data-srcset"),
o = i.attr("data-sizes");
d.loadImage(i[0], r || s, n, o, !1, function () {
if (null != d && d && (!d || d.params) && !d.destroyed) {
if ((s ? (i.css("background-image", 'url("' + s + '")'), i.removeAttr("data-background")) : (n && (i.attr("srcset", n), i.removeAttr("data-srcset")), o && (i.attr("sizes", o), i.removeAttr("data-sizes")), r && (i.attr("src", r), i.removeAttr("data-src"))), i.addClass(p.loadedClass).removeClass(p.loadingClass), c.find("." + p.preloaderClass).remove(), d.params.loop && l)) {
var e = c.attr("data-swiper-slide-index");
if (c.hasClass(d.params.slideDuplicateClass)) {
var t = d.$wrapperEl.children('[data-swiper-slide-index="' + e + '"]:not(.' + d.params.slideDuplicateClass + ")");
d.lazy.loadInSlide(t.index(), !1);
} else {
var a = d.$wrapperEl.children("." + d.params.slideDuplicateClass + '[data-swiper-slide-index="' + e + '"]');
d.lazy.loadInSlide(a.index(), !1);
}
}
d.emit("lazyImageReady", c[0], i[0]);
}
}),
d.emit("lazyImageLoad", c[0], i[0]);
});
}
},
load: function () {
var i = this,
t = i.$wrapperEl,
a = i.params,
s = i.slides,
e = i.activeIndex,
r = i.virtual && a.virtual.enabled,
n = a.lazy,
o = a.slidesPerView;
function l(e) {
if (r) {
if (t.children("." + a.slideClass + '[data-swiper-slide-index="' + e + '"]').length) return !0;
} else if (s[e]) return !0;
return !1;
}
function d(e) {
return r ? I(e).attr("data-swiper-slide-index") : I(e).index();
}
if (("auto" === o && (o = 0), i.lazy.initialImageLoaded || (i.lazy.initialImageLoaded = !0), i.params.watchSlidesVisibility))
t.children("." + a.slideVisibleClass).each(function (e, t) {
var a = r ? I(t).attr("data-swiper-slide-index") : I(t).index();
i.lazy.loadInSlide(a);
});
else if (1 < o) for (var p = e; p < e + o; p += 1) l(p) && i.lazy.loadInSlide(p);
else i.lazy.loadInSlide(e);
if (n.loadPrevNext)
if (1 < o || (n.loadPrevNextAmount && 1 < n.loadPrevNextAmount)) {
for (var c = n.loadPrevNextAmount, u = o, h = Math.min(e + u + Math.max(c, u), s.length), v = Math.max(e - Math.max(u, c), 0), f = e + o; f < h; f += 1) l(f) && i.lazy.loadInSlide(f);
for (var m = v; m < e; m += 1) l(m) && i.lazy.loadInSlide(m);
} else {
var g = t.children("." + a.slideNextClass);
0 < g.length && i.lazy.loadInSlide(d(g));
var b = t.children("." + a.slidePrevClass);
0 < b.length && i.lazy.loadInSlide(d(b));
}
},
},
V = {
LinearSpline: function (e, t) {
var a,
i,
s,
r,
n,
o = function (e, t) {
for (i = -1, a = e.length; 1 < a - i; ) e[(s = (a + i) >> 1)] <= t ? (i = s) : (a = s);
return a;
};
return (
(this.x = e),
(this.y = t),
(this.lastIndex = e.length - 1),
(this.interpolate = function (e) {
return e ? ((n = o(this.x, e)), (r = n - 1), ((e - this.x[r]) * (this.y[n] - this.y[r])) / (this.x[n] - this.x[r]) + this.y[r]) : 0;
}),
this
);
},
getInterpolateFunction: function (e) {
var t = this;
t.controller.spline || (t.controller.spline = t.params.loop ? new V.LinearSpline(t.slidesGrid, e.slidesGrid) : new V.LinearSpline(t.snapGrid, e.snapGrid));
},
setTranslate: function (e, t) {
var a,
i,
s = this,
r = s.controller.control;
function n(e) {
var t = s.rtlTranslate ? -s.translate : s.translate;
"slide" === s.params.controller.by && (s.controller.getInterpolateFunction(e), (i = -s.controller.spline.interpolate(-t))), (i && "container" !== s.params.controller.by) || ((a = (e.maxTranslate() - e.minTranslate()) / (s.maxTranslate() - s.minTranslate())), (i = (t - s.minTranslate()) * a + e.minTranslate())), s.params.controller.inverse && (i = e.maxTranslate() - i), e.updateProgress(i), e.setTranslate(i, s), e.updateActiveIndex(), e.updateSlidesClasses();
}
if (Array.isArray(r)) for (var o = 0; o < r.length; o += 1) r[o] !== t && r[o] instanceof T && n(r[o]);
else r instanceof T && t !== r && n(r);
},
setTransition: function (t, e) {
var a,
i = this,
s = i.controller.control;
function r(e) {
e.setTransition(t, i),
0 !== t &&
(e.transitionStart(),
e.params.autoHeight &&
te.nextTick(function () {
e.updateAutoHeight();
}),
e.$wrapperEl.transitionEnd(function () {
s && (e.params.loop && "slide" === i.params.controller.by && e.loopFix(), e.transitionEnd());
}));
}
if (Array.isArray(s)) for (a = 0; a < s.length; a += 1) s[a] !== e && s[a] instanceof T && r(s[a]);
else s instanceof T && e !== s && r(s);
},
},
Y = {
makeElFocusable: function (e) {
return e.attr("tabIndex", "0"), e;
},
addElRole: function (e, t) {
return e.attr("role", t), e;
},
addElLabel: function (e, t) {
return e.attr("aria-label", t), e;
},
disableEl: function (e) {
return e.attr("aria-disabled", !0), e;
},
enableEl: function (e) {
return e.attr("aria-disabled", !1), e;
},
onEnterKey: function (e) {
var t = this,
a = t.params.a11y;
if (13 === e.keyCode) {
var i = I(e.target);
t.navigation && t.navigation.$nextEl && i.is(t.navigation.$nextEl) && ((t.isEnd && !t.params.loop) || t.slideNext(), t.isEnd ? t.a11y.notify(a.lastSlideMessage) : t.a11y.notify(a.nextSlideMessage)), t.navigation && t.navigation.$prevEl && i.is(t.navigation.$prevEl) && ((t.isBeginning && !t.params.loop) || t.slidePrev(), t.isBeginning ? t.a11y.notify(a.firstSlideMessage) : t.a11y.notify(a.prevSlideMessage)), t.pagination && i.is("." + t.params.pagination.bulletClass) && i[0].click();
}
},
notify: function (e) {
var t = this.a11y.liveRegion;
0 !== t.length && (t.html(""), t.html(e));
},
updateNavigation: function () {
var e = this;
if (!e.params.loop) {
var t = e.navigation,
a = t.$nextEl,
i = t.$prevEl;
i && 0 < i.length && (e.isBeginning ? e.a11y.disableEl(i) : e.a11y.enableEl(i)), a && 0 < a.length && (e.isEnd ? e.a11y.disableEl(a) : e.a11y.enableEl(a));
}
},
updatePagination: function () {
var i = this,
s = i.params.a11y;
i.pagination &&
i.params.pagination.clickable &&
i.pagination.bullets &&
i.pagination.bullets.length &&
i.pagination.bullets.each(function (e, t) {
var a = I(t);
i.a11y.makeElFocusable(a), i.a11y.addElRole(a, "button"), i.a11y.addElLabel(a, s.paginationBulletMessage.replace(/{{index}}/, a.index() + 1));
});
},
init: function () {
var e = this;
e.$el.append(e.a11y.liveRegion);
var t,
a,
i = e.params.a11y;
e.navigation && e.navigation.$nextEl && (t = e.navigation.$nextEl), e.navigation && e.navigation.$prevEl && (a = e.navigation.$prevEl), t && (e.a11y.makeElFocusable(t), e.a11y.addElRole(t, "button"), e.a11y.addElLabel(t, i.nextSlideMessage), t.on("keydown", e.a11y.onEnterKey)), a && (e.a11y.makeElFocusable(a), e.a11y.addElRole(a, "button"), e.a11y.addElLabel(a, i.prevSlideMessage), a.on("keydown", e.a11y.onEnterKey)), e.pagination && e.params.pagination.clickable && e.pagination.bullets && e.pagination.bullets.length && e.pagination.$el.on("keydown", "." + e.params.pagination.bulletClass, e.a11y.onEnterKey);
},
destroy: function () {
var e,
t,
a = this;
a.a11y.liveRegion && 0 < a.a11y.liveRegion.length && a.a11y.liveRegion.remove(), a.navigation && a.navigation.$nextEl && (e = a.navigation.$nextEl), a.navigation && a.navigation.$prevEl && (t = a.navigation.$prevEl), e && e.off("keydown", a.a11y.onEnterKey), t && t.off("keydown", a.a11y.onEnterKey), a.pagination && a.params.pagination.clickable && a.pagination.bullets && a.pagination.bullets.length && a.pagination.$el.off("keydown", "." + a.params.pagination.bulletClass, a.a11y.onEnterKey);
},
},
F = {
init: function () {
var e = this;
if (e.params.history) {
if (!ee.history || !ee.history.pushState) return (e.params.history.enabled = !1), void (e.params.hashNavigation.enabled = !0);
var t = e.history;
(t.initialized = !0), (t.paths = F.getPathValues()), (t.paths.key || t.paths.value) && (t.scrollToSlide(0, t.paths.value, e.params.runCallbacksOnInit), e.params.history.replaceState || ee.addEventListener("popstate", e.history.setHistoryPopState));
}
},
destroy: function () {
this.params.history.replaceState || ee.removeEventListener("popstate", this.history.setHistoryPopState);
},
setHistoryPopState: function () {
(this.history.paths = F.getPathValues()), this.history.scrollToSlide(this.params.speed, this.history.paths.value, !1);
},
getPathValues: function () {
var e = ee.location.pathname
.slice(1)
.split("/")
.filter(function (e) {
return "" !== e;
}),
t = e.length;
return { key: e[t - 2], value: e[t - 1] };
},
setHistory: function (e, t) {
if (this.history.initialized && this.params.history.enabled) {
var a = this.slides.eq(t),
i = F.slugify(a.attr("data-history"));
ee.location.pathname.includes(e) || (i = e + "/" + i);
var s = ee.history.state;
(s && s.value === i) || (this.params.history.replaceState ? ee.history.replaceState({ value: i }, null, i) : ee.history.pushState({ value: i }, null, i));
}
},
slugify: function (e) {
return e
.toString()
.replace(/\s+/g, "-")
.replace(/[^\w-]+/g, "")
.replace(/--+/g, "-")
.replace(/^-+/, "")
.replace(/-+$/, "");
},
scrollToSlide: function (e, t, a) {
var i = this;
if (t)
for (var s = 0, r = i.slides.length; s < r; s += 1) {
var n = i.slides.eq(s);
if (F.slugify(n.attr("data-history")) === t && !n.hasClass(i.params.slideDuplicateClass)) {
var o = n.index();
i.slideTo(o, e, a);
}
}
else i.slideTo(0, e, a);
},
},
R = {
onHashCange: function () {
var e = this,
t = f.location.hash.replace("#", "");
if (t !== e.slides.eq(e.activeIndex).attr("data-hash")) {
var a = e.$wrapperEl.children("." + e.params.slideClass + '[data-hash="' + t + '"]').index();
if (void 0 === a) return;
e.slideTo(a);
}
},
setHash: function () {
var e = this;
if (e.hashNavigation.initialized && e.params.hashNavigation.enabled)
if (e.params.hashNavigation.replaceState && ee.history && ee.history.replaceState) ee.history.replaceState(null, null, "#" + e.slides.eq(e.activeIndex).attr("data-hash") || "");
else {
var t = e.slides.eq(e.activeIndex),
a = t.attr("data-hash") || t.attr("data-history");
f.location.hash = a || "";
}
},
init: function () {
var e = this;
if (!(!e.params.hashNavigation.enabled || (e.params.history && e.params.history.enabled))) {
e.hashNavigation.initialized = !0;
var t = f.location.hash.replace("#", "");
if (t)
for (var a = 0, i = e.slides.length; a < i; a += 1) {
var s = e.slides.eq(a);
if ((s.attr("data-hash") || s.attr("data-history")) === t && !s.hasClass(e.params.slideDuplicateClass)) {
var r = s.index();
e.slideTo(r, 0, e.params.runCallbacksOnInit, !0);
}
}
e.params.hashNavigation.watchState && I(ee).on("hashchange", e.hashNavigation.onHashCange);
}
},
destroy: function () {
this.params.hashNavigation.watchState && I(ee).off("hashchange", this.hashNavigation.onHashCange);
},
},
q = {
run: function () {
var e = this,
t = e.slides.eq(e.activeIndex),
a = e.params.autoplay.delay;
t.attr("data-swiper-autoplay") && (a = t.attr("data-swiper-autoplay") || e.params.autoplay.delay),
clearTimeout(e.autoplay.timeout),
(e.autoplay.timeout = te.nextTick(function () {
e.params.autoplay.reverseDirection ? (e.params.loop ? (e.loopFix(), e.slidePrev(e.params.speed, !0, !0), e.emit("autoplay")) : e.isBeginning ? (e.params.autoplay.stopOnLastSlide ? e.autoplay.stop() : (e.slideTo(e.slides.length - 1, e.params.speed, !0, !0), e.emit("autoplay"))) : (e.slidePrev(e.params.speed, !0, !0), e.emit("autoplay"))) : e.params.loop ? (e.loopFix(), e.slideNext(e.params.speed, !0, !0), e.emit("autoplay")) : e.isEnd ? (e.params.autoplay.stopOnLastSlide ? e.autoplay.stop() : (e.slideTo(0, e.params.speed, !0, !0), e.emit("autoplay"))) : (e.slideNext(e.params.speed, !0, !0), e.emit("autoplay"));
}, a));
},
start: function () {
var e = this;
return void 0 === e.autoplay.timeout && !e.autoplay.running && ((e.autoplay.running = !0), e.emit("autoplayStart"), e.autoplay.run(), !0);
},
stop: function () {
var e = this;
return !!e.autoplay.running && void 0 !== e.autoplay.timeout && (e.autoplay.timeout && (clearTimeout(e.autoplay.timeout), (e.autoplay.timeout = void 0)), (e.autoplay.running = !1), e.emit("autoplayStop"), !0);
},
pause: function (e) {
var t = this;
t.autoplay.running && (t.autoplay.paused || (t.autoplay.timeout && clearTimeout(t.autoplay.timeout), (t.autoplay.paused = !0), 0 !== e && t.params.autoplay.waitForTransition ? (t.$wrapperEl[0].addEventListener("transitionend", t.autoplay.onTransitionEnd), t.$wrapperEl[0].addEventListener("webkitTransitionEnd", t.autoplay.onTransitionEnd)) : ((t.autoplay.paused = !1), t.autoplay.run())));
},
},
W = {
setTranslate: function () {
for (var e = this, t = e.slides, a = 0; a < t.length; a += 1) {
var i = e.slides.eq(a),
s = -i[0].swiperSlideOffset;
e.params.virtualTranslate || (s -= e.translate);
var r = 0;
e.isHorizontal() || ((r = s), (s = 0));
var n = e.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(i[0].progress), 0) : 1 + Math.min(Math.max(i[0].progress, -1), 0);
i.css({ opacity: n }).transform("translate3d(" + s + "px, " + r + "px, 0px)");
}
},
setTransition: function (e) {
var a = this,
t = a.slides,
i = a.$wrapperEl;
if ((t.transition(e), a.params.virtualTranslate && 0 !== e)) {
var s = !1;
t.transitionEnd(function () {
if (!s && a && !a.destroyed) {
(s = !0), (a.animating = !1);
for (var e = ["webkitTransitionEnd", "transitionend"], t = 0; t < e.length; t += 1) i.trigger(e[t]);
}
});
}
},
},
j = {
setTranslate: function () {
var e,
t = this,
a = t.$el,
i = t.$wrapperEl,
s = t.slides,
r = t.width,
n = t.height,
o = t.rtlTranslate,
l = t.size,
d = t.params.cubeEffect,
p = t.isHorizontal(),
c = t.virtual && t.params.virtual.enabled,
u = 0;
d.shadow && (p ? (0 === (e = i.find(".swiper-cube-shadow")).length && ((e = I('')), i.append(e)), e.css({ height: r + "px" })) : 0 === (e = a.find(".swiper-cube-shadow")).length && ((e = I('')), a.append(e)));
for (var h = 0; h < s.length; h += 1) {
var v = s.eq(h),
f = h;
c && (f = parseInt(v.attr("data-swiper-slide-index"), 10));
var m = 90 * f,
g = Math.floor(m / 360);
o && ((m = -m), (g = Math.floor(-m / 360)));
var b = Math.max(Math.min(v[0].progress, 1), -1),
w = 0,
y = 0,
x = 0;
f % 4 == 0 ? ((w = 4 * -g * l), (x = 0)) : (f - 1) % 4 == 0 ? ((w = 0), (x = 4 * -g * l)) : (f - 2) % 4 == 0 ? ((w = l + 4 * g * l), (x = l)) : (f - 3) % 4 == 0 && ((w = -l), (x = 3 * l + 4 * l * g)), o && (w = -w), p || ((y = w), (w = 0));
var T = "rotateX(" + (p ? 0 : -m) + "deg) rotateY(" + (p ? m : 0) + "deg) translate3d(" + w + "px, " + y + "px, " + x + "px)";
if ((b <= 1 && -1 < b && ((u = 90 * f + 90 * b), o && (u = 90 * -f - 90 * b)), v.transform(T), d.slideShadows)) {
var E = p ? v.find(".swiper-slide-shadow-left") : v.find(".swiper-slide-shadow-top"),
S = p ? v.find(".swiper-slide-shadow-right") : v.find(".swiper-slide-shadow-bottom");
0 === E.length && ((E = I('')), v.append(E)), 0 === S.length && ((S = I('')), v.append(S)), E.length && (E[0].style.opacity = Math.max(-b, 0)), S.length && (S[0].style.opacity = Math.max(b, 0));
}
}
if ((i.css({ "-webkit-transform-origin": "50% 50% -" + l / 2 + "px", "-moz-transform-origin": "50% 50% -" + l / 2 + "px", "-ms-transform-origin": "50% 50% -" + l / 2 + "px", "transform-origin": "50% 50% -" + l / 2 + "px" }), d.shadow))
if (p) e.transform("translate3d(0px, " + (r / 2 + d.shadowOffset) + "px, " + -r / 2 + "px) rotateX(90deg) rotateZ(0deg) scale(" + d.shadowScale + ")");
else {
var C = Math.abs(u) - 90 * Math.floor(Math.abs(u) / 90),
M = 1.5 - (Math.sin((2 * C * Math.PI) / 360) / 2 + Math.cos((2 * C * Math.PI) / 360) / 2),
P = d.shadowScale,
k = d.shadowScale / M,
z = d.shadowOffset;
e.transform("scale3d(" + P + ", 1, " + k + ") translate3d(0px, " + (n / 2 + z) + "px, " + -n / 2 / k + "px) rotateX(-90deg)");
}
var $ = ie.isSafari || ie.isUiWebView ? -l / 2 : 0;
i.transform("translate3d(0px,0," + $ + "px) rotateX(" + (t.isHorizontal() ? 0 : u) + "deg) rotateY(" + (t.isHorizontal() ? -u : 0) + "deg)");
},
setTransition: function (e) {
var t = this.$el;
this.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e), this.params.cubeEffect.shadow && !this.isHorizontal() && t.find(".swiper-cube-shadow").transition(e);
},
},
U = {
setTranslate: function () {
for (var e = this, t = e.slides, a = e.rtlTranslate, i = 0; i < t.length; i += 1) {
var s = t.eq(i),
r = s[0].progress;
e.params.flipEffect.limitRotation && (r = Math.max(Math.min(s[0].progress, 1), -1));
var n = -180 * r,
o = 0,
l = -s[0].swiperSlideOffset,
d = 0;
if ((e.isHorizontal() ? a && (n = -n) : ((d = l), (o = -n), (n = l = 0)), (s[0].style.zIndex = -Math.abs(Math.round(r)) + t.length), e.params.flipEffect.slideShadows)) {
var p = e.isHorizontal() ? s.find(".swiper-slide-shadow-left") : s.find(".swiper-slide-shadow-top"),
c = e.isHorizontal() ? s.find(".swiper-slide-shadow-right") : s.find(".swiper-slide-shadow-bottom");
0 === p.length && ((p = I('')), s.append(p)), 0 === c.length && ((c = I('')), s.append(c)), p.length && (p[0].style.opacity = Math.max(-r, 0)), c.length && (c[0].style.opacity = Math.max(r, 0));
}
s.transform("translate3d(" + l + "px, " + d + "px, 0px) rotateX(" + o + "deg) rotateY(" + n + "deg)");
}
},
setTransition: function (e) {
var a = this,
t = a.slides,
i = a.activeIndex,
s = a.$wrapperEl;
if ((t.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e), a.params.virtualTranslate && 0 !== e)) {
var r = !1;
t.eq(i).transitionEnd(function () {
if (!r && a && !a.destroyed) {
(r = !0), (a.animating = !1);
for (var e = ["webkitTransitionEnd", "transitionend"], t = 0; t < e.length; t += 1) s.trigger(e[t]);
}
});
}
},
},
K = {
setTranslate: function () {
for (var e = this, t = e.width, a = e.height, i = e.slides, s = e.$wrapperEl, r = e.slidesSizesGrid, n = e.params.coverflowEffect, o = e.isHorizontal(), l = e.translate, d = o ? t / 2 - l : a / 2 - l, p = o ? n.rotate : -n.rotate, c = n.depth, u = 0, h = i.length; u < h; u += 1) {
var v = i.eq(u),
f = r[u],
m = ((d - v[0].swiperSlideOffset - f / 2) / f) * n.modifier,
g = o ? p * m : 0,
b = o ? 0 : p * m,
w = -c * Math.abs(m),
y = o ? 0 : n.stretch * m,
x = o ? n.stretch * m : 0;
Math.abs(x) < 0.001 && (x = 0), Math.abs(y) < 0.001 && (y = 0), Math.abs(w) < 0.001 && (w = 0), Math.abs(g) < 0.001 && (g = 0), Math.abs(b) < 0.001 && (b = 0);
var T = "translate3d(" + x + "px," + y + "px," + w + "px) rotateX(" + b + "deg) rotateY(" + g + "deg)";
if ((v.transform(T), (v[0].style.zIndex = 1 - Math.abs(Math.round(m))), n.slideShadows)) {
var E = o ? v.find(".swiper-slide-shadow-left") : v.find(".swiper-slide-shadow-top"),
S = o ? v.find(".swiper-slide-shadow-right") : v.find(".swiper-slide-shadow-bottom");
0 === E.length && ((E = I('')), v.append(E)), 0 === S.length && ((S = I('')), v.append(S)), E.length && (E[0].style.opacity = 0 < m ? m : 0), S.length && (S[0].style.opacity = 0 < -m ? -m : 0);
}
}
(ae.pointerEvents || ae.prefixedPointerEvents) && (s[0].style.perspectiveOrigin = d + "px 50%");
},
setTransition: function (e) {
this.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e);
},
},
_ = {
init: function () {
var e = this,
t = e.params.thumbs,
a = e.constructor;
t.swiper instanceof a ? ((e.thumbs.swiper = t.swiper), te.extend(e.thumbs.swiper.originalParams, { watchSlidesProgress: !0, slideToClickedSlide: !1 }), te.extend(e.thumbs.swiper.params, { watchSlidesProgress: !0, slideToClickedSlide: !1 })) : te.isObject(t.swiper) && ((e.thumbs.swiper = new a(te.extend({}, t.swiper, { watchSlidesVisibility: !0, watchSlidesProgress: !0, slideToClickedSlide: !1 }))), (e.thumbs.swiperCreated = !0)), e.thumbs.swiper.$el.addClass(e.params.thumbs.thumbsContainerClass), e.thumbs.swiper.on("tap", e.thumbs.onThumbClick);
},
onThumbClick: function () {
var e = this,
t = e.thumbs.swiper;
if (t) {
var a = t.clickedIndex,
i = t.clickedSlide;
if (!((i && I(i).hasClass(e.params.thumbs.slideThumbActiveClass)) || null == a)) {
var s;
if (((s = t.params.loop ? parseInt(I(t.clickedSlide).attr("data-swiper-slide-index"), 10) : a), e.params.loop)) {
var r = e.activeIndex;
e.slides.eq(r).hasClass(e.params.slideDuplicateClass) && (e.loopFix(), (e._clientLeft = e.$wrapperEl[0].clientLeft), (r = e.activeIndex));
var n = e.slides
.eq(r)
.prevAll('[data-swiper-slide-index="' + s + '"]')
.eq(0)
.index(),
o = e.slides
.eq(r)
.nextAll('[data-swiper-slide-index="' + s + '"]')
.eq(0)
.index();
s = void 0 === n ? o : void 0 === o ? n : o - r < r - n ? o : n;
}
e.slideTo(s);
}
}
},
update: function (e) {
var t = this,
a = t.thumbs.swiper;
if (a) {
var i = "auto" === a.params.slidesPerView ? a.slidesPerViewDynamic() : a.params.slidesPerView;
if (t.realIndex !== a.realIndex) {
var s,
r = a.activeIndex;
if (a.params.loop) {
a.slides.eq(r).hasClass(a.params.slideDuplicateClass) && (a.loopFix(), (a._clientLeft = a.$wrapperEl[0].clientLeft), (r = a.activeIndex));
var n = a.slides
.eq(r)
.prevAll('[data-swiper-slide-index="' + t.realIndex + '"]')
.eq(0)
.index(),
o = a.slides
.eq(r)
.nextAll('[data-swiper-slide-index="' + t.realIndex + '"]')
.eq(0)
.index();
s = void 0 === n ? o : void 0 === o ? n : o - r == r - n ? r : o - r < r - n ? o : n;
} else s = t.realIndex;
a.visibleSlidesIndexes && a.visibleSlidesIndexes.indexOf(s) < 0 && (a.params.centeredSlides ? (s = r < s ? s - Math.floor(i / 2) + 1 : s + Math.floor(i / 2) - 1) : r < s && (s = s - i + 1), a.slideTo(s, e ? 0 : void 0));
}
var l = 1,
d = t.params.thumbs.slideThumbActiveClass;
if ((1 < t.params.slidesPerView && !t.params.centeredSlides && (l = t.params.slidesPerView), a.slides.removeClass(d), a.params.loop || a.params.virtual)) for (var p = 0; p < l; p += 1) a.$wrapperEl.children('[data-swiper-slide-index="' + (t.realIndex + p) + '"]').addClass(d);
else for (var c = 0; c < l; c += 1) a.slides.eq(t.realIndex + c).addClass(d);
}
},
},
Z = [
E,
S,
C,
M,
k,
$,
D,
{
name: "mousewheel",
params: { mousewheel: { enabled: !1, releaseOnEdges: !1, invert: !1, forceToAxis: !1, sensitivity: 1, eventsTarged: "container" } },
create: function () {
var e = this;
te.extend(e, { mousewheel: { enabled: !1, enable: O.enable.bind(e), disable: O.disable.bind(e), handle: O.handle.bind(e), handleMouseEnter: O.handleMouseEnter.bind(e), handleMouseLeave: O.handleMouseLeave.bind(e), lastScrollTime: te.now() } });
},
on: {
init: function () {
this.params.mousewheel.enabled && this.mousewheel.enable();
},
destroy: function () {
this.mousewheel.enabled && this.mousewheel.disable();
},
},
},
{
name: "navigation",
params: { navigation: { nextEl: null, prevEl: null, hideOnClick: !1, disabledClass: "swiper-button-disabled", hiddenClass: "swiper-button-hidden", lockClass: "swiper-button-lock" } },
create: function () {
var e = this;
te.extend(e, { navigation: { init: A.init.bind(e), update: A.update.bind(e), destroy: A.destroy.bind(e), onNextClick: A.onNextClick.bind(e), onPrevClick: A.onPrevClick.bind(e) } });
},
on: {
init: function () {
this.navigation.init(), this.navigation.update();
},
toEdge: function () {
this.navigation.update();
},
fromEdge: function () {
this.navigation.update();
},
destroy: function () {
this.navigation.destroy();
},
click: function (e) {
var t,
a = this,
i = a.navigation,
s = i.$nextEl,
r = i.$prevEl;
!a.params.navigation.hideOnClick || I(e.target).is(r) || I(e.target).is(s) || (s ? (t = s.hasClass(a.params.navigation.hiddenClass)) : r && (t = r.hasClass(a.params.navigation.hiddenClass)), !0 === t ? a.emit("navigationShow", a) : a.emit("navigationHide", a), s && s.toggleClass(a.params.navigation.hiddenClass), r && r.toggleClass(a.params.navigation.hiddenClass));
},
},
},
{
name: "pagination",
params: {
pagination: {
el: null,
bulletElement: "span",
clickable: !1,
hideOnClick: !1,
renderBullet: null,
renderProgressbar: null,
renderFraction: null,
renderCustom: null,
progressbarOpposite: !1,
type: "bullets",
dynamicBullets: !1,
dynamicMainBullets: 1,
formatFractionCurrent: function (e) {
return e;
},
formatFractionTotal: function (e) {
return e;
},
bulletClass: "swiper-pagination-bullet",
bulletActiveClass: "swiper-pagination-bullet-active",
modifierClass: "swiper-pagination-",
currentClass: "swiper-pagination-current",
totalClass: "swiper-pagination-total",
hiddenClass: "swiper-pagination-hidden",
progressbarFillClass: "swiper-pagination-progressbar-fill",
progressbarOppositeClass: "swiper-pagination-progressbar-opposite",
clickableClass: "swiper-pagination-clickable",
lockClass: "swiper-pagination-lock",
},
},
create: function () {
var e = this;
te.extend(e, { pagination: { init: H.init.bind(e), render: H.render.bind(e), update: H.update.bind(e), destroy: H.destroy.bind(e), dynamicBulletIndex: 0 } });
},
on: {
init: function () {
this.pagination.init(), this.pagination.render(), this.pagination.update();
},
activeIndexChange: function () {
this.params.loop ? this.pagination.update() : void 0 === this.snapIndex && this.pagination.update();
},
snapIndexChange: function () {
this.params.loop || this.pagination.update();
},
slidesLengthChange: function () {
this.params.loop && (this.pagination.render(), this.pagination.update());
},
snapGridLengthChange: function () {
this.params.loop || (this.pagination.render(), this.pagination.update());
},
destroy: function () {
this.pagination.destroy();
},
click: function (e) {
var t = this;
t.params.pagination.el && t.params.pagination.hideOnClick && 0 < t.pagination.$el.length && !I(e.target).hasClass(t.params.pagination.bulletClass) && (!0 === t.pagination.$el.hasClass(t.params.pagination.hiddenClass) ? t.emit("paginationShow", t) : t.emit("paginationHide", t), t.pagination.$el.toggleClass(t.params.pagination.hiddenClass));
},
},
},
{
name: "scrollbar",
params: { scrollbar: { el: null, dragSize: "auto", hide: !1, draggable: !1, snapOnRelease: !0, lockClass: "swiper-scrollbar-lock", dragClass: "swiper-scrollbar-drag" } },
create: function () {
var e = this;
te.extend(e, { scrollbar: { init: G.init.bind(e), destroy: G.destroy.bind(e), updateSize: G.updateSize.bind(e), setTranslate: G.setTranslate.bind(e), setTransition: G.setTransition.bind(e), enableDraggable: G.enableDraggable.bind(e), disableDraggable: G.disableDraggable.bind(e), setDragPosition: G.setDragPosition.bind(e), getPointerPosition: G.getPointerPosition.bind(e), onDragStart: G.onDragStart.bind(e), onDragMove: G.onDragMove.bind(e), onDragEnd: G.onDragEnd.bind(e), isTouched: !1, timeout: null, dragTimeout: null } });
},
on: {
init: function () {
this.scrollbar.init(), this.scrollbar.updateSize(), this.scrollbar.setTranslate();
},
update: function () {
this.scrollbar.updateSize();
},
resize: function () {
this.scrollbar.updateSize();
},
observerUpdate: function () {
this.scrollbar.updateSize();
},
setTranslate: function () {
this.scrollbar.setTranslate();
},
setTransition: function (e) {
this.scrollbar.setTransition(e);
},
destroy: function () {
this.scrollbar.destroy();
},
},
},
{
name: "parallax",
params: { parallax: { enabled: !1 } },
create: function () {
te.extend(this, { parallax: { setTransform: N.setTransform.bind(this), setTranslate: N.setTranslate.bind(this), setTransition: N.setTransition.bind(this) } });
},
on: {
beforeInit: function () {
this.params.parallax.enabled && ((this.params.watchSlidesProgress = !0), (this.originalParams.watchSlidesProgress = !0));
},
init: function () {
this.params.parallax.enabled && this.parallax.setTranslate();
},
setTranslate: function () {
this.params.parallax.enabled && this.parallax.setTranslate();
},
setTransition: function (e) {
this.params.parallax.enabled && this.parallax.setTransition(e);
},
},
},
{
name: "zoom",
params: { zoom: { enabled: !1, maxRatio: 3, minRatio: 1, toggle: !0, containerClass: "swiper-zoom-container", zoomedSlideClass: "swiper-slide-zoomed" } },
create: function () {
var i = this,
t = { enabled: !1, scale: 1, currentScale: 1, isScaling: !1, gesture: { $slideEl: void 0, slideWidth: void 0, slideHeight: void 0, $imageEl: void 0, $imageWrapEl: void 0, maxRatio: 3 }, image: { isTouched: void 0, isMoved: void 0, currentX: void 0, currentY: void 0, minX: void 0, minY: void 0, maxX: void 0, maxY: void 0, width: void 0, height: void 0, startX: void 0, startY: void 0, touchesStart: {}, touchesCurrent: {} }, velocity: { x: void 0, y: void 0, prevPositionX: void 0, prevPositionY: void 0, prevTime: void 0 } };
"onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out".split(" ").forEach(function (e) {
t[e] = B[e].bind(i);
}),
te.extend(i, { zoom: t });
var s = 1;
Object.defineProperty(i.zoom, "scale", {
get: function () {
return s;
},
set: function (e) {
if (s !== e) {
var t = i.zoom.gesture.$imageEl ? i.zoom.gesture.$imageEl[0] : void 0,
a = i.zoom.gesture.$slideEl ? i.zoom.gesture.$slideEl[0] : void 0;
i.emit("zoomChange", e, t, a);
}
s = e;
},
});
},
on: {
init: function () {
this.params.zoom.enabled && this.zoom.enable();
},
destroy: function () {
this.zoom.disable();
},
touchStart: function (e) {
this.zoom.enabled && this.zoom.onTouchStart(e);
},
touchEnd: function (e) {
this.zoom.enabled && this.zoom.onTouchEnd(e);
},
doubleTap: function (e) {
this.params.zoom.enabled && this.zoom.enabled && this.params.zoom.toggle && this.zoom.toggle(e);
},
transitionEnd: function () {
this.zoom.enabled && this.params.zoom.enabled && this.zoom.onTransitionEnd();
},
},
},
{
name: "lazy",
params: { lazy: { enabled: !1, loadPrevNext: !1, loadPrevNextAmount: 1, loadOnTransitionStart: !1, elementClass: "swiper-lazy", loadingClass: "swiper-lazy-loading", loadedClass: "swiper-lazy-loaded", preloaderClass: "swiper-lazy-preloader" } },
create: function () {
te.extend(this, { lazy: { initialImageLoaded: !1, load: X.load.bind(this), loadInSlide: X.loadInSlide.bind(this) } });
},
on: {
beforeInit: function () {
this.params.lazy.enabled && this.params.preloadImages && (this.params.preloadImages = !1);
},
init: function () {
this.params.lazy.enabled && !this.params.loop && 0 === this.params.initialSlide && this.lazy.load();
},
scroll: function () {
this.params.freeMode && !this.params.freeModeSticky && this.lazy.load();
},
resize: function () {
this.params.lazy.enabled && this.lazy.load();
},
scrollbarDragMove: function () {
this.params.lazy.enabled && this.lazy.load();
},
transitionStart: function () {
var e = this;
e.params.lazy.enabled && ((!e.params.lazy.loadOnTransitionStart && (e.params.lazy.loadOnTransitionStart || e.lazy.initialImageLoaded)) || e.lazy.load());
},
transitionEnd: function () {
this.params.lazy.enabled && !this.params.lazy.loadOnTransitionStart && this.lazy.load();
},
},
},
{
name: "controller",
params: { controller: { control: void 0, inverse: !1, by: "slide" } },
create: function () {
var e = this;
te.extend(e, { controller: { control: e.params.controller.control, getInterpolateFunction: V.getInterpolateFunction.bind(e), setTranslate: V.setTranslate.bind(e), setTransition: V.setTransition.bind(e) } });
},
on: {
update: function () {
this.controller.control && this.controller.spline && ((this.controller.spline = void 0), delete this.controller.spline);
},
resize: function () {
this.controller.control && this.controller.spline && ((this.controller.spline = void 0), delete this.controller.spline);
},
observerUpdate: function () {
this.controller.control && this.controller.spline && ((this.controller.spline = void 0), delete this.controller.spline);
},
setTranslate: function (e, t) {
this.controller.control && this.controller.setTranslate(e, t);
},
setTransition: function (e, t) {
this.controller.control && this.controller.setTransition(e, t);
},
},
},
{
name: "a11y",
params: { a11y: { enabled: !0, notificationClass: "swiper-notification", prevSlideMessage: "Previous slide", nextSlideMessage: "Next slide", firstSlideMessage: "This is the first slide", lastSlideMessage: "This is the last slide", paginationBulletMessage: "Go to slide {{index}}" } },
create: function () {
var t = this;
te.extend(t, { a11y: { liveRegion: I('') } }),
Object.keys(Y).forEach(function (e) {
t.a11y[e] = Y[e].bind(t);
});
},
on: {
init: function () {
this.params.a11y.enabled && (this.a11y.init(), this.a11y.updateNavigation());
},
toEdge: function () {
this.params.a11y.enabled && this.a11y.updateNavigation();
},
fromEdge: function () {
this.params.a11y.enabled && this.a11y.updateNavigation();
},
paginationUpdate: function () {
this.params.a11y.enabled && this.a11y.updatePagination();
},
destroy: function () {
this.params.a11y.enabled && this.a11y.destroy();
},
},
},
{
name: "history",
params: { history: { enabled: !1, replaceState: !1, key: "slides" } },
create: function () {
var e = this;
te.extend(e, { history: { init: F.init.bind(e), setHistory: F.setHistory.bind(e), setHistoryPopState: F.setHistoryPopState.bind(e), scrollToSlide: F.scrollToSlide.bind(e), destroy: F.destroy.bind(e) } });
},
on: {
init: function () {
this.params.history.enabled && this.history.init();
},
destroy: function () {
this.params.history.enabled && this.history.destroy();
},
transitionEnd: function () {
this.history.initialized && this.history.setHistory(this.params.history.key, this.activeIndex);
},
},
},
{
name: "hash-navigation",
params: { hashNavigation: { enabled: !1, replaceState: !1, watchState: !1 } },
create: function () {
var e = this;
te.extend(e, { hashNavigation: { initialized: !1, init: R.init.bind(e), destroy: R.destroy.bind(e), setHash: R.setHash.bind(e), onHashCange: R.onHashCange.bind(e) } });
},
on: {
init: function () {
this.params.hashNavigation.enabled && this.hashNavigation.init();
},
destroy: function () {
this.params.hashNavigation.enabled && this.hashNavigation.destroy();
},
transitionEnd: function () {
this.hashNavigation.initialized && this.hashNavigation.setHash();
},
},
},
{
name: "autoplay",
params: { autoplay: { enabled: !1, delay: 3e3, waitForTransition: !0, disableOnInteraction: !0, stopOnLastSlide: !1, reverseDirection: !1 } },
create: function () {
var t = this;
te.extend(t, {
autoplay: {
running: !1,
paused: !1,
run: q.run.bind(t),
start: q.start.bind(t),
stop: q.stop.bind(t),
pause: q.pause.bind(t),
onTransitionEnd: function (e) {
t && !t.destroyed && t.$wrapperEl && e.target === this && (t.$wrapperEl[0].removeEventListener("transitionend", t.autoplay.onTransitionEnd), t.$wrapperEl[0].removeEventListener("webkitTransitionEnd", t.autoplay.onTransitionEnd), (t.autoplay.paused = !1), t.autoplay.running ? t.autoplay.run() : t.autoplay.stop());
},
},
});
},
on: {
init: function () {
this.params.autoplay.enabled && this.autoplay.start();
},
beforeTransitionStart: function (e, t) {
this.autoplay.running && (t || !this.params.autoplay.disableOnInteraction ? this.autoplay.pause(e) : this.autoplay.stop());
},
sliderFirstMove: function () {
this.autoplay.running && (this.params.autoplay.disableOnInteraction ? this.autoplay.stop() : this.autoplay.pause());
},
destroy: function () {
this.autoplay.running && this.autoplay.stop();
},
},
},
{
name: "effect-fade",
params: { fadeEffect: { crossFade: !1 } },
create: function () {
te.extend(this, { fadeEffect: { setTranslate: W.setTranslate.bind(this), setTransition: W.setTransition.bind(this) } });
},
on: {
beforeInit: function () {
var e = this;
if ("fade" === e.params.effect) {
e.classNames.push(e.params.containerModifierClass + "fade");
var t = { slidesPerView: 1, slidesPerColumn: 1, slidesPerGroup: 1, watchSlidesProgress: !0, spaceBetween: 0, virtualTranslate: !0 };
te.extend(e.params, t), te.extend(e.originalParams, t);
}
},
setTranslate: function () {
"fade" === this.params.effect && this.fadeEffect.setTranslate();
},
setTransition: function (e) {
"fade" === this.params.effect && this.fadeEffect.setTransition(e);
},
},
},
{
name: "effect-cube",
params: { cubeEffect: { slideShadows: !0, shadow: !0, shadowOffset: 20, shadowScale: 0.94 } },
create: function () {
te.extend(this, { cubeEffect: { setTranslate: j.setTranslate.bind(this), setTransition: j.setTransition.bind(this) } });
},
on: {
beforeInit: function () {
var e = this;
if ("cube" === e.params.effect) {
e.classNames.push(e.params.containerModifierClass + "cube"), e.classNames.push(e.params.containerModifierClass + "3d");
var t = { slidesPerView: 1, slidesPerColumn: 1, slidesPerGroup: 1, watchSlidesProgress: !0, resistanceRatio: 0, spaceBetween: 0, centeredSlides: !1, virtualTranslate: !0 };
te.extend(e.params, t), te.extend(e.originalParams, t);
}
},
setTranslate: function () {
"cube" === this.params.effect && this.cubeEffect.setTranslate();
},
setTransition: function (e) {
"cube" === this.params.effect && this.cubeEffect.setTransition(e);
},
},
},
{
name: "effect-flip",
params: { flipEffect: { slideShadows: !0, limitRotation: !0 } },
create: function () {
te.extend(this, { flipEffect: { setTranslate: U.setTranslate.bind(this), setTransition: U.setTransition.bind(this) } });
},
on: {
beforeInit: function () {
var e = this;
if ("flip" === e.params.effect) {
e.classNames.push(e.params.containerModifierClass + "flip"), e.classNames.push(e.params.containerModifierClass + "3d");
var t = { slidesPerView: 1, slidesPerColumn: 1, slidesPerGroup: 1, watchSlidesProgress: !0, spaceBetween: 0, virtualTranslate: !0 };
te.extend(e.params, t), te.extend(e.originalParams, t);
}
},
setTranslate: function () {
"flip" === this.params.effect && this.flipEffect.setTranslate();
},
setTransition: function (e) {
"flip" === this.params.effect && this.flipEffect.setTransition(e);
},
},
},
{
name: "effect-coverflow",
params: { coverflowEffect: { rotate: 50, stretch: 0, depth: 100, modifier: 1, slideShadows: !0 } },
create: function () {
te.extend(this, { coverflowEffect: { setTranslate: K.setTranslate.bind(this), setTransition: K.setTransition.bind(this) } });
},
on: {
beforeInit: function () {
var e = this;
"coverflow" === e.params.effect && (e.classNames.push(e.params.containerModifierClass + "coverflow"), e.classNames.push(e.params.containerModifierClass + "3d"), (e.params.watchSlidesProgress = !0), (e.originalParams.watchSlidesProgress = !0));
},
setTranslate: function () {
"coverflow" === this.params.effect && this.coverflowEffect.setTranslate();
},
setTransition: function (e) {
"coverflow" === this.params.effect && this.coverflowEffect.setTransition(e);
},
},
},
{
name: "thumbs",
params: { thumbs: { swiper: null, slideThumbActiveClass: "swiper-slide-thumb-active", thumbsContainerClass: "swiper-container-thumbs" } },
create: function () {
te.extend(this, { thumbs: { swiper: null, init: _.init.bind(this), update: _.update.bind(this), onThumbClick: _.onThumbClick.bind(this) } });
},
on: {
beforeInit: function () {
var e = this.params.thumbs;
e && e.swiper && (this.thumbs.init(), this.thumbs.update(!0));
},
slideChange: function () {
this.thumbs.swiper && this.thumbs.update();
},
update: function () {
this.thumbs.swiper && this.thumbs.update();
},
resize: function () {
this.thumbs.swiper && this.thumbs.update();
},
observerUpdate: function () {
this.thumbs.swiper && this.thumbs.update();
},
setTransition: function (e) {
var t = this.thumbs.swiper;
t && t.setTransition(e);
},
beforeDestroy: function () {
var e = this.thumbs.swiper;
e && this.thumbs.swiperCreated && e && e.destroy();
},
},
},
];
return void 0 === T.use && ((T.use = T.Class.use), (T.installModule = T.Class.installModule)), T.use(Z), T;
});
// qled.min.js
!(function i(a, o, s) {
function r(t, e) {
if (!o[t]) {
if (!a[t]) {
var n = "function" == typeof require && require;
if (!e && n) return n(t, !0);
if (l) return l(t, !0);
throw (((n = new Error("Cannot find module '" + t + "'")).code = "MODULE_NOT_FOUND"), n);
}
(n = o[t] = { exports: {} }),
a[t][0].call(
n.exports,
function (e) {
return r(a[t][1][e] || e);
},
n,
n.exports,
i,
a,
o,
s,
);
}
return o[t].exports;
}
for (var l = "function" == typeof require && require, e = 0; e < s.length; e++) r(s[e]);
return r;
})(
{
1: [
function (e, t, n) {
"use strict";
function B(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
}
function i(e, t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
(i.enumerable = i.enumerable || !1), (i.configurable = !0), "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i);
}
}
function L(e, t, n) {
return t && i(e.prototype, t), n && i(e, n), e;
}
function N(e) {
return (
(function (e) {
if (Array.isArray(e)) return a(e);
})(e) ||
(function (e) {
if (("undefined" != typeof Symbol && null != e[Symbol.iterator]) || null != e["@@iterator"]) return Array.from(e);
})(e) ||
(function (e, t) {
if (e) {
if ("string" == typeof e) return a(e, t);
var n = Object.prototype.toString.call(e).slice(8, -1);
return "Map" === (n = "Object" === n && e.constructor ? e.constructor.name : n) || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? a(e, t) : void 0;
}
})(e) ||
(function () {
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
})()
);
}
function a(e, t) {
(null == t || t > e.length) && (t = e.length);
for (var n = 0, i = new Array(t); n < t; n++) i[n] = e[n];
return i;
}
!(function () {
var t,
e,
o = -1 < document.getElementsByTagName("html")[0].className.indexOf("rtl"),
n =
((e = !(t = [])),
{
add: function (e) {
t.length || window.addEventListener("resize", i), (e = e) && t.push(e);
},
});
function i() {
e || ((e = !0), window.requestAnimationFrame ? window.requestAnimationFrame(a) : setTimeout(a, 66));
}
function a() {
t.forEach(function (e) {
e();
}),
(e = !1);
}
var s = 768 < window.innerWidth ? 2 : 1,
r = 768 < window.innerWidth ? 2 : 1,
l = !1,
c = 0;
Math.easeInOutQuad = function (e, t, n, i) {
return (e /= i / 2) < 1 ? (n / 2) * e * e + t : (-n / 2) * (--e * (e - 2) - 1) + t;
};
var d = (function () {
function e() {
B(this, e), (this.floatingWrap = document.getElementsByClassName("floating-navigation__wrap")[0]), (this.naviItems = document.getElementsByClassName("floating-navigation__menu-item")), (this.sections = document.getElementById("vd-2024").querySelectorAll(".vd-common")), (this.ticking = !1), (this.position = 0), (this.sectionIndex = 0), this.clickEvent();
}
return (
L(e, [
{
key: "motion",
value: function () {
var t,
i = this;
void 0 !== this.floatingWrap &&
((t = i.floatingWrap.offsetHeight),
N(i.sections)
.map(function (e) {
return Math.round(window.pageYOffset + e.getBoundingClientRect().top - t);
})
.reduce(function (e, t, n) {
return e <= c && c < t ? void (i.sectionIndex = n - 1) : t;
}),
N(i.naviItems).forEach(function (e) {
return e.classList.remove("active");
}),
0 !== i.sectionIndex && void 0 !== this.naviItems[i.sectionIndex - 1] && "#accessories" !== this.naviItems[i.sectionIndex - 1].getElementsByTagName("a")[0].getAttribute("href") && i.naviItems[i.sectionIndex - 1].classList.add("active"));
},
},
{
key: "clickEvent",
value: function () {
var d, u;
void 0 !== this.floatingWrap &&
((u = (d = this).floatingWrap.offsetHeight),
N(d.naviItems).forEach(function (e) {
var c = e.getElementsByTagName("a")[0];
c.addEventListener("click", function (e) {
e.preventDefault();
var n,
i,
a,
o,
s,
t = c.getAttribute("href").substring(1, c.getAttribute("href").length),
r = N(d.sections).find(function (e) {
return e.getAttribute("id") === t;
}),
e = Math.round(window.pageYOffset + r.getBoundingClientRect().top - u),
l = r.getElementsByTagName("h2")[0];
l.blur(),
l.setAttribute("tabindex", 0),
(n = document.documentElement),
(e = e + 5),
(i = 500),
(a = n.scrollTop),
(o = e - a),
(s = 0),
(function e() {
s += 20;
var t = Math.easeInOutQuad(s, a, o, i);
(n.scrollTop = t), s < i && setTimeout(e, 20);
})(),
setTimeout(function () {
l.focus();
}, 1250);
});
}),
N(d.sections).forEach(function (e) {
0 !== e.getElementsByTagName("h2").length &&
e.getElementsByTagName("h2")[0].addEventListener("focusout", function (e) {
e.target.removeAttribute("tabindex");
});
}));
},
},
]),
e
);
})(),
u = (function () {
function e() {
B(this, e), (this.imgs = document.getElementById("vd-2024").getElementsByTagName("img")), (this.lazyImg = document.getElementById("vd-2024").querySelectorAll(".lazy-img"));
}
return (
L(e, [
{
key: "lazy",
value: function () {
var n;
"IntersectionObserver" in window &&
((n = new IntersectionObserver(
function (e, t) {
e.forEach(function (e) {
e.isIntersecting &&
((e = e.target).classList.contains("vd-awards-img")
? N(document.getElementsByClassName("vd-awards-img")).forEach(function (e) {
(e.src = 2 === s ? e.getAttribute("data-src-pc") : e.getAttribute("data-src-mo")), e.classList.remove("lazy-img"), e.classList.add("lazy-completed");
})
: ((e.src = 2 === s ? e.getAttribute("data-src-pc") : e.getAttribute("data-src-mo")), e.classList.remove("lazy-img"), e.classList.add("lazy-completed")),
n.unobserve(e));
});
},
{ rootMargin: "50%", threshold: 0 },
)),
this.lazyImg.forEach(function (e) {
n.observe(e);
}));
},
},
{
key: "imgResize",
value: function () {
N(this.imgs).forEach(function (e) {
-1 === e.className.indexOf("lazy-img") && null !== e.getAttribute("data-src-pc") && null !== e.getAttribute("data-src-mo") && (e.src = 2 === s ? e.getAttribute("data-src-pc") : e.getAttribute("data-src-mo"));
});
},
},
]),
e
);
})(),
m = (function () {
function e() {
B(this, e), (this.kv = document.getElementById("vd-2024").getElementsByClassName("vd-qled-kv")[0]), (this.kvCopy1 = this.kv.querySelector(".vd-kv-cont01 .vd-kv-copy")), (this.textMotion = document.getElementById("vd-2024").getElementsByClassName("vd-header"));
}
return (
L(e, [
{
key: "elementTop",
value: function (e) {
return Math.round(window.pageYOffset + e.getBoundingClientRect().top);
},
},
{
key: "elementTrigger",
value: function (e) {
return Math.round(window.pageYOffset + e.getBoundingClientRect().top + 0.8 * e.getBoundingClientRect().height);
},
},
{
key: "scrollMotion",
value: function () {
window.innerHeight;
var e = document.querySelector(".vd-kv-manifesto .vd-image-wrap"),
e = (null !== e && this.elementTop(e), document.querySelector(".vd-kv-manifesto .vd-txt-wrap"));
this.elementTop(e);
},
},
]),
e
);
})(),
p = (function () {
function e() {
B(this, e), (this.isOpen = !1), (this.events = { click: this.onClickHandler.bind(this), clickClose: this.onClickCloseHandler.bind(this) }), (this.options = { target: "", position: ["center", "center"], headerTitle: "팝업", dimClickClose: !0 }), this.init();
}
return (
L(e, [
{
key: "init",
value: function () {
this.setElements(), this.bindEvent();
},
},
{
key: "setElements",
value: function () {
(this.kv = document.querySelector(".vd-qled-kv")), (this.cta = this.kv.querySelector(".cta")), (this.closeBtn = this.kv.querySelector(".bl_modal_btnClose")), (this.sections = document.querySelectorAll("header#header, nav#component-id, nav.breadcrumb, .pd-g-floating-nav, footer.footer, #vd-2024 > section:not(.vd-qled-kv), #vd-2024 > div, .nv16-country-selector, .cod05-app-banner")), (this.hideSection = document.querySelectorAll("#spr-live-chat-app, .QSIFeedbackButton, #teconsent")), (this.modalSlibling = document.querySelectorAll(".vd-cont-wrap > div:not(.bl_modal)")), (this.buttons = document.querySelectorAll("button:not(.bl_modal_btnClose, .vd-awards-blind-stop)")), (this.links = document.querySelectorAll("a"));
},
},
{
key: "bindEvent",
value: function () {
this.cta.addEventListener("click", this.events.click), this.closeBtn.addEventListener("click", this.events.clickClose);
},
},
{
key: "onClickHandler",
value: function () {
this.open("pop1");
},
},
{
key: "onClickCloseHandler",
value: function () {
var e = this;
this.close(),
setTimeout(function () {
e.cta.focus();
}, 200);
},
},
{
key: "firstFocus",
value: function (e) {
e.querySelectorAll('button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"]):not([disabled]), details:not([disabled]), summary:not(:disabled)')[0].focus();
},
},
{
key: "setHeaderTitle",
value: function () {
document.querySelector(".bl_modal_header").innerHTML = modalLayer.options.headerTitle;
},
},
{
key: "setLayerOpenAttribute",
value: function (e, t) {
for (var n in t) e.setAttribute(n, t[n]);
},
},
{
key: "setNewOptions",
value: function (e, t) {
(e = e.querySelector(".bl_modal__inner")), (t = Object.assign({}, modalLayer.options, t));
e.style.cssText = "\n width: ".concat(t.options.width, " ? ").concat(t.options.width, " : '';\n ");
},
},
{
key: "setPreventBodyScrollOn",
value: function () {
$("html").css({ height: window.innerHeight, overflowY: "hidden", touchAction: "none" });
},
},
{
key: "setPreventBodyScrollOff",
value: function () {
$("html").css({ height: "", overflowY: "", touchAction: "" });
},
},
{
key: "open",
value: function (e, t) {
(this.isOpen = !0), (e = document.querySelector("#" + e)), this.setLayerOpenAttribute(e, { "aria-modal": "true", "aria-hidden": "false" }), e.classList.contains("bl_modal--full") || e.classList.contains("bl_modal--bottomSheet") || e.classList.contains("bl_modal--toast") || e.querySelector(".bl_modal__inner").classList.add("bl_modal__inner--center");
var n = e.querySelector(".bl_modal__inner");
Object.assign({}, this.options, t);
this.setPreventBodyScrollOn(),
this.firstFocus(e),
this.options.dimClickClose &&
e.addEventListener("click", function (e) {
e.target.classList, e.currentTarget.classList;
}),
null != e && (((n = n.querySelector(".videoIframe")).src = n.getAttribute("data-src")), this.setA11yOpen());
},
},
{
key: "close",
value: function () {
this.isOpen = !1;
var e = document.querySelector('.bl_modal[aria-hidden="false"]');
this.setLayerOpenAttribute(e, { "aria-modal": "false", "aria-hidden": "true" }), this.setPreventBodyScrollOff(), (e.querySelector(".videoIframe").src = ""), this.setA11yClose();
},
},
{
key: "setA11yOpen",
value: function () {
var t = this;
Array.from(this.sections).forEach(function (e) {
t.setAttributeSectionEl(e);
}),
Array.from(this.modalSlibling).forEach(function (e) {
t.setAttributeSectionEl(e);
}),
Array.from(this.buttons).forEach(function (e) {
t.disableClickableEl(e);
}),
Array.from(this.links).forEach(function (e) {
t.disableClickableEl(e);
}),
(this.hideSection = document.querySelectorAll("#spr-live-chat-app, .QSIFeedbackButton, #teconsent")),
Array.from(this.hideSection).forEach(function (e) {
e.style.display = "none";
});
},
},
{
key: "setA11yClose",
value: function () {
var t = this;
Array.from(this.sections).forEach(function (e) {
t.resetAttributeSectionEl(e);
}),
Array.from(this.modalSlibling).forEach(function (e) {
t.resetAttributeSectionEl(e);
}),
Array.from(this.buttons).forEach(function (e) {
t.resetClickableEl(e);
}),
Array.from(this.links).forEach(function (e) {
t.resetClickableEl(e);
}),
Array.from(this.hideSection).forEach(function (e) {
e.style.display = "block";
});
},
},
{
key: "setAttributeSectionEl",
value: function (e) {
e.setAttribute("aria-hidden", !0), e.setAttribute("role", "none presentation"), e.setAttribute("aria-disabled", !0), e.setAttribute("tabindex", -1);
},
},
{
key: "resetAttributeSectionEl",
value: function (e) {
e.removeAttribute("aria-hidden"), e.removeAttribute("role"), e.removeAttribute("aria-disabled"), e.removeAttribute("tabindex");
},
},
{
key: "disableClickableEl",
value: function (e) {
e.setAttribute("aria-disabled", !0), e.setAttribute("tabindex", -1);
},
},
{
key: "resetClickableEl",
value: function (e) {
e.removeAttribute("aria-disabled"), e.removeAttribute("tabindex");
},
},
]),
e
);
})(),
v = (function () {
function e() {
B(this, e), (this.videos = document.getElementById("vd-2024").getElementsByTagName("video")), (this.options = { threshold: 0.999 }), (this.videoObserver = []), this.buttonEvent(), this.videoClickEvent();
}
return (
L(e, [
{
key: "setting",
value: function () {
N(this.videos).forEach(function (e) {
e.getElementsByTagName("source") &&
N(e.getElementsByTagName("source")).forEach(function (e) {
return e.remove();
});
var t = 2 === s ? e.getAttribute("data-poster-pc") : e.getAttribute("data-poster-mobile"),
n = 2 === s ? e.getAttribute("data-video-pc") : e.getAttribute("data-video-mobile"),
i = document.createElement("source"),
a = document.createElement("source");
i.setAttribute("src", n + ".webm"), i.setAttribute("type", "video/webm"), a.setAttribute("src", n + ".mp4"), a.setAttribute("type", "video/mp4"), e.setAttribute("poster", t), e.appendChild(i), e.appendChild(a), e.load();
});
},
},
{
key: "sectionPlay",
value: function () {
var i = this;
"IntersectionObserver" in window &&
N(i.videos).forEach(function (e, t) {
var n = e.closest(".vd-video-area");
void 0 !== i.videoObserver[t] && i.videoObserver[t].unobserve(n),
(i.options.threshold = window.innerHeight > n.offsetHeight ? 0.85 : 0.25),
(i.videoObserver[t] = new IntersectionObserver(function (e, t) {
e.forEach(function (e) {
!e.isIntersecting || (((e = e.target.querySelector("video")).paused || e.ended) && ((e.currentTime = 0), e.play(), i.control(e, "play")));
});
}, i.options)),
i.videoObserver[t].observe(n),
e.addEventListener("ended", function () {
i.control(e, "pause");
});
});
},
},
{
key: "action",
value: function (e, t) {
t = t.classList.contains("vd-btn-play") ? "play" : "pause";
this.control(e, t), "play" == t ? e.play() : e.pause();
},
},
{
key: "videoClickEvent",
value: function () {
var n = this;
function t(e) {
var t = e.target,
e = "playing" === e.type ? "play" : "pause";
n.control(t, e);
}
N(n.videos).forEach(function (e) {
e.addEventListener("pause", t), e.addEventListener("playing", t);
});
},
},
{
key: "buttonEvent",
value: function () {
var a = this;
N(a.videos).forEach(function (t) {
var i = t.closest(".vd-video-wrap").getElementsByClassName("vd-btn-control")[0],
n = document.getElementsByClassName("floating-navigation__inner")[0].getBoundingClientRect().height;
i.addEventListener("click", function () {
a.action(t, i);
}),
i.addEventListener("keyup", function (e) {
var t = window.innerHeight,
n = window.pageYOffset + i.getBoundingClientRect().top;
window.scrollTo(0, n - t / 2);
}),
i.addEventListener("focus", function (e) {
var t = window.innerHeight,
t = window.scrollY + i.getBoundingClientRect().top - t / 2;
i.getBoundingClientRect().top < n && window.scrollTo(0, t);
}),
i.addEventListener("keydown", function (e) {
"enter" === e.key.toLowerCase() && (e.preventDefault(), a.action(t, i));
});
});
},
},
{
key: "control",
value: function (e) {
var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : "play",
n = e.closest(".vd-video-wrap").getElementsByClassName("vd-btn-control")[0];
"play" === t
? (n.classList.remove("vd-btn-play"),
n.classList.add("vd-btn-pause"),
setTimeout(function () {
n.setAttribute("an-la", n.getAttribute("an-la").replace("play", "stop"));
}, 0))
: (n.classList.remove("vd-btn-pause"),
n.classList.add("vd-btn-play"),
setTimeout(function () {
n.setAttribute("an-la", n.getAttribute("an-la").replace("stop", "play"));
}, 0));
},
},
]),
e
);
})(),
f = (function () {
function e() {
B(this, e), (this.anchor = document.getElementById("vd-2024").getElementsByClassName("vd-disc-txt")), (this.discList = document.getElementById("vd-2024").querySelectorAll(".vd-desc-list > li")), this.move();
}
return (
L(e, [
{
key: "move",
value: function () {
var t = this;
N(t.anchor).forEach(function (i) {
i.addEventListener("click", function (e) {
e.preventDefault(), t.action(i, "click");
}),
i.addEventListener("keyup", function (e) {
var t = window.innerHeight,
n = window.pageYOffset + i.getBoundingClientRect().top;
window.scrollTo(0, n - t / 2);
}),
i.addEventListener("keydown", function (e) {
"enter" === e.key.toLowerCase() && (e.preventDefault(), t.action(i, "enter"));
});
});
},
},
{
key: "action",
value: function (e, t) {
var n = e.getAttribute("href").substring(1, e.getAttribute("href").length),
i = N(this.discList).find(function (e) {
return -1 < e.getAttribute("id").indexOf(n);
}),
a = document.createElement("a"),
e = window.pageYOffset + i.getBoundingClientRect().top - (0 < document.getElementsByClassName("floating-navigation__inner").length ? 300 : 0);
(a.innerHTML = i.innerHTML),
"enter" === t && (a.classList.add("focus-visible"), a.setAttribute("data-focus-visible-added", "")),
a.setAttribute("tabindex", 0),
(i.innerText = ""),
i.appendChild(a),
i.getElementsByTagName("a")[0].focus(),
window.scrollTo(0, e),
i.getElementsByTagName("a")[0].addEventListener("focusout", function () {
i.innerHTML = a.innerHTML;
});
},
},
]),
e
);
})(),
h = (function () {
function e() {
B(this, e), (this.wrap = document.querySelector(".vd-innovative-wrap")), (this.items = this.wrap.querySelectorAll(".innovative-item")), (this.tabButtons = this.wrap.querySelectorAll(".ai-innovative-tab")), this.init();
}
return (
L(e, [
{
key: "init",
value: function () {
this.setTabProperties(0), this.bindEvents();
},
},
{
key: "bindEvents",
value: function () {
var n = this;
Array.from(this.tabButtons).forEach(function (e, t) {
e.addEventListener("click", function () {
return n.setTabProperties(t);
});
});
},
},
{
key: "setMinHeight",
value: function () {
var e = this.items[0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : 0],
e = Math.round(e.getBoundingClientRect().height);
this.wrap.style.minHeight = "".concat(e, "px");
},
},
{
key: "setTabProperties",
value: function () {
var i = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : 0;
Array.from(this.items).forEach(function (e, t) {
var n = e.querySelector("button"),
e = e.querySelector(".vd-item-inner");
t === i && (n.classList.add("active"), e.setAttribute("aria-hidden", !1), (e.style.display = "block")), t !== i && (n.classList.remove("active"), e.setAttribute("aria-hidden", !0), (e.style.display = "none"));
});
},
},
]),
e
);
})(),
y = (function () {
function e() {
B(this, e),
(this.designWrap = document.getElementById("design")),
(this.designSlide = this.designWrap.getElementsByClassName("vd-design-slide-list")[0]),
(this.swiperPagination = this.designWrap.getElementsByClassName("swiper-pagination")[0]),
(this.swiper = null),
(this.swiperOption = {
init: !1,
slidesPerView: 1,
centeredSlides: !0,
loop: !0,
navigation: { nextEl: ".vd-design-slide-wrap .swiper-button-next", prevEl: ".vd-design-slide-wrap .swiper-button-prev" },
pagination: {
el: this.swiperPagination,
type: "bullets",
clickable: !1,
renderBullet: function (e, t) {
return '\n
\n \n
\n ');
},
},
a11y: { enabled: !0, prevSlideMessage: "Previous Slide", nextSlideMessage: "Next Slide" },
}),
this.slide();
}
return (
L(e, [
{
key: "slide",
value: function () {
var t = this,
n = this;
(n.swiper = new Swiper(n.designSlide, n.swiperOption)),
n.swiper.on("init", function () {
new u().lazy();
var e = t.swiper;
n.setPaginationEvent(e), n.a11yPagination(e);
}),
n.swiper.on("transitionStart", function () {
var e = this;
n.a11ySlides(e),
setTimeout(function () {
n.a11yPagination(e), n.a11yNavigation(e);
}, 10);
}),
n.swiper.init();
},
},
{
key: "setPaginationEvent",
value: function (i) {
Array.from(i.pagination.el.children).forEach(function (e, t) {
function n() {
return i.slideToLoop(t, 500);
}
e = e.querySelector("button");
e.addEventListener("click", function () {
n();
}),
e.addEventListener("keydown", function (e) {
"Enter" === e.key && n();
});
});
},
},
{
key: "a11ySlides",
value: function (e) {
var t = e.activeIndex;
Array.from(e.slides).forEach(function (e) {
return e.setAttribute("aria-hidden", "true");
}),
e.slides[t].setAttribute("aria-hidden", "false");
},
},
{
key: "a11yNavigation",
value: function (e) {
var t = e.navigation.prevEl,
e = e.navigation.nextEl;
t.classList.contains("swiper-button-disabled") && e.focus(), e.classList.contains("swiper-button-disabled") && t.focus();
},
},
{
key: "a11yPagination",
value: function (e) {
var n = document.querySelector(".vd-design-slide-wrap h3.blind").textContent;
Array.from(e.pagination.el.children).forEach(function (e, t) {
e = e.querySelector("button");
e.setAttribute("aria-label", "".concat(n, " ").concat(t + 1)), e.classList.contains("swiper-pagination-bullet-active") && e.setAttribute("aria-selected", "true"), e.classList.contains("swiper-pagination-bullet-active") || e.setAttribute("aria-selected", "false");
});
},
},
]),
e
);
})(),
g = (function () {
function e() {
B(this, e), (this.productData = _qledProduct), (this.compareWrap = document.getElementsByClassName("vd-compare-wrap")[0]), (this.compareProductWrap = this.compareWrap.getElementsByClassName("vd-compare-product")[0]), (this.compareProductInner = this.compareProductWrap.getElementsByClassName("compare-product-inner")[0]), (this.compareProductList = this.compareProductInner.getElementsByClassName("compare-product-list")[0]), (this.compareTab = document.getElementsByClassName("vd-compare-tab")[0].getElementsByClassName("btn-compare-tab")), (this.compareSelectItem = this.compareWrap.getElementsByClassName("compare-list-item")), (this.selectBoxList = this.compareWrap.getElementsByClassName("select-list-cont")), (this.selectBoxHiddenList = this.compareWrap.getElementsByClassName("compare-hidden-list")), (this.anchor = this.compareWrap.getElementsByClassName("vd-compare-disc")), (this.discList = document.getElementById("vd-2024").querySelectorAll(".vd-desc-list > li")), (this.compareDefaultSet = N(_defaultSet)), (this.compareSelectOption = N(_defaultSet)), (this.mode = "line-up"), (this.swiper = null), (this.swiperOption = { pc: { slidesPerView: 4, watchSlidesVisibility: !0, navigation: { nextEl: ".vd-compare-button-next.swiper-button-next", prevEl: ".vd-compare-button-prev.swiper-button-prev" }, a11y: { enabled: !0, prevSlideMessage: "Previous Slide", nextSlideMessage: "Next Slide" } }, mobile: { slidesPerView: 2, watchSlidesVisibility: !0, freeMode: !1, mousewheel: !0, navigation: { nextEl: ".vd-compare-button-next.swiper-button-next", prevEl: ".vd-compare-button-prev.swiper-button-prev" }, a11y: { enabled: !0, prevSlideMessage: "Previous Slide", nextSlideMessage: "Next Slide" } } }), (this.productTitleList = _qledProduct), this.selectboxGrid(), this.dataGrid(), this.tab(), this.selectBoxEvent(), this.slide(), this.tooltip(), this.accessibilityContent(), this.accessibilityKey(), this.accessibilityResize(), this.move();
}
return (
L(e, [
{
key: "productTitleList",
set: function (e) {
var t,
n = [];
for (t in e) n.push(t);
this._productTitleList = n;
},
},
{
key: "resetTarget",
value: function () {
(this.anchor = this.compareWrap.getElementsByClassName("vd-compare-disc")), this.move();
},
},
{
key: "onClickAnchor",
value: function (e, t) {
e.preventDefault(), this.action(t, "click");
},
},
{
key: "onKeyupAnchor",
value: function (e, t) {
var n = window.innerHeight,
t = window.pageYOffset + t.getBoundingClientRect().top;
window.scrollTo(0, t - n / 2);
},
},
{
key: "onKeydownAnchor",
value: function (e, t) {
"enter" === e.key.toLowerCase() && (e.preventDefault(), this.action(t, "enter"));
},
},
{
key: "move",
value: function () {
var n = this;
N(n.anchor).forEach(function (t) {
t.addEventListener("click", function (e) {
return n.onClickAnchor(e, t);
}),
t.addEventListener("keyup", function (e) {
return n.onKeyupAnchor(e, t);
}),
t.addEventListener("keydown", function (e) {
return n.onKeydownAnchor(e, t);
});
});
},
},
{
key: "onMoveSelect",
value: function (e) {
var n = this;
N(document.querySelector(".compare-product-list").children[e].querySelectorAll(".vd-compare-disc")).forEach(function (t) {
t.addEventListener("click", function (e) {
return n.onClickAnchor(e, t);
}),
t.addEventListener("keyup", function (e) {
return n.onKeyupAnchor(e, t);
}),
t.addEventListener("keydown", function (e) {
return n.onKeydownAnchor(e, t);
});
});
},
},
{
key: "action",
value: function (e, t) {
var n = e.getAttribute("href").substring(1, e.getAttribute("href").length),
i = N(this.discList).find(function (e) {
return -1 < e.getAttribute("id").indexOf(n);
}),
a = document.createElement("a"),
e = window.pageYOffset + i.getBoundingClientRect().top - (0 < document.getElementsByClassName("floating-navigation__inner").length ? 300 : 0);
(a.innerHTML = i.innerHTML),
"enter" === t && (a.classList.add("focus-visible"), a.setAttribute("data-focus-visible-added", "")),
(i.innerText = ""),
a.setAttribute("tabindex", 0),
i.appendChild(a),
i.getElementsByTagName("a")[0].focus(),
window.scrollTo(0, e),
i.getElementsByTagName("a")[0].addEventListener("focusout", function (e) {
i.innerHTML = a.innerHTML;
});
},
},
{
key: "getInnerHTML",
value: function (e) {
if (0 < e.querySelectorAll("a a").length) {
var t = e.querySelectorAll("a a");
return t[t.length - 1].innerHTML;
}
return e.getElementsByTagName("a")[0].innerHTML;
},
},
{
key: "selectboxGrid",
value: function () {
var a = this;
N(a.selectBoxList).forEach(function (n, i) {
var e = document.createElement("ul");
e.classList.add("select-list-inner"),
e.setAttribute("role", "listbox"),
n.appendChild(e),
a._productTitleList.forEach(function (e) {
var t = document.createElement("li");
t.classList.add("select-list-option"), t.setAttribute("role", "presentation"), a.compareDefaultSet[i] === e && (t.classList.add("on"), (n.parentElement.previousElementSibling.getElementsByClassName("compare-select-text")[0].innerText = e)), (t.innerHTML = '\n \n ")), n.getElementsByTagName("ul")[0].appendChild(t);
}),
n.querySelector(".select-list-option.on").getElementsByTagName("button")[0].setAttribute("aria-selected", !0);
}),
N(a.selectBoxHiddenList).forEach(function (n, i) {
a._productTitleList.forEach(function (e) {
var t = document.createElement("option");
(t.innerText = e), n.appendChild(t), t.value === a.compareDefaultSet[i] && ((t.selected = !0), t.setAttribute("selected", ""));
});
});
},
},
{
key: "dataGrid",
value: function () {
var e,
t = document.createDocumentFragment(),
n = Array.from(document.querySelectorAll(".vd-compare-category-list .vd-compare-category-text")).map(function (e) {
return { title: e.dataset.categoryText.toLowerCase(), blind: e.firstChild.textContent };
});
for (e in (o && this.compareProductInner.setAttribute("dir", "rtl"), this.productData)) {
var i = document.createElement("div"),
a = this.productData[e];
i.classList.add("compare-product-item"), i.classList.add("swiper-slide");
(i.innerHTML = '\n
* Les accessoires comme la souris et le clavier sont vendus séparément.
* Le service Samsung Health est disponible aux États-Unis, au Canada, en Corée et au Royaume-Uni. Les appareils compatibles Smart Trainer peuvent varier selon le pays. Les partenaires et le contenu peuvent varier selon la région.
* Des accessoires compatibles supplémentaires (par ex., appareil photo) sont nécessaires (rendez-vous sur [*] pour plus d’informations). Vendu séparément.
* Les images sont simulées à des fins d’illustration uniquement. Les caractéristiques d’apparence et de design qui n’affectent pas les performances du produit sont susceptibles d’être modifiées sans préavis.
* L’expérience de visionnement peut varier en fonction des types de contenu et de format. La mise à l’échelle peut ne pas s’appliquer à la connexion PC et au mode Jeu.
* Pour recharger la télécommande à l’énergie solaire, installez la télécommande du téléviseur avec le panneau solaire orienté vers le haut. Placez-la dans votre salon pendant que vos lumières sont allumées, ou près d’une fenêtre où elle profitera de la lumière naturelle du soleil.
* Veuillez consulter les caractéristiques du produit pour chaque modèle.
Recevoir une alerte de stock
Get alert when this item is back in stock and available to buy, by adding your email to opt into alerts.
Please double check your email address.
We will email you when inventory is added.
Nous vous remercions.
Enregistrement de l'appareil
Quick and easy product registration.. Receive up-to-date personalized services and tips.
Serial Number/IMEI
Enter your Serial Number/IMEI
QR Scan
Scan the QR code on your products for easy registration.
* This feature can only be supported on Samsung Home Appliances and non-smart B2C monitors.
Enter your Serial Number/IMEI
Quick and easy product registration.
Please enter the 11 or 15- digit number.
This product is already registered. Make sure you entered the right serial number or IMEI.
iaType
iaSubType
iaCategory
Back view
The serial number and model name are printed on the label located on the lower left side of the device’s exterior, near the front. They are also on a second label, inside the refrigerator compartment on a side wall above the top shelf.
Back view
The serial number and model name are printed on the label located on the lower left side of the device’s exterior, near the front. They are also on a second label, inside the refrigerator compartment on a side wall above the top shelf.
Product registration is almost complete!!
You've entered a valid S/N or IMEI. Now select the model of your product.
Recherches suggérées
No result. Please try again.
Galaxy Book3 Ultra
SM-G996BZKGEUA
Serial Number: R3CR508WNAH
The device you are currently using does not support the camera function.