Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (2024)

Galaxy Z Fold5

  • SPECIFICATIONS
  • SUPPORT
  • REVIEWS

Buy now

  • Highlights
  • Compare
  • Accessories
  • SPECIFICATIONS
  • SUPPORT
  • REVIEWS
Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (1)

BUY NOW RESERVE NOW PRE-ORDER NOW WHERE TO BUY

Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (2)
  • *Image simulated for illustrative purposes. Actual UI may be different.
  • *S Pen Fold Edition for Galaxy Z Fold5 sold separately. Use an S Pen that is designed for Galaxy Z Fold. All other S Pens or stylus pens may damage the screen. Galaxy Z Fold5 does not have a built-in slot for the S Pen. S Pen support is limited to the Main Screen.
  • DESIGN
  • BIG SCREEN
  • BATTERY
  • MULTITASKING
  • CAMERA

Galaxy AI is here

Welcome to the era of mobile AI. With Galaxy Z Fold5 in your hands, you can unleash whole new levels of creativity, productivity and possibility —starting with your smartphone.

Epic, just like that.

CIRCLE TO SEARCH

Circle it, find it. Just like that

Search with Circle to Search.1 Simply trace an object to get Google Search results. No typing required.

*Image simulated for illustrative purposes. Actual UI may be different.

Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (3)

Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (4)

A blog page is open in a web browser app. S Pen is used to long press the Home button. A Google overlay appears over the app. S Pen is used to circle text on the blog page: Tornado Potato. Search results for tornado potato appear in a popup over the app. S Pen is used to drag the results upward into a full screen of Google search results.

LIVE TRANSLATE

An easy way to communicate

Get near real-time interpretation while you're on the phone.2 Speak in your own language and it’ll get translated on their end, too.

*Image simulated for illustrative purposes. Actual UI may be different.

Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (5)

A phone call is translated in real time. The dialogue is shown on screen as a text conversation in two languages.

INTERPRETER

An Interpreter in your pocket

Want to ask a local for a recommendation? Don't worry! There's an interpreter in your pocket. Enjoy it even in airplane mode with no Wi-Fi.3

*Image simulated for illustrative purposes. Actual UI may be different.

Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (6)

In the Interpreter app, a conversation in two languages is transcribed and translated in real time.

PHOTO ASSIST

Resize it, retouch it. Just like that

New AI editing options let you get the photo you wanted, letting you relocate objects and intelligently fill in the space they left behind.4

*Image simulated for illustrative purposes. Actual UI may be different.

Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (7)

A photo is edited in the Gallery app. An edit button is tapped and one of the subjects is selected. They are moved to another location in the picture. Then, missing areas are filled in.

    Try Galaxy on your phone Scan this QR code or visit trygalaxy.com

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (8)

    The ultimate 7.6” Main Display

    Unfold a stunning, immersive screen designed for PC-style productivity and which brings an incredible viewing experience — all on a tablet-sized device.5,7

    *Image simulated for illustrative purposes. Actual UI may be different.

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (9) Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (10)

    Light passes over the bottom frame of a folded Galaxy Z Fold5 hidden in darkness. Another glimmer reveals the edge of the bottom frame again as the device opens up, revealing the entire device seen from a fully opened Main Screen. A scene of a sport utility vehicle parked on a reflective surface that mirrors a starry night sky is shown on the display.

    Our lightest, most compact Galaxy ZFold yet

    Galaxy Z Fold5 lives up to its name by folding closed, making an impressive screen more pocketable.

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (11) Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (12)

    A close up of the partially folded Main Screen as it completely closes. The final angle centers on the frame and Flex Hinge seen from the bottom.

    Open it up, fold it shut or flex to your ideal angle with the redesigned Flex Hinge.

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (14)

    13.4mm Thickness8

    253g Weight

    *Image simulated for illustrative purposes.

    Slimmer, lighter and more portable9

    We've trimmed down the form factor, enabling a tighter grip on what you love without sacrificing power.9

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (15)

    Set the vibe with your favourite colour

    The future looks bright with these nature-inspired hues.10

    Icy Blue Phantom Black Cream

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (16)

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (17)

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (18)

    Online exclusive colours you can only find here

    For the trendsetters who love to stand out — get ready to meet your match. Take your pick from two exclusive colours from our urban nature lineup.10 Only on Samsung.com.

    Online Exclusive

    Blue

    Online Exclusive

    Grey

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (19)

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (20)

    And now for your viewing pleasure

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (21) Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (22)

    A dark and dramatic scene from Netflix's The Witcher plays on the Cover Screen of a horizontal Galaxy Z Fold5. Netflix membership required. The device unfolds to the Main Screen where the scene seamlessly continues on the large display.

    *Image simulated for illustrative purposes. Actual UI may be different.

    1750 nits keeps it bright. Even in direct light

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (23)

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (24)

    Experience better brightness as you enjoy an immersive experience on the 7.6-inch Main Screen which emits up to 1750 nits of brightness.5 11

    *Image simulated for illustrative purposes. Actual UI may be different.

    *Flex Mode supported at angles between 75°and 115°. Some apps may not be supported in Flex Mode or Flex Mode Panel.

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (25)

    Enjoy all day12 battery Listen up to 73 hrs6 Watch up to 21 hrs6

    A phone this impressive — you'll want to be on it all the time. With the 4400mAh (typical) battery, paired up with an advanced processor, it intelligently adjusts power usage to your habits and needs, making one charge last longer.13

    Powerful gaming with the fastest Snapdragon on a Galaxy ZFold yet

    Power your road to victory with the upgraded hardware and software of Snapdragon® 8 Gen 2 Mobile Platform for Galaxy.14

    • GPU 32 %↑
    • NPU 25 %↑
    • CPU 18 %↑

    *"HoYoverse" is a trademark and/or registered trademark of COGNOSPHERE PTE. LTD.

    *Genshin Impact available for download at Galaxy Store now.

    *Genshin Impact artworks are copyrighted and Cognosphere PTE. LTD. enjoys the exclusive rights.

    *Image simulated for illustrative purposes. Actual UI may be different.

    *AP performance improvements shown compared to Galaxy Z Fold4. Actual performance will depend on user environment, conditions and pre-installed software and applications.

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (26)

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (27) Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (28)

    Gameplay of Genshin Impact. Movement is smooth and graphics are clear.

    Multi Window.
    Your multitasking secret weapon

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (29)

    This advanced multitasking experience lets you keep three windows on one screen, so you can stream, shop, browse and play more.15

    *Image simulated for illustrative purposes. Actual UI may be different.

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (30) Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (31)

    Three windows are open on the Main Screen of Galaxy Z Fold5. Two are internet browsers and one is a text message chat. In one of the internet browsers is a photo of a cake. The cake is cropped from the picture and dragged and dropped in the text message chat.

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (32)

    The task bar holds up to twelve apps at once — now keeping four of your most recent — so you can easily swap between the ones you like to use the most.16 Add S Pen to your task-blasting toolkit for even more efficiency.17

    *Image simulated for illustrative purposes. Actual UI may be different.

    The most portable SPen for Fold yet, with a compact case

    When the ideas flow, reach for S Pen to write, scribble and jot with precision.17 Open Samsung Notes for a canvas that syncs across your devices, or make journaling an artform in your favourite note-taking app.

    *Image simulated for illustrative purposes. Actual UI may be different.

    *GoodNotes app requires separate download and purchase. App availability and terms of service may vary by country and region.

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (33)

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (34)

    Better together

    Slim SPen Case18

    for on-the-go precision

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (35)

    GoodNotes

    now with even more creative control

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (36)

    Standout cameras. Cover to cover

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (37) Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (38)

    Close up of the Galaxy Z Fold5 rear cameras, positioned horizontally.

    • 10MP

      3x Optical Zoom Telephoto Camera

    • 50MP

      Wide-angle Camera

    • 12MP

      Ultra Wide Camera

    • 10MP

      Cover Camera

    • 4MP

      Under Display Camera

    *Image simulated for illustrative purposes. Actual UI may be different.

    The 50MP MVP

    Not just an advanced camera system, this unique form factor featuring two expansive displays allows you to set up your phone like a mobile studio, complete with 30x Space Zoom.19 So you can shoot, reshoot, zoom and edit with a more creative freedom.

    Dual Preview puts your subject in control

    Unfold Galaxy Z Fold5 to show your subject exactly what you're seeing in the preview.20 This way, they can adjust their pose and fix their hair to look their best.

    *Image simulated for illustrative purposes. Actual UI may be different.

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (39)

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (40)

    A tennis player poses for a photo on the tennis court. A teammate kneels in front to take the photo with the Rear Camera of an unfolded Galaxy Z Fold5. The photo taker observes the Main Screen while the photo subject observes the Cover Screen. Next, the photo preview is displayed on the Cover Screen as well as the Main Screen.

    Captured by Galaxy Z Fold5#withGalaxy

    Balanced and bright in low light

    Unfold to the Main Screen and capture the high resolution night photos you've always dreamed of — stunning low-light photography that captures each moment with color and clarity.

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (41)

    Captured by Galaxy Z Fold5#withGalaxy

    Tap record. Capture memories

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (42) Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (43)

    A florist clips the stems of a bundle of flowers. The natural movements, shades of colours and diverse textures of the flowers are captured with realistic quality and definition.

    Captured by Galaxy Z Fold5#withGalaxy

    With the Rear Camera, take videos lush with color and detail. For even more clarity, Auto FPS sets the optimal exposure from moment to moment, so your video stays bright from start to finish.

    *This video has been retouched for colour correction. Actual UI may be different.

    Premium and tough

    Galaxy Z Fold5 stays tough. And with the added support of Samsung Care+, get even more protection.

    • Galaxy Z Fold5 is reinforced with a tough aluminum frame.22This powerful shell lives up to its name — Armor Aluminum — protecting your phone from damage.

      Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (44)

    • Our new dual rail hinge is stronger, more durable and a beauty to behold.9

      Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (45)

    • Sealed tight with water resistance.23

      Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (46)

    Enroll in Samsung Care+ for worry-free protection.24

    Learn more

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (47)

    Control more screens at once with Multi control

    Enjoy smooth device collaboration. Multi control lets you use a keyboard and mouse across devices like your Galaxy Z Fold5 and Galaxy Tab S9, making it easier to copy and paste or drag and drop.25,26,27,28 Your tablet can even double as a second screen, to make your portable workspace more efficient.

    Go to Galaxy Tab S9

    *Image simulated for illustrative purposes. Actual UI may be different.

    *Galaxy Tab S9 Ultra and Bluetooth Mouse Slim sold separately.

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (48)

    Designed with the planet in mind

    The Galaxy Z Flip5 and Fold5 feature a wider variety of recycled materials than their previous generations, including pre-consumer recycled glass and aluminum and post-consumer recycled plastics, sourced from discarded fishing nets, water barrels and PET bottles.29,30

    *Image simulated for illustrative purposes. Actual UI may be different.

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (49)

    Switch, upgrade and trade. It's all easy

    Smart Switch

    Take your photos, apps and messages with you when you switch to Galaxy.31

    *Image simulated for illustrative purposes. Actual UI may be different.

    Learn more

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (50)

    Trade in and save

    Send us your old phone to get a new Galaxy Z Fold5 in your hands for less.32

    Learn more

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (51)

    Your Privacy. Secured

    With Knox Vault, your data is secured and protected. Passwords, biometrics and other security-critical information are protected by secure hardware.

    *Image simulated for illustrative purposes. Actual UI may be different.

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (52)

    Storage

    Store it all with 256GB, 512GB and 1TB options.33

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (53)

    Get started with 6 months of Microsoft 365 Basic. You'll get 100 GB of cloud storage, plus ad-free, secure email and access to Microsoft support.34

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (54)

    Accessories that do more

    LEARN MORE

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (55)

    SEE IN 360°

    Take it for a spin

    *Online exclusive colours only available on Samsung.com.

    Frequently Asked Questions

    • Galaxy Z Fold5 is available in Icy Blue, Phantom Black and Cream.9 Blue and grey are exclusive colours found only on Samsung.com.9

      GO TO COLOURS

    • At 253 grams, Galaxy Z Fold5 is 10 grams lighter than Galaxy Z Fold4. It is also thinner than Galaxy Z Fold4. Unfolded, it is 6.1 millimeters thick, while its predecessor measures 6.3 millimeters.8 Folded, it is a more pocketable 13.4 millimeters evenly across the device, while Galaxy Z Fold4 measures 15.8 millimeters at the hinge and 14.2 millimeters at the outer edge. An upgraded processor elevates Galaxy Z Fold5 performance with CPU performance improved by 18%, GPU by 32% and NPU by 25% compared to Galaxy Z Fold4.35

      COMPARE DEVICES

    • While S Pen is supported on the Main Screen, Galaxy Z Fold5 does not come with an S Pen.17- Purchase the newly trimmed-down S Pen Fold Edition for Galaxy Z Fold5 to enjoy smooth note-taking and perform Air Commands.36 Then, carry it with your phone in a Slim S Pen Case.18

      GO TO S PEN

    • Folded, Galaxy Z Fold5 is 154.9 millimeters long, 67.1 millimeters wide and 13.4 millimeters thick.8 When unfolded, it is 129.9 millimeters wide and 6.1 millimeters thick.

      GO TO PORTABILITY

    • The Galaxy Z Fold5 Cover Screen has a 10MP Front Camera. The Main Screen has a hidden 4MP Under Display Camera. And on the rear, Galaxy Z Fold5 is equipped with a 50MP Wide Camera, 12MP Ultra Wide Camera and 10MP Telephoto Camera. Download Expert RAW for even more creative control of Galaxy Z Fold5's cameras.21

      GO TO CAMERA

    • A single charge lasts longer on Galaxy Z Fold5 than Galaxy Z Fold4. Though Galaxy Z Fold5 features the same 4400mAh (typical) battery as Galaxy Z Fold4, an advanced processor allows for more efficient power usage, so you can listen to up to 73 hours of music or watch up to 21 hours of video.6,13

      GO TO BATTERY

    • Galaxy Z Fold5 features the new, durable dual rail Flex Hinge. Plus, Galaxy Z Fold5 carries a IPX8 rating for water resistance.23

      GO TO DURABILITY

    GO TO GALAXY Z FLIP5

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (56)

    Check out smart ways to get your Galaxy ZFold5

    BUY NOW RESERVE NOW PRE-ORDER NOW WHERE TO BUY

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (57)

    OPEN IN AR

    Life opens up with Galaxy

    EXPLORE MORE

    Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (61)

    Unfold a whole new way to do business

    GO TO SAMSUNG BUSINESS

    *All specifications and descriptions provided herein may be different from the actual specifications and descriptions for the product. Samsung reserves the right to make changes to this document and the product described herein, at anytime, without obligation on Samsung to provide notification of such change. All functionality, features, specifications, GUI and other product information provided in this document including, but not limited to, the benefits, design, pricing, components, performance, availability and capabilities of the product are subject to change without notice or obligation. The contents within the screen are simulated images and are for demonstration purposes only.

    *Samsung Account login may be required to use certain Samsung AI features.

    *Samsung does not make any promises, assurances or guarantees as to the accuracy, completeness or reliability of the output provided by AI features.

    *Galaxy AI features will be provided for free until the end of 2025 on supported Samsung Galaxy devices. Different terms may apply for AI features provided by third parties.

    1. Sequences shortened and simulated. Results for illustrative purposes only. Results may vary depending on visual matches. Requires internet connection. Users may need to update Android to the latest version. Product functionality may be dependent on your app and device settings. Some functions may not be compatible with certain apps. Availability of the service varies by country and language. Accuracy of results is not guaranteed.
    2. Live Translate feature requires a network connection and Samsung Account login. Live Translate feature is only available on the pre-installed Samsung Phone app. Languages require language pack download, language availability will vary. Service availability may vary by language, country, region or carrier. Accuracy of results is not guaranteed.
    3. Interpreter requires Samsung Account login. Live Translate feature is only available on the pre-installed Samsung Phone app. Languages require language pack download, language availability will vary. Service availability may vary by language, country, region or carrier. Accuracy of results is not guaranteed. Availability of supported languages may vary.
    4. Generative Edit requires a network connection and Samsung Account login. Editing with Generative Edit results in a resized photo up to 12MP. A visible watermark is overlaid on the image output upon saving in order to indicate that the image is generated by AI. The accuracy and reliability of the generated output is not guaranteed.
    5. Measured diagonally, Galaxy Z Fold5’s Main Screen size is 7.6" in the full rectangle and 7.4" accounting for the rounded corners; actual viewable area is less due to the rounded corners.
    6. Based on Samsung internal lab test conditions with pre-release version of given model connected to earphone via Bluetooth under default settings over LTE. Estimated against battery capacity and measured current over battery power consumption during video playback (video file resolution 720p, saved on device) and audio playback (mp3 file, 192kbps, saved on device with LCD display turned off), respectively. Actual video and audio playback times vary by network connection, settings, file format, screen brightness, battery condition and many other factors.
    7. Measured diagonally, Galaxy Z Fold5's Cover Screen size is 6.2" in the full rectangle and 6.1" accounting for the rounded corners; actual viewable area is smaller due to the rounded corners and camera hole.
    8. Thickness measured from the top glass panel to the bottom glass panel.
    9. Compared to previous Galaxy Z Fold models.
    10. Availability of colour may vary by country, region or carrier.
    11. The Dynamic AMOLED 2X display on Galaxy Z Fold5 received a certification from VDE Germany for 100 percent Mobile colour Volume in the DCI-P3 colour range, which means your images aren’t washed out and you’ll get unbelievably vivid colours regardless of differing levels of brightness. The display can achieve peak brightness of up to 1750 nits, improving the contrast between dark and light aspects of digital content for a more brilliant picture quality, with a 3,000,000:1 contrast ratio to make your mobile experience more immersive.
    12. Actual battery life varies by network environment, features and apps used, frequency of calls and messages, the number of times charged, and many other factors. Estimated against the average usage profile compiled by UX Connect Research. Independently assessed by UX Connect research between 2023.06.19-2023.06.29 in US with pre-release versions of SM-F946 and SM-F731 under default setting using LTE and 5G Sub6 networks.
    13. Typical value tested under third-party laboratory condition. Typical value is the estimated average value considering the deviation in battery capacity among the battery samples tested under IEC 61960 standard. Rated capacity is 4270mAh for Galaxy Z Fold5, and 3591mAh for Galaxy Z Flip5. Actual battery life may vary depending on network environment, usage patterns and other factors.
    14. Snapdragon is a product of Qualcomm Technologies, Inc. and/or its subsidiaries. Snapdragon is a trademark or registered trademark of Qualcomm Incorporated.
    15. Certain applications may not support Multi Window or App Pair.
    16. Taskbar feature supported on the Main Screen only.
    17. S Pen Fold Edition for Galaxy Z Fold5 sold separately. Use an S Pen that is designed for Galaxy Z Fold. All other S Pens or stylus pens may damage the screen. Galaxy Z Fold5 does not have a built-in slot for the S Pen. S Pen support is limited to the Main Screen.
    18. S Pen Fold Edition and Slim S Pen Case (S Pen Fold Edition included) sold separately. Model and colour availability may vary by country. S Pen Fold Edition is only compatible with Galaxy Z Fold 5, Galaxy Z Fold4 and Galaxy Z Fold3.
    19. 30x Space Zoom includes 3x optical zoom and 30x digital zoom with AI Super Resolution technology. Zooming in past 3x may cause some image deterioration.
    20. Dual Preview supported on the native Camera app on devices running One UI 2.1 and above.
    21. Expert RAW must be downloaded separately from the Galaxy Store, for free, before use. Supported on S23 series devices, S22 series devices, S21 Ultra, S20 Ultra, Note20 Ultra, Z Fold5, Z Fold4, Z Fold3 and Z Fold2.
    22. Frame does not include volume and side keys or SIM tray.
    23. Based on lab test conditions for submersion in up to 1.5 meters of freshwater for up to 30 minutes. Not advised for beach or pool use. Water resistance of device is not permanent and may diminish over time because of normal wear and tear. IPX8 rating is not dust-resistant.
    24. Samsung Care+ coverage may vary by country and deductibles may apply.
    25. Multi control is available only on select Galaxy smartphones with One UI 5.1 or above, Galaxy Tab devices with One UI 5.1.1 or above and Galaxy Book devices launched in 2021 or later with either Samsung Settings v1.5 (Intel) or Samsung Settings v3.3 (ARM).
    26. Some function availability may vary by device model.
    27. Some Multi control actions may be unavailable in certain apps.
    28. Samsung account login required. Wi-Fi and Bluetooth connection required.
    29. Galaxy Z Flip5: 15 device components that feature a minimum of 10% post-consumer recycled material plastic or pre-consumer recycled aluminum, or Corning® Gorilla® Glass Victus® 2 with an average of 22% pre-consumer recycled content. These components include Volume Key Bracket, Speaker Module (Upper & Lower), Rear Top, Display Connector Cap, FPCB RF Cable Bracket, Rear Mid, Case Front (Main), Case Front (Sub), Volume Key, Finger Key Bracket, Receiver Deco, Connector to Connector Holder, SIM Tray, Sub Window, Back Glass. (Galaxy Z Flip4: 6 device components). Galaxy Z Fold5: 15 device components that feature a minimum of 10% post-consumer recycled material plastic or pre-consumer recycled aluminum, or Corning® Gorilla® Glass Victus® 2 with an average of 22% pre-consumer recycled glass. These components include Volume Key FPCB Bracket, Top Speaker Module (Upper & Lower), Bottom Speaker Module (Upper & Lower), Cover Display Connector, Case Front (Main), Case Front (Sub), Antenna (Sub), Antenna (Main), Volume Key, Finger Key Bracket, SIM Tray, Connector to Connector Holder, Camera Deco (Top & Bottom), Sub Window, Back Glass. (Galaxy Z Fold4: 6 device components). The above measurements are based on weight.
    30. Types of recycled materials include post-consumer recycled PA sourced from discarded fishing nets, post-consumer recycled PBT sourced from discarded PET bottles, post-consumer recycled PC sourced from water barrels and pre-consumer recycled aluminum sourced from discarded scrap material generated as a by-product during manufacturing. The scrap metal is re-melted, filtered for impurities and then recycled to make parts within Samsung’s manufacturing process. There is also pre-consumer recycled content sourced from discarded glass waste generated as a byproduct of glass manufacturing. This glass waste is crushed into cullet and then used as a component in the Corning® Gorilla® Glass Victus® 2 manufacturing process.
    31. Wired transfers require at least Android™ 4.3. If you do not have the required USB cable/connector for a wired transfer to Galaxy, you can also use wireless transfer options. iOS 5 or older Android OS must use wireless transfer options. Open Smart Switch Mobile in “Settings” on your new Galaxy phone or download Smart Switch Mobile app from Galaxy Store. Data and content available for transfer may vary by OS. The data of the Galaxy device is backed up and restored to the storage device. Use PC backup through Smart Switch PC or SD card backup function of Smart Switch Mobile.
    32. Terms and conditions apply. Availability may vary by country or region.
    33. Storage options and availability may vary by country or region. Actual storage availability may vary depending on pre-installed software.
    34. Six month trial of Microsoft 365 Basic available for consumers with OneDrive-Gallery Sync capable Samsung phones (phones on the Verizon network in the U.S. not eligible). After the 6 month trial, your subscription will automatically renew into a monthly paid subscription at the current price, subject to Google Play’s terms and conditions. Cancel any time to stop future charges. Offer not available to existing Microsoft 365 or OneDrive premium subscribers (including trials), customers who previously redeemed an Office, OneDrive or other Microsoft storage bonus or free trial offer, customers with a locked OneDrive account, or former Microsoft 365 or OneDrive/Microsoft Storage premium subscribers who cancelled in the last 90 days. One offer per customer and per device. Offer cannot be transferred or combined with other Microsoft offers, and is available between March 15, 2023 and December 31, 2023. Offer must be redeemed during this period on the Google Play Store and participants must sync their gallery with OneDrive to commence the 6 month trial. Offer requires a Samsung and Microsoft account. Refer to https://www.microsoft.com/onedrive-samsung-offer for details.
    35. AP performance improvements shown compared to Galaxy Z Fold4. Actual performance will depend on user environment, conditions and pre-installed software and applications.
    36. Air Command feature availability may vary by model or app.

    " ) ); } } }; var isZoom = function () { var winInnerWidth = window.innerWidth, winOuterWidth = window.outerWidth, zoomLevel = 100 / ((winInnerWidth / winOuterWidth) * 100); if (zoomLevel > 1.75) { document.documentElement.classList.add("browser-zoomed-175"); } else { document.documentElement.classList.remove("browser-zoomed-175"); } }; return { setLownetworkClass: setLownetworkClass, setResolution: setResolution, onClickSup: onClickSup, centeredFocus: centeredFocus, setArBanner: setArBanner, isZoom: isZoom, }; })(); window.flagship.common.utils.layerPopup = function(opts) {let utils = window.flagship.common.utils;var els = {};var show = {},hide = {};var init = function() {setElements();setOpts();bindEvent();};var setElements = function() {els.html = document.documentElement;els.layerPopup = opts.layerPopup;els.contents = opts.contents;els.closeCta = opts.closeCta;els.moveTarget = opts.moveTarget;};var setOpts = function() {show.start = (!!!opts.show) ? undefined : opts.show.start;show.end = (!!!opts.show) ? undefined : opts.show.end;hide.start = (!!!opts.hide) ? undefined : opts.hide.start;hide.end = (!!!opts.hide) ? undefined : opts.hide.end;}var bindEvent = function() {opts.openerEvent.element.addEventListener('click', showLayer);els.layerPopup.show = showLayer;els.layerPopup.hide = hideLayer;};var showLayer = function(e) {if (opts.openerEvent.proxy) { if (opts.openerEvent.parent) { if (e.target.parentElement.classList.contains(opts.openerEvent.class)) { utils.hiddenScroll(els.layerPopup); els.openerCta = e.target.parentElement; els.layerPopup.opener = els.openerCta; if (show.start) show.start(els); if (utils.detector.isIosDevice) e.target.parentElement.style.display = 'none'; els.html.classList.add('is-layer-open'); els.html.style.overflow = 'hidden'; els.moveTarget.appendChild(els.layerPopup); accessibility.on(); setTimeout(function() { els.closeCta.focus(); }, 300); els.closeCta.addEventListener('click', hideLayer); if (show.end) show.end(els); } } else { if (e.target.classList.contains(opts.openerEvent.class)) { utils.hiddenScroll(els.layerPopup); els.openerCta = e.target; els.layerPopup.opener = els.openerCta; if (show.start) show.start(els); if (utils.detector.isIosDevice) e.target.style.display = 'none'; els.html.classList.add('is-layer-open'); els.html.style.overflow = 'hidden'; els.moveTarget.appendChild(els.layerPopup); accessibility.on(); setTimeout(function() { els.closeCta.focus(); }, 300); els.closeCta.addEventListener('click', hideLayer); if (show.end) show.end(els); }; }} else { utils.hiddenScroll(els.layerPopup); els.openerCta = this; els.layerPopup.opener = els.openerCta; if (show.start) show.start(els); if (utils.detector.isIosDevice) this.style.display = 'none'; els.html.classList.add('is-layer-open'); els.html.style.overflow = 'hidden'; els.moveTarget.appendChild(els.layerPopup); accessibility.on(); setTimeout(function() { els.closeCta.focus(); }, 300); els.closeCta.addEventListener('click', hideLayer); if (show.end) show.end(els);}};var hideLayer = function() {if (utils.detector.isIosDevice) els.openerCta.style.display = '';if (hide.start) hide.start(els);els.html.classList.remove('is-layer-open');els.html.style.overflow = '';utils.visibleScroll();els.closeCta.removeEventListener('click', hideLayer);accessibility.off();setTimeout(function() { if (!!!els.openerCta) { els.layerPopup.opener.focus(); } else { els.openerCta.focus(); }}, 300);if (hide.end) hide.end(els);};var accessibility = {on: function() { accessibility.onPopupAccessibility(document.querySelector('#wrap')); utils.offAccessibility(els.layerPopup);},off: function() { accessibility.offPopupAccessibility(document.querySelector('#wrap')); utils.onAccessibility(els.layerPopup);},onPopupAccessibility: function(el) { el.setAttribute('aria-hidden', true); el.setAttribute('tabindex', -1); let clickable = el.querySelectorAll('a, button, input, select, iframe'); for (let i = 0; i < clickable.length; i++) { let currAria = clickable[i].getAttribute('aria-hidden'); let currTab = clickable[i].getAttribute('tabindex'); if (currAria != null) clickable[i].setAttribute('data-prev-aria-hidden', currAria); if (currTab != null) clickable[i].setAttribute('data-prev-tabindex', currTab); clickable[i].setAttribute('tabindex', -1); clickable[i].setAttribute('aria-hidden', true); }},offPopupAccessibility: function(el) { el.removeAttribute('aria-hidden'); el.removeAttribute('tabindex'); let clickable = el.querySelectorAll('a, button, input, select, iframe'); for (let i = 0; i < clickable.length; i++) { let prevAria = clickable[i].getAttribute('data-prev-aria-hidden'); let prevTab = clickable[i].getAttribute('data-prev-tabindex'); if (prevAria != null) clickable[i].setAttribute('aria-hidden', prevAria); else clickable[i].removeAttribute('aria-hidden'); if (prevTab != null) clickable[i].setAttribute('tabindex', prevTab); else clickable[i].removeAttribute('tabindex'); clickable[i].removeAttribute('data-prev-aria-hidden'); clickable[i].removeAttribute('data-prev-tabindex'); }},};return init();}var newVideoHandler = function(opts) {var init = function(opts) {this.video = opts.video;this.wrap = !!!opts.wrap ? video : opts.wrap;this.controller = !!!opts.controller ? '' : opts.controller;this.playType = opts.playType;this.startPoint = !!!opts.startPoint ? 0 : opts.startPoint;this.reversePoint = !!!opts.reversePoint ? 100 : opts.reversePoint;this.playClass = !!!opts.playClass ? 'is-playing' : opts.playClass;this.pauseClass = !!!opts.pauseClass ? 'is-paused' : opts.pauseClass;this.endedClass = !!!opts.endedClass ? 'is-ended' : opts.endedClass;this.resetCallback = opts.resetCallback;this.playCallback = opts.playCallback;this.pauseCallback = opts.pauseCallback;this.endCallback = opts.endCallback;this.tweenObject = null;this.agent = navigator.userAgent;this.isMacintosh = this.agent.indexOf('Macintosh');this.isChrome = this.agent.indexOf('Chrome');this.playText = !!!opts.playText ? '' : opts.playText;this.pauseText = !!!opts.pauseText ? '' : opts.pauseText;this.bindEvents();this.video.videoHandler = this;return this;};var fn = init.prototype;fn.eventList = {play: function() { if (!!this.playCallback) this.playCallback(); if (!this.wrap.length) { this.wrap.classList.remove(this.endedClass); this.wrap.classList.remove(this.pauseClass); this.wrap.classList.add(this.playClass); } else { for (var i = 0; i < this.wrap.length; i++) { this.wrap[i].classList.remove(this.endedClass); this.wrap[i].classList.remove(this.pauseClass); this.wrap[i].classList.add(this.playClass); } } if (this.controller) { var bilnd = this.controller.querySelector('.blind'), pauseText = this.controller.getAttribute('data-pause-text').toLowerCase(); bilnd.innerText = pauseText; }},ended: function() { if (!!this.endCallback) this.endCallback(); if (!this.wrap.length) { this.wrap.classList.remove(this.playClass); this.wrap.classList.add(this.pauseClass) this.wrap.classList.add(this.endedClass) } else { for (var i = 0; i < this.wrap.length; i++) { this.wrap[i].classList.remove(this.playClass); this.wrap[i].classList.add(this.pauseClass) this.wrap[i].classList.add(this.endedClass) } }},pause: function() { if (!!this.pauseCallback) this.pauseCallback(); if (!this.wrap.length) { this.wrap.classList.remove(this.playClass); this.wrap.classList.add(this.pauseClass); } else { for (var i = 0; i < this.wrap.length; i++) { this.wrap[i].classList.remove(this.playClass); this.wrap[i].classList.add(this.pauseClass); } } if (this.controller) { var bilnd = this.controller.querySelector('.blind'), playText = this.controller.getAttribute('data-play-text').toLowerCase(); bilnd.innerText = playText; }},reset: function() { if (!!this.resetCallback) this.resetCallback(); this.video.pause(); this.video.currentTime = 0; var self = this; var _removeClass = function() { if (!self.wrap.length) { self.wrap.classList.remove(self.playClass); self.wrap.classList.remove(self.pauseClass); self.wrap.classList.remove(self.endedClass); } else { for (var i = 0; i < self.wrap.length; i++) { self.wrap[i].classList.remove(self.playClass); self.wrap[i].classList.remove(self.pauseClass); self.wrap[i].classList.remove(self.endedClass); } } } clearTimeout(_removeClass); setTimeout(_removeClass, 50);}};fn.activeList = {scrollPlay: function(progress) { if (!document.documentElement.classList.contains('low_network') && progress > this.startPoint && progress < this.reversePoint && this.video.paused && !this.wrap.classList.contains(this.endedClass) && !this.wrap.classList.contains(this.pauseClass)) { if (this.video.readyState == 4 && this.video.paused) { this.video.play(); } else { this.video.addEventListener('canplay', this.video.play); }; }; if (this.video.readyState == 4) { if (progress === 100 || progress === 0) { this.eventList.reset.call(this); } }},sequencePlay: function(progress, corrProgress, scrollDuration) { this.corrProgress = !!!corrProgress ? 100 : corrProgress; this.scrollDuration = !!!scrollDuration ? 0.6 : scrollDuration; if (this.video.readyState == 4 && this.video.paused) { this.videoDuration = this.video.duration; this.playCurrentTime = this.videoDuration * (progress / this.corrProgress); this.playRange = this.playCurrentTime < this.videoDuration ? this.playCurrentTime : this.videoDuration; // if (this.isMacintosh > 0 && this.isChrome > 0) { // this.video.currentTime = this.playRange; // } else { // if (this.tweenObject === null) { // this.tweenObject = new TweenMax.to(this.video, this.scrollDuration, { // currentTime: this.playRange, // ease: 'Circ.out' // }); // }; // this.tweenObject.updateTo({currentTime: this.playRange}, true); // } if (this.playCurrentTime < this.videoDuration) { this.video.currentTime = this.playRange; }; };}}fn.bindEvents = function() {var self = this;this.playEvent = function() { self.eventList.play.call(self);}this.pauseEvent = function() { self.eventList.pause.call(self);}this.endedEvent = function() { self.eventList.ended.call(self);}this.video.addEventListener('play', this.playEvent);this.video.addEventListener('pause', this.pauseEvent);this.video.addEventListener('ended', this.endedEvent);};fn.scrollActive = function(progress, corrProgress, scrollDuration) {switch (this.playType) { case 'scrollPlay': this.activeList.scrollPlay.call(this, progress); break; case 'sequencePlay': this.activeList.sequencePlay.call(this, progress, corrProgress, scrollDuration); break;}};fn.destroy = function() {this.video.removeEventListener('play', this.playEvent);this.video.removeEventListener('pause', this.pauseEvent);this.video.removeEventListener('ended', this.endedEvent);this.video.videoHandler = null;};return new init(opts);}; (function () { var resize = window.flagship.common.resize, common = window.flagship.highlights.common, utils = window.flagship.common.utils, agent = navigator.userAgent.toLowerCase(), maxOs = agent.indexOf("mac os") > -1, touchDevice = "ontouchstart" in window || (window.DocumentTouch && document instanceof window.DocumentTouch); els = {}; var init = function () { els.videoWrap = document.querySelectorAll(".common-video"); els.isGlobal = document.documentElement.classList.contains("global"); if (!!els.videoWrap[0]) { setElements(); } for (var i = 0; i < els.videoWrap.length; i++) { if (els.videoWrap[i].childNodes.length > 0) { els.videoWrap[i].control = els.videoWrap[i].querySelector( ".common-video__control" ); els.videoWrap[i].blind = els.videoWrap[i].querySelector(".blind"); els.videoWrap[i].blind.innerHTML = els.videoWrap[i].control .getAttribute("data-play-text") .toLowerCase(); } } }; var setElements = function () { els.viewerPopup = document.querySelector(".highlights-viewer"); els.scrollVideosWrap = document.querySelectorAll(".js-scroll-video"); els.scrollVideos = document.querySelectorAll(".js-scroll-video video"); for (var i = 0; i < els.scrollVideosWrap.length; i++) { els.scrollVideos[i].videoWrap = els.scrollVideosWrap[i]; } }; var bindEvents = function () { window.addEventListener("load", anchorPosition); window.addEventListener("hashchange", anchorPosition); }; var setResize = function () { resize.init( [ { resolution: 1920, resolutionName: "desktop", eventFunction: "", }, { resolution: 1023, resolutionName: "tablet", eventFunction: "", }, { resolution: 767, resolutionName: "mobile", eventFunction: "", }, { resolution: 320, resolutionName: "mobileS", eventFunction: "", }, ], 200 ); resize.add(common.setResolution); }; var setScrollControl = function () { window.scrollController = ANIUTIL.scrollController(); scrollController.init({ speed: 120, duration: 0.5, }); }; var setImageLoader = function () { window.imageLoader = ANIUTIL.mediaLoader({ lazyClass: ".js-img-src", responsiveClass: ".js-res-img", preset: els.isGlobal ? "" : "?imbypass=true", loadOption: [ { resolution: 1920, attribute: "data-src-pc", }, { resolution: 1023, attribute: "data-src-tb", }, { resolution: 767, attribute: "data-src-mo", }, { resolution: 360, attribute: "data-src-mo-s", }, ], visiblePoint: 1, }); window.bgLoader = ANIUTIL.mediaLoader({ type: "bgImage", lazyClass: ".js-bg-img", loadOption: [ { resolution: 1920, attribute: "", bgOpts: "", }, ], visiblePoint: 1, }); }; var setVideoLoader = function () { window.videoLoader = ANIUTIL.mediaLoader({ type: "video", lazyClass: ".js-video-src", responsiveClass: ".js-res-video", preset: els.isGlobal ? "" : "?imbypass=true", loadOption: [ { resolution: 1920, attribute: "data-video-src-pc", }, { resolution: 1023, attribute: "data-video-src-tb", }, { resolution: 767, attribute: "data-video-src-mo", }, { resolution: 360, attribute: "data-video-src-mo-s", }, ], visiblePoint: 1, endCallback: function (video) { if ( video.videoWrap && !video.videoWrap.classList.contains("is-loaded") ) { video.videoWrap.classList.add("is-loaded"); } }, }); }; var setDisclaimer = function () { els.supClicker = document.querySelectorAll("a.click_sup"); for (var i = 0; i < els.supClicker.length; i++) { els.supClicker[i].addEventListener("click", common.onClickSup); } }; var setCenteredfocus = function () { els.contents = document.querySelector("#contents"); els.allClickables = els.contents.querySelectorAll( "a, button, input, select" ); for (var i = 0; i < els.allClickables.length; i++) { els.allClickables[i].addEventListener( "focusin", common.centeredFocus ); } }; var anchorPosition = function () { if (window.location.hash != "") { if (window.location.hash == "#colors-see-in-360") { if (els.viewerPopup) els.viewerPopup.show(); } else if ( window.location.hash == "#online-exclusive-color-see-in-360" ) { if (els.viewerPopup) els.viewerPopup.show(); } else if (!!document.querySelector(window.location.hash)) { var hash = location.hash.split("#")[1], hashSection = document.querySelector("#contents #" + hash), hashTimeout = null; clearTimeout(hashTimeout); hashTimeout = setTimeout(function () { var sectionTop = hashSection.getBoundingClientRect().top, navHeight = utils.getNavHeight(), hashScroll = window.pageYOffset + sectionTop - navHeight; window.scrollTo(0, hashScroll); }, 300); } } }; var setVideoTheme = function () { var videoList = document.querySelectorAll(".common-video"); for (var i = 0; i < videoList.length; i++) { var colorType = videoList[i].getAttribute("data-theme-type"); if (colorType === "white") { videoList[i].classList.add("common-video__white"); } else if (colorType === "black") { videoList[i].classList.add("common-video__black"); } } }; var onLoadHandler = function () { common.setLownetworkClass(); common.setArBanner(); init(); bindEvents(); setResize(); if (!maxOs && !touchDevice) { setScrollControl(); } setImageLoader(); setVideoLoader(); setDisclaimer(); setCenteredfocus(); setVideoTheme(); common.isZoom(); resize.add(common.isZoom); }; onLoadHandler(); })(); (function() {window.flagship = window.flagship || {};window.flagship.highlights = window.flagship.highlights || {};window.flagship.highlights.ai = (function() {const utils = window.flagship.common.utils;const resize = window.flagship.common.resize;let els = {}, objs = {}, status = { prevIndex: 0, isAuto: true, };const init = function() { els.section = document.querySelector('.highlights-ai'); if (!!els.section) { setElements(); eventList.setScene(); bindEvents(); }};const setElements = function() { els.carouselWrap = els.section.querySelector('.js-carousel-wrap'); els.yotubeCta = els.section.querySelectorAll('.js-youtube-popup'); // swiper els.swiperContainer = els.section.querySelector('.swiper-container'); els.nextArrow = els.section.querySelector('.swiper-button-next'); els.prevArrow = els.section.querySelector('.swiper-button-prev'); els.pagination = els.section.querySelector('.swiper-pagination'); // video els.videoWrap = els.section.querySelectorAll('.common-video'); els.videoControlCta = Array.prototype.slice.call(els.section.querySelectorAll('.common-video__control'));};const bindEvents = function() { eventHandler.load(); eventHandler.scroll(); eventHandler.click(); resize.add(eventList.onResize);};const eventHandler = { load: function() { window.addEventListener('DOMContentLoaded', eventList.onLoad, { once: true }); }, scroll: function() { window.addEventListener('scroll', eventList.scroll); }, click: function() { for (let i = 0; i < els.videoControlCta.length; i++) { els.videoControlCta[i].addEventListener('click', eventList.setVideoStatus); } els.nextArrow.addEventListener('click', eventList.setArrowFocus); els.nextArrow.addEventListener('keydown', eventList.setArrowFocus); els.prevArrow.addEventListener('click', eventList.setArrowFocus); els.prevArrow.addEventListener('keydown', eventList.setArrowFocus); for (let i = 0; i < els.yotubeCta.length; i++) { els.yotubeCta[i].addEventListener('click', eventList.pauseVideo); } },};const eventList = { swiper: { set: function() { if (objs.swiper == null) { objs.swiper = new Swiper(els.swiperContainer, { init: false, speed: 500, navigation: { nextEl: els.nextArrow, prevEl: els.prevArrow, }, pagination: { el: els.pagination, type: 'bullets', renderBullet: function() { return '

  • '; } }, }); } }, init: function() { let notification = this.el.querySelector('.swiper-notification'); this.el.removeChild(notification); els.nextArrow.removeAttribute('aria-label'); els.nextArrow.removeAttribute('role'); els.prevArrow.removeAttribute('aria-label'); els.prevArrow.removeAttribute('role'); objs.swiper.on('slideChange', eventList.swiper.slideChange); objs.swiper.on('transitionEnd', eventList.swiper.transitionEnd); objs.swiper.on('touchMove', eventList.swiper.touchMove); objs.swiper.on('touchEnd', eventList.swiper.touchEnd); els.bullets = objs.swiper.pagination.bullets; for (let i = 0; i < els.bullets.length; i++) { els.bullets[i].addEventListener('click', function() { objs.swiper.slideTo(i); }); } eventList.setVideo(); eventList.scroll(); accessibility.slide(); accessibility.pagination.label(); accessibility.pagination.tagging(); }, slideChange: function() { let activeIndex = objs.swiper.activeIndex; let nextIndex = (activeIndex == (objs.swiper.slides.length - 1)) ? null : activeIndex + 1; if (nextIndex != null) { if (nextIndex == 2) { eventList.lazyLoad(els.videoWrap[nextIndex]); } else if (nextIndex == 3) { eventList.lazyLoad(els.videoWrap[nextIndex]); } } // video objs[`video_${status.prevIndex}`].eventList.reset.call(objs[`video_${status.prevIndex}`]); objs[`video_${status.prevIndex}`].video.removeEventListener('canplay', objs[`video_${status.prevIndex}`].video.play); if (!!status.isAuto) { if (objs[`video_${activeIndex}`] != undefined && objs[`video_${activeIndex}`].video.readyState >= 4) { objs[`video_${activeIndex}`].video.play(); } else { objs[`video_${activeIndex}`].video.addEventListener('canplay', function() { this.play(); }); } } // set autoplay if (objs.swiper.activeIndex == (objs.swiper.slides.length - 1)) status.isLast = true; accessibility.slide(); accessibility.pagination.label(); status.prevIndex = activeIndex; }, transitionEnd: function() { let activeController = objs[`video_${objs.swiper.activeIndex}`].controller; let isArrow = document.activeElement.classList.contains('swiper-button-next') || document.activeElement.classList.contains('swiper-button-prev'); let isBullet = document.activeElement.classList.contains('swiper-pagination-bullet'); if (!!isArrow || !!isBullet) return; activeController.focus(); }, touchMove: function() { objs.swiper.off('transitionEnd', eventList.swiper.transitionEnd); }, touchEnd: function() { objs.swiper.on('transitionEnd', eventList.swiper.transitionEnd); }, }, setVideo: function() { for (let i = 0; i < els.videoWrap.length; i++) { objs[`video_${i}`] = newVideoHandler({ playType: 'scrollPlay', wrap: els.videoWrap[i], video: els.videoWrap[i].querySelector('video'), controller: els.videoControlCta[i], startPoint: status.currentDevice.indexOf('mobile') > -1 ? 25 : 35, reversePoint: status.currentDevice.indexOf('mobile') > -1 ? 65 : 75, resetCallback: function() { if (this.wrap.classList.contains('is-completed')) { this.wrap.classList.remove('is-completed'); } }, playCallback: function() { accessibility.controlTagging.play(objs[`video_${i}`].wrap.control); }, pauseCallback: function() { accessibility.controlTagging.pause(objs[`video_${i}`].wrap.control); }, endCallback: function() { if (!this.wrap.classList.contains('is-completed')) { this.wrap.classList.add('is-completed'); } if (!status.isAuto || !!status.isLast) return; setTimeout(() => { objs.swiper.slideNext(500); }, 300); } }); } }, setScene: function() { objs.scene = SCROLLER({ trackElement: els.carouselWrap, useFixed: false }); }, onLoad: function() { status.currentDevice = resize.checkResolution(); if (!!utils.isLowNetwork()) status.isAuto = false; eventList.swiper.set(); objs.swiper.on('init', eventList.swiper.init); objs.swiper.init(); }, onResize: function(currRes) { status.currentDevice = currRes; }, scroll: function() { objs.scene.trackAnimation(function() { if (!status.isAuto) return; objs[`video_${objs.swiper.activeIndex}`].scrollActive(this.progress); }); }, lazyLoad: function(videoWrap) { videoLoader.setResponsiveMedia([videoWrap.querySelector('video')], function(target) { if (!target.videoHandler.wrap.classList.add('is-loaded')) target.videoHandler.wrap.classList.add('is-loaded'); }); let image = videoWrap.querySelectorAll('img'); imageLoader.setResponsiveMedia(image); }, setVideoStatus: function() { let activeIndex = els.videoControlCta.indexOf(this); if (!objs[`video_${activeIndex}`].video.paused) { objs[`video_${activeIndex}`].video.pause(); if (!utils.isLowNetwork()) status.isAuto = false; } else { objs[`video_${activeIndex}`].video.play(); if (!utils.isLowNetwork()) status.isAuto = true; } }, setArrowFocus: function(e) { status.arrowFocusTimeout = null; if ((e.type == 'keydown' && e.keyCode == 13) || e.type == 'click') { e.preventDefault(); clearTimeout(status.arrowFocusTimeout); status.arrowFocusTimeout = setTimeout(() => { if (objs.swiper.isBeginning && !objs.swiper.isEnd) { els.nextArrow.focus(); } else if (!objs.swiper.isBeginning && objs.swiper.isEnd) { els.prevArrow.focus(); } }, 300); } }, pauseVideo: function() { if (!objs[`video_${objs.swiper.activeIndex}`].video.paused) { objs[`video_${objs.swiper.activeIndex}`].video.pause(); if (!utils.isLowNetwork()) status.isAuto = false; } }};const accessibility = { slide: function() { for (let i = 0; i < objs.swiper.slides.length; i++) { if (i != objs.swiper.activeIndex) { utils.onAccessibility(objs.swiper.slides[i]); } else { utils.offAccessibility(objs.swiper.slides[i]); } } }, pagination: { label: function() { for (let i = 0; i < els.bullets.length; i++) { let slideTitle = objs.swiper.slides[i].getAttribute('data-slide-name'); if (i === objs.swiper.realIndex) { if (typeof LOCAL_VARI != 'undefined' && !!LOCAL_VARI) { els.bullets[i].setAttribute('aria-label', `Slide${i+1}: ${slideTitle} ${LOCAL_VARI.selected.toLowerCase()}`); } else { els.bullets[i].setAttribute('aria-label', `Slide${i+1}: ${slideTitle} selected`); } } else { els.bullets[i].setAttribute('aria-label', `Slide${i+1}: ${slideTitle}`); } } }, tagging: function() { for (let i = 0; i < els.bullets.length; i++) { let tagging = { 'data-omni-type': 'microsite_pcontentinter', 'data-omni': 'galaxy-z-fold5:highlights:overview:index:', 'ga-ca': 'indication', 'ga-ac': 'carousel', 'ga-la': 'galaxy-z-fold5:highlights:overview:index:', }; Object.keys(tagging).forEach(function(key) { if (key == 'data-omni' || key == 'ga-la') { els.bullets[i].setAttribute(key, tagging[key] + (i + 1)); } else { els.bullets[i].setAttribute(key, tagging[key]); } }); } }, }, controlTagging: { pause: function(control) { if (!!control) { let dataOmni = control.getAttribute('data-omni'), gaLa = control.getAttribute('ga-la'); control.setAttribute('data-omni', dataOmni.replace('pause', 'play')); control.setAttribute('ga-la', gaLa.replace('pause', 'play')); } }, play: function(control) { if (!!control) { let dataOmni = control.getAttribute('data-omni'), gaLa = control.getAttribute('ga-la'); control.setAttribute('data-omni', dataOmni.replace('play', 'pause')); control.setAttribute('ga-la', gaLa.replace('play', 'pause')); } }, }};return { init: init}})();})(); (function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.batteryAp = (function () { var els = {}, objs = {}, utils = window.flagship.common.utils; var init = function () { els.sectionVideo = document.querySelector(".highlights-ap__video"); if (!!els.sectionVideo) { setElements(); objList.setVideo(); objList.setScene(); bindEvents(); } }; var setElements = function () { els.scrollVideoWrap = els.sectionVideo.querySelector(".js-scroll-video"); els.scrollVideo = els.sectionVideo.querySelector( ".js-scroll-video .common-video__figure>video" ); els.scrollController = els.sectionVideo.querySelector( ".js-scroll-video .common-video__control" ); els.scrollControllerBlindText = els.scrollController.querySelector(".blind"); }; var bindEvents = function () { window.addEventListener("scroll", handlerList.scroll); els.scrollController.addEventListener("click", handlerList.videoCta); handlerList.scroll(); }; var objList = { setVideo: function () { objs.batteryApVideo = ANIUTIL.videoHandler({ playType: "scrollPlay", startPoint: 3, reversePoint: 87, wrap: els.scrollVideoWrap, video: els.scrollVideo, resetCallback: function () { if (els.scrollVideoWrap.classList.contains("is-completed")) { els.scrollVideoWrap.classList.remove("is-completed"); } }, playCallback: function () { els.scrollControllerBlindText.innerText = "pause"; setTagging.pause(); }, pauseCallback: function () { els.scrollControllerBlindText.innerText = "play"; setTagging.play(); }, endCallback: function () { if (!els.scrollVideoWrap.classList.contains("is-completed")) { els.scrollVideoWrap.classList.add("is-completed"); } }, }); }, setScene: function () { objs.scene = SCROLLER({ trackElement: els.scrollVideo, useFixed: false, resize: utils.detector.isTouchDevice ? false : true, }); }, }; var handlerList = { scroll: function () { objs.scene.trackAnimation(function () { objs.batteryApVideo.scrollActive(this.progress); }); }, videoCta: function () { if (els.scrollVideo.paused) { els.scrollVideo.play(); } else { els.scrollVideo.pause(); } }, }; var setTagging = { play: function () { if (els.scrollController.hasAttribute("data-omni")) { var dataOmni = els.scrollController .getAttribute("data-omni") .toLowerCase(); els.scrollController.setAttribute( "data-omni", dataOmni.replace("pause", "play") ); } if (els.scrollController.hasAttribute("ga-la")) { var gaLa = els.scrollController .getAttribute("ga-la") .toLowerCase(); els.scrollController.setAttribute( "ga-la", gaLa.replace("pause", "play") ); } }, pause: function () { if (els.scrollController.hasAttribute("data-omni")) { var dataOmni = els.scrollController .getAttribute("data-omni") .toLowerCase(); els.scrollController.setAttribute( "data-omni", dataOmni.replace("play", "pause") ); } if (els.scrollController.hasAttribute("ga-la")) { var gaLa = els.scrollController .getAttribute("ga-la") .toLowerCase(); els.scrollController.setAttribute( "ga-la", gaLa.replace("play", "pause") ); } }, }; return { init: init, }; })(); flagship.highlights.batteryAp.init(); })(); (function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.cameraOverview = (function () { var els = {}, objs = {}, utils = window.flagship.common.utils; var init = function () { els.section = document.querySelector(".highlights-camera"); if (!!els.section) { setElements(); objList.setVideo(); objList.setScene(); bindEvents(); } }; var setElements = function () { els.scrollVideoWrap = els.section.querySelector(".js-scroll-video"); els.scrollVideo = els.section.querySelector( ".js-scroll-video .common-video__figure>video" ); els.scrollController = els.section.querySelector( ".js-scroll-video .common-video__control" ); els.scrollControllerBlindText = els.scrollController.querySelector(".blind"); }; var bindEvents = function () { window.addEventListener("scroll", handlerList.scroll); els.scrollController.addEventListener("click", handlerList.videoCta); handlerList.scroll(); }; var objList = { setVideo: function () { objs.cameraOverviewVideo = ANIUTIL.videoHandler({ playType: "scrollPlay", startPoint: 15, reversePoint: 80, wrap: els.scrollVideoWrap, video: els.scrollVideo, resetCallback: function () { if (els.scrollVideoWrap.classList.contains("is-completed")) { els.scrollVideoWrap.classList.remove("is-completed"); } }, playCallback: function () { els.scrollControllerBlindText.innerText = "pause"; setTagging.pause(); }, pauseCallback: function () { els.scrollControllerBlindText.innerText = "play"; setTagging.play(); }, endCallback: function () { if (!els.scrollVideoWrap.classList.contains("is-completed")) { els.scrollVideoWrap.classList.add("is-completed"); } }, }); }, setScene: function () { objs.scene = SCROLLER({ trackElement: els.scrollVideo, useFixed: false, resize: utils.detector.isTouchDevice ? false : true, }); }, }; var handlerList = { scroll: function () { objs.scene.trackAnimation(function () { objs.cameraOverviewVideo.scrollActive(this.progress); }); }, videoCta: function () { if (els.scrollVideo.paused) { els.scrollVideo.play(); } else { els.scrollVideo.pause(); } }, }; var setTagging = { play: function () { if (els.scrollController.hasAttribute("data-omni")) { var dataOmni = els.scrollController .getAttribute("data-omni") .toLowerCase(); els.scrollController.setAttribute( "data-omni", dataOmni.replace("pause", "play") ); } if (els.scrollController.hasAttribute("ga-la")) { var gaLa = els.scrollController .getAttribute("ga-la") .toLowerCase(); els.scrollController.setAttribute( "ga-la", gaLa.replace("pause", "play") ); } }, pause: function () { if (els.scrollController.hasAttribute("data-omni")) { var dataOmni = els.scrollController .getAttribute("data-omni") .toLowerCase(); els.scrollController.setAttribute( "data-omni", dataOmni.replace("play", "pause") ); } if (els.scrollController.hasAttribute("ga-la")) { var gaLa = els.scrollController .getAttribute("ga-la") .toLowerCase(); els.scrollController.setAttribute( "ga-la", gaLa.replace("play", "pause") ); } }, }; return { init: init, }; })(); })(); (function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.cameraVideo = (function () { var els = {}, objs = {}, utils = window.flagship.common.utils; var init = function () { els.section = document.querySelector(".highlights-video"); if (!!els.section) { setElements(); objList.setVideo(); objList.setScene(); bindEvents(); } }; var setElements = function () { els.scrollVideoWrap = els.section.querySelector(".js-scroll-video"); els.scrollVideo = els.section.querySelector( ".js-scroll-video .common-video__figure>video" ); els.scrollController = els.section.querySelector( ".js-scroll-video .common-video__control" ); els.scrollControllerBlindText = els.scrollController.querySelector(".blind"); }; var bindEvents = function () { window.addEventListener("scroll", handlerList.scroll); els.scrollController.addEventListener("click", handlerList.videoCta); handlerList.scroll(); }; var objList = { setVideo: function () { objs.cameraVideo = ANIUTIL.videoHandler({ playType: "scrollPlay", startPoint: 7, reversePoint: 87, wrap: els.scrollVideoWrap, video: els.scrollVideo, resetCallback: function () { if (els.scrollVideoWrap.classList.contains("is-completed")) { els.scrollVideoWrap.classList.remove("is-completed"); } }, playCallback: function () { els.scrollControllerBlindText.innerText = "pause"; setTagging.pause(); }, pauseCallback: function () { els.scrollControllerBlindText.innerText = "play"; setTagging.play(); }, endCallback: function () { if (!els.scrollVideoWrap.classList.contains("is-completed")) { els.scrollVideoWrap.classList.add("is-completed"); } }, }); }, setScene: function () { objs.scene = SCROLLER({ trackElement: els.scrollVideo, useFixed: false, resize: utils.detector.isTouchDevice ? false : true, }); }, }; var handlerList = { scroll: function () { objs.scene.trackAnimation(function () { objs.cameraVideo.scrollActive(this.progress); }); }, videoCta: function () { if (els.scrollVideo.paused) { els.scrollVideo.play(); } else { els.scrollVideo.pause(); } }, }; var setTagging = { play: function () { if (els.scrollController.hasAttribute("data-omni")) { var dataOmni = els.scrollController .getAttribute("data-omni") .toLowerCase(); els.scrollController.setAttribute( "data-omni", dataOmni.replace("pause", "play") ); } if (els.scrollController.hasAttribute("ga-la")) { var gaLa = els.scrollController .getAttribute("ga-la") .toLowerCase(); els.scrollController.setAttribute( "ga-la", gaLa.replace("pause", "play") ); } }, pause: function () { if (els.scrollController.hasAttribute("data-omni")) { var dataOmni = els.scrollController .getAttribute("data-omni") .toLowerCase(); els.scrollController.setAttribute( "data-omni", dataOmni.replace("play", "pause") ); } if (els.scrollController.hasAttribute("ga-la")) { var gaLa = els.scrollController .getAttribute("ga-la") .toLowerCase(); els.scrollController.setAttribute( "ga-la", gaLa.replace("play", "pause") ); } }, }; return { init: init, }; })(); })(); (function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.colors = (function () { var els = {}; var init = function () { els.section = document.querySelector(".highlights-colors"); if (!!els.section) { setElements(); bindEvents(); } }; var setElements = function () { els.colors = els.section.querySelectorAll( ".highlights-colors__tab-button" ); els.panel = els.section.querySelectorAll( ".highlights-colors__tab-panel" ); els.colorName = els.section.querySelectorAll( ".highlights-colors__tab-name" ); els.popupBtn = els.section.querySelector(".common-cta-encased"); }; var bindEvents = function () { for (var i = 0; i < els.colors.length; i++) { els.colors[i].index = i; els.colors[i].addEventListener("click", onClickColorItem); if (els.colors[i].classList.contains("is-active")) { els.popupBtn.setAttribute( "data-model-color", els.panel[els.colors[i].index].getAttribute("id") ); } } }; var onClickColorItem = function () { var oldColor = els.section.querySelector( ".highlights-colors__tab .is-active" ), oldPanel = els.section.querySelector( ".highlights-colors__tab-panel-group .is-active" ), oldColorName = els.section.querySelector( ".highlights-colors__tab-names .is-active" ), index = this.index; // colorchip if (!this.classList.contains("is-active")) { oldColor.classList.remove("is-active"); oldColor.setAttribute("aria-selected", false); this.classList.add("is-active"); this.setAttribute("aria-selected", true); } // panel if (!els.panel[index].classList.contains("is-active")) { oldPanel.classList.remove("is-active"); oldPanel.setAttribute("aria-hidden", true); els.panel[index].classList.add("is-active"); els.panel[index].setAttribute("aria-hidden", false); els.popupBtn.setAttribute( "data-model-color", els.panel[index].getAttribute("id") ); } // colors name if (!els.colorName[index].classList.contains("is-active")) { oldColorName.classList.remove("is-active"); oldColorName.setAttribute("aria-hidden", true); els.colorName[index].classList.add("is-active"); els.colorName[index].setAttribute("aria-hidden", false); } }; return { init: init, }; })(); })(); (function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.design = (function () { var els = {}, objs = {}, utils = window.flagship.common.utils; var init = function () { els.section = document.querySelector(".highlights-design"); if (!!els.section) { setElements(); objList.setVideo(); objList.setScene(); bindEvents(); } }; var setElements = function () { els.scrollVideoWrap = els.section.querySelector(".js-scroll-video"); els.scrollVideo = els.section.querySelector( ".js-scroll-video .common-video__figure>video" ); els.scrollController = els.section.querySelector( ".js-scroll-video .common-video__control" ); els.scrollControllerBlindText = els.scrollController.querySelector(".blind"); }; var bindEvents = function () { window.addEventListener("scroll", handlerList.scroll); els.scrollController.addEventListener("click", handlerList.videoCta); handlerList.scroll(); }; var objList = { setVideo: function () { objs.designVideo = ANIUTIL.videoHandler({ playType: "scrollPlay", startPoint: 20, reversePoint: 77, wrap: els.scrollVideoWrap, video: els.scrollVideo, resetCallback: function () { if (els.scrollVideoWrap.classList.contains("is-completed")) { els.scrollVideoWrap.classList.remove("is-completed"); } }, playCallback: function () { els.scrollControllerBlindText.innerText = "pause"; setTagging.pause(); }, pauseCallback: function () { els.scrollControllerBlindText.innerText = "play"; setTagging.play(); }, endCallback: function () { if (!els.scrollVideoWrap.classList.contains("is-completed")) { els.scrollVideoWrap.classList.add("is-completed"); } }, }); }, setScene: function () { objs.scene = SCROLLER({ trackElement: els.scrollVideo, useFixed: false, resize: utils.detector.isTouchDevice ? false : true, }); }, }; var handlerList = { scroll: function () { objs.scene.trackAnimation(function () { objs.designVideo.scrollActive(this.progress); }); }, videoCta: function () { if (els.scrollVideo.paused) { els.scrollVideo.play(); } else { els.scrollVideo.pause(); } }, }; var setTagging = { play: function () { if (els.scrollController.hasAttribute("data-omni")) { var dataOmni = els.scrollController .getAttribute("data-omni") .toLowerCase(); els.scrollController.setAttribute( "data-omni", dataOmni.replace("pause", "play") ); } if (els.scrollController.hasAttribute("ga-la")) { var gaLa = els.scrollController .getAttribute("ga-la") .toLowerCase(); els.scrollController.setAttribute( "ga-la", gaLa.replace("pause", "play") ); } }, pause: function () { if (els.scrollController.hasAttribute("data-omni")) { var dataOmni = els.scrollController .getAttribute("data-omni") .toLowerCase(); els.scrollController.setAttribute( "data-omni", dataOmni.replace("play", "pause") ); } if (els.scrollController.hasAttribute("ga-la")) { var gaLa = els.scrollController .getAttribute("ga-la") .toLowerCase(); els.scrollController.setAttribute( "ga-la", gaLa.replace("play", "pause") ); } }, }; return { init: init, }; })(); })(); (function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.durability = (function () { var els = {}, utils = window.flagship.common.utils; var init = function () { els.section = document.querySelector(".highlights-durability"); if (!!els.section) { setElements(); setProperty(); bindEvents(); } }; var setElements = function () { els.durabilityItemWrap = els.section.querySelector( ".highlights-durability__list" ); els.durabilityItem = els.section.querySelectorAll( ".highlights-durability__item" ); }; var setProperty = function () { for (var i = 0; i < els.durabilityItem.length; i++) { els.durabilityItem[i].btn = els.durabilityItem[i].querySelector( ".highlights-durability__item-button" ); els.durabilityItem[i].desc = els.durabilityItem[i].querySelector( ".highlights-durability__item-description" ); els.durabilityItem[i].img = els.durabilityItem[i].querySelector( ".highlights-durability__item-image" ); if (!els.durabilityItem[i].classList.contains("is-open")) utils.onAccessibility(els.durabilityItem[i].img); } }; var bindEvents = function () { window.addEventListener("DOMContentLoaded", onLoadHandler, { once: true, }); for (var i = 0; i < els.durabilityItem.length; i++) { els.durabilityItem[i].btn.addEventListener("click", onClickItemBtn); } }; var onLoadHandler = function () { els.durabilityItem[0].desc.style.display = "block"; }; var onClickItemBtn = function () { var currentItem = this.parentElement.parentElement, oldItem = els.durabilityItemWrap.querySelector(".is-open"), dataOmni = this.getAttribute("data-omni"), gaLa = this.getAttribute("ga-la"); if ( currentItem != oldItem && !currentItem.classList.contains("is-open") ) { oldItem.setAttribute("aria-expanded", false); utils.onAccessibility(oldItem.img); this.setAttribute("aria-expanded", true); utils.offAccessibility(currentItem.img); $(oldItem.desc).slideUp(300); $(currentItem.desc).slideDown(300); setTimeout(function () { oldItem.classList.remove("is-open"); currentItem.classList.add("is-open"); }, 100); this.setAttribute("data-omni", dataOmni.replace("open", "close")); this.setAttribute("ga-la", gaLa.replace("open", "close")); } }; return { init: init, }; })(); })(); (function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.excellence = (function () { var els = {}, objs = {}, resize = window.flagship.common.resize, utils = window.flagship.common.utils, currDevice = null, prevDevice = null; var init = function () { els.section = document.querySelector(".highlights-excellence"); if (!!els.section) { setElements(); setProperty(); bindEvents(); } }; var setElements = function () { els.contentWrap = document.querySelector("#wrap"); els.sceneTrack = els.section.querySelector( ".highlights-excellence__fixed-track" ); els.sceneFixed = els.section.querySelector( ".highlights-excellence__fixed-item" ); els.item = els.section.querySelectorAll( ".highlights-excellence__item" ); els.accBanner = document.querySelector(".highlights-accessories"); // swiper els.swiper = null; els.swiperEl = els.section.querySelector( ".highlights-excellence__carousel" ); els.swiperSlides = els.swiperEl.querySelectorAll( ".highlights-excellence__item" ); els.swiperNavArrowNext = els.swiperEl.querySelector( ".swiper-button-next" ); els.swiperNavArrowPrev = els.swiperEl.querySelector( ".swiper-button-prev" ); els.arrowTimeout = null; els.orientationTimeout = null; }; var setProperty = function () { for (var i = 0; i < els.item.length; i++) { var clickable = els.item[i].querySelectorAll("a, button"); if (clickable.length > 0) { for (var j = 0; j < clickable.length; j++) { clickable[j].item = els.item[i]; clickable[j].addEventListener("keydown", onFocusClickable); } } } }; var objList = { setScene: function () { if (objs.scene == null) { objs.scene = SCROLLER({ trackElement: els.sceneTrack, fixedElement: els.sceneFixed, useFixed: utils.detector.isIEorEdge < 0 ? false : true, useSticky: utils.detector.isIEorEdge < 0 ? true : false, trackHeight: 1.5, correction: -1, useStrictMode: false, }); } }, }; var bindEvents = function () { window.addEventListener("DOMContentLoaded", onLoadHandler, { once: true, }); window.addEventListener("scroll", scrollerHandlerList.onScroller); window.addEventListener("orientationchange", function () { clearTimeout(els.orientationTimeout); els.orientationTimeout = setTimeout(function () { checkBrokenFixed(); setCard(); }, 1000); }); els.swiperNavArrowNext.addEventListener( "click", swiperEvents.onClickArrow ); els.swiperNavArrowNext.addEventListener( "keydown", swiperEvents.onClickArrow ); els.swiperNavArrowPrev.addEventListener( "click", swiperEvents.onClickArrow ); els.swiperNavArrowPrev.addEventListener( "keydown", swiperEvents.onClickArrow ); resize.add(onResizeHandler); }; var onLoadHandler = function () { currDevice = resize.checkResolution(); prevDevice = currDevice; setTimeout(function () { checkBrokenFixed(); setCard(); }, 100); }; var onResizeHandler = function (currRes) { currDevice = currRes; if (currDevice != prevDevice) { onResponsiveHandler(); prevDevice = currDevice; } else if (!utils.detector.isTouchDevice) { checkBrokenFixed(); } setCard(); }; var onResponsiveHandler = function () { if (currDevice.indexOf("mobile") > -1) { els.accBanner.style.marginTop = ""; } checkBrokenFixed(); }; var setCard = function () { var slideMargin = parseInt( window.getComputedStyle(els.swiperSlides[0]).marginLeft ), slideWidth = els.swiperSlides[0].clientWidth + slideMargin * 2, slideWrapWidth = slideWidth * els.swiperSlides.length, innerWidth = els.section.querySelector(".common-inner").clientWidth, contentWrapWidth = els.contentWrap.clientWidth, currSize = (contentWrapWidth - innerWidth) / 2, SlideTotalSize = slideWrapWidth + currSize; if (document.documentElement.classList.contains("is-broken-fixed")) { scrollerHandlerList.destroyScroller(); if (els.swiper != null) swiperEvents.destroy(); } else { if (currDevice.indexOf("mobile") == -1) { if (els.swiper != null) swiperEvents.destroy(); if (els.item.length > 3 || contentWrapWidth < SlideTotalSize) { objList.setScene(); scrollerHandlerList.onScroller(); } else { scrollerHandlerList.destroyScroller(); } } else { scrollerHandlerList.destroyScroller(); setSwiper(); } } }; // scroller var scrollerHandlerList = { onScroller: function () { if (objs.scene != null) { if ( !document.documentElement.classList.contains("is-broken-fixed") ) { var outerHeight = els.sceneFixed.clientHeight, innerHeight = els.sceneFixed.querySelector(".common-inner").clientHeight, accMarginTop = (outerHeight - innerHeight) / 2 - utils.getNavHeight(), accValue = accMarginTop < 0 ? 0 : accMarginTop; els.accBanner.style.marginTop = -accValue + "px"; } objs.scene.trackAnimation(function () { if (this.progress > -10 && this.progress < 100) { var slideMargin = parseInt( window.getComputedStyle(els.swiperSlides[0]).marginLeft ), slideWidth = els.swiperSlides[0].clientWidth + slideMargin * 2, slideWrapWidth = slideWidth * els.swiperSlides.length, innerWidth = els.section.querySelector(".common-inner").clientWidth, contentWrapWidth = els.contentWrap.clientWidth, moveSize = slideWrapWidth - contentWrapWidth, currSize = contentWrapWidth - innerWidth, slideValue = moveSize + currSize; transValue = ANIUTIL.calRange({ targetValue: slideValue, progress: this.progress, startPoint: 0, endPoint: 20, }); var tweener = new TweenMax(els.swiperEl, 0.2, { x: transValue * (utils.isRTL() ? 1 : -1) + "px", ease: "none", }); tweener.updateTo( { x: transValue * (utils.isRTL() ? 1 : -1) + "px", }, true ); } }); } }, destroyScroller: function () { if (objs.scene != null) { objs.scene.destroy(true, true); objs.scene = null; els.swiperEl.style = ""; els.sceneTrack.style = ""; } }, }; // swiper var setSwiper = function () { if (els.swiper == null) { els.swiper = new Swiper(els.swiperEl, { init: false, centeredSlides: true, slidesPerView: "auto", navigation: { nextEl: els.swiperNavArrowNext, prevEl: els.swiperNavArrowPrev, }, }); els.swiper.init(); els.swiper.on("init", swiperEvents.init); els.swiper.on("slideChange", swiperEvents.slideChange); } }; var swiperEvents = { init: function () { var notification = this.el.querySelector(".swiper-notification"); if (!!notification) this.el.removeChild(notification); setAccessibility.slide(); setAccessibility.arrow(); }, slideChange: function () { setAccessibility.slide(); setAccessibility.arrow(); }, destroy: function () { if (els.swiper != null) { els.swiper.destroy(true); els.swiper = null; } }, onClickArrow: function (e) { if ( (e.type == "keydown" && e.keyCode == 13) || (e.type == "click" && document.documentElement.classList.contains("isTouchDevice")) ) { e.preventDefault(); clearTimeout(els.arrowTimeout); els.arrowTimeout = setTimeout(function () { if (els.swiper.isBeginning && !els.swiper.isEnd) { els.swiperNavArrowNext.focus(); } else if (!els.swiper.isBeginning && els.swiper.isEnd) { els.swiperNavArrowPrev.focus(); } }, 300); } }, }; var setAccessibility = { slide: function () { for (var i = 0; i < els.swiper.slides.length; i++) { if (i != els.swiper.snapIndex) { utils.onAccessibility(els.swiper.slides[i]); } else { utils.offAccessibility(els.swiper.slides[i]); } } }, arrow: function () { if (els.swiper.isBeginning && !els.swiper.isEnd) { utils.offAccessibility(els.swiperNavArrowNext); utils.onAccessibility(els.swiperNavArrowPrev); } else if (!els.swiper.isBeginning && els.swiper.isEnd) { utils.offAccessibility(els.swiperNavArrowPrev); utils.onAccessibility(els.swiperNavArrowNext); } else { utils.offAccessibility(els.swiperNavArrowNext); utils.offAccessibility(els.swiperNavArrowPrev); } }, }; var checkBrokenFixed = function () { if (currDevice.indexOf("mobile") == -1) { var widHeight = window.innerHeight - utils.getNavHeight(), headLineHeight = els.sceneFixed.querySelector( ".common-sub-headline" ).clientHeight, carouselMarginTop = parseInt( window.getComputedStyle(els.swiperEl).marginTop ), itemHeightArr = [], maxHeight = null, cardHeight = null; for (var i = 0; i < els.swiperSlides.length; i++) { itemHeightArr.push(els.swiperSlides[i].clientHeight); } maxHeight = itemHeightArr.reduce(function (prev, itemArr) { return Math.max(prev, itemArr); }); cardHeight = maxHeight; totalHeight = headLineHeight + carouselMarginTop + cardHeight; if (widHeight <= totalHeight) { document.documentElement.classList.add("is-broken-fixed"); } else { document.documentElement.classList.remove("is-broken-fixed"); } } else { document.documentElement.classList.remove("is-broken-fixed"); } }; var onFocusClickable = function (e) { var targetItem = this.item, targetIndex = [].indexOf.call(els.swiperSlides, targetItem); if (objs.scene != null) { var startScroll = els.sceneTrack.getBoundingClientRect().top + window.pageYOffset, maxScroll = startScroll + parseInt(window.getComputedStyle(els.sceneTrack).height) / 2; els.sceneFixed.scrollLeft = 0; if (e.type == "keydown" && targetIndex >= 3) { window.scrollTo(0, maxScroll); } else { window.scrollTo(0, startScroll); } } }; return { init: init, }; })(); })(); (function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.exclusive = (function () { var els = {}; var init = function () { els.section = document.querySelector(".highlights-exclusive"); if (!!els.section) { setElements(); bindEvents(); } }; var setElements = function () { els.colors = els.section.querySelectorAll( ".highlights-exclusive__tab-button" ); els.panel = els.section.querySelectorAll( ".highlights-exclusive__tab-panel" ); els.info = els.section.querySelectorAll( ".highlights-exclusive__tab-info" ); els.popupBtn = els.section.querySelector(".common-cta-encased"); }; var bindEvents = function () { for (var i = 0; i < els.colors.length; i++) { els.colors[i].index = i; els.colors[i].addEventListener("click", onClickColorItem); if (els.colors[i].classList.contains("is-active")) { els.popupBtn.setAttribute( "data-model-color", els.panel[els.colors[i].index].getAttribute("id") ); } } }; var onClickColorItem = function () { var oldColor = els.section.querySelector( ".highlights-exclusive__tab .is-active" ), oldPanel = els.section.querySelector( ".highlights-exclusive__tab-panel-group .is-active" ), oldInfo = els.section.querySelector( ".highlights-exclusive__tab-info-wrap .is-active" ), index = this.index; // colorchip if (!this.classList.contains("is-active")) { oldColor.classList.remove("is-active"); oldColor.setAttribute("aria-selected", false); this.classList.add("is-active"); this.setAttribute("aria-selected", true); } // panel if (!els.panel[index].classList.contains("is-active")) { oldPanel.classList.remove("is-active"); oldPanel.setAttribute("aria-hidden", true); els.panel[index].classList.add("is-active"); els.panel[index].setAttribute("aria-hidden", false); els.popupBtn.setAttribute( "data-model-color", els.panel[index].getAttribute("id") ); } // colors name if (!els.info[index].classList.contains("is-active")) { oldInfo.classList.remove("is-active"); oldInfo.setAttribute("aria-hidden", true); els.info[index].classList.add("is-active"); els.info[index].setAttribute("aria-hidden", false); } }; return { init: init, }; })(); })(); (function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.faq = (function () { var els = {}, utils = window.flagship.common.utils; var init = function () { els.section = document.querySelector(".highlights-faq"); if (!!els.section) { setElements(); bindEvents(); } }; var setElements = function () { els.faqItems = els.section.querySelectorAll(".highlights-faq__item"); }; var bindEvents = function () { for (var i = 0; i < els.faqItems.length; i++) { els.faqItems[i].arrowBtn = els.faqItems[i].querySelector( ".highlights-faq__item button" ); els.faqItems[i].arrowBtn.index = i; els.faqItems[i].answer = els.faqItems[i].querySelector( ".highlights-faq__answer" ); els.faqItems[i].cta = els.faqItems[i].querySelector( ".highlights-faq__cta" ); els.faqItems[i].arrowBtn.addEventListener("click", onClickFaqBtn); if (els.faqItems[i].cta) { els.faqItems[i].cta.addEventListener("click", onClickFaqCta); } } }; var onClickFaqBtn = function () { var index = this.index, parentWrap = els.faqItems[index], dataOmni = this.getAttribute("data-omni"), gaLa = this.getAttribute("ga-la"), self = this; if (!parentWrap.classList.contains("is-open")) { parentWrap.classList.add("is-open"); $(parentWrap.answer).stop().slideDown(300); this.setAttribute("aria-expanded", true); setTimeout(function () { self.setAttribute("data-omni", dataOmni.replace("open", "close")); self.setAttribute("ga-la", gaLa.replace("open", "close")); }, 50); } else { parentWrap.classList.remove("is-open"); $(parentWrap.answer).stop().slideUp(250); this.setAttribute("aria-expanded", false); setTimeout(function () { self.setAttribute("data-omni", dataOmni.replace("close", "open")); self.setAttribute("ga-la", gaLa.replace("close", "open")); }, 50); } }; var onClickFaqCta = function (e) { if (this.getAttribute("href").indexOf("#") == 0) { e.preventDefault(); var faqId = this.getAttribute("href").split("#")[1], section = document.querySelector("#" + faqId), sectionTop = section.getBoundingClientRect().top, navHeight = faqId === "camera" ? 0 : utils.getNavHeight(), faqScroll = window.pageYOffset + sectionTop - navHeight, sectionTimeout = null; clearTimeout(sectionTimeout); sectionTimeout = setTimeout(function () { if (!!section.querySelectorAll("button, a")[0]) { section.querySelectorAll("button, a")[0].focus(); } else { section .querySelector(".common-eyebrow") .setAttribute("tabindex", 0); section.querySelector(".common-eyebrow").focus(); section .querySelector(".common-eyebrow") .addEventListener("focusout", function () { section .querySelector(".common-eyebrow") .removeAttribute("tabindex"); }); } }, 20); window.scrollTo(0, faqScroll); } }; return { init: init, }; })(); })(); (function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.hinge = (function () { var els = {}, objs = {}, utils = window.flagship.common.utils; var init = function () { els.section = document.querySelector(".highlights-hinge"); if (!!els.section) { setElements(); objList.setVideo(); objList.setScene(); bindEvents(); } }; var setElements = function () { els.scrollVideoWrap = els.section.querySelector(".js-scroll-video"); els.scrollVideo = els.section.querySelector( ".js-scroll-video .common-video__figure>video" ); els.scrollController = els.section.querySelector( ".js-scroll-video .common-video__control" ); els.scrollControllerBlindText = els.scrollController.querySelector(".blind"); }; var bindEvents = function () { window.addEventListener("scroll", handlerList.scroll); els.scrollController.addEventListener("click", handlerList.videoCta); handlerList.scroll(); }; var objList = { setVideo: function () { objs.hingeVideo = ANIUTIL.videoHandler({ playType: "scrollPlay", startPoint: 5, reversePoint: 90, wrap: els.scrollVideoWrap, video: els.scrollVideo, resetCallback: function () { if (els.scrollVideoWrap.classList.contains("is-completed")) { els.scrollVideoWrap.classList.remove("is-completed"); } }, playCallback: function () { els.scrollControllerBlindText.innerText = "pause"; setTagging.pause(); }, pauseCallback: function () { els.scrollControllerBlindText.innerText = "play"; setTagging.play(); }, endCallback: function () { if (!els.scrollVideoWrap.classList.contains("is-completed")) { els.scrollVideoWrap.classList.add("is-completed"); } }, }); }, setScene: function () { objs.scene = SCROLLER({ trackElement: els.scrollVideo, useFixed: false, resize: utils.detector.isTouchDevice ? false : true, }); }, }; var handlerList = { scroll: function () { objs.scene.trackAnimation(function () { objs.hingeVideo.scrollActive(this.progress); }); }, videoCta: function () { if (els.scrollVideo.paused) { els.scrollVideo.play(); } else { els.scrollVideo.pause(); } }, }; var setTagging = { play: function () { if (els.scrollController.hasAttribute("data-omni")) { var dataOmni = els.scrollController .getAttribute("data-omni") .toLowerCase(); els.scrollController.setAttribute( "data-omni", dataOmni.replace("pause", "play") ); } if (els.scrollController.hasAttribute("ga-la")) { var gaLa = els.scrollController .getAttribute("ga-la") .toLowerCase(); els.scrollController.setAttribute( "ga-la", gaLa.replace("pause", "play") ); } }, pause: function () { if (els.scrollController.hasAttribute("data-omni")) { var dataOmni = els.scrollController .getAttribute("data-omni") .toLowerCase(); els.scrollController.setAttribute( "data-omni", dataOmni.replace("play", "pause") ); } if (els.scrollController.hasAttribute("ga-la")) { var gaLa = els.scrollController .getAttribute("ga-la") .toLowerCase(); els.scrollController.setAttribute( "ga-la", gaLa.replace("play", "pause") ); } }, }; return { init: init, }; })(); })(); (function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.performanceDisplay = (function () { var els = {}, objs = {}; var init = function () { els.section = document.querySelector( ".highlights-performance__display-wrap" ); if (!!els.section) { setElements(); setScene(); bindEvents(); } }; var setElements = function () { els.imageWrap = els.section.querySelector( ".highlights-performance__image-wrap" ); els.afterImage = els.imageWrap.querySelector( ".highlights-performance__image--after" ); }; var bindEvents = function () { window.addEventListener("scroll", scrollHandler); }; var setScene = function () { objs.scene = SCROLLER({ trackElement: els.afterImage, useFixed: false, }); }; var scrollHandler = function () { objs.scene.trackAnimation(function () { var value = ANIUTIL.calRange({ targetValue: 1, progress: this.progress, startPoint: 20, endPoint: 50, }); TweenMax.to(els.afterImage, 0.3, { opacity: value, }); }); }; return { init: init, }; })(); })(); (function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.performanceVideo = (function () { var els = {}, objs = {}, utils = window.flagship.common.utils, resize = window.flagship.common.resize; currDevice = resize.checkResolution(); var init = function () { els.section = document.querySelector( ".highlights-performance__video" ); if (!!els.section) { setElements(); objList.setVideo(); objList.setScene(); bindEvents(); } }; var setElements = function () { els.scrollVideoWrap = els.section.querySelector(".js-scroll-video"); els.scrollVideo = els.section.querySelector( ".js-scroll-video .common-video__figure>video" ); els.scrollController = els.section.querySelector( ".js-scroll-video .common-video__control" ); els.scrollControllerBlindText = els.scrollController.querySelector(".blind"); }; var bindEvents = function () { window.addEventListener("scroll", handlerList.scroll); els.scrollController.addEventListener("click", handlerList.videoCta); handlerList.scroll(); resize.add(onResizeHandler); }; var onResizeHandler = function (currRes) { currDevice = currRes; }; var objList = { setVideo: function () { objs.productivityVideo = ANIUTIL.videoHandler({ playType: "scrollPlay", startPoint: 20, reversePoint: currDevice.indexOf("mobile") > -1 ? 81 : 80, wrap: els.scrollVideoWrap, video: els.scrollVideo, resetCallback: function () { if (els.scrollVideoWrap.classList.contains("is-completed")) { els.scrollVideoWrap.classList.remove("is-completed"); } }, playCallback: function () { els.scrollControllerBlindText.innerText = "pause"; setTagging.pause(); }, pauseCallback: function () { els.scrollControllerBlindText.innerText = "play"; setTagging.play(); }, endCallback: function () { if (!els.scrollVideoWrap.classList.contains("is-completed")) { els.scrollVideoWrap.classList.add("is-completed"); } }, }); }, setScene: function () { objs.scene = SCROLLER({ trackElement: els.scrollVideo, useFixed: false, resize: utils.detector.isTouchDevice ? false : true, }); }, }; var handlerList = { scroll: function () { objs.scene.trackAnimation(function () { objs.productivityVideo.scrollActive(this.progress); }); }, videoCta: function () { if (els.scrollVideo.paused) { els.scrollVideo.play(); } else { els.scrollVideo.pause(); } }, }; var setTagging = { play: function () { if (els.scrollController.hasAttribute("data-omni")) { var dataOmni = els.scrollController .getAttribute("data-omni") .toLowerCase(); els.scrollController.setAttribute( "data-omni", dataOmni.replace("pause", "play") ); } if (els.scrollController.hasAttribute("ga-la")) { var gaLa = els.scrollController .getAttribute("ga-la") .toLowerCase(); els.scrollController.setAttribute( "ga-la", gaLa.replace("pause", "play") ); } }, pause: function () { if (els.scrollController.hasAttribute("data-omni")) { var dataOmni = els.scrollController .getAttribute("data-omni") .toLowerCase(); els.scrollController.setAttribute( "data-omni", dataOmni.replace("play", "pause") ); } if (els.scrollController.hasAttribute("ga-la")) { var gaLa = els.scrollController .getAttribute("ga-la") .toLowerCase(); els.scrollController.setAttribute( "ga-la", gaLa.replace("play", "pause") ); } }, }; return { init: init, }; })(); })(); (function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.portability = (function () { var els = {}, resize = window.flagship.common.resize, currDevice = resize.checkResolution(); var init = function () { els.section = document.querySelector(".highlights-portability"); if (!!els.section) { setElements(); bindEvents(); } }; var setElements = function () { els.textWrap = els.section.querySelector( ".highlights-portability__text" ); }; var bindEvents = function () { window.addEventListener("DOMContentLoaded", onLoadHandler, { once: true, }); resize.add(resizeHandler); }; var resizeHandler = function (currRes) { currDevice = currRes; checkTextHeight(); }; var onLoadHandler = function () { checkTextHeight(); }; var checkTextHeight = function () { var textHeight = els.textWrap.getBoundingClientRect().height; if ( currDevice && currDevice.indexOf("mobile") > -1 && textHeight > 541 ) { if (!els.section.classList.contains("is-text-overflow")) { els.section.classList.add("is-text-overflow"); } } else { if (els.section.classList.contains("is-text-overflow")) { els.section.classList.remove("is-text-overflow"); } } }; return { init: init, }; })(); })(); (function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.productivity = (function () { var els = {}, objs = {}, utils = window.flagship.common.utils, resize = window.flagship.common.resize, currDevice = resize.checkResolution(); var init = function () { els.section = document.querySelector(".highlights-productivity"); if (!!els.section) { setElements(); objList.setVideo(); objList.setScene(); bindEvents(); } }; var setElements = function () { els.scrollVideoWrap = els.section.querySelector(".js-scroll-video"); els.scrollVideo = els.section.querySelector( ".js-scroll-video .common-video__figure>video" ); els.scrollController = els.section.querySelector( ".js-scroll-video .common-video__control" ); els.scrollControllerBlindText = els.scrollController.querySelector(".blind"); }; var bindEvents = function () { window.addEventListener("scroll", handlerList.scroll); els.scrollController.addEventListener("click", handlerList.videoCta); handlerList.scroll(); resize.add(resizeHandler); }; var resizeHandler = function (currRes) { currDevice = currRes; }; var objList = { setVideo: function () { objs.productivityVideo = ANIUTIL.videoHandler({ playType: "scrollPlay", startPoint: 32, reversePoint: currDevice.indexOf("mobile") > -1 ? 70 : 85, wrap: els.scrollVideoWrap, video: els.scrollVideo, resetCallback: function () { if (els.scrollVideoWrap.classList.contains("is-completed")) { els.scrollVideoWrap.classList.remove("is-completed"); } }, playCallback: function () { els.scrollControllerBlindText.innerText = "pause"; setTagging.pause(); }, pauseCallback: function () { els.scrollControllerBlindText.innerText = "play"; setTagging.play(); }, endCallback: function () { if (!els.scrollVideoWrap.classList.contains("is-completed")) { els.scrollVideoWrap.classList.add("is-completed"); } }, }); }, setScene: function () { objs.scene = SCROLLER({ trackElement: els.scrollVideo, useFixed: false, resize: utils.detector.isTouchDevice ? false : true, }); }, }; var handlerList = { scroll: function () { objs.scene.trackAnimation(function () { objs.productivityVideo.scrollActive(this.progress); }); }, videoCta: function () { if (els.scrollVideo.paused) { els.scrollVideo.play(); } else { els.scrollVideo.pause(); } }, }; var setTagging = { play: function () { if (els.scrollController.hasAttribute("data-omni")) { var dataOmni = els.scrollController .getAttribute("data-omni") .toLowerCase(); els.scrollController.setAttribute( "data-omni", dataOmni.replace("pause", "play") ); } if (els.scrollController.hasAttribute("ga-la")) { var gaLa = els.scrollController .getAttribute("ga-la") .toLowerCase(); els.scrollController.setAttribute( "ga-la", gaLa.replace("pause", "play") ); } }, pause: function () { if (els.scrollController.hasAttribute("data-omni")) { var dataOmni = els.scrollController .getAttribute("data-omni") .toLowerCase(); els.scrollController.setAttribute( "data-omni", dataOmni.replace("play", "pause") ); } if (els.scrollController.hasAttribute("ga-la")) { var gaLa = els.scrollController .getAttribute("ga-la") .toLowerCase(); els.scrollController.setAttribute( "ga-la", gaLa.replace("play", "pause") ); } }, }; return { init: init, }; })(); })(); (function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.viewer = (function () { var els = {}, status = {}, resize = window.flagship.common.resize, utils = window.flagship.common.utils, currDevice = resize.checkResolution(); var init = function () { els.viewerBtns = document.querySelectorAll(".viewer-btn"); if (els.viewerBtns.length > 0) { setElements(); setStatus(); setPopup(); bindEvents(); } }; var setElements = function () { els.wrapEl = document.querySelector("#wrap"); els.contents = document.querySelector("#contents"); // popup els.popup = document.querySelector(".highlights-viewer"); els.popupContents = els.popup.querySelector( ".common-popup__contents" ); els.popupInner = els.popup.querySelector(".common-popup__inner"); els.popupWrap = els.popup.querySelector(".common-popup__wrap"); els.closeCta = els.popup.querySelector(".common-popup__close-cta"); els.viewerWrap = els.popup.querySelector(".highlights-viewer__wrap"); els.viewerContainer = els.popup.querySelector( ".highlights-viewer__container" ); els.viewerIframe = els.popup.querySelector( ".highlights-viewer__container-viewer" ); // popup-scroll els.popupScroll = els.popup.querySelector( ".highlights-viewer__scroll" ); els.popupScrollUpBtn = els.popup.querySelector( ".highlights-viewer__scroll-btn--up" ); els.popupScrollDownBtn = els.popup.querySelector( ".highlights-viewer__scroll-btn--down" ); // infoPopup els.infoBtn = els.popup.querySelector( ".highlights-viewer__title-cta" ); els.infoCloseBtn = els.popup.querySelector( ".highlights-viewer__header-close-cta" ); els.infoDimmed = els.popup.querySelector( ".highlights-viewer__dimmed" ); // timeout els.resizeTimeout = null; els.resizeInnerTimeout = null; // viewer els.viewerOpener = null; els.viewerModel = ""; els.viewerColor = ""; }; var setStatus = function () { status.viewerBaseUrl = "//www.samsung.com/global/galaxy/3d-360/viewer/?"; status.defaultParams = "&gesture_guide=0"; status.defaultParams += "&bgcolor=transparent"; status.defaultParams += "&skin=colorlayer"; status.defaultParams += "&theme=roundlayer"; status.defaultParams += "&intro=1"; status.defaultParams += "&ruler=1"; status.defaultParams += "&breakpoint_criteria=outer"; status.defaultParams += "&breakpoint_desktop_width=1024"; status.defaultParams += "&intro_pose=2"; status.defaultParams += "&intro_pose_once=1"; status.defaultParams += "&intro_pose_hold=1"; status.moPoseReady = false; status.isExclusive = false; status.isHash = false; }; var bindEvents = function () { window.addEventListener("DOMContentLoaded", onLoadHandler, { once: true, }); window.addEventListener("message", onReceiveV3DMessage, false); //els.popupContents.addEventListener('scroll', onScrollPopupContents); els.viewerIframe.addEventListener( "DOMContentLoaded", viewerEvents.onLoadLayerPopupIframe ); els.popupScroll.addEventListener( "click", layerPopupScrollHandler.onClickLayerScroll ); resize.add(onResizeHandler); }; var onLoadHandler = function () { setViewerWrap.innerWrapHeight(); setViewerWrap.layerScroll(); }; var onResizeHandler = function (currRes) { currDevice = currRes; if (utils.detector.isTouchDevice && !utils.detector.isIosDevice) setViewerWrap.innerWrapHeight(); setViewerWrap.layerScroll(); }; var setViewerWrap = { innerWrapHeight: function () { clearTimeout(els.resizeInnerTimeout); els.resizeInnerTimeout = setTimeout(function () { if (els.popupInner) { els.popupInner.style.height = parseInt(window.innerHeight * 0.9) + "px"; } }, 0); }, layerScroll: function () { clearTimeout(els.resizeTimeout); els.resizeTimeout = setTimeout(function () { layerPopupScrollHandler.setLayerScroll(); }, 300); }, }; var setPopup = function () { for (var i = 0; i < els.viewerBtns.length; i++) { utils.layerPopup({ layerPopup: els.popup, openerEvent: { element: els.viewerBtns[i], }, closeCta: els.closeCta, moveTarget: document.documentElement, contents: els.contents, show: { start: function (target) { els.popup.classList.add("is-init"); viewerEvents.show(target.openerCta); }, end: function () { if (utils.detector.isIosDevice) els.popup.style.display = "block"; els.popup.classList.add("is-open"); if (els.popup.classList.contains("is-info-open")) { setTimeout(function () { els.infoCloseBtn.focus(); }, 500); } }, }, hide: { start: function (target) { if (utils.detector.isIosDevice) target.openerCta.style.display = ""; target.openerCta.focus(); els.popup.classList.remove("is-open"); }, end: function () { setTimeout(function () { els.popup.classList.remove("is-init"); }, 300); viewerEvents.hide(); }, }, }); } }; var viewerEvents = { show: function (viewerOpener) { if (viewerOpener.classList.contains("viewer-btn")) { status.isHash = false; els.viewerOpener = viewerOpener; } else { status.isHash = true; if (window.location.hash == "#colors-see-in-360") { els.viewerOpener = els.viewerBtns[0]; } else { els.viewerOpener = els.viewerBtns[1]; } } status.isExclusive = els.viewerOpener.getAttribute("data-hash") == "online-exclusive-color-see-in-360" ? true : false; els.viewerModel = els.viewerOpener.getAttribute("data-model-name"); els.viewerColor = els.viewerOpener.getAttribute("data-model-color"); els.viewerIframe.setAttribute("src", getViewerUrl()); if ( (currDevice && currDevice.indexOf("mobile") > -1) || currDevice == "tablet" ) { viewerEvents.infoPopupShow(); } els.infoBtn.addEventListener("click", function () { viewerEvents.infoPopupShow(); setTimeout(function () { els.infoCloseBtn.focus(); }, 400); }); els.popupWrap.addEventListener( "click", viewerEvents.onclickViewerDimmed ); }, hide: function () { els.viewerModel = ""; els.viewerIframe.setAttribute("src", "about:blank"); if (status.isHash) { setTimeout(function () { els.viewerOpener.focus(); }, 300); } }, infoPopupShow: function () { if (!els.popup.classList.contains("is-info-open")) { els.popup.classList.add("is-info-open"); els.infoCloseBtn.addEventListener( "click", viewerEvents.infoPopupHide ); els.infoDimmed.addEventListener( "click", viewerEvents.infoPopupHide ); setTimeout(function () { els.closeCta.setAttribute("tabindex", -1); els.closeCta.setAttribute("aria-hidden", true); els.infoBtn.setAttribute("tabindex", -1); els.infoBtn.setAttribute("aria-hidden", true); els.viewerContainer.setAttribute("tabindex", -1); els.viewerContainer.setAttribute("aria-hidden", true); }, 100); } }, infoPopupHide: function () { if (els.popup.classList.contains("is-info-open")) { els.popup.classList.remove("is-info-open"); setTimeout(function () { els.infoBtn.focus(); }, 300); setTimeout(function () { els.closeCta.removeAttribute("tabindex"); els.closeCta.removeAttribute("aria-hidden"); els.infoBtn.removeAttribute("tabindex"); els.infoBtn.removeAttribute("aria-hidden"); els.viewerContainer.removeAttribute("tabindex"); els.viewerContainer.removeAttribute("aria-hidden"); }, 100); } }, onclickViewerDimmed: function (e) { if (e.currentTarget == e.target) { if (utils.detector.isIosDevice) els.viewerOpener.style.display = ""; els.popup.classList.remove("is-open"); document.documentElement.classList.remove("is-layer-open"); document.documentElement.style.overflow = ""; utils.visibleScroll(); utils.onAccessibility(els.popup); utils.offAccessibility(document.querySelector("#wrap")); setTimeout(function () { els.viewerOpener.focus(); }, 300); els.viewerModel = ""; els.viewerIframe.setAttribute("src", "about:blank"); setTimeout(function () { els.popup.classList.remove("is-init"); }, 300); } }, onLoadLayerPopupIframe: function () { if ( document.documentElement.classList.contains("color_yb") || (utils.getCookie("highContrastMode") != null && utils.getCookie("highContrastMode") == 1) ) { els.viewerIframe.contentWindow.postMessage( "V3D.highContrast.on", "*" ); setTimeout(function () { els.viewerIframe.contentWindow.postMessage( "V3D.highContrast.on", "*" ); }, 300); } }, }; var layerPopupScrollHandler = { setLayerScroll: function () { if (!els.popupContents) return; if ( els.popupContents.scrollHeight > els.popupContents.clientHeight ) { utils.offAccessibility(els.popupScroll); els.popupScroll && els.popupScroll.classList.add("is-scroll-btn"); } else { utils.onAccessibility(els.popupScroll); els.popupScroll && els.popupScroll.classList.remove("is-scroll-btn"); } }, onScrollPopupContents: function () { onUpdateLayerScroll(false); }, onClickLayerScroll: function (e) { e && e.preventDefault(); if (e.target.matches(".highlights-viewer__scroll-btn")) { var scrollDown = e.target.classList.contains( "highlights-viewer__scroll-btn--down" ), $popupContents = $(els.popupContents); if (scrollDown) { $popupContents.stop().animate( { scrollTop: $popupContents.scrollTop() + 100, }, { duration: 300, complete: function () { layerPopupScrollHandler.onUpdateLayerScroll(true); }, } ); } else { $popupContents.stop().animate( { scrollTop: $popupContents.scrollTop() - 100, }, { duration: 300, complete: function () { layerPopupScrollHandler.onUpdateLayerScroll(true); }, } ); } } }, onUpdateLayerScroll: function (isClicked) { var offsetTop = els.popupContents.scrollTop, layerBottom = els.popupContents.scrollHeight - els.popupContents.clientHeight; els.popupScrollUpBtn.removeAttribute("tabindex"); els.popupScrollUpBtn.removeAttribute("aria-hidden"); els.popupScrollUpBtn.removeAttribute("disabled"); els.popupScrollDownBtn.removeAttribute("tabindex"); els.popupScrollDownBtn.removeAttribute("aria-hidden"); els.popupScrollDownBtn.removeAttribute("disabled"); if (offsetTop == 0) { isClicked && els.popupScrollDownBtn && els.popupScrollDownBtn.focus(); els.popupScrollUpBtn.setAttribute("tabindex", "-1"); els.popupScrollUpBtn.setAttribute("aria-hidden", "true"); els.popupScrollUpBtn.setAttribute("disabled", "disabled"); } else if (offsetTop >= layerBottom - 1) { isClicked && els.popupScrollUpBtn && els.popupScrollUpBtn.focus(); els.popupScrollDownBtn.setAttribute("tabindex", "-1"); els.popupScrollDownBtn.setAttribute("aria-hidden", "true"); els.popupScrollDownBtn.setAttribute("disabled", "disabled"); } }, }; var onReceiveV3DMessage = function (e) { if (e.data == "V3D.state.popOpen") { if ( (currDevice && currDevice.indexOf("mobile") > -1) || currDevice == "tablet" ) { if (els.closeCta) { if (!els.popupWrap.classList.contains("is-popup-opened")) els.popupWrap.classList.add("is-popup-opened"); els.closeCta.setAttribute("tabindex", "-1"); els.closeCta.setAttribute("aria-hidden", "true"); els.closeCta.setAttribute("disabled", "disabled"); } if (els.infoBtn) { els.infoBtn.setAttribute("tabindex", "-1"); els.infoBtn.setAttribute("aria-hidden", "true"); } } } else if (e.data == "V3D.state.popClose") { if ( (currDevice && currDevice.indexOf("mobile") > -1) || currDevice == "tablet" ) { if (els.closeCta) { if (els.popupWrap.classList.contains("is-popup-opened")) els.popupWrap.classList.remove("is-popup-opened"); els.closeCta.removeAttribute("tabindex"); els.closeCta.removeAttribute("aria-hidden"); els.closeCta.removeAttribute("disabled"); } if (els.infoBtn) { els.infoBtn.removeAttribute("tabindex"); els.infoBtn.removeAttribute("aria-hidden"); } } } else if (e.data == "V3D.state.introPose.ready") { if (currDevice && currDevice.indexOf("desktop") > -1) { els.viewerIframe && els.viewerIframe.contentWindow.postMessage( "V3D.introPose.run", "*" ); } status.moPoseReady = true; setTimeout(function () { status.moPoseReady = false; }, 2000); } else if (e.data == "V3D.state.localData.ready") { els.viewerIframe && els.viewerIframe.contentWindow.postMessage( JSON.stringify(V3DLOCALDATA), "*" ); } }; var getViewerUrl = function () { var viewerUrl = status.viewerBaseUrl; // model_name viewerUrl += "model_name=" + els.viewerModel; // only exclusive color status.isExclusive && (viewerUrl += "&exclusive_mode=1"); if ( document.documentElement.classList.contains("color_yb") || (utils.getCookie("highContrastMode") != null && utils.getCookie("highContrastMode") == 1) ) { viewerUrl += "&highcontrast=1"; } else { viewerUrl += "&highcontrast=0"; } // RTL utils.isRTL() && (viewerUrl += "&rtl=1"); viewerUrl += status.defaultParams; viewerUrl += "#color=" + (els.viewerColor ? els.viewerColor : "null"); return viewerUrl; }; return { init: init, }; })(); })(); (function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.ytPopup = (function () { var els = {}, utils = window.flagship.common.utils; var init = function () { els.layerPopup = document.querySelector(".youtube-layer-popup"); if (!!els.layerPopup) { setElements(); setPopup(); els.layerPopup.addEventListener("click", eventList.clickDimmed); } }; var setElements = function () { els.contents = document.querySelector("#contents"); els.openCtas = document.querySelectorAll(".js-youtube-popup"); els.closeCta = document.querySelector( ".youtube-layer-popup__close-cta" ); els.ytIframe = els.layerPopup.querySelector( ".youtube-layer-popup__iframe > iframe" ); els.ytDesc = els.layerPopup.querySelector(".youtube-player__desc"); }; var setPopup = function () { for (var i = 0; i < els.openCtas.length; i++) { utils.layerPopup({ layerPopup: els.layerPopup, openerEvent: { element: els.openCtas[i], }, closeCta: els.closeCta, moveTarget: document.documentElement, contents: els.contents, show: { start: function () { els.layerPopup.removeAttribute("tabindex"); els.layerPopup.removeAttribute("aria-hidden"); els.layerPopup.classList.add("is-yt-open"); }, end: function (target) { eventList.setYoutube(target); target.openerCta.blur(); }, }, hide: { start: function (target) { if (utils.detector.isIosDevice) target.openerCta.style.display = ""; els.layerPopup.setAttribute("tabindex", -1); els.layerPopup.setAttribute("aria-hidden", true); els.layerPopup.classList.remove("is-yt-open"); }, end: function (target) { eventList.clearYoutube(); target.openerCta.focus(); // customization accessibility set var uiList = document.querySelectorAll( ".highlights-customization__ui-list" ); if (!uiList[0].classList.contains("is-active")) { utils.onAccessibility(uiList[0]); } else { utils.onAccessibility(uiList[1]); } }, }, }); } }; var eventList = { setYoutube: function (target) { var opener = target.openerCta, ytSrc = "htt" + "ps://www.youtube.com/embed/" + opener.getAttribute("data-youtube-id") + "?wmode=opaque&rel=0&enablejsapi=1&version=3&autoplay=1", ytTitle = opener.getAttribute("data-youtube-title"), ytBlind = opener.querySelector(".blind").innerHTML; els.ytIframe.setAttribute("src", ytSrc); els.ytIframe.setAttribute("title", ytTitle); els.ytDesc.innerHTML = ytBlind; els.OpenerTarget = opener; }, clearYoutube: function () { els.ytIframe.removeAttribute("src"); els.ytDesc.innerHTML = ""; }, clickDimmed: function (e) { if ( e.target.classList.contains("youtube-layer-popup__inner") || e.target.classList.contains("youtube-layer-popup__close-area") ) { if (utils.detector.isIosDevice) els.OpenerTarget.style.display = ""; els.layerPopup.classList.remove("is-yt-open"); document.documentElement.classList.remove("is-layer-open"); document.documentElement.style.overflow = ""; utils.visibleScroll(); utils.onAccessibility(els.layerPopup); utils.offAccessibility(document.querySelector("#wrap")); setTimeout(function () { els.OpenerTarget.focus(); }, 300); eventList.clearYoutube(); } }, }; return { init: init, }; })(); })(); (function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.sidebar = (function () { var els = {}, objs = {}, utils = window.flagship.common.utils; var init = function () { els.contents = document.querySelector("#contents"); if (!!els.contents) { setElements(); setScene(); bindEvents(); } }; var setElements = function () { els.kv = els.contents.querySelector(".highlights-kv"); els.sidebar = els.contents.querySelector(".highlights-sidebar"); els.sidebarBtn = els.sidebar.querySelector( ".highlights-sidebar__cta" ); els.sidebarBtnBlindText = els.sidebar.querySelector( ".highlights-sidebar__cta .blind" ); els.sidebarList = els.sidebar.querySelector( ".highlights-sidebar__list" ); els.sidebarListItem = els.sidebarList.querySelectorAll( ".highlights-sidebar__item" ); els.durability = els.contents.querySelector(".highlights-durability"); els.footer = document.querySelector(".common-bottom-disclaimer"); // settimeout els.scrollTimeout = null; }; var bindEvents = function () { window.addEventListener("scroll", scrollHandler); els.sidebarBtn.addEventListener( "click", sidebarEvents.sidebarOnClick ); for (var i = 0; i < els.sidebarListItem.length; i++) { els.sidebarListItem[i].addEventListener( "click", sidebarEvents.itemOnClick ); } }; var setScene = function () { objs.scene = SCROLLER({ trackElement: els.contents, useFixed: false, useStrictMode: false, }); }; var scrollHandler = function () { objs.scene.trackAnimation(function () { var kvBottom = this.winScrollTop + els.kv.getBoundingClientRect().bottom - utils.getNavHeight(), footerTop = this.winScrollTop + els.footer.getBoundingClientRect().top + window.innerHeight / 2, self = this; var _highlighting = function () { for (var i = 0; i < els.sidebarListItem.length; i++) { var targetId = els.sidebarListItem[i] .querySelector("a") .getAttribute("href") .split("#")[1], target = els.contents.querySelector("#" + targetId), targetOffetTop = self.winScrollTop + target.getBoundingClientRect().top, targetOffetBottom = self.winScrollTop + target.getBoundingClientRect().bottom - window.innerHeight / 2, durabilityTop = self.winScrollTop + els.durability.getBoundingClientRect().top + window.innerHeight / 2, oldActiveItem = els.sidebarList.querySelector(".is-active"); if ( self.winScrollBottom >= targetOffetTop && self.winScrollTop <= targetOffetBottom ) { if (!els.sidebarListItem[i].classList.contains("is-active")) { if (oldActiveItem) oldActiveItem.classList.remove("is-active"); els.sidebarListItem[i].classList.add("is-active"); } } if (self.winScrollBottom >= durabilityTop) { if (els.sidebarListItem[i].classList.contains("is-active")) { els.sidebarListItem[i].classList.remove("is-active"); } } } }; if (self.wheelDirection == "up") { if (self.winScrollTop >= kvBottom) { els.sidebar.classList.add("is-active"); els.sidebarBtn.removeAttribute("tabindex"); els.sidebarBtn.removeAttribute("aria-hidden"); } else { hideSidebar(); } } else { hideSidebar(); } _highlighting(); }); }; var hideSidebar = function () { if (els.sidebar.classList.contains("is-active")) { els.sidebar.classList.remove("is-active"); els.sidebarBtn.setAttribute("tabindex", -1); els.sidebarBtn.setAttribute("aria-hidden", true); sidebarEvents.sidebarClose(); } }; var sidebarEvents = { sidebarOnClick: function () { if (!els.sidebar.classList.contains("is-open")) { sidebarEvents.sidebarOpen(); } else { sidebarEvents.sidebarClose(); } }, sidebarOpen: function () { els.sidebar.classList.add("is-open"); accessibility.off(); setTimeout(function () { window.addEventListener("click", sidebarEvents.outsideOnClick); }, 50); }, sidebarClose: function () { els.sidebar.classList.remove("is-open"); accessibility.on(); window.removeEventListener("click", sidebarEvents.outsideOnClick); }, outsideOnClick: function (e) { var sidebar = e.target.matches( ".highlights-sidebar__button>button" ); if (!sidebar) { sidebarEvents.sidebarClose(); } }, itemOnClick: function (e) { e.preventDefault(); var oldItem = els.sidebarList.querySelector(".is-active"), self = this; var _moveSection = function () { var navHeight = utils.getNavHeight(), sectionId = self .querySelector("a") .getAttribute("href") .split("#")[1], section = document.querySelector("#" + sectionId), sectionTop = section.getBoundingClientRect().top, sectionScroll = window.pageYOffset + sectionTop - navHeight, sectionTimeout = null; clearTimeout(sectionTimeout); sectionTimeout = setTimeout(function () { var eyeBrow = section.querySelector(".common-text"); clickAble = section.querySelectorAll("a, button")[0]; if (!!eyeBrow) { var focusOutEvent = function () { eyeBrow.removeAttribute("tabindex"); eyeBrow.removeEventListener("focusout", focusOutEvent); }; eyeBrow.addEventListener("focusout", focusOutEvent); eyeBrow.setAttribute("tabindex", 0); eyeBrow.focus(); } else { clickAble.focus(); } window.scrollTo(0, sectionScroll); }, 30); setTimeout(function () { hideSidebar(); }, 60); }; if (!this.classList.contains("is-active")) { if (oldItem && oldItem.classList.contains("is-active")) { oldItem.classList.remove("is-active"); } this.classList.add("is-active"); } _moveSection(); }, }; var accessibility = { on: function () { els.sidebarList.setAttribute("aria-hidden", true); els.sidebarList.setAttribute("tabindex", -1); var openText = els.sidebarBtn.getAttribute("data-open-text"); els.sidebarBtnBlindText.innerText = openText; setTagging.close(); for (var i = 0; i < els.sidebarListItem.length; i++) { els.sidebarListItem[i] .querySelector("a") .setAttribute("tabindex", "-1"); } }, off: function () { els.sidebarList.setAttribute("aria-hidden", false); els.sidebarList.removeAttribute("tabindex"); var closeText = els.sidebarBtn.getAttribute("data-close-text"); els.sidebarBtnBlindText.innerText = closeText; setTagging.open(); for (var i = 0; i < els.sidebarListItem.length; i++) { els.sidebarListItem[i] .querySelector("a") .removeAttribute("tabindex"); } }, }; var setTagging = { open: function () { var dataOmni = els.sidebarBtn.getAttribute("data-omni"), gaLa = els.sidebarBtn.getAttribute("ga-la"); setTimeout(function () { els.sidebarBtn.setAttribute( "data-omni", dataOmni.replace("open", "close") ); els.sidebarBtn.setAttribute( "ga-la", gaLa.replace("open", "close") ); }, 50); }, close: function () { var dataOmni = els.sidebarBtn.getAttribute("data-omni"), gaLa = els.sidebarBtn.getAttribute("ga-la"); setTimeout(function () { els.sidebarBtn.setAttribute( "data-omni", dataOmni.replace("close", "open") ); els.sidebarBtn.setAttribute( "ga-la", gaLa.replace("close", "open") ); }, 50); }, }; return { init: init, }; })(); })(); (function () { window.flagship.common.resize.bindEvent(); var initComponents = function () { flagship.highlights.ai.init(); flagship.highlights.cameraOverview.init(); flagship.highlights.cameraVideo.init(); flagship.highlights.colors.init(); flagship.highlights.design.init(); flagship.highlights.durability.init(); flagship.highlights.excellence.init(); flagship.highlights.exclusive.init(); flagship.highlights.faq.init(); flagship.highlights.hinge.init(); flagship.highlights.performanceDisplay.init(); flagship.highlights.performanceVideo.init(); flagship.highlights.portability.init(); flagship.highlights.productivity.init(); flagship.highlights.viewer.init(); flagship.highlights.ytPopup.init(); flagship.highlights.sidebar.init(); }; initComponents(); })(); });

  • Galaxy Z Fold5 Smartphone | Features & Colours | Samsung Canada (2024)
    Top Articles
    Latest Posts
    Article information

    Author: Terrell Hackett

    Last Updated:

    Views: 5934

    Rating: 4.1 / 5 (72 voted)

    Reviews: 87% of readers found this page helpful

    Author information

    Name: Terrell Hackett

    Birthday: 1992-03-17

    Address: Suite 453 459 Gibson Squares, East Adriane, AK 71925-5692

    Phone: +21811810803470

    Job: Chief Representative

    Hobby: Board games, Rock climbing, Ghost hunting, Origami, Kabaddi, Mushroom hunting, Gaming

    Introduction: My name is Terrell Hackett, I am a gleaming, brainy, courageous, helpful, healthy, cooperative, graceful person who loves writing and wants to share my knowledge and understanding with you.