[{"id":{"experience":"24e326ab-01dd-42bb-b2f6-0cb8d0379711","creative":"c0ce67ba-d30e-4fd9-9efe-78643764230b"},"rules":{"filter":{"operator":"or","urls":[{"operator":"or","conditions":[{"operator":"contain","values":["krungsricard.com"]}]}]},"trigger":{"eventName":"","operator":"","conditions":null}},"changes":[{"action":"insertReplace","content":{"category":"html","id":"12","name":"HTML editor","tags":[],"type":"html_editor","value":{"html":"\u003cp class=\"txt-xs\"\u003e© สงวนลิขสิทธิ์ 2568 บริษัท บัตรกรุงศรีอยุธยา จำกัด\u003c/p\u003e","js":{"init":"function init(CAMPAIGN_ID, CREATIVE_ID, v, blockAreaEl) { return Promise.resolve(true); }","revert":"function revert(CAMPAIGN_ID, CREATIVE_ID, v) {}"}}},"target":".footer-bp \u003e .container \u003e .row \u003e .col-12 \u003e .txt-xs","type":"blockTemplate","uuid":"7b689bfb-340a-4946-94c2-dd66b2a85c2b"}],"schedule":{"start":1734672600,"end":1843363800},"devices":{"ios":true,"android":true,"others":true}},{"id":{"experience":"2d13597d-93cb-4da2-b172-279d9227b76d","creative":"7f715927-9bec-4c32-8fe4-d78464a3b187"},"rules":{"filter":{"operator":"or","urls":[{"operator":"and","conditions":[{"operator":"match","values":["https://www.krungsricard.com/th/promotion/category/Fashion?Card_Suggestion"]}]}]},"trigger":{"eventName":"","operator":"","conditions":null}},"changes":[{"action":"insertAfter","content":{"category":"html","id":"7","name":"Image slider","tags":[],"type":"imageSlider","value":{"html":"\u003cdiv class=\"carousel-slider\"\u003e\n \u003cdiv id=\"carousel-slider-${CREATIVE_ID}\" class=\"carousel-slider__container\"\u003e\n \u003cdiv class=\"carousel-slider__wrapper\"\u003e\n \u003c!-- \u003cdiv class=\"carousel-slider__slide\"\u003e\n \u003ca href=\"${v.images[0].cta.href}\" target=\"${v.images[0].cta.target}\"\u003e\n \u003cimg class=\"carousel-slider__image\" src=\"${v.images[0].src}\" alt=\"${v.images[0].alt}\" /\u003e\n \u003c/a\u003e\n \u003c/div\u003e --\u003e\n \u003c/div\u003e\n\n \u003c!-- Indicators --\u003e\n \u003col class=\"carousel-slider-indicators\"\u003e\n \u003c!-- \u003cli data-slide-to=\"0\" class=\"active\"\u003e\u003c/li\u003e --\u003e\n \u003c/ol\u003e\n\n \u003c!-- Prev and Next controls --\u003e\n \u003cbutton class=\"carousel-slider-control prev\"\u003e\n \u003csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"none\"\u003e\n \u003cpath d=\"M9.82661 4.21822C10.0743 4.49066 10.0542 4.91229 9.78177 5.15997L6.65774 7.99999L9.78177 10.84C10.0542 11.0877 10.0743 11.5094 9.82661 11.7818C9.57894 12.0542 9.1573 12.0743 8.88487 11.8266L5.21822 8.49328C5.07923 8.36693 5 8.18781 5 7.99998C5 7.81215 5.07924 7.63304 5.21822 7.50669L8.88487 4.17338C9.15731 3.92571 9.57894 3.94578 9.82661 4.21822Z\" fill=\"currentColor\"/\u003e\n \u003c/svg\u003e\n \u003c/button\u003e\n \u003cbutton class=\"carousel-slider-control next\"\u003e\n \u003csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"none\"\u003e\n \u003cpath d=\"M6.17338 4.21822C6.42106 3.94578 6.84269 3.92571 7.11512 4.17338L10.7818 7.50673C10.9208 7.63308 11 7.8122 11 8.00003C11 8.18786 10.9208 8.36697 10.7818 8.49332L7.11512 11.8266C6.84268 12.0743 6.42105 12.0542 6.17338 11.7818C5.92571 11.5093 5.94578 11.0877 6.21822 10.84L9.34226 8.00002L6.21822 5.15996C5.94579 4.91229 5.92571 4.49066 6.17338 4.21822Z\" fill=\"currentColor\"/\u003e\n \u003c/svg\u003e\n \u003c/button\u003e\n\n \u003c/div\u003e\n\u003c/div\u003e\n \n \u003cstyle\u003e\n [data-creative_id=\"${CREATIVE_ID}\"] {\n --indicators-bottom: 16px;\n --control-size: 48px;\n --control-icon-size: 32px;\n }\n\n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider {\n width: 100%;\n background-color: ${v.backgroundColor};\n }\n \n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider__container {\n position: relative;\n display: flex;\n overflow: hidden;\n }\n \n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider__wrapper {\n display: flex;\n width: 100%;\n transition-duration: 0.5s;\n transition-property: transform;\n }\n \n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider__slide {\n flex-shrink: 0;\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n }\n \n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider__image {\n height: ${v.imageHeight};\n }\n\n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider-indicators {\n position: absolute;\n bottom: var(--indicators-bottom);\n left: 50%;\n transform: translate(-50%, 0);\n z-index: 15;\n\n list-style: none;\n padding-left: 0;\n margin-bottom: 0;\n }\n\n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider-indicators li {\n cursor: pointer;\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 0 12px;\n background-color: #FFF;\n border-width: 1px;\n border-color: rgba(0,0,0,0.05);\n border-radius: 10px;\n opacity: 0.5;\n }\n\n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider-indicators .active {\n opacity: 1;\n }\n\n\n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider-control {\n position: absolute;\n top: 50%;\n transform: translate(0, -50%);\n\n background: rgba(0, 0, 0, 0.2);\n border-radius: 50%;\n border-width: 0;\n\n width: var(--control-size);\n height: var(--control-size);\n z-index: 10;\n\n display: flex;\n justify-content: center;\n align-items: center;\n color: #fff;\n }\n\n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider-control svg {\n width: var(--control-icon-size);\n }\n\n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider-control.prev {\n left: 20px;\n }\n\n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider-control.next {\n right: 20px;\n }\n\n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider-control:hover {\n background: rgba(0, 0, 0, 0.8);\n }\n\n @media (max-width: 450px) {\n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider__slide {\n width: 100vw;\n }\n \n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider__image {\n height: auto;\n width: 100vw;\n }\n\n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider-indicators {\n bottom: calc(var(--indicators-bottom) / 2);\n }\n\n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider-indicators li {\n width: 6px;\n height: 6px;\n margin: 0 8px;\n }\n\n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider-control {\n width: calc(var(--control-size) / 2);\n height: calc(var(--control-size) / 2);\n }\n\n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider-control svg {\n width: calc(var(--control-icon-size) / 2);\n }\n\n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider-control.prev {\n left: 12px;\n }\n\n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider-control.next {\n right: 12px;\n }\n }\n\u003c/style\u003e\n","js":{"init":"function init(CAMPAIGN_ID, CREATIVE_ID, v, blockAreaEl) {\n const numOfSlide = v.numOfSlidesToShow;\n const carouselElement = document.getElementById(`carousel-slider-${CREATIVE_ID}`);\n const wrapper = carouselElement.querySelector('.carousel-slider__wrapper');\n const indicators = carouselElement.querySelector('.carousel-slider-indicators');\n\n let wrapperHtml = '';\n let indicatorsHtml = '';\n for (let i = 0; i \u003c numOfSlide \u0026\u0026 i \u003c v.images.length; i++) {\n wrapperHtml += `\u003cdiv class=\"carousel-slider__slide\"\u003e\n \u003ca href=\"${v.images[i].cta.href}\" target=\"${v.images[i].cta.target}\"\u003e\n \u003cimg class=\"carousel-slider__image\" src=\"${v.images[i].src}\" alt=\"${v.images[i].alt}\" /\u003e\n \u003c/a\u003e\u003c/div\u003e`;\n indicatorsHtml += `\u003cli data-slide-to=\"${i}\"\u003e\u003c/li\u003e`;\n }\n wrapper.innerHTML = wrapperHtml;\n indicators.innerHTML = indicatorsHtml;\n\n let slideTimeoutId;\n let currentIndex = 0;\n const changeSlide = index =\u003e {\n clearTimeout(slideTimeoutId);\n\n wrapper.style.transform = `translateX(-${index * 100}%)`;\n\n // Set display duration\n slideTimeoutId = setTimeout(() =\u003e {\n currentIndex = (currentIndex + 1) % numOfSlide;\n changeSlide(currentIndex);\n }, v.slideDuration * 1000);\n window.appierOnsite.set(CREATIVE_ID, {\n slideTimeoutId: slideTimeoutId,\n });\n\n // Set indicator\n indicators.querySelector('.active')?.classList.remove('active');\n indicators.querySelectorAll('li')?.[index]?.classList.add('active');\n };\n changeSlide(0);\n\n // Bind event listener on indicators\n indicators.addEventListener('click', e =\u003e {\n const indicator = e.target;\n currentIndex = indicator.dataset.slideTo;\n changeSlide(currentIndex);\n });\n\n const slideToPrev = () =\u003e {\n const prevIndex = currentIndex - 1;\n currentIndex = prevIndex \u003e= 0 ? prevIndex : numOfSlide - 1;\n changeSlide(currentIndex);\n };\n const slideToNext = () =\u003e {\n currentIndex = (currentIndex + 1) % numOfSlide;\n changeSlide(currentIndex);\n };\n\n // Bind event listener on control buttons\n carouselElement.querySelector('.prev').addEventListener('click', slideToPrev);\n carouselElement.querySelector('.next').addEventListener('click', slideToNext);\n \n if (numOfSlide \u003c= 1) {\n   const prev = carouselElement.querySelector('.prev');\n   const next = carouselElement.querySelector('.next');\n   \n   if (indicators) {\n     indicators.remove();\n   }\n   \n   if (prev) {\n     prev.remove();\n   }\n   \n   if (next) {\n     next.remove();\n   }\n }\n\n // Handle mobile touch event\n let xDown = null;\n let yDown = null;\n const handleTouchStart = e =\u003e {\n xDown = e.touches[0].clientX;\n yDown = e.touches[0].clientY;\n };\n const handleTouchMove = e =\u003e {\n if (!xDown || !yDown) {\n return;\n }\n\n const xUp = e.touches[0].clientX;\n const yUp = e.touches[0].clientY;\n const xDiff = xDown - xUp;\n const yDiff = yDown - yUp;\n if (Math.abs(xDiff) \u003e Math.abs(yDiff)) {\n /* most significant */\n if (xDiff \u003e 0) {\n /* left swipe */\n slideToNext();\n } else {\n /* right swipe */\n slideToPrev();\n }\n }\n /* reset values */\n xDown = null;\n yDown = null;\n };\n wrapper.addEventListener('touchstart', handleTouchStart);\n wrapper.addEventListener('touchmove', handleTouchMove);\n\n return Promise.resolve(true);\n}","revert":"function revert(CAMPAIGN_ID, CREATIVE_ID, v) {\n clearTimeout(window.appierOnsite.get(CREATIVE_ID)?.slideTimeoutId);\n}"},"uiControl":{"content":{"backgroundColor":{"name":"Background color","order":4,"property":"backgroundColor","type":"css","value":"#ffffff"},"imageHeight":{"name":"Image height in desktop mode","order":2,"property":"height","type":"css","value":"300px"},"images":{"content":[{"content":{"alt":{"name":"Image #1 alt text","order":1,"type":"str","value":"Lady titanium"},"cta":{"content":{"href":{"name":"Image #1 destination link","order":1,"type":"str","value":"https://www.krungsricard.com/th/Product/creditcard/krungsri-lady#RegOnlineForm"},"target":{"name":"Image #1 link target","order":1,"type":"str","value":"https://www.krungsricard.com/th/Product/creditcard/krungsri-lady#RegOnlineForm"}},"name":"Image #1 Call to Action","order":2,"type":"group"},"src":{"name":"Image #1 image URL","order":0,"type":"str","value":"https://www.krungsricard.com/getattachment/9f46d44b-b1a7-475a-a1f2-08622833c0cd/krungsri-lady-titanium-master-card-2card-header2.png;"}},"name":"Image 1","order":0,"type":"group"},{"content":{"alt":{"name":"Image #2 alt text","order":1,"type":"str","value":"Platinum"},"cta":{"content":{"href":{"name":"Image #2 destination link","order":1,"type":"str","value":"https://www.krungsricard.com/th/Product/creditcard/Krungsri-Visa-Platinum#RegOnlineForm"},"target":{"name":"Image #2 link target","order":1,"type":"str","value":"https://www.krungsricard.com/th/Product/creditcard/Krungsri-Visa-Platinum#RegOnlineForm"}},"name":"Image #2 Call to Action","order":2,"type":"group"},"src":{"name":"Image #2 image URL","order":0,"type":"str","value":"https://www.krungsricard.com/getattachment/bc7d9543-2670-417e-8808-98317cdcba9c/krungsri-platinum-header.png;"}},"name":"Image 2","order":1,"type":"group"},{"content":{"alt":{"name":"Image #3 alt text","order":1,"type":"str","value":"Signature"},"cta":{"content":{"href":{"name":"Image #3 destination link","order":1,"type":"str","value":"https://www.krungsricard.com/th/Product/creditcard/Krungsri-signature#RegOnlineForm"},"target":{"name":"Image #3 link target","order":1,"type":"str","value":"https://www.krungsricard.com/th/Product/creditcard/Krungsri-signature#RegOnlineForm"}},"name":"Image #3 Call to Action","order":2,"type":"group"},"src":{"name":"Image #3 image URL","order":0,"type":"str","value":"https://www.krungsricard.com/getattachment/7e58f7a0-c291-4ab2-8437-eb7b17c83d45/krungsri-signature-header.png;"}},"name":"Image #3","order":2,"type":"group"},{"content":{"alt":{"name":"Image #4 alt text","order":1,"type":"str","value":"Image Description"},"cta":{"content":{"href":{"name":"Image #4 destination link","order":1,"type":"str","value":""},"target":{"name":"Image #4 link target","order":1,"type":"str","value":"_blank"}},"name":"Image #4 Call to Action","order":2,"type":"group"},"src":{"name":"Image #4 image URL","order":0,"type":"str","value":"https://cdn.qgraph.io/img/onsite-exp/image-slider-demo.jpeg"}},"name":"Image #4","order":2,"type":"group"},{"content":{"alt":{"name":"Image #5 alt text","order":1,"type":"str","value":"Image Description"},"cta":{"content":{"href":{"name":"Image #5 destination link","order":1,"type":"str","value":""},"target":{"name":"Image #5 link target","order":1,"type":"str","value":"_blank"}},"name":"Image #5 Call to Action","order":2,"type":"group"},"src":{"name":"Image #5 image URL","order":0,"type":"str","value":"https://cdn.qgraph.io/img/onsite-exp/image-slider-demo.jpeg"}},"name":"Image #5","order":2,"type":"group"}],"name":"Images","order":3,"type":"group"},"numOfSlidesToShow":{"max":5,"min":1,"name":"Number of images to display (from 1 to 5)","order":0,"type":"int","value":"3"},"slideDuration":{"name":"Display interval (in seconds)","order":1,"type":"int","value":"3"}},"name":"uiControl","type":"group"},"variables":{"backgroundColor":"#ffffff","imageHeight":"300px","images":[{"alt":"Lady titanium","cta":{"href":"https://www.krungsricard.com/th/Product/creditcard/krungsri-lady#RegOnlineForm","target":"https://www.krungsricard.com/th/Product/creditcard/krungsri-lady#RegOnlineForm"},"src":"https://www.krungsricard.com/getattachment/9f46d44b-b1a7-475a-a1f2-08622833c0cd/krungsri-lady-titanium-master-card-2card-header2.png;"},{"alt":"Platinum","cta":{"href":"https://www.krungsricard.com/th/Product/creditcard/Krungsri-Visa-Platinum#RegOnlineForm","target":"https://www.krungsricard.com/th/Product/creditcard/Krungsri-Visa-Platinum#RegOnlineForm"},"src":"https://www.krungsricard.com/getattachment/bc7d9543-2670-417e-8808-98317cdcba9c/krungsri-platinum-header.png;"},{"alt":"Signature","cta":{"href":"https://www.krungsricard.com/th/Product/creditcard/Krungsri-signature#RegOnlineForm","target":"https://www.krungsricard.com/th/Product/creditcard/Krungsri-signature#RegOnlineForm"},"src":"https://www.krungsricard.com/getattachment/7e58f7a0-c291-4ab2-8437-eb7b17c83d45/krungsri-signature-header.png;"},{"alt":"Image Description","cta":{"href":"","target":"_blank"},"src":"https://cdn.qgraph.io/img/onsite-exp/image-slider-demo.jpeg"},{"alt":"Image Description","cta":{"href":"","target":"_blank"},"src":"https://cdn.qgraph.io/img/onsite-exp/image-slider-demo.jpeg"}],"numOfSlidesToShow":"3","slideDuration":"3"}}},"target":"*:nth-child(1) \u003e *:nth-child(1) \u003e *:nth-child(3) \u003e *:nth-child(3) \u003e *:nth-child(1)","type":"blockTemplate","uuid":"8624be0a-b279-406b-afce-56be722f9d7e"}],"schedule":{"start":1752585638,"end":1847193638},"devices":{"ios":false,"android":false,"others":true}},{"id":{"experience":"4f0ad951-b35d-4622-9956-534adca1cba6","creative":"bcd8cc63-f1d1-48ee-b666-a0598c376fbe"},"rules":{"filter":{"operator":"or","urls":[{"operator":"and","conditions":[{"operator":"match","values":["https://www.krungsricard.com/th/promotion/category/Fashion?Card_Suggestion"]}]}]},"trigger":{"eventName":"","operator":"","conditions":null}},"changes":[{"action":"insertAfter","content":{"category":"html","id":"7","name":"Image slider","tags":[],"type":"imageSlider","value":{"html":"\u003cdiv class=\"carousel-slider\"\u003e\n \u003cdiv id=\"carousel-slider-${CREATIVE_ID}\" class=\"carousel-slider__container\"\u003e\n \u003cdiv class=\"carousel-slider__wrapper\"\u003e\n \u003c!-- \u003cdiv class=\"carousel-slider__slide\"\u003e\n \u003ca href=\"${v.images[0].cta.href}\" target=\"${v.images[0].cta.target}\"\u003e\n \u003cimg class=\"carousel-slider__image\" src=\"${v.images[0].src}\" alt=\"${v.images[0].alt}\" /\u003e\n \u003c/a\u003e\n \u003c/div\u003e --\u003e\n \u003c/div\u003e\n\n \u003c!-- Indicators --\u003e\n \u003col class=\"carousel-slider-indicators\"\u003e\n \u003c!-- \u003cli data-slide-to=\"0\" class=\"active\"\u003e\u003c/li\u003e --\u003e\n \u003c/ol\u003e\n\n \u003c!-- Prev and Next controls --\u003e\n \u003cbutton class=\"carousel-slider-control prev\"\u003e\n \u003csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"none\"\u003e\n \u003cpath d=\"M9.82661 4.21822C10.0743 4.49066 10.0542 4.91229 9.78177 5.15997L6.65774 7.99999L9.78177 10.84C10.0542 11.0877 10.0743 11.5094 9.82661 11.7818C9.57894 12.0542 9.1573 12.0743 8.88487 11.8266L5.21822 8.49328C5.07923 8.36693 5 8.18781 5 7.99998C5 7.81215 5.07924 7.63304 5.21822 7.50669L8.88487 4.17338C9.15731 3.92571 9.57894 3.94578 9.82661 4.21822Z\" fill=\"currentColor\"/\u003e\n \u003c/svg\u003e\n \u003c/button\u003e\n \u003cbutton class=\"carousel-slider-control next\"\u003e\n \u003csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"none\"\u003e\n \u003cpath d=\"M6.17338 4.21822C6.42106 3.94578 6.84269 3.92571 7.11512 4.17338L10.7818 7.50673C10.9208 7.63308 11 7.8122 11 8.00003C11 8.18786 10.9208 8.36697 10.7818 8.49332L7.11512 11.8266C6.84268 12.0743 6.42105 12.0542 6.17338 11.7818C5.92571 11.5093 5.94578 11.0877 6.21822 10.84L9.34226 8.00002L6.21822 5.15996C5.94579 4.91229 5.92571 4.49066 6.17338 4.21822Z\" fill=\"currentColor\"/\u003e\n \u003c/svg\u003e\n \u003c/button\u003e\n\n \u003c/div\u003e\n\u003c/div\u003e\n \n \u003cstyle\u003e\n [data-creative_id=\"${CREATIVE_ID}\"] {\n --indicators-bottom: 16px;\n --control-size: 48px;\n --control-icon-size: 32px;\n }\n\n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider {\n width: 100%;\n background-color: ${v.backgroundColor};\n }\n \n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider__container {\n position: relative;\n display: flex;\n overflow: hidden;\n }\n \n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider__wrapper {\n display: flex;\n width: 100%;\n transition-duration: 0.5s;\n transition-property: transform;\n }\n \n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider__slide {\n flex-shrink: 0;\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n }\n \n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider__image {\n height: ${v.imageHeight};\n }\n\n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider-indicators {\n position: absolute;\n bottom: var(--indicators-bottom);\n left: 50%;\n transform: translate(-50%, 0);\n z-index: 15;\n\n list-style: none;\n padding-left: 0;\n margin-bottom: 0;\n }\n\n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider-indicators li {\n cursor: pointer;\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 0 12px;\n background-color: #FFF;\n border-width: 1px;\n border-color: rgba(0,0,0,0.05);\n border-radius: 10px;\n opacity: 0.5;\n }\n\n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider-indicators .active {\n opacity: 1;\n }\n\n\n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider-control {\n position: absolute;\n top: 50%;\n transform: translate(0, -50%);\n\n background: rgba(0, 0, 0, 0.2);\n border-radius: 50%;\n border-width: 0;\n\n width: var(--control-size);\n height: var(--control-size);\n z-index: 10;\n\n display: flex;\n justify-content: center;\n align-items: center;\n color: #fff;\n }\n\n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider-control svg {\n width: var(--control-icon-size);\n }\n\n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider-control.prev {\n left: 20px;\n }\n\n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider-control.next {\n right: 20px;\n }\n\n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider-control:hover {\n background: rgba(0, 0, 0, 0.8);\n }\n\n @media (max-width: 450px) {\n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider__slide {\n width: 100vw;\n }\n \n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider__image {\n height: auto;\n width: 100vw;\n }\n\n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider-indicators {\n bottom: calc(var(--indicators-bottom) / 2);\n }\n\n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider-indicators li {\n width: 6px;\n height: 6px;\n margin: 0 8px;\n }\n\n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider-control {\n width: calc(var(--control-size) / 2);\n height: calc(var(--control-size) / 2);\n }\n\n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider-control svg {\n width: calc(var(--control-icon-size) / 2);\n }\n\n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider-control.prev {\n left: 12px;\n }\n\n [data-creative_id=\"${CREATIVE_ID}\"] .carousel-slider-control.next {\n right: 12px;\n }\n }\n\u003c/style\u003e\n","js":{"init":"function init(CAMPAIGN_ID, CREATIVE_ID, v, blockAreaEl) {\n const numOfSlide = v.numOfSlidesToShow;\n const carouselElement = document.getElementById(`carousel-slider-${CREATIVE_ID}`);\n const wrapper = carouselElement.querySelector('.carousel-slider__wrapper');\n const indicators = carouselElement.querySelector('.carousel-slider-indicators');\n\n let wrapperHtml = '';\n let indicatorsHtml = '';\n for (let i = 0; i \u003c numOfSlide \u0026\u0026 i \u003c v.images.length; i++) {\n wrapperHtml += `\u003cdiv class=\"carousel-slider__slide\"\u003e\n \u003ca href=\"${v.images[i].cta.href}\" target=\"${v.images[i].cta.target}\"\u003e\n \u003cimg class=\"carousel-slider__image\" src=\"${v.images[i].src}\" alt=\"${v.images[i].alt}\" /\u003e\n \u003c/a\u003e\u003c/div\u003e`;\n indicatorsHtml += `\u003cli data-slide-to=\"${i}\"\u003e\u003c/li\u003e`;\n }\n wrapper.innerHTML = wrapperHtml;\n indicators.innerHTML = indicatorsHtml;\n\n let slideTimeoutId;\n let currentIndex = 0;\n const changeSlide = index =\u003e {\n clearTimeout(slideTimeoutId);\n\n wrapper.style.transform = `translateX(-${index * 100}%)`;\n\n // Set display duration\n slideTimeoutId = setTimeout(() =\u003e {\n currentIndex = (currentIndex + 1) % numOfSlide;\n changeSlide(currentIndex);\n }, v.slideDuration * 1000);\n window.appierOnsite.set(CREATIVE_ID, {\n slideTimeoutId: slideTimeoutId,\n });\n\n // Set indicator\n indicators.querySelector('.active')?.classList.remove('active');\n indicators.querySelectorAll('li')?.[index]?.classList.add('active');\n };\n changeSlide(0);\n\n // Bind event listener on indicators\n indicators.addEventListener('click', e =\u003e {\n const indicator = e.target;\n currentIndex = indicator.dataset.slideTo;\n changeSlide(currentIndex);\n });\n\n const slideToPrev = () =\u003e {\n const prevIndex = currentIndex - 1;\n currentIndex = prevIndex \u003e= 0 ? prevIndex : numOfSlide - 1;\n changeSlide(currentIndex);\n };\n const slideToNext = () =\u003e {\n currentIndex = (currentIndex + 1) % numOfSlide;\n changeSlide(currentIndex);\n };\n\n // Bind event listener on control buttons\n carouselElement.querySelector('.prev').addEventListener('click', slideToPrev);\n carouselElement.querySelector('.next').addEventListener('click', slideToNext);\n \n if (numOfSlide \u003c= 1) {\n   const prev = carouselElement.querySelector('.prev');\n   const next = carouselElement.querySelector('.next');\n   \n   if (indicators) {\n     indicators.remove();\n   }\n   \n   if (prev) {\n     prev.remove();\n   }\n   \n   if (next) {\n     next.remove();\n   }\n }\n\n // Handle mobile touch event\n let xDown = null;\n let yDown = null;\n const handleTouchStart = e =\u003e {\n xDown = e.touches[0].clientX;\n yDown = e.touches[0].clientY;\n };\n const handleTouchMove = e =\u003e {\n if (!xDown || !yDown) {\n return;\n }\n\n const xUp = e.touches[0].clientX;\n const yUp = e.touches[0].clientY;\n const xDiff = xDown - xUp;\n const yDiff = yDown - yUp;\n if (Math.abs(xDiff) \u003e Math.abs(yDiff)) {\n /* most significant */\n if (xDiff \u003e 0) {\n /* left swipe */\n slideToNext();\n } else {\n /* right swipe */\n slideToPrev();\n }\n }\n /* reset values */\n xDown = null;\n yDown = null;\n };\n wrapper.addEventListener('touchstart', handleTouchStart);\n wrapper.addEventListener('touchmove', handleTouchMove);\n\n return Promise.resolve(true);\n}","revert":"function revert(CAMPAIGN_ID, CREATIVE_ID, v) {\n clearTimeout(window.appierOnsite.get(CREATIVE_ID)?.slideTimeoutId);\n}"},"uiControl":{"content":{"backgroundColor":{"name":"Background color","order":4,"property":"backgroundColor","type":"css","value":"#ffffff"},"imageHeight":{"name":"Image height in desktop mode","order":2,"property":"height","type":"css","value":"150px"},"images":{"content":[{"content":{"alt":{"name":"Image #1 alt text","order":1,"type":"str","value":"Lady titanium"},"cta":{"content":{"href":{"name":"Image #1 destination link","order":1,"type":"str","value":"https://www.krungsricard.com/th/Product/creditcard/krungsri-lady#RegOnlineForm"},"target":{"name":"Image #1 link target","order":1,"type":"str","value":"https://www.krungsricard.com/th/Product/creditcard/krungsri-lady#RegOnlineForm"}},"name":"Image #1 Call to Action","order":2,"type":"group"},"src":{"name":"Image #1 image URL","order":0,"type":"str","value":"https://www.krungsricard.com/getattachment/9f46d44b-b1a7-475a-a1f2-08622833c0cd/krungsri-lady-titanium-master-card-2card-header2.png;"}},"name":"Image 1","order":0,"type":"group"},{"content":{"alt":{"name":"Image #2 alt text","order":1,"type":"str","value":"Platinum"},"cta":{"content":{"href":{"name":"Image #2 destination link","order":1,"type":"str","value":"https://www.krungsricard.com/th/Product/creditcard/Krungsri-Visa-Platinum#RegOnlineForm"},"target":{"name":"Image #2 link target","order":1,"type":"str","value":"https://www.krungsricard.com/th/Product/creditcard/Krungsri-Visa-Platinum#RegOnlineForm"}},"name":"Image #2 Call to Action","order":2,"type":"group"},"src":{"name":"Image #2 image URL","order":0,"type":"str","value":"https://www.krungsricard.com/getattachment/bc7d9543-2670-417e-8808-98317cdcba9c/krungsri-platinum-header.png;"}},"name":"Image 2","order":1,"type":"group"},{"content":{"alt":{"name":"Image #3 alt text","order":1,"type":"str","value":"Signature"},"cta":{"content":{"href":{"name":"Image #3 destination link","order":1,"type":"str","value":"https://www.krungsricard.com/th/Product/creditcard/Krungsri-signature#RegOnlineForm"},"target":{"name":"Image #3 link target","order":1,"type":"str","value":"https://www.krungsricard.com/th/Product/creditcard/Krungsri-signature#RegOnlineForm"}},"name":"Image #3 Call to Action","order":2,"type":"group"},"src":{"name":"Image #3 image URL","order":0,"type":"str","value":"https://www.krungsricard.com/getattachment/7e58f7a0-c291-4ab2-8437-eb7b17c83d45/krungsri-signature-header.png;"}},"name":"Image #3","order":2,"type":"group"},{"content":{"alt":{"name":"Image #4 alt text","order":1,"type":"str","value":"Image Description"},"cta":{"content":{"href":{"name":"Image #4 destination link","order":1,"type":"str","value":""},"target":{"name":"Image #4 link target","order":1,"type":"str","value":"_blank"}},"name":"Image #4 Call to Action","order":2,"type":"group"},"src":{"name":"Image #4 image URL","order":0,"type":"str","value":"https://cdn.qgraph.io/img/onsite-exp/image-slider-demo.jpeg"}},"name":"Image #4","order":2,"type":"group"},{"content":{"alt":{"name":"Image #5 alt text","order":1,"type":"str","value":"Image Description"},"cta":{"content":{"href":{"name":"Image #5 destination link","order":1,"type":"str","value":""},"target":{"name":"Image #5 link target","order":1,"type":"str","value":"_blank"}},"name":"Image #5 Call to Action","order":2,"type":"group"},"src":{"name":"Image #5 image URL","order":0,"type":"str","value":"https://cdn.qgraph.io/img/onsite-exp/image-slider-demo.jpeg"}},"name":"Image #5","order":2,"type":"group"}],"name":"Images","order":3,"type":"group"},"numOfSlidesToShow":{"max":5,"min":1,"name":"Number of images to display (from 1 to 5)","order":0,"type":"int","value":"3"},"slideDuration":{"name":"Display interval (in seconds)","order":1,"type":"int","value":"3"}},"name":"uiControl","type":"group"},"variables":{"backgroundColor":"#ffffff","imageHeight":"150px","images":[{"alt":"Lady titanium","cta":{"href":"https://www.krungsricard.com/th/Product/creditcard/krungsri-lady#RegOnlineForm","target":"https://www.krungsricard.com/th/Product/creditcard/krungsri-lady#RegOnlineForm"},"src":"https://www.krungsricard.com/getattachment/9f46d44b-b1a7-475a-a1f2-08622833c0cd/krungsri-lady-titanium-master-card-2card-header2.png;"},{"alt":"Platinum","cta":{"href":"https://www.krungsricard.com/th/Product/creditcard/Krungsri-Visa-Platinum#RegOnlineForm","target":"https://www.krungsricard.com/th/Product/creditcard/Krungsri-Visa-Platinum#RegOnlineForm"},"src":"https://www.krungsricard.com/getattachment/bc7d9543-2670-417e-8808-98317cdcba9c/krungsri-platinum-header.png;"},{"alt":"Signature","cta":{"href":"https://www.krungsricard.com/th/Product/creditcard/Krungsri-signature#RegOnlineForm","target":"https://www.krungsricard.com/th/Product/creditcard/Krungsri-signature#RegOnlineForm"},"src":"https://www.krungsricard.com/getattachment/7e58f7a0-c291-4ab2-8437-eb7b17c83d45/krungsri-signature-header.png;"},{"alt":"Image Description","cta":{"href":"","target":"_blank"},"src":"https://cdn.qgraph.io/img/onsite-exp/image-slider-demo.jpeg"},{"alt":"Image Description","cta":{"href":"","target":"_blank"},"src":"https://cdn.qgraph.io/img/onsite-exp/image-slider-demo.jpeg"}],"numOfSlidesToShow":"3","slideDuration":"3"}}},"target":"*:nth-child(1) \u003e *:nth-child(1) \u003e *:nth-child(3) \u003e *:nth-child(3) \u003e *:nth-child(1)","type":"blockTemplate","uuid":"8624be0a-b279-406b-afce-56be722f9d7e"}],"schedule":{"start":1752585640,"end":1847193640},"devices":{"ios":true,"android":true,"others":false}}]