يستخدم هذا الموقع الإلكتروني ملفات تعريف الارتباط، وبالتالي فإن مجرد الضغط على "أوافق"، أو متابعة تصفح الموقع، يعني أنك موافق على استخدام هذه الملفات.
اكتشف المزيد هنا
يظهر الفاصل الزمني لمنظر طبيعي للمدينة ينتقل من النهار إلى الليل على الشاشة الرئيسية لهاتف Galaxy Z Flip6 حيث يزيد عدد سعة البطارية إلى 4000 مللي أمبير ساعة كحد أقصى.
"هاتف Galaxy Z Flip6 يضيف الإمكانات الفائقة التي يتميز بها الجهاز الرئيسي الحقيقي"
Digital Trends
"أداء رائع وعمر بطارية ممتاز"
Forbes
التصميم
عرض هاتف Galaxy Z Flip6 وهو يغلق من الجانب. يفتح من جديد، ويدور مع تغير زاويته إلى وضع FlexMode.
كثير المزايا
يتميّز التصميم الجديد لهاتف Galaxy Z Flip6 بأنه عصري، ونحيف وأنيق. كما يعتبر أصغر هواتفنا الذكيّة حتى الآن.
زاهي الألوان، ممتع، ورائع
ابحث عن لونك المفضل.
عرض ثلاثي الأبعاد بزاوية 360°حصريا عبر الإنترنت
أزرقأصفرنعناعيفضي قاتم
ضبط الزاوية
أزرقأصفرنعناعيفضي قاتم
ضبط الزاوية
Galaxy AI تتوفّر الآن على هواتف Galaxy القابلة للطي
هاتف Galaxy Z Flip6 دليلك الأمثل للتواصل - فهو بمثابة مترجمك الشخصي. ,
يتم نسخ محادثة بلغتين مع ترجمتها لحظة بلحظة.
اضغط لتجربة
تعمل تقنية Galaxy AI على نسخ المحادثة الهاتفية بالزمن الفعلي، و تعرض الترجمة النصية لكل لغة على الشاشة.
اضغط لتجربة
يعمل زر الشاشة المزدوجة على تفعيل تطبيق المترجم الفوري من شاشة الغطاء.
ميزة CHAT ASSIST
دردش بسلاسة، حتى لو كان الهاتف مغلقاً
أرسل الرسائل مباشرةً من نافذة FlexWindow باستخدام ميزة CHAT ASSIST ما عليك سوى الاختيار من بين الردود المقترحة - التي تم تنسيقها عبر تقنية context-aware AI.
تظهر محادثة الرسائل النصية في FlexWindow لهاتف Galaxy Z Flip6.
انقر للتجربة
تقدّم خاصية Suggested Replies ثلاثة ردود محتملة لإرسالها إلى صديق. بناءً على المحادثة النصية، توافق الردود على اقتراح الصديق بالذهاب للتزلج على اللوح معاً.
نافذتك على ذوقك
واجهة ساعة FlexWindow تعرض صورة لامرأة مع مؤشرات تفاعلية تمثل أنواعا مختلفة من الطقس.
واجهة ساعة بنمط FlexWindow مع تصميم تفاعلي للخضروات.
واجهة ساعة FlexWindow تعرض صورة لامرأة مع عناصر تفاعلية تمثل أنواعا مختلفة من الطقس.
واجهة ساعة FlexWindow مع تصميم تفاعلي للخضروات.
دردش مع Google Gemini لتقدح زناد أفكارك
بفضل الشراكة طويلة الأمد بين Samsung وGoogle، أصبح هاتف Galaxy الآن مزوّداً بتطبيق Google Gemini. Chat مع Gemini للحصول على help للتعلّم بطرق جديدة وكتابة رسائل الشكر والتخطيط للفعاليات، والمزيد.
أبحر في عالم الذكاء الاصطناعي AI
دائرة البحث
ارسم دائرة حول أي جسم أو نص تود البحث عنه واحصل مباشرةً على نتائج البحث من محرّك Google.
ميزة Live Translate
احصل على الترجمة الصوتية لحظة بلحظة على تطبيقات مختلفة عند إجراء المكالمات.
ميزة Transcript Assist
نسخ محادثاتك المسجّلة وحوّلها إلى نص قابل للتحرير في لمح البصر.
50 ميجابكسلكاميرا جديدة.صور بورتريه مذهلة
تصوير Galaxy Z Flip6#withGalaxy
صور بورتريه ليلية مشرقة
التقط صوراً مذهلة سواءً في النهار أوالليل أيضاً - وحتى في المناطق ذات الإضاءة الخافتة. استخدم ميزة التصوير الليلي Nightography لضمان تألّق كل صورة بأدق التفاصيل بفضل محرّك ProVisual .
أقوى كاميرا لهاتف Galaxy Z Flip الآن مع تقنية AI
تعمل الكاميرا الخلفية الواسعة بدقّة 50 ميجابكسل والتي تم تطويرها على معالجة صورك من خلال محرك ProVisual، مما يتيح لك تصوير مشاهد ساحرة والتقاط صور بورتريه غنية. ,,,,,
محرك ProVisual
كاميرا خلفية
50 ميجابكسلزاوية تصوير واسعةتقريب 2x Optical Quality Zoom
12 ميجابكسلزاوية تصوير فائقة الاتساع
ميزة FlexCam. صوّر من أفضل زاوية.
تستخدم ميزة FlexCam وظيفة التقريب التلقائي لتقريب أو تبعيد اللقطة، وتتمّ معاينتها على FlexWindow للحصول على أفضل تجربة سيلفي دون استخدام اليدين.
تظهر صورة لثلاثة أصدقاء على FlexWindow في هاتف Galaxy Z Flip6. تُستخدم خاصية Galaxy AI لتكبير العناصر من دون لمس الهاتف.
تصوير Galaxy Z Flip6#withGalaxy
اختبر المفهوم الجديد لصور البورتريه مع الكاميرا الخلفية
استخدم FlexWindow لمعاينة اللقطة أثناء تصويرها بدقة 50 ميجابكسل. ثمّ التقط صور بورتريه مشرقة ومفصّلة حتى ولو كانت الخلفية مضاءة.
تصوير Galaxy Z Flip6#withGalaxy
ميزة PHOTO ASSIST
حرّر الصور بسهولة مع تقنية Galaxy AI
ميزة Generative Edit
أظهر إبداعك مع ميزة التحرير Generative Edit الخاصة بميزة مساعد التصوير Photo Assist لنقل أي جزء من الصورة أو تغيير حجمها أو حذفها أو ملء الخلفية التي كانت تشغلها.
يتم تحديد أحد الأجسام ونقلها إلى مكان آخر في الصورة، مع ملء المساحات المفقودة عبر تقنية AI.
ميزة Instant Slow-mo
ركّز على اللقطات الرئيسية من خلال استعمال ميزة الحركة البطيئة في مقاطع الفيديو ومشاركتها أو حفظها.
يتم تشغيل الفيديو ويتباطأ تدريجياً عند الضغط على الشاشة لعرض المشهد بالحركة البطيئة.
تصوير Galaxy Z Flip6#withGalaxy
ميزة Live Effect
أضف عمقاً لجعل صورك تنبض بالحياة
صورة تظهر استعمال ميزة المؤثرات المباشرة لإضفاء مؤثرات ثلاثية الأبعاد.
شاهد والتقط وشارك، حتى في الليل
تبقى التفاصيل جذّابة ونقية وواضحة، حتى في الظلام. التقط وانشر على الفور على Instagram باستخدام الوضع الليلي للكاميرا داخل التطبيق.,
تصوير Galaxy Z Flip6#withGalaxy
بطارية هاتف Galaxy Z Flip الأطول عمراً
تعرف على أكبر بطارية Flip حتى الآن التي تعمل مع معالج Snapdragon® 8 Gen 3 لهواتف Galaxy لتتمكّن من التحدّث والكتابة ممارسة الألعاب بمنتهى الكفاءة طوال اليوم.,
4000
4000مللي أمبير/ساعة
استمع للموسيقى لغاية
68ساعة
شاهد مقاطع فيديو لغاية
23ساعة
أسرع معالج Snapdragon لهاتف Galaxy Z Flip حتى الآن.,
أول موزع للحرارة Vapor Chamber في هاتف Galaxy Z Flip
حافظ على برودة الجهاز وهدوئه وتشغيله بسلاسة بفضل موزعّ الحرارة Vapor Chamber الذي يبدّد الحرارة العالية بسرعة.
عرض محتوى الهاتف Galaxy Z Flip6 مع ظهور مجموعتين من الأسهم الخارجة منه في إشارة إلى تدفق الحرارة بعيدا عنه.
متين، موثوق، ومُصمّم ليدوم.
ميزة Reinforced Folding Edge
محصّن لتحمل الكثير من الضغط
متين بتصميمه
تعرف على المفصلة المرنة FlexHinge النحيفة والمبتكرة.
مُحصّن بالألمنيوم
إطار Armor Aluminum معزّز لحماية الجهاز.,
صمود بلا حدود
حماية فائقة مع زجاج Corning® Gorilla® Glass Victus® 2
مُقاوم للماء
تصنيف IP48 لمقاومة الماء سواء في حال الغمر أو التعرّض للسكب
لماذا التحويل إلى هاتف Galaxy
حوّل من هاتف iOS بمنتهى البساطة
حوّل من هاتف iOSبسهولة فائقة. فمع ميزة Smart Switch يمكنك نقل صورك وفيديوهاتك وجهات الاتصال والتطبيقات دون أي جهد يذكر.,,
شارك ملفاتك وبياناتك ومحتوياتك بين الأجهزة بما فيها هواتف iOS والحواسب الشخصية. استمتع بطريقة سريعة وآمنة لمشاركة ملفاتك.
خصوصيتك في أيدٍ أمينة
لضمان الخصوصية والأمان، تحقّق بسرعة من التطبيقات التي تستطيع الوصول إلى معلوماتك، ثم قم بتعديل إعداداتك بالشكل الذي يلائم خصوصيتك. وباستعمال مزايا الذكاء المتطوّرة ، يمكنك معالجة البيانات الخاصّة بخدمات الذكاء الاصطناعي سواء من جهاز Galaxy أو على الشبكة السحابية.
سارع بالتغيير إلى Galaxy
بدِّل هاتفك واقتنِ Galaxy، الأمر سهل للغاية. ارتقِ بتجربتك بميزات حصرية لمستخدمي Galaxy.
تمّ تزويد هاتف Galaxy Z Flip6 بالعديد من مزايا الذكاء الاصطناعي التي تجذبك إليها، بما في ذلك الردود المقترحة، وهي ميزة جديدة تقترح الرسائل النصية باستخدام الذكاء الاصطناعي بحيث تتمكن من الرد حتى عندما يكون الهاتف Galaxy Z Flip6 مغلقاً - وهو مثالي أثناء التنقل. وهناك مزايا ذكاء اصطناعي إضافية، مثل الترجمة المباشرة والمترجم الفوري. كما تحصل الكاميرا على ترقية الذكاء الاصطناعي بواسطة محرك ProVisual الذي يطبق جودة الصورة المحسنة على عناصر اللقطة للحصول على صور أكثر مثالية. ,,
هاتف Galaxy Z Flip6 مجهز بكاميرا خلفية واسعة بدقة 50 ميجابكسل ومحرك ProVisual للصور الأكثر سطوعاً ووضوحاً. وعند التقاط صور بورتريه، يمكنك أنت والشخص المصوَّر معاينة اللقطة بفضل ميزة FlexWindow . ليس هذا فحسب، بل يمكنك أيضاً من خلال ميزة FlexWindow، التقاط صور سيلفي بشكل أسهل من أي وقت مضى.,
تم تصميم ميزة FlexCam للارتقاء بتجربة السيلفي من خلال التصوير بالكاميرا الخلفية دون لمسها. فميزة Auto Zoom تساعدك في التقاط الصور من أفضل زاوية دون عناء عن طريق تقريب أو توسيع اللقطة، ثم معاينتها عبر ميزة FlexWindow، كما أن ميزة التقريب AI zoom ستضمن لك الحصول على صور فائقة الجودة.,
هاتف Galaxy Z Flip6 أصغر ويمتاز بتصميم بارز جديد ومطور مقارنة بهاتف Galaxy Z Flip5، مما يعطي إحساساً بأن الشاشة تطفو وتحوم فوق الإطار. كما يتميز الهاتف بفاصل كاميرا جريئة. ,,
يمتاز هاتف Galaxy Z Flip6 ببطارية ذات سعة 4000 مللي أمبير/ساعة، لترفيه يدوم طوال اليوم. هكذا يمكنك الاستمتاع بنحو 68 ساعة من الموسيقى أو مشاهدة مقاطع فيديو لمدة تصل إلى 23 ساعة. ,,
يتمتع هاتف Galaxy Z Flip6 بسعة بطارية أكبر بمعدل 300 مللي أمبير/ساعة مقارنة بهاتف Galaxy Z Flip5، وكاميرا خلفية عريضة بدقة 50 ميجابكسل وأول نظام تبريد Vapor Chamber على الإطلاق في هاتف Galaxy Z Flip.
يُعد هاتف Galaxy Z Flip6 مقاومًا للماء بشكلٍ محدود، وليس مقاومًا للماء تمامًا. يتمتع الهاتف بتصنيف IP48، ويعني هذا التصنيف أنه محمي من دخول الغبار والأجسام التي يزيد حجمها عن 1 ملليمتر.
يقدم هاتف جالاكسي Galaxy Z Flip6 تصميمًا فريدًا وأنيقًا مع شاشة قابلة للطي تعمل على تعزيز قابليتة للحمل مع الحفاظ على حجم الشاشة. كما يتميز بتكنولوجيا متطورة، بما في ذلك معالج قوي وكاميرات عالية الدقة وبطارية تدوم طويلاً. وبفضل تصميمه المتين ومقاومته للماء ووضع Flex المبتكر، يوفر Galaxy Z Flip6 تجربة هاتف ذكي متعددة الاستخدامات يمكن الاعتماد عليه .
صُمم هاتف جالاكسي Galaxy Z Flip6 لتحمّل الطي حتى 200,000 مرة، مما يضمن متانته ويدعم استمراره لسنوات. وهذا يعني أنه يمكنك طي هاتفك وفتحه عدة مرات كل يوم على مدار عدة سنوات بثقة ودون قلق بشأن التآكل والتلف.
نعم، يدعم هاتف جالاكسي Galaxy Z Flip6 ميزة بطاقة SIM المزدوجة. فهو مزود بمنفذ Nano-SIM فعلي وبطاقة eSIM، مما يتيح لك استخدام شبكتي اتصال مختلفتين في وقت واحد لمزيد من الراحة والمرونة.
يتميز هاتف Galaxy Z Flip6 بكاميرا خلفية عريضة بدقة 50 ميجابكسل ومحرك ProVisual Engine للحصول على صور أكثر سطوعًا ووضوحًا. وعند تصوير البورتريه ، يمكنك عرض الكاميرا الخلفية على كل من النافذة المرنة والشاشة الرئيسية بفضل شاشة FlexWindow. كما يمكنك التصوير بدون استخدام اليدين على الإطلاق بفضل وضع FlexMode الذي يجعل من صور السيلفي أسهل من أي وقت مضى.
يتميز هاتف Samsung Galaxy Z Flip6 ببطارية قوية مصممة لتدوم طوال اليوم. تبلغ سعة البطارية 4000 مللي أمبير في الساعة، وتدعم كل من الشحن السريع والشحن اللاسلكي. للاطلاع على حالة البطارية بشكل خاص، يمكنك التحقق من مستوى البطارية على هاتفك من خلال قائمة الإعدادات أو شريط الحالة.
لا يدعم هاتف Galaxy Z Flip6 قلم S Pen. يتوافق قلم S Pen حاليًا مع أجهزة Samsung معينة مثل Galaxy S24 Ultra وسلسلة Galaxy Z Fold.
نعم! يدعم هاتف Galaxy Z Flip6 الشحن السريع. تتيح لك هذه الميزة إعادة شحن هاتفك بسرعة، حتى تقضي وقتًا أقل موصولًا بالكهرباء والمزيد من الوقت باستخدام هاتفك. للحصول على أفضل نتيجة، استخدم شاحن Samsung 33W سريعًا ومتوافقًا.
يأتي هاتف Galaxy Z Flip6 مزودًا بميزات متنوعة للذكاء الاصطناعي (AI) لتستمتع بتجربة لا تفوّت، بما في ذلك الردود المقترحة، وهي ميزة جديدة تقترح رسائل نصية باستخدام الذكاء الاصطناعي حتى تتمكن من الرد حتى عندما يكون هاتفك مغلقًا. تشمل ميزات الذكاء الاصطناعي الإضافية الترجمة الفورية والمترجم. كما تم إضافة الذكاء الاصطناعي على الكاميرا بواسطة محرك ProVisual Engine الذي يطبق جودة صورة محسنة على عناصر المصورة للحصول على صور بورتريه مثالية.
ميزة التقريب التلقائي Auto Zoom متوفرة في وضع FlexMode من خلال الكاميرا الخلفية، وسيتم فصلها في حال ضبط عدسة التقريب يدوياً. هذه الميزة محدودة الاستخدام في ظروف الإضاءة المنخفضة، وقد لا تعمل عند حركة الجهاز، أو أن الجسم المراد تصويره قريب جداً.
تتطلب ميزة Interpreter تسجيل الدخول إلى حساب سامسونج Samsung Account. قد تتطلب بعض اللغات تنزيل حزمة اللغة. قد يختلف توافر هذه الخدمة باختلاف اللغة. دقة النتائج غير مضمونة. قد يختلف التوفر والمزايا المدعمة حسب البلد أو المنطقة أو مزود شبكة المحمول. قد يختلف مدى توفر اللغات المدعمة.
دقة وضوح 50 ميجابكسل متوفرة فقط في الكاميرا الخلفية لهاتف Galaxy Z Flip6.
يختلف عمر البطارية الفعلي بحسب بيئة الشبكة والمزايا والتطبيقات المستخدمة ومعدل تكرار المكالمات والرسائل وعدد مرات الشحن وغيرها من العوامل الأخرى. تم التقدير بناءً على البيانات الموجودة في ملف تعريف المستخدم المتوسط/النموذجي. تم التقييم بصفة مستقلة من قبل UX Connect Research، وفق الإعدادات الأساسية باستخدام شبكات LTE و 5G Sub6.
تقاس السماكة من أعلى الزجاج إلى أسفله عند فتح الهاتف.
يعتمد توفر اللون على البلد أو مزود شبكة المحمول.
يمكن رؤية ميزة المترجم الفوري Interpreter على الشاشة الرئيسية ووضع FlexWindow مع ضرورة تفعيلها يدوياً. وهي لا تتوفر على وضع FlexWindow بشكل فردي.
تتطلب ميزة الردود المقترحة Suggested Replies اتصالاً بالشبكة وتسجيل الدخول إلى حساب سامسونج Samsung Account. تستطيع هذه الميزة اقتراح ردود بدون الحاجة للاتصال بالانترنت، بمجرد تلقي الجهاز للرسائل. يلزم تسجيل الدخول إلى حساب سامسونج Samsung Account. ميزة Suggested Replies مدعمة فقط في وضع FlexWindow. يعتمد توفر الخدمة على اللغة، البلد والتطبيق. دقة النتائج غير مضمونة.
تم اختصار تسلسل الخطوات ومحاكاته. النتائج معروضة لأغراض التوضيح فقط. قد يختلف مدى توفر الخدمة باختلاف البلد أو اللغة أو طراز الجهاز. تتطلب هذه الخدمة الاتصال بالإنترنت وتسجيل الدخول إلى حساب Google . قد يحتاج المستخدمون إلى تنزيل تطبيق Google Gemini أو تحديثه إلى آخر إصدار. تحقق من الإجابات للتأكد من دقتها. Gemini علامة تجارية تابعة لشركة Google LLC. تتوفر ميزة الاشتراك في Gemini على أجهزة وبلدان معينة. اشترك في Gemini من Google Assistant أو عن طريق تنزيل تطبيق Gemini. ربما تعتمد وظائف المنتج على إعدادات التطبيق والجهاز. وقد لا تتوافق بعض الوظائف مع تطبيقات محددة. دقة النتائج غير مضمونة. قد يختلف مدى توفر هذه الميزة وفقاً للمحتوى.
تقليل المشاهد المتسلسلة لأغراض التوضيح. يتم عرض النتائج لأغراض التوضيح فقط. يعتمد توفر الخدمة على البلد، اللغة، وطراز الجهاز. يلزم توفر اتصال بالإنترنت. قد يحتاج المستخدمون إلى تثبيت أحدث إصدار من نظام Android وتطبيق Google. يعمل مع التطبيقات والأسطح المتوافقة. تعتمد النتائج على الصور المتطابقة. دقة النتائج غير مضمونة. ميزة Circle to Search غير متوفرة في وضع FlexWindow
تتطلب ميزة Live Translate اتصالاً بالشبكة من أجل تلقي رسائل المكالمة. يمكن استخدامها في الترجمة بدون اتصال بالانترنت، في حال تلقى الجهاز رسائل المكالمات. تتطلب تسجيل الدخول إلى حساب سامسونج Samsung Account. ميزة Live Translate متاحة فقط على تطبيق Samsung Phone المثبت مسبقاً وبعض التطبيقات التابعة لجهات أخرى. يعتمد توفر الخدمة على البلد أو المنطقة. قد تتطلب بعض اللغات تنزيل حزمة اللغة. دقة النتائج ليست مضمونة.
تتطلب مزايا Transcription و Summary المخصصة لوظيفة مساعد النسخ Transcript Assist اتصالاً بشبكة الإنترنت وتسجيل الدخول إلى حساب سامسونج Samsung Account. مزايا Transcript Assist متوفرة فقط على تطبيق Voice Recorder المثبت أو الملفات المسجلة باستخدام تطبيق Samsung Phone أو Samsung Notes أو Samsung Interpreter المثبت. وبالنسبة لميزة تسجيل الصوت في تطبيق Samsung Phone المثبت فقد لا تكون مدعمة في بعض البلدان. يجب أن تقل مدة الملفات الصوتية عن 3 ساعات حتى يتم معالجتها. ويمكن تفعيل ميزة التلخيص لوظيفة Transcript Assist عند استيفاء عدد محدد من الرموز. قد يختلف مدى توفر الخدمة بحسب اللغة. دقة النتائج غير مضمونة.
تعتمد النتائج على حالة الإضاءة و/أو ظروف التصوير، بما في ذلك، انحراف عدة أجسام مصورة عن نطاق عدسة التصوير، أو تحرك الأجسام.
يتم تفعيل ميزة Optical quality zoom من قبل مستشعر البكسلات المتكيفة.
يجب تفعيل ميزة 2x zoom في إعدادات تطبيق الكاميرا، ويمكن تحميل Camera Assistant من متجرGalaxy
تطبّق خاصية التقريب AI Zoom على المسافات الفاصلة بين أطوال عدسات التقريب الرقمية. دقة النتائج غير مضمونة.
تتطلب ميزة Generative Edit المخصصة لمساعد التصوير Photo Assist اتصالاً بالشبكة وتسجيل الدخول إلى حساب سامسونج Samsung Account. التحرير باستخدام ميزة Generative Edit يؤدي إلى تغيير حجم الصورة حتى 12 ميجابكسل. وتظهر علامة مائية على الصورة الناتجة عند حفظها في إشارة إلى أن الصورة تم إنشاؤها بواسطة الذكاء الاصطناعي AI. دقة الصور المُنتجة أو موثوقيتها غير مضمونة.
تتوفر ميزة التصوير الفوري بالحركة البطيئة والخاصة بمساعد التصوير Photo Assist في مشغل فيديو ومعرض صور Samsung. قد لا تكون متاحة في أنواع معينة من ملفات الفيديو. دقة النتائج غير مضمونة.
ميزة Live Effect المخصصة لمساعد التصوير، تدعم ملفات من نسق JPG, HEIC (HEIF), BMP, PNG و WebP. وقد لا تتوفر على بعض الصور. دقة النتائج والاعتماد عليها غير مضمون.
دعم الوضع الليلي في كاميرا تطبيق Instagram.
المنتجات التي تحمل علامة Snapdragon هي تابعة لشركة Qualcomm Technologies, Inc و / أو الشركات التابعة لها.
ويقتصر استخدام هذه الخاصية على الهواتف الذكية من فئة Galaxy Foldable فقط.
خضعت القيمة النموذجية للاختبار في ظروف المختبر من قبل طرف ثالث. تقدّر القيمة النموذجية بمتوسط القيمة التقديرية مع الأخذ في الاعتبار حدوث انحراف في سعة البطارية عن العينات التي تم فحصها حسب معيار IEC 61960. سعة البطارية المقدَّرة (بالحد الأدنى) هي 3887mAh بالنسبة لهاتف Galaxy Z Flip6. يعتمد عمر البطارية الفعلي على بيئة الشبكة، أنماط الاستخدام، وغيرها من العوامل الأخرى.
بالاستناد إلى ظروف فحص المختبر الخاص بسامسونج والمطبق على إصدار تمهيدي للطراز المتصل بسماعة عبر بلوتوث حسب الاعدادات الرئيسية لشبكة LTE. تقاس تقديرياً حسب قدرة البطارية والجهد المقاس في استهلاك البطارية خلال تشغيل الفيديو (وضوح ملف الفيديو 720 بكسل، محفوظ على الجهاز) وتشغيل الصوت (ملف mp3، بسرعة 192 كيلو بايت في الثانية، محفوظ على الجهاز مع إطفاء شاشة LCD) على التوالي. تعتمد المدة الفعلية لتشغيل الفيديو والصوت على اتصال الشبكة، الاعدادات، نسق الملف، سطوع الشاشة، حالة البطارية وغير ذلك الكثير.
تتطلب عملية النقل السلكية من أجهزة ™Android أن يكون جهاز الاستقبال مدعماً بنظام Android™ 4.3 أو أحدث وجهاز الإرسال مدعم بنظام ™Android 4.3 أو أحدث. يمكن إتمام النقل دون الحاجة لكابل، من خلال الاتصال اللاسلكي. بالنسبة للاتصالات اللاسلكية ، يجب أن يكون جهاز الاستقبال مدعماً بنظام Android™ 4.0 أو أحدث وجهاز الإرسال مدعماً بنظام Android™ 4.0 أو أحدث. افتح ميزة Smart Switch Mobile في "الإعدادات" على جهاز Galaxy المتلقي أو حمّل تطبيق Smart Switch Mobile من متجر Galaxy. قد تختلف البيانات والمحتوى والتطبيقات المتاحة للنقل حسب طريقة الإرسال.
تتطلب عملية النقل السلكية من أجهزة iOS أن يكون جهاز الاستقبال مدعماً بنظام Android™ 4.3 أو أحدث وجهاز الإرسال مدعم بنظام iOS 5 أو أحدث. يمكن إتمام النقل دون الحاجة لكابل، من خلال الاتصال اللاسلكي أو نظام iCloud. بالنسبة للاتصالات اللاسلكية ، يجب أن يكون جهاز الاستقبال مدعماً بنظام Android™ 4.0 أو أحدث وجهاز الإرسال مدعماً بنظام iOS 12 أو أحدث. تتطلب عمليات نقل iCloud أن يكون جهاز الاستقبال مدعماً بنظام Android™ 4.0 أو أحدث وجهاز الإرسال مدعماً بنظام iOS 5 أو أحدث. افتح ميزة Smart Switch Mobile في "الإعدادات" على جهاز Galaxy المتلقي أو حمّل تطبيق Smart Switch Mobile من متجر Galaxy. بالنسبة للنقل اللاسلكي، يمكنك تحميل ميزة Smart Switch المخصصة لأجهزة iOS من App Store على جهاز iPhone أو iPad. قد تختلف البيانات والمحتوى والتطبيقات المتاحة للنقل حسب طريقة الإرسال. يمكن نقل جهات الاتصال ومعرض الصور ومقاطع الفيديو والتقويمات السنوية وإشعارات التذكير لاسلكيا من جهاز iOS.
يوصى باستخدام الاتصال السلكي عند تحويل مجموعات متنوعة من البيانات مرة واحدة.
ميزة Quick Share الخاصة بأجهزة Galaxy متوفرة مع نظام التشغيل التالي: هواتف ذكية وأجهزة لوحية بنظام تشغيل إصدار 10.0 (Q) وواجهة One UI 2.1 أو أحدث، وكمبيوترات تعمل بنظام Windows 10 أو أحدث. يتطلب استعمال حساب سامسونج Samsung Account واتصال بشبكة WiFi وبلوتوث. استعمال ميزة Quick Share مع أجهزة iOS and Android متوفرة عبر إرسال رابط المشاركة: لا يمكن أن تتجاوز الملفات الفردية التي يتم مشاركتها سعة 5GB (بإجمالي 5GB في اليوم) مع العلم أن صلاحية الرابط ستنتهي بعد يومين. يتطلب تسجيل الدخول إلى حساب سامسونج Samsung Account واتصال بشبكة الانترنت.
لا يشتمل إطار Armor Aluminum على زر الصوت، أو المفاتيح الجانبية أو درج SIM
بالمقارنة مع الطرازات السابقة
يستعمل زجاج Corning® Gorilla® Glass Victus® 2 على الجانبين الأمامي والخلفي من الجهاز.
استنادا إلى ظروف اختبارات الغمر في عمق يصل إلى 1.5 متر من المياه العذبة لغاية 30 دقيقة، وللحماية من الارتطام جسم صلب يزيد حجمه عن 1 مم مثل السلك. لا ينصح باستخدامه على الشاطئ أو المسبح، كما أن مقاومة الماء للجهاز لا تدوم، وقد تتضاءل بمرور الوقت بسبب الاهتراء العادي. لا يقاوم الغبار أو الرمال.
نقاط الطاقة متاحة على هواتف Android (نظام Android 11 أو أحدث) وتتطلب توفر تطبيق Samsung Health (إصدار 6.27 أو أحدث). يلزم تسجيل الدخول إلى حساب سامسونج Samsung Account. قد يختلف توفر الخدمة بحسب البلد أو المنطقة. للتحقق من نقاط الطاقة، يمكن تتبّع بيانات الصحة عبر ساعة Samsung Galaxy، أو يجب مزامنة خاتم Samsung Galaxy مع تطبيق Samsung Health. يلزم توفر بيانات النشاط والنوم لليوم السابق، ومعدل ضربات القلب أثناء النوم. غير مصممة للاستخدام في كشف، تشخيص أو علاج أي حالة طبية. يرجى طلب استشارة طبية.
تباع ساعة Galaxy Watch7 بشكل منفصل.
بالقياس قطرياً، حجم الشاشة الرئيسية لهاتف Galaxy Z Flip6 يبلغ 6.7 بوصات كهيكل مستطيلي كامل و 6.6 بوصات عند احتساب الزوايا المنحنية، وتقل مساحة الرؤية الفعلية بسبب الزوايا المنحنية.
بالقياس قطرياً، حجم شاشة الغطاء لهاتف Galaxy Z Flip6 يبلغ 3.4 بوصات كهيكل مستطيلي كامل. وتشغل مساحة المشاهدة الفعلية حوالي 95% من المستطيل الكامل، بسبب الزوايا المنحنية وفتحة الكاميرا.
قد لا تدعم بعض التطبيقات أدوات FlexWindow
تتطلب ميزة Generative content اتصالا بالشبكة وتسجيل الدخول إلى حساب Google Account. دقة الصور المُنتجة أو موثوقيتها غير مضمونة. قد يختلف توفر الميزة بحسب الطراز.
تتطلب ميزة Photo Ambient اتصالا بالشبكة ليتلقى بيانات الطقس. وقد تعرض بيانات الطقس دون اتصال بشبكة الإنترنت، بمجرد تلقي الجهاز للبيانات. إن ظهور بيانات الطقس لحظة بلحظة، قد يتأخر، باعتبار أن هذه الخدمة تعتمد على التحديثات المتعلقة ببيانات الطقس المحلية. وقد تكون بعض الصور في الأماكن المغلقة والصور الليلية ومنخفضة الإضاءة غير متوافقة. دقة الصور المُنتجة والاعتماد عليها غير مضمون. الخدمة متاحة حالياً على أجهزة Galaxy S24 Series, Galaxy Z Flip6 و Galaxy Z Fold6. قد يختلف توفر الميزة بحسب الطراز.
مقاطع فيديو طريقة الاستخدام لهاتف Galaxy Z Flip6
'));
}
}
};
const isZoom = function () {
let zoomLevel = 100 / ((window.innerWidth / window.outerWidth) * 100);
if (zoomLevel > 1.7) {
document.documentElement.classList.add('browser-zoomed-175');
} else {
document.documentElement.classList.remove('browser-zoomed-175');
}
if (zoomLevel > 3) {
document.documentElement.classList.add('browser-zoomed-300');
} else {
document.documentElement.classList.remove('browser-zoomed-300');
}
if (zoomLevel > 4) {
document.documentElement.classList.add('browser-zoomed-400');
} else {
document.documentElement.classList.remove('browser-zoomed-400');
}
};
const getViewerUrl = function () {
let defaultParams = '',
viewerSection = document.querySelector('.js-colors-viewer'),
viewerButton = document.querySelector('.viewer-btn'),
viewerModel = utils.isLowNetwork() ? viewerButton.getAttribute('data-model-name') : viewerSection.getAttribute('data-model-name'),
viewerColor = utils.isLowNetwork() ? viewerButton.getAttribute('data-model-color') : viewerSection.getAttribute('data-model-color'),
viewerUrl = '//www.samsung.com/global/galaxy/3d-360/viewer/?';
defaultParams = '&gesture_guide=0';
defaultParams += '&bgcolor=transparent';
defaultParams += '&skin=colorlayer';
defaultParams += '&theme=roundlayer';
defaultParams += '&auto_rotation=0';
defaultParams += '&intro=1';
defaultParams += '&ruler=1';
defaultParams += '&breakpoint_criteria=outer';
defaultParams += '&breakpoint_desktop_width=1024';
defaultParams += '&x=180';
defaultParams += '&intro_pose=3';
defaultParams += '&intro_pose_hold=1';
defaultParams += '&intro_pose_hold_limit=9999999';
defaultParams += '&controls=0';
defaultParams += '&use_zoom=0';
defaultParams += '&use_pan=0';
defaultParams += '&screen_mode=on';
// model_name
viewerUrl += 'model_name=' + viewerModel;
if (document.documentElement.classList.contains('color_yb') || (utils.getCookie('highContrastMode') != null && utils.getCookie('highContrastMode') == 1)) {
viewerUrl += '&highcontrast=1';
} else {
viewerUrl += '&highcontrast=0';
}
// RTL
utils.isRTL() && (viewerUrl += '&rtl=1');
viewerUrl += defaultParams;
viewerUrl += '#color=' + (viewerColor ? viewerColor : 'null');
return viewerUrl;
};
return {
addLoadStatusClass: addLoadStatusClass,
setResolution: setResolution,
clickSup: clickSup,
centeredFocus: centeredFocus,
setArBanner: setArBanner,
isZoom: isZoom,
getViewerUrl: getViewerUrl,
}
})();
var SEQUENCEPLAYER = (function () {
var init = function (opts) {
this.opts = opts;
this.targetElement = opts.targetElement;
this.imageList = [];
this.loadCount = 0;
this.playIndex = null;
this.imageLoadOffset = !!!this.opts.imageLoadOffset ? 1.5 : this.opts.imageLoadOffset;
this.loadComplete = false;
this.loadStart = false;
this.windowTopOffset = null;
this.windowBottomOffset = null;
this.targetTopOffset = null;
this.targetBottomOffset = null;
this.isImage = null;
this.setCanvas();
this.loadImages();
return this;
};
var fn = init.prototype;
fn.setCanvas = function () {
var _checkElement = function (element) {
if (element.tagName == 'CANVAS') {
} else {
this.canvas = document.createElement('CANVAS');
if (this.opts.addType == 'append') {
this.targetElement.appendChild(this.canvas);
} else {
var firstChild = this.targetElement.firstElementChild;
if (!!!firstChild) {
this.targetElement.appendChild(this.canvas);
} else {
firstChild.parentNode.insertBefore(this.canvas, firstChild);
}
}
}
};
_checkElement.call(this, this.targetElement);
this.context = this.canvas.getContext('2d');
};
fn.getCanvasOffset = function () {
this.targetTopOffset = this.targetElement.getBoundingClientRect().top + window.pageYOffset;
this.targetBottomOffset = this.targetElement.getBoundingClientRect().bottom + window.pageYOffset;
};
fn.nextImageLoad = function() {
if (this.loadCount < this.opts.endNum) {
this.loadCount++;
this.isImage = null;
this.setLoadImage(this.loadCount);
} else {
this.loadComplete = true;
this.targetElement.classList.add('is-seq-loaded');
}
};
fn.setLoadImage = function (idx) {
var self = this;
var requestImageData = function(apiUrl) {
return fetch(apiUrl)
.then((response) => {
if(!response.ok) {
console.warn(`Failed to load : ${apiUrl}`);
}
return response.blob();
}).catch(() => {
console.warn(`Failed to load : ${apiUrl}`);
});
};
for (var i = this.opts.startNum; i <= this.opts.endNum; i++) {
(function (idx) {
var _imageLoadEvent = function () {
if (self.loadCount < self.opts.endNum) {
self.loadCount++;
requestImageData(self.opts.path + self.opts.name + idx + '.' + self.opts.extension)
.then(function(imgData) {
let isImage = new Image();
isImage.decoding = 'sync';
isImage.src = window.URL.createObjectURL(imgData);
self.imageList[idx] = isImage;
});
} else {
self.loadComplete = true;
self.targetElement.classList.add('is-seq-loaded');
}
};
_imageLoadEvent();
})(i);
}
};
fn.startLoadImages = function () {
if (this.loadStart) return;
self.loadStart = true;
this.setDefaultImage(0);
this.setLoadImage(0);
};
fn.loadImages = function () {
var self = this;
var _checkImageLoadOffset = function () {
self.windowTopOffset = window.pageYOffset - (window.innerHeight * self.imageLoadOffset);
self.windowBottomOffset = window.pageYOffset + window.innerHeight + (window.innerHeight * self.imageLoadOffset);
self.getCanvasOffset();
if (self.windowBottomOffset > self.targetTopOffset && self.windowTopOffset < self.targetTopOffset ||
self.windowTopOffset < self.targetBottomOffset && self.windowBottomOffset > self.targetBottomOffset ||
self.windowTopOffset < self.targetTopOffset && self.windowBottomOffset > self.targetBottomOffset ||
self.windowTopOffset > self.targetTopOffset && self.windowBottomOffset < self.targetBottomOffset) {
window.removeEventListener('scroll', _checkImageLoadOffset);
self.startLoadImages();
}
};
this.getCanvasOffset();
_checkImageLoadOffset();
window.addEventListener('scroll', _checkImageLoadOffset);
};
fn.setDefaultImage = function (idx) {
var self = this;
this.defaultImage = new Image();
this.defaultImage.src = this.opts.path + this.opts.name + idx + '.' + this.opts.extension;
this.defaultImageEvent = function () {
self.canvas.width = self.defaultImage.naturalWidth;
self.canvas.height = self.defaultImage.naturalHeight;
self.opts.width = self.canvas.width;
self.opts.height = self.canvas.height;
self.context.clearRect(0, 0, self.opts.width, self.opts.height);
self.context.drawImage(self.defaultImage, 0, 0, self.opts.width, self.opts.height);
};
if (!!!self.opts.width || !!!self.opts.height) {
this.defaultImage.addEventListener('load', this.defaultImageEvent);
} else {
self.canvas.width = self.opts.width;
self.canvas.height = self.opts.height;
}
};
fn.play = function (opts) {
var idx = opts.index > this.opts.endNum ? this.opts.endNum : opts.index;
if (this.loadComplete) {
this.drawCanvas(idx);
} else {
this.drawCanvas(0);
}
};
fn.drawCanvas = function (index) {
if (this.playIndex == null && this.oldPlayIndex == index) return;
this.context.clearRect(0, 0, this.opts.width, this.opts.height);
if (this.imageList[index >= 0 ? index : this.playIndex] && this.imageList[index >= 0 ? index : this.playIndex].complete) {
this.context.drawImage(this.imageList[index >= 0 ? index : this.playIndex], 0, 0, this.opts.width, this.opts.height);
}
this.oldPlayIndex = this.playIndex;
if (index) {
this.playIndex = index;
}
};
return function (opts) {
return new init(opts);
};
})();
flagship.features.setting = (function () {
const resize = window.flagship.common.resize,
common = window.flagship.features.common,
utils = window.flagship.common.utils,
agent = navigator.userAgent.toLowerCase(),
maxOs = agent.indexOf('mac os') > -1,
touchDevice = ('ontouchstart' in window || (window.DocumentTouch && document instanceof window.DocumentTouch)),
isGlobal = document.documentElement.classList.contains('global');
let els = {};
const init = function () {
common.addLoadStatusClass();
common.setArBanner();
setElements();
bindEvents();
setResize();
if (!maxOs && !touchDevice) {
setScrollControl();
}
setImageLoader();
setVideoLoader();
setMp4VideoLoader();
setCenteredfocus();
setDisclaimerNumber();
setDisclaimer();
setVideoTheme();
setVideoBlind();
common.isZoom();
resize.add(common.isZoom);
};
const setElements = function () {
// video
els.videoWrap = document.querySelectorAll('.js-video-wrap');
};
const bindEvents = function () {
window.addEventListener('load', anchorPosition);
window.addEventListener('hashchange', anchorPosition);
};
const anchorPosition = function () {
if (window.location.hash != '') {
let hash = location.hash.split('#')[1],
hashSection = document.querySelector('#contents #' + hash),
hashTimeout = null;
clearTimeout(hashTimeout);
hashTimeout = setTimeout(function () {
let sectionTop = hashSection.getBoundingClientRect().top,
navHeight = utils.getNavHeight(),
hashScroll = window.pageYOffset + sectionTop - navHeight;
window.scrollTo(0, hashScroll);
}, 300);
}
};
const setResize = function () {
resize.init([{
resolution: 1920,
resolutionName: 'desktop',
eventFunction: ''
}, {
resolution: 1023,
resolutionName: 'tablet',
eventFunction: ''
}, {
resolution: 767,
resolutionName: 'mobile',
eventFunction: ''
}, {
resolution: 320,
resolutionName: 'mobileS',
eventFunction: ''
}], 200);
resize.add(common.setResolution);
};
const setScrollControl = function () {
window.scrollController = utils.scrollController();
scrollController.init({
speed: 120,
duration: 0.6
});
};
const setImageLoader = function () {
window.imageLoader = utils.mediaLoader({
lazyClass: '.js-img-src',
responsiveClass: '.js-res-img',
preset: isGlobal ? '' : '?imbypass=true',
loadOption: [{
resolution: 1920,
attribute: 'data-src-pc'
}, {
resolution: 1023,
attribute: 'data-src-tb'
}, {
resolution: 767,
attribute: 'data-src-mo'
}, {
resolution: 360,
attribute: 'data-src-mo-s'
}],
visiblePoint: 2
});
window.bgLoader = utils.mediaLoader({
type: 'bgImage',
lazyClass: '.js-bg-img',
loadOption: [{
resolution: 1920,
attribute: '',
bgOpts: ''
}],
visiblePoint: 2
});
};
const setVideoLoader = function () {
window.videoLoader = utils.mediaLoader({
type: 'video',
lazyClass: '.js-video-src',
responsiveClass: '.js-res-video',
preset: isGlobal ? '' : '?imbypass=true',
loadOption: [{
resolution: 1920,
attribute: 'data-video-src-pc'
}, {
resolution: 1023,
attribute: 'data-video-src-tb'
}, {
resolution: 767,
attribute: 'data-video-src-mo'
}, {
resolution: 360,
attribute: 'data-video-src-mo-s'
}],
visiblePoint: 1,
endCallback: function (video) {
if (!!video.videoHandler && !video.videoHandler.wrap.classList.contains('is-loaded')) {
video.videoHandler.wrap.classList.add('is-loaded');
}
}
});
};
const setMp4VideoLoader = function () {
window.mp4VideoLoader = utils.mediaLoader({
type: 'mp4Video',
lazyClass: '.js-mp4-video-src',
responsiveClass: '.js-res-video',
preset: isGlobal ? '' : '?imbypass=true',
loadOption: [{
resolution: 1920,
attribute: 'data-video-src-pc'
}, {
resolution: 1023,
attribute: 'data-video-src-tb'
}, {
resolution: 767,
attribute: 'data-video-src-mo'
}, {
resolution: 360,
attribute: 'data-video-src-mo-s'
}],
visiblePoint: 1,
endCallback: function (video) {
if (!!video.videoHandler && !video.videoHandler.wrap.classList.contains('is-loaded')) {
video.videoHandler.wrap.classList.add('is-loaded');
}
}
});
};
const setCenteredfocus = function () {
els.contents = document.querySelector('#contents');
els.allClickables = els.contents.querySelectorAll('a, button, input, select');
for (let i = 0; i < els.allClickables.length; i++) {
els.allClickables[i].addEventListener('focusin', common.centeredFocus);
}
};
const setDisclaimerNumber = function () {
const supTag = document.querySelectorAll('.click_sup'),
btmDicl = document.querySelectorAll('li.common-bottom-disclaimer__list-item');
let btmDiclArr = [];
for (let i = 0; i < btmDicl.length; i++) {
let dataSup = btmDicl[i].getAttribute('data-sup');
btmDiclArr.push(dataSup);
}
for (let j = 0; j < supTag.length; j++) {
let dataSupTag = supTag[j].getAttribute('data-sup-tag');
let supChildCount = supTag[j].parentElement.childElementCount;
if (btmDiclArr.indexOf(dataSupTag) > -1) {
supTag[j].innerText = btmDiclArr.indexOf(dataSupTag) + 1;
} else {
if (supChildCount == 1) {
supTag[j].parentElement.remove();
} else {
let supParent = supTag[j].parentElement.childNodes;
let supArr = [];
for (let supIndex = 0; supIndex < supParent.length; supIndex++) {
supArr.push(supParent[supIndex]);
}
let index = supArr.indexOf(supTag[j]);
if (index != 0 && index % 2 == 0) {
supParent[index].remove();
supParent[index - 1].remove();
} else {
if (index != supArr.length) supParent[index + 1].remove();
supParent[index].remove();
}
}
}
}
};
const setDisclaimer = function () {
els.supClicker = document.querySelectorAll('a.click_sup');
for (let i = 0; i < els.supClicker.length; i++) {
els.supClicker[i].addEventListener('click', common.clickSup);
}
};
const setVideoTheme = function () {
for (let i = 0; i < els.videoWrap.length; i++) {
let colorType = els.videoWrap[i].getAttribute('data-theme-type');
if (colorType === 'white') {
els.videoWrap[i].classList.add('common-video--white');
} else if (colorType === 'black') {
els.videoWrap[i].classList.add('common-video--black');
}
}
};
const setVideoBlind = function () {
for (let i = 0; i < els.videoWrap.length; i++) {
let controlBlind = els.videoWrap[i].querySelector('.js-video-control .blind');
controlBlind.innerHTML = (typeof LOCAL_VARI != 'undefined' && !!LOCAL_VARI) ? LOCAL_VARI.play : 'play';
}
};
return {
init: init
}
})();
flagship.features.setting.init();
(function () {
window.flagship.features.clickToVideo = (function () {
const utils = window.flagship.common.utils;
let els = {
clickToVideosWrap: [],
clickToVideo: [],
};
const init = function () {
els.clickToVideosWrap = document.querySelectorAll('.js-click-video');
if (els.clickToVideosWrap.length > 0) {
setProperty();
bindEvents();
}
};
const setProperty = function () {
for (let i = 0; i < els.clickToVideosWrap.length; i++) {
els.clickToVideosWrap[i].video = els.clickToVideosWrap[i].querySelector('video');
els.clickToVideosWrap[i].controller = els.clickToVideosWrap[i].querySelector('.js-video-control');
els.clickToVideosWrap[i].controller.video = els.clickToVideosWrap[i].video;
}
};
const bindEvents = function () {
eventList.setVideo();
eventHandler.click();
};
const eventHandler = {
click: function () {
for (let i = 0; i < els.clickToVideosWrap.length; i++) {
els.clickToVideosWrap[i].controller.addEventListener('click', eventList.clickVideoCta);
}
}
};
const eventList = {
setVideo: function () {
for (let i = 0; i < els.clickToVideosWrap.length; i++) {
els.clickToVideo[i] = utils.videoHandler({
wrap: els.clickToVideosWrap[i],
video: els.clickToVideosWrap[i].video,
controller: els.clickToVideosWrap[i].controller,
resetCallback: function () {
if (this.wrap.classList.contains('is-completed')) {
this.wrap.classList.remove('is-completed');
}
if (this.wrap.classList.contains('is-started')) {
this.wrap.classList.remove('is-started');
}
},
playCallback: function () {
if (!this.wrap.classList.contains('is-started')) {
this.wrap.classList.add('is-started');
}
setTagging.pause(this.controller);
},
pauseCallback: function () {
setTagging.play(this.controller);
},
endCallback: function () {
if (!this.wrap.classList.contains('is-completed')) {
this.wrap.classList.add('is-completed');
}
}
});
}
},
clickVideoCta: function (e) {
if (e.target == e.currentTarget) {
if (e.currentTarget.video.paused) {
e.currentTarget.video.play();
} else {
e.currentTarget.video.pause();
}
}
}
};
const setTagging = {
play: function (targetController) {
if (targetController.hasAttribute('data-omni')) {
let dataOmni = targetController.getAttribute('data-omni').toLowerCase();
targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play'));
}
if (targetController.hasAttribute('ga-la')) {
let gaLa = targetController.getAttribute('ga-la').toLowerCase();
targetController.setAttribute('ga-la', gaLa.replace('pause', 'play'));
}
},
pause: function (targetController) {
if (targetController.hasAttribute('data-omni')) {
let dataOmni = targetController.getAttribute('data-omni').toLowerCase();
targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause'));
}
if (targetController.hasAttribute('ga-la')) {
let gaLa = targetController.getAttribute('ga-la').toLowerCase();
targetController.setAttribute('ga-la', gaLa.replace('play', 'pause'));
}
}
};
return {
init: init
}
})();
})();
(function () {
window.flagship.features.headline = (function () {
const utils = window.flagship.common.utils;
let els = {};
const init = function () {
setElements();
bindEvents();
};
const setElements = function() {
els.moveText = document.querySelectorAll('.js-move-text');
};
const bindEvents = function () {
eventList.setScene();
eventHandler.scroll();
eventList.scroll();
};
const eventHandler = {
scroll: function () {
window.addEventListener('scroll', eventList.scroll);
}
};
const eventList = {
scroll: function () {
for (let i = 0; i < els.moveText.length; i++) {
els.moveText[i].sceneObj.trackAnimation(function () {
let progressRange = !!this.trackElement.classList.contains('features-high-resolution__img-bottom') ? -60 : -10;
let moveRange = !!this.trackElement.classList.contains('features-high-resolution__img-bottom') ? -55 : -5;
if (this.progress >= progressRange && this.progress <= 100) {
if(this.progress >= moveRange) {
els.moveText[i].classList.add('is-moved');
if (this.trackElement.classList.contains('common-description')) this.trackElement.style.transitionDelay = "0.2s";
}
if(this.progress <= moveRange) {
els.moveText[i].classList.remove('is-moved');
}
}
});
}
},
setScene: function () {
for(let i = 0; i < els.moveText.length; i++) {
els.moveText[i].sceneObj = SCROLLER({
trackElement: els.moveText[i],
useFixed: false,
useStrictMode: false
});
}
}
};
return {
init: init
}
})();
})();
(function () {
window.flagship.features.howtoPopup = (function () {
const utils = window.flagship.common.utils;
resize = window.flagship.common.resize;
let els = {};
let currDevice = resize.checkResolution();
prevDevice = null,
currOpener = null;
let isDrag = false;
const init = function () {
els.layerPopup = document.querySelector('.js-howto-popup');
if (!!els.layerPopup) {
setElements();
setAttribute();
bindEvents();
eventList.setPopup();
}
};
const setElements = function () {
els.contents = document.querySelector('#contents');
els.openCtas = document.querySelectorAll('.js-howto-popup-opener');
// popup content
els.closeCta = document.querySelector('.js-howto-popup-close-cta');
els.ytIframe = els.layerPopup.querySelector('iframe');
els.ytDesc = els.layerPopup.querySelector('.js-howto-popup-youtube-desc');
els.dimmed = els.layerPopup.querySelector('.js-howto-popup-dimmed');
// swiper
els.swiperContainer = els.layerPopup.querySelector('.swiper-container');
els.buttonWrap = els.swiperContainer.querySelectorAll('.swiper-slide');
els.arrowWrap = els.swiperContainer.querySelector('.js-howto-popup-arrow-wrap');
els.prevArrow = els.swiperContainer.querySelector('.swiper-button-prev');
els.nextArrow = els.swiperContainer.querySelector('.swiper-button-next');
els.scrollbar = els.swiperContainer.querySelector('.js-howto-popup-scrollbar');
};
const setAttribute = function () {
for (let i = 0 ; i < els.buttonWrap.length; i++) {
els.buttonWrap[i].openerCta = els.openCtas[i];
els.buttonWrap[i].button = els.buttonWrap[i].querySelector('button');
els.buttonWrap[i].button.openerCta = els.buttonWrap[i].openerCta;
}
};
const bindEvents = function () {
eventHandler.buttonsClick();
eventHandler.arrowClick();
resize.add(eventList.resize);
};
const eventHandler = {
buttonsClick: function () {
for (let i = 0 ; i < els.buttonWrap.length; i++) {
els.buttonWrap[i].button.addEventListener('click', function () {
eventList.setYoutube(els.buttonWrap[i].button);
});
}
},
arrowClick: function () {
els.nextArrow.addEventListener('click', function (e) {
swiperEventList.clickArrow('next');
});
els.nextArrow.addEventListener('keydown', function (e) {
swiperEventList.clickArrow('next');
});
els.prevArrow.addEventListener('click', function (e) {
swiperEventList.clickArrow('prev');
});
els.prevArrow.addEventListener('keydown', function (e) {
swiperEventList.clickArrow('prev');
});
}
};
const eventList = {
setPopup: function () {
for (let i = 0; i < els.openCtas.length; i++) {
els.openCtas[i].index = i;
utils.layerPopup({
layerPopup: els.layerPopup,
layerPopupClass: '.js-howto-popup',
openerEvent: {
element: els.openCtas[i],
},
closeCtas: [els.closeCta],
dimmed: els.dimmed,
moveTarget: document.documentElement,
contents: els.contents,
show: {
start: function (target) {
let allVideos = document.querySelectorAll('video');
for (let i = 0; i < allVideos.length; i++) {
if (!allVideos[i].paused) allVideos[i].pause();
}
els.layerPopup.removeAttribute('aria-hidden');
els.layerPopup.removeAttribute('tabindex');
els.layerPopup.classList.add('is-init');
currOpener = target.openerCta;
eventList.itemImageLoader();
swiperEventList.activeCheck();
},
end: function (target) {
els.layerPopup.classList.add('is-open');
eventList.setYoutube(target);
}
},
hide: {
start: function () {
els.layerPopup.classList.remove('is-open');
},
end: function (target) {
if(utils.detector.isIosDevice) target.openerCta.style.display = '';
setTimeout(function () {
els.layerPopup.classList.remove('is-init');
}, 300);
eventList.clearYoutube();
}
}
});
}
},
setYoutube: function (target) {
let opener = target.openerCta,
ytSrc = 'htt' + 'ps://www.youtube.com/embed/' + opener.getAttribute('data-youtube-id') + '?wmode=opaque&rel=0&enablejsapi=1&version=3&autoplay=1',
ytTitle = opener.getAttribute('data-youtube-title'),
ytBlind = opener.querySelector('.blind').innerHTML;
els.ytIframe.setAttribute('src', ytSrc);
els.ytIframe.setAttribute('title', ytTitle);
els.ytDesc.innerHTML = ytBlind;
let oldActive = els.swiperContainer.querySelector('.swiper-slide.is-active');
if (!!oldActive) {
oldActive.classList.remove('is-active');
oldActive.button.removeAttribute('title');
}
els.buttonWrap[opener.index].classList.add('is-active');
accessibility.setTitle(els.buttonWrap[opener.index]);
},
clearYoutube: function () {
els.ytIframe.removeAttribute('src');
els.ytDesc.innerHTML = '';
},
resize: function (currRes) {
currDevice = currRes;
if (prevDevice != currDevice) {
if (els.layerPopup.classList.contains('is-open')) {
swiperEventList.activeCheck();
}
prevDevice = currDevice;
}
},
itemImageLoader: function () {
for (let i = 0; i < els.buttonWrap.length; i++) {
if (!els.buttonWrap[i].querySelector('img').classList.contains('is-img-load-complete')) {
imageLoader.setResponsiveMedia([els.buttonWrap[i].querySelector('img')]);
}
}
}
};
const swiperEventList = {
set: function () {
if(els.swiperContainer.swiper == null) {
new Swiper(els.swiperContainer, {
init: false,
slidesPerView: 'auto',
scrollbar: {
el: els.scrollbar,
draggable: true
}
});
els.swiperContainer.swiper.on('init', swiperEventList.init);
els.swiperContainer.swiper.on('slideChange', swiperEventList.slideChange);
els.swiperContainer.swiper.on('transitionEnd', swiperEventList.slideTransition);
els.swiperContainer.swiper.on('scrollbarDragEnd', function () {
isDrag = true;
swiperEventList.slideTransition();
});
els.swiperContainer.swiper.init();
}
},
destroy: function () {
if(els.swiperContainer.swiper != null) {
els.swiperContainer.swiper.scrollbar.dragEl.style = '';
els.swiperContainer.swiper.scrollbar.destroy(true);
els.swiperContainer.swiper.navigation.destroy(true);
els.swiperContainer.swiper.destroy(true);
els.swiperContainer.swiper = null;
}
},
init: function () {
let self = this,
notification = self.el.querySelector('.swiper-notification');
if (!!notification) self.el.removeChild(notification);
setTimeout(function () {
accessibility.slide();
accessibility.arrow();
}, 500);
},
slideChange: function () {
accessibility.slide();
accessibility.arrow();
},
slideTransition: function () {
clearTimeout(els.arrowTimeout);
els.arrowTimeout = setTimeout(function () {
if (els.swiperContainer.swiper.isBeginning && !els.swiperContainer.swiper.isEnd) {
if (els.nextArrow.style.display == 'none') els.nextArrow.style.display = '';
if (!isDrag) els.nextArrow.focus();
els.prevArrow.style.display = 'none';
} else if (!els.swiperContainer.swiper.isBeginning && els.swiperContainer.swiper.isEnd) {
if (els.prevArrow.style.display == 'none') els.prevArrow.style.display = '';
if (!isDrag) els.prevArrow.focus();
els.nextArrow.style.display = 'none';
} else {
if (els.prevArrow.style.display == 'none') els.prevArrow.style.display = '';
if (els.nextArrow.style.display == 'none') els.nextArrow.style.display = '';
}
}, 200);
isDrag = false;
},
clickArrow: function (type) {
if (type == 'next') {
els.swiperContainer.swiper.slideNext();
} else {
els.swiperContainer.swiper.slidePrev();
}
},
activeCheck: function () {
let isSlide = ((currDevice.indexOf('mobile') > -1) && (els.buttonWrap.length >= 3)) ||
((currDevice.indexOf('desktop') > -1 || currDevice == 'tablet') && (els.buttonWrap.length >= 5));
if (isSlide) {
els.scrollbar.style.display = 'block';
els.arrowWrap.style.display = 'block';
swiperEventList.set();
if (currOpener != null) {
if (currOpener.index == 2) {
els.swiperContainer.swiper.slideTo(1, 0);
els.prevArrow.style.display = '';
els.nextArrow.style.display = '';
} else if (currOpener.index == 3) {
els.swiperContainer.swiper.slideTo(2, 0);
els.prevArrow.style.display = '';
els.nextArrow.style.display = 'none';
} else {
els.swiperContainer.swiper.slideTo(0, 0);
els.prevArrow.style.display = 'none';
els.nextArrow.style.display = '';
}
}
} else {
els.scrollbar.style.display = 'none';
els.arrowWrap.style.display = 'none';
swiperEventList.destroy();
}
}
};
const accessibility = {
setTitle: function(target){
if (typeof LOCAL_VARI != 'undefined' && !!LOCAL_VARI) {
target.button.setAttribute('title', LOCAL_VARI.selected);
} else {
target.button.setAttribute('title', 'Selected');
}
},
slide: function () {
for (let i = 0; i < els.swiperContainer.swiper.slides.length; i++) {
if (i != els.swiperContainer.swiper.activeIndex && i != (els.swiperContainer.swiper.activeIndex + 1)) {
utils.onAccessibility(els.swiperContainer.swiper.slides[i]);
} else {
utils.offAccessibility(els.swiperContainer.swiper.slides[i]);
}
}
},
arrow: function () {
if (els.swiperContainer.swiper.isBeginning && !els.swiperContainer.swiper.isEnd) {
utils.offAccessibility(els.nextArrow);
utils.onAccessibility(els.prevArrow);
} else if (!els.swiperContainer.swiper.isBeginning && els.swiperContainer.swiper.isEnd) {
utils.offAccessibility(els.prevArrow);
utils.onAccessibility(els.nextArrow);
} else {
utils.offAccessibility(els.nextArrow);
utils.offAccessibility(els.prevArrow);
}
}
};
return {
init: init,
}
})();
})();
(function () {
window.flagship = window.flagship || {};
window.flagship.features = window.flagship.features || {};
window.flagship.features.oneColumnCarousel = (function () {
const utils = window.flagship.common.utils;
const resize = window.flagship.common.resize;
let els = {};
let prevDevice;
let currDevice = resize.checkResolution();
let dimmedClass = 'is-dimmed';
const isRtl = document.documentElement.classList.contains('rtl');
const init = function () {
els.section = document.querySelectorAll('.js-one-column-carousel');
if (!!els.section) {
setElements();
setProperty();
bindEvents();
}
};
const setElements = function () {
for (let i = 0; i < els.section.length; i++) {
els.section[i].swiperContainer = els.section[i];
els.section[i].swiperSlides = els.section[i].swiperContainer.querySelectorAll('.swiper-slide');
els.section[i].prevArrow = els.section[i].parentElement.querySelector('.swiper-button-prev');
els.section[i].nextArrow = els.section[i].parentElement.querySelector('.swiper-button-next');
els.section[i].scrollbar = els.section[i].parentElement.querySelector('.swiper-scrollbar');
}
};
const setProperty = function() {
for (let i = 0; i < els.section.length; i++) {
let isSlideLength = els.section[i].swiperSlides.length;
for (let j = 0; j < isSlideLength; j++) {
els.section[i].swiperSlides[j].video = els.section[i].swiperSlides[j].querySelector('.common-video__video');
}
}
}
const bindEvents = function () {
eventList.load();
eventHandler.keydown();
eventHandler.click();
resize.add(eventList.resize);
};
const eventHandler = {
keydown: function() {
for (let i = 0; i < els.section.length; i++) {
els.section[i].prevArrow.addEventListener('keydown', function(e) {
if (e.keyCode == 13) e.preventDefault();
eventList.arrowFocus(this, els.section[i].nextArrow);
});
els.section[i].nextArrow.addEventListener('keydown', function(e) {
if (e.keyCode == 13) e.preventDefault();
eventList.arrowFocus(this, els.section[i].prevArrow);
});
}
},
click: function() {
for (let i = 0; i < els.section.length; i++) {
els.section[i].prevArrow.addEventListener('click', function(e) {
eventList.arrowFocus(this, els.section[i].nextArrow);
});
els.section[i].nextArrow.addEventListener('click', function(e) {
eventList.arrowFocus(this, els.section[i].prevArrow);
});
}
}
};
const eventList = {
load: function() {
swiperEvents.set();
for (let i = 0; i < els.section.length; i++) {
els.section[i].swiper.init();
if (els.section[i].swiperSlides.length >= 2) {
els.section[i].swiper.init();
}
}
},
resize: function() {
currDevice = resize.checkResolution();
if (prevDevice != currDevice) {
eventList.responsive();
prevDevice = currDevice;
};
},
responsive: function() {
for (let i = 0; i < els.section.length; i++) {
eventList.resetDimmedSlide(els.section[i].swiper);
els.section[i].swiper.slideTo(0, false);
if (eventList.getCarouselSizeInfo(els.section[i].swiper).viewLength > 0 && currDevice != 'mobile') eventList.initDimmedSlides(els.section[i].swiper);
}
},
setMedia: function(swiper, index) {
let isIndex = index + 1 > swiper.slides.length -1 ? swiper.slides.length -1 : index + 1;
let videoLength = swiper.el.querySelectorAll('video').length - 1;
let imageLength = swiper.el.querySelectorAll('img').length - 1;
let videoloadComplateLength = swiper.el.querySelectorAll('.is-video-load-complete').length - 1;
let imageloadComplateLength = swiper.el.querySelectorAll('.is-img-load-complete').length - 1;
let nextVideo = swiper.slides[isIndex].querySelector('video');
let nextImage = swiper.slides[isIndex].querySelector('img');
if (videoloadComplateLength != videoLength) {
if (!!nextVideo) {
videoLoader.setResponsiveMedia([nextVideo]);
}
}
if (imageloadComplateLength != imageLength) {
if (!!nextImage) {
imageLoader.setResponsiveMedia([nextImage]);
}
}
},
resetVideo: function(swiper) {
for (let i = 0; i < swiper.slides.length; i++) {
let isVideo = swiper.slides[i].video;
if (!!isVideo && !isVideo.paused) {
isVideo.pause();
isVideo.currentTime = 0;
};
};
},
getCarouselSizeInfo: function(swiper) {
let slideLength = swiper.slides.length;
let slideWidth = swiper.slides[0].clientWidth;
let slideMargin = parseInt(window.getComputedStyle(swiper.slides[0]).margin.split(' ')[isRtl ? 3 : 1]);
let slideSize = slideWidth + slideMargin;
let maxMoveSize = ((slideSize * slideLength) - slideMargin) - swiper.wrapperEl.clientWidth;
let viewWidth = swiper.wrapperEl.clientWidth;
let viewLength = parseInt((viewWidth + slideMargin)/slideSize);
let lastBeforeSize = slideLength == 2 ? 0 : Math.abs((maxMoveSize - slideSize)) + Math.abs((viewWidth - slideWidth));
let isMoveSize = Math.abs(parseInt(window.getComputedStyle(swiper.wrapperEl).transform.split(',')[4]));
return {
slideWidth: slideWidth,
slideMargin: slideMargin,
slideSize: slideSize,
maxMoveSize: maxMoveSize,
viewWidth: viewWidth,
viewLength: viewLength,
lastBeforeSize: lastBeforeSize,
isMoveSize: isMoveSize
}
},
initDimmedSlides: function(swiper) {
for (let i = 0; i < swiper.slides.length; i++) {
if ((swiper.activeIndex + eventList.getCarouselSizeInfo(swiper).viewLength) <= i) {
swiper.slides[i].classList.add(dimmedClass);
}
}
},
setDimmedSlide: function(swiper) {
if (currDevice != 'mobile') {
for (let i = 0; i < swiper.slides.length; i++) {
let dimmedSlide = (swiper.activeIndex) > i || (swiper.activeIndex + (eventList.getCarouselSizeInfo(swiper).viewLength - 1)) < i;
if (dimmedSlide) {
swiper.slides[i].classList.add(dimmedClass);
} else {
swiper.slides[i].classList.remove(dimmedClass);
}
}
}
},
resetDimmedSlide: function(swiper) {
for (let i = 0; i < swiper.slides.length; i++) {
swiper.slides[i].classList.remove(dimmedClass);
}
},
arrowFocus: function(isFocusArrow, nextFocusArrow) {
setTimeout(() => {
if (isFocusArrow.classList.contains('swiper-button-disabled')) nextFocusArrow.focus();
}, 300);
},
}
const swiperEvents = {
set: function () {
for (let i = 0; i < els.section.length; i++) {
if (els.section[i].swiper == null) {
new Swiper(els.section[i].swiperContainer, {
init: false,
slidesPerView: 'auto',
navigation: {
nextEl: els.section[i].nextArrow,
prevEl: els.section[i].prevArrow,
},
scrollbar: {
el: els.section[i].scrollbar,
draggable: true
},
});
els.section[i].swiper.on('init', swiperEvents.init);
els.section[i].swiper.on('slideChange', swiperEvents.slideChange);
els.section[i].swiper.on('transitionEnd', swiperEvents.transitionEnd);
}
}
},
init: function () {
let isNextArrow = this.el.parentElement.querySelector('.swiper-button-next');
let isPrevArrow = this.el.parentElement.querySelector('.swiper-button-prev');
isNextArrow.removeAttribute('aria-label');
isNextArrow.removeAttribute('role');
isPrevArrow.removeAttribute('aria-label');
isPrevArrow.removeAttribute('role');
accessibility.slide(this);
if (eventList.getCarouselSizeInfo(this).viewLength > 0 && currDevice != 'mobile') eventList.initDimmedSlides(this);
},
slideChange: function () {
accessibility.slide(this);
eventList.resetVideo(this);
if (eventList.getCarouselSizeInfo(this).viewLength > 0 && currDevice != 'mobile') eventList.setDimmedSlide(this);
if (this.realIndex > 0) eventList.setMedia(this, this.realIndex);
},
transitionEnd: function() {
if (this.slides.length < 3 && currDevice == 'mobile') return;
setTimeout(() => {
let carouselInfo = eventList.getCarouselSizeInfo(this);
let lastIndex = this.slides.length -1;
let lastSlide = this.slides[lastIndex];
let lastBeforeSlide = this.slides[lastIndex - 1];
if (carouselInfo.isMoveSize > carouselInfo.lastBeforeSize ||
carouselInfo.maxMoveSize <= carouselInfo.isMoveSize ||
(carouselInfo.isMoveSize > carouselInfo.lastBeforeSize && carouselInfo.maxMoveSize > carouselInfo.isMoveSize)) {
eventList.resetVideo(this);
lastSlide.classList.add('is-last-slide');
lastBeforeSlide.classList.add('is-dimmed');
lastSlide.classList.remove('is-dimmed');
utils.offAccessibility(this.slides[lastIndex]);
utils.onAccessibility(this.slides[lastIndex - 1]);
} else if (lastSlide.classList.contains('is-last-slide') && carouselInfo.lastBeforeSize >= carouselInfo.isMoveSize) {
eventList.resetVideo(this);
lastSlide.classList.add('is-dimmed');
lastSlide.classList.remove('is-last-slide');
lastBeforeSlide.classList.remove('is-dimmed');
utils.onAccessibility(this.slides[lastIndex]);
utils.offAccessibility(this.slides[lastIndex - 1]);
}
}, 0);
},
destroy: function (swiper) {
if (swiper != null) {
swiper.navigation.destroy(true);
swiper.destroy(true);
swiper = null;
}
},
};
const accessibility = {
slide: function (swiper) {
for (let i = 0; i < swiper.slides.length; i++) {
if (i != swiper.activeIndex) {
utils.onAccessibility(swiper.slides[i]);
} else {
utils.offAccessibility(swiper.slides[i]);
}
}
}
};
return {
init: init,
}
})();
})();
(function () {
window.flagship.features.scrollVideo = (function () {
const utils = window.flagship.common.utils,
resize = window.flagship.common.resize;
let els = {
scrollVideoWraps: [],
scrollVideo: [],
scene: [],
},
currDevice = resize.checkResolution();
const init = function () {
els.scrollVideoWraps = document.querySelectorAll('div:not(.js-interactive-intro-video)>.js-scroll-video');
if (els.scrollVideoWraps.length > 0) {
setProperty();
eventList.setVideo();
eventList.setScene();
bindEvents();
}
};
const setProperty = function () {
for (let i = 0; i < els.scrollVideoWraps.length; i++) {
els.scrollVideoWraps[i].video = els.scrollVideoWraps[i].querySelector('video');
els.scrollVideoWraps[i].controller = els.scrollVideoWraps[i].querySelector('.js-video-control');
els.scrollVideoWraps[i].controller.video = els.scrollVideoWraps[i].video;
els.scrollVideoWraps[i].startPoint = !!els.scrollVideoWraps[i].getAttribute('data-start-point') ? parseInt(els.scrollVideoWraps[i].getAttribute('data-start-point')) : undefined;
els.scrollVideoWraps[i].reversePoint = !!els.scrollVideoWraps[i].getAttribute('data-reverse-point') ? parseInt(els.scrollVideoWraps[i].getAttribute('data-reverse-point')) : undefined;
els.scrollVideoWraps[i].moStartPoint = !!els.scrollVideoWraps[i].getAttribute('data-mo-start-point') ? parseInt(els.scrollVideoWraps[i].getAttribute('data-mo-start-point')) : undefined;
els.scrollVideoWraps[i].moReversePoint = !!els.scrollVideoWraps[i].getAttribute('data-mo-reverse-point') ? parseInt(els.scrollVideoWraps[i].getAttribute('data-mo-reverse-point')) : undefined;
}
};
const bindEvents = function () {
eventHandler.scroll();
eventList.scroll();
eventHandler.click();
resize.add(eventList.resize);
};
const eventHandler = {
scroll: function () {
window.addEventListener('scroll', eventList.scroll);
},
click: function () {
for (let i = 0; i < els.scrollVideoWraps.length; i++) {
els.scrollVideoWraps[i].controller.addEventListener('click', eventList.clickVideoCta);
}
}
};
const eventList = {
setVideo: function () {
for (let i = 0; i < els.scrollVideoWraps.length; i++) {
els.scrollVideo[i] = utils.videoHandler({
playType: 'scrollPlay',
startPoint: (currDevice.indexOf('mobile') > -1) ? els.scrollVideoWraps[i].moStartPoint : els.scrollVideoWraps[i].startPoint,
reversePoint: (currDevice.indexOf('mobile') > -1) ? els.scrollVideoWraps[i].moReversePoint : els.scrollVideoWraps[i].reversePoint,
wrap: els.scrollVideoWraps[i],
video: els.scrollVideoWraps[i].video,
controller: els.scrollVideoWraps[i].controller,
resetCallback: function () {
if (this.wrap.classList.contains('is-completed')) {
this.wrap.classList.remove('is-completed');
}
if (this.wrap.classList.contains('is-started')) {
this.wrap.classList.remove('is-started');
}
if (!!this.video.videoWrap && this.video.videoWrap.classList.contains('js-interactive-intro-video')) {
this.video.tooltip.classList.remove('is-visible');
}
},
playCallback: function () {
if (!this.wrap.classList.contains('is-started')) {
this.wrap.classList.add('is-started');
}
setTagging.pause(this.controller);
},
pauseCallback: function () {
setTagging.play(this.controller);
},
endCallback: function () {
if (!this.wrap.classList.contains('is-completed')) {
this.wrap.classList.add('is-completed');
}
}
});
}
},
setScene: function () {
for (let i = 0; i < els.scrollVideoWraps.length; i++) {
els.scene[i] = SCROLLER({
trackElement: els.scrollVideoWraps[i].video,
useFixed: false,
resize: utils.detector.isTouchDevice ? false : true
});
}
},
scroll: function () {
for (let i = 0; i < els.scrollVideoWraps.length; i++) {
els.scene[i].trackAnimation(function () {
els.scrollVideo[i].scrollActive(this.progress);
});
}
},
resize: function (currRes) {
currDevice = currRes;
},
clickVideoCta: function (e) {
if (e.target == e.currentTarget) {
if (e.currentTarget.video.paused) {
e.currentTarget.video.play();
} else {
e.currentTarget.video.pause();
}
}
}
};
const setTagging = {
play: function (targetController) {
if (targetController.hasAttribute('data-omni')) {
let dataOmni = targetController.getAttribute('data-omni').toLowerCase();
targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play'));
}
if (targetController.hasAttribute('ga-la')) {
let gaLa = targetController.getAttribute('ga-la').toLowerCase();
targetController.setAttribute('ga-la', gaLa.replace('pause', 'play'));
}
},
pause: function (targetController) {
if (targetController.hasAttribute('data-omni')) {
let dataOmni = targetController.getAttribute('data-omni').toLowerCase();
targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause'));
}
if (targetController.hasAttribute('ga-la')) {
let gaLa = targetController.getAttribute('ga-la').toLowerCase();
targetController.setAttribute('ga-la', gaLa.replace('play', 'pause'));
}
}
};
return {
init: init
}
})();
})();
;
(function () {
window.flagship.features.threeColumnCarousel = (function () {
const utils = window.flagship.common.utils,
resize = window.flagship.common.resize;
let els = {},
swiperObj,
prevDevice = null,
currDevice = resize.checkResolution();
dimmedClass = 'is-dimmed';
const isRtl = document.documentElement.classList.contains('rtl');
const init = function () {
els.section = document.querySelectorAll('.js-three-column-carousel');
if (!!els.section) {
setElements();
bindEvents();
}
};
const setElements = function () {
for (let i = 0; i < els.section.length; i++) {
els.section[i].swiperContainer = els.section[i];
els.section[i].swiperSlide = els.section[i].querySelectorAll('.swiper-slide');
els.section[i].nextArrow = els.section[i].parentElement.querySelector('.swiper-button-next');
els.section[i].prevArrow = els.section[i].parentElement.querySelector('.swiper-button-prev');
els.section[i].scrollbar = els.section[i].parentElement.querySelector('.swiper-scrollbar');
};
};
const bindEvents = function () {
eventList.load();
eventHandler.keydown();
eventHandler.click();
resize.add(eventList.resize);
};
const eventHandler = {
swiper: function() {
for (let i = 0; i < els.section.length; i++) {
els.section[i].swiper.on('init', swiperEvents.init);
els.section[i].swiper.on('slideChange', swiperEvents.slideChange);
els.section[i].swiper.on('transitionEnd', swiperEvents.transitionEnd);
};
},
keydown: function() {
for (let i = 0; i < els.section.length; i++) {
els.section[i].prevArrow.addEventListener('keydown', function(e) {
if (e.keyCode == 13) e.preventDefault();
eventList.arrowFocus(this, els.section[i].nextArrow);
});
els.section[i].nextArrow.addEventListener('keydown', function(e) {
if (e.keyCode == 13) e.preventDefault();
eventList.arrowFocus(this, els.section[i].prevArrow);
});
}
},
click: function() {
for (let i = 0; i < els.section.length; i++) {
els.section[i].prevArrow.addEventListener('click', function(e) {
eventList.arrowFocus(this, els.section[i].nextArrow);
});
els.section[i].nextArrow.addEventListener('click', function(e) {
eventList.arrowFocus(this, els.section[i].prevArrow);
});
}
}
};
const eventList = {
load: function() {
for (let i = 0; i < els.section.length; i++) {
let desktopStatus = (currDevice == 'desktop' || currDevice == 'tablet') && els.section[i].swiperSlide.length > 3;
let mobileStatus = (currDevice == 'mobile' || currDevice == 'mobileS') && els.section[i].swiperSlide.length > 1;
if (desktopStatus || mobileStatus) {
swiperEvents.set();
eventHandler.swiper();
els.section[i].swiper.init();
}
}
},
resize: function() {
currDevice = resize.checkResolution();
if (prevDevice != currDevice) {
eventList.responsive();
prevDevice = currDevice;
};
},
responsive: function() {
for (let i = 0; i < els.section.length; i++) {
let isSection = els.section[i];
let desktopStatus = (currDevice == 'desktop' || currDevice == 'tablet') && isSection.swiperSlide.length > 3;
let mobileStatus = (currDevice == 'mobile' || currDevice == 'mobileS') && isSection.swiperSlide.length > 1;
eventList.resetDimmedSlide(isSection.swiper);
accessibility.reset(isSection.swiper);
if (desktopStatus || mobileStatus) {
if (isSection.swiper.initialized) swiperEvents.destroy(isSection.swiper);
swiperEvents.set();
eventHandler.swiper();
isSection.swiper.init();
if (desktopStatus) eventList.initDimmedSlides(isSection.swiper);
if (mobileStatus) accessibility.slide(isSection.swiper);
} else if ((!desktopStatus || !mobileStatus) && isSection.swiper != undefined) {
if (isSection.swiper.initialized) swiperEvents.destroy(isSection.swiper);
}
};
},
getCarouselSizeInfo: function(swiperObj) {
let slideLength = swiperObj.slides.length;
let slideWidth = swiperObj.slides[0].clientWidth;
let slideMargin = parseInt(window.getComputedStyle(swiperObj.slides[0]).margin.split(' ')[isRtl ? 3 : 1]);
let slideSize = slideWidth + slideMargin;
let maxMoveSize = ((slideSize * slideLength) - slideMargin) - swiperObj.wrapperEl.clientWidth;
let viewWidth = swiperObj.wrapperEl.clientWidth;
let viewLength = Math.round((viewWidth + slideMargin)/slideSize);
let lastBeforeSize =
currDevice.indexOf('mobile') == -1 && slideLength == 3 ? 0 :
currDevice.indexOf('mobile') > -1 && slideLength == 2 ? 0 :
(slideWidth + slideMargin) * ((slideLength - viewLength) - 1);
let isMoveSize = Math.abs(parseInt(window.getComputedStyle(swiperObj.wrapperEl).transform.split(',')[4]));
return {
slideLength: slideLength,
slideWidth: slideWidth,
slideMargin: slideMargin,
slideSize: slideSize,
maxMoveSize: maxMoveSize,
viewWidth: viewWidth,
viewLength: viewLength,
lastBeforeSize: lastBeforeSize,
isMoveSize: isMoveSize
}
},
initDimmedSlides: function(swiperObj) {
for (let i = 0; i < swiperObj.slides.length; i++) {
let isSlide = swiperObj.slides[i];
if ((swiperObj.activeIndex + eventList.getCarouselSizeInfo(swiperObj).viewLength) <= i) {
isSlide.classList.add(dimmedClass);
utils.onAccessibility(isSlide)
}
}
},
setDimmedSlide: function(swiperObj) {
for (let i = 0; i < swiperObj.slides.length; i++) {
let isSlide = swiperObj.slides[i];
let dimmedSlide = (swiperObj.activeIndex) > i || (swiperObj.activeIndex + (eventList.getCarouselSizeInfo(swiperObj).viewLength - 1)) < i;
if (dimmedSlide) {
isSlide.classList.add(dimmedClass);
accessibility.slide(swiperObj);
} else {
isSlide.classList.remove(dimmedClass);
accessibility.slide(swiperObj);
}
}
},
resetDimmedSlide: function(swiperObj) {
if (!!!swiperObj) return;
for (let i = 0; i < swiperObj.slides.length; i++) {
swiperObj.slides[i].classList.remove(dimmedClass);
}
},
tagging: function () {
const values = {
'data-omni-type': 'microsite_pcontentinter',
'data-omni': 'galaxy-z-fold6:highlights:indicator:sldr-dots:',
'ga-ca': 'indication',
'ga-ac': 'carousel',
'ga-la': 'galaxy-z-fold6:highlights:indicator:sldr-dots:',
};
},
arrowFocus: function(isFocusArrow, nextFocusArrow) {
setTimeout(() => {
if (isFocusArrow.classList.contains('swiper-button-disabled')) nextFocusArrow.focus();
}, 300);
},
};
const swiperEvents = {
set: function () {
for (let i = 0; i < els.section.length; i++) {
if (els.section[i].swiper == null) {
new Swiper(els.section[i].swiperContainer, {
init: false,
slidesPerView: 'auto',
speed: 200,
navigation: {
nextEl: els.section[i].nextArrow,
prevEl: els.section[i].prevArrow,
},
scrollbar: {
el: els.section[i].scrollbar,
draggable: true
}
});
}
}
},
init: function () {
let isNextArrow = this.el.parentElement.querySelector('.swiper-button-next');
let isPrevArrow = this.el.parentElement.querySelector('.swiper-button-prev');
isNextArrow.removeAttribute('aria-label');
isNextArrow.removeAttribute('role');
isPrevArrow.removeAttribute('aria-label');
isPrevArrow.removeAttribute('role');
eventList.tagging();
eventList.initDimmedSlides(this);
accessibility.slide(this);
},
transitionEnd: function() {
let carouselInfo = eventList.getCarouselSizeInfo(this);
setTimeout(() => {
let lastIndex = this.slides.length -1 ;
let lastSlide = this.slides[lastIndex];
let lsatDimmedLength = (carouselInfo.slideLength - 1) - carouselInfo.viewLength;
let lastBeforeSlide = this.slides[lsatDimmedLength];
if (carouselInfo.isMoveSize > carouselInfo.lastBeforeSize && carouselInfo.maxMoveSize >= carouselInfo.isMoveSize) {
lastSlide.classList.add('is-last-slide');
lastBeforeSlide.classList.add('is-dimmed');
lastSlide.classList.remove('is-dimmed');
if (currDevice.indexOf('mobile') > -1) {
utils.offAccessibility(this.slides[lastIndex]);
utils.onAccessibility(this.slides[lastIndex - 1]);
} else {
for (let i = 0; i < this.slides.length; i++) {
if (i == lastIndex || i == lastIndex - 1 || i == lastIndex - 2) {
utils.offAccessibility(this.slides[i]);
} else {
utils.onAccessibility(this.slides[i]);
}
}
}
} else if (lastSlide.classList.contains('is-last-slide') && carouselInfo.lastBeforeSize >= carouselInfo.isMoveSize) {
lastSlide.classList.add('is-dimmed');
lastSlide.classList.remove('is-last-slide');
lastBeforeSlide.classList.remove('is-dimmed');
if (currDevice.indexOf('mobile') > -1) {
utils.onAccessibility(this.slides[lastIndex]);
utils.offAccessibility(this.slides[lastIndex - 1]);
} else {
utils.onAccessibility(this.slides[lastIndex]);
utils.offAccessibility(this.slides[lastIndex - 1]);
utils.offAccessibility(this.slides[lastIndex - 2]);
}
}
}, 0);
},
slideChange: function () {
eventList.setDimmedSlide(this);
accessibility.slide(this);
},
destroy: function (swiperObj) {
swiperObj.navigation.destroy(true);
swiperObj.destroy(true);
swiperObj = null;
},
};
const accessibility = {
slide: function (swiper) {
if (currDevice.indexOf('mobile') > -1) {
for (let i = 0; i < swiper.slides.length; i++) {
if (i != swiper.activeIndex) {
utils.onAccessibility(swiper.slides[i]);
} else {
utils.offAccessibility(swiper.slides[i]);
}
}
} else {
for (let i = 0; i < swiper.slides.length; i++) {
if (i != swiper.activeIndex && i != (swiper.activeIndex + 1) && i != (swiper.activeIndex + 2)) {
utils.onAccessibility(swiper.slides[i]);
} else {
utils.offAccessibility(swiper.slides[i]);
if (!!swiper.slides[i + 1]) utils.offAccessibility(swiper.slides[i + 1]);
if (!!swiper.slides[i + 2]) utils.offAccessibility(swiper.slides[i + 2]);
}
}
}
},
reset: function(swiper) {
for (let i = 0; i < swiper.slides.length; i++) {
utils.offAccessibility(swiper.slides[i]);
}
}
};
return {
init: init
}
})();
})();
(function () {
window.flagship.features.aiOverview = (function () {
const utils = window.flagship.common.utils,
resize = flagship.common.resize;
let els = {};
let currDevice = resize.checkResolution();
const init = function () {
els.section = document.querySelector(".features-ai-overview");
if (!!els.section) {
setElements();
eventList.setScene();
bindEvents();
}
};
const setElements = function () {
// title
els.overviewTextWrap = els.section.querySelector(
".js-overview-text-wrap"
);
// logoVideo
els.logoWrap = els.section.querySelector(".js-logo-wrap");
els.logoVideoWrap = els.section.querySelector(".js-logo-video-wrap");
els.overviewVideo = els.logoVideoWrap.querySelector("video");
};
const bindEvents = function () {
eventHandler.scroll();
eventList.scroll();
resize.add(eventHandler.resize);
};
const eventHandler = {
scroll: function () {
window.addEventListener("scroll", eventList.scroll);
},
resize: function (currRes) {
currDevice = currRes;
},
};
const eventList = {
setScene: function () {
els.scene = SCROLLER({
trackElement: els.overviewTextWrap,
useFixed: false,
resize: utils.detector.isTouchDevice ? false : true,
});
},
scroll: function () {
els.scene.trackAnimation(function () {
//텍스트 페이드인
if (
this.wheelDirection == "down" &&
this.progress <= 100 &&
this.progress > 0
) {
if (!els.section.classList.contains("is-active")) {
els.section.classList.add("is-active");
if (els.overviewVideo.paused) {
els.overviewVideo.play();
}
}
} else if (this.wheelDirection == "up" && this.progress == 0) {
if (els.section.classList.contains("is-active")) {
els.section.classList.remove("is-active");
if (!els.overviewVideo.paused) {
els.overviewVideo.pause();
els.overviewVideo.currentTime = 0;
}
}
}
});
},
};
return {
init: init,
};
})();
})();
(function () {
window.flagship.features.battery = (function () {
const utils = window.flagship.common.utils,
resize = window.flagship.common.resize;
let els = {},
startNum = 3700,
endNum = 4000,
counter = {
num: startNum
},
animateStatus = true,
tweenObj,
prevDevice = null,
currDevice = resize.checkResolution();
const init = function () {
els.section = document.querySelector('.features-battery');
if (!!els.section) {
setElements();
bindEvents();
}
};
const setElements = function () {
els.capacity = els.section.querySelector('.js-battery-capacity');
els.value = els.capacity.querySelector('.js-battery-value');
};
const bindEvents = function () {
eventHandler.load();
eventList.scroll();
eventHandler.scroll();
};
const eventHandler = {
load: function() {
eventList.setScene();
},
scroll: function() {
window.addEventListener('scroll', eventList.scroll);
}
}
const eventList = {
setScene: function() {
SCROLLER({
trackElement: els.capacity,
useFixed: false
});
},
scroll: function() {
els.capacity.scroller.trackAnimation(function(){
let countActive = this.progress > 1 && animateStatus && !!!tweenObj;
let countReset = this.progress <= 0 && this.wheelDirection == 'up' && !!tweenObj;
if (countReset) {
tweenObj.kill();
counter.num = startNum;
tweenObj = null;
els.capacity.classList.remove('is-active');
}
if (countActive) {
animateStatus = false;
els.capacity.classList.add('is-active');
tweenObj = TweenMax.to(counter, 2, {num: endNum,
onUpdate: function() {
els.value.textContent = Math.floor(counter.num);
},
onComplate: function() {
animateStatus = true;
}});
}
});
}
};
return {
init: init
}
})();
})();
;
(function () {
window.flagship.features.cameraSpec = (function () {
const utils = window.flagship.common.utils,
resize = window.flagship.common.resize;
let els = {},
prevDevice = null,
currDevice = resize.checkResolution();
const init = function () {
els.section = document.querySelector('.features-camera-spec');
if (!!els.section) {
setElements();
bindEvents();
}
};
const setElements = function () {
els.listInner = els.section.querySelectorAll('.js-camera-spec-inner');
};
const bindEvents = function () {
resize.add(eventList.resize);
eventList.load();
eventList.showCollout();
eventHandler.scroll();
};
const eventHandler = {
scroll: function() {
window.addEventListener('scroll', eventList.showCollout);
}
}
const eventList = {
load: function() {
eventList.setSecene();
},
resize: function (currRes) {
currDevice = currRes;
if (currDevice != prevDevice) {
prevDevice = currDevice;
}
},
setSecene: function () {
for (let i = 0; i < els.listInner.length; i++) {
SCROLLER({
trackElement: els.listInner[i],
useFixed: false
});
}
},
showCollout: function() {
for (let i = 0; i < els.listInner.length; i++) {
els.listInner[i].scroller.trackAnimation(function() {
if (this.progress > 0) {
this.trackElement.classList.add('is-active');
}
if (i == 0) {
if (this.progress <= 0) {
for (let j = 0; j < els.listInner.length; j++) {
els.listInner[j].classList.remove('is-active');
}
}
}
});
}
}
};
return {
init: init
}
})();
})();
(function () {
window.flagship.features.colorchip = function (colorchipWrap) {
const utils = window.flagship.common.utils,
common = window.flagship.features.common,
resize = window.flagship.common.resize;
let els = {},
activeClass = 'is-active',
currentDevice = resize.checkResolution(),
prevDevice = null,
currentSlidesPerView = currentDevice.indexOf('mobile') > -1 ? 5 : 7;
const init = function () {
els.section = document.querySelector('.js-colors');
els.popup = document.querySelector('.js-viewer');
if (colorchipWrap.type == 'popup') {
colorchipWrap.contentWrap = els.popup;
} else {
colorchipWrap.contentWrap = els.section;
}
setElements();
setProperty();
bindEvents();
};
const setElements = function () {
// panel
els.panelWrap = els.section.querySelector('.js-panel-wrap');
els.panelItems = els.panelWrap.querySelectorAll('.js-panel-item');
// colorchip
els.swiperContainer = colorchipWrap.querySelector('.js-colorchip-container');
els.colorchipButtons = colorchipWrap.querySelectorAll('.js-colorchip-button');
els.swiperArrowWrap = colorchipWrap.querySelector('.js-arrow-wrap');
els.swiperNextArrow = colorchipWrap.querySelector('.js-colorchip-next');
els.swiperPrevArrow = colorchipWrap.querySelector('.js-colorchip-prev');
els.colorchipNames = colorchipWrap.querySelectorAll('.js-colorchip-name');
// 360 Popup Btn
els.viewerBtn = els.section.querySelector('.viewer-btn');
// viewer
els.viewerSection = els.section.querySelector('.js-colors-viewer');
els.viewerIframe = colorchipWrap.contentWrap.querySelector('iframe');
// exclusive badge
els.exclusive = colorchipWrap.contentWrap.querySelector('.js-exclusive-badge');
};
const setProperty = function () {
for (let i = 0; i < els.colorchipButtons.length; i++) {
els.colorchipButtons[i].index = i;
}
};
const bindEvents = function () {
eventList.checkColorchipSwiper();
if (colorchipWrap.type != 'popup') eventList.setColors(0);
eventHandler.click();
eventHandler.keydown();
resize.add(eventList.resize);
eventHandler.scroll();
};
const eventHandler = {
click: function () {
for (let i = 0; i < els.colorchipButtons.length; i++) {
els.colorchipButtons[i].addEventListener('click', eventList.clickColorchip);
}
els.viewerBtn.addEventListener('click', function () {
let activeIndex = this.getAttribute('data-target-index');
eventList.setColorchip(activeIndex);
eventList.setColorName(activeIndex);
eventList.setExclusive(activeIndex);
});
els.swiperNextArrow.addEventListener('click', accessibility.clickArrow);
els.swiperPrevArrow.addEventListener('click', accessibility.clickArrow);
},
keydown: function () {
els.swiperNextArrow.addEventListener('keydown', accessibility.clickArrow);
els.swiperPrevArrow.addEventListener('keydown', accessibility.clickArrow);
},
scroll: function () {
window.addEventListener('scroll', eventList.scroll);
}
};
const eventList = {
scroll: function () {
let winOffsetBottom = window.pageYOffset + window.innerHeight,
kv = document.querySelector('.features-kv'),
kvHeight = kv.getBoundingClientRect().height + utils.getNavHeight();
if (winOffsetBottom >= kvHeight) {
// bg load
colorchipWrap.bgImgs = colorchipWrap.querySelectorAll('.js-bg-img');
if(!!colorchipWrap.bgImgs) bgLoader.setResponsiveMedia(colorchipWrap.bgImgs);
eventList.setViewer();
window.removeEventListener('scroll', eventList.scroll);
}
},
setViewer: function () {
if (!utils.isLowNetwork()) {
setTimeout(function () {
els.viewerIframe.style.position = 'fixed';
els.viewerIframe.style.top = 0;
els.viewerIframe.style.opacity = 0;
setTimeout(function () {
els.viewerIframe.style.position = '';
els.viewerIframe.style.top = '';
els.viewerIframe.style.opacity = '';
}, 300);
}, 1000);
// set
eventList.setViewerUrl(els.colorchipButtons[0].getAttribute('data-colors'));
}
},
checkColorchipSwiper: function () {
let colorchipSwiperLength = currentDevice.indexOf('mobile') > -1 ? 6 : 8;
if (els.colorchipButtons.length >= colorchipSwiperLength) {
if (els.swiperArrowWrap.style.display == 'none') {
els.swiperArrowWrap.style.display = '';
}
swiperEvents.set();
} else {
if (els.swiperArrowWrap.style.display != 'none') {
els.swiperArrowWrap.style.display = 'none';
}
if (els.colorchipSwiper != null) {
swiperEvents.destroy();
}
}
},
setColors: function (activeIndex) {
eventList.setPopupBtn(els.colorchipButtons[activeIndex]);
eventList.setColorchip(activeIndex);
eventList.setPanel(activeIndex);
eventList.setColorName(activeIndex);
eventList.setExclusive(activeIndex);
},
resize: function (currRes) {
currentDevice = currRes;
if (currentDevice !== prevDevice) {
eventList.checkColorchipSwiper();
currentSlidesPerView = currentDevice.indexOf('mobile') > -1 ? 5 : 7;
prevDevice = currentDevice;
}
},
clickColorchip: function () {
let targetColor = this;
eventList.setColors(targetColor.index);
eventList.setViewerUrl(targetColor.getAttribute('data-colors'));
},
setColorchip: function (activeIndex) {
let targetcolorchipButton = els.colorchipButtons[activeIndex];
for (let i = 0; i < els.colorchipButtons.length; i++) {
els.colorchipButtons[i].classList.remove(activeClass);
if (!!colorchipWrap.isStatic) {
els.colorchipButtons[i].setAttribute('aria-selected', false);
} else {
els.colorchipButtons[i].removeAttribute('title');
}
}
if (!targetcolorchipButton.classList.contains(activeClass)) {
targetcolorchipButton.classList.add(activeClass);
if (!!colorchipWrap.isStatic) {
targetcolorchipButton.setAttribute('aria-selected', true);
} else {
accessibility.selected(targetcolorchipButton);
}
}
},
setPanel: function (activeIndex) {
if (!colorchipWrap.isStatic) return;
for (let i = 0; i < els.panelItems.length; i++) {
if (els.panelItems[i].classList.contains(activeClass)) {
els.panelItems[i].classList.remove(activeClass);
els.panelItems[i].setAttribute('aria-hidden', true);
}
}
if (!els.panelItems[activeIndex].classList.contains(activeClass)) {
els.panelItems[activeIndex].classList.add(activeClass);
els.panelItems[activeIndex].setAttribute('aria-hidden', false);
}
},
setColorName: function (activeIndex) {
for (let i = 0; i < els.colorchipNames.length; i++) {
if (els.colorchipNames[i].classList.contains(activeClass)) {
els.colorchipNames[i].classList.remove(activeClass);
els.colorchipNames[i].setAttribute('aria-hidden', true);
}
}
if (!els.colorchipNames[activeIndex].classList.contains(activeClass)) {
els.colorchipNames[activeIndex].classList.add(activeClass);
els.colorchipNames[activeIndex].setAttribute('aria-hidden', false);
}
},
setViewerUrl: function (colorName) {
if (!!colorchipWrap.isStatic) return;
if (colorchipWrap.type == 'popup') {
let viewerSrc = els.viewerIframe.getAttribute('src').split('#color=')[0];
els.viewerIframe.setAttribute('src', `${viewerSrc}#color=${colorName}`);
} else {
els.viewerSection.setAttribute('data-model-color', colorName);
els.viewerIframe.setAttribute('src', common.getViewerUrl());
}
},
setPopupBtn: function (target) {
if (colorchipWrap.type == 'popup') return;
els.viewerBtn.setAttribute('data-target-index', target.index);
els.viewerBtn.setAttribute('data-model-color', target.getAttribute('aria-controls'));
},
setExclusive: function (activeIndex) {
if (!!els.colorchipButtons[activeIndex].getAttribute('data-exclusive')) {
els.exclusive.classList.add('is-active');
} else {
els.exclusive.classList.remove('is-active');
}
}
};
const swiperEvents = {
set: function () {
if (els.colorchipSwiper == null) {
els.colorchipSwiper = new Swiper(els.swiperContainer, {
init: false,
navigation: {
nextEl: els.swiperNextArrow,
prevEl: els.swiperPrevArrow,
},
slidesPerView: currentSlidesPerView,
speed: 300,
});
els.colorchipSwiper.on('init', swiperEvents.init);
els.colorchipSwiper.on('slideChange', swiperEvents.slideChange);
els.colorchipSwiper.init();
}
},
init: function () {
let notification = this.el.querySelector('.swiper-notification');
if (!!notification) this.el.removeChild(notification);
els.swiperPrevArrow.removeAttribute('aria-label');
els.swiperPrevArrow.removeAttribute('role');
els.swiperNextArrow.removeAttribute('aria-label');
els.swiperNextArrow.removeAttribute('role');
accessibility.colorchip(els.colorchipSwiper);
},
slideChange: function () {
accessibility.colorchip(els.colorchipSwiper);
},
destroy: function () {
els.colorchipSwiper.destroy(true);
els.colorchipSwiper = null;
},
};
const accessibility = {
clickArrow: function (e) {
let arrowTimeout = null,
arrowStyleTimeout = null;
if ((e.type == 'keydown' && e.keyCode == 13) || e.type == 'click') {
e.preventDefault();
if (els.colorchipSwiper.isBeginning && !els.colorchipSwiper.isEnd) {
els.swiperPrevArrow.style.setProperty('display', 'block');
clearTimeout(arrowTimeout);
arrowTimeout = setTimeout(function () {
els.swiperNextArrow.focus();
}, 300);
clearTimeout(arrowStyleTimeout);
arrowStyleTimeout = setTimeout(function () {
els.swiperPrevArrow.style.display = '';
}, 400);
} else if (!els.colorchipSwiper.isBeginning && els.colorchipSwiper.isEnd) {
els.swiperNextArrow.style.setProperty('display', 'block');
clearTimeout(arrowTimeout);
arrowTimeout = setTimeout(function () {
els.swiperPrevArrow.focus();
}, 300);
clearTimeout(arrowStyleTimeout);
arrowStyleTimeout = setTimeout(function () {
els.swiperNextArrow.style.display = '';
}, 400);
}
}
},
colorchip: function (swiperObj) {
let isNotActivedColorchips = null;
for (let i = 0; i < swiperObj.slides.length; i++) {
if (currentDevice.indexOf('mobile') > -1) {
isNotActivedColorchips = (i != swiperObj.activeIndex) && (i > swiperObj.activeIndex + 4) || (swiperObj.activeIndex > i);
} else {
isNotActivedColorchips = (i != swiperObj.activeIndex) && (i > swiperObj.activeIndex + 6) || (swiperObj.activeIndex > i);
}
if (isNotActivedColorchips) {
utils.onAccessibility(swiperObj.slides[i]);
setTimeout(function () {
utils.onAccessibility(swiperObj.slides[i]);
}, 300);
} else {
utils.offAccessibility(swiperObj.slides[i]);
setTimeout(function () {
utils.offAccessibility(swiperObj.slides[i]);
}, 300);
}
}
},
selected: function (target) {
if (typeof LOCAL_VARI != 'undefined' && !!LOCAL_VARI) {
target.setAttribute('title', LOCAL_VARI.selected);
} else {
target.setAttribute('title', 'Selected');
}
}
};
return init(colorchipWrap);
};
let colorchips = document.querySelectorAll('.js-colorchip');
for (let i = 0; i < colorchips.length; i++) {
colorchips[i].type = colorchips[i].parentElement.classList.contains('js-popup-colorchip') ? 'popup' : 'colors';
colorchips[i].isStatic = colorchips[i].parentElement.getAttribute('data-static');
flagship.features.colorchip(colorchips[i]);
}
})();
;
(function () {
window.flagship.features.faq = (function () {
const resize = window.flagship.common.resize,
utils = window.flagship.common.utils;
let els = {},
prevDevice = null,
currDevice = resize.checkResolution();
const init = function () {
els.section = document.querySelector('.js-faq');
if (!!els.section) {
setElements();
bindEvents();
}
};
const setElements = function () {
els.faqList = els.section.querySelector('.js-faq-list');
};
const bindEvents = function () {
resize.add(eventList.resize);
eventList.setAccordion();
};
const eventList = {
resize: function (currRes) {
currDevice = currRes;
if (currDevice != prevDevice) {
eventList.responsive();
prevDevice = currDevice;
}
},
responsive: function () {
let isOpenedItems = els.faqList.querySelectorAll('.js-faq-item.is-open');
if (isOpenedItems.length > 0) {
for (let i = 0; i < isOpenedItems.length; i++) {
let isOpenedItemContent = isOpenedItems[i].querySelector('.js-faq-answer'),
clientHeight = isOpenedItemContent.children[0].clientHeight;
isOpenedItemContent.style.height = `${clientHeight}px`;
}
}
},
setAccordion: function () {
els.accordion = new window.flagship.common.accordion({
wrap: els.faqList,
classList: {
item: 'js-faq-item',
button: 'js-faq-open',
contents: 'js-faq-answer',
activeClass: 'is-open'
},
open: {
start: function (target) {
let targetInnerCta = target.querySelector('.js-featue-cta');
if (targetInnerCta) targetInnerCta.addEventListener('click', accessibility.moveFocus);
}
}
});
els.accordion.init();
},
};
const accessibility = {
moveFocus: function (e) {
if (this.getAttribute('href').indexOf('#') > -1) {
e.preventDefault();
let sectionId = this.getAttribute('href'),
section = document.querySelector(`${sectionId}`),
sectionTop = section.getBoundingClientRect().top,
movePosition = (sectionTop + window.pageYOffset) - utils.getNavHeight(),
clickable = section.querySelectorAll('a, button'),
title = section.querySelector('h2') || section.querySelector('h3');
if (!!title) {
let _focusOut = function () {
title.removeAttribute('tabindex');
title.removeEventListener('focusout', _focusOut);
};
title.addEventListener('focusout', _focusOut);
title.setAttribute('tabindex', 0);
title.focus();
} else {
clickable[0].focus();
}
window.scrollTo(0, movePosition);
}
}
};
return {
init: init
}
})();
})();
(function () {
window.flagship.features.flexWindow = (function () {
const utils = window.flagship.common.utils;
const resize = window.flagship.common.resize;
let els = {};
let oldIndex = 0;
let swiperObj = {};
let pointerOffset = {};
let currDevice = resize.checkResolution();
let videoPlayStatus = false;
let animationStatus = 'pause';
let lowNetwork = document.documentElement.classList.contains('low_network');
const init = function () {
els.section = document.querySelector('.features-flex-window');
if (!!els.section) {
setElements();
bindEvents();
}
};
const setElements = function () {
els.carouselWrap = els.section.querySelector('.features-flex-window__carousel');
els.carouselInner = els.section.querySelector('.features-flex-window__carousel-inner');
els.swiperContainer = els.section.querySelector('.swiper-container');
els.swiperSlides = els.swiperContainer.querySelectorAll('.swiper-slide');
els.firstSlide = els.swiperSlides[0];
els.firstVideoControl = els.swiperSlides[0].querySelector('.js-video-control');
els.nextArrow = els.section.querySelector('.swiper-button-next');
els.prevArrow = els.section.querySelector('.swiper-button-prev');
els.autoSlideController = els.section.querySelector('.features-flex-window__carousel-button');
els.blind = els.autoSlideController.querySelector('.blind');
els.videos;
els.realCarouselSlides;
};
const setProperty = function () {
for (let i = 0; i < els.realCarouselSlides.length; i++) {
let isSlide = els.realCarouselSlides[i];
let isVideoWrap = els.realCarouselSlides[i].querySelector('.common-video');
if (!!isVideoWrap) {
isSlide.videoWrap = isVideoWrap;
isSlide.videoWrap.video = isVideoWrap.querySelector('.common-video__video');
isSlide.video = isVideoWrap.querySelector('.common-video__video');
isSlide.videoWrap.controller = isVideoWrap.querySelector('.js-video-control');
isSlide.videoWrap.controller.video = isVideoWrap.querySelector('.common-video__video');
}
}
};
const bindEvents = function () {
eventList.load();
eventHandler.scroll();
eventHandler.autoSlideController();
};
const eventHandler = {
scroll: function() {
window.addEventListener('scroll', eventList.scroll)
},
transitionend: function() {
els.carouselInner.addEventListener('animationend', eventList.transitionend, {once: true})
},
flickSwiper: function() {
els.carouselWrap.addEventListener('touchstart', function(e) {
pointerOffset.start = null;
pointerOffset.current = null;
pointerOffset.start = e.touches[0].clientX;
els.carouselWrap.addEventListener('touchmove', eventList.getPointerMoveSize);
});
els.carouselWrap.addEventListener('touchend', function() {
if (pointerOffset.start == null) return;
eventList.flickSwiper();
els.carouselWrap.removeEventListener('touchmove', eventList.getPointerMoveSize);
});
els.carouselWrap.addEventListener('mousedown', function(e) {
pointerOffset.start = null;
pointerOffset.current = null;
pointerOffset.start = e.offsetX;
els.carouselWrap.addEventListener('mousemove', eventList.getPointerMoveSize);
});
els.carouselWrap.addEventListener('mouseup', function() {
eventList.flickSwiper();
els.carouselWrap.removeEventListener('mousemove', eventList.getPointerMoveSize);
});
els.carouselWrap.addEventListener('mouseleave', function() {
if (pointerOffset.start == null) return;
pointerOffset.start = null;
pointerOffset.current = null;
els.carouselWrap.removeEventListener('mousemove', eventList.getPointerMoveSize);
});
},
click: function () {
for (let i = 0; i < els.realCarouselSlides.length; i++) {
let isVideoWrap = els.realCarouselSlides[i].videoWrap;
if (!!isVideoWrap) {
els.realCarouselSlides[i].videoWrap.controller.addEventListener('click', eventList.clickVideoCta);
}
}
},
autoSlideController: function() {
els.autoSlideController.addEventListener('click', eventList.autoSlideController);
}
};
const eventList = {
load: function() {
swiperEvent.set();
swiperObj.thumb.init();
eventList.setScene();
eventList.scroll();
eventList.setAutoSlideController(animationStatus = 'pause');
els.firstSlide.setAttribute('aria-hidden', true);
},
setVideo: function() {
els.realCarouselSlides = els.swiperContainer.querySelectorAll('.swiper-slide');
els.videos = els.swiperContainer.querySelectorAll('.common-video__video');
setProperty();
eventHandler.click();
for (let i = 0; i < els.realCarouselSlides.length; i++) {
let isVideoWrap = els.realCarouselSlides[i].videoWrap;
if (!!isVideoWrap) {
if (!isVideoWrap.classList.contains('is-loaded')) isVideoWrap.classList.add('is-loaded');
utils.videoHandler({
playType: 'scrollPlay',
wrap: isVideoWrap,
video: isVideoWrap.video,
controller: isVideoWrap.controller,
resetCallback: function () {
if (this.wrap.classList.contains('is-completed')) {
this.wrap.classList.remove('is-completed');
}
if (this.wrap.classList.contains('is-started')) {
this.wrap.classList.remove('is-started');
}
},
playCallback: function () {
if (!this.wrap.classList.contains('is-started')) {
this.wrap.classList.add('is-started');
}
setTagging.pause(this.controller);
},
pauseCallback: function () {
setTagging.play(this.controller);
},
endCallback: function () {
if (!this.wrap.classList.contains('is-completed')) {
this.wrap.classList.add('is-completed');
}
}
});
}
}
},
playVideo: function(videoWrap) {
let isVideo = videoWrap.video;
if (isVideo.readyState >= 4) {
isVideo.play();
} else {
isVideo.load();
isVideo.addEventListener('canplay', function() {
isVideo.play();
}, {once: true});
}
},
resetVideo: function() {
if (!!!els.realCarouselSlides) return;
for (let i = 0; i < els.realCarouselSlides.length; i++) {
let isVideo = els.realCarouselSlides[i].video;
if (!!isVideo && !isVideo.paused) {
isVideo.pause();
isVideo.currentTime = 0;
};
};
},
clickVideoCta: function (e) {
if (e.target == e.currentTarget) {
if (e.currentTarget.video.paused) {
e.currentTarget.video.play();
} else {
e.currentTarget.video.pause();
}
}
},
setScene: function() {
SCROLLER({
trackElement: els.swiperContainer,
resize: false
})
},
animationStart: function() {
videoPlayStatus = false;
els.carouselInner.classList.add('is-animate-start');
eventList.setAutoSlideController(animationStatus = 'play');
eventHandler.transitionend();
},
setAutoSlideController: function(animationStatus) {
switch (animationStatus) {
case 'play':
if (els.autoSlideController.classList.contains('is-paused')) {
els.autoSlideController.classList.remove('is-paused');
els.autoSlideController.classList.add('is-playing');
els.blind.innerText = LOCAL_VARI.pause;
setTagging.pause(els.autoSlideController);
}
break;
case 'pause':
if (els.autoSlideController.classList.contains('is-playing')) {
els.autoSlideController.classList.remove('is-playing');
els.autoSlideController.classList.add('is-paused');
els.blind.innerText = LOCAL_VARI.play;
setTagging.play(els.autoSlideController);
}
break;
default:
break;
}
},
autoSlideController: function() {
let classStatus = els.carouselInner.classList.contains('is-animate-start');
animationStatus === 'pause' ? animationStatus = 'play' : animationStatus = 'pause';
eventList.setAutoSlideController(animationStatus);
if (!classStatus) eventList.animationStart();
},
resetScroll: function() {
swiperEvent.destroy(swiperObj.thumb);
swiperEvent.set();
swiperObj.thumb.init();
for (let i = 0; i < swiperObj.thumb.slides.length; i++) {
let isVideo = swiperObj.thumb.slides[i].querySelector('.common-video');
if (!!isVideo) {
isVideo.classList.remove('is-playing');
isVideo.classList.remove('is-paused');
isVideo.classList.remove('is-ended');
isVideo.classList.remove('is-completed');
}
}
els.carouselInner.classList.remove('is-animate-start');
els.autoSlideController.classList.remove('is-ended');
els.autoSlideController.classList.remove('is-completed');
eventList.setAutoSlideController(animationStatus = 'pause');
},
scroll: function() {
els.swiperContainer.scroller.trackAnimation(function() {
let classStatus = els.carouselInner.classList.contains('is-animate-start');
let activeStatus = this.progress > 20 && !classStatus;
let resetStatus = this.wheelDirection == 'up' && this.progress <= 0 && classStatus;
let isActiveVideo = swiperObj.thumb.slides[swiperObj.thumb.activeIndex].querySelector('video');
if (resetStatus) {
eventList.resetScroll();
};
if (activeStatus && !classStatus) {
eventList.animationStart();
};
for (let i = 0; i < els.videos.length; i++) {
if (!lowNetwork && videoPlayStatus && !!isActiveVideo) isActiveVideo.videoHandler.scrollActive(this.progress);
}
});
},
transitionend: function() {
videoPlayStatus = true;
eventList.setAutoSlideController(animationStatus = 'pause');
els.autoSlideController.classList.add('is-ended');
setTimeout(function() {
let isActiveVideo = swiperObj.thumb.slides[swiperObj.thumb.activeIndex].querySelector('video');
if (!!isActiveVideo) {
isActiveVideo.currentTime = 0;
isActiveVideo.play();
}
utils.offAccessibility(els.firstSlide);
if (els.swiperContainer.scroller.progress < 100 && els.swiperContainer.scroller.progress > 0) els.firstVideoControl.focus();
els.autoSlideController.classList.add('is-completed');
}, 600);
},
getPointerMoveSize: function(e) {
if (!!e.touches) {
pointerOffset.current = e.touches[0].clientX;
} else {
pointerOffset.current = e.offsetX;
}
},
};
const swiperEvent = {
set: function() {
swiperObj.thumb = new Swiper(els.swiperContainer, {
init: false,
loop: true,
centeredSlides: true,
slidesPerView: 'auto',
navigation: {
nextEl: els.nextArrow,
prevEl: els.prevArrow
},
});
swiperObj.thumb.on('transitionEnd', swiperEvent.transitionEnd);
swiperObj.thumb.on('init', swiperEvent.init);
},
init: function() {
els.nextArrow.removeAttribute('aria-label');
els.nextArrow.removeAttribute('role');
els.prevArrow.removeAttribute('aria-label');
els.prevArrow.removeAttribute('role');
accessibility.slide(this);
eventList.setVideo();
},
transitionEnd: function() {
let isActiveSlide = els.swiperContainer.querySelector('.swiper-slide-active');
let isVideoWrap = isActiveSlide.videoWrap;
accessibility.slide(this, true);
eventList.resetVideo();
if (!lowNetwork && !!isVideoWrap) eventList.playVideo(isVideoWrap);
},
destroy: function (swiper) {
swiper.navigation.destroy(true);
swiper.destroy(true);
},
}
const accessibility = {
slide: function (swiper, change) {
if (change) {
for (let i = 0; i < swiper.slides.length; i++) {
if (i != swiper.activeIndex) {
utils.onAccessibility(swiper.slides[i]);
} else {
utils.offAccessibility(swiper.slides[i]);
}
}
} else {
for (let i = 0; i < swiper.slides.length; i++) {
utils.onAccessibility(swiper.slides[i]);
}
}
}
};
const setTagging = {
play: function (targetController) {
if (targetController.hasAttribute('data-omni')) {
let dataOmni = targetController.getAttribute('data-omni').toLowerCase();
targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play'));
}
if (targetController.hasAttribute('ga-la')) {
let gaLa = targetController.getAttribute('ga-la').toLowerCase();
targetController.setAttribute('ga-la', gaLa.replace('pause', 'play'));
}
},
pause: function (targetController) {
if (targetController.hasAttribute('data-omni')) {
let dataOmni = targetController.getAttribute('data-omni').toLowerCase();
targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause'));
}
if (targetController.hasAttribute('ga-la')) {
let gaLa = targetController.getAttribute('ga-la').toLowerCase();
targetController.setAttribute('ga-la', gaLa.replace('play', 'pause'));
}
}
};
return {
init: init,
};
})();
})();
(function () {
window.flagship = window.flagship || {};
window.flagship.features = window.flagship.features || {};
window.flagship.features.highlightsZone = (function () {
const utils = window.flagship.common.utils;
const resize = window.flagship.common.resize;
let els = {};
let prevDevice;
let swiperObj = {};
let pointerOffset = {};
let currDevice = resize.checkResolution();
let dimmedClass = 'is-dimmed';
let ctaPlayStatus = true;
let scrollProgress = null;
let lowNetwork = document.documentElement.classList.contains('low_network');
let isBgLoaded = false;
const init = function () {
els.section = document.querySelector('.features-highlights');
if (!!els.section) {
setElements();
setProperty();
bindEvents();
}
};
const setElements = function () {
els.mainContainer = els.section.querySelector('.js-highlights-main-container');
els.mainSwiperSlides = els.mainContainer.querySelectorAll('.swiper-slide');
els.videoWrap = els.mainContainer.querySelectorAll('.js-video-wrap');
els.prevArrow = els.mainContainer.parentElement.querySelector('.swiper-button-prev');
els.nextArrow = els.mainContainer.parentElement.querySelector('.swiper-button-next');
els.scrollbar = els.section.querySelector('.js-highlights-scrollbar');
els.bgContainer = els.section.querySelector('.js-highlights-bg-container');
els.bgSwiperSlides = els.bgContainer.querySelectorAll('.swiper-slide');
};
const setProperty = function () {
els.mainContainer.autoPlay = true;
els.videoWrap = els.mainContainer.querySelectorAll('.js-video-wrap');
for (let i = 0; i < els.videoWrap.length; i++) {
els.videoWrap[i].video = els.videoWrap[i].querySelector('.common-video__video');
els.videoWrap[i].coverImageHighband = els.videoWrap[i].querySelector('.common-video__cover-image--highband');
els.videoWrap[i].coverImageLowband = els.videoWrap[i].querySelector('.common-video__cover-image--lowband');
els.videoWrap[i].controller = els.videoWrap[i].querySelector('.js-video-control');
els.videoWrap[i].controller.video = els.videoWrap[i].video;
els.videoWrap[i].progressBar = els.videoWrap[i].querySelector('.common-video__control-progress-bar');
els.bgSwiperSlides[i].image = els.bgSwiperSlides[i].querySelector('img');
}
};
const bindEvents = function () {
eventList.load();
eventHandler.click();
eventHandler.scroll();
eventHandler.flickSwiper();
resize.add(eventList.resize);
};
const eventHandler = {
flickSwiper: function () {
els.mainContainer.addEventListener('touchstart', function (e) {
pointerOffset.start = null;
pointerOffset.current = null;
pointerOffset.start = e.touches[0].clientX;
els.mainContainer.addEventListener('touchmove', eventList.getPointerMoveSize);
});
els.mainContainer.addEventListener('touchend', function () {
if (pointerOffset.start == null) return;
els.mainContainer.autoPlay = false;
els.mainContainer.removeEventListener('touchmove', eventList.getPointerMoveSize);
});
els.mainContainer.addEventListener('mousedown', function (e) {
pointerOffset.start = null;
pointerOffset.current = null;
pointerOffset.start = e.offsetX;
els.mainContainer.addEventListener('mousemove', eventList.getPointerMoveSize);
});
els.mainContainer.addEventListener('mouseup', function () {
els.mainContainer.autoPlay = false;
els.mainContainer.removeEventListener('mousemove', eventList.getPointerMoveSize);
});
els.mainContainer.addEventListener('mouseleave', function () {
if (pointerOffset.start == null) return;
pointerOffset.start = null;
pointerOffset.current = null;
els.mainContainer.removeEventListener('mousemove', eventList.getPointerMoveSize);
});
},
click: function () {
for (let i = 0; i < els.videoWrap.length; i++) {
els.videoWrap[i].controller.addEventListener('click', eventList.clickVideoCta);
}
for (let i = 0; i < els.videoWrap.length; i++) {
els.videoWrap[i].controller.addEventListener('click', eventList.stopAutoPlay);
}
els.nextArrow.addEventListener('click', function (e) {
eventList.stopAutoPlay(e)
eventList.swiperArrow(e);
});
els.prevArrow.addEventListener('click', function (e) {
eventList.stopAutoPlay(e)
eventList.swiperArrow(e);
});
els.scrollbar.addEventListener('click', eventList.stopAutoPlay);
},
scroll: function () {
window.addEventListener('scroll', eventList.scroll)
}
}
const eventList = {
load: function () {
swiperEvents.set();
swiperObj.main.init();
swiperObj.bg.init();
eventList.setVideo();
eventList.setScene();
eventList.scroll();
},
resize: function () {
currDevice = resize.checkResolution();
if (prevDevice != currDevice) {
eventList.responsive();
prevDevice = currDevice;
};
},
responsive: function () {
let desktopStatus = eventList.getCarouselSizeInfo(swiperObj.main).viewLength > 0 && currDevice == 'desktop';
eventList.resetDimmedSlide(swiperObj.main);
swiperObj.main.slideTo(0, false);
if (desktopStatus) eventList.initDimmedSlides(swiperObj.main);
},
setVideo: function () {
for (let i = 0; i < els.videoWrap.length; i++) {
utils.videoHandler({
playType: 'scrollPlay',
startPoint: currDevice != 'mobile' ? 40 : 24,
reversePoint: currDevice != 'mobile' ? 88 : 80,
wrap: els.videoWrap[i],
video: els.videoWrap[i].video,
controller: els.videoWrap[i].controller,
resetCallback: function () {
if (this.wrap.classList.contains('is-completed')) {
this.wrap.classList.remove('is-completed');
}
if (this.wrap.classList.contains('is-started')) {
this.wrap.classList.remove('is-started');
}
},
playCallback: function () {
setTagging.pause(this.controller);
this.video.timeupdateEvent = function(){
if (this.currentTime > 0) {
if (!this.videoHandler.wrap.classList.contains('is-started')) {
this.videoHandler.wrap.classList.add('is-started');
}
eventList.setProgerssDuration(i);
this.removeEventListener('timeupdate', this.timeupdateEvent);
}
}
this.video.addEventListener('timeupdate', this.video.timeupdateEvent);
},
pauseCallback: function () {
setTagging.play(this.controller);
},
endCallback: function () {
if (!this.wrap.classList.contains('is-completed')) {
this.wrap.classList.add('is-completed');
}
if (els.mainContainer.autoPlay) {
if (scrollProgress > 40 && scrollProgress < 55) {
clearTimeout(swiperObj.main.videoTiming);
swiperObj.main.videoTiming = setTimeout(() => {
swiperObj.main.slideNext();
}, 1000);
}
}
}
});
}
},
playVideo: function (video) {
if (video.readyState >= 1) {
video.play();
} else {
video.addEventListener('canplay', function () {
this.play();
}, {
once: true
})
}
},
clickVideoCta: function (e) {
if (e.target == e.currentTarget) {
if (e.currentTarget.video.paused) {
eventList.playVideo(e.currentTarget.video);
ctaPlayStatus = true;
} else {
e.currentTarget.video.pause();
ctaPlayStatus = false;
}
}
},
stopAutoPlay: function (e) {
if (e.target.classList.contains('js-video-control') ||
e.target.classList.contains('swiper-button-next') ||
e.target.classList.contains('swiper-button-prev') ||
e.target.classList.contains('js-highlights-scrollbar')
) {
els.mainContainer.autoPlay = false;
};
},
swiperArrowVisiblirity: function () {
let mainSlidesLength = els.mainSwiperSlides.length - 1;
let mainSwiper = swiperObj.main;
let prevArrow = mainSwiper.previousIndex > mainSwiper.realIndex;
let nextArrow = mainSwiper.previousIndex < mainSwiper.realIndex;
if (prevArrow) {
if (mainSwiper.realIndex == (mainSlidesLength - 1)) {
if (els.nextArrow.style.display == 'none') els.nextArrow.style.display = '';
} else if (mainSwiper.realIndex == 0) {
els.prevArrow.style.display = 'none';
}
};
if (nextArrow) {
if (mainSwiper.realIndex == 1) {
if (els.prevArrow.style.display == 'none') els.prevArrow.style.display = '';
} else if (mainSwiper.realIndex == mainSlidesLength) {
els.nextArrow.style.display = 'none';
}
};
},
swiperArrow: function (e) {
let mainSwiper = swiperObj.main;
let mainSlidesLength = els.mainSwiperSlides.length - 1;
let prevArrow = e.target.classList.contains('swiper-button-prev');
let nextArrow = e.target.classList.contains('swiper-button-next');
if (prevArrow) {
clearTimeout(swiperObj.main.videoTiming);
mainSwiper.slidePrev();
if (mainSwiper.realIndex == 0) {
setTimeout(() => {
els.nextArrow.blur();
els.nextArrow.focus();
}, 300);
}
};
if (nextArrow) {
clearTimeout(swiperObj.main.videoTiming);
mainSwiper.slideNext();
if (mainSwiper.realIndex == mainSlidesLength) {
setTimeout(() => {
els.prevArrow.blur();
els.prevArrow.focus();
}, 300);
}
};
},
scroll: function () {
els.section.scene.trackAnimation(function () {
let isIndex = swiperObj.main.realIndex;
let isMainVideoHandler = els.videoWrap[isIndex].video.videoHandler;
scrollProgress = this.progress;
if (!lowNetwork && ctaPlayStatus) isMainVideoHandler.scrollActive(this.progress);
if (scrollProgress > 0 && !isBgLoaded) {
for (let i = 0; i < els.bgSwiperSlides.length; i++) {
if (!els.bgSwiperSlides[i].image.classList.contains('is-img-load-complete')) {
imageLoader.setResponsiveMedia([els.bgSwiperSlides[i].image]);
}
}
isBgLoaded = true;
}
});
},
slideVideoPlay: function () {
let isIndex = swiperObj.main.realIndex;
let isVideoWrap = els.videoWrap[isIndex];
isVideoWrap.classList.add('is-ended');
setTimeout(function () {
isVideoWrap.classList.remove('is-started', 'is-paused');
if (!ctaPlayStatus) isVideoWrap.video.paused();
isVideoWrap.video.currentTime = 0;
if (ctaPlayStatus) {
eventList.playVideo(isVideoWrap.video);
setTimeout(function () {
if (els.mainContainer.autoPlay) isVideoWrap.video.videoHandler.controller.blur();
if (els.mainContainer.autoPlay) isVideoWrap.video.videoHandler.controller.focus();
if (isIndex == (swiperObj.main.slides.length - 1)) {
els.mainContainer.autoPlay = false;
}
}, 300);
}
}, 50);
},
setProgerssDuration: function (index) {
let isDuration = els.videoWrap[index].video.duration;
if (!!!els.videoWrap[index].durationSet) {
els.videoWrap[index].progressBar.style.animationDuration = `${isDuration}s`;
els.videoWrap[index].durationSet = true;
}
},
setMedia: function (index) {
let videoLength = els.mainSwiperSlides.length - 1;
let isIndex = index + 1
let loadIndex = isIndex < videoLength ? isIndex : videoLength;
let mainVideoloadComplateLength = els.mainContainer.querySelectorAll('.is-video-load-complete').length - 1;
for (let i = 0; i <= loadIndex; i++) {
if (mainVideoloadComplateLength != videoLength && !els.videoWrap[i].video.classList.contains('.is-video-load-complete')) {
if (!!els.videoWrap[i].video) videoLoader.setResponsiveMedia([els.videoWrap[i].video]);
if (!lowNetwork) {
if (!!els.videoWrap[i].coverImageHighband) imageLoader.setResponsiveMedia([els.videoWrap[i].coverImageHighband]);
} else {
if (!!els.videoWrap[i].coverImageLowband) imageLoader.setResponsiveMedia([els.videoWrap[i].coverImageLowband]);
}
if (!!els.bgSwiperSlides[i].image) imageLoader.setResponsiveMedia([els.bgSwiperSlides[i].image]);
}
}
},
pauseVideo: function (swiper) {
for (let i = 0; i < swiper.slides.length; i++) {
let isVideo = swiper.slides[i].querySelector('video');
if (!!isVideo && !isVideo.paused) {
isVideo.pause();
};
};
},
getCarouselSizeInfo: function (swiper) {
let slideLength = swiper.slides.length;
let slideWidth = swiper.slides[0].clientWidth;
let slideMargin = parseInt(window.getComputedStyle(swiper.slides[0]).margin.split(' ')[1]);
let slideSize = slideWidth + slideMargin;
let maxMoveSize = ((slideSize * slideLength) - slideMargin) - swiper.wrapperEl.clientWidth;
let viewWidth = swiper.wrapperEl.clientWidth;
let viewLength = parseInt((viewWidth + slideMargin) / slideSize);
let lastBeforeSize = slideLength == 2 ? 0 : Math.abs((maxMoveSize - slideSize)) + Math.abs((viewWidth - slideWidth));
let isMoveSize = Math.abs(parseInt(window.getComputedStyle(swiper.wrapperEl).transform.split(',')[4]));
return {
slideWidth: slideWidth,
slideMargin: slideMargin,
slideSize: slideSize,
maxMoveSize: maxMoveSize,
viewWidth: viewWidth,
viewLength: viewLength,
lastBeforeSize: lastBeforeSize,
isMoveSize: isMoveSize
}
},
setScene: function () {
els.section.scene = SCROLLER({
trackElement: els.section,
useFixed: false
});
},
initDimmedSlides: function (swiper) {
for (let i = 0; i < swiper.slides.length; i++) {
if ((swiper.activeIndex + eventList.getCarouselSizeInfo(swiper).viewLength) <= i) {
swiper.slides[i].classList.add(dimmedClass);
}
}
},
setDimmedSlide: function (swiper) {
for (let i = 0; i < swiper.slides.length; i++) {
let dimmedSlide = (swiper.activeIndex) > i || (swiper.activeIndex + (eventList.getCarouselSizeInfo(swiper).viewLength - 1)) < i;
if (dimmedSlide) {
swiper.slides[i].classList.add(dimmedClass);
} else {
swiper.slides[i].classList.remove(dimmedClass);
}
}
},
resetDimmedSlide: function (swiper) {
for (let i = 0; i < swiper.slides.length; i++) {
swiper.slides[i].classList.remove(dimmedClass);
}
},
getPointerMoveSize: function (e) {
if (!!e.touches) {
pointerOffset.current = e.touches[0].clientX;
} else {
pointerOffset.current = e.offsetX;
}
}
}
const swiperEvents = {
set: function () {
if (swiperObj.main == null) {
swiperObj.main = new Swiper(els.mainContainer, {
init: false,
slidesPerView: 'auto',
scrollbar: {
el: els.scrollbar,
draggable: true
},
});
swiperObj.main.on('init', swiperEvents.init);
swiperObj.main.on('slideChange', swiperEvents.slideChange);
swiperObj.main.on('transitionEnd', swiperEvents.transitionEnd);
}
if (swiperObj.bg == null) {
swiperObj.bg = new Swiper(els.bgContainer, {
init: false,
slidesPerView: 'auto',
allowTouchMove: false
});
}
els.prevArrow.style.display = 'none';
},
init: function () {
let isNextArrow = this.el.parentElement.querySelector('.swiper-button-next');
let isPrevArrow = this.el.parentElement.querySelector('.swiper-button-prev');
isNextArrow.removeAttribute('aria-label');
isNextArrow.removeAttribute('role');
isPrevArrow.removeAttribute('aria-label');
isPrevArrow.removeAttribute('role');
accessibility.slide(this);
if (eventList.getCarouselSizeInfo(this).viewLength > 0) eventList.initDimmedSlides(this);
},
slideChange: function () {
swiperObj.bg.slideTo(this.realIndex);
accessibility.slide(this);
eventList.pauseVideo(this);
if (eventList.getCarouselSizeInfo(this).viewLength > 0) eventList.setDimmedSlide(this);
if (this.realIndex > 0) eventList.setMedia(this.realIndex);
if (!lowNetwork) eventList.slideVideoPlay();
eventList.swiperArrowVisiblirity();
},
transitionEnd: function () {
setTimeout(() => {
let carouselInfo = eventList.getCarouselSizeInfo(this);
let lastIndex = this.slides.length - 1;
let lastSlide = this.slides[lastIndex];
let lastBeforeSlide = this.slides[lastIndex - 1];
let isIndex = swiperObj.main.previousIndex;
let isMoveSize = currDevice != 'mobile' ? carouselInfo.isMoveSize : carouselInfo.isMoveSize + Math.abs(carouselInfo.slideMargin);
els.videoWrap[isIndex].video.pause();
if (carouselInfo.lastBeforeSize + (carouselInfo.slideWidth / 2) < isMoveSize && carouselInfo.maxMoveSize - (carouselInfo.slideWidth / 2) <= isMoveSize) {
lastSlide.classList.add('is-last-slide');
lastBeforeSlide.classList.add('is-dimmed');
lastSlide.classList.remove('is-dimmed');
if (currDevice.indexOf('mobile') > -1) {
eventList.pauseVideo(this);
if (!lowNetwork && ctaPlayStatus) {
lastSlide.querySelector('video').play();
};
lastSlide.classList.add('swiper-slide-active');
lastBeforeSlide.classList.remove('swiper-slide-active');
if (els.nextArrow.style.display != 'none') {
els.nextArrow.style.display = 'none';
setTimeout(() => {
els.prevArrow.blur();
els.prevArrow.focus();
}, 300);
}
utils.offAccessibility(this.slides[lastIndex]);
utils.onAccessibility(this.slides[lastIndex - 1]);
}
} else if (lastSlide.classList.contains('is-last-slide') && carouselInfo.lastBeforeSize >= carouselInfo.isMoveSize) {
lastSlide.classList.add('is-dimmed');
lastSlide.classList.remove('is-last-slide');
lastBeforeSlide.classList.remove('is-dimmed');
if (currDevice.indexOf('mobile') > -1) {
eventList.pauseVideo(this);
if (!lowNetwork && ctaPlayStatus) {
lastBeforeSlide.querySelector('video').play();
};
lastSlide.classList.remove('swiper-slide-active');
lastBeforeSlide.classList.add('swiper-slide-active');
if (els.nextArrow.style.display == 'none') els.nextArrow.style.display = '';
utils.onAccessibility(this.slides[lastIndex]);
utils.offAccessibility(this.slides[lastIndex - 1]);
}
}
}, 0);
},
destroy: function (swiper) {
if (swiper != null) {
swiper.navigation.destroy(true);
swiper.destroy(true);
swiper = null;
}
},
};
const setTagging = {
play: function (targetController) {
if (targetController.hasAttribute('data-omni')) {
let dataOmni = targetController.getAttribute('data-omni').toLowerCase();
targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play'));
}
if (targetController.hasAttribute('ga-la')) {
let gaLa = targetController.getAttribute('ga-la').toLowerCase();
targetController.setAttribute('ga-la', gaLa.replace('pause', 'play'));
}
},
pause: function (targetController) {
if (targetController.hasAttribute('data-omni')) {
let dataOmni = targetController.getAttribute('data-omni').toLowerCase();
targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause'));
}
if (targetController.hasAttribute('ga-la')) {
let gaLa = targetController.getAttribute('ga-la').toLowerCase();
targetController.setAttribute('ga-la', gaLa.replace('play', 'pause'));
}
}
};
const accessibility = {
slide: function (swiper) {
for (let i = 0; i < swiper.slides.length; i++) {
if (i != swiper.activeIndex) {
utils.onAccessibility(swiper.slides[i]);
} else {
utils.offAccessibility(swiper.slides[i]);
}
}
}
};
return {
init: init,
}
})();
})();
;
(function () {
window.flagship.features.interactiveSuggested = (function () {
const utils = window.flagship.common.utils,
resize = window.flagship.common.resize;
let els = {};
let objs = {};
let stepInfo = [];
let scrollProgress = null;
const init = function () {
els.section = document.querySelector('.js-suggested-replies');
if (!!els.section) {
setElements();
bindEvents();
}
};
const setElements = function () {
els.interactiveContent = els.section.querySelector('.js-interactive');
els.tutorialVideoContainer = els.section.querySelector('.common-interactive__tutorial');
els.videoList = els.tutorialVideoContainer.querySelectorAll('.common-interactive__tutorial-video');
els.videoWrap = els.tutorialVideoContainer.querySelectorAll('.common-interactive__tutorial-video .common-video');
els.videos = els.tutorialVideoContainer.querySelectorAll('.common-interactive__tutorial-video .common-video__video');
els.tooltipCta = els.tutorialVideoContainer.querySelectorAll('.js-tutorial-tooltip-cta');
els.tutorialReplay = els.tutorialVideoContainer.querySelector('.js-replay-cta');
};
const setProperty = function (el, index) {
el.video = el.querySelector('video');
el.video.videoWrap = el;
el.controller = el.querySelector('.js-video-control');
el.controller.video = el.querySelector('video');
el.alert = el.parentElement.querySelector('.common-tutorial__alert');
el.tooltip = el.parentElement.querySelector('.js-tutorial-tooltip');
el.tooltipCta = el.parentElement.querySelector('.js-tutorial-tooltip-cta');
el.video.playIndex = index;
el.video.coverImage = el.querySelector('.common-video__cover-image');
};
const bindEvents = function () {
for (let i = 0; i < els.videoWrap.length; i++) {
setProperty(els.videoWrap[i], i);
setStepStatus(els.videoList[i])
}
setVideos();
eventList.videoController();
eventList.click();
eventList.setScroller();
eventHandler.scroll();
};
const setStepStatus = function (el) {
stepInfo.push({
alert: el.getAttribute('data-alert'),
tooltip: el.getAttribute('data-tooltip')
});
};
const eventList = {
setScroller: function () {
if (els.interactiveContent.scene == null) {
els.interactiveContent.scene = SCROLLER({
trackElement: els.interactiveContent,
useFixed: false
});
}
},
scrollEvent: function () {
if (els.interactiveContent.scene != null) {
els.interactiveContent.scene.trackAnimation(function () {
scrollProgress = this.progress;
if (els.interactiveContent.classList.contains('is-tutorial-opened')) {
let activeVideo = els.tutorialVideoContainer.querySelector('.is-visible video');
let firstVideoHandler = els.videoWrap[0].video.videoHandler;
let replayStatus = !document.documentElement.classList.contains('low_network') &&
activeVideo.paused &&
!els.videoWrap[0].classList.contains(firstVideoHandler.endedClass) &&
!els.videoWrap[0].classList.contains(firstVideoHandler.pauseClass) &&
scrollProgress > 0 && scrollProgress < 100;
let resetStatus = scrollProgress === 0 || scrollProgress === 100;
let pauseStatus = (this.wheelDirection == 'up' && scrollProgress <= 30) || (this.wheelDirection == 'down' && scrollProgress >= 60);
if (replayStatus) {
if (els.videoWrap[0].video.readyState == 4 && els.videoWrap[0].video.paused) {
els.videoWrap[0].video.play();
} else {
els.videoWrap[0].video.addEventListener('canplay', function () {
els.videoWrap[0].video.play();
}, {once: true});
}
}
if (resetStatus) {
activeVideo.pause();
activeVideo.currentTime = 0;
eventList.tutorialReset();
}
if (pauseStatus && !activeVideo.paused) {
activeVideo.pause();
}
}
});
}
},
videoController: function () {
for (let i = 0; i < objs.videos.length; i++) {
objs.videos[i].controller.addEventListener('click', function () {
if (this.video.paused) {
this.video.play();
} else {
this.video.pause();
}
});
}
},
nextVideoPlay: function (index) {
els.videoList[index + 1].classList.add('is-visible');
if (els.videos[index + 1].readyState > 3) {
els.videos[index + 1].play();
} else {
els.videos[index + 1].addEventListener('loadeddata', function () {
if (this.paused) this.play();
});
}
els.videos[index + 1].videoWrap.controller.focus();
setTimeout(function () {
if (utils.detector.isTouchDevice) {
if (!!els.videoList[index].tooltipCta) {
els.videoList[index].tooltipCta.blur();
}
}
els.videos[index + 1].videoWrap.controller.focus();
utils.onAccessibility(els.videoList[index]);
if (!!els.videoList[index].tooltip) {
utils.onAccessibility(els.videoList[index].tooltip);
}
els.videoList[index].classList.remove('is-visible');
}, 300);
},
click: function () {
let self = this;
for (let i = 0; i < els.tooltipCta.length; i++) {
els.tooltipCta[i].addEventListener('click', function () {
self.nextVideoPlay(i);
});
}
},
tutorialReset: function () {
let firstVideoHandler = els.videoWrap[0].video.videoHandler;
els.videoWrap[0].classList.remove(firstVideoHandler.playClass);
els.videoWrap[0].classList.remove(firstVideoHandler.pauseClass);
els.videoWrap[0].classList.remove(firstVideoHandler.endedClass);
// video wrap
if (!els.videoList[0].classList.contains('is-visible')) {
els.videoList[0].classList.add('is-visible');
}
// tooltip
if (!!els.videoWrap[0].tooltip && els.videoWrap[0].tooltip.classList.contains('is-visible')) {
els.videoWrap[0].tooltip.classList.remove('is-visible');
}
// tootip accessibility
utils.offAccessibility(els.videoWrap[0]);
if (!!els.videoWrap[0].tooltip) utils.onAccessibility(els.videoWrap[0].tooltip);
for (let i = 0; i < els.videoWrap.length; i++) {
if (i != 0) {
if (els.videoList[i].classList.contains('is-visible')) {
els.videoList[i].classList.remove('is-visible');
}
if (!els.videoWrap[i].video.paused) {
els.videoWrap[i].video.pause();
els.videoWrap[i].video.currentTime = 0;
}
// tooltip
if (!!els.videoWrap[i].tooltip && els.videoWrap[i].tooltip.classList.contains('is-visible')) {
els.videoWrap[i].tooltip.classList.remove('is-visible');
}
utils.onAccessibility(els.videoWrap[i]);
if (!!els.videoWrap[i].tooltip) utils.onAccessibility(els.videoWrap[i].tooltip);
}
}
// replay cta
els.tutorialReplay.style.display = 'none';
els.tutorialReplay.setAttribute('aria-hidden', true);
els.tutorialReplay.setAttribute('tabindex', -1);
}
};
const eventHandler = {
scroll: function () {
window.addEventListener('scroll', eventList.scrollEvent);
eventList.scrollEvent();
}
}
const setVideos = function () {
objs.videos = [];
for (let i = 0; i < els.videoWrap.length; i++) {
let isVideoWrap = els.videoWrap[i];
objs.videos.push(utils.videoHandler({
wrap: isVideoWrap,
video: isVideoWrap.video,
controller: isVideoWrap.controller,
resetCallback: function () {
if (this.wrap.classList.contains('is-completed')) {
this.wrap.classList.remove('is-completed');
if (this.controller.style.display = 'none') {
this.controller.style.display = '';
}
}
},
playCallback: function () {
els.videoList[this.video.playIndex].removeAttribute('tabindex');
els.videoList[this.video.playIndex].removeAttribute('aria-hidden');
this.controller.style.display = 'block';
utils.offAccessibility(this.controller);
setTagging.pause(this.controller);
let nextPlayindex = this.video.playIndex + 1;
if ((els.videos.length - 1) > this.video.playIndex && els.videos[nextPlayindex].readyState < 4) {
if (!els.videos[nextPlayindex].classList.contains('is-video-load-complete')) {
videoLoader.setResponsiveMedia([els.videos[nextPlayindex]]);
}
if (!els.videos[nextPlayindex].coverImage.classList.contains('is-img-load-complete')) {
imageLoader.setResponsiveMedia([els.videos[nextPlayindex].coverImage]);
}
}
},
pauseCallback: function () {
setTagging.play(this.controller);
},
endCallback: function () {
let self = this;
if (!!this.wrap.tooltip && stepInfo[this.video.playIndex].tooltip == 'true') {
if (!!this.wrap.tooltipCta) this.wrap.tooltipCta.removeAttribute('disabled');
if (!!this.wrap.tooltip) this.wrap.tooltip.classList.add('is-visible');
utils.offAccessibility(this.wrap.tooltip);
}
if (!this.wrap.classList.contains('is-completed')) {
this.wrap.classList.add('is-completed');
}
let playStatus = scrollProgress > 30 && scrollProgress < 60;
if (playStatus && !!this.wrap.tooltipCta) {
this.wrap.tooltipCta.focus();
setTimeout(function () {
self.wrap.tooltipCta.focus();
}, 300);
}
if ((els.videos.length - 1) == this.video.playIndex) {
els.tutorialReplay.style.display = 'block';
els.tutorialReplay.removeAttribute('tabindex');
els.tutorialReplay.removeAttribute('aria-hidden');
if (playStatus) {
els.tutorialReplay.focus();
setTimeout(function () {
els.tutorialReplay.focus();
}, 300);
}
}
setTimeout(function () {
self.controller.style.display = 'none';
}, 100);
}
}));
}
};
const setTagging = {
play: function (targetController) {
if (targetController.hasAttribute('data-omni')) {
let dataOmni = targetController.getAttribute('data-omni').toLowerCase();
targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play'));
}
if (targetController.hasAttribute('ga-la')) {
let gaLa = targetController.getAttribute('ga-la').toLowerCase();
targetController.setAttribute('ga-la', gaLa.replace('pause', 'play'));
}
},
pause: function (targetController) {
if (targetController.hasAttribute('data-omni')) {
let dataOmni = targetController.getAttribute('data-omni').toLowerCase();
targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause'));
}
if (targetController.hasAttribute('ga-la')) {
let gaLa = targetController.getAttribute('ga-la').toLowerCase();
targetController.setAttribute('ga-la', gaLa.replace('play', 'pause'));
}
}
};
return {
init: init
}
})();
})();
;
(function () {
window.flagship.features.interactiveInterpreter = (function () {
const utils = window.flagship.common.utils,
resize = window.flagship.common.resize;
let els = {};
let objs = {};
let stepInfo = [];
let scrollProgress = null;
let isMute = null;
const init = function () {
els.section = document.querySelector('.js-interpreter');
if (!!els.section) {
setElements();
bindEvents();
}
};
const setElements = function () {
els.interactiveContent = els.section.querySelector('.js-interactive');
els.tutorialVideoContainer = els.section.querySelector('.common-interactive__tutorial');
els.videoList = els.tutorialVideoContainer.querySelectorAll('.common-interactive__tutorial-video');
els.videoWrap = els.tutorialVideoContainer.querySelectorAll('.common-interactive__tutorial-video .common-video');
els.videos = els.tutorialVideoContainer.querySelectorAll('.common-interactive__tutorial-video .common-video__video');
els.tooltipCta = els.tutorialVideoContainer.querySelectorAll('.js-tutorial-tooltip-cta');
els.tutorialReplay = els.tutorialVideoContainer.querySelector('.js-replay-cta');
els.allVideoWrap = els.section.querySelectorAll('.js-video-wrap');
els.muteCta = els.section.querySelectorAll('.js-mute-cta');
// status
isMute = !!els.muteCta && els.muteCta.length > 0;
};
const setProperty = function (el, index) {
el.video = el.querySelector('video');
el.video.videoWrap = el;
el.controller = el.querySelector('.js-video-control');
el.controller.video = el.querySelector('video');
el.alert = el.parentElement.querySelector('.common-tutorial__alert');
el.tooltip = el.parentElement.querySelector('.js-tutorial-tooltip');
el.tooltipCta = el.parentElement.querySelector('.js-tutorial-tooltip-cta');
el.video.playIndex = index;
el.video.coverImage = el.querySelector('.common-video__cover-image');
if (isMute) {
el.muteCta = els.muteCta[index + 1];
}
};
const bindEvents = function () {
for (let i = 0; i < els.videoWrap.length; i++) {
setProperty(els.videoWrap[i], i);
setStepStatus(els.videoList[i]);
}
setVideos();
eventList.videoController();
eventList.click.tooltipCta();
eventList.setScroller();
eventHandler.scroll();
if (isMute) {
muteEventHandler();
}
};
const setStepStatus = function (el) {
stepInfo.push({
alert: el.getAttribute('data-alert'),
tooltip: el.getAttribute('data-tooltip')
});
};
const muteEventHandler = function () {
for (let i = 0; i < els.muteCta.length; i++) {
muteEventList.setProperty(els.muteCta[i], i);
muteEventList.setMuteBlindText(els.muteCta[i], i);
muteEventList.click(els.muteCta[i], i);
els.allVideoWrap[i].querySelector('video').style.pointerEvents = 'none';
}
};
const muteEventList = {
setProperty: function (muteCta, index) {
muteCta.videoWrap = els.allVideoWrap[index];
muteCta.videoWrap.muteCta = muteCta;
muteCta.video = els.allVideoWrap[index].querySelector('video');
muteCta.blind = muteCta.querySelector('.blind');
},
setMuteBlindText: function (muteCta) {
muteCta.blind.innerText = muteCta.getAttribute('data-unmute');
},
click: function (muteCta) {
muteCta.addEventListener('click', function () {
let isMute = this.video.muted;
if (!!isMute) {
this.classList.remove('is-muted');
this.classList.add('is-unmuted');
this.blind.innerText = this.getAttribute('data-mute');
this.video.muted = false;
setTagging.mute(this);
} else {
this.classList.remove('is-unmuted');
this.classList.add('is-muted');
this.blind.innerText = this.getAttribute('data-unmute');
this.video.muted = true;
setTagging.unmute(this);
}
});
},
};
const eventList = {
setScroller: function () {
if (els.interactiveContent.scene == null) {
els.interactiveContent.scene = SCROLLER({
trackElement: els.interactiveContent,
useFixed: false
});
}
},
scrollEvent: function () {
if (els.interactiveContent.scene != null) {
els.interactiveContent.scene.trackAnimation(function () {
scrollProgress = this.progress;
if (els.interactiveContent.classList.contains('is-tutorial-opened')) {
let activeVideo = els.tutorialVideoContainer.querySelector('.is-visible video');
let firstVideoHandler = els.videoWrap[0].video.videoHandler;
let replayStatus = !document.documentElement.classList.contains('low_network') &&
activeVideo.paused &&
!els.videoWrap[0].classList.contains(firstVideoHandler.endedClass) &&
!els.videoWrap[0].classList.contains(firstVideoHandler.pauseClass) &&
scrollProgress > 0 && scrollProgress < 100;
let resetStatus = scrollProgress === 0 || scrollProgress === 100;
let pauseStatus = (this.wheelDirection == 'up' && scrollProgress <= 30) || (this.wheelDirection == 'down' && scrollProgress >= 60);
if (replayStatus) {
if (els.videoWrap[0].video.readyState == 4 && els.videoWrap[0].video.paused) {
els.videoWrap[0].video.play();
} else {
els.videoWrap[0].video.addEventListener('canplay', function () {
els.videoWrap[0].video.play();
}, {once: true});
}
}
if (resetStatus) {
activeVideo.pause();
activeVideo.currentTime = 0;
eventList.tutorialReset();
}
if (pauseStatus && !activeVideo.paused) {
activeVideo.pause();
}
}
});
}
},
videoController: function () {
for (let i = 0; i < objs.videos.length; i++) {
objs.videos[i].controller.addEventListener('click', function () {
if (this.video.paused) {
this.video.play();
} else {
this.video.pause();
}
});
}
},
nextVideoPlay: function (index) {
els.videoList[index + 1].classList.add('is-visible');
if (els.videos[index + 1].readyState > 3) {
els.videos[index + 1].play();
} else {
els.videos[index + 1].addEventListener('loadeddata', function () {
if (this.paused) this.play();
});
}
els.videos[index + 1].videoWrap.controller.focus();
setTimeout(function () {
if (utils.detector.isTouchDevice) {
if (!!els.videoList[index].tooltipCta) {
els.videoList[index].tooltipCta.blur();
}
}
els.videos[index + 1].videoWrap.controller.focus();
utils.onAccessibility(els.videoList[index]);
if (!!els.videoList[index].tooltip) {
utils.onAccessibility(els.videoList[index].tooltip);
}
els.videoList[index].classList.remove('is-visible');
}, 300);
},
click: {
tooltipCta: function () {
for (let i = 0; i < els.tooltipCta.length; i++) {
els.tooltipCta[i].addEventListener('click', function () {
eventList.nextVideoPlay(i);
});
}
}
},
tutorialReset: function () {
let firstVideoHandler = els.videoWrap[0].video.videoHandler;
els.videoWrap[0].classList.remove(firstVideoHandler.playClass);
els.videoWrap[0].classList.remove(firstVideoHandler.pauseClass);
els.videoWrap[0].classList.remove(firstVideoHandler.endedClass);
// video wrap
if (!els.videoList[0].classList.contains('is-visible')) {
els.videoList[0].classList.add('is-visible');
}
// tooltip
if (!!els.videoWrap[0].tooltip && els.videoWrap[0].tooltip.classList.contains('is-visible')) {
els.videoWrap[0].tooltip.classList.remove('is-visible');
}
// tootip accessibility
utils.offAccessibility(els.videoWrap[0]);
if (!!els.videoWrap[0].tooltip) utils.onAccessibility(els.videoWrap[0].tooltip);
for (let i = 0; i < els.videoWrap.length; i++) {
if (i != 0) {
if (els.videoList[i].classList.contains('is-visible')) {
els.videoList[i].classList.remove('is-visible');
}
if (!els.videoWrap[i].video.paused) {
els.videoWrap[i].video.pause();
els.videoWrap[i].video.currentTime = 0;
}
// tooltip
if (!!els.videoWrap[i].tooltip && els.videoWrap[i].tooltip.classList.contains('is-visible')) {
els.videoWrap[i].tooltip.classList.remove('is-visible');
}
utils.onAccessibility(els.videoWrap[i]);
if (!!els.videoWrap[i].tooltip) utils.onAccessibility(els.videoWrap[i].tooltip);
}
}
// replay cta
els.tutorialReplay.style.display = 'none';
els.tutorialReplay.setAttribute('aria-hidden', true);
els.tutorialReplay.setAttribute('tabindex', -1);
}
};
const eventHandler = {
scroll: function () {
window.addEventListener('scroll', eventList.scrollEvent);
eventList.scrollEvent();
}
}
const setVideos = function () {
objs.videos = [];
for (let i = 0; i < els.videoWrap.length; i++) {
let isVideoWrap = els.videoWrap[i];
objs.videos.push(utils.videoHandler({
wrap: isVideoWrap,
video: isVideoWrap.video,
controller: isVideoWrap.controller,
resetCallback: function () {
if (this.wrap.classList.contains('is-completed')) {
this.wrap.classList.remove('is-completed');
if (this.controller.style.display = 'none') {
this.controller.style.display = '';
}
}
},
playCallback: function () {
els.videoList[this.video.playIndex].removeAttribute('tabindex');
els.videoList[this.video.playIndex].removeAttribute('aria-hidden');
utils.offAccessibility(this.wrap.muteCta);
if (!this.video.muted) {
this.wrap.muteCta.classList.remove('is-unmuted');
this.wrap.muteCta.video.muted = true;
this.wrap.muteCta.blind.innerText = this.wrap.muteCta.getAttribute('data-unmute');
setTagging.unmute(this.wrap.muteCta);
}
this.controller.style.display = 'block';
utils.offAccessibility(this.controller);
setTagging.pause(this.controller);
let nextPlayindex = this.video.playIndex + 1;
if ((els.videos.length - 1) > this.video.playIndex && els.videos[nextPlayindex].readyState < 4) {
if (!els.videos[nextPlayindex].classList.contains('is-video-load-complete')) {
videoLoader.setResponsiveMedia([els.videos[nextPlayindex]]);
}
if (!els.videos[nextPlayindex].coverImage.classList.contains('is-img-load-complete')) {
imageLoader.setResponsiveMedia([els.videos[nextPlayindex].coverImage]);
}
}
},
pauseCallback: function () {
setTagging.play(this.controller);
},
endCallback: function () {
let self = this;
if (!!this.wrap.tooltip && stepInfo[this.video.playIndex].tooltip == 'true') {
if (!!this.wrap.tooltipCta) this.wrap.tooltipCta.removeAttribute('disabled');
if (!!this.wrap.tooltip) this.wrap.tooltip.classList.add('is-visible');
utils.offAccessibility(this.wrap.tooltip);
}
if (!this.wrap.classList.contains('is-completed')) {
this.wrap.classList.add('is-completed');
}
let playStatus = scrollProgress > 30 && scrollProgress < 60;
if (playStatus && !!this.wrap.tooltipCta) {
this.wrap.tooltipCta.focus();
setTimeout(function () {
self.wrap.tooltipCta.focus();
}, 300);
}
if ((els.videos.length - 1) == this.video.playIndex) {
els.tutorialReplay.style.display = 'block';
els.tutorialReplay.removeAttribute('tabindex');
els.tutorialReplay.removeAttribute('aria-hidden');
if (playStatus) {
els.tutorialReplay.focus();
setTimeout(function () {
els.tutorialReplay.focus();
}, 300);
}
}
setTimeout(function () {
self.controller.style.display = 'none';
}, 100);
}
}));
}
};
const setTagging = {
play: function (targetController) {
if (targetController.hasAttribute('data-omni')) {
let dataOmni = targetController.getAttribute('data-omni').toLowerCase();
targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play'));
}
if (targetController.hasAttribute('ga-la')) {
let gaLa = targetController.getAttribute('ga-la').toLowerCase();
targetController.setAttribute('ga-la', gaLa.replace('pause', 'play'));
}
},
pause: function (targetController) {
if (targetController.hasAttribute('data-omni')) {
let dataOmni = targetController.getAttribute('data-omni').toLowerCase();
targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause'));
}
if (targetController.hasAttribute('ga-la')) {
let gaLa = targetController.getAttribute('ga-la').toLowerCase();
targetController.setAttribute('ga-la', gaLa.replace('play', 'pause'));
}
},
mute: function (targetCta) {
if (targetCta.hasAttribute('data-omni')) {
let dataOmni = targetCta.getAttribute('data-omni').toLowerCase();
targetCta.setAttribute('data-omni', dataOmni.replace('unmute', 'mute'));
}
if (targetCta.hasAttribute('ga-la')) {
let gaLa = targetCta.getAttribute('ga-la').toLowerCase();
targetCta.setAttribute('ga-la', gaLa.replace('unmute', 'mute'));
}
},
unmute: function (targetCta) {
if (targetCta.hasAttribute('data-omni')) {
let dataOmni = targetCta.getAttribute('data-omni').toLowerCase();
targetCta.setAttribute('data-omni', dataOmni.replace('mute', 'unmute'));
}
if (targetCta.hasAttribute('ga-la')) {
let gaLa = targetCta.getAttribute('ga-la').toLowerCase();
targetCta.setAttribute('ga-la', gaLa.replace('mute', 'unmute'));
}
},
};
return {
init: init
}
})();
})();
;
(function () {
window.flagship.features.interactive = (function () {
const utils = window.flagship.common.utils,
resize = window.flagship.common.resize;
let els = {},
prevDevice = null,
currDevice = resize.checkResolution(),
scrollProgress = null;
const init = function () {
els.interactiveContents = document.querySelectorAll('.js-interactive');
if (!!els.interactiveContents && els.interactiveContents.length > 0) {
for (let i = 0; i < els.interactiveContents.length; i++) {
setProperty(els.interactiveContents[i], i);
eventList.setIntroVideo(els.interactiveContents[i]);
eventList.setIntroScene(els.interactiveContents[i]);
bindEvents(els.interactiveContents[i], i);
}
}
};
const setProperty = function (content, index) {
// introVideo
content.index = index;
content.introVideo = content.querySelector('.js-interactive-intro-video video');
content.introVideo.videoWrap = content.querySelector('.js-interactive-intro-video');
content.introVideo.wrap = content.querySelector('.js-interactive-intro-video .js-video-wrap');
content.introVideo.parentWrap = content.parentElement;
content.introVideo.controllerCta = content.introVideo.videoWrap.querySelector('.js-video-control');
content.introVideo.controllerCta.video = content.introVideo;
content.introVideo.tooltip = content.querySelector('.js-tutorial-tooltip');
content.introVideo.tooltipCta = content.querySelector('.js-tutorial-tooltip-cta');
content.introVideo.tooltipCta.parentWrap = content;
content.tutorialContentWrap = content.querySelectorAll('.js-tutorial-video');
content.tutorialContentWrap.tooltip = content.querySelectorAll('.js-tutorial-video .js-tutorial-tooltip');
// start, reverse point
content.introVideo.wrap.startPoint = !!content.introVideo.wrap.getAttribute('data-start-point') ? parseInt(content.introVideo.wrap.getAttribute('data-start-point')) : undefined;
content.introVideo.wrap.reversePoint = !!content.introVideo.wrap.getAttribute('data-reverse-point') ? parseInt(content.introVideo.wrap.getAttribute('data-reverse-point')) : undefined;
content.introVideo.wrap.moStartPoint = !!content.introVideo.wrap.getAttribute('data-mo-start-point') ? parseInt(content.introVideo.wrap.getAttribute('data-mo-start-point')) : undefined;
content.introVideo.wrap.moReversePoint = !!content.introVideo.wrap.getAttribute('data-mo-reverse-point') ? parseInt(content.introVideo.wrap.getAttribute('data-mo-reverse-point')) : undefined;
// replayCta
content.replayCta = content.querySelector('.js-replay-cta');
content.replayCta.parentWrap = content;
};
const bindEvents = function (content, i) {
eventHandler.click.introTooltipCta(content.introVideo.tooltipCta);
eventHandler.click.replayCta(content.replayCta);
eventHandler.click.videoController(content.introVideo.controllerCta);
eventHandler.scroll(content);
eventList.scroll(content);
resize.add(function (currRes) {
eventList.resize(currRes, content);
});
};
const eventList = {
setIntroVideo: function (content) {
utils.videoHandler({
playType: 'scrollPlay',
startPoint: content.introVideo.wrap.startPoint,
reversePoint: content.introVideo.wrap.reversePoint,
wrap: content.introVideo.wrap,
video: content.introVideo,
controller: content.introVideo.controllerCta,
resetCallback: function () {
if (this.wrap.classList.contains('is-completed')) {
this.wrap.classList.remove('is-completed');
}
if (this.wrap.classList.contains('is-started')) {
this.wrap.classList.remove('is-started');
}
utils.offAccessibility(content.introVideo.videoWrap);
if (content.introVideo.controllerCta.style.display == 'none') {
content.introVideo.controllerCta.style.display = 'block';
}
if (this.video.tooltip.classList.contains('is-visible')) {
this.video.tooltip.classList.remove('is-visible');
}
this.video.tooltip.classList.remove('is-visible');
utils.onAccessibility(this.video.tooltip);
},
playCallback: function () {
if (!this.wrap.classList.contains('is-started')) {
this.wrap.classList.add('is-started');
}
setTagging.pause(this.controller);
let videoWrap = content.tutorialContentWrap[0].querySelector('.js-video-wrap');
videoWrap.coverImg = videoWrap.querySelector('.common-video__cover-image');
videoWrap.video = videoWrap.querySelector('video');
if (!!videoWrap.coverImg && !videoWrap.coverImg.classList.contains('is-img-load-complete')) {
imageLoader.setResponsiveMedia([videoWrap.coverImg]);
}
if (!!videoWrap.video && !videoWrap.video.classList.contains('is-video-load-complete')) {
videoLoader.setResponsiveMedia([videoWrap.video]);
}
},
pauseCallback: function () {
setTagging.play(this.controller);
},
endCallback: function () {
let self = this;
if (!this.wrap.classList.contains('is-completed')) {
this.wrap.classList.add('is-completed');
}
this.video.tooltip.classList.add('is-visible');
utils.offAccessibility(this.video.tooltip);
let isPlaySection = null;
isPlaySection = scrollProgress > 30 && scrollProgress < 60;
if (isPlaySection) {
this.video.tooltipCta.focus();
setTimeout(function () {
self.video.tooltipCta.focus();
self.controller.style.display = 'none';
}, 300);
}
}
});
},
setIntroScene: function (content) {
content.introVideo.scene = SCROLLER({
trackElement: content.introVideo,
useFixed: false,
resize: utils.detector.isTouchDevice ? false : true
});
},
scroll: function (content) {
if (!content.classList.contains('is-tutorial-opened')) {
content.introVideo.scene.trackAnimation(function () {
content.introVideo.videoHandler.scrollActive(this.progress);
scrollProgress = this.progress;
let pauseStatus = (this.wheelDirection == 'up' && scrollProgress <= 30) || (this.wheelDirection == 'down' && scrollProgress >= 60);
if (pauseStatus && !content.introVideo.paused) {
content.introVideo.pause();
}
});
}
},
click: {
introVideoTooltipCta: function () {
let content = this.parentWrap;
content.classList.add('is-tutorial-opened');
utils.onAccessibility(content.introVideo.videoWrap);
content.tutorialContentWrap[0].classList.add('is-visible');
utils.offAccessibility(content.tutorialContentWrap[0]);
content.tutorialContentWrap[0].querySelector('.common-video__control').focus();
setTimeout(function () {
content.tutorialContentWrap[0].querySelector('.common-video__control').focus();
}, 300);
content.introVideo.tooltip.classList.remove('is-visible');
let videoWrap = content.tutorialContentWrap[0].querySelector('.js-video-wrap');
videoWrap.video.play();
},
replayCta: function () {
let content = this.parentWrap;
content.introVideo.tooltip.classList.remove('is-visible');
utils.onAccessibility(content.introVideo.tooltip);
utils.offAccessibility(content.introVideo.videoWrap);
content.introVideo.controllerCta.style.display = 'block';
content.introVideo.controllerCta.focus();
setTimeout(function () {
content.introVideo.controllerCta.focus();
}, 300);
content.replayCta.style.display = 'none';
content.replayCta.setAttribute('aria-hidden', true);
content.replayCta.setAttribute('tabindex', -1);
for (let i = 0; i < content.tutorialContentWrap.length; i++) {
content.tutorialContentWrap[i].classList.remove('is-visible');
if (!!content.tutorialContentWrap.tooltip[i]) {
content.tutorialContentWrap.tooltip[i].classList.remove('is-visible');
}
utils.onAccessibility(content.tutorialContentWrap[i]);
setTimeout(function () {
content.tutorialContentWrap[i].querySelector('video').currentTime = 0;
}, 300);
}
content.classList.remove('is-tutorial-opened');
content.introVideo.play();
},
videoController: function (e) {
if (e.target == e.currentTarget) {
if (e.currentTarget.video.paused) {
e.currentTarget.video.play();
} else {
e.currentTarget.video.pause();
}
}
},
},
reset: function (content) {
if (content.classList.contains('is-tutorial-opened')) {
content.classList.remove('is-tutorial-opened');
}
// replay cta
if (content.replayCta.style.display == 'block') {
content.replayCta.style.display = 'none';
content.replayCta.setAttribute('aria-hidden', true);
content.replayCta.setAttribute('tabindex', -1);
}
// tutorial video
let tutorialWrap = content.tutorialContentWrap;
for (let i = 0; i < tutorialWrap.length; i++) {
tutorialWrap[i].classList.remove('is-visible');
utils.onAccessibility(tutorialWrap[i]);
// video
tutorialWrap[i].video = tutorialWrap[i].querySelector('video');
if (!tutorialWrap[i].video.paused) {
tutorialWrap[i].video.pause();
tutorialWrap[i].video.currentTime = 0;
}
// tooltip
if (!!tutorialWrap.tooltip[i]) {
if (tutorialWrap.tooltip[i].classList.contains('is-visible')) {
tutorialWrap.tooltip[i].classList.remove('is-visible');
}
utils.onAccessibility(tutorialWrap.tooltip[i]);
}
}
// intro video
utils.offAccessibility(content.introVideo.videoWrap);
if (content.introVideo.controllerCta.style.display == 'none') {
content.introVideo.controllerCta.style.display = 'block';
}
// intro tooltip
if (content.introVideo.tooltip.classList.contains('is-visible')) {
content.introVideo.tooltip.classList.remove('is-visible')
}
utils.onAccessibility(content.introVideo.tooltip);
if (scrollProgress >= 30 && scrollProgress <= 60) {
if (content.introVideo.paused) {
content.introVideo.currentTime = 0;
content.introVideo.play();
}
}
},
resize: function (currRes, content) {
currDevice = currRes;
if (prevDevice != currDevice) {
eventList.reset(content);
}
prevDevice = currDevice;
},
};
const eventHandler = {
click: {
replayCta: function (replayCta) {
replayCta.addEventListener('click', eventList.click.replayCta);
},
introTooltipCta: function (introTooltipCta) {
introTooltipCta.addEventListener('click', eventList.click.introVideoTooltipCta);
},
videoController: function (introVideoController) {
introVideoController.addEventListener('click', eventList.click.videoController);
}
},
scroll: function (content) {
window.addEventListener('scroll', function () {
eventList.scroll(content);
});
}
};
const setTagging = {
play: function (targetController) {
if (targetController.hasAttribute('data-omni')) {
let dataOmni = targetController.getAttribute('data-omni').toLowerCase();
targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play'));
}
if (targetController.hasAttribute('ga-la')) {
let gaLa = targetController.getAttribute('ga-la').toLowerCase();
targetController.setAttribute('ga-la', gaLa.replace('pause', 'play'));
}
},
pause: function (targetController) {
if (targetController.hasAttribute('data-omni')) {
let dataOmni = targetController.getAttribute('data-omni').toLowerCase();
targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause'));
}
if (targetController.hasAttribute('ga-la')) {
let gaLa = targetController.getAttribute('ga-la').toLowerCase();
targetController.setAttribute('ga-la', gaLa.replace('play', 'pause'));
}
}
};
return {
init: init
}
})();
})();
;
(function () {
window.flagship.features.lowLightPortrait = (function () {
const utils = window.flagship.common.utils,
resize = window.flagship.common.resize;
let els = {},
prevDevice = null,
currDevice = resize.checkResolution();
const init = function () {
els.section = document.querySelector('.features-lowlight-portrait');
if (!!els.section) {
setElements();
bindEvents();
}
};
const setElements = function () {
els.image = els.section.querySelector('.features-lowlight-portrait__interaction-image');
els.videoWrap = els.section.querySelector('.js-portrait-video-wrap');
els.video = els.videoWrap.querySelector('.js-portrait-video');
};
const bindEvents = function () {
resize.add(eventList.resize);
eventList.setScene();
eventList.scroll();
eventHandler.scroll();
els.image.addEventListener('transitionend', eventList.videoPlay);
};
const eventHandler = {
scroll: function() {
window.addEventListener('scroll', eventList.scroll);
}
}
const eventList = {
resize: function (currRes) {
currDevice = currRes;
if (currDevice != prevDevice) {
prevDevice = currDevice;
}
},
setVideo: function() {
let movPlayStatus =
document.documentElement.classList.contains('ios') && document.documentElement.classList.contains('safari') ||
document.documentElement.classList.contains('mac') && document.documentElement.classList.contains('safari');
if (!movPlayStatus) {
els.video.src = els.video.getAttribute('data-video-src');
} else {
els.video.src = els.video.getAttribute('data-ios-video-src');
}
els.video.classList.add('is-loaded');
},
setScene: function() {
SCROLLER({
trackElement: els.section,
});
},
scroll: function() {
els.section.scroller.trackAnimation(function() {
if (els.video.readyState < 4 && this.progress >= 0 && !els.video.classList.contains('is-loaded')) {
eventList.setVideo();
}
if (this.progress > 15) {
if (!els.section.classList.contains('is-active')) els.section.classList.add('is-active');
} else if (this.wheelDirection == 'up' && this.progress <= 0) {
if (els.section.classList.contains('is-active')) els.section.classList.remove('is-active');
}
});
},
videoPlay: function() {
clearTimeout(els.video.playState);
els.video.currentTime = 0;
els.video.play();
els.video.playState = setTimeout(() => {
els.video.currentTime = 0;
els.video.pause();
}, 1500);
}
};
return {
init: init
}
})();
})();
(function () {
window.flagship.features.moveFeature = (function () {
const utils = window.flagship.common.utils;
let els = {};
const init = function () {
els.jumpCta = document.querySelectorAll('.js-jump-cta');
if (!!els.jumpCta) {
setProperty();
bindEvents();
}
};
const setProperty = function () {
for (let i = 0; i < els.jumpCta.length; i++) {
els.jumpCta[i].sectionId = els.jumpCta[i].getAttribute('href');
els.jumpCta[i].section = document.querySelector(`${els.jumpCta[i].sectionId}`);
els.jumpCta[i].returnCta = els.jumpCta[i].section.querySelector('.js-return-cta');
els.jumpCta[i].returnCta.jumpCta = els.jumpCta[i];
els.jumpCta[i].returnCta.section = els.jumpCta[i].section;
}
};
const bindEvents = function () {
eventHandler.click();
eventList.setScene();
eventHandler.scroll();
};
const eventHandler = {
click: function () {
for (let i = 0; i < els.jumpCta.length; i++) {
els.jumpCta[i].addEventListener('click', eventList.clickJumpCta);
els.jumpCta[i].returnCta.addEventListener('click', eventList.clickReturnCta);
}
},
scroll: function () {
window.addEventListener('scroll', eventList.hideReturnCta);
}
};
const eventList = {
setScene: function () {
for(let i=0; i 0;
break;
case 'down':
resetStatus = this.progress >= 90;
activeStatus = this.progress > 42 && this.progress < 90;
break;
}
if (resetStatus && stopScroll) eventList.resetScroll();
if (activeStatus && !stopScroll) eventList.activeScroll();
});
},
resetScroll: function () {
stopScroll = false;
nightographyOn = true;
if (nightographyOn) eventList.setButton();
},
activeScroll: function () {
stopScroll = true;
if (!nightographyOn) eventList.setImage();
}
};
const accessibility = {
arrowButton: function (onTarget, offTarget) {
utils.onAccessibility(onTarget);
utils.offAccessibility(offTarget);
setTimeout(() => {
if (!resetStatus && onTarget.classList.contains('is-disabled')) offTarget.focus();
}, 300);
}
};
return {
init: init
}
})();
})();
(function () {
window.flagship.features.photoAssist = (function () {
const utils = window.flagship.common.utils,
resize = flagship.common.resize;
let els = {};
let currDevice = resize.checkResolution();
const isRtl = document.documentElement.classList.contains('rtl');
const isLowBand = document.documentElement.classList.contains('low_network');
const init = function () {
els.section = document.querySelector('.features-photo-assist');
els.videos = els.section.querySelectorAll('.common-video__video');
if (!!els.section && !!els.videos) {
setElements();
bindEvents();
}
};
const setElements = function () {
els.swiperContainer = els.section.querySelector('.common-carousel__container');
};
const bindEvents = function () {
eventHandler.load();
eventHandler.scroll();
};
const eventHandler = {
load: function () {
eventList.setScene();
eventList.setVideoType();
eventList.scroll();
els.swiperContainer.swiper.on('slideChange', eventList.slideChange);
els.swiperContainer.swiper.on('transitionEnd', eventList.transitionEnd);
},
scroll: function() {
window.addEventListener('scroll', eventList.scroll);
}
};
const eventList = {
setMedia: function(swiper, index) {
let isIndex = index + 1 > swiper.slides.length -1 ? swiper.slides.length -1 : index + 1;
let videoLength = swiper.el.querySelectorAll('video').length - 1;
let imageLength = swiper.el.querySelectorAll('img').length - 1;
let videoloadComplateLength = swiper.el.querySelectorAll('.is-video-load-complete').length - 1;
let imageloadComplateLength = swiper.el.querySelectorAll('.is-img-load-complete').length - 1;
let nextVideo = swiper.slides[isIndex].querySelector('video');
let nextImage = swiper.slides[isIndex].querySelector('img');
if (videoloadComplateLength != videoLength) {
if (!!nextVideo) {
videoLoader.setResponsiveMedia([nextVideo]);
}
}
if (imageloadComplateLength != imageLength) {
if (!!nextImage) {
imageLoader.setResponsiveMedia([nextImage]);
}
}
},
resetVideo: function(swiper) {
for (let i = 0; i < swiper.slides.length; i++) {
let isVideo = swiper.slides[i].video;
if (!!isVideo && !isVideo.paused) {
isVideo.pause();
isVideo.currentTime = 0;
};
};
},
getCarouselSizeInfo: function(swiper) {
let slideLength = swiper.slides.length;
let slideWidth = swiper.slides[0].clientWidth;
let slideMargin = parseInt(window.getComputedStyle(swiper.slides[0]).margin.split(' ')[isRtl ? 3 : 1]);
let slideSize = slideWidth + slideMargin;
let maxMoveSize = ((slideSize * slideLength) - slideMargin) - swiper.wrapperEl.clientWidth;
let viewWidth = swiper.wrapperEl.clientWidth;
let viewLength = parseInt((viewWidth + slideMargin)/slideSize);
let lastBeforeSize = slideLength == 2 ? 0 : Math.abs((maxMoveSize - slideSize)) + Math.abs((viewWidth - slideWidth));
let isMoveSize = Math.abs(parseInt(window.getComputedStyle(swiper.wrapperEl).transform.split(',')[4]));
return {
slideWidth: slideWidth,
slideMargin: slideMargin,
slideSize: slideSize,
maxMoveSize: maxMoveSize,
viewWidth: viewWidth,
viewLength: viewLength,
lastBeforeSize: lastBeforeSize,
isMoveSize: isMoveSize
}
},
setDimmedSlide: function(swiper) {
if (currDevice != 'mobile') {
for (let i = 0; i < swiper.slides.length; i++) {
let dimmedSlide = (swiper.activeIndex) > i || (swiper.activeIndex + (eventList.getCarouselSizeInfo(swiper).viewLength - 1)) < i;
if (dimmedSlide) {
swiper.slides[i].classList.add(dimmedClass);
} else {
swiper.slides[i].classList.remove(dimmedClass);
}
}
}
},
slideChange: function () {
accessibility.slide(this);
eventList.resetVideo(this);
if (eventList.getCarouselSizeInfo(this).viewLength > 0 && currDevice != 'mobile') eventList.setDimmedSlide(this);
if (this.realIndex > 0) eventList.setMedia(this, this.realIndex);
},
transitionEnd: function() {
if (this.slides.length < 3 && currDevice == 'mobile') return;
setTimeout(() => {
let carouselInfo = eventList.getCarouselSizeInfo(this);
let lastIndex = this.slides.length -1;
let lastSlide = this.slides[lastIndex];
let lastBeforeSlide = this.slides[lastIndex - 1];
if (carouselInfo.isMoveSize > carouselInfo.lastBeforeSize || carouselInfo.maxMoveSize == carouselInfo.isMoveSize) {
eventList.resetVideo(this);
lastSlide.classList.add('is-last-slide');
lastBeforeSlide.classList.add('is-dimmed');
lastSlide.classList.remove('is-dimmed');
utils.offAccessibility(this.slides[lastIndex]);
utils.onAccessibility(this.slides[lastIndex - 1]);
} else if (lastSlide.classList.contains('is-last-slide') && carouselInfo.lastBeforeSize == carouselInfo.isMoveSize) {
eventList.resetVideo(this);
lastSlide.classList.add('is-dimmed');
lastSlide.classList.remove('is-last-slide');
lastBeforeSlide.classList.remove('is-dimmed');
utils.onAccessibility(this.slides[lastIndex]);
utils.offAccessibility(this.slides[lastIndex - 1]);
}
let swiperActiveSlide = els.section.querySelector('.swiper-slide-active');
let lastSlideActive = els.section.querySelector('.is-last-slide');
let isActiveSlide = !!lastSlideActive ? lastSlideActive : swiperActiveSlide;
let isActiveVideo = isActiveSlide.querySelector('video');
if (!!isActiveVideo && !isLowBand) isActiveVideo.play()
}, 0);
},
setScene: function() {
els.section.scene = SCROLLER({
trackElement: els.section
});
},
setVideoType: function() {
if (!!els.videos) {
for (let i = 0; i < els.videos.length; i++) {
els.videos[i].videoHandler.playType = 'scrollPlay';
}
}
},
scroll: function() {
els.section.scene.trackAnimation(function() {
let swiperActiveSlide = els.section.querySelector('.swiper-slide-active');
let lastSlideActive = els.section.querySelector('.is-last-slide');
let isActiveSlide = !!lastSlideActive ? lastSlideActive : swiperActiveSlide;
let isActiveVideo = isActiveSlide.querySelector('video');
if (!!isActiveVideo && !isLowBand) isActiveVideo.videoHandler.scrollActive(this.progress);
});
}
};
const accessibility = {
slide: function (swiper) {
for (let i = 0; i < swiper.slides.length; i++) {
if (i != swiper.activeIndex) {
utils.onAccessibility(swiper.slides[i]);
} else {
utils.offAccessibility(swiper.slides[i]);
}
}
}
};
return {
init: init
}
})();
})();
;
(function () {
window.flagship.features.viewer = (function () {
const utils = window.flagship.common.utils,
resize = window.flagship.common.resize,
common = window.flagship.features.common,
isLow = utils.isLowNetwork();
let els = {},
currDevice = resize.checkResolution();
const init = function () {
els.viewerBtn = document.querySelector('.viewer-btn');
els.section = document.querySelector('.js-colors');
els.popup = document.querySelector('.js-viewer');
if (!!isLow) {
if (!els.viewerBtn) return;
els.currentWrap = els.popup;
setElements();
setProperty();
popupEvents.set();
bindEvents();
} else {
if (!els.section) return;
els.currentWrap = els.section;
setElements();
setProperty();
bindEvents();
}
};
const setElements = function () {
els.wrapEl = document.querySelector('#wrap');
els.contents = document.querySelector('#contents');
// popup
els.popupWrap = els.currentWrap.querySelector('.js-viewer-wrap');
els.popupInner = els.currentWrap.querySelector('.js-viewer-inner');
els.closeCta = els.currentWrap.querySelector('.js-viewer-close');
els.popupContents = els.currentWrap.querySelector('.js-viewer-contents');
// popup-scroll
els.popupScroll = els.currentWrap.querySelector('.js-viewer-scroll');
els.popupScrollUpBtn = els.currentWrap.querySelector('.js-scroll-up');
els.popupScrollDownBtn = els.currentWrap.querySelector('.js-scroll-down');
// viewer
els.viewerIframe = els.currentWrap.querySelector('iframe');
els.foldBtn = els.currentWrap.querySelector('.js-fold-btn');
els.resetBtn = els.currentWrap.querySelector('.js-reset-btn');
// angle preset
els.presetOpen = els.currentWrap.querySelector('.js-preset-open');
els.presetClose = els.currentWrap.querySelector('.js-preset-close');
els.presetLayer = els.currentWrap.querySelector('.js-preset-layer');
els.angleCta = els.currentWrap.querySelectorAll('.js-angle-cta');
};
const setProperty = function () {
// timeout
els.resizeTimeout = null;
els.resizeInnerTimeout = null;
els.viewerOpener = null;
els.viewerIframe.isHash = false;
els.viewerIframe.isIntroposeReady = false;
els.viewerIframe.isFold = false;
els.viewerIframe.resetTimeout = null;
};
const bindEvents = function () {
eventHandler.load();
eventHandler.message();
eventHandler.click();
resize.add(eventList.resize);
if (!isLow) {
eventList.setScene();
}
};
const eventHandler = {
load: function () {
window.addEventListener('DOMContentLoaded', eventList.load, {
once: true
});
},
message: function () {
window.addEventListener('message', eventList.receiveV3DMessage, false);
},
click: function () {
if (!!isLow) {
els.popupScroll.addEventListener('click', eventList.clickLayerScroll);
}
els.foldBtn && els.foldBtn.addEventListener('click', eventList.clickFold);
els.resetBtn && els.resetBtn.addEventListener('click', eventList.clickReset);
els.presetOpen && els.presetOpen.addEventListener('click', eventList.openPresetPopup);
for (let i = 0; i < els.angleCta.length; i++) {
els.angleCta[i].addEventListener('click', eventList.setAngle);
}
els.contents.addEventListener('click', function (e) {
if (e.target.classList.contains('js-reset-btn') || e.target.classList.contains('js-fold-btn') || e.target.classList.contains('js-preset-open') || e.target.closest('.js-preset-layer')) return;
eventList.closePresetPopup();
});
},
scroll: function () {
window.addEventListener('scroll', eventList.runIntroPose);
}
};
const eventList = {
load: function () {
if (!!isLow) {
eventList.innerWrapHeight();
eventList.layerScroll();
}
accessibility.fold.ariaLabel();
eventList.setFoldClass();
},
receiveV3DMessage: function (e) {
if (e.data == 'V3D.state.popOpen') {
if (currDevice.indexOf('mobile') > -1 || currDevice == 'tablet') {
if (els.closeCta) {
if (!els.popupWrap.classList.contains('is-popup-opened')) els.popupWrap.classList.add('is-popup-opened');
els.closeCta.setAttribute('tabindex', '-1');
els.closeCta.setAttribute('aria-hidden', 'true');
els.closeCta.setAttribute('disabled', 'disabled');
}
}
} else if (e.data == 'V3D.state.popClose') {
if (currDevice.indexOf('mobile') > -1 || currDevice == 'tablet') {
if (els.closeCta) {
if (els.popupWrap.classList.contains('is-popup-opened')) els.popupWrap.classList.remove('is-popup-opened');
els.closeCta.removeAttribute('tabindex');
els.closeCta.removeAttribute('aria-hidden');
els.closeCta.removeAttribute('disabled');
}
}
} else if (e.data == 'V3D.state.introPose.ready') {
if (!isLow) {
els.viewerIframe.isIntroposeReady = true;
eventHandler.scroll();
eventList.runIntroPose();
} else {
els.viewerIframe && els.viewerIframe.contentWindow.postMessage('V3D.introPose.run', '*');
}
} else if (e.data == 'V3D.state.localData.ready') {
els.viewerIframe && els.viewerIframe.contentWindow.postMessage(JSON.stringify(V3DLOCALDATA), '*');
} else if (e.data == 'V3D.state.actionPose.0') {
els.viewerIframe.isFold = false;
eventList.setFoldClass();
} else if (e.data == 'V3D.state.actionPose.1') {
els.viewerIframe.isFold = true;
eventList.setFoldClass();
} else if (e.data == 'V3D.event.pointerdown') {
eventList.closePresetPopup();
}
},
resize: function (currRes) {
currDevice = currRes;
if (utils.detector.isTouchDevice && !utils.detector.isIosDevice) eventList.innerWrapHeight();
eventList.layerScroll();
},
innerWrapHeight: function () {
clearTimeout(els.resizeInnerTimeout);
els.resizeInnerTimeout = setTimeout(function () {
if (els.popupInner) {
els.popupInner.style.height = parseInt(window.innerHeight * 0.9) + 'px';
}
}, 0);
},
layerScroll: function () {
clearTimeout(els.resizeTimeout);
els.resizeTimeout = setTimeout(function () {
eventList.setLayerScroll();
}, 300);
},
setLayerScroll: function () {
if (!els.popupContents) return;
if (els.popupContents.scrollHeight > els.popupContents.clientHeight) {
utils.offAccessibility(els.popupScroll);
els.popupScroll && els.popupScroll.classList.add('is-scroll-btn');
} else {
utils.onAccessibility(els.popupScroll);
els.popupScroll && els.popupScroll.classList.remove('is-scroll-btn');
}
},
clickLayerScroll: function (e) {
e && e.preventDefault();
if (e.target.matches('.js-scroll-btn')) {
let scrollDown = e.target.classList.contains('js-scroll-down'),
$popupContents = $(els.popupContents);
if (scrollDown) {
$popupContents.stop().animate({
scrollTop: $popupContents.scrollTop() + 100
}, {
duration: 300,
complete: function () {
eventList.updateLayerScroll(true);
}
});
} else {
$popupContents.stop().animate({
scrollTop: $popupContents.scrollTop() - 100
}, {
duration: 300,
complete: function () {
eventList.updateLayerScroll(true);
}
});
}
}
},
updateLayerScroll: function (isClicked) {
const offsetTop = els.popupContents.scrollTop,
layerBottom = els.popupContents.scrollHeight - els.popupContents.clientHeight;
els.popupScrollUpBtn.removeAttribute('tabindex');
els.popupScrollUpBtn.removeAttribute('aria-hidden');
els.popupScrollUpBtn.removeAttribute('disabled');
els.popupScrollDownBtn.removeAttribute('tabindex');
els.popupScrollDownBtn.removeAttribute('aria-hidden');
els.popupScrollDownBtn.removeAttribute('disabled');
if (offsetTop == 0) {
isClicked && els.popupScrollDownBtn && els.popupScrollDownBtn.focus();
els.popupScrollUpBtn.setAttribute('tabindex', '-1');
els.popupScrollUpBtn.setAttribute('aria-hidden', 'true');
els.popupScrollUpBtn.setAttribute('disabled', 'disabled');
} else if (offsetTop >= layerBottom - 1) {
isClicked && els.popupScrollUpBtn && els.popupScrollUpBtn.focus();
els.popupScrollDownBtn.setAttribute('tabindex', '-1');
els.popupScrollDownBtn.setAttribute('aria-hidden', 'true');
els.popupScrollDownBtn.setAttribute('disabled', 'disabled');
}
},
setScene: function () {
els.sceneObj = SCROLLER({
trackElement: els.section,
useFixed: false
});
},
runIntroPose: function () {
els.sceneObj.trackAnimation(function () {
let progress = currDevice.indexOf('mobile') > -1 ? 50 : 30;
if (this.progress >= progress && !!els.viewerIframe.isIntroposeReady) {
els.viewerIframe && els.viewerIframe.contentWindow.postMessage('V3D.introPose.run', '*');
window.removeEventListener('scroll', eventList.runIntroPose);
}
});
},
clickFold: function () {
if (!els.viewerIframe.isFold) {
els.viewerIframe.isFold = true;
els.viewerIframe.contentWindow.postMessage('V3D.action', '*');
} else {
els.viewerIframe.isFold = false;
els.viewerIframe.contentWindow.postMessage('V3D.action.reverse', '*');
}
accessibility.fold.ariaLabel();
eventList.setFoldClass();
accessibility.fold.tagging();
},
clickReset: function () {
let viewerSrc = els.viewerIframe.getAttribute('src');
els.viewerIframe.setAttribute('src', `${viewerSrc}#reset=1`);
clearTimeout(els.viewerIframe.resetTimeout);
els.viewerIframe.resetTimeout = setTimeout(function () {
viewerSrc = viewerSrc.split('#reset=1')[0];
els.viewerIframe.setAttribute('src', viewerSrc);
}, 300);
},
openPresetPopup: function () {
if (!els.presetLayer.classList.contains('is-active')) {
els.presetOpen.classList.add('is-open');
els.presetLayer.classList.add('is-active');
els.presetOpen.setAttribute('aria-expanded', true);
els.presetClose.focus();
} else {
eventList.closePresetPopup();
}
els.presetClose && els.presetClose.addEventListener('click', eventList.closePresetPopup);
},
closePresetPopup: function (e) {
if (els.presetLayer.classList.contains('is-active')) {
els.presetOpen.classList.remove('is-open');
els.presetLayer.classList.remove('is-active');
els.presetOpen.setAttribute('aria-expanded', false);
if (e && e.target.classList.contains('js-preset-close')) {
els.presetOpen.focus();
}
}
},
setFoldClass: function () {
if (!els.viewerIframe.isFold) {
if (els.foldBtn.classList.contains('is-folded')) els.foldBtn.classList.remove('is-folded');
els.foldBtn.classList.add('is-fold');
} else {
if (els.foldBtn.classList.contains('is-fold')) els.foldBtn.classList.remove('is-fold');
els.foldBtn.classList.add('is-folded');
}
},
setAngle: function () {
let target = this,
targetAngle = target.innerText.toLowerCase();
if (targetAngle == 'front') {
els.viewerIframe.contentWindow.postMessage('V3D.setPosition.angleX: 0,angleY: 0', '*');
} else if (targetAngle == 'back') {
els.viewerIframe.contentWindow.postMessage('V3D.setPosition.angleX: 0,angleY: 3.141592653589793', '*');
} else if (targetAngle == 'top') {
els.viewerIframe.contentWindow.postMessage('V3D.setPosition.angleX: 1.5707963267948966,angleY: 3.141592653589793', '*');
} else if (targetAngle == 'bottom') {
els.viewerIframe.contentWindow.postMessage('V3D.setPosition.angleX: -1.5707963267948966,angleY: 0', '*');
} else if (targetAngle == 'left') {
els.viewerIframe.contentWindow.postMessage('V3D.setPosition.angleX: 0,angleY: 1.5707963267948966', '*');
} else if (targetAngle == 'right') {
els.viewerIframe.contentWindow.postMessage('V3D.setPosition.angleX: 0,angleY: -1.5707963267948966', '*');
}
accessibility.selected(target);
}
};
const popupEvents = {
set: function () {
utils.layerPopup({
layerPopup: els.popup,
layerPopupClass: '.js-viewer',
openerEvent: {
element: els.viewerBtn,
},
closeCtas: [els.closeCta],
dimmed: els.popupWrap,
moveTarget: document.documentElement,
contents: els.contents,
show: {
start: function (target) {
els.popup.classList.add('is-init');
popupEvents.show(target.openerCta);
},
end: function () {
if (utils.detector.isIosDevice) els.popup.style.display = 'block';
els.popup.classList.add('is-open');
}
},
hide: {
start: function () {
els.popup.classList.remove('is-open');
},
end: function () {
setTimeout(function () {
els.popup.classList.remove('is-init');
}, 300);
popupEvents.hide();
}
}
});
},
show: function (viewerOpener) {
if (viewerOpener.classList.contains('viewer-btn')) {
els.viewerIframe.isHash = false;
els.viewerOpener = viewerOpener;
} else {
els.viewerIframe.isHash = true;
els.viewerOpener = els.viewerBtn;
}
els.viewerIframe.setAttribute('src', common.getViewerUrl());
},
hide: function () {
els.viewerIframe.setAttribute('src', 'about:blank');
if (els.viewerIframe.isHash) {
setTimeout(function () {
els.viewerOpener.focus();
}, 300);
}
},
};
const accessibility = {
fold: {
ariaLabel: function () {
if (!els.viewerIframe.isFold) {
els.foldBtn.setAttribute('aria-label', `${els.foldBtn.getAttribute('data-unfolded')}`);
} else {
els.foldBtn.setAttribute('aria-label', `${els.foldBtn.getAttribute('data-folded')}`);
}
},
tagging: function () {
let dataOmni = els.foldBtn.getAttribute('data-omni'),
gaLa = els.foldBtn.getAttribute('ga-la');
if (!els.viewerIframe.isFold) {
els.foldBtn.setAttribute('data-omni', dataOmni.replace('folded', 'unfolded'));
els.foldBtn.setAttribute('ga-la', gaLa.replace('folded', 'unfolded'));
} else {
els.foldBtn.setAttribute('data-omni', dataOmni.replace('unfolded', 'folded'));
els.foldBtn.setAttribute('ga-la', gaLa.replace('unfolded', 'folded'));
}
},
},
selected: function (target) {
for (let i = 0; i < els.angleCta.length; i++) {
els.angleCta[i].removeAttribute('title');
if (els.angleCta[i].classList.contains('is-selected')) {
els.angleCta[i].classList.remove('is-selected');
}
}
if (!target.classList.contains('is-selected')) {
target.classList.add('is-selected');
}
if (typeof LOCAL_VARI != 'undefined' && !!LOCAL_VARI) {
target.setAttribute('title', LOCAL_VARI.selected);
} else {
target.setAttribute('title', 'Selected');
}
}
};
return {
init: init
}
})();
})();
flagship.features.initialize = (function () {
window.flagship.common.resize.bindEvent();
const init = function () {
flagship.features.clickToVideo.init();
flagship.features.headline.init();
flagship.features.howtoPopup.init();
flagship.features.oneColumnCarousel.init();
flagship.features.scrollVideo.init();
flagship.features.threeColumnCarousel.init();
flagship.features.aiOverview.init();
flagship.features.battery.init();
flagship.features.cameraSpec.init();
flagship.features.faq.init();
flagship.features.flexWindow.init();
flagship.features.highlightsZone.init();
flagship.features.interactiveSuggested.init();
flagship.features.interactiveInterpreter.init();
flagship.features.interactive.init();
flagship.features.lowLightPortrait.init();
flagship.features.moveFeature.init();
flagship.features.nightography.init();
flagship.features.photoAssist.init();
flagship.features.viewer.init();
};
return {
init: init
}
})();
flagship.features.initialize.init();
});
تسجيل المنتج
Quick and easy product registration.. Receive up-to-date personalized services and tips.
الرقم التسلسلي/IMEI
أدخِل رقمك التسلسلي/IMEI
مسح QR
Scan the QR code on your products for easy registration.
* هذه الميزة مدعومة فقط على الأجهزة المنزلية من Samsungوالشاشات غير الذكية من الشركة إلى المستهلكين.
أدخِل رقمك التسلسلي/IMEI
Quick and easy product registration.
يُرجى إدخال الرقم المُكوّن من 11 أو 15 خانة.
هذا المنتج مُسجّل بالفعل. تأكّد من صحة إدخال الرقم التسلسلي أو رقم IMEI.
النوع
النوع الفرعي
الفئة
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.
اكتمل تسجيل المنتج تقريباً!!
لقد أدخلت رقماً تسلسليّاً أو رقم IMEI صحيحاً. الآن حدِّد طراز منتجك.
عمليات البحث المقترحة
No result. Please try again.
Galaxy Book3 Ultra
SM-G996BZKGEUA
Serial Number: R3CR508WNAH
الجهاز الذي تستخدمه حالياً لا يدعم وظيفة الكاميرا.