columnsbannerHeight{
"name": "BannerCarousel",
"view": "Default",
"section": "SectionA",
"settings": {
"bannerExtended": true,
"bannerHeight": "Standard",
"columns": "One",
"banners": [
{
"backgroundImage": {
"id": "Image Id",
"galleryId": "Gallery Id",
"link": "https://example.com/sample",
"mediaType": "Image"
},
"backgroundImageMobile": {
"id": "Mobile image Id",
"galleryId": "Mobile gallery Id",
"link": "https://example.com/sample",
"mediaType": "Image"
},
"sets": [
{
"backgroundColor": true,
"alignment": "Left",
"header": "Sample header",
"text": "<p>Sample text</p>\n",
"buttonText": "Sample button text",
"buttonLink": "/sample"
},
...
]
},
...
],
"id": "Component Id",
"section": "SectionA",
"type": "NoirBannerCarousel",
"name": "BannerCarousel",
"configuredInContentApi": true,
"view": "Default",
"displayName": "Sample display name",
"cssClass": "Sample cssClass"
},
"translations": {
"clickToLearnMoreAbout": "Sample translation",
"bannerLink": "Sample translation",
"...": "..."
}
}settings.idcomp-{{ id }}banner-carousel-{{ id }}settings.banners[]banners.length > 0.settings.cssClass(UNDEFINED).settings.bannerExtended (boolean)true renders full width; otherwise it uses container.settings.columns (string)OneTwo, Three, Four, TwoThirdOneThird, OneThirdTwoThird.settings.bannerHeight (string)StandardSmall, FullHeight.x-data="bannercarouseldefault.initComponent('{{ id }}', '{{ columns }}')"initComponent(...) returns the Alpine component state + methods and then boots Swiper.id, columns, navbarHeight, topbarHeight, bannersHeight, isMobileinit()getBannersHeight(), updateNavbarHeight(), updateTopbarHeight(), swiperInit(id, columns)id and columns are passed as strings from Liquid.getBannersHeight()), wires a resize handler (with a small delay), and then initializes Swiper via swiperInit(this.id, this.columns).bannersHeight differently for desktop vs mobile.window.innerHeight - topbarHeight - navbarHeight. On mobile it uses "auto"..navbar height and stores it in navbarHeight.document.querySelector(".navbar")this.navbarHeight = navbar.offsetHeight.topbar height and stores it in topbarHeight.document.querySelector(".topbar")this.topbarHeight = topbar.offsetHeightSwiper instance on #banner-carousel-<id> with rules based on columns and on a “Small height” mode.columns, resolves the carousel DOM (container + pagination), decides whether looping is enabled based on slide count, and creates the Swiper instance..topbar and .navbar being present; if those class names change, height calculation may become inaccurate.{}) by design.