Galaxy Z Fold6
- SPECS
- REVIEWS
สั่งซื้อล่วงหน้า
- Features
- Compare
- Accessories
- Preorder
- SPECS
- REVIEWS
ซื้อเลย ลงทะเบียนความสนใจ สั่งซื้อล่วงหน้า สถานที่จำหน่าย
Galaxy AI is here
พก ขุมพลังแบบ PC ไว้ได้ในกระเป๋าของคุณด้วย GalaxyZFold6 ที่ทรงพลังมากกว่าที่เคยเป็นในรูปลักษณ์อันบางเฉียบซึ่งมีหน้าจอที่สามารถใช้ทำอะไรต่อมิอะไรได้มากมาย พร้อมการเสริมพลังด้วย Galaxy AI สำหรับอุปกรณ์หน้าจอพับได้
ดีไซน์ที่เบาและบางลง
ข้ามไปที่ดีไซน์
วงแล้วค้นหา เพื่อเพิ่มความสามารถด้านการทำงาน
ข้ามไปที่วงเพื่อค้นหา
Note Assist ที่ช่วยให้เวิร์กโฟลว์ของคุณลื่นไหลขึ้น
ข้ามไปที่ Note Assist
การเล่นเกมที่สมจริงและทรงพลัง
ข้ามไปที่ประสิทธิภาพ
เบาที่สุด
253 239 g
บางที่สุด 6.1 5.6 mm
พลิกเปิดความสมบูรณ์แบบ
เบาที่สุด
239 g
บางที่สุด 5.6 mm
เปิดโลกแห่งความสมบูรณ์แบบ
บางและเบาลง พร้อมรูปทรง ที่พกไว้ในกระเป๋าได้ รวมถึงหน้าจออันน่าทึ่งที่กางออกได้และสว่างกว่าเดิม
สีสันสดใส มั่นใจ มหัศจรรย์
สีสันที่โดดเด่นพอ ๆ กับคุณ มั่นเข้าไว้และโดดเด่นได้อย่างแท้จริงด้วยหนึ่งใน สีสันพิเศษทางออนไลน์ — ที่มีให้เลือกเฉพาะใน Samsung.com
มุมมอง 360 องศา 3 มิติ ข้อเสนอพิเศษสำหรับการซื้อออนไลน์
Silver Shadow Pink Navy Crafted Black สีพิเศษทางออนไลน์ White สีพิเศษทางออนไลน์
มุมที่ตั้งไว้ล่วงหน้า
*สีพิเศษต่าง ๆ มีให้เลือกเฉพาะในเว็บไซต์ Samsung.com
Silver Shadow Pink Navy Crafted Black สีพิเศษทางออนไลน์ White สีพิเศษทางออนไลน์
มุมที่ตั้งไว้ล่วงหน้า
*สีพิเศษต่าง ๆ มีให้เลือกเฉพาะในเว็บไซต์ Samsung.com
Galaxy AI มาแล้วใน Galaxy Foldables
Galaxy AI
is here ใน Galaxy Foldables is here ใน Galaxy Foldables
วงเพื่อค้นหา
วงเพื่อค้นหาได้ในหน้าจอใหญ่ ๆ
นี่คือวิธีการ ค้นหา ที่มีประสิทธิภาพในสมาร์ทโฟน เพียง วงสิ่งที่ต้องการหา เสริม ความสามารถด้านการทำงาน ในหน้าจอขนาดมหึมาที่กางออกได้ด้วยการใช้นิ้วหรือ SPen
แตะเพื่อลอง
แตะเพื่อลอง
NOTE ASSIST
วิธีที่ง่ายที่สุดในการสรุปโน้ตใน Galaxy Foldables
จดโน้ตการเรียนการสอนได้ในไม่กี่ขั้นตอน แม้ว่าคุณจะทำอะไรหลายอย่างอยู่ก็ตาม Note Assist จะถอด เสียงพูดที่บันทึกไว้ ออกมาเป็นข้อความแล้วก็ จัดรูปแบบ ให้กลายเป็นโน้ต เพื่อให้ได้ การสรุป ที่มีประสิทธิภาพ นอกจากนี้ก็ยังมี SPen ที่พร้อมสร้างความมหัศจรรย์ได้ในหน้าจอด้วย
แตะเพื่อลอง
แตะเพื่อลอง
Chat Assist
อยากเขียนอะไรสักอย่างในตอนที่รีบ ๆ อยู่รึเปล่า แค่พิมพ์ คีย์เวิร์ดบางคำ เพื่อสร้าง ถ้อยคำ ที่สมบูรณ์ได้เลย
Browsing Assist
เจอเว็บไซต์ที่คุณอยากทำความเข้าใจได้อย่างรวดเร็วแล้วรึเปล่า AI จะ สรุป ทั้งเว็บไซต์ให้ในพริบตา
PHOTO ASSIST
แก้ไขได้อย่างง่ายดายด้วยความสามารถของ Galaxy AI
เอนจินที่รับรู้ได้ถึงวัตถุต่าง ๆ จะช่วยให้คุณแก้ไขภาพถ่ายได้ตามใจ ด้วย Photo Assist แค่กดนิ้วมือลงบนวัตถุค้างไว้เพื่อ ขยับ ลบ หรือขยาย รวมถึง ปรับมุมหรือเติมพื้นหลัง ได้อย่างง่ายดาย
Portrait Studio
ให้ AI ช่วยจุดประกายจินตนาการของคุณด้วย Portrait Studio ที่จะทำให้ภาพพอตเทรตเซลฟี เปลี่ยนเป็น ผลงานศิลปะ อันน่าทึ่งได้ทันที
Instant Slow-mo
Instant Slow-mo ช่วยให้คุณโฟกัสไปกับช่วงเวลาสำคัญ ๆ ด้วยการเลือกใช้ สโลโมชัน กับวิดีโอ พร้อม แชร์ หรือบันทึกคลิป
Sketch to Image
สร้างสรรค์ภาพขึ้นมาได้เองหรือจากภาพถ่ายใด ๆ ใช้ AI เพื่อ แปลงโฉม ภาพร่าง ให้กลายเป็นภาพที่งดงาม
INTERPRETER
ที่สุดแห่งประสบการณ์การแปลภาษาสำหรับคุณด้วยหน้าจอคู่,
ต้องเดินทางและสนทนากับคนท้องถิ่นรึเปล่า Interpreter จะช่วยแปลภาษาได้ทันที ไม่ว่าจะเป็นการแนะนำตัวเองของคุณ หรือการรับฟังงานประชุมระดับสากลที่มีการใช้ภาษาต่างประเทศก็ตาม
แตะเพื่อลอง
แตะเพื่อลอง
LIVE TRANSLATE
คุยสายโทรศัพท์ได้แบบไร้พรมแดน
แปลบทสนทนาในสายโทรศัพท์ ได้ทันที ซึ่งเหมาะอย่างยิ่งสำหรับคำแปลเสียงพูดแบบเรียลไทม์ในหลาย ๆ แอป โดยเฉพาะอย่างยิ่งเมื่อคุณต้องคุยสายด้วยการสนทนาที่มีการใช้สองภาษา
สนทนากับ Gemini เพื่อจุดประกายไอเดียต่าง ๆ ของคุณ
เนื่องจาก Samsung เป็นพันธมิตรกับ Google มาอย่างยาวนาน อุปกรณ์ Galaxy ของคุณในปัจจุบันจึงมาพร้อมกับแอป Google Gemini เชิญคุณสนทนากับ Gemini เพื่อเรียนรู้ด้วยวิธีการใหม่ ๆ เขียนโน้ตขอบคุณ วางแผนงานอีเวนต์ และอื่น ๆ อีกมากมาย
สมจริงได้อย่างเต็มอิ่ม
*DARK AND DARKER MOBILE เป็นเครื่องหมายการค้าหรือเครื่องหมายบริการของ KRAFTON, INC.
การเล่นเกมในสมาร์ทโฟนที่สมจริงที่สุดของเรา
Fold เสนอ หน้าจอมหึมา ให้กับคอเล่นเกมมือถือตัวจริง ซึ่งดีกว่าเดิมด้วย ความสว่างและความใส อันทรงพลังของ Vision Booster ที่เฉิดฉายได้แม้จะเล่นท่ามกลางแดดจ้าก็ตาม,
-
2,600 nit
-
1.5 เท่า สว่างกว่า
การเล่นเกมอันทรงพลังด้วยหน่วยประมวลผลที่เร็วที่สุดของ Galaxy Foldables
เพลิดเพลินไปกับ การเล่นเกม ที่ไหลลื่นด้วย Vulkan แม้จะเล่นเกม AAA ก็ตาม จากนั้น Snapdragon® 8 Gen 3 for Galaxy ก็จะเรนเดอร์ กราฟิก ที่ดูงดงามอย่างแท้จริง
Snapdragon ที่เร็วที่สุดใน GalaxyZFold,
- GPU
19 % การเรนเดอร์กราฟิกที่เร็วกว่า
- NPU
42 % ประสิทธิภาพ AI ในอุปกรณ์ที่ดีกว่าเดิม
- CPU
18 % ประสิทธิภาพที่ดีกว่าเดิม
Snapdragon ที่เร็วที่สุดใน GalaxyZFold,
เล่นเกมได้หนัก และนานขึ้น
แบตเตอรี่ของเราจะช่วยให้คุณ สนุกได้ทั้งวัน เพราะแบตเตอรี่ไม่ได้แค่มีความจุที่ใหญ่เท่านั้น แต่ยังได้รับประโยชน์จาก การแสดงผลที่มีประสิทธิภาพ กว่าเดิมด้วย ดังนั้น เล่นให้เต็มที่ไปเลย
- ฟังเพลงได้นานสุด
77 ชม.
- ดูวิดีโอได้นานสุด
23 ชม.
เทิร์นโปรได้ด้วย ProVisual Engine
พบกับระบบกล้องที่ทรงพลังที่สุดของ Fold ด้วย NPU ที่ล้ำกว่าเดิม, สเปคที่เหนือความคาดหมาย และ ProVisual Engine ระบบกล้องที่จะแปลงโฉมประสบการณ์มัลติมีเดียของคุณไปอย่างสิ้นเชิง
กล้องหน้า
-
10MP กล้องฝาเครื่อง
-
4MP กล้องใต้จอแสดงผล
กล้องหลัง
-
12MP กล้องมุมกว้างพิเศษ
-
50MP กล้องมุมกว้าง 2x Optical Quality Zoom
-
10MP 3x Optical Zoom กล้องเทเลโฟโต
เก็บทุกรายละเอียดเล็ก ๆ น้อย ๆ
ด้วยกล้องความละเอียดสูงระดับ 50MP ของเรา ทุกรายละเอียดจะดูสมจริงได้ด้วย ความชัด และ ความสดใส อันน่าทึ่ง
ถ่ายด้วย GalaxyZFold6 #withGalaxy
ซูมได้อย่างคมชัดด้วยพลัง AI
ซูมเข้าได้สุด ๆ พร้อมลดนอยส์ลงและคงความละเอียดไว้ได้อย่าง ชัดเจน ด้วย ProVisual Engine ซึ่งจะวิเคราะห์บริเวณที่ทำการซูมเข้าเพื่อทำให้การถ่ายของคุณดูดีขึ้นมาได้อย่างยิ่ง
ถ่ายด้วย GalaxyZFold6 #withGalaxy
Zoom Map
ใช้ Zoom Map เพื่อดูทิศทางที่คุณหันกล้องไปขณะที่คุณซูมเข้า ซึ่งจะทำให้คุณเล็งกล้องได้อย่างง่ายดาย
ถ่ายด้วย GalaxyZFold6 #withGalaxy
ให้ภาพดูสดใสขึ้นได้ด้วย Super HDR
รับชมได้อย่างสมจริง Super HDR จะช่วยทำให้รายละเอียดต่าง ๆ ดูโดดเด่นและดูน่าประทับใจ ขึ้นมาได้ แม้จะเป็นช่วงก่อนที่คุณจะถ่ายภาพก็ตาม
ถ่ายด้วย GalaxyZFold6 #withGalaxy
ทำไมถึงต้องเปลี่ยนไปใช้ Galaxy
-
เปลี่ยนมาใช้ได้ง่าย ๆ จาก iOS
การเปลี่ยน มาใช้จาก iOS นั้น ง่าย มาก! ด้วย Smart Switch คุณจะสามารถถ่ายโอนข้อมูลภาพถ่าย, วิดีโอ, รายชื่อผู้ติดต่อ และแอปได้อย่างง่ายดาย,,
เรียนรู้เพิ่มเติม
-
แบ่งปันได้อย่างไม่มีสะดุด
ส่งไฟล์, ข้อมูล และคอนเทนต์ระหว่างอุปกรณ์ได้ แม้จะเป็น iOS กับ PC ก็ตาม นี่คือวิธีการแชร์อย่างเปิดกว้างที่ทั้งรวดเร็วและปลอดภัย
-
ความเป็นส่วนตัวที่ปลอดภัย
ใน ความเป็นส่วนตัวและความปลอดภัย ดูว่าแอปไหนกำลังเข้าถึงข้อมูลของคุณได้อย่างรวดเร็ว จากนั้นก็กำหนดการตั้งค่าได้ตามใจ ยิ่งไปกว่านั้น ด้วยฟีเจอร์ Advanced Intelligence คุณจะสามารถประมวลผลข้อมูลสำหรับบริการ AI ได้จากอุปกรณ์ Galaxy ของคุณหรือผ่านคลาวด์
ทนทาน วางใจได้ ใช้งานได้ยาวนาน
-
ออกแบบมาเพื่อให้ทนทาน
พบกับ FlexHinge ที่บางเฉียบที่เปี่ยมไปด้วยนวัตกรรมของเรา
-
ได้รับการปกป้องด้วยอะลูมิเนียม
Armor Aluminum ที่ดีกว่าเดิมจะช่วยปกป้องได้ตลอด,
-
แข็งแกร่งอย่างแท้จริง
การปกป้องที่แข็งแกร่งด้วย Corning® Gorilla® Glass Victus® 2
-
กันน้ำได้ตลอด
มาตรฐานการกันน้ำ IP48 สำหรับการหกเลอะที่ไม่คาดคิด
Samsung Care+
การดูแล ชั้นเลิศ จากผู้เชี่ยวชาญของ Samsung
เรียนรู้เพิ่มเติม
Try Galaxy ในโทรศัพท์ของคุณ
ได้ลองสัมผัสประสบการณ์อุปกรณ์ Galaxy ใหม่ล่าสุดแล้วหรือยัง ทำไมไม่ลองตอนนี้เลยล่ะ โดยใช้โทรศัพท์ของคุณ! เพียงสแกน QR โค้ดและดาวน์โหลดเพื่อเริ่มใช้
ดูแลสุขภาพไปกับ fold
เริ่มต้นการผจญภัยครั้งต่อไปของคุณได้ด้วย GalaxyBuds3Pro และ ค้นหา Energy Score ของคุณ ด้วย Galaxy Watch Ultra หรือ Galaxy Watch7 โฉมใหม่,
Samsung Health
เรียนรู้เพิ่มเติม
การเปลี่ยนแปลงครั้งใหญ่ล้วนเริ่มต้นจากก้าวเล็ก ๆ
เป้าหมายของเราคืออนาคต ที่ยั่งยืน กว่าเดิม
อุปกรณ์เสริม
สำรวจเพิ่มเติม
คำถามที่พบบ่อย
-
GalaxyZFold6 มีให้เลือกในสี Silver Shadow, Pink และ Navy ส่วน Crafted Black กับ White คือสีพิเศษที่จะพบได้ใน Samsung.com เท่านั้น
ไปที่สีต่าง ๆ
-
GalaxyZFold6 ใช้งาน AI ในหลากหลายแอป ตัวอย่างเช่น กล้องใช้ AI Zoom ส่วน Photo Assist ก็ใช้ AI เพื่อเติมฉากหลังและเคลื่อนย้าย ปรับขนาด หรือลบวัตถุต่าง ๆ,
เครื่องมือที่ช่วยเสริมการทำงานก็ประกอบไปด้วย Interpreter ซึ่งสามารถแปลบทสนทนาแบบออฟไลน์ได้แบบเรียลไทม์ และ Live Translate ที่ช่วยอำนวยความสะดวกในการคุยสายโทรศัพท์, ฟีเจอร์ Composer สำหรับ Chat Assist ก็จะช่วยร่างข้อความได้อย่างมีประสิทธิภาพ รวมถึงมี Note Assist ซึ่งช่วยถอดความบันทึกเสียงและจัดระเบียบให้กับโน้ตต่าง ๆ ได้,
ไปที่ Galaxy AI
-
GalaxyZFold6 มาพร้อมกับหน้าจอขนาดใหญ่ที่มีหน้าจอฝาเครื่องขนาด 6.3 นิ้ว และหน้าจอหลักขนาด 7.6 นิ้ว, และด้วย Galaxy AI โทรศัพท์จึงเป็นอุปกรณ์ที่ลงตัวที่ให้ความสามารถด้านการทำงานในระดับสูง ยิ่งไปกว่านั้น GalaxyZFold6 ยังเหมาะต่อการชมวิดีโอหรือประสบการณ์การเล่นเกมอันสมจริงด้วย GalaxyZFold6 มีความสว่างสูงสุดที่ 2,600 nit ซึ่งเยอะกว่าของ GalaxyZFold5 ที่ 1,750 nit นอกจากนี้ 3 Step Vision Booster ของโทรศัพท์ยังช่วยปรับสีให้เหมาะตามความสว่าง ซึ่งจะทำให้หน้าจอแสดงผลดูคมชัดพอแม้จะอยู่กลางแจ้งหรือออกไปไหนมาไหนก็ตาม
ไปที่การเปรียบเทียบและการอัปเกรด
-
SPen ทำให้ใช้ Galaxy AI ได้อย่างมีศักยภาพยิ่งขึ้น แม้ว่า SPen จะรองรับในหน้าจอหลัก แต่ GalaxyZFold6 ก็ไม่ได้มี SPen มาให้ คุณสามารถซื้อ SPen Fold Edition หรือ SPen Case เพื่อเพลิดเพลินไปกับการจดโน้ตและการสั่งการด้วย Air Commands
ไปที่อุปกรณ์เสริม
-
การชาร์จหนึ่งครั้งของ GalaxyZFold6 ใช้งานได้นานกว่า GalaxyZFold5 แม้ว่า GalaxyZFold6 จะมีแบตเตอรี่ขนาด 4,400mAh (ปกติ) เช่นเดียวกับของ GalaxyZFold5 แต่หน่วยประมวลผลอันล้ำสมัยก็ช่วยให้ใช้พลังงานได้อย่างมีประสิทธิภาพมากขึ้น ดังนั้นคุณจึงสามารถฟังเพลงได้นานถึง 77 ชั่วโมงหรือรับชมวิดีโอได้นานถึง 23 ชั่วโมง,
ไปที่แบตเตอรี่
-
สมาร์ทโฟนได้รับการอัปเกรดเป็น Snapdragon® 8 Gen 3 Mobile Platform for Galaxy ซึ่งเป็นหน่วยประมวลผลประสิทธิภาพสูงที่จะช่วยให้เล่นเกมได้อย่างไหลลื่น นอกเหนือไปจาก Vulkan API กับ AP รุ่นใหม่ล่าสุดแล้ว 3 Step Vision Booster ของโทรศัพท์ยังช่วยปรับสีให้เหมาะตามความสว่างได้ด้วย GalaxyZFold6 มีความสว่างสูงสุดที่ 2,600 nit ซึ่งเยอะกว่าของ GalaxyZFold5 ที่ 1,750 nit นอกจากนี้ Vapor Chamber ก็มีขนาดใหญ่ขึ้นเพื่อรองรับกับการเล่นเกมหนัก ๆ เป็นเวลานาน
ไปที่ประสิทธิภาพ
-
GalaxyZFold6 บางและเบากว่า GalaxyZFold5 239 กรัม ซึ่งทำให้พกพาได้ง่ายยิ่งขึ้น
หน่วยประมวลผลที่ดีกว่าเดิมช่วยยกระดับให้กับประสิทธิภาพของ GalaxyZFold6 ทั่วทั้งบอร์ด ด้วยประสิทธิภาพ CPU ที่ดีกว่าเดิม 18%, GPU ที่ดีกว่าเดิม 19% และ NPU ที่ดีกว่าเดิม 42% เมื่อเทียบกับ GalaxyZFold5 สุดท้ายแต่ไม่ท้ายสุด Galaxy AI เวอร์ชันล่าสุดที่ล้ำสมัยที่สุดก็ช่วยยกระดับให้กับประสิทธิภาพด้านการทำงานของคุณได้
ไปที่การเปรียบเทียบและการอัปเกรด
-
GalaxyZFold6 มีกล้องหน้า/ฝาเครื่อง 10MP หน้าจอหลักมีกล้องใต้จอแสดงผล 4MP ซ่อนอยู่ และที่ด้านหลังของ GalaxyZFold6 ก็มีกล้องมุมกว้าง 50MP, กล้องมุมกว้างพิเศษ 12MP และกล้องเทเลโฟโต 10MP ที่จะทำให้คุณสามารถถ่ายภาพที่คมชัดซึ่งปรับปรุงโดยหน่วยประมวลผลขั้นสูงและซอฟต์แวร์ที่ขับเคลื่อนด้วย AI ได้ตลอดทั้งวัน ดาวน์โหลด Expert RAW เพื่อควบคุมกล้องระดับมืออาชีพของ GalaxyZFold6 ได้อย่างสร้างสรรค์ยิ่งขึ้น
ไปที่กล้อง
-
GalaxyZFold6 มาพร้อมกับ FlexHinge แบบรางคู่อันทนทาน รวมถึงได้รับมาตรฐาน IP48 ที่กันน้ำได้
กระจกด้านหน้ากับด้านหลังของโทรศัพท์เป็นวัสดุ Corning® Gorilla® Glass Victus® 2 รุ่นล่าสุด พร้อมกับมีเฟรมโลหะเป็น Armor Aluminum,
ไปที่ความทนทาน
GalaxyZFlip6
เรียนรู้เพิ่มเติม
ดูวิธีอัจฉริยะต่าง ๆ เพื่อคว้า GalaxyZFold6 ของคุณ
ซื้อเลย ลงทะเบียนความสนใจ สั่งซื้อล่วงหน้า สถานที่จำหน่าย
ชีวิตที่เป็นอิสระกับ Galaxy
สำรวจเพิ่มเติม
มุมมอง 360 องศา 3 มิติ ข้อเสนอพิเศษสำหรับการซื้อออนไลน์
Silver Shadow Pink Navy Crafted Black สีพิเศษทางออนไลน์ White สีพิเศษทางออนไลน์
มุมที่ตั้งไว้ล่วงหน้า
*สีพิเศษต่าง ๆ มีให้เลือกเฉพาะในเว็บไซต์ Samsung.com
พลิกเปิดสู่ยุคใหม่แห่งธุรกิจ
ไปที่ Samsung business
*ข้อมูลจำเพาะและลักษณะที่ระบุไว้ในที่นี้อาจแตกต่างไปจากข้อมูลจำเพาะและลักษณะจริงของผลิตภัณฑ์ Samsung ขอสงวนสิทธิ์ในการเปลี่ยนแปลงเอกสารฉบับนี้และผลิตภัณฑ์ที่ระบุไว้ในที่นี้เมื่อใดก็ได้ โดยไม่มีข้อผูกมัดใดที่ Samsung จะต้องแจ้งให้ทราบถึงการเปลี่ยนแปลงดังกล่าว ฟังก์ชั่น, ฟีเจอร์, ข้อมูลจำเพาะ, GUI และข้อมูลอื่น ๆ ของผลิตภัณฑ์ทั้งหมดที่ระบุไว้ในเอกสารนี้ รวมถึงแต่ไม่จำกัดเพียง คุณประโยชน์, การออกแบบ, ราคา, ส่วนประกอบ, ประสิทธิภาพ, ความพร้อมให้บริการ และความสามารถของผลิตภัณฑ์ อาจเปลี่ยนแปลงได้โดยไม่ต้องแจ้งให้ทราบหรือไม่มีข้อผูกมัดใด ๆ ทั้งนี้ เนื้อหาในหน้าจอเป็นภาพจำลองและทำขึ้นเพื่อจุดประสงค์ในการสาธิตเท่านั้น
*อาจต้องเข้าสู่ระบบ Samsung Account เพื่อใช้ฟีเจอร์ Samsung AI บางอย่าง
*Samsung ไม่ให้สัญญา รับรอง หรือรับประกันถึงความถูกต้องแม่นยำ ความครบถ้วนสมบูรณ์ หรือความเชื่อถือได้ ของผลลัพธ์ที่ได้จากฟีเจอร์ AI
*ฟีเจอร์ Galaxy AI ที่สามารถใช้งานได้อาจแตกต่างกันไปขึ้นอยู่กับแต่ละภูมิภาค/ประเทศ, เวอร์ชัน ระบบปฏิบัติการ/One UI, รุ่นของอุปกรณ์ และผู้ให้บริการโทรศัพท์
*ฟีเจอร์ต่าง ๆ ของ Galaxy AI มีให้บริการฟรีไปจนถึงสิ้นปี 2025 ในอุปกรณ์ Samsung Galaxy ที่สามารถใช้งานฟีเจอร์ดังกล่าว ทั้งนี้ อาจมีข้อกำหนดที่แตกต่างออกไปสำหรับฟีเจอร์ AI ที่เป็นขององค์กรภายนอก
*Galaxy AI อาจไม่สามารถให้บริการแก่ผู้เยาว์ในบางภูมิภาคเนื่องด้วยข้อจำกัดด้านอายุในการใช้งาน AI
- ภาพมีการตัดต่อให้สั้นลงและเป็นการจำลองขึ้นมา ผลลัพธ์ต่าง ๆ มีไว้เพื่อจุดประสงค์ในการสาธิตวิธีการใช้งานเท่านั้น ความพร้อมให้บริการอาจแตกต่างกันไปในแต่ละประเทศ ภาษา หรือรุ่นของอุปกรณ์ ต้องต่ออินเทอร์เน็ต ผู้ใช้อาจจำเป็นต้องอัปเดต Android และแอป Google เป็นเวอร์ชันล่าสุด ใช้งานได้กับแอปและพื้นผิวที่รองรับ ผลลัพธ์อาจแตกต่างกันขึ้นอยู่กับการจับคู่ภาพ ไม่รับประกันความถูกต้องแม่นยำของผลลัพธ์
- ฟีเจอร์ Summary ของ Note Assist ต้องมีการเชื่อมต่อเครือข่ายและการเข้าสู่ระบบของ Samsung Account ความพร้อมให้บริการอาจขึ้นอยู่กับภาษา ฟีเจอร์ Summary ของ Note Assist จะเปิดใช้งานก็ต่อเมื่อมีตัวอักขระถึงตามจำนวนที่กำหนดไว้และไม่เกินขีดจำกัดของตัวอักขระ ฟีเจอร์การบันทึกเสียงพูดของ Note Assist อาจไม่รองรับในบางประเทศ ไฟล์เสียงต้องมีระยะเวลาไม่เกิน 3 ชั่วโมงจึงจะประมวลผลได้ ไม่รับประกันความถูกต้องแม่นยำของผลลัพธ์
- เมื่อเทียบกับ GalaxyZFold รุ่นก่อนหน้า
- วัดความหนาจากด้านบนสุดถึงด้านล่างสุดของกระจกเมื่อกางเครื่องออก
- สีที่วางจำหน่ายอาจแตกต่างกันไปในแต่ละประเทศหรือผู้ให้บริการ
- GalaxyZFold6 ไม่มีช่องเก็บ SPen ในตัว SPen มีจำหน่ายแยกต่างหาก ให้ใช้ SPen ที่ออกแบบมาสำหรับ GalaxyZFold SPen Fold Edition รองรับกับ GalaxyZFold5 และ Z Fold6 ปากกา SPen หรือปากกาสไตลัสอื่น ๆ อาจทำให้หน้าจอเสียหายได้ SPen รองรับเฉพาะกับหน้าจอหลัก
- ฟีเจอร์ Composer สำหรับ Chat Assist ต้องมีการเชื่อมต่อเครือข่ายและเข้าสู่ระบบ Samsung Account ฟีเจอร์นี้จะเปิดใช้งานเมื่ออักขระถึงจำนวนที่กำหนด ความพร้อมให้บริการอาจขึ้นอยู่กับภาษา ไม่รับประกันความถูกต้องแม่นยำของผลลัพธ์
- ฟีเจอร์ Summary สำหรับ Browsing Assist ต้องมีการเชื่อมต่อเครือข่ายและการเข้าสู่ระบบของ Samsung Account ความพร้อมให้บริการอาจขึ้นอยู่กับภาษา บริการอาจมีข้อจำกัดด้านการใช้งานหรือไม่สามารถใช้งานได้กับเว็บไซต์ที่ต้องชำระเงินบางแห่ง มีการจำกัดจำนวนอักขระที่ใช้ ไม่รับประกันความถูกต้องแม่นยำของผลลัพธ์
- ฟีเจอร์ Generative Edit สำหรับ Photo Assist ต้องอาศัยการเชื่อมต่อเครือข่ายและการเข้าสู่ระบบบัญชี Samsung Account การแต่งภาพด้วย Generative Edit อาจทำให้ได้รูปภาพที่ปรับขนาดได้สูงสุด 12MP ลายน้ำที่มองเห็นได้จะถูกซ้อนทับบนรูปภาพที่ได้ขณะบันทึกเพื่อระบุว่ารูปภาพสร้างขึ้นโดย AI ไม่อาจรับประกันความถูกต้องและความน่าเชื่อถือของเอาต์พุตที่สร้างขึ้น
- ฟีเจอร์ Portrait Studio สำหรับ Photo Assist ต้องอาศัยการเชื่อมต่อเครือข่ายและการเข้าสู่ระบบบัญชี Samsung Account การแต่งภาพด้วย Portrait Studio จะทำให้ได้รูปภาพที่ปรับขนาดได้สูงสุด 9MP ลายน้ำที่มองเห็นได้จะถูกซ้อนทับบนรูปภาพที่ได้ขณะบันทึกเพื่อระบุว่ารูปภาพนั้นถูกสร้างขึ้นโดย AI ไม่อาจรับประกันความถูกต้องและความน่าเชื่อถือของเอาต์พุตที่สร้างขึ้น
- ฟีเจอร์ Instant Slow-mo สำหรับ Photo Assist มีให้ใช้งานใน Samsung Video Player และ Samsung Gallery อาจใช้ไม่ได้กับไฟล์วิดีโอบางประเภท ไม่รับประกันความถูกต้องแม่นยำของผลลัพธ์
- ฟีเจอร์ Sketch to Image ต้องอาศัยการเชื่อมต่อเครือข่ายและการเข้าสู่ระบบบัญชี Samsung Account การแก้ไขด้วย Sketch to Image จะทำให้ได้รูปภาพที่ปรับขนาดได้สูงสุด 12MP ลายน้ำที่มองเห็นได้จะถูกซ้อนทับบนรูปภาพที่ได้ขณะบันทึกเพื่อระบุว่ารูปภาพนั้นถูกสร้างขึ้นโดย AI ไม่อาจรับประกันความถูกต้องและความน่าเชื่อถือของเอาต์พุตที่สร้างขึ้น
- ฟีเจอร์ Interpreter จำเป็นต้องใช้การเข้าสู่ระบบ Samsung Account อาจต้องมีการดาวน์โหลดภาษาเพิ่มเติมสำหรับบางภาษา ความพร้อมให้บริการอาจแตกต่างกันไปในแต่ละภาษา ไม่รับประกันความถูกต้องแม่นยำของผลลัพธ์ ความพร้อมให้บริการและฟีเจอร์ที่รองรับต่าง ๆ อาจแตกต่างกันไปในแต่ละประเทศ ภูมิภาค หรือผู้ให้บริการ ความพร้อมให้บริการของภาษาที่รองรับอาจแตกต่างกันไป
- หน้าจอคู่สามารถใช้งานได้ในโหมดบทสนทนาเท่านั้น
- ฟีเจอร์ Live Translate ต้องใช้การเชื่อมต่อเครือข่ายเพื่อรับข้อความการโทร สามารถแปลได้โดยไม่ต้องเชื่อมต่อเครือข่ายเมื่ออุปกรณ์ได้รับข้อความการโทรแล้ว จำเป็นต้องเข้าสู่ระบบ Samsung Account ฟีเจอร์ Live Translate มีให้บริการในแอปโทรศัพท์ Samsung ที่ติดตั้งไว้ล่วงหน้าและแอปบุคคลที่สามบางรายเท่านั้น ความพร้อมให้บริการอาจแตกต่างกันไปในแต่ละภาษาหรือภูมิภาค อาจจำเป็นต้องดาวน์โหลดชุดภาษาสำหรับบางภาษา ไม่รับประกันความถูกต้องแม่นยำของผลลัพธ์
- จำกัดเฉพาะสมาร์ทโฟน Samsung
- GalaxyZFold6 มีค่าความสว่างสูงสุดอยู่ที่ 2,600 nit ทั้งในหน้าจอหลักและหน้าจอฝาเครื่อง การแสดงผลสามารถปรับความสว่างได้ ซึ่งจะปรับระดับความสว่างให้โดยอัตโนมัติตามสภาพแวดล้อม ในบริเวณที่มีค่าความสว่าง 5,000 lux ขึ้นไป High Brightness Mode กับ Vision Booster จะถูกเปิดใช้งาน
- เมื่อเทียบกับ GalaxyZFold5
- ผลิตภัณฑ์แบรนด์ Snapdragon เป็นผลิตภัณฑ์ของ Qualcomm Technologies, Inc. และ/หรือบริษัทย่อย
- การปรับปรุงประสิทธิภาพของ AP ที่แสดงเมื่อเทียบกับ GalaxyZFold5 ประสิทธิภาพจริงจะขึ้นอยู่กับสภาพแวดล้อมของผู้ใช้, เงื่อนไขและซอฟต์แวร์และแอปพลิเคชันที่ติดตั้งไว้ล่วงหน้า
- จำกัดเฉพาะสมาร์ทโฟน Galaxy foldable
- อายุของแบตเตอรี่ตามจริงอาจแตกต่างกันไปตามสภาพแวดล้อมของเครือข่าย, คุณสมบัติ และแอปที่ใช้งาน, จำนวนครั้งที่โทรศัพท์กับส่งข้อความ, จำนวนครั้งที่แบตเตอรี่ผ่านการชาร์จและปัจจัยอื่น ๆ อีกมากมาย ประมาณค่าเทียบกับประวัติการใช้งานของผู้ใช้ทั่วไป และทำการประเมินอย่างอิสระโดย UX Connect Research ด้วยการตั้งค่าเริ่มต้นที่ใช้เครื่อข่าย LTE และ 5G Sub6
- ตามเงื่อนไขการทดสอบในห้องปฏิบัติการภายในของ Samsung กับเวอร์ชันก่อนเผยแพร่ของรุ่นที่กำหนด ซึ่งเชื่อมต่อกับหูฟังผ่าน Bluetooth ภายใต้การตั้งค่าเริ่มต้นบน LTE ประมาณความจุของแบตเตอรี่และกระแสที่วัดได้กับการใช้พลังงานแบตเตอรี่ระหว่างการเล่นวิดีโอ (ความละเอียดของไฟล์วิดีโอขนาด 720p และบันทึกบนอุปกรณ์) และการเล่นเสียง (ไฟล์ MP3 ความถี่ 192kbps ที่บันทึกบนอุปกรณ์ โดยที่จอ LCD ปิดอยู่) ตามลำดับ ระยะเวลาการเล่นวิดีโอและเสียงจริงจะแตกต่างกันไปตามการเชื่อมต่อเครือข่าย การตั้งค่า รูปแบบไฟล์ ความสว่างหน้าจอ สภาพแบตเตอรี่ และปัจจัยอื่น ๆ อีกมากมาย
- AI Zoom มีผลใช้กับการถ่ายในระยะต่าง ๆ ระหว่างความยาวของดิจิทัลซูม ทั้งนี้ ไม่รับประกันความถูกต้องแม่นยำของผลลัพธ์
- ฟีเจอร์ Zoom Map จะเปิดใช้งานเมื่อทำการซูมที่ 20 เท่าขึ้นไป
- การถ่ายโอนข้อมูลแบบใช้สายจากอุปกรณ์ Android™ ต้องใช้อุปกรณ์รับสัญญาณที่มีระบบปฏิบัติการ Android™ 4.3 หรือใหม่กว่า และอุปกรณ์ส่งข้อมูลต้องมีระบบปฏิบัติการ Android 4.3™ หรือใหม่กว่า การถ่ายโอนข้อมูลสามารถทำได้โดยไม่ต้องใช้สายเคเบิลโดยผ่านการเชื่อมต่อไร้สาย สำหรับการเชื่อมต่อไร้สาย อุปกรณ์รับต้องใช้ระบบปฏิบัติการ Android™ 4.0 หรือใหม่กว่า และอุปกรณ์ส่งต้องใช้ระบบปฏิบัติการ Android™ 4.0 หรือใหม่กว่า เปิดฟีเจอร์ Smart Switch Mobile ใน “การตั้งค่า” ของอุปกรณ์ Galaxy ที่รับข้อมูล หรือดาวน์โหลดแอป Smart Switch Mobile จาก Galaxy Store ข้อมูล เนื้อหา และแอปที่สามารถใช้ถ่ายโอนอาจแตกต่างกันไปตามวิธีการส่งข้อมูล
- การถ่ายโอนแบบมีสายจากระบบปฏิบัติการ 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 Store สำหรับการถ่ายโอนแบบไร้สาย ให้ดาวน์โหลด Smart Switch สำหรับ iOS จาก App Store ใน iPhone หรือ iPad ของคุณ ข้อมูล เนื้อหา และแอปที่มีสำหรับการถ่ายโอนอาจแตกต่างกันไปตามวิธีการส่งข้อมูล สามารถถ่ายโอนข้อมูลรายชื่อผู้ติดต่อ แกลเลอรี วิดีโอ ปฏิทิน และการแจ้งเตือนต่าง ๆ ได้แบบไร้สายจากอุปกรณ์ iOS
- แนะนำให้ใช้การเชื่อมต่อแบบมีสายสำหรับการส่งต่อข้อมูลหลายชุดในเวลาเดียวกัน
- ฟีเจอร์ Quick Share ระหว่างอุปกรณ์ Galaxy สามารถใช้งานได้กับระบบปฏิบัติการดังต่อไปนี้: สมาร์ทโฟนกับแท็บเล็ตที่ใช้ Android OS เวอร์ชัน 10.0 (Q) และ One UI 2.1 หรือเวอร์ชันใหม่กว่า, PC ที่ใช้ Windows 10 หรือเวอร์ชันใหม่กว่า จำเป็นต้องเชื่อมต่อกับ Samsung Account และ Wi-Fi และ Bluetooth สามารถทำการ Quick Share ไปยัง iOS และ Android ได้ด้วยการส่งลิงก์สำหรับแชร์: ไฟล์แต่ละไฟล์ที่แชร์ต้องมีขนาดไม่เกิน 5GB (รวมทั้งสิ้น 5GB ต่อวัน) และลิงก์จะหมดอายุหลังจากสองวัน จำเป็นต้องใช้ Samsung Account และการเชื่อมต่ออินเทอร์เน็ต
- เมื่อเทียบกับรุ่นก่อนหน้า
- เฟรม Armor Aluminum ไม่รวมถึงปุ่มปรับระดับเสียงและปุ่มด้านข้างหรือถาด SIM
- มีการใช้ Corning® Gorilla® Glass Victus® 2 กับด้านหน้าและด้านหลังของอุปกรณ์
- อิงตามสภาพแวดล้อมการทดสอบใต้น้ำจืดลึกสูงสุด 1.5 เมตรเป็นเวลา 30 นาทีในห้องปฏิบัติการ และสามารถกันวัตถุของแข็งที่มีขนาดใหญ่กว่า 1 มม. เช่นเส้นลวด ไม่แนะนำให้ใช้ในน้ำทะเลหรือน้ำในสระว่ายน้ำ การกันน้ำของอุปกรณ์ไม่ใช่คุณสมบัติถาวร และอาจเสื่อมสภาพได้ตามการใช้งาน ไม่สามารถกันฝุ่นหรือทรายได้
- ความคุ้มครอง ประเภทของบริการ และรายละเอียดโปรโมชั่นของ Samsung Care+ อาจแตกต่างกันไปในแต่ละประเทศ (ภูมิภาค) และอาจมีการคิดค่าความเสียหายส่วนแรก (ค่าธรรมเนียมบริการ) อาจจำเป็นต้องลงทะเบียนหากต้องการได้รับสิทธิประโยชน์โปรโมชั่นของ Samsung Care+ สามารถดูรายละเอียดเกี่ยวกับ Samsung Care+ ได้ที่ https://www.samsung.com/samsung-care-plus/
- อุปกรณ์ GalaxyBuds3Pro, Galaxy Watch Ultra และ Galaxy Watch7 มีจำหน่ายแยกต่างหาก
- ฟีเจอร์ Energy Score ใช้งานได้ในโทรศัพท์ Android (Android 11 หรือรุ่นใหม่กว่า) และต้องใช้แอป Samsung Health (v6.27 หรือรุ่นใหม่กว่า) โดยต้องลงชื่อเข้าใช้บัญชี Samsung Account ทั้งนี้ ความพร้อมให้บริการอาจแตกต่างกันไปตามประเทศหรือภูมิภาค หากต้องการตรวจดู Energy Score จะต้องซิงค์ข้อมูลสุขภาพที่ติดตามไว้ใน Samsung Galaxy Watch หรือ Samsung Galaxy Ring เข้ากับแอป Samsung Health จำเป็นต้องใช้ข้อมูลกิจกรรมกับการนอนหลับและอัตราการเต้นของหัวใจระหว่างการนอนหลับของวันก่อนหน้าเป็นอย่างน้อย ฟีเจอร์นี้ไม่มีวัตถุประสงค์เพื่อตรวจหา วินิจฉัย การรักษาอาการทางการแพทย์ใด ๆ ผลลัพธ์ที่ได้ใช้เพื่อเป็นข้อมูลอ้างอิงของคุณเองเท่านั้น โปรดปรึกษาบุคลากรทางการแพทย์เพื่อขอคำแนะนำ
- หน้าจอหลักของ GalaxyZFold6 มีขนาด 7.6 นิ้ว เมื่อวัดตามแนวทแยงแบบสุดมุมฉาก และมีขนาด 7.6 นิ้ว เมื่อวัดแบบสุดมุมโค้ง พื้นที่การรับชมจริงจะลดลงกว่านี้เนื่องจากมุมโค้ง
- หน้าจอฝาเครื่องของ GalaxyZFold6 มีขนาด 6.3 นิ้ว เมื่อวัดตามแนวทแยงแบบสุดมุมฉาก และมีขนาด 6.2 นิ้ว เมื่อวัดแบบสุดมุมโค้ง พื้นที่การรับชมจริงจะลดลงกว่านี้เนื่องจากมุมโค้งและรูกล้อง
- คุณลักษณะ Air Command อาจแตกต่างกันไปตามรุ่นหรือแอป
- ค่าปกติเป็นค่าที่ได้รับการทดสอบภายในห้องทดลองขององค์กรบุคคลที่สาม ค่าปกติคือค่าเฉลี่ยโดยประมาณที่พิจารณาถึงการเบี่ยงเบนของความจุแบตเตอรี่ของตัวอย่างแบตเตอรี่ที่นำมาทดสอบภายใต้มาตรฐาน IEC 61960 ความจุที่ประเมินของ GalaxyZFold6 คือ 4,273mAh อายุการใช้งานจริงของแบตเตอรี่อาจแตกต่างกันไปตามสภาพแวดล้อมของเครือข่าย รูปแบบการใช้งาน และปัจจัยอื่น ๆ
- ต้องดาวน์โหลด Expert RAW จาก Galaxy Store แยกต่างหากได้ฟรีก่อนที่จะทำการใช้งาน รองรับกับอุปกรณ์ซีรีส์ S24 และ S23, อุปกรณ์ซีรีส์ S22, S21 Ultra, S20 Ultra, Note20 Ultra, Z Fold6, Z Flip6, Z Fold5, Z Fold4, Z Fold3 และ Z Fold2
')); } } }; const isZoom = function () { let zoomLevel = 100 / ((window.innerWidth / window.outerWidth) * 100); if (zoomLevel > 1.7) { document.documentElement.classList.add('browser-zoomed-175'); } else { document.documentElement.classList.remove('browser-zoomed-175'); } if (zoomLevel > 3) { document.documentElement.classList.add('browser-zoomed-300'); } else { document.documentElement.classList.remove('browser-zoomed-300'); } if (zoomLevel > 4) { document.documentElement.classList.add('browser-zoomed-400'); } else { document.documentElement.classList.remove('browser-zoomed-400'); } }; const getViewerUrl = function () { let defaultParams = '', viewerSection = document.querySelector('.js-colors-viewer'), viewerButton = document.querySelector('.viewer-btn'), viewerModel = utils.isLowNetwork() ? viewerButton.getAttribute('data-model-name') : viewerSection.getAttribute('data-model-name'), viewerColor = utils.isLowNetwork() ? viewerButton.getAttribute('data-model-color') : viewerSection.getAttribute('data-model-color'), viewerUrl = '//www.samsung.com/global/galaxy/3d-360/viewer/?'; defaultParams = '&gesture_guide=0'; defaultParams += '&bgcolor=transparent'; defaultParams += '&skin=colorlayer'; defaultParams += '&theme=roundlayer'; defaultParams += '&auto_rotation=0'; defaultParams += '&intro=1'; defaultParams += '&ruler=1'; defaultParams += '&breakpoint_criteria=outer'; defaultParams += '&breakpoint_desktop_width=1024'; defaultParams += '&x=180'; defaultParams += '&status_toggle=1'; defaultParams += '&intro_pose=3'; defaultParams += '&intro_pose_once=1'; defaultParams += '&intro_pose_hold=1'; defaultParams += '&intro_pose_hold_limit=9999999'; defaultParams += '&controls=0'; defaultParams += '&use_zoom=0'; defaultParams += '&use_pan=0'; defaultParams += '&screen_mode=on'; // model_name viewerUrl += 'model_name=' + viewerModel; if (document.documentElement.classList.contains('color_yb') || (utils.getCookie('highContrastMode') != null && utils.getCookie('highContrastMode') == 1)) { viewerUrl += '&highcontrast=1'; } else { viewerUrl += '&highcontrast=0'; } // RTL utils.isRTL() && (viewerUrl += '&rtl=1'); viewerUrl += defaultParams; viewerUrl += '#color=' + (viewerColor ? viewerColor : 'null'); return viewerUrl; }; return { addLoadStatusClass: addLoadStatusClass, setResolution: setResolution, clickSup: clickSup, centeredFocus: centeredFocus, setArBanner: setArBanner, isZoom: isZoom, getViewerUrl: getViewerUrl, }})();flagship.features.setting = (function () { const resize = window.flagship.common.resize, common = window.flagship.features.common, utils = window.flagship.common.utils, agent = navigator.userAgent.toLowerCase(), maxOs = agent.indexOf('mac os') > -1, touchDevice = ('ontouchstart' in window || (window.DocumentTouch && document instanceof window.DocumentTouch)), isGlobal = document.documentElement.classList.contains('global'); let els = {}; const init = function () { common.addLoadStatusClass(); common.setArBanner(); setElements(); bindEvents(); setResize(); if (!maxOs && !touchDevice) { setScrollControl(); } setImageLoader(); setVideoLoader(); setMp4VideoLoader(); setCenteredfocus(); setDisclaimerNumber(); setDisclaimer(); setVideoTheme(); setVideoBlind(); common.isZoom(); resize.add(common.isZoom); }; const setElements = function () { // video els.videoWrap = document.querySelectorAll('.js-video-wrap'); }; const bindEvents = function () { window.addEventListener('load', anchorPosition); window.addEventListener('hashchange', anchorPosition); }; const anchorPosition = function () { if (window.location.hash != '') { let hash = location.hash.split('#')[1], hashSection = document.querySelector('#contents #' + hash), hashTimeout = null; clearTimeout(hashTimeout); hashTimeout = setTimeout(function () { let sectionTop = hashSection.getBoundingClientRect().top, navHeight = utils.getNavHeight(), hashScroll = window.pageYOffset + sectionTop - navHeight; window.scrollTo(0, hashScroll); }, 300); } }; const setResize = function () { resize.init([{ resolution: 1920, resolutionName: 'desktop', eventFunction: '' }, { resolution: 1023, resolutionName: 'tablet', eventFunction: '' }, { resolution: 767, resolutionName: 'mobile', eventFunction: '' }, { resolution: 320, resolutionName: 'mobileS', eventFunction: '' }], 200); resize.add(common.setResolution); }; const setScrollControl = function () { window.scrollController = utils.scrollController(); scrollController.init({ speed: 120, duration: 0.6 }); }; const setImageLoader = function () { window.imageLoader = utils.mediaLoader({ lazyClass: '.js-img-src', responsiveClass: '.js-res-img', preset: isGlobal ? '' : '?imbypass=true', loadOption: [{ resolution: 1920, attribute: 'data-src-pc' }, { resolution: 1023, attribute: 'data-src-tb' }, { resolution: 767, attribute: 'data-src-mo' }, { resolution: 360, attribute: 'data-src-mo-s' }], visiblePoint: 2 }); window.bgLoader = utils.mediaLoader({ type: 'bgImage', lazyClass: '.js-bg-img', loadOption: [{ resolution: 1920, attribute: '', bgOpts: '' }], visiblePoint: 2 }); }; const setVideoLoader = function () { window.videoLoader = utils.mediaLoader({ type: 'video', lazyClass: '.js-video-src', responsiveClass: '.js-res-video', preset: isGlobal ? '' : '?imbypass=true', loadOption: [{ resolution: 1920, attribute: 'data-video-src-pc' }, { resolution: 1023, attribute: 'data-video-src-tb' }, { resolution: 767, attribute: 'data-video-src-mo' }, { resolution: 360, attribute: 'data-video-src-mo-s' }], visiblePoint: 1, endCallback: function (video) { if (!!video.videoHandler && !video.videoHandler.wrap.classList.contains('is-loaded')) { video.videoHandler.wrap.classList.add('is-loaded'); } } }); }; const setMp4VideoLoader = function () { window.mp4VideoLoader = utils.mediaLoader({ type: 'mp4Video', lazyClass: '.js-mp4-video-src', responsiveClass: '.js-res-video', preset: isGlobal ? '' : '?imbypass=true', loadOption: [{ resolution: 1920, attribute: 'data-video-src-pc' }, { resolution: 1023, attribute: 'data-video-src-tb' }, { resolution: 767, attribute: 'data-video-src-mo' }, { resolution: 360, attribute: 'data-video-src-mo-s' }], visiblePoint: 1, endCallback: function (video) { if (!!video.videoHandler && !video.videoHandler.wrap.classList.contains('is-loaded')) { video.videoHandler.wrap.classList.add('is-loaded'); } } }); }; const setCenteredfocus = function () { els.contents = document.querySelector('#contents'); els.allClickables = els.contents.querySelectorAll('a, button, input, select'); for (let i = 0; i < els.allClickables.length; i++) { els.allClickables[i].addEventListener('focusin', common.centeredFocus); } }; const setDisclaimerNumber = function () { const supTag = document.querySelectorAll('.click_sup'), btmDicl = document.querySelectorAll('li.common-bottom-disclaimer__list-item'); let btmDiclArr = []; for (let i = 0; i < btmDicl.length; i++) { let dataSup = btmDicl[i].getAttribute('data-sup'); btmDiclArr.push(dataSup); } for (let j = 0; j < supTag.length; j++) { let dataSupTag = supTag[j].getAttribute('data-sup-tag'); let supChildCount = supTag[j].parentElement.childElementCount; if (btmDiclArr.indexOf(dataSupTag) > -1) { supTag[j].innerText = btmDiclArr.indexOf(dataSupTag) + 1; } else { if (supChildCount == 1) { supTag[j].parentElement.remove(); } else { let supParent = supTag[j].parentElement.childNodes; let supArr = []; for (let supIndex = 0; supIndex < supParent.length; supIndex++) { supArr.push(supParent[supIndex]); } let index = supArr.indexOf(supTag[j]); if (index != 0 && index % 2 == 0) { supParent[index].remove(); supParent[index - 1].remove(); } else { if (index != supArr.length) supParent[index + 1].remove(); supParent[index].remove(); } } } } }; const setDisclaimer = function () { els.supClicker = document.querySelectorAll('a.click_sup'); for (let i = 0; i < els.supClicker.length; i++) { els.supClicker[i].addEventListener('click', common.clickSup); } }; const setVideoTheme = function () { for (let i = 0; i < els.videoWrap.length; i++) { let colorType = els.videoWrap[i].getAttribute('data-theme-type'); if (colorType === 'white') { els.videoWrap[i].classList.add('common-video--white'); } else if (colorType === 'black') { els.videoWrap[i].classList.add('common-video--black'); } } }; const setVideoBlind = function () { for (let i = 0; i < els.videoWrap.length; i++) { let controlBlind = els.videoWrap[i].querySelector('.js-video-control .blind'); controlBlind.innerHTML = (typeof LOCAL_VARI != 'undefined' && !!LOCAL_VARI) ? LOCAL_VARI.play : 'play'; } }; return { init: init }})();flagship.features.setting.init();(function () { window.flagship.features.clickToVideo = (function () { const utils = window.flagship.common.utils; let els = { clickToVideosWrap: [], clickToVideo: [], }; const init = function () { els.clickToVideosWrap = document.querySelectorAll('.js-click-video'); if (els.clickToVideosWrap.length > 0) { setProperty(); bindEvents(); } }; const setProperty = function () { for (let i = 0; i < els.clickToVideosWrap.length; i++) { els.clickToVideosWrap[i].video = els.clickToVideosWrap[i].querySelector('video'); els.clickToVideosWrap[i].controller = els.clickToVideosWrap[i].querySelector('.js-video-control'); els.clickToVideosWrap[i].controller.video = els.clickToVideosWrap[i].video; } }; const bindEvents = function () { eventList.setVideo(); eventHandler.click(); }; const eventHandler = { click: function () { for (let i = 0; i < els.clickToVideosWrap.length; i++) { els.clickToVideosWrap[i].controller.addEventListener('click', eventList.clickVideoCta); } } }; const eventList = { setVideo: function () { for (let i = 0; i < els.clickToVideosWrap.length; i++) { els.clickToVideo[i] = utils.videoHandler({ wrap: els.clickToVideosWrap[i], video: els.clickToVideosWrap[i].video, controller: els.clickToVideosWrap[i].controller, resetCallback: function () { if (this.wrap.classList.contains('is-completed')) { this.wrap.classList.remove('is-completed'); } if (this.wrap.classList.contains('is-started')) { this.wrap.classList.remove('is-started'); } }, playCallback: function () { if (!this.wrap.classList.contains('is-started')) { this.wrap.classList.add('is-started'); } setTagging.pause(this.controller); }, pauseCallback: function () { setTagging.play(this.controller); }, endCallback: function () { if (!this.wrap.classList.contains('is-completed')) { this.wrap.classList.add('is-completed'); } } }); } }, clickVideoCta: function (e) { if (e.target == e.currentTarget) { if (e.currentTarget.video.paused) { e.currentTarget.video.play(); } else { e.currentTarget.video.pause(); } } } }; const setTagging = { play: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('pause', 'play')); } }, pause: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('play', 'pause')); } } }; return { init: init } })();})();(function () { window.flagship.features.headline = (function () { const utils = window.flagship.common.utils; let els = {}; const init = function () { setElements(); bindEvents(); }; const setElements = function() { els.moveText = document.querySelectorAll('.js-move-text'); }; const bindEvents = function () { eventList.setScene(); eventHandler.scroll(); eventList.scroll(); }; const eventHandler = { scroll: function () { window.addEventListener('scroll', eventList.scroll); } }; const eventList = { scroll: function () { for (let i = 0; i < els.moveText.length; i++) { els.moveText[i].sceneObj.trackAnimation(function () { if(this.progress >= 10) { els.moveText[i].classList.add('is-moved'); if (this.trackElement.classList.contains('common-description')) this.trackElement.style.transitionDelay = "0.2s"; } if(this.progress <= 0) { els.moveText[i].classList.remove('is-moved'); } }); } }, setScene: function () { for(let i = 0; i < els.moveText.length; i++) { els.moveText[i].sceneObj = SCROLLER({ trackElement: els.moveText[i], useFixed: false, }); } } }; return { init: init } })();})();(function () { window.flagship = window.flagship || {}; window.flagship.features = window.flagship.features || {}; window.flagship.features.oneColumnCarousel = (function () { const utils = window.flagship.common.utils; const resize = window.flagship.common.resize; let els = {}; let prevDevice; let currDevice = resize.checkResolution(); let dimmedClass = 'is-dimmed'; const isRtl = document.documentElement.classList.contains('rtl'); const init = function () { els.section = document.querySelectorAll('.js-one-column-carousel'); if (!!els.section) { setElements(); setProperty(); bindEvents(); } }; const setElements = function () { for (let i = 0; i < els.section.length; i++) { els.section[i].swiperContainer = els.section[i]; els.section[i].swiperSlides = els.section[i].swiperContainer.querySelectorAll('.swiper-slide'); els.section[i].prevArrow = els.section[i].parentElement.querySelector('.swiper-button-prev'); els.section[i].nextArrow = els.section[i].parentElement.querySelector('.swiper-button-next'); els.section[i].scrollbar = els.section[i].parentElement.querySelector('.swiper-scrollbar'); } }; const setProperty = function() { for (let i = 0; i < els.section.length; i++) { let isSlideLength = els.section[i].swiperSlides.length; for (let j = 0; j < isSlideLength; j++) { els.section[i].swiperSlides[j].video = els.section[i].swiperSlides[j].querySelector('.common-video__video'); } } } const bindEvents = function () { eventList.load(); resize.add(eventList.resize); }; const eventList = { load: function() { swiperEvents.set(); for (let i = 0; i < els.section.length; i++) { els.section[i].swiper.init(); if (els.section[i].swiperSlides.length >= 2) { els.section[i].swiper.init(); } } }, resize: function() { currDevice = resize.checkResolution(); if (prevDevice != currDevice) { eventList.responsive(); prevDevice = currDevice; }; }, responsive: function() { for (let i = 0; i < els.section.length; i++) { eventList.resetDimmedSlide(els.section[i].swiper); els.section[i].swiper.slideTo(0, false); if (eventList.getCarouselSizeInfo(els.section[i].swiper).viewLength > 0 && currDevice != 'mobile') eventList.initDimmedSlides(els.section[i].swiper); } }, setMedia: function(swiper, index) { let isIndex = index + 1 > swiper.slides.length -1 ? swiper.slides.length -1 : index + 1; let videoLength = swiper.el.querySelectorAll('video').length - 1; let imageLength = swiper.el.querySelectorAll('img').length - 1; let videoloadComplateLength = swiper.el.querySelectorAll('.is-video-load-complete').length - 1; let imageloadComplateLength = swiper.el.querySelectorAll('.is-img-load-complete').length - 1; let nextVideo = swiper.slides[isIndex].querySelector('video'); let nextImage = swiper.slides[isIndex].querySelector('img'); if (videoloadComplateLength != videoLength) { if (!!nextVideo) { videoLoader.setResponsiveMedia([nextVideo]); } } if (imageloadComplateLength != imageLength) { if (!!nextImage) { imageLoader.setResponsiveMedia([nextImage]); } } }, resetVideo: function(swiper) { for (let i = 0; i < swiper.slides.length; i++) { let isVideo = swiper.slides[i].video; if (!!isVideo && !isVideo.paused) { isVideo.pause(); isVideo.currentTime = 0; }; }; }, getCarouselSizeInfo: function(swiper) { let slideLength = swiper.slides.length; let slideWidth = swiper.slides[0].clientWidth; let slideMargin = parseInt(window.getComputedStyle(swiper.slides[0]).margin.split(' ')[isRtl ? 3 : 1]); let slideSize = slideWidth + slideMargin; let maxMoveSize = ((slideSize * slideLength) - slideMargin) - swiper.wrapperEl.clientWidth; let viewWidth = swiper.wrapperEl.clientWidth; let viewLength = parseInt((viewWidth + slideMargin)/slideSize); let lastBeforeSize = slideLength == 2 ? 0 : Math.abs((maxMoveSize - slideSize)) + Math.abs((viewWidth - slideWidth)); let isMoveSize = Math.abs(parseInt(window.getComputedStyle(swiper.wrapperEl).transform.split(',')[4])); return { slideWidth: slideWidth, slideMargin: slideMargin, slideSize: slideSize, maxMoveSize: maxMoveSize, viewWidth: viewWidth, viewLength: viewLength, lastBeforeSize: lastBeforeSize, isMoveSize: isMoveSize } }, initDimmedSlides: function(swiper) { for (let i = 0; i < swiper.slides.length; i++) { if ((swiper.activeIndex + eventList.getCarouselSizeInfo(swiper).viewLength) <= i) { swiper.slides[i].classList.add(dimmedClass); } } }, setDimmedSlide: function(swiper) { if (currDevice != 'mobile') { for (let i = 0; i < swiper.slides.length; i++) { let dimmedSlide = (swiper.activeIndex) > i || (swiper.activeIndex + (eventList.getCarouselSizeInfo(swiper).viewLength - 1)) < i; if (dimmedSlide) { swiper.slides[i].classList.add(dimmedClass); } else { swiper.slides[i].classList.remove(dimmedClass); } } } }, resetDimmedSlide: function(swiper) { for (let i = 0; i < swiper.slides.length; i++) { swiper.slides[i].classList.remove(dimmedClass); } }, } const swiperEvents = { set: function () { for (let i = 0; i < els.section.length; i++) { if (els.section[i].swiper == null) { new Swiper(els.section[i].swiperContainer, { init: false, slidesPerView: 'auto', navigation: { nextEl: els.section[i].nextArrow, prevEl: els.section[i].prevArrow, }, scrollbar: { el: els.section[i].scrollbar, draggable: true }, }); els.section[i].swiper.on('init', swiperEvents.init); els.section[i].swiper.on('slideChange', swiperEvents.slideChange); els.section[i].swiper.on('transitionEnd', swiperEvents.transitionEnd); } } }, init: function () { let isNextArrow = this.el.parentElement.querySelector('.swiper-button-next'); let isPrevArrow = this.el.parentElement.querySelector('.swiper-button-prev'); isNextArrow.removeAttribute('aria-label'); isNextArrow.removeAttribute('role'); isPrevArrow.removeAttribute('aria-label'); isPrevArrow.removeAttribute('role'); accessibility.slide(this); if (eventList.getCarouselSizeInfo(this).viewLength > 0 && currDevice != 'mobile') eventList.initDimmedSlides(this); }, slideChange: function () { accessibility.slide(this); eventList.resetVideo(this); if (eventList.getCarouselSizeInfo(this).viewLength > 0 && currDevice != 'mobile') eventList.setDimmedSlide(this); if (this.realIndex > 0) eventList.setMedia(this, this.realIndex); }, transitionEnd: function() { if (this.slides.length < 3 && currDevice == 'mobile') return; setTimeout(() => { let carouselInfo = eventList.getCarouselSizeInfo(this); let lastIndex = this.slides.length -1; let lastSlide = this.slides[lastIndex]; let lastBeforeSlide = this.slides[lastIndex - 1]; if (carouselInfo.isMoveSize > carouselInfo.lastBeforeSize || carouselInfo.maxMoveSize == carouselInfo.isMoveSize) { eventList.resetVideo(this); lastSlide.classList.add('is-last-slide'); lastBeforeSlide.classList.add('is-dimmed'); lastSlide.classList.remove('is-dimmed'); utils.offAccessibility(this.slides[lastIndex]); utils.onAccessibility(this.slides[lastIndex - 1]); } else if (lastSlide.classList.contains('is-last-slide') && carouselInfo.lastBeforeSize == carouselInfo.isMoveSize) { eventList.resetVideo(this); lastSlide.classList.add('is-dimmed'); lastSlide.classList.remove('is-last-slide'); lastBeforeSlide.classList.remove('is-dimmed'); utils.onAccessibility(this.slides[lastIndex]); utils.offAccessibility(this.slides[lastIndex - 1]); } }, 0); }, destroy: function (swiper) { if (swiper != null) { swiper.navigation.destroy(true); swiper.destroy(true); swiper = null; } }, }; const accessibility = { slide: function (swiper) { for (let i = 0; i < swiper.slides.length; i++) { if (i != swiper.activeIndex) { utils.onAccessibility(swiper.slides[i]); } else { utils.offAccessibility(swiper.slides[i]); } } } }; return { init: init, } })();})();(function () { window.flagship.features.scrollVideo = (function () { const utils = window.flagship.common.utils, resize = window.flagship.common.resize; let els = { scrollVideoWraps: [], scrollVideo: [], scene: [], }, currDevice = resize.checkResolution(); const init = function () { els.scrollVideoWraps = document.querySelectorAll('div:not(.js-interactive-intro-video)>.js-scroll-video'); if (els.scrollVideoWraps.length > 0) { setProperty(); eventList.setVideo(); eventList.setScene(); bindEvents(); } }; const setProperty = function () { for (let i = 0; i < els.scrollVideoWraps.length; i++) { els.scrollVideoWraps[i].video = els.scrollVideoWraps[i].querySelector('video'); els.scrollVideoWraps[i].controller = els.scrollVideoWraps[i].querySelector('.js-video-control'); els.scrollVideoWraps[i].controller.video = els.scrollVideoWraps[i].video; els.scrollVideoWraps[i].startPoint = !!els.scrollVideoWraps[i].getAttribute('data-start-point') ? parseInt(els.scrollVideoWraps[i].getAttribute('data-start-point')) : undefined; els.scrollVideoWraps[i].reversePoint = !!els.scrollVideoWraps[i].getAttribute('data-reverse-point') ? parseInt(els.scrollVideoWraps[i].getAttribute('data-reverse-point')) : undefined; els.scrollVideoWraps[i].moStartPoint = !!els.scrollVideoWraps[i].getAttribute('data-mo-start-point') ? parseInt(els.scrollVideoWraps[i].getAttribute('data-mo-start-point')) : undefined; els.scrollVideoWraps[i].moReversePoint = !!els.scrollVideoWraps[i].getAttribute('data-mo-reverse-point') ? parseInt(els.scrollVideoWraps[i].getAttribute('data-mo-reverse-point')) : undefined; } }; const bindEvents = function () { eventHandler.scroll(); eventList.scroll(); eventHandler.click(); resize.add(eventList.resize); }; const eventHandler = { scroll: function () { window.addEventListener('scroll', eventList.scroll); }, click: function () { for (let i = 0; i < els.scrollVideoWraps.length; i++) { els.scrollVideoWraps[i].controller.addEventListener('click', eventList.clickVideoCta); } } }; const eventList = { setVideo: function () { for (let i = 0; i < els.scrollVideoWraps.length; i++) { els.scrollVideo[i] = utils.videoHandler({ playType: 'scrollPlay', startPoint: (currDevice.indexOf('mobile') > -1) ? els.scrollVideoWraps[i].moStartPoint : els.scrollVideoWraps[i].startPoint, reversePoint: (currDevice.indexOf('mobile') > -1) ? els.scrollVideoWraps[i].moReversePoint : els.scrollVideoWraps[i].reversePoint, wrap: els.scrollVideoWraps[i], video: els.scrollVideoWraps[i].video, controller: els.scrollVideoWraps[i].controller, resetCallback: function () { if (this.wrap.classList.contains('is-completed')) { this.wrap.classList.remove('is-completed'); } if (this.wrap.classList.contains('is-started')) { this.wrap.classList.remove('is-started'); } if (!!this.video.videoWrap && this.video.videoWrap.classList.contains('js-interactive-intro-video')) { this.video.tooltip.classList.remove('is-visible'); } }, playCallback: function () { if (!this.wrap.classList.contains('is-started')) { this.wrap.classList.add('is-started'); } setTagging.pause(this.controller); }, pauseCallback: function () { setTagging.play(this.controller); }, endCallback: function () { if (!this.wrap.classList.contains('is-completed')) { this.wrap.classList.add('is-completed'); } } }); } }, setScene: function () { for (let i = 0; i < els.scrollVideoWraps.length; i++) { els.scene[i] = SCROLLER({ trackElement: els.scrollVideoWraps[i].video, useFixed: false, resize: utils.detector.isTouchDevice ? false : true }); } }, scroll: function () { for (let i = 0; i < els.scrollVideoWraps.length; i++) { els.scene[i].trackAnimation(function () { els.scrollVideo[i].scrollActive(this.progress); }); } }, resize: function (currRes) { currDevice = currRes; }, clickVideoCta: function (e) { if (e.target == e.currentTarget) { if (e.currentTarget.video.paused) { e.currentTarget.video.play(); } else { e.currentTarget.video.pause(); } } } }; const setTagging = { play: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('pause', 'play')); } }, pause: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('play', 'pause')); } } }; return { init: init } })();})();;(function () { window.flagship.features.threeColumnCarousel = (function () { const utils = window.flagship.common.utils, resize = window.flagship.common.resize; let els = {}, swiperObj, prevDevice = null, currDevice = resize.checkResolution(); dimmedClass = 'is-dimmed'; const isRtl = document.documentElement.classList.contains('rtl'); const init = function () { els.section = document.querySelectorAll('.js-three-column-carousel'); if (!!els.section) { setElements(); bindEvents(); } }; const setElements = function () { for (let i = 0; i < els.section.length; i++) { els.section[i].swiperContainer = els.section[i]; els.section[i].swiperSlide = els.section[i].querySelectorAll('.swiper-slide'); els.section[i].nextArrow = els.section[i].parentElement.querySelector('.swiper-button-next'); els.section[i].prevArrow = els.section[i].parentElement.querySelector('.swiper-button-prev'); els.section[i].scrollbar = els.section[i].parentElement.querySelector('.swiper-scrollbar'); }; }; const bindEvents = function () { eventList.load(); resize.add(eventList.resize); }; const eventHandler = { swiper: function() { for (let i = 0; i < els.section.length; i++) { els.section[i].swiper.on('init', swiperEvents.init); els.section[i].swiper.on('slideChange', swiperEvents.slideChange); els.section[i].swiper.on('transitionEnd', swiperEvents.transitionEnd); }; } }; const eventList = { load: function() { for (let i = 0; i < els.section.length; i++) { let desktopStatus = (currDevice == 'desktop' || currDevice == 'tablet') && els.section[i].swiperSlide.length > 3; let mobileStatus = (currDevice == 'mobile' || currDevice == 'mobileS') && els.section[i].swiperSlide.length > 1; if (desktopStatus || mobileStatus) { swiperEvents.set(); eventHandler.swiper(); els.section[i].swiper.init(); } } }, resize: function() { currDevice = resize.checkResolution(); if (prevDevice != currDevice) { eventList.responsive(); prevDevice = currDevice; }; }, responsive: function() { for (let i = 0; i < els.section.length; i++) { let isSection = els.section[i]; let desktopStatus = (currDevice == 'desktop' || currDevice == 'tablet') && isSection.swiperSlide.length > 3; let mobileStatus = currDevice == 'mobile' && isSection.swiperSlide.length > 1; eventList.resetDimmedSlide(isSection.swiper); accessibility.reset(isSection.swiper); if (desktopStatus || mobileStatus) { if (isSection.swiper.initialized) swiperEvents.destroy(isSection.swiper); swiperEvents.set(); eventHandler.swiper(); isSection.swiper.init(); if (desktopStatus) eventList.initDimmedSlides(isSection.swiper); if (mobileStatus) accessibility.slide(isSection.swiper); } else if ((!desktopStatus || !mobileStatus) && isSection.swiper != undefined) { if (isSection.swiper.initialized) swiperEvents.destroy(isSection.swiper); } }; }, getCarouselSizeInfo: function(swiperObj) { let slideLength = swiperObj.slides.length; let slideWidth = swiperObj.slides[0].clientWidth; let slideMargin = parseInt(window.getComputedStyle(swiperObj.slides[0]).margin.split(' ')[isRtl ? 3 : 1]); let slideSize = slideWidth + slideMargin; let maxMoveSize = ((slideSize * slideLength) - slideMargin) - swiperObj.wrapperEl.clientWidth; let viewWidth = swiperObj.wrapperEl.clientWidth; let viewLength = Math.round((viewWidth + slideMargin)/slideSize); let lastBeforeSize = slideLength == 3 ? 0 : (slideWidth + slideMargin) * ((slideLength - viewLength) - 1); let isMoveSize = Math.abs(parseInt(window.getComputedStyle(swiperObj.wrapperEl).transform.split(',')[4])); return { slideLength: slideLength, slideWidth: slideWidth, slideMargin: slideMargin, slideSize: slideSize, maxMoveSize: maxMoveSize, viewWidth: viewWidth, viewLength: viewLength, lastBeforeSize: lastBeforeSize, isMoveSize: isMoveSize } }, initDimmedSlides: function(swiperObj) { for (let i = 0; i < swiperObj.slides.length; i++) { let isSlide = swiperObj.slides[i]; if ((swiperObj.activeIndex + eventList.getCarouselSizeInfo(swiperObj).viewLength) <= i) { isSlide.classList.add(dimmedClass); utils.onAccessibility(isSlide) } } }, setDimmedSlide: function(swiperObj) { if (currDevice != 'mobile') { for (let i = 0; i < swiperObj.slides.length; i++) { let isSlide = swiperObj.slides[i]; let dimmedSlide = (swiperObj.activeIndex) > i || (swiperObj.activeIndex + (eventList.getCarouselSizeInfo(swiperObj).viewLength - 1)) < i; if (dimmedSlide) { isSlide.classList.add(dimmedClass); utils.onAccessibility(isSlide) } else { isSlide.classList.remove(dimmedClass); utils.offAccessibility(isSlide) } } } }, resetDimmedSlide: function(swiperObj) { if (!!!swiperObj) return; for (let i = 0; i < swiperObj.slides.length; i++) { swiperObj.slides[i].classList.remove(dimmedClass); } }, tagging: function () { const values = { 'data-omni-type': 'microsite_pcontentinter', 'data-omni': 'galaxy-z-fold6:highlights:indicator:sldr-dots:', 'ga-ca': 'indication', 'ga-ac': 'carousel', 'ga-la': 'galaxy-z-fold6:highlights:indicator:sldr-dots:', }; } }; const swiperEvents = { set: function () { for (let i = 0; i < els.section.length; i++) { if (els.section[i].swiper == null) { new Swiper(els.section[i].swiperContainer, { init: false, slidesPerView: 'auto', speed: 200, navigation: { nextEl: els.section[i].nextArrow, prevEl: els.section[i].prevArrow, }, scrollbar: { el: els.section[i].scrollbar, draggable: true } }); } } }, init: function () { let isNextArrow = this.el.parentElement.querySelector('.swiper-button-next'); let isPrevArrow = this.el.parentElement.querySelector('.swiper-button-prev'); isNextArrow.removeAttribute('aria-label'); isNextArrow.removeAttribute('role'); isPrevArrow.removeAttribute('aria-label'); isPrevArrow.removeAttribute('role'); eventList.tagging(); if (currDevice != 'mobile') { eventList.initDimmedSlides(this); } else { accessibility.slide(this); }; }, transitionEnd: function() { let carouselInfo = eventList.getCarouselSizeInfo(this); if (currDevice == 'mobile' || currDevice == 'tablet') return; if (carouselInfo.viewLength < 3) return; setTimeout(() => { let lastIndex = this.slides.length -1 ; let lastSlide = this.slides[lastIndex]; let lsatDimmedLength = (carouselInfo.slideLength - 1) - carouselInfo.viewLength; let lastBeforeSlide = this.slides[lsatDimmedLength]; if (carouselInfo.isMoveSize > carouselInfo.lastBeforeSize && carouselInfo.maxMoveSize >= carouselInfo.isMoveSize) { lastSlide.classList.add('is-last-slide'); lastBeforeSlide.classList.add('is-dimmed'); lastSlide.classList.remove('is-dimmed'); } else if (lastSlide.classList.contains('is-last-slide') && carouselInfo.lastBeforeSize == carouselInfo.isMoveSize) { lastSlide.classList.add('is-dimmed'); lastSlide.classList.remove('is-last-slide'); lastBeforeSlide.classList.remove('is-dimmed'); } }, 0); }, slideChange: function () { eventList.setDimmedSlide(this); if (currDevice == 'mobile') accessibility.slide(this); }, destroy: function (swiperObj) { swiperObj.navigation.destroy(true); swiperObj.destroy(true); swiperObj = null; }, }; const accessibility = { slide: function (swiper) { for (let i = 0; i < swiper.slides.length; i++) { if (i != swiper.activeIndex) { utils.onAccessibility(swiper.slides[i]); } else { utils.offAccessibility(swiper.slides[i]); } } }, reset: function(swiper) { for (let i = 0; i < swiper.slides.length; i++) { utils.offAccessibility(swiper.slides[i]); } } }; return { init: init } })();})();(function () { window.flagship.features.aiOverview = (function () { const utils = window.flagship.common.utils, resize = flagship.common.resize; let els = {}; let currDevice = resize.checkResolution(); let isLoaded = false; const init = function () { els.section = document.querySelector('.features-ai-overview'); if (!!els.section) { setElements(); bindEvents(); } }; const setElements = function () { // fixed els.fixedTrack = els.section.querySelector('.js-fixed-track'); els.fixedInner = els.section.querySelector('.js-fixed-inner'); // title els.overviewTextWrap = els.section.querySelector('.js-overview-text-wrap'); els.overviewTopText = els.section.querySelector('.js-overview-top-text'); els.overviewMiddleTextPc = els.section.querySelector('.js-overview-middle-text-pc'); els.overviewMiddleTextMo = els.section.querySelector('.js-overview-middle-text-mo'); els.overviewBottomTextPc = els.section.querySelector('.js-overview-bottom-text-pc'); els.overviewBottomTextMo = els.section.querySelector('.js-overview-bottom-text-mo'); // introLogoVideo els.introLogoWrap = els.section.querySelector('.js-intro-logo-wrap'); els.introLogoVideoWrap = els.section.querySelector('.js-intro-logo-video-wrap'); els.introLogoVideoWrap.video = els.introLogoVideoWrap.querySelector('video'); els.introLogoVideoWrap.coverImg = els.introLogoVideoWrap.querySelector('.js-intro-logo-cover-image'); // logoVideo els.logoWrap = els.section.querySelector('.js-logo-wrap'); els.logoVideoWrap = els.section.querySelector('.js-logo-video-wrap'); els.logoVideoWrap.video = els.logoVideoWrap.querySelector('video'); els.logoVideoWrap.coverImg = els.logoVideoWrap.querySelector('.js-logo-cover-image'); // dimmed els.dimmed = els.section.querySelector('.js-dimmed'); }; const bindEvents = function () { eventHandler.load(); resize.add(eventHandler.resize); }; const eventHandler = { load: function () { eventList.checkBrokenFixed(); if (document.documentElement.classList.contains('is-ai-broken-fixed') || document.documentElement.classList.contains('low_network')) { window.addEventListener('DOMContentLoaded', eventList.setStaticContents, {once:true}); } else { window.addEventListener('DOMContentLoaded', function () { eventList.setVideoHandler(); eventList.fixedScroller.set(); }, {once : true}); window.addEventListener('scroll', eventList.setScroll); eventList.setScroll(); } window.addEventListener('orientationchange', eventHandler.orientationchange); }, resize: function (currRes) { currDevice = currRes; eventList.setContents(); }, orientationchange: function () { setTimeout(function () { eventList.setContents(); }, 150); } }; const eventList = { mediaLoader: function () { let scrollTop = window.pageYOffset, kv = document.querySelector('.features-kv'), kvTop = scrollTop + kv.getBoundingClientRect().top; if ((scrollTop > kvTop) && !isLoaded) { if (!els.introLogoVideoWrap.coverImg.classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia([els.introLogoVideoWrap.coverImg]); } if (!els.introLogoVideoWrap.video.classList.contains('is-mp4video-load-complete')) { mp4VideoLoader.setResponsiveMedia([els.introLogoVideoWrap.video]); } if (!els.logoVideoWrap.coverImg.classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia([els.logoVideoWrap.coverImg]); } if (!els.logoVideoWrap.video.classList.contains('is-mp4video-load-complete')) { mp4VideoLoader.setResponsiveMedia([els.logoVideoWrap.video]); } isLoaded = true; } }, setVideoHandler: function () { utils.videoHandler({ wrap: els.introLogoVideoWrap, video: els.introLogoVideoWrap.video }); utils.videoHandler({ wrap: els.logoVideoWrap, video: els.logoVideoWrap.video }); }, fixedScroller: { set: function () { if (els.fixedTrack.scene == null) { els.fixedTrack.scene = SCROLLER({ trackElement: els.fixedTrack, fixedElement: els.fixedInner, useFixed: true, useFixedStlye: false, useStrictMode: false, trackHeight: 3, resize: (utils.detector.isTouchDevice) ? false : true }); } }, destroy: function () { if (els.fixedTrack.scene != null) { els.fixedTrack.scene.destroy(true, true); els.fixedTrack.scene = null; els.fixedTrack.style = ''; } }, play: function () { if (els.fixedTrack.scene != null) { els.fixedTrack.scene.trackAnimation(function () { let progress = this.progress; let isMobile = currDevice.indexOf('mobile') > -1; introLogoHideValue = utils.calRange({ targetValue: 1, progress: progress, startPoint: 45, endPoint: 55 }), introLogoScaleValue = utils.calRange({ targetValue: 0.5, progress: progress, startPoint: 45, endPoint: 55 }), textWrapShowValue = utils.calRange({ targetValue: 1, progress: progress, startPoint: 53, endPoint: 58 }), topMiddleTextShowValue = utils.calRange({ targetValue: 1, progress: progress, startPoint: 48, endPoint: 55 }), logoShowValue = utils.calRange({ targetValue: 1, progress: progress, startPoint: 50, endPoint: 56 }), bottomTextShowValue = utils.calRange({ targetValue: 1, progress: progress, startPoint: 60, endPoint: 65 }), bottomTextTopValue = utils.calRange({ targetValue: 50, progress: progress, startPoint: 62, endPoint: 70 }); // introLogoVideo if (progress < -36) { if (!els.introLogoVideoWrap.video.paused) { if (els.introLogoWrap.classList.contains('is-visible')) { els.introLogoWrap.classList.remove('is-visible'); } els.introLogoVideoWrap.video.pause(); els.introLogoVideoWrap.video.currentTime = 0; } } if (progress > -20) { if (els.introLogoVideoWrap.video.paused) { if (!els.introLogoWrap.classList.contains('is-visible')) { els.introLogoWrap.classList.add('is-visible'); } els.introLogoVideoWrap.video.play(); } } if (progress >= 0 && progress <= 100) { if (progress > 40) { TweenMax.to(els.introLogoWrap, 0.5, { opacity: 1 - introLogoHideValue, scale: 1 - introLogoScaleValue, ease: 'cubic-bezier(0, 0.25, 0, 1.06)' }); } else { els.introLogoWrap.style.opacity = 1; } // text TweenMax.to(els.overviewTextWrap, 0.1, { opacity: textWrapShowValue }); TweenMax.to(els.overviewTopText, 0.1, { opacity: topMiddleTextShowValue }); if (isMobile) { TweenMax.to(els.overviewMiddleTextMo, 0.1, { opacity: topMiddleTextShowValue }); } else { TweenMax.to(els.overviewMiddleTextPc, 0.1, { opacity: topMiddleTextShowValue }); } TweenMax.to(els.logoWrap, 0.1, { opacity: logoShowValue }); if (progress > 55) { if (els.logoVideoWrap.video.paused) { if (!els.logoWrap.classList.contains('is-visible')) { els.logoWrap.classList.add('is-visible'); } els.logoVideoWrap.video.play(); } } else { if (!els.logoVideoWrap.video.paused) { if (els.logoWrap.classList.contains('is-visible')) { els.logoWrap.classList.remove('is-visible'); } els.logoVideoWrap.video.pause(); els.logoVideoWrap.video.currentTime = 0; } } // dimmed if (progress > 55) { if (!els.dimmed.classList.contains('is-active')) { els.dimmed.classList.add('is-active') } } else { if (els.dimmed.classList.contains('is-active')) { els.dimmed.classList.remove('is-active') } } if (isMobile) { TweenMax.to(els.overviewBottomTextMo, 0.3, { opacity: bottomTextShowValue, y: 50 - bottomTextTopValue + '%', ease: 'cubic-bezier(0, 0.25, 0, 1.06)' }); } else { TweenMax.to(els.overviewBottomTextPc, 0.3, { opacity: bottomTextShowValue, y: 50 - bottomTextTopValue + '%', ease: 'cubic-bezier(0, 0.25, 0, 1.06)' }); } } }); } }, }, checkBrokenFixed: function () { let winWidth = window.innerWidth, winHeight = window.innerHeight; document.documentElement.classList.remove('is-ai-broken-fixed'); if (winWidth > 1440 && winHeight <= 720) { document.documentElement.classList.add('is-ai-broken-fixed'); } else if (winWidth <= 1440 && (winHeight / winWidth) < 0.5277) { document.documentElement.classList.add('is-ai-broken-fixed'); } else { document.documentElement.classList.remove('is-ai-broken-fixed'); } }, setStaticContents: function () { els.section.classList.add('none-fixed'); }, setFixedContents: function () { if (els.section.classList.contains('none-fixed')) { els.section.classList.remove('none-fixed'); } window.addEventListener('scroll', eventList.setScroll); eventList.setVideoHandler(); eventList.fixedScroller.set(); }, setContents: function () { eventList.checkBrokenFixed(); if (document.documentElement.classList.contains('is-ai-broken-fixed') || document.documentElement.classList.contains('low_network')) { eventList.fixedScroller.destroy(); eventList.setStaticContents(); window.removeEventListener('scroll', eventList.setScroll); } else { eventList.setFixedContents(); } }, setScroll: function () { eventList.mediaLoader(); eventList.fixedScroller.play(); }, }; return { init: init } })();})();;(function () { window.flagship.features.cameraSpec = (function () { const utils = window.flagship.common.utils, resize = window.flagship.common.resize; let els = {}, prevDevice = null, currDevice = resize.checkResolution(); const init = function () { els.section = document.querySelector('.features-camera-spec'); if (!!els.section) { setElements(); bindEvents(); } }; const setElements = function () { els.listInner = els.section.querySelectorAll('.js-camera-spec-inner'); }; const bindEvents = function () { resize.add(eventList.resize); eventList.load(); eventList.showCollout(); eventHandler.scroll(); }; const eventHandler = { scroll: function() { window.addEventListener('scroll', eventList.showCollout); } } const eventList = { load: function() { eventList.setSecene(); }, resize: function (currRes) { currDevice = currRes; if (currDevice != prevDevice) { prevDevice = currDevice; } }, setSecene: function () { for (let i = 0; i < els.listInner.length; i++) { SCROLLER({ trackElement: els.listInner[i], useFixed: false }); } }, showCollout: function() { for (let i = 0; i < els.listInner.length; i++) { els.listInner[i].scroller.trackAnimation(function() { if (this.progress > 0) { this.trackElement.classList.add('is-active'); } if (i == 0) { if (this.progress <= 0) { for (let j = 0; j < els.listInner.length; j++) { els.listInner[j].classList.remove('is-active'); } } } }); } } }; return { init: init } })();})();(function () { window.flagship.features.colorchip = function (colorchipWrap) { const utils = window.flagship.common.utils, common = window.flagship.features.common, resize = window.flagship.common.resize; let els = {}, activeClass = 'is-active', currentDevice = resize.checkResolution(), prevDevice = null, currentSlidesPerView = currentDevice.indexOf('mobile') > -1 ? 5 : 7; const init = function () { els.section = document.querySelector('.js-colors'); els.popup = document.querySelector('.js-viewer'); if (colorchipWrap.type == 'popup') { colorchipWrap.contentWrap = els.popup; } else { colorchipWrap.contentWrap = els.section; } setElements(); setProperty(); bindEvents(); }; const setElements = function () { // panel els.panelWrap = els.section.querySelector('.js-panel-wrap'); els.panelItems = els.panelWrap.querySelectorAll('.js-panel-item'); // colorchip els.swiperContainer = colorchipWrap.querySelector('.js-colorchip-container'); els.colorchipButtons = colorchipWrap.querySelectorAll('.js-colorchip-button'); els.swiperArrowWrap = colorchipWrap.querySelector('.js-arrow-wrap'); els.swiperNextArrow = colorchipWrap.querySelector('.js-colorchip-next'); els.swiperPrevArrow = colorchipWrap.querySelector('.js-colorchip-prev'); els.colorchipNames = colorchipWrap.querySelectorAll('.js-colorchip-name'); // 360 Popup Btn els.viewerBtn = els.section.querySelector('.viewer-btn'); // viewer els.viewerSection = els.section.querySelector('.js-colors-viewer'); els.viewerIframe = colorchipWrap.contentWrap.querySelector('iframe'); // exclusive badge els.exclusive = colorchipWrap.contentWrap.querySelector('.js-exclusive-badge'); }; const setProperty = function () { for (let i = 0; i < els.colorchipButtons.length; i++) { els.colorchipButtons[i].index = i; } }; const bindEvents = function () { eventList.checkColorchipSwiper(); if (colorchipWrap.type != 'popup') eventList.setColors(0); eventHandler.click(); eventHandler.keydown(); resize.add(eventList.resize); eventHandler.scroll(); }; const eventHandler = { click: function () { for (let i = 0; i < els.colorchipButtons.length; i++) { els.colorchipButtons[i].addEventListener('click', eventList.clickColorchip); } els.viewerBtn.addEventListener('click', function () { let activeIndex = this.getAttribute('data-target-index'); eventList.setColorchip(activeIndex); eventList.setColorName(activeIndex); eventList.setExclusive(activeIndex); }); els.swiperNextArrow.addEventListener('click', accessibility.clickArrow); els.swiperPrevArrow.addEventListener('click', accessibility.clickArrow); }, keydown: function () { els.swiperNextArrow.addEventListener('keydown', accessibility.clickArrow); els.swiperPrevArrow.addEventListener('keydown', accessibility.clickArrow); }, scroll: function () { window.addEventListener('scroll', eventList.scroll); } }; const eventList = { scroll: function () { let winOffsetBottom = window.pageYOffset + window.innerHeight, kv = document.querySelector('.features-kv'), kvHeight = kv.getBoundingClientRect().height + utils.getNavHeight(); if (winOffsetBottom >= kvHeight) { // bg load colorchipWrap.bgImgs = colorchipWrap.querySelectorAll('.js-bg-img'); if(!!colorchipWrap.bgImgs) bgLoader.setResponsiveMedia(colorchipWrap.bgImgs); eventList.setViewer(); window.removeEventListener('scroll', eventList.scroll); } }, setViewer: function () { if (!utils.isLowNetwork()) { setTimeout(function () { els.viewerIframe.style.position = 'fixed'; els.viewerIframe.style.top = 0; els.viewerIframe.style.opacity = 0; setTimeout(function () { els.viewerIframe.style.position = ''; els.viewerIframe.style.top = ''; els.viewerIframe.style.opacity = ''; }, 300); }, 1000); // set eventList.setViewerUrl(els.colorchipButtons[0].getAttribute('data-colors')); } }, checkColorchipSwiper: function () { let colorchipSwiperLength = currentDevice.indexOf('mobile') > -1 ? 6 : 8; if (els.colorchipButtons.length >= colorchipSwiperLength) { if (els.swiperArrowWrap.style.display == 'none') { els.swiperArrowWrap.style.display = ''; } swiperEvents.set(); } else { if (els.swiperArrowWrap.style.display != 'none') { els.swiperArrowWrap.style.display = 'none'; } if (els.colorchipSwiper != null) { swiperEvents.destroy(); } } }, setColors: function (activeIndex) { eventList.setPopupBtn(els.colorchipButtons[activeIndex]); eventList.setColorchip(activeIndex); eventList.setPanel(activeIndex); eventList.setColorName(activeIndex); eventList.setExclusive(activeIndex); }, resize: function (currRes) { currentDevice = currRes; if (currentDevice !== prevDevice) { eventList.checkColorchipSwiper(); currentSlidesPerView = currentDevice.indexOf('mobile') > -1 ? 5 : 7; prevDevice = currentDevice; } }, clickColorchip: function () { let targetColor = this; eventList.setColors(targetColor.index); eventList.setViewerUrl(targetColor.getAttribute('data-colors')); }, setColorchip: function (activeIndex) { let targetcolorchipButton = els.colorchipButtons[activeIndex]; for (let i = 0; i < els.colorchipButtons.length; i++) { els.colorchipButtons[i].classList.remove(activeClass); if (!!colorchipWrap.isStatic) { els.colorchipButtons[i].setAttribute('aria-selected', false); } else { els.colorchipButtons[i].removeAttribute('title'); } } if (!targetcolorchipButton.classList.contains(activeClass)) { targetcolorchipButton.classList.add(activeClass); if (!!colorchipWrap.isStatic) { targetcolorchipButton.setAttribute('aria-selected', true); } else { accessibility.selected(targetcolorchipButton); } } }, setPanel: function (activeIndex) { if (!colorchipWrap.isStatic) return; for (let i = 0; i < els.panelItems.length; i++) { if (els.panelItems[i].classList.contains(activeClass)) { els.panelItems[i].classList.remove(activeClass); els.panelItems[i].setAttribute('aria-hidden', true); } } if (!els.panelItems[activeIndex].classList.contains(activeClass)) { els.panelItems[activeIndex].classList.add(activeClass); els.panelItems[activeIndex].setAttribute('aria-hidden', false); } }, setColorName: function (activeIndex) { for (let i = 0; i < els.colorchipNames.length; i++) { if (els.colorchipNames[i].classList.contains(activeClass)) { els.colorchipNames[i].classList.remove(activeClass); els.colorchipNames[i].setAttribute('aria-hidden', true); } } if (!els.colorchipNames[activeIndex].classList.contains(activeClass)) { els.colorchipNames[activeIndex].classList.add(activeClass); els.colorchipNames[activeIndex].setAttribute('aria-hidden', false); } }, setViewerUrl: function (colorName) { if (!!colorchipWrap.isStatic) return; if (colorchipWrap.type == 'popup') { let viewerSrc = els.viewerIframe.getAttribute('src').split('#color=')[0]; els.viewerIframe.setAttribute('src', `${viewerSrc}#color=${colorName}`); } else { els.viewerSection.setAttribute('data-model-color', colorName); els.viewerIframe.setAttribute('src', common.getViewerUrl()); } }, setPopupBtn: function (target) { if (colorchipWrap.type == 'popup') return; els.viewerBtn.setAttribute('data-target-index', target.index); els.viewerBtn.setAttribute('data-model-color', target.getAttribute('aria-controls')); }, setExclusive: function (activeIndex) { if (!!els.colorchipButtons[activeIndex].getAttribute('data-exclusive')) { els.exclusive.classList.add('is-active'); } else { els.exclusive.classList.remove('is-active'); } } }; const swiperEvents = { set: function () { if (els.colorchipSwiper == null) { els.colorchipSwiper = new Swiper(els.swiperContainer, { init: false, navigation: { nextEl: els.swiperNextArrow, prevEl: els.swiperPrevArrow, }, slidesPerView: currentSlidesPerView, speed: 300, }); els.colorchipSwiper.on('init', swiperEvents.init); els.colorchipSwiper.on('slideChange', swiperEvents.slideChange); els.colorchipSwiper.init(); } }, init: function () { let notification = this.el.querySelector('.swiper-notification'); if (!!notification) this.el.removeChild(notification); els.swiperPrevArrow.removeAttribute('aria-label'); els.swiperPrevArrow.removeAttribute('role'); els.swiperNextArrow.removeAttribute('aria-label'); els.swiperNextArrow.removeAttribute('role'); accessibility.colorchip(els.colorchipSwiper); }, slideChange: function () { accessibility.colorchip(els.colorchipSwiper); }, destroy: function () { els.colorchipSwiper.destroy(true); els.colorchipSwiper = null; }, }; const accessibility = { clickArrow: function (e) { let arrowTimeout = null, arrowStyleTimeout = null; if ((e.type == 'keydown' && e.keyCode == 13) || e.type == 'click') { e.preventDefault(); if (els.colorchipSwiper.isBeginning && !els.colorchipSwiper.isEnd) { els.swiperPrevArrow.style.setProperty('display', 'block'); clearTimeout(arrowTimeout); arrowTimeout = setTimeout(function () { els.swiperNextArrow.focus(); }, 300); clearTimeout(arrowStyleTimeout); arrowStyleTimeout = setTimeout(function () { els.swiperPrevArrow.style.display = ''; }, 400); } else if (!els.colorchipSwiper.isBeginning && els.colorchipSwiper.isEnd) { els.swiperNextArrow.style.setProperty('display', 'block'); clearTimeout(arrowTimeout); arrowTimeout = setTimeout(function () { els.swiperPrevArrow.focus(); }, 300); clearTimeout(arrowStyleTimeout); arrowStyleTimeout = setTimeout(function () { els.swiperNextArrow.style.display = ''; }, 400); } } }, colorchip: function (swiperObj) { let isNotActivedColorchips = null; for (let i = 0; i < swiperObj.slides.length; i++) { if (currentDevice.indexOf('mobile') > -1) { isNotActivedColorchips = (i != swiperObj.activeIndex) && (i > swiperObj.activeIndex + 4) || (swiperObj.activeIndex > i); } else { isNotActivedColorchips = (i != swiperObj.activeIndex) && (i > swiperObj.activeIndex + 6) || (swiperObj.activeIndex > i); } if (isNotActivedColorchips) { utils.onAccessibility(swiperObj.slides[i]); setTimeout(function () { utils.onAccessibility(swiperObj.slides[i]); }, 300); } else { utils.offAccessibility(swiperObj.slides[i]); setTimeout(function () { utils.offAccessibility(swiperObj.slides[i]); }, 300); } } }, selected: function (target) { if (typeof LOCAL_VARI != 'undefined' && !!LOCAL_VARI) { target.setAttribute('title', LOCAL_VARI.selected); } else { target.setAttribute('title', 'Selected'); } } }; return init(colorchipWrap); }; let colorchips = document.querySelectorAll('.js-colorchip'); for (let i = 0; i < colorchips.length; i++) { colorchips[i].type = colorchips[i].parentElement.classList.contains('js-popup-colorchip') ? 'popup' : 'colors'; colorchips[i].isStatic = colorchips[i].parentElement.getAttribute('data-static'); flagship.features.colorchip(colorchips[i]); }})();;(function () { window.flagship.features.faq = (function () { const resize = window.flagship.common.resize, utils = window.flagship.common.utils; let els = {}, prevDevice = null, currDevice = resize.checkResolution(); const init = function () { els.section = document.querySelector('.js-faq'); if (!!els.section) { setElements(); bindEvents(); } }; const setElements = function () { els.faqList = els.section.querySelector('.js-faq-list'); }; const bindEvents = function () { resize.add(eventList.resize); eventList.setAccordion(); }; const eventList = { resize: function (currRes) { currDevice = currRes; if (currDevice != prevDevice) { eventList.responsive(); prevDevice = currDevice; } }, responsive: function () { let isOpenedItems = els.faqList.querySelectorAll('.js-faq-item.is-open'); if (isOpenedItems.length > 0) { for (let i = 0; i < isOpenedItems.length; i++) { let isOpenedItemContent = isOpenedItems[i].querySelector('.js-faq-answer'); let clientHeight = isOpenedItemContent.children[0].clientHeight; isOpenedItemContent.style.height = `${clientHeight}px`; } } }, setAccordion: function () { els.accordion = new window.flagship.common.accordion({ wrap: els.faqList, classList: { item: 'js-faq-item', button: 'js-faq-open', contents: 'js-faq-answer', activeClass: 'is-open' }, open: { start: function (target) { let targetInnerCta = target.querySelector('.js-featue-cta'); if (targetInnerCta) targetInnerCta.addEventListener('click', accessibility.moveFocus); } } }); els.accordion.init(); }, }; const accessibility = { moveFocus: function (e) { if (this.getAttribute('href').indexOf('#') > -1) { e.preventDefault(); let sectionId = this.getAttribute('href'), section = document.querySelector(`${sectionId}`), sectionTop = section.getBoundingClientRect().top, movePosition = (sectionTop + window.pageYOffset) - utils.getNavHeight(), clickable = section.querySelectorAll('a, button'), title = section.querySelector('h2') || section.querySelector('h3'); if (!!title) { let _focusOut = function () { title.removeAttribute('tabindex'); title.removeEventListener('focusout', _focusOut); }; title.addEventListener('focusout', _focusOut); title.setAttribute('tabindex', 0); title.focus(); } else { clickable[0].focus(); } window.scrollTo(0, movePosition); } } }; return { init: init } })();})();(function () { window.flagship.features.formfactor = (function () { const utils = window.flagship.common.utils, resize = flagship.common.resize; let els = {}; let currDevice = resize.checkResolution(); let isAos = utils.detector.isTouchDevice && document.documentElement.classList.contains('android'); let sizeCount = { num: 6.1 }; let weightCount = { num: 253 }; const init = function () { els.section = document.querySelector('.js-form-factor'); if (!!els.section) { setElements(); bindEvents(); } }; const setElements = function () { // fixed els.fixedVideoTrack = els.section.querySelector('.js-fixed-track'); els.fixedVideoInner = els.section.querySelector('.js-fixed-inner'); els.fixedVideoWrap = els.section.querySelector('.js-fixed-scroll-video .js-video-wrap'); els.fixedVideo = els.section.querySelector('.js-fixed-scroll-video video'); // title els.titleWrap1 = els.section.querySelector('.js-title-1'); els.titleWrap2 = els.section.querySelector('.js-title-2'); els.titleWrap3 = els.section.querySelector('.js-title-3'); els.titleWrap1.text = els.titleWrap1.querySelector('.js-title-text-1'); els.titleWrap2.text = els.titleWrap2.querySelector('.js-title-text-2'); els.titleWrap3.text = els.titleWrap3.querySelector('.features-form-factor__title'); els.titleWrap1.infoWrap = els.titleWrap1.querySelector('.js-info-wrap-1'); els.titleWrap2.infoWrap = els.titleWrap2.querySelector('.js-info-wrap-2'); els.titleWrap1.infoWrap.value = els.titleWrap1.infoWrap.querySelector('.js-value-1'); els.titleWrap2.infoWrap.value = els.titleWrap2.infoWrap.querySelector('.js-value-2'); }; const bindEvents = function () { eventHandler.load(); resize.add(eventHandler.resize); }; const eventHandler = { load: function () { eventList.checkBrokenFixed(); if (document.documentElement.classList.contains('is-formfactor-broken-fixed') || document.documentElement.classList.contains('low_network')) { window.addEventListener('DOMContentLoaded', eventList.setStaticContents, {once: true}); } else { if (isAos) { window.addEventListener('DOMContentLoaded', function () { eventList.fixedScroller.set(); eventList.sequencePlayer.set(); }, {once: true}); window.addEventListener('scroll', eventList.sequencePlayer.play); } else { window.addEventListener('DOMContentLoaded', eventList.setVideoHandler, {once: true}); els.fixedVideo.addEventListener('canplaythrough', function () { window.addEventListener('scroll', eventList.fixedScroller.play); eventList.fixedScroller.set(); }, {once: true}); } } window.addEventListener('orientationchange', eventHandler.orientationchange); }, resize: function () { eventList.setContents(); }, orientationchange: function () { setTimeout(function () { eventList.setContents(); }, 150); } }; const eventList = { setVideoHandler: function () { utils.videoHandler({ wrap: els.fixedVideoWrap, video: els.fixedVideo }); }, fixedScroller: { set: function () { if (els.fixedVideoTrack.scene == null) { els.fixedVideoTrack.scene = SCROLLER({ trackElement: els.fixedVideoTrack, fixedElement: els.fixedVideoInner, useFixed: true, useFixedStyle: false, trackHeight: isAos ? 5 : 7, resize: (utils.detector.isTouchDevice) ? false : true }); } }, destroy: function () { if (els.fixedVideoTrack.scene != null) { els.fixedVideoTrack.scene.destroy(true, true); els.fixedVideoTrack.scene = null; els.fixedVideoTrack.style = ''; } }, play: function () { if (els.fixedVideoTrack.scene != null) { els.fixedVideoTrack.scene.trackAnimation(eventList.fixedScrollMotion); } } }, sequencePlayer: { set: function () { let imageName = null; if (currDevice.indexOf('desktop') > -1) { imageName = 'galaxy-z-fold6-features-form-factor-'; } else if (currDevice.indexOf('mobile') > -1) { imageName = 'galaxy-z-fold6-features-form-factor-mo-'; } else { imageName = 'galaxy-z-fold6-features-form-factor-tb-'; } els.fixedVideoTrack.seqSence = SEQUENCEPLAYER({ targetElement: els.fixedVideoWrap, startNum: 0, endNum: (currDevice.indexOf('mobile') > -1) ? 123 : 147, path: typeof SEQUENCE_IMG_PATH == 'undefined' ? './images/seq/' : SEQUENCE_IMG_PATH, name: imageName, extension: 'jpg', addType: 'append' }); }, destroy: function () { if (els.fixedVideoTrack.seqSence != null) { els.fixedVideoWrap.removeChild(els.fixedVideoWrap.querySelector('canvas')); els.fixedVideoTrack.seqSence = null; } }, play: function () { if (els.fixedVideoTrack.scene != null) { els.fixedVideoTrack.scene.trackAnimation(eventList.fixedScrollMotion); } } }, fixedScrollMotion: function () { let progress = this.progress; let isMobile = currDevice.indexOf('mobile') > -1; if (els.fixedVideoTrack.seqSence != null) { let motionValue = utils.calRange({ targetValue: (currDevice.indexOf('mobile') > -1) ? 123 : 147, progress: progress, }); els.fixedVideoTrack.seqSence.play({ index: parseInt(motionValue) }); } else { if (els.fixedVideo.readyState >= 4) { let scrollTimeValue = utils.calRange({ targetValue: els.fixedVideo.duration, progress: progress, }); els.fixedVideo.currentTime = scrollTimeValue - 0.1; } } if (isMobile) { // title1 let titleOpacityValue1 = utils.calRange({ targetValue: 1, progress: progress, startPoint: 30, endPoint: 35 }), numOpacityValue1 = utils.calRange({ targetValue: 1, progress: progress, startPoint: 28, endPoint: 33 }), titleWrapShowTopValue1 = utils.calRange({ targetValue: 70, progress: progress, startPoint: 33, endPoint: 44 }), titleHideValue1 = utils.calRange({ targetValue: 1, progress: progress, startPoint: 55, endPoint: 60 }), numHideValue1 = utils.calRange({ targetValue: 1, progress: progress, startPoint: 55, endPoint: 60 }), titleWrapHideTopValue1 = utils.calRange({ targetValue: 50, progress: progress, startPoint: 57, endPoint: 60 }); TweenMax.to(els.titleWrap1.infoWrap, 0.1, { opacity: numOpacityValue1 - 0.01 }); TweenMax.to(els.titleWrap1.text, 0.1, { opacity: titleOpacityValue1 - 0.01 }); TweenMax.to(els.titleWrap1, 0.1, { y: 50 - titleWrapShowTopValue1 + '%' }); if (titleOpacityValue1 == 1) { els.titleWrap1.text.classList.add('is-text-visible'); els.titleWrap1.infoWrap.classList.add('is-text-visible'); } if (this.wheelDirection == 'down') { if (progress >= 28) { TweenMax.to(weightCount, 0.6, { num: 239, onUpdate: function () { els.titleWrap1.infoWrap.value.innerText = Math.floor(weightCount.num); } }); } } else { if (progress == 0) { TweenMax.to(els.titleWrap1.infoWrap.value, 0.5, { onUpdate: function () { els.titleWrap1.infoWrap.value.innerText = '253'; els.titleWrap2.infoWrap.value.innerText = 6.1; weightCount.num = 253; } }); } } if (progress > 55) { TweenMax.to(els.titleWrap1.infoWrap, 0.1, { opacity: 1 - numHideValue1 }); TweenMax.to(els.titleWrap1.text, 0.1, { opacity: 1 - titleHideValue1 }); if (titleHideValue1 == 1) { els.titleWrap1.text.classList.remove('is-text-visible'); els.titleWrap1.infoWrap.classList.remove('is-text-visible'); } } if (progress >= 57) { TweenMax.to(els.titleWrap1, 0.1, { y: -(titleWrapShowTopValue1 + titleWrapHideTopValue1) + '%' }); } // title2 let titleOpacityValue2 = utils.calRange({ targetValue: 1, progress: progress, startPoint: 58, endPoint: 67 }), numOpacityValue2 = utils.calRange({ targetValue: 1, progress: progress, startPoint: 56, endPoint: 65 }), titleWrapShowTopValue2 = utils.calRange({ targetValue: 50, progress: progress, startPoint: 56, endPoint: 67 }), titleHideValue2 = utils.calRange({ targetValue: 1, progress: progress, startPoint: 87, endPoint: 90 }), numHideValue2 = utils.calRange({ targetValue: 1, progress: progress, startPoint: 87, endPoint: 90 }), titleHideScaleValue2 = utils.calRange({ targetValue: 0.1, progress: progress, startPoint: 87, endPoint: 90 }); TweenMax.to(els.titleWrap2.infoWrap, 0.1, { opacity: numOpacityValue2 - 0.01 }); TweenMax.to(els.titleWrap2.text, 0.1, { opacity: titleOpacityValue2 - 0.01 }); TweenMax.to(els.titleWrap2, 0.1, { y: 50 - titleWrapShowTopValue2 + '%', }); if (titleOpacityValue2 == 1) { els.titleWrap2.text.classList.add('is-text-visible'); els.titleWrap2.infoWrap.classList.add('is-text-visible'); } if (this.wheelDirection == 'down') { if (progress >= 56) { TweenMax.to(sizeCount, 0.6, { num: 5.6, onUpdate: function () { els.titleWrap2.infoWrap.value.innerText = sizeCount.num.toFixed(1); } }); } } else { if (progress < 65) { TweenMax.to(els.titleWrap2.infoWrap.value, 0.5, { onUpdate: function () { sizeCount.num = 6.1; } }); } } if (progress > 86) { TweenMax.to(els.titleWrap2.infoWrap, 0.1, { opacity: 1 - numHideValue2 }); TweenMax.to(els.titleWrap2.text, 0.1, { opacity: 1 - titleHideValue2 }); if (titleHideValue2 == 1) { els.titleWrap2.text.classList.remove('is-text-visible'); els.titleWrap2.infoWrap.classList.remove('is-text-visible'); } } TweenMax.to(els.titleWrap2, 0.1, { scale: 1 - titleHideScaleValue2, }); // title3 let titleOpacityValue3 = utils.calRange({ targetValue: 1, progress: progress, startPoint: 90, endPoint: 93 }), titleScaleValue3 = utils.calRange({ targetValue: 0.9, progress: progress, startPoint: 90, endPoint: 100 }); TweenMax.to(els.titleWrap3, 0.1, { opacity: titleOpacityValue3, }); TweenMax.to(els.titleWrap3, 0.1, { scale: 1.9 - titleScaleValue3 }); if (titleOpacityValue3 == 1) { els.titleWrap3.text.classList.add('is-text-visible'); } else { els.titleWrap3.text.classList.remove('is-text-visible'); } } else { // title1 let titleOpacityValue1 = utils.calRange({ targetValue: 1, progress: progress, startPoint: 40, endPoint: 44 }), numOpacityValue1 = utils.calRange({ targetValue: 1, progress: progress, startPoint: 38, endPoint: 42 }), titleHideValue1 = utils.calRange({ targetValue: 1, progress: progress, startPoint: 52, endPoint: 57 }), numHideValue1 = utils.calRange({ targetValue: 1, progress: progress, startPoint: 52, endPoint: 57 }), infoLeftValue = utils.calRange({ targetValue: 35, progress: progress, startPoint: 28, endPoint: 44 }); hideTopValue1 = utils.calRange({ targetValue: 85, progress: progress, startPoint: 52, endPoint: 57 }); TweenMax.to(els.titleWrap1.text, 0, { x: -35 + infoLeftValue + '%' }); TweenMax.to(els.titleWrap1.infoWrap, 0, { x: 35 - infoLeftValue + '%' }); TweenMax.to(els.titleWrap1.infoWrap, 0.1, { opacity: numOpacityValue1 }); TweenMax.to(els.titleWrap1.text, 0.1, { opacity: titleOpacityValue1 }); if (titleOpacityValue1 >= 0.1) { if (!els.titleWrap1.text.classList.contains('is-text-visible')) { els.titleWrap1.text.classList.add('is-text-visible'); } } if (numOpacityValue1 >= 0.1) { if (!els.titleWrap1.infoWrap.classList.contains('is-text-visible')) { els.titleWrap1.infoWrap.classList.add('is-text-visible'); } } if (this.wheelDirection == 'down') { if (progress >= 42) { TweenMax.to(weightCount, 0.5, { num: 239, onUpdate: function () { els.titleWrap1.infoWrap.value.innerText = Math.floor(weightCount.num); } }); } } else { if (progress == 0) { TweenMax.to(els.titleWrap1.infoWrap.value, 0.5, { onUpdate: function () { els.titleWrap1.infoWrap.value.innerText = '253'; els.titleWrap2.infoWrap.value.innerText = 6.1; weightCount.num = 253; } }); } } TweenMax.to(els.titleWrap1.text, 0, { y: -hideTopValue1 + '%' }); TweenMax.to(els.titleWrap1.infoWrap, 0, { y: hideTopValue1 + '%' }); if (progress > 57) { TweenMax.to(els.titleWrap1.infoWrap, 0.1, { opacity: 1 - numHideValue1 }); TweenMax.to(els.titleWrap1.text, 0.1, { opacity: 1 - titleHideValue1 }); if (titleHideValue1 == 1) { els.titleWrap1.text.classList.remove('is-text-visible'); els.titleWrap1.infoWrap.classList.remove('is-text-visible'); } } // title2 let titleOpacityValue2 = utils.calRange({ targetValue: 1, progress: progress, startPoint: 64, endPoint: 73 }), numOpacityValue2 = utils.calRange({ targetValue: 1, progress: progress, startPoint: 62, endPoint: 71 }), titleHideValue2 = utils.calRange({ targetValue: 1, progress: progress, startPoint: 82, endPoint: 86 }), numHideValue2 = utils.calRange({ targetValue: 1, progress: progress, startPoint: 82, endPoint: 86 }), titleTopValue2 = utils.calRange({ targetValue: 50, progress: progress, startPoint: 62, endPoint: 71 }), titleScaleValue2 = utils.calRange({ targetValue: 0.3, progress: progress, startPoint: 84, endPoint: 86 }); TweenMax.to(els.titleWrap2.infoWrap, 0.1, { opacity: numOpacityValue2 }); TweenMax.to(els.titleWrap2.text, 0.1, { opacity: titleOpacityValue2 }); if (titleOpacityValue2 >= 0.1) { if (!els.titleWrap2.text.classList.contains('is-text-visible')) { els.titleWrap2.text.classList.add('is-text-visible'); } if (!els.titleWrap2.infoWrap.classList.contains('is-text-visible')) { els.titleWrap2.infoWrap.classList.add('is-text-visible'); } } TweenMax.to(els.titleWrap2, 0, { y: -titleTopValue2 + '%' }); if (this.wheelDirection == 'down') { if (progress >= 65) { TweenMax.to(sizeCount, 0.5, { num: 5.6, onUpdate: function () { els.titleWrap2.infoWrap.value.innerText = sizeCount.num.toFixed(1); } }); } } else { if (progress < 42) { TweenMax.to(els.titleWrap2.infoWrap.value, 0.1, { onUpdate: function () { sizeCount.num = 6.1; } }); } } if (progress > 82) { TweenMax.to(els.titleWrap2.infoWrap, 0.1, { opacity: 1 - numHideValue2 }); TweenMax.to(els.titleWrap2.text, 0.1, { opacity: 1 - titleHideValue2 }); TweenMax.to(els.titleWrap2, 0.1, { scale: 1 - titleScaleValue2 }); if (titleHideValue2 == 1) { els.titleWrap2.text.classList.remove('is-text-visible'); els.titleWrap2.infoWrap.classList.remove('is-text-visible'); } } // title3 let titleOpacityValue3 = utils.calRange({ targetValue: 1, progress: progress, startPoint: 85, endPoint: 92 }), titleScaleValue3 = utils.calRange({ targetValue: 0.8, progress: progress, startPoint: 85, endPoint: 92 }); TweenMax.to(els.titleWrap3, 0.1, { opacity: titleOpacityValue3 }); TweenMax.to(els.titleWrap3, 0.1, { scale: 1.8 - titleScaleValue3 }); if (titleOpacityValue3 == 1) { els.titleWrap3.text.classList.add('is-text-visible'); } else { els.titleWrap3.text.classList.remove('is-text-visible'); } } }, checkBrokenFixed: function () { let winWidth = window.innerWidth, winHeight = window.innerHeight; document.documentElement.classList.remove('is-formfactor-broken-fixed'); if (winWidth > 1440 && winHeight <= 720) { document.documentElement.classList.add('is-formfactor-broken-fixed'); } else if (winWidth <= 1440 && (winHeight / winWidth) < 0.5277) { document.documentElement.classList.add('is-formfactor-broken-fixed'); } else { document.documentElement.classList.remove('is-formfactor-broken-fixed'); } }, setStaticContents: function () { if (!els.section.classList.contains('none-fixed')) { els.section.classList.add('none-fixed'); } }, setFixedContents: function () { if (els.section.classList.contains('none-fixed')) { els.section.classList.remove('none-fixed'); } if (isAos) { window.addEventListener('DOMContentLoaded', function () { eventList.fixedScroller.set(); eventList.sequencePlayer.set(); }, {once: true}); window.addEventListener('scroll', eventList.sequencePlayer.play); } else { eventList.setVideoHandler(); eventList.fixedScroller.set(); eventList.fixedScroller.play(); window.addEventListener('scroll', eventList.fixedScroller.play); } }, setContents: function () { eventList.checkBrokenFixed(); if (document.documentElement.classList.contains('is-formfactor-broken-fixed') || document.documentElement.classList.contains('low_network')) { eventList.fixedScroller.destroy(); if (isAos) { eventList.sequencePlayer.destroy(); window.removeEventListener('scroll', eventList.sequencePlayer.play); } else { window.removeEventListener('scroll', eventList.fixedScroller.play); } eventList.setStaticContents(); } else { eventList.setFixedContents(); } }, }; return { init: init } })();})();(function () { window.flagship = window.flagship || {}; window.flagship.features = window.flagship.features || {}; window.flagship.features.highlightsZone = (function () { const utils = window.flagship.common.utils; const resize = window.flagship.common.resize; let els = {}; let prevDevice; let swiperObj = {}; let pointerOffset = {}; let currDevice = resize.checkResolution(); let dimmedClass = 'is-dimmed'; let ctaPlayStatus = true; let scrollProgress = null; let lowNetwork = document.documentElement.classList.contains('low_network'); let isBgLoaded = false; const init = function () { els.section = document.querySelector('.features-highlights'); if (!!els.section) { setElements(); setProperty(); bindEvents(); } }; const setElements = function () { els.mainContainer = els.section.querySelector('.js-highlights-main-container'); els.mainSwiperSlides = els.mainContainer.querySelectorAll('.swiper-slide'); els.videoWrap = els.mainContainer.querySelectorAll('.js-video-wrap'); els.prevArrow = els.mainContainer.parentElement.querySelector('.swiper-button-prev'); els.nextArrow = els.mainContainer.parentElement.querySelector('.swiper-button-next'); els.scrollbar = els.section.querySelector('.js-highlights-scrollbar'); els.bgContainer = els.section.querySelector('.js-highlights-bg-container'); els.bgSwiperSlides = els.bgContainer.querySelectorAll('.swiper-slide'); }; const setProperty = function () { els.mainContainer.autoPlay = true; els.videoWrap = els.mainContainer.querySelectorAll('.js-video-wrap'); for (let i = 0; i < els.videoWrap.length; i++) { els.videoWrap[i].video = els.videoWrap[i].querySelector('.common-video__video'); els.videoWrap[i].image = els.mainContainer.querySelector('img'); els.videoWrap[i].controller = els.videoWrap[i].querySelector('.js-video-control'); els.videoWrap[i].controller.video = els.videoWrap[i].video; els.videoWrap[i].progressBar = els.videoWrap[i].querySelector('.common-video__control-progress-bar'); els.bgSwiperSlides[i].image = els.bgSwiperSlides[i].querySelector('img'); } }; const bindEvents = function () { eventList.load(); eventHandler.click(); eventHandler.scroll(); eventHandler.flickSwiper(); resize.add(eventList.resize); }; const eventHandler = { flickSwiper: function () { els.mainContainer.addEventListener('touchstart', function (e) { pointerOffset.start = null; pointerOffset.current = null; pointerOffset.start = e.touches[0].clientX; els.mainContainer.addEventListener('touchmove', eventList.getPointerMoveSize); }); els.mainContainer.addEventListener('touchend', function () { if (pointerOffset.start == null) return; els.mainContainer.autoPlay = false; els.mainContainer.removeEventListener('touchmove', eventList.getPointerMoveSize); }); els.mainContainer.addEventListener('mousedown', function (e) { pointerOffset.start = null; pointerOffset.current = null; pointerOffset.start = e.offsetX; els.mainContainer.addEventListener('mousemove', eventList.getPointerMoveSize); }); els.mainContainer.addEventListener('mouseup', function () { els.mainContainer.autoPlay = false; els.mainContainer.removeEventListener('mousemove', eventList.getPointerMoveSize); }); els.mainContainer.addEventListener('mouseleave', function () { if (pointerOffset.start == null) return; pointerOffset.start = null; pointerOffset.current = null; els.mainContainer.removeEventListener('mousemove', eventList.getPointerMoveSize); }); }, click: function () { for (let i = 0; i < els.videoWrap.length; i++) { els.videoWrap[i].controller.addEventListener('click', eventList.clickVideoCta); } for (let i = 0; i < els.videoWrap.length; i++) { els.videoWrap[i].controller.addEventListener('click', eventList.stopAutoPlay); } els.nextArrow.addEventListener('click', function (e) { eventList.stopAutoPlay(e) eventList.swiperArrow(e); }); els.prevArrow.addEventListener('click', function (e) { eventList.stopAutoPlay(e) eventList.swiperArrow(e); }); els.scrollbar.addEventListener('click', eventList.stopAutoPlay); }, scroll: function () { window.addEventListener('scroll', eventList.scroll) } } const eventList = { load: function () { swiperEvents.set(); swiperObj.main.init(); swiperObj.bg.init(); eventList.setVideo(); eventList.setScene(); eventList.scroll(); }, resize: function () { currDevice = resize.checkResolution(); if (prevDevice != currDevice) { eventList.responsive(); prevDevice = currDevice; }; }, responsive: function () { let desktopStatus = eventList.getCarouselSizeInfo(swiperObj.main).viewLength > 0 && currDevice == 'desktop'; eventList.resetDimmedSlide(swiperObj.main); swiperObj.main.slideTo(0, false); if (desktopStatus) eventList.initDimmedSlides(swiperObj.main); }, setVideo: function () { for (let i = 0; i < els.videoWrap.length; i++) { utils.videoHandler({ playType: 'scrollPlay', startPoint: currDevice != 'mobile' ? 40 : 24, reversePoint: currDevice != 'mobile' ? 88 : 80, wrap: els.videoWrap[i], video: els.videoWrap[i].video, controller: els.videoWrap[i].controller, resetCallback: function () { if (this.wrap.classList.contains('is-completed')) { this.wrap.classList.remove('is-completed'); } if (this.wrap.classList.contains('is-started')) { this.wrap.classList.remove('is-started'); } }, playCallback: function () { if (!this.wrap.classList.contains('is-started')) { this.wrap.classList.add('is-started'); } setTagging.pause(this.controller); eventList.setProgerssDuration(i); }, pauseCallback: function () { setTagging.play(this.controller); }, endCallback: function () { if (!this.wrap.classList.contains('is-completed')) { this.wrap.classList.add('is-completed'); } if (els.mainContainer.autoPlay) { if (scrollProgress > 40 && scrollProgress < 55) { clearTimeout(swiperObj.main.videoTiming); swiperObj.main.videoTiming = setTimeout(() => { swiperObj.main.slideNext(); }, 1000); } } } }); } }, playVideo: function (video) { if (video.readyState >= 1) { video.play(); } else { video.addEventListener('canplay', function () { this.play(); }, { once: true }) } }, clickVideoCta: function (e) { if (e.target == e.currentTarget) { if (e.currentTarget.video.paused) { eventList.playVideo(e.currentTarget.video); ctaPlayStatus = true; } else { e.currentTarget.video.pause(); ctaPlayStatus = false; } } }, stopAutoPlay: function (e) { if (e.target.classList.contains('js-video-control') || e.target.classList.contains('swiper-button-next') || e.target.classList.contains('swiper-button-prev') || e.target.classList.contains('js-highlights-scrollbar') ) { els.mainContainer.autoPlay = false; }; }, swiperArrowVisiblirity: function () { let mainSlidesLength = els.mainSwiperSlides.length - 1; let mainSwiper = swiperObj.main; let prevArrow = mainSwiper.previousIndex > mainSwiper.realIndex; let nextArrow = mainSwiper.previousIndex < mainSwiper.realIndex; if (prevArrow) { if (mainSwiper.realIndex == (mainSlidesLength - 1)) { if (els.nextArrow.style.display == 'none') els.nextArrow.style.display = ''; } else if (mainSwiper.realIndex == 0) { els.prevArrow.style.display = 'none'; } }; if (nextArrow) { if (mainSwiper.realIndex == 1) { if (els.prevArrow.style.display == 'none') els.prevArrow.style.display = ''; } else if (mainSwiper.realIndex == mainSlidesLength) { els.nextArrow.style.display = 'none'; } }; }, swiperArrow: function (e) { let mainSwiper = swiperObj.main; let mainSlidesLength = els.mainSwiperSlides.length - 1; let prevArrow = e.target.classList.contains('swiper-button-prev'); let nextArrow = e.target.classList.contains('swiper-button-next'); if (prevArrow) { clearTimeout(swiperObj.main.videoTiming); mainSwiper.slidePrev(); if (mainSwiper.realIndex == 0) { setTimeout(() => { els.nextArrow.blur(); els.nextArrow.focus(); }, 300); } }; if (nextArrow) { clearTimeout(swiperObj.main.videoTiming); mainSwiper.slideNext(); if (mainSwiper.realIndex == mainSlidesLength) { setTimeout(() => { els.prevArrow.blur(); els.prevArrow.focus(); }, 300); } }; }, scroll: function () { els.section.scene.trackAnimation(function () { let isIndex = swiperObj.main.realIndex; let isMainVideoHandler = els.videoWrap[isIndex].video.videoHandler; scrollProgress = this.progress; if (!lowNetwork && ctaPlayStatus) isMainVideoHandler.scrollActive(this.progress); if (scrollProgress > 0 && !isBgLoaded) { for (let i = 0; i < els.bgSwiperSlides.length; i++) { if (!els.bgSwiperSlides[i].image.classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia([els.bgSwiperSlides[i].image]); } } isBgLoaded = true; } }); }, slideVideoPlay: function () { let isIndex = swiperObj.main.realIndex; let isVideoWrap = els.videoWrap[isIndex]; isVideoWrap.classList.add('is-ended'); setTimeout(function () { isVideoWrap.classList.remove('is-started', 'is-paused'); if (!ctaPlayStatus) isVideoWrap.video.paused(); isVideoWrap.video.currentTime = 0; if (ctaPlayStatus) { eventList.playVideo(isVideoWrap.video); setTimeout(function () { if (els.mainContainer.autoPlay) isVideoWrap.video.videoHandler.controller.blur(); if (els.mainContainer.autoPlay) isVideoWrap.video.videoHandler.controller.focus(); if (isIndex == (swiperObj.main.slides.length - 1)) { els.mainContainer.autoPlay = false; } }, 300); } }, 50); }, setProgerssDuration: function (index) { let isDuration = els.videoWrap[index].video.duration; if (!!!els.videoWrap[index].durationSet) { els.videoWrap[index].progressBar.style.animationDuration = `${isDuration}s`; els.videoWrap[index].durationSet = true; } }, setMedia: function (index) { let videoLength = els.mainSwiperSlides.length - 1; let isIndex = index + 1 let loadIndex = isIndex < videoLength ? isIndex : videoLength; let mainVideoloadComplateLength = els.mainContainer.querySelectorAll('.is-video-load-complete').length - 1; for (let i = 0; i <= loadIndex; i++) { if (mainVideoloadComplateLength != videoLength && !els.videoWrap[i].video.classList.contains('.is-video-load-complete')) { if (!!els.videoWrap[i].video) videoLoader.setResponsiveMedia([els.videoWrap[i].video]); if (!!els.videoWrap[i].image) imageLoader.setResponsiveMedia([els.videoWrap[i].image]); if (!!els.bgSwiperSlides[i].image) imageLoader.setResponsiveMedia([els.bgSwiperSlides[i].image]); } } }, pauseVideo: function (swiper) { for (let i = 0; i < swiper.slides.length; i++) { let isVideo = swiper.slides[i].querySelector('video'); if (!!isVideo && !isVideo.paused) { isVideo.pause(); }; }; }, getCarouselSizeInfo: function (swiper) { let slideLength = swiper.slides.length; let slideWidth = swiper.slides[0].clientWidth; let slideMargin = parseInt(window.getComputedStyle(swiper.slides[0]).margin.split(' ')[1]); let slideSize = slideWidth + slideMargin; let maxMoveSize = ((slideSize * slideLength) - slideMargin) - swiper.wrapperEl.clientWidth; let viewWidth = swiper.wrapperEl.clientWidth; let viewLength = parseInt((viewWidth + slideMargin) / slideSize); let lastBeforeSize = slideLength == 2 ? 0 : Math.abs((maxMoveSize - slideSize)) + Math.abs((viewWidth - slideWidth)); let isMoveSize = Math.abs(parseInt(window.getComputedStyle(swiper.wrapperEl).transform.split(',')[4])); return { slideWidth: slideWidth, slideMargin: slideMargin, slideSize: slideSize, maxMoveSize: maxMoveSize, viewWidth: viewWidth, viewLength: viewLength, lastBeforeSize: lastBeforeSize, isMoveSize: isMoveSize } }, setScene: function () { els.section.scene = SCROLLER({ trackElement: els.section, useFixed: false }); }, initDimmedSlides: function (swiper) { for (let i = 0; i < swiper.slides.length; i++) { if ((swiper.activeIndex + eventList.getCarouselSizeInfo(swiper).viewLength) <= i) { swiper.slides[i].classList.add(dimmedClass); } } }, setDimmedSlide: function (swiper) { if (currDevice != 'mobile') { for (let i = 0; i < swiper.slides.length; i++) { let dimmedSlide = (swiper.activeIndex) > i || (swiper.activeIndex + (eventList.getCarouselSizeInfo(swiper).viewLength - 1)) < i; if (dimmedSlide) { swiper.slides[i].classList.add(dimmedClass); } else { swiper.slides[i].classList.remove(dimmedClass); } } } }, resetDimmedSlide: function (swiper) { for (let i = 0; i < swiper.slides.length; i++) { swiper.slides[i].classList.remove(dimmedClass); } }, getPointerMoveSize: function (e) { if (!!e.touches) { pointerOffset.current = e.touches[0].clientX; } else { pointerOffset.current = e.offsetX; } } } const swiperEvents = { set: function () { if (swiperObj.main == null) { swiperObj.main = new Swiper(els.mainContainer, { init: false, slidesPerView: 'auto', scrollbar: { el: els.scrollbar, draggable: true }, }); swiperObj.main.on('init', swiperEvents.init); swiperObj.main.on('slideChange', swiperEvents.slideChange); swiperObj.main.on('transitionEnd', swiperEvents.transitionEnd); } if (swiperObj.bg == null) { swiperObj.bg = new Swiper(els.bgContainer, { init: false, slidesPerView: 'auto', allowTouchMove: false }); } els.prevArrow.style.display = 'none'; }, init: function () { let isNextArrow = this.el.parentElement.querySelector('.swiper-button-next'); let isPrevArrow = this.el.parentElement.querySelector('.swiper-button-prev'); isNextArrow.removeAttribute('aria-label'); isNextArrow.removeAttribute('role'); isPrevArrow.removeAttribute('aria-label'); isPrevArrow.removeAttribute('role'); accessibility.slide(this); if (eventList.getCarouselSizeInfo(this).viewLength > 0 && currDevice == 'desktop') eventList.initDimmedSlides(this); }, slideChange: function () { swiperObj.bg.slideTo(this.realIndex); accessibility.slide(this); eventList.pauseVideo(this); if (eventList.getCarouselSizeInfo(this).viewLength > 0 && currDevice == 'desktop') eventList.setDimmedSlide(this); if (this.realIndex > 0) eventList.setMedia(this.realIndex); if (!lowNetwork) eventList.slideVideoPlay(); eventList.swiperArrowVisiblirity(); let nextIndex = (this.realIndex < this.slides.length - 1) ? (this.realIndex + 1) : 0; let nextCoverImg = this.slides[nextIndex].querySelector('.common-video__cover-image'); if (imageLoader && !nextCoverImg.classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia([nextCoverImg]); } }, transitionEnd: function () { setTimeout(() => { let carouselInfo = eventList.getCarouselSizeInfo(this); let lastIndex = this.slides.length - 1; let lastSlide = this.slides[lastIndex]; let lastBeforeSlide = this.slides[lastIndex - 1]; let isIndex = swiperObj.main.previousIndex; let isMoveSize = currDevice != 'mobile' ? carouselInfo.isMoveSize : carouselInfo.isMoveSize + Math.abs(carouselInfo.slideMargin); els.videoWrap[isIndex].video.pause(); if (carouselInfo.maxMoveSize == isMoveSize) { lastSlide.classList.add('is-last-slide'); lastBeforeSlide.classList.add('is-dimmed'); lastSlide.classList.remove('is-dimmed'); if (currDevice == 'mobile') { eventList.pauseVideo(this); if (!lowNetwork && ctaPlayStatus) { lastSlide.querySelector('video').play(); }; lastSlide.classList.add('swiper-slide-active'); lastBeforeSlide.classList.remove('swiper-slide-active'); } } else if (lastSlide.classList.contains('is-last-slide') && carouselInfo.lastBeforeSize == carouselInfo.isMoveSize) { lastSlide.classList.add('is-dimmed'); lastSlide.classList.remove('is-last-slide'); lastBeforeSlide.classList.remove('is-dimmed'); if (currDevice == 'mobile') { eventList.pauseVideo(this); if (!lowNetwork && ctaPlayStatus) { lastBeforeSlide.querySelector('video').play(); }; lastSlide.classList.remove('swiper-slide-active'); lastBeforeSlide.classList.add('swiper-slide-active'); } } }, 0); }, destroy: function (swiper) { if (swiper != null) { swiper.navigation.destroy(true); swiper.destroy(true); swiper = null; } }, }; const setTagging = { play: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('pause', 'play')); } }, pause: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('play', 'pause')); } } }; const accessibility = { slide: function (swiper) { for (let i = 0; i < swiper.slides.length; i++) { if (i != swiper.activeIndex) { utils.onAccessibility(swiper.slides[i]); } else { utils.offAccessibility(swiper.slides[i]); } } } }; return { init: init, } })();})();;(function () { window.flagship.features.interactiveCircleToSearch = (function () { const utils = window.flagship.common.utils, resize = window.flagship.common.resize; let els = {}; let objs = {}; let stepInfo = []; let scrollProgress = null; let isPlaySection = null; const init = function () { els.section = document.querySelector('.js-circle-to-search'); if (!!els.section) { setElements(); bindEvents(); } }; const setElements = function () { els.interactiveContent = els.section.querySelector('.js-interactive'); els.tutorialVideoContainer = els.section.querySelector('.common-interactive__tutorial'); els.videoList = els.tutorialVideoContainer.querySelectorAll('.common-interactive__tutorial-video'); els.videoWrap = els.tutorialVideoContainer.querySelectorAll('.common-interactive__tutorial-video .common-video'); els.videos = els.tutorialVideoContainer.querySelectorAll('.common-interactive__tutorial-video .common-video__video'); els.tooltipCta = els.tutorialVideoContainer.querySelectorAll('.js-tutorial-tooltip-cta'); els.tutorialReplay = els.tutorialVideoContainer.querySelector('.js-replay-cta'); }; const setProperty = function (el, index) { el.video = el.querySelector('video'); el.video.videoWrap = el; el.controller = el.querySelector('.js-video-control'); el.controller.video = el.querySelector('video'); el.alert = el.parentElement.querySelector('.common-tutorial__alert'); el.tooltip = el.parentElement.querySelector('.js-tutorial-tooltip'); el.tooltipCta = el.parentElement.querySelector('.js-tutorial-tooltip-cta'); el.video.playIndex = index; el.video.coverImage = el.querySelector('.common-video__cover-image'); }; const bindEvents = function () { for (let i = 0; i < els.videoWrap.length; i++) { setProperty(els.videoWrap[i], i); setStepStatus(els.videoList[i]) } setVideos(); eventList.videoController(); eventList.click(); eventList.setScroller(); eventHandler.scroll(); }; const setStepStatus = function (el) { stepInfo.push({ alert: el.getAttribute('data-alert'), tooltip: el.getAttribute('data-tooltip') }); }; const eventList = { setScroller: function () { if (els.interactiveContent.scene == null) { els.interactiveContent.scene = SCROLLER({ trackElement: els.interactiveContent, useFixed: false }); } }, scrollEvent: function () { if (els.interactiveContent.scene != null) { if (els.interactiveContent.classList.contains('is-tutorial-opened')) { els.interactiveContent.scene.trackAnimation(function () { scrollProgress = this.progress; let activeVideo = els.tutorialVideoContainer.querySelector('.is-visible video'); let firstVideoHandler = els.videoWrap[0].video.videoHandler; let replayStatus = !document.documentElement.classList.contains('low_network') && activeVideo.paused && !els.videoWrap[0].classList.contains(firstVideoHandler.endedClass) && !els.videoWrap[0].classList.contains(firstVideoHandler.pauseClass) && scrollProgress > 0 && scrollProgress < 100; let resetStatus = scrollProgress === 0 || scrollProgress === 100; if (replayStatus) { if (els.videoWrap[0].video.readyState == 4 && els.videoWrap[0].video.paused) { els.videoWrap[0].video.play(); } else { els.videoWrap[0].video.addEventListener('canplay', function() { els.videoWrap[0].video.play(); }, {once:true}); } } if (resetStatus) { activeVideo.pause(); activeVideo.currentTime = 0; eventList.tutorialReset(); } }); } } }, videoController: function () { for (let i = 0; i < objs.videos.length; i++) { objs.videos[i].controller.addEventListener('click', function () { if (this.video.paused) { this.video.play(); } else { this.video.pause(); } }); } }, nextVideoPlay: function (index) { if (!!els.videoList[index].tooltip) { utils.onAccessibility(els.videoList[index].tooltip); } els.videoList[index + 1].classList.add('is-visible'); utils.onAccessibility(els.videoList[index]); if (els.videos[index + 1].readyState > 3) { els.videos[index + 1].play(); } else { els.videos[index + 1].addEventListener('loadeddata', function () { if (this.paused) this.play(); }); } els.videoList[index].classList.remove('is-visible'); }, click: function () { let self = this; for (let i = 0; i < els.tooltipCta.length; i++) { els.tooltipCta[i].addEventListener('click', function () { self.nextVideoPlay(i); }); } }, tutorialReset: function () { let firstVideoHandler = els.videoWrap[0].video.videoHandler; els.videoWrap[0].classList.remove(firstVideoHandler.playClass); els.videoWrap[0].classList.remove(firstVideoHandler.pauseClass); els.videoWrap[0].classList.remove(firstVideoHandler.endedClass); // video wrap if (!els.videoList[0].classList.contains('is-visible')) { els.videoList[0].classList.add('is-visible'); } // tooltip if (!!els.videoWrap[0].tooltip && els.videoWrap[0].tooltip.classList.contains('is-visible')) { els.videoWrap[0].tooltip.classList.remove('is-visible'); } // tootip accessibility utils.offAccessibility(els.videoWrap[0]); if (!!els.videoWrap[0].tooltip) utils.onAccessibility(els.videoWrap[0].tooltip); for (let i = 0; i < els.videoWrap.length; i++) { if (i != 0) { if (els.videoList[i].classList.contains('is-visible')) { els.videoList[i].classList.remove('is-visible'); } if (!els.videoWrap[i].video.paused) { els.videoWrap[i].video.pause(); els.videoWrap[i].video.currentTime = 0; } // tooltip if (!!els.videoWrap[i].tooltip && els.videoWrap[i].tooltip.classList.contains('is-visible')) { els.videoWrap[i].tooltip.classList.remove('is-visible'); } utils.onAccessibility(els.videoWrap[i]); if (!!els.videoWrap[i].tooltip) utils.onAccessibility(els.videoWrap[i].tooltip); } } // replay cta els.tutorialReplay.style.display = 'none'; els.tutorialReplay.setAttribute('aria-hidden', true); els.tutorialReplay.setAttribute('tabindex', -1); } }; const eventHandler = { scroll: function () { window.addEventListener('scroll', eventList.scrollEvent); eventList.scrollEvent(); } } const setVideos = function () { objs.videos = []; for (let i = 0; i < els.videoWrap.length; i++) { let isVideoWrap = els.videoWrap[i]; objs.videos.push(utils.videoHandler({ wrap: isVideoWrap, video: isVideoWrap.video, controller: isVideoWrap.controller, resetCallback: function () { if (this.wrap.classList.contains('is-completed')) { this.wrap.classList.remove('is-completed'); if (this.controller.style.display = 'none') { this.controller.style.display = ''; } } }, playCallback: function () { els.videoList[this.video.playIndex].removeAttribute('tabindex'); els.videoList[this.video.playIndex].removeAttribute('aria-hidden'); this.controller.style.display = 'block'; utils.offAccessibility(this.controller); setTagging.pause(this.controller); let nextPlayindex = this.video.playIndex + 1; if ((els.videos.length - 1) > this.video.playIndex && els.videos[nextPlayindex].readyState < 4) { if (!els.videos[nextPlayindex].classList.contains('is-video-load-complete')) { videoLoader.setResponsiveMedia([els.videos[nextPlayindex]]); } if (!els.videos[nextPlayindex].coverImage.classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia([els.videos[nextPlayindex].coverImage]); } } }, pauseCallback: function () { setTagging.play(this.controller); }, endCallback: function () { if (!!this.wrap.tooltip && stepInfo[this.video.playIndex].tooltip == 'true') { let self = this; if (!!this.wrap.tooltipCta) this.wrap.tooltipCta.removeAttribute('disabled'); if (!!this.wrap.tooltip) this.wrap.tooltip.classList.add('is-visible'); utils.offAccessibility(this.wrap.tooltip); } if (!this.wrap.classList.contains('is-completed')) { this.wrap.classList.add('is-completed'); } this.controller.style.display = 'none'; if ((els.videos.length - 1) == this.video.playIndex) { els.tutorialReplay.style.display = 'block'; els.tutorialReplay.removeAttribute('tabindex'); els.tutorialReplay.removeAttribute('aria-hidden'); } } })); } }; const setTagging = { play: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('pause', 'play')); } }, pause: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('play', 'pause')); } } }; return { init: init } })();})();;(function () { window.flagship.features.interactiveInterpreter = (function () { const utils = window.flagship.common.utils, resize = window.flagship.common.resize; let els = {}; let objs = {}; let stepInfo = []; let scrollProgress = null; let isMute = null; let isPlaySection = null; const init = function () { els.section = document.querySelector('.js-interpreter'); if (!!els.section) { setElements(); bindEvents(); } }; const setElements = function () { els.interactiveContent = els.section.querySelector('.js-interactive'); els.tutorialVideoContainer = els.section.querySelector('.common-interactive__tutorial'); els.videoList = els.tutorialVideoContainer.querySelectorAll('.common-interactive__tutorial-video'); els.videoWrap = els.tutorialVideoContainer.querySelectorAll('.common-interactive__tutorial-video .common-video'); els.videos = els.tutorialVideoContainer.querySelectorAll('.common-interactive__tutorial-video .common-video__video'); els.tooltipCta = els.tutorialVideoContainer.querySelectorAll('.js-tutorial-tooltip-cta'); els.tutorialReplay = els.tutorialVideoContainer.querySelector('.js-replay-cta'); els.allVideoWrap = els.section.querySelectorAll('.js-video-wrap'); els.muteCta = els.section.querySelectorAll('.js-mute-cta'); // status isMute = !!els.muteCta && els.muteCta.length > 0; }; const setProperty = function (el, index) { el.video = el.querySelector('video'); el.video.videoWrap = el; el.controller = el.querySelector('.js-video-control'); el.controller.video = el.querySelector('video'); el.alert = el.parentElement.querySelector('.common-tutorial__alert'); el.tooltip = el.parentElement.querySelector('.js-tutorial-tooltip'); el.tooltipCta = el.parentElement.querySelector('.js-tutorial-tooltip-cta'); el.video.playIndex = index; el.video.coverImage = el.querySelector('.common-video__cover-image'); if (isMute) { el.muteCta = els.muteCta[index + 1]; } }; const bindEvents = function () { for (let i = 0; i < els.videoWrap.length; i++) { setProperty(els.videoWrap[i], i); setStepStatus(els.videoList[i]) } setVideos(); eventList.videoController(); eventList.click.tooltipCta(); eventList.setScroller(); eventHandler.scroll(); if (isMute) { muteEventHandler(); } }; const setStepStatus = function (el) { stepInfo.push({ alert: el.getAttribute('data-alert'), tooltip: el.getAttribute('data-tooltip') }); }; const muteEventHandler = function () { for (let i = 0; i < els.muteCta.length; i++) { muteEventList.setProperty(els.muteCta[i], i); muteEventList.setMuteBlindText(els.muteCta[i], i); muteEventList.click(els.muteCta[i], i); els.allVideoWrap[i].querySelector('video').style.pointerEvents = 'none'; } }; const muteEventList = { setProperty: function (muteCta, index) { muteCta.videoWrap = els.allVideoWrap[index]; muteCta.videoWrap.muteCta = muteCta; muteCta.video = els.allVideoWrap[index].querySelector('video'); muteCta.blind = muteCta.querySelector('.blind'); }, setMuteBlindText: function (muteCta) { muteCta.blind.innerText = muteCta.getAttribute('data-unmute');}, click: function (muteCta) { muteCta.addEventListener('click', function () { let isMute = this.video.muted; if (!!isMute) { this.classList.remove('is-muted'); this.classList.add('is-unmuted'); this.blind.innerText = this.getAttribute('data-mute'); this.video.muted = false; setTagging.mute(this); } else { this.classList.remove('is-unmuted'); this.classList.add('is-muted'); this.blind.innerText = this.getAttribute('data-unmute'); this.video.muted = true; setTagging.unmute(this); } }); }, }; const eventList = { setScroller: function () { if (els.interactiveContent.scene == null) { els.interactiveContent.scene = SCROLLER({ trackElement: els.interactiveContent, useFixed: false }); } }, scrollEvent: function () { if (els.interactiveContent.scene != null) { if (els.interactiveContent.classList.contains('is-tutorial-opened')) { els.interactiveContent.scene.trackAnimation(function () { scrollProgress = this.progress; let activeVideo = els.tutorialVideoContainer.querySelector('.is-visible video'); let firstVideoHandler = els.videoWrap[0].video.videoHandler; let replayStatus = !document.documentElement.classList.contains('low_network') && activeVideo.paused && !els.videoWrap[0].classList.contains(firstVideoHandler.endedClass) && !els.videoWrap[0].classList.contains(firstVideoHandler.pauseClass) && scrollProgress > 0 && scrollProgress < 100; let resetStatus = scrollProgress === 0 || scrollProgress === 100; if (replayStatus) { if (els.videoWrap[0].video.readyState == 4 && els.videoWrap[0].video.paused) { els.videoWrap[0].video.play(); } else { els.videoWrap[0].video.addEventListener('canplay', function() { els.videoWrap[0].video.play(); }, {once:true}); } } if (resetStatus) { activeVideo.pause(); activeVideo.currentTime = 0; eventList.tutorialReset(); } }); } } }, videoController: function () { for (let i = 0; i < objs.videos.length; i++) { objs.videos[i].controller.addEventListener('click', function () { if (this.video.paused) { this.video.play(); } else { this.video.pause(); } }); } }, nextVideoPlay: function (index) { if (!!els.videoList[index].tooltip) { utils.onAccessibility(els.videoList[index].tooltip); } els.videoList[index + 1].classList.add('is-visible'); utils.onAccessibility(els.videoList[index]); if (els.videos[index + 1].readyState > 3) { els.videos[index + 1].play(); } else { els.videos[index + 1].addEventListener('loadeddata', function () { if (this.paused) this.play(); }); } els.videoList[index].classList.remove('is-visible'); }, click: { tooltipCta: function () { for (let i = 0; i < els.tooltipCta.length; i++) { els.tooltipCta[i].addEventListener('click', function () { eventList.nextVideoPlay(i); }); } } }, tutorialReset: function () { let firstVideoHandler = els.videoWrap[0].video.videoHandler; els.videoWrap[0].classList.remove(firstVideoHandler.playClass); els.videoWrap[0].classList.remove(firstVideoHandler.pauseClass); els.videoWrap[0].classList.remove(firstVideoHandler.endedClass); // video wrap if (!els.videoList[0].classList.contains('is-visible')) { els.videoList[0].classList.add('is-visible'); } // tooltip if (!!els.videoWrap[0].tooltip && els.videoWrap[0].tooltip.classList.contains('is-visible')) { els.videoWrap[0].tooltip.classList.remove('is-visible'); } // tootip accessibility utils.offAccessibility(els.videoWrap[0]); if (!!els.videoWrap[0].tooltip) utils.onAccessibility(els.videoWrap[0].tooltip); for (let i = 0; i < els.videoWrap.length; i++) { if (i != 0) { if (els.videoList[i].classList.contains('is-visible')) { els.videoList[i].classList.remove('is-visible'); } if (!els.videoWrap[i].video.paused) { els.videoWrap[i].video.pause(); els.videoWrap[i].video.currentTime = 0; } // tooltip if (!!els.videoWrap[i].tooltip && els.videoWrap[i].tooltip.classList.contains('is-visible')) { els.videoWrap[i].tooltip.classList.remove('is-visible'); } utils.onAccessibility(els.videoWrap[i]); if (!!els.videoWrap[i].tooltip) utils.onAccessibility(els.videoWrap[i].tooltip); } } // replay cta els.tutorialReplay.style.display = 'none'; els.tutorialReplay.setAttribute('aria-hidden', true); els.tutorialReplay.setAttribute('tabindex', -1); } }; const eventHandler = { scroll: function () { window.addEventListener('scroll', eventList.scrollEvent); eventList.scrollEvent(); } } const setVideos = function () { objs.videos = []; for (let i = 0; i < els.videoWrap.length; i++) { let isVideoWrap = els.videoWrap[i]; objs.videos.push(utils.videoHandler({ wrap: isVideoWrap, video: isVideoWrap.video, controller: isVideoWrap.controller, resetCallback: function () { if (this.wrap.classList.contains('is-completed')) { this.wrap.classList.remove('is-completed'); if (this.controller.style.display = 'none') { this.controller.style.display = ''; } } }, playCallback: function () { els.videoList[this.video.playIndex].removeAttribute('tabindex'); els.videoList[this.video.playIndex].removeAttribute('aria-hidden'); utils.offAccessibility(this.wrap.muteCta);if (!this.video.muted) {this.wrap.muteCta.classList.remove('is-unmuted');this.wrap.muteCta.video.muted = true;this.wrap.muteCta.blind.innerText = this.wrap.muteCta.getAttribute('data-unmute');setTagging.unmute(this.wrap.muteCta);} this.controller.style.display = 'block'; utils.offAccessibility(this.controller); setTagging.pause(this.controller); let nextPlayindex = this.video.playIndex + 1; if ((els.videos.length - 1) > this.video.playIndex && els.videos[nextPlayindex].readyState < 4) { if (!els.videos[nextPlayindex].classList.contains('is-video-load-complete')) { videoLoader.setResponsiveMedia([els.videos[nextPlayindex]]); } if (!els.videos[nextPlayindex].coverImage.classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia([els.videos[nextPlayindex].coverImage]); } } }, pauseCallback: function () { setTagging.play(this.controller); }, endCallback: function () { if (!!this.wrap.tooltip && stepInfo[this.video.playIndex].tooltip == 'true') { let self = this; if (!!this.wrap.tooltipCta) this.wrap.tooltipCta.removeAttribute('disabled'); if (!!this.wrap.tooltip) this.wrap.tooltip.classList.add('is-visible'); utils.offAccessibility(this.wrap.tooltip); } if (!this.wrap.classList.contains('is-completed')) { this.wrap.classList.add('is-completed'); } this.controller.style.display = 'none'; if ((els.videos.length - 1) == this.video.playIndex) { els.tutorialReplay.style.display = 'block'; els.tutorialReplay.removeAttribute('tabindex'); els.tutorialReplay.removeAttribute('aria-hidden'); } } })); } }; const setTagging = { play: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('pause', 'play')); } }, pause: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('play', 'pause')); } }, mute: function (targetCta) { if (targetCta.hasAttribute('data-omni')) { let dataOmni = targetCta.getAttribute('data-omni').toLowerCase(); targetCta.setAttribute('data-omni', dataOmni.replace('unmute', 'mute')); } if (targetCta.hasAttribute('ga-la')) { let gaLa = targetCta.getAttribute('ga-la').toLowerCase(); targetCta.setAttribute('ga-la', gaLa.replace('unmute', 'mute')); } },unmute: function (targetCta) { if (targetCta.hasAttribute('data-omni')) { let dataOmni = targetCta.getAttribute('data-omni').toLowerCase(); targetCta.setAttribute('data-omni', dataOmni.replace('mute', 'unmute')); } if (targetCta.hasAttribute('ga-la')) { let gaLa = targetCta.getAttribute('ga-la').toLowerCase(); targetCta.setAttribute('ga-la', gaLa.replace('mute', 'unmute')); } }, }; return { init: init } })();})();;(function () { window.flagship.features.interactiveNoteAssist = (function () { const utils = window.flagship.common.utils, resize = window.flagship.common.resize; let els = {}; let objs = {}; let stepInfo = []; let scrollProgress = null; let isPlaySection = null; const init = function () { els.section = document.querySelector('.js-note-assist'); if (!!els.section) { setElements(); bindEvents(); } }; const setElements = function () { els.interactiveContent = els.section.querySelector('.js-interactive'); els.tutorialVideoContainer = els.section.querySelector('.common-interactive__tutorial'); els.videoList = els.tutorialVideoContainer.querySelectorAll('.common-interactive__tutorial-video'); els.videoWrap = els.tutorialVideoContainer.querySelectorAll('.common-interactive__tutorial-video .common-video'); els.videos = els.tutorialVideoContainer.querySelectorAll('.common-interactive__tutorial-video .common-video__video'); els.tooltipCta = els.tutorialVideoContainer.querySelectorAll('.js-tutorial-tooltip-cta'); els.tutorialReplay = els.tutorialVideoContainer.querySelector('.js-replay-cta'); }; const setProperty = function (el, index) { el.video = el.querySelector('video'); el.video.videoWrap = el; el.controller = el.querySelector('.js-video-control'); el.controller.video = el.querySelector('video'); el.alert = el.parentElement.querySelector('.common-tutorial__alert'); el.tooltip = el.parentElement.querySelector('.js-tutorial-tooltip'); el.tooltipCta = el.parentElement.querySelector('.js-tutorial-tooltip-cta'); el.video.playIndex = index; el.video.coverImage = el.querySelector('.common-video__cover-image'); }; const bindEvents = function () { for (let i = 0; i < els.videoWrap.length; i++) { setProperty(els.videoWrap[i], i); setStepStatus(els.videoList[i]) } setVideos(); eventList.videoController(); eventList.click(); eventList.setScroller(); eventHandler.scroll(); }; const setStepStatus = function (el) { stepInfo.push({ alert: el.getAttribute('data-alert'), tooltip: el.getAttribute('data-tooltip') }); }; const eventList = { setScroller: function () { if (els.interactiveContent.scene == null) { els.interactiveContent.scene = SCROLLER({ trackElement: els.interactiveContent, useFixed: false }); } }, scrollEvent: function () { if (els.interactiveContent.scene != null) { if (els.interactiveContent.classList.contains('is-tutorial-opened')) { els.interactiveContent.scene.trackAnimation(function () { scrollProgress = this.progress; let activeVideo = els.tutorialVideoContainer.querySelector('.is-visible video'); let firstVideoHandler = els.videoWrap[0].video.videoHandler; let replayStatus = !document.documentElement.classList.contains('low_network') && activeVideo.paused && !els.videoWrap[0].classList.contains(firstVideoHandler.endedClass) && !els.videoWrap[0].classList.contains(firstVideoHandler.pauseClass) && scrollProgress > 0 && scrollProgress < 100; let resetStatus = scrollProgress === 0 || scrollProgress === 100; if (replayStatus) { if (els.videoWrap[0].video.readyState == 4 && els.videoWrap[0].video.paused) { els.videoWrap[0].video.play(); } else { els.videoWrap[0].video.addEventListener('canplay', function() { els.videoWrap[0].video.play(); }, {once:true}); } } if (resetStatus) { activeVideo.pause(); activeVideo.currentTime = 0; eventList.tutorialReset(); } }); } } }, videoController: function () { for (let i = 0; i < objs.videos.length; i++) { objs.videos[i].controller.addEventListener('click', function () { if (this.video.paused) { this.video.play(); } else { this.video.pause(); } }); } }, nextVideoPlay: function (index) { if (!!els.videoList[index].tooltip) { utils.onAccessibility(els.videoList[index].tooltip); } els.videoList[index + 1].classList.add('is-visible'); utils.onAccessibility(els.videoList[index]); if (els.videos[index + 1].readyState > 3) { els.videos[index + 1].play(); } else { els.videos[index + 1].addEventListener('loadeddata', function () { if (this.paused) this.play(); }); } els.videoList[index].classList.remove('is-visible'); }, click: function () { let self = this; for (let i = 0; i < els.tooltipCta.length; i++) { els.tooltipCta[i].addEventListener('click', function () { self.nextVideoPlay(i); }); } }, tutorialReset: function () { let firstVideoHandler = els.videoWrap[0].video.videoHandler; els.videoWrap[0].classList.remove(firstVideoHandler.playClass); els.videoWrap[0].classList.remove(firstVideoHandler.pauseClass); els.videoWrap[0].classList.remove(firstVideoHandler.endedClass); // video wrap if (!els.videoList[0].classList.contains('is-visible')) { els.videoList[0].classList.add('is-visible'); } // tooltip if (!!els.videoWrap[0].tooltip && els.videoWrap[0].tooltip.classList.contains('is-visible')) { els.videoWrap[0].tooltip.classList.remove('is-visible'); } // tootip accessibility utils.offAccessibility(els.videoWrap[0]); if (!!els.videoWrap[0].tooltip) utils.onAccessibility(els.videoWrap[0].tooltip); for (let i = 0; i < els.videoWrap.length; i++) { if (i != 0) { if (els.videoList[i].classList.contains('is-visible')) { els.videoList[i].classList.remove('is-visible'); } if (!els.videoWrap[i].video.paused) { els.videoWrap[i].video.pause(); els.videoWrap[i].video.currentTime = 0; } // tooltip if (!!els.videoWrap[i].tooltip && els.videoWrap[i].tooltip.classList.contains('is-visible')) { els.videoWrap[i].tooltip.classList.remove('is-visible'); } utils.onAccessibility(els.videoWrap[i]); if (!!els.videoWrap[i].tooltip) utils.onAccessibility(els.videoWrap[i].tooltip); } } // replay cta els.tutorialReplay.style.display = 'none'; els.tutorialReplay.setAttribute('aria-hidden', true); els.tutorialReplay.setAttribute('tabindex', -1); } }; const eventHandler = { scroll: function () { window.addEventListener('scroll', eventList.scrollEvent); eventList.scrollEvent(); } } const setVideos = function () { objs.videos = []; for (let i = 0; i < els.videoWrap.length; i++) { let isVideoWrap = els.videoWrap[i]; objs.videos.push(utils.videoHandler({ wrap: isVideoWrap, video: isVideoWrap.video, controller: isVideoWrap.controller, resetCallback: function () { if (this.wrap.classList.contains('is-completed')) { this.wrap.classList.remove('is-completed'); if (this.controller.style.display = 'none') { this.controller.style.display = ''; } } }, playCallback: function () { els.videoList[this.video.playIndex].removeAttribute('tabindex'); els.videoList[this.video.playIndex].removeAttribute('aria-hidden'); this.controller.style.display = 'block'; utils.offAccessibility(this.controller); setTagging.pause(this.controller); let nextPlayindex = this.video.playIndex + 1; if ((els.videos.length - 1) > this.video.playIndex && els.videos[nextPlayindex].readyState < 4) { if (!els.videos[nextPlayindex].classList.contains('is-video-load-complete')) { videoLoader.setResponsiveMedia([els.videos[nextPlayindex]]); } if (!els.videos[nextPlayindex].coverImage.classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia([els.videos[nextPlayindex].coverImage]); } } }, pauseCallback: function () { setTagging.play(this.controller); }, endCallback: function () { if (!!this.wrap.tooltip && stepInfo[this.video.playIndex].tooltip == 'true') { if (!!this.wrap.tooltipCta) this.wrap.tooltipCta.removeAttribute('disabled'); if (!!this.wrap.tooltip) this.wrap.tooltip.classList.add('is-visible'); utils.offAccessibility(this.wrap.tooltip); } if (!this.wrap.classList.contains('is-completed')) { this.wrap.classList.add('is-completed'); } this.controller.style.display = 'none'; if ((els.videos.length - 1) == this.video.playIndex) { els.tutorialReplay.style.display = 'block'; els.tutorialReplay.removeAttribute('tabindex'); els.tutorialReplay.removeAttribute('aria-hidden'); } } })); } }; const setTagging = { play: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('pause', 'play')); } }, pause: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('play', 'pause')); } } }; return { init: init } })();})();;(function () { window.flagship.features.interactive = (function () { const utils = window.flagship.common.utils, resize = window.flagship.common.resize; let els = {}, prevDevice = null, currDevice = resize.checkResolution(), scrollProgress = null; const init = function () { els.interactiveContents = document.querySelectorAll('.js-interactive'); if (!!els.interactiveContents && els.interactiveContents.length > 0) { for (let i = 0; i < els.interactiveContents.length; i++) { setProperty(els.interactiveContents[i], i); eventList.setIntroVideo(els.interactiveContents[i]); eventList.setIntroScene(els.interactiveContents[i]); bindEvents(els.interactiveContents[i], i); } } }; const setProperty = function (content, index) { // introVideo content.index = index; content.introVideo = content.querySelector('.js-interactive-intro-video video'); content.introVideo.videoWrap = content.querySelector('.js-interactive-intro-video'); content.introVideo.wrap = content.querySelector('.js-interactive-intro-video .js-video-wrap'); content.introVideo.parentWrap = content.parentElement; content.introVideo.controllerCta = content.introVideo.videoWrap.querySelector('.js-video-control'); content.introVideo.controllerCta.video = content.introVideo; content.introVideo.tooltip = content.querySelector('.js-tutorial-tooltip'); content.introVideo.tooltipCta = content.querySelector('.js-tutorial-tooltip-cta'); content.introVideo.tooltipCta.parentWrap = content; content.tutorialContentWrap = content.querySelectorAll('.js-tutorial-video'); content.tutorialContentWrap.tooltip = content.querySelectorAll('.js-tutorial-video .js-tutorial-tooltip'); // start, reverse point content.introVideo.wrap.startPoint = !!content.introVideo.wrap.getAttribute('data-start-point') ? parseInt(content.introVideo.wrap.getAttribute('data-start-point')) : undefined; content.introVideo.wrap.reversePoint = !!content.introVideo.wrap.getAttribute('data-reverse-point') ? parseInt(content.introVideo.wrap.getAttribute('data-reverse-point')) : undefined; content.introVideo.wrap.moStartPoint = !!content.introVideo.wrap.getAttribute('data-mo-start-point') ? parseInt(content.introVideo.wrap.getAttribute('data-mo-start-point')) : undefined; content.introVideo.wrap.moReversePoint = !!content.introVideo.wrap.getAttribute('data-mo-reverse-point') ? parseInt(content.introVideo.wrap.getAttribute('data-mo-reverse-point')) : undefined; // replayCta content.replayCta = content.querySelector('.js-replay-cta'); content.replayCta.parentWrap = content; }; const bindEvents = function (content, i) { eventHandler.click.introTooltipCta(content.introVideo.tooltipCta); eventHandler.click.replayCta(content.replayCta); eventHandler.click.videoController(content.introVideo.controllerCta); eventHandler.scroll(content); eventList.scroll(content); resize.add(function (currRes) { eventList.resize(currRes, content); }); }; const eventList = { setIntroVideo: function (content) { utils.videoHandler({ playType: 'scrollPlay', startPoint: content.introVideo.wrap.startPoint, reversePoint: content.introVideo.wrap.reversePoint, wrap: content.introVideo.wrap, video: content.introVideo, controller: content.introVideo.controllerCta, resetCallback: function () { if (this.wrap.classList.contains('is-completed')) { this.wrap.classList.remove('is-completed'); } if (this.wrap.classList.contains('is-started')) { this.wrap.classList.remove('is-started'); } if (this.video.tooltip.classList.contains('is-visible')) { this.video.tooltip.classList.remove('is-visible'); } content.introVideo.tooltip.classList.remove('is-visible'); utils.onAccessibility(content.introVideo.tooltip); utils.offAccessibility(content.introVideo.videoWrap); if (content.introVideo.controllerCta.style.display == 'none') { content.introVideo.controllerCta.style.display = 'block'; } }, playCallback: function () { if (!this.wrap.classList.contains('is-started')) { this.wrap.classList.add('is-started'); } setTagging.pause(this.controller); let videoWrap = content.tutorialContentWrap[0].querySelector('.js-video-wrap'); videoWrap.coverImg = videoWrap.querySelector('.common-video__cover-image'); videoWrap.video = videoWrap.querySelector('video'); if (!!videoWrap.coverImg && !videoWrap.coverImg.classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia([videoWrap.coverImg]); } if (!!videoWrap.video && !videoWrap.video.classList.contains('is-video-load-complete')) { videoLoader.setResponsiveMedia([videoWrap.video]); } }, pauseCallback: function () { setTagging.play(this.controller); }, endCallback: function () { let self = this; if (!this.wrap.classList.contains('is-completed')) { this.wrap.classList.add('is-completed'); } this.controller.style.display = 'none'; this.video.tooltip.classList.add('is-visible'); utils.offAccessibility(this.video.tooltip); } }); }, setIntroScene: function (content) { content.introVideo.scene = SCROLLER({ trackElement: content.introVideo, useFixed: false, resize: utils.detector.isTouchDevice ? false : true }); }, scroll: function (content) { if (!content.classList.contains('is-tutorial-opened')) { content.introVideo.scene.trackAnimation(function () { content.introVideo.videoHandler.scrollActive(this.progress); scrollProgress = this.progress; }); } }, click: { introVideoTooltipCta: function () { let content = this.parentWrap; content.classList.add('is-tutorial-opened'); content.introVideo.tooltip.classList.remove('is-visible'); utils.onAccessibility(content.introVideo.videoWrap); content.tutorialContentWrap[0].classList.add('is-visible'); utils.offAccessibility(content.tutorialContentWrap[0]); let videoWrap = content.tutorialContentWrap[0].querySelector('.js-video-wrap'); videoWrap.video.play(); }, replayCta: function () { let content = this.parentWrap; content.replayCta.style.display = 'none'; content.replayCta.setAttribute('aria-hidden', true); content.replayCta.setAttribute('tabindex', -1); for (let i = 0; i < content.tutorialContentWrap.length; i++) { content.tutorialContentWrap[i].classList.remove('is-visible'); if (!!content.tutorialContentWrap.tooltip[i]) { content.tutorialContentWrap.tooltip[i].classList.remove('is-visible'); } utils.onAccessibility(content.tutorialContentWrap[i]); setTimeout(function () { content.tutorialContentWrap[i].querySelector('video').currentTime = 0; }, 300); } content.introVideo.controllerCta.style.display = 'block'; content.introVideo.tooltip.classList.remove('is-visible'); utils.offAccessibility(content.introVideo.videoWrap); utils.onAccessibility(content.introVideo.tooltip); content.classList.remove('is-tutorial-opened'); content.introVideo.play(); }, videoController: function (e) { if (e.target == e.currentTarget) { if (e.currentTarget.video.paused) { e.currentTarget.video.play(); } else { e.currentTarget.video.pause(); } } }, }, reset: function (content) { if (content.classList.contains('is-tutorial-opened')) { content.classList.remove('is-tutorial-opened'); } // replay cta if (content.replayCta.style.display == 'block') { content.replayCta.style.display = 'none'; content.replayCta.setAttribute('aria-hidden', true); content.replayCta.setAttribute('tabindex', -1); } // tutorial video let tutorialWrap = content.tutorialContentWrap; for (let i = 0; i < tutorialWrap.length; i++) { tutorialWrap[i].classList.remove('is-visible'); utils.onAccessibility(tutorialWrap[i]); // video tutorialWrap[i].video = tutorialWrap[i].querySelector('video'); if (!tutorialWrap[i].video.paused) { tutorialWrap[i].video.pause(); tutorialWrap[i].video.currentTime = 0; } // tooltip if (!!tutorialWrap.tooltip[i]) { if (tutorialWrap.tooltip[i].classList.contains('is-visible')) { tutorialWrap.tooltip[i].classList.remove('is-visible'); } utils.onAccessibility(tutorialWrap.tooltip[i]); } } // intro video utils.offAccessibility(content.introVideo.videoWrap); if (content.introVideo.controllerCta.style.display == 'none') { content.introVideo.controllerCta.style.display = 'block'; } // intro tooltip if (content.introVideo.tooltip.classList.contains('is-visible')) { content.introVideo.tooltip.classList.remove('is-visible') } if (scrollProgress >= 40 && scrollProgress <= 60) { if (content.introVideo.paused) { content.introVideo.currentTime = 0; content.introVideo.play(); } } }, resize: function (currRes, content) { currDevice = currRes; if (prevDevice != currDevice) { eventList.reset(content); } prevDevice = currDevice; }, }; const eventHandler = { click: { replayCta: function (replayCta) { replayCta.addEventListener('click', eventList.click.replayCta); }, introTooltipCta: function (introTooltipCta) { introTooltipCta.addEventListener('click', eventList.click.introVideoTooltipCta); }, videoController: function (introVideoController) { introVideoController.addEventListener('click', eventList.click.videoController); } }, scroll: function (content) { window.addEventListener('scroll', function () { eventList.scroll(content); }); } }; const setTagging = { play: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('pause', 'play')); } }, pause: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('play', 'pause')); } } }; return { init: init } })();})();(function () { window.flagship.features.moveFeature = (function () { const utils = window.flagship.common.utils; let els = {}; const init = function () { els.jumpCta = document.querySelectorAll('.js-jump-cta'); if (!!els.jumpCta) { setProperty(); bindEvents(); } }; const setProperty = function () { for (let i = 0; i < els.jumpCta.length; i++) { els.jumpCta[i].sectionId = els.jumpCta[i].getAttribute('href'); els.jumpCta[i].section = document.querySelector(`${els.jumpCta[i].sectionId}`); els.jumpCta[i].returnCta = els.jumpCta[i].section.querySelector('.js-return-cta'); els.jumpCta[i].returnCta.jumpCta = els.jumpCta[i]; els.jumpCta[i].returnCta.section = els.jumpCta[i].section; } }; const bindEvents = function () { eventHandler.click(); eventList.setScene(); eventHandler.scroll(); }; const eventHandler = { click: function () { for (let i = 0; i < els.jumpCta.length; i++) { els.jumpCta[i].addEventListener('click', eventList.clickJumpCta); els.jumpCta[i].returnCta.addEventListener('click', eventList.clickReturnCta); } }, scroll: function () { window.addEventListener('scroll', eventList.hideReturnCta); } }; const eventList = { setScene: function () { for(let i=0; i