1<!doctype html> 2 <html class="no-js"> 3 <head> 4 <meta charset="utf-8"> 5 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 6 <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"> 7 <meta name="apple-itunes-app" content="app-id=1576832504"> 8 <link rel="icon" type="image/x-icon" href="https://duagalery.com/images/2026/08/12/iconduatoto.png"> 9 <!-- Title and description --> 10 <title>LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777 GACOR INI DUATOTO 2026</title> 11 <meta name="description" content="DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik."> 12 <meta name="keywords" content="DUATOTO link baru 5000 perak situs toto slot777 gacor 2026 slot online slot gacor " /> 13 <link rel="canonical" href="https://duatotoperak.com/"> 14 <link rel="amphtml" href="https://duaperak-amp02.firehostapp.com/"/> 15 <link rel="alternate" media="only screen and (max-width: 1254px)" href="https://duaperak-amp02.firehostapp.com/" /> 16 <link rel="alternate" hreflang="id-id" href="https://duaperak-amp02.firehostapp.com/"/> 17 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/"/> 18 <link rel="alternate" hreflang="id" href="https://duaperak-amp02.firehostapp.com/"/> 19 <link rel="alternate" hreflang="en" href="https://duaperak-amp02.firehostapp.com/"/> 20 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="ja"> 21 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="en"> 22 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="zh-Hant"> 23 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="zh-Hans"> 24 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="th"> 25 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="id"> 26 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="ko"> 27 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="de"> 28 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="es"> 29 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="ru"> 30 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="fr"> 31 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="it"> 32 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="ms"> 33 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="my"> 34 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="pl"> 35 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="pt"> 36 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="tr"> 37 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="vi"> 38 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="ar"> 39 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="x-default"> 40 <!-- /snippets/social-meta-tags.liquid --> 41 <meta property="og:type" content="DUATOTO"> 42 <meta property="og:title" content="LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777 GACOR INI DUATOTO 2026"> 43 <meta property="og:image" content="https://duagalery.com/images/2026/09/03/duaperakgambar500.png"> 44 <meta property="og:image:secure_url" content="https://duagalery.com/images/2026/09/03/duaperakgambar500.png"> 45 <meta property="og:image" content="https://duagalery.com/images/2026/09/03/duaperakgambar500.png"> 46 <meta property="og:image:secure_url" content="https://duagalery.com/images/2026/09/03/duaperakgambar500.png"> 47 <meta property="og:image" content="https://duagalery.com/images/2026/09/03/duaperakgambar500.png"> 48 <meta property="og:image:secure_url" content="https://duagalery.com/images/2026/09/03/duaperakgambar500.png"> 49 <meta property="og:description" content="DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik."> 50 <meta property="og:price:amount" content="5,000-,"> 51 <meta property="og:price:currency" content="IDR"> 52 <meta property="og:url" content="https://duatotoperak.com/"> 53 <meta property="og:site_name" content="DUATOTO"> 54 <meta name="twitter:site" content="@DUATOTO"> 55 <meta name="twitter:card" content="summary"> 56 <meta name="twitter:title" content="LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT7
5677 GACOR INI DUATOTO 2026"> 57 <meta name="twitter:description" content="DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik."> 58 <meta name="twitter:image" content="https://duagalery.com/images/2026/09/03/duaperakgambar500.png"> 59 <meta name="twitter:image:width" content="1254"> 60 <meta name="twitter:image:height" content="1254"> 61 <meta name="google-site-verification" content="NwRLXxt-YnWKvpT2lA6WKgrVzlko_yOPSJCvfjj6AuA" /> 62 <link rel="shortcut icon" href="https://duagalery.com/images/2026/08/12/iconduatoto.png" type="image/png"> 63 <meta name="theme-color" content="#ff4d7a"> 64 <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700&family=Poppins&display=swap" rel="stylesheet"> 65 <link href="//outerbloom.com/cdn/shop/t/138/assets/custom-styles.css?v=94643080714485117621752652418" rel="stylesheet" type="text/css" media="all" /> 66 <link rel="stylesheet" href="//outerbloom.com/cdn/shop/t/138/assets/wishlist-styles.css?v=166819525406734116961754385201">
66<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js" defer></script>
66 67
67<script 68 src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js" 69 integrity="sha512-57oZ/vW8ANMjR/KQ6Be9v/+/h6bq9/l3f0Oc7vn6qMqyhvPd1cvKBRWWpzu0QoneImqr2SkmO4MSqU+RpHom3Q==" 70 crossorigin="anonymous" 71 referrerpolicy="no-referrer" 72 defer 73 ></script>
73 74
74<script src="https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js" async="async"></script>
74 75
75<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/select2.min.js" defer></script>
75<!-- Facebook Pixel Code --> 76
76<script>
vendor: 462 bytes, lines 76-85
76 77 !function(f,b,e,v,n,t,s) 78 {if(f.fbq)return;n=f.fbq=function(){n.callMethod? 79 n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 80 if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 81 n.queue=[];t=b.createElement(e);t.async=!0; 82 t.src=v;s=b.getElementsByTagName(e)[0]; 83 s.parentNode.insertBefore(t,s)}(window, document,'script', 84 'https://connect.facebook.net/en_US/fbevents.js'); 85 fbq('init', '
85165971065669324
vendor: 42 bytes, lines 85-87
85'); 86 fbq('track', 'PageView'); 87
87</script>
87 88 <noscript 89 ><img 90 height="1" 91 width="1" 92 style="display:none" 93 src="https://www.facebook.com/tr?id=165971065669324&ev=PageView&noscript=1" 94 ></noscript> 95 <!-- End Facebook Pixel Code --> 96 97 <!-- Google G4 Script - Disabled by developer (William) to prioritize Mobile App tracking --> 98 <!-- 99 Global site tag (gtag.js) - Google Analytics --
vendor: 75 bytes, lines 99-100
99 100 <script async src="https://www.googletagmanager.com/gtag/js?id=
100G-X26HYP4083
vendor: 23 bytes, lines 100-101
100"></script> 101
101<script> 102
vendor: 170 bytes, lines 102-106
102window.dataLayer = window.dataLayer || []; 103 function gtag(){dataLayer.push(arguments);} 104 gtag('js', new Date()); 105 106 gtag('config', '
106G-X26HYP4083
vendor: 15 bytes, lines 106-107
106'); 107
107</script>
107 108 Global site tag (gtag.js) - Google Analytics 109 --> 110 111 <div class="button-login-daftar"> 112 <a class="login" href="https://duaperak-amp02.firehostapp.com/" rel="nofollow noreferrer" style="color: white;"> 113 LOGIN 114 </a> 115 <a class="register" href="https://duaperak-amp02.firehostapp.com/" rel="nofollow noreferrer" style="color: white;"> 116 DAFTAR 117 </a> 118 </div> 119 120
120<script src="//cdnjs.cloudflare.com/ajax/libs/vissense/0.9.0/vissense.js" defer></script>
120 121 122 <!-- Bing UET --> 123
123<script> 124 (function(w,d,t,r,u) 125 { 126 var f,n,i; 127 w[u]=w[u]||[],f=function() 128 { 129 var o={ti:"343051754", tm:"shpfy_ui", enableAutoSpaTracking: true}; 130 o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad") 131 }, 132 n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function() 133 { 134 var s=this.readyState; 135 s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null) 136 }, 137 i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i) 138 }) 139 (window,document,"script","//bat.bing.com/bat.js","uetq"); 140 </script>
140 141
141<script> 142 window.uetq = window.uetq || []; 143 window.uetq.push('event', '', {"revenue_value":0,"currency":"IDR"}); 144 </script>
144 145 <!-- End Bing UET --> 146 147 <!-- Microsoft Clarity --> 148
148<script type="text/javascript"> 149 (function(c,l,a,r,i,t,y){ 150 c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; 151 t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i; 152 y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); 153 })(window, document, "clarity", "script", "h7rbxqry9k"); 154 </script>
154 155 <!-- End Microsoft Clarity --> 156 157 158 <link href="//outerbloom.com/cdn/shop/t/138/assets/combine.min.css?v=111340648424012527321754385205" rel="stylesheet" type="text/css" media="all" /> 159 <link href="//outerbloom.com/cdn/shop/t/138/assets/font-awesome.css?v=132324219581463622051752652421" rel="stylesheet" type="text/css" media="all" /> 160 <link rel="stylesheet" href="//code.jquery.com/ui/1.13.0/themes/base/jquery-ui.min.css"> 161
161<script src="//code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
161 162
162<script src="//outerbloom.com/cdn/shop/t/138/assets/combine.js?v=140218079523075729301752652421" type="text/javascript"></script>
162 163
163<script src="//code.jquery.com/ui/1.13.0/jquery-ui.min.js"></script>
163 164
164<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
164 165 <meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/15896833/digital_wallets/dialog"> 166 <link rel="alternate" type="application/json+oembed" href="https://duatotoperak.com/.oembed"> 167
167<script async="async" src="/checkouts/internal/preloads.js?locale=en-ID"></script>
167 168
168<script id="shopify-features" type="application/json">{"accessToken":"d2e176e59f6658d5056234d6249b3ab4","betas":["rich-media-storefront-analytics"],"domain":"outerbloom.com","predictiveSearch":true,"shopId":15896833,"locale":"en"}</script>
168 169
169<script>var Shopify = Shopify || {}; 170 Shopify.shop = "outerbloom1.myshopify.com"; 171 Shopify.locale = "en"; 172 Shopify.currency = {"active":"IDR","rate":"1.0"}; 173 Shopify.country = "ID"; 174 Shopify.theme = {"name":"web-outerbloom-shopify\/main","id":153139282135,"schema_name":null,"schema_version":null,"theme_store_id":null,"role":"main"}; 175 Shopify.theme.handle = "null"; 176 Shopify.theme.style = {"id":null,"handle":null}; 177 Shopify.cdnHost = "outerbloom.com/cdn"; 178 Shopify.routes = Shopify.routes || {}; 179 Shopify.routes.root = "/";</script>
179 180
180<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
180 181
181<script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script>
181 182
182<script id="shop-js-analytics" type="application/json">{"pageType":"product"}</script>
182 183
183<script defer="defer" async="async" src="//outerbloom.com/cdn/shopifycloud/shop-js/client.js" onload="window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 184 "></script>
184 185
185<script>(function() { 186 var isLoaded = false; 187 function asyncLoad() { 188 if (isLoaded) return; 189 isLoaded = true; 190 var urls = ["https:\/\/e9e1-180-254-64-204.ngrok.io\/public\/scripts\/shopifyPageScript.js?shop=outerbloom1.myshopify.com","https:\/\/ajax.googleapis.com\/ajax\/libs\/jquery\/3.5.1\/jquery.min.js?shop=outerbloom1.myshopify.com","https:\/\/14e1-180-254-64-204.ngrok.io\/public\/scripts\/shopifyPageScript.js?shop=outerbloom1.myshopify.com","https:\/\/6403-180-254-64-204.ngrok.io\/public\/scripts\/shopify-page-script.js?shop=outerbloom1.myshopify.com","https:\/\/googlesignintest.loca.lt\/public\/scripts\/shopify-page-script.js?shop=outerbloom1.myshopify.com","https:\/\/api-na1.hubapi.com\/scriptloader\/v1\/6800477.js?shop=outerbloom1.myshopify.com"]; 191 for (var i = 0; i < urls.length; i++) { 192 var s = document.createElement('script'); 193 s.type = 'text/javascript'; 194 s.async = true; 195 s.src = urls[i]; 196 var x = document.getElementsByTagName('script')[0]; 197 x.parentNode.insertBefore(s, x); 198 } 199 }; 200 if(window.attachEvent) { 201 window.attachEvent('onload', asyncLoad); 202 } else { 203 window.addEventListener('load', asyncLoad, false); 204 } 205 })();</script>
205 206
206<script id="__st">var __st={"a":15896833,"offset":25200,"reqid":"78149bf2-9ab6-43c0-b2ce-821afbfe5bd0-1759566675","pageurl":"outerbloom.com\/products\/blossom-shine","u":"381e6a1da038","p":"product","rtyp":"product","rid":8144957800663};</script>
206 207
207<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
207 208
208<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.2.iife.js',D={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!1,!0)}();</script>
208 209
209<script integrity="sha256-52AcMU7V7pcBOXWImdc/TAGTFKeNjmkeM1Pvks/DTgc=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//outerbloom.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-81c60534.js" crossorigin="anonymous"></script>
209 210
210<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://outerbloom.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 211 </script>
211 212
212<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 213 function portableWalletsHideBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.add("hidden"),t.setAttribute("aria-hidden","true"),n.removeEventListener("click",e))}function portableWalletsShowBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.remove("hidden"),t.removeAttribute("aria-hidden"),n.addEventListener("click",e))}window.Shopify?.PaymentButton&&(window.Shopify.PaymentButton.hideBuyerConsent=portableWalletsHideBuyerConsent,window.Shopify.PaymentButton.showBuyerConsent=portableWalletsShowBuyerConsent); 214 </script>
214 215
215<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("shopify-accelerated-checkout-cart, shopify-accelerated-checkout")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}})); 216 </script>
216 217 218
218<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
218 219 <!-- /snippets/oldIE-js.liquid --> 220 221 222 <!--[if lt IE 9]> 223
223<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js" type="text/javascript"></script>
223 224
224<script src="//outerbloom.com/cdn/shop/t/138/assets/respond.min.js?v=52248677837542619231752652418" type="text/javascript"></script>
224 225 <link href="//outerbloom.com/cdn/shop/t/138/assets/respond-proxy.html" id="respond-proxy" rel="respond-proxy" /> 226 <link href="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" id="respond-redirect" rel="respond-redirect" /> 227
227<script src="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" type="text/javascript"></script>
227 228 <![endif]--> 229 230 231 232 233 234 <link href="https://cdn.shopify.com/extensions/5c1bf460-65bd-4bca-82d0-995a5814b48d/bitlogin-social-login-135/assets/app.css" rel="stylesheet" type="text/css" media="all"> 235 <link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch"> 236
236<script>(function(){if ("sendBeacon" in navigator && "performance" in window) {try {var session_token_from_headers = performance.getEntriesByType('navigation')[0].serverTiming.find(x => x.name == '_s').description;} catch {var session_token_from_headers = undefined;}var session_cookie_matches = document.cookie.match(/_shopify_s=([^;]*)/);var session_token_from_cookie = session_cookie_matches && session_cookie_matches.length === 2 ? session_cookie_matches[1] : "";var session_token = session_token_from_headers || session_token_from_cookie || "";function handle_abandonment_event(e) {var entries = performance.getEntries().filter(function(entry) {return /monorail-edge.shopifysvc.com/.test(entry.name);});if (!window.abandonment_tracked && entries.length === 0) {window.abandonment_tracked = true;var currentMs = Date.now();var navigation_start = performance.timing.navigationStart;var payload = {shop_id: 15896833,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "product"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
236 237
237<script id="web-pixels-manager-setup">(function e(e,d,r,n,o){if(void 0===o&&(o={}),!Boolean(null===(a=null===(i=window.Shopify)||void 0===i?void 0:i.analytics)||void 0===a?void 0:a.replayQueue)){var i,a;window.Shopify=window.Shopify||{};var t=window.Shopify;t.analytics=t.analytics||{};var s=t.analytics;s.replayQueue=[],s.publish=function(e,d,r){return s.replayQueue.push([e,d,r]),!0};try{self.performance.mark("wpm:start")}catch(e){}var l=function(){var e={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](13[3-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(13[5-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(13[3-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](13[3-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(13[5-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(13[3-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/},d=e.modern,r=e.legacy,n=navigator.userAgent;return n.match(d)?"modern":n.match(r)?"legacy":"unknown"}(),u="modern"===l?"modern":"legacy",c=(null!=n?n:{modern:"",legacy:""})[u],f=function(e){return[e.baseUrl,"/wpm","/b",e.hashVersion,"modern"===e.buildTarget?"m":"l",".js"].join("")}({baseUrl:d,hashVersion:r,buildTarget:u}),m=function(e){var d=e.version,r=e.bundleTarget,n=e.surface,o=e.pageUrl,i=e.monorailEndpoint;return{emit:function(e){var a=e.status,t=e.errorMsg,s=(new Date).getTime(),l=JSON.stringify({metadata:{event_sent_at_ms:s},events:[{schema_id:"web_pixels_manager_load/3.1",payload:{version:d,bundle_target:r,page_url:o,status:a,surface:n,error_msg:t},metadata:{event_created_at_ms:s}}]});if(!i)return console&&console.warn&&console.warn("[Web Pixels Manager] No Monorail endpoint provided, skipping logging."),!1;try{return self.navigator.sendBeacon.bind(self.navigator)(i,l)}catch(e){}var u=new XMLHttpRequest;try{return u.open("POST",i,!0),u.setRequestHeader("Content-Type","text/plain"),u.send(l),!0}catch(e){return console&&console.warn&&console.warn("[Web Pixels Manager] Got an unhandled error while logging to Monorail."),!1}}}}({version:r,bundleTarget:l,surface:e.surface,pageUrl:self.location.href,monorailEndpoint:e.monorailEndpoint});try{o.browserTarget=l,function(e){var d=e.src,r=e.async,n=void 0===r||r,o=e.onload,i=e.onerror,a=e.sri,t=e.scriptDataAttributes,s=void 0===t?{}:t,l=document.createElement("script"),u=document.querySelector("head"),c=document.querySelector("body");if(l.async=n,l.src=d,a&&(l.integrity=a,l.crossOrigin="anonymous"),s)for(var f in s)if(Object.prototype.hasOwnProperty.call(s,f))try{l.dataset[f]=s[f]}catch(e){}if(o&&l.addEventListener("load",o),i&&l.addEventListener("error",i),u)u.appendChild(l);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(l)}}({src:f,async:!0,onload:function(){if(!function(){var e,d;return Boolean(null===(d=null===(e=window.Shopify)||void 0===e?void 0:e.analytics)||void 0===d?void 0:d.initialized)}()){var d=window.webPixelsManager.init(e)||void 0;if(d){var r=window.Shopify.analytics;r.replayQueue.forEach((function(e){var r=e[0],n=e[1],o=e[2];d.publishCustomEvent(r,n,o)})),r.replayQueue=[],r.publish=d.publishCustomEvent,r.visitor=d.visitor,r.initialized=!0}}},onerror:function(){return m.emit({status:"failed",errorMsg:"".concat(f," has failed to load")})},sri:function(e){var d=/^sha384-[A-Za-z0-9+/=]+$/;return"string"==typeof e&&d.test(e)}(c)?c:"",scriptDataAttributes:o}),m.emit({status:"loading"})}catch(e){m.emit({status:"failed",errorMsg:(null==e?void 0:e.message)||"Unknown error"})}}})({shopId: 15896833,storefrontBaseUrl: "https://outerbloom.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://monorail-edge.shopifysvc.com/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: [],webPixelsConfigList: [{"id":"870383831","configuration":"{\"accountID\":\"outerbloom1\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"162380e6ffd3e5a2854f1aabf54537bb","type":"APP","apiClientId":32196493313,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"]},{"id":"824574167","configuration":"{\"shop\":\"outerbloom1.myshopify.com\", \"backend\": \"api.bitbybit.studio\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"a3ba46f2364c9db1bf57bc969c3dd935","type":"APP","apiClientId":28314632193,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"]},{"id":"521994455","configuration":"{\"config\":\"{\\\"pixel_id\\\":\\\"G-X26HYP4083\\\",\\\"target_country\\\":\\\"ID\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/YjjSCKiog9gZEMHe74Yp\\\"]},{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/RHfSCK6og9gZEMHe74Yp\\\"]},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/dMv0CKWog9gZEMHe74Yp\\\",\\\"MC-HY9J2ZJTNZ\\\"]},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/Y2DbCJ-og9gZEMHe74Yp\\\",\\\"MC-HY9J2ZJTNZ\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/xwQ2CKKog9gZEMHe74Yp\\\",\\\"MC-HY9J2ZJTNZ\\\"]},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/i9yRCLGog9gZEMHe74Yp\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/T9poCKuog9gZEMHe74Yp\\\"]}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"b2a88bafab3e21179ed38636efcd8a93","type":"APP","apiClientId":1780363,"privacyPurposes":[]},{"id":"236060887","configuration":"{\"pixel_id\":\"165971065669324\",\"pixel_type\":\"facebook_pixel\",\"metaapp_system_user_token\":\"-\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"6d8c3ef0426b37b2a9b717daeb719f58","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"]},{"id":"62947543","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["MARKETING"],"name":"Meta pixel (migrated)"},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0450","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0450","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"Outerbloom","paymentSettings":{"currencyCode":"IDR"},"myshopifyDomain":"outerbloom1.myshopify.com","countryCode":"ID","storefrontUrl":"https:\/\/outerbloom.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[{"price":{"amount":835000.0,"currencyCode":"IDR"},"product":{"title":"LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT7
23777 GACOR INI DUATOTO 2026","vendor":"Outerbloom Florist","id":"8144957800663","untranslatedTitle":"LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777 GACOR INI DUATOTO 2026","url":"\/products\/blossom-shine","type":"DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik."},"id":"44083045826775","image":{"src":"\/\/outerbloom.com\/cdn\/shop\/files\/Blossom-Shine-WM.jpg?v=1695788426"},"sku":"OBVSTF1086","title":"Default Title","untranslatedTitle":"Default Title"}],"purchasingCompany":null},},"https://outerbloom.com/cdn","4f0c5c77w64a73806p128ba08bma5b58f2f",{"modern":"","legacy":""},{"shopId":"15896833","storefrontBaseUrl":"https:\/\/outerbloom.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[]","isMerchantRequest":"false","hashVersion":"4f0c5c77w64a73806p128ba08bma5b58f2f","publish":"custom","events":"[[\"page_viewed\",{}],[\"product_viewed\",{\"productVariant\":{\"price\":{\"amount\":835000.0,\"currencyCode\":\"IDR\"},\"product\":{\"title\":\"LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777 GACOR INI DUATOTO 2026\",\"vendor\":\"Outerbloom Florist\",\"id\":\"8144957800663\",\"untranslatedTitle\":\"LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777 GACOR INI DUATOTO 2026\",\"url\":\"\/products\/blossom-shine\",\"type\":\"DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik.\"},\"id\":\"44083045826775\",\"image\":{\"src\":\"\/\/outerbloom.com\/cdn\/shop\/files\/Blossom-Shine-WM.jpg?v=1695788426\"},\"sku\":\"OBVSTF1086\",\"title\":\"Default Title\",\"untranslatedTitle\":\"Default Title\"}}]]"});</script>
237<script> 238 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 239 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 240 window.ShopifyAnalytics.meta.currency = 'IDR'; 241 var meta = {"product":{"id":8144957800663,"gid":"gid:\/\/shopify\/Product\/8144957800663","vendor":"Outerbloom Florist","type":"DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik.","variants":[{"id":44083045826775,"price":1000000 242 ,"name":"LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777 GACOR INI DUATOTO 2026","public_title":null,"sku":"OBVSTF1086"}],"remote":false},"page":{"pageType":"product","resourceType":"product","resourceId":8144957800663}}; 243 for (var attr in meta) { 244 window.ShopifyAnalytics.meta[attr] = meta[attr]; 245 } 246 </script>
246 247
247<script class="analytics"> 248 (function () { 249 var customDocumentWrite = function(content) { 250 var jquery = null; 251 252 if (window.jQuery) { 253 jquery = window.jQuery; 254 } else if (window.Checkout && window.Checkout.$) { 255 jquery = window.Checkout.$; 256 } 257 258 if (jquery) { 259 jquery('body').append(content); 260 } 261 }; 262 263 var hasLoggedConversion = function(token) { 264 if (token) { 265 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 266 } 267 return false; 268 } 269 270 var setCookieIfConversion = function(token) { 271 if (token) { 272 var twoMonthsFromNow = new Date(Date.now()); 273 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 274 275 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 276 } 277 } 278 279 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 280 if (trekkie.integrations) { 281 return; 282 } 283 trekkie.methods = [ 284 'identify', 285 'page', 286 'ready', 287 'track', 288 'trackForm', 289 'trackLink' 290 ]; 291 trekkie.factory = function(method) { 292 return function() { 293 var args = Array.prototype.slice.call(arguments); 294 args.unshift(method); 295 trekkie.push(args); 296 return trekkie; 297 }; 298 }; 299 for (var i = 0; i < trekkie.methods.length; i++) { 300 var key = trekkie.methods[i]; 301 trekkie[key] = trekkie.factory(key); 302 } 303 trekkie.load = function(config) { 304 trekkie.config = config || {}; 305 trekkie.config.initialDocumentCookie = document.cookie; 306 var first = document.getElementsByTagName('script')[0]; 307 var script = document.createElement('script'); 308 script.type = 'text/javascript'; 309 script.onerror = function(e) { 310 var scriptFallback = document.createElement('script'); 311 scriptFallback.type = 'text/javascript'; 312 scriptFallback.onerror = function(error) { 313 var Monorail = { 314 produce: function produce(monorailDomain, schemaId, payload) { 315 var currentMs = new Date().getTime(); 316 var event = { 317 schema_id: schemaId, 318 payload: payload, 319 metadata: { 320 event_created_at_ms: currentMs, 321 event_sent_at_ms: currentMs 322 } 323 }; 324 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 325 }, 326 sendRequest: function sendRequest(endpointUrl, payload) { 327 // Try the sendBeacon API 328 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 329 var blobData = new window.Blob([payload], { 330 type: 'text/plain' 331 }); 332 333 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 334 return true; 335 } // sendBeacon was not successful 336 337 } // XHR beacon 338 339 var xhr = new XMLHttpRequest(); 340 341 try { 342 xhr.open('POST', endpointUrl); 343 xhr.setRequestHeader('Content-Type', 'text/plain'); 344 xhr.send(payload); 345 } catch (e) { 346 console.log(e); 347 } 348 349 return false; 350 }, 351 isIos12: function isIos12() { 352 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 353 } 354 }; 355 Monorail.produce('monorail-edge.shopifysvc.com', 356 'trekkie_storefront_load_errors/1.1', 357 {shop_id: 15896833, 358 theme_id: 153139282135, 359 app_name: "storefront", 360 context_url: window.location.href, 361 source_url: "//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js"}); 362 363 }; 364 scriptFallback.async = true; 365 scriptFallback.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js'; 366 first.parentNode.insertBefore(scriptFallback, first); 367 }; 368 script.async = true; 369 script.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js'; 370 first.parentNode.insertBefore(script, first); 371 }; 372 trekkie.load( 373 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":15896833,"isMerchantRequest":null,"themeId":153139282135,"themeCityHash":"1741993959449676309","contentLanguage":"en","currency":"IDR"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain"},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 374 ); 375 376 var loaded = false;
377 trekkie.ready(function() { 378 if (loaded) return; 379 loaded = true; 380 381 window.ShopifyAnalytics.lib = window.trekkie; 382 383 var originalDocumentWrite = document.write; 384 document.write = customDocumentWrite; 385 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 386 document.write = originalDocumentWrite; 387 388 window.ShopifyAnalytics.lib.page(null,{"pageType":"product","resourceType":"product","resourceId":8144957800663,"shopifyEmitted":true}); 389 390 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 391 var token = match? match[1]: undefined; 392 if (!hasLoggedConversion(token)) { 393 setCookieIfConversion(token); 394 window.ShopifyAnalytics.lib.track("Viewed Product",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777 GACOR INI DUATOTO 2026","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik.","nonInteraction":true,"remote":false},undefined,undefined,{"shopifyEmitted":true}); 395 window.ShopifyAnalytics.lib.track("monorail:\/\/trekkie_storefront_viewed_product\/1.1",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777 GACOR INI DUATOTO 2026","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik.","nonInteraction":true,"remote":false,"referer":"https:\/\/outerbloom.com\/products\/blossom-shine"}); 396 } 397 }); 398 399 400 var eventsListenerScript = document.createElement('script'); 401 eventsListenerScript.async = true; 402 eventsListenerScript.src = "//outerbloom.com/cdn/shopifycloud/storefront/assets/shop_events_listener-abeef7a0.js"; 403 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 404 405 })();</script>
405 406
406<script> 407 if (!window.ga || (window.ga && typeof window.ga !== 'function')) { 408 window.ga = function ga() { 409 (window.ga.q = window.ga.q || []).push(arguments); 410 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 411 window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"}); 412 } 413 console.error("Shopify's Google Analytics stub called with:", Array.from(arguments), "\nSee https://help.shopify.com/manual/promoting-marketing/pixels/pixel-migration#google for more information."); 414 }; 415 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 416 window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"}); 417 } 418 } 419 </script>
419 420
420<script 421 defer 422 src="https://outerbloom.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-2.0.13.min.js" 423 data-application="storefront-renderer" 424 data-shop-id="15896833" 425 data-render-region="gcp-asia-southeast1" 426 data-page-type="product" 427 data-theme-instance-id="153139282135" 428 data-theme-name="" 429 data-theme-version="" 430 data-monorail-region="shop_domain" 431 data-resource-timing-sampling-rate="10" 432 data-shs="true" 433 data-shs-beacon="true" 434 data-shs-export-with-fetch="true" 435 data-shs-logs-sample-rate="1" 436 ></script>
436 437 438
438<script type="application/ld+json"> 439{ 440 "@context": "https://schema.org", 441 "@type": "Product", 442 "name": "LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777 GACOR INI DUATOTO 2026", 443 "image": "https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif", 444 "description": "DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik.", 445 "brand": { 446 "@type": "Brand", 447 "name": "DUATOTO" 448 }, 449 "sku": "131654989", 450 "mpn": "D-13165594", 451 "url": "https://duatotoperak.com/", 452 "offers": { 453 "@type": "Offer", 454 "url": "https://duatotoperak.com/", 455 "priceCurrency": "USD", 456 "price": "11", 457 "priceValidUntil": "2026-11-25", 458 "itemCondition": "https://schema.org/NewCondition", 459 "availability": "https://schema.org/InStock", 460 "seller": { 461 "@type": "Organization", 462 "name": "DUATOTO" 463 } 464 }, 465 "aggregateRating": { 466 "@type": "AggregateRating", 467 "ratingValue": "5.0", 468 "reviewCount": 89426 469 }, 470 "review": [ 471 { 472 "@type": "Review", 473 "reviewRating": { 474 "@type": "Rating", 475 "ratingValue": "5", 476 "bestRating": "5" 477 }, 478 "author": { 479 "@type": "Person", 480 "name": "Andong Matulesi" 481 }, 482 "reviewBody": "Ini baru namanya Situs, Hal yang paling menarik dari DUATOTO adalah penyajiannya yang sederhana dan praktis. Pengguna bisa menemukan informasi seputar SITUS TOTO SLOT777 GACOR dalam satu tempat tanpa tampilan yang terasa berlebihan." 483 }, 484 { 485 "@type": "Review", 486 "reviewRating": { 487 "@type": "Rating", 488 "ratingValue": "5", 489 "bestRating": "5" 490 }, 491 "author": { 492 "@type": "Person", 493 "name": "Baskoro Matumbaman" 494 }, 495 "reviewBody": "Gini dong Link terbaik, Menurut saya DUATOTO punya daya tarik tersendiri dibandingkan situs Toto lainnya. Navigasinya terasa praktis, informasi yang ditampilkan cukup jelas, dan keseluruhan tampilannya membuat pengalaman menjelajah menjadi lebih menyenangkan." 496 }, 497 { 498 "@type": "Review", 499 "reviewRating": { 500 "@type": "Rating", 501 "ratingValue": "5", 502 "bestRating": "5" 503 }, 504 "author": { 505 "@type": "Person", 506 "name": "Casiono Metenteng" 507 }, 508 "reviewBody": "Keren sih ini Link Situs terbaik menurutku, DUATOTO tampil cukup menarik dengan konsep link 2026 yang terasa modern dan mudah dipahami. Informasi mengenai Slot777 dan permainan Toto tersusun rapi, sehingga pengalaman menjelajah situs terasa lebih nyaman." 509 } 510 ] 511} 512</script>
vendor: 1 bytes, line 512
512
513<script type="application/ld+json"> 514{ 515 "@context": "https://schema.org", 516 "@type": "BreadcrumbList", 517 "itemListElement": [ 518 { 519 "@type": "ListItem", 520 "position": 1, 521 "name": "DUATOTO", 522 "item": "https://duatotoperak.com/" 523 }, 524 { 525 "@type": "ListItem", 526 "position": 2, 527 "name": "Link Terbaru 2026", 528 "item": "https://duatotoperak.com/" 529 }, 530 { 531 "@type": "ListItem", 532 "position": 3, 533 "name": "Link Slot777", 534 "item": "https://duatotoperak.com/" 535 }, 536 { 537 "@type": "ListItem", 538 "position": 4, 539 "name": "Situs Toto", 540 "item": "https://duatotoperak.com/" 541 }, 542 { 543 "@type": "ListItem", 544 "position": 5, 545 "name": "Situs Duatoto", 546 "item": "https://duatotoperak.com/" 547 }, 548 { 549 "@type": "ListItem", 550 "position": 6, 551 "name": " Link Duatoto", 552 "item": "https://duatotoperak.com/" 553 }, 554 { 555 "@type": "ListItem", 556 "position": 8, 557 "name": "LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777 GACOR INI DUATOTO 2026", 558 "item": "https://duatotoperak.com/" 559 } 560 ] 561} 562</script>
562 563
563<script type="application/ld+json"> 564 { 565 "@context": "https://schema.org", 566 "@type": "Organization", 567 "name": "DUATOTO", 568 "url": "https://duatotoperak.com/", 569 "logo": "https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif", 570 "sameAs": ["https://www.facebook.com/duatoto", "https://twitter.com/duatoto", "https://www.instagram.com/duatoto"], 571 "contactPoint": { 572 "@type": "ContactPoint", 573 "telephone": "+62-812-8874-1411", 574 "contactType": "customer support", 575 "areaServed": "ID", 576 "availableLanguage": ["Indonesian", "English"] 577 } 578 } 579 </script>
579 580
581<script type="application/ld+json"> 582{ 583 "@context": "https://schema.org", 584 "@type": "FAQPage", 585 "mainEntity": [ 586 { 587 "@type": "Question", 588 "name": "Apa itu DUATOTO?", 589 "acceptedAnswer": { 590 "@type": "Answer", 591 "text": "DUATOTO merupakan nama platform yang dikaitkan dengan informasi seputar Slot777 dan situs Toto. Halaman DUATOTO dapat digunakan untuk mengenal layanan, tampilan, serta informasi terbaru yang tersedia pada 2026." 592 } 593 }, 594 { 595 "@type": "Question", 596 "name": "Apa yang dimaksud dengan Link 2026 Baru DUATOTO?", 597 "acceptedAnswer": { 598 "@type": "Answer", 599 "text": "Link 2026 Baru DUATOTO merujuk pada alamat akses terbaru yang digunakan untuk menemukan halaman terkait DUATOTO. Pengguna sebaiknya memastikan alamat yang digunakan berasal dari sumber yang benar dan memeriksa kembali informasi sebelum mengaksesnya." 600 } 601 }, 602 { 603 "@type": "Question", 604 "name": "Apa saja informasi yang tersedia di DUATOTO?", 605 "acceptedAnswer": { 606 "@type": "Answer", 607 "text": "Informasi yang ditampilkan dapat mencakup pembaruan mengenai Slot777, Toto, fitur platform, navigasi, serta informasi layanan yang berkaitan dengan DUATOTO." 608 } 609 }, 610 { 611 "@type": "Question", 612 "name": "Mengapa DUATOTO menggunakan istilah Slot777?", 613 "acceptedAnswer": { 614 "@type": "Answer", 615 "text": "Slot777 merupakan salah satu istilah yang digunakan untuk menggambarkan kategori permainan yang menjadi bagian dari topik DUATOTO. Penyebutan tersebut membantu pengguna memahami fokus informasi yang tersedia pada platform." 616 } 617 }, 618 { 619 "@type": "Question", 620 "name": "Apa yang dimaksud dengan situs Toto pesaing Perak?", 621 "acceptedAnswer": { 622 "@type": "Answer", 623 "text": "Situs Toto yang siap bersaing dengan Perak yaitu DUATOTO. Yang membandingkan keberadaan platform dengan situs Toto lain yang sedang dikenal. Perbandingan sebaiknya dilakukan berdasarkan informasi, fitur, keamanan, dan pengalaman penggunaan masing masing platform." 624 } 625 }, 626 { 627 "@type": "Question", 628 "name": "Apakah DUATOTO memiliki tampilan yang mudah digunakan?", 629 "acceptedAnswer": { 630 "@type": "Answer", 631 "text": "Kemudahan penggunaan bergantung pada versi halaman dan perangkat yang digunakan. Secara konsep, DUATOTO diarahkan dengan struktur informasi yang ringkas agar pengguna lebih mudah menemukan bagian yang ingin diketahui." 632 } 633 }, 634 { 635 "@type": "Question", 636 "name": "Apakah DUATOTO dapat diakses melalui perangkat mobile?", 637 "acceptedAnswer": { 638 "@type": "Answer", 639 "text": "Jika halaman DUATOTO mendukung desain responsif, pengguna dapat membukanya melalui smartphone maupun perangkat lain yang memiliki browser. Tampilan aktual dapat berbeda bergantung pada versi halaman dan perangkat." 640 } 641 }, 642 { 643 "@type": "Question", 644 "name": "Bagaimana cara memastikan link DUATOTO yang benar?", 645 "acceptedAnswer": { 646 "@type": "Answer", 647 "text": "Periksa kembali alamat domain sebelum memasukkan informasi apa pun. Hindari tautan yang berasal dari sumber tidak dikenal dan jangan memberikan data pribadi atau kredensial kepada halaman yang tidak dapat diverifikasi." 648 } 649 } 650 ] 651} 652</script>
652 653
654<script type="application/ld+json"> 655{ 656 "@context": "https://schema.org", 657 "@type": "HowTo", 658 "inLanguage": "id-ID", 659 "name": "Cara Bergabung di DUATOTO dengan Aman, Cepat, dan Praktis", 660 "description": "Panduan lengkap untuk pengguna baru yang ingin membuat akun, mengakses layanan resmi, melakukan transaksi, memilih permainan, dan menikmati pengalaman bermain di DUATOTO secara lebih nyaman dan bertanggung jawab.", 661 "image": "https://duagalery.com/images/2025/11/13/bgdua13.png", 662 "totalTime": "PT5M", 663 "estimatedCost": { 664 "@type": "MonetaryAmount", 665 "currency": "IDR", 666 "value": "5000" 667 }, 668 "supply": [ 669 { 670 "@type": "HowToSupply", 671 "name": "Nomor handphone atau email aktif" 672 }, 673 { 674 "@type": "HowToSupply", 675 "name": "Data pendaftaran yang valid" 676 }, 677 { 678 "@type": "HowToSupply", 679 "name": "Metode transaksi yang tersedia" 680 } 681 ], 682 "tool": [ 683 { 684 "@type": "HowToTool", 685 "name": "Smartphone, tablet, atau komputer" 686 }, 687 { 688 "@type": "HowToTool", 689 "name": "Koneksi internet stabil" 690 } 691 ], 692 "step": [ 693 { 694 "@type": "HowToStep", 695 "position": 1, 696 "name": "Kunjungi Akses Resmi DUATOTO", 697 "text": "Buka halaman DUATOTO melalui link resmi atau link alternatif yang terpercaya. Pastikan alamat situs sudah benar sebelum melakukan login atau pendaftaran agar akun tetap aman dari risiko halaman palsu." 698 }, 699 { 700 "@type": "HowToStep", 701 "position": 2, 702 "name": "Pilih Menu Daftar", 703 "text": "Pada halaman utama, klik tombol Daftar atau Register untuk memulai pembuatan akun baru. Menu ini biasanya tersedia dengan jelas agar pengguna baru dapat bergabung dengan mudah." 704 }, 705 { 706 "@type": "HowToStep", 707 "position": 3, 708 "name": "Lengkapi Formulir Pendaftaran", 709 "text": "Isi seluruh kolom pendaftaran dengan data yang benar, seperti username, password, nomor kontak, dan informasi lain yang diminta. Gunakan password yang kuat dan jangan membagikan data akun kepada siapa pun." 710 }, 711 { 712 "@type": "HowToStep", 713 "position": 4, 714 "name": "Login ke Akun DUATOTO", 715 "text": "Setelah pendaftaran berhasil, masuk ke akun menggunakan username dan password yang telah dibuat. Periksa kembali informasi akun sebelum melanjutkan ke tahap berikutnya." 716 }, 717 { 718 "@type": "HowToStep", 719 "position": 5, 720 "name": "Pilih Metode Deposit yang Tersedia", 721 "text": "Masuk ke menu deposit dan pilih metode transaksi yang paling nyaman, seperti transfer bank, e-wallet, atau metode lain yang tersedia. Lakukan deposit sesuai kebutuhan dan tetap sesuaikan dengan batas anggaran pribadi." 722 }, 723 { 724 "@type": "HowToStep", 725 "position": 6, 726 "name": "Jelajahi Pilihan Provider dan Permainan", 727 "text": "Setelah saldo masuk, buka daftar permainan dan pilih provider yang ingin dimainkan. DUATOTO menyediakan berbagai pilihan game sehingga pengguna dapat memilih permainan sesuai preferensi masing-masing." 728 }, 729 { 730 "@type": "HowToStep", 731 "position": 7, 732 "name": "Mulai Bermain dengan Bijak", 733 "text": "Mulailah permainan dengan nominal yang sesuai kemampuan. Nikmati permainan sebagai hiburan, atur batas waktu bermain, dan hindari mengejar kerugian. Tidak ada permainan yang dapat menjamin kemenangan." 734 }, 735 { 736 "@type": "HowToStep", 737 "position": 8, 738 "name": "Hubungi Layanan Bantuan Jika Dibutuhkan", 739 "text": "Jika mengalami kendala saat pendaftaran, login, deposit, atau memilih permainan, segera hubungi layanan bantuan resmi DUATOTO untuk mendapatkan panduan lebih lanjut." 740 } 741 ] 742} 743</script>
743 744 745 </head><body 746 data-template="product" 747 id="blossom-shine" 748 class="template-product template-product" 749 > 750 <!-- Google Tag Manager (noscript) -->
vendor: 90 bytes, lines 750-753
750 751 <noscript 752 ><iframe 753 src="https://www.googletagmanager.com/ns.html?id=
753GTM-MF9VVZX
vendor: 129 bytes, lines 753-759
753" 754 height="0" 755 width="0" 756 style="display:none;visibility:hidden" 757 ></iframe 758 ></noscript> 759
759<!-- End Google Tag Manager (noscript) --> 760 761 762 763 <div class="header-wrapper"> 764 765 <div id="shopify-section-NotifBar" class="shopify-section m-0"> 766 767 <style> 768 #notification {z-index: 99;width: 100%;transition: top 0.2s ease-in-out;} 769 #notification.promo-up {top: -48px!important;} 770 .promo-bg {width: 100%;padding: 6px 0;background: linear-gradient(to bottom, #ff4d7a 0%, #000000 50%, #ff4d7a 100%);} 771 .notification__message p {margin: 0;color: #ffffff;font-size: 20px!important; font-weight: bold;} 772 .notification__message p a {text-decoration: underline;color: #ffffff;} 773 @media (max-width: 991px){.notification__message p {font-size: 14px!important;}} 774 @media (max-width: 992px) {.header-container {padding: 15px 20px;z-index: 99;background-color: #000000;width: 100%;left: 0;} 775} 776 </style> 777 <input id="clearCookie" class="hide" type="button" value="Delete Cookie" /> 778 <div id="notification" class="promo-down promo-bg pl-2 pr-2" data-text="up-to-40-off-embrace-traditions-with-our-special-mooncake-hampers-pre-order-now"> 779 <div class="page-width notification__inner "> 780 781 782 <div class="notification__message text-center"> 783 <p>Selamat Datang Di DUATOTO LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777 GACOR</p> 784 </div> 785 </div> 786 </div> 787 788 789 790 791 </div> 792 <div id="shopify-section-new-header" class="shopify-section mb-0 mt-0"><link href="//outerbloom.com/cdn/shop/t/138/assets/section-new-header.css?v=159841885358852784021757475904" rel="stylesheet" type="text/css" media="all"/> 793 794 795 <header style="background: black;"> 796 <div class="container"> 797 <div class="header-container row justify-content-between pl-lg-0 pr-lg-0"> 798 <a href="https://duatotoperak.com/"> 799 <img src="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" alt="LOGO DUATOTO" style="width: 190px;"></a> 800 <link href="https://duagalery.com/images/2026/08/12/iconduatoto.png" rel="shortcut icon" type="image/x-icon" /> 801 <div id="menu-hamburger" class="d-lg-none"> 802 <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="16" height="10" viewBox="0 0 16 10" fill="none"> 803 <path d="M15.5995 0.949976H0.400342C0.320777 0.949976 0.244471 0.918369 0.18821 0.862108C0.131949 0.805847 0.100342 0.729541 0.100342 0.649976C0.100342 0.570411 0.131949 0.494104 0.18821 0.437843C0.244471 0.381582 0.320777 0.349976 0.400342 0.349976H15.5995C15.6791 0.349976 15.7554 0.381582 15.8117 0.437843C15.8679 0.494104 15.8995 0.570411 15.8995 0.649976C15.8995 0.729541 15.8679 0.805847 15.8117 0.862108C15.7554 0.918369 15.6791 0.949976 15.5995 0.949976ZM15.5995 5.29998H0.400342C0.320777 5.29998 0.244471 5.26837 0.18821 5.21211C0.131949 5.15585 0.100342 5.07954 0.100342 4.99998C0.100342 4.92041 0.131949 4.8441 0.18821 4.78784C0.244471 4.73158 0.320777 4.69998 0.400342 4.69998H15.5995C15.6791 4.69998 15.7554 4.73158 15.8117 4.78784C15.8679 4.8441 15.8995 4.92041 15.8995 4.99998C15.8995 5.07954 15.8679 5.15585 15.8117 5.21211C15.7554 5.26837 15.6791 5.29998 15.5995 5.29998ZM15.5995 9.64998H0.400342C0.320777 9.64998 0.244471 9.61837 0.18821 9.56211C0.131949 9.50585 0.100342 9.42954 0.100342 9.34998C0.100342 9.27041 0.131949 9.1941 0.18821 9.13784C0.244471 9.08158 0.320777 9.04998 0.400342 9.04998H15.5995C15.6791 9.04998 15.7554 9.08158 15.8117 9.13784C15.8679 9.1941 15.8995 9.27041 15.8995 9.34998C15.8995 9.42954 15.8679 9.50585 15.8117 9.56211C15.7554 9.61837 15.6791 9.64998 15.5995 9.64998Z" fill="#ffffff"/> 804 </svg> 805 806 <a href="/"><svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" viewBox="0 0 854 78.29"> 807 <g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><path d="M36.85.11a36.6,36.6,0,0,1,14.91,3,34.84,34.84,0,0,1,11.71,8.35,38.29,38.29,0,0,1,7.6,12.48,43.13,43.13,0,0,1,2.69,15.36,41.58,41.58,0,0,1-4.65,19.78,35.49,35.49,0,0,1-13,13.86A36.21,36.21,0,0,1,36.85,78,36.65,36.65,0,0,1,17.37,73,34.34,34.34,0,0,1,4.54,59.15,42.43,42.43,0,0,1,0,39.29,42.2,42.2,0,0,1,2.71,24.1a38.64,38.64,0,0,1,7.67-12.51A35.23,35.23,0,0,1,36.85.11Zm0,8.47a27.77,27.77,0,0,0-15,4,27.18,27.18,0,0,0-10,11A34.19,34.19,0,0,0,8.3,39.29a30.63,30.63,0,0,0,2.19,11.53,31.32,31.32,0,0,0,6.08,9.69,29,29,0,0,0,9.08,6.66,25.84,25.84,0,0,0,11.2,2.44,25.2,25.2,0,0,0,11.2-2.55,30.26,30.26,0,0,0,9.19-6.86,32.46,32.46,0,0,0,6.17-9.74,29.2,29.2,0,0,0,2.21-11.17,32.83,32.83,0,0,0-3.79-16A27.77,27.77,0,0,0,51.54,12.45,28.15,28.15,0,0,0,36.85,8.58Z"></path><path d="M97.26,4.76a4.13,4.13,0,0,1,1.19-2.88A3.59,3.59,0,0,1,101.14.61q4.36,0,4.42,4.15L106,42.33a44.26,44.26,0,0,0,2.27,14.5,19.83,19.83,0,0,0,7,9.73q4.78,3.5,12.53,3.49,8.58,0,13.72-3.49A19.72,19.72,0,0,0,148.94,57a38.56,38.56,0,0,0,2.33-13.83L151.16,4.7v0a4,4,0,0,1,1.19-2.93A3.87,3.87,0,0,1,155.25.5a4.06,4.06,0,0,1,3,1.22,3.93,3.93,0,0,1,1.24,2.93v0l.12,38.4q0,16.5-7.83,25.84T128,78.29q-10.18,0-16.88-4.56a27.51,27.51,0,0,1-10-12.67,50.37,50.37,0,0,1-3.43-18.68L97.26,4.81Z"></path><path d="M180.3,4.48a4.2,4.2,0,0,1,1.25-3,4,4,0,0,1,3-1.27H239.9a4.13,4.13,0,0,1,2.93,1.13,3.75,3.75,0,0,1,1.22,2.85,4.31,4.31,0,0,1-1.22,3,4,4,0,0,1-3,1.3H216.27V73.59A3.9,3.9,0,0,1,215,76.52a4.16,4.16,0,0,1-3,1.22,3.81,3.81,0,0,1-2.88-1.22A4.11,4.11,0,0,1,208,73.59V8.47H184.45a4.13,4.13,0,0,1-2.93-1.14A3.72,3.72,0,0,1,180.3,4.48Z"></path><path d="M264.73,4.48A4,4,0,0,1,266,1.55,4,4,0,0,1,268.88.33l51.84.06h.06a4,4,0,0,1,2.93,1.21,4,4,0,0,1,1.22,2.94,4,4,0,0,1-1.22,2.93,4,4,0,0,1-2.93,1.22h-.06L273,8.63l.05,26a1.48,1.48,0,0,0,.31,0l.25,0,42.55.28a4,4,0,0,1,3,1.19,4.38,4.38,0,0,1,1.19,3.24A3.58,3.58,0,0,1,319.06,42a4.14,4.14,0,0,1-2.87,1.16h-.06l-42.55-.28h-.44l.05,25.73,47.53,0h.06a4.15,4.15,0,0,1,0,8.3h-.06l-51.68,0a4.17,4.17,0,0,1-4.15-4.15Z"></path><path d="M405.09,74.2A3.73,3.73,0,0,1,403.9,77a3.48,3.48,0,0,1-2.4,1.16,4.15,4.15,0,0,1-2.05-.53c-.63-.35-1.09-.62-1.38-.8a40.76,40.76,0,0,1-8.5-8.13,51.74,51.74,0,0,1-6.11-10,33.41,33.41,0,0,0-4.9-8,14.69,14.69,0,0,0-6.17-4.26A28,28,0,0,0,363.26,45l-6.42,0,.06,28.38v.12a4.13,4.13,0,0,1-7.08,2.9,4.1,4.1,0,0,1-1.22-3l-.17-69.16a3.9,3.9,0,0,1,1.22-2.94A4.22,4.22,0,0,1,352.53.06L367.25,0h1.27A51.16,51.16,0,0,1,385,2.43a23.75,23.75,0,0,1,11.18,7.5q4,5.07,4,13a19.65,19.65,0,0,1-2.33,9.71,22.07,22.07,0,0,1-6.09,7,27,27,0,0,1-8.13,4.2,29.33,29.33,0,0,1,4.93,7.2c2.13,4.09,4.26,7.78,6.36,11.06a32.1,32.1,0,0,0,8.35,8.69A4,4,0,0,1,405.09,74.2ZM368.8,8.3H356.73l.11,29.16a3.59,3.59,0,0,1,.72-.06l11.35-.11q10.17-.1,16.65-3.45T392,22.63a11.53,11.53,0,0,0-3.16-8.55,17.83,17.83,0,0,0-8.44-4.45A47.47,47.47,0,0,0,368.8,8.3Z"></path><path d="M480.67,21.63a18.59,18.59,0,0,1-1.61,8.17,20.81,20.81,0,0,1-4.65,6.11A19.72,19.72,0,0,1,481.19,43a21.32,21.32,0,0,1,2.63,10.85q0,11.4-6.14,17.23T460,76.86l-28.39-.06a4.56,4.56,0,0,1-2.85-.91,3.07,3.07,0,0,1-1.19-2.58l-.11-68.94a4,4,0,0,1,1.22-2.85,4,4,0,0,1,2.77-1.3l19,0A48.24,48.24,0,0,1,466,2.46a23.21,23.21,0,0,1,10.76,7.06Q480.67,14.27,480.67,21.63ZM450.9,8.69l-15.11.05L435.85,33l23-.33c4.16-.08,7.46-.94,9.87-2.58s3.63-4.4,3.63-8.27a10.42,10.42,0,0,0-2.83-7.64A16.41,16.41,0,0,0,461.88,10,42.3,42.3,0,0,0,450.9,8.69Zm9,60.25q7.8,0,11.73-3.34t3.93-11.49q0-7.08-4.09-10.12t-11.51-3H459l-23.18.33,0,27.77Z"></path><path d="M511.64,76.75a4.17,4.17,0,0,1-4.15-4.15l-.17-68v0a4,4,0,0,1,1.22-2.94,4.16,4.16,0,0,1,5.87,0,4,4,0,0,1,1.21,2.94v0l.17,63.86h43.33a4.15,4.15,0,0,1,0,8.3Z"></path><path d="M619.75.11a36.6,36.6,0,0,1,14.91,3,34.7,34.7,0,0,1,11.7,8.35A38.14,38.14,0,0,1,654,23.93a43.12,43.12,0,0,1,2.68,15.36A41.69,41.69,0,0,1,652,59.07a35.49,35.49,0,0,1-13,13.86A36.21,36.21,0,0,1,619.75,78,36.63,36.63,0,0,1,600.27,73a34.44,34.44,0,0,1-12.84-13.8,42.54,42.54,0,0,1-4.53-19.86,42.2,42.2,0,0,1,2.71-15.19,38.78,38.78,0,0,1,7.66-12.51A35.23,35.23,0,0,1,619.75.11Zm0,8.47a27.74,27.74,0,0,0-15,4,27.18,27.18,0,0,0-10,11,34.19,34.19,0,0,0-3.54,15.75,30.62,30.62,0,0,0,2.18,11.53,31.53,31.53,0,0,0,6.09,9.69,29,29,0,0,0,9.07,6.66,25.91,25.91,0,0,0,11.21,2.44A25.2,25.2,0,0,0,631,67.06a30.26,30.26,0,0,0,9.19-6.86,32.66,32.66,0,0,0,6.17-9.74,29.39,29.39,0,0,0,2.21-11.17,32.83,32.83,0,0,0-3.79-16,27.64,27.64,0,0,0-25-14.66Z"></path><path d="M715.9.11a36.61,36.61,0,0,1,14.92,3,34.9,34.9,0,0,1,11.7,8.35,38.31,38.31,0,0,1,7.61,12.48,43.34,43.34,0,0,1,2.68,15.36,41.58,41.58,0,0,1-4.65,19.78,35.42,35.42,0,0,1-12.95,13.86A36.21,36.21,0,0,1,715.9,78,36.59,36.59,0,0,1,696.43,73a34.3,34.3,0,0,1-12.84-13.8,42.43,42.43,0,0,1-4.54-19.86,42.42,42.42,0,0,1,2.71-15.19,38.64,38.64,0,0,1,7.67-12.51A35.23,35.23,0,0,1,715.9.11Zm0,8.47a27.77,27.77,0,0,0-15,4,27.18,27.18,0,0,0-10,11,34.19,34.19,0,0,0-3.54,15.75,30.63,30.63,0,0,0,2.19,11.53,31.32,31.32,0,0,0,6.08,9.69,29,29,0,0,0,9.08,6.66,25.87,25.87,0,0,0,11.2,2.44,25.24,25.24,0,0,0,11.21-2.55,30.34,30.34,0,0,0,9.18-6.86,32.27,32.27,0,0,0,6.17-9.74,29.21,29.21,0,0,0,2.22-11.17,32.94,32.94,0,0,0-3.79-16,27.87,27.87,0,0,0-10.3-10.79A28.15,28.15,0,0,0,715.9,8.58Z"></path><path d="M776.31,4.32a4.15,4.15,0,0,1,1.17-2.85,3.86,3.86,0,0,1,5.14-.58,5.18,5.18,0,0,1,1.61,1.66L815.1,53.06,846.31,2.21a3.92,3.92,0,0,1,3.54-2,4,4,0,0,1,2.93,1.22A4,4,0,0,1,854,4.37V73.7a4.15,4.15,0,0,1-8.3,0V19.09l-27.06,44.1a4.14,4.14,0,0,1-7.08,0l-26.95-44V73.48a4.15,4.15,0,0,1-8.3,0Z"></path></g></g> 808 </svg> 809 </a> 810 </div> 811 812 <div class="header-icon-right header-icons col-3"> 813 <div class="icon icon-account-header d-none d-lg-block"> 814 <a href="https://duatotoperak.com/"> 815 <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="20" height="21" viewBox="0 0 20 21" fill="none"> 816 <path d="M19.015 19.8549C18.4842 18.3662 17.3117 17.0514 15.6819 16.1134C14.052 15.1754 12.0547 14.6667 10.0002 14.6667C7.94569 14.6667 5.94835 15.1754 4.31852 16.1134C2.68869 17.0514 1.51618 18.3662 0.985352 19.8549" stroke="#ffffff" stroke-linecap="round"/> 817 <path d="M10.0002 10C12.5775 10 14.6668 7.91068 14.6668 5.33335C14.6668 2.75602 12.5775 0.666687 10.0002 0.666687C7.42283 0.666687 5.3335 2.75602 5.3335 5.33335C5.3335 7.91068 7.42283 10 10.0002 10Z" stroke="#ffffff" stroke-linecap="round"/> 818 </svg> 819 820 </a> 821 </div> 822 <div class="icon icon-wishlist-header"> 823 <a href="https://duatotoperak.com/"> 824 <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 825 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.072
8256 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.11233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 826 </svg> 827 828 <span class="wishlist-count d-none">0</span> 829 </a> 830 </div> 831 <div class="icon icon-cart-header"> 832 <a href="https://duatotoperak.com/"> 833 <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="22" height="21" viewBox="0 0 22 21" fill="none"> 834 <path d="M6.33301 10V5.33335C6.33301 4.09568 6.82467 2.90869 7.69984 2.03352C8.57501 1.15835 9.762 0.666687 10.9997 0.666687C12.2374 0.666687 13.4243 1.15835 14.2995 2.03352C15.1747 2.90869 15.6663 4.09568 15.6663 5.33335V10" stroke="#ffffff" stroke-linecap="round"/> 835 <path d="M1.30956 10.7793C1.47873 8.74817 1.56389 7.73317 2.23356 7.116C2.90323 6.49883 3.92289 6.5 5.96106 6.5H16.0399C18.0769 6.5 19.0966 6.5 19.7662 7.116C20.4359 7.732 20.5211 8.74817 20.6902 10.7793L21.2899 17.973C21.3879 19.1548 21.4369 19.7463 21.0916 20.1232C20.7439 20.5 20.1512 20.5 18.9636 20.5H3.03623C1.84973 20.5 1.25589 20.5 0.909392 20.1232C0.562892 19.7463 0.611892 19.1548 0.711059 17.973L1.30956 10.7793Z" stroke="#ffffff"/> 836 </svg> 837 838 </a> 839 </div> 840 </div> 841 </div> 842 </div> 843 </header> 844 845 <nav class="nav-header" style="background: linear-gradient(to bottom, #ff4d7a 0%, #000000 50%, #ff4d7a 100%);"> 846 <div class="nav-account-mobile row m-0 d-lg-none"> 847 <div class="col-6 welcome-cust p-0"> 848 849 <h1 class="logo"> 850 <a href="https://duatotoperak.com/"> 851 <img src="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" alt="DUATOTO" style="max-height:60px;"> 852 </a> 853 </h1> 854 855 856 </div> 857 858 <div class="col-6 login-register text-right p-0"> 859 <a href="https://duaperak-amp02.firehostapp.com/">Log In</a> | <a href="https://duaperak-amp02.firehostapp.com/">Sign Up</a> 860 </div> 861 </div> 862 <ul class="nav-menu container"> 863 864 <li class="nav-menu container"> 865 <a href="https://duatotoperak.com/"> 866 <span style="color: #ffffff;">DUATOTO</span> 867 868 869 <li class=" nav-menu container"> 870 <a href="https://duatotoperak.com/"> 871 <span style="color: #ffffff;">DUATOTO DAFTAR</span> 872 873 874 <li class=" nav-menu container"> 875 <a href="https://duatotoperak.com/"> 876 <span style="color: #ffffff;">DUATOTO LOGIN</span> 877 878 <li class=" nav-menu container"> 879 <a href="https://duatotoperak.com/"> 880 <span style="color: #ffffff;">DUATOTO LINK</span> 881 882 <li class=" nav-menu container"> 883 <a href="https://duatotoperak.com/"> 884 <span style="color: #ffffff;">DUATOTO RESMI</span> 885 886 <li class=" nav-menu container"> 887 <a href="https://duatotoperak.com/"> 888 <span style="color: #ffffff;">SLOT777 DUATOTO</span> 889 890 <li class=" nav-menu container"> 891 <a href="https://duatotoperak.com/"> 892 <span style="color: #ffffff;">SITUS TOTO DUATOTO</span> 893 894 <div class="overlay-nav"> 895 <!-- Mobile Close Button in Overlay --> 896 <button id="nav-close" class="nav-close-btn d-lg-none"> 897 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif"> 898 <path d="M18 6L6 18M6 6L18 18" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 899 </svg> 900 </button> 901 </div> 902 903
903<script> 904 if ($(window).width() < 992) { 905 // Level 1 menu accordion (main menu items) 906 $(".nav-menu .nav-menu container > a").click(function(e){ 907 e.preventDefault() 908 const parentLi = $(this).parent() 909 const isCurrentlyOpen = parentLi.hasClass("menu-open") 910 911 // Close all other open menus (accordion behavior) 912 $(".nav-menu .nav-menu container").not(parentLi).removeClass("menu-open") 913 $(".nav-menu .megamenu").not($(this).next(".megamenu")).slideUp() 914 915 // Toggle current menu 916 if (isCurrentlyOpen) { 917 parentLi.removeClass("menu-open") 918 $(this).next(".megamenu").slideUp() 919 } else { 920 parentLi.addClass("menu-open") 921 $(this).next(".megamenu").slideDown() 922 } 923 }) 924 925 // Level 2 menu accordion (submenu items with grandchildren) 926 $(document).on('click', '.dropdown-menu .has-submenu > a', function(e){ 927 e.preventDefault() 928 const parentLi = $(this).parent() 929 const isCurrentlyOpen = parentLi.hasClass("submenu-open") 930 const grandchild = $(this).next(".grandchild") 931 932 // Close all other open submenus in the same dropdown (accordion behavior) 933 parentLi.siblings('.has-submenu').removeClass("submenu-open") 934 parentLi.siblings('.has-submenu').find('.grandchild').slideUp() 935 parentLi.siblings('.has-submenu').find('.chevron-right').css('transform', 'rotate(0deg)') 936 937 // Toggle current submenu 938 if (isCurrentlyOpen) { 939 parentLi.removeClass("submenu-open") 940 grandchild.slideUp() 941 $(this).find('.chevron-right').css('transform', 'rotate(0deg)') 942 } else { 943 parentLi.addClass("submenu-open") 944 grandchild.slideDown() 945 $(this).find('.chevron-right').css('transform', 'rotate(90deg)') 946 } 947 }) 948 949 $("#menu-hamburger").click(function(e){ 950 e.preventDefault() 951 $("body").toggleClass("nav_open") 952 }) 953 954 // Handle close button click 955 $("#nav-close").click(function(e){ 956 e.preventDefault() 957 $("body").removeClass("nav_open") 958 // Close all open menus when close button is clicked 959 $(".nav-menu .nav-menu container").removeClass("menu-open") 960 $(".nav-menu .megamenu").slideUp() 961 $(".dropdown-menu .has-submenu").removeClass("submenu-open") 962 $(".dropdown-menu .grandchild").slideUp() 963 $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)') 964 }) 965 } 966 967 $(".overlay-nav").click(function(e){ 968 e.preventDefault() 969 $("body").removeClass("nav_open") 970 // Close all open menus when overlay is clicked 971 $(".nav-menu .nav-menu container").removeClass("menu-open") 972 $(".nav-menu .megamenu").slideUp() 973 $(".dropdown-menu .has-submenu").removeClass("submenu-open") 974 $(".dropdown-menu .grandchild").slideUp() 975 $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)') 976 }) 977 </script>
977 978 979 980 </div> 981 982 <div id="shopify-section-search-popup" class="shopify-section m-0"><style> 983 #search-trigger { 984 cursor: pointer; 985 } 986 #search-popup { 987 display: none; 988 position: fixed; 989 left: 0; 990 width: 100%; 991 top: 0; 992 height: 100%; 993 justify-content: center; 994 z-index: 9999; 995 background: rgb(196 196 196 / 30%); 996 } 997 #search-input { 998 align-self: center; 999 width: 100%; 1000 height: 80px; 1001 position: absolute; 1002 top: 0; 1003 border-bottom: 0.5px solid #A3A3A3; 1004 background-color: #fff; 1005 } 1006 #search-input * { 1007 align-self: center; 1008 } 1009 #search-type { 1010 width: 100%; 1011 border: none; 1012 padding-right: 20px; 1013 padding-left: 20px; 1014 font-size: 16px; 1015 color: #757575; 1016 } 1017 #search-btn { 1018 font-size: 16px; 1019 font-weight: 500; 1020 } 1021 #search-result { 1022 min-height: 490px; 1023 width: 100%; 1024 padding-top: 80px; 1025 } 1026 #search-result .container { 1027 background-color: #fff; 1028 padding: 20px 40px; 1029 } 1030 body.search-popup-open { 1031 /* .search-popup-open */ 1032 overflow: hidden; 1033 } 1034 .search-popup-open #loc_delivery { 1035 display: none 1036 } 1037 .search-header svg { 1038 display: none; 1039 cursor: pointer; 1040 } 1041 .wrapper-search-popup { 1042 max-height: calc(100vh - 150px); 1043 overflow-y: auto; 1044 overflow-x: hidden; 1045 } 1046 1047 .group-recommend { 1048 padding: 20px 40px; 1049 } 1050 1051 .resultsearch { 1052 display: none; 1053 } 1054 .results { padding: 20px 40px } 1055 .resultsearch label { 1056 font-weight: 600; 1057 padding-bottom: 20px; 1058 display: block; 1059 margin-bottom: 20px; 1060 border-bottom: 1px solid #AAAAAA; 1061 } 1062 1063 ul.result_product { 1064 max-height: 300px; 1065 overflow: auto; 1066 } 1067 1068 .group-promotion ul { 1069 margin: 0; 1070 } 1071 .group-promotion li { 1072 list-style: none; 1073 margin-bottom: 12px; 1074 } 1075 .group-promotion li a { 1076 color: inherit; 1077 } 1078 1079 .group-recent { 1080 position: relative; 1081 padding: 20px 40px; 1082 } 1083 .group-recent ul { 1084 margin: 0; 1085 } 1086 .group-recent li { 1087 list-style: none; 1088 display: inline-block; 1089 margin-right: 60px; 1090 } 1091 .group-recent li a { 1092 color: inherit; 1093 } 1094 1095 .last-search svg { 1096 width: 20px; 1097 vertical-align: middle; 1098 } 1099 ul.last-search a { 1100 vertical-align: middle; 1101 padding: 0 10px; 1102 } 1103 ul.last-search li span { 1104 cursor: pointer; 1105 } 1106 .delete-all-history { 1107 position: absolute; 1108 top: 25px; 1109 right: 40px; 1110 text-decoration: underline; 1111 color: #e11d1d; 1112 cursor: pointer; 1113 font-size: 12px; 1114 } 1115 1116 form.search.search-modal__form { 1117 position: relative; 1118 } 1119 1120 button.search__button svg { 1121 width: 25px; 1122 color: #495057; 1123 fill: #757582; 1124 } 1125 1126 button.search__button.field__button { 1127 position: absolute; 1128 top: 50%; 1129 margin-top: -12px; 1130 } 1131 1132 .close-search { 1133 display: none; 1134 position: absolute; 1135 right: 65px; 1136 top: 10px; 1137 cursor: pointer; 1138 } 1139 1140 .site-overlay { 1141 position: fixed; 1142 top: 0; 1143 width: 100vw; 1144 height: 100vh; 1145 z-index: 1000; 1146 background: #0000005c; 1147 visibility: hidden; 1148 opacity: 0; 1149 pointer-events: none; 1150 transition: all .3s linear; 1151 display: block !important; 1152 } 1153 1154 .search-popup-open .site-overlay { 1155 opacity: 1; 1156 visibility: visible; 1157 pointer-events: all; 1158 z-index: -1; 1159 cursor: pointer; 1160 } 1161 1162 @media (min-width: 991px) { 1163 .group-recent ul { 1164 column-count: 3; 1165 } 1166 .group-promotion li a { 1167 font-size: 12px; 1168 font-weight: 400; 1169 } 1170 .group-recent li a { 1171 font-size: 12px; 1172 font-weight: 400; 1173 } 1174 } 1175 1176 .moreresult { 1177 padding: 10px 40px; 1178 border-top: 1px solid #AAAAAA; 1179 } 1180 .moreresult * { 1181 align-self: center; 1182 } 1183 .moreresult p { 1184 margin: 0; 1185 font-size: 12px !important; 1186 } 1187 .moreresult svg { 1188 width: 13px; 1189 } 1190 1191 @media (max-width: 992px) { 1192 .icon-key-mobile { 1193 height: auto!important; 1194 width: 10px!important; 1195 } 1196 body.grid-view.search-popup-open .products { 1197 -ms-flex: 0 0 100%!important; 1198 flex: 0 0 100%!important; 1199 max-width: 100%!important; 1200 } 1201 button.search__button svg {
1202 width: 20px; 1203 } 1204 #search-result { 1205 padding-left: 0; 1206 padding-right: 0; 1207 } 1208 #search-result { 1209 padding-top: 55px; 1210 } 1211 #search-input { 1212 height: 55px; 1213 } 1214 .group-recommend { 1215 padding: 20px; 1216 } 1217 #search-input .container { 1218 padding: 0 20px; 1219 } 1220 #search-type { 1221 font-size: 14px; 1222 } 1223 #search-btn { 1224 font-size: 12px; 1225 text-decoration: underline; 1226 } 1227 .results { 1228 padding: 20px; 1229 } 1230 .group-recommend h3 { 1231 font-size: 16px; 1232 } 1233 .products .card-body { 1234 padding: 8px 0px 10px; 1235 } 1236 .moreresult { 1237 padding: 10px 20px; 1238 } 1239 } 1240 </style> 1241 <style type="text/css"> 1242 div.advertisement-placeholder { 1243 text-align: center; 1244 padding-bottom: 20px; 1245 display: flex; 1246 flex-direction: column; 1247 justify-content: center; 1248 } 1249 div.advertisement-text p { 1250 margin: 0; 1251 font-family: Open Sans; 1252 font-style: normal; 1253 font-weight: normal; 1254 font-size: 10px; 1255 line-height: 20px; 1256 color: #999999; 1257 } 1258 div.advertisement-banner { 1259 margin: 0px auto; 1260 } 1261 div#div-gpt-ad-billboard-placeholder { 1262 width: 996px; 1263 margin: 0 auto; 1264 background: #F5F5F5; 1265 padding-bottom: unset !important; 1266 min-height: 200px; 1267 } 1268 div#div-gpt-ad-lb-placeholder { 1269 background: #F5F5F5; 1270 padding-bottom: unset !important; 1271 min-height: 280px; 1272 } 1273 .faq-section{ 1274 max-width:1200px; 1275 margin:50px auto; 1276 padding:40px 20px; 1277 position:relative; 1278 background-color: rgba(0, 0, 0, 0.1); 1279 backdrop-filter: blur(25px); 1280 border-radius: 20px; 1281 } 1282 1283 .faq-section::before{ 1284 content:""; 1285 position:absolute; 1286 top:0;left:50%; 1287 transform:translateX(-50%); 1288 width:80%; 1289 height:2px; 1290 background:linear-gradient(90deg,transparent,#ff4d7a,transparent) 1291 } 1292 1293 .faq-section h2{ 1294 text-align:center; 1295 font-size:34px;font-weight:700; 1296 margin-bottom:50px; 1297 background: linear-gradient(135deg, #676767, #ebebeb, #67676
12977); 1298 -webkit-background-clip:text; 1299 -webkit-text-fill-color:transparent; 1300 background-clip:text; 1301 font-family:"Poppins",sans-serif;letter-spacing:1px 1302 } 1303 1304 .faq-container{ 1305 display:flex; 1306 flex-direction:column; 1307 gap:25px 1308 } 1309 1310 .faq-item{ 1311 background:linear-gradient(145deg,#0a0a0a,#1a1a1a); 1312 border:2px solid #ff4d7a; 1313 border-radius:20px;overflow:hidden; 1314 transition:all .4s ease;box-shadow:0 5px 20px rgba(0,0,0,0.5) 1315 } 1316 1317 .faq-item:hover{ 1318 border-color:#ff4d7a; 1319 transform:translateX(10px); 1320 box-shadow:0 12px 35px rgba(253, 4, 4, 0.25) 1321 } 1322 1323 .faq-question{width:100%; 1324 padding:28px 35px;background:transparent; 1325 color:#ffffff; 1326 font-size:18px; 1327 font-weight:600; 1328 text-align:left; 1329 border:none;cursor:pointer; 1330 display:flex; 1331 justify-content:space-between; 1332 align-items:center; 1333 font-family:"Poppins",sans-serif; 1334 transition:all .3s ease 1335 } 1336 1337 .faq-question:hover{ 1338 color:#ff4d7a 1339 } 1340 1341 .faq-question::after{ 1342 content:'+'; 1343 font-size:32px; 1344 font-weight:300; 1345 transition:all .4s ease; 1346 color:#ff4d7a; 1347 width:40px; 1348 height:40px; 1349 display:flex; 1350 align-items:center; 1351 justify-content:center; 1352 border:2px solid #ff4d7a;border-radius:50%; 1353 background:rgba(0, 0, 0, 0.1) 1354 } 1355 1356 .faq-item.active .faq-question::after{ 1357 transform:rotate(135deg); 1358 background:linear-gradient(to bottom, #470000 0%, #ff4d7a 50%, #470000 100%); 1359 color:#000;border-color:transparent 1360 } 1361 1362 .faq-answer{ 1363 max-height:0; 1364 overflow:hidden; 1365 transition:max-height .5s ease,padding .5s ease; 1366 background:linear-gradient(180deg,rgba(253,228,4,0.05),transparent); 1367 padding:0 35px 1368 } 1369 1370 .faq-item.active .faq-answer{ 1371 max-height:800px;padding:30px 35px; 1372 border-top:1px solid rgba(253, 199, 4, 0.3) 1373 } 1374 1375 .faq-answer p{ 1376 color:#e0e0e0; 1377 font-size:16px; 1378 line-height:2; 1379 margin:0; 1380 font-family:"Poppins",sans-serif 1381 } 1382 1383 @media 1384 (max-width:768px) 1385 { 1386 1387 .faq-section 1388 {padding:30px 15px} 1389 1390 .faq-section h2 1391 {font-size:26px} 1392 1393 .faq-question 1394 {font-size:16px; 1395 padding:22px 25px} 1396 1397 .faq-question::after 1398 {width:35px; 1399 height:35px; 1400 font-size:28px} 1401 1402 .faq-answer 1403 {padding:0 25px} 1404 1405 .faq-item.active .faq-answer 1406 {padding:25px} 1407 1408 .faq-item:hover 1409 {transform:translateX(5px)} 1410 } 1411 </style> 1412 <div id="search-popup"> 1413 <div id="search-input" class="row"> 1414 <div class="container w-100"> 1415 <form 1416 action="/search" 1417 method="get" 1418 role="search" 1419 class="search search-modal__form d-flex justify-content-between" 1420 > 1421 <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="20" height="20" viewBox="0 0 20 20" fill="none"> 1422 <path d="M18.7327 19.513L11.427 12.2073C10.8437 12.7043 10.1729 13.0889 9.41454 13.3612C8.65621 13.6334 7.89398 13.7695 7.12787 13.7695C5.25965 13.7695 3.67843 13.1228 2.3842 11.8293C1.08998 10.5359 0.442871 8.95505 0.442871 7.08683C0.442871 5.2186 1.0892 3.63699 2.38187 2.34199C3.67454 1.04699 5.25498 0.398714 7.12321 0.397159C8.99143 0.395603 10.5734 1.04271 11.8692 2.33849C13.165 3.63427 13.8129 5.21588 13.8129 7.08333C13.8129 7.89377 13.6694 8.67816 13.3824 9.43649C13.0954 10.1948 12.7182 10.8435 12.2507 11.3825L19.5564 18.687L18.7327 19.513ZM7.12904 12.6017C8.67682 12.6017 9.98348 12.0689 11.049 11.0033C12.1146 9.93777 12.6474 8.63071 12.6474 7.08216C12.6474 5.5336 12.1146 4.22694 11.049 3.16216C9.98348 2.09738 8.67682 1.5646 7.12904 1.56383C5.58126 1.56305 4.2742 2.09583 3.20787 3.16216C2.14154 4.22849 1.60876 5.53516 1.60954 7.08216C1.61032 8.62916 2.14309 9.93583 3.20787 11.0022C4.27265 12.0685 5.57932 12.6013 7.12787 12.6005" fill="#ffffff"/> 1423 </svg> 1424 1425 <input type="hidden" name="type" value="product"> 1426 <input 1427 type="text" 1428 id="search-type" 1429 name="q" 1430 class="search-popup" 1431 placeholder="Gifts that linger: Uncover treasures for cherished moments." 1432 > 1433 <div class="close-search"><svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="18" height="18" viewBox="0 0 18 18" fill="none"> 1434 <path d="M9 9.708L12.246 12.954C12.3393 13.0473 12.454 13.0973 12.59 13.104C12.726 13.1107 12.8473 13.0607 12.954 12.954C13.0607 12.8473 13.114 12.7293 13.114 12.6C13.114 12.4707 13.0607 12.3527 12.954 12.246L9.708 9L12.954 5.754C13.0473 5.66067 13.0973 5.546 13.104 5.41C13.1107 5.274 13.0607 5.15267 12.954 5.046C12.8473 4.93933 12.7293 4.886 12.6 4.886C12.4707 4.886 12.3527 4.93933 12.246 5.046L9 8.292L5.754 5.046C5.66067 4.95267 5.546 4.90267 5.41 4.896C5.274 4.88933 5.15267 4.93933 5.046 5.046C4.93933 5.15267 4.886 5.27067 4.886 5.4C4.886 5.52933 4.93933 5.64733 5.046 5.754L8.292 9L5.046 12.246C4.95267 12.3393 4.90267 12.4543 4.896 12.591C4.88933 12.7263 4.93933 12.8473 5.046 12.954C5.15267 13.0607 5.27067 13.114 5.4 13.114C5.52933 13.114 5.64733 13.0607 5.754 12.954L9 9.708ZM9.003 18C7.75833 18 6.58833 17.764 5.493 17.292C4.39767 16.8193 3.44467 16.178 2.634 15.368C1.82333 14.558 1.18167 13.606 0.709 12.512C0.236333 11.418 0 10.2483 0 9.003C0 7.75767 0.236333 6.58767 0.709 5.493C1.181 4.39767 1.82133 3.44467 2.63 2.634C3.43867 1.82333 4.391 1.18167 5.487 0.709C6.583 0.236333 7.753 0 8.997 0C10.241 0 11.411 0.236333 12.507 0.709C13.6023 1.181 14.5553 1.82167 15.366 2.631C16.1767 3.44033 16.8183 4.39267 17.291 5.488C17.7637 6.58333 18 7.753 18 8.997C18 10.241 17.764 11.411 17.292
143412.507C16.82 13.603 16.1787 14.556 15.368 15.366C14.5573 16.176 13.6053 16.8177 12.512 17.291C11.4187 17.7643 10.249 18.0007 9.003 18ZM9 17C11.2333 17 13.125 16.225 14.675 14.675C16.225 13.125 17 11.2333 17 9C17 6.76667 16.225 4.875 14.675 3.325C13.125 1.775 11.2333 1 9 1C6.76667 1 4.875 1.775 3.325 3.325C1.775 4.875 1 6.76667 1 9C1 11.2333 1.775 13.125 3.325 14.675C4.875 16.225 6.76667 17 9 17Z" fill="#757575"/> 1435 </svg> 1436 </div> 1437 <button id="search-btn">Search</button> 1438 </form> 1439 </div> 1440 </div> 1441 <div id="search-result" class="container m-auto"> 1442 <div class="container p-0"> 1443 <div class="group-promotion"> 1444 <div class="resultsearch"> 1445 <div class="row results"> 1446 <div class="col-12 col-lg-6 mb-3 mb-lg-0"> 1447 <label>SUGGESTIONS</label> 1448 <ul class="result_collection"></ul> 1449 </div> 1450 <div class="col-12 col-lg-6"> 1451 <label>PRODUCTS</label> 1452 <ul class="result_product"></ul> 1453 </div> 1454 </div> 1455 <div class="d-flex justify-content-between moreresult m-0"> 1456 <p>Search for<span></span></p> 1457 <svg version="1.1" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="32" height="32" viewBox="0 0 32 32"> 1458 <title>icon-arrow-right</title> 1459 <path d="M25.057 15.333l-6.862-6.862c-0.26-0.26-0.26-0.682 0-0.943s0.682-0.26 0.943 0l8 8c0.26 0.26 0.26 0.682 0 0.943l-8 8c-0.26 0.26-0.682 0.26-0.943 0s-0.26-0.682 0-0.943l6.862-6.862h-19.724c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h19.724z"></path> 1460 </svg> 1461 </div> 1462 </div> 1463 </div> 1464 <div class="group-recent hide"> 1465 <h3>RECENT SEARCH</h3> 1466 <span class="delete-all-history">Hapus riwayat</span> 1467 <ul class="last-search"></ul> 1468 </div> 1469 <div class="group-recommend"> 1470 <h3>YOU MAY ALSO LIKE</h3> 1471 1472 1473 <div class="row popup-recommend c-products-grid infinite-case product-multi-"> 1474 <div class="swiper-wrapper justify-content-between" style="margin-left:1px;"> 1475 1476 1477 <div class="swiper-slide card"> 1478 1479 1480 1481 1482 <div class="products" data-lazy="false"> 1483 <div class="bg-products"> 1484 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-love-mooncake"> 1485 <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1486 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
148611233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1487 </svg> 1488 1489 </div> 1490 <a href="/products/mid-autumn-of-love-mooncake"> 1491 1492 <div class="product-card-img-container p-0 position-relative"> 1493 1494 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Love-Mooncake_6b4cc10d-950d-4e1a-abf7-427b4a6912c8_350x.jpg?v=1755750898" data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Love-Mooncake_6b4cc10d-950d-4e1a-abf7-427b4a6912c8_350x.jpg?v=1755750898" alt="Mid Autumn of Love Mooncake" height="200" width="200"> 1495 </div> 1496 <div class="card-body product-card-info"> 1497 <h5 class="h5 mb-0"> 1498 Mid Autumn of Love Mooncake 1499 </h5> 1500 <div class="product-card-price"> 1501 1502 <div class="product-price-sale"> 1503 <s class="product-card-price-before card-money">Rp 588.000</s> 1504 <span class="product-card-discount small"> 1505 (-40%) 1506 </span> 1507 </div> 1508 1509 1510 1511 <div class="price-discount"> 1512 <h4 class="product-card-price-after card-money">Rp 348.000</h4> 1513 </div> 1514 1515 1516 1517 1518 1519 </div> 1520 1521 </div> 1522 </a> 1523 </div> 1524 1525 </div> 1526 1527 </div> 1528 1529 1530 1531 <div class="swiper-slide card"> 1532 1533 1534 1535 1536 <div class="products" data-lazy="false"> 1537 <div class="bg-products"> 1538 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-joy-mooncake"> 1539 <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1540 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
154011233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1541 </svg> 1542 1543 </div> 1544 <a href="/products/mid-autumn-of-joy-mooncake"> 1545 1546 <div class="product-card-img-container p-0 position-relative"> 1547 1548 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Joy-Mooncake_97224b06-a506-4a56-8544-59a0dccb5c17_350x.jpg?v=1755750798" data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Joy-Mooncake_97224b06-a506-4a56-8544-59a0dccb5c17_350x.jpg?v=1755750798" alt="Mid Autumn of Joy Mooncake" height="200" width="200"> 1549 </div> 1550 <div class="card-body product-card-info"> 1551 <h5 class="h5 mb-0"> 1552 Mid Autumn of Joy Mooncake 1553 </h5> 1554 <div class="product-card-price"> 1555 1556 <div class="product-price-sale"> 1557 <s class="product-card-price-before card-money">Rp 888.000</s> 1558 <span class="product-card-discount small"> 1559 (-33%) 1560 </span> 1561 </div> 1562 1563 1564 1565 <div class="price-discount"> 1566 <h4 class="product-card-price-after card-money">Rp 588.000</h4> 1567 </div> 1568 1569 1570 1571 1572 1573 </div> 1574 1575 </div> 1576 </a> 1577 </div> 1578 1579 </div> 1580 1581 </div> 1582 1583 1584 1585 <div class="swiper-slide card"> 1586 1587 1588 1589 1590 <div class="products" data-lazy="false"> 1591 <div class="bg-products"> 1592 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-fortune-mooncake"> 1593 <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1594 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
159411233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1595 </svg> 1596 1597 </div> 1598 <a href="/products/mid-autumn-of-fortune-mooncake"> 1599 1600 <div class="product-card-img-container p-0 position-relative"> 1601 1602 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Fortune-Mooncake_de29329d-6ab7-4592-aa00-3e9636d4a323_350x.jpg?v=1755846072" data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Fortune-Mooncake_de29329d-6ab7-4592-aa00-3e9636d4a323_350x.jpg?v=1755846072" alt="Mid Autumn of Fortune Mooncake" height="200" width="200"> 1603 </div> 1604 <div class="card-body product-card-info"> 1605 <h5 class="h5 mb-0"> 1606 Mid Autumn of Fortune Mooncake 1607 </h5> 1608 <div class="product-card-price"> 1609 1610 <div class="product-price-sale"> 1611 <s class="product-card-price-before card-money">Rp 1.188.000</s> 1612 <span class="product-card-discount small"> 1613 (-33%) 1614 </span> 1615 </div> 1616 1617 1618 1619 <div class="price-discount"> 1620 <h4 class="product-card-price-after card-money">Rp 788.000</h4> 1621 </div> 1622 1623 1624 1625 1626 1627 </div> 1628 1629 </div> 1630 </a> 1631 </div> 1632 1633 </div> 1634 1635 </div> 1636 1637 1638 1639 <div class="swiper-slide card"> 1640 1641 1642 1643 1644 <div class="products" data-lazy="false"> 1645 <div class="bg-products"> 1646 <div class="wishlist-toggle" data-product-handle="mid-autumn-festival-mooncake"> 1647 <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1648 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
164811233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1649 </svg> 1650 1651 </div> 1652 <a href="/products/mid-autumn-festival-mooncake"> 1653 1654 <div class="product-card-img-container p-0 position-relative"> 1655 1656 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/Mid-Autumn-Festival-Mooncake_06ea4f9c-bdaa-49de-b0ba-c3dd60fef351_350x.jpg?v=1755845965" data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-Festival-Mooncake_06ea4f9c-bdaa-49de-b0ba-c3dd60fef351_350x.jpg?v=1755845965" alt="Mid Autumn Festival Mooncake" height="200" width="200"> 1657 </div> 1658 <div class="card-body product-card-info"> 1659 <h5 class="h5 mb-0"> 1660 Mid Autumn Festival Mooncake 1661 </h5> 1662 <div class="product-card-price"> 1663 1664 <div class="product-price-sale"> 1665 <s class="product-card-price-before card-money">Rp 1.288.000</s> 1666 <span class="product-card-discount small"> 1667 (-23%) 1668 </span> 1669 </div> 1670 1671 1672 1673 <div class="price-discount"> 1674 <h4 class="product-card-price-after card-money">Rp 988.000</h4> 1675 </div> 1676 1677 1678 1679 1680 1681 </div> 1682 1683 </div> 1684 </a> 1685 </div> 1686 1687 </div> 1688 1689 </div> 1690 1691 1692 1693 <div class="swiper-slide card"> 1694 1695 1696 1697 1698 <div class="products" data-lazy="false"> 1699 <div class="bg-products"> 1700 <div class="wishlist-toggle" data-product-handle="the-jade-bouquet"> 1701 <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1702 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
170211233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1703 </svg> 1704 1705 </div> 1706 <a href="/products/the-jade-bouquet"> 1707 1708 <div class="product-card-img-container p-0 position-relative"> 1709 1710 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/The-Jade-Bouquet_350x.jpg?v=1751618030" data-src="//outerbloom.com/cdn/shop/files/The-Jade-Bouquet_350x.jpg?v=1751618030" alt="The Jade Bouquet" height="200" width="200"> 1711 </div> 1712 <div class="card-body product-card-info"> 1713 <h5 class="h5 mb-0"> 1714 The Jade Bouquet 1715 </h5> 1716 <div class="product-card-price"> 1717 1718 <div class="product-price-sale"> 1719 <s class="product-card-price-before card-money">Rp 435.000</s> 1720 <span class="product-card-discount small"> 1721 (-34%) 1722 </span> 1723 </div> 1724 1725 1726 1727 <div class="price-discount"> 1728 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1729 </div> 1730 1731 1732 1733 1734 1735 </div> 1736 1737 </div> 1738 </a> 1739 </div> 1740 1741 </div> 1742 1743 </div> 1744 1745 1746 1747 <div class="swiper-slide card"> 1748 1749 1750 1751 1752 <div class="products" data-lazy="false"> 1753 <div class="bg-products"> 1754 <div class="wishlist-toggle" data-product-handle="the-selena-bouquet"> 1755 <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1756 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
175611233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1757 </svg> 1758 1759 </div> 1760 <a href="/products/the-selena-bouquet"> 1761 1762 <div class="product-card-img-container p-0 position-relative"> 1763 1764 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/The-Selena-Bouquet_350x.jpg?v=1751618047" data-src="//outerbloom.com/cdn/shop/files/The-Selena-Bouquet_350x.jpg?v=1751618047" alt="The Selena Bouquet" height="200" width="200"> 1765 </div> 1766 <div class="card-body product-card-info"> 1767 <h5 class="h5 mb-0"> 1768 The Selena Bouquet 1769 </h5> 1770 <div class="product-card-price"> 1771 1772 <div class="product-price-sale"> 1773 <s class="product-card-price-before card-money">Rp 335.000</s> 1774 <span class="product-card-discount small"> 1775 (-29%) 1776 </span> 1777 </div> 1778 1779 1780 1781 <div class="price-discount"> 1782 <h4 class="product-card-price-after card-money">Rp 235.000</h4> 1783 </div> 1784 1785 1786 1787 1788 1789 </div> 1790 1791 </div> 1792 </a> 1793 </div> 1794 1795 </div> 1796 1797 </div> 1798 1799 1800 1801 <div class="swiper-slide card"> 1802 1803 1804 1805 1806 <div class="products" data-lazy="false"> 1807 <div class="bg-products"> 1808 <div class="wishlist-toggle" data-product-handle="the-viola-bouquet"> 1809 <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1810 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
181011233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1811 </svg> 1812 1813 </div> 1814 <a href="/products/the-viola-bouquet"> 1815 1816 <div class="product-card-img-container p-0 position-relative"> 1817 1818 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/The-Viola-Bouquet_350x.jpg?v=1751618053" data-src="//outerbloom.com/cdn/shop/files/The-Viola-Bouquet_350x.jpg?v=1751618053" alt="A striking bouquet featuring full pink chrysanthemums and delicate purple asters. It is elegantly wrapped in deep purple paper with a modern black and white striped accent at the base. The arrangement is tied with a pink ribbon bow, creating a full, rounded shape. This sophisticated bouquet is perfect for birthdays, anniversaries, or as a thoughtful thank-you gesture." height="200" width="200"> 1819 </div> 1820 <div class="card-body product-card-info"> 1821 <h5 class="h5 mb-0"> 1822 The Viola Bouquet 1823 </h5> 1824 <div class="product-card-price"> 1825 1826 <div class="product-price-sale"> 1827 <s class="product-card-price-before card-money">Rp 385.000</s> 1828 <span class="product-card-discount small"> 1829 (-25%) 1830 </span> 1831 </div> 1832 1833 1834 1835 <div class="price-discount"> 1836 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1837 </div> 1838 1839 1840 1841 1842 1843 </div> 1844 1845 </div> 1846 </a> 1847 </div> 1848 1849 </div> 1850 1851 </div> 1852 1853 1854 1855 <div class="swiper-slide card"> 1856 1857 1858 1859 1860 <div class="products" data-lazy="false"> 1861 <div class="bg-products"> 1862 <div class="wishlist-toggle" data-product-handle="the-minerva-bouquet"> 1863 <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1864 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
186411233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1865 </svg> 1866 1867 </div> 1868 <a href="/products/the-minerva-bouquet"> 1869 1870 <div class="product-card-img-container p-0 position-relative"> 1871 1872 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/The-Minerva-Bouquet_350x.jpg?v=1751618061" data-src="//outerbloom.com/cdn/shop/files/The-Minerva-Bouquet_350x.jpg?v=1751618061" alt="The Minerva Bouquet" height="200" width="200"> 1873 </div> 1874 <div class="card-body product-card-info"> 1875 <h5 class="h5 mb-0"> 1876 The Minerva Bouquet 1877 </h5> 1878 <div class="product-card-price"> 1879 1880 <div class="product-price-sale"> 1881 <s class="product-card-price-before card-money">Rp 385.000</s> 1882 <span class="product-card-discount small"> 1883 (-25%) 1884 </span> 1885 </div> 1886 1887 1888 1889 <div class="price-discount"> 1890 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1891 </div> 1892 1893 1894 1895 1896 1897 </div> 1898 1899 </div> 1900 </a> 1901 </div> 1902 1903 </div> 1904 1905 </div> 1906 1907 1908 1909 <div class="swiper-slide card"> 1910 1911 1912 1913 1914 <div class="products" data-lazy="false"> 1915 <div class="bg-products"> 1916 <div class="wishlist-toggle" data-product-handle="congraduations-bouquet"> 1917 <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1918 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
191811233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1919 </svg> 1920 1921 </div> 1922 <a href="/products/congraduations-bouquet"> 1923 1924 <div class="product-card-img-container p-0 position-relative"> 1925 1926 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/Congraduations-Bouquet_350x.jpg?v=1749545306" data-src="//outerbloom.com/cdn/shop/files/Congraduations-Bouquet_350x.jpg?v=1749545306" alt="Congraduations Bouquet" height="200" width="200"> 1927 </div> 1928 <div class="card-body product-card-info"> 1929 <h5 class="h5 mb-0"> 1930 Congraduations Bouquet 1931 </h5> 1932 <div class="product-card-price"> 1933 1934 <div class="product-price-sale"> 1935 <s class="product-card-price-before card-money">Rp 380.000</s> 1936 <span class="product-card-discount small"> 1937 (-25%) 1938 </span> 1939 </div> 1940 1941 1942 1943 <div class="price-discount"> 1944 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1945 </div> 1946 1947 1948 1949 1950 1951 </div> 1952 1953 </div> 1954 </a> 1955 </div> 1956 1957 </div> 1958 1959 </div> 1960 1961 1962 1963 <div class="swiper-slide card"> 1964 1965 1966 1967 1968 <div class="products" data-lazy="false"> 1969 <div class="bg-products"> 1970 <div class="wishlist-toggle" data-product-handle="grad-gorgeous-bouquet"> 1971 <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1972 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
197211233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1973 </svg> 1974 1975 </div> 1976 <a href="/products/grad-gorgeous-bouquet"> 1977 1978 <div class="product-card-img-container p-0 position-relative"> 1979 1980 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/Grad-_-Gorgeous-Bouquet_350x.jpg?v=1749545297" data-src="//outerbloom.com/cdn/shop/files/Grad-_-Gorgeous-Bouquet_350x.jpg?v=1749545297" alt="Grad & Gorgeous Bouquet" height="200" width="200"> 1981 </div> 1982 <div class="card-body product-card-info"> 1983 <h5 class="h5 mb-0"> 1984 Grad & Gorgeous Bouquet 1985 </h5> 1986 <div class="product-card-price"> 1987 1988 <div class="product-price-sale"> 1989 <s class="product-card-price-before card-money">Rp 380.000</s> 1990 <span class="product-card-discount small"> 1991 (-25%) 1992 </span> 1993 </div> 1994 1995 1996 1997 <div class="price-discount"> 1998 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1999 </div> 2000 2001 2002 2003 2004 2005 </div> 2006 2007 </div> 2008 </a> 2009 </div> 2010 2011 </div> 2012 2013 </div> 2014 2015 2016 </div> 2017 </div> 2018 2019 </div> 2020 </div> 2021 </div> 2022 2023 <div class="site-overlay" style="display: none"></div> 2024 </div> 2025
2025<script> 2026 2027 var swiper = new Swiper('.popup-recommend', { 2028 slidesPerView : 4, 2029 spaceBetween: 30, 2030 lazy: true , 2031 speed: 300, 2032 breakpoints: { 2033 // when window width is <= 576px 2034 576: { 2035 slidesPerView: 2, 2036 spaceBetween: 10, 2037 freeMode: true, 2038 resistance : true, 2039 resistanceRatio : 0, 2040 freeModeMomentumRatio : 0.45, 2041 freeModeMomentumVelocityRatio : 1.5 2042 }, 2043 768: { 2044 slidesPerView: 2, 2045 spaceBetween: 10 2046 }, 2047 992: { 2048 slidesPerView: 3, 2049 spaceBetween: 20 2050 } 2051 } 2052 }); 2053 2054 const searchContainer = $("#search-popup") 2055 const searchInput = $(".search-popup") 2056 const result_collection = $('.result_collection') 2057 const result_product = $('.result_product') 2058 const resultsearch = $('.resultsearch') 2059 const resultrecommend = $(".group-recommend") 2060 const moreresult = $(".moreresult") 2061 2062 searchInput.keyup(function(){ 2063 const input = $(this).val() 2064 moreresult.find("p span").text(` â${input}â`) 2065 if(input.length > 2) { 2066 $(".close-search").show() 2067 const url = `https://outerbloom.com/search/suggest.json?resources[limit]=10&resources[limit_scope]=each&resources[type]=collection,product&q=${input}` 2068 $.ajax({ 2069 type: 'GET', 2070 url, 2071 beforeSend: function() { 2072 // setting a timeout 2073 // $(placeholder).addClass('loading'); 2074 }, 2075 success: function(response) { 2076 resultsearch.show() 2077 resultrecommend.hide() 2078 result_collection.html("") 2079 result_product.html("") 2080 const collections = response.resources.results.collections 2081 const products = response.resources.results.products 2082 let collection_length = collections.length 2083 let product_length = products.length 2084 // if(collections.length > 5) { 2085 // collection_length = 5 2086 // } 2087 // if(products.length > 5) { 2088 // product_length = 5 2089 // } 2090 for(let i=0;i<collection_length;i++){ 2091 const title = collections[i].title 2092 const url = collections[i].url 2093 let html_collection 2094 if(!title.includes('AIA') && !title.includes('AXA') && !title.includes('WOM') && !title.includes('Upsell')) { 2095 html_collection = ` 2096 <li class="item" data-title="${title}"> 2097 <a href="${url}" data-type="collection" class="item_url" data-title="${title}" data-url="${url}">${title}</a> 2098 </li> 2099 ` 2100 } 2101 result_collection.append(html_collection) 2102 } 2103 for(let i=0;i<product_length;i++){ 2104 const title = products[i].title 2105 const url = products[i].url 2106 const image = products[i].featured_image.url 2107 const vendor = products[i].vendor 2108 let html_product 2109 if(vendor !== 'AIA' && vendor !== 'AXA' && vendor !== 'WOM Finance' && !title.includes('Extra Shipping Cost') && !title.includes('[US]') && !title.includes('Rp')){ 2110 html_product = ` 2111 <li class="item" data-vendor="${vendor}"> 2112 <a href="${url}" class="item_url" data-type="product" data-title="${title}" data-url="${url}"> 2113 <img src="${image}" alt="${title}" style="width: 70px;vertical-align: middle;margin-right: 20px;"><span>${title}</span> 2114 </a> 2115 </li> 2116 ` 2117 } 2118 result_product.append(html_product) 2119 } 2120 }, 2121 error: function(xhr) { // if error occured 2122 alert("Error occured.please try again"); 2123 }, 2124 complete: function(response) { 2125 // $(placeholder).removeClass('loading'); 2126 }, 2127 dataType: 'JSON' 2128 }); 2129 } else { 2130 result_collection.html("") 2131 result_product.html("") 2132 2133 resultsearch.hide() 2134 resultrecommend.show() 2135 } 2136 }) 2137 2138 moreresult.click(function(){ 2139 $("#search-btn").trigger("click"); 2140 }) 2141 2142 $(".close-search").click(function(){ 2143 $(this).hide() 2144 searchInput.val("") 2145 searchInput.focus() 2146 resultsearch.hide() 2147 resultrecommend.show() 2148 }) 2149 2150 function setCookie(name,value,days) { 2151 var expires = ""; 2152 if (days) { 2153 var date = new Date(); 2154 date.setTime(date.getTime() + (days*24*60*60*1000)); 2155 expires = "; expires=" + date.toUTCString(); 2156 } 2157 document.cookie = name + "=" + (value || "") + expires + "; path=/"; 2158 } 2159 function getCookie(name) { 2160 var nameEQ = name + "="; 2161 var ca = document.cookie.split(';');
2162 for(var i=0;i < ca.length;i++) { 2163 var c = ca[i]; 2164 while (c.charAt(0)==' ') c = c.substring(1,c.length); 2165 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 2166 } 2167 return null; 2168 } 2169 let last_search_name = [] 2170 let last_search_url = [] 2171 $(".group-recent").hide() 2172 if(getCookie("last_search_name") != null && getCookie("last_search_url") != null){ 2173 if(getCookie("last_search_name") != "" && getCookie("last_search_url") != ""){ 2174 $(".group-recent").show() 2175 last_search_name = getCookie("last_search_name"); 2176 last_search_url = getCookie("last_search_url"); 2177 const arrName = last_search_name.substring(1).split(',').reverse() 2178 const arrUrl = last_search_url.substring(1).split(',').reverse() 2179 console.log(arrName, 'Array Name') 2180 console.log(arrUrl, 'Array Url') 2181 let length = arrName.length 2182 if(arrName.length > 5) { 2183 length = 5 2184 } 2185 for(let n=0;n<length;n++){ 2186 let html2 = `<li><svg viewBox="0 0 24 24" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif"><title/><path d="M12.25,2A9.81,9.81,0,0,0,4.77,5.46L3.41,4.25a1,1,0,0,0-1.07-.16A1,1,0,0,0,1.75,5V9a1,1,0,0,0,1,1h4.5a1,1,0,0,0,.93-.64,1,1,0,0,0-.27-1.11L6.26,6.78a7.86,7.86,0,0,1,6-2.78A8,8,0,1,1,4.72,14.67a1,1,0,0,0-1.89.66A10,10,0,1,0,12.25,2Z" fill="#C9C9C9"/><path d="M16,16a1,1,0,0,1-.6-.2l-4-3A1,1,0,0,1,11,12V8a1,1,0,0,1,2,0v3.5l3.6,2.7a1,1,0,0,1,.2,1.4A1,1,0,0,1,16,16Z" fill="#C9C9C9"/></svg><a href="${arrUrl[n]}">${arrName[n]}</a><span data-title="${arrName[n]}" data-url="${arrUrl[n]}"></span></li>` 2187 $(".group-recent ul").append(html2) 2188 } 2189 } 2190 } 2191 console.log(last_search_name, 'Name') 2192 console.log(last_search_url, 'url') 2193 2194 resultsearch.delegate(".item a", "click", function(){ 2195 let name = [last_search_name] 2196 let url = [last_search_url] 2197 name.push($(this).attr('data-title')) 2198 url.push($(this).attr('data-url')) 2199 setCookie("last_search_name",name,7); 2200 setCookie("last_search_url",url,7); 2201 }) 2202 2203 $(".delete-all-history").click(function() { 2204 setCookie("last_search_name",null,0); 2205 setCookie("last_search_url",null,0); 2206 $(".last-search").hide(); 2207 setTimeout(function(){ 2208 location.reload(); 2209 }, 500); 2210 }) 2211 2212 $("#search-trigger").click(function(){ 2213 search_open() 2214 }) 2215 $(".icon-search-mobile").click(function(){ 2216 search_open() 2217 }) 2218 $(".search-header svg").click(function(){ 2219 search_close() 2220 }) 2221 $(".icon-key-mobile").click(function(){ 2222 search_close() 2223 }) 2224 2225 function search_open() { 2226 $("body").addClass("search-popup-open") 2227 $("#nav-mobile-icon, .search-header label, .icon-search-mobile").hide() 2228 $("#search-popup, .search-header svg, .icon-key-mobile").show() 2229 $(".search-popup").focus() 2230 $('.popup-recommend')[0].swiper.update(); 2231 } 2232 function search_close() { 2233 $("body").removeClass("search-popup-open") 2234 $("#nav-mobile-icon, .search-header label, .icon-search-mobile").show() 2235 $("#search-popup, .search-header svg, .icon-key-mobile").hide() 2236 searchInput.val("") 2237 resultsearch.hide() 2238 resultrecommend.show() 2239 } 2240 2241 $(".site-overlay").click(function(){ 2242 search_close() 2243 }) 2244 </script>
2244 2245 2246 </div> 2247 </div> 2248 2249 <div id="PageContainer" class="is-moved-by-drawerx" style="background-color: #000000;"> 2250 <main class="main-content pt-0" role="main"> 2251 2252 <div id="breadcrumbProduct" class="d-none d-lg-block"> 2253 <style> 2254 #breadcrumbProduct { 2255 padding: 20px 0; 2256 } 2257 #breadcrumbProduct ul { 2258 display: flex; 2259 padding: 0; 2260 list-style: none; 2261 margin: 0; 2262 gap: 12px; 2263 } 2264 #breadcrumbProduct ul li { 2265 text-transform: uppercase; 2266 margin: 0; 2267 font-size: 12px; 2268 } 2269 #breadcrumbProduct ul li a { 2270 color: #757575; 2271 } 2272 2273 #breadcrumbProduct ul li svg { 2274 width: 10px; 2275 height: 10px; 2276 padding: 0; 2277 color: #757575; 2278 vertical-align: middle; 2279 } 2280 </style> 2281 <div class="container" style="color: #ffffff;"> 2282 <ul role="navigation" aria-label="breadcrumbs"> 2283 <li><a href="https://duatotoperak.com/" style="color: #ffffff;">DUATOTO</a></li> 2284 <li><svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="7" height="10" viewBox="0 0 7 10" fill="none"> 2285 <path d="M1.51673 0.0583496L6.2334 4.77502L1.51673 9.49168L0.933398 8.90002L5.0584 4.77502L0.933398 0.650016L1.51673 0.0583496Z" fill="#757575"/> 2286 </svg></li> 2287 <li><a href="https://duatotoperak.com/" style="color: #ffffff;">DUATOTO DAFTAR</a></li> 2288 <li><svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="7" height="10" viewBox="0 0 7 10" fill="none"> 2289 <path d="M1.51673 0.0583496L6.2334 4.77502L1.51673 9.49168L0.933398 8.90002L5.0584 4.77502L0.933398 0.650016L1.51673 0.0583496Z" fill="#757575"/> 2290 </svg></li> 2291 <li><a href="https://duatotoperak.com/" style="color: #ffffff;">DUATOTO LOGIN</a></li> 2292 <li><svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="7" height="10" viewBox="0 0 7 10" fill="none"> 2293 <path d="M1.51673 0.0583496L6.2334 4.77502L1.51673 9.49168L0.933398 8.90002L5.0584 4.77502L0.933398 0.650016L1.51673 0.0583496Z" fill="#757575"/> 2294 </svg></li> 2295 <li><a href="https://duatotoperak.com/" style="color: #ffffff;">DUATOTO LINK</a></li> 2296 <li><svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="7" height="10" viewBox="0 0 7 10" fill="none"> 2297 <path d="M1.51673 0.0583496L6.2334 4.77502L1.51673 9.49168L0.933398 8.90002L5.0584 4.77502L0.933398 0.650016L1.51673 0.0583496Z" fill="#757575"/> 2298 </svg></li> 2299 <li><a style="color: #ffffff;">DUATOTO RESMI</a></li> 2300 2301 2302 </ul> 2303 </div> 2304 2305 </div> 2306 2307 2308 <div id="shopify-section-Product" class="shopify-section product-section mt-0"><link href="//outerbloom.com/cdn/shop/t/138/assets/product.css?v=31392998782552138141759380387" rel="stylesheet" type="text/css" media="all" /> 2309 2310 2311 <style> 2312 .bg-card { 2313 background-color: #000000; 2314 } 2315 </style> 2316 2317 <!-- /templates/product.liquid --> 2318 2319 2320 <!-- <div itemscope itemtype="http://schema.org/Product"> --> 2321 2322 2323 <div class="product-standing-flower" data-product-type="flowerBoard"> 2324 <meta itemprop="url" content="https://duatotoperak.com/"> 2325 <meta itemprop="image" content="https://duagalery.com/images/2026/09/03/duaperakgambar500.png"> 2326 2327 2328 2329 <input id="data-sku" type="hidden" value="OBVSTF1086"> 2330 <div class="product-single" style="background-image: url(https://duagalery.com/images/2025/11/13/bgdua13.png); background-attachment: fixed;"> 2331 <div id="product-top" class="container"> 2332 <div class="row bg-card product-sticky" style="background-color: rgba(0, 0, 0, 0.1);backdrop-filter: blur(25px); padding: 20px 25px;border-radius: 10px;"> 2333 <div id="product-image" class="col-lg-7 text-center"> 2334 <div class="product-image"> 2335 <div class="row no-gutters"> 2336 2337 <div id="product-featured-image" class="row w-100"> 2338 2339 <div id="thumb-image-product" class="col-lg-2 col-12 d-none d-lg-block"> 2340 2341 <div class="swiper-container gallery-thumbs" style="min-height: 500px"> 2342 <ul class="list-unstyled slider swiper-wrapper slider-nav ProductThumbs thumbnails" id="ProductThumbsx"> 2343 2344 <li class="swiper-slide" data-type="image"> 2345 <a 2346 href="files/Blossom-Shine-WM.jpg" 2347 data-standard="https://duagalery.com/images/2026/09/03/duaperakgambar500.png" 2348 data-image="files/Blossom-Shine-WM.jpg" 2349 data-position="1" 2350 class="product-single__thumbnail" 2351 > 2352 <img 2353 class="lazyload w-100" 2354 src="https://duagalery.com/images/2026/09/03/duaperakgambar500.png" 2355 alt="LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT7
235577 GACOR INI DUATOTO 2026" 2356 width="" 2357 height="" 2358 > 2359 </a> 2360 </li> 2361 2362 2363 2364 2365 <li class="swiper-slide" data-type="image"> 2366 <a 2367 href="https://duagalery.com/images/2026/09/03/duaperakgambar500.png" 2368 data-standard="https://duagalery.com/images/2026/09/03/duaperakgambar500.png" 2369 data-image="https://duagalery.com/images/2026/09/03/duaperakgambar500.png" 2370 data-position="2" 2371 class="product-single__thumbnail" 2372 > 2373 <img 2374 class="lazyload w-100" 2375 src="https://duagalery.com/images/2026/09/03/duaperakgambar500.png" 2376 alt="LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777 GACOR INI DUATOTO 2026" 2377 width="" 2378 height="" 2379 > 2380 </a> 2381 </li> 2382 2383 2384 2385 2386 <li class="swiper-slide" data-type="image"> 2387 <a 2388 href="files/Blossom-Shine_3-WM.jpg" 2389 data-standard="https://duagalery.com/images/2026/09/03/duaperakgambar500.png" 2390 data-image="files/Blossom-Shine_3-WM.jpg" 2391 data-position="3" 2392 class="product-single__thumbnail" 2393 > 2394 <img 2395 class="lazyload w-100" 2396 src="https://duagalery.com/images/2026/09/03/duaperakgambar500.png" 2397 alt="LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777 GACOR INI DUATOTO 2026" 2398 width="" 2399 height="" 2400 > 2401 </a> 2402 </li> 2403 2404 2405 2406 2407 <li class="swiper-slide" data-type="image"> 2408 <a 2409 href="files/Blossom-Shine_4.jpg" 2410 data-standard="https://duagalery.com/images/2026/09/03/duaperakgambar500.png" 2411 data-image="files/Blossom-Shine_4.jpg" 2412 data-position="4" 2413 class="product-single__thumbnail" 2414 > 2415 <img 2416 class="lazyload w-100" 2417 src="https://duagalery.com/images/2026/09/03/duaperakgambar500.png" 2418 alt="LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777 GACOR INI DUATOTO 2026" 2419 width="" 2420 height="" 2421 > 2422 </a> 2423 </li> 2424 2425 2426 2427 </ul> 2428 </div> 2429 2430 </div> 2431 2432 <div 2433 id="featured-image-product" 2434 class="col-lg-10 col-12 d-none d-lg-block" 2435 > 2436 <div class="swiper-container gallery-top"> 2437 <div class="swiper-slide product-single__image"> 2438 2439 <div class="product-single__photos slider slider-for" id="ProductPhoto"> 2440 2441 2442 <div class="easyzoom easyzoom--overlay easyzoom--with-thumbnails"> 2443 <a href="https://duagalery.com/images/2026/09/03/duaperakgambar500.png"> 2444 <img 2445 src="https://duagalery.com/images/2026/09/03/duaperakgambar500.png" 2446 alt="LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777 GACOR INI DUATOTO 2026" 2447 id="ProductPhotoImg" 2448 class="lazyload" 2449 > 2450 2451 </a> 2452 </div> 2453 </div> 2454 2455 </div> 2456 <div class="swiper-slide product-single__video" style="display: none"> 2457 <video 2458 src="https://cdn.shopify.com/videos/c/vp/05d379ea115d41c2bd0f7d08b1496bd9/05d379ea115d41c2bd0f7d08b1496bd9.HD-1080p-7.2Mbps-24002195.mp4" 2459 playsinline 2460 loop 2461 muted 2462 ></video> 2463 </div> 2464 </div>
2465 </div> 2466 </div> 2467 2468 <div id="featured-image-product2" class="col-12 d-lg-none"> 2469 <div class="swiper-container gallery-mobile"> 2470 <ul class="swiper-wrapper"> 2471 <li class="swiper-slide img"> 2472 2473 <img 2474 class="swiper-lazy" 2475 src="https://duagalery.com/images/2026/09/03/duaperakgambar500.png" 2476 data-src="https://duagalery.com/images/2026/09/03/duaperakgambar500.png" 2477 alt="LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777 GACOR INI DUATOTO 2026" 2478 width="" 2479 height="" 2480 > 2481 2482 </li> 2483 2484 2485 <li class="swiper-slide img"> 2486 2487 <img 2488 class="swiper-lazy" 2489 src="https://duagalery.com/images/2026/09/03/duaperakgambar500.png" 2490 data-src="https://duagalery.com/images/2026/09/03/duaperakgambar500.png" 2491 alt="LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777 GACOR INI DUATOTO 2026" 2492 width="" 2493 height="" 2494 > 2495 2496 </li> 2497 2498 2499 <li class="swiper-slide img"> 2500 2501 <img 2502 class="swiper-lazy" 2503 src="https://duagalery.com/images/2026/09/03/duaperakgambar500.png" 2504 data-src="https://duagalery.com/images/2026/09/03/duaperakgambar500.png" 2505 alt="LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777 GACOR INI DUATOTO 2026" 2506 width="" 2507 height="" 2508 > 2509 2510 </li> 2511 2512 2513 <li class="swiper-slide img"> 2514 2515 <img 2516 class="swiper-lazy" 2517 src="https://duagalery.com/images/2026/09/03/duaperakgambar500.png" 2518 data-src="https://duagalery.com/images/2026/09/03/duaperakgambar500.png" 2519 alt="LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777 GACOR INI DUATOTO 2026" 2520 width="" 2521 height="" 2522 > 2523 2524 </li> 2525 2526 2527 </ul> 2528 2529 <div class="swiper-button-prev"><svg class="icon icon-chevron-left" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="7" height="12" viewBox="0 0 7 12"> <circle cx="60%" cy="50%" r="12" fill="transparent" /> <path d="M6.35355339,10.6464466 C6.54881554,10.8417088 6.54881554,11.1582912 6.35355339,11.3535534 C6.15829124,11.5488155 5.84170876,11.5488155 5.64644661,11.3535534 L0.646446609,6.35355339 C0.451184464,6.15829124 0.451184464,5.84170876 0.646446609,5.64644661 L5.64644661,0.646446609 C5.84170876,0.451184464 6.15829124,0.451184464 6.35355339,0.646446609 C6.54881554,0.841708755 6.54881554,1.15829124 6.35355339,1.35355339 L1.70710678,6 L6.35355339,10.6464466 Z"/> </svg></div> 2530 <div class="swiper-button-next"><svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="7" height="10" viewBox="0 0 7 10" fill="none"> 2531 <path d="M1.51673 0.0583496L6.2334 4.77502L1.51673 9.49168L0.933398 8.90002L5.0584 4.77502L0.933398 0.650016L1.51673 0.0583496Z" fill="#757575"/> 2532 </svg></div> 2533 2534 <!-- Add Pagination --> 2535 <div class="swiper-pagination"></div> 2536 2537 </div> 2538 </div> 2539 2540 <div class="product-m-pageleb-video col-12 text-center d-lg-none"> 2541 <!-- product video --> 2542 <style> 2543 .c-pdp-product-info { 2544 background-color: #000000 !important; 2545 padding: 12px; 2546 margin: 0; 2547 color: white; 2548 } 2549 .view-video{display:block; margin:auto; padding:5px 10px;font-size:16px;font-weight:bold;border:2px solid #ffffff;background:#fff;} 2550 .view-video .icon-play{fill:#ffffff;vertical-align: middle;} 2551 .video-modal{display:none;position:fixed;background: rgba(0,0,0,.5); width:100%; height:100%; overflow:auto; z-index:1; top:0;left:0;} 2552 .close-video{position:absolute;right:9px; top:8%;z-index:2;padding:5px;} 2553 .close-video .icon{width:30px;height:30px;} 2554 /*responsive iframe */ 2555 .video-container {position: relative;padding-bottom: 48.25%;padding-top: 35px;height: 0;box-shadow: 0 4px 5px 0 rgba(0,0,0,0.14), 0 1px 10px 0 rgba(0,0,0,0.12), 0 2px 4px -1px rgba(0,0,0,0.3);} 2556 .video-container iframe {position: absolute;top:60%;left: 0;width: 100%;height: 100%;} 2557 2558 .youtube { 2559 background-color: #000; 2560 margin-bottom: 30px; 2561 position: relative; 2562 padding-top: 56.25%; 2563 overflow: hidden; 2564 cursor: pointer; 2565 width: 100%; 2566 } 2567 .swiper-slide .youtube { 2568 max-width: 480px; 2569 } 2570 .youtube img { 2571 width: 100%; 2572 top: -16.82%; 2573 left: 0; 2574 opacity: 0.7; 2575 } 2576 .youtube .play-button { 2577 width: 90px; 2578 height: 60px; 2579 background-color: #333; 2580 box-shadow: 0 0 30px rgba( 0,0,0,0.6 ); 2581 z-index: 1; 2582 opacity: 0.8; 2583 border-radius: 6px; 2584 } 2585 .youtube .play-button:before { 2586 content: ""; 2587 border-style: solid; 2588 border-width: 15px 0 15px 26.0px; 2589 border-color: transparent transparent transparent #fff; 2590 } 2591 .youtube img, 2592 .youtube .play-button { 2593 cursor: pointer; 2594 } 2595 .youtube img, 2596 .youtube iframe, 2597 .youtube .play-button, 2598 .youtube .play-button:before { 2599 position: absolute; 2600 } 2601 .youtube .play-button, 2602 .youtube .play-button:before { 2603 top: 50%; 2604 left: 50%; 2605 transform: translate3d( -50%, -50%, 0 ); 2606 } 2607 .youtube iframe { 2608 height: 100%; 2609 width: 100%; 2610 top: 0; 2611 left: 0; 2612 } 2613 </style> 2614 2615 2616 </div> 2617 </div> 2618 2619 <div class="product-desc-add position-relative d-none d-lg-block m-0"> 2620 2621 </div> 2622 2623
2623<script> 2624 if ($(window).width() < 991) { 2625 var direction = 'horizontal' 2626 } else { 2627 var direction = 'vertical' 2628 $(".gallery-thumbs").height($("#ProductPhotoImg").height()) 2629 } 2630 var swiper = new Swiper('.gallery-thumbs', { 2631 2632 direction, 2633 slidesPerView: 4.5, 2634 spaceBetween: 12, 2635 navigation: { 2636 nextEl: '.swiper-button-next', 2637 prevEl: '.swiper-button-prev', 2638 } 2639 }); 2640 2641 var swiper = new Swiper('.gallery-mobile', { 2642 //loop: true, 2643 lazy: true, 2644 speed: 300, 2645 resistance : true, 2646 resistanceRatio : 0, 2647 freeModeMomentumRatio : 0.45, 2648 freeModeMomentumVelocityRatio : 1.5, 2649 navigation: { 2650 nextEl: '.swiper-button-next', 2651 prevEl: '.swiper-button-prev', 2652 }, 2653 pagination: { 2654 el: '.swiper-pagination' 2655 }, 2656 useCSS3Transforms: false, 2657 loop: false, 2658 on: { 2659 init: function () { 2660 console.log('swiper initialized'); 2661 var currentVideo = $("[data-swiper-slide-index=" + this.realIndex + "]").find("video"); 2662 currentVideo.trigger('play'); 2663 }, 2664 }, 2665 }); 2666 2667 /* GET ALL VIDEOS */ 2668 var sliderVideos = $(".swiper-slide video"); 2669 2670 /* SWIPER API - Event will be fired after animation to other slide (next or previous) */ 2671 swiper.on('slideChange', function () { 2672 console.log('slide changed'); 2673 /* stop all videos */ 2674 sliderVideos.each(function( index ) { 2675 this.currentTime = 0; 2676 }); 2677 2678 /* SWIPER GET CURRENT AND PREV SLIDE (AND The VIDEO INSIDE) */ 2679 var prevVideo = $(`[data-swiper-slide-index="${this.previousIndex}]"`).find("video"); 2680 var currentVideo = $(`[data-swiper-slide-index="${this.realIndex}"]`).find("video"); 2681 prevVideo.trigger('stop'); 2682 currentVideo.trigger('play'); 2683 }); 2684 2685 2686 $("[data-video]").click(function(){ 2687 const file = $(this).data("video") 2688 $(".product-single__video").show() 2689 $(".product-single__image").hide() 2690 $(".product-single__video").find("video").attr("src", file) 2691 $(".product-single__video").find("video")[0].play(); 2692 }) 2693 $("[data-image]").click(function(){ 2694 $(".product-single__video").hide() 2695 $(".product-single__image").show() 2696 $(".product-single__video").find("video")[0].pause(); 2697 }) 2698 2699 $("#product-image .swiper-slide").each(function(){ 2700 let width = $(this).width() 2701 $(this).height(width) 2702 }) 2703 2704 $(window).resize(function() { 2705 $("#product-image .swiper-slide").each(function(){ 2706 let width = $(this).width() 2707 $(this).height(width) 2708 }) 2709 }) 2710 </script>
2710 2711 2712 </div> 2713<br> 2714 2715 2716 <div class="grid__item_product-info mb-3"> 2717 <div class="c-pdp-product-info"> 2718 <h2 style="color: #ff4d7a;">LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777 GACOR INI DUATOTO 2026</h2> 2719 <p style="text-align: justify; color: #ffffff;"><a href="https://duatotoperak.com/" style="color: #ff4d7a;">DUATOTO</a> hadir sebagai platform yang membahas informasi seputar link 2026 baru, Slot777, dan situs Toto dalam satu pembahasan yang ringkas dan mudah dipahami. Dengan pembaruan informasi yang relevan, DUATOTO diarahkan untuk membantu pembaca mengenali perkembangan terbaru seputar kategori tersebut.</p> 2720 2721<p style="text-align: justify; color: #ffffff;">Sebagai situs Toto pesaing Perak saat ini, DUATOTO memiliki positioning yang menonjol melalui kombinasi informasi, tampilan, serta akses yang praktis. Pengguna dapat mengenal berbagai informasi terkait SITUS TOTO SLOT777 GACOR melalui halaman yang disusun secara sederhana.</p> 2722 2723<p style="text-align: justify; color: #ffffff;">Bagi pembaca yang sedang mencari informasi DUATOTO 2026, penting untuk selalu memastikan alamat situs yang digunakan benar dan memperhatikan keamanan data saat mengakses platform online.</p> 2724 2725 2726 2727 2728 </ul> 2729 </div> 2730 </div> 2731 2732 2733 2734 2735 2736 2737 <style> 2738 .c-pdp-product-info__service--active { 2739 font-size: 12px; 2740 padding-left: 10px; 2741 text-align: left; 2742 max-width: 550px; 2743 margin: auto; 2744 } 2745 .c-pdp-product-info__service--active li { 2746 list-style: disc; 2747 } 2748 .c-pdp-product-info { 2749 background-color: #f5f5f5; 2750 padding: 12px; 2751 margin: 0; 2752 } 2753 .freeship em { 2754 font-style: italic; 2755 font-size: 12px !important; 2756 } 2757 2758 2759 </style> 2760 2761
2761<script> 2762 $(document).ready(function(){ 2763 if ( $(".c-pdp-product-info__service li").length == 1 ) { 2764 $(".c-pdp-product-info__service").addClass("no-bullet"); 2765 $(".c-pdp-product-info__service li").addClass("no-bullets"); 2766 } 2767 }); 2768 </script>
2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 </div> 2782 <div id="product-meta" class="col-lg-5 p-0"> 2783 <div class="product-meta"> 2784 <style> 2785 .product-meta--review {margin-top:10px} 2786 .freeship * {font-size: 14px !important;font-style: normal;} 2787 </style> 2788 <h1 itemprop="name" class="mb-2" style="color: #ff4d7a; font-weight: bold;">LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777 GACOR INI DUATOTO 2026</h1> 2789 2790 <div itemprop="offers" itemscope itemtype="http://schema.org/Offer"> 2791 <meta itemprop="priceCurrency" content="IDR"> 2792 2793 <link itemprop="availability" href="https://schema.org/InStock"> 2794
2794<script 2795 type="text/javascript" 2796 src="//platform-api.sharethis.com/js/sharethis.js#property=5acdc0aa3ef3c0001396fd50&product=custom-share-buttons" 2797 async="async" 2798 ></script>
2798 2799 2800 2801 2802 2803 <span class="visually-hidden">Translation missing: en.products.general.regular_price</span> 2804 2805 <span class="visually-hidden">Translation missing: en.products.general.sale_price</span> 2806 2807 <div class="row no-gutters mb-3"> 2808 <span 2809 id="ProductPrice" 2810 class="h2 ProductPrice" 2811 itemprop="price" 2812 content="835000" style="color: #ffffff;" 2813 > 2814 Rp 5.020 2815 </span> 2816 <div class="discount-product-detail"> 2817 <p id="ComparePrice" class="ComparePrice mt-2 mt-lg-0"> 2818 Rp 25.020 2819 </p> 2820 <span class=" tag-discount"> 2821 2822 2823 <span id="newDiscount" class="product-tag persentase-discount hide"> 2824 (90%) 2825 </span><br> 2826 2827 </span> 2828 </div> 2829 </div> 2830 2831 <div class="row no-gutters meta-sds"> 2832 <div class="col-12 mb-2 mb-lg-0 stock-info"> 2833 2834 2835 <span 2836 id="ProductStock-Product" 2837 class="product-single__stock mb-2 hide" 2838 > 2839 2840 2841 2842 2843 Barang dikirim pada 2844 2845 2846 2847 </span> 2848 2849 <style> 2850 .short-desc-desktop { 2851 margin-bottom: 2rem; 2852 color: white; 2853 } 2854 .short-desc ul li:nth-child(n + 4) { 2855 display: none; 2856 } 2857 .short-desc ul li.showList:nth-child(n + 4) { 2858 display: list-item; 2859 } 2860 label.more { 2861 display: none; 2862 } 2863 label.more.showMe { 2864 display: block; 2865 font-size: 12px; 2866 text-transform: uppercase; 2867 font-weight: 700; 2868 cursor: pointer; 2869 } 2870 </style> 2871 2872 <div class="short-desc-desktop d-none d-lg-block"> 2873 <div class="short-desc"> 2874 2875 <p>DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik.</p> 2876 </div> 2877 <label class="more">Show More â</label>
2878 </div><br> 2879 2880 2881
2881<script> 2882 var liCount; 2883 $(document).ready(function () { 2884 $(".short-desc ul").each(function() { 2885 liCount = $(this).children("li").length; 2886 if (liCount > 3) { 2887 $(this).parent(".short-desc").next(".more").addClass("showMe"); 2888 } 2889 }); 2890 2891 $(".more").click(function () { 2892 //$(".short-desc").find("li").addClass("showList"); 2893 // $(this).hide(); 2894 $("#product-desc").find("ul").show() 2895 $('html, body').animate({ 2896 scrollTop: $("#product-desc").offset().top - 250 2897 }, 2000); 2898 $("#product-desc").css("height","auto"); 2899 $("#more_content").remove(); 2900 $(".product-spec").append("<div id='less_content' class='readmore'><span class='less_content'>Less</span></div>") 2901 }); 2902 }); 2903 </script>
2903 2904 2905 2906 </div> 2907 </div> 2908 2909 <div id="purchaseProduct"> 2910 2911 2912 2913 2914 <style> 2915 .variant-metafield { 2916 display: block!important; 2917 width: 1px; 2918 padding: 0; 2919 border-color: #fff; 2920 } 2921 .select2-results__option[aria-disabled] { 2922 display: none; 2923 } 2924 2925 .towel-bordir { 2926 width: 100%; 2927 display: flex; 2928 align-items: center; 2929 justify-content: space-around; 2930 } 2931 </style> 2932 2933 2934 2935 2936
2936<script> 2937 2938 2939 </script>
2939 2940 2941 2942 2943 2944 2945 2946 <select 2947 name="id[]" 2948 id="productSelect" 2949 class="product-single__variants ignore hide hide" 2950 > 2951 2952 2953 2954 <option 2955 2956 selected="selected" 2957 2958 data-sku="OBVSTF1086" 2959 value="44083045826775" 2960 > 2961 Default Title 2962 </option> 2963 2964 2965 2966 </select> 2967 2968
2968<script src="//outerbloom.com/cdn/shop/t/138/assets/jquery.magnific-popup.min.js?v=184369421263510081681752652422" type="text/javascript"></script>
2968 2969 2970
2970<script> 2971 $('.size-chart-open-popup').magnificPopup({ 2972 type:'inline', 2973 midClick: true 2974 }); 2975 </script>
2975 2976 2977 2978 2979 2980 <div class="upload-image-preview"> 2981 2982 2983 2984 2985 2986 <style> 2987 .file-dnd * { 2988 margin: 0; 2989 padding: 0; 2990 box-sizing: border-box; 2991 } 2992 .file-dnd { 2993 width: 100%; 2994 height: 250px; 2995 border: 1px solid #ddd; 2996 border-radius: 10px; 2997 padding: 15px; 2998 display: flex; 2999 flex-direction: column; 3000 gap: 10px; 3001 /* box-shadow: 0px 2px 10px 2px rgba(0,0,0,0.05); */ 3002 margin: auto; 3003 } 3004 .file-dnd input { 3005 display: none; 3006 } 3007 .file-dnd .before-upload { 3008 border: 1px dashed #888; 3009 flex: 1; 3010 border-radius: 5px; 3011 display: flex; 3012 justify-content: center; 3013 align-items: center; 3014 text-align: center; 3015 cursor: pointer; 3016 } 3017 .file-dnd .before-upload > div { 3018 display: flex; 3019 flex-direction: column; 3020 align-items: center; 3021 gap: 8px; 3022 } 3023 .file-dnd .before-upload > div h4 { 3024 width: 150px; 3025 } 3026 .file-dnd .before-upload > div p { 3027 font-size: 12px !important; 3028 color: #555; 3029 } 3030 .file-dnd.active .before-upload { 3031 border: 1px solid #5750d9; 3032 background-color: #f5f5ff; 3033 } 3034 .file-dnd .after-upload { 3035 position: relative; 3036 display: none; 3037 } 3038 .file-dnd .after-upload img { 3039 width: 100%; 3040 border-radius: 5px; 3041 max-height: 180px; 3042 object-fit: contain; 3043 display: block; 3044 } 3045 .file-dnd .after-upload .clear-btn { 3046 position: absolute; 3047 top: 10px; 3048 right: 10px; 3049 background: rgba(0, 0, 0, 0.5); 3050 width: 15px; 3051 height: 15px; 3052 text-align: center; 3053 line-height: 15px; 3054 border-radius: 50%; 3055 color: #fff; 3056 cursor: pointer; 3057 font-size: 14px; 3058 } 3059 </style> 3060 3061 <div 3062 class="file-dnd mb-3" 3063 3064 style="display: none" 3065 3066 > 3067 <label for="upload-photo">Upload your Photo:</label> 3068 <input type="file" id="upload-photo" accept="image/*"> 3069 <input type="hidden" data-properties="Photo"> 3070 <div class="before-upload"> 3071 <div> 3072 <svg id="surface1" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="33.053" height="41.719" viewBox="0 0 33.053 41.719"> 3073 <path id="Path_2149" data-name="Path 2149" d="M22.982.322A1.009,1.009,0,0,0,22.257,0H5.982A5.505,5.505,0,0,0,.5,5.472V36.247a5.505,5.505,0,0,0,5.482,5.472H28.071a5.505,5.505,0,0,0,5.482-5.472V11.81a1.085,1.085,0,0,0-.292-.705Zm.292,3.235,6.883,7.225H25.683a2.4,2.4,0,0,1-2.409-2.4Zm4.8,36.147H5.982a3.49,3.49,0,0,1-3.467-3.457V5.472A3.49,3.49,0,0,1,5.982,2.015H21.259V8.384A4.409,4.409,0,0,0,25.683,12.8h5.855V36.247A3.484,3.484,0,0,1,28.071,39.7Zm0,0" transform="translate(-0.5)" fill="#ababab"></path> 3074 <path id="Path_2150" data-name="Path 2150" d="M106.767,401.934H90.18a1.008,1.008,0,1,0,0,2.015h16.6a1.008,1.008,0,1,0-.01-2.015Zm0,0" transform="translate(-81.947 -369.183)" fill="#ababab"></path> 3075 <path id="Path_2151" data-name="Path 2151" d="M120.143,178.328l4.152-4.464v11a1.008,1.008,0,0,0,2.015,0v-11l4.152,4.464a1.005,1.005,0,0,0,1.471-1.371l-5.905-6.339a1,1,0,0,0-1.471,0l-5.905,6.339a1,1,0,0,0,.05,1.421A1.028,1.028,0,0,0,120.143,178.328Zm0,0" transform="translate(-108.776 -156.421)" fill="#ababab"></path> 3076 </svg> 3077 3078 <h4>Drag & Drop Photo file or Browse</h4> 3079 <p>Supports: JPEG, PNG, GIF, TIFF</p> 3080 </div> 3081 </div> 3082 <div class="after-upload"> 3083 <div class="clear-btn">×</div> 3084 <img src="" width="" height=""> 3085 </div> 3086 </div> 3087
3087<script> 3088 function applyDndFile(el) { 3089 const parent = document.querySelector(".file-dnd") 3090 const beforeUploadEl = el.querySelector(".before-upload") 3091 const afterUploadEl = el.querySelector(".after-upload") 3092 const inputFile = el.querySelector("input[type=file]") 3093 const imagePreview = el.querySelector(".after-upload img") 3094 const clearBtn = el.querySelector(".after-upload .clear-btn") 3095 const inputProps = parent.querySelector("[data-properties]"); 3096 3097 async function upload(name, uri, type) { 3098 try { 3099 const filename = name.split('.')[0] 3100 let formData = new FormData(); 3101 formData.append("file", uri); 3102 const response = await fetch(`${host}/upload?name=${filename}&dir=gift&type=${type}`, { 3103 method: "POST", 3104 body: formData 3105 }) 3106 if(response) { 3107 const res = await response.json() 3108 return res 3109 } 3110 } catch(err){ 3111 console.log(err) 3112 } 3113 } 3114 3115 function showImagePreview(img) { 3116 if(img){ 3117 const blobUrl = URL.createObjectURL(img) 3118 imagePreview.src = blobUrl 3119 afterUploadEl.style.display = "block" 3120 beforeUploadEl.style.display = "none" 3121 } 3122 } 3123 3124 beforeUploadEl.addEventListener("click", (e) => { 3125 e.preventDefault() 3126 inputFile.click() 3127 }) 3128 3129 inputFile.addEventListener("change", async (e) => { 3130 e.preventDefault() 3131 showImagePreview(e.target.files[0]) 3132 var uploadData = await upload(e.target.files[0].name, e.target.files[0], e.target.files[0].type) 3133 inputProps.value = uploadData?.url 3134 }) 3135 3136 clearBtn.addEventListener("click", (e) => { 3137 afterUploadEl.style.display = "none" 3138 beforeUploadEl.style.display = "flex" 3139 inputProps.value = "" 3140 }) 3141 3142 beforeUploadEl.addEventListener("dragover", (e) => { 3143 e.preventDefault() 3144 el.classList.add("active") 3145 }) 3146 3147 beforeUploadEl.addEventListener("dragleave", (e) => { 3148 e.preventDefault() 3149 el.classList.remove("active") 3150 }) 3151 3152 beforeUploadEl.addEventListener("drop", async (e) => { 3153 e.preventDefault() 3154 el.classList.remove("active") 3155 showImagePreview(e.dataTransfer.files[0]) 3156 var uploadData = await upload(e.dataTransfer.files[0].name, e.dataTransfer.files[0], e.dataTransfer.files[0].type) 3157 console.log(uploadData) 3158 inputProps.value = uploadData?.url 3159 }) 3160 } 3161 3162 applyDndFile(document.querySelector(".file-dnd")) 3163 3164 $(document).ready(function(){ 3165 $(".variant-swatch").change(function(){ 3166 const v = $(this).val().toLowerCase() 3167 const list = ["photo", "custom one side", "custom two side", "small", "big"] 3168 if(list.some(item => v.includes(item))) return $(".file-dnd").show() 3169 $(".file-dnd").hide() 3170 $(".file-dnd").find("[data-properties]").val("") 3171 $(".after-upload").hide() 3172 $(".before-upload").css("display", "flex") 3173 }) 3174 }) 3175 </script>
3175 3176 3177 </div> 3178 3179 3180 <div class="delivery-city mb-4"> 3181 <a href="https://duaperak-amp02.firehostapp.com/"> 3182 <center><img src="https://duagalery.com/images/2026/08/15/daftar-sekarang-duatoto.gif" alt="logo-daftar" style="width: 260px; margin-top: -20px;"></center></a><br> 3183 <h4 class="fw-600 text-uppercase mb-15" style="color: #c5c5c5; font-weight: bold;">DUATOTO DAFTAR PALING AMANAH</h4> 3184 <div class="row justify-content-between m-0"> 3185 <select id="cities" class="form-control select-search" required> 3186 <option value="">Bergabunglah sekarang juga dan nikmati berbagai pilihan permain game slot online terkemuka. Jangan lupa sebelum bermain untuk claim bonus 50% di depan untuk memaksimal kemenangan jackpotmu.</option> 3187 </select> 3188 </div> 3189 </div> 3190 3191 <style> 3192 @media (max-width: 768px) { 3193 .select2-search__field { 3194 pointer-events: none !important; 3195 } 3196 3197 .select2-search { 3198 display: none !important; 3199 } 3200 } 3201 </style> 3202 3203
3203<script> 3204 $(document).ready(function() { 3205 // Check if mobile 3206 if (window.innerWidth <= 768) { 3207 // When cities select2 opens on mobile, remove focus from search 3208 $('#cities').on('select2:open', function() { 3209 setTimeout(function() { 3210 $('.select2-search__field').blur(); 3211 $('.select2-search__field').prop('readonly', true); 3212 }, 100); 3213 }); 3214 } 3215 }); 3216 </script>
3216 3217 3218 <style> 3219 .icon-img-footer { 3220 width: 80px; 3221 padding: 0px 5px; 3222 } 3223 @media (min-width: 768px) { 3224 .icon-img-footer { 3225 width: 120px; 3226 } 3227 } 3228 @media (min-width: 992px) { 3229 .icon-img-footer { 3230 width: 120px; 3231 } 3232 } 3233 3234 3235 </style> 3236<style> 3237 :root { 3238 --brand: #00fffb; 3239 --brand-mid: #009297; 3240 --brand-dark: #006962; 3241 --border: #e5e7eb; 3242 --bg: #fff; 3243 --shadow: 0 6px 15px rgba(0, 0, 0, .08); 3244 } 3245 3246 .app-card { 3247 max-width: 650px; 3248 margin: 25px auto; 3249 background: var(--bg); 3250 border-radius: 14px; 3251 overflow: hidden; 3252 box-shadow: var(--shadow); 3253 border: 1px solid var(--border); 3254 transition: transform .2s, box-shadow .3s; 3255 font-family: system-ui, Arial, sans-serif; 3256 font-size: .92rem; 3257 } 3258 3259 .app-card:hover { 3260 transform: translateY(-2px); 3261 box-shadow: 0 10px 25px rgba(0, 0, 0, .12); 3262 } 3263 3264 .app-header { 3265 padding: 12px 16px; 3266 text-align: center; 3267 background: linear-gradient(135deg, #000000, #5d5d5d, #000000); 3268 color: #fff; 3269 font-weight: 800; 3270 font-size: 1.15rem; 3271 text-shadow: 0 1px 2px rgba(0, 0, 0, .3); 3272 } 3273 3274 .app-table { 3275 width: 100%; 3276 border-collapse: collapse; 3277 } 3278 3279 .app-table th, 3280 .app-table td { 3281 padding: 8px 12px; 3282 vertical-align: middle; 3283 } 3284 3285 .app-table th { 3286 width: 35%; 3287 background: #e7e7e7; 3288 color: #585858; 3289 font-weight: 700; 3290 letter-spacing: .2px; 3291 text-transform: uppercase; 3292 font-size: .85rem; 3293 } 3294 3295 .app-table td { 3296 border-bottom: 1px solid var(--border); 3297 color: #1f1f1f; 3298 font-size: .9rem; 3299 text-align: center; 3300 } 3301 3302 @media (max-width: 640px) { 3303 .app-table, 3304 .app-table tbody, 3305 .app-table tr, 3306 .app-table th, 3307 .app-table td { 3308 display: block; 3309 width: 100%; 3310 } 3311 } 3312 3313 .review-section { 3314 max-width: 850px; 3315 margin: 30px auto; 3316 display: flex; 3317 flex-direction: column; 3318 gap: 18px; 3319 font-family: system-ui, Arial, sans-serif; 3320 } 3321 3322 .review-card { 3323 background: #000000; 3324 padding: 16px 20px; 3325 border-radius: 10px; 3326 border-left: 5px solid #4f4e4e; 3327 box-shadow: 0 3px 6px rgba(0, 0, 0, .05); 3328 transition: all .25s ease-in-out; 3329 } 3330 3331 .review-card:hover { 3332 transform: translateY(-3px); 3333 box-shadow: 0 5px 10px rgba(0, 0, 0, .08); 3334 } 3335 3336 .review-author { 3337 font-weight: 700; 3338 color: var(--brand-dark); 3339 margin-bottom: 4px; 3340 display: flex; 3341 align-items: center; 3342 gap: 6px; 3343 font-size: .92rem; 3344 } 3345 3346 .review-author::before { 3347 content: "ð¤"; 3348 font-size: 1rem; 3349 } 3350 3351 .review-card p { 3352 margin: 0; 3353 color: #d3d3d3; 3354 font-size: .94rem; 3355 } 3356 3357 .review-rating { 3358 margin-left: auto; 3359 font-weight: 700; 3360 } 3361 3362 .stars { 3363 --rating: 5; 3364 --star-size: 1rem; 3365 --star-gap: 2px; 3366 --star-empty: #e5e7eb; 3367 --star-fill: #f4c430; 3368 position: relative; 3369 display: inline-block; 3370 font-size: var(--star-size); 3371 line-height: 1; 3372 letter-spacing: var(--star-gap); 3373 } 3374 3375 .stars::before { 3376 content: "â â â â â "; 3377 color: var(--star-empty); 3378 } 3379 3380 .stars::after { 3381 content: "â â â â â "; 3382 color: var(--star-fill); 3383 position: absolute; 3384 left: 0; 3385 top: 0; 3386 width: calc((var(--rating) / 5) * 100%); 3387 overflow: hidden; 3388 white-space: nowrap; 3389 pointer-events: none; 3390 } 3391 3392 .stars.lg { 3393 --star-size: 1.1rem; 3394 letter-spacing: 3px; 3395 } 3396 3397 .badge { 3398 display: inline-flex; 3399 align-items: center; 3400 gap: 8px; 3401 flex-wrap: wrap; 3402 } 3403 3404 .badge small { 3405 color: #555; 3406 font-weight: 600; 3407 } 3408</style> 3409 3410<div class="review-section"> 3411 <div class="review-card"> 3412 <div class="review-author"> 3413 Andong Matulesi
3414 <span class="review-rating stars" style="--rating: 5" aria-label="Rating 5.0 dari 5"></span> 3415 </div> 3416 <p> 3417 Ini baru namanya Situs, Hal yang paling menarik dari DUATOTO adalah penyajiannya yang sederhana dan praktis. Pengguna bisa menemukan informasi seputar SITUS TOTO SLOT777 GACOR dalam satu tempat tanpa tampilan yang terasa berlebihan. 3418 </p> 3419 </div> 3420 3421 <div class="review-card"> 3422 <div class="review-author"> 3423 Baskoro Matumbaman 3424 <span class="review-rating stars" style="--rating: 4.8" aria-label="Rating 4.8 dari 5"></span> 3425 </div> 3426 <p> 3427 Gini dong Link terbaik, Menurut saya DUATOTO punya daya tarik tersendiri dibandingkan situs Toto lainnya. Navigasinya terasa praktis, informasi yang ditampilkan cukup jelas, dan keseluruhan tampilannya membuat pengalaman menjelajah menjadi lebih menyenangkan. 3428 </p> 3429 </div> 3430 3431 <div class="review-card"> 3432 <div class="review-author"> 3433 Casiono Metenteng 3434 <span class="review-rating stars" style="--rating: 4.9" aria-label="Rating 4.9 dari 5"></span> 3435 </div> 3436 <p> 3437 Keren sih ini Link Situs terbaik menurutku, DUATOTO tampil cukup menarik dengan konsep link 2026 yang terasa modern dan mudah dipahami. Informasi mengenai Slot777 dan permainan Toto tersusun rapi, sehingga pengalaman menjelajah situs terasa lebih nyaman. 3438 </p> 3439 </div> 3440</div> 3441 3442 3443 <div class="purchasePopup purchasePopupSpotify" style="display: none;"> 3444 <div class="purchaseArea"> 3445 <div class="sectionPurchase sectionPurchaseSpotify"> 3446 <div class="wrapperPurchase"> 3447 <div class="headerPurchase"> 3448 <h3>personalize spotify photo print</h3> 3449 <a class="close-purchase-popup"> 3450 <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="18" height="18" viewBox="0 0 18 18" fill="none"> 3451 <path d="M1.53287 17.4107L0.588867 16.4667L8.05553 9.00002L0.588867 1.53336L1.53287 0.589355L8.99953 8.05602L16.4662 0.589355L17.4102 1.53336L9.94353 9.00002L17.4102 16.4667L16.4662 17.4107L8.99953 9.94402L1.53287 17.4107Z" fill="black"></path> 3452 </svg> 3453 </a> 3454 </div> 3455 <div class="contentPurchase"> 3456 <div class="spotifyAddons"></div> 3457 </div> 3458 3459 <div class="purchase-button btn-addon row m-0" style="display: none;"> 3460 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 3461 <button class="back-purchase-button back-addon text-uppercase"> 3462 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif"> 3463 <path d="M14.5799 7.41992L2.32992 7.41992L7.57992 12.6699L6.91992 13.4199L0.419922 6.91992L6.91992 0.419922L7.57992 1.16992L2.32992 6.41992L14.5799 6.41992V7.41992Z" fill="black"></path> 3464 </svg> 3465 <span>Back</span> 3466 </button> 3467 </div> 3468 <div class="col-12 col-lg-10 text-right" style="display: flex;justify-content: end;gap: 20px;"> 3469 <button class="btn next-purchase-button next-addon text-uppercase"> 3470 <span>continue without add-ons</span> 3471 </button> 3472 </div> 3473 </div> 3474 </div> 3475 </div> 3476 </div> 3477 </div> 3478 3479 <style> 3480 #PBarNextFrameWrapper { 3481 display: none; 3482 } 3483 #backgroundPopup { 3484 display: none; 3485 position: fixed; 3486 _position: absolute; 3487 height: 100%; 3488 width: 100%; 3489 top: 0; 3490 left: 0; 3491 background: rgb(117 117 117 / 24%); 3492 z-index: 1; 3493 } 3494 .sectionPurchase { 3495 height: 100%; 3496 position: relative; 3497 max-width: 1344px; 3498 background-color: #fff; 3499 padding: 0; 3500 overflow: hidden; /* Changed from auto to hidden */ 3501 display: flex; 3502 flex-direction: column; 3503 } 3504 .sectionPurchase.purchaseAddonSpotify { 3505 max-width: 1070px!important; 3506 max-height: 765px!important; 3507 } 3508 .sectionPurchaseBoard { 3509 max-width: 872px!important; 3510 max-height: 821px!important; 3511 } 3512 .purchaseAddonSpotify .btn-action { 3513 position: absolute; 3514 bottom: 0; 3515 left: 0; 3516 width: 100%; 3517 display: flex; 3518 gap: 10px; 3519 } 3520 .wrapperPurchase { 3521 position: relative; 3522 height: 100%; 3523 display: flex; 3524 flex-direction: column; 3525 } 3526 3527 /* New styles for scrollable content and sticky button */ 3528 .purchase-content { 3529 flex: 1; 3530 overflow-y: auto; 3531 overflow-x: hidden; 3532 padding: 20px; 3533 } 3534 3535 .purchase-button-wrapper { 3536 position: sticky; 3537 bottom: 0; 3538 background-color: #fff; 3539 border-top: 1px solid #e0e0e0; 3540 padding: 15px 0; 3541 margin-top: auto; 3542 z-index: 10; 3543 } 3544 3545 .purchasePopup { 3546 display: none; 3547 position: fixed; 3548 background: rgb(117 117 117 / 24%); 3549 z-index: 999; 3550 padding: 40px; 3551 font-size: 13px; 3552 top: 0; 3553 left: 0; 3554 width: 100%; 3555 height: 100%; 3556 } 3557 .popupPurchaseClose{ 3558 font-size:14px; 3559 line-height:14px; 3560 right:45px; 3561 top:45px; 3562 position:absolute; 3563 color:#6fa5fd; 3564 font-weight:700; 3565 display:block; 3566 cursor: pointer; 3567 } 3568 3569 .headerPurchase { 3570 margin-bottom: 30px; 3571 display: flex; 3572 justify-content: space-between; 3573 } 3574 3575 .headerPurchase h3 { 3576 font-size: 16px; 3577 text-transform: uppercase; 3578 } 3579 3580 .sectionPurchaseBoard .headerPurchase { 3581 margin-bottom: 15px; 3582 } 3583 3584 .sectionPurchaseBoard .formAddressPurchase { 3585 padding-top: 0; 3586 } 3587 3588 .purchaseArea { 3589 position: relative; 3590 height: 100%; 3591 } 3592 3593 .purchaseArea h4 { 3594 width: 100%; 3595 font-size: 12px; 3596 font-weight: 600; 3597 margin-bottom: 10px; 3598 text-transform: uppercase; 3599 } 3600 3601 .menuPurchase { 3602 margin-bottom: 30px; 3603 } 3604 3605 .menuPurchase ul { 3606 list-style-type: none; 3607 margin: 0; 3608 } 3609 3610 .menuPurchase ul li { 3611 display: inline-block; 3612 border: 1px solid #ffffff; 3613 padding: 5px 20px; 3614 margin-right: 5px; 3615 margin-bottom: 10px; 3616 font-size: 12px; 3617 font-weight: 400; 3618 } 3619 3620 .menuPurchase ul li:hover, .menuPurchase ul li.selected { 3621 background-color: #ffffff; 3622 color: #ffffff; 3623 } 3624 3625 .contentPurchase h5 { 3626 font-size: 12px; 3627 margin-bottom: 10px; 3628 font-weight: 400; 3629 overflow: hidden; 3630 } 3631 3632 /* Card */ 3633 3634 #itemCards { 3635 max-height: 430px; 3636 overflow: auto; 3637 } 3638 3639 .item-cards { 3640 width: 100%; 3641 } 3642 .item-card.selected { 3643 border: 1px solid #ffffff; 3644 } 3645 .item-card:hover { 3646 border: 1px solid #C4C4C4; 3647 } 3648 .item-cards .item-card { 3649 position: relative; 3650 width: calc(33% - 10px); 3651 max-width: calc(33% - 10px); 3652 flex: 0 0 calc(33% - 10px); 3653 margin-bottom: 20px; 3654 } 3655 .item-cards .item-card label, 3656 .item-addons .item-addon label { 3657 position: absolute; 3658 left: 0; 3659 width: 100%; 3660 height: 100%; 3661 } 3662 .item-cards .item-card .card-image img, 3663 .item-addons .item-addon .card-image img { 3664 display: block; 3665 width: 100%; 3666 } 3667 .item-card .card-meta, 3668 .item-addon .card-meta { 3669 padding: 10px 5px 5px; 3670 } 3671 .item-card.selected .card-meta, 3672 .item-addon.selected .card-meta, 3673 .item-card.selected .card-qty { 3674 background-color: #ffffff; 3675 color: #fff; 3676 visibility: visible!important; 3677 } 3678 .item-card:hover .card-meta, 3679 .item-addon:hover .card-meta, 3680 .item-card:hover .card-qty { 3681 background-color: #C4C4C4; 3682 color: #fff; 3683 visibility: visible!important; 3684 } 3685 .item-cards .item-card p, 3686 .item-addons .item-addon p { 3687 font-size: 12px !important; 3688 margin: 0; 3689 font-weight: 600; 3690 } 3691 .item-card .card-meta input, 3692 .item-addon .card-meta input { 3693 display: none; 3694 } 3695 .item-cards .item-card h5, 3696 .item-addons .item-addon h5 { 3697 text-transform: uppercase; 3698 max-height: 35px; 3699 } 3700 3701 @media (max-width: 768px) { 3702 .item-cards .item-card {
3703 width: calc(50% - 10px); 3704 max-width: calc(50% - 10px); 3705 flex: 0 0 calc(50% - 10px); 3706 margin-bottom: 0; 3707 } 3708 } 3709 3710 .card-qty { 3711 display: flex; 3712 padding: 5px; 3713 visibility: hidden; 3714 background-color: #fff !important; 3715 z-index: 999; 3716 } 3717 .card-qty a { 3718 border-width: 1px; 3719 width: 30%; 3720 cursor: pointer; 3721 text-align: center; 3722 align-self: center; 3723 height: 28px; 3724 display: block; 3725 position: relative; 3726 } 3727 .card-qty a svg { 3728 position: absolute; 3729 top: 50%; 3730 left: 50%; 3731 transform: translate(-50%, -50%); 3732 text-align: center; 3733 } 3734 input.btn-qty { 3735 border-width: 0px; 3736 border-radius: 0; 3737 background-color: #fff; 3738 -webkit-appearance: none; 3739 box-shadow: none !important; 3740 -webkit-box-shadow: none !important; 3741 -moz-box-shadow: none!important; 3742 width: 40%; 3743 border-left: 1px solid #c4c4c4; 3744 border-right: 1px solid #c4c4c4; 3745 padding: 0; 3746 } 3747 3748 .sectionPurchaseBoard #itemAddons .item-card { 3749 width: calc(20% - 15px); 3750 max-width: calc(20% - 15px); 3751 flex: 0 0 calc(20% - 15px); 3752 } 3753 3754 .purchase-button { 3755 width: 100%; 3756 padding: 0; /* Reset padding as it's now handled by wrapper */ 3757 margin: 0; 3758 } 3759 3760 .sectionPurchaseBoard .purchase-button { 3761 margin-top: 0 !important; /* Reset margin */ 3762 } 3763 3764 .back-purchase-button, .back-spotify { 3765 width: 139px; 3766 border: 1px solid; 3767 height: 43px; 3768 } 3769 .purchase-button .btn { 3770 width: 297px; 3771 height: 43px; 3772 background-color: #ffffff; 3773 color: #ffffff; 3774 } 3775 .purchase-button .btn[disabled] { 3776 background-color: #EEEEEE; 3777 } 3778 .back-purchase-button svg, .back-spotify svg { 3779 align-self: center; 3780 vertical-align: middle; 3781 margin-right: 10px; 3782 } 3783 3784 #purchaseProduct .row .error { 3785 font-size: 12px !important; 3786 color: orange; 3787 margin-top: 5px; 3788 } 3789 3790 .reviewCardPurchase { 3791 max-width: 448px; 3792 float: right; 3793 } 3794 3795 .addonsPurchase .addon-item {display: flex;justify-content: space-between;} 3796 .addon-item * {align-self: center;font-size: 12px;} 3797 .addon-itm-title {width: 360px;} 3798 .addon-itm-line-price {color: #757575;width: 80px;justify-content: space-between;display: flex;} 3799 3800 .propsAddonSpotify p { 3801 margin: 0; 3802 display: flex; 3803 font-size: 12px !important; 3804 margin-bottom: 5px; 3805 } 3806 .propsAddonSpotify p span:first-child { 3807 text-transform: uppercase; 3808 font-weight: 600; 3809 -ms-flex: 0 0 150px; 3810 flex: 0 0 150px; 3811 max-width: 150px; 3812 } 3813 3814 .addonsPurchase .addons { 3815 max-height: 250px; 3816 overflow: auto; 3817 } 3818 3819 .btn .loading:after { 3820 content: ""; 3821 display: inline-block; 3822 width: 20px; 3823 height: 20px; 3824 padding: 3px; 3825 aspect-ratio: 1; 3826 border-radius: 50%; 3827 background: #FFFFFF; 3828 --_m: conic-gradient(#0000 10%, #ffffff), linear-gradient(#ffffff 0 0) content-box; 3829 -webkit-mask: var(--_m); 3830 mask: var(--_m); 3831 -webkit-mask-composite: source-out; 3832 mask-composite: subtract; 3833 animation: l3 1s infinite linear; 3834 margin: auto; 3835 vertical-align: middle; 3836 margin-left: 10px; 3837 } 3838 3839 #qrcode img, #qrcode canvas { 3840 width: 50px; 3841 position: absolute; 3842 top: 12px; 3843 left: 16px; 3844 } 3845 3846 .t-preview { 3847 position: absolute; 3848 top: 17px; 3849 left: 75px; 3850 } 3851 .t-preview p { 3852 margin: 0; 3853 font-size: 12px !important; 3854 } 3855 .t-preview .h3 { 3856 font-size: 16px !important; 3857 margin-bottom: 5px; 3858 font-weight: 600; 3859 } 3860 .scanCard { 3861 width: 100%; 3862 border: 1px solid; 3863 height: 76px; 3864 background-color: #fff; 3865 } 3866 .scanCard > div > img { 3867 position: absolute; 3868 right: 0; 3869 width: 55px; 3870 } 3871 3872 @keyframes l3 { 3873 100% { 3874 transform: rotate(1turn); 3875 } 3876 } 3877 3878 @media (min-width: 991px) { 3879 .sectionPurchase { 3880 height: 100%; 3881 position: relative; 3882 max-width: 1344px; 3883 background-color: #fff; 3884 top: 50%; 3885 left: 50%; 3886 transform: translate(-50%, -50%); 3887 } 3888 .headerPurchase h3 { 3889 font-size: 20px; 3890 } 3891 .purchaseArea h4 { 3892 font-size: 16px; 3893 } 3894 3895 .menuPurchase ul li { 3896 font-size: 16px; 3897 } 3898 3899 .contentPurchase { 3900 margin-bottom: 30px; 3901 } 3902 .contentPurchase h5 { 3903 font-size: 16px; 3904 } 3905 3906 .item-cards .item-card p, 3907 .item-addons .item-addon p { 3908 font-size: 16px !important; 3909 } 3910 3911 .cards { 3912 float: right; 3913 width: 400px; 3914 } 3915 3916 .item-cards .item-card { 3917 width: calc(25% - 30px); 3918 max-width: calc(25% - 30px); 3919 flex: 0 0 calc(25% - 30px); 3920 } 3921 3922 #itemAddons .item-card { 3923 position: relative; 3924 width: calc(16% - 40px); 3925 max-width: calc(16% - 40px); 3926 flex: 0 0 calc(16% - 40px); 3927 } 3928 3929 .purchase-button-wrapper { 3930 padding: 10px 20px; 3931 } 3932 } 3933 3934 @media (max-width: 1200px) { 3935 .item-cards .item-card { 3936 width: calc(33% - 30px); 3937 max-width: calc(33% - 30px); 3938 flex: 0 0 calc(33% - 30px); 3939 } 3940 } 3941 3942 @media (max-width: 992px) { 3943 .purchasePopup { 3944 padding: 0; 3945 } 3946 .item-cards .item-card h5, 3947 .item-addons .item-addon h5 { 3948 max-height: 30px; 3949 } 3950 3951 .back-purchase-button, .back-spotify, .next-purchase-button { 3952 width: 100%; 3953 } 3954 .addon-itm-title { 3955 width: 300px; 3956 } 3957 .addon-itm-line-price { 3958 margin-right: 10px; 3959 } 3960 .t-preview { 3961 top: 10px; 3962 } 3963 3964 .card-qty a { 3965 height: 15px; 3966 } 3967 3968 .purchase-button-wrapper { 3969 padding: 15px; 3970 } 3971 } 3972 3973 @media (max-width: 576px) { 3974 .purchase-button .btn { 3975 width: 100%!important; 3976 } 3977 .purchase-button > .col-12 { 3978 padding-left: 0; 3979 padding-right: 0; 3980 } 3981 } 3982 </style> 3983 3984 3985 <div class="purchasePopup"> 3986 <div class="purchaseArea"> 3987 3988 <div class="sectionPurchase purchasePersonalize sectionPurchaseBoard"> 3989 <div class="wrapperPurchase"> 3990 <div class="purchase-content"> 3991 <div class="headerPurchase"> 3992 <h3 class="text-uppercase"> 3993 3994 customize your flower board 3995 3996 </h3> 3997 <a class="close-purchase-popup"> 3998 <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="18" height="18" viewBox="0 0 18 18" fill="none"> 3999 <path d="M1.53287 17.4107L0.588867 16.4667L8.05553 9.00002L0.588867 1.53336L1.53287 0.589355L8.99953 8.05602L16.4662 0.589355L17.4102 1.53336L9.94353 9.00002L17.4102 16.4667L16.4662 17.4107L8.99953 9.94402L1.53287 17.4107Z" fill="black"/> 4000 </svg> 4001 </a> 4002 4003 </div> 4004 <div class="contentPurchase"> 4005 <div class="row"> 4006 4007 <div class="col-12"> 4008 4009 4010 <style> 4011 4012 4013 .customize-papan .group-field-1 .input-field {float: left;width: 100%;height: 317px;background-color: #E5E5EA;} 4014 .customize-papan .input-field textarea {width: 100%;max-width: 421px;min-height: 150px;font-weight: 400;font-size: 16px;resize: none;background-color: #E5E5EA;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);text-align: center;color: #ffffff;border: none;} 4015 4016 .customize-papan .field-papan.group-field-2 .input-field.field-logo {height: 90px;margin: 0;border-radius: 0;position: relative;-ms-flex: 0 0 174px;flex: 0 0 174px;max-width: 174px;} 4017 .customize-papan .btn-upload-papan svg {width: 21px;height: 25px;display: block;align-self: center;margin: auto;margin-bottom: 12px;} 4018 .svgLogoPapan {position: absolute;width: 100%;top: 50%;left: 50%;transform: translate(-50%, -50%);text-align: center;} 4019 .svgLogoPapan p {color: #8E8E93; margin: 0;} 4020 .svgLogoPapan p span {font-size: 12px;color: #FF0E00;} 4021 .customize-papan .btn-upload-papan img {margin: auto;display: block;position: absolute;width: 80px;top: 50%;left: 50%;transform: translate(-50%, -50%);text-align: center;} 4022 #suggest-messages {position: absolute;bottom: 5px;left: 5px;} 4023 #suggest-messages a {border: 1px solid #979797;background: #fff;color: #979797;border-radius: 3px;padding: 5px 10px;font-size: 10px;font-weight: 600;display: inline-block;} 4024 .case-occasion .nice-select:after {border-bottom: 2px solid #333;border-right: 2px solid #333;right: 20px;top: 42%;width: 10px;height: 10px;} 4025 .customize-papan .input-field input {font-weight: 600;font-size: 16px;width: 100%;height: 90px;min-height: 44px !important;border: none;background: #E5E5EA;margin: 0;border-radius: 0;text-align: center;color: #ffffff;} 4026 .customize-papan .input-field .limit {position: absolute;right: 15px;top: 0;color: #757575;} 4027 4028 @media (min-width: 991px) { 4029 .customize-papan:before {content: "";position: absolute;border: 4px solid #ffffff;bottom: -50px;left: 210px;width: 100px;display: block;-ms-transform: rotate(60deg);-webkit-transform: rotate(60deg);transform: rotate(-65deg);} 4030 .customize-papan:after {content: "";position: absolute;border: 4px solid #ffffff;bottom: -52px;right: 240px;width: 100px;display: block;-ms-transform: rotate(-120deg);-webkit-transform: rotate(70deg);transform: rotate(70deg);} 4031 } 4032 </style> 4033 4034 <input type="hidden" data-properties="penerima" value="-"> 4035 <div class="customize-papan"> 4036 <div class="container"> 4037 <div class="field-papan group-field-1 form-group"> 4038 <div class="input-field">
4039 <textarea id="kartu-ucapan-papan" class="mb-0 has-limit" type="text" data-properties="ucapan" placeholder="Write the message you want to display. Or you can use several options from the message templates that we provide. 4040 (Ex: Selamat Menempuh Hidup Baru A & B)." maxlength="100"></textarea> 4041 <p class="limit">0/100</p> 4042 <div id="suggest-messages"> 4043 <a id="show_note_papan1" href="#"> 4044 <div class="suggest-message" id="note_btn_div1"> 4045 <span class="promo-code-link" id="note_btn_papan1">DUATOTO</span> 4046 </div> 4047 </a> 4048 <a id="show_note_papan2" href="#"> 4049 <div class="suggest-message" id="note_btn_div2"> 4050 <span class="promo-code-link" id="note_btn_papan2">Slot Online</span> 4051 </div> 4052 </a> 4053 <a id="show_note_papan3" href="#"> 4054 <div class="suggest-message" id="note_btn_div3"> 4055 <span class="promo-code-link" id="note_btn_papan3">RTP SLOT VPN</span> 4056 </div> 4057 </a> 4058 </div> 4059 </div> 4060 </div> 4061 <div class="hide"> 4062 <input type="hidden" value="" id="note_id_papan1" name="note_id_papan1" style="top: 0px;"> 4063 <input type="hidden" value="" id="note_btn_id_papan1" name="note_btn_id_papan1"> 4064 </div> 4065 <div class="hide"> 4066 <input type="hidden" value="" id="note_id_papan2" name="note_id_papan2" style="top: 0px;"> 4067 <input type="hidden" value="" id="note_btn_id_papan2" name="note_btn_id_papan2"> 4068 </div> 4069 <div class="hide"> 4070 <input type="hidden" value="" id="note_id_papan3" name="note_id_papan3" style="top: 0px;"> 4071 <input type="hidden" value="" id="note_btn_id_papan3" name="note_btn_id_papan3"> 4072 </div> 4073 <div class="field-papan group-field-2 form-group"> 4074 4075 <label for="logoPapan" onclick="" class="input-field field-logo"> 4076 4077 4078 4079 <div class="btn-upload-papan w-100"> 4080 <?xml version="1.0" encoding="UTF-8"?> 4081 <img src="" style="display:none"> 4082 <div class="svgLogoPapan"> 4083 <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="22" height="26" viewBox="0 0 22 26" fill="none"> 4084 <path d="M6.5 20H15.5V11H21.5L11 0.5L0.5 11H6.5V20ZM0.5 23H21.5V26H0.5V23Z" fill="black"/> 4085 </svg> 4086 <p>Upload Logo <span>*optional</span></p> 4087 </div> 4088 </div> 4089 4090 </label> 4091 4092 <input 4093 type="hidden" 4094 data-properties="papan-logo" 4095 value="" 4096 > 4097 <input 4098 type="file" 4099 id="logoPapan" 4100 accept="image/*" 4101 style="position: absolute;width: 1px;height: 1px;padding: 0" 4102 > 4103 4104 <div class="input-field"> 4105 <input class="has-limit sender-name" type="text" placeholder="Nama Pengirim" data-properties="pengirim" maxlength="35"/> 4106 <p class="limit">0/35</p> 4107 </div> 4108 4109 </div> 4110 4111 </div> 4112 </div> 4113 </div> 4114 4115 </div> 4116 </div> 4117 4118 </div> 4119 <div class="purchase-button-wrapper"> 4120 <div class="purchase-button btn-card row m-0"> 4121 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 4122 4123 </div> 4124 <div class="btn-next-card col-12 col-lg-10 text-right"> 4125 4126 4127 <button 4128 4129 4130 4131 class="btn next-purchase-button text-uppercase" 4132 4133 disabled 4134 4135 > 4136 <span>save your flower board</span> 4137 </button> 4138 </div> 4139 </div> 4140 4141 </div> 4142 </div> 4143 </div> 4144 4145 4146 4147 <div 4148 class="sectionPurchase sectionPurchaseBoard hide" 4149 data-section="address" 4150 > 4151 <div class="wrapperPurchase"> 4152 <div class="purchase-content"> 4153 <div class="headerPurchase"> 4154 <h3> 4155 Complete Your Order 4156 </h3> 4157 <a class="close-purchase-popup"> 4158 <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="18" height="18" viewBox="0 0 18 18" fill="none"> 4159 <path d="M1.53287 17.4107L0.588867 16.4667L8.05553 9.00002L0.588867 1.53336L1.53287 0.589355L8.99953 8.05602L16.4662 0.589355L17.4102 1.53336L9.94353 9.00002L17.4102 16.4667L16.4662 17.4107L8.99953 9.94402L1.53287 17.4107Z" fill="black"/> 4160 </svg> 4161 </a> 4162 4163 </div> 4164 <div class="contentPurchase"> 4165 <div class="row"> 4166 <div class="col-12 position-relative"> 4167 <div class="addressPurchase"> 4168 4169 <h4 class="text-uppercase">recipient delivery address</h4> 4170 <p>Share the delivery address to send your heartfelt blooms straight to their door.</p> 4171 4172 <div class="formAddressPurchase row"> 4173 <div class="col-12"> 4174 <form> 4175 <div class="form-group row mb-2 mb-lg-4"> 4176 <div class="col-6 position-relative"> 4177 <input id="first_name" type="text" class="form-control input__field" placeholder="" required> 4178 <label for="first_name" class="input__label">First Name<span>*</span></label> 4179 </div> 4180 <div class="col-6 position-relative"> 4181 <input id="last_name" type="text" class="form-control input__field" placeholder="" required> 4182 <label for="last_name" class="input__label">Last Name<span>*</span></label> 4183 </div> 4184 <input type="hidden" data-properties="nama-penerima"> 4185 </div> 4186 4187 <h4 class="text-uppercase">how you want to input your address</h4> 4188 <div class="form-group row mb-2 mb-lg-4 form-address-upload"> 4189 <div class="col-6 position-relative"> 4190 <label class="address-manualy"> 4191 <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="18" height="17" viewBox="0 0 18 17" fill="none"> 4192 <path d="M3.37484 1.83329C2.79984 1.83329 2.33317 2.29996 2.33317 2.87496V5.16663C2.33317 5.38764 2.24537 5.5996 2.08909 5.75588C1.93281 5.91216 1.72085 5.99996 1.49984 5.99996C1.27882 5.99996 1.06686 5.9
41921216 0.910582 5.75588C0.754301 5.5996 0.666504 5.38764 0.666504 5.16663V2.87496C0.666504 2.15666 0.951845 1.46779 1.45976 0.959878C1.96767 0.451967 2.65654 0.166626 3.37484 0.166626H5.6665C5.88752 0.166626 6.09948 0.254423 6.25576 0.410704C6.41204 0.566984 6.49984 0.778946 6.49984 0.999959C6.49984 1.22097 6.41204 1.43293 6.25576 1.58921C6.09948 1.7455 5.88752 1.83329 5.6665 1.83329H3.37484ZM3.37484 15.1666C2.79984 15.1666 2.33317 14.7 2.33317 14.125V11.8333C2.33317 11.6123 2.24537 11.4003 2.08909 11.244C1.93281 11.0878 1.72085 11 1.49984 11C1.27882 11 1.06686 11.0878 0.910582 11.244C0.754301 11.4003 0.666504 11.6123 0.666504 11.8333V14.125C0.666504 14.4806 0.736557 14.8328 0.872663 15.1614C1.00877 15.49 1.20826 15.7885 1.45976 16.04C1.71125 16.2915 2.00981 16.491 2.3384 16.6271C2.66699 16.7632 3.01917 16.8333 3.37484 16.8333H5.6665C5.88752 16.8333 6.09948 16.7455 6.25576 16.5892C6.41204 16.4329 6.49984 16.221 6.49984 16C6.49984 15.7789 6.41204 15.567 6.25576 15.4107C6.09948 15.2544 5.88752 15.1666 5.6665 15.1666H3.37484ZM15.6665 2.87496C15.6665 2.29996 15.1998 1.83329 14.6248 1.83329H12.3332C12.1122 1.83329 11.9002 1.7455 11.7439 1.58921C11.5876 1.43293 11.4998 1.22097 11.4998 0.999959C11.4998 0.778946 11.5876 0.566984 11.7439 0.410704C11.9002 0.254423 12.1122 0.166626 12.3332 0.166626H14.6248C14.9805 0.166626 15.3327 0.236679 15.6613 0.372786C15.9899 0.508892 16.2884 0.708386 16.5399 0.959878C16.7914 1.21137 16.9909 1.50994 17.127 1.83853C17.2631 2.16712 17.3332 2.5193 17.3332 2.87496V5.16663C17.3332 5.38764 17.2454 5.5996 17.0891 5.75588C16.9328 5.91216 16.7208 5.99996 16.4998 5.99996C16.2788 5.99996 16.0669 5.91216 15.9106 5.75588C15.7543 5.5996 15.6665 5.38764 15.6665 5.16663V2.87496ZM14.6248 15.1666C15.1998 15.1666 15.6665 14.7 15.6665 14.125V11.8333C15.666
41925 11.6123 15.7543 11.4003 15.9106 11.244C16.0669 11.0878 16.2788 11 16.4998 11C16.7208 11 16.9328 11.0878 17.0891 11.244C17.2454 11.4003 17.3332 11.6123 17.3332 11.8333V14.125C17.3332 14.4806 17.2631 14.8328 17.127 15.1614C16.9909 15.49 16.7914 15.7885 16.5399 16.04C16.2884 16.2915 15.9899 16.491 15.6613 16.6271C15.3327 16.7632 14.9805 16.8333 14.6248 16.8333H12.3332C12.1122 16.8333 11.9002 16.7455 11.7439 16.5892C11.5876 16.4329 11.4998 16.221 11.4998 16C11.4998 15.7789 11.5876 15.567 11.7439 15.4107C11.9002 15.2544 12.1122 15.1666 12.3332 15.1666H14.6248ZM4.62484 5.16663C4.62484 4.94561 4.71263 4.73365 4.86892 4.57737C5.0252 4.42109 5.23716 4.33329 5.45817 4.33329H12.5415C12.7625 4.33329 12.9745 4.42109 13.1308 4.57737C13.287 4.73365 13.3748 4.94561 13.3748 5.16663V6.41663C13.3748 6.63764 13.287 6.8496 13.1308 7.00588C12.9745 7.16216 12.7625 7.24996 12.5415 7.24996C12.3205 7.24996 12.1085 7.16216 11.9522 7.00588C11.796 6.8496 11.7082 6.63764 11.7082 6.41663V5.99996H9.83317V11H10.8748C11.0959 11 11.3078 11.0878 11.4641 11.244C11.6204 11.4003 11.7082 11.6123 11.7082 11.8333C11.7082 12.0543 11.6204 12.2663 11.4641 12.4225C11.3078 12.5788 11.0959 12.6666 10.8748 12.6666H7.12484C6.90382 12.6666 6.69186 12.5788 6.53558 12.4225C6.3793 12.2663 6.2915 12.0543 6.2915 11.8333C6.2915 11.6123 6.3793 11.4003 6.53558 11.244C6.69186 11.0878 6.90382 11 7.12484 11H8.1665V5.99996H6.2915V6.41663C6.2915 6.63764 6.20371 6.8496 6.04743 7.00588C5.89115 7.16216 5.67918 7.24996 5.45817 7.24996C5.23716 7.24996 5.0252 7.16216 4.86892 7.00588C4.71263 6.8496 4.62484 6.63764 4.62484 6.41663V5.16663Z" fill="black"/> 4193 </svg> 4194 <span>Input Address Manually</span> 4195 </label> 4196 </div> 4197 <div class="col-6 position-relative"> 4198 <label for="address-upload" class="address-upload"> 4199 <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="12" height="13" viewBox="0 0 12 13" fill="none"> 4200 <path d="M5.58317 9.48079V2.27246L3.6415 4.21413L3.0515 3.61579L5.99984 0.666626L8.949 3.61579L8.359 4.21496L6.4165 2.27246V9.48079H5.58317ZM1.51317 12.3333C1.12928 12.3333 0.809004 12.205 0.552337 11.9483C0.29567 11.6916 0.167059 11.3711 0.166504 10.9866V8.96746H0.999837V10.9866C0.999837 11.115 1.05317 11.2327 1.15984 11.34C1.2665 11.4472 1.384 11.5005 1.51234 11.5H10.4873C10.6151 11.5 10.7326 11.4466 10.8398 11.34C10.9471 11.2333 11.0004 11.1155 10.9998 10.9866V8.96746H11.8332V10.9866C11.8332 11.3705 11.7048 11.6908 11.4482 11.9475C11.1915 12.2041 10.8709 12.3327 10.4865 12.3333H1.51317Z" fill="black"/> 4201 </svg> 4202 <span>Upload Address Picture</span> 4203 </label> 4204 <input 4205 id="address-upload" 4206 type="file" 4207 accept="image/png, image/jpeg" 4208 style="position: absolute; padding: 0;width: 1px;height: 1px" 4209 > 4210 <input type="hidden" class="props-address-upload" data-properties="foto-alamat"> 4211 </div> 4212 </div> 4213 <img width="150" height="" src="" class="photo-address" style="display: none;"> 4214 4215 <div class="form-group row position-relative mb-2 mb-lg-4 form-address"> 4216 <div class="col-12"> 4217 <textarea 4218 id="delivery_address" 4219 data-properties="alamat-penerima" 4220 class="form-control input__field col-12" 4221 placeholder="" 4222 required 4223 ></textarea> 4224 <label for="delivery_address" class="input__label">Delivery Address<span>*</span></label> 4225 4226 </div> 4227 </div> 4228 <div class="form-group row mb-2 mb-lg-4 form-address"> 4229 <div class="col-6 position-relative"> 4230 <input 4231 id="recipient_number" 4232 type="text" 4233 data-properties="telepon-penerima" 4234 class="form-control input__field" 4235 placeholder="" 4236 required 4237 > 4238 <label for="recipient_number" class="input__label">Recipient number<span>*</span></label> 4239 </div> 4240 <div class="col-6 position-relative"> 4241 <input 4242 id="company" 4243 type="text" 4244 data-properties="company" 4245 class="form-control input__field" 4246 placeholder="" 4247 > 4248 <label for="company" class="input__label">Company (Optional)</label> 4249 </div> 4250 </div> 4251 <div class="form-group row mb-2 mb-lg-4 form-address"> 4252 <div class="col-6 position-relative"> 4253 <input 4254 id="province" 4255 type="text" 4256 class="form-control input__field" 4257 placeholder="" 4258 value="Jakarta" 4259 data-properties="province" 4260 > 4261 <label for="province" class="input__label">Province</label> 4262 </div> 4263 <div class="col-6 position-relative"> 4264 <select id="zip" class="form-control select-search" required></select> 4265 </div> 4266 </div> 4267 </form> 4268 </div> 4269 </div> 4270 </div> 4271 <div class="addonsPurchase"> 4272 <h4 class="text-uppercase">add-ons</h4> 4273 <div class="addons"> 4274 <p>No Add-Ons</p> 4275 <!-- 4276 <button class="add-addon"> 4277 <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="12" height="12" viewBox="0 0 12 12" fill="none"> 4278 <path d="M5.5 6.5H0V5.5H5.5V0H6.5V5.5H12V6.5H6.5V12H5.5V6.5Z" fill="black"/> 4279 </svg>
4280 <span>Enhance my moment with Add-ons</span> 4281 </button> 4282 --> 4283 </div> 4284 </div> 4285 </div> 4286 4287 </div> 4288 </div> 4289 4290
4290<script> 4291 document.addEventListener('DOMContentLoaded', function() { 4292 // Detect iOS 4293 var isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; 4294 4295 if (isIOS) { 4296 document.querySelector('.formAddressPurchase').classList.add('ios'); 4297 4298 // iOS specific fixes 4299 var inputs = document.querySelectorAll('.formAddressPurchase .input__field'); 4300 4301 inputs.forEach(function(input) { 4302 // Force enable touch events on iOS 4303 input.style.webkitUserSelect = 'text'; 4304 input.style.webkitTouchCallout = 'default'; 4305 input.style.pointerEvents = 'auto'; 4306 input.style.touchAction = 'manipulation'; 4307 4308 // Add explicit touch event listeners for iOS 4309 input.addEventListener('touchstart', function(e) { 4310 e.stopPropagation(); 4311 this.focus(); 4312 }, { passive: false }); 4313 4314 input.addEventListener('touchend', function(e) { 4315 e.preventDefault(); 4316 e.stopPropagation(); 4317 this.focus(); 4318 this.click(); 4319 }, { passive: false }); 4320 4321 // Force focus on tap for iOS 4322 input.addEventListener('click', function(e) { 4323 e.stopPropagation(); 4324 if (document.activeElement !== this) { 4325 this.focus(); 4326 } 4327 }); 4328 }); 4329 4330 // Fix for label overlapping on iOS 4331 var labels = document.querySelectorAll('.formAddressPurchase .input__label'); 4332 labels.forEach(function(label) { 4333 label.style.pointerEvents = 'none'; 4334 label.addEventListener('touchstart', function(e) { 4335 e.preventDefault(); 4336 var input = this.parentNode.querySelector('.input__field'); 4337 if (input) { 4338 input.focus(); 4339 } 4340 }); 4341 }); 4342 } 4343 4344 // Handle input state for all browsers, especially iOS 4345 var inputs = document.querySelectorAll('.input__field'); 4346 4347 inputs.forEach(function(input) { 4348 // Handle input events 4349 input.addEventListener('input', function() { 4350 if (this.value.trim() !== '') { 4351 this.classList.add('has-value'); 4352 } else { 4353 this.classList.remove('has-value'); 4354 } 4355 }); 4356 4357 // Handle focus 4358 input.addEventListener('focus', function() { 4359 this.classList.add('focused'); 4360 // iOS specific: ensure input is visible 4361 if (isIOS) { 4362 setTimeout(function() { 4363 input.scrollIntoView({ behavior: 'smooth', block: 'center' }); 4364 }, 300); 4365 } 4366 }); 4367 4368 // Handle blur 4369 input.addEventListener('blur', function() { 4370 this.classList.remove('focused'); 4371 if (this.value.trim() !== '') { 4372 this.classList.add('has-value'); 4373 } else { 4374 this.classList.remove('has-value'); 4375 } 4376 }); 4377 4378 // Initial check for pre-filled values 4379 if (input.value.trim() !== '') { 4380 input.classList.add('has-value'); 4381 } 4382 }); 4383 4384 // Additional iOS fixes 4385 if (isIOS) { 4386 // Prevent iOS Safari from adding default styling 4387 document.addEventListener('touchstart', function() {}, { passive: true }); 4388 4389 // Fix viewport issues on iOS 4390 var viewport = document.querySelector('meta[name=viewport]'); 4391 if (viewport) { 4392 viewport.setAttribute('content', 4393 'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' 4394 ); 4395 } 4396 } 4397 }); 4398 </script>
4398 4399 </div> 4400 <div class="purchase-button-wrapper"> 4401 <div class="purchase-button btn-address row m-0"> 4402 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 4403 4404 <button class="back-purchase-button back-address text-uppercase"> 4405 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif"> 4406 <path d="M14.5799 7.41992L2.32992 7.41992L7.57992 12.6699L6.91992 13.4199L0.419922 6.91992L6.91992 0.419922L7.57992 1.16992L2.32992 6.41992L14.5799 6.41992V7.41992Z" fill="black"/> 4407 </svg> 4408 <span>Back</span> 4409 </button> 4410 4411 </div> 4412 <div class="btn-next-card col-12 col-lg-10 text-right"> 4413 4414 <!-- 4415 <button class="back-purchase-button back-address text-uppercase mr-lg-2 mb-2 mb-lg-0"> 4416 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif"> 4417 <path d="M14.5799 7.41992L2.32992 7.41992L7.57992 12.6699L6.91992 13.4199L0.419922 6.91992L6.91992 0.419922L7.57992 1.16992L2.32992 6.41992L14.5799 6.41992V7.41992Z" fill="black"/> 4418 </svg> 4419 <span>Back</span> 4420 </button> 4421 --> 4422 4423 4424 <button 4425 4426 id="addtocart-card" 4427 4428 class="btn next-address text-uppercase" 4429 4430 > 4431 <span>add to cart</span> 4432 </button> 4433 </div> 4434 </div> 4435 4436 </div> 4437 </div> 4438 </div> 4439 4440 </div> 4441 </div> 4442 <div id="backgroundPopup"></div> 4443 4444 4445 4446 <input 4447 data-index="1" 4448 type="hidden" 4449 id="properties-delivery-date" 4450 name="properties[Delivery Date]" 4451 value="-" 4452 > 4453 <input 4454 data-index="2" 4455 type="hidden" 4456 id="properties-delivery-time" 4457 name="properties[Delivery Time]" 4458 value="-" 4459 > 4460 <input 4461 data-index="4" 4462 type="hidden" 4463 id="properties-nama-penerima" 4464 name="properties[Nama Penerima]" 4465 value="-" 4466 > 4467 <input 4468 data-index="5" 4469 type="hidden" 4470 id="properties-alamat-penerima" 4471 name="properties[Alamat Penerima]" 4472 value="-" 4473 > 4474 <input 4475 data-index="6" 4476 type="hidden" 4477 id="properties-kodepos" 4478 name="properties[Kodepos]" 4479 value="-" 4480 > 4481 <input data-index="7" type="hidden" id="properties-telepon-penerima" name="properties[Telepon Penerima]"> 4482 4483 4484 <input 4485 data-index="8" 4486 type="hidden" 4487 id="properties-kartu-nama-penerima" 4488 name="properties[Kartu Nama Penerima]" 4489 value="-" 4490 > 4491 4492 <textarea 4493 data-index="9" 4494 type="hidden" 4495 id="properties-kartu-pesan" 4496 name="properties[Kartu Pesan]" 4497 style="display: none" 4498 >-</textarea> 4499 4500 4501 4502 <input 4503 data-index="10" 4504 type="hidden" 4505 id="properties-kartu-nama-pengirim" 4506 name="properties[Kartu Nama Pengirim]" 4507 value="-" 4508 > 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 <!-- Additional Shipping --> 4528 <input type="hidden" id="properties-kota-pengiriman-province" name="properties[Province]"> 4529 <input 4530 type="hidden" 4531 id="properties-kota-pengiriman-country" 4532 name="properties[Country]" 4533 value="Indonesia" 4534 > 4535 <input type="hidden" id="properties-shipping" name="properties[Shipping]"> 4536 4537 <input type="hidden" id="properties-time" name="properties[Time]"> 4538 <input type="hidden" id="properties-card" name="properties[Card]"> 4539 <input type="hidden" id="properties-addons" name="properties[Addons]"> 4540 4541 <input 4542 type="hidden" 4543 id="properties-company" 4544 name="properties[Company]" 4545 value="" 4546 > 4547
4547<script> 4548 4549 $(document).ready(function(){ 4550 4551 var text_max_papan1=150; 4552 var msg_text_papan1=""; 4553 $('#kartu-ucapan-ucapan').keyup(function(){ 4554 var text_length_papan1=$('#kartu-ucapan-ucapan').val().length; 4555 var msg_text_papan1=$('#kartu-ucapan-ucapan').val(); 4556 }); 4557 4558 var notes_papan1 = [ 4559 4560 [0,"Happy Wedding (nama & nama)."],[1,"Congratulations lovebirds (nama & nama)."],[2,"Selamat berbahagia (nama & nama)."],[3,"Selamat menempuh hidup baru (nama & nama)."] 4561 4562 ]; 4563 $('#show_note_papan1').click(function(event){ 4564 event.preventDefault(); 4565 var idx_papan1=parseInt($('#note_id_papan1').val()); 4566 if(isNaN(idx_papan1)){ 4567 idx_papan1=0; 4568 }else{ 4569 idx_papan1++; 4570 idx_papan1=idx_papan1%notes_papan1.length; 4571 } 4572 var note_papan1=notes_papan1[idx_papan1][1]; 4573 $('#note_id_papan1').val(idx_papan1); 4574 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan1); 4575 $('#msgDelivery').val(note_papan1); 4576 4577 var text_length_papan1=$('#kartu-ucapan-papan').val().length; 4578 var idx_2_papan1=parseInt($('#note_btn_id_papan1').val()); 4579 if(isNaN(idx_2_papan1)){ 4580 idx_2_papan1=0; 4581 }else{ 4582 idx_2_papan1++; 4583 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4584 } 4585 $('#note_btn_id_papan1').val(idx_2_papan1); 4586 //var note_btn=note_btn_text[idx_2][1]; 4587 //$('#note_btn').text(note_btn); 4588 }); 4589 4590 var text_max_papan2=150; 4591 var msg_text_papan2=""; 4592 $('#kartu-ucapan-ucapan').keyup(function(){ 4593 var text_length_papan2=$('#kartu-ucapan-ucapan').val().length; 4594 var msg_text_papan2=$('#kartu-ucapan-ucapan').val(); 4595 }); 4596 4597 var notes_papan2 = [ 4598 4599 [0,"Congratulations (ucapan)."], [1,"Selamat dan sukses atas dibukanya (ucapan personal)."],[2,"Congratulations for the grand opening of (nama toko/bisnis)."],[3,"Happy Graduation (nama)."] 4600 4601 ]; 4602 $('#show_note_papan2').click(function(event){ 4603 event.preventDefault(); 4604 var idx_papan2=parseInt($('#note_id_papan2').val()); 4605 if(isNaN(idx_papan2)){ 4606 idx_papan2=0; 4607 }else{ 4608 idx_papan2++; 4609 idx_papan2=idx_papan2%notes_papan2.length; 4610 } 4611 var note_papan2=notes_papan2[idx_papan2][1]; 4612 $('#note_id_papan2').val(idx_papan2); 4613 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan2); 4614 $('#msgDelivery').val(note_papan2); 4615 var text_length_papan2=$('#kartu-ucapan-papan').val().length; 4616 var idx_2_papan2=parseInt($('#note_btn_id_papan2').val()); 4617 if(isNaN(idx_2_papan2)){ 4618 idx_2_papan2=0; 4619 }else{ 4620 idx_2_papan2++; 4621 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4622 } 4623 $('#note_btn_id_papan2').val(idx_2_papan2); 4624 //var note_btn=note_btn_text[idx_2][1]; 4625 //$('#note_btn').text(note_btn); 4626 }); 4627 4628 var text_max_papan3=150; 4629 var msg_text_papan3=""; 4630 $('#kartu-ucapan-ucapan').keyup(function(){ 4631 var text_length_papan3=$('#kartu-ucapan-ucapan').val().length; 4632 var msg_text_papan3=$('#kartu-ucapan-ucapan').val(); 4633 }); 4634 4635 var notes_papan3 = [ 4636 4637 [0,"Turut Berduka Cita atas meninggalnya almarhum / almarhumah (Nama)."], [1,"Our Deepest Condolences for the lost of your beloved Father/ Mother/ Husband/ Wife/ Children."], [2,"Our Deepest Sympathy for the lost of your beloved Father/ Mother/ Husband/ Wife/ Children."], [3,"Innalillahi wa innailaihi rojiun, Turut berduka cita atas meninggalnya (nama)."] 4638 4639 ]; 4640 $('#show_note_papan3').click(function(event){ 4641 event.preventDefault(); 4642 var idx_papan3=parseInt($('#note_id_papan3').val()); 4643 if(isNaN(idx_papan3)){ 4644 idx_papan3=0; 4645 }else{ 4646 idx_papan3++; 4647 idx_papan3=idx_papan3%notes_papan3.length; 4648 } 4649 var note_papan3=notes_papan3[idx_papan3][1]; 4650 $('#note_id_papan3').val(idx_papan3); 4651 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan3); 4652 $('#msgDelivery').val(note_papan3);
4653 var text_length_papan3=$('#kartu-ucapan-papan').val().length; 4654 var idx_2_papan3=parseInt($('#note_btn_id_papan3').val()); 4655 if(isNaN(idx_2_papan3)){ 4656 idx_2_papan3=0; 4657 }else{ 4658 idx_2_papan3++; 4659 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4660 } 4661 $('#note_btn_id_papan3').val(idx_2_papan3); 4662 //var note_btn=note_btn_text[idx_2][1]; 4663 //$('#note_btn').text(note_btn); 4664 }); 4665 4666 var text_max_papan4=150; 4667 var msg_text_papan4=""; 4668 $('#kartu-ucapan-ucapan').keyup(function(){ 4669 var text_length_papan4=$('#kartu-ucapan-ucapan').val().length; 4670 var msg_text_papan4=$('#kartu-ucapan-ucapan').val(); 4671 }); 4672 4673 $('#show_note_papan4').click(function(event){ 4674 var notes_papan4 = [ 4675 [0,"Hereâs to youâsteadier, stronger and better every day."], 4676 [1,"Warmest wishes for a speedy recovery!"], 4677 [2,"Dengan ucapan terhangat, semoga lekas membaik dan semakin pulih setiap harinya ya."], 4678 [3,"Semoga lekas sembuh untuk kembali beraktivitas dan berkarya."] 4679 ]; 4680 event.preventDefault(); 4681 var idx_papan4=parseInt($('#note_id_papan4').val()); 4682 console.log(idx_papan4, 'idx_papan4') 4683 if(isNaN(idx_papan4)){ 4684 idx_papan4=0; 4685 }else{ 4686 idx_papan4++; 4687 idx_papan4=idx_papan4%notes_papan4.length; 4688 } 4689 var note_papan4=notes_papan4[idx_papan4][1]; 4690 $('#note_id_papan4').val(idx_papan4); 4691 $('#kartu-ucapan-papan, #properties-kartu-ucapan, #properties-kartu-pesan').val(note_papan4); 4692 console.log(note_papan4, 'note_papan4') 4693 var text_length_papan4=$('#kartu-ucapan-papan').val().length; 4694 var idx_2_papan4=parseInt($('#note_btn_id_papan4').val()); 4695 if(isNaN(idx_2_papan4)){ 4696 idx_2_papan4=0; 4697 }else{ 4698 idx_2_papan4++; 4699 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4700 } 4701 $('#note_btn_id_papan4').val(idx_2_papan4); 4702 }); 4703 4704 /* 4705 $("#jenisPapan").change(function(){ 4706 $( "select option:selected").each(function(){ 4707 if($(this).attr("value")=="Happy Wedding"){ 4708 $("#suggest-messages a").hide(); 4709 $("#show_note_papan1").show(); 4710 $("#kartu-ucapan-papan").val(""); 4711 } 4712 if($(this).attr("value")=="Congratulations"){ 4713 $("#suggest-messages a").hide(); 4714 $("#show_note_papan2").show(); 4715 $("#kartu-ucapan-papan").val(""); 4716 } 4717 if($(this).attr("value")=="Duka Cita"){ 4718 $("#suggest-messages a").hide(); 4719 $("#show_note_papan3").show(); 4720 $("#kartu-ucapan-papan").val(""); 4721 } 4722 }); 4723 }).change(); 4724 */ 4725 4726 4727 4728 4729 4730 $(".variant-metafield").each(function(){ 4731 const t = $(this) 4732 const id = t.attr("id") 4733 const target = $(`[data-select=${id}]`) 4734 t.on('select2:selecting', function(e) { 4735 const data = e.params.args.data 4736 target.val(data.text) 4737 }); 4738 }) 4739 }) 4740 </script>
4740 4741 4742 <div id="popupCart"> 4743 <div class="container"> 4744 <div class="wrapperPopupCart"> 4745 <div class="headerPopupCart"> 4746 <div class="d-flex pl-5 pr-5 p-4"> 4747 <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="16" height="12" viewBox="0 0 16 12" fill="none"> 4748 <path d="M5.55008 11.3076L0.580078 6.33761L1.29408 5.62461L5.55008 9.88061L14.7061 0.724609L15.4191 1.43861L5.55008 11.3076Z" fill="black"/> 4749 </svg> 4750 <span>item added to your cart</span> 4751 </div> 4752 <a class="close-purchase-popup"> 4753 <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="18" height="18" viewBox="0 0 18 18" fill="none"> 4754 <path d="M1.53287 17.4107L0.588867 16.4667L8.05553 9.00002L0.588867 1.53336L1.53287 0.589355L8.99953 8.05602L16.4662 0.589355L17.4102 1.53336L9.94353 9.00002L17.4102 16.4667L16.4662 17.4107L8.99953 9.94402L1.53287 17.4107Z" fill="black"/> 4755 </svg> 4756 </a> 4757 4758 </div> 4759 <div class="contentPopupCart"> 4760 <div class="pl-5 pr-5 p-4"> 4761 <div class="itemContent row m-0 justify-content-between"> 4762 <div class="col-2 align-self-center"> 4763 4764 <img 4765 class="d-block" 4766 width="80" 4767 src="//outerbloom.com/cdn/shop/files/Blossom-Shine-WM_80x.jpg?v=1695788426" 4768 > 4769 </div> 4770 <div class="col-10 align-self-center"> 4771 <div class="row pl-3"> 4772 <div class="col-12 col-lg-7"> 4773 <span class="titleCartPopup text-uppercase">LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777 GACOR INI DUATOTO 2026</span> 4774 </div> 4775 <div class="d-flex justify-content-end col-12 col-lg-5"> 4776 <span class="deleteCartPopup hide">Delete</span> 4777 <span class="lineCartPrice align-self-center">Rp 10.000</span> 4778 </div> 4779 </div> 4780 </div> 4781 </div> 4782 <div class="itemProperties"> 4783 4784 <div class="propDeliver"> 4785 <h4>delivery option detail</h4> 4786 <p> 4787 <span>delivery city</span> 4788 <span class="propDeliveryCity">jakarta</span> 4789 </p> 4790 <p> 4791 <span>delivery date</span> 4792 <span class="propDeliveryDate">24/03/2025</span> 4793 </p> 4794 <p> 4795 <span>delivery time</span> 4796 <span class="propDeliveryTime">Afternoon | 13:00 - 18:00</span> 4797 </p> 4798 </div> 4799 <div class="propAddress"> 4800 <h4>delivery option detail</h4> 4801 <p> 4802 <span>RECIPIENT NAME</span> 4803 <span class="propDeliveryName">jane doe</span> 4804 </p> 4805 <p> 4806 <span>delivery address</span> 4807 <span class="propDeliveryAddress" 4808 >Jl. Gatot Subroto No. 25, RT.2/RW.4, Kuningan Barat, Kecamatan Mampang Prapatan, Kota Jakarta 4809 Selatan, Daerah Khusus Ibukota Jakarta 12710, Indonesia</span 4810 > 4811 </p> 4812 <p> 4813 <span>recipient phone number</span> 4814 <span class="propDeliveryPhone">(+62) 812-3456-7890</span> 4815 </p> 4816 <p> 4817 <span>PROVINCE</span> 4818 <span class="propDeliveryProv">Jakarta</span> 4819 </p> 4820 <p> 4821 <span>postal code</span> 4822 <span class="propDeliveryZip">12710</span> 4823 </p> 4824 4825 4826 </div> 4827 4828 </div> 4829 <div class="itemAddonCart"> 4830 <div class="toggleAddonCart d-flex justify-content-between"> 4831 <h4>add-ons (0)</h4> 4832 <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="5" height="9" viewBox="0 0 5 9" fill="none"> 4833 <path d="M1.0128 0.84668L4.78613 4.62001L1.0128 8.39335L0.546133 7.92001L3.84613 4.62001L0.546133 1.32001L1.0128 0.84668Z" fill="black"/> 4834 </svg> 4835 </div> 4836 <div class="wrapperItemAddonCart"></div> 4837 </div> 4838 4839 </div> 4840 </div>
4841 <div class="footerPopupCart"> 4842 <div class="row m-0 pl-5 pr-5 p-4"> 4843 <a class="btn btnViewCart w-100 text-uppercase text-center" href="/cart">View Cart</a> 4844 <a class="btn btnViewCheckout w-100 text-uppercase text-center" href="/checkout"><span>Checkout</span></a> 4845 <a class="btnContinueShopping w-100 text-center" href="/">Continue shopping</a> 4846 </div> 4847 </div> 4848 </div> 4849 </div> 4850 </div> 4851 4852 4853
4853<script> 4854 const shareButton = document.getElementById('shareButton'); 4855 4856 shareButton.addEventListener('click', () => { 4857 if (navigator.share) { 4858 navigator.share({ 4859 title: "LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777 GACOR INI DUATOTO 2026", 4860 url: "/products/blossom-shine", 4861 text: 'Check out this page!' 4862 }) 4863 .then(() => console.log('Successful share')) 4864 .catch((error) => console.log('Error sharing', error)); 4865 } else { 4866 alert('Web Share API is not supported in this browser.'); 4867 } 4868 }); 4869 4870 // Inventory validation function 4871 function checkInventoryStatus() { 4872 const productSelect = document.getElementById('productSelect'); 4873 const purchaseButton = document.querySelector('#personalizeBtn button'); 4874 4875 if (!productSelect || !purchaseButton) return; 4876 4877 const selectedVariantId = productSelect.value; 4878 4879 // Get variant data from Shopify 4880 fetch(`/products/blossom-shine.js`) 4881 .then(response => response.json()) 4882 .then(product => { 4883 const selectedVariant = product.variants.find(variant => variant.id == selectedVariantId); 4884 4885 if (selectedVariant) { 4886 const isOutOfStock = selectedVariant.inventory_quantity <= 0 && 4887 selectedVariant.inventory_management === 'shopify' && 4888 selectedVariant.inventory_policy !== 'continue'; 4889 4890 if (isOutOfStock) { 4891 purchaseButton.disabled = true; 4892 purchaseButton.textContent = 'Out of Stock'; 4893 purchaseButton.setAttribute('data-out-of-stock', 'true'); 4894 purchaseButton.style.backgroundColor = '#cccccc'; 4895 purchaseButton.style.cursor = 'not-allowed'; 4896 } else { 4897 // Check if button was disabled due to other conditions 4898 4899 4900 4901 4902 4903 4904 4905 4906 const isOtherDisabled = false || true || false; 4907 4908 if (!isOtherDisabled) { 4909 purchaseButton.disabled = false; 4910 purchaseButton.textContent = 'customize your flower board'; 4911 purchaseButton.removeAttribute('data-out-of-stock'); 4912 purchaseButton.style.backgroundColor = ''; 4913 purchaseButton.style.cursor = ''; 4914 } 4915 } 4916 } 4917 }) 4918 .catch(error => { 4919 console.error('Error checking inventory:', error); 4920 }); 4921 } 4922 4923 // Check inventory on page load 4924 document.addEventListener('DOMContentLoaded', function() { 4925 checkInventoryStatus(); 4926 4927 // Listen for variant changes 4928 const productSelect = document.getElementById('productSelect'); 4929 if (productSelect) { 4930 productSelect.addEventListener('change', checkInventoryStatus); 4931 } 4932 }); 4933 4934 // Prevent form submission if out of stock 4935 document.addEventListener('click', function(e) { 4936 if (e.target.matches('button[data-out-of-stock="true"]')) { 4937 e.preventDefault(); 4938 e.stopPropagation(); 4939 alert('This product is currently out of stock and cannot be purchased.'); 4940 return false; 4941 } 4942 }); 4943 </script>
4943 4944 4945 4946 4947 </div> 4948 4949 </div> 4950 </div> 4951 </div> 4952 </div> 4953 <div id="product-bottom"> 4954 4955 <div class="container"> 4956 4957 4958 4959 4960 4961 <div class="short-desc-mobile d-block d-lg-none mb-3"> 4962 <div class="short-desc"> 4963 <ul> 4964 <li><strong>DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik.</strong></li> 4965 </div> 4966 <label class="more-mobile">Show More â</label> 4967 </div> 4968 4969 <style> 4970 .animated-title { 4971 text-align: center; 4972 font-weight: bold; 4973 color: #079c02; 4974 font-size: 28px; 4975 position: relative; 4976 animation: glow 2s infinite alternate, moveUpDown 3s infinite; 4977 } 4978 4979 /* Efek glow / bercahaya hijau */ 4980 @keyframes glow { 4981 0% { text-shadow: 0 0 5px #079c02; color: #079c02; } 4982 50% { text-shadow: 0 0 20px #00ff55; color: #12d12b; } 4983 100% { text-shadow: 0 0 10px #1bff00; color: #079c02; } 4984 } 4985 4986 /* Efek gerakan naik turun */ 4987 @keyframes moveUpDown { 4988 0% { transform: translateY(0px); } 4989 50% { transform: translateY(-5px); } 4990 100% { transform: translateY(0px); } 4991 } 4992 </style> 4993 4994
4994<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/shopify-cartjs/1.1.0/cart.min.js"></script>
4994 4995
4995<script> 4996 CartJS.init({"note":null,"attributes":{},"original_total_price":0,"total_price":0,"total_discount":0,"total_weight":0.0,"item_count":0,"items":[],"requires_shipping":false,"currency":"IDR","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0}); 4997 4998 const productType = $("[data-product-type]").data("product-type") 4999 const productDate = Date.parse(new Date()) 5000 5001 const shop = 'outerbloom1.myshopify.com' 5002 const host = 'https://app.asmaraku.com' 5003 // const host = 'http://localhost:5001' 5004 5005 const gsheet = "https://script.google.com/macros/s/AKfycbyqa6mPD6lVjU6hiHr12J8URZ2aJBGyxBsGQ0QtEIDari-rBk_9vSOITjSSmUXL1NwxEg/exec" 5006 5007 const qrID = "041025" + randomString(4, 'aAbCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ') 5008 5009 $("#properties-time").val(new Date().getTime()) 5010 5011 const isIOS = /iPhone|iPad|iPod/i.test(navigator.userAgent); 5012 5013 if(!isIOS) { 5014 $("#full-date").attr("type", "button") 5015 } 5016 5017 let dateTime = new Date(); 5018 let today = dateTime.getDate(); 5019 let day = dateTime.getDay(); 5020 let hour = dateTime.getHours(); 5021 let min = dateTime.getMinutes(); 5022 let timeOfDay = hour + (min / 100); 5023 5024 async function getFetch(url) { 5025 const response = await fetch(url); 5026 let status = false 5027 let result 5028 if(response.ok) { 5029 status = true 5030 result = await response.json(); 5031 } 5032 return { 5033 status, 5034 data: result 5035 } 5036 } 5037 5038 5039 5040 function setCookie(cname, cvalue, exMins) { 5041 var d = new Date(); 5042 d.setTime(d.getTime() + (exMins*60*1000)); 5043 var expires = "expires="+d.toUTCString(); 5044 document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; 5045 } 5046 5047 function getCookie(cname) { 5048 let name = cname + "="; 5049 let decodedCookie = decodeURIComponent(document.cookie); 5050 let ca = decodedCookie.split(';'); 5051 for(let i = 0; i <ca.length; i++) { 5052 let c = ca[i]; 5053 while (c.charAt(0) == ' ') { 5054 c = c.substring(1); 5055 } 5056 if (c.indexOf(name) == 0) { 5057 return c.substring(name.length, c.length); 5058 } 5059 } 5060 return ""; 5061 } 5062 5063 async function renderDate() { 5064 let dataDate = await getFetch(`${host}/api/shipping/date?domain=${shop}&productId=8144957800663&v=${Date.now()}`); 5065 console.log(dataDate, 'renderDate') 5066 const data = dataDate?.data 5067 const date = data.date 5068 const time = data.time 5069 5070 console.log(date, 'DATE') 5071 5072 const weekday = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]; 5073 const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; 5074 const htmlDate = [] 5075 for(let i = 0;i < date.length;i++) { 5076 const full = date[i].date 5077 const d = new Date(date[i].date); 5078 const day = weekday[d.getDay()]; 5079 const dt = d.getDate(); 5080 const mt = monthly[d.getMonth()]; 5081 const yr = d.getFullYear(); 5082 const isDate = Boolean(date[i].isEnabled) 5083 const cutoffpagi = date[i].cutoff?.pagi 5084 const cutoffsiang = date[i].cutoff?.siang 5085 const cutoffMalam = date[i].cutoff?.Malam 5086 var html = ` 5087 <button data-id="8144957800663" class="date-single calendarbutton btn steps-btn col col-3 btn-date-time" data-day="${day}" data-fulldate="${full}" data-date="${dt < 10 ? '0' + dt : dt}" data-month="${mt}" data-year="${yr}" data-offpagi="${cutoffpagi}" data-offsiang="${cutoffsiang}" data-offMalam="${cutoffMalam}" ${isDate === true ? '' : 'disabled'}> 5088 ${dt === today ? 5089 `Today<span>${dt < 10 ? '0' + dt : dt}</span>` : 5090 `${day}<span>${dt < 10 ? '0' + dt : dt}</span>` 5091 } 5092 </button> 5093 ` 5094 htmlDate.push(html) 5095 } 5096 const htmlTime = [] 5097 for(var i = 0;i < time.length;i++) { 5098 const timeText = time[i].text 5099 const timeTime = time[i].time 5100 const timeEnabled = time[i].isEnabled 5101 var html = ` 5102 <button class="time-single calendarbutton2 btn steps-btn" data-time="${timeText}" ${timeEnabled ? '' : 'disabled'}>${timeText}<br/>${timeTime}</button> 5103 ` 5104 htmlTime.push(html) 5105 } 5106 const deliveryDate = document.getElementById("deliveryDate"); 5107 if(deliveryDate) { 5108 deliveryDate.insertAdjacentHTML("afterbegin", htmlDate.join('')) 5109 $("#deliveryTime").html(htmlTime) 5110 if(productType !== '') { 5111 console.log("clarity event " + productType + ' calendaring') 5112 window.clarity("event", `${productType} calendaringSchedule`) 5113 // window.clarity("set", productType, `calendaringSchedule - ${productDate}`) 5114 } 5115 } 5116 } 5117 5118 async function getProvince(city) { 5119 let { data: { province } } = await getFetch(`${host}/api/shipping/address/province?city=${city}`); 5120 console.log(province, 'province') 5121 $("#province").val(province) 5122 } 5123 5124 async function renderAddress() { 5125 let current 5126 if(getCookie("location_delivery")){ 5127 current = getCookie("location_delivery").charAt(0).toUpperCase() + getCookie("location_delivery").slice(1) 5128 } 5129 let address = await getFetch(`${host}/api/shipping/address?domain=${shop}&productId=8144957800663`); 5130 console.log(address) 5131 const data = address?.data?.city 5132 const htmlAddress = [] 5133 const grouping = []
5134 for(let i = 0;i < data?.length;i++) { 5135 if(data[i]){ 5136 if(data[i]?.group) { 5137 grouping.push(data[i].group) 5138 } 5139 const price = rupiah.format(data[i]?.rate) 5140 let promo = '(Promo Free Delivery)' 5141 if(data[i]?.name === 'Jakarta - PickUp ASHTA'){ 5142 promo = '(at SCBD, Ashta)' 5143 } else if(data[i]?.name === 'Jakarta - PickUp ITC'){ 5144 promo = '(at Kuningan, ITC Kuningan)' 5145 } else if(data[i]?.name === 'BSD - PickUp'){ 5146 promo = '(at Goldfinch Gading Serpong)' 5147 } else if(data[i]?.name === 'Kota Lainnya'){ 5148 promo = '' 5149 } 5150 htmlAddress.push(`<option data-province="${data[i]?.province}" data-city="${data[i]?.city}" data-note="${data[i]?.note}" data-price="${data[i]?.rate}" value="${data[i]?.name}">${data[i]?.name === 'Kota Lainnya' ? 'Seluruh Kota Lain di Indonesia' : data[i]?.name} ${data[i]?.rate > 0 ? `(${price})` : promo}</option>`) 5151 } 5152 } 5153 5154 const deliveryCity = document.getElementById("cities"); 5155 if(deliveryCity) { 5156 deliveryCity.insertAdjacentHTML("beforeend", htmlAddress.join('')) 5157 if(!isIOS) { 5158 $(deliveryCity).select2(); 5159 } 5160 } 5161 } 5162 5163 async function renderZip(v, v2, v3) { 5164 const deliveryZip = document.getElementById("zip"); 5165 if(v === '') { 5166 return 5167 } 5168 let dataZip = await getFetch(`${host}/api/shipping/address/zip?city=${v}&city2=${v2}&city3=${v3}`); 5169 let zip = dataZip?.data?.zip 5170 console.log(zip) 5171 let htmlZip = [] 5172 for(let i = 0; i < zip?.length;i++) { 5173 htmlZip.push(`<option value="${zip[i]?.postalCode} - ${zip[i]?.subdistrict}">${zip[i]?.postalCode} - ${zip[i]?.subdistrict} - ${zip[i]?.city}</option>`) 5174 } 5175 deliveryZip.insertAdjacentHTML("beforeend", htmlZip.join('')) 5176 } 5177 5178 renderDate() 5179 renderAddress() 5180 5181 let rupiah = new Intl.NumberFormat('id-ID', { 5182 style: 'currency', 5183 currency: 'IDR', 5184 maximumFractionDigits: 0, 5185 minimumFractionDigits: 0 5186 }); 5187 5188 async function insertCard(data) { 5189 const response = await fetch(`${host}/api/card/new`, { 5190 method: "POST", 5191 headers: { 5192 'Content-Type': 'application/json', 5193 }, 5194 body: data 5195 }) 5196 const result = await response.json() 5197 let rowIndex = result?.data?.tableRange.split("Outerbloom!A1:J")[1] 5198 $("#greetingCard").attr("data-index", rowIndex) 5199 return result 5200 } 5201 5202 async function updateCard(data){ 5203 const rowIndex = $("#greetingCard").data("index") 5204 const response = await fetch(`${host}/api/card/update?rowIndex=${rowIndex}`, { 5205 method: "PUT", 5206 headers: { 5207 'Content-Type': 'application/json', 5208 }, 5209 body: data 5210 }) 5211 return response 5212 } 5213 5214 function bytesToSize(bytes) { 5215 var sizes = ['b', 'kb', 'mb', 'gb', 'tb', 'p']; 5216 for (var i = 0; i < sizes.length; i++) { 5217 if (bytes <= 1024) { 5218 return bytes + ' ' + sizes[i]; 5219 } else { 5220 bytes = parseFloat(bytes / 1024).toFixed(2) 5221 } 5222 } 5223 return bytes + ' P'; 5224 } 5225 5226 async function uploadMedia(uri, type) { 5227 nameq = $("#properties-nama-penerima").val() 5228 dear = $("#properties-kartu-nama-penerima").val() 5229 card = $("[data-properties=ucapan]").val() 5230 sender = $("#properties-kartu-nama-pengirim").val() 5231 photo = $("#properties-photo").val() 5232 video = $("#properties-video").val() 5233 status = "Product" 5234 5235 const name = qrID 5236 let formData = new FormData(); 5237 formData.append("file", uri); 5238 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 5239 method: "POST", 5240 body: formData 5241 }) 5242 const result = await response.json(); 5243 if(result) { 5244 const url = result.url 5245 if(type === 'image/jpeg') { 5246 $("#properties-photo").val(url) 5247 $(".preview-image").show() 5248 $(".remove-image").show() 5249 photo = url 5250 } else { 5251 $("#properties-video").val(url) 5252 $("#label-input-video span").text("Change File") 5253 $(".case-qrcode-preview p").text("Scan here for a secret message") 5254 $(".remove-media").show() 5255 $("#product-top #product-meta .case-video-preview p").html(`<span class="replace-video" tite="Replace Video">${uri.name} (${bytesToSize(uri.size)})</span><span> is uploaded</span>`) 5256 $("[for=input-video]").hide() 5257 video = url 5258 } 5259 $(".case-video-preview").show() 5260 $(".steps-card-preview").removeClass("loading") 5261 // updateCard(nameq, dear, card, sender, photo, video, status) 5262 5263 $(".nextBtn").attr("disabled", false) 5264 } 5265 } 5266 5267 function randomString(length, chars) { 5268 var result = ''; 5269 for (var i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))]; 5270 return result; 5271 } 5272 5273 function getNoteCity(fulldate) { 5274 const h_1 = new Date(new Date().setDate(new Date().getDate() + 1)) 5275 const weekday = ["Min","Sen","Sel","Rab","Kam","Jum","Sab"]; 5276 const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; 5277 const d = new Date(h_1); 5278 const day = weekday[d.getDay()]; 5279 const dt = d.getDate(); 5280 const mt = monthly[d.getMonth()]; 5281 const yr = d.getFullYear(); 5282 const p = $("#cities").parent(".form-group") 5283 } 5284 5285 function disabledSameDay() { 5286 let btnFirst = $("#deliveryDate").find("button:first-child") 5287 let getDay = new Date().getDay(); 5288 5289 5290 5291 if(getDay == 1 || getDay == 2 || getDay == 3 || getDay == 4 || getDay == 5){ 5292 if(hour >= 14.00){ 5293 btnFirst.attr("disabled", true) 5294 } 5295 } else if(getDay == 6){ 5296 if(hour >= 16.00){ 5297 btnFirst.attr("disabled", true) 5298 } 5299 } else if(getDay == 0){ 5300 if(hour >= 16.00){ 5301 btnFirst.attr("disabled", true) 5302 } 5303 } 5304 5305 5306 } 5307 5308 function disabledays(date) { 5309 let ymd = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate(); 5310 //if u have to disable a list of day 5311 let removeDays 5312 5313 5314 5315 removeDays = ["2025-2-13", "2025-2-14"]; 5316 5317 if ($.inArray(ymd, removeDays) >= 0) { 5318 return [false]; 5319 } else { 5320 let day = date.getDay(); 5321 if(day == 0 && date.getDate() == 13 && date.getMonth() == 1){ 5322 return [(day == 0), '']; 5323 } 5324 5325 if(day == 0){ 5326 return [(day == 0), '']; 5327 } 5328 5329 5330 return [(day != 0), '']; 5331 } 5332 } 5333 5334 /* Indonesian initialisation for the jQuery UI date picker plugin. */ 5335 /* Written by Deden Fathurahman ([email protected]). */ 5336 ( function( factory ) { 5337 if ( typeof define === "function" && define.amd ) { 5338 5339 // AMD. Register as an anonymous module. 5340 define( [ "../widgets/datepicker" ], factory ); 5341 } else { 5342 5343 // Browser globals 5344 factory( jQuery.datepicker ); 5345 } 5346 }( function( datepicker ) { 5347 5348 datepicker.regional.id = { 5349 closeText: "Tutup", 5350 prevText: "<mundur", 5351 nextText: "maju>", 5352 currentText: "Today", 5353 monthNames: [ "January","February","March","April","May","Juny", 5354 "July","August","September","October","November","December" ], 5355 monthNamesShort: [ "Jan","Feb","Mar","Apr","May","Jun", 5356 "Jul","Agu","Sep","Oct","Nov","Dec" ], 5357 dayNames: [ "Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu" ], 5358 dayNamesShort: [ "Sun","Mon","Tue","Wed","Thu","Fri","Sat" ], 5359 dayNamesMin: [ "Mg","Sn","Sl","Rb","Km","jm","Sb" ], 5360 weekHeader: "Mg", 5361 dateFormat: "D, dd M", 5362 firstDay: 0, 5363 isRTL: false, 5364 showMonthAfterYear: false, 5365 yearSuffix: "" }; 5366 datepicker.setDefaults( datepicker.regional.id ); 5367 5368 return datepicker.regional.id; 5369 5370 } ) ); 5371 5372 function loadPopup() { 5373 $("#backgroundPopup").fadeIn("slow"); 5374 $(".purchasePopup:not(.purchasePopupSpotify)").fadeIn("slow"); 5375 const firstSection = $(".purchasePopup:not(.purchasePopupSpotify) .sectionPurchase").first() 5376 if(firstSection.hasClass("purchasePersonalize")) { 5377 if(productType !== '') { 5378 console.log("clarity event " + productType + ' personalize') 5379 window.clarity("event", `${productType} cardPersonalization`) 5380 // window.clarity("set", productType, `cardPersonalization - ${productDate}`) 5381 } 5382 } else if (firstSection.hasClass("sectionPurchaseBoard")) { 5383 console.log("clarity event " + productType + ' personalizeBoard') 5384 window.clarity("event", `${productType} personalizeBoard`) 5385 // window.clarity("set", productType, `personalizeBoard - ${productDate}`) 5386 } 5387 firstSection.removeClass("hide") 5388 5389 // Auto-trigger addon loading when addon section becomes visible 5390 setTimeout(function() { 5391 const addonSection = $(".purchaseAddon") 5392 if(addonSection.length > 0 && !addonSection.hasClass("hide")) { 5393 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 5394 $("[data-addon=upsell-all]").trigger("click") 5395 } 5396 } 5397 }, 200) 5398 } 5399 5400 function disablePopup() { 5401 $("#backgroundPopup").fadeOut("slow"); 5402 $(".purchasePopup").fadeOut("slow"); 5403 $("#popupCart").fadeOut("slow"); 5404 } 5405
5406 function scrollTo(parent, div, dur) { 5407 $(parent).animate({ 5408 scrollTop: $(div).offset().top 5409 }, dur); 5410 } 5411 5412 function loadPopupPersonalize() { 5413 const div = "#purchaseProduct" 5414 const p = "html, body, .product-meta" 5415 $("p.error").remove() 5416 loadItemOccasion($("[data-occassion]").eq(0), "greeting-card-all") 5417 const isCity = $("#cities[required]") 5418 const isDate = $("#propDeliveryDate[required]") 5419 const isTime = $("#propDeliveryTime[required]") 5420 // loadPopup() 5421 if(isCity.val() !== '' && isDate.val() !== '' && isTime.val() !== '') { 5422 loadPopup() 5423 } 5424 if(isCity.val() == '') { 5425 isCity.parent(".row").append("<p class='error'>Choose delivery city</p>") 5426 scrollTo(p, div, 500) 5427 } 5428 if(isDate.val() == '') { 5429 isDate.parents(".row").append("<p class='error'>Choose delivery date</p>") 5430 scrollTo(p, div, 500) 5431 } 5432 if(isTime.val() == '') { 5433 isTime.parents(".row").append("<p class='error'>Choose delivery time</p>") 5434 scrollTo(p, div, 500) 5435 } 5436 } 5437 5438 function quantityCounter() { 5439 $(document).on("click", ".item-card.selected .q_up", function () { 5440 var C = $(this).attr("data-id"), 5441 S = 5442 parseInt( 5443 $(this) 5444 .siblings(".quantity-cart-" + C) 5445 .val() 5446 ) + 1; 5447 $(this).attr("data-quantity", S), 5448 $(this) 5449 .siblings(".quantity-cart-" + C) 5450 .val(S); 5451 }), 5452 $(document).on("click", ".item-card.selected .q_down", function () { 5453 var C = $(this).attr("data-id"), 5454 S = parseInt( 5455 $(this) 5456 .siblings(".quantity-cart-" + C) 5457 .val() 5458 ); 5459 0 < S && $(this).attr("data-quantity", S - 1), 5460 0 < S && 5461 $(this) 5462 .siblings(".quantity-cart-" + C) 5463 .val(S - 1); 5464 }); 5465 } 5466 5467 quantityCounter() 5468 5469 const itemAddon = $(".item-card").length 5470 const nofree = $(".nofree").length 5471 5472 const upsell = '' 5473 5474 if(nofree === itemAddon) { 5475 // $("#itemAddons").html("<p>No Items available</p>") 5476 } 5477 5478 $("#itemAddons .item-card").each(function(e){ 5479 $("#itemAddons").attr("data-length", e) 5480 }) 5481 5482 $("[data-addon]").click(function(){ 5483 5484 5485 5486 const t = $(this) 5487 5488 const data = t.data("addon") 5489 5490 $("[data-addon]").removeClass("selected") 5491 t.addClass("selected") 5492 $.get(`https://outerbloom.com/collections/${data}/products.json`, function(data, status){ 5493 const products = data.products 5494 const html = [] 5495 for(let i = 0; i < products.length; i++) { 5496 const id = products[i].id 5497 const variantId = products[i].variants[0].id 5498 const img = products[i].images[0].src 5499 let img2 = img.split('.jpg')[0] 5500 const title = products[i].title 5501 const price = products[i].variants[0].price 5502 const tags = products[i].tags 5503 const qty = products[i].variants[0].available 5504 let type_upsell = '' 5505 if(tags.includes('upsell-item-standing')) { 5506 type_upsell = 'standing' 5507 } 5508 console.log(type_upsell) 5509 if(type_upsell !== '') { 5510 const body = `<div class="item-card${price < 1 ? ' free' : ' nofree'} type-${products[i].product_type.toLowerCase()?.replace(' ', '_')}" data-variant="${variantId}" data-id=${id} data-qty="${qty === false ? 0 : ''}" data-upsell="${type_upsell}" data-tags="${tags}"> 5511 5512 <div class="card-image"> 5513 <img src="${img2}_150x.jpg" alt="${title}" width="" height="" /> 5514 </div> 5515 <div class="card-meta"> 5516 <h5>${title}</h5> 5517 <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p> 5518 <input id="card-${variantId}" type="hidden" name="" value="${variantId}"> 5519 </div> 5520 <div class="card-qty"> 5521 <a data-quantity="1" type="submit" id="q_down-${variantId}" class="btn-qty-min q_down drawer-cart" data-id="${variantId}"><svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="12" height="2" viewBox="0 0 12 2" fill="none"><path d="M0 1.90869V0.908691H12V1.90869H0Z" fill="black"/></svg></a> 5522 <input maxlength="3" min="0" class="btn-qty text-center quantity-cart-${variantId}
5522" value="0" data-price=${price} name="quantity"> 5523 <a data-quantity="1" type="submit" class="btn-qty-plus q_up text-green drawer-cart" data-id="${variantId}"><svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="12" height="13" viewBox="0 0 12 13" fill="none"> 5524 <path d="M0 6.87023V5.94715H5.53846V0.408691H6.46154V5.94715H12V6.87023H6.46154V12.4087H5.53846V6.87023H0Z" fill="black"/> 5525 </svg></a> 5526 </div> 5527 </div>` 5528 html.push(body) 5529 } 5530 } 5531 $("#itemAddons .row").html(html.length === 0 ? '<p>No Item available</p>' : html) 5532 $("#itemAddons").attr("data-length", products.length) 5533 // $('#itemAddons')[0].swiper.update(); 5534 }); 5535 }) 5536 5537 async function isAddon(){ 5538 let ids = [] 5539 $("#itemAddons .item-card.selected").each(function(i, e){ 5540 const id = $(this).data("id") 5541 ids.push(id) 5542 }) 5543 console.log(ids) 5544 return ids 5545 } 5546 5547 $("#itemAddons").delegate(".item-card > div:not(.card-qty)", "click", async function(){ 5548 const t = $(this).parent() 5549 const id = t.data("id") 5550 const btn = t.parents(".purchaseAddon").find(".next-purchase-button") 5551 t.toggleClass("selected"); 5552 //$(this).next("input").toggleAttr('name', 'id[]'); 5553 if (t.hasClass('selected')) { 5554 t.find("input").val(1) 5555 t.find("input").attr('name', 'id[]'); 5556 } else { 5557 t.find("input").val(0) 5558 t.find("input").removeAttr('name'); 5559 } 5560 $("#properties-addons").val(addons) 5561 const is = await isAddon() 5562 if(is.length === 0) { 5563 btn.text("continue without add-ons") 5564 return 5565 } 5566 if(is.includes(8835692069079)) { 5567 btn.text("personalize acrylic frame") 5568 } else { 5569 btn.text("Continue") 5570 } 5571 5572 }) 5573 5574 async function myAddon(data) { 5575 const c = $(".addonsPurchase .addons") 5576 let items = [] 5577 5578 const spotifyAddons = $(".spotifyAddons").find("[data-index]") 5579 // if(spotifyAddons.length > 0) { 5580 // $(spotifyAddons).each(function(i, e){ 5581 // const spotifyLink = $(this).find(".spotifyLink").val() 5582 // const spotifySong = $(this).find(".spotifySong").val() 5583 // const spotifyArtist = $(this).find(".spotifyArtist").val() 5584 // const spotifyFotoAddon = $(this).find(".resultPhotoSpotify").val() 5585 // if(spotifyLink !== '') { 5586 // spotifyAddon = `<div class="addon-item" data-id="46067682607319" data-qty="1"> 5587 // <div class="addon-itm-img"> 5588 // <img src="https://cdn.shopify.com/s/files/1/1589/6833/files/Acrylic-Frame_8c71027d-43b7-4322-a98f-d34ab0456397_100x.jpg?v=1739160467" alt="" width="70"/> 5589 // </div> 5590 // <div class="addon-itm-title"> 5591 // <span>[US] Outerbloom Acrylic Frame 4R</span> 5592 // </div> 5593 // <div class="addon-itm-line-total"> 5594 // <span>Rp 99.000</span> 5595 // </div> 5596 // </div> 5597 // <div class="propsAddonSpotify row m-0"> 5598 // <div class="col-12 col-lg-2"></div> 5599 // <div class="col-12 col-lg-10"> 5600 // <p> 5601 // <span>spotify link</span> 5602 // <span class="spotifyLinkAddon">${spotifyLink}</span> 5603 // </p> 5604 // <p> 5605 // <span>uploaded photo</span> 5606 // <span class="spotifyFotoAddon">${spotifyFotoAddon}</span> 5607 // </p> 5608 // <p> 5609 // <span>song / playlist name</span> 5610 // <span class="spotifySongAddon">${spotifySong}</span> 5611 // </p> 5612 // <p> 5613 // <span>artist name</span> 5614 // <span class="spotifyArtistAddon">${spotifyArtist}</span> 5615 // </p> 5616 // </div> 5617 // </div>` 5618 // items.push(spotifyAddon) 5619 // } 5620 // }) 5621 // } 5622 for(let i = 0; i < data.length; i++) { 5623 if(data[i].title !== '[US] Outerbloom Acrylic Frame 4R' ) { 5624 const img = data[i].image 5625 const title = data[i].title
5626 const qty = data[i].qty 5627 const price = data[i].price 5628 const total = Number(qty) * Number(price) 5629 let addons = `<div class="addon-item" data-id="${data[i].id}" data-qty="${qty}"> 5630 <div class="addon-itm-img"> 5631 <img src="${img}" alt="" width="70"/> 5632 </div> 5633 <div class="addon-itm-title"> 5634 <span>${title}</span> 5635 </div> 5636 <div class="addon-itm-line-price"> 5637 <span>${rupiah.format(price)}</span> 5638 ${data[i].title == '[US] Outerbloom Acrylic Frame 4R' ? '' : `<span>x${qty}</span>`} 5639 </div> 5640 <div class="addon-itm-line-total"> 5641 <span>${rupiah.format(total)}</span> 5642 </div> 5643 </div>` 5644 items.push(addons) 5645 } 5646 } 5647 c.html(items) 5648 const parent = $(".purchaseAddon") 5649 const next = parent.next(".sectionPurchase") 5650 parent.addClass("hide") 5651 next.removeClass("hide") 5652 // if(items2.length === 0) return $("#popupCart").addClass("no-addon-cart") 5653 // $(".itemAddonCart").find("h4").text(`add-ons (${items2.length})`) 5654 } 5655 5656 async function listAddon() { 5657 const data = $("#itemAddons").find(".selected") 5658 let ids = [] 5659 $(data).each(function(){ 5660 const id = $(this).data("variant") 5661 const image = $(this).find(".card-image img").attr("src") 5662 const title = $(this).find(".card-meta h5").text() 5663 const qty = $(this).find(".card-qty input").val() 5664 const price = $(this).find(".card-qty input").data("price") 5665 ids.push({ 5666 id: Number(id), 5667 image, 5668 title, 5669 qty, 5670 price 5671 }) 5672 }) 5673 myAddon(ids) 5674 } 5675 5676 async function customSpotify(idx, length, type){ 5677 let isCard = false 5678 5679 let p = $(".purchasePopupSpotify") 5680 const preLink = $(".spotifyLinkFirst").val() 5681 $("[data-index]").hide() 5682 p.find(".headerPurchase h3").text(`personalize spotify photo print${length > 1 ? ` - ${idx}` : ''}`) 5683 p.find(".regulerAddons, .purchase-button").hide() 5684 p.find(".spotifyAddons").show() 5685 5686 const data = await trackUrl(preLink) 5687 5688 const html = `<div class="row" data-index=${idx} data-length=${length}><div class="col-12 col-lg-6"><div class="form-vertical position-relative"><div class="form-group mb-4"><h4>upload photo</h4><div class=uploadResult><label class=btn for=uploadPhotoSpotify><svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="13" height="11" viewB
5688ox="0 0 13 11" fill="none"> 5689 <path d="M0.875 10.6378H12.375C12.4413 10.6378 12.5049 10.6115 12.5518 10.5646C12.5987 10.5177 12.625 10.4541 12.625 10.3878V0.387817C12.625 0.321513 12.5987 0.257925 12.5518 0.211041C12.5049 0.164157 12.4413 0.137817 12.375 0.137817H0.875C0.808696 0.137817 0.745107 0.164157 0.698223 0.211041C0.651339 0.257925 0.625 0.321513 0.625 0.387817V10.3878C0.625 10.4541 0.651339 10.5177 0.698223 10.5646C0.745107 10.6115 0.808696 10.6378 0.875 10.6378ZM1.125 10.1378V7.31882C1.136 7.31082 1.1485 7.30632 1.1585 7.29632L3.7165 4.73832C3.78198 4.67584 3.869 4.64098 3.9595 4.64098C4.05 4.64098 4.13702 4.67584 4.2025 4.73832L7.963 8.49882C8.00919 8.54501 8.07162 8.5713 8.13694 8.57204C8.20225 8.57279 8.26527 8.54794 8.3125 8.50282L10.2455 6.66682C10.3084 6.60323 10.3938 6.56684 10.4832 6.56543C10.5727 6.56403 10.6591 6.59774 10.724 6.65932L12.125 8.18532L12.1255 8.18582V10.1378H1.125ZM12.125 0.637817V7.44682L11.0845 6.31382C11.0066 6.23514 10.9138 6.17275 10.8116 6.13026C10.7094 6.08777 10.5997 6.06603 10.489 6.06632H10.4885C10.3786 6.06584 10.2697 6.08706 10.168 6.12876C10.0664 6.17046 9.97391 6.23182 9.896 6.30932L8.144 7.97332L4.556 4.38482C4.2365 4.06582 3.6815 4.06632 3.363 4.38482L1.125 6.62332V0.637817H12.125Z" fill="black"/> 5690 </svg><span>Upload your file</span></label></div><input class="uploadPhotoSpotify form-control d-none" accept=image/* type=file><input class="resultPhotoSpotify" type="hidden"></div><div class="form-group mb-5"><h4>Add your Spotify link here</h4> <input class="spotifyLink2 form-control spotifyLink" value="${preLink}" placeholder=https://open.spotify.com/ ></div><div class="form-group mb-4 text-left"><label class=checkbox for=isCustomMessage><span>Personalized Message</span><span class=checkmark></span></label></div><div class="form-group mb-4 form-personalize"><label class="text-left d-block mb-2 text-uppercase"for=spotifySong>Song / playlist name</label> ${data?.song ? `<input class="form-control spotifySong" value="${data?.song}">` : '<input class="form-control spotifySong" value="">'}</div><div class="form-group form-personalize"><label class="text-left d-block mb-2 text-uppercase"for=spotifyArtist>Artist name</label> ${data?.artist ? `<input class="form-control spotifyArtist" value="${data?.artist}">` : '<input class="form-control spotifyArtist" value="">'}</div><div class=btn-action><button class="back-spotify"><svg fill=none height=14 viewBox="0 0 15 14"width=15 xmlns=https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif><path d="M14.5799 7.41992L2.32992 7.41992L7.57992 12.6699L6.91992 13.4199L0.419922 6.91992L6.91992 0.419922L7.57992 1.16992L2.32992 6.41992L14.5799 6.41992V7.41992Z"fill=black /></svg> <span>Back</span></button><button data-type="${isCard ? 'card' : ''}" ${isCard ? '' : 'id=addtocart-card'} class="text-uppercase btn w-100${type == 'addon' && idx == length ? ' finished' : ' no-addon'}" disabled>${isCard ? 'Continue Personalizing' : 'add to cart'}</button></div></div></div><div class="col-12 col-lg-6 columnRight"><div class=frame-spotify><div class=frameImage><div class=frameImageUploaded><svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="13" height="11" viewB
5690ox="0 0 13 11" fill="none"> 5691 <path d="M0.875 10.6378H12.375C12.4413 10.6378 12.5049 10.6115 12.5518 10.5646C12.5987 10.5177 12.625 10.4541 12.625 10.3878V0.387817C12.625 0.321513 12.5987 0.257925 12.5518 0.211041C12.5049 0.164157 12.4413 0.137817 12.375 0.137817H0.875C0.808696 0.137817 0.745107 0.164157 0.698223 0.211041C0.651339 0.257925 0.625 0.321513 0.625 0.387817V10.3878C0.625 10.4541 0.651339 10.5177 0.698223 10.5646C0.745107 10.6115 0.808696 10.6378 0.875 10.6378ZM1.125 10.1378V7.31882C1.136 7.31082 1.1485 7.30632 1.1585 7.29632L3.7165 4.73832C3.78198 4.67584 3.869 4.64098 3.9595 4.64098C4.05 4.64098 4.13702 4.67584 4.2025 4.73832L7.963 8.49882C8.00919 8.54501 8.07162 8.5713 8.13694 8.57204C8.20225 8.57279 8.26527 8.54794 8.3125 8.50282L10.2455 6.66682C10.3084 6.60323 10.3938 6.56684 10.4832 6.56543C10.5727 6.56403 10.6591 6.59774 10.724 6.65932L12.125 8.18532L12.1255 8.18582V10.1378H1.125ZM12.125 0.637817V7.44682L11.0845 6.31382C11.0066 6.23514 10.9138 6.17275 10.8116 6.13026C10.7094 6.08777 10.5997 6.06603 10.489 6.06632H10.4885C10.3786 6.06584 10.2697 6.08706 10.168 6.12876C10.0664 6.17046 9.97391 6.23182 9.896 6.30932L8.144 7.97332L4.556 4.38482C4.2365 4.06582 3.6815 4.06632 3.363 4.38482L1.125 6.62332V0.637817H12.125Z" fill="black"/> 5692 </svg> <img src="" class=previewImage style=display:none></div></div><div class=frameControl><div class=spotifyData>${data?.song ? `<h3>${data?.song}</h3>` : '<h3><h3>'}${data?.artist ? `<p>${data?.artist}</p>` : '<p></p>'}</div><img src="//outerbloom.com/cdn/shop/t/138/assets/frame-spotify.png?v=138221849636560654691752652420"alt="spotify outerbloom" height=""width=100%><div class=spotifyCode><img src="https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:${data?.type.slice(0, -1)}:${data?.trackId}"alt=""></div></div></div></div></div>` 5693 // console.log(html) 5694 5695 $(".spotifyAddons").append(html) 5696 5697 $(`[data-index=${idx}]`).show() 5698 5699 if (preLink !== '') { 5700 $(".btn-action .btn").attr("disabled", false) 5701 } else { 5702 $(".btn-action .btn").attr("disabled", true) 5703 } 5704 5705 return html 5706 5707 } 5708 5709 $(".spotifyLinkFirst").keyup(async function(){ 5710 const v = $(this).val() 5711 if(v.includes('spotify:user:spotify')) { 5712 const correct = v.split('user:spotify:')[1] 5713 console.log(correct, 'BNER') 5714 $(this).val(correct) 5715 return 5716 } 5717 if(v.includes("spotify:") || v.includes("https://open.spotify.com/")){ 5718 const data = await trackUrl(v) 5719 if(!data || !data.status) { 5720 $(this).parent().addClass("error") 5721 // $(this).parent().append(`<p class="txt-error">Make sure you copy the complete and correct link from Spotify. Ex: https://open.spotify.com/track/0C3xZJueyBvvMSsl0cETA6</p>`) 5722 $("#personalizeBtnSpotify .btn").attr("disabled", true) 5723 return 5724 } 5725 $(this).parent().removeClass("error") 5726 // $(this).parent().remove("txt-error") 5727 $("#personalizeBtnSpotify .btn").attr("disabled", false) 5728 } else { 5729 $("#personalizeBtnSpotify .btn").attr("disabled", true) 5730 } 5731 }) 5732 5733 $(".purchaseAddon").delegate(".next-addon", "click", function(){ 5734 const parent = $(this).parents(".purchaseAddon") 5735 const next = parent.next(".sectionPurchase") 5736 if(next.hasClass("purchaseAddress")) { 5737 if(productType !== '') { 5738 console.log("clarity event " + productType + ' purchaseDelivery') 5739 window.clarity("event", `${productType} purchaseDelivery`) 5740 // window.clarity("set", productType, `purchaseDelivery - ${productDate}`) 5741 } 5742 } 5743 const data = $("#itemAddons").find(".selected") 5744 const length = $(".quantity-cart-46067682607319").val() 5745 const checked = data.length; 5746 if(checked > 0) { 5747 if(length > 0) { 5748 $(".purchaseAddon").addClass("purchaseAddonSpotify") 5749 customSpotify(1, length, 'addon') 5750 } else { 5751 listAddon() 5752 } 5753 } else { 5754 parent.addClass("hide") 5755 next.removeClass("hide") 5756 } 5757 }) 5758 5759 $("#personalizeBtnSpotify .btn").click(async function(){ 5760 const isCity = $("#cities[required]") 5761 const isDate = $("#propDeliveryDate[required]") 5762 if((isDate.length > 0 && isCity.length > 0) && (isCity.val() === '' || isDate.val() === '')) { 5763 alert('Please choose Delivery City & Delivery Date') 5764 return 5765 } 5766 const data = await customSpotify(1, 1, 'product') 5767 if(data) { 5768 $("#backgroundPopup").fadeIn("slow"); 5769 $(".purchasePopupSpotify").fadeIn("slow"); 5770 5771 if(productType !== '') { 5772 console.log("clarity event " + productType + ' spotify') 5773 window.clarity("event", `${productType} spotify`) 5774 // window.clarity("set", productType, `purchaseDelivery - ${productDate}`) 5775 } 5776 } 5777 }) 5778 5779 function formatBytes(bytes, decimals = 2) { 5780 if (!+bytes) return '0 Bytes' 5781
5782 const k = 1024 5783 const dm = decimals < 0 ? 0 : decimals 5784 const sizes = ['B', 'KB', 'MB'] 5785 5786 const i = Math.floor(Math.log(bytes) / Math.log(k)) 5787 5788 return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}` 5789 } 5790 5791 async function trackUrl(link){ 5792 try { 5793 let trackId = link.split('/').pop().split('?')[0]; 5794 let type = '' 5795 if(link.includes("spotify:")) { 5796 const uri = link.split('spotify:')[1] 5797 trackId = uri.split(':')[1] 5798 type = uri.split(':')[0] + 's' 5799 } else { 5800 if(link.match('track')){ 5801 type = 'tracks' 5802 } else if(link.match('playlist')) { 5803 type = 'playlists' 5804 } else if(link.match('artist')) { 5805 type = 'artists' 5806 } else if(link.match('album')) { 5807 type = 'albums' 5808 } 5809 } 5810 console.log(`${host}/api/spotify/${type}/${trackId}`) 5811 const data = await getFetch(`${host}/api/spotify/${type}/${trackId}`) 5812 console.log(data, 'DATA') 5813 const song = data?.data?.name 5814 const artist = data?.data?.artist 5815 return { 5816 song, artist, type, trackId, status: data.status 5817 } 5818 } catch(err) { 5819 console.log(err) 5820 } 5821 } 5822 5823 $(".spotifyAddons").delegate(".uploadPhotoSpotify", "change", async function(){ 5824 const parent = $(this).parents("[data-index]") 5825 const preview = parent.find(".previewImage") 5826 const file = $(this)[0].files[0]; 5827 if (file) { 5828 const reader = new FileReader(); 5829 reader.onload = async function(e) { 5830 parent.find(".uploadResult label").hide() 5831 parent.find(".uploadedResult").remove() 5832 parent.find(".uploadResult").append(`<div class="uploadedResult d-flex" style="justify-content: space-between"> 5833 <p style="text-align: left;margin: 0;"><span style="color: #34C759;font-style: italic;font-size: 14px;text-overflow: ellipsis;overflow: hidden;max-width: 250px;white-space: nowrap;display: inline-block;vertical-align: middle;">${file.name}</span><span style="font-size: 14px;color: #34C759"> (${formatBytes(file.size)})</span> <span style="font-size: 14px">is uploaded</span></p> 5834 <div style="align-self: center"><span class="changeUpload" style="font-size: 12px;cursor: pointer">Change</span><span class="removeUpload" style="cursor: pointer;border-left: 1px solid;padding-left: 10px;margin-left: 10px;height: 10px;display: inline-flex;vertical-align: middle;">
5834<svg fill="none" height="11" viewBox="0 0 10 11" width="10" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif"> 5835 <path d="M2.07799 10.8332C1.78154 10.8332 1.52799 10.7276 1.31732 10.5165C1.10666 10.3054 1.0011 10.0523 1.00066 9.75716V1.49982H0.667322C0.572656 1.49982 0.493545 1.46782 0.429989 1.40382C0.366433 1.33982 0.334433 1.26049 0.333989 1.16582C0.333544 1.07116 0.365545 0.992047 0.429989 0.928491C0.494433 0.864935 0.573545 0.833158 0.667322 0.833158H3.00066C3.00066 0.69538 3.05177 0.57538 3.15399 0.473158C3.25621 0.370935 3.37621 0.319824 3.51399 0.319824H6.48732C6.6251 0.319824 6.7451 0.370935 6.84732 0.473158C6.94954 0.57538 7.00066 0.69538 7.00066 0.833158H9.33399C9.42866 0.833158 9.50777 0.865158 9.57132 0.929158C9.63488 0.993158 9.66688 1.07249 9.66732 1.16716C9.66777 1.26182 9.63577 1.34094 9.57132 1.40449C9.50688 1.46805 9.42777 1.49982 9.33399 1.49982H9.00066V9.75649C9.00066 10.0525 8.8951 10.3058 8.68399 10.5165C8.47288 10.7272 8.21954 10.8327 7.92399 10.8332H2.07799ZM8.33399 1.49982H1.66732V9.75649C1.66732 9.87605 1.70577 9.97427 1.78266 10.0512C1.85954 10.128 1.95799 10.1665 2.07799 10.1665H7.92399C8.04354 10.1665 8.14177 10.128 8.21866 10.0512C8.29554 9.97427 8.33399 9.87605 8.33399 9.75649V1.49982ZM3.87266 8.83316C3.96732 8.83316 4.04666 8.80116 4.11066 8.73716C4.17466 8.67316 4.20643 8.59405 4.20599 8.49982V3.16649C4.20599 3.07182 4.17399 2.99271 4.10999 2.92916C4.04599 2.8656 3.96666 2.8336 3.87199 2.83316C3.77732 2.83271 3.69821 2.86471 3.63466 2.92916C3.5711 2.9936 3.53932 3.07271 3.53932 3.16649V8.49982C3.53932 8.59449 3.57132 8.6736 3.63532 8.73716C3.69932 8.80116 3.77843 8.83316 3.87266 8.83316ZM6.12932 8.83316C6.22399 8.83316 6.3031 8.80116 6.36666 8.73716C6.43021 8.67316 6.46199 8.59405 6.46199 8.49982V3.16649C6.46199 3.07182 6.42999 2.99271 6.36599 2.92916C6.30199 2.86516 6.22288 2.83316 6.12866 2.83316C6.03399 2.83316 5.95466 2.86516 5.89066 2.92916C5.82666 2.99316 5.79488 3.07227 5.79532 3.16649V8.49982C5.79532 8.59449 5.82732 8.6736 5.89132 8.73716C5.95532 8.80071 6.03466 8.83271 6.12932 8.83316Z"fill=#757575 /> 5836 </svg> 5837 </span></div></div>`) 5838 parent.find(".frameImageUploaded svg").hide() 5839 parent.find(".frameImage").addClass("uploaded") 5840 preview.attr("src", e.target.result); 5841 preview.show(); 5842 let formData = new FormData(); 5843 formData.append("file", file); 5844 const response = await fetch(`${host}/api/upload?name=${file.name}&type=image/jpeg&r=${Date.parse(new Date)}`, { 5845 method: "POST", 5846 body: formData 5847 }) 5848 const result = await response.json(); 5849 if(result){ 5850 parent.find(".resultPhotoSpotify").val(result.url) 5851 } 5852 } 5853 5854 reader.readAsDataURL(file); 5855 } else { 5856 preview.hide(); 5857 } 5858 }); 5859 5860 $(".spotifyAddons").delegate(".uploadResult", "click", function(){ 5861 $(this).next("input[type=file]").trigger("click") 5862 }) 5863 5864 $(".spotifyAddons").delegate(".changeUpload", "click", function(){ 5865 $(this).parents("input[type=file]").trigger("click") 5866 }) 5867 5868 $(".spotifyAddons").delegate(".removeUpload", "click", function(){ 5869 const parent = $(this).parents("[data-index]") 5870 parent.find(".uploadPhotoSpotify").val("") 5871 parent.find(".uploadResult label").show() 5872 parent.find(".uploadedResult").remove() 5873 parent.find(".frameImageUploaded svg").show() 5874 parent.find(".previewImage").hide() 5875 parent.find(".frameImage").removeClass("uploaded") 5876 }) 5877 5878 $(".spotifyAddons").delegate("label.checkbox", "click", function(){ 5879 const parent = $(this).parents("[data-index]") 5880 parent.toggleClass("checked") 5881 }) 5882 5883 $(".spotifyAddons").delegate(".spotifyLink", "change", async function(){ 5884 const parent = $(this).parents("[data-index]") 5885 const link = $(this).val() 5886 const data = await trackUrl(link) 5887 5888 console.log(data) 5889 5890 if(data.song) { 5891 parent.find(".spotifySong").val(data.song) 5892 parent.find(".spotifyData").find("h3").text(data.song) 5893 } 5894 if(data.artist) { 5895 parent.find(".spotifyArtist").val(data.artist) 5896 parent.find(".spotifyData").find("p").text(data.artist) 5897 } 5898 parent.find(".spotifyCode img").attr("src", `https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:${data.type.slice(0, -1)}:${data.trackId}`) 5899 // https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:track:1er51HCEBhIAtoEemKuC3M 5900 if (data.status === true) { 5901 parent.find(".btn-action .btn").attr("disabled", false) 5902 } else { 5903 parent.find(".btn-action .btn").attr("disabled", true) 5904 } 5905 }) 5906
5907 $(".spotifyAddons").delegate(".spotifySong", "keyup", async function(){ 5908 const parent = $(this).parents("[data-index]") 5909 const v = $(this).val() 5910 parent.find(".spotifyData h3").text(v) 5911 }) 5912 5913 $(".spotifyAddons").delegate(".spotifyArtist", "keyup", async function(){ 5914 const parent = $(this).parents("[data-index]") 5915 const v = $(this).val() 5916 parent.find(".spotifyData p").text(v) 5917 }) 5918 5919 $(".spotifyAddons").delegate(".btn-action .btn:not(.no-addon)", "click", async function(){ 5920 const parent = $(this).parents("[data-index]") 5921 const length = parent.data("length") 5922 const index = parent.data("index") 5923 const indexNext = Number(index) + 1 5924 customSpotify(indexNext, length, 'addon') 5925 }) 5926 5927 5928 $(".spotifyAddons").delegate(".btn-action .btn.finished", "click", async function(){ 5929 const parent = $(this).parents(".purchaseAddon") 5930 const next = parent.next(".sectionPurchase") 5931 parent.addClass("hide") 5932 next.removeClass("hide") 5933 next.find(".purchase-button").show() 5934 listAddon() 5935 }) 5936 5937 $(".spotifyAddons").delegate(".back-spotify", "click", async function(){ 5938 const t = $(this).parents("[data-index]") 5939 const parent = $(this).parents(".sectionPurchase") 5940 const current = t.data("index") 5941 const prevCurrent = Number(current) - 1 5942 if(current == 1) { 5943 parent.removeClass("purchaseAddonSpotify") 5944 parent.find(".purchase-button").show() 5945 parent.find(".headerPurchase h3").text("Make It More Special with Add-Ons!") 5946 $(".spotifyAddons").empty() 5947 $(".regulerAddons").show() 5948 return 5949 } 5950 t.hide() 5951 t.prev("[data-index]").show() 5952 t.remove() 5953 parent.find(".headerPurchase h3").text(`personalize spotify photo print - ${prevCurrent}`) 5954 }) 5955 5956 $("#personalizeBtn .btn").click(async function() { 5957 loadPopupPersonalize() 5958 }); 5959 5960 $(".sectionPurchaseSpotify").delegate(".btn[data-type=card]", "click", function(){ 5961 $(".sectionPurchaseSpotify").hide() 5962 loadPopupPersonalize() 5963 }) 5964 5965 $(".close-purchase-popup").click(function() { 5966 disablePopup(); 5967 }); 5968 $("#backgroundPopup").click(function() { 5969 // disablePopup(); 5970 }); 5971 5972 $("#popupCart .close-purchase-popup").click(function() { 5973 location.reload() 5974 }); 5975 5976 $('#popupCart').on('hide.bs.modal', function (e) { 5977 location.reload() 5978 }) 5979 5980 $(".next-card").click(function(){ 5981 const parent = $(this).parents(".sectionPurchase") 5982 const next = parent.next(".sectionPurchase") 5983 parent.addClass("hide") 5984 next.removeClass("hide") 5985 }) 5986 5987 $(".back-purchase-button").click(function(){ 5988 const parent = $(this).parents(".sectionPurchase") 5989 const prev = parent.prev(".sectionPurchase") 5990 parent.addClass("hide") 5991 prev.removeClass("hide") 5992 }) 5993 5994 $(document).keypress(function(e) { 5995 if (e.keyCode == 27 && popupStatus == 1) { 5996 disablePopup(); 5997 } 5998 }); 5999 6000 const parentImg = $(".case-img-preview") 6001 const parentVid = $(".case-video-preview") 6002 6003 function readURL(input) { 6004 if (input.files && input.files[0]) { 6005 let reader = new FileReader(); 6006 6007 let type = 'image/jpeg' 6008 const size = input.files[0].size 6009 if(input.files[0].type.match('video/')){ 6010 type = 'video/mp4' 6011 if(size > 15728640) { 6012 alert('File size exceeds maximum limit 15 MB') 6013 return 6014 } 6015 } else { 6016 if(size > 5242880) { 6017 alert('File size exceeds maximum limit 5 MB') 6018 return 6019 } 6020 } 6021 6022 reader.onload = function (e) { 6023 $(".nextBtn").attr("disabled", true) 6024 if(type === 'image/jpeg') { 6025 6026 $('.placeholder-image').hide(); 6027 $('.preview-image').show() 6028 $('.preview-image').attr('src', e.target.result); 6029 6030 } else { 6031 // parentVid.find(".ajax-loader").show(); 6032 $(".steps-card-preview").addClass("loading") 6033 } 6034 } 6035 6036 6037 6038 reader.readAsDataURL(input.files[0]); 6039 } 6040 } 6041 6042 async function readURLPapan(input) { 6043 if (input.files && input.files[0]) { 6044 let reader = new FileReader(); 6045 6046 reader.onload = function (e) { 6047 $('.btn-upload-papan').siblings('label').hide(); 6048 $('.btn-upload-papan img').attr('src', e.target.result); 6049 $('.btn-upload-papan img').show(); 6050 $('.svgLogoPapan').hide(); 6051 } 6052 6053 const type = 'image/jpeg' 6054 const name = `logo-8144957800663-${Date.parse(new Date())}` 6055 6056 let formData = new FormData(); 6057 formData.append("file", input.files[0]); 6058 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 6059 method: "POST", 6060 body: formData 6061 }) 6062 const result = await response.json(); 6063 if(result) { 6064 const url = result.url 6065 $("[data-properties=papan-logo]").val(url) 6066 } 6067
6068 reader.readAsDataURL(input.files[0]); 6069 } 6070 } 6071 6072 async function readURLAddress(input) { 6073 console.log(input, 'readURLAddress') 6074 if (input.files && input.files[0]) { 6075 let reader = new FileReader(); 6076 6077 reader.onload = function (e) { 6078 $('.photo-address').attr('src', e.target.result); 6079 $('.photo-address').show(); 6080 } 6081 6082 const type = 'image/jpeg' 6083 const name = input.files[0].name?.split('.')[0] 6084 6085 let formData = new FormData(); 6086 formData.append("file", input.files[0]); 6087 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 6088 method: "POST", 6089 body: formData 6090 }) 6091 const result = await response.json(); 6092 6093 reader.readAsDataURL(input.files[0]); 6094 6095 return result 6096 } 6097 } 6098 6099 6100 6101 6102 async function addToCartUang() { 6103 var productAddOnId1 = 42122101162199; 6104 var productAddOnId2 = 42122101194967; 6105 var product_id = 8144957800663 6106 const data = { 6107 items: [ 6108 { 6109 quantity: $("#Quantity-" + productAddOnId1).val(), 6110 id: productAddOnId1, 6111 "properties": { "Time": $("#properties-time").val() } 6112 }, 6113 { 6114 quantity: $("#Quantity-" + productAddOnId2).val(), 6115 id: productAddOnId2, 6116 "properties": { "Time": $("#properties-time").val() } 6117 } 6118 ] 6119 } 6120 await fetch(window.Shopify.routes.root + 'cart/add.js', { 6121 method: 'POST', 6122 headers: { 6123 'Content-Type': 'application/json' 6124 }, 6125 body: JSON.stringify(data) 6126 }) 6127 .then(response => { 6128 console.error('Sukses Buket Uang:', response); 6129 $(".form-flower").submit() 6130 }) 6131 .catch((error) => { 6132 console.error('Error Buket Uang:', error); 6133 $(".form-flower").submit() 6134 }); 6135 } 6136 6137 async function saveCard(){ 6138 let isCard = true 6139 const kartu_penerima = $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '' 6140 const kartu_pengirim = $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '' 6141 const kartu_ucapan = $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '' 6142 const foto = $("#properties-photo").val() 6143 const video = $("#properties-video").val() 6144 const data = JSON.stringify({ 6145 "id": qrID, 6146 "penerima": $("#properties-nama-penerima").val(), 6147 "kartu_penerima": kartu_penerima, 6148 "kartu_ucapan": kartu_ucapan, 6149 "kartu_pengirim": kartu_pengirim, 6150 "foto": foto, 6151 "video": video, 6152 "productId": "8144957800663", 6153 "order_name": "", 6154 "status": "Cart" 6155 }) 6156 6157 6158 } 6159 6160 async function additem(items){ 6161 try { 6162 let formData = items 6163 if(items?.length) { 6164 formData = { 6165 'items': items 6166 }; 6167 } 6168 6169 const add = await fetch(window.Shopify.routes.root + 'cart/add.js', { 6170 method: 'POST', 6171 headers: { 6172 'Content-Type': 'application/json', 6173 'X-Requested-With':'xmlhttprequest' /* XMLHttpRequest is ok too, it's case insensitive */ 6174 }, 6175 body: JSON.stringify(formData) 6176 }) 6177 6178 const data = await add.json(); 6179 return data 6180 } catch(err){ 6181 console.log('Error additem', err) 6182 } 6183 } 6184 6185 async function addons(){ 6186 let items = [] 6187 $(".addon-item").each(function(){ 6188 const p = $(this) 6189 const props = p.next(".propsAddonSpotify") 6190 const id = $(this).data("id") 6191 const quantity = $(this).data("qty") 6192 const propId = $("#properties-time").val() 6193 let properties = {} 6194 if(id === 46067682607319) { 6195 const link = props.find(".spotifyLinkAddon").text() 6196 const photo = props.find(".spotifyFotoAddon").text() 6197 const song = props.find(".spotifySongAddon").text() 6198 const artist = props.find(".spotifyArtistAddon").text() 6199 properties = { 6200 id: propId, 6201 "Spotify Link": link !== '' ? link : '-', 6202 "Spotify Photo": photo !== '' ? photo : '-', 6203 "Spotify Song": song !== '' ? song : '-', 6204 "Spotify Artist": artist !== '' ? artist : '-', 6205 type: 'addon' 6206 } 6207 } else { 6208 properties = { 6209 "id": propId, 6210 "type": "addon" 6211 } 6212 } 6213 items.push({ 6214 id, 6215 quantity, 6216 properties 6217 }) 6218 }) 6219 return items 6220 } 6221 6222 async function propItems() { 6223 let props = {} 6224 $("[data-properties]").each(function(e){ 6225 let elementType = this.tagName;
6226 const k = $(this).data("properties") 6227 if(k !== 'penerima' && k !== 'ucapan' && k !== 'pengirim' && k !== 'nama-penerima' && k !== 'alamat-penerima' && k !== 'telepon-penerima' && k !== 'company' && k !== 'province' && k !== 'foto-alamat' && k !== 'papan-logo') { 6228 const v = elementType === 'SELECT' ? $(this).find(":selected").val() : $(this).val(); 6229 if(v !== '') { 6230 props[k] = v?.replace(/[\s\n]/g, ''); 6231 } 6232 } 6233 }) 6234 return props 6235 } 6236 6237 async function showPopupCart(items){ 6238 if(productType !== '') { 6239 console.log("clarity event " + productType + ' completeOrder') 6240 window.clarity("event", `${productType} completeOrder`) 6241 // window.clarity("set", productType, `completeOrder - ${productDate}`) 6242 } 6243 $("#popupCart").show() 6244 6245 $(".propDeliveryCity").text($("#cities").val()) 6246 $(".propDeliveryDate").text($("#propDeliveryDate").val()) 6247 $(".propDeliveryTime").text($("#propDeliveryTime").val()) 6248 $(".propDeliveryName").text($("[data-properties=nama-penerima]").val()) 6249 $(".propDeliveryAddress").text($("[data-properties=alamat-penerima]").val()) 6250 $(".propDeliveryPhone").text($("[data-properties=telepon-penerima]").val()) 6251 $(".propDeliveryProv").text($("#province").val()) 6252 $(".propDeliveryZip").text($("#zip").val()) 6253 6254 6255 6256 const addons = [] 6257 if(items && items.length > 0) { 6258 for(let i = 1; i < items.length; i++) { 6259 const spotifyLink = items[i].properties['Spotify Link'] 6260 const spotifyPhoto = items[i].properties['Spotify Photo'] 6261 const spotifySong = items[i].properties['Spotify Song'] 6262 const spotifyArtist = items[i].properties['Spotify Artist'] 6263 const price = items[i].price / 100 6264 const props = spotifyLink ? `<div class="propsAddonCart row m-0"> 6265 <div class="col-12 col-lg-2"></div> 6266 <div class="col-12 col-lg-10"> 6267 <p> 6268 <span>spotify link</span> 6269 <span>${spotifyLink}</span> 6270 </p> 6271 <p> 6272 <span>Upload Photo</span> 6273 <span>${spotifyPhoto}</span> 6274 </p> 6275 <p> 6276 <span>song / playlist name</span> 6277 <span>${spotifySong}</span> 6278 </p> 6279 <p> 6280 <span>artist name</span> 6281 <span>${spotifyArtist}</span> 6282 </p> 6283 </div> 6284 </div>` : ''; 6285 addons.push(`<div class="row m-0"> 6286 <div class="imgAddonCart col-2"> 6287 <img 6288 width="43" 6289 src="${items[i].image}" 6290 alt="" 6291 > 6292 </div> 6293 <div class="imgAddonTitlePrice col-10 align-self-center"> 6294 <div class="row justify-content-between m-0"> 6295 <div class="col-12 col-lg-8"> 6296 <h5>${items[i].title}</h5> 6297 </div> 6298 <div class="col-12 col-lg-4 text-lg-right"> 6299 <span>${rupiah.format(price)}</span> 6300 </div> 6301 </div> 6302 </div> 6303 </div>${props}`) 6304 } 6305 } 6306 // console.log(addons) 6307 if(addons.length === 0) { 6308 $(".itemAddonCart").hide() 6309 return 6310 } 6311 $(".toggleAddonCart h4").text(`add-ons (${items.length - 1})`) 6312 $(".wrapperItemAddonCart").html(addons) 6313 } 6314 6315 const money = (money) => { 6316 return new Intl.NumberFormat('id-ID', 6317 { style: 'currency', currency: 'IDR', minimumFractionDigits: 0 } 6318 ).format(money); 6319 } 6320 6321 async function showNoteMoney() { 6322 let qty50k = $("[data-properties='Uang 50k']").val() 6323 let qty100k = $("[data-properties='Uang 100k']").val() 6324 const total50k = Number(qty50k) * 50000 6325 const total100k = Number(qty100k) * 100000 6326 const total_all = total50k + total100k 6327 $(".prop50k").html(`<span>${qty50k} Lembar: <strong class="pl-1">${money(total50k)}</strong></span>`) 6328 $(".prop100k").html(`<span>${qty100k} Lembar: <strong class="pl-1">${money(total100k)}</strong></span>`) 6329 $(".itemMoney").html(`<p>For the money arrangement, please transfer <strong>IDR ${money(total_all)}</strong> to <strong>Bank Mandiri 1020001234522 (PT Modern Mekar Abadi)</strong> and contact our <a href="https://duaperak-amp02.firehostapp.com/" target="_blank" style="text-decoration: underline;
6329 color: #8d3f2d">Customer Service</a> to confirm with proof of payment.</p>`) 6330 } 6331 6332 async function removeImage() { 6333 const data = JSON.stringify({ 6334 "ID": $("#properties-properties-qrId").val(), 6335 "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 6336 "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 6337 "Kartu Ucapan": $("[data-properties=ucapan]").val(), 6338 "Nama Penerima": $("#properties-nama-penerima").val(), 6339 "Order Number":"", 6340 "Status":"Product", 6341 "Foto": "", 6342 "Media": $("#properties-video").val(), 6343 "Image": "8144957800663" 6344 }) 6345 const remove = updateCard(data) 6346 if(remove) { 6347 $(this).hide() 6348 $("#properties-photo").val("-") 6349 $(".placeholder-image").show() 6350 $(".preview-image").attr("src", "") 6351 } 6352 } 6353 6354 async function removeVideo() { 6355 const data = JSON.stringify({ 6356 "ID": $("#properties-properties-qrId").val(), 6357 "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 6358 "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 6359 "Kartu Ucapan": $("[data-properties=ucapan]").val(), 6360 "Nama Penerima": $("#properties-nama-penerima").val(), 6361 "Order Number":"", 6362 "Status":"Product", 6363 "Foto": $("#properties-photo").val(), 6364 "Media": "", 6365 "Image": "8144957800663" 6366 }) 6367 const remove = updateCard(data) 6368 if(remove) { 6369 $("#properties-video").val("-") 6370 $(this).find("img").hide() 6371 $(this).hide() 6372 $(this).prev("p").text("Add video to make it more special (optional)") 6373 $("#label-input-video").show() 6374 $("#label-input-video span").text("Upload Video") 6375 $(".case-video-preview p span").remove() 6376 } 6377 } 6378 6379 async function loadItemOccasion(t, occasion) { 6380 const name = occasion?.replace('greeting-card-', '') 6381 $("#kartu-ucapan").val("") 6382 $("[data-occassion]").removeClass("selected") 6383 $("[data-properties=ucapan]").val("") 6384 $("#save-card").attr("disabled", true) 6385 t.addClass("selected") 6386 $("#show_note").attr("data-card-occassion", name) 6387 $.get(`https://outerbloom.com/collections/${occasion}/products.json`, function(data, status){ 6388 const products = data.products 6389 const html = [] 6390 for(let i = 0; i < products.length; i++) { 6391 const id = products[i].id 6392 const variantId = products[i].variants[0].id 6393 const img = products[i].images[0].src 6394 const title = products[i].title 6395 const price = products[i].variants[0].price 6396 const qty = products[i].variants[0].inventory_quantity 6397 const body = `<div class="item-card${price < 1 ? ' free' : ' nofree'}${i === 0 ? ' selected' : ''}" data-id=${id}> 6398 <label for="card-${variantId}"></label> 6399 <div class="card-image"> 6400 <img src="${img}" alt="${title}" width="" height="" /> 6401 </div> 6402 <div class="card-meta text-center"> 6403 <h5>${title}</h5> 6404 <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p> 6405 <input id="card-${variantId}" type="radio" name="id" value="${variantId}" data-price="${price}"> 6406 </div> 6407 </div>` 6408 html.push(body) 6409 } 6410 const withoutCard = `<div class="item-card item-without-card"> 6411 <label for="card-0"></label> 6412 <div class="card-image"> 6413 <img src="https://cdn.shopify.com/s/files/1/1589/6833/t/129/assets/without-card.png?v=1747632283" alt="Without card" width="" height="" /> 6414 </div> 6415 <div class="card-meta text-center"> 6416 <h5>
6416Send without a greeting card</h5> 6417 <input id="card-0" type="radio" name="id" value="" data-price=""> 6418 </div> 6419 </div>` 6420 $("#itemCards .items-card").html(html.length === 0 ? '<p>No Item available</p>' : html.join("")) 6421 }); 6422 } 6423 6424 $(document).ready(function(){ 6425 6426 // Observer to auto-trigger addon loading when addon section becomes visible 6427 const addonObserver = new MutationObserver(function(mutations) { 6428 mutations.forEach(function(mutation) { 6429 const target = $(mutation.target) 6430 if(target.hasClass('purchaseAddon') && mutation.type === 'attributes' && mutation.attributeName === 'class') { 6431 if(!target.hasClass('hide')) { 6432 // Addon section just became visible, ensure items are loaded 6433 setTimeout(function() { 6434 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6435 console.log("Auto-triggering addon load...") 6436 $("[data-addon=upsell-all]").trigger("click") 6437 } 6438 }, 150) 6439 } 6440 } 6441 }) 6442 }) 6443 6444 // Start observing addon section 6445 const addonSection = document.querySelector('.purchaseAddon') 6446 if(addonSection) { 6447 addonObserver.observe(addonSection, { 6448 attributes: true, 6449 attributeFilter: ['class'] 6450 }) 6451 } 6452 6453 $(".purchasePopup").delegate("#addtocart-card", "click", async function(){ 6454 6455 $(this).find("span").addClass("loading") 6456 let isValid = true 6457 $(".formAddressPurchase [required]").each(function(){ 6458 const t = $(this) 6459 const input = t.val() 6460 const p = t.parent() 6461 if(input === '') { 6462 p.addClass("error") 6463 isValid = false 6464 } 6465 }) 6466 6467 if(!isValid) { 6468 $(this).find("span").removeClass("loading") 6469 return 6470 } 6471 6472 let items = [] 6473 const mainProps = { 6474 6475 "Delivery Date": $("#propDeliveryDate").val(), 6476 "Delivery Time": $("#propDeliveryTime").val() !== '' ? $("#propDeliveryTime").val() : '-' , 6477 "Kota Pengiriman": $("#cities").val(), 6478 "Nama Penerima": $("[data-properties=nama-penerima]").val() !== '' ? $("[data-properties=nama-penerima]").val() : '-' , 6479 "Alamat Penerima": $("[data-properties=alamat-penerima]").val() !== '' ? $("[data-properties=alamat-penerima]").val() : '-' , 6480 "Kodepos": $("#zip").val() !== '' ? $("#zip").val() : '-' , 6481 "Telepon Penerima": $("[data-properties=telepon-penerima").val() !== '' ? $("[data-properties=telepon-penerima").val() : '-' , 6482 6483 6484 "Papan Nama Penerima": $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '-' , 6485 "Papan Ucapan": $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '-' , 6486 "Papan Nama Pengirim": $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '-' , 6487 "Papan Logo": $("[data-properties=papan-logo]").val() !== '' ? $("[data-properties=papan-logo]").val() : '-' , 6488 "Foto Alamat": $("[data-properties=foto-alamat]").val() !== '' ? $("[data-properties=foto-alamat]").val() : '-' , 6489 6490 6491 "Province": $("#province").val() !== '' ? $("#province").val() : '-' , 6492 "Country": $("#properties-kota-pengiriman-country").val() !== '' ? $("#properties-kota-pengiriman-country").val() : '-' , 6493 "Shipping": $("#properties-shipping").val() !== '' ? $("#properties-shipping").val() : '-' , 6494 "Company": $("[data-properties=company]").val() !== '' ? $("[data-properties=company]").val() : '-' , 6495 "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 6496 "type": 'product' 6497 } 6498 const props = await propItems() 6499 properties = {...mainProps, ...props }; 6500 const id = $("#productSelect").find('option:selected').val() 6501 console.log(id, 'main ID') 6502 const mainItem = { 6503 id: Number(id), 6504 quantity: 1, 6505 properties 6506 } 6507 items.push(mainItem) 6508 const cardId = $("#itemCards").find(".selected input").val() 6509 const cardItem = { 6510 id: Number(cardId), 6511 quantity: 1, 6512 properties: { "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', type: 'card' } 6513 } 6514 console.log(cardId, 'cardId') 6515 if(cardId) { 6516 items.push(cardItem) 6517 } 6518 const addon = await addons() 6519 if(addon) { 6520 for(let i = 0;
6520 i < addon.length; i++){ 6521 items.push({ 6522 id: addon[i].id, 6523 quantity: addon[i].quantity, 6524 properties: addon[i].properties 6525 }) 6526 } 6527 } 6528 const addItems = await additem(items) 6529 console.log(addItems.items, 'add items') 6530 if(addItems) { 6531 $(this).find("span").removeClass("loading") 6532 disablePopup() 6533 showPopupCart(addItems.items) 6534 6535 localStorage.setItem("items", JSON.stringify(addItems.items)) 6536 } 6537 }) 6538 6539 $("#addtocart-cart .btn").click(async function(){ 6540 const id = $("#productSelect").find('option:selected').val() 6541 const mainProps = { 6542 id: $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 6543 type: 'product' 6544 } 6545 const props = await propItems() 6546 const properties = { ...mainProps, ...props }; 6547 const items = { 6548 id: Number(id), 6549 quantity: 1, 6550 properties 6551 } 6552 const addItems = await additem(items) 6553 if(addItems) { 6554 showPopupCart(addItems.items) 6555 localStorage.setItem("items", JSON.stringify(addItems)) 6556 } 6557 }) 6558 6559 $(".formAddressPurchase [required]").change(function(){ 6560 const t = $(this) 6561 const p = t.parent() 6562 const v = t.val() 6563 if(v !== '') { 6564 p.removeClass("error") 6565 } 6566 }) 6567 6568 $("#save-card").click(async function(){ 6569 const parent = $(this).parents(".sectionPurchase") 6570 const next = parent.next(".sectionPurchase") 6571 $(this).find("span").addClass("loading") 6572 const card = await saveCard() 6573 console.log(card, 'ssaveCCC') 6574 if(card?.status === 200 || card?.status === 201) { 6575 $(".scanCard").removeClass("hide") 6576 $(this).find("span").removeClass("loading") 6577 parent.addClass("hide") 6578 next.removeClass("hide") 6579 if(next.hasClass("purchaseAddon")) { 6580 $("[data-addon=upsell-all]").click() 6581 console.log("clarity event addons") 6582 window.clarity("event", `${productType} add-ons`) 6583 // Ensure addon items are loaded when entering addon popup 6584 setTimeout(function() { 6585 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6586 $("[data-addon=upsell-all]").trigger("click") 6587 } 6588 }, 100) 6589 } 6590 if(next.hasClass("purchaseAddress")) { 6591 $("#zip").select2() 6592 } 6593 } 6594 }) 6595 6596 $("#skip-card").click(async function(){ 6597 $("#greetingCard [data-properties]").val("") 6598 $("#properties-photo").val("") 6599 $("#properties-video").val("") 6600 const parent = $(this).parents(".sectionPurchase") 6601 const next = parent.next(".sectionPurchase") 6602 parent.addClass("hide") 6603 next.removeClass("hide") 6604 // $("#itemCards").html("") 6605 removeImage() 6606 removeVideo() 6607 if(next.hasClass("purchaseAddon")) { 6608 $("[data-addon='upsell-all']").click() 6609 console.log("clarity event addons") 6610 window.clarity("event", `${productType} add-ons`) 6611 // Ensure addon items are loaded when entering addon popup 6612 setTimeout(function() { 6613 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6614 $("[data-addon='upsell-all']").trigger("click") 6615 } 6616 }, 100) 6617 } 6618 if(next.hasClass("purchaseAddress")) { 6619 $("#zip").select2() 6620 } 6621 }) 6622 6623 $("#msgCard").click(async function(){ 6624 $(this).parent().addClass("loading") 6625 let occasion = $(".selected[data-occassion]").data("occassion") 6626 occasion = occasion?.replace("greeting-card-", "") 6627 const { data } = await getFetch(`${host}/api/card/template/occasion?name=${occasion}`); 6628 const d = data?.data 6629 for(let i = 0; i < d.length; i++) { 6630 const num = Math.floor(Math.random() * (d.length - 1 + 1) + 1); 6631 const greeting = d[num]?.Greeting 6632 $(".greetingCard textarea").val(greeting) 6633 $(this).parent().removeClass("loading") 6634 } 6635 $("#save-card").attr("disabled", false) 6636 }) 6637 6638 $(".sectionPurchaseBoard .next-purchase-button").click(function(){ 6639 const parent = $(this).parents(".sectionPurchase") 6640 const next = parent.next(".sectionPurchase") 6641 parent.addClass("hide") 6642 next.removeClass("hide") 6643 }) 6644 6645 $("#editCard").click(function(){ 6646 $(".custom-card").show() 6647 $(".preview-card").hide() 6648 }) 6649 6650 $("#first_name, #last_name").change(function(){ 6651 const v = $(this).val() 6652 const first_name = $("#first_name").val() 6653 const last_name = $("#last_name").val() !== '' ? ' ' + $("#last_name").val() : '' 6654 $("[data-properties=nama-penerima]").val(first_name+last_name) 6655 }) 6656 6657 $("[data-occassion]").click(function(){ 6658 const t = $(this) 6659 const p = t.parents(".sectionPurchase") 6660 // $(".greetingCard").addClass("disabled") 6661 const occasion = t.data("occassion") 6662 loadItemOccasion(t, occasion) 6663 }) 6664 6665 $("#itemCards").delegate(".item-card:not(.item-without-card) label", "click", function(){ 6666 const id = $(this).parent(".item-card").data("id") 6667 const t = $(this).parent(".item-card") 6668 const target = t.find("input") 6669 const v = $('.item-card input[type="radio"]:checked').val(); 6670 $("#itemCards .item-card").removeClass("selected") 6671 t.addClass("selected") 6672 $("#itemCards .item-card").find("input").attr("name", "") 6673 if(target.length > 0) { 6674 target.attr("name", "id[]") 6675 $("#properties-card").val(id) 6676 $(".greetingCard").removeClass("disabled") 6677 $("#skip-card").attr("disabled", false) 6678 } else { 6679 $("#properties-card").val("") 6680 } 6681 }) 6682 6683 $("#itemCards").delegate(".item-without-card label", "click", function(){ 6684 const parent = $(this).parents(".sectionPurchase") 6685 const next = parent.next(".sectionPurchase") 6686 $(".greetingCard").addClass("disabled") 6687 parent.addClass("hide") 6688 next.removeClass("hide") 6689 $("[data-addon=upsell-all]").click() 6690 $("#zip").select2() 6691 }) 6692 6693 $("[data-properties=ucapan]").keyup(function(){ 6694 const v = $(this).val() 6695 const p = $(this).parents(".sectionPurchase") 6696 $(".purchaseAddress").find(".greetingCard textarea").val(v) 6697 if(v.length > 3) { 6698 p.find(".next-purchase-button").attr("disabled", false) 6699 } else { 6700 p.find(".next-purchase-button").attr("disabled", true) 6701 } 6702 }) 6703 6704 $("[data-properties=penerima]").keyup(function(){ 6705 const v = $(this).val() 6706 $(".purchaseAddress").find("[data-properties=penerima]").val(v) 6707 }) 6708 6709 $("[data-properties=pengirim]").keyup(function(){ 6710 const v = $(this).val() 6711 $(".purchaseAddress").find("[data-properties=pengirim]").val(v) 6712 }) 6713 6714 $(document).click(function(e){ 6715 6716 if($(e.target).closest('.wrapperPopupCart').length != 0) return false;
6717 // $('#popupCart').fadeOut('slow'); 6718 // location.reload() 6719 }); 6720 6721 $(".toggleAddonCart").click(function(){ 6722 const p = $(this).parent(".itemAddonCart") 6723 p.toggleClass("open") 6724 }) 6725 6726 $(".btnViewCart").click(function(){ 6727 window.location.href = "https://outerbloom.com/cart"; 6728 }) 6729 6730 $(".btnViewCheckout").click(async function(){ 6731 $(this).find("span").addClass("loading") 6732 let zip = $("#zip").val() 6733 const first_name = $("#first_name").val() 6734 const last_name = $("#last_name").val() 6735 const company = $("#company").val() !== '' ? $("#company").val() : '' 6736 const address1 = $("#delivery_address").val() 6737 const address2 = zip && zip !== '' ? zip?.split(' - ')[1] : '' 6738 zip = zip && zip !== '' ? zip?.split(' - ')[0] : '' 6739 const phone = $("#recipient_number").val() 6740 const city = $("#cities").val() 6741 const province = $("#province").val() 6742 const country = 'Indonesia' 6743 const ver = Date.parse(new Date()) 6744 const params = `checkout[email]=&checkout[shipping_address][first_name]=${first_name}&checkout[shipping_address][last_name]=${last_name}&checkout[shipping_address][company]=${company}&checkout[shipping_address][address1]=${address1}&checkout[shipping_address][address2]=${address2}&checkout[shipping_address][city]=${city}&checkout[shipping_address][country]=${country}&checkout[shipping_address][province]=${province}&checkout[shipping_address][zip]=${zip}&checkout[shipping_address][phone]=${phone}&v=${ver}` 6745 6746 const clear = await fetch(`/cart/clear.js`, {method: 'POST'}) 6747 if(clear.status === 200) { 6748 const savedItem = window.localStorage.getItem("items"); 6749 const items = JSON.parse(savedItem) 6750 const addItems = await additem(items) 6751 console.log(addItems, 'new addItems') 6752 if(addItems) { 6753 window.location.href = `https://outerbloom.com/checkout?${params}`; 6754 } 6755 } 6756 }) 6757 6758 $(".btnContinueShopping").click(function(){ 6759 window.location.href = "https://outerbloom.com/"; 6760 }) 6761 6762 if (isIOS) { 6763 $(".empty-state-card").click(function(){ 6764 $("#input-foto").trigger("click") 6765 }) 6766 $(".btn-upload-image").click(function(){ 6767 $("#input-foto").trigger("click") 6768 }) 6769 $("[for=input-video]").click(function(){ 6770 $("#input-video").trigger("click") 6771 }) 6772 $(".btn-upload-papan").click(function(){ 6773 $("#logoPapan").trigger("click") 6774 }) 6775 } 6776 6777 $("[data-properties]").each(function(){ 6778 const select = $(this).parents(".form-group").find("select") 6779 $(this).change(function(){ 6780 const name = $(this).data("properties") 6781 const v = $(this).val() 6782 if (name == 'telepon-penerima') { 6783 let phone = v.replace(/[^0-9]/g, '') 6784 $(this).val(phone); 6785 $("#properties-telepon-penerima").val(phone) 6786 $('.iti__search-input').val('-') 6787 } else { 6788 $("#properties-" + name).val(v) 6789 } 6790 }) 6791 select.on("change", function(){ 6792 const name = $(this).data("properties") 6793 const v = $(this).val() 6794 $("#properties-" + name).val(v) 6795 }) 6796 }) 6797 6798 $("#show_note").click(function(){ 6799 nameq = $("#properties-nama-penerima").val() 6800 dear = $("#properties-kartu-nama-penerima").val() 6801 card = $("[data-properties=ucapan]").val() 6802 sender = $("#properties-kartu-nama-pengirim").val() 6803 photo = $("#properties-photo").val() 6804 video = $("#properties-video").val() 6805 updateCard(nameq, dear, card, sender, photo, video, status) 6806 }) 6807 6808 $(".remove-image").click(function(e){ 6809 e.preventDefault() 6810 $(this).find("img").show() 6811 removeImage() 6812 }) 6813 6814 $(".remove-media").click(function(e){ 6815 e.preventDefault() 6816 $(this).find("img").show() 6817 removeVideo() 6818 }) 6819 6820 6821 6822 $("[data-delivery_method]").click(function(e){ 6823 e.preventDefault() 6824 const t = $(this) 6825 const data = t.data("delivery_method") 6826 $("[data-delivery_method]").removeClass("selected") 6827 t.addClass("selected") 6828 $("#cities").val("") 6829 $("#properties-delivery-date").val("-") 6830 $("#deliveryDate button").removeClass("selected") 6831 $("#full-date").val("Full Calendar â") 6832 $("#propDeliveryDate").val("") 6833 const step3 = $("#step-3") 6834 if(data.match('PickUp')) { 6835 $(".selfpickup-point").show() 6836 step3.find("[data-finished=false]").hide() 6837 $("#panel-4").hide() 6838 step3.find("[data-finished=true]").show() 6839 $("#cities").attr("required", false) 6840 $("#form-group-city").hide() 6841 $("#row-delivery-time").hide() 6842 $("#propDeliveryTime, #properties-delivery-time, #properties-nama-penerima, #properties-alamat-penerima, #properties-kodepos, #properties-kodepos, #properties-telepon-penerima").val("-") 6843 $("#propDeliveryTime").attr("required", false) 6844 // $("#deliveryDate").find("button:first-child").addClass("stop") 6845 $(".form-selfpickup").show() 6846 $(".form-delivery").hide() 6847 $(".form-delivery").find("input, textarea, select").val("") 6848 $(".form-delivery").find("input, textarea, select").attr("required", false) 6849 $("#properties-shipping").val("0") 6850 $("#noteDeliveryDate").hide() 6851 $(".form-delivery .form-control").attr("required", false) 6852 $("#stepNav4").hide() 6853 6854 $("#deliveryDate").find("button:nth-child(1)").addClass("stop") 6855 6856 6857 6858 6859 if(timeOfDay >= 16.01){ 6860 $("#deliveryDate").find("button:nth-child(2)").addClass("stop") 6861 } 6862 } else { 6863 6864 6865 $("#deliveryDate").find("button:nth-child(1)").removeClass("stop") 6866 step3.find("[data-finished=false]").show() 6867 $("#panel-4").show() 6868 step3.find("[data-finished=true]").hide() 6869 $("#cities").attr("required", true) 6870 $(".selfpickup-point").hide() 6871 $("#form-group-city").show() 6872 $("#cities").val('').trigger('change'); 6873 $("#properties-kota-pengiriman").val("-") 6874 6875 $("#row-delivery-date, #row-delivery-time").show() 6876 $("#propDeliveryDate, #propDeliveryTime").attr("required", true) 6877 $("#deliveryDate").find("button").removeClass("stop") 6878 $(".form-selfpickup").hide() 6879 $(".form-delivery").show() 6880 $(".form-delivery").find("input, textarea, select").attr("required", true)
6881 $(".form-delivery [data-properties]").attr("readonly", false) 6882 $("#properties-kodepos").val("-") 6883 $("#properties-alamat-penerima").val("-") 6884 $(".form-delivery .form-control").attr("required", true) 6885 $(this).parents(".setup-content").attr("id", "step-1") 6886 6887 $("#stepNav4").show() 6888 } 6889 }) 6890 6891 $("[name=selfpickup]").click(function(){ 6892 const p = $(this).parents(".row-pickup") 6893 const pickupCity = $("input[name='selfpickup']:checked").val(); 6894 const pickupAddress = $("input[name='selfpickup']:checked").data("address"); 6895 const pickupZip = $("input[name='selfpickup']:checked").data("zip"); 6896 6897 $(".row-pickup").removeClass("selected") 6898 p.addClass("selected") 6899 6900 $("#properties-kota-pengiriman").val(pickupCity) 6901 $("#province").val("Jakarta") 6902 $("#properties-alamat-penerima").val(pickupAddress) 6903 $("#properties-kodepos").val(pickupZip) 6904 }) 6905 6906 $("#cities").change(function(e){ 6907 e.preventDefault() 6908 $(this).parent(".row").find("p.error").remove() 6909 $("#full-date").val("Full Calendar") 6910 $("#deliveryDate, #deliveryDateFull label ").show() 6911 $("#deliveryDateFull").removeClass("filled") 6912 $(".btnChangeDeliveryDate").addClass("hide") 6913 $("#full-date").prop('disabled', false); 6914 $("#stepNav2, #stepNav3, #stepNav4").removeClass("btn-success") 6915 $("#stepNav2, #stepNav3, #stepNav4").find("a").attr("disabled", true) 6916 const step3 = $("#step-3") 6917 $("#cityNote").remove() 6918 $("#noteDeliveryDate").hide() 6919 $("#noteDeliveryDate").empty() 6920 let v = $(this).val() 6921 let v2 = $('option:selected', this).attr('data-city'); 6922 let v3 = $('option:selected', this).attr('data-province'); 6923 let price = $('option:selected', this).attr('data-price'); 6924 $("#country").val(v) 6925 $("#properties-kota-pengiriman").val(v) 6926 $("#properties-shipping").val(price) 6927 $("#deliveryDate button, #deliveryTime button, .calendarseasonal .button").removeClass("selected") 6928 $("#properties-delivery-date, #properties-delivery-time").val("-") 6929 $("#propDeliveryDate, #propDeliveryTime").val("") 6930 let note = $('option:selected', this).attr('data-note'); 6931 if(v === 'Kota Lainnya') { 6932 $("#noteDeliveryDate").show() 6933 $("#noteDeliveryDate").text("Order akan segera dikirim. Estimasi tanggal diterima akan disesuaikan dengan waktu pengiriman oleh pihak ekspedisi ke lokasi Anda.") 6934 $("#zip").attr("required", false) 6935 $("#zip").hide() 6936 $("#propDeliveryDate, #propDeliveryTime").attr("required", false) 6937 $("#propDeliveryDate, #properties-delivery-date, #propDeliveryTime, #properties-delivery-time").val("-") 6938 $("#row-delivery-date, #row-delivery-time").hide() 6939 $("#properties-shipping").val("") 6940 // $(this).parents(".setup-content").attr("id", "step-2") 6941 6942 } else { 6943 $("#noteDeliveryDate").hide() 6944 $("#zip").attr("required", true) 6945 $("#zip").show() 6946 $("#row-delivery-date, #row-delivery-time").show() 6947 $("#propDeliveryDate, #propDeliveryTime").attr("required", true) 6948 $("#deliveryDate").find("button").removeClass("stop") 6949 // $(this).parents(".setup-content").attr("id", "step-1") 6950 6951 } 6952 6953 6954 6955 // if(v !== 'Jakarta') { 6956 // $("[data-type=upsell]").hide() 6957 // } else { 6958 // $("[data-type=upsell]").show() 6959 // } 6960 // $('.collection-addons')[0].swiper.update(); 6961 6962 6963 getProvince(v) 6964 $("#zip").html(`<option value="">Choose Postal Code</option>`) 6965 renderZip(v, v2, v3) 6966 6967 disabledSameDay() 6968 6969 6970 if(v !== 'Jakarta' && v !== 'Depok' && v !== 'Bekasi' && v !== 'Tangerang') { 6971 6972 $("#cardOccasion, #navAddon, .collection-addons").hide() 6973 6974 $("[data-addon=giftcard]").show() 6975 $("[data-addon=giftcard]").click() 6976 $("#itemAddons").show() 6977 $("#flower-step").addClass("nonjadetabek") 6978 } else { 6979 $("#cardOccasion, #navAddon, .collection-addons").show() 6980 $("[data-addon=all]").click() 6981 $("#flower-step").removeClass("nonjadetabek") 6982 } 6983 6984 if(v !== '') { 6985 $("#personalizeBtn .btn").attr("disabled", false) 6986 } else { 6987 $("#personalizeBtn .btn").attr("disabled", true) 6988 } 6989 6990 }) 6991 6992 $("#zip").change(function(e){ 6993 let v = $(this).val() 6994 var city = $("#cities").find('option:selected'); 6995 $("#properties-kodepos").val(v) 6996 if(city === 'Kota Lainnya') { 6997 $(this).attr("required", true) 6998 $("#recipient-address").val("") 6999 } 7000 }) 7001 7002 7003 var minDate = +7 7004 7005 7006 7007 $("#full-date").datepicker({ 7008 minDate, 7009 dateFormat: 'Mdd_yy', //Nop22_2021, 7010 7011 beforeShowDay: disabledays, 7012 7013 onSelect: function (date) { 7014 $("#deliveryDate, #deliveryDateFull label ").hide() 7015 $("#deliveryDateFull").addClass("filled") 7016 $(".btnChangeDeliveryDate").removeClass("hide") 7017 $("#full-date").prop('disabled', true); 7018 $('#propDeliveryDate, #properties-delivery-date').val('Kirim_'+date); 7019 $(".date-full").addClass("selected") 7020 $(".date-single, .calendar-group").removeClass("selected") 7021 $("#propDeliveryTime").val('') 7022 $("#properties-delivery-time").val('-') 7023 $(".time-single").removeClass("selected") 7024 7025 7026 } 7027 }); 7028 7029 $(".btnChangeDeliveryDate").click(function(){ 7030 $("#deliveryDate, #deliveryDateFull label ").show() 7031 $("#deliveryDateFull").removeClass("filled") 7032 $(".btnChangeDeliveryDate").addClass("hide") 7033 $("#full-date").prop('disabled', false); 7034 }) 7035 7036 $("#deliveryDate").delegate(".calendarbutton:not(.date-full)", "click", function(e){ 7037 e.preventDefault() 7038 $(this).parents("#row-delivery-date").find("p.error").remove() 7039 const fulldate = $(this).data("fulldate") 7040 const day = $(this).data("day") 7041 const date = $(this).data("date")
7042 const month = $(this).data("month") 7043 const year = $(this).data("year") 7044 const off_pagi = $(this).data("offpagi") 7045 const off_siang = $(this).data("offsiang") 7046 const off_Malam = $(this).data("offMalam") 7047 $(".calendarbutton").removeClass("selected") 7048 $(this).addClass("selected") 7049 $("#propDeliveryDate, #properties-delivery-date").val(`Kirim_${month}${date}_${year}`) 7050 $("#propDeliveryTime").val('') 7051 $("#properties-delivery-time").val('-') 7052 $(".calendarbutton2").removeClass("selected") 7053 $("#full-date").val("Full Calendar") 7054 7055 7056 if(off_pagi && timeOfDay > off_pagi) { 7057 $("[data-time=Morning]").attr("disabled", true) 7058 } else { 7059 $("[data-time=Morning]").attr("disabled", false) 7060 } 7061 if(off_siang && timeOfDay > off_siang) { 7062 $("[data-time=Afternoon]").attr("disabled", true) 7063 } else { 7064 $("[data-time=Afternoon]").attr("disabled", false) 7065 } 7066 7067 7068 7069 }) 7070 7071 if(today === 14 && timeOfDay > 17.00) { 7072 $("#deliveryDate button:first-child").attr("disabled", true) 7073 } 7074 7075 $("#deliveryTime").delegate(".calendarbutton2", "click", function(e){ 7076 e.preventDefault() 7077 const time = $(this).data("time") 7078 const date = $("#propDeliveryDate").val() 7079 if(date == '') { 7080 return alert('Silakan pilih tanggal terlebih dahulu') 7081 } 7082 $(".calendarbutton2").removeClass("selected") 7083 $(this).addClass("selected") 7084 $("#propDeliveryTime, #properties-delivery-time").val(`KirimJam_${date.replace('Kirim_','')}_${time}`) 7085 }) 7086 7087 $('textarea.has-limit, input.has-limit').keyup(function () { 7088 max = this.getAttribute("maxlength"); 7089 let len = $(this).val().length; 7090 let limit = $(this).siblings(".limit"); 7091 if (len > max) { 7092 alert('you have reached the limit'); 7093 } else { 7094 limit.text(`${len}/${max}`); 7095 } 7096 }); 7097 7098 $("#button-action-step .btn").click(function(){ 7099 $(this).find("span").text("Processing..."); 7100 }); 7101 7102 $(".finishBtn").on('click', function() { 7103 $(this).addClass("is-adding"); 7104 // $(this).click(); 7105 }); 7106 7107 $('.setup-panel .nav-item a.btn-success').trigger('click'); 7108 7109 $("#button-action .btn").click(function(){ 7110 $("#flower-step").addClass("block"); 7111 $("#button-action").hide(); 7112 }); 7113 7114 $(".close-how-order").click(function(){ 7115 $("#flower-step").removeClass("block"); 7116 $("#button-action").show(); 7117 }); 7118 7119 $("#input-foto, #input-video").change(function(e){ 7120 readURL(this); 7121 }); 7122 7123 $("#logoPapan").change(function(){ 7124 readURLPapan(this); 7125 }); 7126 7127 $("#address-upload").change(async function(){ 7128 const upload_address = await readURLAddress(this) 7129 if(upload_address) { 7130 const url = upload_address.url 7131 $(".props-address-upload").val(url) 7132 $(".form-address").addClass("address-uploaded") 7133 $(".form-address-upload").addClass("uploaded") 7134 7135 $(this).parents(".form-group").siblings(".form-group").find("[required]").attr("required", false) 7136 } 7137 }) 7138 7139 $(".address-manualy").click(function(){ 7140 $(".form-address-upload").removeClass("uploaded"); 7141 $(".photo-address").hide(); 7142 $(".form-address").removeClass("address-uploaded") 7143 $("#formAddressPurchase").find(".form-control").attr("required", true) 7144 }); 7145 7146 $(".case-video-preview").delegate(".replace-video", "click", function(){ 7147 $("#input-video").trigger("click") 7148 }) 7149 7150 $('.date-single').click(function(e) { 7151 e.preventDefault(); 7152 $('.date-single').removeClass('selected'); 7153 $('#full-date').removeClass('selected'); 7154 $(this).addClass('selected'); 7155 $('#full-date').html('Full' + '<br/>' + 'Calendar'); 7156 }); 7157 $('#full-date').click(function(e){ 7158 e.preventDefault(); 7159 $('.date-single').removeClass('selected'); 7160 $(this).addClass('selected'); 7161 }); 7162 7163 // $("tr").each(function(){ 7164 // if($(this).text().match('SKU')) { 7165 // $(".sku-product").html($(this).parents("table").html()) 7166 // } 7167 // }) 7168 7169 $("#product-image").scroll(function(){ 7170 $(".desc-add").each(function(){ 7171 const img = $(this).find("img") 7172 const src = img.data("src") 7173 img.attr("src", src) 7174 }) 7175 }) 7176 7177 $(".product-fixed").hide() 7178 7179 let target = $("#personalizeBtn") 7180 7181 7182 $(".product-meta").scroll(function() { 7183 if ($(window).scrollTop() >= target.offset().top ) { 7184 $(".product-fixed").addClass("show") 7185 } else { 7186 $(".product-fixed").removeClass("show") 7187 } 7188 }); 7189 7190 $(window).scroll(function() { 7191 if ($(window).scrollTop() >= target.offset().top ) { 7192 $(".product-fixed").addClass("show") 7193 } else { 7194 $(".product-fixed").removeClass("show") 7195 } 7196 }); 7197 }); 7198 </script>
7198 7199 7200
7200<script> 7201 // 7202 </script>
7202 7203 7204
7204<script> 7205 $(document).ready(function(){ 7206 $('table tr td').each(function(){ 7207 var texto = $(this).text(); 7208 var nextto = $(this).next("td"); 7209 var sku = $("#data-sku").val() 7210 if(texto == 'SKU'){ 7211 nextto.text(sku) 7212 } 7213 }); 7214 7215 $(".stamped-summary-actions-newquestion").text("Tulis Pertanyaan"); 7216 $(".stamped-summary-actions-newreview").text("Tulis Review"); 7217 $("#tab-questions").text("Pertanyaan"); 7218 7219 $(".freeship .icon").click(function(){ 7220 $(".fs-content").slideToggle(); 7221 $(this).parents(".freeship").toggleClass("expand"); 7222 }); 7223 7224 var $easyzoom = $('.easyzoom').easyZoom(); 7225 // Setup thumbnails example 7226 var api1 = $easyzoom.filter('.easyzoom--with-thumbnails').data('easyZoom'); 7227 $('.thumbnails').on('click', 'a', function(e) { 7228 var $this = $(this); 7229 e.preventDefault(); 7230 // Use EasyZoom's `swap` method 7231 api1.swap($this.data('standard'), $this.attr('href')); 7232 }); 7233 7234 $('#playerID').click(function(){ 7235 var videoURL = $('#VdoID').attr('src'), 7236 dataplay = $('#VdoID').attr('data-play'); 7237 7238 //for check autoplay 7239 //if not set autoplay=1 7240 if(dataplay == 0 ){ 7241 $('#VdoID').attr('src',videoURL+'?autoplay=1'); 7242 $('#VdoID').attr('data-play',1); 7243 } 7244 else{ 7245 var videoURL = $('#VdoID').attr('src'); 7246 videoURL = videoURL.replace("?autoplay=1", ""); 7247 $('#VdoID').prop('src',''); 7248 $('#VdoID').prop('src',videoURL); 7249 7250 $('#VdoID').attr('data-play',0); 7251 } 7252 7253 }); 7254 7255 $(".product-photo-thumb-video").click(function(e){ 7256 e.preventDefault(); 7257 7258 var newEmbed = $(this).attr('href'); 7259 $("#featured-image-product").addClass("img-video"); 7260 $("#ProductPhotoImg").hide(); 7261 $("#featured-image-product .video").show(); 7262 $("#featured-image-product iframe").attr('src', newEmbed); 7263 $("#VdoID")[0].src += "&autoplay=1"; 7264 }); 7265 $(".product-single__thumbnail").click(function(evt){ 7266 evt.preventDefault(); 7267 $("#featured-image-product").removeClass("img-video"); 7268 $("#ProductPhotoImg").show(); 7269 $("#featured-image-product .video").hide(); 7270 $("#featured-image-product iframe").attr('src', ''); 7271 }); 7272 7273 if($('#product-meta .short-desc > div').length >= 1){ 7274 //console.log('div detected') 7275 var replacer = $('#product-meta .short-desc > div').contents(); 7276 $('#product-meta .short-desc > div').replaceWith(replacer); 7277 7278 var cAssured = $('.c-assured').detach(); 7279 cAssured.insertAfter('.meta-sds .stock-info'); 7280 } 7281 7282 7283 7284 $(".heading-toggle").click(function(){ 7285 $(this).parent().toggleClass("open") 7286 7287 }); 7288 }); 7289 </script>
7289 7290 7291 7292
7292<script type="application/json" id="ProductJson-Product"> 7293 7294 {"id":8144957800663,"title":"LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777 GACOR INI DUATOTO 2026","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDUATOTO menghadirkan informasi link 2026 terbaru untuk Slot777 dan situs Toto, dengan akses yang praktis serta pembaruan seputar layanan dan permainan Toto yang sedang populer saat ini."} 7295 </script>
7295 7296 7297
7297<script type="application/json" id="VariantJson-Product"> 7298 [ 7299 7300 { 7301 "incoming": false, 7302 "next_incoming_date": null 7303 } 7304 7305 ] 7306 </script>
7306 7307 7308 7309 7310 7311 </div> 7312 7313 7314
7314<script src="//outerbloom.com/cdn/shopifycloud/storefront/assets/themes_support/option_selection-b017cd28.js" type="text/javascript"></script>
7314 7315 <style> 7316 .stamped-review-header-title, 7317 .stamped-review-header .author, 7318 .stamped-review-content-body, 7319 .stamped-sort-select, 7320 .stamped-review-header .verified-badge[data-type=buyer]:after, 7321 .stamped-review-header-byline, 7322 .stamped-review-reply-body {font-size: 14px!important;font-family: 'Barlow',sans-serif!important;} 7323 .stamped-review {margin-bottom: 0;} 7324 .stamped-review-body {padding-left: 65px;} 7325 .stamped-review:first-child {padding-top: 25px;} 7326 .stamped-review-content {clear: none;} 7327 .stamped-review-reply {margin: 15px 0 0 65px;background: #f2f2f2;border-left: none;} 7328 .stamped-review-reply-body {padding-left: 65px;} 7329 .stamped-review-header .author {text-transform: capitalize;} 7330 .stamped-questions .stamped-review-content {padding-left: 65px;} 7331 7332 .stamped-pagination {margin: 20px 0 0;} 7333 .stamped-pagination li {position: initial!important;display: inline-block;position: relative;vertical-align: middle;text-decoration: none;-webkit-tap-highlight-color: transparent;-webkit-box-flex: 0;-moz-box-flex: 0;-ms-flex: 0 0 auto;flex: 0 0 auto;-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;background: 0 0;text-transform: none;color: #33373D;font-weight: 400;-webkit-transition: background .1s ease,box-shadow .1s ease,color .1s ease;transition: background .1s ease,box-shadow .1s ease,color .1s ease;border: 1px solid #ccc;border-right: none;margin-bottom: 0;} 7334 .stamped-pagination li a {color: #121212;padding: 13px 18px;vertical-align: middle;display: block;} 7335 .stamped-pagination li.active a {background-color: #ddd;font-weight: 400;} 7336 .stamped-pagination li:hover a {background: #ddd;} 7337 .stamped-pagination .next {border-right: 1px solid #ccc;} 7338 .stamped-pagination li:first-child {border-top-left-radius: 5px;border-bottom-left-radius: 5px;} 7339 .stamped-pagination li:last-child {border-top-right-radius: 5px;border-bottom-right-radius: 5px;} 7340 7341 #stamped-pagination-question span.page {display: inline-block;border: 1px solid #ccc;width: 47px;} 7342 #stamped-pagination-question span {font-size: 14px;} 7343 #stamped-pagination-question .page.active {padding: 12px;font-weight: 400;background: #ddd;} 7344 #stamped-pagination-question a, #stamped-pagination-question .page.active {color: #121212;padding: 13px 18px;vertical-align: middle;display: inline-block;} 7345 .stamped-pagination-deco {color: #121212;padding: 13px 18px;width: 47px;vertical-align: middle;display: inline-block;border: 1px solid #ccc;padding: 12px;} 7346 .stamped-pagination-prev, .stamped-pagination-next {position: inherit;} 7347 .stamped-pagination-prev a, .stamped-pagination-next a {width: auto!important;border: 1px solid #ccc;} 7348 7349 @media (max-width: 480px){ 7350 .stamped-review-reply {margin-left: 0!important;} 7351 select.stamped-sort-select {font-size: 13px!important;} 7352 } 7353 7354 #product-reviews .stamped-summary-ratings, #product-reviews .stamped-summary-actions, .stamped-content { 7355 display: block !important; 7356 } 7357 </style> 7358
7358<script> 7359 var selectCallback = function(variant, selector) { 7360 timber.productPage({ 7361 money_format: "Rp {{amount_no_decimals}}", 7362 variant: variant, 7363 selector: selector 7364 }); 7365 }; 7366 7367 jQuery(function($) { 7368 new Shopify.OptionSelectors('productSelect', { 7369 product: 7370 7371 7372 7373 7374 7375 {"id":8144957800663,"title":"LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777 GACOR INI DUATOTO 2026","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDUATOTO menghadirkan informasi link 2026 terbaru untuk Slot777 dan situs Toto, dengan akses yang praktis serta pembaruan seputar layanan dan permainan Toto yang sedang populer saat ini."}, 7376 onVariantSelected: selectCallback, 7377 enableHistoryState: true 7378 }); 7379 7380 // Add label if only one product option and it isn't 'Title'. Could be 'Size'. 7381 7382 7383 // Hide selectors if we only have 1 variant and its title contains 'Default'. 7384 7385 $('.selector-wrapper').hide(); 7386 7387 }); 7388 </script>
7388 7389 7390 7391 7392
7392<script type="application/ld+json"> 7393 { 7394 "@context": "http://schema.org", 7395 "@type": "Product", 7396 "offers": { 7397 "@type": "Offer", 7398 "availability":"https://schema.org/InStock", 7399 "price": 835000, 7400 "priceValidUntil": "2029-08-08", 7401 "priceCurrency": "IDR", 7402 "url": "https://duatotoperak.com/" 7403 }, 7404 "brand": { 7405 "@type": "Brand", 7406 "name": "Outerbloom Florist" 7407 }, 7408 "sku": "8144957800663", 7409 "gtin13": "SeoDuaTotoSiapBang", 7410 "name": "LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777 GACOR INI DUATOTO 2026", 7411 "description": "DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik.", 7412 "category": "DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik.", 7413 "url": "https://duatotoperak.com/", 7414 "image": { 7415 "@type": "ImageObject", 7416 "url": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426", 7417 "image": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426", 7418 "name": "LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777 GACOR INI DUATOTO 2026", 7419 "width": 1024, 7420 "height": 1024 7421 } 7422 } 7423 </script>
7423 7424 7425 7426 7427 7428 7429
7429<script id="bss-ltap-hide-price" type="text/javascript" > 7430 !function(e){var t={};function o(r){if(t[r])return t[r].exports;var c=t[r]={i:r,l:!1,exports:{}};return e[r].call(c.exports,c,c.exports,o),c.l=!0,c.exports}o.m=e,o.c=t,o.d=function(e,t,r){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(o.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var c in e)o.d(r,c,function(t){return e[t]}.bind(null,c));return r},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s=0)}([function(e,t,o){"use strict";function r(e){e.ltsp={},function(e){e.ltsp.quickView=function(){document.querySelectorAll(".quickview-button").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementById("add-to-cart-quickview-form");if(e){let t=e.querySelector(".groups-btn");t&&t.remove();let o=e.querySelector(".pieces");o&&o.remove();let r=e.querySelector(".bsscommerce-ltsp-message");r&&r.remove()}if(e=document.querySelector("[data-quickview-modal] .halo-modal-body"),e){let t=e.querySelector(".quantity");t&&t.remove()}}),1e3)}))})),document.querySelectorAll(".shop-now-button").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementById("ShopNowContainer");if(e){let t=e.querySelector("#AddToCart");t&&t.remove()}}),2e3)}))})),document.querySelectorAll(".collection__filter").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product-grid-item");if(o){let e=o.querySelector(".btn--quick-view");e&&e.remove()}}}),1500)}))})),document.querySelectorAll(".btn--icon.quick-product__btn").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product-grid__content");if(o){let e=o.querySelector(".payment-buttons");e&&e.remove()}}}),2e3)}))})),document.querySelectorAll(".product-facet__aside").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product-item");if(o){let e=o.querySelector('form[action="/cart/add"]');e&&e.remove();let t=o.querySelector(".product-item__quick-form");t&&t.remove()}}}),1500)}))})),document.querySelectorAll(".pagination").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product-item");if(o){let e=o.querySelector('form[action="/cart/add"]');e&&e.remove();let t=o.querySelector(".product-item__quick-form");t&&t.remove()}}}),1800)}))})),document.querySelectorAll(".collection-filters__sort").forEach((function(e){e.addEventListener("change",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".indiv-product");if(o){let e=o.querySelector('form[action="/cart/add"]');e&&e.remove()}}}),1500)}))}
7430)),document.querySelectorAll(".slideout__drawer-right, .sidebar_leftside_wapper, .filtering__results").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product-index");if(o){let e=o.querySelector(".js-quickview-trigger");e&&e.remove()}}}),1500)}))})),document.querySelectorAll("a.product-loop__quickview").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".large--one-half");if(o){let e=o.querySelector(".quick-smart-wrapper");e&&e.remove();let t=o.querySelector("#quantity-container");t&&t.remove();let r=o.querySelector(".js-prod-show-soldout");r&&r.remove()}}}),2e3)}))})),document.querySelectorAll(".quick-product__btn").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product-single__meta");if(o){let e=o.querySelector("div.payment-buttons");e&&e.remove()}}}),1e3)}))})),document.querySelectorAll(".btn--load-more").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".grid-view-item");if(o){let e=o.querySelector(".quick-add-button");e&&e.remove()}}}),1e3)}))})),document.querySelectorAll(".quick_shop").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product_section");if(o){let e=o.querySelector(".product_form .shopify-product-form .purchase-details"),t=o.querySelector(".product__details .modal_price .price-ui");e&&e.remove(),t&&t.remove()}}}),1e3)}))})),document.querySelectorAll(".qs-button ").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product-info-main");if(o){let e=o.querySelector(".qty-box");e&&e.remove();let t=o.querySelector(".btn.btn-cart");t&&t.remove();let r=o.querySelector(".product-single__sale-price");r&&r.remove();let c=o.querySelector(".product-addto-links");c&&c.remove()}}}),1e3)}))}));let e=document.querySelector("a[data-js-cart-icon]");if(e&&e.addEventListener("click",(function(){let e=document.querySelector(".quick-cart__control");e&&e.remove();let t=document.querySelector(".quick-cart__item-right");t.childNodes[3]&&(t.childNodes[3].innerHTML="Login to seen price")})),document.querySelectorAll(".quick-add-button-variants").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest("#AddToCartForm");if(o){let e=o.querySelector(".paymentButtonsWrapper");e&&e.remove()}}}),1e3)}))})),document.querySelectorAll(".product-thumbnail__quickshop-button").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product-details");if(o){let e=o.querySelectorAll(".bsscommerce-ltsp-message");e.length>1&&e.forEach((function(e,t){t>0&&e.remove()}));let t=o.querySelector(".product-form__cart-buttons");t&&t.remove();let r=o.querySelector(".product-form__quantity-box-wrapper");r&&r.remove()}}}),800)}))})),"b2b-dbodhi-singapore.myshopify.com"===window.Shopify.shop){let e=0;const t=window.location.pathname.includes("/collections");let o=!0;const r=function(){const e=setInterval((function(){let e=document.querySelectorAll(".thb-product-detail.product .bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t],r=o.closest(".thb-product-detail.product");if(r){let e=r.querySelector(".product-form");e&&e.remove()}r=o.closest("del"),r&&o.remove()}}),500);setTimeout(()=>{clearInterval(e)},6e3)},c=function(){const c=window.pageYOffset||document.documentElement.scrollTop;(c>e||!t||o)&&(document.querySelectorAll(".product-card-quickview").forEach((function(e){e.removeEventListener("click",r),e.addEventListener("click",r)}
7430)),o=!1),e=c<=0?0:c};if(c(),t){const e=function(){const e=c;let t;return()=>{clearTimeout(t),t=setTimeout(()=>{e.apply(this)},3e3)}};window.addEventListener("scroll",e())}}}}(e),function(e){e.ltsp.removeElementByLTSPMessage=function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message"),t=[],o=window.Shopify.shop;for(let r=0;r<e.length;r++){let c=e[r],l=[".grid-product__on-sale",".product-unit-price",".product-price-unit",".grid-link__sale_price","s",".price__compare",".product__compare-price",".price__unit",".card__price--regular",".sale-tag",".compare-price",".old-price",".savings",".was_price",".price--compare",".price-compare",".was"];if("stark-hockey.myshopify.com"===o){const e=c.closest(".product-index");if(e){const t=e.querySelector(".product-modal");t&&t.remove()}continue}let s=c.closest(".product-parent");if(s){let e=s.querySelector("form .tt-btn-addtocart");e&&t.push(e);let o=s.querySelector(".tt-btn-quickview");o&&t.push(o)}if(s=c.closest(".ProductItem"),s){let e=s.querySelector(".quickshop-btn");if(e&&t.push(e),"shrimptoncouture-com.myshopify.com"===o){let e=s.querySelector(".ProductItem__PriceList");e&&e.classList.remove("ProductItem__PriceList")}}if(s=c.closest(".product-item--vertical"),s){if("sparklinbluewholesale.myshopify.com"===o){let e=s.querySelector(".product-item__info .product-item__price-list");e&&t.push(e)}let e=s.querySelector(".product-item__info .product-item__action-button");e&&t.push(e),e=s.querySelector(".product-form__payment-container"),e&&t.push(e)}if(s=c.closest(".card-wrapper.underline-links-hover"),s&&"friends-forever-pets.myshopify.com"===o){let e=s.querySelector(".card__content .quick-add");e&&t.push(e);let o=s.querySelector(".card-information .price__sale .price-item.price-item--regular");o&&t.push(o)}if(s=c.closest(".modal_price"),s&&window.Shopify&&"casa-barba.myshopify.com"!==window.Shopify.shop&&"prideandgroom-wholesale.myshopify.com"!==window.Shopify.shop){let e=s.querySelector(".price-ui");e&&t.push(e)}if(s=c.closest(".info.has-padding-top"),s){let e=s.querySelector(".compare-at-price");e&&t.push(e)}if(s=c.closest(".product-thumbnail__price.price"),s){let e=s.querySelector(".money");e&&t.push(e)}if(s=c.closest(".search-result__description"),s){let e=s.querySelector(".money");e&&t.push(e)}if(s=c.closest(".product__price"),s){let e=s.querySelector("[data-product-price][bss-custom-ltsp-attribute]");e&&t.push(e)}if(s=c.closest("#template-product"),s){let e=s.querySelector(".product-form.cart-bar__form");e&&t.push(e)}if("showroom1-ducanero.myshopify.com"===o){if(s=c.closest(".product-area")||c.closest(".price"),s){let e=s.querySelector(".price-area")||s.querySelector(".theme-money");e&&t.push(e)}}else if(s=c.closest(".product-area__details"),s){let e=s.querySelector(".product-detail__form__action");e&&t.push(e);let o=s.querySelector(".quantity-wrapper");o&&t.push(o)}if("quincaillerie-euroline.myshopify.com"===o&&(s=c.closest(".product-form__info-content"),s)){let e=s.querySelector(".price-list");e&&t.push(e)}if(s=c.closest(".product-form__buttons"),s&&t.push(s),s=c.closest(".product-wrap-2"),s){let e=s.querySelector(".product-action-2");e&&t.push(e)}if(s=c.closest(".span6"),s){let e=s.querySelector(".purchase>input"),o=s.querySelector(".price-container>#price-preview"),r=s.querySelector(".price-container>.vat-price");e&&t.push(e),o&&t.push(o),r&&t.push(r)}if(s=c.closest(".product__page"),s){let e=s.querySelector(".quantity-selector");e&&t.push(e)}if(s=c.closest(".product_details_info"),s){let e=s.querySelector(".pro-detail-button"),o=s.querySelector(".price-box");e&&t.push(e),o&&t.push(o)}if(s=c.closest(".product-content"),s){let e=s.querySelector(".product-action");e&&t.push(e)}if(s=c.closest(".product-view .single-product-wrap"),s){let e=s.querySelector(".add-to-cart");e&&t.push(e)}if(s=c.closest(".collection-category .owl-stage .owl-item"),s){let e=s.querySelector(".add-to-cart");e&&t.push(e)}if(s=c.closest(".product__details"),s){let e=s.querySelector(".product-wrap .thumbnail-overlay .info .price ");e&&t.push(e);let o=s.querySelector(".product-details .price .current_price .money ");o&&t.push(o)}if(s=c.closest(".product_row"),s){let e=s.querySelector(".three-fourths .info .price ");e&&t.push(e)}if(s=c.closest(".thubnail-desc"),s){let e=s.querySelector(".quatity-stock");e&&t.push(e);let o=s.querySelector(".Payment_button");o&&t.push(o)}if(s=c.closest(".single-ponno-product"),s){let e=s.querySelector(".pro-actions-link");e&&t.push(e);let o=s.querySelector(".pro-add-cart");o&&t.push(o)}if(s=c.closest(".product-single__meta"),s){let e=s.querySelector("div.product-form__controls-group.product-form__controls-group--submit");e&&e.setAttribute("style","visibility:hidden")}if("homewarerus.myshopify.com"!=window.Shopify.shop&&(s=c.closest(".product-item__info"),s)){let e=s.querySelector("form.product-item__action-list.button-stack");e&&e.remove()}
7430if("bluebasketb2b.myshopify.com"===window.Shopify.shop){if(s=c.closest(".card-information"),s){let e=s.querySelector(".price__sale .price-item--sale.sale-percentage");e&&t.push(e)}if(s=c.closest("tr.cart-item[id*=Cart]"),s){let e=s.querySelector(".cart-item__quantity");e&&e.remove();let t=s.querySelector(".cart-item__totals");t&&t.remove()}}if(s=c.closest(".product-form"),s){let e=s.querySelector(".quantity-submit-row__submit");e&&e.remove();let o=s.querySelector(".product-form__info-list .product-form__info-item.product-form__info-item--quantity .product-form__info-content .quantity-selector.quantity-selector--product");o&&t.push(o)}if(s=c.closest(".product-grid__detail"),s){let e=s.querySelector(".product-form-block form");e&&e.remove()}if(s=c.closest(".tab-body"),s){if(s.querySelector(".purchase-section button, .btn.add-to-cart")){let e=setInterval((function(){let e=document.querySelector(".tab-body .purchase-section button, .tab-body .btn.add-to-cart"),t=document.querySelector(".swym-button-bar.swym-wishlist-button-bar");e&&e.remove(),t&&t.remove()}),200);setTimeout((function(){clearInterval(e)}),1e4)}}if(s=c.closest(".item.relative.product-id.item-row"),s){let e=s.querySelector(".quantity.form");e&&e.remove()}if(s=c.closest(".product-form"),s){let e=s.querySelector(".buy-buttons-row");e&&t.push(e)}if(s=c.closest(".product-grid-item"),s){let e=s.querySelector(".btn--quick-view");e&&t.push(e)}if(s=c.closest(".featured__collection-product"),s){let e=s.querySelector(".js-quickview-trigger");e&&t.push(e)}if(s=c.closest(".product-index"),s){let e=s.querySelector(".js-quickview-trigger");e&&t.push(e)}if(s=c.closest(".product-bottom"),s){let e=s.querySelector(".quantity-selector, .product-add");e&&t.push(e)}if(s=c.closest(".js-sticky-cart"),s){let e=s.querySelector(".sticky-add");e&&t.push(e)}if(s=c.closest(".product-details"),s){let e=s.querySelector(".shopify-payment-button");e&&t.push(e);let r=s.querySelector(".payment-and-quantity__add");r&&t.push(r);let c=s.querySelector(".price__compare-at.visible");c&&"coventa-demo.myshopify.com"===o&&t.push(c)}if(s=c.closest(".product-block__inner"),s){let e=s.querySelector(".quick-buy");e&&t.push(e)}if(s=c.closest(".content-summary"),s){let e=s.querySelector("form.cart");e&&t.push(e)}if(s=c.closest('div[data-pf-type="Section"]'),s){let e=s.querySelector('div[data-pf-type="ProductQuantity"]');e&&t.push(e);let o=s.querySelector('button[data-pf-type="ProductATC"]');o&&t.push(o)}if(s=c.closest(".pc-inner"),s){let e=s.querySelector('form[action="/cart/add"]');e&&t.push(e);let o=s.querySelector(".quick_shop");o&&t.push(o)}if(s=c.closest(".product-info-inner"),s){let e=s.querySelector('form[action="/cart/add"]');e&&t.push(e)}if(s=c.closest(".product-details-inline"),s){let e=s.querySelector(".product-quantity");e&&t.push(e)}if(s=c.closest(".product-card"),s){let e=s.querySelector(".js-grid-cart");e&&t.push(e);let o=s.querySelector(".card-header .card-button-hover");o&&t.push(o);let r=s.querySelector(".product-card__quick-buy");r&&t.push(r);let c=s.querySelector("compare-at-price");c&&t.push(c);let l=s.querySelector(".product-card__badge-list");l&&t.push(l)}if(s=c.closest(".product__info"),s){let e=s.querySelector(".product-form__buy-buttons button");e&&t.push(e);let o=s.querySelector(".product-form__quantity");o&&t.push(o)}if(s=c.closest(".product-sticky-form__inner"),s){let e=s.querySelector(".product-sticky-form__payment-container");e&&t.push(e)}if("homewarerus.myshopify.com"!=window.Shopify.shop&&(s=c.closest(".product-item"),s)){let e=s.querySelector('form[action="/cart/add"]');e&&t.push(e);let o=s.querySelector(".product-item__quick-form");o&&t.push(o)}if(s=c.closest(".shopify-product-form"),s){let e=s.querySelector("div.quantity");e&&t.push(e)}if(s=c.closest(".product-body"),s){let e=s.querySelector(".product-cta-wrapper");e&&t.push(e)}if(s=c.closest(".tt-product-single-info"),s){let e=s.querySelector("form .btn-addtocart");e&&t.push(e);let o=s.querySelector('form[action*="/cart/add"]');o&&t.push(o)}if(s=c.closest(".product-details-wrapper"),s){let e=s.querySelector(".product-form");e&&t.push(e)}if(s=c.closest(".product-inner"),s){let e=s.querySelector(".product-card-interactions");e&&t.push(e)}if(s=c.closest(".product-single__meta"),s){let e=s.querySelector(".add-to-cart");if(e)if(window.Shopify&&"bundlecomph.myshopify.com"===window.Shopify.shop){e.disabled=!0;let o=s.querySelector(".payment-buttons"),r=s.querySelector(".shopify-payment-button");o&&o.classList.remove("payment-buttons"),r&&t.push(r)}else t.push(e)}if(s=c.closest(".grid-view-item"),s){let e=s.querySelector(".thumbnail-buttons");e&&t.push(e)}if(s=c.closest(".product-single__meta"),s){let e=s.querySelector(".product-form:not(.product-form-product--static):not(.product-form-product-template)");e&&t.push(e)}if(s=c.closest(".pf-product-form"),s){let e=s.querySelector(".sc-lkgURy");e&&t.push(e);let o=s.querySelector(".sc-gzcbmu");o&&t.push(o);let r=s.querySelector(".add-to-cart");r&&t.push(r)}if(s=c.closest(".large--one-half"),s){let e=s.querySelector(".product-smart-wrapper");e&&t.push(e);let o=s.querySelector('div.btn[onmouseup="showProductsDesigner(this)"]');o&&t.push(o);let r=s.querySelector("button.js-prod-show-soldout");r&&t.push(r)}if(s=c.closest("#add-to-cart-form"),s)if("led-signcity.myshopify.com"===o){let e=s.querySelector(".atc-btn");e&&t.push(e);let o=s.querySelector(".price");o&&o.classList.remove("price")}else{let e=s.querySelector(".groups-btn");e&&t.push(e),t.push(c)}
7430if(s=c.closest(".product-shop"),s&&"led-signcity.myshopify.com"!==o){let e=s.querySelector(".groups-btn");e&&t.push(e)}if(s=c.closest(".who-qof-table"),s&&s.classList.add("bsscommerce-hide-price"),s=c.closest(".price-sale"),s){let e=s.querySelector(".old-price");e&&t.push(e);let o=s.querySelector("em");o&&(o.innerHTML="")}if(s=c.closest(".product-details"),s){let e=s.querySelector(".action");e&&t.push(e)}if(s=c.closest(".product_section"),s){let e=s.querySelector("form .add_to_cart, form .b2b-ajax-submit");e&&t.push(e);let o=s.querySelector(".sale.savings");o&&t.push(o);let r=s.querySelector(".purchase-details button.button--add-to-cart");r&&t.push(r);let c=s.querySelector(".purchase-details .purchase-details__quantity.product-quantity-box");c&&t.push(c);let l=s.querySelector(".product__details .modal_price .price-ui");l&&t.push(l)}if(s=c.closest(".quick-shop-style--inline"),s){let e=s.querySelector("form .add_to_cart, form .b2b-ajax-submit");e&&t.push(e)}if(s=c.closest(".product-details"),s){let e=s.querySelector("small em");e&&t.push(e)}if(s=c.closest(".gt_product-body"),s){let e=s.querySelector("form .gt_product-addtocart");e&&t.push(e);let o=s.querySelector(".gt_product-saved");o&&t.push(o);let r=s.querySelector(".gt_product-price--compare");r&&t.push(r)}if(s=c.closest(".gt_product_content"),s){let e=s.querySelector("form .gt_product-addtocart");e&&t.push(e);let o=s.querySelector(".gt_product-price--compare");o&&t.push(o)}if(s=c.closest(".gt-single-product"),s){let e=s.querySelector("div.gt_method_addToCart");e&&t.push(e);let o=s.querySelector(".gt_product-price--compare");o&&t.push(o)}if(s=c.closest("#cont-form"),s){let e=s.querySelector("form .cont-add-btns");e&&t.push(e)}if(s=c.closest(".theiaStickySidebar"),s){let e=s.querySelector(".variations_button");e&&t.push(e)}if(s=c.closest(".product--price-wrapper"),s){let e=s.querySelector(".product--compare-price");e&&t.push(e)}if(s=c.closest(".product-submit"),s){let e=s.querySelector(".payment-buttons-container");e&&t.push(e)}if(s=c.closest(".product-price"),s){let e=s.querySelector(".product-price-compare");e&&t.push(e)}if(s=c.closest(".product-list-item"),s){let e=s.querySelector(".original"),o=s.querySelector(".product-list-item-badge");e&&t.push(e),o&&t.push(o)}if(s=c.closest(".productitem"),s){let e=s.querySelector(".productitem--action");e&&t.push(e);let o=s.querySelectorAll(".bss-ltsp-to-remove");if(o.length)for(let e of o)t.push(e)}if(s=c.closest(".product--outer"),s){let e=s.querySelector(".product-form--atc");e&&t.push(e),e=s.querySelector(".shopify-payment-button"),e&&t.push(e)}if(s=c.closest(".Container"),s)if(window.Shopify&&"mama-shawna.myshopify.com"===window.Shopify.shop){let e=s.querySelector("form.ProductForm");if(window.__st&&e){__st.cid&&t.push(e)}}else{let e=s.querySelector(".ProductForm__BuyButtons");e&&t.push(e)}if(s=c.closest(".product-grouped"),s){let e=s.querySelector(".product_top form#add-to-cart-form");e&&t.push(e)}if(s=c.closest(".product-item"),s){let e=s.querySelector(".product-top .product-des .action"),o=s.querySelector(".slideup");if(e&&t.push(e),o&&t.push(o),o=s.querySelector(".card-quickview"),o&&t.push(o),window.Shopify&&"sitchish.myshopify.com"===window.Shopify.shop){let e=s.querySelector(".product-item-price .money");e&&e.classList.remove("money")}}if(s=c.closest(".modal_price"),s){let e=s.querySelector(".was_price");e&&t.push(e)}if(s=c.closest(".info"),s){let e=s.querySelector(".was_price");e&&t.push(e)}if(s=c.closest(".product-item"),s){let e=s.querySelector('.product-item__action-button[data-action="add-to-cart"]');e&&t.push(e)}if(s=c.closest(".grid__item.grid-product"),s){let e=s.querySelector('form[action="/cart/add"] input[type="submit"]');e&&t.push(e);let r=s.querySelector(".grid-product__tag");r&&t.push(r);let c=s.querySelector(".visually-hidden");c&&t.push(c);let l=s.querySelector(".quick-product__btn");l&&"comphycompany.myshopify.com"===o&&t.push(l)}if(s=c.closest(".product-info"),s){let e=s.querySelector('form[action="/cart/add"] .payment-buttons');e&&t.push(e);let o=s.querySelector(".variant-wrapper.variant-wrapper--button");o&&t.push(o);let r=s.querySelector(".form .product-actions .product-actions-add-to-cart");r&&t.push(r);let c=s.querySelector(".product-price__compare");
7430c&&t.push(c),c=s.querySelector("compare-at-price"),c&&t.push(c);let l=s.querySelector("unit-price");l&&t.push(l),e=s.querySelector(".buy-buttons"),e&&t.push(e);let u=s.querySelector(".product-info__badge-list");u&&t.push(u)}if(s=c.closest(".price"),s){if(s.textContent.includes("From")){let e=s.innerHTML;s.innerHTML=e.replace("From","")}}if(s=c.closest("#product-right"),s){let e=s.querySelector(".was");e&&t.push(e);let o=s.querySelector(".product-add");o&&t.push(o)}if(s=c.closest(".was"),s&&t.push(s),s=c.closest(".product-single__meta"),s){let e=s.querySelector(".pf__actions");e&&t.push(e);let o=s.querySelector("div.product-form__controls-group.product-form__controls-group--submit");o&&o.setAttribute("style","visibility:hidden")}if(s=c.closest(".product-item"),s){let e=s.querySelector(".product-item__add");e&&t.push(e)}if(s=c.closest(".grid-item"),s){let e=s.querySelector("#addToCart-product-template");e&&t.push(e);let o=s.querySelector(".payment-buttons");o&&t.push(o)}if(s=c.closest(".product-single__meta"),s){let e=s.querySelector("div.payment-buttons");e&&e.remove()}if(s=c.closest(".modal--root"),s){let e=s.querySelector(".product-form--button-container");e&&t.push(e)}if(s=c.closest(".product-item__info"),s){let e=s.querySelector("a.product-item__action-button.button.button--small.button--primary");e&&t.push(e)}if(s=c.closest(".product-form__info-list"),s){let e=s.querySelector("div.product-form__info-item.product-form__info-item--quantity");e&&t.push(e)}if(s=c.closest(".large--three-fifths"),s){let e=s.querySelector(".multivariants_setbox_footer");e&&t.push(e)}if(s=c.closest(".product-info-main"),s){let e=s.querySelector(".qty-box");e&&t.push(e);let o=s.querySelector(".btn.btn-cart");o&&t.push(o);let r=s.querySelector(".shopify-payment-button");r&&t.push(r)}if(s=c.closest(".product-miniature"),s){let e=s.querySelector(".qty-box");e&&t.push(e);let o=s.querySelector(".product.actions.product-item-actions");o&&t.push(o)}if(s=c.closest("#AddToCartForm"),s){let e=s.querySelector(".paymentButtonsWrapper");e&&t.push(e)}if(s){let e=s.querySelector("#product-add");e&&e.remove()}if(s){let e=s.querySelector("#product-price>.product-price");e&&e.remove()}if(s=c.closest(".grid-view-item"),s){let e=s.querySelector(".quick-add-button");e&&t.push(e)}if("tinalykkegaard.myshopify.com"===o){if(s=c.closest(".main-product__details>.main-product__details-wrapper"),s){let e=s.querySelector(".main-product__actions .main-product__form-buttons");e&&e.remove()}if(s=c.closest(".product-grid .product-card"),s){let e=s.querySelector('form[action="/cart/add"]');e&&e.remove()}}if(s=c.closest(".product-item-caption"),s){let e=s.querySelector(".product-form__item--submit");e&&t.push(e)}if(s=c.closest(".product-item-caption"),s){let e=s.querySelector(".product-form__item--quantity");e&&t.push(e)}if(s=c.closest(".productgrid--item"),s){let e=s.querySelector(".productitem--actions");e&&t.push(e)}if(s=c.closest(".product-single__info-wrapper"),s){let e=s.querySelector(".product-form__quantity-submit");e&&t.push(e);let o=s.querySelector(".shopify-payment-button");o&&t.push(o)}if(s=c.closest(".qv-content"),s){let e=s.querySelector(".qv-add-button");e&&t.push(e);let o=s.querySelector(".qv-quantity");o&&t.push(o)}if(s=c.closest(".product-card"),s){let e=s.querySelector(".btn-grid-cart");e&&t.push(e)}if(s=c.closest(".product_single_detail_section"),s){let e=s.querySelector("#AddToCart");e&&t.push(e);let o=s.querySelector(".shopify-payment-button__button");o&&t.push(o);let r=s.querySelector(".quantity-label");r&&t.push(r);let c=s.querySelector(".quantity_width");c&&t.push(c)}if(s=c.closest(".product-single__meta"),s){let e=s.querySelector("#AddToCart--product-template");e&&t.push(e);let o=s.querySelector(".shopify-payment-button");o&&t.push(o)}if(s=c.closest('form[action="/cart/add"]'),s){let e=s.querySelector(".product-page-info__field");e&&t.push(e);let o=s.querySelector(".product-page-info__button-add-to-cart");o&&t.push(o);let r=s.querySelector(".js-store-lists-add-wishlist");r&&t.push(r);let c=s.querySelector(".product-collection__control");c&&t.push(c)}if(s=c.closest(".grid-item__content"),s){let e=s.querySelector(".quick-add-btn");if(e&&t.push(e),window.Shopify&&"sparklinbluewholesale.myshopify.com"===window.Shopify.shop){let e=s.querySelector(".grid-product__price--original"),o=s.querySelector(".grid-product__price--savings"),r=s.querySelector(".quick-product__btn");e&&t.push(e),o&&t.push(o),r&&t.push(r)}}if(s=c.closest(".purchase-box"),s){let e=s.querySelector("#AddToCart-product-template");e&&e.remove();let t=s.querySelector(".quantity-product-template");t&&t.remove()}if(s=c.closest(".item-row"),s){let e=s.querySelector(".add-to-cart");e&&t.push(e)}if(s=c.closest(".product-thumbnail__price"),s){let e=s.querySelectorAll(".bsscommerce-ltsp-message");e.length>1&&e.forEach((function(e,o){o>0&&t.push(e)}))}if(s=c.closest(".product-details"),s){let e=s.querySelector(".product__add-to-cart-button");e&&t.push(e);let r=s.querySelector(".product-form__quantity-box-wrapper");if(r&&t.push(r),"sitchish.myshopify.com"===o){let e=s.querySelector("#product-price");e&&(e.id="");let o=s.querySelector("[data-product-price]");o&&o.removeAttribute("data-product-price");let r=s.querySelector(".form-actions");r&&t.push(r)}let c=s.querySelector(".product-quantity");if(c&&t.push(c),"lavabis-hygiene.myshopify.com"===o){let e=s.querySelector(".price-preview.price");e&&(e.id="")}}if(s=c.closest(".product-details"),s){let e=s.querySelector("#add-to-cart-product-template");e&&t.push(e);let o=s.querySelector(".shopify-payment-button__button");o&&o.remove();let r=s.querySelector(".quantity");r&&t.push(r)}if(s=c.closest(".gryffeditor"),s){let e=s.querySelector(".gf_product-quantity");e&&e.parentElement.remove()}if(s=c.closest("#ProductSection-product-template"),s){let e=s.querySelector(".cbb
7430-frequently-bought-add-button");e&&e.remove();let t=s.querySelector(".cbb-frequently-bought-form");t&&t.remove()}if(s=c.closest(".product__info-wrapper"),s){let e=s.querySelector(".product-form__quantity");e&&e.remove();let t=s.querySelector(".product-form__buttons");t&&t.remove()}if(s=c.closest(".product-form"),s){let e=s.querySelector(".product-form__payment-container");e&&e.remove();let o=s.querySelector("#price");if(o&&o.classList.remove("product-price"),window.Shopify&&"wilkens-gmbh.myshopify.com"===window.Shopify.shop){let e=s.querySelector(".unit-price");e&&t.push(e)}}if(s=c.closest(".product-details"),s){let e=s.querySelector(".button-common");e&&e.remove()}if(s=c.closest(".caption"),s){let e=s.querySelector(".button.btn-cart");e&&t.push(e)}if(s=c.closest(".product-info-main"),s){let e=s.querySelectorAll(".form-group")[1];e&&t.push(e);let o=s.querySelector(".price");o&&(o.id="")}if(s=c.closest(".form_buy_sticky"),s){let e=s.querySelector(".form-group .btn.button.button-cart");e&&t.push(e);let o=s.querySelector(".form-group input#Quantity");o&&t.push(o)}if(s=c.closest(".product-template__container"),s){let e=s.querySelector(".store-availability-container");e&&e.remove()}if(s=c.closest(".product-form--container"),s){let e=s.querySelector(".product-form--options");e&&t.push(e);let o=s.querySelector(".product-form--smart-payment-buttons");o&&t.push(o)}if(s=c.closest(".product--price-wrapper"),s){let e=s.querySelector('.product--from[data-item="accent-text"]');e&&t.push(e)}if(s=c.closest("#zpproductselectorfull1-wrapper"),s){let e=s.querySelector(".zpa-button-alignment-center");e&&t.push(e);let o=s.querySelector(".zpa-quantity-block");o&&t.push(o)}if(s=c.closest(".zpa-multi-product-buy-box"),s){let e=s.querySelector(".zpa-button-alignment-center");e&&t.push(e)}if(s=c.closest(".product-block__inner"),s){let e=s.querySelector('form[action="/cart/add"].product-form.product-form--mini');if(e&&t.push(e),window.Shopify&&"wilkens-gmbh.myshopify.com"===window.Shopify.shop){let e=s.querySelector(".unit-price");e&&t.push(e)}}if(s=c.closest(".was-price.theme-money"),s&&t.push(s),s=c.closest(".box_product_page"),s){let e=s.querySelector(".product-options-bottom");e&&t.push(e)}if(s=c.closest(".product-default"),s){let e=s.querySelector(".add-links.clearfix");e&&t.push(e)}if(s=c.closest(".grid__item.medium-up--three-eighths"),s){let e=s.querySelector('form[action="/cart/add"].shopify-product-form');e&&t.push(e)}if(s=c.closest(".indiv-product"),s){let e=s.querySelector('form[action="/cart/add"]');e&&t.push(e)}if(s=c.closest('form.product-form[action="/cart/add"]'),s){let e=s.querySelector(".sf__pcard-image .sf__pcard-quick-add");e&&t.push(e);let o=s.querySelector(".main-product__block-buy_buttons");o&&t.push(o)}if(s=c.closest(".product-grid-item.woodmart-hover-base"),s){let e=s.querySelector(".fade-in-block");e&&t.push(e);let o=s.querySelector(".product-compare-button");o&&t.push(o)}if(s=c.closest(".grid__item"),s){if("www-bonmatch-com.myshopify.com"===o){let e=s.querySelector(".selector-wrapper.bcpo-file"),o=s.querySelector(".uploadkit.uploadkit-injected"),r=s.querySelector(".uploadkit-form");e&&t.push(e),o&&r&&r.appendChild(o)}let e=s.querySelector(".product__submit__buttons");e&&t.push(e);let r=s.querySelector(".products > .product-detail > .product-button"),c=s.querySelector(".products > .product-container > .product-button > .quick-view-text");r&&t.push(r),c&&t.push(c);let l=s.querySelector("button#AddToCart"),u=s.querySelector('[data-shopify="payment-button"].shopify-payment-button');if(l&&t.push(l),u&&t.push(u),"tienda-suca-bikes.myshopify.com"===o){let e=s.querySelector(".product__unit-price.product__unit-price--spacing"),t=s.querySelector(".c_p-quantity-input-parent"),o=s.querySelector(".masIva"),r=s.querySelector(".c_col-sw-btn");e&&e.classList.remove("hide"),t&&t.remove(),o&&o.remove(),r&&r.remove()}if("youchique-4183.myshopify.com"===o){let e=s.querySelector(".card-information__button");e&&t.push(e);let o=s.querySelector(".swym-wishlist-button-bar");o&&t.push(o)}if("stelladetailsb2b.myshopify.com"===o){let e=s.querySelector(".bss-b2b-product-vat");e&&t.push(e);let o=s.querySelector("#bss-b2b-tax-inc-excl");o&&t.push(o);let r=s.querySelector(".bss-b2b-collection-item-vat");r&&t.push(r);let c=s.querySelector(".price__regular");if(c){c.classList.remove("price__regular");let e=s.querySelector(".price-item--regular");e&&e.classList.remove("price-item--regular")}let l=s.querySelector(".price__sale");l&&t.push(l)}let i=s.querySelector("quick-view-drawer");
7430i&&t.push(i);let p=s.querySelector("add-to-cart");p&&t.push(p)}if(s=c.closest(".shop-the-look__product-info"),s){let e=s.querySelector('form[action="/cart/add"]');e&&t.push(e)}if(s=c.closest(".popover.popover--quick-buy"),s){let e=s.querySelector(".product-form__buy-buttons");e&&t.push(e)}if(s=c.closest(".product__section.product-template .product__section-content .product__section-details"),s){let e=s.querySelector('form[action="/cart/add"] input#addToCart');e&&t.push(e)}if(s=c.closest(".product-item__info-inner"),s){let e=s.querySelector(".unit-price-measurement");e&&t.push(e)}if(s=c.closest(".product-form__info-item"),s){let e=s.querySelector(".unit-price-measurement");e&&t.push(e)}if(s=c.closest("div[data-product-blocks]"),s){let e=s.querySelector(".payment-buttons");e&&t.push(e);let o=s.querySelector(".spt-wishlist-button__wrapper");o&&t.push(o)}if(s=c.closest(".sf__pcard-content.text-center"),s){let e=s.querySelector("button.add-to-cart.sf__btn");e&&t.push(e)}if(s=c.closest(".product-details.section"),s){let e=s.querySelector('form#AddToCartForm.product-content-inner[action="/cart/add"]');e&&t.push(e)}if(s=c.closest(".search-item .product-item, .product-grid-row .product-item"),s){let e=s.querySelector(".product-img .action-btn");e&&t.push(e)}if(s=c.closest(".product-collection__content,.product-page-info"),s){let e=s.querySelector(".js-product-button-add-to-cart");e&&t.push(e)}if(s=c.closest(".details-info"),s){let e=s.querySelector(".group-button .add-to-cart");e&&t.push(e)}if(s=c.closest(".product-collection"),s){let e=s.querySelector(".group-button .add-to-cart");e&&t.push(e)}let u=c.closest("[data-js-product-price]");if(u&&u.setAttribute("bss-ltsp-active",""),s=c.closest(".product__info-container"),s){let e=s.querySelector('.form[data-type="add-to-cart-form"] > .shopify-payment-button[data-shopify="payment-button"]');e&&t.push(e)}if(s=c.closest(".products"),s){let e=s.querySelector(".product-container > .product-button > .variants > .add-cart-btn"),o=s.querySelector(".product-container > .product-button > .quick-view-text");e&&t.push(e),o&&t.push(o)}if(s=c.closest(".dt-sc-tabs-container"),s){let e=s.querySelector(".dt-sc-tabs-content > .tab2 > .owl-stage-outer > .owl-stage > .owl-item > .item-row > .products > .product-container > .product-button > .variants > .add-cart-btn");e&&t.push(e)}if(s=c.closest(".wrapper-container"),s){let e=s.querySelector(".recently-viewed-products > .products-grid > .grid__item > .product-item > .products > .product-bottom > .price-box > .regular-product > .special-price"),o=s.querySelector(".recently-viewed-products > .products-grid > .grid__item > .product-item > .products > .product-bottom > .action > .variants > .add-to-cart-btn");e&&t.push(e),o&&t.push(o)}if(s=c.closest(".featured__collection-product.product-index"),s){let e=s.querySelector(".product_listing_options");e&&t.push(e)}if(s=c.closest(".product-index"),s){let e=s.querySelector(".product_listing_options");e&&t.push(e)}if(s=c.closest(".product__section-details"),s){let e=s.querySelector(".product__section-details__inner
7430--product_buttons");e&&t.push(e)}if(s=c.closest(".product-page--cart-form-block"),s){let e=s.querySelector(".add-to-cart");e&&t.push(e)}if(s=c.closest(".price__sale"),s){let e=s.querySelector(".price-item--regular");e&&t.push(e)}if(s=c.closest(".product-item-v1"),s){let e=s.querySelector(".price-old"),o=s.querySelector(".product-icon-action");e&&t.push(e),o&&t.push(o)}if(s=c.closest(".detail-info > .relative"),s){let e=s.querySelector("#AddToCartForm > .btn-action"),o=s.querySelector('div.shopify-payment-button[data-shopify="payment-button"]'),r=s.querySelector(".product-price > del");e&&t.push(e),o&&t.push(o),r&&t.push(r)}if(s=c.closest(".product-details"),s){let e=s.querySelector(".product-block--form>.product-form--regular");e&&"eurosafetysystems.myshopify.com"!==o&&e.remove();let t=s.querySelector(".button-cart");t&&t.remove()}if("annabellenoeldesigns-com.myshopify.com"==o&&(s=c.closest(".product-block-list__item .card__section"),s)){let e=s.querySelector("#MULTIVARIANTS_APP_SECTION_PLACE .multivariants_block_qty_box");e&&e.remove();let t=s.querySelector("#MULTIVARIANTS_APP_SECTION_PLACE .multivariants_block_last_holder .multivariants_block_prc_holder");t&&t.remove();let o=s.querySelector("#MULTIVARIANTS_APP_SECTION_PLACE #multivariants_add_to_cart_button_h");o&&o.remove();let r=s.querySelector("#MULTIVARIANTS_APP_SECTION_PLACE #multivariants_block_subtotal_h");r&&r.remove()}if("fedua-b2b.myshopify.com"==o){if(s=c.closest(".gp-product-detail .container"),s){let e=s.querySelector(".gp-product-main-button button[type='submit']");e&&e.remove();let t=s.querySelector(".cbb-also-bought-add-to-cart-button");t&&t.remove();let o=s.querySelector(".cbb-also-bought-product-price-container");o&&o.remove()}if(s=c.closest(".gp-product-widget .product-card-grid"),s){let e=s.querySelector(".product-buttons .btn-quick-view ");e&&e.remove()}}if(s=c.closest(".product--price-container"),s){let e=s.querySelectorAll(".product--price-wrapper > a");e.length&&e.forEach(e=>e.remove())}if("linis-bites-b2b.myshopify.com"==window.location.host&&c.querySelector("[bss-customize-ltsp-message]")){let e=c.closest(".price .price__container");if(e){let o=e.querySelector(".unit-price.caption");o&&t.push(o)}}if(s=c.closest(".product-price--wrapper"),s){let e=s.querySelector(".product-price--compare");e&&e.remove()}if(s=c.closest(".price__pricing-group"),s){let e=s.querySelector(".price-item.price-item--regular[data-regular-price]");e&&(e.classList.remove("price-item"),e.classList.remove("price-item--regular"))}if(l.forEach((function(e){c.closest(e)&&t.push(c.closest(e))})),s=c.closest(".product-page-info"),s){let e=s.querySelector("[data-js-footbar-product-limit]");e&&t.push(e)}if(s=c.closest(".product-wrap"),s){let e=s.querySelector(".purchase-details button.button--add-to-cart"),o=s.querySelector(".product-action");if(e&&t.push(e),o&&t.push(o),window.Shopify&&"dermafirmusa.myshopify.com"===window.Shopify.shop){let e=s.querySelector(".price.sale");e&&t.push(e)}}if(s=c.closest(".seven.columns.omega"),s){let e=s.querySelector(".purchase-details__buttons button.shopify-payment-button__button ");e&&t.push(e)}if(s=c.closest("#collectionPr"),s){let e=s.querySelectorAll("#PageContainer .collection .btn.add-to-cart");e.length&&e.forEach(e=>{t.push(e)})}if(s=c.closest(".grid.product-single"),s){let e=s.querySelector('#PageContainer .wrap-product-info button[type="submit"].btn.btn1.pr_btn.addtocart_js');e&&t.push(e)}if(s=c.closest(".gryffeditor"),s){let e=s.querySelector(".module-wrap .gf_add-to-cart.product-form-product-template");e&&t.push(e)}if(s=c.closest(".product-single .product-single__meta"),s){let e=s.querySelector('.product-form__item button[name="add"].product-form__cart-submit');e&&t.push(e)}if(s=c.closest(".shopify-product-form"),s){let e=s.querySelector("#product-price");e&&t.push(e)}if(s=c.closest(".product-item-price"),s){let e=s.querySelector(".money");e&&t.push(e)}if(s=c.closest('main#main[role="main"]'),s){let e=s.querySelector("div.atc-bar");e&&t.push(e)}if(s=c.closest("#CartDrawer"),s){let e=s.querySelector("#CartDrawer-CartItems .cart-item .cart-item__details dl .product-option");e&&t.push(e);let o=s.querySelector("#CartDrawer-CartItems .cart-item .cart-item__totals .cart-item__price-wrapper");o&&t.push(o);let r=s.querySelector("#CartDrawer-CartItems .cart-item .cart-item__quantity");r&&t.push(r);let c=s.querySelector(".drawer__footer");c&&t.push(c)}if(s=c.closest("#main-cart-items"),s){let e=s.querySelector(".cart-item .cart-item__details dl .product-option");e&&t.push(e);let o=s.querySelector(".cart-item .cart-item__quantity .cart-item__quantity-wrapper");o&&t.push(o);let r=s.querySelector(".cart-item .cart-item__totals.right.small-hide .cart-item__price-wrapper");r&&t.push(r)}if(s=c.closest("#main-cart-footer"),s){let e=s.querySelector(".cart__footer");e&&t.push(e)}if(s=c.closest(".product-single__meta"),s&&window.Shopify&&("asiadirectfurniture.mysh
7430opify.com"===window.Shopify.shop||"pure-vision-ch.myshopify.com"===window.Shopify.shop)){let e=s.querySelector(".product__price[data-product-price]");e&&t.push(e)}if(s=c.closest(".product-inner.pr"),s){let e=s.querySelector(".pr_atc.pr_qty_atc > a.pr_atc_.js_addtc");e&&t.push(e)}if(s=c.closest("#shopify-section-pr_summary"),s){let e=s.querySelector("p.price_range, .price.price_varies");e&&t.push(e)}if(s=c.closest(".grid__item"),s){let e=s.querySelector(".product__form-container"),o=s.querySelector(".product__description");e&&(t.push(e),o.style.width="100%")}if(s=c.closest(".featured-product__content-wrapper"),s){let e=s.querySelector(".product-form");e&&t.push(e)}if(s=c.closest(".card__price"),s&&"exosomes-inc.myshopify.com"===o&&(s.style.textAlign="center"),s=c.closest(".Product__InfoWrapper > .Product__Info "),s){let e=s.querySelector('.ProductForm__BuyButtons > button[type="submit"].ProductForm__AddToCart');e&&t.push(e);let o=s.querySelector(".ProductForm__AddToCart");o&&t.push(o)}if(s=c.closest(".product-grid__container .product-grid__content"),s){let e=s.querySelector(".product-single__form .product__quantity");e&&t.push(e);let o=s.querySelector(".add-to-cart");o&&t.push(o);let r=s.querySelector(".product__price--compare");if(r&&t.push(r),window.Shopify&&"sparklinbluewholesale.myshopify.com"===window.Shopify.shop){let e=s.querySelector(".product__price-savings");e&&t.push(e)}}if(s=c.closest(".product-grid-item"),s){let e=s.querySelector(".h1.medium--left");e&&"envogueusa.com"==window.location.host&&t.push(e)}if(s=c.closest("#productPrice-product-template"),s){let e=s.querySelector("small");e&&"envogueusa.com"==window.location.host&&t.push(e),s.appendChild(c)}if(s=c.closest(".product-grid-item"),s){let e=s.querySelector(".form-grid-btn");e&&"mamiereglissepro.myshopify.com"===o&&t.push(e)}if(s=c.closest("#cont-form"),s){let e=s.querySelector(".so-price");e&&t.push(e);let r=s.querySelector("#addToCart");r&&"mamiereglissepro.myshopify.com"===o&&t.push(r)}if(s=c.closest(".template-product"),s){let e=s.querySelector('button[name="add"]#addToCartBis, button[name="add"]#addToCart2');e&&t.push(e)}if(s=c.closest(".grid-product__content"),s){let e=s.querySelector(".quick-product__btn");!e||"wood-hill-boards.myshopify.com"!==o&&"wood-hill-boards-usa.myshopify.com"!==o&&"bundlecomph.myshopify.com"!==o||t.push(e)}if(s=c.closest(".product-single__meta"),s){let e=s.querySelector(".product__quantity");!e||"wood-hill-boards.myshopify.com"!==o&&"wood-hill-boards-usa.myshopify.com"!==o||t.push(e)}if(s=c.closest(".product-block-area"),s){let e=s.querySelector("#addToCartButton");e&&"wanderlustvision.myshopify.com"===o&&t.push(e)}if(s=c.closest(".product-single__meta--wrapper .product-single__meta"),s){let e=s.querySelector(".price-container.text-money"),o=s.querySelector('button[name="add"].btn--add-to-cart');e&&t.push(e),o&&t.push(o)}if(s=c.closest(".product-single__metas"),s){let e=s.querySelector(".product-single__buttons .js-quantity-selector.product-quantity"),o=s.querySelector(".product-single__buttons button.btn--add-to-cart");e&&t.push(e),o&&t.push(o)}if("dollie-wholesale.myshopify.com"===o&&(s=c.closest(".product-card"),s)){let e=s.querySelector(".product-card__buttons .product-card__quickview"),o=s.querySelector(".product-card__buttons .product-card__form"),r=s.querySelector(".product-card__buttons .button-wishlist"),c=s.querySelector(".wpb-variants-swatch");e&&t.push(e),o&&t.push(o),r&&t.push(r),c&&t.push(c)}if("obsequ.myshopify.com"===o&&(s=c.closest(".product-meta"),s)){let e=s.querySelector(".price-list[data-product-price-list]");e&&e.remove()}if(s=c.closest(".sticky-cart"),s){let e=s.querySelector(".product-form__buttons");e&&t.push(e)}if("wholesale-rubypearlco.myshopify.com"!==o&&"coventa-demo.myshopify.com"!==o&&(s=c.closest(".productitem--info")||c.closest(".product-pricing"),s)){let e=s.querySelector(".price");e&&t.push(e)}if(s=c.closest(".productitem--info"),s){let e=s.querySelector(".price__compare-at.visible");e&&"coventa-demo.myshopify.com"===o&&t.push(e)}if(s=c.closest(".product-block-list"),s&&window.Shopify&&"axiom-wholesale-parts.myshopify.com"===window.Shopify.shop){let e=s.querySelector(".price");e&&e.classList.remove("price")}if(s=c.closest(".product-layout"),s){let e=s.querySelector(".action-links");e&&t.push(e)}if(s=c.closest(".product-single__meta"),s){let e=s.querySelector(".product-block--price");e&&"comphycompany.myshopify.com"===o&&t.push(e)}if(s=c.closest(".product-details, .modal_price"),s){let e=s.querySelector(".current_price, .price__container");e&&t.push(e)}if("wholesale-rubypearlco.myshopify.com"===window.Shopify.shop&&(s=c.closest(".productitem__container .productitem--info, .product-details .product-pricing"),s)){let e=s.querySelectorAll(".price__compare-at--single, .price__compare-at, .price__current--max");
7430e.length&&e.forEach(e=>e.remove())}if("kerriecapelliusa-com.myshopify.com"===window.Shopify.shop&&(s=c.closest(".product-detail.quickbuy-content.spaced-row.container"),s)){let e=s.querySelectorAll(".product-form.theme-init .variant-visibility-area");e.length&&e.forEach(e=>e.remove())}if(s=c.closest(".widget_if_pr, .product-inner, .al_center.fl_center, .widget_if_pr"),s){let e=s.querySelectorAll(".product-price-pr-search, .hover_button, .nt_add_w, .nt_add_cp, .sticky_atc_btn.variations_form, .transcy-money");e.length&&e.forEach(e=>e.remove())}if(s=c.closest(".ProductItem__Wrapper, .ProductForm"),s){let e=s.querySelector(".ProductItem__PriceList, .ProductForm__QuantitySelector");e&&"sirenwireless.myshopify.com"!==o&&e.remove();let r=s.querySelector(".ProductFormWrapper");r&&"sirenwireless.myshopify.com"===o&&t.push(r)}if("butterfly-health-and-wellness.myshopify.com"===window.Shopify.shop){if(s=c.closest(".item-content"),s){let e=s.querySelector('.module-wrap[data-label="(P) Cart Button"] button.gf_add-to-cart');e&&e.remove()}if(s=c.closest(".gf_product-desc"),s){let e=s.querySelector("h4");e&&(e.remove(),c.style.display="none")}if(s=c.closest(".gf_column[data-id]"),s){let e=s.querySelectorAll('.elementor-section[data-element_type="section"] .elementor-text-editor strong, .gf_product-desc h4, .gf_product-desc strong');if(e)for(let t of e)t.remove()}}if(s=c.closest(".product-block"),s){let e=s.querySelector(".quickbuy-toggle");e&&t.push(e)}if(s=c.closest(".productView-details"),s){let e=s.querySelector(".productView-buttons"),r=s.querySelector(".quantity_selector"),c=s.querySelector(".productView-subtotal");e&&t.push(e),r&&t.push(r),c&&t.push(c),"remote-king-au.myshopify.com"===o&&s.querySelectorAll(".product-customInformation").forEach(e=>e.remove())}if(s=c.closest(".product__content"),s&&"campomarzio-trade-uk.myshopify.com"===o){let e=s.querySelector(".product__text"),o=s.querySelector(".select__fieldset"),r=s.querySelector(".product__submit");e&&t.push(e),o&&t.push(o),r&&t.push(r)}if(s=c.closest(".product-card__price, .product-single__meta-list"),s){let e=s.querySelector(".product-single__price, .money-product");e&&e.remove()}if("ens-nutrition-3419.myshopify.com"===o&&(s=c.closest(".card__content"),s)){let e=s.querySelector(".button.quick-add__submit");e&&e.remove()}if("b2b-nandu.myshopify.com"===o){if(s=c.closest(".grid-product__content"),s){let e=s.querySelector(".grid-product__meta .grid-product__price ");e&&e.remove()}let e=c.closest(".product-single__meta");if(e){let t=e.querySelector(".product__price.product__price--compare"),o=e.querySelector(".product__price.on-sale"),r=e.querySelector(".product__price-savings");t&&o&&r&&(t.remove(),o.remove(),r.remove())}}if("impjarwholesale.myshopify.com"===o){if(s=c.closest(".tp-product-content"),s){let e=s.querySelector("button#AddToCart"),o=s.querySelector(".tp-product-singe-action .tp-product-quantity");e&&t.push(e),o&&t.push(o)}if(s=c.closest(".grid-item"),s){let e=s.querySelector('form[action="/cart/add"]');e&&t.push(e)}}if("b2b-dbodhi-singapore.myshopify.com"===o&&(s=c.closest("del"),s&&t.push(c),s=c.closest(".product-information--inner"),s)){const e=s.querySelector(".product-form");e&&t.push(e)}if(s=c.closest(".lh-details-product"),s){if("ags2020.myshopify.com"===o){let e=s.querySelector(".lh-price");e&&e.classList.remove("lh-price")}let e=s.querySelector(".lh-add_to_cart");e&&t.push(e);let r=s.querySelector(".lh-buy-now");r&&t.push(r);let c=s.querySelector(".lh-compare-at-price");c&&t.push(c)}if(s=c.closest(".lh-collection-item"),s){if("ags2020.myshopify.com"===o){let e=s.querySelector(".lh-price");e&&e.classList.remove("lh-price")}let e=s.querySelector(".lh-product-compare-price");e&&t.push(e)}if(s=c.closest(".ProductMeta, .ProductItem__Info"),s){let e=s.querySelectorAll(".Price");e&&e.forEach(e=>e.remove())}}t.forEach((function(e){e.remove()}))}}(e),function(e){e.ltsp.removeElementByLTSPWrapper=function(){let e=document.getElementsByClassName("bss-ltsp-price-wrapper"),t=[];for(let o=0;o<e.length;o++){let r=e[o],c=[],l=r.closest(".product-parent");if(l){let e=l.querySelector("form .tt-btn-addtocart");e&&t.push(e);let o=l.querySelector(".tt-btn-quickview");o&&t.push(o)}if(l=r.closest(".product-single__meta"),l=r.closest(".tt-product-single-info"),l){let e=l.querySelector("form .btn-addtocart");e&&t.push(e);let o=l.querySelector('form[action*="/cart/add"]');o&&t.push(o)}if(l=r.closest(".product_section"),l){let e=l.querySelector("form .add_to_cart, form .b2b-ajax-submit");e&&t.push(e);let o=l.querySelector(".sale.savings");o&&t.push(o)}if(l=r.closest(".quick-shop-style--inline"),l){let e=l.querySelector("form .add_to_cart, form .b2b-ajax-submit");e&&t.push(e)}if(l=r.closest(".product-details"),l){let e=l.querySelector("small em");e&&t.push(e)}if(l=r.closest(".gt_product-body"),l){let e=l.querySelector("form .gt_product-addtocart");e&&t.push(e);let o=l.querySelector(".gt_product-saved");o&&t.push(o);let r=l.querySelector(".gt_product-price--compare");r&&t.push(r)}if(l=r.closest(".gt_product_content"),l){let e=l.querySelector("form .gt_product-addtocart");e&&t.push(e);let o=l.querySelector(".gt_product-price--compare");o&&t.push(o)}if(l=r.closest(".gt-single-product"),l){let e=l.querySelector("div.gt_method_addToCart");e&&t.push(e);let o=l.querySelector(".gt_product-price--compare");o&&t.push(o)}if(l=r.closest("#cont-form"),l){let e=l.querySelector("form .cont-add-btns");e&&t.push(e)}if(l=r.closest(".theiaStickySidebar"),l){let e=l.querySelector(".variations_button");e&&t.push(e)}if(l=r.closest(".product-submit"),l){let e=l.querySelector(".payment-buttons-container");e&&t.push(e)}if(l=r.closest(".productitem"),l){let e=l.querySelector(".productitem--action");e&&t.push(e)}if(l=r.closest(".product--outer"),l){let e=l.querySelector(".product-form--atc");e&&t.push(e),e=l.querySelector(".shopify-payment-button"),e&&t.push(e)}if(l=r.closest(".product-grouped"),l){let e=l.querySelector(".product_top form#add-to-cart-form");e&&t.push(e)}if(l=r.closest(".product-item"),l){let e=l.querySelector(".product-top .product-des .action");e&&t.push(e)}if(l=r.closest(".product-item"),l){let e=l.querySelector('.product-item__action-button[data-action="add-to-cart"]');e&&t.push(e)}if(l=r.closest(".grid__item.grid-product"),l){let e=l.querySelector('form[action="/cart/add"] input[type="submit"]');e&&t.push(e);let o=l.querySelector(".grid-product__tag");o&&t.push(o);let r=l.querySelector(".visually-hidden");r&&t.push(r)}if(l=r.closest(".product-info"),l){let e=l.querySelector('form[action="/cart/add"] .payment-buttons');e&&t.push(e);let o=l.querySelector(".variant-wrapper.variant-wrapper--button");o&&t.push(o)}if(l=r.closest("#product-right"),l){let e=l.querySelector(".was");e&&t.push(e);let o=l.querySelector(".product-add");o&&t.push(o)}if(l=r.closest(".was"),l&&t.push(l),l=r.closest(".product-single__meta"),l){let e=l.querySelector(".pf__actions");e&&t.push(e)}if(l=r.closest("#AddToCartForm-product-template"),l){let e=l.querySelector("#CartButtons-product-template");e&&t.push(e)}if(l=r.closest(".Product__Info"),l){let e=l.querySelector(".ProductMeta__PriceList");e&&t.push(e)}if(l=r.closest(".grid-item"),l){let e=l.querySelector("#addToCart-product-template");e&&t.push(e);let o=l.querySelector(".payment-buttons");o&&t.push(o)}c.forEach((function(e){r.closest(e)&&t.push(r.closest(e))}))}t.forEach((function(e){e.remove()}))}}(e),e.ltsp.removePattern=function(){e.ltsp.removeElementByLTSPMessage(),e.ltsp.removeElementByLTSPWrapper()},e.ltsp.insertBeforeAddToCart=function(){let t=document.querySelectorAll(".bsscommerce-ltsp-message[data-ltsp-cart-message]");for(let o=0;o<t.length;o++){let r=t[o],c=r.getAttribute("data-ltsp-cart-message");r.removeAttribute("data-ltsp-cart-message");let l=[".main-content .product-single__meta",".main-content .grid__item",".main-content .grid-item",".main-content .product__content.product__content--template.product__content--information","main#MainContent .product__info-container",".container#product-product .product-info-main",'main#main section[data-section-id="collection-template"] .product-item',".product-area__details.product-detail .product-detail__form"];for(let t=0;t<l.length;t++){let o=r.closest(l[t]);if(o&&!o.querySelector(".bsscommerce-ltsp-message.hide-message")){let t=
7430o.querySelector('form[action="/cart/add"]');if(t){let o=e.helperLTSP.createHidePriceMessageSpan(c);t.before(o)}}}let s=[[".product-layout .item .item-inner .caption",".button.btn-cart"],['main#main section[data-section-id="product-template"] .card__section',".product-form__payment-container"],[".main#MainContent .content.product",'form[action="/cart/add"] .offers']];for(let t=0;t<s.length;t++){let o=r.closest(s[t][0]);if(o&&!o.querySelector(".bsscommerce-ltsp-message.hide-message")){let r=o.querySelector(s[t][1]);if(r){let t=e.helperLTSP.createHidePriceMessageSpan(c);r.before(t)}}}if(window.Shopify&&"airbesafe.myshopify.com"===window.Shopify.shop){let t=[[".shopify-section--main-collection .product-list__inner .product-item ",".product-item__info .product-item-meta__price-list-container .price-list"],[".shopify-section--main-product .product--thumbnails-bottom .product__info",".product-meta__price-list-container"],["product-item.product-item .product-item__info",".product-item-meta__price-list-container"]];for(let o=0;o<t.length;o++){let l=r.closest(t[o][0]);if(l&&!l.querySelector(".bsscommerce-ltsp-message.hide-message")){let r=l.querySelector(t[o][1]);if(r){let t=e.helperLTSP.createHidePriceMessageSpan(c);r.after(t)}}}}}}}function c(e){!function(e){e.helperLTSP={},e.helperLTSP.createHidePriceMessageSpan=function(e){let t=document.createElement("span");return t.classList.add("bsscommerce-ltsp-message"),t.classList.add("hide-message"),t.style.fontSize="16px",t.style.fontWeight="normal",t.style.color="initial",t.style.textTransform="none",t.style.visibility="visible",t.innerHTML=e,t},e.helperLTSP.onLoadMore=function(e){const t=document.querySelector([".sf__product-listing[data-product-container] > div",'.row[data-js-collection-replace="products"]',".product-list-container .product-list.use-infinite-scroll","#collection-product .product-container",".container #col-main"].join(","));if(t){new MutationObserver((function(t){t.forEach((function(t){t.addedNodes.length&&e()}))})).observe(t,{childList:!0})}}}(e)}function l(){const e={};c(e),r(e),function(e){e.ptvp={},e.ptvp.addPasscodeForm=function(){let e=document.querySelector('form[action*="/cart/add"]'),t=document.getElementsByClassName("bss-passcode-wrapper-tag"),o=document.getElementsByClassName("bsscommerce-password-form"),r=document.querySelector(".toggle-passcode-input"),c=null;if(o.length&&(c=o[0],c.style.display="block",r&&r.addEventListener("click",(function(e){let t=document.getElementById("bsscommerce-password");"password"===t.type?(t.type="text",e.target.closest(".toggle-passcode-input").style.fill="#5C5F62"):(t.type="password",e.target.closest(".toggle-passcode-input").style.fill="#BABEC3")}))),t.length&&e&&o.length){e.before(c);let o=document.getElementById("bsscommerce-password"),r=new FormData;r.append(o.name,o.value),document.getElementById("bsscommerce-password-submit").style.padding="12px 16px",document.getElementById("bsscommerce-password-submit").style.display="block";let l=new XMLHttpRequest;l.open("post","/cart/update.js"),l.send(r);let s=document.getElementsByClassName("bsscommerce-ltap-password");if(s.length)for(let e=0;e<s.length;e++)s[e].addEventListener("submit",(function(e){e.preventDefault();let t=this;if(t.length)for(let e=0;e<t.length;e++)if("bsscommerce-password"==t[e].id){let o=t[e];if(o.addEventListener("input",(function(){o.classList.remove("input--error")})),o.value)if(""!=o.value){let e=new FormData;e.append(o.name,o.value);let t=new XMLHttpRequest;t.onreadystatechange=function(){4==t.readyState&&200==t.status&&location.reload()},t.open("post","/cart/update.js"),t.send(e)}else o.classList.add("input--error")}}));for(let e=0;e<t.length;e++)t[e].remove()}}}(e),e.ptvp.addPasscodeForm(),document.querySelectorAll(".quick-view-btn").forEach((function(t){t.addEventListener("click",(function(){setTimeout((function(){e.ptvp.addPasscodeForm()}),1e3)}))})),function e(){document.querySelectorAll(".advanced-filter a").forEach((function(t){t.addEventListener("click",(function(){setTimeout((function(){let t=document.getElementsByClassName("bsscommerce-ltsp-message");for(let e=0;e<t.length;e++){let o=t[e].closest(".item-row");
7430if(o){let e=o.querySelector(".add-to-cart");e&&e.remove()}}e()}),1200)}))}))}(),e.ltsp.quickView(),e.ltsp.insertBeforeAddToCart(),e.ltsp.removePattern(),e.helperLTSP.onLoadMore(e.ltsp.removePattern),setTimeout((function(){e.ltsp.removePattern()}),2500);if(window.Shopify&&-1!==["showroom1-ducanero.myshopify.com","sparklinbluewholesale.myshopify.com","youchique-4183.myshopify.com","wilkens-gmbh.myshopify.com","friends-forever-pets.myshopify.com"].indexOf(window.Shopify.shop)&&(window.onscroll=function(e,t){let o;return function(...r){o&&clearTimeout(o),o=setTimeout(()=>{e(...r),o=null},t)}}((function(){let t=setInterval((function(){e.ltsp.removePattern()}),200);setTimeout((function(){clearInterval(t)}),3e3)}),500)),"amoreo.eu"===window.location.host){let t=setInterval((function(){e.ltsp.removePattern()}),200);setTimeout((function(){clearInterval(t)}),3e3)}let t=document.querySelector(".infinite-scrolling-homepage a.btn");"airbesafe.myshopify.com"===window.location.host&&setTimeout((function(){e.ltsp.insertBeforeAddToCart()}),3e3),t&&(t.onclick=function(){setTimeout((function(){e.ltsp.removePattern()}),1e3)});let o=document.querySelectorAll("#shopify-section-product-recommendations, .product-modal-wrapper");var l,s,u;(o.length&&o.forEach((function(t){t.addEventListener("DOMSubtreeModified",(function(){e.ltsp.removePattern()}))})),"valleys-group.myshopify.com"===window.location.host)&&(l=function(){e.ltsp.removePattern();
7430let t=document.querySelectorAll(".slideout__drawer-right, .sidebar_leftside_wapper, .filtering__results");t.length&&t.forEach((function(e){e.addEventListener("click",(function(){setTimeout(()=>{l()},1700)}))}))});"b.salonpremium.com"===window.location.host&&(s=function(){e.ltsp.removePattern();let t=document.querySelectorAll(".pagination");t.length&&t.forEach((function(e){e.addEventListener("click",(function(){setTimeout(()=>{s()},3e3)}))}))});"www.internationalbeauty.ca"===window.location.host&&(u=function(){let t=document.querySelector('[id^="RecentlyViewed"]');new MutationObserver((function(t){t.forEach((function(t){t.addedNodes.length&&(e.ltsp.removePattern(),document.querySelectorAll(".btn--icon.quick-product__btn").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product-grid__content");if(o){let e=o.querySelector(".payment-buttons");e&&e.remove()}}u()}),2e3)}))})))}))})).observe(t,{childList:!0})});if("bluebasketb2b.myshopify.com"===window.Shopify.shop){let t=document.querySelector("#CartDrawer");const o=()=>{let e=document.querySelectorAll("script#bss-ltap-login-require");for(let t in e)t.remove()};if(t){new MutationObserver((function(t){t.forEach((function(t){t.addedNodes.length&&(e.ltsp.removePattern(),o())}))})).observe(t,{childList:!0})}}if("dollie-wholesale.myshopify.com"===window.Shopify.shop){let t=document.querySelector("#product-grid .products__row");if(t){new MutationObserver((function(t){t.forEach((function(t){t.addedNodes.length&&e.ltsp.removePattern()}))})).observe(t,{childList:!0})}}if("impjarwholesale.myshopify.com"===window.Shopify.shop){let t=document.querySelector(".tp-collection-content");if(t){new MutationObserver((function(t){t.forEach((function(t){t.addedNodes.length&&e.ltsp.removePattern()}))})).observe(t,{childList:!0})}}if("inex-studio.myshopify.com"===window.Shopify.shop){let t=document.querySelector("#Search .Search__Results");if(t){new MutationObserver((function(t){t.forEach((function(t){t.addedNodes.length&&e.ltsp.removePattern()}))})).observe(t,{childList:!0,subtree:!0})}}}o.r(t),o.d(t,"default",(function(){return l})),l()}]); 7431 </script>
7431 7432 7433 </main> 7434 7435 <div id="shopify-section-newsletter" class="shopify-section"><br> 7436 <style> 7437 #shopify-section-newsletter { 7438 background: url(https://duagalery.com/images/2025/11/13/bgdua13.png); 7439 background-attachment: fixed; 7440 margin-bottom: 0; 7441 } 7442 input:-webkit-autofill, 7443 input:-webkit-autofill:hover, 7444 input:-webkit-autofill:active, 7445 input:-webkit-autofill:focus { 7446 -webkit-box-shadow:0 0 0 50px white inset; 7447 -webkit-text-fill-color: #ffffff; 7448 } 7449 .section-newsletter { 7450 max-width: 800px; 7451 margin: auto; 7452 padding: 50px 0; 7453 } 7454 .section-newsletter h2 { 7455 font-weight: 700; 7456 font-size: 24px; 7457 } 7458 .section-newsletter input[type="email"] { 7459 width: 100%; 7460 text-align: center; 7461 border: none; 7462 border-bottom: 1px solid #ffffff; 7463 font-size: 16px; 7464 color: #757575; 7465 background-color: #eeeeee; 7466 } 7467 .section-newsletter .row label { 7468 font-size: 14px; 7469 cursor: pointer; 7470 } 7471 .section-newsletter .radio-inline input { 7472 width: auto; 7473 } 7474 .section-newsletter .btn { 7475 width: 130px; 7476 border: 1px solid #ffffff; 7477 box-shadow: none; 7478 font-size: 16px; 7479 font-weight: 500; 7480 text-transform: uppercase; 7481 } 7482 .section-newsletter form { 7483 margin: 30px 0 60px; 7484 } 7485 .section-newsletter input[type="radio"] { 7486 position: absolute; 7487 width: 1px; 7488 height: 1px; 7489 } 7490 .section-newsletter [type="radio"]:checked + label, .section-newsletter [type="radio"]:not(:checked) + label { 7491 position: relative; 7492 padding-left: 28px; 7493 cursor: pointer; 7494 line-height: 20px; 7495 display: inline-block; 7496 color: #666; 7497 } 7498 .section-newsletter [type="radio"]:checked + label:before, .section-newsletter [type="radio"]:not(:checked) + label:before { 7499 content: ''; 7500 position: absolute; 7501 left: 0; 7502 top: 0; 7503 width: 18px; 7504 height: 18px; 7505 border: 1px solid #ddd; 7506 border-radius: 100%; 7507 background: #fff; 7508 } 7509 .section-newsletter [type="radio"]:checked + label:after, .section-newsletter [type="radio"]:not(:checked) + label:after { 7510 content: ''; 7511 width: 12px; 7512 height: 12px; 7513 background: #ffffff; 7514 position: absolute; 7515 top: 3px; 7516 left: 3px; 7517 border-radius: 100%; 7518 -webkit-transition: all 0.2s ease; 7519 transition: all 0.2s ease; 7520 } 7521 .section-newsletter [type="radio"]:not(:checked) + label:after { 7522 opacity: 0; 7523 -webkit-transform: scale(0); 7524 transform: scale(0); 7525 } 7526 .opt-newsletter {display:none;} 7527 .footer-newsletter p, .footer-newsletter p a { 7528 color: #757575; 7529 } 7530 @media (max-width:991px){ 7531 .section-newsletter h2 { 7532 font-size: 32px; 7533 } 7534 .section-newsletter input { 7535 width: 300px; 7536 font-size: 14px; 7537 } 7538 .section-newsletter { 7539 padding: 50px 20px; 7540 } 7541 } 7542 @media (max-width: 480px){ 7543 .section-newsletter input[type="email"] {font-size: 16px;} 7544 } 7545 </style> 7546 <style> 7547 .icon-img-footer { 7548 width: 80px; 7549 padding: 0px 5px; 7550 } 7551 @media (min-width: 768px) { 7552 .icon-img-footer { 7553 width: 120px; 7554 } 7555 } 7556 @media (min-width: 992px) { 7557 .icon-img-footer { 7558 width: 120px; 7559 } 7560 } 7561 7562 .button-login-daftar { 7563 display: grid; 7564 grid-template-columns: repeat(2, 1fr); 7565 font-weight: 700; 7566 } 7567 .button-login-daftar a { 7568 text-align: center; 7569 } 7570 .login, 7571 .register { 7572 color: #000000; 7573 padding: 15px 10px; 7574 font-size: 23px; 7575 } 7576 .login, 7577 .login-button { 7578 background: linear-gradient(to bottom, #000000 0%, #ff4d7a 50%, #000000 100%); 7579 border: 2px solid #cba302; 7580 } 7581 .register, 7582 .register-button { 7583 background: linear-gradient(to bottom, #000000 0%, #ff4d7a 50%, #000000 100%); 7584 border: 2px solid #cba302; 7585 } 7586 </style> 7587 7588 <!-- wp:html --> 7589
7589<script> 7590 document.addEventListener('DOMContentLoaded', 7591 function(){const faqItems=document.querySelectorAll('.faq-item'); 7592 faqItems.forEach(item=>{const question=item.querySelector('.faq-question'); 7593 question.addEventListener('click', 7594 ()=>{const isActive=item.classList.contains('active'); 7595 faqItems.forEach(otherItem=>{otherItem.classList.remove('active')}); 7596 if(!isActive){item.classList.add('active')}})})}); 7597 </script>
7597 7598 7599 7600 <div class="page__overlay" data-view="offCanvasNavToggle" data-off-canvas="close" bis_skin_checked="1"> 7601 </div> 7602 <div class="faq-section"> 7603 <h2>PERTANYAAN SEPUTAR DUATOTO | LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777 GACOR</h2> 7604 <div class="faq-container"> 7605 7606 <div class="faq-item"> 7607 <button class="faq-question"> 7608 Apa yang dimaksud dengan DUATOTO Link 2026 Baru? 7609 <span></span> 7610 </button> 7611 <div class="faq-answer"> 7612 <p> 7613 DUATOTO Link 2026 Baru merujuk pada informasi akses terbaru DUATOTO yang berkaitan dengan Slot777 dan situs Toto. Pastikan selalu memeriksa alamat yang digunakan sebelum mengaksesnya. 7614 </p> 7615 </div> 7616 </div> 7617 7618 <div class="faq-item"> 7619 <button class="faq-question"> 7620 Apa saja informasi yang dibahas di DUATOTO? 7621 <span></span> 7622 </button> 7623 <div class="faq-answer"> 7624 <p> 7625 DUATOTO membahas informasi seputar Slot777, situs Toto, pembaruan link 2026, serta berbagai informasi terkait platform yang disajikan secara ringkas dan mudah dipahami. 7626 </p> 7627 </div> 7628 </div> 7629 7630 <div class="faq-item"> 7631 <button class="faq-question"> 7632 Mengapa DUATOTO disebut sebagai situs Toto pesaing Perak saat ini? 7633 <span></span> 7634 </button> 7635 <div class="faq-answer"> 7636 <p> 7637 Istilah tersebut menggambarkan positioning DUATOTO sebagai salah satu platform yang diperbandingkan dengan situs Toto lainnya. Perbandingan sebaiknya dilakukan berdasarkan informasi, fitur, tampilan, dan pengalaman penggunaan. 7638 </p> 7639 </div> 7640 </div> 7641 7642 </div> 7643</div> 7644 7645 </div> 7646 7647 </div> 7648 7649 7650 <div class="overlay overlay-cart"></div> 7651 <div id="CartDrawer" class="drawer drawer--right"> 7652 <div class="drawer__header pl-2 pr-2"> 7653 <div class="drawer__icon-cart display-table-cell"> 7654 <a href="/cart" class=""> 7655 <svg class="icon icon-cart" version="1.1" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="32" height="32" viewBox="0 0 32 32"> <path fill="#fff" d="M13.638 23.203c0 0 3.5-2.113 3.502-4.11 0.002-2.304-2.689-3.537-3.497-1.76-0.916-1.778-3.493-1.714-3.497 0.59-0.003 1.999 3.491 5.28 3.491 5.28z"></path> <path fill="#fff" d="M8.112 9.809v16.662l11.063 2.491v-17.58l-11.063-1.573zM7.74 8.858l11.925 1.696c0.213 0.030 0.372 0.218 0.372 0.44v18.519c0 0.284-0.254 0.495-0.523 0.434l-11.925-2.685c-0.198-0.045-0.339-0.225-0.339-0.434v-17.53c0-0.27 0.231-0.477 0.49-0.44z"></path> <path fill="#fff" d="M23.7 10.046l-3.275 0.146-0.388 0.897v17.656l3.664-2.174v-16.526zM24.346 27.214l-4.526 2.685c-0.287 0.17-0.646-0.043-0.646-0.385v-18.519l0.037-0.181 0.534-1.235c0.067-0.154 0.212-0.256 0.375-0.263l3.991-0.178c0.245-0.011 0.45 0.191 0.45 0.444v17.247c0 0.159-0.082 0.306-0.216 0.385z"></path> <path fill="#000" d="M20.772 27.081l-0.501 2.383c-0.050 0.24-0.28 0.392-0.512 0.34s-0.38-0.289-0.33-0.528l0.569-2.707v-16.588c0-0.245 0.193-0.444 0.431-0.444s0.431 0.199 0.431 0.444v16.215l3.296 0.189c0.238 0.014 0.42 0.223 0.406 0.468s-0.217 0.433-0.454 0.419l-3.335-0.191z"></path> <path fill="#fff" d="M20.772 27.081l-0.501 2.383c-0.050 0.24-0.28 0.392-0.512 0.34s-0.38-0.289-0.33-0.528l0.569-2.707v-16.588c0-0.245 0.193-0.444 0.431-0.444s0.431 0.199 0.431 0.444v16.215l3.296 0.189c0.238 0.014 0.42 0.223 0.406 0.468s-0.217 0.433-0.454 0.419l-3.335-0.191z"></path> <path fill="#fff" d="M11.336 8.354l-0.257-0.333c-0.243-0.315 0.012-0.774 0.398-0.717l12.51 1.838c0.236 0.035 0.399 0.26 0.366 0.503s-0.252 0.412-0.487 0.377l-11.436-1.68 0.056 0.073c0.209 0.27 0.052 0.672-0.281 0.718l-4.467 0.607c-0.236 0.032-0.452-0.139-0.484-0.383s0.135-0.467 0.371-0.499l3.711-0.504z"></path> <path fill="#fff" d="M17.152 11.344c0.026-0.003 0.053-0.005 0.079-0.005 0.357 0 0.645 0.297 0.645 0.665s-0.288 0.665-0.645 0.665c-0.322 0-0.59-0.245-0.637-0.565-0.383-0.45-0.515-1.321-0.521-2.536-0.003-0.556 0.026-1.149 0.076-1.739 0.028-0.339 0.057-0.603 0.074-0.735 0.195-2.391-2.008-3.379-3.568-1.658-0.64 0.707-1.041 1.855-1.266 3.412-0.092 0.634-0.137 1.111-0.194 2.024 0.107 0.119 0.172 0.278 0.172 0.453 0 0.342-0.251 0.624-0.573 0.661-0.031 0.005-0.064 0.007-0.097 0.005-0.015-0.001-0.029-0.003-0.044-0.
7655005-0.324-0.036-0.576-0.318-0.576-0.661 0-0.218 0.102-0.412 0.259-0.533 0.058-0.924 0.105-1.415 0.201-2.075 0.249-1.719 0.703-3.020 1.489-3.888 2.114-2.335 5.321-0.897 5.054 2.359-0.018 0.141-0.045 0.392-0.072 0.717-0.047 0.566-0.075 1.133-0.073 1.658 0.004 0.839 0.098 1.47 0.216 1.78z"></path> <path fill="#fff" d="M14.43 8.138c-0.008 0.245-0.207 0.438-0.445 0.43s-0.424-0.213-0.417-0.459c0.001-0.026 0.001-0.026 0.002-0.051 0.029-0.909 0.047-1.282 0.102-1.792 0.164-1.528 0.58-2.665 1.434-3.481 2.037-1.949 5.235-0.623 5.066 2.208-0.007 0.119-0.018 0.331-0.029 0.608-0.022 0.539-0.033 1.084-0.029 1.59 0.007 0.797 0.053 1.412 0.139 1.744 0.062 0.237-0.075 0.481-0.305 0.544s-0.466-0.077-0.528-0.314c-0.111-0.427-0.161-1.097-0.168-1.966-0.004-0.523 0.007-1.081 0.029-1.634 0.011-0.284 0.023-0.502 0.030-0.626 0.119-1.995-2.13-2.927-3.619-1.501-0.673 0.644-1.021 1.591-1.164 2.927-0.051 0.479-0.069 0.838-0.097 1.723-0.001 0.026-0.001 0.026-0.002 0.052z"></path> </svg> 7656 </a> 7657 </div> 7658 <div class="drawer__title h4">Keranjang Belanja</div> 7659 <div class="drawer__close js-drawer-close"> 7660 <button type="button"> 7661 <svg class="icon icon-close" version="1.1" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="32" height="32" viewBox="0 0 32 32"> 7662 <title>icon-close</title> 7663 <path d="M16.943 16l8.862 8.862c0.26 0.26 0.26 0.682 0 0.943s-0.682 0.26-0.943 0l-8.862-8.862-8.862 8.862c-0.26 0.26-0.682 0.26-0.943 0s-0.26-0.682 0-0.943l8.862-8.862-8.862-8.862c-0.26-0.26-0.26-0.682 0-0.943s0.682-0.26 0.943 0l8.862 8.862 8.862-8.862c0.26-0.26 0.682-0.26 0.943 0s0.26 0.682 0 0.943l-8.862 8.862z"></path> 7664 </svg> 7665 </button> 7666 </div> 7667 </div> 7668 <div id="CartContainer" class="p-2"></div> 7669 </div> 7670 7671
7671<script> 7672 7673 </script>
7673 7674
7674<script src="//outerbloom.com/cdn/shop/t/138/assets/handlebars.min.js?v=79044469952368397291752652415" defer></script>
7674 7675 <!-- /snippets/ajax-cart-template.liquid --> 7676 7677
7677<script id="CartTemplate" type="text/template"> 7678 7679 <form action="/cart" method="post" novalidate class="cart ajaxcart"> 7680 <div class="ajaxcart__inner" {{ cart.item_count }}> 7681 {{#items}} 7682 <div class="ajaxcart__product"> 7683 <div class="ajaxcart__row" data-line="{{line}}"> 7684 <div class="grid"> 7685 <div class="grid__item one-quarter"> 7686 <a href="{{url}}" class="ajaxcart__product-image"><img src="{{img}}" alt=""></a> 7687 </div> 7688 <div class="grid__item three-quarters"> 7689 <p class="d-block mb-3"> 7690 <a class="h4 d-block mb-2" href="{{url}}" class="ajaxcart__product-name">{{name}}</a> 7691 {{#if variation}} 7692 <span class="ajaxcart__product-meta p">{{variation}}</span> 7693 {{/if}} 7694 {{#properties}} 7695 {{#each this}} 7696 {{#if this}} 7697 <span class="ajaxcart__product-meta p hide">{{@key}}: {{this}}</span> 7698 {{/if}} 7699 {{/each}} 7700 {{/properties}} 7701 7702 </p> 7703 <div class="grid--full display-table"> 7704 <div class="grid__item display-table-cell one-half"> 7705 <div class="ajaxcart__qty"> 7706 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}" data-line="{{line}}"> 7707 <svg version="1.1" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="24" height="24" viewBox="0 0 32 32"><title>icon-minus</title><path d="M6.667 16.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h18.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-18.667z"></path></svg> 7708 <span class="visually-hidden">Kurangi jumlah barang</span> 7709 </button> 7710 <input type="text" name="updates[]" class="btn ajaxcart__qty-num" value="{{itemQty}}" min="0" data-id="{{key}}" data-line="{{line}}" aria-label="quantity" pattern="[0-9]*"> 7711 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-line="{{line}}" data-qty="{{itemAdd}}"> 7712 <svg version="1.1" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg> 7713 <span class="visually-hidden">Tambahkan jumlah barang</span> 7714 </button> 7715 </div> 7716 </div> 7717 <div class="grid__item display-table-cell one-half text-right"> 7718 {{#if discountsApplied}} 7719 <small class="ajaxcart-item__price-strikethrough"><s>{{{originalLinePrice}}}</s></small> 7720 <br><span class="h4">{{{linePrice}}}</span> 7721 {{else}} 7722 <span class="h4">{{{linePrice}}}</span> 7723 {{/if}} 7724 </div> 7725 </div> 7726 {{#if discountsApplied}} 7727 <div class="grid--full display-table"> 7728 <div class="grid__item text-right"> 7729 {{#each discounts}} 7730 <small class="ajaxcart-item__discount">{{ this.title }}</small><br> 7731 {{/each}} 7732 </div> 7733 </div> 7734 {{/if}} 7735 </div> 7736 </div> 7737 </div> 7738 </div> 7739 </div> 7740 </div> 7741 {{/items}} 7742 </div> 7743 <div class="ajaxcart__footer"> 7744 <div class="grid--full cart-subtotal py-2"> 7745 <p>Subtotal</p> 7746 <h3 class="primary">{{{totalPrice}}}</h3> 7747 {{#if totalCartDiscount}} 7748 <p class="ajaxcart__savings text-center"><em>{{{totalCartDiscount}}}</em></p> 7749 {{/if}} 7750 </div> 7751 7752 <a href="/cart" class="btn btn-cta view-more btn-block cart__checkout mt-2">Checkout</a> 7753 7754 <p class="cart-checkout-shipping hide">Free Ongkir dengan belanja di atas Rp.100.000 <a href="/pages/pengiriman">detail</a></p> 7755 </div> 7756 </form> 7757 7758 </script>
7758 7759
7759<script id="AjaxQty" type="text/template"> 7760 7761 <div class="ajaxcart__qty"> 7762 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}"> 7763 <svg version="1.1" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="24" height="24" viewBox="0 0 32 32"> 7764 <title>icon-minus</title> 7765 <path d="M6.667 16.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h18.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-18.667z"></path> 7766 </svg> 7767 <span class="visually-hidden">Kurangi jumlah barang</span> 7768 </button> 7769 <input type="text" class="ajaxcart__qty-num" value="{{itemQty}}" min="0" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*"> 7770 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-qty="{{itemAdd}}"> 7771 <svg version="1.1" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg> 7772 <span class="visually-hidden">Tambahkan jumlah barang</span> 7773 </button> 7774 </div> 7775 7776 </script>
7776 7777
7777<script id="JsQty" type="text/template"> 7778 7779 <div class="js-qty mx-auto mt-2"> 7780 <button type="button" class="js-qty__adjust js-qty__adjust--minus" data-id="{{key}}" data-qty="{{itemMinus}}"> 7781 <svg version="1.1" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="24" height="24" viewBox="0 0 32 32"><title>icon-minus</title><path d="M6.667 16.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h18.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-18.667z"></path></svg> 7782 <span class="visually-hidden">Kurangi jumlah barang</span> 7783 </button> 7784 <input type="text" class="js-qty__num" value="{{itemQty}}" min="1" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*" name="{{inputName}}" id="{{inputId}}"> 7785 <button type="button" class="js-qty__adjust js-qty__adjust--plus" data-id="{{key}}" data-qty="{{itemAdd}}"> 7786 <svg version="1.1" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg> 7787 <span class="visually-hidden">Tambahkan jumlah barang</span> 7788 </button> 7789 </div> 7790 7791 </script>
7791 7792 7793 <style> 7794 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty button, 7795 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty button, 7796 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty button {display: none;} 7797 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input, 7798 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input, 7799 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;opacity: 0.5;} 7800 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input, 7801 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input, 7802 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;} 7803 </style> 7804
7804<script src="//outerbloom.com/cdn/shop/t/138/assets/ajax-cart.js?v=51128912329657147331752652452" defer></script>
7804 7805
7805<script> 7806 jQuery(function($) { 7807 ajaxCart.init({ 7808 formSelector: '#AddToCartForm', 7809 cartContainer: '#CartContainer', 7810 addToCartSelector: '#AddToCartXX', 7811 cartCountSelector: '#CartCount, #CartCount2', 7812 cartCostSelector: '#CartCost', 7813 moneyFormat: "Rp {{amount_no_decimals}}" 7814 }); 7815 }); 7816 7817 jQuery(document.body).on('afterCartLoad.ajaxCart', function(evt, cart) { 7818 // Bind to 'afterCartLoad.ajaxCart' to run any javascript after the cart has loaded in the DOM 7819 timber.RightDrawer.open(); 7820 }); 7821 </script>
7821 7822 7823 7824 7825 7826 <style> 7827 /** Search AutoComplete **/ 7828 .resultsearch .ui-menu-item[data-cat="Collection"], 7829 .resultsearch .ui-menu-item[data-cat="Collection"] {display: none;} 7830 .resultsearch .ui-widget.ui-widget-content { 7831 width: 100%; 7832 top: 48px; 7833 border: none; 7834 box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); 7835 } 7836 .resultsearch .ui-menu-item {text-align: left;} 7837 .resultsearch .ui-menu-item>a, .resultsearch .ui-menu-item>span {display: inline-block;width: 100%;font-size: 16px;}.resultsearch .ui-menu-item img {vertical-align: middle;}.resultsearch .ui-menu-item a[data-cat="Collection"] img {display: none;}.resultsearch .ui-menu .ui-state-focus, .resultsearch .ui-menu .ui-state-active {margin: 0;}.ui-state-active, .ui-widget-content .ui-state-active {background: #f2f2f2;border: none;color: #ffffff;}.resultsearch .ui-menu-item>a,.resultsearch .ui-menu-item>span {display: inline-block;width: 100%;font-size: 13px;}.resultsearch .ui-menu-item a[data-cat="Produk"] img {margin-right: 10px;}.resultsearch .ui-menu-item a[data-cat="Produk"] .price {float: right;padding: 15px 0;}.ui-autocomplete-category.ui-menu-item[data-cat="Produk"]:before {content: "Product Populer";font-size: 13px;padding: 5px;margin: 5px 0;background: #f2f2f2;width: 100%;display: block;color: #ffffff;}.ui-autocomplete-category.ui-menu-item[data-cat="Produk"] span {display: none;} 7838 .ui-state-active { 7839 border: none!important; 7840 background-color: #fafafa!important; 7841 color: #000!important; 7842 } 7843 .ui-menu-item a[data-cat="Collection"] {padding: 5px 12px;} 7844 .ui-menu .ui-menu-item {line-height: normal;} 7845 </style> 7846
7846<script> 7847 $(window).load(function(){ 7848 7849 function format(item) {var cell = '';cell += "<a data-cat=" + item.category + " " + "href=" + item.url + ">" + "<img src=" + item.images + "/>" + "<span class='title'>" + item.label + "</span>" + "<span class='price'>" + item.price + "</span>" + "</a>";return cell;} 7850 7851 $.widget("custom.catcomplete", $.ui.autocomplete, { 7852 _renderMenu: function (ul, items) { 7853 // have search reults split up in categories 7854 var that = this, 7855 currentCategory = ""; 7856 $.each(items, function (index, item) { 7857 if (item.category != currentCategory) { 7858 ul.append("<li class='ui-autocomplete-category' data-cat=" + item.category + ">" + "<span>" + item.category + "</span>" + "</li>"); 7859 currentCategory = item.category; 7860 } 7861 that._renderItemData(ul, item); 7862 }); 7863 } 7864 }); 7865 7866 // higlight searched for term 7867 $.ui.autocomplete.prototype._renderItem = function( ul, item ) { 7868 var term = this.element.val(), 7869 html = item.label.replace( term, "<b>$&</b>" ); 7870 return $( "<li>" ) 7871 .append(format(item)) 7872 .appendTo( ul ); 7873 }; 7874 7875 7876 var data = [ 7877 { label: "< Rp 500.000", category: "Collection", url: "/collections/rp-500-000", images: " ", price: " " },{ label: "> Rp 1.000.000", category: "Collection", url: "/collections/rp-1-000-000", images: " ", price: " " },{ label: "Acrylic Jewelry Box", category: "Collection", url: "/collections/acrylic-jewelry-box", images: " ", price: " " },{ label: "Ajmal", category: "Collection", url: "/collections/ajmal", images: " ", price: " " },{ label: "Alamat Rumah Duka", category: "Collection", url: "/collections/rumah-duka", images: " ", price: " " },{ label: "Anggrek Bulan", category: "Collection", url: "/collections/anggrek-bulan", images: " ", price: " " },{ label: "Anniversary Gift", category: "Collection", url: "/collections/kado-anniversary", images: " ", price: " " },{ label: "Aquarius âï¸ 20Jan - 18Feb", category: "Collection", url: "/collections/kado-untuk-zodiak-aquarius", images: " ", price: " " },{ label: "Aries âï¸ 21March - 19April", category: "Collection", url: "/collections/kado-untuk-zodiak-aries", images: " ", price: " " },{ label: "Armaf", category: "Collection", url: "/collections/armaf", images: " ", price: " " },{ label: "Aromatherapy Diffuser", category: "Collection", url: "/collections/aromatherapy-diffuser", images: " ", price: " " },{ label: "Artisan Soap", category: "Collection", url: "/collections/artisan-soap", images: " ", price: " " },{ label: "Artisan Tea", category: "Collection", url: "/collections/artisan-tea", images: " ", price: " " },{ label: "AsmaraKu", category: "Collection", url: "/collections/asmaraku", images: " ", price: " " },{ label: "Atkinsons", category: "Collection", url: "/collections/atkinsons", images: " ", price: " " },{ label: "Autumn by Outerbloom", category: "Collection", url: "/collections/autumn-by-outerbloom", images: " ", price: " " },{ label: "Autumn by Outerbloom Chinese New Year", category: "Collection", url: "/collections/autumn-by-outerbloom-chinese-new-year", images: " ", price: " " },{ label: "Autumn by Outerbloom Christmas", category: "Collection", url: "/collections/autumn-by-outerbloom-christmas", images: " ", price: " " },{ label: "Autumn by Outerbloom Luar Jadetabek", category: "Collection", url: "/collections/autumn-by-outerbloom-luar-jadetabek", images: " ", price: " " },{ label: "Autumn by Outerbloom Ramadan", category: "Collection", url: "/collections/autumn-by-outerbloom-ramadan", images: " ", price: " " },{ label: "Autumn Pop", category: "Collection", url: "/collections/autumn-pop", images: " ", price: " " },{ label: "Bachelorette", category: "Collection", url: "/collections/bachelorette", images: " ", price: " " },{ label: "Bag Newborn Hampers", category: "Collection", url: "/collections/bag-newborn-hampers", images: " ", price: " " },{ label: "Balon", category: "Collection", url: "/collections/balon", images: " ", price: " " },{ label: "Beauty Package", category: "Collection", url: "/collections/beauty-package", images: " ", price: " " },{ label: "Best Deal", category: "Collection", url: "/collections/best-deal", images: " ", price: " " },{ label: "Best Seller", category: "Collection", url: "/collections/best-seller", images: " ", price: " " },{ label: "Best Valentine's Deals", category: "Collection", url: "/collections/bes-valentines-deals", images: " ", price: " " },{ label: "Best Value Newborn Hampers Collection", category: "Collection", url: "/collections/best-value-newborn-hampers-collection", images: " ", price: " " },{ label: "Black Tea", category: "Collection", url: "/collections/black-tea", images: " ", price: " " },{ label: "Blessing Hampers", category: "Collection", url: "/collections/blessing-hampers", images: " ", price: " " },{ label: "Bloom Box", category: "Collection", url: "/collections/bloom-box", images: " ", price: " " },{ label: "Bloomcard", category: "Collection", url: "/collections/bloomcard", images: " ", price: " " },{ label: "Boutonniere", category: "Collection", url: "/collections/boutonniere", images: " ", price: " " },{ label: "Bracelet", category: "Collection", url: "/collections/gelang", images: " ", price: " " },{ label: "Buket Bunga Bali", category: "Collection", url: "/collections/buket-bunga-bali", images: " ", price: " " },{ label: "Buket Bunga Bandung", category: "Collection", url: "/collections/buket-bunga-bandung", images: " ", price: " " },{ label: "Buket Bunga Batam", category: "Collection", url: "/collections/buket-bunga-batam", images: " ", price: " " },{ label: "Buket Bunga Demak", category: "Collection", url: "/collections/buket-bunga-demak", images: " ", price: " " },{ label: "Buket Bunga Fresh", category: "Collection", url: "/collections/buket-bunga", images: " ", price: " " },{ label: "Buket Bunga Jepara", category: "Collection", url: "/collections/buket-bunga-jepara", images: " ", price: " " },{ label: "Buket Bunga Medan", category: "Collection", url: "/collections/buket-bunga-medan", images: " ", price: " " },{ label: "Buket Bunga Nusantara", category: "Collection", url: "/collections/buket-bunga-nusantara", images: " ", price: " " },{ label: "Buket Bunga Semarang", category: "Collection", url: "/collections/buket-bunga-semarang", images: " ", price: " " },{ label: "Buket Bunga Sidoarjo", category: "Collection", url: "/collections/buket-bunga-sidoarjo", images: " ", price: " " },{ label: "Buket Bunga Surabaya", category: "Collection", url: "/collections/buket-bunga-surabaya", images: " ", price: " " },{ label: "Buket Bunga Tangerang", category: "Collection", url: "/collections/buket-bunga-tangerang", images: " ", price: " " },{ label: "Buket Bunga Uang", category: "Collection", url: "/collections/buket-bunga-uang", images: " ", price: " " },{ label: "Buket Bunga Valentine", category: "Collection", url: "/collections/buket-bunga-valentine", images: " ", price: " " },{ label: "Buket Bunga Yogyakarta", category: "Collection", url: "/collections/buket-bunga-jogja", images: " ", price: " " },{ label: "Bunga Anggrek Bali", category: "Collection", url: "/collections/bunga-anggrek-bali", images: " ", price: " " },{ label: "Bunga Anggrek Bandung", category: "Collection", url: "/collections/bunga-anggrek-bandung", images: " ", price: " " },{ label: "Bunga Anggrek Surabaya", category: "Collection", url: "/collections/bunga-anggrek-surabaya", images: " ", price: " " },{ label: "Bunga Anniversary", category: "Collection", url: "/collections/bunga-anniversary", images: " ", price: " " },{ label: "Bunga Artificial", category: "Collection", url: "/collections/bunga-artificial", images: " ", price: " " },{ label: "Bunga Buket", category: "Collection", url: "/collections/bunga-buket", images: " ", price: " " },{ label: "Bunga Carnations Bali", category: "Collection", url: "/collections/bunga-carnations-bali", images: " ", price: " " },{ label: "Bunga Carnations Bandung", category: "Collection", url: "/collections/bunga-carnations-bandung", images: " ", price: " " },{ label: "Bunga Carnations Surabaya", category: "Collection", url: "/collections/bunga-carnations-surabaya", images: " ", price: " " },{ label: "Bunga Daisy Bali", category: "Collection", url: "/collections/bunga-daisy-bali", images: " ", price: " " },{ label: "Bunga Daisy Bandung", category: "Collection", url: "/collections/bunga-daisy-bandung", images: " ", price: " " },{ label: "Bunga Daisy Surabaya", category: "Collection", url: "/collections/bunga-daisy-surabaya", images: " ", price: " " },{ label: "Bunga Gerbera Bali", category: "Collection", url: "/collections/bunga-gerbera-bali", images: " ", price: " " },{ label: "Bunga Gerbera Bandung", category: "Collection", url: "/collections/bunga-gerbera-bandung", images: " ", price: " " },{ label: "Bunga Gerbera Surabaya", category: "Collection", url: "/collections/bunga-gerbera-surabaya", images: " ", price: " " },{ label: "Bunga Imlek", category: "Collection", url: "/collections/rangkaian-bunga-tahun-baru-imlek", images: " ", price: " " },{ label: "Bunga Lebaran", category: "Collection", url: "/collections/rangkaian-bunga-lebaran", images: " ", price: " " },{ label: "Bunga Lily Bali", category: "Collection", url: "/collections/bunga-lily-bali", images: " ", price: " " },{ label: "Bunga Lily Bandung", category: "Collection", url: "/collections/bunga-lily-bandung", images: " ", price: " " },{ label: "Bunga Lily Surabaya", category: "Collection", url: "/collections/bunga-lily-surabaya", images: " ", price: " " },{ label: "Bunga Matahari Bali", category: "Collection", url: "/collections/bunga-matahari-bali", images: " ", price: " " },{ label: "Bunga Matahari Bandung", category: "Collection", url: "/collections/bunga-matahari-bandung", images: " ", price: " " },{ label: "Bunga Matahari Surabaya", category: "Collection", url: "/collections/bunga-matahari-surabaya", images: " ", price: " " },{ label: "Bunga Mawar Bali", category: "Collection", url: "/collections/bunga-mawar-bali", images: " ", price: " " },{ label: "Bunga Mawar Bandung", category: "Collection", url: "/collections/bunga-mawar-bandung", images: " ", price: " " },{ label: "Bunga Mawar Surabaya", category: "Collection", url: "/collections/bunga-mawar-surabaya", images: " ", price: " " },{ label: "Bunga Meja", category: "Collection", url: "/collections/bunga-meja", images: " ", price: " " },{ label: "Bunga Meja Bali", category: "Collection", url: "/collections/bunga-meja-bali", images: " ", price: " " },{ label: "Bunga Meja Bandung", category: "Collection", url: "/collections/bunga-meja-bandung", images: " ", price: " " },{ label: "Bunga Meja Batam", category: "Collection", url: "/collections/bunga-meja-batam", images: " ", price: " " },{ label: "Bunga Meja Jepara", category: "Collection", url: "/collections/bunga-meja-jepara", images: " ", price: " " },{ label: "Bunga Meja Medan", category: "Collection", url: "/collections/bunga-meja-medan", images: " ", price: " " },{ label: "Bunga Meja Semarang", category: "Collection", url: "/collections/bunga-meja-semarang", images: " ", price: " " },{ label: "Bunga Meja Sidoarjo", category: "Collection", url: "/collections/bunga-meja-sidoarjo", images: " ", price: " " },{ label: "Bunga Meja Surabaya", category: "Collection", url: "/collections/bunga-meja-surabaya", images: " ", price: " " },{ label: "Bunga Meja Tangerang", category: "Collection", url: "/collections/bunga-meja-tangerang", images: " ", price: " " },{ label: "Bunga Meja Yogyakarta", category: "Collection", url: "/collections/bunga-meja-jogja", images: " ", price: " " },{ label: "Bunga Modern Pastel Bali", category: "Collection", url: "/collections/bunga-modern-pastel-bali", images: " ", price: " " },{ label: "Bunga Modern Pastel Bandung", category: "Collection", url: "/collections/bunga-modern-pastel-bandung", images: " ", price: " " },{ label: "Bunga Modern Pastel Medan", category: "Collection", url: "/collections/bunga-modern-pastel-medan", images: " ", price: " " },{ label: "Bunga Modern Pastel Semarang", category: "Collection", url: "/collections/bunga-modern-pastel-semarang", images: " ", price: " " },{ label: "Bunga Modern Pastel Surabaya", category: "Collection", url: "/collections/bunga-modern-pastel-surabaya", images: " ", price: " " },{ label: "Bunga Modern Pastel Yogyakarta", category: "Collection", url: "/collections/bunga-modern-pastel-yogyakarta", images: " ", price: " " },{ label: "Bunga Natal", category: "Collection", url: "/collections/rangkaian-bunga-christmas", images: " ", price: " " },{ label: "Bunga Papan", category: "Collection", url: "/collections/bunga-papan", images: " ", price: " " },{ label: "Bunga Pernikahan", category: "Collection", url: "/collections/bunga-pernikahan", images: " ", price: " " },{ label: "Bunga Plastik", category: "Collection", url: "/collections/bunga-plastik", images: " ", price: " " },{ label: "Bunga Tulip", category: "Collection", url: "/collections/bunga-tulip", images: " ", price: " " },{ label: "Bunga Ulang Tahun", category: "Collection", url: "/collections/bunga-ulang-tahun", images: " ", price: " " },{ label: "Bunga Wisuda", category: "Collection", url: "/collections/karangan-bunga-wisuda", images: " ", price: " " },{ label: "Cake", category: "Collection", url: "/collections/kue", images: " ", price: " " },{ label: "Cake", category: "Collection", url: "/collections/cake", images: " ", price: " " },{ label: "Cake Sameday Delivery", category: "Collection", url: "/collections/cake-sameday-delivery", images: " ", price: " " },{ label: "Cake, Hampers & Gifts", category: "Collection", url: "/collections/cake-hampers", images: " ", price: " " },{ label: "Cancer âï¸ 22June - 22July", category: "Collection", url: "/collections/kado-untuk-zodiak-cancer", images: " ", price: " " },{ label: "Capricorn âï¸ 21Dec - 19Jan", category: "Collection", url: "/collections/kado-untuk-zodiak-capricorn", images: " ", price: " " },{ label: "Care Packages", category: "Collection", url: "/collections/toko-parcel-murah", images: " ", price: " " },{ label: "Care Packages (Keluarga, Sahabat, Karyawan)", category: "Collection", url: "/collections/sehat-bebas-corona", images: " ", price: " " },{ label: "Carnations", category: "Collection", url: "/collections/bunga-anyelir", images: " ", price: " " },{ label: "Celebration", category: "Collection", url: "/collections/celebration", images: " ", price: " " },{ label: "Chléa Paperie", category: "Collection", url: "/collections/chlea-paperie", images: " ", price: " " },{ label: "Chocodot", category: "Collection", url: "/collections/chocodot", images: " ", price: " " },{ label: "Christmas", category: "Collection", url: "/collections/christmas", images: " ", price: " " },{ label: "Classic Cake", category: "Collection", url: "/collections/classic-cake", images: " ", price: " " },{ label: "Classic CNY Hampers", category: "Collection", url: "/collections/classic-cny-hampers", images: " ", price: " " },{ label: "Classic CNY Hampers Luar Jabodetabek", category: "Collection", url: "/collections/classic-cny-hampers-luar-jabodetabek", images: " ", price: " " },{ label: "Classic Hampers", category: "Collection", url: "/collections/classic-hampers", images: " ", price: " " },{ label: "Classic Hampers Luar Jadetabek", category: "Collection", url: "/collections/classic-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Classic Style Flowers", category: "Collection", url: "/collections/classic-style-flowers", images: " ", price: " " },{ label: "Cokelat", category: "Collection", url: "/collections/permen-coklat", images: " ", price: " " },{ label: "Collection List", category: "Collection", url: "/collections/collection-list", images: " ", price: " " },{ label: "Condolences", category: "Collection", url: "/collections/axa-condolences", images: " ", price: " " },{ label: "Congratulations", category: "Collection", url: "/collections/rangkaian-bunga-ucapan-selamat", images: " ", price: " " },{ label: "Corporate Gifts", category: "Collection", url: "/collections/corporate-gifts", images: " ", price: " " },{ label: "Corporate Hampers", category: "Collection", url: "/collections/corporate-hampers", images: " ", price: " " },{ label: "Couple Gift", category: "Collection", url: "/collections/couple-gift", images: " ", price: " " },{ label: "Craft Sweetbox Newborn", category: "Co
7877llection", url: "/collections/craft-sweetbox-newborn", images: " ", price: " " },{ label: "Crystal Florarium", category: "Collection", url: "/collections/crystal-florarium", images: " ", price: " " },{ label: "Cuddlemate Doll", category: "Collection", url: "/collections/boneka-lucu", images: " ", price: " " },{ label: "Cufflinks", category: "Collection", url: "/collections/cufflinks", images: " ", price: " " },{ label: "Cupcakes", category: "Collection", url: "/collections/cupcakes", images: " ", price: " " },{ label: "Custom Alat Tulis", category: "Collection", url: "/collections/alat-tulis", images: " ", price: " " },{ label: "Custom Cake", category: "Collection", url: "/collections/custom-cake", images: " ", price: " " },{ label: "Custom Card Holder", category: "Collection", url: "/collections/custom-card-holder", images: " ", price: " " },{ label: "Custom Coaster", category: "Collection", url: "/collections/custom-coaster", images: " ", price: " " },{ label: "Custom Cutlery", category: "Collection", url: "/collections/custom-cutlery", images: " ", price: " " },{ label: "Custom E-Money", category: "Collection", url: "/collections/custom-e-money", images: " ", price: " " },{ label: "Custom Earpod", category: "Collection", url: "/collections/custom-earpod", images: " ", price: " " },{ label: "Custom Fan", category: "Collection", url: "/collections/custom-fan", images: " ", price: " " },{ label: "Custom Jewelry", category: "Collection", url: "/collections/custom-jewelry", images: " ", price: " " },{ label: "Custom Keychain", category: "Collection", url: "/collections/custom-keychain", images: " ", price: " " },{ label: "Custom Medallion", category: "Collection", url: "/collections/custom-medallion", images: " ", price: " " },{ label: "Custom Mirror", category: "Collection", url: "/collections/custom-mirror", images: " ", price: " " },{ label: "Custom Mug", category: "Collection", url: "/collections/custom-mug", images: " ", price: " " },{ label: "Custom Necklace", category: "Collection", url: "/collections/custom-necklace", images: " ", price: " " },{ label: "Custom Notebook", category: "Collection", url: "/collections/custom-notebook", images: " ", price: " " },{ label: "Custom Pen & Pencil", category: "Collection", url: "/collections/custom-pen-pencil", images: " ", price: " " },{ label: "Custom Photo Frame", category: "Collection", url: "/collections/photo-frame", images: " ", price: " " },{ label: "Custom Pillow", category: "Collection", url: "/collections/bantal-custom", images: " ", price: " " },{ label: "Custom Powerbank", category: "Collection", url: "/collections/custom-powerbank", images: " ", price: " " },{ label: "Custom Scarf", category: "Collection", url: "/collections/custom-scarf", images: " ", price: " " },{ label: "Custom Speaker", category: "Collection", url: "/collections/custom-speaker", images: " ", price: " " },{ label: "Custom T-Shirt", category: "Collection", url: "/collections/custom-t-shirt", images: " ", price: " " },{ label: "Custom Tote Bag", category: "Collection", url: "/collections/custom-tote-bag", images: " ", price: " " },{ label: "Custom Tumbler Minuman", category: "Collection", url: "/collections/custom-tumbler-minuman", images: " ", price: " " },{ label: "D'paris", category: "Collection", url: "/collections/dparis", images: " ", price: " " },{ label: "Daisy", category: "Collection", url: "/collections/bunga-aster", images: " ", price: " " },{ label: "Dekorasi", category: "Collection", url: "/collections/dekorasi", images: " ", price: " " },{ label: "Dekorasi Duka Cita", category: "Collection", url: "/collections/dekorasi-bunga-duka-cita", images: " ", price: " " },{ label: "Dekorasi Pemakaman", category: "Collection", url: "/collections/dekorasi-pemakaman", images: " ", price: " " },{ label: "Dekorasi Pernikahan", category: "Collection", url: "/collections/dekorasi-bunga-pernikahan", images: " ", price: " " },{ label: "Dekorasi Ulang Tahun", category: "Collection", url: "/collections/dekorasi-bunga-ulang-tahun", images: " ", price: " " },{ label: "Delivery", category: "Collection", url: "/collections/delivery", images: " ", price: " " },{ label: "Deluxe Newborn Hampers Collection", category: "Collection", url: "/collections/deluxe-newborn-hampers-collection", images: " ", price: " " },{ label: "Digital Gift", category: "Collection", url: "/collections/digital-gift", images: " ", price: " " },{ label: "Donasi", category: "Collection", url: "/collections/donasi", images: " ", price: " " },{ label: "E-Card", category: "Collection", url: "/collections/ecard", images: " ", price: " " },{ label: "E-Gift Card", category: "Collection", url: "/collections/e-gift-card", images: " ", price: " " },{ label: "Earrings", category: "Collection", url: "/collections/anting", images: " ", price: " " },{ label: "Edible Gift", category: "Collection", url: "/collections/edible-gift", images: " ", price: " " },{ label: "Enchanted Grande Love Pirouette", category: "Collection", url: "/collections/enchanted-grande-love-pirouette", images: " ", price: " " },{ label: "Enchanted Love Pirouette", category: "Collection", url: "/collections/enchanted-love-pirouette", images: " ", price: " " },{ label: "Engagement", category: "Collection", url: "/collections/rangkaian-bunga-lamaran", images: " ", price: " " },{ label: "Expression", category: "Collection", url: "/collections/expression", images: " ", price: " " }
7877,{ label: "Father's Day Special", category: "Collection", url: "/collections/kado-untuk-ayah", images: " ", price: " " },{ label: "Ferrari", category: "Collection", url: "/collections/ferrari", images: " ", price: " " },{ label: "Ferrero Rocher", category: "Collection", url: "/collections/ferrero-rocher", images: " ", price: " " },{ label: "Festival Belanja Online", category: "Collection", url: "/collections/fbo-2018", images: " ", price: " " },{ label: "Floatbox", category: "Collection", url: "/collections/floatbox", images: " ", price: " " },{ label: "Flower", category: "Collection", url: "/collections/flower", images: " ", price: " " },{ label: "Flower Best Deals", category: "Collection", url: "/collections/flower-best-deals", images: " ", price: " " },{ label: "Flowers", category: "Collection", url: "/collections/toko-bunga", images: " ", price: " " },{ label: "Flowers For Him", category: "Collection", url: "/collections/bunga-untuk-pria", images: " ", price: " " },{ label: "Flowers Style", category: "Collection", url: "/collections/style", images: " ", price: " " },{ label: "Flowers Type", category: "Collection", url: "/collections/type", images: " ", price: " " },{ label: "For Her", category: "Collection", url: "/collections/kado-untuk-wanita", images: " ", price: " " },{ label: "For Him", category: "Collection", url: "/collections/kado-untuk-pria", images: " ", price: " " },{ label: "Forever Flower", category: "Collection", url: "/collections/forever-flower", images: " ", price: " " },{ label: "Forever Flower Holo Series", category: "Collection", url: "/collections/forever-flower-holo-series", images: " ", price: " " },{ label: "Forever Flower x NestBloom", category: "Collection", url: "/collections/forever-flower-x-nestbloom", images: " ", price: " " },{ label: "Fortune Hampers", category: "Collection", url: "/collections/fortune-hampers", images: " ", price: " " },{ label: "Frank & Co", category: "Collection", url: "/collections/franknco", images: " ", price: " " },{ label: "Fresh Flowers", category: "Collection", url: "/collections/fresh-flower", images: " ", price: " " },{ label: "Gantungan Kunci", category: "Collection", url: "/collections/gantungan-kunci", images: " ", price: " " },{ label: "Gelato", category: "Collection", url: "/collections/gelato", images: " ", price: " " },{ label: "Gelato Pie", category: "Collection", url: "/collections/gelato-pie", images: " ", price: " " },{ label: "Gemini âï¸ 21May - 21June", category: "Collection", url: "/collections/kado-untuk-zodiak-gemini", images: " ", price: " " },{ label: "Gerbera", category: "Collection", url: "/collections/gerbera", images: " ", price: " " },{ label: "Get Well Soon", category: "Collection", url: "/collections/rangkaian-bunga-gws", images: " ", price: " " },{ label: "Giant Flower Bali", category: "Collection", url: "/collections/giant-flower-bali", images: " ", price: " " },{ label: "Giant Flower Bandung", category: "Collection", url: "/collections/giant-flower-bandung", images: " ", price: " " },{ label: "Giant Flower Bouquet", category: "Collection", url: "/collections/giant-flower", images: " ", price: " " },{ label: "Gift", category: "Collection", url: "/collections/souvenir-kado-hadiah", images: " ", price: " " },{ label: "Gift by Recipient", category: "Collection", url: "/collections/gift-by-recipient", images: " ", price: " " },{ label: "Gift for Your Girlfriend", category: "Collection", url: "/collections/kado-untuk-pacar-wanita", images: " ", price: " " },{ label: "Gifts", category: "Collection", url: "/collections/gifts", images: " ", price: " " },{ label: "Glassbox Hampers", category: "Collection", url: "/collections/glassbox-hampers", images: " ", price: " " },{ label: "Glassware Hampers", category: "Collection", url: "/collections/parcel-pecah-belah", images: " ", price: " " },{ label: "Gold Jewelry", category: "Collection", url: "/collections/perhiasan-emas", images: " ", price: " " },{ label: "Grand Opening", category: "Collection", url: "/collections/grand-opening", images: " ", price: " " },{ label: "Granola", category: "Collection", url: "/collections/granola", images: " ", price: " " },{ label: "Green Tea", category: "Collection", url: "/collections/green-tea", images: " ", price: " " },{ label: "Greeting Card All", category: "Collection", url: "/collections/greeting-card-all", images: " ", price: " " },{ label: "Greeting Card Anniversary", category: "Collection", url: "/collections/greeting-card-anniversary", images: " ", price: " " },{ label: "Greeting Card Birthday", category: "Collection", url: "/collections/greeting-card-birthday", images: " ", price: " " },{ label: "Greeting Card Eid", category: "Collection", url: "/collections/greeting-card-eid", images: " ", price: " " },{ label: "Greeting Card Graduation", category: "Collection", url: "/collections/greeting-card-graduation", images: " ", price: " " },{ label: "Greeting Card Mother's Day", category: "Collection", url: "/collections/greeting-card-mothers-day", images: " ", price: " " },{ label: "Greeting Card Newborn", category: "Collection", url: "/collections/greeting-card-newborn", images: " ", price: " " },{ label: "Greeting Card Others", category: "Collection", url: "/collections/greeting-card-others", images: " ", price: " " },{ label: "Greeting Card Valentine", category: "Collection", url: "/collections/greeting-card-valentine", images: " ", price: " " },{ label: "Greeting Card Wedding", category: "Collection", url: "/collections/greeting-card-wedding", images: " ", price: " " },{ label: "Grooming", category: "Collection", url: "/collections/grooming", images: " ", price: " " },{ label: "Hadiah Tahun Baru Imlek", category: "Collection", url: "/collections/kado-imlek", images: " ", price: " " },{ label: "Hadiah untuk Bayi", category: "Collection", url: "/collections/kado-untuk-bayi", images: " ", price: " " },{ label: "Hadiah untuk Pacar", category: "Collection", url: "/collections/kado-untuk-pacar", images: " ", price: " " },{ label: "Hadiah untuk Pernikahan", category: "Collection", url: "/collections/kado-untuk-pernikahan", images: " ", price: " " },{ label: "Hadiah untuk Sahabat", category: "Collection", url: "/collections/kado-untuk-sahabat", images: " ", price: " " },{ label: "Hampers", category: "Collection", url: "/collections/hampers", images: " ", price: " " },{ label: "Hampers Baby Boy", category: "Collection", url: "/collections/hampers-baby-boy", images: " ", price: " " },{ label: "Hampers Baby Girl", category: "Collection", url: "/collections/hampers-baby-girl", images: " ", price: " " },{ label: "Hampers Baby Unisex", category: "Collection", url: "/collections/hampers-baby-unisex", images: " ", price: " " },{ label: "Hampers Delivery Indonesia", category: "Collection", url: "/collections/parcel-indonesia", images: " ", price: " " },{ label: "Hampers Lebaran 2025", category: "Collection", url: "/collections/parcel-lebaran", images: " ", price: " " },{ label: "Hampers Lebaran Bali", category: "Collection", url: "/collections/hampers-lebaran-bali", images: " ", price: " " },{ label: "Hampers Lebaran Bandung", category: "Collection", url: "/collections/hampers-lebaran-bandung", images: " ", price: " " },{ label: "Hampers Lebaran Jakarta", category: "Collection", url: "/collections/hampers-lebaran-jakarta", images: " ", price: " " },{ label: "Hampers Lebaran Semarang", category: "Collection", url: "/collections/hampers-lebaran-semarang", images: " ", price: " " },{ label: "Hampers Lebaran Surabaya", category: "Collection", url: "/collections/hampers-lebaran-surabaya", images: " ", price: " " },{ label: "Hampers Lebaran Yogyakarta", category: "Collection", url: "/collections/hampers-lebaran-yogyakarta", images: " ", price: " " },{ label: "Hand Sanitizer", category: "Collection", url: "/collections/hand-sanitizer", images: " ", price: " " },{ label: "Happy Birthday", category: "Collection", url: "/collections/kado-ulang-tahun", images: " ", price: " " },{ label: "Harbolnas", category: "Collection", url: "/collections/harbolnas-2018", images: " ", price: " " },{ label: "Harbolnas Produk Lokal", category: "Collection", url: "/collections/produk-lokal", images: " ", price: " " },{ label: "Hari Belanja Online Nasional", category: "Collection", url: "/collections/harbolnas", images: " ", price: " " },{ label: "Hari Guru", category: "Collection", url: "/collections/hari-guru", images: " ", price: " " },{ label: "Healthy Creations", category: "Collection", url: "/collections/healthy-creations", images: " ", price: " " },{ label: "Healthy Hampers", category: "Collection", url: "/collections/healthy-hampers", images: " ", price: " " },{ label: "Heritage Box", category: "Collection", url: "/collections/heritage-boxes", images: " ", price: " " },{ label: "Heritage Chinese New Year Hampers", category: "Collection", url: "/collections/heritage-chinese-new-year-hampers", images: " ", price: " " },{ label: "Heritage Christmas Hampers", category: "Collection", url: "/collections/heritage-christmas-hampers", images: " ", price: " " },{ label: "Heritage Hampers", category: "Collection", url: "/collections/heritage-hampers", images: " ", price: " " },{ label: "Heritage Ramadan Hampers", category: "Collection", url: "/collections/heritage-ramadan-hampers", images: " ", price: " " },{ label: "Hexa Hampers", category: "Collection", url: "/collections/hexa-hampers", images: " ", price: " " },{ label: "Hexa Hampers Luar Jadetabek", category: "Collection", url: "/collections/hexa-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Hexa Newborn", category: "Collection", url: "/collections/hexa-newborn", images: " ", price: " " },{ label: "Holo Bag", category: "Collection", url: "/collections/holo-bag", images: " ", price: " " },{ label: "Holo Series", category: "Collection", url: "/collections/holo-series", images: " ", price: " " },{ label: "Home Decoration & Photo Frame", category: "Collection", url: "/collections/home-decoration", images: " ", price: " " }
7877,{ label: "Hospitalization", category: "Collection", url: "/collections/axa-hospitalization", images: " ", price: " " },{ label: "House Hampers", category: "Collection", url: "/collections/house-hampers", images: " ", price: " " },{ label: "I'm Sorry", category: "Collection", url: "/collections/rangkaian-bunga-sorry", images: " ", price: " " },{ label: "Ice Cream Cake", category: "Collection", url: "/collections/ice-cream-cake", images: " ", price: " " },{ label: "Idul Fitri", category: "Collection", url: "/collections/rangkaian-bunga-idul-fitri", images: " ", price: " " },{ label: "Jam Tangan", category: "Collection", url: "/collections/jam-tangan", images: " ", price: " " },{ label: "Jam Tangan Couple", category: "Collection", url: "/collections/jam-tangan-couple", images: " ", price: " " },{ label: "Jam Tangan Pria", category: "Collection", url: "/collections/jam-tangan-pria", images: " ", price: " " },{ label: "Jam Tangan Wanita", category: "Collection", url: "/collections/jam-tangan-wanita", images: " ", price: " " },{ label: "Jasa Packing Parcel", category: "Collection", url: "/collections/jasa-packing-parcel", images: " ", price: " " },{ label: "Jewelry", category: "Collection", url: "/collections/jewelry", images: " ", price: " " },{ label: "Jolly Hampers", category: "Collection", url: "/collections/jolly-hampers", images: " ", price: " " },{ label: "Jual Custom Cake & Hampers Termurah & Terlengkap | Outerbloom Florist & Gift", category: "Collection", url: "/collections/custom-cake-hampers", images: " ", price: " " },{ label: "Just Because", category: "Collection", url: "/collections/just-because", images: " ", price: " " },{ label: "Kado Makanan", category: "Collection", url: "/collections/kado-makanan", images: " ", price: " " },{ label: "Kado Minuman", category: "Collection", url: "/collections/kado-minuman", images: " ", price: " " },{ label: "Kado Natal", category: "Collection", url: "/collections/kado-natal", images: " ", price: " " },{ label: "Kado Unik", category: "Collection", url: "/collections/kado-unik", images: " ", price: " " },{ label: "Kado Valentine Nusantara", category: "Collection", url: "/collections/kado-valentine-nusantara", images: " ", price: " " },{ label: "Kado Valentine untuk Pria", category: "Collection", url: "/collections/kado-valentine-untuk-pria", images: " ", price: " " },{ label: "Kado Wisuda", category: "Collection", url: "/collections/kado-wisuda", images: " ", price: " " },{ label: "Kado Zodiak", category: "Collection", url: "/collections/kado-untuk-zodiak", images: " ", price: " " },{ label: "Karangan Bunga Aceh", category: "Collection", url: "/collections/karangan-bunga-aceh", images: " ", price: " " },{ label: "Karangan Bunga Ambon", category: "Collection", url: "/collections/karangan-bunga-ambon", images: " ", price: " " },{ label: "Karangan Bunga Atambua", category: "Collection", url: "/collections/karangan-bunga-atambua", images: " ", price: " " },{ label: "Karangan Bunga Bali", category: "Collection", url: "/collections/karangan-bunga-bali", images: " ", price: " " },{ label: "Karangan Bunga Balikpapan", category: "Collection", url: "/collections/karangan-bunga-balikpapan", images: " ", price: " " },{ label: "Karangan Bunga Bandung", category: "Collection", url: "/collections/karangan-bunga-bandung", images: " ", price: " " },{ label: "Karangan Bunga Bandung Barat", category: "Collection", url: "/collections/karangan-bunga-bandung-barat", images: " ", price: " " },{ label: "Karangan Bunga Bangka", category: "Collection", url: "/collections/karangan-bunga-bangka", images: " ", price: " " },{ label: "Karangan Bunga Banjarmasin", category: "Collection", url: "/collections/karangan-bunga-banjarmasin", images: " ", price: " " },{ label: "Karangan Bunga Banten", category: "Collection", url: "/collections/karangan-bunga-banten", images: " ", price: " " },{ label: "Karangan Bunga Banyumas", category: "Collection", url: "/collections/karangan-bunga-banyumas", images: " ", price: " " },{ label: "Karangan Bunga Banyuwangi", category: "Collection", url: "/collections/karangan-bunga-banyuwangi", images: " ", price: " " },{ label: "Karangan Bunga Batam", category: "Collection", url: "/collections/karangan-bunga-batam", images: " ", price: " " },{ label: "Karangan Bunga Baubau", category: "Collection", url: "/collections/karangan-bunga-baubau", images: " ", price: " " },{ label: "Karangan Bunga Bengkalis", category: "Collection", url: "/collections/karangan-bunga-bengkalis", images: " ", price: " " },{ label: "Karangan Bunga Bengkayang", category: "Collection", url: "/collections/karangan-bunga-bengkayang", images: " ", price: " " },{ label: "Karangan Bunga Bengkulu", category: "Collection", url: "/collections/karangan-bunga-bengkulu", images: " ", price: " " },{ label: "Karangan Bunga Blora", category: "Collection", url: "/collections/karangan-bunga-blora", images: " ", price: " " },{ label: "Karangan Bunga Bogor", category: "Collection", url: "/collections/karangan-bunga-bogor", images: " ", price: " " },{ label: "Karangan Bunga Bojonegoro", category: "Collection", url: "/collections/karangan-bunga-bojonegoro", images: " ", price: " " },{ label: "Karangan Bunga Boyolali", category: "Collection", url: "/collections/karangan-bunga-boyolali", images: " ", price: " " },{ label: "Karangan Bunga Brebes", category: "Collection", url: "/collections/karangan-bunga-brebes", images: " ", price: " " },{ label: "Karangan Bunga Bukittinggi", category: "Collection", url: "/collections/karangan-bunga-bukittinggi", images: " ", price: " " },{ label: "Karangan Bunga Ciamis", category: "Collection", url: "/collections/karangan-bunga-ciamis", images: " ", price: " " }
7877,{ label: "Karangan Bunga Cianjur", category: "Collection", url: "/collections/karangan-bunga-cianjur", images: " ", price: " " },{ label: "Karangan Bunga Cikarang", category: "Collection", url: "/collections/karangan-bunga-cikarang", images: " ", price: " " },{ label: "Karangan Bunga Cikupa", category: "Collection", url: "/collections/karangan-bunga-cikupa", images: " ", price: " " },{ label: "Karangan Bunga Cilacap", category: "Collection", url: "/collections/karangan-bunga-cilacap", images: " ", price: " " },{ label: "Karangan Bunga Cileunyi", category: "Collection", url: "/collections/karangan-bunga-cileunyi", images: " ", price: " " },{ label: "Karangan Bunga Cimahi", category: "Collection", url: "/collections/karangan-bunga-cimahi", images: " ", price: " " },{ label: "Karangan Bunga Cirebon", category: "Collection", url: "/collections/karangan-bunga-cirebon", images: " ", price: " " },{ label: "Karangan Bunga Ciwidey", category: "Collection", url: "/collections/karangan-bunga-ciwidey", images: " ", price: " " },{ label: "Karangan Bunga Danau Toba", category: "Collection", url: "/collections/karangan-bunga-danau-toba", images: " ", price: " " },{ label: "Karangan Bunga Demak", category: "Collection", url: "/collections/karangan-bunga-demak", images: " ", price: " " },{ label: "Karangan Bunga Denpasar", category: "Collection", url: "/collections/karangan-bunga-denpasar", images: " ", price: " " },{ label: "Karangan Bunga Depok", category: "Collection", url: "/collections/karangan-bunga-depok", images: " ", price: " " },{ label: "Karangan Bunga Duka Cita", category: "Collection", url: "/collections/karangan-bunga-duka-cita", images: " ", price: " " },{ label: "Karangan Bunga Garut", category: "Collection", url: "/collections/karangan-bunga-garut", images: " ", price: " " },{ label: "Karangan Bunga Gianyar", category: "Collection", url: "/collections/karangan-bunga-gianyar", images: " ", price: " " },{ label: "Karangan Bunga Gorontalo", category: "Collection", url: "/collections/karangan-bunga-gorontalo", images: " ", price: " " },{ label: "Karangan Bunga Gowa", category: "Collection", url: "/collections/karangan-bunga-gowa", images: " ", price: " " },{ label: "Karangan Bunga Gresik", category: "Collection", url: "/collections/karangan-bunga-gresik", images: " ", price: " " },{ label: "Karangan Bunga Grobogan", category: "Collection", url: "/collections/karangan-bunga-grobogan", images: " ", price: " " },{ label: "Karangan Bunga Gunung Kidul", category: "Collection", url: "/collections/karangan-bunga-gunungkidul", images: " ", price: " " },{ label: "Karangan Bunga Indramayu", category: "Collection", url: "/collections/karangan-bunga-indramayu", images: " ", price: " " },{ label: "Karangan Bunga Jakarta", category: "Collection", url: "/collections/karangan-bunga-jakarta", images: " ", price: " " },{ label: "Karangan Bunga Jambi", category: "Collection", url: "/collections/karangan-bunga-jambi", images: " ", price: " " },{ label: "Karangan Bunga Jayapura", category: "Collection", url: "/collections/karangan-bunga-jayapura", images: " ", price: " " },{ label: "Karangan Bunga Jember", category: "Collection", url: "/collections/karangan-bunga-jember", images: " ", price: " " },{ label: "Karangan Bunga Jembrana", category: "Collection", url: "/collections/karangan-bunga-jembrana", images: " ", price: " " },{ label: "Karangan Bunga Jepara", category: "Collection", url: "/collections/karangan-bunga-jepara", images: " ", price: " " },{ label: "Karangan Bunga Jombang", category: "Collection", url: "/collections/karangan-bunga-jombang", images: " ", price: " " },{ label: "Karangan Bunga Kampung Baru", category: "Collection", url: "/collections/karangan-bunga-kampung-baru", images: " ", price: " " },{ label: "Karangan Bunga Kapuas", category: "Collection", url: "/collections/karangan-bunga-kapuas", images: " ", price: " " },{ label: "Karangan Bunga Karanganyar", category: "Collection", url: "/collections/karangan-bunga-karanganyar", images: " ", price: " " },{ label: "Karangan Bunga Karangasem", category: "Collection", url: "/collections/karangan-bunga-karangasem", images: " ", price: " " },{ label: "Karangan Bunga Karawang", category: "Collection", url: "/collections/karangan-bunga-karawang", images: " ", price: " " },{ label: "Karangan Bunga Kartosuro", category: "Collection", url: "/collections/karangan-bunga-kartosuro", images: " ", price: " " },{ label: "Karangan Bunga Kebumen", category: "Collection", url: "/collections/karangan-bunga-kebumen", images: " ", price: " " },{ label: "Karangan Bunga Kediri", category: "Collection", url: "/collections/karangan-bunga-kediri", images: " ", price: " " },{ label: "Karangan Bunga Kendal", category: "Collection", url: "/collections/karangan-bunga-ken
7877dal", images: " ", price: " " },{ label: "Karangan Bunga Kendari", category: "Collection", url: "/collections/karangan-bunga-kendari", images: " ", price: " " },{ label: "Karangan Bunga Ketapang", category: "Collection", url: "/collections/karangan-bunga-ketapang", images: " ", price: " " },{ label: "Karangan Bunga Klaten", category: "Collection", url: "/collections/karangan-bunga-klaten", images: " ", price: " " },{ label: "Karangan Bunga Kota Batu", category: "Collection", url: "/collections/karangan-bunga-kota-batu", images: " ", price: " " },{ label: "Karangan Bunga Kudus", category: "Collection", url: "/collections/karangan-bunga-kudus", images: " ", price: " " },{ label: "Karangan Bunga Kupang", category: "Collection", url: "/collections/karangan-bunga-kupang", images: " ", price: " " },{ label: "Karangan Bunga Lamongan", category: "Collection", url: "/collections/karangan-bunga-lamongan", images: " ", price: " " },{ label: "Karangan Bunga Lampung", category: "Collection", url: "/collections/karangan-bunga-lampung", images: " ", price: " " },{ label: "Karangan Bunga Langkat", category: "Collection", url: "/collections/karangan-bunga-langkat", images: " ", price: " " },{ label: "Karangan Bunga Lembang", category: "Collection", url: "/collections/karangan-bunga-lembang", images: " ", price: " " },{ label: "Karangan Bunga Lombok", category: "Collection", url: "/collections/karangan-bunga-lombok", images: " ", price: " " },{ label: "Karangan Bunga Lubuk Pakam", category: "Collection", url: "/collections/karangan-bunga-lubuk-pakam", images: " ", price: " " },{ label: "Karangan Bunga Lumajang", category: "Collection", url: "/collections/karangan-bunga-lumajang", images: " ", price: " " },{ label: "Karangan Bunga Madiun", category: "Collection", url: "/collections/karangan-bunga-madiun", images: " ", price: " " },{ label: "Karangan Bunga Magelang", category: "Collection", url: "/collections/karangan-bunga-magelang", images: " ", price: " " },{ label: "Karangan Bunga Majalengka", category: "Collection", url: "/collections/karangan-bunga-majalengka", images: " ", price: " " },{ label: "Karangan Bunga Makassar", category: "Collection", url: "/collections/karangan-bunga-makassar", images: " ", price: " " },{ label: "Karangan Bunga Malang", category: "Collection", url: "/collections/karangan-bunga-malang", images: " ", price: " " },{ label: "Karangan Bunga Mamuju", category: "Collection", url: "/collections/karangan-bunga-mamuju", images: " ", price: " " },{ label: "Karangan Bunga Manado", category: "Collection", url: "/collections/karangan-bunga-manado", images: " ", price: " " },{ label: "Karangan Bunga Manokwari", category: "Collection", url: "/collections/karangan-bunga-manokwari", images: " ", price: " " },{ label: "Karangan Bunga Maros", category: "Collection", url: "/collections/karangan-bunga-maros", images: " ", price: " " },{ label: "Karangan Bunga Mataram", category: "Collection", url: "/collections/karangan-bunga-mataram", images: " ", price: " " },{ label: "Karangan Bunga Mojokerto", category: "Collection", url: "/collections/karangan-bunga-mojokerto", images: " ", price: " " },{ label: "Karangan Bunga Nganjuk", category: "Collection", url: "/collections/karangan-bunga-nganjuk", images: " ", price: " " },{ label: "Karangan Bunga Nias", category: "Collection", url: "/collections/karangan-bunga-nias", images: " ", price: " " },{ label: "Karangan Bunga Padang", category: "Collection", url: "/collections/karangan-bunga-padang", images: " ", price: " " },{ label: "Karangan Bunga Palangkaraya", category: "Collection", url: "/collections/karangan-bunga-palangkaraya", images: " ", price: " " },{ label: "Karangan Bunga Palu", category: "Collection", url: "/collections/karangan-bunga-palu", images: " ", price: " " },{ label: "Karangan Bunga Pangkal Pinang", category: "Collection", url: "/collections/karangan-bunga-pangkal-pinang", images: " ", price: " " },{ label: "Karangan Bunga Papan", category: "Collection", url: "/collections/karangan-bunga", images: " ", price: " " },{ label: "Karangan Bunga Papan Bandar Lampung", category: "Collection", url: "/collections/karangan-bunga-bandar-lampung", images: " ", price: " " },{ label: "Karangan Bunga Papan Bekasi", category: "Collection", url: "/collections/karangan-bunga-bekasi", images: " ", price: " " },{ label: "Karangan Bunga Papan Binjai", category: "Collection", url: "/collections/karangan-bunga-binjai", images: " ", price: " " },{ label: "Karangan Bunga Papan Blitar", category: "Collection", url: "/collections/karangan-bunga-blitar", images: " ", price: " " },{ label: "Karangan Bunga Papan Buleleng", category: "Collection", url: "/collections/karangan-bunga-buleleng", images: " ", price: " " },{ label: "Karangan Bunga Papan Cibubur", category: "Collection", url: "/collections/karangan-bunga-cibubur", images: " ", price: " " },{ label: "Karangan Bunga Papan Deli Serdang", category: "Collection", url: "/collections/karangan-bunga-deli-serdang", images: " ", price: " " },{ label: "Karangan Bunga Papan Jakarta Timur", category: "Collection", url: "/collections/karangan-bunga-jakarta-timur", images: " ", price: " " },{ label: "Karangan Bunga Papan Karo", category: "Collection", url: "/collections/karangan-bunga-karo", images: " ", price: " " },{ label: "Karangan Bunga Papan Medan", category: "Collection", url: "/collections/karangan-bunga-medan", images: " ", price: " " },{ label: "Karangan Bunga Papan Ngawi", category: "Collection", url: "/collections/karangan-bunga-ngawi", images: " ", price: " " },{ label: "Karangan Bunga Papan Palembang", category: "Collection", url: "/collections/karangan-bunga-palembang", images: " ", price: " " },{ label: "Karangan Bunga Papan Pemalang", category: "Collection", url: "/collections/karangan-bunga-pemalang", images: " ", price: " " },{ label: "Karangan Bunga Papan Rembang", category: "Collection", url: "/collections/karangan-bunga-rembang", images: " ", price: " " },{ label: "Karangan Bunga Papan Sragen", category: "Collection", url: "/collections/karangan-bunga-sragen", images: " ", price: " " },{ label: "Karangan Bunga Papan Tegal", category: "Collection", url: "/collections/karangan-bunga-tegal", images: " ", price: " " },{ label: "Karangan Bunga Papan Temanggung", category: "Collection", url: "/collections/karangan-bunga-temanggung", images: " ", price: " " },{ label: "Karangan Bunga Parepare", category: "Collection", url: "/collections/karangan-bunga-parepare", images: " ", price: " " },{ label: "Karangan Bunga Pasuruan", category: "Collection", url: "/collections/karangan-bunga-pasuruan", images: " ", price: " " },{ label: "Karangan Bunga Pati", category: "Collection", url: "/collections/karangan-bunga-pati", images: " ", price: " " },{ label: "Karangan Bunga Pekalongan", category: "Collection", url: "/collections/karangan-bunga-pekalongan", images: " ", price: " " },{ label: "Karangan Bunga Pekanbaru", category: "Collection", url: "/collections/karangan-bunga-pekanbaru", images: " ", price: " " },{ label: "Karangan Bunga Pematangsiantar", category: "Collection", url: "/collections/karangan-bunga-pematangsiantar", images: " ", price: " " },{ label: "Karangan Bunga Ponorogo", category: "Collection", url: "/collections/karangan-bunga-ponorogo", images: " ", price: " " },{ label: "Karangan Bunga Pontianak", category: "Collection", url: "/collections/karangan-bunga-pontianak", images: " ", price: " " },{ label: "Karangan Bunga Probolinggo", category: "Collection", url: "/collections/karangan-bunga-probolinggo", images: " ", price: " " },{ label: "Karangan Bunga Purbalingga", category: "Collection", url: "/collections/karangan-bunga-purbalingga", images: " ", price: " " },{ label: "Karangan Bunga Purwokerto", category: "Collection", url: "/collections/karangan-bunga-purwokerto", images: " ", price: " " },{ label: "Karangan Bunga Purworejo", category: "Collection", url: "/collections/karangan-bunga-purworejo", images: " ", price: " " },{ label: "Karangan Bunga Riau", category: "Collection", url: "/collections/karangan-bunga-riau", images: " ", price: " " },{ label: "Karangan Bunga Salatiga", category: "Collection", url: "/collections/karangan-bunga-salatiga", images: " ", price: " " },{ label: "Karangan Bunga Samarinda", category: "Collection", url: "/collections/karangan-bunga-samarinda", images: " ", price: " " },{ label: "Karangan Bunga Semarang", category: "Collection", url: "/collections/karangan-bunga-semarang", images: " ", price: " " },{ label: "Karangan Bunga Serang", category: "Collection", url: "/collections/karangan-bunga-serang", images: " ", price: " " },{ label: "Karangan Bunga Sibolga", category: "Collection", url: "/collections/karangan-bunga-sibolga", images: " ", price: " " },{ label: "Karangan Bunga Sidoarjo", category: "Collection", url: "/collections/karangan-bunga-sidoarjo", images: " ", price: " " },{ label: "Karangan Bunga Singkawang", category: "Collection", url: "/collections/karangan-bunga-singkawang", images: " ", price: " " },{ label: "Karangan Bunga Solo", category: "Collection", url: "/collections/karangan-bunga-solo", images: " ", price: " " },{ label: "Karangan Bunga Sorong", category: "Collection", url: "/collections/karangan-bunga-sorong", images: " ", price: " " },{ label: "Karangan Bunga Subang", category: "Collection", url: "/collections/karangan-bunga-subang", images: " ", price: " " },{ label: "Karangan Bunga Sukabumi", category: "Collection", url: "/collections/karangan-bunga-sukabumi", images: " ", price: " " },{ label: "Karangan Bunga Sumbawa", category: "Collection", url: "/collections/karangan-bunga-sumbawa", images: " ", price: " " },{ label: "Karangan Bunga Surabaya", category: "Collection", url: "/collections/karangan-bunga-surabaya", images: " ", price: " " },{ label: "Karangan Bunga Surakarta", category: "Collection", url: "/collections/karangan-bunga-surakarta", images: " ", price: " " },{ label: "Karangan Bunga Tangerang", category: "Collection", url: "/collections/karangan-bunga-tangerang", images: " ", price: " " },{ label: "Karangan Bunga Tasikmalaya", category: "Collection", url: "/collections/karangan-bunga-tasikmalaya", images: " ", price: " " },{ label: "Karangan Bunga Ternate", category: "Collection", url: "/collections/karangan-bunga-ternate", images: " ", price: " " },{ label: "Karangan Bunga Tolitoli", category: "Collection", url: "/collections/karangan-bunga-tolitoli", images: " ", price: " " },{ label: "Karangan Bunga Toraja", category: "Collection", url: "/collections/karangan-bunga-toraja", images: " ", price: " " },{ label: "Karangan Bunga Tuban", category: "Collection", url: "/collections/karangan-bunga-tuban", images: " ", price: " " },{ label: "Karangan Bunga Tulungagung", category: "Collection", url: "/collections/karangan-bunga-tulungagung", images: " ", price: " " },{ label: "Karangan Bunga Wakatobi", category: "Collection", url: "/collections/karangan-bunga-wakatobi", images: " ", price: " " },{ label: "Karangan Bunga Wiyung", category: "Collection", url: "/collections/karangan-bunga-wiyung", images: " ", price: " " },{ label: "Karangan Bunga Wonogiri", category: "Collection", url: "/collections/karangan-bunga-wonogiri", images: " ", price: " " },{ label: "Karangan Bunga Wonokromo", category: "Collection", url: "/collections/karangan-bunga-wonokromo", images: " ", price: " " },{ label: "Karangan Bunga Wonosobo", category: "Collection", url: "/collections/karangan-bunga-wonosobo", images: " ", price: " " },{ label: "Karangan Bunga Yogyakarta", category: "Collection", url: "/collections/karangan-bunga-yogyakarta", images: " ", price: " " },{ label: "Kartu Ucapan", category: "Collection", url: "/collections/kartu-ucapan", images: " ", price: " " },{ label: "Kue Anniversary", category: "Collection", url: "/collections/kue-anniversary", images: " ", price: " " },{ label: "Kue Bachelorette", category: "Collection", url: "/collections/kue-bachelorette", images: " ", price: " " },{ label: "Kue Bandung", category: "Collection", url: "/collections/kue-bandung", images: " ", price: " " },{ label: "Kue Bulan", category: "Collection", url: "/collections/kue-bulan", images: " ", price: " " },{ label: "Kue Imlek", category: "Collection", url: "/collections/kue-imlek", images: " ", price: " " },{ label: "Kue Kering", category: "Collection", url: "/collections/kue-kering", images: " ", price: " " },{ label: "Kue Natal", category: "Collection", url: "/collections/kue-natal", images: " ", price: " " },{ label: "Kue Pernikahan", category: "Collection", url: "/collections/kue-pernikahan", images: " ", price: " " },{ label: "Kue Tart", category: "Collection", url: "/collections/kue-tart", images: " ", price: " " },{ label: "Kue Tart Oma Elly", category: "Collection", url: "/collections/kue-tart-oma-elly", images: " ", price: " " },{ label: "Kue Ulang Tahun", category: "Collection", url: "/collections/kue-ulang-tahun", images: " ", price: " " },{ label: "Lalique", category: "Collection", url: "/collections/lalique", images: " ", price: " " },{ label: "Le Sucre Du Patisserie", category: "Collection", url: "/collections/le-sucre-du-patisserie", images: " ", price: " " },{ label: "Leo âï¸ 23July - 22Augst", category: "Collection", url: "/collections/kado-untuk-zodiak-leo", images: " ", price: " " },{ label: "Letter Box", category: "Collection", url: "/collections/letter-box", images: " ", price: " " },{ label: "Libra âï¸ 23Sept - 23Oct", category: "Collection", url: "/collections/kado-untuk-zodiak-libra", images: " ", price: " " },{ label: "Lilin Aromaterapi", category: "Collection", url: "/collections/lilin-aromaterapi", images: " ", price: " " },{ label: "Lily", category: "Collection", url: "/collections/bunga-lily", images: " ", price: " " },{ label: "Lindt", category: "Collection", url: "/collections/lindt", images: " ", price: " " },{ label: "Locations", category: "Collection", url: "/collections/locations", images: " ", price: " " },{ label: "Love & Romance", category: "Collection", url: "/collections/rangkaian-bunga-i-love-you", images: " ", price: " " },{ label: "Love Bag Collection", category: "Collection", url: "/collections/love-bag-collection", images: " ", price: " " },{ label: "Love Bundle", category: "Collection", url: "/collections/paket-promo-spesial-valentine", images: " ", price: " " },{ label: "Love Bundle Nusantara", category: "Collection", url: "/collections/love-bundle-nusantara", images: " ", price: " " },{ label: "Luxury Chinese New Year Hampers", category: "Collection", url: "/collections/luxury-chinese-new-year-hampers", images: " ", price: " " },{ label: "Luxury Christmas Hampers", category: "Collection", url: "/collections/luxury-christmas-hampers", images: " ", price: " " },{ label: "Luxury Hampers", category: "Collection", url: "/collections/luxury-hampers", images: " ", price: " " },{ label: "Luxury Hampers Luar Jadetabek", category: "Collection", url: "/collections/luxury-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Luxury Newborn Hampers Collection", category: "Collection", url: "/collections/luxury-newborn-hampers-collection", images: " ", price: " " },{ label: "Luxury Ramadan Hampers", category: "Collection", url: "/collections/luxury-ramadan-hampers", images: " ", price: " " },{ label: "Luxury Set", category: "Collection", url: "/collections/luxury", images: " ", price: " " },{ label: "Manual", category: "Collection", url: "/collections/manual", images: " ", price: " " },{ label: "Massimo Gelato", category: "Collection", url: "/collections/massimo-gelato", images: " ", price: " " },{ label: "Men's Collection", category: "Collection", url: "/collections/mens-collection", images: " ", price: " " },{ label: "Mercedes Benz", category: "Collection", url: "/collections/mercedes-benz", images: " ", price: " " },{ label: "Mercy Hampers", category: "Collection", url: "/collections/mercy-
7877hampers", images: " ", price: " " },{ label: "Merry Hampers", category: "Collection", url: "/collections/merry-hampers", images: " ", price: " " },{ label: "Merry Hampers Luar Jabodetabek", category: "Collection", url: "/collections/merry-hampers-luar-jabodetabek", images: " ", price: " " },{ label: "Mini Bouquet", category: "Collection", url: "/collections/mini-bouquet", images: " ", price: " " },{ label: "Miss Mondial", category: "Collection", url: "/collections/miss-mondial", images: " ", price: " " },{ label: "Modern & Chic Chinese New Year", category: "Collection", url: "/collections/modern-chic-chinese-new-year", images: " ", price: " " },{ label: "Modern & Chic Christmas Hampers", category: "Collection", url: "/collections/modern-chic-christmas", images: " ", price: " " },{ label: "Modern & Chic Hampers", category: "Collection", url: "/collections/modern-chic-hampers", images: " ", price: " " },{ label: "Modern & Chic Hampers Luar Jadetabek", category: "Collection", url: "/collections/modern-chic-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Modern & Chic Ramadan Hampers", category: "Collection", url: "/collections/modern-chic-ramadan-hampers", images: " ", price: " " },{ label: "Modern & Classy Hampers", category: "Collection", url: "/collections/parcel-unik", images: " ", price: " " },{ label: "Modern 3D Cake", category: "Collection", url: "/collections/custom-3d-cake", images: " ", price: " " },{ label: "Modern Style Flowers", category: "Collection", url: "/collections/modern-style-flowers", images: " ", price: " " },{ label: "Monochrome Hampers", category: "Collection", url: "/collections/monochrome-hampers", images: " ", price: " " },{ label: "Monochrome Hampers Luar Jadetabek", category: "Collection", url: "/collections/monochrome-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Mooncake", category: "Collection", url: "/collections/kue-bulan-mooncake-2025-mid-autumn-festival", images: " ", price: " " },{ label: "Mooncake Assorted Selection", category: "Collection", url: "/collections/mooncake-assorted-selection", images: " ", price: " " },{ label: "Mother's Day", category: "Collection", url: "/collections/rangkaian-bunga-hari-ibu", images: " ", price: " " },{ label: "Mother's Day Special", category: "Collection", url: "/collections/kado-untuk-ibu", images: " ", price: " " },{ label: "Necklace", category: "Collection", url: "/collections/kalung", images: " ", price: " " },{ label: "NestBloom Bird Nest Hampers", category: "Collection", url: "/collections/nestbloom-birds-nest", images: " ", price: " " },{ label: "NestBloom Gift Set", category: "Collection", url: "/collections/nestbloom-gift-set", images: " ", price: " " },{ label: "Nestbloom Ritual Kit", category: "Collection", url: "/collections/nestbloom-ritual-kit", images: " ", price: " " },{ label: "NestBloom Single Bloom", category: "Collection", url: "/collections/nestbloom-single-bloom", images: " ", price: " " },{ label: "New Collection", category: "Collection", url: "/collections/produk-baru", images: " ", price: " " },{ label: "New Product", category: "Collection", url: "/collections/new-product", images: " ", price: " " },{ label: "Newborn", category: "Collection", url: "/collections/rangkaian-bunga-newborn-baby", images: " ", price: " " },{ label: "Newborn Hampers", category: "Collection", url: "/collections/parcel-newborn", images: " ", price: " " },{ label: "Occasions", category: "Collection", url: "/collections/occasions", images: " ", price: " " },{ label: "Oma Elly", category: "Collection", url: "/collections/oma-elly", images: " ", price: " " },{ label: "Oma Elly Gelato", category: "Collection", url: "/collections/oma-elly-gelato", images: " ", price: " " },{ label: "Orchid", category: "Collection", url: "/collections/bunga-anggrek", images: " ", price: " " },{ label: "Orori", category: "Collection", url: "/collections/orori", images: " ", price: " " },{ label: "Outerbloom", category: "Collection", url: "/collections/outerbloom", images: " ", price: " " },{ label: "Outerbloom Cake", category: "Collection", url: "/collections/outerbloom-cake", images: " ", price: " " },{ label: "Outerbloom Florist", category: "Collection", url: "/collections/outerbloom-florist", images: " ", price: " " },{ label: "Outerbloom Gift", category: "Collection", url: "/collections/outerbloom-gift", images: " ", price: " " },{ label: "Outerbloom Hampers", category: "Collection", url: "/collections/outerbloom-hampers", images: " ", price: " " },{ label: "Outerbloom Indonesia", category: "Collection", url: "/collections/indonesia", images: " ", price: " " },{ label: "Outerbloom x Boho Panna", category: "Collection", url: "/collections/outerbloom-x-boh
7877o-panna", images: " ", price: " " },{ label: "Outerbloom x Clairmont", category: "Collection", url: "/collections/outerbloom-x-clairmont", images: " ", price: " " },{ label: "Outerbloom x Kikido", category: "Collection", url: "/collections/outerbloom-x-kikido", images: " ", price: " " },{ label: "Outerbloom x Miwa Pattern", category: "Collection", url: "/collections/outerbloom-x-miwa", images: " ", price: " " },{ label: "Outerbloom x Nestbloom Chinese New Year", category: "Collection", url: "/collections/outerbloom-x-nestbloom-chinese-new-year", images: " ", price: " " },{ label: "Outerbloom x NestBloom Hampers", category: "Collection", url: "/collections/outerbloom-x-nestbloom", images: " ", price: " " },{ label: "Paket Kolaborasi Outerbloom", category: "Collection", url: "/collections/paket-kolaborasi-outerbloom", images: " ", price: " " },{ label: "Paket Kolaborasi Valentine", category: "Collection", url: "/collections/paket-kolaborasi-valentine", images: " ", price: " " },{ label: "Paket Ulang Tahun", category: "Collection", url: "/collections/paket-ulang-tahun", images: " ", price: " " },{ label: "Paket Valentine Nusantara", category: "Collection", url: "/collections/paket-valentine-nusantara", images: " ", price: " " },{ label: "Paket Valentine Outerbloom", category: "Collection", url: "/collections/paket-valentine", images: " ", price: " " },{ label: "Papan Bunga", category: "Collection", url: "/collections/papan-bunga", images: " ", price: " " },{ label: "Papan Bunga Aceh", category: "Collection", url: "/collections/papan-bunga-aceh", images: " ", price: " " },{ label: "Papan Bunga Acrylic", category: "Collection", url: "/collections/papan-bunga-acrylic", images: " ", price: " " },{ label: "Papan Bunga Ambon", category: "Collection", url: "/collections/papan-bunga-ambon", images: " ", price: " " },{ label: "Papan Bunga Artificial", category: "Collection", url: "/collections/papan-bunga-artificial", images: " ", price: " " },{ label: "Papan Bunga Atambua", category: "Collection", url: "/collections/papan-bunga-atambua", images: " ", price: " " },{ label: "Papan Bunga Bali", category: "Collection", url: "/collections/papan-bunga-bali", images: " ", price: " " },{ label: "Papan Bunga Balikpapan", category: "Collection", url: "/collections/papan-bunga-balikpapan", images: " ", price: " " },{ label: "Papan Bunga Bandar Lampung", category: "Collection", url: "/collections/papan-bunga-bandar-lampung", images: " ", price: " " },{ label: "Papan Bunga Bandung", category: "Collection", url: "/collections/papan-bunga-bandung", images: " ", price: " " },{ label: "Papan Bunga Bandung Barat", category: "Collection", url: "/collections/papan-bunga-bandung-barat", images: " ", price: " " },{ label: "Papan Bunga Bangka", category: "Collection", url: "/collections/papan-bunga-bangka", images: " ", price: " " },{ label: "Papan Bunga Banjarmasin", category: "Collection", url: "/collections/papan-bunga-banjarmasin", images: " ", price: " " },{ label: "Papan Bunga Banten", category: "Collection", url: "/collections/papan-bunga-banten", images: " ", price: " " },{ label: "Papan Bunga Banyumas", category: "Collection", url: "/collections/papan-bunga-banyumas", images: " ", price: " " },{ label: "Papan Bunga Banyuwangi", category: "Collection", url: "/collections/papan-bunga-banyuwangi", images: " ", price: " " },{ label: "Papan Bunga Batam", category: "Collection", url: "/collections/papan-bunga-batam", images: " ", price: " " },{ label: "Papan Bunga Baubau", category: "Collection", url: "/collections/papan-bunga-baubau", images: " ", price: " " },{ label: "Papan Bunga Bekasi", category: "Collection", url: "/collections/papan-bunga-bekasi", images: " ", price: " " },{ label: "Papan Bunga Bengkalis", category: "Collection", url: "/collections/papan-bunga-bengkalis", images: " ", price: " " },{ label: "Papan Bunga Bengkayang", category: "Collection", url: "/collections/papan-bunga-bengkayang", images: " ", price: " " },{ label: "Papan Bunga Bengkulu", category: "Collection", url: "/collections/papan-bunga-bengkulu", images: " ", price: " " }
7877,{ label: "Papan Bunga Binjai", category: "Collection", url: "/collections/papan-bunga-binjai", images: " ", price: " " },{ label: "Papan Bunga Blitar", category: "Collection", url: "/collections/papan-bunga-blitar", images: " ", price: " " },{ label: "Papan Bunga Blora", category: "Collection", url: "/collections/papan-bunga-blora", images: " ", price: " " },{ label: "Papan Bunga Bogor", category: "Collection", url: "/collections/papan-bunga-bogor", images: " ", price: " " },{ label: "Papan Bunga Bojonegoro", category: "Collection", url: "/collections/papan-bunga-bojonegoro", images: " ", price: " " },{ label: "Papan Bunga Boyolali", category: "Collection", url: "/collections/papan-bunga-boyolali", images: " ", price: " " },{ label: "Papan Bunga Brebes", category: "Collection", url: "/collections/papan-bunga-brebes", images: " ", price: " " },{ label: "Papan Bunga Bukittinggi", category: "Collection", url: "/collections/papan-bunga-bukittinggi", images: " ", price: " " },{ label: "Papan Bunga Buleleng", category: "Collection", url: "/collections/papan-bunga-buleleng", images: " ", price: " " },{ label: "Papan Bunga Ciamis", category: "Collection", url: "/collections/papan-bunga-ciamis", images: " ", price: " " },{ label: "Papan Bunga Cianjur", category: "Collection", url: "/collections/papan-bunga-cianjur", images: " ", price: " " },{ label: "Papan Bunga Cibubur", category: "Collection", url: "/collections/papan-bunga-cibubur", images: " ", price: " " },{ label: "Papan Bunga Cikarang", category: "Collection", url: "/collections/papan-bunga-cikarang", images: " ", price: " " },{ label: "Papan Bunga Cikupa", category: "Collection", url: "/collections/papan-bunga-cikupa", images: " ", price: " " },{ label: "Papan Bunga Cikupa", category: "Collection", url: "/collections/papan-bunga-cikupa-1", images: " ", price: " " },{ label: "Papan Bunga Cilacap", category: "Collection", url: "/collections/papan-bunga-cilacap", images: " ", price: " " },{ label: "Papan Bunga Cileunyi", category: "Collection", url: "/collections/papan-bunga-cileunyi", images: " ", price: " " },{ label: "Papan Bunga Cirebon", category: "Collection", url: "/collections/papan-bunga-cirebon", images: " ", price: " " },{ label: "Papan Bunga Congratulations", category: "Collection", url: "/collections/papan-bunga-ucapan-selamat", images: " ", price: " " },{ label: "Papan Bunga Congratulations Bali", category: "Collection", url: "/collections/papan-bunga-congratulations-bali", images: " ", price: " " },{ label: "Papan Bunga Congratulations Bandung", category: "Collection", url: "/collections/papan-bunga-congratulations-bandung", images: " ", price: " " },{ label: "Papan Bunga Congratulations Bekasi", category: "Collection", url: "/collections/papan-bunga-congratulations-bekasi", images: " ", price: " " },{ label: "Papan Bunga Congratulations Bogor", category: "Collection", url: "/collections/papan-bunga-congratulations-bogor", images: " ", price: " " },{ label: "Papan Bunga Congratulations Cikupa", category: "Collection", url: "/collections/papan-bunga-congratulations-cikupa", images: " ", price: " " },{ label: "Papan Bunga Congratulations Demak", category: "Collection", url: "/collections/papan-bunga-congratulations-demak", images: " ", price: " " },{ label: "Papan Bunga Congratulations Depok", category: "Collection", url: "/collections/papan-bunga-congratulations-depok", images: " ", price: " " },{ label: "Papan Bunga Congratulations Gresik", category: "Collection", url: "/collections/papan-bunga-congratulations-gresik", images: " ", price: " " },{ label: "Papan Bunga Congratulations Jakarta", category: "Collection", url: "/collections/papan-bunga-congratulations-jakarta", images: " ", price: " " },{ label: "Papan Bunga Congratulations Jepara", category: "Collection", url: "/collections/papan-bunga-congratulations-jepara", images: " ", price: " " },{ label: "Papan Bunga Congratulations Medan", category: "Collection", url: "/collections/papan-bunga-congratulations-medan", images: " ", price: " " },{ label: "Papan Bunga Congratulations Semarang", category: "Collection", url: "/collections/papan-bunga-congratulations-semarang", images: " ", price: " " }
7877,{ label: "Papan Bunga Congratulations Serang", category: "Collection", url: "/collections/papan-bunga-congratulations-serang", images: " ", price: " " },{ label: "Papan Bunga Congratulations Sidoarjo", category: "Collection", url: "/collections/papan-bunga-congratulations-sidoarjo", images: " ", price: " " },{ label: "Papan Bunga Congratulations Surabaya", category: "Collection", url: "/collections/papan-bunga-congratulations-surabaya", images: " ", price: " " },{ label: "Papan Bunga Congratulations Tangerang", category: "Collection", url: "/collections/papan-bunga-congratulations-tangerang", images: " ", price: " " },{ label: "Papan Bunga Congratulations Yogyakarta", category: "Collection", url: "/collections/papan-bunga-congratulations-yogyakarta", images: " ", price: " " },{ label: "Papan Bunga Danau Toba", category: "Collection", url: "/collections/papan-bunga-danau-toba", images: " ", price: " " },{ label: "Papan Bunga Deli Serdang", category: "Collection", url: "/collections/papan-bunga-deli-serdang", images: " ", price: " " },{ label: "Papan Bunga Demak", category: "Collection", url: "/collections/papan-bunga-demak", images: " ", price: " " },{ label: "Papan Bunga Denpasar", category: "Collection", url: "/collections/papan-bunga-denpasar", images: " ", price: " " },{ label: "Papan Bunga Depok", category: "Collection", url: "/collections/papan-bunga-depok", images: " ", price: " " },{ label: "Papan Bunga Duka Cita", category: "Collection", url: "/collections/bunga-duka-cita", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Bali", category: "Collection", url: "/collections/papan-bunga-duka-cita-bali", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Bandung", category: "Collection", url: "/collections/papan-bunga-duka-cita-bandung", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Bekasi", category: "Collection", url: "/collections/papan-bunga-duka-cita-bekasi", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Bogor", category: "Collection", url: "/collections/papan-bunga-duka-cita-bogor", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Cikupa", category: "Collection", url: "/collections/papan-bunga-duka-cita-cikupa", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Demak", category: "Collection", url: "/collections/papan-bunga-duka-cita-demak", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Depok", category: "Collection", url: "/collections/papan-bunga-duka-cita-depok", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Gresik", category: "Collection", url: "/collections/papan-bunga-duka-cita-gresik", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Jakarta", category: "Collection", url: "/collections/papan-bunga-duka-cita-jakarta", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Jepara", category: "Collection", url: "/collections/papan-bunga-duka-cita-jepara", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Medan", category: "Collection", url: "/collections/papan-bunga-duka-cita-medan", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Semarang", category: "Collection", url: "/collections/papan-bunga-duka-cita-semarang", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Serang", category: "Collection", url: "/collections/papan-bunga-duka-cita-serang", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Sidoarjo", category: "Collection", url: "/collections/papan-bunga-duka-cita-sidoarjo", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Surabaya", category: "Collection", url: "/collections/papan-bunga-duka-cita-surabaya", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Tangerang", category: "Collection", url: "/collections/papan-bunga-duka-cita-tangerang", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Yogyakarta", category: "Collection", url: "/collections/papan-bunga-duka-cita-yogyakarta", images: " ", price: " " },{ label: "Papan Bunga Garut", category: "Collection", url: "/collections/papan-bunga-garut", images: " ", price: " " },{ label: "Papan Bunga Gianyar", category: "Collection", url: "/collections/papan-bunga-gianyar", images: " ", price: " " }
7877,{ label: "Papan Bunga Gorontalo", category: "Collection", url: "/collections/papan-bunga-gorontalo", images: " ", price: " " },{ label: "Papan Bunga Gowa", category: "Collection", url: "/collections/papan-bunga-gowa", images: " ", price: " " },{ label: "Papan Bunga Gresik", category: "Collection", url: "/collections/papan-bunga-gresik", images: " ", price: " " },{ label: "Papan Bunga Grobogan", category: "Collection", url: "/collections/papan-bunga-grobogan", images: " ", price: " " },{ label: "Papan Bunga Gunungkidul", category: "Collection", url: "/collections/papan-bunga-gunungkidul", images: " ", price: " " },{ label: "Papan Bunga Indramayu", category: "Collection", url: "/collections/papan-bunga-indramayu", images: " ", price: " " },{ label: "Papan Bunga Jakarta", category: "Collection", url: "/collections/papan-bunga-jakarta", images: " ", price: " " },{ label: "Papan Bunga Jakarta Timur", category: "Collection", url: "/collections/papan-bunga-jakarta-timur", images: " ", price: " " },{ label: "Papan Bunga Jambi", category: "Collection", url: "/collections/papan-bunga-jambi", images: " ", price: " " },{ label: "Papan Bunga Jayapura", category: "Collection", url: "/collections/papan-bunga-jayapura", images: " ", price: " " },{ label: "Papan Bunga Jember", category: "Collection", url: "/collections/papan-bunga-jember", images: " ", price: " " },{ label: "Papan Bunga Jembrana", category: "Collection", url: "/collections/papan-bunga-jembrana", images: " ", price: " " },{ label: "Papan Bunga Jepara", category: "Collection", url: "/collections/papan-bunga-jepara", images: " ", price: " " },{ label: "Papan Bunga Jombang", category: "Collection", url: "/collections/papan-bunga-jombang", images: " ", price: " " },{ label: "Papan Bunga Kampung Baru", category: "Collection", url: "/collections/papan-bunga-kampung-baru", images: " ", price: " " },{ label: "Papan Bunga Kapuas", category: "Collection", url: "/collections/papan-bunga-kapuas", images: " ", price: " " },{ label: "Papan Bunga Karanganyar", category: "Collection", url: "/collections/papan-bunga-karanganyar", images: " ", price: " " },{ label: "Papan Bunga Karangasem", category: "Collection", url: "/collections/papan-bunga-karangasem", images: " ", price: " " },{ label: "Papan Bunga Karawang", category: "Collection", url: "/collections/papan-bunga-karawang", images: " ", price: " " },{ label: "Papan Bunga Karo", category: "Collection", url: "/collections/papan-bunga-karo", images: " ", price: " " },{ label: "Papan Bunga Kartosuro", category: "Collection", url: "/collections/papan-bunga-kartosuro", images: " ", price: " " },{ label: "Papan Bunga Kebumen", category: "Collection", url: "/collections/papan-bunga-kebumen", images: " ", price: " " },{ label: "Papan Bunga Kediri", category: "Collection", url: "/collections/papan-bunga-kediri", images: " ", price: " " },{ label: "Papan Bunga Kendal", category: "Collection", url: "/collections/papan-bunga-kendal", images: " ", price: " " },{ label: "Papan Bunga Kendari", category: "Collection", url: "/collections/papan-bunga-kendari", images: " ", price: " " },{ label: "Papan Bunga Ketapang", category: "Collection", url: "/collections/papan-bunga-ketapang", images: " ", price: " " },{ label: "Papan Bunga Klaten", category: "Collection", url: "/collections/papan-bunga-klaten", images: " ", price: " " },{ label: "Papan Bunga Kota Batu", category: "Collection", url: "/collections/papan-bunga-kota-batu", images: " ", price: " " },{ label: "Papan Bunga Kudus", category: "Collection", url: "/collections/papan-bunga-kudus", images: " ", price: " " },{ label: "Papan Bunga Kupang", category: "Collection", url: "/collections/papan-bunga-kupang", images: " ", price: " " },{ label: "Papan Bunga Lamongan", category: "Collection", url: "/collections/papan-bunga-lamongan", images: " ", price: " " },{ label: "Papan Bunga Lampu LED", category: "Collection", url: "/collections/papan-bunga-lampu-led", images: " ", price: " " },{ label: "Papan Bunga Lampung", category: "Collection", url: "/collections/papan-bunga-lampung", images: " ", price: " " }
7877,{ label: "Papan Bunga Langkat", category: "Collection", url: "/collections/papan-bunga-langkat", images: " ", price: " " },{ label: "Papan Bunga Lembang", category: "Collection", url: "/collections/papan-bunga-lembang", images: " ", price: " " },{ label: "Papan Bunga Lombok", category: "Collection", url: "/collections/papan-bunga-lombok", images: " ", price: " " },{ label: "Papan Bunga Lubuk Pakam", category: "Collection", url: "/collections/papan-bunga-lubuk-pakam", images: " ", price: " " },{ label: "Papan Bunga Lumajang", category: "Collection", url: "/collections/papan-bunga-lumajang", images: " ", price: " " },{ label: "Papan Bunga Madiun", category: "Collection", url: "/collections/papan-bunga-madiun", images: " ", price: " " },{ label: "Papan Bunga Magelang", category: "Collection", url: "/collections/papan-bunga-magelang", images: " ", price: " " },{ label: "Papan Bunga Majalengka", category: "Collection", url: "/collections/papan-bunga-majalengka", images: " ", price: " " },{ label: "Papan Bunga Makassar", category: "Collection", url: "/collections/papan-bunga-makassar", images: " ", price: " " },{ label: "Papan Bunga Malang", category: "Collection", url: "/collections/papan-bunga-malang", images: " ", price: " " },{ label: "Papan Bunga Mamuju", category: "Collection", url: "/collections/papan-bunga-mamuju", images: " ", price: " " },{ label: "Papan Bunga Manado", category: "Collection", url: "/collections/papan-bunga-manado", images: " ", price: " " },{ label: "Papan Bunga Manokwari", category: "Collection", url: "/collections/papan-bunga-manokwari", images: " ", price: " " },{ label: "Papan Bunga Maros", category: "Collection", url: "/collections/papan-bunga-maros", images: " ", price: " " },{ label: "Papan Bunga Mataram", category: "Collection", url: "/collections/papan-bunga-mataram", images: " ", price: " " },{ label: "Papan Bunga Medan", category: "Collection", url: "/collections/papan-bunga-medan", images: " ", price: " " },{ label: "Papan Bunga Mojokerto", category: "Collection", url: "/collections/papan-bunga-mojokerto", images: " ", price: " " },{ label: "Papan Bunga Nganjuk", category: "Collection", url: "/collections/papan-bunga-nganjuk", images: " ", price: " " },{ label: "Papan Bunga Ngawi", category: "Collection", url: "/collections/papan-bunga-ngawi", images: " ", price: " " },{ label: "Papan Bunga Nias", category: "Collection", url: "/collections/papan-bunga-nias", images: " ", price: " " },{ label: "Papan Bunga Organza", category: "Collection", url: "/collections/papan-bunga-organza", images: " ", price: " " },{ label: "Papan Bunga Padang", category: "Collection", url: "/collections/papan-bunga-padang", images: " ", price: " " },{ label: "Papan Bunga Palangkaraya", category: "Collection", url: "/collections/papan-bunga-palangkaraya", images: " ", price: " " },{ label: "Papan Bunga Palembang", category: "Collection", url: "/collections/papan-bunga-palembang", images: " ", price: " " },{ label: "Papan Bunga Palu", category: "Collection", url: "/collections/papan-bunga-palu", images: " ", price: " " },{ label: "Papan Bunga Pangkal Pinang", category: "Collection", url: "/collections/papan-bunga-pangkal-pinang", images: " ", price: " " },{ label: "Papan Bunga Parepare", category: "Collection", url: "/collections/papan-bunga-parepare", images: " ", price: " " },{ label: "Papan Bunga Pasuruan", category: "Collection", url: "/collections/papan-bunga-pasuruan", images: " ", price: " " },{ label: "Papan Bunga Pati", category: "Collection", url: "/collections/papan-bunga-pati", images: " ", price: " " },{ label: "Papan Bunga Pekalongan", category: "Collection", url: "/collections/papan-bunga-pekalongan", images: " ", price: " " },{ label: "Papan Bunga Pekanbaru", category: "Collection", url: "/collections/papan-bunga-pekanbaru", images: " ", price: " " },{ label: "Papan Bunga Pemalang", category: "Collection", url: "/collections/papan-bunga-pemalang", images: " ", price: " " },{ label: "Papan Bunga Pematangsiantar", category: "Collection", url: "/collections/papan-bunga-pematangsiantar", images: " ", price: " " }
7877,{ label: "Papan Bunga Pernikahan Bali", category: "Collection", url: "/collections/papan-bunga-pernikahan-bali", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Bandung", category: "Collection", url: "/collections/papan-bunga-pernikahan-bandung", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Bekasi", category: "Collection", url: "/collections/papan-bunga-pernikahan-bekasi", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Bogor", category: "Collection", url: "/collections/papan-bunga-pernikahan-bogor", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Cikupa", category: "Collection", url: "/collections/papan-bunga-pernikahan-cikupa", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Demak", category: "Collection", url: "/collections/papan-bunga-pernikahan-demak", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Depok", category: "Collection", url: "/collections/papan-bunga-pernikahan-depok", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Gresik", category: "Collection", url: "/collections/papan-bunga-pernikahan-gresik", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Jakarta", category: "Collection", url: "/collections/papan-bunga-pernikahan-jakarta", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Jepara", category: "Collection", url: "/collections/papan-bunga-pernikahan-jepara", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Medan", category: "Collection", url: "/collections/papan-bunga-pernikahan-medan", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Semarang", category: "Collection", url: "/collections/papan-bunga-pernikahan-semarang", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Serang", category: "Collection", url: "/collections/papan-bunga-pernikahan-serang", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Sidoarjo", category: "Collection", url: "/collections/papan-bunga-pernikahan-sidoarjo", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Surabaya", category: "Collection", url: "/collections/papan-bunga-pernikahan-surabaya", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Tangerang", category: "Collection", url: "/collections/papan-bunga-pernikahan-tangerang", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Yogyakarta", category: "Collection", url: "/collections/papan-bunga-pernikahan-yogyakarta", images: " ", price: " " },{ label: "Papan Bunga Ponorogo", category: "Collection", url: "/collections/papan-bunga-ponorogo", images: " ", price: " " },{ label: "Papan Bunga Pontianak", category: "Collection", url: "/collections/papan-bunga-pontianak", images: " ", price: " " },{ label: "Papan Bunga Premium", category: "Collection", url: "/collections/papan-bunga-premium", images: " ", price: " " },{ label: "Papan Bunga Printing", category: "Collection", url: "/collections/papan-bunga-printing", images: " ", price: " " },{ label: "Papan Bunga Printing Congratulations", category: "Collection", url: "/collections/papan-bunga-printing-congratulations", images: " ", price: " " },{ label: "Papan Bunga Probolinggo", category: "Collection", url: "/collections/papan-bunga-probolinggo", images: " ", price: " " },{ label: "Papan Bunga Promo", category: "Collection", url: "/collections/promo-papan-bunga", images: " ", price: " " },{ label: "Papan Bunga Purbalingga", category: "Collection", url: "/collections/papan-bunga-purbalingga", images: " ", price: " " },{ label: "Papan Bunga Purwokerto", category: "Collection", url: "/collections/papan-bunga-purwokerto", images: " ", price: " " },{ label: "Papan Bunga Purworejo", category: "Collection", url: "/collections/papan-bunga-purworejo", images: " ", price: " " },{ label: "Papan Bunga Rembang", category: "Collection", url: "/collections/papan-bunga-rembang", images: " ", price: " " },{ label: "Papan Bunga Riau", category: "Collection", url: "/collections/papan-bunga-riau", images: " ", price: " " },{ label: "Papan Bunga Salatiga", category: "Collection", url: "/collections/papan-bunga-salatiga", images: " ", price: " " }
7877,{ label: "Papan Bunga Samarinda", category: "Collection", url: "/collections/papan-bunga-samarinda", images: " ", price: " " },{ label: "Papan Bunga Selamat Bandung", category: "Collection", url: "/collections/papan-bunga-selamat-bandung", images: " ", price: " " },{ label: "Papan Bunga Selamat Medan", category: "Collection", url: "/collections/papan-bunga-selamat-medan", images: " ", price: " " },{ label: "Papan Bunga Semarang", category: "Collection", url: "/collections/papan-bunga-semarang", images: " ", price: " " },{ label: "Papan Bunga Serang", category: "Collection", url: "/collections/papan-bunga-serang", images: " ", price: " " },{ label: "Papan Bunga Sibolga", category: "Collection", url: "/collections/papan-bunga-sibolga", images: " ", price: " " },{ label: "Papan Bunga Sidoarjo", category: "Collection", url: "/collections/papan-bunga-sidoarjo", images: " ", price: " " },{ label: "Papan Bunga Singkawang", category: "Collection", url: "/collections/papan-bunga-singkawang", images: " ", price: " " },{ label: "Papan Bunga Solo", category: "Collection", url: "/collections/papan-bunga-solo", images: " ", price: " " },{ label: "Papan Bunga Sorong", category: "Collection", url: "/collections/papan-bunga-sorong", images: " ", price: " " },{ label: "Papan Bunga Sragen", category: "Collection", url: "/collections/papan-bunga-sragen", images: " ", price: " " },{ label: "Papan Bunga Standard", category: "Collection", url: "/collections/papan-bunga-standard", images: " ", price: " " },{ label: "Papan Bunga Subang", category: "Collection", url: "/collections/papan-bunga-subang", images: " ", price: " " },{ label: "Papan Bunga Sukabumi", category: "Collection", url: "/collections/papan-bunga-sukabumi", images: " ", price: " " },{ label: "Papan Bunga Sumbawa", category: "Collection", url: "/collections/papan-bunga-sumbawa", images: " ", price: " " },{ label: "Papan Bunga Surabaya", category: "Collection", url: "/collections/papan-bunga-surabaya", images: " ", price: " " },{ label: "Papan Bunga Surakarta", category: "Collection", url: "/collections/papan-bunga-surakarta", images: " ", price: " " },{ label: "Papan Bunga Tangerang", category: "Collection", url: "/collections/papan-bunga-tangerang", images: " ", price: " " },{ label: "Papan Bunga Tasikmalaya", category: "Collection", url: "/collections/papan-bunga-tasikmalaya", images: " ", price: " " },{ label: "Papan Bunga Tegal", category: "Collection", url: "/collections/papan-bunga-tegal", images: " ", price: " " },{ label: "Papan Bunga Temanggung", category: "Collection", url: "/collections/papan-bunga-temanggung", images: " ", price: " " },{ label: "Papan Bunga Ternate", category: "Collection", url: "/collections/papan-bunga-ternate", images: " ", price: " " },{ label: "Papan Bunga Tolitoli", category: "Collection", url: "/collections/papan-bunga-tolitoli", images: " ", price: " " },{ label: "Papan Bunga Toraja", category: "Collection", url: "/collections/papan-bunga-toraja", images: " ", price: " " },{ label: "Papan Bunga Tuban", category: "Collection", url: "/collections/papan-bunga-tuban", images: " ", price: " " },{ label: "Papan Bunga Tulungagung", category: "Collection", url: "/collections/papan-bunga-tulungagung", images: " ", price: " " },{ label: "Papan Bunga Wakatobi", category: "Collection", url: "/collections/papan-bunga-wakatobi", images: " ", price: " " },{ label: "Papan Bunga Wedding", category: "Collection", url: "/collections/papan-bunga-ucapan-pernikahan", images: " ", price: " " },{ label: "Papan Bunga Wiyung", category: "Collection", url: "/collections/papan-bunga-wiyung", images: " ", price: " " },{ label: "Papan Bunga Wonogiri", category: "Collection", url: "/collections/papan-bunga-wonogiri", images: " ", price: " " },{ label: "Papan Bunga Wonokromo", category: "Collection", url: "/collections/papan-bunga-wonokromo", images: " ", price: " " },{ label: "Papan Bunga Wonosobo", category: "Collection", url: "/collections/papan-bunga-wonosobo", images: " ", price: " " },{ label: "Papan Bunga Yogyakarta", category: "Collection", url: "/collections/papan-bunga-yogyakarta", images: " ", price: " " }
7877,{ label: "Paper Flower Board", category: "Collection", url: "/collections/papan-bunga-kertas", images: " ", price: " " },{ label: "Paper Flower Board Bali", category: "Collection", url: "/collections/papan-bunga-kertas-bali", images: " ", price: " " },{ label: "Paper Flower Board Gresik", category: "Collection", url: "/collections/papan-bunga-kertas-gresik", images: " ", price: " " },{ label: "Paper Flower Board Sidoarjo", category: "Collection", url: "/collections/papan-bunga-kertas-sidoarjo", images: " ", price: " " },{ label: "Paper Flower Board Surabaya", category: "Collection", url: "/collections/papan-bunga-kertas-surabaya", images: " ", price: " " },{ label: "Paper Flower Board Yogyakarta", category: "Collection", url: "/collections/papan-bunga-kertas-yogyakarta", images: " ", price: " " },{ label: "Parcel", category: "Collection", url: "/collections/parcel", images: " ", price: " " },{ label: "Parcel Buah", category: "Collection", url: "/collections/parcel-buah-segar", images: " ", price: " " },{ label: "Parcel Buah Bandung", category: "Collection", url: "/collections/parcel-buah-bandung", images: " ", price: " " },{ label: "Parcel Buah Semarang", category: "Collection", url: "/collections/parcel-buah-semarang", images: " ", price: " " },{ label: "Parcel Buah Sidoarjo", category: "Collection", url: "/collections/parcel-buah-sidoarjo", images: " ", price: " " },{ label: "Parcel Buah Surabaya", category: "Collection", url: "/collections/parcel-buah-surabaya", images: " ", price: " " },{ label: "Parcel Imlek 2025", category: "Collection", url: "/collections/parcel-imlek", images: " ", price: " " },{ label: "Parcel Imlek Bandung", category: "Collection", url: "/collections/parcel-imlek-bandung", images: " ", price: " " },{ label: "Parcel Imlek Nusantara", category: "Collection", url: "/collections/parcel-imlek-nusantara", images: " ", price: " " },{ label: "Parcel Lebaran Bandung", category: "Collection", url: "/collections/parcel-lebaran-bandung", images: " ", price: " " },{ label: "Parcel Lebaran Nusantara", category: "Collection", url: "/collections/parcel-lebaran-indonesia", images: " ", price: " " },{ label: "Parcel Lebaran Surabaya", category: "Collection", url: "/collections/parcel-lebaran-surabaya", images: " ", price: " " },{ label: "Parcel Makanan", category: "Collection", url: "/collections/parcel-makanan", images: " ", price: " " },{ label: "Parcel Natal & Tahun Baru 2026", category: "Collection", url: "/collections/hampers-natal", images: " ", price: " " },{ label: "Parcel Natal & Tahun Baru Bandung", category: "Collection", url: "/collections/parcel-natal-bandung", images: " ", price: " " },{ label: "Parcel Newborn Nusantara", category: "Collection", url: "/collections/parcel-newborn-nusantara", images: " ", price: " " },{ label: "Parcel Tahun Baru", category: "Collection", url: "/collections/new-year-tahun-baru", images: " ", price: " " },{ label: "Party Supplies", category: "Collection", url: "/collections/party-supplies", images: " ", price: " " },{ label: "Partysaurus", category: "Collection", url: "/collections/partysaurus", images: " ", price: " " },{ label: "Pasar Bunga Splendid Malang", category: "Collection", url: "/collections/pasar-bunga-splendid-malang", images: " ", price: " " },{ label: "Passionate Red Valentine", category: "Collection", url: "/collections/red-valentine", images: " ", price: " " },{ label: "Pendant", category: "Collection", url: "/collections/liontin", images: " ", price: " " },{ label: "Personalized Fashion", category: "Collection", url: "/collections/fashion", images: " ", price: " " },{ label: "Personalized Gift", category: "Collection", url: "/collections/personalized-gift", images: " ", price: " " },{ label: "Personalized Gift Pria", category: "Collection", url: "/collections/personalized-gift-pria", images: " ", price: " " },{ label: "Personalized Gift Wanita", category: "Collection", url: "/collections/personalized-gift-wanita", images: " ", price: " " },{ label: "Personalized Gifts", category: "Collection", url: "/collections/personalized-gifts", images: " ", price: " " },{ label: "Pesca Ice Cream Cakes", category: "Collection", url: "/collections/pesca", images: " ", price: " " },{ label: "Phone Case", category: "Collection", url: "/collections/phone-case", images: " ", price: " " },{ label: "Photobook", category: "Collection", url: "/collections/photobook", images: " ", price: " " },{ label: "Pisces âï¸ 19Feb - 20March", category: "Collection", url: "/collections/kado-untuk-zodiak-pisces", images: " ", price: " " },{ label: "Pohon Natal", category: "Collection", url: "/collections/pohon-natal", images: " ", price: " " },{ label: "Premium Hampers", category: "Collection", url: "/collections/parcel-premium", images: " ", price: " " },{ label: "Premium Newborn Hampers Collection", category: "Collection", url: "/collections/premium-newborn-hampers-collection", images: " ", price: " " },{ label: "Printing Cake", category: "Collection", url: "/collections/printing-cake", images: " ", price: " " },{ label: "Prom", category: "Collection", url: "/collections/prom", images: " ", price: " " },{ label: "Promo Merdeka", category: "Collection", url: "/collections/merdeka", images: " ", price: " " },{ label: "Rangkaian Bunga", category: "Collection", url: "/collections/rangkaian-bunga", images: " ", price: " " },{ label: "Rangkaian Bunga Dekorasi", category: "Collection", url: "/collections/rangkaian-bunga-dekorasi", images: " ", price: " " },{ label: "Rangkaian Bunga Ulang Tahun", category: "Collection", url: "/collections/rangkaian-bunga-ulang-tahun", images: " ", price: " " },{ label: "Romantic & Sweets", category: "Collection", url: "/collections/romantic-sweets", images: " ", price: " " },{ label: "Romantic Package", category: "Collection", url: "/collections/romantic-package", images: " ", price: " " },{ label: "Rose Beam", category: "Collection", url: "/collections/rose-beam", images: " ", price: " " },{ label: "Rose Box", category: "Collection", url: "/collections/rose-box", images: " ", price: " " },{ label: "Roses", category: "Collection", url: "/collections/bunga-mawar", images: " ", price: " " },{ label: "Rp 500.000 - Rp 800.000", category: "Collection", url: "/collections/rp-500-000-rp-800-000", images: " ", price: " " },{ label: "Rp 800.000 - Rp 1.000.000", category: "Collection", url: "/collections/rp-800-000-rp-1-000-000", images: " ", price: " " },{ label: "Rustic & Monochrome Ramadan Hampers", category: "Collection", url: "/collections/rustic-monochrome-ramadanhampers", images: " ", price: " " },{ label: "Rustic Bloom", category: "Collection", url: "/collections/dried-flowers", images: " ", price: " " },{ label: "Rustic Style Flowers", category: "Collection", url: "/collections/rustic-style-flowers", images: " ", price: " " },{ label: "Sagittarius âï¸ 22Nov - 21Des", category: "Collection", url: "/collections/kado-untuk-zodiak-sagittarius", images: " ", price: " " },{ label: "Sameday Delivery", category: "Collection", url: "/collections/sameday", images: " ", price: " " },{ label: "Savoury Dish", category: "Collection", url: "/collections/savoury-dish", images: " ", price: " " },{ label: "Saychiz", category: "Collection", url: "/collections/saychiz", images: " ", price: " " },{ label: "Scented Candles", category: "Collection", url: "/collections/scented-candles", images: " ", price: " " },{ label: "Scorpio âï¸ 24Oct - 21Nov", category: "Collection", url: "/collections/kado-untuk-zodiak-scorpio", images: " ", price: " " },{ label: "Self Pick-Up", category: "Collection", url: "/collections/self-pick-up", images: " ", price: " " },{ label: "Semua Produk", category: "Collection", url: "/collections/all", images: " ", price: " " },{ label: "Serenitea", category: "Collection", url: "/collections/serenitea", images: " ", price: " " },{ label: "Share Outerbloom Moment", category: "Collection", url: "/collections/share-moment", images: " ", price: " " },{ label: "Share your Happiness", category: "Collection", url: "/collections/share-happiness", images: " ", price: " " },{ label: "Signature Cake", category: "Collection", url: "/collections/signature-cake", images: " ", price: " " },{ label: "Signature Chinese New Year Hampers", category: "Collection", url: "/collections/signature-chinese-new-year-hampers", images: " ", price: " " },{ label: "Signature Christmas & New Year Hampers", category: "Collection", url: "/collections/signature-christmas-hampers", images: " ", price: " " },{ label: "Signature Hampers", category: "Collection", url: "/collections/signature-hampers", images: " ", price: " " },{ label: "Signature Hampers Luar Jadetabek", category: "Collection", url: "/collections/signature-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Signature Hampers Sameday", category: "Collection", url: "/collections/signature-hampers-sameday", images: " ", price: " " },{ label: "Signature Ramadan Hampers", category: "Collection", url: "/collections/signature-ramadan-hampers", images: " ", price: " " },{ label: "Slice Cake", category: "Collection", url: "/collections/slice-cake", images: " ", price: " " },{ label: "Snack Box", category: "Collection", url: "/collections/snack-box", images: " ", price: " " },{ label: "Sol et Terre", category: "Collection", url: "/collections/sol-et-terre", images: " ", price: " " },{ label: "Sorbet", category: "Collection", url: "/collections/sorbet", images: " ", price: " " },{ label: "Special Day", category: "Collection", url: "/collections/special-day", images: " ", price: " " },{ label: "Special Edition", category: "Collection", url: "/collections/special-edition", images: " ", price: " " },{ label: "Special For Her", category: "Collection", url: "/collections/special-for-her", images: " ", price: " " },{ label: "DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik.", category: "Collection", url: "/collections/standing-flower", images: " ", price: " " },{ label: "DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik. Bali", category: "Collection", url: "/collections/standing-flower-bali", images: " ", price: " " },{ label: "DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik. Bandung", category: "Collection", url: "/collections/standing-flower-bandung", images: " ", price: " " },{ label: "DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik. Congratulations", category: "Collection", url: "/collections/standing-flower-congratulations", images: " ", price: " " },{ label: "DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik. Demak", category: "Collection", url: "/collections/standing-flower-demak", images: " ", price: " " },{ label: "DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik. Jepara", category: "Collection", url: "/collections/standing-flower-jepara", images: " ", price: " " },{ label: "DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik. Semarang", category: "Collection", url: "/collections/standing-flower-semarang", images: " ", price: " " },{ label: "DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik. Sidoarjo", category: "Collection", url: "/collections/standing-flower-sidoarjo", images: " ", price: " " },{ label: "DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik. Surabaya", category: "Collection", url: "/collections/standing-flower-surabaya", images: " ", price: " " },{ label: "DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik. Yogyakarta", category: "Collection", url: "/collections/standing-flower-yogyakarta", images: " ", price: " " },{ label: "Standing Giant Flower", category: "Collection", url: "/collections/standing-giant-flower", images: " ", price: " " },{ label: "Stationery", category: "Collection", url: "/collections/stationery", images: " ", price: " " },{ label: "Steekwerk", category: "Collection", url: "/collections/steekwerk", images: " ", price: " " },{ label: "Stylish Hampers", category: "Collection", url: "/collections/stylish-hampers", images: " ", price: " " },{ label: "Stylish Hampers Luar Jadetabek", category: "Collection", url: "/collections/stylish-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Succulent", category: "Collection", url: "/collections/succulent", images: " ", price: " " },{ label: "Sunflower", category: "Collection", url: "/collections/bunga-matahari", images: " ", price: " " },{ label: "Sweet & Savoury Hampers", category: "Collection", url: "/collections/sweet-savoury-hampers", images: " ", price: " " },{ label: "Sweet Gracie", category: "Collection", url: "/collections/sweet-gracie", images: " ", price: " " },{ label: "Sweet Pastel Love", category: "Collection", url: "/collections/pastel-love", images: " ", price: " " },{ label: "Sweet Pastel Love Nusantara", category: "Collection", url: "/collections/sweet-pastel-love-nusantara", images: " ", price: " " },{ label: "Sweet Treats", category: "Collection", url: "/collections/sweet-treats", images: " ", price: " " },{ label: "Sweetooth", category: "Collection", url: "/collections/sweetooth", images: " ", price: " " },{ label: "Taurus âï¸ 20April - 20May", category: "Collection", url: "/collections/kado-untuk-zodiak-taurus", images: " ", price: " " },{ label: "Teddy Bear", category: "Collection", url: "/collections/boneka-teddy-bear", images: " ", price: " " },{ label: "Teh", category: "Collection", url: "/collections/teh", images: " ", price: " " },{ label: "Test Error", category: "Collection", url: "/collections/test-error", images: " ", price: " " },{ label: "Testing", category: "Collection", url: "/collections/testing", images: " ", price: " " },{ label: "Thank You", category: "Collection", url: "/collections/rangkaian-bunga-ucapan-terima-kasih", images: " ", price: " " },{ label: "The Classic Astoria", category: "Collection", url: "/collections/astoria", images: " ", price: " " },{ label: "The Classic Enchanted Dome", category: "Collection", url: "/collections/enchanted-dome", images: " ", price: " " },{ label: "The Enchanted Love Pirouette Special Edition", category: "Collection", url: "/collections/the-enchanted-love-pirouette-special-edition", images: " ", price: " " },{ label: "The F Thing", category: "Collection", url: "/collections/the-f-thing", images: " ", price: " " },{ label: "The First", category: "Collection", url: "/collections/the-first", images: " ", price: " " },{ label: "The Novo Astoria", category: "Collection", url: "/collections/the-novo-astoria", images: " ", price: " " },{ label: "The Novo Enchanted Dome", category: "Collection", url: "/collections/the-novo-enchanted-dome", images: " ", price: " " },{ label: "The Novo Enchanted Dome Special Edition", category: "Collection", url: "/collections/the-novo-enchanted-dome-special-edition", images: " ", price: " " },{ label: "The Palace", category: "Collection", url: "/collections/the-palace", images: " ", price: " " },{ label: "Ties", category: "Collection", url: "/collections/dasi", images: " ", price: " " },{ label: "Tisane", category: "Collection",
7877 url: "/collections/tisane", images: " ", price: " " },{ label: "Toko Bunga Aceh", category: "Collection", url: "/collections/toko-bunga-aceh", images: " ", price: " " },{ label: "Toko Bunga Ambon", category: "Collection", url: "/collections/toko-bunga-ambon", images: " ", price: " " },{ label: "Toko Bunga Atambua", category: "Collection", url: "/collections/toko-bunga-atambua", images: " ", price: " " },{ label: "Toko Bunga Bali", category: "Collection", url: "/collections/toko-bunga-bali", images: " ", price: " " },{ label: "Toko Bunga Balikpapan", category: "Collection", url: "/collections/toko-bunga-balikpapan", images: " ", price: " " },{ label: "Toko Bunga Bandar Lampung", category: "Collection", url: "/collections/toko-bunga-bandar-lampung", images: " ", price: " " },{ label: "Toko Bunga Bandung", category: "Collection", url: "/collections/toko-bunga-bandung", images: " ", price: " " },{ label: "Toko Bunga Bandung Barat", category: "Collection", url: "/collections/toko-bunga-bandung-barat", images: " ", price: " " },{ label: "Toko Bunga Banjarmasin", category: "Collection", url: "/collections/toko-bunga-banjarmasin", images: " ", price: " " },{ label: "Toko Bunga Banten", category: "Collection", url: "/collections/toko-bunga-banten", images: " ", price: " " },{ label: "Toko Bunga Banyumas", category: "Collection", url: "/collections/toko-bunga-banyumas", images: " ", price: " " },{ label: "Toko Bunga Banyuwangi", category: "Collection", url: "/collections/toko-bunga-banyuwangi", images: " ", price: " " },{ label: "Toko Bunga Batam", category: "Collection", url: "/collections/toko-bunga-batam", images: " ", price: " " },{ label: "Toko Bunga Baubau", category: "Collection", url: "/collections/toko-bunga-baubau", images: " ", price: " " },{ label: "Toko Bunga Bekasi", category: "Collection", url: "/collections/toko-bunga-bekasi", images: " ", price: " " },{ label: "Toko Bunga Bengkalis", category: "Collection", url: "/collections/toko-bunga-bengkalis", images: " ", price: " " },{ label: "Toko Bunga Bengkayang", category: "Collection", url: "/collections/toko-bunga-bengkayang", images: " ", price: " " },{ label: "Toko Bunga Binjai", category: "Collection", url: "/collections/toko-bunga-binjai", images: " ", price: " " },{ label: "Toko Bunga Bintaro", category: "Collection", url: "/collections/toko-bunga-bintaro", images: " ", price: " " },{ label: "Toko Bunga Blitar", category: "Collection", url: "/collections/toko-bunga-blitar", images: " ", price: " " },{ label: "Toko Bunga Blora", category: "Collection", url: "/collections/toko-bunga-blora", images: " ", price: " " },{ label: "Toko Bunga Bogor", category: "Collection", url: "/collections/toko-bunga-bogor", images: " ", price: " " },{ label: "Toko Bunga Bojonegoro", category: "Collection", url: "/collections/toko-bunga-bojonegoro", images: " ", price: " " },{ label: "Toko Bunga Boyolali", category: "Collection", url: "/collections/toko-bunga-boyolali", images: " ", price: " " },{ label: "Toko Bunga Brebes", category: "Collection", url: "/collections/toko-bunga-brebes", images: " ", price: " " },{ label: "Toko Bunga Bukittinggi", category: "Collection", url: "/collections/toko-bunga-bukittinggi", images: " ", price: " " },{ label: "Toko Bunga Buleleng", category: "Collection", url: "/collections/toko-bunga-buleleng", images: " ", price: " " },{ label: "Toko Bunga Cakung", category: "Collection", url: "/collections/toko-bunga-cakung", images: " ", price: " " },{ label: "Toko Bunga Cawang", category: "Collection", url: "/collections/toko-bunga-cawang", images: " ", price: " " },{ label: "Toko Bunga Cempaka Putih", category: "Collection", url: "/collections/toko-bunga-cempaka-putih", images: " ", price: " " },{ label: "Toko Bunga Cengkareng", category: "Collection", url: "/collections/toko-bunga-cengkareng", images: " ", price: " " },{ label: "Toko Bunga Ciamis", category: "Collection", url: "/collections/toko-bunga-ciamis", images: " ", price: " " },{ label: "Toko Bunga Cianjur", category: "Collection", url: "/collections/toko-bunga-cianjur", images: " ", price: " " },{ label: "Toko Bunga Cibinong", category: "Collection", url: "/collections/toko-bunga-cibinong", images: " ", price: " " },{ label: "Toko Bunga Cibubur", category: "Collection", url: "/collections/toko-bunga-cibubur", images: " ", price: " " },{ label: "Toko Bunga Cijantung", category: "Collection", url: "/collections/toko-bunga-cijantung", images: " ", price: " " },{ label: "Toko Bunga Cikarang", category: "Collection", url: "/collections/toko-bunga-cikarang", images: " ", price: " " },{ label: "Toko Bunga Cikini", category: "Collection", url: "/collections/toko-bunga-cikini", images: " ", price: " " },{ label: "Toko Bunga Cilacap", category: "Collection", url: "/collections/toko-bunga-cilacap", images: " ", price: " " },{ label: "Toko Bunga Cilandak", category: "Collection", url: "/collections/toko-bunga-cilandak", images: " ", price: " " },{ label: "Toko Bunga Cileunyi", category: "Collection", url: "/collections/toko-bunga-cileunyi", images: " ", price: " " },{ label: "Toko Bunga Ciracas", category: "Collection", url: "/collections/toko-bunga-ciracas", images: " ", price: " " },{ label: "Toko Bunga Cirebon", category: "Collection", url: "/collections/toko-bunga-cirebon", images: " ", price: " " }
7877,{ label: "Toko Bunga Ciwidey", category: "Collection", url: "/collections/toko-bunga-ciwidey", images: " ", price: " " },{ label: "Toko Bunga Danau Toba", category: "Collection", url: "/collections/toko-bunga-danau-toba", images: " ", price: " " },{ label: "Toko Bunga Demak", category: "Collection", url: "/collections/toko-bunga-demak", images: " ", price: " " },{ label: "Toko Bunga Denpasar", category: "Collection", url: "/collections/toko-bunga-denpasar", images: " ", price: " " },{ label: "Toko Bunga Depok", category: "Collection", url: "/collections/toko-bunga-depok", images: " ", price: " " },{ label: "Toko Bunga Duren Sawit", category: "Collection", url: "/collections/toko-bunga-duren-sawit", images: " ", price: " " },{ label: "Toko Bunga Garut", category: "Collection", url: "/collections/toko-bunga-garut", images: " ", price: " " },{ label: "Toko Bunga Gianyar", category: "Collection", url: "/collections/toko-bunga-gianyar", images: " ", price: " " },{ label: "Toko Bunga Gowa", category: "Collection", url: "/collections/toko-bunga-gowa", images: " ", price: " " },{ label: "Toko Bunga Gresik", category: "Collection", url: "/collections/toko-bunga-gresik", images: " ", price: " " },{ label: "Toko Bunga Grobogan", category: "Collection", url: "/collections/toko-bunga-grobogan", images: " ", price: " " },{ label: "Toko Bunga Grogol", category: "Collection", url: "/collections/toko-bunga-grogol", images: " ", price: " " },{ label: "Toko Bunga Gunungkidul", category: "Collection", url: "/collections/toko-bunga-gunungkidul", images: " ", price: " " },{ label: "Toko Bunga Indramayu", category: "Collection", url: "/collections/toko-bunga-indramayu", images: " ", price: " " },{ label: "Toko Bunga Jakarta", category: "Collection", url: "/collections/toko-bunga-jakarta", images: " ", price: " " },{ label: "Toko Bunga Jakarta Barat", category: "Collection", url: "/collections/toko-bunga-jakarta-barat", images: " ", price: " " },{ label: "Toko Bunga Jakarta Pusat", category: "Collection", url: "/collections/toko-bunga-jakarta-pusat", images: " ", price: " " },{ label: "Toko Bunga Jakarta Selatan", category: "Collection", url: "/collections/toko-bunga-jakarta-selatan", images: " ", price: " " },{ label: "Toko Bunga Jakarta Timur", category: "Collection", url: "/collections/toko-bunga-jakarta-timur", images: " ", price: " " },{ label: "Toko Bunga Jakarta Utara", category: "Collection", url: "/collections/toko-bunga-jakarta-utara", images: " ", price: " " },{ label: "Toko Bunga Jambi", category: "Collection", url: "/collections/toko-bunga-jambi", images: " ", price: " " },{ label: "Toko Bunga Jatinegara", category: "Collection", url: "/collections/toko-bunga-jatinegara", images: " ", price: " " },{ label: "Toko Bunga Jawa & Bali", category: "Collection", url: "/collections/toko-bunga-jawa-bali", images: " ", price: " " },{ label: "Toko Bunga Jayapura", category: "Collection", url: "/collections/toko-bunga-jayapura", images: " ", price: " " },{ label: "Toko Bunga Jelambar - Florist Onine 24 Jam", category: "Collection", url: "/collections/toko-bunga-jelambar", images: " ", price: " " },{ label: "Toko Bunga Jember", category: "Collection", url: "/collections/toko-bunga-jember", images: " ", price: " " },{ label: "Toko Bunga Jembrana", category: "Collection", url: "/collections/toko-bunga-jembrana", images: " ", price: " " },{ label: "Toko Bunga Jepara", category: "Collection", url: "/collections/toko-bunga-jepara", images: " ", price: " " },{ label: "Toko Bunga Joglo", category: "Collection", url: "/collections/toko-bunga-joglo", images: " ", price: " " },{ label: "Toko Bunga Jombang", category: "Collection", url: "/collections/toko-bunga-jombang", images: " ", price: " " },{ label: "Toko Bunga Kalibata", category: "Collection", url: "/collections/toko-bunga-kalibata", images: " ", price: " " },{ label: "Toko Bunga Kalimantan", category: "Collection", url: "/collections/toko-bunga-kalimantan", images: " ", price: " " },{ label: "Toko Bunga Kalisari Semarang", category: "Collection", url: "/collections/toko-bunga-kalisari-semarang", images: " ", price: " " },{ label: "Toko Bunga Kampung Baru", category: "Collection", url: "/collections/toko-bunga-kampung-baru", images: " ", price: " " },{ label: "Toko Bunga Kapuas", category: "Collection", url: "/collections/toko-bunga-kapuas", images: " ", price: " " },{ label: "Toko Bunga Karanganyar", category: "Collection", url: "/collections/toko-bunga-karanganyar", images: " ", price: " " },{ label: "Toko Bunga Karangasem", category: "Collection", url: "/collections/toko-bunga-karangasem", images: " ", price: " " },{ label: "Toko Bunga Karawang", category: "Collection", url: "/collections/toko-bunga-karawang", images: " ", price: " " },{ label: "Toko Bunga Kartosuro", category: "Collection", url: "/collections/toko-bunga-kartosuro", images: " ", price: " " },{ label: "Toko Bunga Kayoon Surabaya", category: "Collection", url: "/collections/toko-bunga-kayoon-surabaya", images: " ", price: " " },{ label: "Toko Bunga Kebayoran Baru", category: "Collection", url: "/collections/toko-bunga-kebayoran-baru", images: " ", price: " " },{ label: "Toko Bunga Kebon Jeruk", category: "Collection", url: "/collections/toko-bunga-kebon-jeruk", images: " ", price: " " },{ label: "Toko Bunga Kebumen", category: "Collection", url: "/collections/toko-bunga-kebumen", images: " ", price: " " },{ label: "Toko Bunga Kediri", category: "Collection", url: "/collections/toko-bunga-kediri", images: " ", price: " " },{ label: "Toko Bunga Kelapa Gading", category: "Collection", url: "/collections/toko-bunga-kelapa-gading", images: " ", price: " " },{ label: "Toko Bunga Kemayoran", category: "Collection", url: "/collections/toko-bunga-kemayoran", images: " ", price: " " },{ label: "Toko Bunga Kendal", category: "Collection", url: "/collections/toko-bunga-ken
7877dal", images: " ", price: " " },{ label: "Toko Bunga Kendari", category: "Collection", url: "/collections/toko-bunga-kendari", images: " ", price: " " },{ label: "Toko Bunga Ketapang", category: "Collection", url: "/collections/toko-bunga-ketapang", images: " ", price: " " },{ label: "Toko Bunga Klaten", category: "Collection", url: "/collections/toko-bunga-klaten", images: " ", price: " " },{ label: "Toko Bunga Klender", category: "Collection", url: "/collections/toko-bunga-klender", images: " ", price: " " },{ label: "Toko Bunga Kota Baru Yogyakarta", category: "Collection", url: "/collections/toko-bunga-kota-baru-yogyakarta", images: " ", price: " " },{ label: "Toko Bunga Kota Batu", category: "Collection", url: "/collections/toko-bunga-kota-batu", images: " ", price: " " },{ label: "Toko Bunga Kramat Jati", category: "Collection", url: "/collections/toko-bunga-kramat-jati", images: " ", price: " " },{ label: "Toko Bunga Kudus", category: "Collection", url: "/collections/toko-bunga-kudus", images: " ", price: " " },{ label: "Toko Bunga Kupang", category: "Collection", url: "/collections/toko-bunga-kupang", images: " ", price: " " },{ label: "Toko Bunga Lamongan", category: "Collection", url: "/collections/toko-bunga-lamongan", images: " ", price: " " },{ label: "Toko Bunga Langkat", category: "Collection", url: "/collections/toko-bunga-langkat", images: " ", price: " " },{ label: "Toko Bunga Lebak Bulus", category: "Collection", url: "/collections/toko-bunga-lebak-bulus", images: " ", price: " " },{ label: "Toko Bunga Lembang", category: "Collection", url: "/collections/toko-bunga-lembang", images: " ", price: " " },{ label: "Toko Bunga Lenteng Agung", category: "Collection", url: "/collections/toko-bunga-lenteng-agung", images: " ", price: " " },{ label: "Toko Bunga Lombok", category: "Collection", url: "/collections/toko-bunga-lombok", images: " ", price: " " },{ label: "Toko Bunga Lubuk Pakam", category: "Collection", url: "/collections/toko-bunga-lubuk-pakam", images: " ", price: " " },{ label: "Toko Bunga Lumajang", category: "Collection", url: "/collections/toko-bunga-lumajang", images: " ", price: " " },{ label: "Toko Bunga Madiun", category: "Collection", url: "/collections/toko-bunga-madiun", images: " ", price: " " },{ label: "Toko Bunga Magelang", category: "Collection", url: "/collections/toko-bunga-magelang", images: " ", price: " " },{ label: "Toko Bunga Majalengka", category: "Collection", url: "/collections/toko-bunga-majalengka", images: " ", price: " " },{ label: "Toko Bunga Makassar", category: "Collection", url: "/collections/toko-bunga-makassar", images: " ", price: " " },{ label: "Toko Bunga Malang", category: "Collection", url: "/collections/toko-bunga-malang", images: " ", price: " " },{ label: "Toko Bunga Manado", category: "Collection", url: "/collections/toko-bunga-manado", images: " ", price: " " },{ label: "Toko Bunga Mangga Besar", category: "Collection", url: "/collections/toko-bunga-mangga-besar", images: " ", price: " " },{ label: "Toko Bunga Manokwari", category: "Collection", url: "/collections/toko-bunga-manokwari", images: " ", price: " " },{ label: "Toko Bunga Maros", category: "Collection", url: "/collections/toko-bunga-maros", images: " ", price: " " },{ label: "Toko Bunga Mataram", category: "Collection", url: "/collections/toko-bunga-mataram", images: " ", price: " " },{ label: "Toko Bunga Medan", category: "Collection", url: "/collections/toko-bunga-medan", images: " ", price: " " },{ label: "Toko Bunga Mojokerto", category: "Collection", url: "/collections/toko-bunga-mojokerto", images: " ", price: " " },{ label: "Toko Bunga Nganjuk", category: "Collection", url: "/collections/toko-bunga-nganjuk", images: " ", price: " " },{ label: "Toko Bunga Ngawi", category: "Collection", url: "/collections/toko-bunga-ngawi", images: " ", price: " " },{ label: "Toko Bunga Nias", category: "Collection", url: "/collections/toko-bunga-nias", images: " ", price: " " },{ label: "Toko Bunga Nusa Tenggara", category: "Collection", url: "/collections/toko-bunga-nusa-tenggara", images: " ", price: " " },{ label: "Toko Bunga Padang", category: "Collection", url: "/collections/toko-bunga-padang", images: " ", price: " " },{ label: "Toko Bunga Palembang", category: "Collection", url: "/collections/toko-bunga-palembang", images: " ", price: " " },{ label: "Toko Bunga Palu", category: "Collection", url: "/collections/toko-bunga-palu", images: " ", price: " " },{ label: "Toko Bunga Pangkal Pinang", category: "Collection", url: "/collections/toko-bunga-pangkal-pinang", images: " ", price: " " },{ label: "Toko Bunga Papua", category: "Collection", url: "/collections/toko-bunga-papua", images: " ", price: " " },{ label: "Toko Bunga Parepare", category: "Collection", url: "/collections/toko-bunga-parepare", images: " ", price: " " },{ label: "Toko Bunga Pasar Baru", category: "Collection", url: "/collections/toko-bunga-pasar-baru", images: " ", price: " " },{ label: "Toko Bunga Pasar Minggu", category: "Collection", url: "/collections/toko-bunga-pasar-minggu", images: " ", price: " " },{ label: "Toko Bunga Pasar Rebo", category: "Collection", url: "/collections/toko-bunga-pasar-rebo", images: " ", price: " " },{ label: "Toko Bunga Pasuruan", category: "Collection", url: "/collections/toko-bunga-pasuruan", images: " ", price: " " },{ label: "Toko Bunga Pati", category: "Collection", url: "/collections/toko-bunga-pati", images: " ", price: " " },{ label: "Toko Bunga Pekalongan", category: "Collection", url: "/collections/toko-bunga-pekalongan", images: " ", price: " " },{ label: "Toko Bunga Pekanbaru", category: "Collection", url: "/collections/toko-bunga-pekanbaru", images: " ", price: " " },{ label: "Toko Bunga Pemalang", category: "Collection", url: "/collections/toko-bunga-pemalang", images: " ", price: " " }, 7878 { label: "grand salutation jabodetabek", category: "Produk", url: "/products/grand-salutation", images: "//outerbloom.com/cdn/shop/files/JKTCON1005_Grand-Salutation-Jabodetabek-WM_thumb.jpg?v=1703241523", price: "Rp 435.000" },{ label: "consolantibus jabodetabek", category: "Produk", url: "/products/consolantibus", images: "//outerbloom.com/cdn/shop/files/JKTDUK1011_Consolantibus-Jabodetabek-WM_thumb.jpg?v=1703239823", price: "Rp 435.000" },{ label: "classic midnight hand bouquet fiery red", category: "Produk", url: "/products/the-classic-midnight-hand-bouquet-fiery-red", images: "//outerbloom.com/cdn/shop/files/OBVBUN1422_Classic-Midnight-Hand-Bouquet---Fiery-Red-large_thumb.jpg?v=1757302521", price: "Rp 385.000" },{ label: "enchanted dome passionate red", category: "Produk", url: "/products/enchanted-dome-passionate-red", images: "//outerbloom.com/cdn/shop/files/Enchanted-dome-red-new-box_3_2_26c081bf-f2a5-42b4-9ce4-3c0304c498e5_thumb.jpg?v=1712639476", price: "Rp 1.435.000" },{ label: "endearing ruby", category: "Produk", url: "/products/endearing-ruby", images: "//outerbloom.com/cdn/shop/products/OUTSTF1003_Endearing-Ruby_thumb.jpg?v=1631296611", price: "Rp 585.000" },{ label: "gentle soul jabodetabek", category: "Produk", url: "/products/gentle-soul-jabodetabek", images: "//outerbloom.com/cdn/shop/files/JKTDUK1030_Gentle-Soul-Jabodetabek-WM_thumb.jpg?v=1703239894", price: "Rp 435.000" },{ label: "belleza jabodetabek", category: "Produk", url: "/products/belleza", images: "//outerbloom.com/cdn/shop/files/Belleza-Jabodetabek-LED_aecb756a-0737-45cc-8bfb-008515ca0a37_thumb.gif?v=1759229680", price: "Rp 435.000" }
7878,{ label: "majestic pink roses with baby breath bouquet", category: "Produk", url: "/products/majestic-pink-roses-with-baby-breath-bouquet", images: "//outerbloom.com/cdn/shop/products/ef4a3be9-c938-4c70-98ac-4873e7da82bf_90820a66-923a-463d-a464-81bcbe6e6644_thumb.jpg?v=1581413440", price: "Rp 485.000" },{ label: "sentiments jabodetabek", category: "Produk", url: "/products/sentiments", images: "//outerbloom.com/cdn/shop/files/Sentiments-Jabodetabek-WM_thumb.jpg?v=1759224099", price: "Rp 485.000" },{ label: "rose poetry bouquet", category: "Produk", url: "/products/rose-poetry-bouquet", images: "//outerbloom.com/cdn/shop/products/Rose-Poetry-Bouquet-20-tangkai_thumb.jpg?v=1675151039", price: "Rp 385.000" },{ label: "genuine feeling", category: "Produk", url: "/products/genuine-feeling", images: "//outerbloom.com/cdn/shop/products/OUTSTF1004Genuine-Feeling_981ade89-af27-433e-81aa-8d76175a0e4d_thumb.jpg?v=1612352389", price: "Rp 585.000" },{ label: "eternal fidelity jabodetabek", category: "Produk", url: "/products/eternal-fidelity-jabodetabek", images: "//outerbloom.com/cdn/shop/products/0b89df45-dcc1-4876-820e-61b2243a1945_964e211d-2972-46c9-8593-976210929089_thumb.jpg?v=1590491458", price: "Rp 435.000" },{ label: "rosabelle hand bouquet", category: "Produk", url: "/products/rosabelle-hand-bouquet", images: "//outerbloom.com/cdn/shop/files/OBVBUN1429_Rosabelle-Hand-Bouquet-Medium_thumb.jpg?v=1756971848", price: "Rp 385.000" },{ label: "dreaming in pink luxury in vase", category: "Produk", url: "/products/dreaming-in-pink-luxury-in-vase", images: "//outerbloom.com/cdn/shop/products/OBVBUN1051_Dreaming-In-Pink-Luxury-In-Vase_3_thumb.jpg?v=1614594504", price: "Rp 735.000" },{ label: "excito jabodetabek", category: "Produk", url: "/products/excito", images: "//outerbloom.com/cdn/shop/files/JKTCON1010_Excito-Jabodetabek-2023_thumb.gif?v=1717494677", price: "Rp 485.000" },{ label: "golden toast jabodetabek", category: "Produk", url: "/products/golden-toast", images: "//outerbloom.com/cdn/shop/products/LED-GoldenToast_thumb.gif?v=1579249585", price: "Rp 485.000" },{ label: "spirit of eminance jabodetabek", category: "Produk", url: "/products/spirit-of-eminance-jabodetabek", images: "//outerbloom.com/cdn/shop/files/JKTCON1026_Spirit-of-Eminance-Jabodetabek-newest-WM_thumb.jpg?v=1693297526", price: "Rp 485.000" },{ label: "white elysian bloom box", category: "Produk", url: "/products/white-elysian-bloom-box", images: "//outerbloom.com/cdn/shop/files/OBVBUN1704_White-Elysian-Bloom-Box_thumb.jpg?v=1757328247", price: "Rp 685.000" },{ label: "charming forevermore jabodetabek", category: "Produk", url: "/products/charming-forevermore-jabodetabek", images: "//outerbloom.com/cdn/shop/files/JKTWED1036_Charming-Forevermore-Jabodetabek-WM_thumb.jpg?v=1703239534", price: "Rp 485.000" },{ label: "moment of glory jabodetabek", category: "Produk", url: "/products/moment-of-glory-jabodetabek", images: "//outerbloom.com/cdn/shop/products/JKTCON1051_Moment-of-Glory-Jabodetabek_2_thumb.jpg?v=1596614663", price: "Rp 385.000" },{ label: "sweet romance jabodetabek", category: "Produk", url: "/products/sweet-romance", images: "//outerbloom.com/cdn/shop/products/JKTWED1005_Sweet-Romance-Jabodetabek_thumb.gif?v=1677134791", price: "Rp 635.000" },{ label: "with love bouquet", category: "Produk", url: "/products/with-love-bouquet", images: "//outerbloom.com/cdn/shop/products/c5d6fed6-8ada-4c38-ae0f-36d395aacb19_613f78f0-d52c-443b-9e13-63a151cd8ec5_thumb.jpg?v=1590748429", price: "Rp 535.000" },{ label: "sunflower yellow and with white daisies in vase", category: "Produk", url: "/products/sunflower-yellow-roses-with-white-and-yellow-daisies-in-a-glass-vase", images: "//outerbloom.com/cdn/shop/files/OBVBUN1132_Sunflower-Yellow-And-With-White-Daisies-in-Vase_thumb.jpg?v=1757930628", price: "Rp 435.000" },{ label: "everlasting peace jabodetabek", category: "Produk", url: "/products/everlasting-peace-jabodetabek", images: "//outerbloom.com/cdn/shop/products/JKTDUK1034_Everlasting-Peace-Jabodetabek_2_thumb.jpg?v=1596614613", price: "Rp 385.000" },{ label: "astoria passionate red", category: "Produk", url: "/products/astoria-passionate-red", images: "//outerbloom.com/cdn/shop/products/Astoria-passionate-red_b59b26f6-c39d-46d3-adcb-262c675bb16f_thumb.jpg?v=1633502742", price: "Rp 685.000" },{ label: "classic purple orchid majesty in vase", category: "Produk", url: "/products/classic-purple-orchid-majesty-in-vase", images: "//outerbloom.com/cdn/shop/products/Classic-Purple-Orchid-Majesty-in-Vase---White---4-Tangkai_40a5e337-283f-40f5-911c-5df9b506b9da_thumb.jpg?v=1639981404", price: "Rp 435.000" },{ label: "passion rouge bloom box", category: "Produk", url: "/products/passion-rouge-bloom-box", images: "//outerbloom.com/cdn/shop/files/OBVBUN1725_Passion-Rouge-Bloom-Box_thumb.jpg?v=1756972410", price: "Rp 385.000" },{ label: "classic white orchid majesty in vase", category: "Produk", url: "/products/classic-white-orchid-majesty-in-vase", images: "//outerbloom.com/cdn/shop/products/Classic-white-Orchid-Majesty-in-Vase---white---4-Tangkai_thumb.jpg?v=1644205542", price: "Rp 435.000" }
7878,{ label: "majestic blue romance bouquet", category: "Produk", url: "/products/majestic-blue-romance-bouquet", images: "//outerbloom.com/cdn/shop/files/OBVBUN1357_Majestic-Blue-Romance-Bouquet_99b8ba96-0e67-4eef-a00e-b2daedcddb6a_thumb.jpg?v=1757390540", price: "Rp 435.000" },{ label: "sincerely", category: "Produk", url: "/products/sincerely", images: "//outerbloom.com/cdn/shop/files/Sincerely-WM_thumb.jpg?v=1688354677", price: "Rp 585.000" },{ label: "happy days jabodetabek", category: "Produk", url: "/products/happy-days-jabodetabek", images: "//outerbloom.com/cdn/shop/files/Happy-Days-Jabodetabek_WM_thumb.jpg?v=1759224026", price: "Rp 485.000" },{ label: "solemn comfort jabodetabek", category: "Produk", url: "/products/solemn-comfort-jabodetabek", images: "//outerbloom.com/cdn/shop/products/7fe123d8-6bb2-4c0d-bd4c-f8c3032823f2_6b9c33b6-4a23-41cb-8709-fc9223fe096a_thumb.png?v=1590662086", price: "Rp 635.000" },{ label: "big dreams jabodetabek", category: "Produk", url: "/products/big-dreams", images: "//outerbloom.com/cdn/shop/files/JKTCON1002_Big-Dreams-Jabodetabek_thumb.gif?v=1717494603", price: "Rp 485.000" },{ label: "signature ramadan deluxe hampers", category: "Produk", url: "/products/outerbloom-signature-ramadhan-deluxe-hampers", images: "//outerbloom.com/cdn/shop/files/Signature-Deluxe-Hampers_thumb.jpg?v=1739242254", price: "Rp 985.000" },{ label: "amorous amos jabodetabek", category: "Produk", url: "/products/amorous-amos-jabodetabek", images: "//outerbloom.com/cdn/shop/files/Amorous-Amos-Jabodetabek-WM_thumb.jpg?v=1759224071", price: "Rp 485.000" },{ label: "pink darling bouquet", category: "Produk", url: "/products/pink-darling-bouquet", images: "//outerbloom.com/cdn/shop/products/Pink-Darling-Bouquet_thumb.jpg?v=1669969725", price: "Rp 485.000" },{ label: "black pink bouquet", category: "Produk", url: "/products/black-pink-bouquet", images: "//outerbloom.com/cdn/shop/files/Black-Pink-Bouquet_thumb.jpg?v=1756434063", price: "Rp 485.000" },{ label: "profound happiness jabodetabek", category: "Produk", url: "/products/profound-happiness-jabodetabek", images: "//outerbloom.com/cdn/shop/files/profound-happiness_thumb.gif?v=1689940309", price: "Rp 635.000" },{ label: "healing trove", category: "Produk", url: "/products/healing-trove", images: "//outerbloom.com/cdn/shop/products/2ef5379f-27a6-41ba-85c7-c65cf3ec3f08_thumb.jpg?v=1571471845", price: "Rp 485.000" },{ label: "sincerity solace", category: "Produk", url: "/products/sincerity-solace", images: "//outerbloom.com/cdn/shop/products/OUTSTF1038_sincerity-solace-WM_thumb.jpg?v=1612352477", price: "Rp 485.000" },{ label: "bellarosa bloom box", category: "Produk", url: "/products/bellarosa-bloom-box", images: "//outerbloom.com/cdn/shop/files/OBVBUN1783_Bellarosa-Bloom-Box_c0000424-411c-48ed-abf4-0de7d925ea53_thumb.jpg?v=1757316757", price: "Rp 785.000" } 7879 ]; 7880 7881 7882 $( ".header-input-search" ).catcomplete({ 7883 appendTo: ".searchResult",source: function(request, response) { 7884 var results = $.ui.autocomplete.filter(data, request.term); 7885 var predicate = function () { 7886 var counter = { Collection: 0, Produk: 0 }; 7887 var fn = function(item) {counter[item.category] += 1;return (counter[item.category] <= 5);} 7888 return fn 7889 }(); 7890 response(results.filter(predicate)); 7891 }, 7892 minLength:1, 7893 //results are clickable 7894 select: function( event, ui ) {window.location = ui.item.url;} 7895 }); 7896 $( ".header-input-search2" ).catcomplete({ 7897 appendTo: ".searchResult2", 7898 source: function(request, response) { 7899 var results = $.ui.autocomplete.filter(data, request.term); 7900 var predicate = function () { 7901 var counter = { Collection: 0, Produk: 0 }; 7902 var fn = function(item) { 7903 counter[item.category] += 1; 7904 return (counter[item.category] <= 5); 7905 } 7906 return fn 7907 }(); 7908 response(results.filter(predicate)); 7909 }, 7910 minLength:1, 7911 //results are clickable 7912 select: function( event, ui ) { 7913 window.location = ui.item.url; 7914 } 7915 }); 7916 }); 7917 </script>
7917 7918 7919
7919<script src="//outerbloom.com/cdn/shop/t/138/assets/vendors.js?v=6349622868601634021752652419" defer></script>
7919 7920
7920<script src="//outerbloom.com/cdn/shop/t/138/assets/app.js?v=136050180318808583701752652452" defer></script>
7920 7921 7922
7922<script> 7923 ( function() { 7924 var youtube = document.querySelectorAll( ".youtube" ); 7925 for (var i = 0; i < youtube.length; i++) { 7926 var source = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault_1x.jpg"; 7927 var datasource = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault.jpg"; 7928 var image = new Image(); 7929 image.src = source; 7930 image.setAttribute("data-src", datasource); 7931 image.classList.add("swiper-lazy"); 7932 image.addEventListener( "load", function() { 7933 youtube[ i ].appendChild( image ); 7934 }( i ) ); 7935 youtube[i].addEventListener( "click", function() { 7936 var iframe = document.createElement( "iframe" ); 7937 iframe.setAttribute( "width", "480" ); 7938 iframe.setAttribute( "height", "480" ); 7939 iframe.setAttribute( "frameborder", "0" ); 7940 iframe.setAttribute( "allowfullscreen", "" ); 7941 iframe.setAttribute( "src", "https://www.youtube.com/embed/"+ this.dataset.embed +"?rel=0&showinfo=0&autoplay=1" ); 7942 this.innerHTML = ""; 7943 this.appendChild( iframe ); 7944 } ); 7945 }; 7946 7947 } )(); 7948 7949 /* Lazy Load */ 7950 const mainLazyLoad = new LazyLoad({threshold:400}); 7951 $(document).ready(function(){ 7952 7953 $("selectxxx").addClass("needsclick"); 7954 FastClick.attach(document.body); 7955 7956 var $customSelects = $('.select-search'); 7957 $customSelects.select2({ 7958 templateResult: function(result, container) { 7959 if (!result.id) { 7960 return result.text; 7961 } 7962 container.className += ' needsclick'; 7963 return result.text; 7964 } 7965 }); 7966 $customSelects.each(function(index, el){$(el).data('select2').$container.find('*').addClass('needsclick');}); 7967 $(document).on('select2:open', () => { 7968 document.querySelector('.select2-search__field').focus(); 7969 }); 7970 7971 7972 $(".overlay").click(function(){ 7973 $(".js-drawer-close").click(); 7974 }); 7975 $(".site-nav--mobile .js-drawer-open-left, #NavDrawer .icon-close, .overlay-nav").click(function(){ 7976 $("html").toggleClass("nav_open"); 7977 }); 7978 7979 $('.swatch-element label').on('click', function(){ 7980 var srcImg = $(this).data('src'); 7981 $('#thumb-image-product .product-single__thumbnail').each(function(){ 7982 if ($(this).attr("href") == srcImg) { 7983 $(this).trigger('click'); 7984 } 7985 }); 7986 }); 7987 var defaultValue = $(".swatch input:checked").val() 7988 7989 $('#purchaseProduct .swatch [type=radio]').change(function() { 7990 var optionIndex = $(this).closest('.swatch').attr('data-option-index'); 7991 var optionValue = $(this).val(); 7992 console.log(optionIndex, optionValue) 7993 var value = parseInt(optionValue.split(' ')[0]) 7994 $(this) 7995 .closest('#purchaseProduct') 7996 .find('.single-option-selector') 7997 .eq(optionIndex) 7998 .val(optionValue) 7999 .trigger('change'); 8000 8001 }); 8002 8003 }); 8004 $(document).ready(function(){ 8005 $(".nav-search a").click(function(e){ 8006 e.preventDefault(); 8007 $(".icon-navsearch").toggle(); 8008 $(".icon-navclose").toggle(); 8009 $(".site-nav__item > .site-nav__link").toggle(); 8010 $(".open-search").toggle(); 8011 $(".open-search input").focus(); 8012 }); 8013 $(".best-price-guarantee").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/logo-best-price-guarantee-grid_75x.png?v=72489032173169839651752652420' alt='Logo Best Price Guarantee'>"); 8014 if ($(window).width() < 768) { 8015 $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_75x.png?v=82732945490105366961752652419' alt='Icon Valentine'>"); 8016 $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_45x.png?v=101884295148001743851752652418' alt='Icon CNY'>"); 8017 $(".bg-products .label-tag.free-valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/free-valentine_150x.png?v=171641187769238175351752652421' alt='Icon Free Valentine'>"); 8018 } else { 8019 $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_60x.png?v=82732945490105366961752652419' alt='Icon Valentine'>"); 8020 $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_60x.png?v=101884295148001743851752652418' alt='Icon CNY'>"); 8021 $(".bg-products .label-tag.free-valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/free-valentine_200x.png?v=171641187769238175351752652421' alt='Icon Free Valentine'>"); 8022 } 8023 $(".bg-products .label-tag.free-cookies").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/free-cookies_80x.png?51468' alt='Icon Free Cookies'>"); 8024 $(".bg-products .label-tag.mothersday").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/mothers-day_70x.png?v=171373711354766377891752652419' alt='Icon Mothers day'>"); 8025 }); 8026 </script>
8026 8027 8028 8029 8030 8031 8032 8033 8034
8034<script type="text/javascript"> 8035 var wishlistpage = 0; 8036 8037 var quickShop_money_format="<span class='money'>"+"Rp {{amount_no_decimals}}"+"</span>"; 8038 </script>
8038 8039 8040 <!-- Remove duplicate wishlist.js reference --> 8041 <style> 8042 .fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999999;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.fade.in{opacity:1}.modal-open .modal{overflow-x:hidden;overflow-y:auto;z-index:999999;background-color:rgba(0,0,0,.3)}.modal-dialog{position:relative;width:auto;margin:10px}.wishlist-model .modal-dialog{width:700px}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.wishlist-model .modal-content{}.wishlist-model .modal-header{min-height:0;padding:0;border-bottom:0}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #121212;filter:alpha(opacity=20);opacity:.2}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-header .close{margin-top:-2px}.wishlist-model .close{position:absolute;top:-10px;right:-10px;background:#fff;opacity:1;width:30px;height:30px;font-size:15px;border-radius:50%;z-index:10;box-shadow:0 1px 4px 0 #121212}.wishlist-model .close .icon-close{width:25px;height:25px}.modal-body{position:relative;padding:15px}.wishlist-model .modal-body{padding:0 30px;display:flex}.wishlist-model .wishlist-left{width:66.67%;border-right:1px solid #ccc;padding:30px 0}.wishlist-model .wishlist-note{position:relative;display:inline-block;margin-bottom:20px;margin-left:35px;border-bottom:1px solid #121212;color:#121212}.wishlist-model .wishlist-note a{color: #ffffff;}.wishlist-model .wishlist-note .cirle{position:absolute;top:-4px;left:-35px;width:25px;height:25px;color:#fff;background:#121212;line-height:25px;border-radius:50%;text-align:center}.wishlist-model .wishlist-note svg{fill:#fff}.wishlist-model .wishlist-note .cirle .icon-check{vertical-align:middle}.wishlist-model .product-left{width:33.33%;float:left;margin-right:30px}.wishlist-model .wishlist-image{overflow:hidden}.wishlist-model .wishlist-image img{transition:all .3s linear}.wishlist-model .wishlist-name{padding:0;margin-bottom:10px}.wishlist-model .wishlist-name a{color: #ffffff;}.wishlist-model .wishlist-price{margin-bottom:10px}.wishlist-model .wishlist-price .price{font-weight:700;margin-right:10px;font-size:15px}.wishlist-model .wishlist-price .price_compare{color:#ccc}.wishlist-model .wishlist-right{width:33.33%;padding:30px 0;padding-left:30px}.wishlist-model .btn-quick-shop{width:100%;border-color:#121212;background:#fff;color:#121212;padding:0 30px;transition:all .2s linear;height:36px;margin-bottom:10px;text-transform:uppercase}.wishlist-model .btn-cta{width:100%;font-size:1em;border-color:#ffffff;background:#ffffff;color:#fff;padding:0;transition:all .2s linear;height:36px;line-height:36px;margin-bottom:10px}.wishlist-model .quantity-content{text-align:center}.wishlist-model .quantity-content input{outline:none;text-align:center;font-weight:600;border:1px solid #121212}.wishlist-model .quantity-content button{border-color:#121212}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}} 8043 </style> 8044 8045 <div class="modal fade" id="modalwishlist0" tabindex="-1" role="dialog"> 8046 <div class="modal-dialog" role="document"> 8047 <div class="modal-content"> 8048 <div class="modal-body">Your Wishlist is empty!</div> 8049 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> 8050 </div> 8051 </div> 8052 </div> 8053 8054 <div class="wishlist-model"> 8055 <div class="modal fade" id="modalwishlist1" tabindex="-1" role="dialog" aria-hidden="true"> 8056 <div class="modal-dialog white-modal"> 8057 <div class="modal-content"> 8058 <div class="modal-header"> 8059 <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 8060 <svg class="icon icon-close" version="1.1" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="32" height="32" viewBox="0 0 32 32"> 8061 <title>icon-close</title> 8062 <path d="M16.943 16l8.862 8.862c0.26 0.26 0.26 0.682 0 0.943s-0.682 0.26-0.943 0l-8.862-8.862-8.862 8.862c-0.26 0.26-0.682 0.26-0.943 0s-0.26-0.682 0-0.943l8.862-8.862-8.862-8.862c-0.26-0.26-0.26-0.682 0-0.943s0.682-0.26 0.943 0l8.862 8.862 8.862-8.862c0.26-0.26 0.682-0.26 0.943 0s0.26 0.682 0 0.943l-8.862 8.862z"></path> 8063 </svg> 8064 </button> 8065 </div> 8066 <div class="modal-body"> 8067 <div class="wishlist-left"> 8068 <div class="wishlist-note">
8069 <span class="cirle"><svg version="1.1" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="32" height="32" viewBox="0 0 32 32"> 8070 <title>icon-check</title> 8071 <path d="M12 21.766l14.218-12.926c0.272-0.248 0.694-0.228 0.942 0.045s0.228 0.694-0.045 0.942l-14.667 13.333c-0.254 0.231-0.643 0.231-0.897 0l-6.667-6.061c-0.272-0.248-0.293-0.669-0.045-0.942s0.669-0.293 0.942-0.045l6.218 5.653z"></path> 8072 </svg></span> 8073 Product added to <a href="/pages/wish-list">Wishlist</a> 8074 </div> 8075 <div class="wishlist-product"> 8076 <div class="product-left"> 8077 <div class="wishlist-image"></div> 8078 </div> 8079 <div class="product-right"> 8080 <div class="wishlist-name"></div> 8081 <div class="wishlist-price"></div> 8082 </div> 8083 </div> 8084 </div> 8085 <div class="wishlist-right"> 8086 <div class="wishlist-cart"> 8087 <form action="/cart/add" method="post" class="variants-form variants" id="AddToCartForm" enctype="multipart/form-data"> 8088 <div class="others-bottom"> 8089 <a class="btn btn-quick-shop" href="/pages/wish-list">View Wishlist</a> 8090 <button type="submit" name="add" id="AddToCart" class="btn btn-cta"> 8091 <span id="AddToCartText" class="">Beli Sekarang</span> 8092 </button> 8093 </div> 8094 <div id="wishlist-variants-container" class="variants-wrapper"></div> 8095 <div class="quantity-content"> 8096 <label>QTY</label> 8097 <input type="number" size="5" class="" name="quantity" value="1" /> 8098 </div> 8099 </form> 8100 </div> 8101 </div> 8102 </div> 8103 </div> 8104 </div> 8105 </div> 8106 </div> 8107 8108 8109 <style> 8110 .stamped-badge[data-rating="0.0"]{display: none !Important;} 8111 8112 div[data-load-type="continue"] ul.stamped-pagination li.next a, div[data-widget-load-type="continue"] ul.stamped-pagination li.next a { 8113 border-radius: 0px; 8114 } 8115 .stamped-review-body { 8116 padding-left: 0px !important; 8117 } 8118 #product-reviews .stamped-header:after { 8119 display:none !Important; 8120 } 8121 #stamped-main-widget .stamped-container, .stamped-badge-caption,#stamped-reviews-widget { 8122 font-family:inherit !important; 8123 } 8124 </style> 8125 8126 8127 8128 <div id='stamped-rewards-init' class='stamped-rewards-init' 8129 data-key-public='' 8130 8131 ></div> 8132 8133
8133<script src="//outerbloom.com/cdn/shop/t/138/assets/variant-sku-handler.js?v=91239063692820757781752652418" defer></script>
8133 8134 <!-- Remove duplicate jQuery reference and load wishlist script properly --> 8135
8135<script src="//outerbloom.com/cdn/shop/t/138/assets/wishlist-fixed.js?v=35991423018869066281754360012" defer></script>
8135 8136 8137
8137<script> 8138 function myInit(){ StampedFn.init({ apiKey: 'pubkey-hCS8DHE9QbBHhHN89WXFkuJ0Y3422D', sId: '23462' }); } 8139 </script>
8139 8140
8140<script async onload="myInit()" type="text/javascript" src="https://cdn1.stamped.io/files/widget.min.js"></script>
8140<style> 8141 .jss59 { 8142 background-color: rgba(0, 0, 0, 0.6); 8143 } 8144 .MuiBackdrop-root { 8145 top: 0; 8146 left: 0; 8147 right: 0; 8148 bottom: 0; 8149 display: flex; 8150 z-index: -1; 8151 position: fixed; 8152 align-items: center; 8153 justify-content: center; 8154 background-color: rgba(0, 0, 0, 0.5); 8155 -webkit-tap-highlight-color: transparent; 8156 } 8157 .MuiDialog-scrollPaper { 8158 display: flex; 8159 align-items: center; 8160 justify-content: center; 8161 } 8162 .MuiDialog-container { 8163 height: 100%; 8164 outline: 0; 8165 } 8166 .MuiPaper-elevation24 { 8167 box-shadow: 0px 11px 15px -7px rgba(0,0,0,0.2), 0px 24px 38px 3px rgba(0,0,0,0.14), 0px 9px 46px 8px rgba(0,0,0,0.12); 8168 } 8169 .MuiDialog-paper { 8170 margin: 32px; 8171 position: relative; 8172 overflow-y: auto; 8173 } 8174 .MuiDialog-paperScrollPaper { 8175 display: flex; 8176 max-height: calc(100% - 64px); 8177 flex-direction: column; 8178 } 8179 .MuiDialog-paperWidthSm { 8180 max-width: 600px; 8181 } 8182 #location-lock-dialog { 8183 top: 20%; 8184 left: 0; 8185 right: 0; 8186 width: 30%; 8187 margin: 0px auto; 8188 display: block; 8189 padding: 30px; 8190 z-index: 99999; 8191 position: fixed; 8192 font-size: 14px; 8193 background: rgb(0, 0, 0); 8194 box-shadow: rgba(11, 11, 12, 0.2) 2px 4px 5px 0px; 8195 text-align: center; 8196 font-family: Roboto, Arial, sans-serif; 8197 line-height: 1; 8198 border-radius: 8px; 8199 -webkit-font-smoothing: subpixel-antialiased; 8200 } 8201 .MuiButtonBase-root { 8202 color: inherit; 8203 border: 0; 8204 cursor: pointer; 8205 margin: 0; 8206 display: inline-flex; 8207 outline: 0; 8208 padding: 0; 8209 position: relative; 8210 align-items: center; 8211 user-select: none; 8212 border-radius: 0; 8213 vertical-align: middle; 8214 -moz-appearance: none; 8215 justify-content: center; 8216 text-decoration: none; 8217 background-color: transparent; 8218 -webkit-appearance: none; 8219 -webkit-tap-highlight-color: transparent; 8220 } 8221 .MuiIconButton-root { 8222 flex: 0 0 auto; 8223 color: rgba(0, 0, 0, 0.54); 8224 padding: 12px; 8225 overflow: visible; 8226 font-size: 1.5rem; 8227 text-align: center; 8228 transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 8229 border-radius: 50%; 8230 } 8231 .MuiIconButton-label { 8232 width: 100%; 8233 display: flex; 8234 align-items: inherit; 8235 justify-content: inherit; 8236 } 8237 .MuiSvgIcon-root { 8238 fill: currentColor; 8239 width: 1em; 8240 height: 1em; 8241 display: inline-block; 8242 font-size: 1.5rem; 8243 transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 8244 flex-shrink: 0; 8245 user-select: none; 8246 } 8247 .MuiTouchRipple-root { 8248 top: 0; 8249 left: 0; 8250 right: 0; 8251 bottom: 0; 8252 z-index: 0; 8253 overflow: hidden; 8254 position: absolute; 8255 border-radius: inherit; 8256 pointer-events: none; 8257 } 8258 .jss36 { 8259 color: #222222; 8260 font-size: 24px; 8261 font-family: Roboto, Arial, sans-serif; 8262 font-weight: 500; 8263 } 8264 .jss37 { 8265 color: #555555; 8266 padding: 10px 0px 0px; 8267 font-size: 14px; 8268 } 8269 .MuiFormGroup-root { 8270 display: flex; 8271 flex-wrap: wrap; 8272 flex-direction: column; 8273 } 8274 .MuiFormGroup-row { 8275 flex-direction: row; 8276 } 8277 .jss63 { 8278 width: 85%; 8279 margin: 15px auto; 8280 display: flex; 8281 padding: 11px 0px 0px; 8282 justify-content: space-evenly; 8283 } 8284 .MuiFormControlLabel-root { 8285 cursor: pointer; 8286 display: inline-flex; 8287 align-items: center; 8288 margin-left: -11px; 8289 margin-right: 16px; 8290 vertical-align: middle; 8291 -webkit-tap-highlight-color: transparent; 8292 } 8293 .jss70 { 8294 margin: 0; 8295 } 8296 .MuiButtonBase-root { 8297 color: inherit; 8298 border: 0; 8299 cursor: pointer; 8300 margin: 0; 8301 display: inline-flex; 8302 outline: 0; 8303 padding: 0; 8304 position: relative; 8305 align-items: center; 8306 user-select: none; 8307 border-radius: 0; 8308 vertical-align: middle; 8309 -moz-appearance: none; 8310 justify-content: center; 8311 text-decoration: none; 8312 background-color: transparent; 8313 -webkit-appearance: none; 8314 -webkit-tap-highlight-color: transparent; 8315 } 8316 .MuiIconButton-root { 8317 flex: 0 0 auto; 8318 color: rgba(0, 0, 0, 0.54); 8319 padding: 12px; 8320 overflow: visible; 8321 font-size: 1.5rem; 8322 text-align: center; 8323 transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 8324 border-radius: 50%; 8325 } 8326 .MuiIconButton-colorSecondary { 8327 color: #f50057; 8328 } 8329 .jss71 { 8330 padding: 9px; 8331 } 8332 .MuiRadio-root { 8333 color: rgba(0, 0, 0, 0.54); 8334 } 8335 .jss64 { 8336 padding: 2px; 8337 } 8338 .MuiRadio-colorSecondary.Mui-checked { 8339 color: #f50057; 8340 } 8341 .MuiIconButton-label { 8342 width: 100%; 8343 display: flex; 8344 align-items: inherit; 8345 justify-content: inherit; 8346 } 8347 .MuiTypography-root { 8348 margin: 0; 8349 } 8350 .MuiTypography-body1 { 8351 font-size: 18px; 8352 font-family: Roboto,sans-serif; 8353 font-weight: 400; 8354 line-height: 1.5; 8355 } 8356 .location-popup_area-block__sp9Ws { 8357 display: -moz-box; 8358 display: flex; 8359 -moz-box-orient: vertical; 8360 -moz-box-direction: normal; 8361 flex-direction: column; 8362 -moz-box-pack: center; 8363 justify-content: center; 8364 position: relative; 8365 margin: 10px 10% 0; 8366 } 8367 .location-popup_pin-search-box__3l5mJ { 8368 width: 100%; 8369 display: -moz-box; 8370 display: flex; 8371 -moz-box-align: center; 8372 align-items: center; 8373 } 8374 .location-popup_place-icon-city__1XAX5, .location-popup_place-icon__jSG0Q { 8375 position: absolute; 8376 z-index: 999; 8377 } 8378 .location-popup_place-icon__jSG0Q { 8379 color: #ffffff; 8380 padding-left: 8px; 8381 } 8382 .location-popup_place-icon__jSG0Q svg { 8383 width: 18px; 8384 height: 18px; 8385 } 8386 .location-popup_cancel-icon__FHujU { 8387 color: #fff; 8388 right: 10px; 8389 width: 16px; 8390 cursor: pointer; 8391 height: 16px; 8392 display: none; 8393 padding: 5px; 8394 position: absolute; 8395 background: #999; 8396 text-align: center; 8397 border-radius: 50%; 8398 } 8399 .location-popup_pin-search-box__3l5mJ>div>select { 8400 /* -webkit-box-shadow: 0 0 10px #ffffff; 8401 box-shadow: 0 0 10px #ffffff; */ 8402 text-transform: capitalize; 8403 border: 1px solid #ffffff; 8404 color: #ffffff; 8405 width: 100%; 8406 margin: 0; 8407 display: -moz-box; 8408 display: flex;
8409 padding: 0 30px; 8410 -webkit-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8411 -moz-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8412 animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8413 font-size: 16px; 8414 border-radius: 4px; 8415 height: 44px; 8416 moz-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite; 8417 webkit-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite; 8418 } 8419 .MuiButtonBase-root { 8420 color: inherit; 8421 border: 0; 8422 cursor: pointer; 8423 margin: 0; 8424 display: inline-flex; 8425 outline: 0; 8426 padding: 0; 8427 position: relative; 8428 align-items: center; 8429 user-select: none; 8430 border-radius: 0; 8431 vertical-align: middle; 8432 -moz-appearance: none; 8433 justify-content: center; 8434 text-decoration: none; 8435 background-color: transparent; 8436 -webkit-appearance: none; 8437 -webkit-tap-highlight-color: transparent; 8438 } 8439 .MuiButton-root { 8440 color: rgba(0, 0, 0, 0.87); 8441 padding: 6px 16px; 8442 font-size: 0.875rem; 8443 min-width: 64px; 8444 box-sizing: border-box; 8445 transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 8446 font-family: Roboto,sans-serif; 8447 font-weight: 500; 8448 line-height: 1.75; 8449 border-radius: 4px; 8450 text-transform: uppercase; 8451 } 8452 .MuiButton-contained { 8453 color: rgba(0, 0, 0, 0.87); 8454 box-shadow: 0px 3px 1px -2px rgba(0,0,0,0.2), 0px 2px 2px 0px rgba(0,0,0,0.14), 0px 1px 5px 0px rgba(0,0,0,0.12); 8455 background-color: #e0e0e0; 8456 } 8457 .MuiButtonBase-root.Mui-disabled { 8458 cursor: default; 8459 pointer-events: none; 8460 } 8461 .MuiButton-label { 8462 width: 100%; 8463 display: inherit; 8464 align-items: inherit; 8465 justify-content: inherit; 8466 } 8467 .cartButton_login_content__2j1f7 { 8468 display: -moz-box; 8469 display: flex; 8470 text-align: center; 8471 z-index: 9; 8472 font-size: 18px; 8473 font-weight: 500; 8474 color: #fff; 8475 } 8476 8477 .jss35 { 8478 top: 5px; 8479 right: 5px; 8480 padding: 4px; 8481 position: absolute; 8482 border-radius: 50%; 8483 } 8484 .jss67 { 8485 cursor: pointer; 8486 font-size: 15px; 8487 line-height: 1.3; 8488 padding-left: 5px; 8489 } 8490 .jss69 { 8491 color: #222222; 8492 } 8493 .jss80 { 8494 color: #fff; 8495 width: 100%; 8496 height: 52px; 8497 padding: 11px 16px; 8498 font-size: 18px; 8499 min-width: 88px; 8500 min-height: 36px; 8501 transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 8502 font-weight: 500; 8503 line-weight: 1em; 8504 border-radius: 4px; 8505 text-transform: uppercase; 8506 background-color: #E87325; 8507 } 8508 @media (min-width: 991px){ 8509 .cartButton_login_content__2j1f7 { 8510 font-weight: 500; 8511 } 8512 } 8513 8514 @media (max-width: 992px) { 8515 #location-lock-dialog { 8516 width: 100%; 8517 top: auto; 8518 bottom: 0; 8519 padding-left: 0; 8520 padding-right: 0; 8521 } 8522 .MuiFormGroup-row { 8523 display: block 8524 } 8525 .MuiIconButton-label input { 8526 margin: 0; 8527 } 8528 } 8529 </style> 8530 <div role="presentation" class="MuiDialog-root jss34" style="display: none;position: fixed; z-index: 9999; inset: 0px;"> 8531 <div class="MuiBackdrop-root" aria-hidden="true" style="opacity: 1; transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"></div> 8532 <div tabindex="0" data-test="sentinelStart"></div> 8533 <div class="MuiDialog-container MuiDialog-scrollPaper" role="none presentation" tabindex="-1" style="opacity: 1; transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"> 8534 <div class="MuiPaper-root MuiDialog-paper MuiDialog-paperScrollPaper MuiDialog-paperWidthSm MuiPaper-elevation24 MuiPaper-rounded" role="dialog"> 8535 <div class="jss31 undefined" id="location-lock-dialog"> 8536 <button id="close-popup-delivery" class="MuiButtonBase-root MuiIconButton-root jss35" tabindex="0" type="button" aria-label="close"> 8537 <span class="MuiIconButton-label"> 8538 <svg class="MuiSvgIcon-root" focusable="false" viewBox="0 0 24 24" aria-hidden="true"> 8539 <path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path> 8540 </svg> 8541 </span>
8542 <span class="MuiTouchRipple-root"></span> 8543 </button> 8544 <div> 8545 <div class="jss36">Select Delivery Location</div> 8546 <div class="jss37">Select a delivery location to see product availability</div> 8547 </div> 8548 <div class="MuiFormGroup-root jss63 MuiFormGroup-row" role="radiogroup"> 8549 <label for="jabodetabek" class="MuiFormControlLabel-root jss45"> 8550 <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 jss47 Mui-checked MuiIconButton-colorSecondary" aria-disabled="false"> 8551 <span class="MuiIconButton-label"> 8552 <input id="jabodetabek" class="jss49" type="radio" value="Jabodetabek" checked="" name="location"> 8553 <span class="jss41"></span> 8554 </span> 8555 <span class="MuiTouchRipple-root"></span> 8556 </span> 8557 <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1"> 8558 <span class="jss67 jss69">Jabodetabek</span> 8559 </span> 8560 </label> 8561 <label for="non-jabodetabek" class="MuiFormControlLabel-root jss45"> 8562 <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 MuiIconButton-colorSecondary" aria-disabled="false"> 8563 <span class="MuiIconButton-label"> 8564 <input id="non-jabodetabek" class="jss49" type="radio" value="Outside Jabodetabek" name="location"> 8565 <span class="jss40"></span> 8566 </span> 8567 <span class="MuiTouchRipple-root"></span> 8568 </span> 8569 <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1"> 8570 <span class="jss67 jss68">Outside Jabodetabek</span> 8571 </span> 8572 </label> 8573 </div> 8574 <div> 8575 <div class="MuiGrid-root location-popup_area-block__sp9Ws"> 8576 <div class="MuiGrid-root location-popup_pin-search-box__3l5mJ false"> 8577 <div class="MuiGrid-root location-popup_place-icon__jSG0Q"> 8578 <svg class="MuiSvgIcon-root jss6" focusable="false" viewBox="0 0 24 24" aria-hidden="true" style="font-size:16px"><path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z"></path></svg> 8579 </div> 8580 <div class="MuiGrid-root location-popup_cancel-icon__FHujU false"> 8581 <i class="material-icons location-popup_clear-pin__s1dRc">close</i> 8582 </div> 8583 <div style="width: 100%;"> 8584 <select id="choose-location" class="form-control"> 8585 <option value="">Choose Location</option> 8586 <option value="jakarta">Jakarta</option> 8587 <option value="bogor">Bogor</option> 8588 <option value="depok">Depok</option> 8589 <option value="tangerang">Tangerang</option> 8590 <option value="bekasi">Bekasi</option> 8591 </select> 8592 </div> 8593 </div> 8594 </div> 8595 </div> 8596 <button class="MuiButtonBase-root MuiButton-root MuiButton-contained jss55" tabindex="-1" type="button" title="" id="location-lock-submit" data-idforcdp="actionBtn-cdp" data-testid="location-lock-submit" style="background-color: #ffffff; width: 80%; padding: 14px 0px 12px; margin: 20px 0px; font-size: 18px; font-weight: 500; box-shadow: rgba(0, 0, 0, 0.1) 0px 2px 4px 0px; border-radius: 4px; color: rgb(0, 0, 0); height: 44px;" data-content=""> 8597 <span class="MuiButton-label"> 8598 <span class=""></span> 8599 <span id="location-lock-continue-btn" class="cartButton_login_content__2j1f7" style="font-weight: 500;" data-content="">Continue Shopping</span> 8600 </span> 8601 </button> 8602 </div> 8603 </div> 8604 </div> 8605 <div tabindex="0" data-test="sentinelEnd"></div> 8606 </div> 8607 8608
8608<script> 8609 const jabodetabek = [ 8610 { 8611 "code": "jakarta", 8612 "city": "jakarta", 8613 "zip": [] 8614 }, 8615 { 8616 "code": "bogor", 8617 "city": "bogor", 8618 "zip": [] 8619 }, 8620 { 8621 "code": "depok", 8622 "city": "depok", 8623 "zip": [] 8624 }, 8625 { 8626 "code": "tangerang", 8627 "city": "tangerang", 8628 "zip": [] 8629 }, 8630 { 8631 "code": "bekasi", 8632 "city": "bekasi", 8633 "zip": [] 8634 } 8635 ] 8636 let cityNonJabodetabek = [ 8637 8638 8639 8640 8641 8642 8643 8644 8645 8646 8647 8648 8649 8650 8651 8652 8653 8654 8655 8656 8657 8658 8659 8660 8661 8662 8663 8664 8665 8666 8667 8668 8669 8670 8671 8672 8673 8674 8675 8676 8677 8678 8679 8680 8681 8682 8683 8684 8685 8686 8687 8688 8689 8690 8691 8692 8693 8694 8695 8696 8697 8698 8699 8700 8701 8702 8703 8704 8705 8706 8707 8708 8709 8710 8711 8712 8713 8714 8715 8716 8717 8718 8719 8720 8721 8722 8723 8724 8725 8726 8727 8728 8729 8730 8731 8732 8733 8734 8735 8736 8737 8738 8739 8740 8741 8742 8743 8744 8745 8746 8747 8748 8749 8750 8751 8752 8753 8754 8755 8756 8757 8758 8759 8760 8761 8762 8763 8764 8765 8766 8767 8768 8769 8770 8771 8772 8773 8774 8775 8776 8777 8778 8779 8780 8781 8782 8783 8784 8785 8786 8787 8788 8789 8790 8791 8792 8793 8794 8795 8796 8797 8798 8799 8800 8801 8802 8803 8804 8805 8806 8807 8808 8809 8810 8811 8812 8813 8814 8815 8816 8817 8818 8819 8820 8821 8822 8823 8824 8825 8826 8827 8828 8829 8830 8831 8832 8833 8834 8835 8836 8837 8838 8839 8840 8841 8842 8843 8844 8845 8846 8847 8848 8849 8850 8851 8852 8853 8854 8855 8856 8857 8858 8859 8860 8861 8862 8863 8864 8865 8866 8867 8868 8869 8870 8871 8872 8873 8874 8875 8876 8877 8878 8879 8880 8881 8882 8883 8884 8885 8886 8887 8888 8889 8890 8891 8892 8893 8894 8895 8896 8897 8898 8899 8900 8901 8902 8903 8904 8905 8906 8907 8908 8909 8910 8911 8912 8913 8914 8915 8916 8917 8918 8919 8920 8921 8922 8923 8924 8925 8926 8927 8928 8929 8930 8931 8932 8933 8934 8935 8936 8937 8938 8939 8940 8941 8942 8943 8944 8945 8946 8947 8948 8949 8950 8951 8952 8953 8954 8955 8956 8957 8958 8959 8960 8961 8962 8963 8964 8965 8966 8967 8968 8969 8970 8971 8972 8973 8974 8975 8976 8977 8978 8979 8980 8981 8982 8983 8984 8985 8986 8987 8988 8989 8990 8991 8992 8993 8994 8995 8996 8997 8998 8999 9000 9001 9002 9003 9004 9005 9006 9007 9008 9009 9010 9011 9012 9013 9014 9015 9016 9017 9018 9019 9020 9021 9022 9023 9024 9025 9026 9027 9028 9029 9030 9031 9032 9033 9034 9035 9036 9037 9038 9039 9040 9041 9042 9043 9044 9045 9046 9047 9048 9049 9050 9051 9052 9053 9054 9055 9056 9057 9058 9059 9060 9061 9062 9063 9064 9065 9066 9067 9068 9069 9070 9071 9072 9073 9074 9075 9076 9077 9078 9079 9080 9081 9082 9083 9084 9085 9086 9087 9088 9089 9090 9091 9092 9093 9094 9095 9096 9097 9098 9099 9100 9101 9102 9103 9104 9105 9106 9107 9108 9109 9110 9111 9112 9113 9114 9115 9116 9117 9118 9119 9120 9121 9122 9123 9124 9125 9126 9127 9128 9129 9130 9131 9132 9133 9134 9135 9136 9137 9138 9139 9140 9141 9142 9143 9144 9145 9146 9147 9148 9149 9150 9151 9152 9153 9154 9155 9156 9157 9158 9159 9160 9161 9162 9163 9164 9165 9166 9167 9168 9169 9170 9171 9172 9173 9174 9175 9176 9177 9178 9179 9180 9181 9182 9183 9184 9185 9186 9187 9188 9189 9190 9191 9192 9193 9194 9195 9196 9197 9198 9199 9200 9201 9202 9203 9204 9205 9206 9207 9208 9209 9210 9211 9212 9213 9214 9215 9216 9217 9218 9219 9220 9221 9222 9223 9224 9225 9226 9227 9228 9229 9230 9231 9232 9233 9234 9235 9236 9237 9238 9239 9240 9241 9242 9243 9244 9245 9246 9247 9248 9249 9250 9251 9252 9253 9254 9255 9256 9257 9258 9259 9260 9261 9262 9263 9264 9265 9266 9267 9268 9269 9270 9271 9272 9273 9274 9275 9276 9277 9278 9279 9280 9281 9282 9283 9284 9285 9286 9287 9288 9289 9290 9291 9292 9293 9294 9295 9296 9297 9298 9299 9300 9301 9302 9303 9304 9305 9306 9307 9308 9309 9310 9311 9312 9313 9314 9315 9316 9317 9318 9319 9320 9321 9322 9323 9324 9325 9326 9327 9328 9329 9330 9331 9332 9333 9334 9335 9336 9337 9338 9339 9340 9341 9342 9343 9344 9345 9346 9347 9348 9349 9350 9351 9352 9353 9354 9355 9356 9357 9358 9359 9360 9361 9362 9363 9364 9365 9366 9367 9368 9369 9370 9371 9372 9373 9374 9375 9376 9377 9378 9379 9380 9381 9382 9383 9384 9385 9386 9387 9388 9389 9390 9391 9392 9393 9394 9395 9396 9397 9398 9399 9400 9401 9402 9403 9404 9405 9406 9407 9408 9409 9410 9411 9412 9413 9414 9415 9416 9417 9418 9419 9420 9421 9422 9423 9424 9425 9426 9427 9428 9429 9430 9431 9432 9433 9434 9435 9436 9437 9438 9439 9440 9441 9442 9443 9444 9445 9446 9447 9448 9449 9450 9451 9452 9453 9454 9455 9456 9457 9458 9459 9460 9461 9462 9463 9464 9465 9466 9467 9468 9469 9470 9471 9472 9473 9474 9475 9476 9477 9478 9479 9480 9481 9482 9483 9484 9485 9486 9487 9488 9489 9490 9491 9492 9493 9494 9495 9496 9497 9498 9499 9500 9501 9502 9503 9504 9505 9506 9507 9508 9509 9510 9511 9512 9513 9514 9515 9516 9517 9518 9519 9520 9521 9522 9523 9524 9525 9526 9527 9528 9529 9530 9531 9532 9533 9534 9535 9536 9537 9538 9539 9540 9541 9542 9543 9544 9545 9546 9547 9548 9549 9550 9551 9552 9553 9554 9555 9556 9557 9558 9559 9560 9561 9562 9563 9564 9565 9566 9567 9568 9569 9570 9571 9572 9573 9574 9575 9576 9577 9578 9579 9580 9581 9582 9583 9584 9585 9586 9587 9588 9589 9590 9591 9592 9593 9594 9595 9596 9597 9598 9599 9600 9601 9602 9603 9604 9605 9606 9607 9608 9609 9610 9611 9612 9613 9614 9615 9616 9617 9618 9619 9620 9621 9622 9623 9624 9625 9626 9627 9628 9629 9630 9631 9632 9633 9634 9635 9636 9637 9638 9639 9640 9641 9642 9643 9644 9645 9646 9647 9648 9649 9650 9651 9652 9653 9654 9655 9656 9657 9658 9659 9660 9661 9662 9663 9664 9665 9666 9667 9668 9669 9670 9671 9672 9673 9674 9675 9676 9677 9678 9679 9680 9681 9682 9683 9684 9685 9686 9687 9688 9689 9690 9691 9692 9693 9694 9695 9696 9697 9698 9699 9700 9701 9702 9703 9704 9705 9706 9707 9708 9709 9710 9711 9712 9713 9714 9715 9716 9717 9718 9719 9720 9721 9722 9723 9724 9725 9726 9727 9728 9729 9730 9731 9732 9733 9734 9735 9736 9737 9738 9739 9740 9741 9742 9743 9744 9745 9746 9747 9748 9749 9750 9751 9752 9753 9754 9755 9756 9757 9758 9759 9760 9761 9762 9763 9764 9765 9766 9767 9768 9769 9770 9771 9772 9773 9774 9775 9776 9777 9778 9779 9780 9781 9782 9783 9784 9785 9786 9787 9788 9789 9790 9791 9792 9793 9794 9795 9796 9797 9798 9799 9800 9801 9802 9803 9804 9805 9806 9807 9808 9809 9810 "pengiriman_aceh", 9811 9812 9813 9814 9815 9816 "pengiriman_ambon", 9817 9818 9819 9820 9821 9822 "pengiriman_atambua", 9823 9824 9825 9826 9827 9828 "pengiriman_badung", 9829 9830 9831 9832 9833 9834 "pengiriman_bali", 9835 9836 9837 9838 9839 9840 "pengiriman_balikpapan", 9841 9842 9843 9844 9845 9846 "pengiriman_bandar lampung", 9847 9848 9849 9850 9851 9852 "pengiriman_bandung", 9853 9854 9855 9856 9857 9858 "pengiriman_bandung barat", 9859 9860 9861 9862 9863 9864 "pengiriman_banjarmasin", 9865 9866 9867 9868 9869 9870 "pengiriman_banyumas", 9871 9872 9873 9874 9875 9876 "pengiriman_banyuwangi", 9877 9878 9879 9880 9881 9882 "pengiriman_batam", 9883 9884 9885 9886 9887 9888 9889 9890 9891 9892 "pengiriman_biak", 9893 9894 9895 9896 9897 9898 "pengiriman_binjai", 9899 9900 9901 9902 9903 9904 "pengiriman_blitar", 9905 9906 9907 9908 9909 9910 "pengiriman_blora", 9911 9912 9913 9914 9915 9916 9917 9918 9919 9920 "pengiriman_bojonegoro", 9921 9922 9923 9924 9925 9926 "pengiriman_boyolali", 9927 9928 9929 9930 9931 9932 "pengiriman_bukittinggi", 9933 9934 9935 9936 9937 9938 "pengiriman_buleleng", 9939 9940 9941 9942 9943 9944 "pengiriman_ciamis", 9945 9946 9947 9948 9949 9950 "pengiriman_cianjur", 9951 9952 9953 9954 9955 9956 "pengiriman_cibinong", 9957 9958 9959 9960 9961 9962 "pengiriman_cikarang", 9963 9964 9965 9966 9967 9968 "pengiriman_cikupa", 9969 9970 9971 9972 9973 9974 "pengiriman_cilacap", 9975 9976 9977 9978 9979 9980 "pengiriman_cileunyi", 9981 9982 9983 9984 9985 9986 "pengiriman_cimahi", 9987 9988 9989 9990 9991 9992 "pengiriman_cirebon", 9993 9994 9995 9996 9997 9998 "pengiriman_ciwidey", 9999 10000 10001 10002 10003 10004 "pengiriman_deli serdang", 10005 10006 10007 10008 10009 10010 "pengiriman_demak", 10011 10012 10013 10014 10015 10016 "pengiriman_denpasar", 10017 10018 10019 10020 10021 10022 10023 10024 10025 10026 "pengiriman_garut", 10027 10028 10029 10030 10031 10032 "pengiriman_gianyar", 10033 10034 10035 10036 10037 10038 "pengiriman_gresik", 10039 10040 10041 10042 10043 10044 "pengiriman_gunung kidul", 10045 10046 10047 10048 10049 10050 10051 10052 10053 10054 "pengiriman_jambi", 10055 10056 10057 10058 10059 10060 "pengiriman_jayapura", 10061 10062 10063 10064 10065 10066 "pengiriman_jember", 10067 10068 10069 10070 10071 10072 "pengiriman_jepara", 10073 10074 10075 10076 10077 10078 "pengiriman_jombang", 10079 10080 10081 10082 10083 10084 "pengiriman_karanganyar", 10085 10086 10087 10088 10089 10090 "pengiriman_karawang", 10091 10092 10093 10094 10095 10096 "pengiriman_karo", 10097 10098 10099 10100 10101 10102 "pengiriman_kebumen", 10103 10104 10105 10106 10107 10108 "pengiriman_kediri", 10109 10110 10111 10112 10113 10114 "pengiriman_keerom", 10115 10116 10117 10118 10119 10120 "pengiriman_kendal", 10121 10122 10123 10124 10125 10126 "pengiriman_klaten", 10127 10128 10129 10130 10131 10132 10133 10134 10135 10136 "pengiriman_kudus", 10137 10138 10139 10140 10141 10142 "pengiriman_kupang", 10143 10144 10145 10146 10147 10148 "pengiriman_lainnya", 10149 10150 10151 10152 10153 10154 "pengiriman_lamongan", 10155 10156 10157 10158 10159 10160 "pengiriman_lampung", 10161 10162 10163 10164 10165 10166 "pengiriman_lampung barat", 10167 10168 10169 10170 10171 10172 "pengiriman_lembang", 10173 10174 10175 10176 10177 10178 "pengiriman_lombok", 10179 10180 10181 10182 10183 10184 "pengiriman_lumajang", 10185 10186 10187 10188 10189 10190 "pengiriman_madiun", 10191 10192 10193 10194 10195 10196 "pengiriman_magelang", 10197 10198 10199 10200 10201 10202 "pengiriman_majalengka", 10203 10204 10205 10206 10207 10208 "pengiriman_makassar", 10209 10210 10211 10212 10213 10214 "pengiriman_malang", 10215 10216 10217 10218 10219 10220 "pengiriman_manado", 10221 10222 10223 10224 10225 10226 "pengiriman_medan", 10227 10228 10229 10230 10231 10232 "pengiriman_mengwi", 10233 10234 10235 10236 10237 10238 "pengiriman_mojokerto", 10239 10240 10241 10242 10243 10244 "pengiriman_nganjuk", 10245 10246 10247 10248 10249 10250 "pengiriman_ngawi", 10251 10252 10253 10254 10255 10256 "pengiriman_padang", 10257 10258 10259 10260 10261 10262 "pengiriman_palembang", 10263 10264 10265 10266 10267 10268 "pengiriman_pasuruan", 10269 10270 10271 10272 10273 10274 "pengiriman_pati", 10275 10276 10277 10278 10279 10280 "pengiriman_pekalongan", 10281 10282 10283 10284 10285 10286 "pengiriman_pekanbaru", 10287 10288 10289 10290 10291 10292 "pengiriman_pemalang", 10293 10294 10295 10296 10297 10298 "pengiriman_ponorogo", 10299 10300 10301 10302 10303 10304 "pengiriman_pontianak", 10305 10306 10307 10308 10309 10310 "pengiriman_probolinggo", 10311 10312 10313 10314 10315 10316 "pengiriman_purbalingga", 10317 10318 10319 10320 10321 10322 "pengiriman_purwakarta", 10323 10324 10325 10326 10327 10328 "pengiriman_purwokerto", 10329 10330 10331 10332 10333 10334 "pengiriman_rembang", 10335 10336 10337 10338 10339 10340 "pengiriman_riau", 10341 10342 10343 10344 10345 10346 "pengiriman_salatiga", 10347 10348 10349 10350 10351 10352 "pengiriman_samarinda", 10353 10354 10355 10356 10357 10358 "pengiriman_semarang", 10359 10360 10361 10362 10363 10364 "pengiriman_sentani", 10365 10366 10367 10368 10369 10370 "pengiriman_serang", 10371 10372 10373 10374 10375 10376 "pengiriman_sidoarjo", 10377 10378 10379 10380 10381 10382 "pengiriman_singkawang", 10383 10384 10385 10386 10387 10388 "pengiriman_sragen", 10389 10390 10391 10392 10393 10394 "pengiriman_subang", 10395 10396 10397 10398 10399 10400 "pengiriman_sukabumi", 10401 10402 10403 10404 10405 10406 "pengiriman_sumbawa", 10407 10408 10409 10410 10411 10412 "pengiriman_surabaya", 10413 10414 10415 10416 10417 10418 "pengiriman_surakarta solo", 10419 10420 10421 10422 10423 10424 10425 10426 10427 10428 "pengiriman_tasikmalaya", 10429 10430 10431 10432 10433 10434 "pengiriman_tegal", 10435 10436 10437 10438 10439 10440 "pengiriman_timika", 10441 10442 10443 10444 10445 10446 "pengiriman_wamena", 10447 10448 10449 10450 10451 10452 "pengiriman_wiyung", 10453 10454 10455 10456 10457 10458 "pengiriman_wonokromo", 10459 10460 10461 10462 10463 10464 "pengiriman_yogyakarta", 10465 10466 10467 10468 10469 10470 10471 10472 10473 10474 10475 10476 10477 10478 10479 10480 10481 10482 10483 10484 10485 10486 10487 10488 10489 10490 10491 10492 10493 10494 10495 10496 10497 10498 10499 10500 10501 10502 10503 10504 10505 10506 10507 10508 10509 10510 10511 10512 10513 10514 10515 10516 10517 10518 10519 10520 10521 10522 10523 10524 10525 10526 10527 10528 10529 10530 10531 10532 10533 10534 10535 10536 10537 10538 10539 10540 10541 10542 10543 10544 10545 10546 10547 10548 10549 10550 10551 10552 10553 10554 10555 10556 10557 10558 10559 10560 10561 10562 10563 10564 10565 10566 10567 10568 10569 10570 10571 10572 10573 10574 10575 10576 10577 10578 10579 10580 10581 10582 10583 10584 10585 10586 10587 10588 10589 10590 10591 10592 10593 10594 10595 10596 10597 10598 10599 10600 10601 10602 10603 10604 10605 10606 10607 10608 10609 10610 10611 10612 10613 10614 10615 10616 10617 10618 10619 10620 10621 10622 10623 10624 10625 10626 10627 10628 10629 10630 10631 10632 10633 10634 10635 10636 10637 10638 10639 10640 10641 10642 10643 10644 10645 10646 10647 10648 10649 10650 10651 10652 10653 10654 10655 10656 10657 10658 10659 10660 10661 10662 10663 10664 10665 10666 10667 10668 10669 10670 10671 10672 10673 10674 10675 10676 10677 10678 10679 10680 10681 10682 10683 10684 10685 10686 10687 10688 10689 10690 10691 10692 10693 10694 10695 10696 10697 10698 10699 10700 10701 10702 10703 10704 10705 10706 10707 10708 10709 10710 10711 10712 10713 10714 10715 10716 10717 10718 10719 10720 10721 10722 10723 10724 10725 10726 10727 10728 10729 10730 10731 10732 10733 10734 10735 10736 10737 10738 10739 10740 10741 10742 10743 10744 10745 10746 10747 10748 10749 10750 10751 10752 10753 10754 10755 10756 10757 10758 10759 10760 10761 10762 10763 10764 10765 10766 10767 10768 10769 10770 10771 10772 10773 10774 10775 10776 10777 10778 10779 10780 10781 10782 10783 10784 10785 10786 10787 10788 10789 10790 10791 10792 10793 10794 10795 10796 10797 10798 10799 10800 10801 10802 10803 10804 10805 10806 10807 10808 10809 10810 10811 10812 10813 10814 10815 10816 10817 10818 10819 10820 10821 10822 10823 10824 10825 10826 10827 10828 10829 10830 10831 10832 10833 10834 10835 10836 10837 10838 10839 10840 10841 10842 10843 10844 10845 10846 10847 10848 10849 10850 10851 10852 10853 10854 10855 10856 10857 10858 10859 10860 10861 10862 10863 10864 10865 10866 10867 10868 10869 10870 10871 10872 10873 10874 10875 10876 10877 10878 10879 10880 10881 10882 10883 10884 10885 10886 10887 10888 10889 10890 10891 10892 10893 10894 10895 10896 10897 10898 10899 10900 10901 10902 10903 10904 10905 10906
10907 10908 10909 10910 10911 10912 10913 10914 10915 10916 10917 10918 10919 10920 10921 10922 10923 10924 10925 10926 10927 10928 10929 10930 10931 10932 10933 10934 10935 10936 10937 10938 10939 10940 10941 10942 10943 10944 10945 10946 10947 10948 10949 10950 10951 10952 10953 10954 10955 10956 10957 10958 10959 10960 10961 10962 10963 10964 10965 10966 10967 10968 10969 10970 10971 10972 10973 10974 10975 10976 10977 10978 10979 10980 10981 10982 10983 10984 10985 10986 10987 10988 10989 10990 10991 10992 10993 10994 10995 10996 10997 10998 10999 11000 11001 11002 11003 11004 11005 11006 11007 11008 11009 11010 11011 11012 11013 11014 11015 11016 11017 11018 11019 11020 11021 11022 11023 11024 11025 11026 11027 11028 11029 11030 11031 11032 11033 11034 11035 11036 11037 11038 11039 11040 11041 11042 11043 11044 11045 11046 11047 11048 11049 11050 11051 11052 11053 11054 11055 11056 11057 11058 11059 11060 11061 11062 11063 11064 11065 11066 11067 11068 11069 11070 11071 11072 11073 11074 ] 11075 console.log(cityNonJabodetabek) 11076 let non_jabodetabek = [] 11077 for(var i=0;i<cityNonJabodetabek.length;i++) { 11078 const obj = { 11079 "code": cityNonJabodetabek[i].toLowerCase().replace('pengiriman_', '').replace(' ','-'), 11080 "city": cityNonJabodetabek[i].replace('pengiriman_', '').replace(' ','-'), 11081 "zip": [] 11082 } 11083 non_jabodetabek.push(obj) 11084 } 11085 let current_location = getCookie("location_delivery") 11086 $("[name=location]").change(function(){ 11087 let v = $(this).val() 11088 let option = [] 11089 if(v == 'Jabodetabek') { 11090 for(var i=0;i<jabodetabek.length;i++) { 11091 const jabodetabekHtml = `<option value=${jabodetabek[i].city}>${jabodetabek[i].city}</option>` 11092 option.push(jabodetabekHtml) 11093 } 11094 $("#choose-location").html(`<option value="">Choose Location</option>${option}`) 11095 } else { 11096 for(var i=0;i<non_jabodetabek.length;i++) { 11097 const nonjabodetabekHtml = `<option value=${non_jabodetabek[i].city}>${non_jabodetabek[i].city}</option>` 11098 option.push(nonjabodetabekHtml) 11099 } 11100 $("#choose-location").html(`<option value="">Choose Location</option>${option}`) 11101 } 11102 }) 11103 11104 $("#location-lock-submit").click(function(e){ 11105 let select = $("#choose-location") 11106 let value = select.val().toLowerCase() 11107 console.log(value) 11108 if(select.val() == "") { 11109 return alert("Choose Your Location") 11110 e.preventDefault() 11111 } 11112 setCookie("location_delivery",value,1000000); 11113 11114 location.reload(); 11115 11116 }) 11117 11118 $("#close-popup-delivery").click(function(){ 11119 $(".MuiDialog-root").hide() 11120 if(!current_location){ 11121 setCookie("location_delivery","jakarta",1000000); 11122 $("#loc_delivery_city, #loc_delivery_city_mobile").text("Jakarta") 11123 } 11124 }) 11125 $("#loc_delivery, #loc_delivery_mobile").click(function(){ 11126 $(".MuiDialog-root").show() 11127 }) 11128 11129 11130 if(!current_location){ 11131 11132 } else { 11133 $("#loc_delivery_city, #loc_delivery_city_mobile").text(current_location) 11134 console.log(current_location) 11135 $("#choose-location").each(function(){ 11136 if(current_location == 'jakarta' || current_location == 'depok' || current_location == 'bogor' || current_location == 'tangerang' || current_location == 'bekasi'){ 11137 $("#jabodetabek").trigger("click") 11138 } else { 11139 $("#non-jabodetabek").trigger("click") 11140 } 11141 $("#choose-location").find("option[value="+current_location+"]").attr("selected", "selected") 11142 }) 11143 } 11144 11145 // if(current_location == 'jakarta' || current_location == 'depok' || current_location == 'bogor' || current_location == 'tangerang' || current_location == 'bekasi' || current_location == 'bandung' || current_location == 'semarang' || current_location == 'yogyakarta' || current_location == 'surabaya'){ 11146 // $("#timeMalam").attr("disabled", false) 11147 // } else { 11148 // $("#timeMalam").attr("disabled", true) 11149 // } 11150 11151 if(current_location && current_location != 'jakarta') { 11152 $("#self-pickup").attr("disabled", true) 11153 } 11154 11155 function setCookie(name,value,days) { 11156 var expires = ""; 11157 if (days) { 11158 var date = new Date(); 11159 date.setTime(date.getTime() + (days*24*60*60*1000)); 11160 expires = "; expires=" + date.toUTCString(); 11161 } 11162 document.cookie = name + "=" + (value || "") + expires + "; path=/"; 11163 } 11164 function getCookie(name) { 11165 var nameEQ = name + "="; 11166 var ca = document.cookie.split(';');
11167 for(var i=0;i < ca.length;i++) { 11168 var c = ca[i]; 11169 while (c.charAt(0)==' ') c = c.substring(1,c.length); 11170 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 11171 } 11172 return null; 11173 } 11174 </script>
11174 11175 <!-- One Tap --> 11176
11176<script> 11177 console.log("Outerbloom..."); 11178 </script>
11178 11179 <div id="shopify-block-ANVEzSUcxTUxZOGpwZ__9703700522657871012" class="shopify-block shopify-app-block"> 11180 11181 11182 11183 11184 11185 11186 11187 11188 11189 11190 11191 11192 11193 11194 11195 11196 11197 11198 11199 11200 11201 11202 11203 11204 11205 11206 11207 11208 11209 11210 11211 11212 11213 11214 11215 11216 11217 11218 11219 11220 11221 11222 11223 11224 11225 11226 <link rel="stylesheet" href="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.css" /> 11227
11227<script src="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.js" defer></script>
11227 11228
11228<script> 11229 const widgetConfig = { 11230 id: "clz7897za002cz7otleaz0d3d", 11231 showQuickResponse: false, 11232 quickResponsesData: [], 11233 themeColor: "#ffffff", 11234 widgetText: "", 11235 radiusType: "circle", 11236 widgetIconType: "whatsapp", 11237 position: "right", 11238 storeLogo: "", 11239 storeName: "Outerbloom", 11240 storeDescription: "", 11241 size: "small", 11242 showCard: false, 11243 widgetColorType: "solid", 11244 widgetColor1: "#008069", 11245 widgetColor2: "#008069", 11246 social: { 11247 socialOrders: ["instagram","tiktok","facebook","x","youtube","linkedin","email"], 11248 values: { 11249 instagram: { 11250 enabled: false, 11251 value: "", 11252 }, 11253 facebook: { 11254 enabled: false, 11255 value: "", 11256 }, 11257 email: { 11258 enabled: false, 11259 value: "", 11260 }, 11261 x: { 11262 enabled: false, 11263 value: "", 11264 }, 11265 tiktok: { 11266 enabled: false, 11267 value: "", 11268 }, 11269 linkedin: { 11270 enabled: false, 11271 value: "", 11272 }, 11273 youtube: { 11274 enabled: false, 11275 value: "", 11276 }, 11277 }, 11278 }, 11279 }; 11280 11281 function initializeWidget() { 11282 if (typeof BBBWidget !== 'undefined') { 11283 BBBWidget.init(widgetConfig); 11284 } else { 11285 setTimeout(initializeWidget, 100); 11286 } 11287 } 11288 11289 initializeWidget();</script>
11289 11290 11291 11292 </div><div id="shopify-block-ATzRpVTBPU3k1R2pnW__286197278318599166" class="shopify-block shopify-app-block"> 11293 11294 11295 <div style="position: fixed; bottom: 0; right: 0"></div> 11296 11297
11297<script> 11298 console.info("bitlogin extension version: v2.5.7"); 11299 11300 const googleScript = document.createElement("script"); 11301 googleScript.setAttribute("src", "https://accounts.google.com/gsi/client"); 11302 document.head.append(googleScript); 11303 11304 const bitLoginBaseUrl = "https://api.bitbybit.studio"; 11305 const apiUrl = `${bitLoginBaseUrl}/bitlogin/api`; 11306 11307 const appearance = {"style":"square","hasShadow":true,"domain":"outerbloom1.myshopify.com","colorScheme":"match","backgroundColor":"#ffffff","outlineColor":"#ffe100","textColor":"#700000","position":"top","hideDivider":false,"dividerText":"","size":"small","format":"contentFlex","language":"en","buttonText":"Continue With","redirectLink":"\/account","googleOneTap":true,"googleOneTapBanner":true,"captureAdditionalData":true,"customerTag":"bitLogin","redirectOneTapDesktop":"[{\"label\":\"Account\",\"label2\":\"Desktop: Account\",\"value\":\"account\",\"parentValue\":\"Desktop\"}]","redirectOneTapMobile":"[{\"label\":\"Thank you page\",\"label2\":\"Mobile: Thank you page\",\"value\":\"thank_you\",\"parentValue\":\"Mobile\"}]","watermark":true,"buttonList":{"google":"Continue with Google","facebook":"Continue with Facebook","apple":"Continue with Apple","whatsapp":"Continue with WhatsApp","microsoft":"Continue with Microsoft","twitter":"Continue with X","amazon":"Continue with Amazon","instagram":"Continue with Instagram","magic_link":"Continue with Magic Link","mobile_app":"Continue with Mobile App","linkedin":"Continue with LinkedIn"}}; 11308 const config = [{"domain":"outerbloom1.myshopify.com","provider":"FACEBOOK","enabledMobile":false,"enabledWeb":true,"clientId":"922184709213757","clientSecret":"e3c874c8bce6da4211538ebda706d1cb","appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null},{"domain":"outerbloom1.myshopify.com","provider":"GOOGLE","enabledMobile":true,"enabledWeb":true,"clientId":"933600373534-vk6hiu9lqrtbblj0357q0gsoo7mqvsd0.apps.googleusercontent.com","clientSecret":"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","appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":true,"position":null},{"domain":"outerbloom1.myshopify.com","provider":"APPLE","enabledMobile":true,"enabledWeb":true,"clientId":"com.bitlogin.outerbloom","clientSecret":"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","appleTeamId":"1A","applePrivateKey":"1A","usePersonalOauth":false,"position":null},{"domain":"outerbloom1.myshopify.com","provider":"WHATSAPP","enabledMobile":false,"enabledWeb":true,"clientId":null,"clientSecret":null,"appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null},{"domain":"outerbloom1.myshopify.com","provider":"MICROSOFT","enabledMobile":false,"enabledWeb":false,"clientId":null,"clientSecret":null,"appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null},{"domain":"outerbloom1.myshopify.com","provider":"TWITTER","enabledMobile":false,"enabledWeb":false,"clientId":null,"clientSecret":null,"appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null},{"domain":"outerbloom1.myshopify.com","provider":"AMAZON","enabledMobile":false,"enabledWeb":false,"clientId":"amzn1.application-oa2-client.5b560a5e3e2943d6b25c50cd6dca5532","clientSecret":"amz
11308n1.oa2-cs.v1.1cb5f9085a202341f60daf5a7be16c570ccc0b4bd5908b3afd080f34e9b8935d","appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null}]; 11309 const redirectUrl = appearance.redirectLink; 11310 11311 let locationCacheSet = false; 11312 let errorLocation = false; 11313 let oneTapSet = false; 11314 11315 let bitloginCache = { 11316 appearance: appearance, 11317 config: config 11318 }; 11319 11320 let isInitializing = false; 11321 const queue = []; 11322 11323 // Add CSS for the popup 11324 const popupStyles = document.createElement('style'); 11325 popupStyles.textContent = ` 11326 /* Styles for login popup */ 11327 .bitlogin-popup-overlay { 11328 position: fixed; 11329 top: 0; 11330 left: 0; 11331 width: 100%; 11332 height: 100%; 11333 background: rgba(0, 0, 0, 0.45); 11334 backdrop-filter: blur(4px); 11335 display: flex; 11336 align-items: center; 11337 justify-content: center; 11338 opacity: 0; 11339 transition: opacity 0.3s ease-in-out; 11340 z-index: 999999; 11341 } 11342 11343 .bitlogin-popup-overlay.visible { 11344 opacity: 1; 11345 } 11346 11347 .bitlogin-popup { 11348 background: #FFFFFF; 11349 box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); 11350 border-radius: 16px; 11351 width: 100%; 11352 max-width: 560px; 11353 display: flex; 11354 overflow: hidden; 11355 position: relative; 11356 opacity: 0; 11357 transform: translateY(20px) scale(0.98); 11358 transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1); 11359 } 11360 11361 .bitlogin-popup.visible { 11362 opacity: 1; 11363 transform: translateY(0) scale(1); 11364 } 11365 11366 .bitlogin-popup-with-image { 11367 max-width: 640px; 11368 } 11369 11370 .bitlogin-popup-right-image { 11371 flex-direction: row-reverse; 11372 } 11373 11374 .bitlogin-popup-image { 11375 object-fit: cover; 11376 width: 50%; 11377 height: auto; 11378 } 11379 11380 .bitlogin-popup-content { 11381 padding: 32px; 11382 position: relative; 11383 width: 50%; 11384 } 11385 11386 .bitlogin-popup-close { 11387 position: absolute; 11388 top: 16px; 11389 right: 16px; 11390 background: white; 11391 border: none; 11392 width: 30px; 11393 height: 30px; 11394 display: flex; 11395 align-items: center; 11396 justify-content: center; 11397 cursor: pointer; 11398 transition: background-color 0.2s; 11399 color: inherit; 11400 padding: 0; 11401 } 11402 11403 .bitlogin-popup-close:hover { 11404 background-color: #e5e5e5; 11405 } 11406 11407 .bitlogin-popup-buttons { 11408 display: flex; 11409 flex-direction: column; 11410 gap: 12px; 11411 margin-top: 24px; 11412 } 11413 11414 /* Button styles within popup - override width for popup buttons */ 11415 .bitlogin-popup-buttons #google-login, 11416 .bitlogin-popup-buttons #facebook-login, 11417 .bitlogin-popup-buttons #apple-login, 11418 .bitlogin-popup-buttons #whatsapp-login, 11419 .bitlogin-popup-buttons #microsoft-login, 11420 .bitlogin-popup-buttons #twitter-login, 11421 .bitlogin-popup-buttons #amazon-login, 11422 .bitlogin-popup-buttons #instagram-login, 11423 .bitlogin-popup-buttons #magic-link-login, 11424 .bitlogin-popup-buttons #mobile-app-login { 11425 width: 100% !important; 11426 font-family: inherit !important; 11427 } 11428 11429 .bitlogin-popup-footer { 11430 margin-top: 32px; 11431 text-align: center; 11432 font-size: 14px; 11433 opacity: 0.6; 11434 } 11435 11436 /* Modern Typography */ 11437 .bitlogin-popup h2 { 11438 margin-top: 12px; 11439 font-size: 21px !important; 11440 line-height: 1.2 !important; 11441 font-weight: 700 !important; 11442 letter-spacing: -0.02em !important; 11443 margin-bottom: 16px !important; 11444 } 11445 11446 .bitlogin-popup-header { 11447 position: relative; 11448 margin-bottom: 24px; 11449 } 11450 11451 /* Modern gradient accent */ 11452 .bitlogin-popup-content > div { 11453 font-size: 16px !important; 11454 line-height: 1.2 !important; 11455 opacity: 0.85 !important; 11456 } 11457 11458 /* Enhanced button interactions */ 11459 .bitlogin-popup-buttons button { 11460 position: relative; 11461 overflow: hidden; 11462 } 11463 11464 @keyframes ripple { 11465 0% { 11466 transform: scale(0, 0); 11467 opacity: 0.5; 11468 } 11469 100% { 11470 transform: scale(100, 100); 11471 opacity: 0; 11472 } 11473 } 11474 11475 /* Responsive adjustments */ 11476 @media (max-width: 640px) { 11477 .bitlogin-popup { 11478 max-width: 90%; 11479 width: 90%; 11480 margin: 0 16px; 11481 } 11482 11483 .bitlogin-popup-with-image { 11484 flex-direction: column !important; 11485 } 11486 11487 .bitlogin-popup-image { 11488 width: 100%; 11489 height: 180px; 11490 } 11491 11492 .bitlogin-popup-content { 11493 padding: 24px; 11494 } 11495 11496 .bitlogin-popup h2 { 11497 font-size: 24px !important; 11498 } 11499 } 11500 `; 11501
11502 document.head.appendChild(popupStyles); 11503 11504 // Add fonts link for different font options 11505 const fontsLink = document.createElement('link'); 11506 fontsLink.rel = 'stylesheet'; 11507 fontsLink.href = 'https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600&family=Roboto:wght@400;500&family=Open+Sans:wght@400;500;600&family=Noto+Sans:wght@400;500;600&family=Lato:wght@400;700&family=Poppins:wght@400;500;600&family=Quicksand:wght@400;500;600&family=Raleway:wght@400;500;600&family=PT+Sans:wght@400;700&family=Oswald:wght@400;500;600&display=swap'; 11508 document.head.appendChild(fontsLink); 11509 11510 (async () => { 11511 try { 11512 let host = window.location.host; 11513 if (host === "admin.shopify.com") { 11514 host = `${window.location.pathname.split("/")[2]}.myshopify.com`; 11515 } 11516 11517 const urlSearchParams = new URLSearchParams(window.location.search); 11518 const checkoutUrl = urlSearchParams.get("checkout_url"); 11519 11520 async function init({ inputRef, index }) { 11521 if (isInitializing) { 11522 queue.push(() => init({ inputRef, index })); 11523 return; 11524 } 11525 11526 isInitializing = true; 11527 11528 try { 11529 let bitLoginSectionRoot = document.querySelector( 11530 `.bitlogin-root[data-index="${index}"]` 11531 ); 11532 11533 const formRef = inputRef?.closest( 11534 "form:not([action='/account/recover'])" 11535 ); 11536 11537 if (formRef && !bitLoginSectionRoot) { 11538 await getLocation(); 11539 11540 bitLoginSectionRoot = document.createElement(`div`); 11541 11542 bitLoginSectionRoot.setAttribute("class", "bitlogin-root"); 11543 bitLoginSectionRoot.setAttribute("data-index", `${index}`); 11544 11545 updateAppearance({ 11546 formRef, 11547 rootRef: bitLoginSectionRoot, 11548 host, 11549 }); 11550 } 11551 } catch (err) { 11552 console.error(`error while initiating bitlogin extensions`, err); 11553 } finally { 11554 // Release the lock 11555 isInitializing = false; 11556 11557 // Check if there are pending items in the queue 11558 if (queue.length > 0) { 11559 // Process the next function in the queue 11560 const nextFunction = queue.shift(); 11561 nextFunction(); 11562 } 11563 } 11564 } 11565 11566 function initAll() { 11567 return new Promise((resolve, reject) => { 11568 setTimeout(async () => { 11569 const inputRefs = document.querySelectorAll( 11570 'input[name="customer[email]"]' 11571 ); 11572 11573 for (let i = 0; i < inputRefs.length; i++) { 11574 const currentInputRef = inputRefs[i]; 11575 const isVisible = isElementVisible(currentInputRef); 11576 11577 if (isVisible) { 11578 await init({ inputRef: currentInputRef, index: i }); 11579 } 11580 } 11581 11582 resolve("ok"); 11583 }, 100); 11584 }); 11585 } 11586 11587 const observer = new MutationObserver((mutationsList) => { 11588 for (let mutation of mutationsList) { 11589 initAll(); 11590 } 11591 }); 11592 11593 observer.observe(document.body, { 11594 childList: true, 11595 subtree: true, 11596 attributes: true, 11597 }); 11598 11599 initAll(); 11600 11601 if (appearance.googleOneTap) { 11602 setupOneTap({ host, checkoutUrl }); 11603 } 11604 11605 // Initialize popup 11606 await initPopup(host); 11607 } catch (error) { 11608 console.error("Error initializing BitLogin:", error); 11609 } 11610 })(); 11611 11612 async function initPopup(host) { 11613 // Check if user is already logged in using Liquid checks properly 11614 const isLoggedIn = false || 11615 document.querySelector('.customer-logout-link') || 11616 document.querySelector('.account-link') || 11617 window.location.pathname.includes('/account'); 11618 11619 if (isLoggedIn) { 11620 return; // User is logged in, don't show popup 11621 } 11622 11623 try { 11624 // Fetch the popup configuration 11625 const popupConfig = await fetch(`${apiUrl}/appearance/popup/domain/${host}`) 11626 .then(res => res.json()) 11627 .catch(err => { 11628 console.error('Error fetching popup configuration:', err); 11629 return null; 11630 }); 11631 11632 if (!popupConfig || !popupConfig.enabled) { 11633 return;
11633 // Don't show popup if disabled or config not found 11634 } 11635 11636 // Create popup after 10 seconds 11637 setTimeout(() => { 11638 // Check if user is still on the page and still not logged in 11639 if (document.visibilityState === 'visible') { 11640 // Additional check in case user logged in during the 10 second wait 11641 const currentlyLoggedIn = false || 11642 document.querySelector('.customer-logout-link') || 11643 document.querySelector('.account-link'); 11644 11645 if (!currentlyLoggedIn) { 11646 createLoginPopup(popupConfig, host); 11647 } 11648 } 11649 }, 10000); 11650 } catch (error) { 11651 console.error('Error initializing popup:', error); 11652 } 11653 } 11654 11655 function createLoginPopup(popupConfig, host) { 11656 // Font mapping 11657 const fontFamilyMap = { 11658 system_fonts: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif', 11659 montserrat: 'Montserrat, sans-serif', 11660 roboto: 'Roboto, sans-serif', 11661 open_sans: 'Open Sans, sans-serif', 11662 noto_sans: 'Noto Sans, sans-serif', 11663 lato: 'Lato, sans-serif', 11664 poppins: 'Poppins, sans-serif', 11665 quicksand: 'Quicksand, sans-serif', 11666 raleway: 'Raleway, sans-serif', 11667 pt_sans: 'PT Sans, sans-serif', 11668 oswald: 'Oswald, sans-serif', 11669 }; 11670 11671 // Create overlay 11672 const overlay = document.createElement('div'); 11673 overlay.className = 'bitlogin-popup-overlay'; 11674 11675 // Create popup container with appropriate styling 11676 const popup = document.createElement('div'); 11677 popup.className = 'bitlogin-popup'; 11678 11679 if (popupConfig.layout === 'default') { 11680 popup.style.maxWidth = '400px'; 11681 } 11682 11683 // Function to close the popup 11684 const closePopup = () => { 11685 overlay.classList.remove('visible'); 11686 popup.classList.remove('visible'); 11687 setTimeout(() => { 11688 if (document.body.contains(overlay)) { 11689 document.body.removeChild(overlay); 11690 } 11691 }, 300); 11692 }; 11693 11694 // Add click handler to the overlay to close when clicking outside 11695 overlay.addEventListener('click', (event) => { 11696 // Close only if clicking directly on the overlay, not its children 11697 if (event.target === overlay) { 11698 closePopup(); 11699 } 11700 }); 11701 11702 // Add escape key handler to close popup 11703 document.addEventListener('keydown', (event) => { 11704 if (event.key === 'Escape' && document.body.contains(overlay)) { 11705 closePopup(); 11706 } 11707 }); 11708 11709 // Create layout with image if specified 11710 let contentWrapper; 11711 if (popupConfig.layout !== 'default' && popupConfig.popupImage) { 11712 popup.classList.add('bitlogin-popup-with-image'); 11713 11714 if (popupConfig.layout === 'right') { 11715 popup.classList.add('bitlogin-popup-right-image'); 11716 } 11717 11718 // Add image 11719 const image = document.createElement('img'); 11720 image.className = 'bitlogin-popup-image'; 11721 image.src = popupConfig.popupImage; 11722 image.alt = 'Login'; 11723 image.loading = 'lazy'; 11724 popup.appendChild(image); 11725 11726 // Create content container 11727 contentWrapper = document.createElement('div'); 11728 contentWrapper.className = 'bitlogin-popup-content'; 11729 11730 if (popupConfig.layout === 'right') { 11731 const closeButton = document.createElement('button'); 11732 closeButton.className = 'bitlogin-popup-close'; 11733 closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif"> 11734 <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 11735 </svg>`; 11736 closeButton.setAttribute('aria-label', 'Close'); 11737 closeButton.onclick = closePopup; 11738 11739 popup.appendChild(closeButton); 11740 } 11741 } else { 11742 contentWrapper = document.createElement('div'); 11743 contentWrapper.className = 'bitlogin-popup-content'; 11744 contentWrapper.style.width = '100%'; 11745 } 11746 11747 // Set background style 11748 if (popupConfig.backgroundTheme === 'gradient') { 11749 contentWrapper.style.background = `linear-gradient(135deg, ${popupConfig.backgroundPopupColor}, ${popupConfig.gradientColor})`; 11750 } else { 11751 contentWrapper.style.backgroundColor = popupConfig.backgroundPopupColor; 11752 } 11753 11754 // Apply font family 11755 contentWrapper.style.setProperty('font-family', fontFamilyMap[popupConfig.font] || fontFamilyMap.system_fonts, 'important'); 11756 11757 if (popupConfig.layout !== 'right') { 11758 const closeButton = document.createElement('button'); 11759 closeButton.className = 'bitlogin-popup-close'; 11760 closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif"> 11761 <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 11762 </svg>`; 11763 closeButton.setAttribute('aria-label', 'Close'); 11764 closeButton.onclick = closePopup; 11765 11766 contentWrapper.appendChild(closeButton); 11767 } 11768 11769 // Add heading with subtle animation effect 11770 const header = document.createElement('div'); 11771 header.className = 'bitlogin-popup-header'; 11772 11773 const heading = document.createElement('h2'); 11774 heading.textContent = popupConfig.headingText || 'Sign in for exclusive benef
11774its'; 11775 heading.style.color = popupConfig.fontColor; 11776 header.appendChild(heading); 11777 11778 // Add body text with improved formatting 11779 const bodyText = document.createElement('div'); 11780 bodyText.innerHTML = popupConfig.bodyText || 'Join our community to access exclusive offers and a personalized shopping experience.'; 11781 bodyText.style.color = popupConfig.fontColor; 11782 header.appendChild(bodyText); 11783 11784 contentWrapper.appendChild(header); 11785 11786 // Create buttons container with modern styling 11787 const buttonsContainer = document.createElement('div'); 11788 buttonsContainer.className = 'bitlogin-popup-buttons'; 11789 11790 // Add social buttons 11791 const providerLabels = { 11792 'GOOGLE': 'Continue with Google', 11793 'FACEBOOK': 'Continue with Facebook', 11794 'APPLE': 'Continue with Apple', 11795 'WHATSAPP': 'Continue with WhatsApp', 11796 'MAGIC_LINK': 'Continue with Email', 11797 }; 11798 11799 // Add first login provider button 11800 if (popupConfig.loginProvider1 !== 'NONE') { 11801 const buttonConfig = { 11802 theme: popupConfig.colorScheme || 'match', 11803 customColor: popupConfig.textColor, 11804 format: 'contentFlex', 11805 buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider1.toLowerCase()], 11806 hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true, 11807 style: popupConfig.style || 'rounded', 11808 size: popupConfig.size || 'medium', 11809 colorScheme: popupConfig.colorScheme || 'match', 11810 backgroundColor: popupConfig.backgroundColor || '#3B82F6', 11811 textColor: popupConfig.textColor || '#FFFFFF', 11812 outlineColor: popupConfig.outlineColor || '#3B82F6', 11813 host: host 11814 }; 11815 11816 const button1 = createSocialLoginButton(popupConfig.loginProvider1, buttonConfig); 11817 11818 // Handle click event - this overrides the default click handler in createSocialLoginButton 11819 button1.onclick = () => { 11820 onClickSocialLogin({ provider: popupConfig.loginProvider1.toLowerCase(), host }); 11821 closePopup(); 11822 }; 11823 11824 buttonsContainer.appendChild(button1); 11825 } 11826 11827 // Add second login provider button if enabled 11828 if (popupConfig.loginProvider2 !== 'NONE') { 11829 const buttonConfig = { 11830 theme: popupConfig.colorScheme || 'match', 11831 customColor: popupConfig.textColor, 11832 format: 'contentFlex', 11833 buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider2.toLowerCase()], 11834 hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true, 11835 style: popupConfig.style || 'rounded', 11836 size: popupConfig.size || 'medium', 11837 colorScheme: popupConfig.colorScheme || 'match', 11838 backgroundColor: popupConfig.backgroundColor || '#3B82F6', 11839 textColor: popupConfig.textColor || '#FFFFFF', 11840 outlineColor: popupConfig.outlineColor || '#3B82F6', 11841 host: host 11842 }; 11843 11844 const button2 = createSocialLoginButton(popupConfig.loginProvider2, buttonConfig); 11845 11846 // Handle click event - this overrides the default click handler in createSocialLoginButton 11847 button2.onclick = () => { 11848 onClickSocialLogin({ provider: popupConfig.loginProvider2.toLowerCase(), host }); 11849 closePopup(); 11850 }; 11851 11852 buttonsContainer.appendChild(button2); 11853 } 11854 11855 contentWrapper.appendChild(buttonsContainer); 11856 11857 // Append content to popup 11858 popup.appendChild(contentWrapper); 11859 11860 // Append popup to overlay 11861 overlay.appendChild(popup); 11862 11863 // Append overlay to body 11864 document.body.appendChild(overlay); 11865 11866 // Trigger animation with slight delay for better perceived performance 11867 setTimeout(() => { 11868 overlay.classList.add('visible'); 11869 setTimeout(() => { 11870 popup.classList.add('visible'); 11871 }, 50); 11872 }, 10); 11873 } 11874 11875 window.addEventListener("load", () => { 11876 window.addEventListener("message", (event) => { 11877 const receivedData = event.data; 11878 11879 if (receivedData.type === "authorize") { 11880 post( 11881 JSON.parse( 11882 JSON.stringify({ 11883 "customer[email]": receivedData.email, 11884 "customer[password]": receivedData.password, 11885 form_type: "customer_login", 11886 utf8: "â", 11887 return_url: redirectUrl, 11888 }) 11889 ) 11890 ); 11891 } else if (receivedData.type === "rejected") { 11892 if (receivedData.reason === "customer_account_disabled") { 11893 showAlert( 11894 "Your account needs to be activated. We've sent you an activation link - please check your email to complete this step." 11895 ); 11896 } else if (receivedData.reason === "customer_entry_created_email_not_set") { 11897 showAlert( 11898 "A new account was created but requires an email address. Please update your account with a valid email address to continue." 11899 ); 11900 } else if (receivedData.reason === "customer_exist_email_not_set") { 11901 showAlert( 11902 "Your existing account is missing an email address. Please contact support to update your account with a valid email address." 11903 ); 11904 } 11905 } 11906 11907 if (receivedData.type === "customer_authenticated") { 11908 // Dispatch a custom event that merchants can listen for to implement their custom logic 11909 const customerAuthEvent = new CustomEvent('bitlogin:customer_authenticated', { 11910 detail: { 11911 provider: receivedData.provider, 11912 customer: receivedData.customer, 11913 shopifyCustomerCreated: receivedData.shopifyCustomerCreated 11914 } 11915 }); 11916 11917 // Dispatch the event on the window object so merchants can listen for it 11918 window.dispatchEvent(customerAuthEvent); 11919 11920 } 11921 }); 11922 }); 11923 11924 // Reusable functions for social login buttons 11925 function createSocialLoginButton(provider, config = {}) { 11926 const { 11927 theme = 'match', 11928 customColor = null, 11929 format = 'contentFlex', 11930 buttonText = null, 11931 hasShadow = true, 11932 style = 'rounded', 11933 size = 'medium', 11934 colorScheme = 'match', 11935 backgroundColor = '#3B82F6', 11936 textColor = '#FFFFFF', 11937 outlineColor = '#3B82F6', 11938 rootRef = null, 11939 host = null 11940 } = config; 11941 11942 // Create button element with appropriate ID and attributes 11943 const button = document.createElement('button'); 11944 button.id = `${provider.toLowerCase()}-login`; 11945 button.type = 'button'; 11946 11947 // Set the inner SVG based on provider 11948 switch (provider.toUpperCase()) {
11949 case 'GOOGLE': 11950 button.innerHTML = googleLoginIcon(theme, customColor); 11951 break; 11952 case 'FACEBOOK': 11953 button.innerHTML = facebookLoginIcon(theme, customColor); 11954 break; 11955 case 'APPLE': 11956 button.innerHTML = appleLoginIcon(theme, customColor); 11957 break; 11958 case 'WHATSAPP': 11959 button.innerHTML = whatsappLoginIcon(theme, customColor); 11960 break; 11961 case 'MICROSOFT': 11962 button.innerHTML = microsoftLoginIcon(theme, customColor); 11963 break; 11964 case 'TWITTER': 11965 button.innerHTML = twitterLoginIcon(theme, customColor); 11966 break; 11967 case 'AMAZON': 11968 button.innerHTML = amazonLoginIcon(theme, customColor); 11969 break; 11970 case 'INSTAGRAM': 11971 button.innerHTML = instagramLoginIcon(theme, customColor); 11972 break; 11973 case 'MAGIC_LINK': 11974 button.innerHTML = magicLinkLoginIcon(theme, customColor); 11975 break; 11976 case 'MOBILE_APP': 11977 button.innerHTML = mobileAppLoginIcon(theme, customColor); 11978 break; 11979 case 'LINKEDIN': 11980 button.innerHTML = linkedinLoginIcon(theme, customColor); 11981 break; 11982 } 11983 11984 // Add text if format isn't icon-only and buttonText is provided 11985 if (format !== "wrapperFlexContainerOnlyLogo" && buttonText) { 11986 button.innerHTML += `<p>${buttonText}</p>`; 11987 } 11988 11989 // Apply styling 11990 // Shadow 11991 if (hasShadow) { 11992 const shadowProperties = `0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)`; 11993 button.style["box-shadow"] = shadowProperties; 11994 } 11995 11996 // Border radius 11997 const radiusProperties = 11998 style === "rounded" 11999 ? "8px" 12000 : style === "square" 12001 ? "0px" 12002 : style === "fullRounded" 12003 ? format === "wrapperFlexContainerOnlyLogo" 12004 ? "50%" 12005 : "50px" 12006 : undefined; 12007 button.style["border-radius"] = radiusProperties; 12008 12009 // Size 12010 const sizeProperties = 12011 size === "medium" 12012 ? "12px" 12013 : size === "small" 12014 ? "8px" 12015 : size === "large" 12016 ? "16px" 12017 : "8px"; 12018 12019 button.style["padding-block"] = sizeProperties; 12020 12021 // Format styling 12022 if (format) { 12023 if ( 12024 format === "contentFlexReverse" || 12025 format === "contentFlexCenterReverse" 12026 ) { 12027 const flexDir = `row-reverse`; 12028 button.style["flex-direction"] = flexDir; 12029 } 12030 12031 if ( 12032 format === "contentFlexCenter" || 12033 format === "contentFlexCenterReverse" 12034 ) { 12035 const justifyContent = `center`; 12036 button.style["justify-content"] = justifyContent; 12037 } else if ( 12038 format === "contentFlex" || 12039 format === "contentFlexReverse" 12040 ) { 12041 const buttonTextElement = button.querySelector("p"); 12042 if (buttonTextElement) { 12043 buttonTextElement.style["flex-grow"] = 1; 12044 buttonTextElement.style["text-align"] = "center"; 12045 } 12046 } 12047 12048 if (format === "wrapperFlexContainerOnlyLogo" && rootRef) { 12049 rootRef.style["flex-direction"] = "row"; 12050 rootRef.style["gap"] = "8px"; 12051 rootRef.style["display"] = "flex"; 12052 rootRef.style["flex-wrap"] = "wrap"; 12053 12054 const sizeMapping = { 12055 small: "52px", 12056 medium: "62px", 12057 large: "72px", 12058 }; 12059 const buttonSize = sizeMapping[size] || "52px"; 12060 12061 button.style["margin"] = 0; 12062 button.style["width"] = buttonSize; 12063 button.style["height"] = buttonSize; 12064 button.style["display"] = "flex"; 12065 button.style["align-items"] = "center"; 12066 button.style["justify-content"] = "center"; 12067 12068 const svgElement = button.querySelector("svg"); 12069 if (svgElement) { 12070 svgElement.style["flex"] = "none"; 12071 } 12072 } 12073 } 12074 12075 // Color scheme styling 12076 if (colorScheme === "black") { 12077 button.classList.add("scheme-black"); 12078 } else if (colorScheme === "white") { 12079 button.classList.add("scheme-white"); 12080 } else if (colorScheme === "custom") { 12081 button.style["background-color"] = backgroundColor; 12082 button.style["color"] = textColor; 12083 button.style["border-color"] = outlineColor; 12084 12085 const darkenColor = (color, percentage) => { 12086 const value = parseInt(color.slice(1), 16); 12087 const r = Math.max(0, ((value >> 16) & 0xff) - (0xff * percentage)); 12088 const g = Math.max(0, ((value >> 8) & 0xff) - (0xff * percentage)); 12089 const b = Math.max(0, (value & 0xff) - (0xff * percentage)); 12090 return `rgb(${Math.round(r)}, ${Math.round(g)}, ${Math.round(b)})`; 12091 }; 12092 12093 button.addEventListener("mouseover", () => {
12094 button.style["background-color"] = darkenColor(backgroundColor, 0.2); 12095 }); 12096 button.addEventListener("mouseout", () => { 12097 button.style["background-color"] = backgroundColor; 12098 }); 12099 } else if (colorScheme === "match") { 12100 button.classList.add("scheme-match"); 12101 } else if (colorScheme === "matchOutline") { 12102 button.classList.add("scheme-match-outline"); 12103 } 12104 12105 // Add click event listener if host is provided 12106 if (host) { 12107 button.addEventListener("click", () => 12108 onClickSocialLogin({ provider: provider.toLowerCase(), host }) 12109 ); 12110 } 12111 12112 return button; 12113 } 12114 12115 function setupSocialLoginButtons(config, rootRef, data, host) { 12116 // Clear any existing content 12117 rootRef.innerHTML = ''; 12118 12119 const sortedEnabledProviders = config 12120 .filter(c => c.enabledWeb) 12121 .sort((a, b) => a.position - b.position); 12122 12123 sortedEnabledProviders.forEach(provider => { 12124 const key = provider.provider; 12125 const lowerKey = key.toLowerCase(); 12126 12127 const buttonText = data.format !== "wrapperFlexContainerOnlyLogo" 12128 ? (lowerKey === 'twitter' 12129 ? data.buttonList.twitter.replace('Twitter', 'X') 12130 : data.buttonList[lowerKey]) 12131 : null; 12132 12133 const button = createSocialLoginButton(key, { 12134 theme: data.colorScheme || 'match', 12135 customColor: data.textColor, 12136 format: data.format, 12137 buttonText: buttonText, 12138 hasShadow: data.hasShadow !== undefined ? data.hasShadow : true, 12139 style: data.style, 12140 size: data.size, 12141 colorScheme: data.colorScheme, 12142 backgroundColor: data.backgroundColor, 12143 textColor: data.textColor, 12144 outlineColor: data.outlineColor, 12145 rootRef: rootRef, 12146 host: host 12147 }); 12148 12149 rootRef.appendChild(button); 12150 }); 12151 12152 return rootRef; 12153 } 12154 12155 function updateAppearance({ formRef, rootRef, host }) { 12156 if (!formRef) return; 12157 12158 const data = bitloginCache.appearance || { 12159 style: "square", 12160 hasShadow: false, 12161 colorScheme: "match", 12162 backgroundColor: "#FFFFFF", 12163 outlineColor: "#000000", 12164 textColor: "#000000", 12165 position: "bottom", 12166 hideDivider: "false", 12167 dividerText: "OR", 12168 size: "small", 12169 format: "contentFlex", 12170 language: "en", 12171 buttonText: "Continue with", 12172 redirectLink: "/account", 12173 googleOneTap: true, 12174 googleOneTapBanner: true, 12175 customerTag: "bitLogin", 12176 redirectOneTapDesktop: null, 12177 redirectOneTapMobile: null, 12178 buttonList: { 12179 google: "Continue with Google", 12180 facebook: "Continue with Facebook", 12181 apple: "Continue with Apple", 12182 whatsapp: "Continue with WhatsApp", 12183 microsoft: "Continue with Microsoft", 12184 twitter: "Continue with X", 12185 amazon: "Continue with Amazon", 12186 instagram: "Continue with Instagram", 12187 magic_link: "Continue with Magic Link", 12188 mobile_app: "Continue with Mobile App", 12189 linkedin: "Continue with LinkedIn", 12190 }, 12191 }; 12192 12193 // Use the new setupSocialLoginButtons function to create and configure all buttons 12194 setupSocialLoginButtons(bitloginCache.config, rootRef, data, host); 12195 12196 let divider; 12197 12198 if (!data.hideDivider) { 12199 divider = document.createElement("div"); 12200 const dividerStyle = "text-align:center;margin-block:16px"; 12201 divider.setAttribute("style", dividerStyle); 12202 divider.innerHTML = data.dividerText; 12203 } 12204 12205 if (data.position === "bottom") { 12206 if (divider) { 12207 formRef.appendChild(divider); 12208 } 12209 formRef.appendChild(rootRef); 12210 } else if (data.position === "top") { 12211 if (divider) { 12212 formRef.prepend(divider); 12213 } 12214 formRef.prepend(rootRef); 12215 } 12216 } 12217 12218 12219 async function onClickSocialLogin({ provider, host }) { 12220 const rand = Math.random().toString(); 12221 12222 const locationQueryString = bitloginCache.location 12223 ? `&${objectToQueryString(bitloginCache.location)}` 12224 : ""; 12225 12226 const width = 800; 12227 const height = 600; 12228 const left = (window.screen.width / 2) - (width / 2); 12229 const top = (window.screen.height / 2) - (height / 2) - 50; 12230 12231 if(provider === 'whatsapp') { 12232 window.open( 12233 `/apps/bitlogin/whatsapp${locationQueryString ? `?${locationQueryString}` : ''}`, 12234 "mywindow", 12235 `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}` 12236 ); 12237 } else { 12238 window.open( 12239 `${apiUrl}/login/${provider}?referrerId=${rand}&shop=${host}${locationQueryString}`, 12240 "mywindow", 12241 `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}` 12242 ); 12243 } 12244 } 12245 12246 function objectToQueryString(obj) { 12247 return Object.keys(obj) 12248 .map((key) => { 12249 return encodeURIComponent(key) + "=" + encodeURIComponent(obj[key]); 12250 }) 12251 .join("&"); 12252 } 12253 12254 async function getLocation() { 12255 if (locationCacheSet) return; 12256 12257 try { 12258 const response = await fetch("https://ipapi.co/json/"); 12259 12260 if (!response.ok) { 12261 console.error(`error retrieving location...`, response.status); 12262 errorLocation = true; 12263 } else { 12264 const data = await response.json(); 12265 12266 const { city, region, country_name, country_code } = data; 12267 12268 const formattedLocationData = { 12269 city, 12270 region, 12271 country_name, 12272 country_code, 12273 }; 12274 12275 bitloginCache.location = formattedLocationData; 12276 locationCacheSet = true; 12277 errorLocation = false;
12278 } 12279 } catch (err) { 12280 console.error(`error fetching location`, err); 12281 errorLocation = true; 12282 } 12283 } 12284 12285 function post(params) { 12286 // The rest of this code assumes you are not using a library. 12287 // It can be made less verbose if you use one. 12288 const form = document.createElement("form"); 12289 form.method = "post"; 12290 form.action = `/account/login`; 12291 form.acceptCharset = "UTF-8"; 12292 form.setAttribute("data-login-with-shop-sign-in", "true"); 12293 form.setAttribute("novalidate", "novalidate"); 12294 12295 for (const key in params) { 12296 if (params.hasOwnProperty(key)) { 12297 const hiddenField = document.createElement("input"); 12298 hiddenField.type = "hidden"; 12299 hiddenField.name = key; 12300 hiddenField.value = params[key]; 12301 12302 form.appendChild(hiddenField); 12303 } 12304 } 12305 12306 document.body.appendChild(form); 12307 form.submit(); 12308 } 12309 12310 async function setupOneTap({ host, checkoutUrl }) { 12311 if (oneTapSet) return; 12312 12313 const redirectOneTapDesktop = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapDesktop || '[]')); 12314 const redirectOneTapMobile = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapMobile || '[]')); 12315 12316 const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent); 12317 const redirectList = JSON.parse(isMobile ? redirectOneTapMobile : redirectOneTapDesktop); 12318 12319 const currentPath = window.location.pathname.toLowerCase(); 12320 const currentUrl = window.location.href.toLowerCase(); 12321 12322 const shouldHideGoogleOneTap = redirectList.some(({ value }) => { 12323 switch (value) { 12324 case 'home': 12325 return currentPath === '/'; 12326 case 'product': 12327 return currentPath.startsWith('/products/'); 12328 case 'collections': 12329 return currentPath.startsWith('/collections'); 12330 case 'cart': 12331 return currentPath === '/cart'; 12332 case 'checkout': 12333 return currentPath.startsWith('/checkouts') && !currentPath.includes('thank_you'); 12334 case 'thank_you': 12335 return currentPath.includes('/thank_you'); 12336 case 'account': 12337 return currentPath.startsWith('/account'); 12338 case 'pages': 12339 return currentPath.startsWith('/pages'); 12340 case 'blogs': 12341 return currentPath === '/blogs' || currentPath === '/blogs/news'; 12342 case 'blog_post': 12343 return currentPath.startsWith('/blogs/') && currentPath.split('/').length > 3; 12344 default: 12345 return false; 12346 } 12347 }); 12348 12349 if (shouldHideGoogleOneTap) return; 12350 12351 const oneTapClientId = bitloginCache.config.find( 12352 (config) => config.provider === "GOOGLE" 12353 )?.clientId; 12354 12355 const isLoggedIn = false; 12356 12357 if (bitloginCache.appearance.googleOneTap && oneTapClientId && !isLoggedIn) { 12358 const googleOneTapButton = document.createElement("div"); 12359 googleOneTapButton.setAttribute("id", "g_id_onload"); 12360 googleOneTapButton.setAttribute("data-client_id", oneTapClientId); 12361 googleOneTapButton.setAttribute("data-context", "signin"); 12362 googleOneTapButton.setAttribute( 12363 "data-callback", 12364 "handleGoogleOneTapResponse" 12365 ); 12366 googleOneTapButton.setAttribute("data-itp_support", "true"); 12367 12368 const googleOneTapScript = document.createElement("script"); 12369 12370 googleOneTapScript.innerHTML += ` 12371 function handleGoogleOneTapResponse(response) { 12372 if (response.credential) { 12373 const idToken = response.credential; 12374 fetch('${bitLoginBaseUrl}/bitlogin/api/login/google-one-tap', { 12375 method: 'POST', 12376 headers: { 'Content-Type': 'application/json' }, 12377 body: JSON.stringify({ idToken, shop: "${host}", ...bitloginCache.location }) 12378 }).then(response => { 12379 response.json().then((data) => { 12380 post( 12381 JSON.parse( 12382 JSON.stringify({ 12383 "customer[email]": data.email, 12384 "customer[password]": data.password, 12385 form_type: "customer_login", 12386 utf8: "â", 12387 return_url: redirectUrl, 12388 }) 12389 ) 12390 ); 12391 }); 12392 }).catch(error => { 12393 console.error('Error occurred:', error); 12394 }); 12395 } else { 12396 console.error('No credential available'); 12397 } 12398 } 12399 `; 12400 12401 document.body.append(googleOneTapButton); 12402 document.body.append(googleOneTapScript); 12403 } 12404 12405 oneTapSet = true; 12406 } 12407 12408 const googleLoginIcon = ( 12409 theme, 12410 customColor 12411 ) => ` 12412 ${ 12413 theme === "match" || theme === "matchOutline" || theme === "custom" 12414 ? `<svg 12415 xmlns='https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif' 12416 xmlns:v='https://vecta.io/nano' 12417 width='24' 12418 height='24'
12419 viewBox='0 0 186.69 190.5' 12420 > 12421 <g transform="translate(1184.583 765.171)"><path clip-path="none" mask="none" d="M-1089.333-687.239v36.888h51.262c-2.251 11.863-9.006 21.908-19.137 28.662l30.913 23.986c18.011-16.625 28.402-41.044 28.402-70.052 0-6.754-.606-13.249-1.732-19.483z" fill="${ 12422 theme === "custom" ? customColor : "#4285f4" 12423 }"/><path clip-path="none" mask="none" d="M-1142.714-651.791l-6.972 5.337-24.679 19.223h0c15.673 31.086 47.796 52.561 85.03 52.561 25.717 0 47.278-8.486 63.038-23.033l-30.913-23.986c-8.486 5.715-19.31 9.179-32.125 9.179-24.765 0-45.806-16.712-53.34-39.226z" fill="${ 12424 theme === "custom" ? customColor : "#34a853" 12425 }"/><path clip-path="none" mask="none" d="M-1174.365-712.61c-6.494 12.815-10.217 27.276-10.217 42.689s3.723 29.874 10.217 42.689c0 .086 31.693-24.592 31.693-24.592-1.905-5.715-3.031-11.776-3.031-18.098s1.126-12.383 3.031-18.098z" fill="${ 12426 theme === "custom" ? customColor : "#fbbc05" 12427 }"/><path d="M-1089.333-727.244c14.028 0 26.497 4.849 36.455 14.201l27.276-27.276c-16.539-15.413-38.013-24.852-63.731-24.852-37.234 0-69.359 21.388-85.032 52.561l31.692 24.592c7.533-22.514 28.575-39.226 53.34-39.226z" fill="${ 12428 theme === "custom" ? customColor : "#ea4335" 12429 }" clip-path="none" mask="none"/></g> 12430 </svg>` 12431 : `<svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="25" height="25" viewBox="0 0 25 25" fill="none"> 12432 <path d="M24.1906 12.7758C24.1906 11.96 24.1244 11.1399 23.9833 10.3374H12.6646V14.9584H19.1463C18.8773 16.4488 18.0131 17.7672 16.7476 18.6049V21.6032H20.6146C22.8854 19.5132 24.1906 16.4267 24.1906 12.7758Z" fill="${ 12433 theme !== "black" ? "black" : "white" 12434 }"/> 12435 <path d="M12.6647 24.5001C15.9011 24.5001 18.6305 23.4374 20.619 21.6031L16.7521 18.6048C15.6762 19.3368 14.2873 19.7513 12.6691 19.7513C9.53845 19.7513 6.88403 17.6391 5.93161 14.7996H1.94116V17.8904C3.97828 21.9428 8.12746 24.5001 12.6647 24.5001Z" fill="${ 12436 theme !== "black" ? "black" : "white" 12437 }"/> 12438 <path d="M5.92709 14.7995C5.42442 13.3091 5.42442 11.6953 5.92709 10.205V7.11401H1.94105C0.23905 10.5048 0.23905 14.4996 1.94105 17.8903L5.92709 14.7995Z" fill="${ 12439 theme !== "black" ? "black" : "white" 12440 }"/> 12441 <path d="M12.6647 5.24893C14.3755 5.22248 16.029 5.86623 17.268 7.04794L20.694 3.62188C18.5247 1.58477 15.6454 0.464802 12.6647 0.500076C8.12745 0.500076 3.97828 3.05749 1.94116 7.11408L5.9272 10.205C6.8752 7.36099 9.53403 5.24893 12.6647 5.24893Z" fill="${ 12442 theme !== "black" ? "black" : "white" 12443 }"/> 12444 </svg>` 12445 }`; 12446 12447 const appleLoginIcon = ( 12448 theme, 12449 customColor 12450 ) => `<svg width="24" height="24" viewBox="0 0 19 24" fill="none" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif"> 12451 <path d="M15.4146 22.08C14.263 23.2897 12.9925 23.1013 11.7815 22.5307C10.494 21.9489 9.31698 21.9121 7.95724 22.5307C6.26395 23.322 5.36524 23.092 4.34544 22.08C-1.4122 15.663 -0.562362 5.88801 5.98138 5.52001C7.56844 5.61201 8.6796 6.46991 9.61442 6.54121C11.0039 6.23531 12.3339 5.35901 13.8211 5.47401C15.6078 5.63041 16.9443 6.39401 17.8366 7.76711C14.161 10.1591 15.0321 15.4031 18.4082 16.8751C17.7324 18.7956 16.8656 20.6931 15.4125 22.0961L15.4146 22.08ZM9.48695 5.45101C9.31486 2.59901 11.4501 0.25301 13.9061 0.0230103C14.2439 3.31201 11.1441 5.77301 9.48695 5.45101Z" fill="${ 12452 theme === "custom" 12453 ? customColor 12454 : theme === "match" || theme === "black" 12455 ? "white" 12456 : "black" 12457 }"/> 12458 </svg>`; 12459 12460 const facebookLoginIcon = ( 12461 theme, 12462 customColor 12463 ) => ` 12464 ${ 12465 theme === "match" || theme === "matchOutline" || theme === "custom" 12466 ? `<svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="24" height="25" viewBox="0 0 24 25" fill="none"> 12467 <path fill-rule="evenodd" clip-rule="evenodd" d="M24 12.5C24 5.8731 18.6268 0.5 12 0.5C5.3731 0.5 0 5.8731 0 12.5C0 18.489 4.38762 23.4537 10.1252 24.355V15.9696H7.07748V12.5H10.1252V9.85562C10.1252 6.84842 11.9173 5.18622 14.6579 5.18622C15.9707 5.18622 17.3443 5.42077 17.3443 5.42077V8.37398H15.8307C14.3406 8.37398 13.8748 9.29875 13.8748 10.2488V12.4999H17.2025L16.671 15.9695H13.8747V24.3548C19.6123 23.4553 23.9998 18.4907 23.9998 12.4999L24 12.5Z" fill="${ 12468 theme === "custom" ? customColor : theme === "match" ? "white" : "#1977F3" 12469 }"/> 12470 <path fill-rule="evenodd" clip-rule="evenodd" d="M16.5934 16.2833L17.1251 12.8137H13.7973V10.5626C13.7973 9.61422 14.2614 8.68778 15.7532 8.68778H17.2669V5.73457C17.2669 5.73457 15.8933 5.5 14.5804 5.5C11.8399 5.5 10.0477 7.16057 10.0477 10.1694V12.8138H7V16.2834H10.0477V24.6688C10.6586 24.7648 11.2846 24.8138 11.9225 24.8138C12.5604 24.8138 13.1865 24.7631 13.7973 24.6688V16.2834H16.5936L16.5934 16.2833Z" fill="${ 12471 theme === "match" ? "#1778f2" : "transparent" 12472 }"/> 12473 </svg>` 12474 : `<svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="24" height="25" viewB
12474ox="0 0 24 25" fill="none"> 12475 <path fill-rule="evenodd" clip-rule="evenodd" d="M24 12.5C24 5.8731 18.6268 0.5 12 0.5C5.3731 0.5 0 5.8731 0 12.5C0 18.489 4.38762 23.4537 10.1252 24.355V15.9696H7.07748V12.5H10.1252V9.85562C10.1252 6.84842 11.9173 5.18622 14.6579 5.18622C15.9707 5.18622 17.3443 5.42077 17.3443 5.42077V8.37398H15.8307C14.3406 8.37398 13.8748 9.29875 13.8748 10.2488V12.4999H17.2025L16.671 15.9695H13.8747V24.3548C19.6123 23.4553 23.9998 18.4907 23.9998 12.4999L24 12.5Z" fill="${ 12476 theme === "black" ? "white" : "black" 12477 }"/> 12478 <path fill-rule="evenodd" clip-rule="evenodd" d="M16.5934 16.2833L17.1251 12.8137H13.7973V10.5626C13.7973 9.61422 14.2614 8.68778 15.7532 8.68778H17.2669V5.73457C17.2669 5.73457 15.8933 5.5 14.5804 5.5C11.8399 5.5 10.0477 7.16057 10.0477 10.1694V12.8138H7V16.2834H10.0477V24.6688C10.6586 24.7648 11.2846 24.8138 11.9225 24.8138C12.5604 24.8138 13.1865 24.7631 13.7973 24.6688V16.2834H16.5936L16.5934 16.2833Z" fill="${ 12479 theme === "black" ? "black" : "white" 12480 }"/> 12481 </svg>` 12482 }`; 12483 12484 const whatsappLoginIcon = ( 12485 theme, 12486 customColor 12487 ) => `<svg 12488 viewBox="0 0 24 24" 12489 fill="none" 12490 width="24" 12491 height="25" 12492 xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" 12493 > 12494 <g id="SVGRepo_bgCarrier" stroke-width="0"></g> 12495 <g 12496 id="SVGRepo_tracerCarrier" 12497 stroke-linecap="round" 12498 stroke-linejoin="round" 12499 ></g> 12500 <g id="SVGRepo_iconCarrier"> 12501 <path 12502 fill-rule="evenodd" 12503 clip-rule="evenodd" 12504 d="M3.50002 12C3.50002 7.30558 7.3056 3.5 12 3.5C16.6944 3.5 20.5 7.30558 20.5 12C20.5 16.6944 16.6944 20.5 12 20.5C10.3278 20.5 8.77127 20.0182 7.45798 19.1861C7.21357 19.0313 6.91408 18.9899 6.63684 19.0726L3.75769 19.9319L4.84173 17.3953C4.96986 17.0955 4.94379 16.7521 4.77187 16.4751C3.9657 15.176 3.50002 13.6439 3.50002 12ZM12 1.5C6.20103 1.5 1.50002 6.20101 1.50002 12C1.50002 13.8381 1.97316 15.5683 2.80465 17.0727L1.08047 21.107C0.928048 21.4637 0.99561 21.8763 1.25382 22.1657C1.51203 22.4552 1.91432 22.5692 2.28599 22.4582L6.78541 21.1155C8.32245 21.9965 10.1037 22.5 12 22.5C17.799 22.5 22.5 17.799 22.5 12C22.5 6.20101 17.799 1.5 12 1.5ZM14.2925 14.1824L12.9783 15.1081C12.3628 14.7575 11.6823 14.2681 10.9997 13.5855C10.2901 12.8759 9.76402 12.1433 9.37612 11.4713L10.2113 10.7624C10.5697 10.4582 10.6678 9.94533 10.447 9.53028L9.38284 7.53028C9.23954 7.26097 8.98116 7.0718 8.68115 7.01654C8.38113 6.96129 8.07231 7.046 7.84247 7.24659L7.52696 7.52195C6.76823 8.18414 6.3195 9.2723 6.69141 10.3741C7.07698 11.5163 7.89983 13.314 9.58552 14.9997C11.3991 16.8133 13.2413 17.5275 14.3186 17.8049C15.1866 18.0283 16.008 17.7288 16.5868 17.2572L17.1783 16.7752C17.4313 16.5691 17.5678 16.2524 17.544 15.9269C17.5201 15.6014 17.3389 15.308 17.0585 15.1409L15.3802 14.1409C15.0412 13.939 14.6152 13.9552 14.2925 14.1824Z" 12505 fill="${ 12506 theme === "match" || theme === "black" 12507 ? "#ffffff" 12508 : theme === "white" 12509 ? "#000000" 12510 : theme === "matchOutline" 12511 ? "#25d366" 12512 : customColor 12513 }" 12514 ></path> 12515 </g> 12516 </svg>`; 12517 12518 const microsoftLoginIcon = ( 12519 theme, 12520 customColor 12521 ) => `<svg 12522 xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" 12523 width="25" 12524 height="25" 12525 viewBox="0 0 48 48"> 12526 <path fill="${ 12527 theme === "match" || theme == "matchOutline" 12528 ? "#ff5722" 12529 : theme === "black" 12530 ? "#ffffff" 12531 : theme === "white" 12532 ? "#000000" 12533 : customColor 12534 }" d="M6 6H22V22H6z" transform="rotate(-180 14 14)"></path> 12535 <path 12536 fill="${ 12537 theme === "match" || theme == "matchOutline" 12538 ? "#4caf50" 12539 : theme === "black" 12540 ? "#ffffff" 12541 : theme === "white" 12542 ? "#000000" 12543 : customColor 12544 }" 12545 d="M26 6H42V22H26z" 12546 transform="rotate(-180 34 14)"></path> 12547 <path 12548 fill="${ 12549 theme === "match" || theme == "matchOutline" 12550 ? "#ffc107" 12551 : theme === "black" 12552 ? "#ffffff" 12553 : theme === "white" 12554 ? "#000000" 12555 : customColor 12556 }" 12557 d="M26 26H42V42H26z" 12558 transform="rotate(-180 34 34)"></path> 12559 <path fill="${ 12560 theme === "match" || theme == "matchOutline" 12561 ? "#03a9f4" 12562 : theme === "black" 12563 ? "#ffffff" 12564 : theme === "white" 12565 ? "#000000" 12566 : customColor 12567 }" d="M6 26H22V42H6z" transform="rotate(-180 14 34)"></path> 12568 </svg>`; 12569 12570 const twitterLoginIcon = ( 12571 theme, 12572 customColor 12573 ) => `<svg 12574 xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" 12575 width="25" 12576 height="25" 12577 viewBox="0 0 48 48"> 12578 <polygon fill="${ 12579 theme === "match" || theme === "black" 12580 ? "#ffffff" 12581 : theme === "matchOutline" || theme === "white" 12582 ? "#000000" 12583 : customColor 12584 }" points="41,6 9.929,42 6.215,42 37.287,6"></polygon> 12585 <polygon 12586 fill="${ 12587 theme === "match" || theme === "black" 12588 ? "#000000" 12589 : theme === "matchOutline" || theme === "white" 12590 ? "#ffffff" 12591 : customColor 12592 }" 12593 fill-rule="evenodd" 12594 points="31.143,41 7.82,7 16.777,7 40.1,41" 12595 clip-rule="evenodd"></polygon> 12596 <path 12597 fill="${ 12598 theme === "match" || theme === "black" 12599 ? "#ffffff" 12600 : theme === "matchOutline" || theme === "white" 12601 ? "#000000" 12602 : customColor 12603 }" 12604 d="M15.724,9l20.578,30h-4.106L11.618,9H15.724 M17.304,6H5.922l24.694,36h11.382L17.304,6L17.304,6z"></path> 12605 </svg>`; 12606 12607 const amazonLoginIcon = (theme, customColor) => ` 12608 <svg 12609 xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" 12610 x="0px" 12611 y="0px" 12612 width="25" 12613 height="25"
12614 viewBox="0 0 50 50" 12615 > 12616 <path 12617 fill="${ 12618 theme === "black" 12619 ? "#ffffff" 12620 : theme === "matchOutline" 12621 ? "#FF9900" 12622 : theme === "white" || theme === "match" 12623 ? "#000000" 12624 : customColor 12625 }" 12626 d="M 25.3125 3 C 19.210938 3 12.492188 5.3125 11.09375 12.8125 C 10.894531 13.613281 11.5 13.992188 12 14.09375 L 18.1875 14.6875 C 18.789063 14.6875 19.207031 14.101563 19.40625 13.5 C 19.90625 10.898438 22.101563 9.59375 24.5 9.59375 C 25.800781 9.59375 27.292969 10.113281 28.09375 11.3125 C 28.992188 12.613281 28.8125 14.40625 28.8125 15.90625 L 28.8125 16.8125 C 25.113281 17.210938 20.3125 17.5 16.8125 19 C 12.8125 20.699219 10 24.207031 10 29.40625 C 10 36.007813 14.199219 39.3125 19.5 39.3125 C 24 39.3125 26.5 38.195313 30 34.59375 C 31.199219 36.292969 31.585938 37.105469 33.6875 38.90625 C 34.1875 39.207031 34.789063 39.085938 35.1875 38.6875 L 35.1875 38.8125 C 36.488281 37.710938 38.792969 35.601563 40.09375 34.5 C 40.59375 34.199219 40.492188 33.5 40.09375 33 C 38.894531 31.398438 37.6875 30.09375 37.6875 27.09375 L 37.6875 17.1875 C 37.6875 12.988281 38.007813 9.085938 34.90625 6.1875 C 32.40625 3.789063 28.414063 3 25.3125 3 Z M 27 22 L 28.6875 22 L 28.6875 23.40625 C 28.6875 25.804688 28.792969 27.894531 27.59375 30.09375 C 26.59375 31.894531 24.988281 33 23.1875 33 C 20.789063 33 19.3125 31.207031 19.3125 28.40625 C 19.3125 23.707031 23 22.300781 27 22 Z M 44.59375 36.59375 C 42.992188 36.59375 41.085938 37 39.6875 38 C 39.289063 38.300781 39.3125 38.6875 39.8125 38.6875 C 41.414063 38.488281 44.988281 38.007813 45.6875 38.90625 C 46.289063 39.707031 45.007813 43.085938 44.40625 44.6875 C 44.207031 45.1875 44.601563 45.300781 45 45 C 47.699219 42.699219 48.40625 38.007813 47.90625 37.40625 C 47.605469 36.90625 46.195313 36.59375 44.59375 36.59375 Z M 2.1875 37.5 C 1.886719 37.5 1.695313 38.011719 2.09375 38.3125 C 8.09375 43.710938 16.007813 47 24.90625 47 C 31.207031 47 38.492188 45.011719 43.59375 41.3125 C 44.394531 40.710938 43.707031 39.695313 42.90625 40.09375 C 37.207031 42.492188 31.101563 43.6875 25.5 43.6875 C 17.199219 43.6875 9.1875 41.386719 2.6875 37.6875 C 2.488281 37.488281 2.289063 37.5 2.1875 37.5 Z" 12627 ></path> 12628 </svg>`; 12629 12630 const instagramLoginIcon= (theme, customColor) => ` 12631 <svg 12632 width="25" 12633 height="25" 12634 viewBox="0 0 25 24" 12635 fill="none" 12636 xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif"> 12637 <path 12638 fill-rule="evenodd" 12639 clip-rule="evenodd" 12640 d="M10.5 0C7.784 0 7.444 0.0119999 6.377 0.0599999C5.313 0.109 4.586 0.278 3.95 0.525C3.28247 0.775816 2.67773 1.16931 2.178 1.678C1.66931 2.17773 1.27582 2.78247 1.025 3.45C0.778 4.086 0.609 4.813 0.56 5.877C0.511 6.944 0.5 7.284 0.5 10C0.5 12.716 0.511 13.056 0.56 14.123C0.609 15.187 0.778 15.914 1.025 16.55C1.27582 17.2175 1.66931 17.8223 2.178 18.322C2.67773 18.8307 3.28247 19.2242 3.95 19.475C4.586 19.722 5.313 19.891 6.377 19.94C7.444 19.988 7.784 20 10.5 20C13.216 20 13.556 19.988 14.623 19.94C15.687 19.891 16.414 19.722 17.05 19.475C17.7175 19.2242 18.3223 18.8307 18.822 18.322C19.3307 17.8223 19.7242 17.2175 19.975 16.55C20.222 15.914 20.391 15.187 20.44 14.123C20.488 13.056 20.5 12.716 20.5 10C20.5 7.284 20.488 6.944 20.44 5.877C20.391 4.813 20.222 4.086 19.975 3.45C19.7242 2.78247 19.3307 2.17773 18.822 1.678C18.3223 1.16931 17.7175 0.775816 17.05 0.525C16.414 0.278 15.687 0.109 14.623 0.0599999C13.556 0.0119999 13.216 0 10.5 0ZM10.5 1.802C13.17 1.802 13.486 1.812 14.54 1.86C15.516 1.905 16.045 2.067 16.398 2.204C16.864 2.386 17.198 2.603 17.548 2.952C17.898 3.302 18.114 3.636 18.296 4.102C18.432 4.455 18.596 4.984 18.64 5.959C18.688 7.014 18.698 7.329 18.698 10C18.698 12.67 18.688 12.986 18.64 14.04C18.595 15.016 18.432 15.545 18.296 15.898C18.1357 16.3324 17.8801 16.7253 17.548 17.048C17.198 17.398 16.864 17.614 16.398 17.796C16.045 17.932 15.516 18.096 14.541 18.14C13.487 18.188 13.171 18.198 10.5 18.198C7.83 18.198 7.513 18.188 6.46 18.14C5.484 18.095 4.955 17.932 4.602 17.796C4.16762 17.6357 3.77466 17.3801 3.452 17.048C3.11991 16.7253 2.86432 16.3324 2.704 15.898C2.567 15.545 2.404 15.016 2.36 14.041C2.312 12.986 2.302 12.671 2.302 10C2.302 7.33 2.312 7.014 2.36 5.96C2.405 4.984 2.567 4.455 2.704 4.102C2.886 3.636 3.103 3.302 3.452 2.952C3.802 2.602 4.136 2.386 4.602 2.204C4.955 2.067 5.484 1.904 6.459 1.86C7.514 1.812 7.829 1.802 10.5 1.802ZM10.5 13.333C9.61603 13.333 8.76827 12.9818 8.14321 12.3568C7.51815 11.7317 7.167 10.884 7.167 10C7.167 9.11603 7.51815 8.26827 8.14321 7.
1264064321C8.76827 7.01815 9.61603 6.667 10.5 6.667C11.384 6.667 12.2317 7.01815 12.8568 7.64321C13.4818 8.26827 13.833 9.11603 13.833 10C13.833 10.884 13.4818 11.7317 12.8568 12.3568C12.2317 12.9818 11.384 13.333 10.5 13.333ZM10.5 4.865C9.82566 4.865 9.15793 4.99782 8.53492 5.25588C7.91191 5.51394 7.34584 5.89218 6.86901 6.36901C6.39218 6.84584 6.01394 7.41191 5.75588 8.03492C5.49782 8.65793 5.365 9.32566 5.365 10C5.365 10.6743 5.49782 11.3421 5.75588 11.9651C6.01394 12.5881 6.39218 13.1542 6.86901 13.631C7.34584 14.1078 7.91191 14.4861 8.53492 14.7441C9.15793 15.0022 9.82566 15.135 10.5 15.135C11.8619 15.135 13.168 14.594 14.131 13.631C15.094 12.668 15.635 11.3619 15.635 10C15.635 8.63811 15.094 7.33201 14.131 6.36901C13.168 5.40601 11.8619 4.865 10.5 4.865ZM17.038 4.662C17.038 4.81959 17.007 4.97563 16.9467 5.12122C16.8863 5.26681 16.798 5.3991 16.6865 5.51053C16.5751 5.62196 16.4428 5.71035 16.2972 5.77066C16.1516 5.83096 15.9956 5.862 15.838 5.862C15.6804 5.862 15.5244 5.83096 15.3788 5.77066C15.2332 5.71035 15.1009 5.62196 14.9895 5.51053C14.878 5.3991 14.7897 5.26681 14.7293 5.12122C14.669 4.97563 14.638 4.81959 14.638 4.662C14.638 4.34374 14.7644 4.03852 14.9895 3.81347C15.2145 3.58843 15.5197 3.462 15.838 3.462C16.1563 3.462 16.4615 3.58843 16.6865 3.81347C16.9116 4.03852 17.038 4.34374 17.038 4.662Z" 12641 fill="url(#paint0_radial_378_3535)" /> 12642 <path 12643 fill-rule="evenodd" 12644 clip-rule="evenodd" 12645 d="M10.5 0C7.784 0 7.444 0.0119999 6.377 0.0599999C5.313 0.109 4.586 0.278 3.95 0.525C3.28247 0.775816 2.67773 1.16931 2.178 1.678C1.66931 2.17773 1.27582 2.78247 1.025 3.45C0.778 4.086 0.609 4.813 0.56 5.877C0.511 6.944 0.5 7.284 0.5 10C0.5 12.716 0.511 13.056 0.56 14.123C0.609 15.187 0.778 15.914 1.025 16.55C1.27582 17.2175 1.66931 17.8223 2.178 18.322C2.67773 18.8307 3.28247 19.2242 3.95 19.475C4.586 19.722 5.313 19.891 6.377 19.94C7.444 19.988 7.784 20 10.5 20C13.216 20 13.556 19.988 14.623 19.94C15.687 19.891 16.414 19.722 17.05 19.475C17.7175 19.2242 18.3223 18.8307 18.822 18.322C19.3307 17.8223 19.7242 17.2175 19.975 16.55C20.222 15.914 20.391 15.187 20.44 14.123C20.488 13.056 20.5 12.716 20.5 10C20.5 7.284 20.488 6.944 20.44 5.877C20.391 4.813 20.222 4.086 19.975 3.45C19.7242 2.78247 19.3307 2.17773 18.822 1.678C18.3223 1.16931 17.7175 0.775816 17.05 0.525C16.414 0.278 15.687 0.109 14.623 0.0599999C13.556 0.0119999 13.216 0 10.5 0ZM10.5 1.802C13.17 1.802 13.486 1.812 14.54 1.86C15.516 1.905 16.045 2.067 16.398 2.204C16.864 2.386 17.198 2.603 17.548 2.952C17.898 3.302 18.114 3.636 18.296 4.102C18.432 4.455 18.596 4.984 18.64 5.959C18.688 7.014 18.698 7.329 18.698 10C18.698 12.67 18.688 12.986 18.64 14.04C18.595 15.016 18.432 15.545 18.296 15.898C18.1357 16.3324 17.8801 16.7253 17.548 17.048C17.198 17.398 16.864 17.614 16.398 17.796C16.045 17.932 15.516 18.096 14.541 18.14C13.487 18.188 13.171 18.198 10.5 18.198C7.83 18.198 7.513 18.188 6.46 18.14C5.484 18.095 4.955 17.932 4.602 17.796C4.16762 17.6357 3.77466 17.3801 3.452 17.048C3.11991 16.7253 2.86432 16.3324 2.704 15.898C2.567 15.545 2.404 15.016 2.36 14.041C2.312 12.986 2.302 12.671 2.302 10C2.302 7.33 2.312 7.014 2.36 5.96C2.405 4.984 2.567 4.455 2.704 4.102C2.886 3.636 3.103 3.302 3.452 2.952C3.802 2.602 4.136 2.386 4.602 2.204C4.955 2.067 5.484 1.904 6.459 1.86C7.514 1.812 7.829 1.802 10.5 1.802ZM10.5 13.333C9.61603 13.333 8.76827 12.9818 8.14321 12.3568C7.51815 11.7317 7.167 10.884 7.167 10C7.167 9.11603 7.51815 8.26827 8.14321 7.64321C8.76827 7.01815 9.61603 6.667 10.5 6.667C11.384 6.667 12.2317 7.01815 12.8568 7.64321C13.4818 8.26827 13.833 9.11603 13.833 10C13.833 10.884 13.4818 11.7317 12.8568 12.3568C12.2317 12.9818 11.384 13.333 10.5 13.333ZM10.5 4.865C9.82566 4.865 9.15793 4.99782 8.53492 5.25588C7.91191 5.51394 7.34584 5.89218 6.86901 6.36901C6.39218 6.84584 6.01394 7.41191 5.75588 8.03492C5.49782 8.65793 5.365 9.32566 5.365 10C5.365 10.6743 5.49782 11.3421 5.75588 11.9651C6.01394 12.5881 6.39218 13.1542 6.86901 13.631C7.34584 14.1078 7.91191 14.4861 8.53492 14.7441C9.15793 15.0022 9.82566 15.135 10.5 15.135C11.8619 15.135 13.168 14.594 14.131 13.631C15.094 12.668 15.635 11.3619 15.635 10C15.635 8.63811 15.094 7.33201 14.131 6.36901C13.168 5.40601 11.8619 4.865 10.5 4.865ZM17.038 4.662C17.038 4.81959 17.007 4.97563 16.9467 5.12122C16.8863 5.26681 16.798 5.3991 16.6865 5.51053C16.5751 5.62196 16.4428 5.71035 16.2972 5.77066C16.1516 5.83096 15.9956 5.862 15.838 5.862C15.6804 5.862 15.5244 5.83096 15.3788 5.77066C15.2332 5.71035 15.1009 5.62196 14.9895 5.51053C14.878 5.3991 14.7897 5.26681 14.7293 5.12122C14.669 4.97563 14.638 4.81959 14.638 4.662C14.638 4.34374 14.7644 4.03852 14.9895 3.81347C15.2145 3.58843 15.5197 3.462 15.838 3.462C16.1563 3.462 16.4615 3.58843 16.6865 3.81347C16.9116 4.03852 17.038 4.34374 17.038 4.662Z" 12646 fill="url(#paint0_radial_378_3535)" /> 12647 <path 12648 fill-rule="evenodd" 12649 clip-rule="evenodd" 12650 d="M10.5 0C7.784 0 7.444 0.0119999 6.377 0.0599999C5.313 0.109 4.586 0.278 3.95 0.525C3.28247 0.775816 2.67773 1.16931 2.178 1.678C1.66931 2.17773 1.27582 2.78247 1.025 3.45C0.778 4.086 0.609 4.813 0.56 5.877C0.511 6.944 0.5 7.284 0.5 10C0.5 12.716 0.511 13.056 0.56 14.123C0.609 15.187 0.778 15.914 1.025 16.55C1.27582 17.2175 1.66931 17.8223 2.178 18.322C2.67773 18.8307 3.28247 19.2242 3.95 19.475C4.586 19.722 5.313 19.891 6.377 19.94C7.444 19.988 7.784 20 10.5 20C13.216 20 13.556 19.988 14.623 19.94C15.687 19.891 16.414 19.722 17.05 19.475C17.7175 19.2242 18.3223 18.8307 18.822 18.322C19.3307 17.8223 19.7242 17.2175 19.975 16.55C20.222 15.914 20.391 15.187 20.44 14.123C20.488 13.056 20.5 12.716 20.5 10C20.5 7.284 20.488 6.944 20.44 5.877C20.391 4.813 20.222 4.086 19.975 3.45C19.7242 2.78247 19.3307 2.17773 18.822 1.678C18.3223 1.16931 17.7175 0.775816 17.05 0.525C16.414 0.278 15.687 0.109 14.623 0.0599999C13.556 0.0119999 13.216 0 10.5 0ZM10.5 1.802C13.17 1.802 13.486 1.812 14.54 1.86C15.516 1.905 16.045 2.067 16.398 2.204C16.864 2.386 17.198 2.603 17.548 2.952C17.898 3.302 18.114 3.636 18.296 4.102C18.432 4.455 18.596 4.984 18.64 5.959C18.688 7.014 18.698 7.329 18.698 10C18.698 12.67 18.688 12.986 18.64 14.04C18.595 15.016 18.432 15.545 18.296 15.898C18.1357 16.3324 17.8801 16.7253 17.548 17.048C17.198 17.398 16.864 17.614 16.398 17.796C16.045 17.932 15.516 18.096 14.541 18.14C13.487 18.188 13.171 18.198 10.5 18.198C7.83 18.198 7.513 18.188 6.46 18.14C5.484 18.095 4.955 17.932 4.602 17.796C4.16762 17.6357 3.77466 17.3801 3.452 17.048C3.11991 16.7253 2.86432 16.3324 2.704 15.898C2.567 15.545 2.404 15.016 2.36 14.041C2.312 12.986 2.302 12.671 2.302 10C2.302 7.33 2.312 7.014 2.36 5.96C2.405 4.984 2.567 4.455 2.704 4.102C2.886 3.636 3.103 3.302 3.452 2.952C3.802 2.602 4.136 2.386 4.602 2.204C4.955 2.067 5.484 1.904 6.459 1.86C7.514 1.812 7.829 1.802 10.5 1.802ZM10.5 13.333C9.61603 13.333 8.76827 12.9818 8.14321 12.3568C7.51815 11.7317 7.167 10.884 7.167 10C7.167 9.11603 7.51815 8.26827 8.14321 7.
1265064321C8.76827 7.01815 9.61603 6.667 10.5 6.667C11.384 6.667 12.2317 7.01815 12.8568 7.64321C13.4818 8.26827 13.833 9.11603 13.833 10C13.833 10.884 13.4818 11.7317 12.8568 12.3568C12.2317 12.9818 11.384 13.333 10.5 13.333ZM10.5 4.865C9.82566 4.865 9.15793 4.99782 8.53492 5.25588C7.91191 5.51394 7.34584 5.89218 6.86901 6.36901C6.39218 6.84584 6.01394 7.41191 5.75588 8.03492C5.49782 8.65793 5.365 9.32566 5.365 10C5.365 10.6743 5.49782 11.3421 5.75588 11.9651C6.01394 12.5881 6.39218 13.1542 6.86901 13.631C7.34584 14.1078 7.91191 14.4861 8.53492 14.7441C9.15793 15.0022 9.82566 15.135 10.5 15.135C11.8619 15.135 13.168 14.594 14.131 13.631C15.094 12.668 15.635 11.3619 15.635 10C15.635 8.63811 15.094 7.33201 14.131 6.36901C13.168 5.40601 11.8619 4.865 10.5 4.865ZM17.038 4.662C17.038 4.81959 17.007 4.97563 16.9467 5.12122C16.8863 5.26681 16.798 5.3991 16.6865 5.51053C16.5751 5.62196 16.4428 5.71035 16.2972 5.77066C16.1516 5.83096 15.9956 5.862 15.838 5.862C15.6804 5.862 15.5244 5.83096 15.3788 5.77066C15.2332 5.71035 15.1009 5.62196 14.9895 5.51053C14.878 5.3991 14.7897 5.26681 14.7293 5.12122C14.669 4.97563 14.638 4.81959 14.638 4.662C14.638 4.34374 14.7644 4.03852 14.9895 3.81347C15.2145 3.58843 15.5197 3.462 15.838 3.462C16.1563 3.462 16.4615 3.58843 16.6865 3.81347C16.9116 4.03852 17.038 4.34374 17.038 4.662Z" 12651 fill="url(#paint0_radial_378_3535)" /> 12652 <path 12653 fill-rule="evenodd" 12654 clip-rule="evenodd" 12655 d="M10.5 0C7.784 0 7.444 0.0119999 6.377 0.0599999C5.313 0.109 4.586 0.278 3.95 0.525C3.28247 0.775816 2.67773 1.16931 2.178 1.678C1.66931 2.17773 1.27582 2.78247 1.025 3.45C0.778 4.086 0.609 4.813 0.56 5.877C0.511 6.944 0.5 7.284 0.5 10C0.5 12.716 0.511 13.056 0.56 14.123C0.609 15.187 0.778 15.914 1.025 16.55C1.27582 17.2175 1.66931 17.8223 2.178 18.322C2.67773 18.8307 3.28247 19.2242 3.95 19.475C4.586 19.722 5.313 19.891 6.377 19.94C7.444 19.988 7.784 20 10.5 20C13.216 20 13.556 19.988 14.623 19.94C15.687 19.891 16.414 19.722 17.05 19.475C17.7175 19.2242 18.3223 18.8307 18.822 18.322C19.3307 17.8223 19.7242 17.2175 19.975 16.55C20.222 15.914 20.391 15.187 20.44 14.123C20.488 13.056 20.5 12.716 20.5 10C20.5 7.284 20.488 6.944 20.44 5.877C20.391 4.813 20.222 4.086 19.975 3.45C19.7242 2.78247 19.3307 2.17773 18.822 1.678C18.3223 1.16931 17.7175 0.775816 17.05 0.525C16.414 0.278 15.687 0.109 14.623 0.0599999C13.556 0.0119999 13.216 0 10.5 0ZM10.5 1.802C13.17 1.802 13.486 1.812 14.54 1.86C15.516 1.905 16.045 2.067 16.398 2.204C16.864 2.386 17.198 2.603 17.548 2.952C17.898 3.302 18.114 3.636 18.296 4.102C18.432 4.455 18.596 4.984 18.64 5.959C18.688 7.014 18.698 7.329 18.698 10C18.698 12.67 18.688 12.986 18.64 14.04C18.595 15.016 18.432 15.545 18.296 15.898C18.1357 16.3324 17.8801 16.7253 17.548 17.048C17.198 17.398 16.864 17.614 16.398 17.796C16.045 17.932 15.516 18.096 14.541 18.14C13.487 18.188 13.171 18.198 10.5 18.198C7.83 18.198 7.513 18.188 6.46 18.14C5.484 18.095 4.955 17.932 4.602 17.796C4.16762 17.6357 3.77466 17.3801 3.452 17.048C3.11991 16.7253 2.86432 16.3324 2.704 15.898C2.567 15.545 2.404 15.016 2.36 14.041C2.312 12.986 2.302 12.671 2.302 10C2.302 7.33 2.312 7.014 2.36 5.96C2.405 4.984 2.567 4.455 2.704 4.102C2.886 3.636 3.103 3.302 3.452 2.952C3.802 2.602 4.136 2.386 4.602 2.204C4.955 2.067 5.484 1.904 6.459 1.86C7.514 1.812 7.829 1.802 10.5 1.802ZM10.5 13.333C9.61603 13.333 8.76827 12.9818 8.14321 12.3568C7.51815 11.7317 7.167 10.884 7.167 10C7.167 9.11603 7.51815 8.26827 8.14321 7.64321C8.76827 7.01815 9.61603 6.667 10.5 6.667C11.384 6.667 12.2317 7.01815 12.8568 7.64321C13.4818 8.26827 13.833 9.11603 13.833 10C13.833 10.884 13.4818 11.7317 12.8568 12.3568C12.2317 12.9818 11.384 13.333 10.5 13.333ZM10.5 4.865C9.82566 4.865 9.15793 4.99782 8.53492 5.25588C7.91191 5.51394 7.34584 5.89218 6.86901 6.36901C6.39218 6.84584 6.01394 7.41191 5.75588 8.03492C5.49782 8.65793 5.365 9.32566 5.365 10C5.365 10.6743 5.49782 11.3421 5.75588 11.9651C6.01394 12.5881 6.39218 13.1542 6.86901 13.631C7.34584 14.1078 7.91191 14.4861 8.53492 14.7441C9.15793 15.0022 9.82566 15.135 10.5 15.135C11.8619 15.135 13.168 14.594 14.131 13.631C15.094 12.668 15.635 11.3619 15.635 10C15.635 8.63811 15.094 7.33201 14.131 6.36901C13.168 5.40601 11.8619 4.865 10.5 4.865ZM17.038 4.662C17.038 4.81959 17.007 4.97563 16.9467 5.12122C16.8863 5.26681 16.798 5.3991 16.6865 5.51053C16.5751 5.62196 16.4428 5.71035 16.2972 5.77066C16.1516 5.83096 15.9956 5.862 15.838 5.862C15.6804 5.862 15.5244 5.83096 15.3788 5.77066C15.2332 5.71035 15.1009 5.62196 14.9895 5.51053C14.878 5.3991 14.7897 5.26681 14.7293 5.12122C14.669 4.97563 14.638 4.81959 14.638 4.662C14.638 4.34374 14.7644 4.03852 14.9895 3.81347C15.2145 3.58843 15.5197 3.462 15.838 3.462C16.1563 3.462 16.4615 3.58843 16.6865 3.81347C16.9116 4.03852 17.038 4.34374 17.038 4.662Z" 12656 fill="url(#paint1_radial_378_3535)" /> 12657 <defs> 12658 <radialGradient 12659 id="paint0_radial_378_3535" 12660 cx="0" 12661 cy="0" 12662 r="1" 12663 gradientUnits="userSpaceOnUse" 12664 gradientTransform="translate(17.4 22.7) rotate(-115.776) scale(27.2737 40.5665)"> 12665 <stop offset="0.24392" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF1B90' : customColor}" /> 12666 <stop offset="0.436673" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#F80261' : customColor}" /> 12667 <stop offset="0.688476" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#ED00C0' : customColor}" /> 12668 <stop offset="0.776787" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#C500E9' : customColor}" /> 12669 <stop offset="0.893155" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#7017FF' : customColor}" /> 12670 </radialGradient> 12671 <radialGradient 12672 id="paint1_radial_378_3535" 12673 cx="0" 12674 cy="0" 12675 r="1" 12676 gradientUnits="userSpaceOnUse" 12677 gradientTransform="translate(7.75 19.31) rotate(-57.4396) scale(11.8174 12.2918)"> 12678 <stop stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FFD600' : customColor}" /> 12679 <stop offset="0.484375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF6930' : customColor}" /> 12680 <stop offset="0.734375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" /> 12681 <stop offset="1" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" stop-opacity="0" /> 12682 </radialGradient> 12683 </defs> 12684 </svg>`; 12685 12686 const magicLinkLoginIcon = (theme, customColor) => ` 12687 <svg 12688 xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" 12689 width="25" 12690 height="25" 12691 fill="none"
12692 viewBox="0 0 25 25" 12693 > 12694 <path 12695 fill="${ 12696 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' || theme === 'white' ? '#000000' : customColor 12697 }" 12698 fillRule="evenodd" 12699 d="M10.975 14.51a1.05 1.05 0 000-1.485 2.95 2.95 0 010-4.172l3.536-3.535a2.95 2.95 0 114.172 4.172l-1.093 1.092a1.05 1.05 0 001.485 1.485l1.093-1.092a5.05 5.05 0 00-7.142-7.142L9.49 7.368a5.05 5.05 0 000 7.142c.41.41 1.075.41 1.485 0zm2.05-5.02a1.05 1.05 0 000 1.485 2.95 2.95 0 010 4.172l-3.5 3.5a2.95 2.95 0 11-4.171-4.172l1.025-1.025a1.05 1.05 0 00-1.485-1.485L3.87 12.99a5.05 5.05 0 007.142 7.142l3.5-3.5a5.05 5.05 0 000-7.142 1.05 1.05 0 00-1.485 0z" 12700 clipRule="evenodd" 12701 ></path> 12702 </svg>`; 12703 12704 const mobileAppLoginIcon = (theme, customColor) => ` 12705 <svg 12706 width="20" 12707 height="24" 12708 viewBox="0 0 12 16" 12709 fill="none" 12710 xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" 12711 > 12712 <path 12713 d="M9.75 0.5H2.25C1.42275 0.5 0.75 1.17275 0.75 2V14C0.75 14.8273 1.42275 15.5 2.25 15.5H9.75C10.5773 15.5 11.25 14.8273 11.25 14V2C11.25 1.17275 10.5773 0.5 9.75 0.5ZM2.25 11.7493V2.75H9.75L9.7515 11.7493H2.25Z" 12714 fill=${ 12715 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#FD823E' : theme === 'white' ? '#000000' : customColor 12716 } 12717 /> 12718 </svg> 12719 `; 12720 12721 const linkedinLoginIcon = (theme, customColor) => ` 12722 <svg 12723 xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" 12724 width="25" 12725 height="24" 12726 viewBox="0 0 25 24" 12727 fill="none" 12728 > 12729 <path 12730 d="M19.0714 0C19.8304 0 20.5 0.669643 20.5 1.47321V18.5714C20.5 19.375 19.8304 20 19.0714 20H1.88393C1.125 20 0.5 19.375 0.5 18.5714V1.47321C0.5 0.669643 1.125 0 1.88393 0H19.0714ZM6.52679 17.1429V7.63393H3.58036V17.1429H6.52679ZM5.05357 6.29464C5.99107 6.29464 6.75 5.53571 6.75 4.59821C6.75 3.66071 5.99107 2.85714 5.05357 2.85714C4.07143 2.85714 3.3125 3.66071 3.3125 4.59821C3.3125 5.53571 4.07143 6.29464 5.05357 6.29464ZM17.6429 17.1429V11.9196C17.6429 9.375 17.0625 7.36607 14.0714 7.36607C12.6429 7.36607 11.6607 8.16964 11.2589 8.92857H11.2143V7.63393H8.40179V17.1429H11.3482V12.4554C11.3482 11.2054 11.5714 10 13.1339 10C14.6518 10 14.6518 11.4286 14.6518 12.5V17.1429H17.6429Z" 12731 fill=${ 12732 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#0A66C2' : theme === 'white' ? '#000000' : customColor 12733 } 12734 /> 12735 </svg> 12736 `; 12737 12738 function isElementVisible(element) { 12739 return ( 12740 document.body.contains(element) && 12741 getComputedStyle(element).display !== "none" && 12742 getComputedStyle(element).visibility !== "hidden" && 12743 getComputedStyle(element).opacity !== "0" && 12744 !element.hasAttribute("hidden") && 12745 !isAncestorHidden(element) 12746 ); 12747 } 12748 12749 function isAncestorHidden(element) { 12750 let parent = element.parentElement; 12751 while (parent) { 12752 if ( 12753 getComputedStyle(parent).display === "none" || 12754 getComputedStyle(parent).visibility === "hidden" || 12755 getComputedStyle(parent).opacity === "0" || 12756 parent.hasAttribute("hidden") 12757 ) { 12758 return true; 12759 } 12760 parent = parent.parentElement; 12761 } 12762 return false; 12763 } 12764 12765 function showAlert(message) { 12766 const alertBox = document.createElement("div"); 12767 alertBox.textContent = message; 12768 alertBox.style.position = "fixed"; 12769 alertBox.style.top = "20px"; 12770 alertBox.style.right = "-300px"; // Start off-screen 12771 alertBox.style.backgroundColor = "#000000"; // Black background 12772 alertBox.style.color = "#ffffff"; // White text 12773 alertBox.style.padding = "15px"; 12774 alertBox.style.borderRadius = "8px"; 12775 alertBox.style.zIndex = "1000"; 12776 alertBox.style.transition = 12777 "right 0.5s ease-in-out, opacity 0.5s ease-in-out"; // Transition for sliding and fading 12778 alertBox.style.boxShadow = "0 2px 5px rgba(0, 0, 0, 0.2)"; // Optional shadow for depth 12779 12780 document.body.appendChild(alertBox); 12781 12782 // Slide in 12783 requestAnimationFrame(() => { 12784 alertBox.style.right = "20px"; // Move into view 12785 alertBox.style.opacity = "1"; // Ensure opacity is set to 1 12786 }); 12787 12788 // Slide out and remove the alert after a few seconds 12789 setTimeout(() => { 12790 alertBox.style.opacity = "0"; // Fade out 12791 alertBox.style.right = "-300px"; // Move out of view 12792 12793 // Wait for the transition to finish before removing the element 12794 setTimeout(() => { 12795 document.body.removeChild(alertBox); 12796 }, 500); // Match this duration with the exit transition duration 12797 }, 3000); 12798 } 12799 </script>
12799 12800 12801 <style> 12802 .daftarku-fixed-footer { 12803 display: flex; 12804 justify-content: space-around; 12805 position: fixed; 12806 background: linear-gradient(to bottom, #000000 0%, #ff4d7a 50%, #cbba3e 100%); 12807 box-shadow: 0 0 12px rgb(255, 2000, 0); 12808 outline: none; 12809 padding: 5px 0; 12810 box-shadow: 0 0 0 0 2px 2px #198f01; 12811 left: 0; 12812 right: 0; 12813 bottom: 0; 12814 z-index: 99; 12815 border-radius: 40px 40px 0px 0px; 12816 border-style:dashed; 12817 12818 } 12819 12820 .daftarku-fixed-footer a { 12821 flex-basis: calc((100% - 15px*6)/ 5); 12822 text-decoration: none; 12823 display: flex; 12824 flex-direction: column; 12825 justify-content: center; 12826 align-items: center; 12827 color: #fff; 12828 max-width: 75px; 12829 font-size: 12px; 12830 font-family: Ubuntu, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; 12831 } 12832 12833 .daftarku-fixed-footer a:hover { 12834 font-weight: bold; 12835 } 12836 12837 .daftarku-fixed-footer .center { 12838 transform: scale(1.5) translateY(-5px); 12839 background: center no-repeat; 12840 background-size: contain; 12841 background-color: inherit; 12842 border-radius: 50%; 12843 } 12844 12845 .daftarku-fixed-footer img { 12846 max-width: 30px; 12847 margin-bottom: 0; 12848 max-height: 30px; 12849 } 12850 </style> 12851 12852 <style> 12853p { 12854 padding: 10px 0px; 12855 color: white; 12856} 12857.footer-cta{ 12858 position:fixed; 12859 bottom:0; 12860 left:0; 12861 right:0; 12862 background:#000000; 12863 border-top:3px solid #ff4d7a ; 12864 padding:12px 18px; 12865 z-index:9999 12866} 12867.cta-footer{ 12868 display:flex; 12869 justify-content:space-between; 12870 align-items:center; 12871 max-width:900px; 12872 margin:0 auto; 12873 gap:10px 12874} 12875.cta-footer .btn{ 12876 flex:1; 12877 padding:12px 0; 12878 font-size:15px; 12879 font-weight:700; 12880 border-radius:50px; 12881 text-decoration:none; 12882 text-align:center; 12883 color:#000000; 12884 transition:all .3s ease; 12885 margin:0 4px 12886} 12887.cta-footer .login,.cta-footer .daftar,.cta-footer .bonus{ 12888 background: linear-gradient(to bottom, #ff4d7a 0%, #ff4d7a 50%, #ff4d7a 100%); 12889 animation:pulse 1.2s infinite ease-in-out; 12890 border-radius:8px; 12891 box-shadow:0 0 15px #ff4d7a ; 12892 transition:transform .3s ease , box-shadow .3s ease 12893} 12894.cta-footer .login:hover,.cta-footer .daftar:hover,.cta-footer .bonus:hover{ 12895 transform:scale(1.08); 12896 box-shadow:0 0 25px #ff4d7a } 12897 12898@keyframes pulse { 12899 0% { transform: scale(1); } 12900 50% { transform: scale(1.05); } 12901 100% { transform: scale(1); } 12902} 12903</style> 12904<footer class="footer-cta"> 12905 <div class="cta-footer"> 12906 <a href="https://duaperak-amp02.firehostapp.com/" class="btn login">LOGIN</a> 12907 <a href="https://duaperak-amp02.firehostapp.com/" class="btn daftar">DAFTAR</a> 12908 <a href="https://duaperak-amp02.firehostapp.com/" class="btn bonus">PROMOSI</a> 12909 </div> 12910</footer> 12911</script>
12911 12912<div class="sakura-wrap" id="fx-overlay"><span class="sakura" style="left: 8.33673%; width: 13.9353px; height: 13.9353px; animation-duration: 11.7471s;"></span><span class="sakura" style="left: 39.9151%; width: 19.9413px; height: 19.9413px; animation-duration: 9.15548s;"></span><span class="sakura" style="left: 8.1489%; width: 18.0575px; height: 18.0575px; animation-duration: 10.9147s;"></span><span class="sakura" style="left: 41.3834%; width: 11.1452px; height: 11.1452px; animation-duration: 11.8376s;"></span><span class="sakura" style="left: 45.6507%; width: 13.1771px; height: 13.1771px; animation-duration: 11.5161s;"></span><span class="sakura" style="left: 74.007%; width: 10.7108px; height: 10.7108px; animation-duration: 11.0828s;"></span><span class="sakura" style="left: 50.456%; width: 14.7333px; height: 14.7333px; animation-duration: 8.42356s;"></span><span class="sakura" style="left: 17.9919%; width: 10.1596px; height: 10.1596px; animation-duration: 11.1029s;"></span><span class="sakura" style="left: 56.9117%; width: 16.3866px; height: 16.3866px; animation-duration: 10.1356s;"></span><span class="sakura" style="left: 2.07437%; width: 18.3289px; height: 18.3289px; animation-duration: 11.9125s;"></span><span class="sakura" style="left: 31.3249%; width: 14.3474px; height: 14.3474px; animation-duration: 11.611s;"></span><span class="sakura" style="left: 65.8214%; width: 19.8396px; height: 19.8396px; animation-duration: 8.70193s;"></span><span class="sakura" style="left: 96.9679%; width: 18.3263px; height: 18.3263px; animation-duration: 9.18885s;"></span><span class="sakura" style="left: 70.7%; width: 12.9467px; height: 12.9467px; animation-duration: 9.94633s;"></span><span class="sakura" style="left: 87.5448%; width: 17.2037px; height: 17.2037px; animation-duration: 10.7154s;"></span><span class="sakura" style="left: 44.0627%; width: 16.7461px; height: 16.7461px; animation-duration: 6.24355s;"></span><span class="sakura" style="left: 83.9884%; width: 17.9184px; height: 17.9184px; animation-duration: 10.1592s;"></span><span class="sakura" style="left: 88.8778%; width: 10.4576px; height: 10.4576px; animation-duration: 8.05502s;"></span><span class="sakura" style="left: 61.4321%; width: 12.4374px; height: 12.4374px; animation-duration: 7.16604s;"></span><span class="sakura" style="left: 60.1798%; width: 16.8192px; height: 16.8192px; animation-duration: 11.3929s;"></span><span class="sakura" style="left: 69.3523%; width: 11.9424px; height: 11.9424px; animation-duration: 9.56126s;"></span><span class="sakura" style="left: 33.5176%; width: 12.4715px; height: 12.4715px; animation-duration: 6.41601s;"></span><span class="sakura" style="left: 68.5617%; width: 17.9926px; height: 17.9926px; animation-duration: 6.22752s;"></span><span class="sakura" style="left: 90.2375%; width: 12.1702px; height: 12.1702px; animation-duration: 10.3906s;"></span><span class="sakura" style="left: 45.4244%; width: 17.7472px; height: 17.7472px; animation-duration: 6.05659s;"></span><span class="sakura" style="left: 21.5935%; width: 18.233px; height: 18.233px; animation-duration: 9.74681s;"></span><span class="sakura" style="left: 47.6822%; width: 18.4046px; height: 18.4046px; animation-duration: 6.06566s;"></span><span class="sakura" style="left: 3.88357%; width: 16.6403px; height: 16.6403px; animation-duration: 10.5135s;"></span><span class="sakura" style="left: 41.7388%; width: 17.7288px; height: 17.7288px; animation-duration: 10.8393s;"></span><span class="sakura" style="left: 91.1867%; width: 15.3204px; height: 15.3204px; animation-duration: 7.96145s;"></span></div> 12913 12914<style> 12915/* === LAYER GLOBAL === */ 12916.sakura-wrap{ 12917 position:fixed; 12918 inset:0; 12919 pointer-events:none; 12920 overflow:hidden; 12921 z-index:9999; 12922} 12923 12924/* === PETAL SAKURA === */ 12925.sakura{ 12926 position:absolute; 12927 top:-10vh; 12928 width:14px; 12929 height:14px; 12930 12931 background:radial-gradient(circle at 30% 30%, 12932 #e00922, 12933 #de3554 70%, 12934 #ed0c2e); 12935 12936 border-radius:60% 40% 60% 40%; 12937 opacity:.9; 12938 12939 filter:drop-shadow(0 0 6px #f03e4a); 12940 12941 animation:sakuraFall linear forwards; 12942} 12943 12944/* ANIMASI JATUH */ 12945@keyframes sakuraFall{ 12946 12947 0%{ 12948 transform:translateY(-10vh) translateX(0) rotate(0deg); 12949 opacity:0; 12950 } 12951 12952 10%{ 12953 opacity:1; 12954 } 12955 12956 50%{ 12957 transform:translateY(40vh) translateX(-20px) rotate(180deg); 12958 } 12959 12960 100%{ 12961 transform:translateY(110vh) translateX(40px) rotate(360deg); 12962 opacity:.9; 12963 } 12964 12965} 12966</style> 12967 </div>
12968<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"a5b066f8175148719f6d1819493fb27d","r":1}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 12968
12968
12969<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v3d52b47920f24c319d37e2661827c42b1787588026925" integrity="sha512-d9sL6GJLXn6fInD1+TVXhTcQOsmxeHfmHAvwGDIxp5TO+uo1fiWW7mHomMj4MLRlCsJDTqXzWLHJFFlPCEIj/A==" data-cf-beacon='{"version":"2024.11.0","token":"a5b066f8175148719f6d1819493fb27d","r":1}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 12969
12969
12970<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"a5b066f8175148719f6d1819493fb27d","r":1,"spa":2}' crossorigin="anonymous"></script>
12970 12971</body> 12972</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.