1 2 3 <!doctype html> 4 <!--Brumm Brumm--> 5 <html class="no-js"> 6 <head> 7 <meta charset="utf-8"> 8 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 9 <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"> 10 <meta name="apple-itunes-app" content="app-id=1576832504"> 11 <link rel="icon" type="image/x-icon" href="https://imgsaya3.io/images/2026/04/12/LOGO-RABAN-12.04.1.png"> 12 <!-- Title and description --> 13 <title>RAGU? GABUNG DI RAJABANDOT ã½ï¸ Situs Toto Macau Gacor Minimal Bet Murah & Prediksi Macau Ter-Percaya</title> 14 <meta name="description" content="Rajabandot hadir sebagai solusi utama bagi para penggemar yang menginginkan pengalaman bermain terbaik di Indonesia."> 15 <meta name="keywords" content="rajabandot, toto macau, rajabandot login, data macau, rajabandot togel, rajabandot resmi, rajabandot macau login" /> 16 <link rel="canonical" href="https://www.apprendreetsorienter.org/statuts/"> 17 <link rel="amphtml" href="https://aman-aja-ces.pages.dev/"/> 18 <link rel="alternate" hreflang="id-id" href="https://aman-aja-ces.pages.dev/"/> 19 <link rel="alternate" href="https://aman-aja-ces.pages.dev/"/> 20 <link rel="alternate" hreflang="id" href="https://aman-aja-ces.pages.dev/"/> 21 <link rel="alternate" hreflang="en" href="https://aman-aja-ces.pages.dev/"/> 22 <link rel="alternate" hreflang="x-default" href="https://aman-aja-ces.pages.dev/"/> 23 <!-- /snippets/social-meta-tags.liquid --> 24 <meta property="og:type" content="RAJABANDOT MACAU"> 25 <meta property="og:title" content="RAGU? GABUNG DI RAJABANDOT ã½ï¸ Situs Toto Macau Gacor Minimal Bet Murah & Prediksi Macau Ter-Percaya"> 26 <meta property="og:image" content="https://imgsaya4.io/images/2026/04/24/18.jpeg"> 27 <meta property="og:image:secure_url" content="https://imgsaya4.io/images/2026/04/24/18.jpeg"> 28 <meta property="og:image" content="https://imgsaya4.io/images/2026/04/24/18.jpeg"> 29 <meta property="og:image:secure_url" content="https://imgsaya4.io/images/2026/04/24/18.jpeg"> 30 <meta property="og:image" content="https://imgsaya4.io/images/2026/04/24/18.jpeg"> 31 <meta property="og:image:secure_url" content="https://imgsaya4.io/images/2026/04/24/18.jpeg"> 32 <meta property="og:description" content="Rajabandot hadir sebagai solusi utama bagi para penggemar yang menginginkan pengalaman bermain terbaik di Indonesia."> 33 <meta property="og:price:amount" content="10,000-,"> 34 <meta property="og:price:currency" content="IDR"> 35 <meta property="og:url" content="https://www.apprendreetsorienter.org/statuts/"> 36 <meta property="og:site_name" content="RAJABANDOT"> 37 <meta name="twitter:site" content="@RAJABANDOT"> 38 <meta name="twitter:card" content="summary"> 39 <meta name="twitter:title" content="RAGU? GABUNG DI RAJABANDOT ã½ï¸ Situs Toto Macau Gacor Minimal Bet Murah & Prediksi Macau Ter-Percaya"> 40 <meta name="twitter:description" content="Rajabandot hadir sebagai solusi utama bagi para penggemar yang menginginkan pengalaman bermain terbaik di Indonesia."> 41 <meta name="twitter:image" content="https://imgsaya4.io/images/2026/04/24/18.jpeg"> 42 <meta name="twitter:image:width" content="600"> 43 <meta name="twitter:image:height" content="600"> 44 <link rel="shortcut icon" href="https://imgsaya3.io/images/2026/04/12/LOGO-
44RABAN-12.04.1.png" type="image/png"> 45 <meta name="theme-color" content="#ffffff"> 46 <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700&family=Poppins&display=swap" rel="stylesheet"> 47 <link href="//outerbloom.com/cdn/shop/t/138/assets/custom-styles.css?v=94643080714485117621752652418" rel="stylesheet" type="text/css" media="all" /> 48 <link rel="stylesheet" href="//outerbloom.com/cdn/shop/t/138/assets/wishlist-styles.css?v=166819525406734116961754385201">
48<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js" defer></script>
48 49
49<script 50 src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js" 51 integrity="sha512-57oZ/vW8ANMjR/KQ6Be9v/+/h6bq9/l3f0Oc7vn6qMqyhvPd1cvKBRWWpzu0QoneImqr2SkmO4MSqU+RpHom3Q==" 52 crossorigin="anonymous" 53 referrerpolicy="no-referrer" 54 defer 55 ></script>
55 56
56<script src="https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js" async="async"></script>
56 57
57<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/select2.min.js" defer></script>
57<!-- Facebook Pixel Code --> 58
58<script>
vendor: 462 bytes, lines 58-67
58 59 !function(f,b,e,v,n,t,s) 60 {if(f.fbq)return;n=f.fbq=function(){n.callMethod? 61 n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 62 if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 63 n.queue=[];t=b.createElement(e);t.async=!0; 64 t.src=v;s=b.getElementsByTagName(e)[0]; 65 s.parentNode.insertBefore(t,s)}(window, document,'script', 66 'https://connect.facebook.net/en_US/fbevents.js'); 67 fbq('init', '
67165971065669324
vendor: 42 bytes, lines 67-69
67'); 68 fbq('track', 'PageView'); 69
69</script>
69 70 <noscript 71 ><img 72 height="1" 73 width="1" 74 style="display:none" 75 src="https://www.facebook.com/tr?id=165971065669324&ev=PageView&noscript=1" 76 ></noscript> 77 <!-- End Facebook Pixel Code --> 78 79 <!-- Google G4 Script - Disabled by developer (William) to prioritize Mobile App tracking --> 80 <!-- 81 Global site tag (gtag.js) - Google Analytics -->
vendor: 75 bytes, lines 81-82
81 82 <script async src="https://www.googletagmanager.com/gtag/js?id=
82G-X26HYP4083
vendor: 23 bytes, lines 82-83
82"></script> 83
83<script> 84
vendor: 170 bytes, lines 84-88
84window.dataLayer = window.dataLayer || []; 85 function gtag(){dataLayer.push(arguments);} 86 gtag('js', new Date()); 87 88 gtag('config', '
88G-X26HYP4083
vendor: 15 bytes, lines 88-89
88'); 89
89</script>
89 90 <!-- Global site tag (gtag.js) - Google Analytics --> 91 92 <div class="button-login-daftar"> 93 <a class="login" href="https://aman-aja-ces.pages.dev/" rel="nofollow noreferrer"> 94 LOGIN 95 </a> 96 <a class="register" href="https://aman-aja-ces.pages.dev/" rel="nofollow noreferrer"> 97 DAFTAR 98 </a> 99 </div> 100 101
101<script src="//cdnjs.cloudflare.com/ajax/libs/vissense/0.9.0/vissense.js" defer></script>
101 102 103 <!-- Bing UET --> 104
104<script> 105 (function(w,d,t,r,u) 106 { 107 var f,n,i; 108 w[u]=w[u]||[],f=function() 109 { 110 var o={ti:"343051754", tm:"shpfy_ui", enableAutoSpaTracking: true}; 111 o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad") 112 }, 113 n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function() 114 { 115 var s=this.readyState; 116 s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null) 117 }, 118 i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i) 119 }) 120 (window,document,"script","//bat.bing.com/bat.js","uetq"); 121 </script>
121 122
122<script> 123 window.uetq = window.uetq || []; 124 window.uetq.push('event', '', {"revenue_value":0,"currency":"IDR"}); 125 </script>
125 126 <!-- End Bing UET --> 127 128 <!-- Microsoft Clarity --> 129
129<script type="text/javascript"> 130 (function(c,l,a,r,i,t,y){ 131 c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; 132 t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i; 133 y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); 134 })(window, document, "clarity", "script", "h7rbxqry9k"); 135 </script>
135 136 <!-- End Microsoft Clarity --> 137 138 139 <link href="//outerbloom.com/cdn/shop/t/138/assets/combine.min.css?v=111340648424012527321754385205" rel="stylesheet" type="text/css" media="all" /> 140 141 <link href="//outerbloom.com/cdn/shop/t/138/assets/font-awesome.css?v=132324219581463622051752652421" rel="stylesheet" type="text/css" media="all" /> 142 <link rel="stylesheet" href="//code.jquery.com/ui/1.13.0/themes/base/jquery-ui.min.css"> 143 144
144<script src="//code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
144 145
145<script src="//outerbloom.com/cdn/shop/t/138/assets/combine.js?v=140218079523075729301752652421" type="text/javascript"></script>
145 146
146<script src="//code.jquery.com/ui/1.13.0/jquery-ui.min.js"></script>
146 147
147<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
147 148 <meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/15896833/digital_wallets/dialog"> 149 <link rel="alternate" type="application/json+oembed" href="https://www.apprendreetsorienter.org/statuts/.oembed"> 150
150<script async="async" src="/checkouts/internal/preloads.js?locale=en-ID"></script>
150 151
151<script id="shopify-features" type="application/json">{"accessToken":"d2e176e59f6658d5056234d6249b3ab4","betas":["rich-media-storefront-analytics"],"domain":"outerbloom.com","predictiveSearch":true,"shopId":15896833,"locale":"en"}</script>
151 152
152<script>var Shopify = Shopify || {}; 153 Shopify.shop = "outerbloom1.myshopify.com"; 154 Shopify.locale = "en"; 155 Shopify.currency = {"active":"IDR","rate":"1.0"}; 156 Shopify.country = "ID"; 157 Shopify.theme = {"name":"web-outerbloom-shopify\/main","id":153139282135,"schema_name":null,"schema_version":null,"theme_store_id":null,"role":"main"}; 158 Shopify.theme.handle = "null"; 159 Shopify.theme.style = {"id":null,"handle":null}; 160 Shopify.cdnHost = "outerbloom.com/cdn"; 161 Shopify.routes = Shopify.routes || {}; 162 Shopify.routes.root = "/";</script>
162 163
163<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
163 164
164<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>
164 165
165<script id="shop-js-analytics" type="application/json">{"pageType":"product"}</script>
165 166
166<script defer="defer" async="async" src="//outerbloom.com/cdn/shopifycloud/shop-js/client.js" onload="window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 167 "></script>
167 168
168<script>(function() { 169 var isLoaded = false; 170 function asyncLoad() { 171 if (isLoaded) return; 172 isLoaded = true; 173 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"]; 174 for (var i = 0; i < urls.length; i++) { 175 var s = document.createElement('script'); 176 s.type = 'text/javascript'; 177 s.async = true; 178 s.src = urls[i]; 179 var x = document.getElementsByTagName('script')[0]; 180 x.parentNode.insertBefore(s, x); 181 } 182 }; 183 if(window.attachEvent) { 184 window.attachEvent('onload', asyncLoad); 185 } else { 186 window.addEventListener('load', asyncLoad, false); 187 } 188 })();</script>
188 189
189<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>
189 190
190<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
190 191
191<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>
191 192
192<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>
192 193
193<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)}}; 194 </script>
194 195
195<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 196 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); 197 </script>
197 198
198<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})}})); 199 </script>
199 200 201
201<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
201 202 <!-- /snippets/oldIE-js.liquid --> 203 204 205 <!--[if lt IE 9]> 206
206<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js" type="text/javascript"></script>
206 207
207<script src="//outerbloom.com/cdn/shop/t/138/assets/respond.min.js?v=52248677837542619231752652418" type="text/javascript"></script>
207 208 <link href="//outerbloom.com/cdn/shop/t/138/assets/respond-proxy.html" id="respond-proxy" rel="respond-proxy" /> 209 <link href="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" id="respond-redirect" rel="respond-redirect" /> 210
210<script src="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" type="text/javascript"></script>
210 211 <![endif]--> 212 213 214 215 216 217 <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"> 218 <link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch"> 219
219<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>
219 220
220<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":"RAGU? GABUNG DI RAJABANDOT ã½ï¸ Situs Toto Macau Gacor Minimal Bet Murah & Prediksi Macau Ter-Percaya","vendor":"Outerbloom Florist","id":"8144957800663","untranslatedTitle":"RAGU? GABUNG DI RAJABANDOT ã½ï¸ Situs Toto Macau Gacor Minimal Bet Murah & Prediksi Macau Ter-Percaya","url":"\/products\/blossom-shine","type":"Rajabandot hadir sebagai solusi utama bagi para penggemar yang menginginkan pengalaman bermain terbaik di Indonesia."},"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\":\"RAGU? GABUNG DI RAJABANDOT ã½ï¸ Situs Toto Macau Gacor Minimal Bet Murah & Prediksi Macau Ter-Percaya\",\"vendor\":\"Outerbloom Florist\",\"id\":\"8144957800663\",\"untranslatedTitle\":\"RAGU? GABUNG DI RAJABANDOT ã½ï¸ Situs Toto Macau Gacor Minimal Bet Murah & Prediksi Macau Ter-Percaya\",\"url\":\"\/products\/blossom-shine\",\"type\":\"Rajabandot hadir sebagai solusi utama bagi para penggemar yang menginginkan pengalaman bermain terbaik di Indonesia.\"},\"id\":\"44083045826775\",\"image\":{\"src\":\"\/\/outerbloom.com\/cdn\/shop\/files\/Blossom-Shine-WM.jpg?v=1695788426\"},\"sku\":\"OBVSTF1086\",\"title\":\"Default Title\",\"untranslatedTitle\":\"Default Title\"}}]]"});</script>
220<script> 221 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 222 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 223 window.ShopifyAnalytics.meta.currency = 'IDR'; 224 var meta = {"product":{"id":8144957800663,"gid":"gid:\/\/shopify\/Product\/8144957800663","vendor":"Outerbloom Florist","type":"Rajabandot hadir sebagai solusi utama bagi para penggemar yang menginginkan pengalaman bermain terbaik di Indonesia.","variants":[{"id":44083045826775,"price":1000000 225 ,"name":"RAGU? GABUNG DI RAJABANDOT ã½ï¸ Situs Toto Macau Gacor Minimal Bet Murah & Prediksi Macau Ter-Percaya","public_title":null,"sku":"OBVSTF1086"}],"remote":false},"page":{"pageType":"product","resourceType":"product","resourceId":8144957800663}}; 226 for (var attr in meta) { 227 window.ShopifyAnalytics.meta[attr] = meta[attr]; 228 } 229 </script>
229 230
230<script class="analytics"> 231 (function () { 232 var customDocumentWrite = function(content) { 233 var jquery = null; 234 235 if (window.jQuery) { 236 jquery = window.jQuery; 237 } else if (window.Checkout && window.Checkout.$) { 238 jquery = window.Checkout.$; 239 } 240 241 if (jquery) { 242 jquery('body').append(content); 243 } 244 }; 245 246 var hasLoggedConversion = function(token) { 247 if (token) { 248 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 249 } 250 return false; 251 } 252 253 var setCookieIfConversion = function(token) { 254 if (token) { 255 var twoMonthsFromNow = new Date(Date.now()); 256 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 257 258 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 259 } 260 } 261 262 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 263 if (trekkie.integrations) { 264 return; 265 } 266 trekkie.methods = [ 267 'identify', 268 'page', 269 'ready', 270 'track', 271 'trackForm', 272 'trackLink' 273 ]; 274 trekkie.factory = function(method) { 275 return function() { 276 var args = Array.prototype.slice.call(arguments); 277 args.unshift(method); 278 trekkie.push(args); 279 return trekkie; 280 }; 281 }; 282 for (var i = 0; i < trekkie.methods.length; i++) { 283 var key = trekkie.methods[i]; 284 trekkie[key] = trekkie.factory(key); 285 } 286 trekkie.load = function(config) { 287 trekkie.config = config || {}; 288 trekkie.config.initialDocumentCookie = document.cookie; 289 var first = document.getElementsByTagName('script')[0]; 290 var script = document.createElement('script'); 291 script.type = 'text/javascript'; 292 script.onerror = function(e) { 293 var scriptFallback = document.createElement('script'); 294 scriptFallback.type = 'text/javascript'; 295 scriptFallback.onerror = function(error) { 296 var Monorail = { 297 produce: function produce(monorailDomain, schemaId, payload) { 298 var currentMs = new Date().getTime(); 299 var event = { 300 schema_id: schemaId, 301 payload: payload, 302 metadata: { 303 event_created_at_ms: currentMs, 304 event_sent_at_ms: currentMs 305 } 306 }; 307 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 308 }, 309 sendRequest: function sendRequest(endpointUrl, payload) { 310 // Try the sendBeacon API 311 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 312 var blobData = new window.Blob([payload], { 313 type: 'text/plain' 314 }); 315 316 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 317 return true; 318 } // sendBeacon was not successful 319 320 } // XHR beacon 321 322 var xhr = new XMLHttpRequest(); 323 324 try { 325 xhr.open('POST', endpointUrl); 326 xhr.setRequestHeader('Content-Type', 'text/plain'); 327 xhr.send(payload); 328 } catch (e) { 329 console.log(e); 330 } 331 332 return false; 333 }, 334 isIos12: function isIos12() { 335 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 336 } 337 }; 338 Monorail.produce('monorail-edge.shopifysvc.com', 339 'trekkie_storefront_load_errors/1.1', 340 {shop_id: 15896833, 341 theme_id: 153139282135, 342 app_name: "storefront", 343 context_url: window.location.href, 344 source_url: "//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js"}); 345 346 }; 347 scriptFallback.async = true; 348 scriptFallback.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js'; 349 first.parentNode.insertBefore(scriptFallback, first); 350 }; 351 script.async = true; 352 script.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js'; 353 first.parentNode.insertBefore(script, first); 354 }; 355 trekkie.load( 356 {"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}} 357 ); 358 359 var loaded = false;
360 trekkie.ready(function() { 361 if (loaded) return; 362 loaded = true; 363 364 window.ShopifyAnalytics.lib = window.trekkie; 365 366 var originalDocumentWrite = document.write; 367 document.write = customDocumentWrite; 368 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 369 document.write = originalDocumentWrite; 370 371 window.ShopifyAnalytics.lib.page(null,{"pageType":"product","resourceType":"product","resourceId":8144957800663,"shopifyEmitted":true}); 372 373 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 374 var token = match? match[1]: undefined; 375 if (!hasLoggedConversion(token)) { 376 setCookieIfConversion(token); 377 window.ShopifyAnalytics.lib.track("Viewed Product",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"RAGU? GABUNG DI RAJABANDOT ã½ï¸ Situs Toto Macau Gacor Minimal Bet Murah & Prediksi Macau Ter-Percaya","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"Rajabandot hadir sebagai solusi utama bagi para penggemar yang menginginkan pengalaman bermain terbaik di Indonesia.","nonInteraction":true,"remote":false},undefined,undefined,{"shopifyEmitted":true}); 378 window.ShopifyAnalytics.lib.track("monorail:\/\/trekkie_storefront_viewed_product\/1.1",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"RAGU? GABUNG DI RAJABANDOT ã½ï¸ Situs Toto Macau Gacor Minimal Bet Murah & Prediksi Macau Ter-Percaya","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"Rajabandot hadir sebagai solusi utama bagi para penggemar yang menginginkan pengalaman bermain terbaik di Indonesia.","nonInteraction":true,"remote":false,"referer":"https:\/\/outerbloom.com\/products\/blossom-shine"}); 379 } 380 }); 381 382 383 var eventsListenerScript = document.createElement('script'); 384 eventsListenerScript.async = true; 385 eventsListenerScript.src = "//outerbloom.com/cdn/shopifycloud/storefront/assets/shop_events_listener-abeef7a0.js"; 386 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 387 388 })();</script>
388 389
389<script> 390 if (!window.ga || (window.ga && typeof window.ga !== 'function')) { 391 window.ga = function ga() { 392 (window.ga.q = window.ga.q || []).push(arguments); 393 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 394 window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"}); 395 } 396 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."); 397 }; 398 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 399 window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"}); 400 } 401 } 402 </script>
402 403
403<script 404 defer 405 src="https://outerbloom.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-2.0.13.min.js" 406 data-application="storefront-renderer" 407 data-shop-id="15896833" 408 data-render-region="gcp-asia-southeast1" 409 data-page-type="product" 410 data-theme-instance-id="153139282135" 411 data-theme-name="" 412 data-theme-version="" 413 data-monorail-region="shop_domain" 414 data-resource-timing-sampling-rate="10" 415 data-shs="true" 416 data-shs-beacon="true" 417 data-shs-export-with-fetch="true" 418 data-shs-logs-sample-rate="1" 419 ></script>
419 420 </head><body 421 data-template="product" 422 id="blossom-shine" 423 class="template-product template-product" 424 > 425 <!-- Google Tag Manager (noscript) -->
vendor: 90 bytes, lines 425-428
425 426 <noscript 427 ><iframe 428 src="https://www.googletagmanager.com/ns.html?id=
428GTM-MF9VVZX
vendor: 129 bytes, lines 428-434
428" 429 height="0" 430 width="0" 431 style="display:none;visibility:hidden" 432 ></iframe 433 ></noscript> 434
434<!-- End Google Tag Manager (noscript) --> 435 436 437 438 <div class="header-wrapper"> 439 440 <div id="shopify-section-NotifBar" class="shopify-section m-0"> 441 442 <style> 443 #notification {z-index: 99;width: 100%;transition: top 0.2s ease-in-out;} 444 #notification.promo-up {top: -48px!important;} 445 .promo-bg {width: 100%;padding: 6px 0;background-color: #242424;} 446 .notification__message p {margin: 0;color: #000000;font-size: 14px!important;} 447 .notification__message p a {text-decoration: underline;color: #ffd700;} 448 @media (max-width: 991px){ 449 .notification__message p {font-size: 14px!important;} 450 } 451 </style> 452 <input id="clearCookie" class="hide" type="button" value="Delete Cookie" /> 453 <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"> 454 <div class="page-width notification__inner "> 455 456 457 <div class="notification__message text-center"> 458 <p><a href="https://www.apprendreetsorienter.org/statuts/" title="RAJABANDOT">RAGU? GABUNG DI RAJABANDOT ã½ï¸ Situs Toto Macau Gacor Minimal Bet Murah & Prediksi Macau Ter-Percaya</a></p> 459 </div> 460 </div> 461 </div> 462 463 464 465 466 </div> 467 <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"/> 468 469 470 <header style="background-image: url(https://i.pinimg.com/474x/b9/23/39/b923392626a609fea6ebfca99103720d.jpg); background-attachment: fixed;"> 471 <div class="container"> 472 <div class="header-container row justify-content-between pl-lg-0 pr-lg-0"> 473 <a href="https://www.apprendreetsorienter.org/statuts/"> 474 <img src="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" alt="logo-RAJABANDOT" style="width: 190px;"></a>
475 <link href="https://imgsaya3.io/images/2026/04/12/LOGO-RABAN-12.04.1.png" rel="shortcut icon" type="image/x-icon" /> 476 <div id="menu-hamburger" class="d-lg-none"> 477 <svg xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="16" height="10" viewBox="0 0 16 10" fill="none"> 478 <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"/> 479 </svg> 480 481 <a href="/"><svg xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" viewBox="0 0 854 78.29"> 482 <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> 483 </svg> 484 </a> 485 </div> 486 487 <div class="header-icon-right header-icons col-3"> 488 <div class="icon icon-account-header d-none d-lg-block"> 489 <a href="https://www.apprendreetsorienter.org/statuts/">
490 <svg xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="20" height="21" viewBox="0 0 20 21" fill="none"> 491 <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"/> 492 <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"/> 493 </svg> 494 495 </a> 496 </div> 497 <div class="icon icon-wishlist-header"> 498 <a href="https://www.apprendreetsorienter.org/statuts/"> 499 <svg xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 500 <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.
50011233C11.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"/> 501 </svg> 502 503 <span class="wishlist-count d-none">0</span> 504 </a> 505 </div> 506 <div class="icon icon-cart-header"> 507 <a href="https://www.apprendreetsorienter.org/statuts/"> 508 <svg xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="22" height="21" viewBox="0 0 22 21" fill="none"> 509 <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"/> 510 <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"/> 511 </svg> 512 513 </a> 514 </div> 515 </div> 516 </div> 517 </div> 518 </header> 519 520 <nav class="nav-header" style="background-color: #242424;"> 521 <div class="nav-account-mobile row m-0 d-lg-none"> 522 <div class="col-6 welcome-cust p-0"> 523 524 <h1 class="logo"> 525 <a href="https://www.apprendreetsorienter.org/statuts/"> 526 <img src="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" alt="RAJABANDOT" style="max-height:60px;"> 527 </a> 528 </h1> 529 530 531 </div> 532 533 <div class="col-6 login-register text-right p-0"> 534 <a href="https://aman-aja-ces.pages.dev/">Log In</a> | <a href="https://aman-aja-ces.pages.dev/">Sign Up</a> 535 </div> 536 </div> 537 <ul class="nav-menu container"> 538 539 <li class="nav-menu container"> 540 <a href="https://www.apprendreetsorienter.org/statuts/"> 541 <span style="color: #ffd700;">RAJABANDOT</span> 542 543 544 <li class=" nav-menu container"> 545 <a href="https://www.apprendreetsorienter.org/statuts/"> 546 <span style="color: #ffd700;">TOTO MACAU</span> 547 548 549 <li class=" nav-menu container"> 550 <a href="https://www.apprendreetsorienter.org/statuts/"> 551 <span style="color: #ffd700;">DATA MACAU</span> 552 553 <li class=" nav-menu container"> 554 <a href="https://www.apprendreetsorienter.org/statuts/"> 555 <span style="color: #ffd700;">RAJABANDOT LOGIN</span> 556 557 <li class=" nav-menu container"> 558 <a href="https://www.apprendreetsorienter.org/statuts/"> 559 <span style="color: #ffd700;">RAJABANDOT TOTO</span> 560 561 <li class=" nav-menu container"> 562 <a href="https://www.apprendreetsorienter.org/statuts/"> 563 <span style="color: #ffd700;">RAJABANDOT MACAU LOGIN</span> 564 565 <div class="overlay-nav"> 566 <!-- Mobile Close Button in Overlay --> 567 <button id="nav-close" class="nav-close-btn d-lg-none"> 568 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif"> 569 <path d="M18 6L6 18M6 6L18 18" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 570 </svg> 571 </button> 572 </div> 573 574
574<script> 575 if ($(window).width() < 992) { 576 // Level 1 menu accordion (main menu items) 577 $(".nav-menu .nav-menu container > a").click(function(e){ 578 e.preventDefault() 579 const parentLi = $(this).parent() 580 const isCurrentlyOpen = parentLi.hasClass("menu-open") 581 582 // Close all other open menus (accordion behavior) 583 $(".nav-menu .nav-menu container").not(parentLi).removeClass("menu-open") 584 $(".nav-menu .megamenu").not($(this).next(".megamenu")).slideUp() 585 586 // Toggle current menu 587 if (isCurrentlyOpen) { 588 parentLi.removeClass("menu-open") 589 $(this).next(".megamenu").slideUp() 590 } else { 591 parentLi.addClass("menu-open") 592 $(this).next(".megamenu").slideDown() 593 } 594 }) 595 596 // Level 2 menu accordion (submenu items with grandchildren) 597 $(document).on('click', '.dropdown-menu .has-submenu > a', function(e){ 598 e.preventDefault() 599 const parentLi = $(this).parent() 600 const isCurrentlyOpen = parentLi.hasClass("submenu-open") 601 const grandchild = $(this).next(".grandchild") 602 603 // Close all other open submenus in the same dropdown (accordion behavior) 604 parentLi.siblings('.has-submenu').removeClass("submenu-open") 605 parentLi.siblings('.has-submenu').find('.grandchild').slideUp() 606 parentLi.siblings('.has-submenu').find('.chevron-right').css('transform', 'rotate(0deg)') 607 608 // Toggle current submenu 609 if (isCurrentlyOpen) { 610 parentLi.removeClass("submenu-open") 611 grandchild.slideUp() 612 $(this).find('.chevron-right').css('transform', 'rotate(0deg)') 613 } else { 614 parentLi.addClass("submenu-open") 615 grandchild.slideDown() 616 $(this).find('.chevron-right').css('transform', 'rotate(90deg)') 617 } 618 }) 619 620 $("#menu-hamburger").click(function(e){ 621 e.preventDefault() 622 $("body").toggleClass("nav_open") 623 }) 624 625 // Handle close button click 626 $("#nav-close").click(function(e){ 627 e.preventDefault() 628 $("body").removeClass("nav_open") 629 // Close all open menus when close button is clicked 630 $(".nav-menu .nav-menu container").removeClass("menu-open") 631 $(".nav-menu .megamenu").slideUp() 632 $(".dropdown-menu .has-submenu").removeClass("submenu-open") 633 $(".dropdown-menu .grandchild").slideUp() 634 $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)') 635 }) 636 } 637 638 $(".overlay-nav").click(function(e){ 639 e.preventDefault() 640 $("body").removeClass("nav_open") 641 // Close all open menus when overlay is clicked 642 $(".nav-menu .nav-menu container").removeClass("menu-open") 643 $(".nav-menu .megamenu").slideUp() 644 $(".dropdown-menu .has-submenu").removeClass("submenu-open") 645 $(".dropdown-menu .grandchild").slideUp() 646 $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)') 647 }) 648 </script>
648 649 650 651 </div> 652 653 <div id="shopify-section-search-popup" class="shopify-section m-0"><style> 654 #search-trigger { 655 cursor: pointer; 656 } 657 #search-popup { 658 display: none; 659 position: fixed; 660 left: 0; 661 width: 100%; 662 top: 0; 663 height: 100%; 664 justify-content: center; 665 z-index: 9999; 666 background: rgb(196 196 196 / 30%); 667 } 668 #search-input { 669 align-self: center; 670 width: 100%; 671 height: 80px; 672 position: absolute; 673 top: 0; 674 border-bottom: 0.5px solid #A3A3A3; 675 background-color: #fff; 676 } 677 #search-input * { 678 align-self: center; 679 } 680 #search-type { 681 width: 100%; 682 border: none; 683 padding-right: 20px; 684 padding-left: 20px; 685 font-size: 16px; 686 color: #757575; 687 } 688 #search-btn { 689 font-size: 16px; 690 font-weight: 500; 691 } 692 #search-result { 693 min-height: 490px; 694 width: 100%; 695 padding-top: 80px; 696 } 697 #search-result .container { 698 background-color: #fff; 699 padding: 20px 40px; 700 } 701 body.search-popup-open { 702 /* .search-popup-open */ 703 overflow: hidden; 704 } 705 .search-popup-open #loc_delivery { 706 display: none 707 } 708 .search-header svg { 709 display: none; 710 cursor: pointer; 711 } 712 .wrapper-search-popup { 713 max-height: calc(100vh - 150px); 714 overflow-y: auto; 715 overflow-x: hidden; 716 } 717 718 .group-recommend { 719 padding: 20px 40px; 720 } 721 722 .resultsearch { 723 display: none; 724 } 725 .results { padding: 20px 40px } 726 .resultsearch label { 727 font-weight: 600; 728 padding-bottom: 20px; 729 display: block; 730 margin-bottom: 20px; 731 border-bottom: 1px solid #AAAAAA; 732 } 733 734 ul.result_product { 735 max-height: 300px; 736 overflow: auto; 737 } 738 739 .group-promotion ul { 740 margin: 0; 741 } 742 .group-promotion li { 743 list-style: none; 744 margin-bottom: 12px; 745 } 746 .group-promotion li a { 747 color: inherit; 748 } 749 750 .group-recent { 751 position: relative; 752 padding: 20px 40px; 753 } 754 .group-recent ul { 755 margin: 0; 756 } 757 .group-recent li { 758 list-style: none; 759 display: inline-block; 760 margin-right: 60px; 761 } 762 .group-recent li a { 763 color: inherit; 764 } 765 766 .last-search svg { 767 width: 20px; 768 vertical-align: middle; 769 } 770 ul.last-search a { 771 vertical-align: middle; 772 padding: 0 10px; 773 } 774 ul.last-search li span { 775 cursor: pointer; 776 } 777 .delete-all-history { 778 position: absolute; 779 top: 25px; 780 right: 40px; 781 text-decoration: underline; 782 color: #e11d1d; 783 cursor: pointer; 784 font-size: 12px; 785 } 786 787 form.search.search-modal__form { 788 position: relative; 789 } 790 791 button.search__button svg { 792 width: 25px; 793 color: #495057; 794 fill: #757582; 795 } 796 797 button.search__button.field__button { 798 position: absolute; 799 top: 50%; 800 margin-top: -12px; 801 } 802 803 .close-search { 804 display: none; 805 position: absolute; 806 right: 65px; 807 top: 10px; 808 cursor: pointer; 809 } 810 811 .site-overlay { 812 position: fixed; 813 top: 0; 814 width: 100vw; 815 height: 100vh; 816 z-index: 1000; 817 background: #0000005c; 818 visibility: hidden; 819 opacity: 0; 820 pointer-events: none; 821 transition: all .3s linear; 822 display: block !important; 823 } 824 825 .search-popup-open .site-overlay { 826 opacity: 1; 827 visibility: visible; 828 pointer-events: all; 829 z-index: -1; 830 cursor: pointer; 831 } 832 833 @media (min-width: 991px) { 834 .group-recent ul { 835 column-count: 3; 836 } 837 .group-promotion li a { 838 font-size: 12px; 839 font-weight: 400; 840 } 841 .group-recent li a { 842 font-size: 12px; 843 font-weight: 400; 844 } 845 } 846 847 .moreresult { 848 padding: 10px 40px; 849 border-top: 1px solid #AAAAAA; 850 } 851 .moreresult * { 852 align-self: center; 853 } 854 .moreresult p { 855 margin: 0; 856 font-size: 12px !important; 857 } 858 .moreresult svg { 859 width: 13px; 860 } 861 862 @media (max-width: 992px) { 863 .icon-key-mobile { 864 height: auto!important; 865 width: 10px!important; 866 } 867 body.grid-view.search-popup-open .products { 868 -ms-flex: 0 0 100%!important; 869 flex: 0 0 100%!important; 870 max-width: 100%!important; 871 } 872 button.search__button svg {
873 width: 20px; 874 } 875 #search-result { 876 padding-left: 0; 877 padding-right: 0; 878 } 879 #search-result { 880 padding-top: 55px; 881 } 882 #search-input { 883 height: 55px; 884 } 885 .group-recommend { 886 padding: 20px; 887 } 888 #search-input .container { 889 padding: 0 20px; 890 } 891 #search-type { 892 font-size: 14px; 893 } 894 #search-btn { 895 font-size: 12px; 896 text-decoration: underline; 897 } 898 .results { 899 padding: 20px; 900 } 901 .group-recommend h3 { 902 font-size: 16px; 903 } 904 .products .card-body { 905 padding: 8px 0px 10px; 906 } 907 .moreresult { 908 padding: 10px 20px; 909 } 910 } 911 </style> 912 <style type="text/css"> 913 div.advertisement-placeholder { 914 text-align: center; 915 padding-bottom: 20px; 916 display: flex; 917 flex-direction: column; 918 justify-content: center; 919 } 920 div.advertisement-text p { 921 margin: 0; 922 font-family: Open Sans; 923 font-style: normal; 924 font-weight: normal; 925 font-size: 10px; 926 line-height: 20px; 927 color: #999999; 928 } 929 div.advertisement-banner { 930 margin: 0px auto; 931 } 932 div#div-gpt-ad-billboard-placeholder { 933 width: 996px; 934 margin: 0 auto; 935 background: #F5F5F5; 936 padding-bottom: unset !important; 937 min-height: 200px; 938 } 939 div#div-gpt-ad-lb-placeholder { 940 background: #F5F5F5; 941 padding-bottom: unset !important; 942 min-height: 280px; 943 } 944 .faq-section{ 945 max-width:1200px; 946 margin:50px auto; 947 padding:40px 20px; 948 position:relative; 949 background-color: rgba(0, 0, 0, 0.1); 950 backdrop-filter: blur(25px); 951 border-radius: 20px; 952 } 953 954 .faq-section::before{ 955 content:""; 956 position:absolute; 957 top:0;left:50%; 958 transform:translateX(-50%); 959 width:80%; 960 height:2px; 961 background:linear-gradient(90deg,transparent,#fffb00,transparent) 962 } 963 964 .faq-section h2{ 965 text-align:center; 966 font-size:34px;font-weight:700; 967 margin-bottom:50px; 968 background: linear-gradient(135deg, #fffb00, #fffb00, #fffb00); 969 -webkit-background-clip:text; 970 -webkit-text-fill-color:transparent; 971 background-clip:text; 972 font-family:"Poppins",sans-serif;letter-spacing:1px 973 } 974 975 .faq-container{ 976 display:flex; 977 flex-direction:column; 978 gap:25px 979 } 980 981 .faq-item{ 982 background:linear-gradient(145deg,#0a0a0a,#1a1a1a); 983 border:2px solid #ffd700; 984 border-radius:20px;overflow:hidden; 985 transition:all .4s ease;box-shadow:0 5px 20px rgba(0,0,0,0.5) 986 } 987 988 .faq-item:hover{ 989 border-color:#ffd700; 990 transform:translateX(10px); 991 box-shadow:0 12px 35px rgba(253, 4, 4, 0.25) 992 } 993 994 .faq-question{width:100%; 995 padding:28px 35px;background:transparent; 996 color:#ffffff; 997 font-size:18px; 998 font-weight:600; 999 text-align:left; 1000 border:none;cursor:pointer; 1001 display:flex; 1002 justify-content:space-between; 1003 align-items:center; 1004 font-family:"Poppins",sans-serif; 1005 transition:all .3s ease 1006 } 1007 1008 .faq-question:hover{ 1009 color:#fffb00 1010 } 1011 1012 .faq-question::after{ 1013 content:'+'; 1014 font-size:32px; 1015 font-weight:300; 1016 transition:all .4s ease; 1017 color:#fffb00; 1018 width:40px; 1019 height:40px; 1020 display:flex; 1021 align-items:center; 1022 justify-content:center; 1023 border:2px solid #ffd700;border-radius:50%; 1024 background:rgba(0, 0, 0, 0.1) 1025 } 1026 1027 .faq-item.active .faq-question::after{ 1028 transform:rotate(135deg); 1029 background:linear-gradient(135deg,#ffd700,#ffd700); 1030 color:#000;border-color:transparent 1031 } 1032 1033 .faq-answer{ 1034 max-height:0; 1035 overflow:hidden; 1036 transition:max-height .5s ease,padding .5s ease; 1037 background:linear-gradient(180deg,rgba(253,228,4,0.05),transparent); 1038 padding:0 35px 1039 } 1040 1041 .faq-item.active .faq-answer{ 1042 max-height:800px;padding:30px 35px; 1043 border-top:1px solid rgba(253, 4, 4, 0.3) 1044 } 1045 1046 .faq-answer p{ 1047 color:#e0e0e0; 1048 font-size:16px; 1049 line-height:2; 1050 margin:0; 1051 font-family:"Poppins",sans-serif 1052 } 1053 1054 @media 1055 (max-width:768px) 1056 { 1057 1058 .faq-section 1059 {padding:30px 15px} 1060 1061 .faq-section h2 1062 {font-size:26px} 1063 1064 .faq-question 1065 {font-size:16px; 1066 padding:22px 25px} 1067 1068 .faq-question::after 1069 {width:35px; 1070 height:35px; 1071 font-size:28px} 1072 1073 .faq-answer 1074 {padding:0 25px} 1075 1076 .faq-item.active .faq-answer 1077 {padding:25px} 1078 1079 .faq-item:hover 1080 {transform:translateX(5px)} 1081 } 1082 </style> 1083 <div id="search-popup"> 1084 <div id="search-input" class="row"> 1085 <div class="container w-100"> 1086 <form 1087 action="/search" 1088 method="get" 1089 role="search" 1090 class="search search-modal__form d-flex justify-content-between" 1091 >
1092 <svg xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="20" height="20" viewBox="0 0 20 20" fill="none"> 1093 <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"/> 1094 </svg> 1095 1096 <input type="hidden" name="type" value="product"> 1097 <input 1098 type="text" 1099 id="search-type" 1100 name="q" 1101 class="search-popup" 1102 placeholder="Gifts that linger: Uncover treasures for cherished moments." 1103 > 1104 <div class="close-search"><svg xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="18" height="18" viewBox="0 0 18 18" fill="none"> 1105 <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 12.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"/> 1106 </svg> 1107 </div> 1108 <button id="search-btn">Search</button> 1109 </form>
1110 </div> 1111 </div> 1112 <div id="search-result" class="container m-auto"> 1113 <div class="container p-0"> 1114 <div class="group-promotion"> 1115 <div class="resultsearch"> 1116 <div class="row results"> 1117 <div class="col-12 col-lg-6 mb-3 mb-lg-0"> 1118 <label>SUGGESTIONS</label> 1119 <ul class="result_collection"></ul> 1120 </div> 1121 <div class="col-12 col-lg-6"> 1122 <label>PRODUCTS</label> 1123 <ul class="result_product"></ul> 1124 </div> 1125 </div> 1126 <div class="d-flex justify-content-between moreresult m-0"> 1127 <p>Search for<span></span></p> 1128 <svg version="1.1" xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="32" height="32" viewBox="0 0 32 32"> 1129 <title>icon-arrow-right</title> 1130 <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> 1131 </svg> 1132 </div> 1133 </div> 1134 </div> 1135 <div class="group-recent hide"> 1136 <h3>RECENT SEARCH</h3> 1137 <span class="delete-all-history">Hapus riwayat</span> 1138 <ul class="last-search"></ul> 1139 </div> 1140 <div class="group-recommend"> 1141 <h3>YOU MAY ALSO LIKE</h3> 1142 1143 1144 <div class="row popup-recommend c-products-grid infinite-case product-multi-"> 1145 <div class="swiper-wrapper justify-content-between" style="margin-left:1px;"> 1146 1147 1148 <div class="swiper-slide card"> 1149 1150 1151 1152 1153 <div class="products" data-lazy="false"> 1154 <div class="bg-products"> 1155 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-love-mooncake"> 1156 <svg xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1157 <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.
115711233C11.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"/> 1158 </svg> 1159 1160 </div> 1161 <a href="/products/mid-autumn-of-love-mooncake"> 1162 1163 <div class="product-card-img-container p-0 position-relative"> 1164 1165 <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"> 1166 </div> 1167 <div class="card-body product-card-info"> 1168 <h5 class="h5 mb-0"> 1169 Mid Autumn of Love Mooncake 1170 </h5> 1171 <div class="product-card-price"> 1172 1173 <div class="product-price-sale"> 1174 <s class="product-card-price-before card-money">Rp 588.000</s> 1175 <span class="product-card-discount small"> 1176 (-40%) 1177 </span> 1178 </div> 1179 1180 1181 1182 <div class="price-discount"> 1183 <h4 class="product-card-price-after card-money">Rp 348.000</h4> 1184 </div> 1185 1186 1187 1188 1189 1190 </div> 1191 1192 </div> 1193 </a> 1194 </div> 1195 1196 </div> 1197 1198 </div> 1199 1200 1201 1202 <div class="swiper-slide card"> 1203 1204 1205 1206 1207 <div class="products" data-lazy="false"> 1208 <div class="bg-products"> 1209 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-joy-mooncake"> 1210 <svg xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1211 <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.
121111233C11.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"/> 1212 </svg> 1213 1214 </div> 1215 <a href="/products/mid-autumn-of-joy-mooncake"> 1216 1217 <div class="product-card-img-container p-0 position-relative"> 1218 1219 <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"> 1220 </div> 1221 <div class="card-body product-card-info"> 1222 <h5 class="h5 mb-0"> 1223 Mid Autumn of Joy Mooncake 1224 </h5> 1225 <div class="product-card-price"> 1226 1227 <div class="product-price-sale"> 1228 <s class="product-card-price-before card-money">Rp 888.000</s> 1229 <span class="product-card-discount small"> 1230 (-33%) 1231 </span> 1232 </div> 1233 1234 1235 1236 <div class="price-discount"> 1237 <h4 class="product-card-price-after card-money">Rp 588.000</h4> 1238 </div> 1239 1240 1241 1242 1243 1244 </div> 1245 1246 </div> 1247 </a> 1248 </div> 1249 1250 </div> 1251 1252 </div> 1253 1254 1255 1256 <div class="swiper-slide card"> 1257 1258 1259 1260 1261 <div class="products" data-lazy="false"> 1262 <div class="bg-products"> 1263 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-fortune-mooncake"> 1264 <svg xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1265 <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.
126511233C11.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"/> 1266 </svg> 1267 1268 </div> 1269 <a href="/products/mid-autumn-of-fortune-mooncake"> 1270 1271 <div class="product-card-img-container p-0 position-relative"> 1272 1273 <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"> 1274 </div> 1275 <div class="card-body product-card-info"> 1276 <h5 class="h5 mb-0"> 1277 Mid Autumn of Fortune Mooncake 1278 </h5> 1279 <div class="product-card-price"> 1280 1281 <div class="product-price-sale"> 1282 <s class="product-card-price-before card-money">Rp 1.188.000</s> 1283 <span class="product-card-discount small"> 1284 (-33%) 1285 </span> 1286 </div> 1287 1288 1289 1290 <div class="price-discount"> 1291 <h4 class="product-card-price-after card-money">Rp 788.000</h4> 1292 </div> 1293 1294 1295 1296 1297 1298 </div> 1299 1300 </div> 1301 </a> 1302 </div> 1303 1304 </div> 1305 1306 </div> 1307 1308 1309 1310 <div class="swiper-slide card"> 1311 1312 1313 1314 1315 <div class="products" data-lazy="false"> 1316 <div class="bg-products"> 1317 <div class="wishlist-toggle" data-product-handle="mid-autumn-festival-mooncake"> 1318 <svg xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1319 <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.
131911233C11.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"/> 1320 </svg> 1321 1322 </div> 1323 <a href="/products/mid-autumn-festival-mooncake"> 1324 1325 <div class="product-card-img-container p-0 position-relative"> 1326 1327 <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"> 1328 </div> 1329 <div class="card-body product-card-info"> 1330 <h5 class="h5 mb-0"> 1331 Mid Autumn Festival Mooncake 1332 </h5> 1333 <div class="product-card-price"> 1334 1335 <div class="product-price-sale"> 1336 <s class="product-card-price-before card-money">Rp 1.288.000</s> 1337 <span class="product-card-discount small"> 1338 (-23%) 1339 </span> 1340 </div> 1341 1342 1343 1344 <div class="price-discount"> 1345 <h4 class="product-card-price-after card-money">Rp 988.000</h4> 1346 </div> 1347 1348 1349 1350 1351 1352 </div> 1353 1354 </div> 1355 </a> 1356 </div> 1357 1358 </div> 1359 1360 </div> 1361 1362 1363 1364 <div class="swiper-slide card"> 1365 1366 1367 1368 1369 <div class="products" data-lazy="false"> 1370 <div class="bg-products"> 1371 <div class="wishlist-toggle" data-product-handle="the-jade-bouquet"> 1372 <svg xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1373 <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.
137311233C11.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"/> 1374 </svg> 1375 1376 </div> 1377 <a href="/products/the-jade-bouquet"> 1378 1379 <div class="product-card-img-container p-0 position-relative"> 1380 1381 <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"> 1382 </div> 1383 <div class="card-body product-card-info"> 1384 <h5 class="h5 mb-0"> 1385 The Jade Bouquet 1386 </h5> 1387 <div class="product-card-price"> 1388 1389 <div class="product-price-sale"> 1390 <s class="product-card-price-before card-money">Rp 435.000</s> 1391 <span class="product-card-discount small"> 1392 (-34%) 1393 </span> 1394 </div> 1395 1396 1397 1398 <div class="price-discount"> 1399 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1400 </div> 1401 1402 1403 1404 1405 1406 </div> 1407 1408 </div> 1409 </a> 1410 </div> 1411 1412 </div> 1413 1414 </div> 1415 1416 1417 1418 <div class="swiper-slide card"> 1419 1420 1421 1422 1423 <div class="products" data-lazy="false"> 1424 <div class="bg-products"> 1425 <div class="wishlist-toggle" data-product-handle="the-selena-bouquet"> 1426 <svg xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1427 <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.
142711233C11.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"/> 1428 </svg> 1429 1430 </div> 1431 <a href="/products/the-selena-bouquet"> 1432 1433 <div class="product-card-img-container p-0 position-relative"> 1434 1435 <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"> 1436 </div> 1437 <div class="card-body product-card-info"> 1438 <h5 class="h5 mb-0"> 1439 The Selena Bouquet 1440 </h5> 1441 <div class="product-card-price"> 1442 1443 <div class="product-price-sale"> 1444 <s class="product-card-price-before card-money">Rp 335.000</s> 1445 <span class="product-card-discount small"> 1446 (-29%) 1447 </span> 1448 </div> 1449 1450 1451 1452 <div class="price-discount"> 1453 <h4 class="product-card-price-after card-money">Rp 235.000</h4> 1454 </div> 1455 1456 1457 1458 1459 1460 </div> 1461 1462 </div> 1463 </a> 1464 </div> 1465 1466 </div> 1467 1468 </div> 1469 1470 1471 1472 <div class="swiper-slide card"> 1473 1474 1475 1476 1477 <div class="products" data-lazy="false"> 1478 <div class="bg-products"> 1479 <div class="wishlist-toggle" data-product-handle="the-viola-bouquet"> 1480 <svg xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1481 <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.
148111233C11.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"/> 1482 </svg> 1483 1484 </div> 1485 <a href="/products/the-viola-bouquet"> 1486 1487 <div class="product-card-img-container p-0 position-relative"> 1488 1489 <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"> 1490 </div> 1491 <div class="card-body product-card-info"> 1492 <h5 class="h5 mb-0"> 1493 The Viola Bouquet 1494 </h5> 1495 <div class="product-card-price"> 1496 1497 <div class="product-price-sale"> 1498 <s class="product-card-price-before card-money">Rp 385.000</s> 1499 <span class="product-card-discount small"> 1500 (-25%) 1501 </span> 1502 </div> 1503 1504 1505 1506 <div class="price-discount"> 1507 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1508 </div> 1509 1510 1511 1512 1513 1514 </div> 1515 1516 </div> 1517 </a> 1518 </div> 1519 1520 </div> 1521 1522 </div> 1523 1524 1525 1526 <div class="swiper-slide card"> 1527 1528 1529 1530 1531 <div class="products" data-lazy="false"> 1532 <div class="bg-products"> 1533 <div class="wishlist-toggle" data-product-handle="the-minerva-bouquet"> 1534 <svg xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1535 <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.
153511233C11.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"/> 1536 </svg> 1537 1538 </div> 1539 <a href="/products/the-minerva-bouquet"> 1540 1541 <div class="product-card-img-container p-0 position-relative"> 1542 1543 <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"> 1544 </div> 1545 <div class="card-body product-card-info"> 1546 <h5 class="h5 mb-0"> 1547 The Minerva Bouquet 1548 </h5> 1549 <div class="product-card-price"> 1550 1551 <div class="product-price-sale"> 1552 <s class="product-card-price-before card-money">Rp 385.000</s> 1553 <span class="product-card-discount small"> 1554 (-25%) 1555 </span> 1556 </div> 1557 1558 1559 1560 <div class="price-discount"> 1561 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1562 </div> 1563 1564 1565 1566 1567 1568 </div> 1569 1570 </div> 1571 </a> 1572 </div> 1573 1574 </div> 1575 1576 </div> 1577 1578 1579 1580 <div class="swiper-slide card"> 1581 1582 1583 1584 1585 <div class="products" data-lazy="false"> 1586 <div class="bg-products"> 1587 <div class="wishlist-toggle" data-product-handle="congraduations-bouquet"> 1588 <svg xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1589 <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.
158911233C11.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"/> 1590 </svg> 1591 1592 </div> 1593 <a href="/products/congraduations-bouquet"> 1594 1595 <div class="product-card-img-container p-0 position-relative"> 1596 1597 <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"> 1598 </div> 1599 <div class="card-body product-card-info"> 1600 <h5 class="h5 mb-0"> 1601 Congraduations Bouquet 1602 </h5> 1603 <div class="product-card-price"> 1604 1605 <div class="product-price-sale"> 1606 <s class="product-card-price-before card-money">Rp 380.000</s> 1607 <span class="product-card-discount small"> 1608 (-25%) 1609 </span> 1610 </div> 1611 1612 1613 1614 <div class="price-discount"> 1615 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1616 </div> 1617 1618 1619 1620 1621 1622 </div> 1623 1624 </div> 1625 </a> 1626 </div> 1627 1628 </div> 1629 1630 </div> 1631 1632 1633 1634 <div class="swiper-slide card"> 1635 1636 1637 1638 1639 <div class="products" data-lazy="false"> 1640 <div class="bg-products"> 1641 <div class="wishlist-toggle" data-product-handle="grad-gorgeous-bouquet"> 1642 <svg xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1643 <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.
164311233C11.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"/> 1644 </svg> 1645 1646 </div> 1647 <a href="/products/grad-gorgeous-bouquet"> 1648 1649 <div class="product-card-img-container p-0 position-relative"> 1650 1651 <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"> 1652 </div> 1653 <div class="card-body product-card-info"> 1654 <h5 class="h5 mb-0"> 1655 Grad & Gorgeous Bouquet 1656 </h5> 1657 <div class="product-card-price"> 1658 1659 <div class="product-price-sale"> 1660 <s class="product-card-price-before card-money">Rp 380.000</s> 1661 <span class="product-card-discount small"> 1662 (-25%) 1663 </span> 1664 </div> 1665 1666 1667 1668 <div class="price-discount"> 1669 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1670 </div> 1671 1672 1673 1674 1675 1676 </div> 1677 1678 </div> 1679 </a> 1680 </div> 1681 1682 </div> 1683 1684 </div> 1685 1686 1687 </div> 1688 </div> 1689 1690 </div> 1691 </div> 1692 </div> 1693 1694 <div class="site-overlay" style="display: none"></div> 1695 </div> 1696
1696<script> 1697 1698 var swiper = new Swiper('.popup-recommend', { 1699 slidesPerView : 4, 1700 spaceBetween: 30, 1701 lazy: true , 1702 speed: 300, 1703 breakpoints: { 1704 // when window width is <= 576px 1705 576: { 1706 slidesPerView: 2, 1707 spaceBetween: 10, 1708 freeMode: true, 1709 resistance : true, 1710 resistanceRatio : 0, 1711 freeModeMomentumRatio : 0.45, 1712 freeModeMomentumVelocityRatio : 1.5 1713 }, 1714 768: { 1715 slidesPerView: 2, 1716 spaceBetween: 10 1717 }, 1718 992: { 1719 slidesPerView: 3, 1720 spaceBetween: 20 1721 } 1722 } 1723 }); 1724 1725 const searchContainer = $("#search-popup") 1726 const searchInput = $(".search-popup") 1727 const result_collection = $('.result_collection') 1728 const result_product = $('.result_product') 1729 const resultsearch = $('.resultsearch') 1730 const resultrecommend = $(".group-recommend") 1731 const moreresult = $(".moreresult") 1732 1733 searchInput.keyup(function(){ 1734 const input = $(this).val() 1735 moreresult.find("p span").text(` â${input}â`) 1736 if(input.length > 2) { 1737 $(".close-search").show() 1738 const url = `https://outerbloom.com/search/suggest.json?resources[limit]=10&resources[limit_scope]=each&resources[type]=collection,product&q=${input}` 1739 $.ajax({ 1740 type: 'GET', 1741 url, 1742 beforeSend: function() { 1743 // setting a timeout 1744 // $(placeholder).addClass('loading'); 1745 }, 1746 success: function(response) { 1747 resultsearch.show() 1748 resultrecommend.hide() 1749 result_collection.html("") 1750 result_product.html("") 1751 const collections = response.resources.results.collections 1752 const products = response.resources.results.products 1753 let collection_length = collections.length 1754 let product_length = products.length 1755 // if(collections.length > 5) { 1756 // collection_length = 5 1757 // } 1758 // if(products.length > 5) { 1759 // product_length = 5 1760 // } 1761 for(let i=0;i<collection_length;i++){ 1762 const title = collections[i].title 1763 const url = collections[i].url 1764 let html_collection 1765 if(!title.includes('AIA') && !title.includes('AXA') && !title.includes('WOM') && !title.includes('Upsell')) { 1766 html_collection = ` 1767 <li class="item" data-title="${title}"> 1768 <a href="${url}" data-type="collection" class="item_url" data-title="${title}" data-url="${url}">${title}</a> 1769 </li> 1770 ` 1771 } 1772 result_collection.append(html_collection) 1773 } 1774 for(let i=0;i<product_length;i++){ 1775 const title = products[i].title 1776 const url = products[i].url 1777 const image = products[i].featured_image.url 1778 const vendor = products[i].vendor 1779 let html_product 1780 if(vendor !== 'AIA' && vendor !== 'AXA' && vendor !== 'WOM Finance' && !title.includes('Extra Shipping Cost') && !title.includes('[US]') && !title.includes('Rp')){ 1781 html_product = ` 1782 <li class="item" data-vendor="${vendor}"> 1783 <a href="${url}" class="item_url" data-type="product" data-title="${title}" data-url="${url}"> 1784 <img src="${image}" alt="${title}" style="width: 70px;vertical-align: middle;margin-right: 20px;"><span>${title}</span> 1785 </a> 1786 </li> 1787 ` 1788 } 1789 result_product.append(html_product) 1790 } 1791 }, 1792 error: function(xhr) { // if error occured 1793 alert("Error occured.please try again"); 1794 }, 1795 complete: function(response) { 1796 // $(placeholder).removeClass('loading'); 1797 }, 1798 dataType: 'JSON' 1799 }); 1800 } else { 1801 result_collection.html("") 1802 result_product.html("") 1803 1804 resultsearch.hide() 1805 resultrecommend.show() 1806 } 1807 }) 1808 1809 moreresult.click(function(){ 1810 $("#search-btn").trigger("click"); 1811 }) 1812 1813 $(".close-search").click(function(){ 1814 $(this).hide() 1815 searchInput.val("") 1816 searchInput.focus() 1817 resultsearch.hide() 1818 resultrecommend.show() 1819 }) 1820 1821 function setCookie(name,value,days) { 1822 var expires = ""; 1823 if (days) { 1824 var date = new Date(); 1825 date.setTime(date.getTime() + (days*24*60*60*1000)); 1826 expires = "; expires=" + date.toUTCString(); 1827 } 1828 document.cookie = name + "=" + (value || "") + expires + "; path=/"; 1829 } 1830 function getCookie(name) { 1831 var nameEQ = name + "="; 1832 var ca = document.cookie.split(';');
1833 for(var i=0;i < ca.length;i++) { 1834 var c = ca[i]; 1835 while (c.charAt(0)==' ') c = c.substring(1,c.length); 1836 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 1837 } 1838 return null; 1839 } 1840 let last_search_name = [] 1841 let last_search_url = [] 1842 $(".group-recent").hide() 1843 if(getCookie("last_search_name") != null && getCookie("last_search_url") != null){ 1844 if(getCookie("last_search_name") != "" && getCookie("last_search_url") != ""){ 1845 $(".group-recent").show() 1846 last_search_name = getCookie("last_search_name"); 1847 last_search_url = getCookie("last_search_url"); 1848 const arrName = last_search_name.substring(1).split(',').reverse() 1849 const arrUrl = last_search_url.substring(1).split(',').reverse() 1850 console.log(arrName, 'Array Name') 1851 console.log(arrUrl, 'Array Url') 1852 let length = arrName.length 1853 if(arrName.length > 5) { 1854 length = 5 1855 } 1856 for(let n=0;n<length;n++){ 1857 let html2 = `<li><svg viewBox="0 0 24 24" xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.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>` 1858 $(".group-recent ul").append(html2) 1859 } 1860 } 1861 } 1862 console.log(last_search_name, 'Name') 1863 console.log(last_search_url, 'url') 1864 1865 resultsearch.delegate(".item a", "click", function(){ 1866 let name = [last_search_name] 1867 let url = [last_search_url] 1868 name.push($(this).attr('data-title')) 1869 url.push($(this).attr('data-url')) 1870 setCookie("last_search_name",name,7); 1871 setCookie("last_search_url",url,7); 1872 }) 1873 1874 $(".delete-all-history").click(function() { 1875 setCookie("last_search_name",null,0); 1876 setCookie("last_search_url",null,0); 1877 $(".last-search").hide(); 1878 setTimeout(function(){ 1879 location.reload(); 1880 }, 500); 1881 }) 1882 1883 $("#search-trigger").click(function(){ 1884 search_open() 1885 }) 1886 $(".icon-search-mobile").click(function(){ 1887 search_open() 1888 }) 1889 $(".search-header svg").click(function(){ 1890 search_close() 1891 }) 1892 $(".icon-key-mobile").click(function(){ 1893 search_close() 1894 }) 1895 1896 function search_open() { 1897 $("body").addClass("search-popup-open") 1898 $("#nav-mobile-icon, .search-header label, .icon-search-mobile").hide() 1899 $("#search-popup, .search-header svg, .icon-key-mobile").show() 1900 $(".search-popup").focus() 1901 $('.popup-recommend')[0].swiper.update(); 1902 } 1903 function search_close() { 1904 $("body").removeClass("search-popup-open") 1905 $("#nav-mobile-icon, .search-header label, .icon-search-mobile").show() 1906 $("#search-popup, .search-header svg, .icon-key-mobile").hide() 1907 searchInput.val("") 1908 resultsearch.hide() 1909 resultrecommend.show() 1910 } 1911 1912 $(".site-overlay").click(function(){ 1913 search_close() 1914 }) 1915 </script>
1915 1916 1917 </div> 1918 </div> 1919 1920 <div id="PageContainer" class="is-moved-by-drawerx" style="background-color: #000000;"> 1921 <main class="main-content pt-0" role="main"> 1922 1923 <div id="breadcrumbProduct" class="d-none d-lg-block"> 1924 <style> 1925 #breadcrumbProduct { 1926 padding: 20px 0; 1927 } 1928 #breadcrumbProduct ul { 1929 display: flex; 1930 padding: 0; 1931 list-style: none; 1932 margin: 0; 1933 gap: 12px; 1934 } 1935 #breadcrumbProduct ul li { 1936 text-transform: uppercase; 1937 margin: 0; 1938 font-size: 12px; 1939 } 1940 #breadcrumbProduct ul li a { 1941 color: #757575; 1942 } 1943 1944 #breadcrumbProduct ul li svg { 1945 width: 10px; 1946 height: 10px; 1947 padding: 0; 1948 color: #757575; 1949 vertical-align: middle; 1950 } 1951 </style> 1952 <div class="container" style="color: #ffd700;"> 1953 <ul role="navigation" aria-label="breadcrumbs"> 1954 <li><a href="https://www.apprendreetsorienter.org/statuts/" style="color: #ffd700;">RAJABANDOT</a></li> 1955 <li><svg xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="7" height="10" viewBox="0 0 7 10" fill="none"> 1956 <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"/> 1957 </svg></li> 1958 <li>RAJABANDOT LOGIN</li> 1959 <li>RAJABANDOT TOGEL</li> 1960 <li>RAJABANDOT MACAU LOGIN</li> 1961 <li>RAGU? GABUNG DI RAJABANDOT ã½ï¸ Situs Toto Macau Gacor Minimal Bet Murah & Prediksi Macau Ter-Percaya</li> 1962 1963 </ul> 1964 </div> 1965 1966 </div> 1967 1968
1968<script type="application/ld+json"> 1969 { 1970 "@context": "https://schema.org", 1971 "@type": "Product", 1972 "name": "RAGU? GABUNG DI RAJABANDOT ã½ï¸ Situs Toto Macau Gacor Minimal Bet Murah & Prediksi Macau Ter-Percaya", 1973 "image": "https://imgsaya4.io/images/2026/04/24/18.jpeg", 1974 "description": "Rajabandot hadir sebagai solusi utama bagi para penggemar yang menginginkan pengalaman bermain terbaik di Indonesia.", 1975 "brand": { 1976 "@type": "Brand", 1977 "name": "RAJABANDOT" 1978 }, 1979 "sku": "RAJABANDOT", 1980 "mpn": "RAJABANDOT", 1981 "url": "https://www.apprendreetsorienter.org/statuts/", 1982 "offers": { 1983 "@type": "Offer", 1984 "url": "https://www.apprendreetsorienter.org/statuts/", 1985 "priceCurrency": "USD", 1986 "price": "10.00", 1987 "priceValidUntil": "2025-12-25", 1988 "itemCondition": "https://schema.org/NewCondition", 1989 "availability": "https://schema.org/InStock", 1990 "seller": { 1991 "@type": "Organization", 1992 "name": "RAJABANDOT" 1993 } 1994 }, 1995 "aggregateRating": { 1996 "@type": "AggregateRating", 1997 "ratingValue": "5.0", 1998 "reviewCount": 858 1999 }, 2000 "review": [ 2001 { 2002 "@type": "Review", 2003 "reviewRating": { 2004 "@type": "Rating", 2005 "ratingValue": "5", 2006 "bestRating": "5" 2007 }, 2008 "author": { 2009 "@type": "Person", 2010 "name": "julian" 2011 } 2012 }, 2013 { 2014 "@type": "Review", 2015 "reviewRating": { 2016 "@type": "Rating", 2017 "ratingValue": "5", 2018 "bestRating": "5" 2019 }, 2020 "author": { 2021 "@type": "Person", 2022 "name": "alice" 2023 } 2024 } 2025 ] 2026 } 2027 </script>
2027<script type="application/ld+json"> 2028 { 2029 "@context": "https://schema.org", 2030 "@type": "BreadcrumbList", 2031 "itemListElement": [ 2032 { 2033 "@type": "ListItem", 2034 "position": 1, 2035 "name": "RAJABANDOT", 2036 "item": "https://www.apprendreetsorienter.org/statuts/" 2037 }, 2038 { 2039 "@type": "ListItem", 2040 "position": 2, 2041 "name": "RAJABANDOT MACAU", 2042 "item": "https://www.apprendreetsorienter.org/statuts/" 2043 }, 2044 { 2045 "@type": "ListItem", 2046 "position": 3, 2047 "name": "RAJABANDOT LOGIN", 2048 "item": "https://www.apprendreetsorienter.org/statuts/" 2049 }, 2050 { 2051 "@type": "ListItem", 2052 "position": 4, 2053 "name": "TOTO MACAU", 2054 "item": "https://www.apprendreetsorienter.org/statuts/" 2055 }, 2056 { 2057 "@type": "ListItem", 2058 "position": 5, 2059 "name": "RAJABANDOT TOGEL", 2060 "item": "https://www.apprendreetsorienter.org/statuts/" 2061 }, 2062 { 2063 "@type": "ListItem", 2064 "position": 6, 2065 "name": "RAJABANDOT RESMI", 2066 "item": "https://www.apprendreetsorienter.org/statuts/" 2067 }, 2068 { 2069 "@type": "ListItem", 2070 "position": 7, 2071 "name": "RAJABANDOT MACAU LOGIN", 2072 "item": "https://www.apprendreetsorienter.org/statuts/" 2073 }, 2074 { 2075 "@type": "ListItem", 2076 "position": 8, 2077 "name": "RAGU? GABUNG DI RAJABANDOT ã½ï¸ Situs Toto Macau Gacor Minimal Bet Murah & Prediksi Macau Ter-Percaya", 2078 "item": "https://www.apprendreetsorienter.org/statuts/" 2079 } 2080 ] 2081 } 2082 </script>
2082 2083 2084 <!--faq--> 2085 2086
2086<script type="application/ld+json" id="faq-schema"> 2087{ 2088 "@context": "https://schema.org", 2089 "@type": "FAQPage", 2090 "mainEntity": [ 2091 { 2092 "@type": "Question", 2093 "name": "1. Apa itu Rajabandot dan mengapa menjadi pilihan favorit pemain Toto Macau?", 2094 "acceptedAnswer": { 2095 "@type": "Answer", 2096 "text": "Rajabandot adalah Situs Toto Macau Gacor yang dikenal karena menawarkan minimal bet murah dan prediksi Macau terpercaya. Situs ini menjadi favorit karena memberikan kombinasi antara keamanan tingkat tinggi, peluang kemenangan yang besar, dan aksesibilitas yang mudah bagi semua kalangan pemain di Indonesia." 2097 } 2098 }, 2099 { 2100 "@type": "Question", 2101 "name": "2. Bagaimana cara melakukan daftar Toto Macau di situs ini?", 2102 "acceptedAnswer": { 2103 "@type": "Answer", 2104 "text": "Proses pendaftaran di agen toto resmi Rajabandot sangatlah praktis dan cepat. Anda hanya perlu mengunjungi situs resmi, mengisi formulir pendaftaran dengan data yang valid, dan akun Anda akan aktif dalam hitungan menit tanpa prosedur yang berbelit-belit." 2105 } 2106 }, 2107 { 2108 "@type": "Question", 2109 "name": "3. Apakah keamanan data saya terjamin di Rajabandot?", 2110 "acceptedAnswer": { 2111 "@type": "Answer", 2112 "text": "Tentu saja. Sebagai bandar togel terpercaya, Rajabandot menggunakan teknologi enkripsi tingkat tinggi untuk melindungi seluruh informasi pribadi dan data transaksi member. Keamanan dan privasi Anda adalah prioritas utama kami dalam menjaga integritas permainan." 2113 } 2114 }, 2115 { 2116 "@type": "Question", 2117 "name": "4. Apa yang harus saya lakukan jika situs utama sulit diakses?", 2118 "acceptedAnswer": { 2119 "@type": "Answer", 2120 "text": "Anda tidak perlu khawatir karena kami selalu menyediakan link alternatif Rajabandot yang resmi dan responsif. Link ini memastikan Anda tetap bisa terhubung dengan permainan Toto Macau favorit Anda kapan saja dan di mana saja tanpa hambatan teknis." 2121 } 2122 }, 2123 { 2124 "@type": "Question", 2125 "name": "5. Bagaimana cara memanfaatkan prediksi Macau untuk meningkatkan kemenangan?", 2126 "acceptedAnswer": { 2127 "@type": "Answer", 2128 "text": "Rajabandot menyediakan bocoran angka macau yang disusun berdasarkan analisis data statistik historis. Dengan mempelajari pola dan tren angka melalui prediksi yang kami sediakan, Anda dapat membuat keputusan taruhan yang lebih akurat dan terinformasi." 2129 } 2130 } 2131 ] 2132} 2133</script>
2133 2134
2134<script type="application/ld+json"> 2135 { 2136 "@context": "https://schema.org", 2137 "@type": "Organization", 2138 "name": "RAJABANDOT", 2139 "url": "https://www.apprendreetsorienter.org/statuts/", 2140 "logo": "https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif", 2141 "sameAs": [ 2142 "https://www.facebook.com/RAJABANDOT", 2143 "https://twitter.com/RAJABANDOT", 2144 "https://www.instagram.com/RAJABANDOT" 2145 ], 2146 "contactPoint": { 2147 "@type": "ContactPoint", 2148 "telephone": "+62-8946-113-4615", 2149 "contactType": "customer support", 2150 "areaServed": "ID", 2151 "availableLanguage": ["Indonesian", "English"] 2152 } 2153 } 2154 </script>
2154 2155 2156
2156<script type="application/ld+json"> 2157 { 2158 "@context": "https://schema.org", 2159 "@type": "VideoObject", 2160 "name": "RAGU? GABUNG DI RAJABANDOT ã½ï¸ Situs Toto Macau Gacor Minimal Bet Murah & Prediksi Macau Ter-Percaya", 2161 "description": "Rajabandot hadir sebagai solusi utama bagi para penggemar yang menginginkan pengalaman bermain terbaik di Indonesia.", 2162 "thumbnailUrl": [ 2163 "https://imgsaya4.io/images/2026/04/24/18.jpeg", 2164 "https://imgsaya4.io/images/2026/04/24/18.jpeg" 2165 ], 2166 "uploadDate": "2025-09-28T04:19:10-04:00", 2167 "duration": "PT168", 2168 "contentUrl": "https://www.apprendreetsorienter.org/statuts/" 2169 } 2170 </script>
2170 2171 2172
2172<script type="application/ld+json"> 2173 { 2174 "@context": "https://schema.org", 2175 "@type": "BreadcrumbList", 2176 "itemListElement": [ 2177 { 2178 "@type": "ListItem", 2179 "position": 1, 2180 "name": "Home", 2181 "item": "https://www.apprendreetsorienter.org/statuts/" 2182 } 2183 ] 2184 } 2185 </script>
2185 2186 2187
2187<script type="application/ld+json"> 2188 { 2189 "@context": "https://schema.org", 2190 "@graph": [ 2191 { 2192 "@type": "Organization", 2193 "@id": "https://www.apprendreetsorienter.org/statuts/#org", 2194 "name": "RAJABANDOT", 2195 "url": "https://www.apprendreetsorienter.org/statuts/", 2196 "logo": "https://imgsaya4.io/images/2026/04/24/18.jpeg" 2197 }, 2198 { 2199 "@type": "WebSite", 2200 "@id": "https://www.apprendreetsorienter.org/statuts/#website", 2201 "url": "https://www.apprendreetsorienter.org/statuts/", 2202 "name": "RAJABANDOT", 2203 "publisher": { "@id": "https://www.apprendreetsorienter.org/statuts/#org" }, 2204 "inLanguage": "id-ID", 2205 "potentialAction": { 2206 "@type": "SearchAction", 2207 "target": "https://www.apprendreetsorienter.org/statuts/?s={search_term_string}", 2208 "query-input": "required name=search_term_string" 2209 } 2210 }, 2211 { 2212 "@type": "SoftwareApplication", 2213 "@id": "https://www.apprendreetsorienter.org/statuts/#app", 2214 "name": "RAJABANDOT", 2215 "applicationCategory": "GameApplication", 2216 "operatingSystem": "Android, iOS, Windows", 2217 "offers": { "@type": "Offer", "price": "0", "priceCurrency": "IDR" }, 2218 "aggregateRating": { "@type": "AggregateRating", "ratingValue": 4.9, "ratingCount": 62595 } 2219 } 2220 ] 2221 } 2222 </script>
2222 2223 2224 <div id="shopify-section-Product" class="shopify-section product-section mt-0"><link href="https://tahanpukul.info/outerbloom-global.css" rel="stylesheet" type="text/css" media="all" /> 2225 2226 2227 <style> 2228 .bg-card { 2229 background-color: #000000; 2230 } 2231 </style> 2232 2233 <!-- /templates/product.liquid --> 2234 2235 2236 <!-- <div itemscope itemtype="http://schema.org/Product"> --> 2237 2238 2239 <div class="product-standing-flower" data-product-type="flowerBoard"> 2240 <meta itemprop="url" content="https://www.apprendreetsorienter.org/statuts/"> 2241 <meta itemprop="image" content="https://imgsaya4.io/images/2026/04/24/18.jpeg"> 2242 2243 2244 2245 <input id="data-sku" type="hidden" value="OBVSTF1086"> 2246 <div class="product-single" style="background-image: url(https://i.pinimg.com/474x/b9/23/39/b923392626a609fea6ebfca99103720d.jpg); background-attachment: fixed;"> 2247 <div id="product-top" class="container"> 2248 <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;"> 2249 <div id="product-image" class="col-lg-7 text-center"> 2250 <div class="product-image"> 2251 <div class="row no-gutters"> 2252 2253 <div id="product-featured-image" class="row w-100"> 2254 2255 <div id="thumb-image-product" class="col-lg-2 col-12 d-none d-lg-block"> 2256 2257 <div class="swiper-container gallery-thumbs" style="min-height: 500px"> 2258 <ul class="list-unstyled slider swiper-wrapper slider-nav ProductThumbs thumbnails" id="ProductThumbsx"> 2259 2260 <li class="swiper-slide" data-type="image"> 2261 <a 2262 href="files/Blossom-Shine-WM.jpg" 2263 data-standard="https://imgsaya4.io/images/2026/04/24/18.jpeg" 2264 data-image="files/Blossom-Shine-WM.jpg" 2265 data-position="1" 2266 class="product-single__thumbnail" 2267 > 2268 <img 2269 class="lazyload w-100" 2270 src="https://imgsaya4.io/images/2026/04/24/18.jpeg" 2271 alt="RAGU? GABUNG DI RAJABANDOT ã½ï¸ Situs Toto Macau Gacor Minimal Bet Murah & Prediksi Macau Ter-Percaya" 2272 width="" 2273 height="" 2274 > 2275 </a> 2276 </li> 2277 2278 2279 2280 2281 <li class="swiper-slide" data-type="image"> 2282 <a 2283 href="https://imgsaya4.io/images/2026/04/24/18.jpeg" 2284 data-standard="https://imgsaya4.io/images/2026/04/24/18.jpeg" 2285 data-image="https://imgsaya4.io/images/2026/04/24/18.jpeg" 2286 data-position="2" 2287 class="product-single__thumbnail" 2288 > 2289 <img 2290 class="lazyload w-100" 2291 src="https://imgsaya4.io/images/2026/04/24/18.jpeg" 2292 alt="RAGU? GABUNG DI RAJABANDOT ã½ï¸ Situs Toto Macau Gacor Minimal Bet Murah & Prediksi Macau Ter-Percaya" 2293 width="" 2294 height="" 2295 > 2296 </a> 2297 </li> 2298 2299 2300 2301 2302 <li class="swiper-slide" data-type="image"> 2303 <a 2304 href="files/Blossom-Shine_3-WM.jpg" 2305 data-standard="https://imgsaya4.io/images/2026/04/24/18.jpeg" 2306 data-image="files/Blossom-Shine_3-WM.jpg" 2307 data-position="3" 2308 class="product-single__thumbnail" 2309 > 2310 <img 2311 class="lazyload w-100" 2312 src="https://imgsaya4.io/images/2026/04/24/18.jpeg" 2313 alt="RAGU? GABUNG DI RAJABANDOT ã½ï¸ Situs Toto Macau Gacor Minimal Bet Murah & Prediksi Macau Ter-Percaya" 2314 width="" 2315 height="" 2316 > 2317 </a> 2318 </li> 2319 2320 2321 2322 2323 <li class="swiper-slide" data-type="image"> 2324 <a 2325 href="files/Blossom-Shine_4.jpg"
2326 data-standard="https://imgsaya4.io/images/2026/04/24/18.jpeg" 2327 data-image="files/Blossom-Shine_4.jpg" 2328 data-position="4" 2329 class="product-single__thumbnail" 2330 > 2331 <img 2332 class="lazyload w-100" 2333 src="https://imgsaya4.io/images/2026/04/24/18.jpeg" 2334 alt="RAGU? GABUNG DI RAJABANDOT ã½ï¸ Situs Toto Macau Gacor Minimal Bet Murah & Prediksi Macau Ter-Percaya" 2335 width="" 2336 height="" 2337 > 2338 </a> 2339 </li> 2340 2341 2342 2343 </ul> 2344 </div> 2345 2346 </div> 2347 2348 <div 2349 id="featured-image-product" 2350 class="col-lg-10 col-12 d-none d-lg-block" 2351 > 2352 <div class="swiper-container gallery-top"> 2353 <div class="swiper-slide product-single__image"> 2354 2355 <div class="product-single__photos slider slider-for" id="ProductPhoto"> 2356 2357 2358 <div class="easyzoom easyzoom--overlay easyzoom--with-thumbnails"> 2359 <a href="https://imgsaya4.io/images/2026/04/24/18.jpeg"> 2360 <img 2361 src="https://imgsaya4.io/images/2026/04/24/18.jpeg" 2362 alt="RAGU? GABUNG DI RAJABANDOT ã½ï¸ Situs Toto Macau Gacor Minimal Bet Murah & Prediksi Macau Ter-Percaya" 2363 id="ProductPhotoImg" 2364 class="lazyload" 2365 > 2366 2367 </a> 2368 </div> 2369 </div> 2370 2371 </div> 2372 <div class="swiper-slide product-single__video" style="display: none"> 2373 <video 2374 src="https://cdn.shopify.com/videos/c/vp/05d379ea115d41c2bd0f7d08b1496bd9/05d379ea115d41c2bd0f7d08b1496bd9.HD-1080p-7.2Mbps-24002195.mp4" 2375 playsinline 2376 loop 2377 muted 2378 ></video> 2379 </div> 2380 </div> 2381 </div> 2382 </div> 2383 2384 <div id="featured-image-product2" class="col-12 d-lg-none"> 2385 <div class="swiper-container gallery-mobile"> 2386 <ul class="swiper-wrapper"> 2387 <li class="swiper-slide img"> 2388 2389 <img 2390 class="swiper-lazy" 2391 src="https://imgsaya4.io/images/2026/04/24/18.jpeg" 2392 data-src="https://imgsaya4.io/images/2026/04/24/18.jpeg" 2393 alt="RAGU? GABUNG DI RAJABANDOT ã½ï¸ Situs Toto Macau Gacor Minimal Bet Murah & Prediksi Macau Ter-Percaya" 2394 width="" 2395 height="" 2396 > 2397 2398 </li> 2399 2400 2401 <li class="swiper-slide img"> 2402 2403 <img 2404 class="swiper-lazy" 2405 src="https://imgsaya4.io/images/2026/04/24/18.jpeg" 2406 data-src="https://imgsaya4.io/images/2026/04/24/18.jpeg" 2407 alt="RAGU? GABUNG DI RAJABANDOT ã½ï¸ Situs Toto Macau Gacor Minimal Bet Murah & Prediksi Macau Ter-Percaya" 2408 width="" 2409 height="" 2410 > 2411 2412 </li> 2413 2414 2415 <li class="swiper-slide img"> 2416 2417 <img 2418 class="swiper-lazy" 2419 src="https://imgsaya4.io/images/2026/04/24/18.jpeg" 2420 data-src="https://imgsaya4.io/images/2026/04/24/18.jpeg" 2421 alt="RAGU? GABUNG DI RAJABANDOT ã½ï¸ Situs Toto Macau Gacor Minimal Bet Murah & Prediksi Macau Ter-Percaya" 2422 width="" 2423 height="" 2424 > 2425 2426 </li> 2427 2428 2429 <li class="swiper-slide img"> 2430 2431 <img 2432 class="swiper-lazy" 2433 src="https://imgsaya4.io/images/2026/04/24/18.jpeg" 2434 data-src="https://imgsaya4.io/images/2026/04/24/18.jpeg" 2435 alt="RAGU? GABUNG DI RAJABANDOT ã½ï¸ Situs Toto Macau Gacor Minimal Bet Murah & Prediksi Macau Ter-Percaya" 2436 width="" 2437 height="" 2438 > 2439 2440 </li> 2441 2442 2443 </ul> 2444 2445 <div class="swiper-button-prev">
2445<svg class="icon icon-chevron-left" xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.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> 2446 <div class="swiper-button-next"><svg xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="7" height="10" viewBox="0 0 7 10" fill="none"> 2447 <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"/> 2448 </svg></div> 2449 2450 <!-- Add Pagination --> 2451 <div class="swiper-pagination"></div> 2452 2453 </div> 2454 </div> 2455 2456 <div class="product-m-pageleb-video col-12 text-center d-lg-none"> 2457 <!-- product video --> 2458 <style> 2459 .view-video{display:block; margin:auto; padding:5px 10px;font-size:16px;font-weight:bold;border:2px solid #ffffff;background:#fff;} 2460 .view-video .icon-play{fill:#ffffff;vertical-align: middle;} 2461 .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;} 2462 .close-video{position:absolute;right:9px; top:8%;z-index:2;padding:5px;} 2463 .close-video .icon{width:30px;height:30px;} 2464 /*responsive iframe */ 2465 .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);} 2466 .video-container iframe {position: absolute;top:60%;left: 0;width: 100%;height: 100%;} 2467 2468 .youtube { 2469 background-color: #000; 2470 margin-bottom: 30px; 2471 position: relative; 2472 padding-top: 56.25%; 2473 overflow: hidden; 2474 cursor: pointer; 2475 width: 100%; 2476 } 2477 .swiper-slide .youtube { 2478 max-width: 480px; 2479 } 2480 .youtube img { 2481 width: 100%; 2482 top: -16.82%; 2483 left: 0; 2484 opacity: 0.7; 2485 } 2486 .youtube .play-button { 2487 width: 90px; 2488 height: 60px; 2489 background-color: #333; 2490 box-shadow: 0 0 30px rgba( 0,0,0,0.6 ); 2491 z-index: 1; 2492 opacity: 0.8; 2493 border-radius: 6px; 2494 } 2495 .youtube .play-button:before { 2496 content: ""; 2497 border-style: solid; 2498 border-width: 15px 0 15px 26.0px; 2499 border-color: transparent transparent transparent #fff; 2500 } 2501 .youtube img, 2502 .youtube .play-button { 2503 cursor: pointer; 2504 } 2505 .youtube img, 2506 .youtube iframe, 2507 .youtube .play-button, 2508 .youtube .play-button:before { 2509 position: absolute; 2510 } 2511 .youtube .play-button, 2512 .youtube .play-button:before { 2513 top: 50%; 2514 left: 50%; 2515 transform: translate3d( -50%, -50%, 0 ); 2516 } 2517 .youtube iframe { 2518 height: 100%; 2519 width: 100%; 2520 top: 0; 2521 left: 0; 2522 } 2523 </style> 2524 2525 2526 </div> 2527 </div> 2528 2529 <div class="product-desc-add position-relative d-none d-lg-block m-0"> 2530 2531 </div> 2532 2533
2533<script> 2534 if ($(window).width() < 991) { 2535 var direction = 'horizontal' 2536 } else { 2537 var direction = 'vertical' 2538 $(".gallery-thumbs").height($("#ProductPhotoImg").height()) 2539 } 2540 var swiper = new Swiper('.gallery-thumbs', { 2541 2542 direction, 2543 slidesPerView: 4.5, 2544 spaceBetween: 12, 2545 navigation: { 2546 nextEl: '.swiper-button-next', 2547 prevEl: '.swiper-button-prev', 2548 } 2549 }); 2550 2551 var swiper = new Swiper('.gallery-mobile', { 2552 //loop: true, 2553 lazy: true, 2554 speed: 300, 2555 resistance : true, 2556 resistanceRatio : 0, 2557 freeModeMomentumRatio : 0.45, 2558 freeModeMomentumVelocityRatio : 1.5, 2559 navigation: { 2560 nextEl: '.swiper-button-next', 2561 prevEl: '.swiper-button-prev', 2562 }, 2563 pagination: { 2564 el: '.swiper-pagination' 2565 }, 2566 useCSS3Transforms: false, 2567 loop: false, 2568 on: { 2569 init: function () { 2570 console.log('swiper initialized'); 2571 var currentVideo = $("[data-swiper-slide-index=" + this.realIndex + "]").find("video"); 2572 currentVideo.trigger('play'); 2573 }, 2574 }, 2575 }); 2576 2577 /* GET ALL VIDEOS */ 2578 var sliderVideos = $(".swiper-slide video"); 2579 2580 /* SWIPER API - Event will be fired after animation to other slide (next or previous) */ 2581 swiper.on('slideChange', function () { 2582 console.log('slide changed'); 2583 /* stop all videos */ 2584 sliderVideos.each(function( index ) { 2585 this.currentTime = 0; 2586 }); 2587 2588 /* SWIPER GET CURRENT AND PREV SLIDE (AND The VIDEO INSIDE) */ 2589 var prevVideo = $(`[data-swiper-slide-index="${this.previousIndex}]"`).find("video"); 2590 var currentVideo = $(`[data-swiper-slide-index="${this.realIndex}"]`).find("video"); 2591 prevVideo.trigger('stop'); 2592 currentVideo.trigger('play'); 2593 }); 2594 2595 2596 $("[data-video]").click(function(){ 2597 const file = $(this).data("video") 2598 $(".product-single__video").show() 2599 $(".product-single__image").hide() 2600 $(".product-single__video").find("video").attr("src", file) 2601 $(".product-single__video").find("video")[0].play(); 2602 }) 2603 $("[data-image]").click(function(){ 2604 $(".product-single__video").hide() 2605 $(".product-single__image").show() 2606 $(".product-single__video").find("video")[0].pause(); 2607 }) 2608 2609 $("#product-image .swiper-slide").each(function(){ 2610 let width = $(this).width() 2611 $(this).height(width) 2612 }) 2613 2614 $(window).resize(function() { 2615 $("#product-image .swiper-slide").each(function(){ 2616 let width = $(this).width() 2617 $(this).height(width) 2618 }) 2619 }) 2620 </script>
2620 2621 2622 </div> 2623 2624 2625 <div class="grid__item_product-info mb-3"> 2626 <div class="c-pdp-product-info"> 2627 <ul class="c-pdp-product-info__service c-pdp-product-info__service--active"> 2628 <!-- artikel --> 2629 <li> 2630 Rajabandot hadir sebagai solusi utama bagi para penggemar yang menginginkan pengalaman bermain terbaik di Indonesia. 2631 </li> 2632 2633 2634 2635 2636 </ul> 2637 </div> 2638 </div> 2639 2640 2641 2642 2643 2644 <style> 2645 .c-pdp-product-info__service--active { 2646 font-size: 12px; 2647 padding-left: 10px; 2648 text-align: left; 2649 max-width: 550px; 2650 margin: auto; 2651 color: #fff; 2652 } 2653 .c-pdp-product-info__service--active li { 2654 list-style: disc; 2655 } 2656 .c-pdp-product-info { 2657 background-color: #000000; 2658 padding: 12px; 2659 margin: 0; 2660 } 2661 .freeship em { 2662 font-style: italic; 2663 font-size: 12px !important; 2664 } 2665 2666 2667 </style> 2668 2669
2669<script> 2670 $(document).ready(function(){ 2671 if ( $(".c-pdp-product-info__service li").length == 1 ) { 2672 $(".c-pdp-product-info__service").addClass("no-bullet"); 2673 $(".c-pdp-product-info__service li").addClass("no-bullets"); 2674 } 2675 }); 2676 </script>
2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 </div> 2690 <div id="product-meta" class="col-lg-5 p-0"> 2691 <div class="product-meta"> 2692 <style> 2693 .product-meta--review {margin-top:10px} 2694 .freeship * {font-size: 14px !important;font-style: normal;} 2695 </style> 2696 <h1 itemprop="name" class="mb-2" style="color: rgb(255, 230, 0); font-weight: bold;">RAGU? GABUNG DI RAJABANDOT ã½ï¸ Situs Toto Macau Gacor Minimal Bet Murah & Prediksi Macau Ter-Percaya</h1> 2697 2698 <div itemprop="offers" itemscope itemtype="http://schema.org/Offer"> 2699 <meta itemprop="priceCurrency" content="IDR"> 2700 2701 <link itemprop="availability" href="https://schema.org/InStock"> 2702
2702<script 2703 type="text/javascript" 2704 src="//platform-api.sharethis.com/js/sharethis.js#property=5acdc0aa3ef3c0001396fd50&product=custom-share-buttons" 2705 async="async" 2706 ></script>
2706 2707 2708 2709 2710 2711 <span class="visually-hidden">Translation missing: en.products.general.regular_price</span> 2712 2713 <span class="visually-hidden">Translation missing: en.products.general.sale_price</span> 2714 2715 <div class="row no-gutters mb-3"> 2716 <span 2717 id="ProductPrice" 2718 class="h2 ProductPrice" 2719 itemprop="price" 2720 content="835000" style="color: #ffffff;" 2721 > 2722 Rp 10.000 2723 </span> 2724 <div class="discount-product-detail"> 2725 <p id="ComparePrice" class="ComparePrice mt-2 mt-lg-0"> 2726 Rp 100.000 2727 </p> 2728 <span class=" tag-discount"> 2729 2730 2731 <span id="newDiscount" class="product-tag persentase-discount hide"> 2732 (90%) 2733 </span><br> 2734 2735 </span> 2736 </div> 2737 </div> 2738 2739 <div class="row no-gutters meta-sds"> 2740 <div class="col-12 mb-2 mb-lg-0 stock-info"> 2741 2742 2743 <span 2744 id="ProductStock-Product" 2745 class="product-single__stock mb-2 hide" 2746 > 2747 2748 2749 2750 2751 Barang dikirim pada 2752 2753 2754 2755 </span> 2756 2757 <style> 2758 .short-desc-desktop { 2759 margin-bottom: 2rem; 2760 color: white; 2761 } 2762 .short-desc ul li:nth-child(n + 4) { 2763 display: none; 2764 } 2765 .short-desc ul li.showList:nth-child(n + 4) { 2766 display: list-item; 2767 } 2768 label.more { 2769 display: none; 2770 } 2771 label.more.showMe { 2772 display: block; 2773 font-size: 12px; 2774 text-transform: uppercase; 2775 font-weight: 700; 2776 cursor: pointer; 2777 } 2778 </style> 2779 2780 <div class="short-desc-desktop d-none d-lg-block"> 2781 <div class="short-desc"> 2782 2783 <p>Rajabandot hadir sebagai solusi utama bagi para penggemar yang menginginkan pengalaman bermain terbaik di Indonesia.</p> 2784 </div> 2785 <label class="more">Show More â</label>
2786 </div><br> 2787 2788 2789
2789<script> 2790 var liCount; 2791 $(document).ready(function () { 2792 $(".short-desc ul").each(function() { 2793 liCount = $(this).children("li").length; 2794 if (liCount > 3) { 2795 $(this).parent(".short-desc").next(".more").addClass("showMe"); 2796 } 2797 }); 2798 2799 $(".more").click(function () { 2800 //$(".short-desc").find("li").addClass("showList"); 2801 // $(this).hide(); 2802 $("#product-desc").find("ul").show() 2803 $('html, body').animate({ 2804 scrollTop: $("#product-desc").offset().top - 250 2805 }, 2000); 2806 $("#product-desc").css("height","auto"); 2807 $("#more_content").remove(); 2808 $(".product-spec").append("<div id='less_content' class='readmore'><span class='less_content'>Less</span></div>") 2809 }); 2810 }); 2811 </script>
2811 2812 2813 2814 </div> 2815 </div> 2816 2817 <div id="purchaseProduct"> 2818 2819 2820 2821 2822 <style> 2823 .variant-metafield { 2824 display: block!important; 2825 width: 1px; 2826 padding: 0; 2827 border-color: #fff; 2828 } 2829 .select2-results__option[aria-disabled] { 2830 display: none; 2831 } 2832 2833 .towel-bordir { 2834 width: 100%; 2835 display: flex; 2836 align-items: center; 2837 justify-content: space-around; 2838 } 2839 </style> 2840 2841 2842 2843 2844
2844<script> 2845 2846 2847 </script>
2847 2848 2849 2850 2851 2852 2853 2854 <select 2855 name="id[]" 2856 id="productSelect" 2857 class="product-single__variants ignore hide hide" 2858 > 2859 2860 2861 2862 <option 2863 2864 selected="selected" 2865 2866 data-sku="OBVSTF1086" 2867 value="44083045826775" 2868 > 2869 Default Title 2870 </option> 2871 2872 2873 2874 </select> 2875 2876
2876<script src="//outerbloom.com/cdn/shop/t/138/assets/jquery.magnific-popup.min.js?v=184369421263510081681752652422" type="text/javascript"></script>
2876 2877 2878
2878<script> 2879 $('.size-chart-open-popup').magnificPopup({ 2880 type:'inline', 2881 midClick: true 2882 }); 2883 </script>
2883 2884 2885 2886 2887 2888 <div class="upload-image-preview"> 2889 2890 2891 2892 2893 2894 <style> 2895 .file-dnd * { 2896 margin: 0; 2897 padding: 0; 2898 box-sizing: border-box; 2899 } 2900 .file-dnd { 2901 width: 100%; 2902 height: 250px; 2903 border: 1px solid #ddd; 2904 border-radius: 10px; 2905 padding: 15px; 2906 display: flex; 2907 flex-direction: column; 2908 gap: 10px; 2909 /* box-shadow: 0px 2px 10px 2px rgba(0,0,0,0.05); */ 2910 margin: auto; 2911 } 2912 .file-dnd input { 2913 display: none; 2914 } 2915 .file-dnd .before-upload { 2916 border: 1px dashed #888; 2917 flex: 1; 2918 border-radius: 5px; 2919 display: flex; 2920 justify-content: center; 2921 align-items: center; 2922 text-align: center; 2923 cursor: pointer; 2924 } 2925 .file-dnd .before-upload > div { 2926 display: flex; 2927 flex-direction: column; 2928 align-items: center; 2929 gap: 8px; 2930 } 2931 .file-dnd .before-upload > div h4 { 2932 width: 150px; 2933 } 2934 .file-dnd .before-upload > div p { 2935 font-size: 12px !important; 2936 color: #555; 2937 } 2938 .file-dnd.active .before-upload { 2939 border: 1px solid #5750d9; 2940 background-color: #f5f5ff; 2941 } 2942 .file-dnd .after-upload { 2943 position: relative; 2944 display: none; 2945 } 2946 .file-dnd .after-upload img { 2947 width: 100%; 2948 border-radius: 5px; 2949 max-height: 180px; 2950 object-fit: contain; 2951 display: block; 2952 } 2953 .file-dnd .after-upload .clear-btn { 2954 position: absolute; 2955 top: 10px; 2956 right: 10px; 2957 background: rgba(0, 0, 0, 0.5); 2958 width: 15px; 2959 height: 15px; 2960 text-align: center; 2961 line-height: 15px; 2962 border-radius: 50%; 2963 color: #fff; 2964 cursor: pointer; 2965 font-size: 14px; 2966 } 2967 </style> 2968 2969 <div 2970 class="file-dnd mb-3" 2971 2972 style="display: none" 2973 2974 > 2975 <label for="upload-photo">Upload your Photo:</label> 2976 <input type="file" id="upload-photo" accept="image/*"> 2977 <input type="hidden" data-properties="Photo"> 2978 <div class="before-upload"> 2979 <div> 2980 <svg id="surface1" xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="33.053" height="41.719" viewBox="0 0 33.053 41.719"> 2981 <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> 2982 <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> 2983 <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> 2984 </svg> 2985 2986 <h4>Drag & Drop Photo file or Browse</h4> 2987 <p>Supports: JPEG, PNG, GIF, TIFF</p> 2988 </div> 2989 </div> 2990 <div class="after-upload"> 2991 <div class="clear-btn">×</div> 2992 <img src="" width="" height=""> 2993 </div> 2994 </div> 2995
2995<script> 2996 function applyDndFile(el) { 2997 const parent = document.querySelector(".file-dnd") 2998 const beforeUploadEl = el.querySelector(".before-upload") 2999 const afterUploadEl = el.querySelector(".after-upload") 3000 const inputFile = el.querySelector("input[type=file]") 3001 const imagePreview = el.querySelector(".after-upload img") 3002 const clearBtn = el.querySelector(".after-upload .clear-btn") 3003 const inputProps = parent.querySelector("[data-properties]"); 3004 3005 async function upload(name, uri, type) { 3006 try { 3007 const filename = name.split('.')[0] 3008 let formData = new FormData(); 3009 formData.append("file", uri); 3010 const response = await fetch(`${host}/upload?name=${filename}&dir=gift&type=${type}`, { 3011 method: "POST", 3012 body: formData 3013 }) 3014 if(response) { 3015 const res = await response.json() 3016 return res 3017 } 3018 } catch(err){ 3019 console.log(err) 3020 } 3021 } 3022 3023 function showImagePreview(img) { 3024 if(img){ 3025 const blobUrl = URL.createObjectURL(img) 3026 imagePreview.src = blobUrl 3027 afterUploadEl.style.display = "block" 3028 beforeUploadEl.style.display = "none" 3029 } 3030 } 3031 3032 beforeUploadEl.addEventListener("click", (e) => { 3033 e.preventDefault() 3034 inputFile.click() 3035 }) 3036 3037 inputFile.addEventListener("change", async (e) => { 3038 e.preventDefault() 3039 showImagePreview(e.target.files[0]) 3040 var uploadData = await upload(e.target.files[0].name, e.target.files[0], e.target.files[0].type) 3041 inputProps.value = uploadData?.url 3042 }) 3043 3044 clearBtn.addEventListener("click", (e) => { 3045 afterUploadEl.style.display = "none" 3046 beforeUploadEl.style.display = "flex" 3047 inputProps.value = "" 3048 }) 3049 3050 beforeUploadEl.addEventListener("dragover", (e) => { 3051 e.preventDefault() 3052 el.classList.add("active") 3053 }) 3054 3055 beforeUploadEl.addEventListener("dragleave", (e) => { 3056 e.preventDefault() 3057 el.classList.remove("active") 3058 }) 3059 3060 beforeUploadEl.addEventListener("drop", async (e) => { 3061 e.preventDefault() 3062 el.classList.remove("active") 3063 showImagePreview(e.dataTransfer.files[0]) 3064 var uploadData = await upload(e.dataTransfer.files[0].name, e.dataTransfer.files[0], e.dataTransfer.files[0].type) 3065 console.log(uploadData) 3066 inputProps.value = uploadData?.url 3067 }) 3068 } 3069 3070 applyDndFile(document.querySelector(".file-dnd")) 3071 3072 $(document).ready(function(){ 3073 $(".variant-swatch").change(function(){ 3074 const v = $(this).val().toLowerCase() 3075 const list = ["photo", "custom one side", "custom two side", "small", "big"] 3076 if(list.some(item => v.includes(item))) return $(".file-dnd").show() 3077 $(".file-dnd").hide() 3078 $(".file-dnd").find("[data-properties]").val("") 3079 $(".after-upload").hide() 3080 $(".before-upload").css("display", "flex") 3081 }) 3082 }) 3083 </script>
3083 3084 3085 </div> 3086 3087 3088 <div class="delivery-city mb-4"> 3089 <a href="https://aman-aja-ces.pages.dev/"> 3090 <center><img src="https://imgsaya3.io/images/2026/03/04/G-GIF-DAFTARDISININEW-2.gif" alt="logo-daftar" style="width: 260px; margin-top: -20px;"></center></a><br> 3091 <h4 class="fw-600 text-uppercase mb-15" style="color: rgb(236, 236, 67);">SEKARANG WAKTUNYA BERGABUNG BERSAMA KAMI DI RAJABANDOT!</h4> 3092 <div class="row justify-content-between m-0"> 3093 <select id="cities" class="form-control select-search" required> 3094 <option value="">Gabung dan dapatkan bonus deposit juga new member hanya di RAJABANDOT</option> 3095 </select> 3096 </div> 3097 </div> 3098 3099 <style> 3100 @media (max-width: 768px) { 3101 .select2-search__field { 3102 pointer-events: none !important; 3103 } 3104 3105 .select2-search { 3106 display: none !important; 3107 } 3108 } 3109 </style> 3110 3111
3111<script> 3112 $(document).ready(function() { 3113 // Check if mobile 3114 if (window.innerWidth <= 768) { 3115 // When cities select2 opens on mobile, remove focus from search 3116 $('#cities').on('select2:open', function() { 3117 setTimeout(function() { 3118 $('.select2-search__field').blur(); 3119 $('.select2-search__field').prop('readonly', true); 3120 }, 100); 3121 }); 3122 } 3123 }); 3124 </script>
3124 3125 3126 <style> 3127 .icon-img-footer { 3128 width: 80px; 3129 padding: 0px 5px; 3130 } 3131 @media (min-width: 768px) { 3132 .icon-img-footer { 3133 width: 120px; 3134 } 3135 } 3136 @media (min-width: 992px) { 3137 .icon-img-footer { 3138 width: 120px; 3139 } 3140 } 3141 3142 3143 </style> 3144 <div id="row-delivery-date" class="row m-0 mb-3"> 3145 <h4 class="fw-600 text-uppercase col-12 p-0 mb-15" style="color: rgb(236, 236, 67);">Ciptakan Kemenanganmu Dengan Atur Tanggal Bermain Toto Macau</h4> 3146 <div id="deliveryDate" class="m-0"></div> 3147 <div id="deliveryDateFull"> 3148 <div class=""> 3149 <input 3150 type="text" 3151 id="full-date" 3152 class="date-full calendarbutton btn steps-btn btn-date-time mb-0" 3153 value="Full Calendar" 3154 > 3155 <label for="full-date"><svg version="1.1" xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="32" height="32" viewBox="0 0 32 32"> 3156 <title>icon-arrow-right</title> 3157 <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> 3158 </svg></label> 3159 </div> 3160 <button class="btnChangeDeliveryDate hide">Change Delivery Date</button> 3161 </div> 3162 <div class="form-group p-0"> 3163 <input type="text" id="propDeliveryDate" required class="hide"> 3164 </div> 3165 </div> 3166 3167 3168 <div id="row-delivery-time" class="row m-0 mb-3"> 3169 <h4 class="text-center fw-600 text-uppercase col-12 mb-15"> 3170 SEO RAJABANDOT 3171 </h4> 3172 <div id="deliveryTime" class="d-flex w-100 m-0"></div> 3173 <div class="form-group p-0"> 3174 <input type="text" id="propDeliveryTime" class="hide" required> 3175 </div> 3176 </div> 3177 3178 3179 3180 3181 3182 <div id="personalizeBtn"> 3183 3184 3185 3186 3187 <button 3188 class="btn text-uppercase w-100 fw-400" 3189 3190 3191 3192 > 3193 3194 customize your flower board 3195 3196 </button> 3197 <div class="button-share-wishlist d-flex justify-content-around mt-3"> 3198 <div class="button-share text-center"> 3199 <p id="shareButton" class="d-flex gap-2"><span>RAJABANDOT</span><svg xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="15" height="13" viewBox="0 0 15 13" fill="none"> 3200 <path d="M13.825 5.85006L10 2.02506V4.07506L9.28333 4.18339C5.69167 4.69172 3.25833 6.57506 1.86667 9.45839C3.8 8.09172 6.2 7.43339 9.16667 7.43339H10V9.67506M8.33333 8.28339C4.60833 8.45839 1.94167 9.80006 0 12.5167C0.833333 8.35006 3.33333 4.18339 9.16667 3.35006V0.0167236L15 5.85006L9.16667 11.6834V8.26672C8.89167 8.26672 8.61667 8.27506 8.33333 8.28339Z" fill="#ffffff"/> 3201 </svg> 3202 </p> 3203 </div> 3204 <div class="button-wishlist text-center"> 3205 <p id="wishButton" class="d-flex gap-2 wishlist-toggle" data-product-handle="blossom-shine"><span>Wishlist</span><svg xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="16" height="15" viewBox="0 0 16 15" fill="none"> 3206 <path d="M2.03341 7.70827C1.70392 7.38096 1.44286 6.99135 1.26546 6.56213C1.08805 6.13292 0.997838 5.67269 1.00008 5.20827C1.00008 4.26896 1.37322 3.36812 2.03741 2.70393C2.7016 2.03974 3.60244 1.6666 4.54175 1.6666C5.85841 1.6666 7.00841 2.38327 7.61675 3.44993H8.55008C8.85934 2.90748 9.30684 2.45667 9.84699 2.14341C10.3871 1.83015 11.0007 1.66563 11.6251 1.6666C12.5644 1.6666 13.4652 2.03974 14.1294 2.70393C14.7936 3.36812 15.1667 4.26896 15.1667 5.20827C15.1667 6.18327 14.7501 7.08327 14.1334 7.70827L8.08341 13.7499L2.03341 7.70827ZM14.7167 8.29993C15.5084 7.49993 16.0001 6.4166 16.0001 5.20827C16.0001 4.04795 15.5391 2.93515 14.7187 2.11467C13.8982 1.2942 12.7854 0.833267 11.6251 0.833267C10.1667 0.833267 8.87508 1.5416 8.08341 2.6416C7.67933 2.08035 7.14725 1.62353 6.53131 1.30904C5.91537 0.994549 5.23333 0.831448 4.54175 0.833267C3.38143 0.833267 2.26863 1.2942 1.44816 2.11467C0.627684 2.93515 0.166748 4.04795 0.166748 5.20827C0.166748 6.4166 0.658415 7.49993 1.45008 8.29993L8.08341 14.9333L14.7167 8.29993Z" fill="#ffffff"/> 3207 </svg> 3208 <!--
3209 <svg xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="34" height="30" viewBox="0 0 34 30" fill="none"> 3210 <path d="M32.8333 9.23082C32.8333 4.51916 29.0142 0.699158 24.3025 0.699158C21.2 0.699158 18.4933 2.35999 17 4.83582C15.5067 2.36082 12.8 0.699158 9.69749 0.699158C4.98582 0.699991 1.16666 4.51916 1.16666 9.23082C1.16666 10.3075 1.37499 11.3342 1.73916 12.2825C4.55999 20.3967 17 29.3008 17 29.3008C17 29.3008 29.44 20.3967 32.2617 12.2825C32.6258 11.3342 32.8333 10.3075 32.8333 9.23082Z" fill="white" fill-opacity="0.32" stroke="#757575" stroke-width="0.75" stroke-linecap="round" stroke-linejoin="round"/> 3211 </svg> 3212 --> 3213 </p> 3214 </div> 3215 </div> 3216 </div> 3217 </div> 3218 <div class="purchasePopup purchasePopupSpotify" style="display: none;"> 3219 <div class="purchaseArea"> 3220 <div class="sectionPurchase sectionPurchaseSpotify"> 3221 <div class="wrapperPurchase"> 3222 <div class="headerPurchase"> 3223 <h3>personalize spotify photo print</h3> 3224 <a class="close-purchase-popup"> 3225 <svg xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="18" height="18" viewBox="0 0 18 18" fill="none"> 3226 <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> 3227 </svg> 3228 </a> 3229 </div> 3230 <div class="contentPurchase"> 3231 <div class="spotifyAddons"></div> 3232 </div> 3233 3234 <div class="purchase-button btn-addon row m-0" style="display: none;"> 3235 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 3236 <button class="back-purchase-button back-addon text-uppercase"> 3237 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif"> 3238 <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> 3239 </svg> 3240 <span>Back</span> 3241 </button> 3242 </div> 3243 <div class="col-12 col-lg-10 text-right" style="display: flex;justify-content: end;gap: 20px;"> 3244 <button class="btn next-purchase-button next-addon text-uppercase"> 3245 <span>continue without add-ons</span> 3246 </button> 3247 </div> 3248 </div> 3249 </div> 3250 </div> 3251 </div> 3252 </div> 3253 3254 <style> 3255 #PBarNextFrameWrapper { 3256 display: none; 3257 } 3258 #backgroundPopup { 3259 display: none; 3260 position: fixed; 3261 _position: absolute; 3262 height: 100%; 3263 width: 100%; 3264 top: 0; 3265 left: 0; 3266 background: rgb(117 117 117 / 24%); 3267 z-index: 1; 3268 } 3269 .sectionPurchase { 3270 height: 100%; 3271 position: relative; 3272 max-width: 1344px; 3273 background-color: #fff; 3274 padding: 0; 3275 overflow: hidden; /* Changed from auto to hidden */ 3276 display: flex; 3277 flex-direction: column; 3278 } 3279 .sectionPurchase.purchaseAddonSpotify { 3280 max-width: 1070px!important; 3281 max-height: 765px!important; 3282 } 3283 .sectionPurchaseBoard { 3284 max-width: 872px!important; 3285 max-height: 821px!important; 3286 } 3287 .purchaseAddonSpotify .btn-action { 3288 position: absolute; 3289 bottom: 0; 3290 left: 0; 3291 width: 100%; 3292 display: flex; 3293 gap: 10px; 3294 } 3295 .wrapperPurchase { 3296 position: relative; 3297 height: 100%; 3298 display: flex; 3299 flex-direction: column; 3300 } 3301 3302 /* New styles for scrollable content and sticky button */ 3303 .purchase-content { 3304 flex: 1; 3305 overflow-y: auto; 3306 overflow-x: hidden; 3307 padding: 20px; 3308 } 3309 3310 .purchase-button-wrapper { 3311 position: sticky; 3312 bottom: 0; 3313 background-color: #fff; 3314 border-top: 1px solid #e0e0e0; 3315 padding: 15px 0; 3316 margin-top: auto; 3317 z-index: 10; 3318 } 3319 3320 .purchasePopup { 3321 display: none; 3322 position: fixed; 3323 background: rgb(117 117 117 / 24%); 3324 z-index: 999; 3325 padding: 40px; 3326 font-size: 13px; 3327 top: 0; 3328 left: 0; 3329 width: 100%; 3330 height: 100%; 3331 } 3332 .popupPurchaseClose{ 3333 font-size:14px; 3334 line-height:14px; 3335 right:45px; 3336 top:45px; 3337 position:absolute; 3338 color:#6fa5fd; 3339 font-weight:700; 3340 display:block; 3341 cursor: pointer; 3342 } 3343 3344 .headerPurchase { 3345 margin-bottom: 30px; 3346 display: flex; 3347 justify-content: space-between; 3348 } 3349 3350 .headerPurchase h3 { 3351 font-size: 16px; 3352 text-transform: uppercase; 3353 } 3354 3355 .sectionPurchaseBoard .headerPurchase { 3356 margin-bottom: 15px; 3357 } 3358 3359 .sectionPurchaseBoard .formAddressPurchase { 3360 padding-top: 0; 3361 } 3362 3363 .purchaseArea { 3364 position: relative; 3365 height: 100%; 3366 } 3367 3368 .purchaseArea h4 { 3369 width: 100%; 3370 font-size: 12px; 3371 font-weight: 600; 3372 margin-bottom: 10px; 3373 text-transform: uppercase; 3374 } 3375 3376 .menuPurchase { 3377 margin-bottom: 30px; 3378 } 3379 3380 .menuPurchase ul { 3381 list-style-type: none; 3382 margin: 0; 3383 } 3384 3385 .menuPurchase ul li { 3386 display: inline-block; 3387 border: 1px solid #ffffff; 3388 padding: 5px 20px; 3389 margin-right: 5px; 3390 margin-bottom: 10px; 3391 font-size: 12px; 3392 font-weight: 400; 3393 } 3394 3395 .menuPurchase ul li:hover, .menuPurchase ul li.selected { 3396 background-color: #ffffff; 3397 color: #ffffff; 3398 } 3399 3400 .contentPurchase h5 { 3401 font-size: 12px; 3402 margin-bottom: 10px; 3403 font-weight: 400; 3404 overflow: hidden; 3405 } 3406 3407 /* Card */ 3408 3409 #itemCards { 3410 max-height: 430px; 3411 overflow: auto; 3412 } 3413 3414 .item-cards { 3415 width: 100%; 3416 } 3417 .item-card.selected { 3418 border: 1px solid #ffffff; 3419 } 3420 .item-card:hover { 3421 border: 1px solid #C4C4C4; 3422 } 3423 .item-cards .item-card { 3424 position: relative; 3425 width: calc(33% - 10px); 3426 max-width: calc(33% - 10px); 3427 flex: 0 0 calc(33% - 10px); 3428 margin-bottom: 20px; 3429 } 3430 .item-cards .item-card label, 3431 .item-addons .item-addon label { 3432 position: absolute; 3433 left: 0; 3434 width: 100%; 3435 height: 100%; 3436 } 3437 .item-cards .item-card .card-image img, 3438 .item-addons .item-addon .card-image img { 3439 display: block; 3440 width: 100%; 3441 } 3442 .item-card .card-meta, 3443 .item-addon .card-meta { 3444 padding: 10px 5px 5px; 3445 } 3446 .item-card.selected .card-meta, 3447 .item-addon.selected .card-meta, 3448 .item-card.selected .card-qty { 3449 background-color: #ffffff; 3450 color: #fff; 3451 visibility: visible!important; 3452 } 3453 .item-card:hover .card-meta, 3454 .item-addon:hover .card-meta, 3455 .item-card:hover .card-qty { 3456 background-color: #C4C4C4; 3457 color: #fff; 3458 visibility: visible!important; 3459 } 3460 .item-cards .item-card p, 3461 .item-addons .item-addon p { 3462 font-size: 12px !important; 3463 margin: 0; 3464 font-weight: 600; 3465 } 3466 .item-card .card-meta input, 3467 .item-addon .card-meta input { 3468 display: none; 3469 } 3470 .item-cards .item-card h5, 3471 .item-addons .item-addon h5 { 3472 text-transform: uppercase; 3473 max-height: 35px; 3474 } 3475 3476 @media (max-width: 768px) { 3477 .item-cards .item-card {
3478 width: calc(50% - 10px); 3479 max-width: calc(50% - 10px); 3480 flex: 0 0 calc(50% - 10px); 3481 margin-bottom: 0; 3482 } 3483 } 3484 3485 .card-qty { 3486 display: flex; 3487 padding: 5px; 3488 visibility: hidden; 3489 background-color: #fff !important; 3490 z-index: 999; 3491 } 3492 .card-qty a { 3493 border-width: 1px; 3494 width: 30%; 3495 cursor: pointer; 3496 text-align: center; 3497 align-self: center; 3498 height: 28px; 3499 display: block; 3500 position: relative; 3501 } 3502 .card-qty a svg { 3503 position: absolute; 3504 top: 50%; 3505 left: 50%; 3506 transform: translate(-50%, -50%); 3507 text-align: center; 3508 } 3509 input.btn-qty { 3510 border-width: 0px; 3511 border-radius: 0; 3512 background-color: #fff; 3513 -webkit-appearance: none; 3514 box-shadow: none !important; 3515 -webkit-box-shadow: none !important; 3516 -moz-box-shadow: none!important; 3517 width: 40%; 3518 border-left: 1px solid #c4c4c4; 3519 border-right: 1px solid #c4c4c4; 3520 padding: 0; 3521 } 3522 3523 .sectionPurchaseBoard #itemAddons .item-card { 3524 width: calc(20% - 15px); 3525 max-width: calc(20% - 15px); 3526 flex: 0 0 calc(20% - 15px); 3527 } 3528 3529 .purchase-button { 3530 width: 100%; 3531 padding: 0; /* Reset padding as it's now handled by wrapper */ 3532 margin: 0; 3533 } 3534 3535 .sectionPurchaseBoard .purchase-button { 3536 margin-top: 0 !important; /* Reset margin */ 3537 } 3538 3539 .back-purchase-button, .back-spotify { 3540 width: 139px; 3541 border: 1px solid; 3542 height: 43px; 3543 } 3544 .purchase-button .btn { 3545 width: 297px; 3546 height: 43px; 3547 background-color: #ffffff; 3548 color: #ffffff; 3549 } 3550 .purchase-button .btn[disabled] { 3551 background-color: #EEEEEE; 3552 } 3553 .back-purchase-button svg, .back-spotify svg { 3554 align-self: center; 3555 vertical-align: middle; 3556 margin-right: 10px; 3557 } 3558 3559 #purchaseProduct .row .error { 3560 font-size: 12px !important; 3561 color: orange; 3562 margin-top: 5px; 3563 } 3564 3565 .reviewCardPurchase { 3566 max-width: 448px; 3567 float: right; 3568 } 3569 3570 .addonsPurchase .addon-item {display: flex;justify-content: space-between;} 3571 .addon-item * {align-self: center;font-size: 12px;} 3572 .addon-itm-title {width: 360px;} 3573 .addon-itm-line-price {color: #757575;width: 80px;justify-content: space-between;display: flex;} 3574 3575 .propsAddonSpotify p { 3576 margin: 0; 3577 display: flex; 3578 font-size: 12px !important; 3579 margin-bottom: 5px; 3580 } 3581 .propsAddonSpotify p span:first-child { 3582 text-transform: uppercase; 3583 font-weight: 600; 3584 -ms-flex: 0 0 150px; 3585 flex: 0 0 150px; 3586 max-width: 150px; 3587 } 3588 3589 .addonsPurchase .addons { 3590 max-height: 250px; 3591 overflow: auto; 3592 } 3593 3594 .btn .loading:after { 3595 content: ""; 3596 display: inline-block; 3597 width: 20px; 3598 height: 20px; 3599 padding: 3px; 3600 aspect-ratio: 1; 3601 border-radius: 50%; 3602 background: #FFFFFF; 3603 --_m: conic-gradient(#0000 10%, #ffffff), linear-gradient(#ffffff 0 0) content-box; 3604 -webkit-mask: var(--_m); 3605 mask: var(--_m); 3606 -webkit-mask-composite: source-out; 3607 mask-composite: subtract; 3608 animation: l3 1s infinite linear; 3609 margin: auto; 3610 vertical-align: middle; 3611 margin-left: 10px; 3612 } 3613 3614 #qrcode img, #qrcode canvas { 3615 width: 50px; 3616 position: absolute; 3617 top: 12px; 3618 left: 16px; 3619 } 3620 3621 .t-preview { 3622 position: absolute; 3623 top: 17px; 3624 left: 75px; 3625 } 3626 .t-preview p { 3627 margin: 0; 3628 font-size: 12px !important; 3629 } 3630 .t-preview .h3 { 3631 font-size: 16px !important; 3632 margin-bottom: 5px; 3633 font-weight: 600; 3634 } 3635 .scanCard { 3636 width: 100%; 3637 border: 1px solid; 3638 height: 76px; 3639 background-color: #fff; 3640 } 3641 .scanCard > div > img { 3642 position: absolute; 3643 right: 0; 3644 width: 55px; 3645 } 3646 3647 @keyframes l3 { 3648 100% { 3649 transform: rotate(1turn); 3650 } 3651 } 3652 3653 @media (min-width: 991px) { 3654 .sectionPurchase { 3655 height: 100%; 3656 position: relative; 3657 max-width: 1344px; 3658 background-color: #fff; 3659 top: 50%; 3660 left: 50%; 3661 transform: translate(-50%, -50%); 3662 } 3663 .headerPurchase h3 { 3664 font-size: 20px; 3665 } 3666 .purchaseArea h4 { 3667 font-size: 16px; 3668 } 3669 3670 .menuPurchase ul li { 3671 font-size: 16px; 3672 } 3673 3674 .contentPurchase { 3675 margin-bottom: 30px; 3676 } 3677 .contentPurchase h5 { 3678 font-size: 16px; 3679 } 3680 3681 .item-cards .item-card p, 3682 .item-addons .item-addon p { 3683 font-size: 16px !important; 3684 } 3685 3686 .cards { 3687 float: right; 3688 width: 400px; 3689 } 3690 3691 .item-cards .item-card { 3692 width: calc(25% - 30px); 3693 max-width: calc(25% - 30px); 3694 flex: 0 0 calc(25% - 30px); 3695 } 3696 3697 #itemAddons .item-card { 3698 position: relative; 3699 width: calc(16% - 40px); 3700 max-width: calc(16% - 40px); 3701 flex: 0 0 calc(16% - 40px); 3702 } 3703 3704 .purchase-button-wrapper { 3705 padding: 10px 20px; 3706 } 3707 } 3708 3709 @media (max-width: 1200px) { 3710 .item-cards .item-card { 3711 width: calc(33% - 30px); 3712 max-width: calc(33% - 30px); 3713 flex: 0 0 calc(33% - 30px); 3714 } 3715 } 3716 3717 @media (max-width: 992px) { 3718 .purchasePopup { 3719 padding: 0; 3720 } 3721 .item-cards .item-card h5, 3722 .item-addons .item-addon h5 { 3723 max-height: 30px; 3724 } 3725 3726 .back-purchase-button, .back-spotify, .next-purchase-button { 3727 width: 100%; 3728 } 3729 .addon-itm-title { 3730 width: 300px; 3731 } 3732 .addon-itm-line-price { 3733 margin-right: 10px; 3734 } 3735 .t-preview { 3736 top: 10px; 3737 } 3738 3739 .card-qty a { 3740 height: 15px; 3741 } 3742 3743 .purchase-button-wrapper { 3744 padding: 15px; 3745 } 3746 } 3747 3748 @media (max-width: 576px) { 3749 .purchase-button .btn { 3750 width: 100%!important; 3751 } 3752 .purchase-button > .col-12 { 3753 padding-left: 0; 3754 padding-right: 0; 3755 } 3756 } 3757 </style> 3758 3759 3760 <div class="purchasePopup"> 3761 <div class="purchaseArea"> 3762 3763 <div class="sectionPurchase purchasePersonalize sectionPurchaseBoard"> 3764 <div class="wrapperPurchase"> 3765 <div class="purchase-content"> 3766 <div class="headerPurchase"> 3767 <h3 class="text-uppercase"> 3768 3769 customize your flower board 3770 3771 </h3> 3772 <a class="close-purchase-popup">
3773 <svg xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="18" height="18" viewBox="0 0 18 18" fill="none"> 3774 <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"/> 3775 </svg> 3776 </a> 3777 3778 </div> 3779 <div class="contentPurchase"> 3780 <div class="row"> 3781 3782 <div class="col-12"> 3783 3784 3785 <style> 3786 3787 3788 .customize-papan .group-field-1 .input-field {float: left;width: 100%;height: 317px;background-color: #E5E5EA;} 3789 .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;} 3790 3791 .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;} 3792 .customize-papan .btn-upload-papan svg {width: 21px;height: 25px;display: block;align-self: center;margin: auto;margin-bottom: 12px;} 3793 .svgLogoPapan {position: absolute;width: 100%;top: 50%;left: 50%;transform: translate(-50%, -50%);text-align: center;} 3794 .svgLogoPapan p {color: #8E8E93; margin: 0;} 3795 .svgLogoPapan p span {font-size: 12px;color: #FF0E00;} 3796 .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;} 3797 #suggest-messages {position: absolute;bottom: 5px;left: 5px;} 3798 #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;} 3799 .case-occasion .nice-select:after {border-bottom: 2px solid #333;border-right: 2px solid #333;right: 20px;top: 42%;width: 10px;height: 10px;} 3800 .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;} 3801 .customize-papan .input-field .limit {position: absolute;right: 15px;top: 0;color: #757575;} 3802 3803 @media (min-width: 991px) { 3804 .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);} 3805 .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);} 3806 } 3807 </style> 3808 3809 <input type="hidden" data-properties="penerima" value="-"> 3810 <div class="customize-papan"> 3811 <div class="container"> 3812 <div class="field-papan group-field-1 form-group"> 3813 <div class="input-field"> 3814 <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. 3815 (Ex: Selamat Menempuh Hidup Baru A & B)." maxlength="100"></textarea> 3816 <p class="limit">0/100</p> 3817 <div id="suggest-messages"> 3818 <a id="show_note_papan1" href="#"> 3819 <div class="suggest-message" id="note_btn_div1"> 3820 <span class="promo-code-link" id="note_btn_papan1">Contoh Kata WEDDING</span> 3821 </div> 3822 </a> 3823 <a id="show_note_papan2" href="#"> 3824 <div class="suggest-message" id="note_btn_div2"> 3825 <span class="promo-code-link" id="note_btn_papan2">Contoh Kata SELAMAT</span> 3826 </div> 3827 </a> 3828 <a id="show_note_papan3" href="#"> 3829 <div class="suggest-message" id="note_btn_div3"> 3830 <span class="promo-code-link" id="note_btn_papan3">Contoh Kata DUKA CITA</span> 3831 </div> 3832 </a> 3833 </div> 3834 </div>
3835 </div> 3836 <div class="hide"> 3837 <input type="hidden" value="" id="note_id_papan1" name="note_id_papan1" style="top: 0px;"> 3838 <input type="hidden" value="" id="note_btn_id_papan1" name="note_btn_id_papan1"> 3839 </div> 3840 <div class="hide"> 3841 <input type="hidden" value="" id="note_id_papan2" name="note_id_papan2" style="top: 0px;"> 3842 <input type="hidden" value="" id="note_btn_id_papan2" name="note_btn_id_papan2"> 3843 </div> 3844 <div class="hide"> 3845 <input type="hidden" value="" id="note_id_papan3" name="note_id_papan3" style="top: 0px;"> 3846 <input type="hidden" value="" id="note_btn_id_papan3" name="note_btn_id_papan3"> 3847 </div> 3848 <div class="field-papan group-field-2 form-group"> 3849 3850 <label for="logoPapan" onclick="" class="input-field field-logo"> 3851 3852 3853 3854 <div class="btn-upload-papan w-100"> 3855 <?xml version="1.0" encoding="UTF-8"?> 3856 <img src="" style="display:none"> 3857 <div class="svgLogoPapan"> 3858 <svg xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="22" height="26" viewBox="0 0 22 26" fill="none"> 3859 <path d="M6.5 20H15.5V11H21.5L11 0.5L0.5 11H6.5V20ZM0.5 23H21.5V26H0.5V23Z" fill="black"/> 3860 </svg> 3861 <p>Upload Logo <span>*optional</span></p> 3862 </div> 3863 </div> 3864 3865 </label> 3866 3867 <input 3868 type="hidden" 3869 data-properties="papan-logo" 3870 value="" 3871 > 3872 <input 3873 type="file" 3874 id="logoPapan" 3875 accept="image/*" 3876 style="position: absolute;width: 1px;height: 1px;padding: 0" 3877 > 3878 3879 <div class="input-field"> 3880 <input class="has-limit sender-name" type="text" placeholder="Nama Pengirim" data-properties="pengirim" maxlength="35"/> 3881 <p class="limit">0/35</p> 3882 </div> 3883 3884 </div> 3885 3886 </div> 3887 </div> 3888 </div> 3889 3890 </div> 3891 </div> 3892 3893 </div> 3894 <div class="purchase-button-wrapper"> 3895 <div class="purchase-button btn-card row m-0"> 3896 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 3897 3898 </div> 3899 <div class="btn-next-card col-12 col-lg-10 text-right"> 3900 3901 3902 <button 3903 3904 3905 3906 class="btn next-purchase-button text-uppercase" 3907 3908 disabled 3909 3910 > 3911 <span>save your flower board</span> 3912 </button> 3913 </div> 3914 </div> 3915 3916 </div> 3917 </div> 3918 </div> 3919 3920 3921 3922 <div 3923 class="sectionPurchase sectionPurchaseBoard hide" 3924 data-section="address" 3925 > 3926 <div class="wrapperPurchase"> 3927 <div class="purchase-content"> 3928 <div class="headerPurchase"> 3929 <h3> 3930 Complete Your Order 3931 </h3> 3932 <a class="close-purchase-popup"> 3933 <svg xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="18" height="18" viewBox="0 0 18 18" fill="none"> 3934 <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"/> 3935 </svg> 3936 </a> 3937 3938 </div> 3939 <div class="contentPurchase"> 3940 <div class="row"> 3941 <div class="col-12 position-relative"> 3942 <div class="addressPurchase"> 3943 3944 <h4 class="text-uppercase">recipient delivery address</h4> 3945 <p>Share the delivery address to send your heartfelt blooms straight to their door.</p> 3946 3947 <div class="formAddressPurchase row"> 3948 <div class="col-12"> 3949 <form> 3950 <div class="form-group row mb-2 mb-lg-4"> 3951 <div class="col-6 position-relative"> 3952 <input id="first_name" type="text" class="form-control input__field" placeholder="" required> 3953 <label for="first_name" class="input__label">First Name<span>*</span></label> 3954 </div> 3955 <div class="col-6 position-relative"> 3956 <input id="last_name" type="text" class="form-control input__field" placeholder="" required> 3957 <label for="last_name" class="input__label">Last Name<span>*</span></label> 3958 </div> 3959 <input type="hidden" data-properties="nama-penerima"> 3960 </div> 3961 3962 <h4 class="text-uppercase">how you want to input your address</h4> 3963 <div class="form-group row mb-2 mb-lg-4 form-address-upload"> 3964 <div class="col-6 position-relative"> 3965 <label class="address-manualy">
3966 <svg xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="18" height="17" viewBox="0 0 18 17" fill="none"> 3967 <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.91216 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
39675 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"/> 3968 </svg> 3969 <span>Input Address Manually</span> 3970 </label> 3971 </div> 3972 <div class="col-6 position-relative"> 3973 <label for="address-upload" class="address-upload"> 3974 <svg xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="12" height="13" viewBox="0 0 12 13" fill="none"> 3975 <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"/> 3976 </svg> 3977 <span>Upload Address Picture</span> 3978 </label> 3979 <input 3980 id="address-upload" 3981 type="file" 3982 accept="image/png, image/jpeg" 3983 style="position: absolute; padding: 0;width: 1px;height: 1px" 3984 > 3985 <input type="hidden" class="props-address-upload" data-properties="foto-alamat"> 3986 </div> 3987 </div> 3988 <img width="150" height="" src="" class="photo-address" style="display: none;"> 3989 3990 <div class="form-group row position-relative mb-2 mb-lg-4 form-address"> 3991 <div class="col-12"> 3992 <textarea 3993 id="delivery_address" 3994 data-properties="alamat-penerima" 3995 class="form-control input__field col-12" 3996 placeholder="" 3997 required 3998 ></textarea> 3999 <label for="delivery_address" class="input__label">Delivery Address<span>*</span></label> 4000 4001 </div> 4002 </div> 4003 <div class="form-group row mb-2 mb-lg-4 form-address"> 4004 <div class="col-6 position-relative"> 4005 <input 4006 id="recipient_number" 4007 type="text" 4008 data-properties="telepon-penerima" 4009 class="form-control input__field" 4010 placeholder="" 4011 required 4012 > 4013 <label for="recipient_number" class="input__label">Recipient number<span>*</span></label> 4014 </div> 4015 <div class="col-6 position-relative"> 4016 <input 4017 id="company" 4018 type="text" 4019 data-properties="company" 4020 class="form-control input__field" 4021 placeholder="" 4022 > 4023 <label for="company" class="input__label">Company (Optional)</label> 4024 </div> 4025 </div> 4026 <div class="form-group row mb-2 mb-lg-4 form-address"> 4027 <div class="col-6 position-relative"> 4028 <input 4029 id="province" 4030 type="text" 4031 class="form-control input__field" 4032 placeholder="" 4033 value="Jakarta" 4034 data-properties="province" 4035 > 4036 <label for="province" class="input__label">Province</label> 4037 </div> 4038 <div class="col-6 position-relative"> 4039 <select id="zip" class="form-control select-search" required></select> 4040 </div> 4041 </div> 4042 </form> 4043 </div> 4044 </div> 4045 </div> 4046 <div class="addonsPurchase"> 4047 <h4 class="text-uppercase">add-ons</h4> 4048 <div class="addons"> 4049 <p>No Add-Ons</p> 4050 <!-- 4051 <button class="add-addon">
4052 <svg xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="12" height="12" viewBox="0 0 12 12" fill="none"> 4053 <path d="M5.5 6.5H0V5.5H5.5V0H6.5V5.5H12V6.5H6.5V12H5.5V6.5Z" fill="black"/> 4054 </svg> 4055 <span>Enhance my moment with Add-ons</span> 4056 </button> 4057 --> 4058 </div> 4059 </div> 4060 </div> 4061 4062 </div> 4063 </div> 4064 4065
4065<script> 4066 document.addEventListener('DOMContentLoaded', function() { 4067 // Detect iOS 4068 var isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; 4069 4070 if (isIOS) { 4071 document.querySelector('.formAddressPurchase').classList.add('ios'); 4072 4073 // iOS specific fixes 4074 var inputs = document.querySelectorAll('.formAddressPurchase .input__field'); 4075 4076 inputs.forEach(function(input) { 4077 // Force enable touch events on iOS 4078 input.style.webkitUserSelect = 'text'; 4079 input.style.webkitTouchCallout = 'default'; 4080 input.style.pointerEvents = 'auto'; 4081 input.style.touchAction = 'manipulation'; 4082 4083 // Add explicit touch event listeners for iOS 4084 input.addEventListener('touchstart', function(e) { 4085 e.stopPropagation(); 4086 this.focus(); 4087 }, { passive: false }); 4088 4089 input.addEventListener('touchend', function(e) { 4090 e.preventDefault(); 4091 e.stopPropagation(); 4092 this.focus(); 4093 this.click(); 4094 }, { passive: false }); 4095 4096 // Force focus on tap for iOS 4097 input.addEventListener('click', function(e) { 4098 e.stopPropagation(); 4099 if (document.activeElement !== this) { 4100 this.focus(); 4101 } 4102 }); 4103 }); 4104 4105 // Fix for label overlapping on iOS 4106 var labels = document.querySelectorAll('.formAddressPurchase .input__label'); 4107 labels.forEach(function(label) { 4108 label.style.pointerEvents = 'none'; 4109 label.addEventListener('touchstart', function(e) { 4110 e.preventDefault(); 4111 var input = this.parentNode.querySelector('.input__field'); 4112 if (input) { 4113 input.focus(); 4114 } 4115 }); 4116 }); 4117 } 4118 4119 // Handle input state for all browsers, especially iOS 4120 var inputs = document.querySelectorAll('.input__field'); 4121 4122 inputs.forEach(function(input) { 4123 // Handle input events 4124 input.addEventListener('input', function() { 4125 if (this.value.trim() !== '') { 4126 this.classList.add('has-value'); 4127 } else { 4128 this.classList.remove('has-value'); 4129 } 4130 }); 4131 4132 // Handle focus 4133 input.addEventListener('focus', function() { 4134 this.classList.add('focused'); 4135 // iOS specific: ensure input is visible 4136 if (isIOS) { 4137 setTimeout(function() { 4138 input.scrollIntoView({ behavior: 'smooth', block: 'center' }); 4139 }, 300); 4140 } 4141 }); 4142 4143 // Handle blur 4144 input.addEventListener('blur', function() { 4145 this.classList.remove('focused'); 4146 if (this.value.trim() !== '') { 4147 this.classList.add('has-value'); 4148 } else { 4149 this.classList.remove('has-value'); 4150 } 4151 }); 4152 4153 // Initial check for pre-filled values 4154 if (input.value.trim() !== '') { 4155 input.classList.add('has-value'); 4156 } 4157 }); 4158 4159 // Additional iOS fixes 4160 if (isIOS) { 4161 // Prevent iOS Safari from adding default styling 4162 document.addEventListener('touchstart', function() {}, { passive: true }); 4163 4164 // Fix viewport issues on iOS 4165 var viewport = document.querySelector('meta[name=viewport]'); 4166 if (viewport) { 4167 viewport.setAttribute('content', 4168 'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' 4169 ); 4170 } 4171 } 4172 }); 4173 </script>
4173 4174 </div> 4175 <div class="purchase-button-wrapper"> 4176 <div class="purchase-button btn-address row m-0"> 4177 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 4178 4179 <button class="back-purchase-button back-address text-uppercase"> 4180 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif"> 4181 <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"/> 4182 </svg> 4183 <span>Back</span> 4184 </button> 4185 4186 </div> 4187 <div class="btn-next-card col-12 col-lg-10 text-right"> 4188 4189 <!-- 4190 <button class="back-purchase-button back-address text-uppercase mr-lg-2 mb-2 mb-lg-0"> 4191 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif"> 4192 <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"/> 4193 </svg> 4194 <span>Back</span> 4195 </button> 4196 --> 4197 4198 4199 <button 4200 4201 id="addtocart-card" 4202 4203 class="btn next-address text-uppercase" 4204 4205 > 4206 <span>add to cart</span> 4207 </button> 4208 </div> 4209 </div> 4210 4211 </div> 4212 </div> 4213 </div> 4214 4215 </div> 4216 </div> 4217 <div id="backgroundPopup"></div> 4218 4219 4220 4221 <input 4222 data-index="1" 4223 type="hidden" 4224 id="properties-delivery-date" 4225 name="properties[Delivery Date]" 4226 value="-" 4227 > 4228 <input 4229 data-index="2" 4230 type="hidden" 4231 id="properties-delivery-time" 4232 name="properties[Delivery Time]" 4233 value="-" 4234 > 4235 <input 4236 data-index="4" 4237 type="hidden" 4238 id="properties-nama-penerima" 4239 name="properties[Nama Penerima]" 4240 value="-" 4241 > 4242 <input 4243 data-index="5" 4244 type="hidden" 4245 id="properties-alamat-penerima" 4246 name="properties[Alamat Penerima]" 4247 value="-" 4248 > 4249 <input 4250 data-index="6" 4251 type="hidden" 4252 id="properties-kodepos" 4253 name="properties[Kodepos]" 4254 value="-" 4255 > 4256 <input data-index="7" type="hidden" id="properties-telepon-penerima" name="properties[Telepon Penerima]"> 4257 4258 4259 <input 4260 data-index="8" 4261 type="hidden" 4262 id="properties-kartu-nama-penerima" 4263 name="properties[Kartu Nama Penerima]" 4264 value="-" 4265 > 4266 4267 <textarea 4268 data-index="9" 4269 type="hidden" 4270 id="properties-kartu-pesan" 4271 name="properties[Kartu Pesan]" 4272 style="display: none" 4273 >-</textarea> 4274 4275 4276 4277 <input 4278 data-index="10" 4279 type="hidden" 4280 id="properties-kartu-nama-pengirim" 4281 name="properties[Kartu Nama Pengirim]" 4282 value="-" 4283 > 4284 4285 <!-- Additional Shipping --> 4286 <input type="hidden" id="properties-kota-pengiriman-province" name="properties[Province]"> 4287 <input 4288 type="hidden" 4289 id="properties-kota-pengiriman-country" 4290 name="properties[Country]" 4291 value="Indonesia" 4292 > 4293 <input type="hidden" id="properties-shipping" name="properties[Shipping]"> 4294 4295 <input type="hidden" id="properties-time" name="properties[Time]"> 4296 <input type="hidden" id="properties-card" name="properties[Card]"> 4297 <input type="hidden" id="properties-addons" name="properties[Addons]"> 4298 4299 <input 4300 type="hidden" 4301 id="properties-company" 4302 name="properties[Company]" 4303 value="" 4304 > 4305
4305<script> 4306 4307 $(document).ready(function(){ 4308 4309 var text_max_papan1=150; 4310 var msg_text_papan1=""; 4311 $('#kartu-ucapan-ucapan').keyup(function(){ 4312 var text_length_papan1=$('#kartu-ucapan-ucapan').val().length; 4313 var msg_text_papan1=$('#kartu-ucapan-ucapan').val(); 4314 }); 4315 4316 var notes_papan1 = [ 4317 4318 [0,"Happy Wedding (nama & nama)."],[1,"Congratulations lovebirds (nama & nama)."],[2,"Selamat berbahagia (nama & nama)."],[3,"Selamat menempuh hidup baru (nama & nama)."] 4319 4320 ]; 4321 $('#show_note_papan1').click(function(event){ 4322 event.preventDefault(); 4323 var idx_papan1=parseInt($('#note_id_papan1').val()); 4324 if(isNaN(idx_papan1)){ 4325 idx_papan1=0; 4326 }else{ 4327 idx_papan1++; 4328 idx_papan1=idx_papan1%notes_papan1.length; 4329 } 4330 var note_papan1=notes_papan1[idx_papan1][1]; 4331 $('#note_id_papan1').val(idx_papan1); 4332 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan1); 4333 $('#msgDelivery').val(note_papan1); 4334 4335 var text_length_papan1=$('#kartu-ucapan-papan').val().length; 4336 var idx_2_papan1=parseInt($('#note_btn_id_papan1').val()); 4337 if(isNaN(idx_2_papan1)){ 4338 idx_2_papan1=0; 4339 }else{ 4340 idx_2_papan1++; 4341 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4342 } 4343 $('#note_btn_id_papan1').val(idx_2_papan1); 4344 //var note_btn=note_btn_text[idx_2][1]; 4345 //$('#note_btn').text(note_btn); 4346 }); 4347 4348 var text_max_papan2=150; 4349 var msg_text_papan2=""; 4350 $('#kartu-ucapan-ucapan').keyup(function(){ 4351 var text_length_papan2=$('#kartu-ucapan-ucapan').val().length; 4352 var msg_text_papan2=$('#kartu-ucapan-ucapan').val(); 4353 }); 4354 4355 var notes_papan2 = [ 4356 4357 [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)."] 4358 4359 ]; 4360 $('#show_note_papan2').click(function(event){ 4361 event.preventDefault(); 4362 var idx_papan2=parseInt($('#note_id_papan2').val()); 4363 if(isNaN(idx_papan2)){ 4364 idx_papan2=0; 4365 }else{ 4366 idx_papan2++; 4367 idx_papan2=idx_papan2%notes_papan2.length; 4368 } 4369 var note_papan2=notes_papan2[idx_papan2][1]; 4370 $('#note_id_papan2').val(idx_papan2); 4371 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan2); 4372 $('#msgDelivery').val(note_papan2); 4373 var text_length_papan2=$('#kartu-ucapan-papan').val().length; 4374 var idx_2_papan2=parseInt($('#note_btn_id_papan2').val()); 4375 if(isNaN(idx_2_papan2)){ 4376 idx_2_papan2=0; 4377 }else{ 4378 idx_2_papan2++; 4379 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4380 } 4381 $('#note_btn_id_papan2').val(idx_2_papan2); 4382 //var note_btn=note_btn_text[idx_2][1]; 4383 //$('#note_btn').text(note_btn); 4384 }); 4385 4386 var text_max_papan3=150; 4387 var msg_text_papan3=""; 4388 $('#kartu-ucapan-ucapan').keyup(function(){ 4389 var text_length_papan3=$('#kartu-ucapan-ucapan').val().length; 4390 var msg_text_papan3=$('#kartu-ucapan-ucapan').val(); 4391 }); 4392 4393 var notes_papan3 = [ 4394 4395 [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)."] 4396 4397 ]; 4398 $('#show_note_papan3').click(function(event){ 4399 event.preventDefault(); 4400 var idx_papan3=parseInt($('#note_id_papan3').val()); 4401 if(isNaN(idx_papan3)){ 4402 idx_papan3=0; 4403 }else{ 4404 idx_papan3++; 4405 idx_papan3=idx_papan3%notes_papan3.length; 4406 } 4407 var note_papan3=notes_papan3[idx_papan3][1]; 4408 $('#note_id_papan3').val(idx_papan3); 4409 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan3); 4410 $('#msgDelivery').val(note_papan3);
4411 var text_length_papan3=$('#kartu-ucapan-papan').val().length; 4412 var idx_2_papan3=parseInt($('#note_btn_id_papan3').val()); 4413 if(isNaN(idx_2_papan3)){ 4414 idx_2_papan3=0; 4415 }else{ 4416 idx_2_papan3++; 4417 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4418 } 4419 $('#note_btn_id_papan3').val(idx_2_papan3); 4420 //var note_btn=note_btn_text[idx_2][1]; 4421 //$('#note_btn').text(note_btn); 4422 }); 4423 4424 var text_max_papan4=150; 4425 var msg_text_papan4=""; 4426 $('#kartu-ucapan-ucapan').keyup(function(){ 4427 var text_length_papan4=$('#kartu-ucapan-ucapan').val().length; 4428 var msg_text_papan4=$('#kartu-ucapan-ucapan').val(); 4429 }); 4430 4431 $('#show_note_papan4').click(function(event){ 4432 var notes_papan4 = [ 4433 [0,"Hereâs to youâsteadier, stronger and better every day."], 4434 [1,"Warmest wishes for a speedy recovery!"], 4435 [2,"Dengan ucapan terhangat, semoga lekas membaik dan semakin pulih setiap harinya ya."], 4436 [3,"Semoga lekas sembuh untuk kembali beraktivitas dan berkarya."] 4437 ]; 4438 event.preventDefault(); 4439 var idx_papan4=parseInt($('#note_id_papan4').val()); 4440 console.log(idx_papan4, 'idx_papan4') 4441 if(isNaN(idx_papan4)){ 4442 idx_papan4=0; 4443 }else{ 4444 idx_papan4++; 4445 idx_papan4=idx_papan4%notes_papan4.length; 4446 } 4447 var note_papan4=notes_papan4[idx_papan4][1]; 4448 $('#note_id_papan4').val(idx_papan4); 4449 $('#kartu-ucapan-papan, #properties-kartu-ucapan, #properties-kartu-pesan').val(note_papan4); 4450 console.log(note_papan4, 'note_papan4') 4451 var text_length_papan4=$('#kartu-ucapan-papan').val().length; 4452 var idx_2_papan4=parseInt($('#note_btn_id_papan4').val()); 4453 if(isNaN(idx_2_papan4)){ 4454 idx_2_papan4=0; 4455 }else{ 4456 idx_2_papan4++; 4457 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4458 } 4459 $('#note_btn_id_papan4').val(idx_2_papan4); 4460 }); 4461 4462 /* 4463 $("#jenisPapan").change(function(){ 4464 $( "select option:selected").each(function(){ 4465 if($(this).attr("value")=="Happy Wedding"){ 4466 $("#suggest-messages a").hide(); 4467 $("#show_note_papan1").show(); 4468 $("#kartu-ucapan-papan").val(""); 4469 } 4470 if($(this).attr("value")=="Congratulations"){ 4471 $("#suggest-messages a").hide(); 4472 $("#show_note_papan2").show(); 4473 $("#kartu-ucapan-papan").val(""); 4474 } 4475 if($(this).attr("value")=="Duka Cita"){ 4476 $("#suggest-messages a").hide(); 4477 $("#show_note_papan3").show(); 4478 $("#kartu-ucapan-papan").val(""); 4479 } 4480 }); 4481 }).change(); 4482 */ 4483 4484 4485 4486 4487 4488 $(".variant-metafield").each(function(){ 4489 const t = $(this) 4490 const id = t.attr("id") 4491 const target = $(`[data-select=${id}]`) 4492 t.on('select2:selecting', function(e) { 4493 const data = e.params.args.data 4494 target.val(data.text) 4495 }); 4496 }) 4497 }) 4498 </script>
4498 4499 4500 <div id="popupCart"> 4501 <div class="container"> 4502 <div class="wrapperPopupCart"> 4503 <div class="headerPopupCart"> 4504 <div class="d-flex pl-5 pr-5 p-4"> 4505 <svg xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="16" height="12" viewBox="0 0 16 12" fill="none"> 4506 <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"/> 4507 </svg> 4508 <span>item added to your cart</span> 4509 </div> 4510 <a class="close-purchase-popup"> 4511 <svg xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="18" height="18" viewBox="0 0 18 18" fill="none"> 4512 <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"/> 4513 </svg> 4514 </a> 4515 4516 </div> 4517 <div class="contentPopupCart"> 4518 <div class="pl-5 pr-5 p-4"> 4519 <div class="itemContent row m-0 justify-content-between"> 4520 <div class="col-2 align-self-center"> 4521 4522 <img 4523 class="d-block" 4524 width="80" 4525 src="//outerbloom.com/cdn/shop/files/Blossom-Shine-WM_80x.jpg?v=1695788426" 4526 > 4527 </div> 4528 <div class="col-10 align-self-center"> 4529 <div class="row pl-3"> 4530 <div class="col-12 col-lg-7"> 4531 <span class="titleCartPopup text-uppercase">RAGU? GABUNG DI RAJABANDOT ã½ï¸ Situs Toto Macau Gacor Minimal Bet Murah & Prediksi Macau Ter-Percaya</span> 4532 </div> 4533 <div class="d-flex justify-content-end col-12 col-lg-5"> 4534 <span class="deleteCartPopup hide">Delete</span> 4535 <span class="lineCartPrice align-self-center">Rp 10.000</span> 4536 </div> 4537 </div> 4538 </div> 4539 </div> 4540 <div class="itemProperties"> 4541 4542 <div class="propDeliver"> 4543 <h4>delivery option detail</h4> 4544 <p> 4545 <span>delivery city</span> 4546 <span class="propDeliveryCity">jakarta</span> 4547 </p> 4548 <p> 4549 <span>delivery date</span> 4550 <span class="propDeliveryDate">24/03/2025</span> 4551 </p> 4552 <p> 4553 <span>delivery time</span> 4554 <span class="propDeliveryTime">Afternoon | 13:00 - 18:00</span> 4555 </p> 4556 </div> 4557 <div class="propAddress"> 4558 <h4>delivery option detail</h4> 4559 <p> 4560 <span>RECIPIENT NAME</span> 4561 <span class="propDeliveryName">jane doe</span> 4562 </p> 4563 <p> 4564 <span>delivery address</span> 4565 <span class="propDeliveryAddress" 4566 >Jl. Gatot Subroto No. 25, RT.2/RW.4, Kuningan Barat, Kecamatan Mampang Prapatan, Kota Jakarta 4567 Selatan, Daerah Khusus Ibukota Jakarta 12710, Indonesia</span 4568 > 4569 </p> 4570 <p> 4571 <span>recipient phone number</span> 4572 <span class="propDeliveryPhone">(+62) 812-3456-7890</span> 4573 </p> 4574 <p> 4575 <span>PROVINCE</span> 4576 <span class="propDeliveryProv">Jakarta</span> 4577 </p> 4578 <p> 4579 <span>postal code</span> 4580 <span class="propDeliveryZip">12710</span> 4581 </p> 4582 4583 4584 </div> 4585 4586 </div> 4587 <div class="itemAddonCart"> 4588 <div class="toggleAddonCart d-flex justify-content-between"> 4589 <h4>add-ons (0)</h4> 4590 <svg xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="5" height="9" viewBox="0 0 5 9" fill="none"> 4591 <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"/> 4592 </svg> 4593 </div> 4594 <div class="wrapperItemAddonCart"></div> 4595 </div> 4596 4597 </div> 4598 </div>
4599 <div class="footerPopupCart"> 4600 <div class="row m-0 pl-5 pr-5 p-4"> 4601 <a class="btn btnViewCart w-100 text-uppercase text-center" href="/cart">View Cart</a> 4602 <a class="btn btnViewCheckout w-100 text-uppercase text-center" href="/checkout"><span>Checkout</span></a> 4603 <a class="btnContinueShopping w-100 text-center" href="/">Continue shopping</a> 4604 </div> 4605 </div> 4606 </div> 4607 </div> 4608 </div> 4609 4610 4611
4611<script> 4612 const shareButton = document.getElementById('shareButton'); 4613 4614 shareButton.addEventListener('click', () => { 4615 if (navigator.share) { 4616 navigator.share({ 4617 title: "RAGU? GABUNG DI RAJABANDOT ã½ï¸ Situs Toto Macau Gacor Minimal Bet Murah & Prediksi Macau Ter-Percaya", 4618 url: "/products/blossom-shine", 4619 text: 'Check out this page!' 4620 }) 4621 .then(() => console.log('Successful share')) 4622 .catch((error) => console.log('Error sharing', error)); 4623 } else { 4624 alert('Web Share API is not supported in this browser.'); 4625 } 4626 }); 4627 4628 // Inventory validation function 4629 function checkInventoryStatus() { 4630 const productSelect = document.getElementById('productSelect'); 4631 const purchaseButton = document.querySelector('#personalizeBtn button'); 4632 4633 if (!productSelect || !purchaseButton) return; 4634 4635 const selectedVariantId = productSelect.value; 4636 4637 // Get variant data from Shopify 4638 fetch(`/products/blossom-shine.js`) 4639 .then(response => response.json()) 4640 .then(product => { 4641 const selectedVariant = product.variants.find(variant => variant.id == selectedVariantId); 4642 4643 if (selectedVariant) { 4644 const isOutOfStock = selectedVariant.inventory_quantity <= 0 && 4645 selectedVariant.inventory_management === 'shopify' && 4646 selectedVariant.inventory_policy !== 'continue'; 4647 4648 if (isOutOfStock) { 4649 purchaseButton.disabled = true; 4650 purchaseButton.textContent = 'Out of Stock'; 4651 purchaseButton.setAttribute('data-out-of-stock', 'true'); 4652 purchaseButton.style.backgroundColor = '#cccccc'; 4653 purchaseButton.style.cursor = 'not-allowed'; 4654 } else { 4655 // Check if button was disabled due to other conditions 4656 4657 4658 4659 4660 4661 4662 4663 4664 const isOtherDisabled = false || true || false; 4665 4666 if (!isOtherDisabled) { 4667 purchaseButton.disabled = false; 4668 purchaseButton.textContent = 'customize your flower board'; 4669 purchaseButton.removeAttribute('data-out-of-stock'); 4670 purchaseButton.style.backgroundColor = ''; 4671 purchaseButton.style.cursor = ''; 4672 } 4673 } 4674 } 4675 }) 4676 .catch(error => { 4677 console.error('Error checking inventory:', error); 4678 }); 4679 } 4680 4681 // Check inventory on page load 4682 document.addEventListener('DOMContentLoaded', function() { 4683 checkInventoryStatus(); 4684 4685 // Listen for variant changes 4686 const productSelect = document.getElementById('productSelect'); 4687 if (productSelect) { 4688 productSelect.addEventListener('change', checkInventoryStatus); 4689 } 4690 }); 4691 4692 // Prevent form submission if out of stock 4693 document.addEventListener('click', function(e) { 4694 if (e.target.matches('button[data-out-of-stock="true"]')) { 4695 e.preventDefault(); 4696 e.stopPropagation(); 4697 alert('This product is currently out of stock and cannot be purchased.'); 4698 return false; 4699 } 4700 }); 4701 </script>
4701 4702 4703 4704 4705 </div> 4706 4707 </div> 4708 </div> 4709 </div> 4710 </div> 4711 <div id="product-bottom"> 4712 4713 <div class="product-description rte bg-card col-12 py-3 px-0 m-0" itemprop="description"> 4714 <div class="container"> 4715 4716 4717 4718 4719 4720 <div class="short-desc-mobile d-block d-lg-none mb-3"> 4721 <div class="short-desc"> 4722 <ul> 4723 <li><strong>Rajabandot hadir sebagai solusi utama bagi para penggemar yang menginginkan pengalaman bermain terbaik di Indonesia.</strong></li> 4724 </div> 4725 <label class="more-mobile">Show More â</label> 4726 </div> 4727 4728 <style> 4729 .animated-title { 4730 text-align: center; 4731 font-weight: bold; 4732 color: #079c02; 4733 font-size: 28px; 4734 position: relative; 4735 animation: glow 2s infinite alternate, moveUpDown 3s infinite; 4736 } 4737 4738 /* Efek glow / bercahaya hijau */ 4739 @keyframes glow { 4740 0% { text-shadow: 0 0 5px #079c02; color: #079c02; } 4741 50% { text-shadow: 0 0 20px #00ff55; color: #12d12b; } 4742 100% { text-shadow: 0 0 10px #1bff00; color: #079c02; } 4743 } 4744 4745 /* Efek gerakan naik turun */ 4746 @keyframes moveUpDown { 4747 0% { transform: translateY(0px); } 4748 50% { transform: translateY(-5px); } 4749 100% { transform: translateY(0px); } 4750 } 4751 </style> 4752 4753
4753<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/shopify-cartjs/1.1.0/cart.min.js"></script>
4753 4754
4754<script> 4755 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}); 4756 4757 const productType = $("[data-product-type]").data("product-type") 4758 const productDate = Date.parse(new Date()) 4759 4760 const shop = 'outerbloom1.myshopify.com' 4761 const host = 'https://app.asmaraku.com' 4762 // const host = 'http://localhost:5001' 4763 4764 const gsheet = "https://script.google.com/macros/s/AKfycbyqa6mPD6lVjU6hiHr12J8URZ2aJBGyxBsGQ0QtEIDari-rBk_9vSOITjSSmUXL1NwxEg/exec" 4765 4766 const qrID = "041025" + randomString(4, 'aAbCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ') 4767 4768 $("#properties-time").val(new Date().getTime()) 4769 4770 const isIOS = /iPhone|iPad|iPod/i.test(navigator.userAgent); 4771 4772 if(!isIOS) { 4773 $("#full-date").attr("type", "button") 4774 } 4775 4776 let dateTime = new Date(); 4777 let today = dateTime.getDate(); 4778 let day = dateTime.getDay(); 4779 let hour = dateTime.getHours(); 4780 let min = dateTime.getMinutes(); 4781 let timeOfDay = hour + (min / 100); 4782 4783 async function getFetch(url) { 4784 const response = await fetch(url); 4785 let status = false 4786 let result 4787 if(response.ok) { 4788 status = true 4789 result = await response.json(); 4790 } 4791 return { 4792 status, 4793 data: result 4794 } 4795 } 4796 4797 4798 4799 function setCookie(cname, cvalue, exMins) { 4800 var d = new Date(); 4801 d.setTime(d.getTime() + (exMins*60*1000)); 4802 var expires = "expires="+d.toUTCString(); 4803 document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; 4804 } 4805 4806 function getCookie(cname) { 4807 let name = cname + "="; 4808 let decodedCookie = decodeURIComponent(document.cookie); 4809 let ca = decodedCookie.split(';'); 4810 for(let i = 0; i <ca.length; i++) { 4811 let c = ca[i]; 4812 while (c.charAt(0) == ' ') { 4813 c = c.substring(1); 4814 } 4815 if (c.indexOf(name) == 0) { 4816 return c.substring(name.length, c.length); 4817 } 4818 } 4819 return ""; 4820 } 4821 4822 async function renderDate() { 4823 let dataDate = await getFetch(`${host}/api/shipping/date?domain=${shop}&productId=8144957800663&v=${Date.now()}`); 4824 console.log(dataDate, 'renderDate') 4825 const data = dataDate?.data 4826 const date = data.date 4827 const time = data.time 4828 4829 console.log(date, 'DATE') 4830 4831 const weekday = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]; 4832 const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; 4833 const htmlDate = [] 4834 for(let i = 0;i < date.length;i++) { 4835 const full = date[i].date 4836 const d = new Date(date[i].date); 4837 const day = weekday[d.getDay()]; 4838 const dt = d.getDate(); 4839 const mt = monthly[d.getMonth()]; 4840 const yr = d.getFullYear(); 4841 const isDate = Boolean(date[i].isEnabled) 4842 const cutoffpagi = date[i].cutoff?.pagi 4843 const cutoffsiang = date[i].cutoff?.siang 4844 const cutoffMalam = date[i].cutoff?.Malam 4845 var html = ` 4846 <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'}> 4847 ${dt === today ? 4848 `Today<span>${dt < 10 ? '0' + dt : dt}</span>` : 4849 `${day}<span>${dt < 10 ? '0' + dt : dt}</span>` 4850 } 4851 </button> 4852 ` 4853 htmlDate.push(html) 4854 } 4855 const htmlTime = [] 4856 for(var i = 0;i < time.length;i++) { 4857 const timeText = time[i].text 4858 const timeTime = time[i].time 4859 const timeEnabled = time[i].isEnabled 4860 var html = ` 4861 <button class="time-single calendarbutton2 btn steps-btn" data-time="${timeText}" ${timeEnabled ? '' : 'disabled'}>${timeText}<br/>${timeTime}</button> 4862 ` 4863 htmlTime.push(html) 4864 } 4865 const deliveryDate = document.getElementById("deliveryDate"); 4866 if(deliveryDate) { 4867 deliveryDate.insertAdjacentHTML("afterbegin", htmlDate.join('')) 4868 $("#deliveryTime").html(htmlTime) 4869 if(productType !== '') { 4870 console.log("clarity event " + productType + ' calendaring') 4871 window.clarity("event", `${productType} calendaringSchedule`) 4872 // window.clarity("set", productType, `calendaringSchedule - ${productDate}`) 4873 } 4874 } 4875 } 4876 4877 async function getProvince(city) { 4878 let { data: { province } } = await getFetch(`${host}/api/shipping/address/province?city=${city}`); 4879 console.log(province, 'province') 4880 $("#province").val(province) 4881 } 4882 4883 async function renderAddress() { 4884 let current 4885 if(getCookie("location_delivery")){ 4886 current = getCookie("location_delivery").charAt(0).toUpperCase() + getCookie("location_delivery").slice(1) 4887 } 4888 let address = await getFetch(`${host}/api/shipping/address?domain=${shop}&productId=8144957800663`); 4889 console.log(address) 4890 const data = address?.data?.city 4891 const htmlAddress = [] 4892 const grouping = []
4893 for(let i = 0;i < data?.length;i++) { 4894 if(data[i]){ 4895 if(data[i]?.group) { 4896 grouping.push(data[i].group) 4897 } 4898 const price = rupiah.format(data[i]?.rate) 4899 let promo = '(Promo Free Delivery)' 4900 if(data[i]?.name === 'Jakarta - PickUp ASHTA'){ 4901 promo = '(at SCBD, Ashta)' 4902 } else if(data[i]?.name === 'Jakarta - PickUp ITC'){ 4903 promo = '(at Kuningan, ITC Kuningan)' 4904 } else if(data[i]?.name === 'BSD - PickUp'){ 4905 promo = '(at Goldfinch Gading Serpong)' 4906 } else if(data[i]?.name === 'Kota Lainnya'){ 4907 promo = '' 4908 } 4909 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>`) 4910 } 4911 } 4912 4913 const deliveryCity = document.getElementById("cities"); 4914 if(deliveryCity) { 4915 deliveryCity.insertAdjacentHTML("beforeend", htmlAddress.join('')) 4916 if(!isIOS) { 4917 $(deliveryCity).select2(); 4918 } 4919 } 4920 } 4921 4922 async function renderZip(v, v2, v3) { 4923 const deliveryZip = document.getElementById("zip"); 4924 if(v === '') { 4925 return 4926 } 4927 let dataZip = await getFetch(`${host}/api/shipping/address/zip?city=${v}&city2=${v2}&city3=${v3}`); 4928 let zip = dataZip?.data?.zip 4929 console.log(zip) 4930 let htmlZip = [] 4931 for(let i = 0; i < zip?.length;i++) { 4932 htmlZip.push(`<option value="${zip[i]?.postalCode} - ${zip[i]?.subdistrict}">${zip[i]?.postalCode} - ${zip[i]?.subdistrict} - ${zip[i]?.city}</option>`) 4933 } 4934 deliveryZip.insertAdjacentHTML("beforeend", htmlZip.join('')) 4935 } 4936 4937 renderDate() 4938 renderAddress() 4939 4940 let rupiah = new Intl.NumberFormat('id-ID', { 4941 style: 'currency', 4942 currency: 'IDR', 4943 maximumFractionDigits: 0, 4944 minimumFractionDigits: 0 4945 }); 4946 4947 async function insertCard(data) { 4948 const response = await fetch(`${host}/api/card/new`, { 4949 method: "POST", 4950 headers: { 4951 'Content-Type': 'application/json', 4952 }, 4953 body: data 4954 }) 4955 const result = await response.json() 4956 let rowIndex = result?.data?.tableRange.split("Outerbloom!A1:J")[1] 4957 $("#greetingCard").attr("data-index", rowIndex) 4958 return result 4959 } 4960 4961 async function updateCard(data){ 4962 const rowIndex = $("#greetingCard").data("index") 4963 const response = await fetch(`${host}/api/card/update?rowIndex=${rowIndex}`, { 4964 method: "PUT", 4965 headers: { 4966 'Content-Type': 'application/json', 4967 }, 4968 body: data 4969 }) 4970 return response 4971 } 4972 4973 function bytesToSize(bytes) { 4974 var sizes = ['b', 'kb', 'mb', 'gb', 'tb', 'p']; 4975 for (var i = 0; i < sizes.length; i++) { 4976 if (bytes <= 1024) { 4977 return bytes + ' ' + sizes[i]; 4978 } else { 4979 bytes = parseFloat(bytes / 1024).toFixed(2) 4980 } 4981 } 4982 return bytes + ' P'; 4983 } 4984 4985 async function uploadMedia(uri, type) { 4986 nameq = $("#properties-nama-penerima").val() 4987 dear = $("#properties-kartu-nama-penerima").val() 4988 card = $("[data-properties=ucapan]").val() 4989 sender = $("#properties-kartu-nama-pengirim").val() 4990 photo = $("#properties-photo").val() 4991 video = $("#properties-video").val() 4992 status = "Product" 4993 4994 const name = qrID 4995 let formData = new FormData(); 4996 formData.append("file", uri); 4997 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 4998 method: "POST", 4999 body: formData 5000 }) 5001 const result = await response.json(); 5002 if(result) { 5003 const url = result.url 5004 if(type === 'image/jpeg') { 5005 $("#properties-photo").val(url) 5006 $(".preview-image").show() 5007 $(".remove-image").show() 5008 photo = url 5009 } else { 5010 $("#properties-video").val(url) 5011 $("#label-input-video span").text("Change File") 5012 $(".case-qrcode-preview p").text("Scan here for a secret message") 5013 $(".remove-media").show() 5014 $("#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>`) 5015 $("[for=input-video]").hide() 5016 video = url 5017 } 5018 $(".case-video-preview").show() 5019 $(".steps-card-preview").removeClass("loading") 5020 // updateCard(nameq, dear, card, sender, photo, video, status) 5021 5022 $(".nextBtn").attr("disabled", false) 5023 } 5024 } 5025 5026 function randomString(length, chars) { 5027 var result = ''; 5028 for (var i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))]; 5029 return result; 5030 } 5031 5032 function getNoteCity(fulldate) { 5033 const h_1 = new Date(new Date().setDate(new Date().getDate() + 1)) 5034 const weekday = ["Min","Sen","Sel","Rab","Kam","Jum","Sab"]; 5035 const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; 5036 const d = new Date(h_1); 5037 const day = weekday[d.getDay()]; 5038 const dt = d.getDate(); 5039 const mt = monthly[d.getMonth()]; 5040 const yr = d.getFullYear(); 5041 const p = $("#cities").parent(".form-group") 5042 } 5043 5044 function disabledSameDay() { 5045 let btnFirst = $("#deliveryDate").find("button:first-child") 5046 let getDay = new Date().getDay(); 5047 5048 5049 5050 if(getDay == 1 || getDay == 2 || getDay == 3 || getDay == 4 || getDay == 5){ 5051 if(hour >= 14.00){ 5052 btnFirst.attr("disabled", true) 5053 } 5054 } else if(getDay == 6){ 5055 if(hour >= 16.00){ 5056 btnFirst.attr("disabled", true) 5057 } 5058 } else if(getDay == 0){ 5059 if(hour >= 16.00){ 5060 btnFirst.attr("disabled", true) 5061 } 5062 } 5063 5064 5065 } 5066 5067 function disabledays(date) { 5068 let ymd = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate(); 5069 //if u have to disable a list of day 5070 let removeDays 5071 5072 5073 5074 removeDays = ["2025-2-13", "2025-2-14"]; 5075 5076 if ($.inArray(ymd, removeDays) >= 0) { 5077 return [false]; 5078 } else { 5079 let day = date.getDay(); 5080 if(day == 0 && date.getDate() == 13 && date.getMonth() == 1){ 5081 return [(day == 0), '']; 5082 } 5083 5084 if(day == 0){ 5085 return [(day == 0), '']; 5086 } 5087 5088 5089 return [(day != 0), '']; 5090 } 5091 } 5092 5093 /* Indonesian initialisation for the jQuery UI date picker plugin. */ 5094 /* Written by Deden Fathurahman ([email protected]). */ 5095 ( function( factory ) { 5096 if ( typeof define === "function" && define.amd ) { 5097 5098 // AMD. Register as an anonymous module. 5099 define( [ "../widgets/datepicker" ], factory ); 5100 } else { 5101 5102 // Browser globals 5103 factory( jQuery.datepicker ); 5104 } 5105 }( function( datepicker ) { 5106 5107 datepicker.regional.id = { 5108 closeText: "Tutup", 5109 prevText: "<mundur", 5110 nextText: "maju>", 5111 currentText: "Today", 5112 monthNames: [ "January","February","March","April","May","Juny", 5113 "July","August","September","October","November","December" ], 5114 monthNamesShort: [ "Jan","Feb","Mar","Apr","May","Jun", 5115 "Jul","Agu","Sep","Oct","Nov","Dec" ], 5116 dayNames: [ "Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu" ], 5117 dayNamesShort: [ "Sun","Mon","Tue","Wed","Thu","Fri","Sat" ], 5118 dayNamesMin: [ "Mg","Sn","Sl","Rb","Km","jm","Sb" ], 5119 weekHeader: "Mg", 5120 dateFormat: "D, dd M", 5121 firstDay: 0, 5122 isRTL: false, 5123 showMonthAfterYear: false, 5124 yearSuffix: "" }; 5125 datepicker.setDefaults( datepicker.regional.id ); 5126 5127 return datepicker.regional.id; 5128 5129 } ) ); 5130 5131 function loadPopup() { 5132 $("#backgroundPopup").fadeIn("slow"); 5133 $(".purchasePopup:not(.purchasePopupSpotify)").fadeIn("slow"); 5134 const firstSection = $(".purchasePopup:not(.purchasePopupSpotify) .sectionPurchase").first() 5135 if(firstSection.hasClass("purchasePersonalize")) { 5136 if(productType !== '') { 5137 console.log("clarity event " + productType + ' personalize') 5138 window.clarity("event", `${productType} cardPersonalization`) 5139 // window.clarity("set", productType, `cardPersonalization - ${productDate}`) 5140 } 5141 } else if (firstSection.hasClass("sectionPurchaseBoard")) { 5142 console.log("clarity event " + productType + ' personalizeBoard') 5143 window.clarity("event", `${productType} personalizeBoard`) 5144 // window.clarity("set", productType, `personalizeBoard - ${productDate}`) 5145 } 5146 firstSection.removeClass("hide") 5147 5148 // Auto-trigger addon loading when addon section becomes visible 5149 setTimeout(function() { 5150 const addonSection = $(".purchaseAddon") 5151 if(addonSection.length > 0 && !addonSection.hasClass("hide")) { 5152 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 5153 $("[data-addon=upsell-all]").trigger("click") 5154 } 5155 } 5156 }, 200) 5157 } 5158 5159 function disablePopup() { 5160 $("#backgroundPopup").fadeOut("slow"); 5161 $(".purchasePopup").fadeOut("slow"); 5162 $("#popupCart").fadeOut("slow"); 5163 } 5164
5165 function scrollTo(parent, div, dur) { 5166 $(parent).animate({ 5167 scrollTop: $(div).offset().top 5168 }, dur); 5169 } 5170 5171 function loadPopupPersonalize() { 5172 const div = "#purchaseProduct" 5173 const p = "html, body, .product-meta" 5174 $("p.error").remove() 5175 loadItemOccasion($("[data-occassion]").eq(0), "greeting-card-all") 5176 const isCity = $("#cities[required]") 5177 const isDate = $("#propDeliveryDate[required]") 5178 const isTime = $("#propDeliveryTime[required]") 5179 // loadPopup() 5180 if(isCity.val() !== '' && isDate.val() !== '' && isTime.val() !== '') { 5181 loadPopup() 5182 } 5183 if(isCity.val() == '') { 5184 isCity.parent(".row").append("<p class='error'>Choose delivery city</p>") 5185 scrollTo(p, div, 500) 5186 } 5187 if(isDate.val() == '') { 5188 isDate.parents(".row").append("<p class='error'>Choose delivery date</p>") 5189 scrollTo(p, div, 500) 5190 } 5191 if(isTime.val() == '') { 5192 isTime.parents(".row").append("<p class='error'>Choose delivery time</p>") 5193 scrollTo(p, div, 500) 5194 } 5195 } 5196 5197 function quantityCounter() { 5198 $(document).on("click", ".item-card.selected .q_up", function () { 5199 var C = $(this).attr("data-id"), 5200 S = 5201 parseInt( 5202 $(this) 5203 .siblings(".quantity-cart-" + C) 5204 .val() 5205 ) + 1; 5206 $(this).attr("data-quantity", S), 5207 $(this) 5208 .siblings(".quantity-cart-" + C) 5209 .val(S); 5210 }), 5211 $(document).on("click", ".item-card.selected .q_down", function () { 5212 var C = $(this).attr("data-id"), 5213 S = parseInt( 5214 $(this) 5215 .siblings(".quantity-cart-" + C) 5216 .val() 5217 ); 5218 0 < S && $(this).attr("data-quantity", S - 1), 5219 0 < S && 5220 $(this) 5221 .siblings(".quantity-cart-" + C) 5222 .val(S - 1); 5223 }); 5224 } 5225 5226 quantityCounter() 5227 5228 const itemAddon = $(".item-card").length 5229 const nofree = $(".nofree").length 5230 5231 const upsell = '' 5232 5233 if(nofree === itemAddon) { 5234 // $("#itemAddons").html("<p>No Items available</p>") 5235 } 5236 5237 $("#itemAddons .item-card").each(function(e){ 5238 $("#itemAddons").attr("data-length", e) 5239 }) 5240 5241 $("[data-addon]").click(function(){ 5242 5243 5244 5245 const t = $(this) 5246 5247 const data = t.data("addon") 5248 5249 $("[data-addon]").removeClass("selected") 5250 t.addClass("selected") 5251 $.get(`https://outerbloom.com/collections/${data}/products.json`, function(data, status){ 5252 const products = data.products 5253 const html = [] 5254 for(let i = 0; i < products.length; i++) { 5255 const id = products[i].id 5256 const variantId = products[i].variants[0].id 5257 const img = products[i].images[0].src 5258 let img2 = img.split('.jpg')[0] 5259 const title = products[i].title 5260 const price = products[i].variants[0].price 5261 const tags = products[i].tags 5262 const qty = products[i].variants[0].available 5263 let type_upsell = '' 5264 if(tags.includes('upsell-item-standing')) { 5265 type_upsell = 'standing' 5266 } 5267 console.log(type_upsell) 5268 if(type_upsell !== '') { 5269 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}"> 5270 5271 <div class="card-image"> 5272 <img src="${img2}_150x.jpg" alt="${title}" width="" height="" /> 5273 </div> 5274 <div class="card-meta"> 5275 <h5>${title}</h5> 5276 <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p> 5277 <input id="card-${variantId}" type="hidden" name="" value="${variantId}"> 5278 </div> 5279 <div class="card-qty"> 5280 <a data-quantity="1" type="submit" id="q_down-${variantId}" class="btn-qty-min q_down drawer-cart" data-id="${variantId}">
5280<svg xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="12" height="2" viewBox="0 0 12 2" fill="none"><path d="M0 1.90869V0.908691H12V1.90869H0Z" fill="black"/></svg></a> 5281 <input maxlength="3" min="0" class="btn-qty text-center quantity-cart-${variantId}" value="0" data-price=${price} name="quantity"> 5282 <a data-quantity="1" type="submit" class="btn-qty-plus q_up text-green drawer-cart" data-id="${variantId}"><svg xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="12" height="13" viewBox="0 0 12 13" fill="none"> 5283 <path d="M0 6.87023V5.94715H5.53846V0.408691H6.46154V5.94715H12V6.87023H6.46154V12.4087H5.53846V6.87023H0Z" fill="black"/> 5284 </svg></a> 5285 </div> 5286 </div>` 5287 html.push(body) 5288 } 5289 } 5290 $("#itemAddons .row").html(html.length === 0 ? '<p>No Item available</p>' : html) 5291 $("#itemAddons").attr("data-length", products.length) 5292 // $('#itemAddons')[0].swiper.update(); 5293 }); 5294 }) 5295 5296 async function isAddon(){ 5297 let ids = [] 5298 $("#itemAddons .item-card.selected").each(function(i, e){ 5299 const id = $(this).data("id") 5300 ids.push(id) 5301 }) 5302 console.log(ids) 5303 return ids 5304 } 5305 5306 $("#itemAddons").delegate(".item-card > div:not(.card-qty)", "click", async function(){ 5307 const t = $(this).parent() 5308 const id = t.data("id") 5309 const btn = t.parents(".purchaseAddon").find(".next-purchase-button") 5310 t.toggleClass("selected"); 5311 //$(this).next("input").toggleAttr('name', 'id[]'); 5312 if (t.hasClass('selected')) { 5313 t.find("input").val(1) 5314 t.find("input").attr('name', 'id[]'); 5315 } else { 5316 t.find("input").val(0) 5317 t.find("input").removeAttr('name'); 5318 } 5319 $("#properties-addons").val(addons) 5320 const is = await isAddon() 5321 if(is.length === 0) { 5322 btn.text("continue without add-ons") 5323 return 5324 } 5325 if(is.includes(8835692069079)) { 5326 btn.text("personalize acrylic frame") 5327 } else { 5328 btn.text("Continue") 5329 } 5330 5331 }) 5332 5333 async function myAddon(data) { 5334 const c = $(".addonsPurchase .addons") 5335 let items = [] 5336 5337 const spotifyAddons = $(".spotifyAddons").find("[data-index]") 5338 // if(spotifyAddons.length > 0) { 5339 // $(spotifyAddons).each(function(i, e){ 5340 // const spotifyLink = $(this).find(".spotifyLink").val() 5341 // const spotifySong = $(this).find(".spotifySong").val() 5342 // const spotifyArtist = $(this).find(".spotifyArtist").val() 5343 // const spotifyFotoAddon = $(this).find(".resultPhotoSpotify").val() 5344 // if(spotifyLink !== '') { 5345 // spotifyAddon = `<div class="addon-item" data-id="46067682607319" data-qty="1"> 5346 // <div class="addon-itm-img"> 5347 // <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"/> 5348 // </div> 5349 // <div class="addon-itm-title"> 5350 // <span>[US] Outerbloom Acrylic Frame 4R</span> 5351 // </div> 5352 // <div class="addon-itm-line-total"> 5353 // <span>Rp 99.000</span> 5354 // </div> 5355 // </div> 5356 // <div class="propsAddonSpotify row m-0"> 5357 // <div class="col-12 col-lg-2"></div> 5358 // <div class="col-12 col-lg-10"> 5359 // <p> 5360 // <span>spotify link</span> 5361 // <span class="spotifyLinkAddon">${spotifyLink}</span> 5362 // </p> 5363 // <p> 5364 // <span>uploaded photo</span> 5365 // <span class="spotifyFotoAddon">${spotifyFotoAddon}</span> 5366 // </p> 5367 // <p> 5368 // <span>song / playlist name</span> 5369 // <span class="spotifySongAddon">${spotifySong}</span> 5370 // </p> 5371 // <p>
5372 // <span>artist name</span> 5373 // <span class="spotifyArtistAddon">${spotifyArtist}</span> 5374 // </p> 5375 // </div> 5376 // </div>` 5377 // items.push(spotifyAddon) 5378 // } 5379 // }) 5380 // } 5381 for(let i = 0; i < data.length; i++) { 5382 if(data[i].title !== '[US] Outerbloom Acrylic Frame 4R' ) { 5383 const img = data[i].image 5384 const title = data[i].title 5385 const qty = data[i].qty 5386 const price = data[i].price 5387 const total = Number(qty) * Number(price) 5388 let addons = `<div class="addon-item" data-id="${data[i].id}" data-qty="${qty}"> 5389 <div class="addon-itm-img"> 5390 <img src="${img}" alt="" width="70"/> 5391 </div> 5392 <div class="addon-itm-title"> 5393 <span>${title}</span> 5394 </div> 5395 <div class="addon-itm-line-price"> 5396 <span>${rupiah.format(price)}</span> 5397 ${data[i].title == '[US] Outerbloom Acrylic Frame 4R' ? '' : `<span>x${qty}</span>`} 5398 </div> 5399 <div class="addon-itm-line-total"> 5400 <span>${rupiah.format(total)}</span> 5401 </div> 5402 </div>` 5403 items.push(addons) 5404 } 5405 } 5406 c.html(items) 5407 const parent = $(".purchaseAddon") 5408 const next = parent.next(".sectionPurchase") 5409 parent.addClass("hide") 5410 next.removeClass("hide") 5411 // if(items2.length === 0) return $("#popupCart").addClass("no-addon-cart") 5412 // $(".itemAddonCart").find("h4").text(`add-ons (${items2.length})`) 5413 } 5414 5415 async function listAddon() { 5416 const data = $("#itemAddons").find(".selected") 5417 let ids = [] 5418 $(data).each(function(){ 5419 const id = $(this).data("variant") 5420 const image = $(this).find(".card-image img").attr("src") 5421 const title = $(this).find(".card-meta h5").text() 5422 const qty = $(this).find(".card-qty input").val() 5423 const price = $(this).find(".card-qty input").data("price") 5424 ids.push({ 5425 id: Number(id), 5426 image, 5427 title, 5428 qty, 5429 price 5430 }) 5431 }) 5432 myAddon(ids) 5433 } 5434 5435 async function customSpotify(idx, length, type){ 5436 let isCard = false 5437 5438 let p = $(".purchasePopupSpotify") 5439 const preLink = $(".spotifyLinkFirst").val() 5440 $("[data-index]").hide() 5441 p.find(".headerPurchase h3").text(`personalize spotify photo print${length > 1 ? ` - ${idx}` : ''}`) 5442 p.find(".regulerAddons, .purchase-button").hide() 5443 p.find(".spotifyAddons").show() 5444 5445 const data = await trackUrl(preLink) 5446 5447 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://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="13" height="11" viewB
5447ox="0 0 13 11" fill="none"> 5448 <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"/> 5449 </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://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.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://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="13" height="11" viewB
5449ox="0 0 13 11" fill="none"> 5450 <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"/> 5451 </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>` 5452 // console.log(html) 5453 5454 $(".spotifyAddons").append(html) 5455 5456 $(`[data-index=${idx}]`).show() 5457 5458 if (preLink !== '') { 5459 $(".btn-action .btn").attr("disabled", false) 5460 } else { 5461 $(".btn-action .btn").attr("disabled", true) 5462 } 5463 5464 return html 5465 5466 } 5467 5468 $(".spotifyLinkFirst").keyup(async function(){ 5469 const v = $(this).val() 5470 if(v.includes('spotify:user:spotify')) { 5471 const correct = v.split('user:spotify:')[1] 5472 console.log(correct, 'BNER') 5473 $(this).val(correct) 5474 return 5475 } 5476 if(v.includes("spotify:") || v.includes("https://open.spotify.com/")){ 5477 const data = await trackUrl(v) 5478 if(!data || !data.status) { 5479 $(this).parent().addClass("error") 5480 // $(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>`) 5481 $("#personalizeBtnSpotify .btn").attr("disabled", true) 5482 return 5483 } 5484 $(this).parent().removeClass("error") 5485 // $(this).parent().remove("txt-error") 5486 $("#personalizeBtnSpotify .btn").attr("disabled", false) 5487 } else { 5488 $("#personalizeBtnSpotify .btn").attr("disabled", true) 5489 } 5490 }) 5491 5492 $(".purchaseAddon").delegate(".next-addon", "click", function(){ 5493 const parent = $(this).parents(".purchaseAddon") 5494 const next = parent.next(".sectionPurchase") 5495 if(next.hasClass("purchaseAddress")) { 5496 if(productType !== '') { 5497 console.log("clarity event " + productType + ' purchaseDelivery') 5498 window.clarity("event", `${productType} purchaseDelivery`) 5499 // window.clarity("set", productType, `purchaseDelivery - ${productDate}`) 5500 } 5501 } 5502 const data = $("#itemAddons").find(".selected") 5503 const length = $(".quantity-cart-46067682607319").val() 5504 const checked = data.length; 5505 if(checked > 0) { 5506 if(length > 0) { 5507 $(".purchaseAddon").addClass("purchaseAddonSpotify") 5508 customSpotify(1, length, 'addon') 5509 } else { 5510 listAddon() 5511 } 5512 } else { 5513 parent.addClass("hide") 5514 next.removeClass("hide") 5515 } 5516 }) 5517 5518 $("#personalizeBtnSpotify .btn").click(async function(){ 5519 const isCity = $("#cities[required]") 5520 const isDate = $("#propDeliveryDate[required]") 5521 if((isDate.length > 0 && isCity.length > 0) && (isCity.val() === '' || isDate.val() === '')) { 5522 alert('Please choose Delivery City & Delivery Date') 5523 return 5524 } 5525 const data = await customSpotify(1, 1, 'product') 5526 if(data) { 5527 $("#backgroundPopup").fadeIn("slow"); 5528 $(".purchasePopupSpotify").fadeIn("slow"); 5529 5530 if(productType !== '') { 5531 console.log("clarity event " + productType + ' spotify') 5532 window.clarity("event", `${productType} spotify`) 5533 // window.clarity("set", productType, `purchaseDelivery - ${productDate}`) 5534 } 5535 } 5536 }) 5537 5538 function formatBytes(bytes, decimals = 2) { 5539 if (!+bytes) return '0 Bytes' 5540
5541 const k = 1024 5542 const dm = decimals < 0 ? 0 : decimals 5543 const sizes = ['B', 'KB', 'MB'] 5544 5545 const i = Math.floor(Math.log(bytes) / Math.log(k)) 5546 5547 return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}` 5548 } 5549 5550 async function trackUrl(link){ 5551 try { 5552 let trackId = link.split('/').pop().split('?')[0]; 5553 let type = '' 5554 if(link.includes("spotify:")) { 5555 const uri = link.split('spotify:')[1] 5556 trackId = uri.split(':')[1] 5557 type = uri.split(':')[0] + 's' 5558 } else { 5559 if(link.match('track')){ 5560 type = 'tracks' 5561 } else if(link.match('playlist')) { 5562 type = 'playlists' 5563 } else if(link.match('artist')) { 5564 type = 'artists' 5565 } else if(link.match('album')) { 5566 type = 'albums' 5567 } 5568 } 5569 console.log(`${host}/api/spotify/${type}/${trackId}`) 5570 const data = await getFetch(`${host}/api/spotify/${type}/${trackId}`) 5571 console.log(data, 'DATA') 5572 const song = data?.data?.name 5573 const artist = data?.data?.artist 5574 return { 5575 song, artist, type, trackId, status: data.status 5576 } 5577 } catch(err) { 5578 console.log(err) 5579 } 5580 } 5581 5582 $(".spotifyAddons").delegate(".uploadPhotoSpotify", "change", async function(){ 5583 const parent = $(this).parents("[data-index]") 5584 const preview = parent.find(".previewImage") 5585 const file = $(this)[0].files[0]; 5586 if (file) { 5587 const reader = new FileReader(); 5588 reader.onload = async function(e) { 5589 parent.find(".uploadResult label").hide() 5590 parent.find(".uploadedResult").remove() 5591 parent.find(".uploadResult").append(`<div class="uploadedResult d-flex" style="justify-content: space-between"> 5592 <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> 5593 <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;">
5593<svg fill="none" height="11" viewBox="0 0 10 11" width="10" xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif"> 5594 <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 /> 5595 </svg> 5596 </span></div></div>`) 5597 parent.find(".frameImageUploaded svg").hide() 5598 parent.find(".frameImage").addClass("uploaded") 5599 preview.attr("src", e.target.result); 5600 preview.show(); 5601 let formData = new FormData(); 5602 formData.append("file", file); 5603 const response = await fetch(`${host}/api/upload?name=${file.name}&type=image/jpeg&r=${Date.parse(new Date)}`, { 5604 method: "POST", 5605 body: formData 5606 }) 5607 const result = await response.json(); 5608 if(result){ 5609 parent.find(".resultPhotoSpotify").val(result.url) 5610 } 5611 } 5612 5613 reader.readAsDataURL(file); 5614 } else { 5615 preview.hide(); 5616 } 5617 }); 5618 5619 $(".spotifyAddons").delegate(".uploadResult", "click", function(){ 5620 $(this).next("input[type=file]").trigger("click") 5621 }) 5622 5623 $(".spotifyAddons").delegate(".changeUpload", "click", function(){ 5624 $(this).parents("input[type=file]").trigger("click") 5625 }) 5626 5627 $(".spotifyAddons").delegate(".removeUpload", "click", function(){ 5628 const parent = $(this).parents("[data-index]") 5629 parent.find(".uploadPhotoSpotify").val("") 5630 parent.find(".uploadResult label").show() 5631 parent.find(".uploadedResult").remove() 5632 parent.find(".frameImageUploaded svg").show() 5633 parent.find(".previewImage").hide() 5634 parent.find(".frameImage").removeClass("uploaded") 5635 }) 5636 5637 $(".spotifyAddons").delegate("label.checkbox", "click", function(){ 5638 const parent = $(this).parents("[data-index]") 5639 parent.toggleClass("checked") 5640 }) 5641 5642 $(".spotifyAddons").delegate(".spotifyLink", "change", async function(){ 5643 const parent = $(this).parents("[data-index]") 5644 const link = $(this).val() 5645 const data = await trackUrl(link) 5646 5647 console.log(data) 5648 5649 if(data.song) { 5650 parent.find(".spotifySong").val(data.song) 5651 parent.find(".spotifyData").find("h3").text(data.song) 5652 } 5653 if(data.artist) { 5654 parent.find(".spotifyArtist").val(data.artist) 5655 parent.find(".spotifyData").find("p").text(data.artist) 5656 } 5657 parent.find(".spotifyCode img").attr("src", `https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:${data.type.slice(0, -1)}:${data.trackId}`) 5658 // https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:track:1er51HCEBhIAtoEemKuC3M 5659 if (data.status === true) { 5660 parent.find(".btn-action .btn").attr("disabled", false) 5661 } else { 5662 parent.find(".btn-action .btn").attr("disabled", true) 5663 } 5664 }) 5665
5666 $(".spotifyAddons").delegate(".spotifySong", "keyup", async function(){ 5667 const parent = $(this).parents("[data-index]") 5668 const v = $(this).val() 5669 parent.find(".spotifyData h3").text(v) 5670 }) 5671 5672 $(".spotifyAddons").delegate(".spotifyArtist", "keyup", async function(){ 5673 const parent = $(this).parents("[data-index]") 5674 const v = $(this).val() 5675 parent.find(".spotifyData p").text(v) 5676 }) 5677 5678 $(".spotifyAddons").delegate(".btn-action .btn:not(.no-addon)", "click", async function(){ 5679 const parent = $(this).parents("[data-index]") 5680 const length = parent.data("length") 5681 const index = parent.data("index") 5682 const indexNext = Number(index) + 1 5683 customSpotify(indexNext, length, 'addon') 5684 }) 5685 5686 5687 $(".spotifyAddons").delegate(".btn-action .btn.finished", "click", async function(){ 5688 const parent = $(this).parents(".purchaseAddon") 5689 const next = parent.next(".sectionPurchase") 5690 parent.addClass("hide") 5691 next.removeClass("hide") 5692 next.find(".purchase-button").show() 5693 listAddon() 5694 }) 5695 5696 $(".spotifyAddons").delegate(".back-spotify", "click", async function(){ 5697 const t = $(this).parents("[data-index]") 5698 const parent = $(this).parents(".sectionPurchase") 5699 const current = t.data("index") 5700 const prevCurrent = Number(current) - 1 5701 if(current == 1) { 5702 parent.removeClass("purchaseAddonSpotify") 5703 parent.find(".purchase-button").show() 5704 parent.find(".headerPurchase h3").text("Make It More Special with Add-Ons!") 5705 $(".spotifyAddons").empty() 5706 $(".regulerAddons").show() 5707 return 5708 } 5709 t.hide() 5710 t.prev("[data-index]").show() 5711 t.remove() 5712 parent.find(".headerPurchase h3").text(`personalize spotify photo print - ${prevCurrent}`) 5713 }) 5714 5715 $("#personalizeBtn .btn").click(async function() { 5716 loadPopupPersonalize() 5717 }); 5718 5719 $(".sectionPurchaseSpotify").delegate(".btn[data-type=card]", "click", function(){ 5720 $(".sectionPurchaseSpotify").hide() 5721 loadPopupPersonalize() 5722 }) 5723 5724 $(".close-purchase-popup").click(function() { 5725 disablePopup(); 5726 }); 5727 $("#backgroundPopup").click(function() { 5728 // disablePopup(); 5729 }); 5730 5731 $("#popupCart .close-purchase-popup").click(function() { 5732 location.reload() 5733 }); 5734 5735 $('#popupCart').on('hide.bs.modal', function (e) { 5736 location.reload() 5737 }) 5738 5739 $(".next-card").click(function(){ 5740 const parent = $(this).parents(".sectionPurchase") 5741 const next = parent.next(".sectionPurchase") 5742 parent.addClass("hide") 5743 next.removeClass("hide") 5744 }) 5745 5746 $(".back-purchase-button").click(function(){ 5747 const parent = $(this).parents(".sectionPurchase") 5748 const prev = parent.prev(".sectionPurchase") 5749 parent.addClass("hide") 5750 prev.removeClass("hide") 5751 }) 5752 5753 $(document).keypress(function(e) { 5754 if (e.keyCode == 27 && popupStatus == 1) { 5755 disablePopup(); 5756 } 5757 }); 5758 5759 const parentImg = $(".case-img-preview") 5760 const parentVid = $(".case-video-preview") 5761 5762 function readURL(input) { 5763 if (input.files && input.files[0]) { 5764 let reader = new FileReader(); 5765 5766 let type = 'image/jpeg' 5767 const size = input.files[0].size 5768 if(input.files[0].type.match('video/')){ 5769 type = 'video/mp4' 5770 if(size > 15728640) { 5771 alert('File size exceeds maximum limit 15 MB') 5772 return 5773 } 5774 } else { 5775 if(size > 5242880) { 5776 alert('File size exceeds maximum limit 5 MB') 5777 return 5778 } 5779 } 5780 5781 reader.onload = function (e) { 5782 $(".nextBtn").attr("disabled", true) 5783 if(type === 'image/jpeg') { 5784 5785 $('.placeholder-image').hide(); 5786 $('.preview-image').show() 5787 $('.preview-image').attr('src', e.target.result); 5788 5789 } else { 5790 // parentVid.find(".ajax-loader").show(); 5791 $(".steps-card-preview").addClass("loading") 5792 } 5793 } 5794 5795 5796 5797 reader.readAsDataURL(input.files[0]); 5798 } 5799 } 5800 5801 async function readURLPapan(input) { 5802 if (input.files && input.files[0]) { 5803 let reader = new FileReader(); 5804 5805 reader.onload = function (e) { 5806 $('.btn-upload-papan').siblings('label').hide(); 5807 $('.btn-upload-papan img').attr('src', e.target.result); 5808 $('.btn-upload-papan img').show(); 5809 $('.svgLogoPapan').hide(); 5810 } 5811 5812 const type = 'image/jpeg' 5813 const name = `logo-8144957800663-${Date.parse(new Date())}` 5814 5815 let formData = new FormData(); 5816 formData.append("file", input.files[0]); 5817 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 5818 method: "POST", 5819 body: formData 5820 }) 5821 const result = await response.json(); 5822 if(result) { 5823 const url = result.url 5824 $("[data-properties=papan-logo]").val(url) 5825 } 5826
5827 reader.readAsDataURL(input.files[0]); 5828 } 5829 } 5830 5831 async function readURLAddress(input) { 5832 console.log(input, 'readURLAddress') 5833 if (input.files && input.files[0]) { 5834 let reader = new FileReader(); 5835 5836 reader.onload = function (e) { 5837 $('.photo-address').attr('src', e.target.result); 5838 $('.photo-address').show(); 5839 } 5840 5841 const type = 'image/jpeg' 5842 const name = input.files[0].name?.split('.')[0] 5843 5844 let formData = new FormData(); 5845 formData.append("file", input.files[0]); 5846 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 5847 method: "POST", 5848 body: formData 5849 }) 5850 const result = await response.json(); 5851 5852 reader.readAsDataURL(input.files[0]); 5853 5854 return result 5855 } 5856 } 5857 5858 5859 5860 5861 async function addToCartUang() { 5862 var productAddOnId1 = 42122101162199; 5863 var productAddOnId2 = 42122101194967; 5864 var product_id = 8144957800663 5865 const data = { 5866 items: [ 5867 { 5868 quantity: $("#Quantity-" + productAddOnId1).val(), 5869 id: productAddOnId1, 5870 "properties": { "Time": $("#properties-time").val() } 5871 }, 5872 { 5873 quantity: $("#Quantity-" + productAddOnId2).val(), 5874 id: productAddOnId2, 5875 "properties": { "Time": $("#properties-time").val() } 5876 } 5877 ] 5878 } 5879 await fetch(window.Shopify.routes.root + 'cart/add.js', { 5880 method: 'POST', 5881 headers: { 5882 'Content-Type': 'application/json' 5883 }, 5884 body: JSON.stringify(data) 5885 }) 5886 .then(response => { 5887 console.error('Sukses Buket Uang:', response); 5888 $(".form-flower").submit() 5889 }) 5890 .catch((error) => { 5891 console.error('Error Buket Uang:', error); 5892 $(".form-flower").submit() 5893 }); 5894 } 5895 5896 async function saveCard(){ 5897 let isCard = true 5898 const kartu_penerima = $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '' 5899 const kartu_pengirim = $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '' 5900 const kartu_ucapan = $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '' 5901 const foto = $("#properties-photo").val() 5902 const video = $("#properties-video").val() 5903 const data = JSON.stringify({ 5904 "id": qrID, 5905 "penerima": $("#properties-nama-penerima").val(), 5906 "kartu_penerima": kartu_penerima, 5907 "kartu_ucapan": kartu_ucapan, 5908 "kartu_pengirim": kartu_pengirim, 5909 "foto": foto, 5910 "video": video, 5911 "productId": "8144957800663", 5912 "order_name": "", 5913 "status": "Cart" 5914 }) 5915 5916 5917 } 5918 5919 async function additem(items){ 5920 try { 5921 let formData = items 5922 if(items?.length) { 5923 formData = { 5924 'items': items 5925 }; 5926 } 5927 5928 const add = await fetch(window.Shopify.routes.root + 'cart/add.js', { 5929 method: 'POST', 5930 headers: { 5931 'Content-Type': 'application/json', 5932 'X-Requested-With':'xmlhttprequest' /* XMLHttpRequest is ok too, it's case insensitive */ 5933 }, 5934 body: JSON.stringify(formData) 5935 }) 5936 5937 const data = await add.json(); 5938 return data 5939 } catch(err){ 5940 console.log('Error additem', err) 5941 } 5942 } 5943 5944 async function addons(){ 5945 let items = [] 5946 $(".addon-item").each(function(){ 5947 const p = $(this) 5948 const props = p.next(".propsAddonSpotify") 5949 const id = $(this).data("id") 5950 const quantity = $(this).data("qty") 5951 const propId = $("#properties-time").val() 5952 let properties = {} 5953 if(id === 46067682607319) { 5954 const link = props.find(".spotifyLinkAddon").text() 5955 const photo = props.find(".spotifyFotoAddon").text() 5956 const song = props.find(".spotifySongAddon").text() 5957 const artist = props.find(".spotifyArtistAddon").text() 5958 properties = { 5959 id: propId, 5960 "Spotify Link": link !== '' ? link : '-', 5961 "Spotify Photo": photo !== '' ? photo : '-', 5962 "Spotify Song": song !== '' ? song : '-', 5963 "Spotify Artist": artist !== '' ? artist : '-', 5964 type: 'addon' 5965 } 5966 } else { 5967 properties = { 5968 "id": propId, 5969 "type": "addon" 5970 } 5971 } 5972 items.push({ 5973 id, 5974 quantity, 5975 properties 5976 }) 5977 }) 5978 return items 5979 } 5980 5981 async function propItems() { 5982 let props = {} 5983 $("[data-properties]").each(function(e){ 5984 let elementType = this.tagName;
5985 const k = $(this).data("properties") 5986 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') { 5987 const v = elementType === 'SELECT' ? $(this).find(":selected").val() : $(this).val(); 5988 if(v !== '') { 5989 props[k] = v?.replace(/[\s\n]/g, ''); 5990 } 5991 } 5992 }) 5993 return props 5994 } 5995 5996 async function showPopupCart(items){ 5997 if(productType !== '') { 5998 console.log("clarity event " + productType + ' completeOrder') 5999 window.clarity("event", `${productType} completeOrder`) 6000 // window.clarity("set", productType, `completeOrder - ${productDate}`) 6001 } 6002 $("#popupCart").show() 6003 6004 $(".propDeliveryCity").text($("#cities").val()) 6005 $(".propDeliveryDate").text($("#propDeliveryDate").val()) 6006 $(".propDeliveryTime").text($("#propDeliveryTime").val()) 6007 $(".propDeliveryName").text($("[data-properties=nama-penerima]").val()) 6008 $(".propDeliveryAddress").text($("[data-properties=alamat-penerima]").val()) 6009 $(".propDeliveryPhone").text($("[data-properties=telepon-penerima]").val()) 6010 $(".propDeliveryProv").text($("#province").val()) 6011 $(".propDeliveryZip").text($("#zip").val()) 6012 6013 6014 6015 const addons = [] 6016 if(items && items.length > 0) { 6017 for(let i = 1; i < items.length; i++) { 6018 const spotifyLink = items[i].properties['Spotify Link'] 6019 const spotifyPhoto = items[i].properties['Spotify Photo'] 6020 const spotifySong = items[i].properties['Spotify Song'] 6021 const spotifyArtist = items[i].properties['Spotify Artist'] 6022 const price = items[i].price / 100 6023 const props = spotifyLink ? `<div class="propsAddonCart row m-0"> 6024 <div class="col-12 col-lg-2"></div> 6025 <div class="col-12 col-lg-10"> 6026 <p> 6027 <span>spotify link</span> 6028 <span>${spotifyLink}</span> 6029 </p> 6030 <p> 6031 <span>Upload Photo</span> 6032 <span>${spotifyPhoto}</span> 6033 </p> 6034 <p> 6035 <span>song / playlist name</span> 6036 <span>${spotifySong}</span> 6037 </p> 6038 <p> 6039 <span>artist name</span> 6040 <span>${spotifyArtist}</span> 6041 </p> 6042 </div> 6043 </div>` : ''; 6044 addons.push(`<div class="row m-0"> 6045 <div class="imgAddonCart col-2"> 6046 <img 6047 width="43" 6048 src="${items[i].image}" 6049 alt="" 6050 > 6051 </div> 6052 <div class="imgAddonTitlePrice col-10 align-self-center"> 6053 <div class="row justify-content-between m-0"> 6054 <div class="col-12 col-lg-8"> 6055 <h5>${items[i].title}</h5> 6056 </div> 6057 <div class="col-12 col-lg-4 text-lg-right"> 6058 <span>${rupiah.format(price)}</span> 6059 </div> 6060 </div> 6061 </div> 6062 </div>${props}`) 6063 } 6064 } 6065 // console.log(addons) 6066 if(addons.length === 0) { 6067 $(".itemAddonCart").hide() 6068 return 6069 } 6070 $(".toggleAddonCart h4").text(`add-ons (${items.length - 1})`) 6071 $(".wrapperItemAddonCart").html(addons) 6072 } 6073 6074 const money = (money) => { 6075 return new Intl.NumberFormat('id-ID', 6076 { style: 'currency', currency: 'IDR', minimumFractionDigits: 0 } 6077 ).format(money); 6078 } 6079 6080 async function showNoteMoney() { 6081 let qty50k = $("[data-properties='Uang 50k']").val() 6082 let qty100k = $("[data-properties='Uang 100k']").val() 6083 const total50k = Number(qty50k) * 50000 6084 const total100k = Number(qty100k) * 100000 6085 const total_all = total50k + total100k 6086 $(".prop50k").html(`<span>${qty50k} Lembar: <strong class="pl-1">${money(total50k)}</strong></span>`) 6087 $(".prop100k").html(`<span>${qty100k} Lembar: <strong class="pl-1">${money(total100k)}</strong></span>`) 6088 $(".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://aman-aja-ces.pages.dev/" target="_blank" style="text-decoration: underline;
6088 color: #8d3f2d">Customer Service</a> to confirm with proof of payment.</p>`) 6089 } 6090 6091 async function removeImage() { 6092 const data = JSON.stringify({ 6093 "ID": $("#properties-properties-qrId").val(), 6094 "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 6095 "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 6096 "Kartu Ucapan": $("[data-properties=ucapan]").val(), 6097 "Nama Penerima": $("#properties-nama-penerima").val(), 6098 "Order Number":"", 6099 "Status":"Product", 6100 "Foto": "", 6101 "Media": $("#properties-video").val(), 6102 "Image": "8144957800663" 6103 }) 6104 const remove = updateCard(data) 6105 if(remove) { 6106 $(this).hide() 6107 $("#properties-photo").val("-") 6108 $(".placeholder-image").show() 6109 $(".preview-image").attr("src", "") 6110 } 6111 } 6112 6113 async function removeVideo() { 6114 const data = JSON.stringify({ 6115 "ID": $("#properties-properties-qrId").val(), 6116 "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 6117 "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 6118 "Kartu Ucapan": $("[data-properties=ucapan]").val(), 6119 "Nama Penerima": $("#properties-nama-penerima").val(), 6120 "Order Number":"", 6121 "Status":"Product", 6122 "Foto": $("#properties-photo").val(), 6123 "Media": "", 6124 "Image": "8144957800663" 6125 }) 6126 const remove = updateCard(data) 6127 if(remove) { 6128 $("#properties-video").val("-") 6129 $(this).find("img").hide() 6130 $(this).hide() 6131 $(this).prev("p").text("Add video to make it more special (optional)") 6132 $("#label-input-video").show() 6133 $("#label-input-video span").text("Upload Video") 6134 $(".case-video-preview p span").remove() 6135 } 6136 } 6137 6138 async function loadItemOccasion(t, occasion) { 6139 const name = occasion?.replace('greeting-card-', '') 6140 $("#kartu-ucapan").val("") 6141 $("[data-occassion]").removeClass("selected") 6142 $("[data-properties=ucapan]").val("") 6143 $("#save-card").attr("disabled", true) 6144 t.addClass("selected") 6145 $("#show_note").attr("data-card-occassion", name) 6146 $.get(`https://outerbloom.com/collections/${occasion}/products.json`, function(data, status){ 6147 const products = data.products 6148 const html = [] 6149 for(let i = 0; i < products.length; i++) { 6150 const id = products[i].id 6151 const variantId = products[i].variants[0].id 6152 const img = products[i].images[0].src 6153 const title = products[i].title 6154 const price = products[i].variants[0].price 6155 const qty = products[i].variants[0].inventory_quantity 6156 const body = `<div class="item-card${price < 1 ? ' free' : ' nofree'}${i === 0 ? ' selected' : ''}" data-id=${id}> 6157 <label for="card-${variantId}"></label> 6158 <div class="card-image"> 6159 <img src="${img}" alt="${title}" width="" height="" /> 6160 </div> 6161 <div class="card-meta text-center"> 6162 <h5>${title}</h5> 6163 <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p> 6164 <input id="card-${variantId}" type="radio" name="id" value="${variantId}" data-price="${price}"> 6165 </div> 6166 </div>` 6167 html.push(body) 6168 } 6169 const withoutCard = `<div class="item-card item-without-card"> 6170 <label for="card-0"></label> 6171 <div class="card-image"> 6172 <img src="https://cdn.shopify.com/s/files/1/1589/6833/t/129/assets/without-card.png?v=1747632283" alt="Without card" width="" height="" /> 6173 </div> 6174 <div class="card-meta text-center"> 6175 <h5>
6175Send without a greeting card</h5> 6176 <input id="card-0" type="radio" name="id" value="" data-price=""> 6177 </div> 6178 </div>` 6179 $("#itemCards .items-card").html(html.length === 0 ? '<p>No Item available</p>' : html.join("")) 6180 }); 6181 } 6182 6183 $(document).ready(function(){ 6184 6185 // Observer to auto-trigger addon loading when addon section becomes visible 6186 const addonObserver = new MutationObserver(function(mutations) { 6187 mutations.forEach(function(mutation) { 6188 const target = $(mutation.target) 6189 if(target.hasClass('purchaseAddon') && mutation.type === 'attributes' && mutation.attributeName === 'class') { 6190 if(!target.hasClass('hide')) { 6191 // Addon section just became visible, ensure items are loaded 6192 setTimeout(function() { 6193 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6194 console.log("Auto-triggering addon load...") 6195 $("[data-addon=upsell-all]").trigger("click") 6196 } 6197 }, 150) 6198 } 6199 } 6200 }) 6201 }) 6202 6203 // Start observing addon section 6204 const addonSection = document.querySelector('.purchaseAddon') 6205 if(addonSection) { 6206 addonObserver.observe(addonSection, { 6207 attributes: true, 6208 attributeFilter: ['class'] 6209 }) 6210 } 6211 6212 $(".purchasePopup").delegate("#addtocart-card", "click", async function(){ 6213 6214 $(this).find("span").addClass("loading") 6215 let isValid = true 6216 $(".formAddressPurchase [required]").each(function(){ 6217 const t = $(this) 6218 const input = t.val() 6219 const p = t.parent() 6220 if(input === '') { 6221 p.addClass("error") 6222 isValid = false 6223 } 6224 }) 6225 6226 if(!isValid) { 6227 $(this).find("span").removeClass("loading") 6228 return 6229 } 6230 6231 let items = [] 6232 const mainProps = { 6233 6234 "Delivery Date": $("#propDeliveryDate").val(), 6235 "Delivery Time": $("#propDeliveryTime").val() !== '' ? $("#propDeliveryTime").val() : '-' , 6236 "Kota Pengiriman": $("#cities").val(), 6237 "Nama Penerima": $("[data-properties=nama-penerima]").val() !== '' ? $("[data-properties=nama-penerima]").val() : '-' , 6238 "Alamat Penerima": $("[data-properties=alamat-penerima]").val() !== '' ? $("[data-properties=alamat-penerima]").val() : '-' , 6239 "Kodepos": $("#zip").val() !== '' ? $("#zip").val() : '-' , 6240 "Telepon Penerima": $("[data-properties=telepon-penerima").val() !== '' ? $("[data-properties=telepon-penerima").val() : '-' , 6241 6242 6243 "Papan Nama Penerima": $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '-' , 6244 "Papan Ucapan": $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '-' , 6245 "Papan Nama Pengirim": $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '-' , 6246 "Papan Logo": $("[data-properties=papan-logo]").val() !== '' ? $("[data-properties=papan-logo]").val() : '-' , 6247 "Foto Alamat": $("[data-properties=foto-alamat]").val() !== '' ? $("[data-properties=foto-alamat]").val() : '-' , 6248 6249 6250 "Province": $("#province").val() !== '' ? $("#province").val() : '-' , 6251 "Country": $("#properties-kota-pengiriman-country").val() !== '' ? $("#properties-kota-pengiriman-country").val() : '-' , 6252 "Shipping": $("#properties-shipping").val() !== '' ? $("#properties-shipping").val() : '-' , 6253 "Company": $("[data-properties=company]").val() !== '' ? $("[data-properties=company]").val() : '-' , 6254 "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 6255 "type": 'product' 6256 } 6257 const props = await propItems() 6258 properties = {...mainProps, ...props }; 6259 const id = $("#productSelect").find('option:selected').val() 6260 console.log(id, 'main ID') 6261 const mainItem = { 6262 id: Number(id), 6263 quantity: 1, 6264 properties 6265 } 6266 items.push(mainItem) 6267 const cardId = $("#itemCards").find(".selected input").val() 6268 const cardItem = { 6269 id: Number(cardId), 6270 quantity: 1, 6271 properties: { "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', type: 'card' } 6272 } 6273 console.log(cardId, 'cardId') 6274 if(cardId) { 6275 items.push(cardItem) 6276 } 6277 const addon = await addons() 6278 if(addon) { 6279 for(let i = 0;
6279 i < addon.length; i++){ 6280 items.push({ 6281 id: addon[i].id, 6282 quantity: addon[i].quantity, 6283 properties: addon[i].properties 6284 }) 6285 } 6286 } 6287 const addItems = await additem(items) 6288 console.log(addItems.items, 'add items') 6289 if(addItems) { 6290 $(this).find("span").removeClass("loading") 6291 disablePopup() 6292 showPopupCart(addItems.items) 6293 6294 localStorage.setItem("items", JSON.stringify(addItems.items)) 6295 } 6296 }) 6297 6298 $("#addtocart-cart .btn").click(async function(){ 6299 const id = $("#productSelect").find('option:selected').val() 6300 const mainProps = { 6301 id: $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 6302 type: 'product' 6303 } 6304 const props = await propItems() 6305 const properties = { ...mainProps, ...props }; 6306 const items = { 6307 id: Number(id), 6308 quantity: 1, 6309 properties 6310 } 6311 const addItems = await additem(items) 6312 if(addItems) { 6313 showPopupCart(addItems.items) 6314 localStorage.setItem("items", JSON.stringify(addItems)) 6315 } 6316 }) 6317 6318 $(".formAddressPurchase [required]").change(function(){ 6319 const t = $(this) 6320 const p = t.parent() 6321 const v = t.val() 6322 if(v !== '') { 6323 p.removeClass("error") 6324 } 6325 }) 6326 6327 $("#save-card").click(async function(){ 6328 const parent = $(this).parents(".sectionPurchase") 6329 const next = parent.next(".sectionPurchase") 6330 $(this).find("span").addClass("loading") 6331 const card = await saveCard() 6332 console.log(card, 'ssaveCCC') 6333 if(card?.status === 200 || card?.status === 201) { 6334 $(".scanCard").removeClass("hide") 6335 $(this).find("span").removeClass("loading") 6336 parent.addClass("hide") 6337 next.removeClass("hide") 6338 if(next.hasClass("purchaseAddon")) { 6339 $("[data-addon=upsell-all]").click() 6340 console.log("clarity event addons") 6341 window.clarity("event", `${productType} add-ons`) 6342 // Ensure addon items are loaded when entering addon popup 6343 setTimeout(function() { 6344 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6345 $("[data-addon=upsell-all]").trigger("click") 6346 } 6347 }, 100) 6348 } 6349 if(next.hasClass("purchaseAddress")) { 6350 $("#zip").select2() 6351 } 6352 } 6353 }) 6354 6355 $("#skip-card").click(async function(){ 6356 $("#greetingCard [data-properties]").val("") 6357 $("#properties-photo").val("") 6358 $("#properties-video").val("") 6359 const parent = $(this).parents(".sectionPurchase") 6360 const next = parent.next(".sectionPurchase") 6361 parent.addClass("hide") 6362 next.removeClass("hide") 6363 // $("#itemCards").html("") 6364 removeImage() 6365 removeVideo() 6366 if(next.hasClass("purchaseAddon")) { 6367 $("[data-addon='upsell-all']").click() 6368 console.log("clarity event addons") 6369 window.clarity("event", `${productType} add-ons`) 6370 // Ensure addon items are loaded when entering addon popup 6371 setTimeout(function() { 6372 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6373 $("[data-addon='upsell-all']").trigger("click") 6374 } 6375 }, 100) 6376 } 6377 if(next.hasClass("purchaseAddress")) { 6378 $("#zip").select2() 6379 } 6380 }) 6381 6382 $("#msgCard").click(async function(){ 6383 $(this).parent().addClass("loading") 6384 let occasion = $(".selected[data-occassion]").data("occassion") 6385 occasion = occasion?.replace("greeting-card-", "") 6386 const { data } = await getFetch(`${host}/api/card/template/occasion?name=${occasion}`); 6387 const d = data?.data 6388 for(let i = 0; i < d.length; i++) { 6389 const num = Math.floor(Math.random() * (d.length - 1 + 1) + 1); 6390 const greeting = d[num]?.Greeting 6391 $(".greetingCard textarea").val(greeting) 6392 $(this).parent().removeClass("loading") 6393 } 6394 $("#save-card").attr("disabled", false) 6395 }) 6396 6397 $(".sectionPurchaseBoard .next-purchase-button").click(function(){ 6398 const parent = $(this).parents(".sectionPurchase") 6399 const next = parent.next(".sectionPurchase") 6400 parent.addClass("hide") 6401 next.removeClass("hide") 6402 }) 6403 6404 $("#editCard").click(function(){ 6405 $(".custom-card").show() 6406 $(".preview-card").hide() 6407 }) 6408 6409 $("#first_name, #last_name").change(function(){ 6410 const v = $(this).val() 6411 const first_name = $("#first_name").val() 6412 const last_name = $("#last_name").val() !== '' ? ' ' + $("#last_name").val() : '' 6413 $("[data-properties=nama-penerima]").val(first_name+last_name) 6414 }) 6415 6416 $("[data-occassion]").click(function(){ 6417 const t = $(this) 6418 const p = t.parents(".sectionPurchase") 6419 // $(".greetingCard").addClass("disabled") 6420 const occasion = t.data("occassion") 6421 loadItemOccasion(t, occasion) 6422 }) 6423 6424 $("#itemCards").delegate(".item-card:not(.item-without-card) label", "click", function(){ 6425 const id = $(this).parent(".item-card").data("id") 6426 const t = $(this).parent(".item-card") 6427 const target = t.find("input") 6428 const v = $('.item-card input[type="radio"]:checked').val(); 6429 $("#itemCards .item-card").removeClass("selected") 6430 t.addClass("selected") 6431 $("#itemCards .item-card").find("input").attr("name", "") 6432 if(target.length > 0) { 6433 target.attr("name", "id[]") 6434 $("#properties-card").val(id) 6435 $(".greetingCard").removeClass("disabled") 6436 $("#skip-card").attr("disabled", false) 6437 } else { 6438 $("#properties-card").val("") 6439 } 6440 }) 6441 6442 $("#itemCards").delegate(".item-without-card label", "click", function(){ 6443 const parent = $(this).parents(".sectionPurchase") 6444 const next = parent.next(".sectionPurchase") 6445 $(".greetingCard").addClass("disabled") 6446 parent.addClass("hide") 6447 next.removeClass("hide") 6448 $("[data-addon=upsell-all]").click() 6449 $("#zip").select2() 6450 }) 6451 6452 $("[data-properties=ucapan]").keyup(function(){ 6453 const v = $(this).val() 6454 const p = $(this).parents(".sectionPurchase") 6455 $(".purchaseAddress").find(".greetingCard textarea").val(v) 6456 if(v.length > 3) { 6457 p.find(".next-purchase-button").attr("disabled", false) 6458 } else { 6459 p.find(".next-purchase-button").attr("disabled", true) 6460 } 6461 }) 6462 6463 $("[data-properties=penerima]").keyup(function(){ 6464 const v = $(this).val() 6465 $(".purchaseAddress").find("[data-properties=penerima]").val(v) 6466 }) 6467 6468 $("[data-properties=pengirim]").keyup(function(){ 6469 const v = $(this).val() 6470 $(".purchaseAddress").find("[data-properties=pengirim]").val(v) 6471 }) 6472 6473 $(document).click(function(e){ 6474 6475 if($(e.target).closest('.wrapperPopupCart').length != 0) return false;
6476 // $('#popupCart').fadeOut('slow'); 6477 // location.reload() 6478 }); 6479 6480 $(".toggleAddonCart").click(function(){ 6481 const p = $(this).parent(".itemAddonCart") 6482 p.toggleClass("open") 6483 }) 6484 6485 $(".btnViewCart").click(function(){ 6486 window.location.href = "https://outerbloom.com/cart"; 6487 }) 6488 6489 $(".btnViewCheckout").click(async function(){ 6490 $(this).find("span").addClass("loading") 6491 let zip = $("#zip").val() 6492 const first_name = $("#first_name").val() 6493 const last_name = $("#last_name").val() 6494 const company = $("#company").val() !== '' ? $("#company").val() : '' 6495 const address1 = $("#delivery_address").val() 6496 const address2 = zip && zip !== '' ? zip?.split(' - ')[1] : '' 6497 zip = zip && zip !== '' ? zip?.split(' - ')[0] : '' 6498 const phone = $("#recipient_number").val() 6499 const city = $("#cities").val() 6500 const province = $("#province").val() 6501 const country = 'Indonesia' 6502 const ver = Date.parse(new Date()) 6503 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}` 6504 6505 const clear = await fetch(`/cart/clear.js`, {method: 'POST'}) 6506 if(clear.status === 200) { 6507 const savedItem = window.localStorage.getItem("items"); 6508 const items = JSON.parse(savedItem) 6509 const addItems = await additem(items) 6510 console.log(addItems, 'new addItems') 6511 if(addItems) { 6512 window.location.href = `https://outerbloom.com/checkout?${params}`; 6513 } 6514 } 6515 }) 6516 6517 $(".btnContinueShopping").click(function(){ 6518 window.location.href = "https://outerbloom.com/"; 6519 }) 6520 6521 if (isIOS) { 6522 $(".empty-state-card").click(function(){ 6523 $("#input-foto").trigger("click") 6524 }) 6525 $(".btn-upload-image").click(function(){ 6526 $("#input-foto").trigger("click") 6527 }) 6528 $("[for=input-video]").click(function(){ 6529 $("#input-video").trigger("click") 6530 }) 6531 $(".btn-upload-papan").click(function(){ 6532 $("#logoPapan").trigger("click") 6533 }) 6534 } 6535 6536 $("[data-properties]").each(function(){ 6537 const select = $(this).parents(".form-group").find("select") 6538 $(this).change(function(){ 6539 const name = $(this).data("properties") 6540 const v = $(this).val() 6541 if (name == 'telepon-penerima') { 6542 let phone = v.replace(/[^0-9]/g, '') 6543 $(this).val(phone); 6544 $("#properties-telepon-penerima").val(phone) 6545 $('.iti__search-input').val('-') 6546 } else { 6547 $("#properties-" + name).val(v) 6548 } 6549 }) 6550 select.on("change", function(){ 6551 const name = $(this).data("properties") 6552 const v = $(this).val() 6553 $("#properties-" + name).val(v) 6554 }) 6555 }) 6556 6557 $("#show_note").click(function(){ 6558 nameq = $("#properties-nama-penerima").val() 6559 dear = $("#properties-kartu-nama-penerima").val() 6560 card = $("[data-properties=ucapan]").val() 6561 sender = $("#properties-kartu-nama-pengirim").val() 6562 photo = $("#properties-photo").val() 6563 video = $("#properties-video").val() 6564 updateCard(nameq, dear, card, sender, photo, video, status) 6565 }) 6566 6567 $(".remove-image").click(function(e){ 6568 e.preventDefault() 6569 $(this).find("img").show() 6570 removeImage() 6571 }) 6572 6573 $(".remove-media").click(function(e){ 6574 e.preventDefault() 6575 $(this).find("img").show() 6576 removeVideo() 6577 }) 6578 6579 6580 6581 $("[data-delivery_method]").click(function(e){ 6582 e.preventDefault() 6583 const t = $(this) 6584 const data = t.data("delivery_method") 6585 $("[data-delivery_method]").removeClass("selected") 6586 t.addClass("selected") 6587 $("#cities").val("") 6588 $("#properties-delivery-date").val("-") 6589 $("#deliveryDate button").removeClass("selected") 6590 $("#full-date").val("Full Calendar â") 6591 $("#propDeliveryDate").val("") 6592 const step3 = $("#step-3") 6593 if(data.match('PickUp')) { 6594 $(".selfpickup-point").show() 6595 step3.find("[data-finished=false]").hide() 6596 $("#panel-4").hide() 6597 step3.find("[data-finished=true]").show() 6598 $("#cities").attr("required", false) 6599 $("#form-group-city").hide() 6600 $("#row-delivery-time").hide() 6601 $("#propDeliveryTime, #properties-delivery-time, #properties-nama-penerima, #properties-alamat-penerima, #properties-kodepos, #properties-kodepos, #properties-telepon-penerima").val("-") 6602 $("#propDeliveryTime").attr("required", false) 6603 // $("#deliveryDate").find("button:first-child").addClass("stop") 6604 $(".form-selfpickup").show() 6605 $(".form-delivery").hide() 6606 $(".form-delivery").find("input, textarea, select").val("") 6607 $(".form-delivery").find("input, textarea, select").attr("required", false) 6608 $("#properties-shipping").val("0") 6609 $("#noteDeliveryDate").hide() 6610 $(".form-delivery .form-control").attr("required", false) 6611 $("#stepNav4").hide() 6612 6613 $("#deliveryDate").find("button:nth-child(1)").addClass("stop") 6614 6615 6616 6617 if(timeOfDay >= 16.01){ 6618 $("#deliveryDate").find("button:nth-child(2)").addClass("stop") 6619 } 6620 } else { 6621 6622 6623 $("#deliveryDate").find("button:nth-child(1)").removeClass("stop") 6624 step3.find("[data-finished=false]").show() 6625 $("#panel-4").show() 6626 step3.find("[data-finished=true]").hide() 6627 $("#cities").attr("required", true) 6628 $(".selfpickup-point").hide() 6629 $("#form-group-city").show() 6630 $("#cities").val('').trigger('change'); 6631 $("#properties-kota-pengiriman").val("-") 6632 6633 $("#row-delivery-date, #row-delivery-time").show() 6634 $("#propDeliveryDate, #propDeliveryTime").attr("required", true) 6635 $("#deliveryDate").find("button").removeClass("stop") 6636 $(".form-selfpickup").hide() 6637 $(".form-delivery").show() 6638 $(".form-delivery").find("input, textarea, select").attr("required", true)
6639 $(".form-delivery [data-properties]").attr("readonly", false) 6640 $("#properties-kodepos").val("-") 6641 $("#properties-alamat-penerima").val("-") 6642 $(".form-delivery .form-control").attr("required", true) 6643 $(this).parents(".setup-content").attr("id", "step-1") 6644 6645 $("#stepNav4").show() 6646 } 6647 }) 6648 6649 $("[name=selfpickup]").click(function(){ 6650 const p = $(this).parents(".row-pickup") 6651 const pickupCity = $("input[name='selfpickup']:checked").val(); 6652 const pickupAddress = $("input[name='selfpickup']:checked").data("address"); 6653 const pickupZip = $("input[name='selfpickup']:checked").data("zip"); 6654 6655 $(".row-pickup").removeClass("selected") 6656 p.addClass("selected") 6657 6658 $("#properties-kota-pengiriman").val(pickupCity) 6659 $("#province").val("Jakarta") 6660 $("#properties-alamat-penerima").val(pickupAddress) 6661 $("#properties-kodepos").val(pickupZip) 6662 }) 6663 6664 $("#cities").change(function(e){ 6665 e.preventDefault() 6666 $(this).parent(".row").find("p.error").remove() 6667 $("#full-date").val("Full Calendar") 6668 $("#deliveryDate, #deliveryDateFull label ").show() 6669 $("#deliveryDateFull").removeClass("filled") 6670 $(".btnChangeDeliveryDate").addClass("hide") 6671 $("#full-date").prop('disabled', false); 6672 $("#stepNav2, #stepNav3, #stepNav4").removeClass("btn-success") 6673 $("#stepNav2, #stepNav3, #stepNav4").find("a").attr("disabled", true) 6674 const step3 = $("#step-3") 6675 $("#cityNote").remove() 6676 $("#noteDeliveryDate").hide() 6677 $("#noteDeliveryDate").empty() 6678 let v = $(this).val() 6679 let v2 = $('option:selected', this).attr('data-city'); 6680 let v3 = $('option:selected', this).attr('data-province'); 6681 let price = $('option:selected', this).attr('data-price'); 6682 $("#country").val(v) 6683 $("#properties-kota-pengiriman").val(v) 6684 $("#properties-shipping").val(price) 6685 $("#deliveryDate button, #deliveryTime button, .calendarseasonal .button").removeClass("selected") 6686 $("#properties-delivery-date, #properties-delivery-time").val("-") 6687 $("#propDeliveryDate, #propDeliveryTime").val("") 6688 let note = $('option:selected', this).attr('data-note'); 6689 if(v === 'Kota Lainnya') { 6690 $("#noteDeliveryDate").show() 6691 $("#noteDeliveryDate").text("Order akan segera dikirim. Estimasi tanggal diterima akan disesuaikan dengan waktu pengiriman oleh pihak ekspedisi ke lokasi Anda.") 6692 $("#zip").attr("required", false) 6693 $("#zip").hide() 6694 $("#propDeliveryDate, #propDeliveryTime").attr("required", false) 6695 $("#propDeliveryDate, #properties-delivery-date, #propDeliveryTime, #properties-delivery-time").val("-") 6696 $("#row-delivery-date, #row-delivery-time").hide() 6697 $("#properties-shipping").val("") 6698 // $(this).parents(".setup-content").attr("id", "step-2") 6699 6700 } else { 6701 $("#noteDeliveryDate").hide() 6702 $("#zip").attr("required", true) 6703 $("#zip").show() 6704 $("#row-delivery-date, #row-delivery-time").show() 6705 $("#propDeliveryDate, #propDeliveryTime").attr("required", true) 6706 $("#deliveryDate").find("button").removeClass("stop") 6707 // $(this).parents(".setup-content").attr("id", "step-1") 6708 6709 } 6710 6711 6712 6713 // if(v !== 'Jakarta') { 6714 // $("[data-type=upsell]").hide() 6715 // } else { 6716 // $("[data-type=upsell]").show() 6717 // } 6718 // $('.collection-addons')[0].swiper.update(); 6719 6720 6721 getProvince(v) 6722 $("#zip").html(`<option value="">Choose Postal Code</option>`) 6723 renderZip(v, v2, v3) 6724 6725 disabledSameDay() 6726 6727 6728 if(v !== 'Jakarta' && v !== 'Depok' && v !== 'Bekasi' && v !== 'Tangerang') { 6729 6730 $("#cardOccasion, #navAddon, .collection-addons").hide() 6731 6732 $("[data-addon=giftcard]").show() 6733 $("[data-addon=giftcard]").click() 6734 $("#itemAddons").show() 6735 $("#flower-step").addClass("nonjadetabek") 6736 } else { 6737 $("#cardOccasion, #navAddon, .collection-addons").show() 6738 $("[data-addon=all]").click() 6739 $("#flower-step").removeClass("nonjadetabek") 6740 } 6741 6742 if(v !== '') { 6743 $("#personalizeBtn .btn").attr("disabled", false) 6744 } else { 6745 $("#personalizeBtn .btn").attr("disabled", true) 6746 } 6747 6748 }) 6749 6750 $("#zip").change(function(e){ 6751 let v = $(this).val() 6752 var city = $("#cities").find('option:selected'); 6753 $("#properties-kodepos").val(v) 6754 if(city === 'Kota Lainnya') { 6755 $(this).attr("required", true) 6756 $("#recipient-address").val("") 6757 } 6758 }) 6759 6760 6761 var minDate = +7 6762 6763 6764 6765 $("#full-date").datepicker({ 6766 minDate, 6767 dateFormat: 'Mdd_yy', //Nop22_2021, 6768 6769 beforeShowDay: disabledays, 6770 6771 onSelect: function (date) { 6772 $("#deliveryDate, #deliveryDateFull label ").hide() 6773 $("#deliveryDateFull").addClass("filled") 6774 $(".btnChangeDeliveryDate").removeClass("hide") 6775 $("#full-date").prop('disabled', true); 6776 $('#propDeliveryDate, #properties-delivery-date').val('Kirim_'+date); 6777 $(".date-full").addClass("selected") 6778 $(".date-single, .calendar-group").removeClass("selected") 6779 $("#propDeliveryTime").val('') 6780 $("#properties-delivery-time").val('-') 6781 $(".time-single").removeClass("selected") 6782 6783 6784 } 6785 }); 6786 6787 $(".btnChangeDeliveryDate").click(function(){ 6788 $("#deliveryDate, #deliveryDateFull label ").show() 6789 $("#deliveryDateFull").removeClass("filled") 6790 $(".btnChangeDeliveryDate").addClass("hide") 6791 $("#full-date").prop('disabled', false); 6792 }) 6793 6794 $("#deliveryDate").delegate(".calendarbutton:not(.date-full)", "click", function(e){ 6795 e.preventDefault() 6796 $(this).parents("#row-delivery-date").find("p.error").remove() 6797 const fulldate = $(this).data("fulldate") 6798 const day = $(this).data("day") 6799 const date = $(this).data("date")
6800 const month = $(this).data("month") 6801 const year = $(this).data("year") 6802 const off_pagi = $(this).data("offpagi") 6803 const off_siang = $(this).data("offsiang") 6804 const off_Malam = $(this).data("offMalam") 6805 $(".calendarbutton").removeClass("selected") 6806 $(this).addClass("selected") 6807 $("#propDeliveryDate, #properties-delivery-date").val(`Kirim_${month}${date}_${year}`) 6808 $("#propDeliveryTime").val('') 6809 $("#properties-delivery-time").val('-') 6810 $(".calendarbutton2").removeClass("selected") 6811 $("#full-date").val("Full Calendar") 6812 6813 6814 if(off_pagi && timeOfDay > off_pagi) { 6815 $("[data-time=Morning]").attr("disabled", true) 6816 } else { 6817 $("[data-time=Morning]").attr("disabled", false) 6818 } 6819 if(off_siang && timeOfDay > off_siang) { 6820 $("[data-time=Afternoon]").attr("disabled", true) 6821 } else { 6822 $("[data-time=Afternoon]").attr("disabled", false) 6823 } 6824 6825 6826 6827 }) 6828 6829 if(today === 14 && timeOfDay > 17.00) { 6830 $("#deliveryDate button:first-child").attr("disabled", true) 6831 } 6832 6833 $("#deliveryTime").delegate(".calendarbutton2", "click", function(e){ 6834 e.preventDefault() 6835 const time = $(this).data("time") 6836 const date = $("#propDeliveryDate").val() 6837 if(date == '') { 6838 return alert('Silakan pilih tanggal terlebih dahulu') 6839 } 6840 $(".calendarbutton2").removeClass("selected") 6841 $(this).addClass("selected") 6842 $("#propDeliveryTime, #properties-delivery-time").val(`KirimJam_${date.replace('Kirim_','')}_${time}`) 6843 }) 6844 6845 $('textarea.has-limit, input.has-limit').keyup(function () { 6846 max = this.getAttribute("maxlength"); 6847 let len = $(this).val().length; 6848 let limit = $(this).siblings(".limit"); 6849 if (len > max) { 6850 alert('you have reached the limit'); 6851 } else { 6852 limit.text(`${len}/${max}`); 6853 } 6854 }); 6855 6856 $("#button-action-step .btn").click(function(){ 6857 $(this).find("span").text("Processing..."); 6858 }); 6859 6860 $(".finishBtn").on('click', function() { 6861 $(this).addClass("is-adding"); 6862 // $(this).click(); 6863 }); 6864 6865 $('.setup-panel .nav-item a.btn-success').trigger('click'); 6866 6867 $("#button-action .btn").click(function(){ 6868 $("#flower-step").addClass("block"); 6869 $("#button-action").hide(); 6870 }); 6871 6872 $(".close-how-order").click(function(){ 6873 $("#flower-step").removeClass("block"); 6874 $("#button-action").show(); 6875 }); 6876 6877 $("#input-foto, #input-video").change(function(e){ 6878 readURL(this); 6879 }); 6880 6881 $("#logoPapan").change(function(){ 6882 readURLPapan(this); 6883 }); 6884 6885 $("#address-upload").change(async function(){ 6886 const upload_address = await readURLAddress(this) 6887 if(upload_address) { 6888 const url = upload_address.url 6889 $(".props-address-upload").val(url) 6890 $(".form-address").addClass("address-uploaded") 6891 $(".form-address-upload").addClass("uploaded") 6892 6893 $(this).parents(".form-group").siblings(".form-group").find("[required]").attr("required", false) 6894 } 6895 }) 6896 6897 $(".address-manualy").click(function(){ 6898 $(".form-address-upload").removeClass("uploaded"); 6899 $(".photo-address").hide(); 6900 $(".form-address").removeClass("address-uploaded") 6901 $("#formAddressPurchase").find(".form-control").attr("required", true) 6902 }); 6903 6904 $(".case-video-preview").delegate(".replace-video", "click", function(){ 6905 $("#input-video").trigger("click") 6906 }) 6907 6908 $('.date-single').click(function(e) { 6909 e.preventDefault(); 6910 $('.date-single').removeClass('selected'); 6911 $('#full-date').removeClass('selected'); 6912 $(this).addClass('selected'); 6913 $('#full-date').html('Full' + '<br/>' + 'Calendar'); 6914 }); 6915 $('#full-date').click(function(e){ 6916 e.preventDefault(); 6917 $('.date-single').removeClass('selected'); 6918 $(this).addClass('selected'); 6919 }); 6920 6921 // $("tr").each(function(){ 6922 // if($(this).text().match('SKU')) { 6923 // $(".sku-product").html($(this).parents("table").html()) 6924 // } 6925 // }) 6926 6927 $("#product-image").scroll(function(){ 6928 $(".desc-add").each(function(){ 6929 const img = $(this).find("img") 6930 const src = img.data("src") 6931 img.attr("src", src) 6932 }) 6933 }) 6934 6935 $(".product-fixed").hide() 6936 6937 let target = $("#personalizeBtn") 6938 6939 6940 $(".product-meta").scroll(function() { 6941 if ($(window).scrollTop() >= target.offset().top ) { 6942 $(".product-fixed").addClass("show") 6943 } else { 6944 $(".product-fixed").removeClass("show") 6945 } 6946 }); 6947 6948 $(window).scroll(function() { 6949 if ($(window).scrollTop() >= target.offset().top ) { 6950 $(".product-fixed").addClass("show") 6951 } else { 6952 $(".product-fixed").removeClass("show") 6953 } 6954 }); 6955 }); 6956 </script>
6956 6957 6958
6958<script> 6959 // 6960 </script>
6960 6961 6962
6962<script> 6963 $(document).ready(function(){ 6964 $('table tr td').each(function(){ 6965 var texto = $(this).text(); 6966 var nextto = $(this).next("td"); 6967 var sku = $("#data-sku").val() 6968 if(texto == 'SKU'){ 6969 nextto.text(sku) 6970 } 6971 }); 6972 6973 $(".stamped-summary-actions-newquestion").text("Tulis Pertanyaan"); 6974 $(".stamped-summary-actions-newreview").text("Tulis Review"); 6975 $("#tab-questions").text("Pertanyaan"); 6976 6977 $(".freeship .icon").click(function(){ 6978 $(".fs-content").slideToggle(); 6979 $(this).parents(".freeship").toggleClass("expand"); 6980 }); 6981 6982 var $easyzoom = $('.easyzoom').easyZoom(); 6983 // Setup thumbnails example 6984 var api1 = $easyzoom.filter('.easyzoom--with-thumbnails').data('easyZoom'); 6985 $('.thumbnails').on('click', 'a', function(e) { 6986 var $this = $(this); 6987 e.preventDefault(); 6988 // Use EasyZoom's `swap` method 6989 api1.swap($this.data('standard'), $this.attr('href')); 6990 }); 6991 6992 $('#playerID').click(function(){ 6993 var videoURL = $('#VdoID').attr('src'), 6994 dataplay = $('#VdoID').attr('data-play'); 6995 6996 //for check autoplay 6997 //if not set autoplay=1 6998 if(dataplay == 0 ){ 6999 $('#VdoID').attr('src',videoURL+'?autoplay=1'); 7000 $('#VdoID').attr('data-play',1); 7001 } 7002 else{ 7003 var videoURL = $('#VdoID').attr('src'); 7004 videoURL = videoURL.replace("?autoplay=1", ""); 7005 $('#VdoID').prop('src',''); 7006 $('#VdoID').prop('src',videoURL); 7007 7008 $('#VdoID').attr('data-play',0); 7009 } 7010 7011 }); 7012 7013 $(".product-photo-thumb-video").click(function(e){ 7014 e.preventDefault(); 7015 7016 var newEmbed = $(this).attr('href'); 7017 $("#featured-image-product").addClass("img-video"); 7018 $("#ProductPhotoImg").hide(); 7019 $("#featured-image-product .video").show(); 7020 $("#featured-image-product iframe").attr('src', newEmbed); 7021 $("#VdoID")[0].src += "&autoplay=1"; 7022 }); 7023 $(".product-single__thumbnail").click(function(evt){ 7024 evt.preventDefault(); 7025 $("#featured-image-product").removeClass("img-video"); 7026 $("#ProductPhotoImg").show(); 7027 $("#featured-image-product .video").hide(); 7028 $("#featured-image-product iframe").attr('src', ''); 7029 }); 7030 7031 if($('#product-meta .short-desc > div').length >= 1){ 7032 //console.log('div detected') 7033 var replacer = $('#product-meta .short-desc > div').contents(); 7034 $('#product-meta .short-desc > div').replaceWith(replacer); 7035 7036 var cAssured = $('.c-assured').detach(); 7037 cAssured.insertAfter('.meta-sds .stock-info'); 7038 } 7039 7040 7041 7042 $(".heading-toggle").click(function(){ 7043 $(this).parent().toggleClass("open") 7044 7045 }); 7046 }); 7047 </script>
7047 7048 7049 7050
7050<script type="application/json" id="ProductJson-Product"> 7051 7052 {"id":8144957800663,"title":"RAGU? GABUNG DI RAJABANDOT ã½ï¸ Situs Toto Macau Gacor Minimal Bet Murah & Prediksi Macau Ter-Percaya","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eRajabandot hadir sebagai solusi utama bagi para penggemar yang menginginkan pengalaman bermain terbaik di Indonesia."} 7053 </script>
7053 7054 7055
7055<script type="application/json" id="VariantJson-Product"> 7056 [ 7057 7058 { 7059 "incoming": false, 7060 "next_incoming_date": null 7061 } 7062 7063 ] 7064 </script>
7064 7065 7066 7067 7068 7069 </div> 7070 7071 7072
7072<script src="//outerbloom.com/cdn/shopifycloud/storefront/assets/themes_support/option_selection-b017cd28.js" type="text/javascript"></script>
7072 7073 <style> 7074 .stamped-review-header-title, 7075 .stamped-review-header .author, 7076 .stamped-review-content-body, 7077 .stamped-sort-select, 7078 .stamped-review-header .verified-badge[data-type=buyer]:after, 7079 .stamped-review-header-byline, 7080 .stamped-review-reply-body {font-size: 14px!important;font-family: 'Barlow',sans-serif!important;} 7081 .stamped-review {margin-bottom: 0;} 7082 .stamped-review-body {padding-left: 65px;} 7083 .stamped-review:first-child {padding-top: 25px;} 7084 .stamped-review-content {clear: none;} 7085 .stamped-review-reply {margin: 15px 0 0 65px;background: #f2f2f2;border-left: none;} 7086 .stamped-review-reply-body {padding-left: 65px;} 7087 .stamped-review-header .author {text-transform: capitalize;} 7088 .stamped-questions .stamped-review-content {padding-left: 65px;} 7089 7090 .stamped-pagination {margin: 20px 0 0;} 7091 .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;} 7092 .stamped-pagination li a {color: #121212;padding: 13px 18px;vertical-align: middle;display: block;} 7093 .stamped-pagination li.active a {background-color: #ddd;font-weight: 400;} 7094 .stamped-pagination li:hover a {background: #ddd;} 7095 .stamped-pagination .next {border-right: 1px solid #ccc;} 7096 .stamped-pagination li:first-child {border-top-left-radius: 5px;border-bottom-left-radius: 5px;} 7097 .stamped-pagination li:last-child {border-top-right-radius: 5px;border-bottom-right-radius: 5px;} 7098 7099 #stamped-pagination-question span.page {display: inline-block;border: 1px solid #ccc;width: 47px;} 7100 #stamped-pagination-question span {font-size: 14px;} 7101 #stamped-pagination-question .page.active {padding: 12px;font-weight: 400;background: #ddd;} 7102 #stamped-pagination-question a, #stamped-pagination-question .page.active {color: #121212;padding: 13px 18px;vertical-align: middle;display: inline-block;} 7103 .stamped-pagination-deco {color: #121212;padding: 13px 18px;width: 47px;vertical-align: middle;display: inline-block;border: 1px solid #ccc;padding: 12px;} 7104 .stamped-pagination-prev, .stamped-pagination-next {position: inherit;} 7105 .stamped-pagination-prev a, .stamped-pagination-next a {width: auto!important;border: 1px solid #ccc;} 7106 7107 @media (max-width: 480px){ 7108 .stamped-review-reply {margin-left: 0!important;} 7109 select.stamped-sort-select {font-size: 13px!important;} 7110 } 7111 7112 #product-reviews .stamped-summary-ratings, #product-reviews .stamped-summary-actions, .stamped-content { 7113 display: block !important; 7114 } 7115 </style> 7116
7116<script> 7117 var selectCallback = function(variant, selector) { 7118 timber.productPage({ 7119 money_format: "Rp {{amount_no_decimals}}", 7120 variant: variant, 7121 selector: selector 7122 }); 7123 }; 7124 7125 jQuery(function($) { 7126 new Shopify.OptionSelectors('productSelect', { 7127 product: 7128 7129 7130 7131 7132 7133 {"id":8144957800663,"title":"RAGU? GABUNG DI RAJABANDOT ã½ï¸ Situs Toto Macau Gacor Minimal Bet Murah & Prediksi Macau Ter-Percaya","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eRajabandot hadir sebagai solusi utama bagi para penggemar yang menginginkan pengalaman bermain terbaik di Indonesia."}, 7134 onVariantSelected: selectCallback, 7135 enableHistoryState: true 7136 }); 7137 7138 // Add label if only one product option and it isn't 'Title'. Could be 'Size'. 7139 7140 7141 // Hide selectors if we only have 1 variant and its title contains 'Default'. 7142 7143 $('.selector-wrapper').hide(); 7144 7145 }); 7146 </script>
7146 7147 7148 7149 7150
7150<script type="application/ld+json"> 7151 { 7152 "@context": "http://schema.org", 7153 "@type": "Product", 7154 "offers": { 7155 "@type": "Offer", 7156 "availability":"https://schema.org/InStock", 7157 "price": 835000, 7158 "priceValidUntil": "05-10-2025", 7159 "priceCurrency": "IDR", 7160 "url": "https://www.apprendreetsorienter.org/statuts/" 7161 }, 7162 "brand": { 7163 "@type": "Brand", 7164 "name": "Outerbloom Florist" 7165 }, 7166 "sku": "8144957800663", 7167 "gtin13": "Jawa", 7168 "name": "RAGU? GABUNG DI RAJABANDOT ã½ï¸ Situs Toto Macau Gacor Minimal Bet Murah & Prediksi Macau Ter-Percaya", 7169 "description": "Rajabandot hadir sebagai solusi utama bagi para penggemar yang menginginkan pengalaman bermain terbaik di Indonesia.", 7170 "category": "Rajabandot hadir sebagai solusi utama bagi para penggemar yang menginginkan pengalaman bermain terbaik di Indonesia.", 7171 "url": "https://www.apprendreetsorienter.org/statuts/", 7172 "image": { 7173 "@type": "ImageObject", 7174 "url": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426", 7175 "image": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426", 7176 "name": "RAGU? GABUNG DI RAJABANDOT ã½ï¸ Situs Toto Macau Gacor Minimal Bet Murah & Prediksi Macau Ter-Percaya", 7177 "width": 1024, 7178 "height": 1024 7179 } 7180 } 7181 </script>
7181 7182 7183 7184 7185 7186 7187
7187<script id="bss-ltap-hide-price" type="text/javascript" > 7188 !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)}))}
7188)),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)}
7188)),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()}
7188if("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)}
7188if(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");
7188c&&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
7188-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");
7188i&&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
7188--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
7188opify.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");
7188e.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=
7188o.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");
7188if(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();
7188let 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()}]); 7189 </script>
7189 7190 7191 </main> 7192 7193 <div id="shopify-section-newsletter" class="shopify-section"><br> 7194 <style> 7195 #shopify-section-newsletter { 7196 background: url('https://i.pinimg.com/474x/b9/23/39/b923392626a609fea6ebfca99103720d.jpg'); 7197 background-attachment: fixed; 7198 margin-bottom: 0; 7199 } 7200 input:-webkit-autofill, 7201 input:-webkit-autofill:hover, 7202 input:-webkit-autofill:active, 7203 input:-webkit-autofill:focus { 7204 -webkit-box-shadow:0 0 0 50px white inset; 7205 -webkit-text-fill-color: #ffffff; 7206 } 7207 .section-newsletter { 7208 max-width: 800px; 7209 margin: auto; 7210 padding: 50px 0; 7211 } 7212 .section-newsletter h2 { 7213 font-weight: 700; 7214 font-size: 24px; 7215 } 7216 .section-newsletter input[type="email"] { 7217 width: 100%; 7218 text-align: center; 7219 border: none; 7220 border-bottom: 1px solid #ffffff; 7221 font-size: 16px; 7222 color: #757575; 7223 background-color: #eeeeee; 7224 } 7225 .section-newsletter .row label { 7226 font-size: 14px; 7227 cursor: pointer; 7228 } 7229 .section-newsletter .radio-inline input { 7230 width: auto; 7231 } 7232 .section-newsletter .btn { 7233 width: 130px; 7234 border: 1px solid #ffffff; 7235 box-shadow: none; 7236 font-size: 16px; 7237 font-weight: 500; 7238 text-transform: uppercase; 7239 } 7240 .section-newsletter form { 7241 margin: 30px 0 60px; 7242 } 7243 .section-newsletter input[type="radio"] { 7244 position: absolute; 7245 width: 1px; 7246 height: 1px; 7247 } 7248 .section-newsletter [type="radio"]:checked + label, .section-newsletter [type="radio"]:not(:checked) + label { 7249 position: relative; 7250 padding-left: 28px; 7251 cursor: pointer; 7252 line-height: 20px; 7253 display: inline-block; 7254 color: #666; 7255 } 7256 .section-newsletter [type="radio"]:checked + label:before, .section-newsletter [type="radio"]:not(:checked) + label:before { 7257 content: ''; 7258 position: absolute; 7259 left: 0; 7260 top: 0; 7261 width: 18px; 7262 height: 18px; 7263 border: 1px solid #ddd; 7264 border-radius: 100%; 7265 background: #fff; 7266 } 7267 .section-newsletter [type="radio"]:checked + label:after, .section-newsletter [type="radio"]:not(:checked) + label:after { 7268 content: ''; 7269 width: 12px; 7270 height: 12px; 7271 background: #ffffff; 7272 position: absolute; 7273 top: 3px; 7274 left: 3px; 7275 border-radius: 100%; 7276 -webkit-transition: all 0.2s ease; 7277 transition: all 0.2s ease; 7278 } 7279 .section-newsletter [type="radio"]:not(:checked) + label:after { 7280 opacity: 0; 7281 -webkit-transform: scale(0); 7282 transform: scale(0); 7283 } 7284 .opt-newsletter {display:none;} 7285 .footer-newsletter p, .footer-newsletter p a { 7286 color: #757575; 7287 } 7288 @media (max-width:991px){ 7289 .section-newsletter h2 { 7290 font-size: 32px; 7291 } 7292 .section-newsletter input { 7293 width: 300px; 7294 font-size: 14px; 7295 } 7296 .section-newsletter { 7297 padding: 50px 20px; 7298 } 7299 } 7300 @media (max-width: 480px){ 7301 .section-newsletter input[type="email"] {font-size: 16px;} 7302 } 7303 </style> 7304 <style> 7305 .icon-img-footer { 7306 width: 80px; 7307 padding: 0px 5px; 7308 } 7309 @media (min-width: 768px) { 7310 .icon-img-footer { 7311 width: 120px; 7312 } 7313 } 7314 @media (min-width: 992px) { 7315 .icon-img-footer { 7316 width: 120px; 7317 } 7318 } 7319 7320 .button-login-daftar { 7321 display: grid; 7322 grid-template-columns: repeat(2, 1fr); 7323 font-weight: 700; 7324 } 7325 .button-login-daftar a { 7326 text-align: center; 7327 } 7328 .login, 7329 .register { 7330 color: #ffd700; 7331 padding: 15px 10px; 7332 font-size: 23px; 7333 } 7334 .login, 7335 .login-button { 7336 background: linear-gradient(to bottom,#000000 0,#000000 100%); 7337 border: 2px solid #ffd700; 7338 } 7339 .register, 7340 .register-button { 7341 background: linear-gradient(to bottom,#000000 0,#000000 100%); 7342 border: 2px solid #ffd700; 7343 } 7344 7345 7346 7347 </style> 7348 7349 <!-- wp:html --> 7350
7350<script> 7351 document.addEventListener('DOMContentLoaded', 7352 function(){const faqItems=document.querySelectorAll('.faq-item'); 7353 faqItems.forEach(item=>{const question=item.querySelector('.faq-question'); 7354 question.addEventListener('click', 7355 ()=>{const isActive=item.classList.contains('active'); 7356 faqItems.forEach(otherItem=>{otherItem.classList.remove('active')}); 7357 if(!isActive){item.classList.add('active')}})})}); 7358 </script>
7358 7359 7360 7361 <div class="page__overlay" data-view="offCanvasNavToggle" data-off-canvas="close" bis_skin_checked="1"> 7362 </div> 7363 <div class="faq-section"> 7364 <h2>FAQ</h2> 7365 <div class="faq-container"> 7366 <div class="faq-item"> 7367 <button class="faq-question">1. Apa itu Rajabandot dan mengapa menjadi pilihan favorit pemain Toto Macau?<span></span></button> 7368 <div class="faq-answer"><p>Rajabandot adalah Situs Toto Macau Gacor yang dikenal karena menawarkan minimal bet murah dan prediksi Macau terpercaya. Situs ini menjadi favorit karena memberikan kombinasi antara keamanan tingkat tinggi, peluang kemenangan yang besar, dan aksesibilitas yang mudah bagi semua kalangan pemain di Indonesia.</p></div> 7369 </div> 7370 <div class="faq-item"> 7371 <button class="faq-question">2. Bagaimana cara melakukan daftar Toto Macau di situs ini?<span></span></button> 7372 <div class="faq-answer"><p>Proses pendaftaran di agen toto resmi Rajabandot sangatlah praktis dan cepat. Anda hanya perlu mengunjungi situs resmi, mengisi formulir pendaftaran dengan data yang valid, dan akun Anda akan aktif dalam hitungan menit tanpa prosedur yang berbelit-belit.</p></div> 7373 </div> 7374 <div class="faq-item"> 7375 <button class="faq-question">3. Apakah keamanan data saya terjamin di Rajabandot?<span></span></button> 7376 <div class="faq-answer"><p>Tentu saja. Sebagai bandar togel terpercaya, Rajabandot menggunakan teknologi enkripsi tingkat tinggi untuk melindungi seluruh informasi pribadi dan data transaksi member. Keamanan dan privasi Anda adalah prioritas utama kami dalam menjaga integritas permainan.</p></div> 7377 </div> 7378 <div class="faq-item"> 7379 <button class="faq-question">4. Apa yang harus saya lakukan jika situs utama sulit diakses?<span></span></button> 7380 <div class="faq-answer"><p>Anda tidak perlu khawatir karena kami selalu menyediakan link alternatif Rajabandot yang resmi dan responsif. Link ini memastikan Anda tetap bisa terhubung dengan permainan Toto Macau favorit Anda kapan saja dan di mana saja tanpa hambatan teknis.</p></div> 7381 </div> 7382 <div class="faq-item"> 7383 <button class="faq-question">5. Bagaimana cara memanfaatkan prediksi Macau untuk meningkatkan kemenangan?<span></span></button> 7384 <div class="faq-answer"><p>Rajabandot menyediakan bocoran angka macau yang disusun berdasarkan analisis data statistik historis. Dengan mempelajari pola dan tren angka melalui prediksi yang kami sediakan, Anda dapat membuat keputusan taruhan yang lebih akurat dan terinformasi.</p></div> 7385 </div> 7386 7387 </div> 7388 7389 </div> 7390 7391 </div> 7392 7393 7394 <div class="overlay overlay-cart"></div> 7395 <div id="CartDrawer" class="drawer drawer--right"> 7396 <div class="drawer__header pl-2 pr-2"> 7397 <div class="drawer__icon-cart display-table-cell"> 7398 <a href="/cart" class=""> 7399 <svg class="icon icon-cart" version="1.1" xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.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.
7399005-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> 7400 </a> 7401 </div> 7402 <div class="drawer__title h4">Keranjang Belanja</div> 7403 <div class="drawer__close js-drawer-close"> 7404 <button type="button"> 7405 <svg class="icon icon-close" version="1.1" xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="32" height="32" viewBox="0 0 32 32"> 7406 <title>icon-close</title> 7407 <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> 7408 </svg> 7409 </button> 7410 </div> 7411 </div> 7412 <div id="CartContainer" class="p-2"></div> 7413 </div> 7414 7415
7415<script> 7416 7417 </script>
7417 7418
7418<script src="//outerbloom.com/cdn/shop/t/138/assets/handlebars.min.js?v=79044469952368397291752652415" defer></script>
7418 7419 <!-- /snippets/ajax-cart-template.liquid --> 7420 7421
7421<script id="CartTemplate" type="text/template"> 7422 7423 <form action="/cart" method="post" novalidate class="cart ajaxcart"> 7424 <div class="ajaxcart__inner" {{ cart.item_count }}> 7425 {{#items}} 7426 <div class="ajaxcart__product"> 7427 <div class="ajaxcart__row" data-line="{{line}}"> 7428 <div class="grid"> 7429 <div class="grid__item one-quarter"> 7430 <a href="{{url}}" class="ajaxcart__product-image"><img src="{{img}}" alt=""></a> 7431 </div> 7432 <div class="grid__item three-quarters"> 7433 <p class="d-block mb-3"> 7434 <a class="h4 d-block mb-2" href="{{url}}" class="ajaxcart__product-name">{{name}}</a> 7435 {{#if variation}} 7436 <span class="ajaxcart__product-meta p">{{variation}}</span> 7437 {{/if}} 7438 {{#properties}} 7439 {{#each this}} 7440 {{#if this}} 7441 <span class="ajaxcart__product-meta p hide">{{@key}}: {{this}}</span> 7442 {{/if}} 7443 {{/each}} 7444 {{/properties}} 7445 7446 </p> 7447 <div class="grid--full display-table"> 7448 <div class="grid__item display-table-cell one-half"> 7449 <div class="ajaxcart__qty"> 7450 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}" data-line="{{line}}"> 7451 <svg version="1.1" xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.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> 7452 <span class="visually-hidden">Kurangi jumlah barang</span> 7453 </button> 7454 <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]*"> 7455 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-line="{{line}}" data-qty="{{itemAdd}}"> 7456 <svg version="1.1" xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.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> 7457 <span class="visually-hidden">Tambahkan jumlah barang</span> 7458 </button> 7459 </div> 7460 </div> 7461 <div class="grid__item display-table-cell one-half text-right"> 7462 {{#if discountsApplied}} 7463 <small class="ajaxcart-item__price-strikethrough"><s>{{{originalLinePrice}}}</s></small> 7464 <br><span class="h4">{{{linePrice}}}</span> 7465 {{else}} 7466 <span class="h4">{{{linePrice}}}</span> 7467 {{/if}} 7468 </div> 7469 </div> 7470 {{#if discountsApplied}} 7471 <div class="grid--full display-table"> 7472 <div class="grid__item text-right"> 7473 {{#each discounts}} 7474 <small class="ajaxcart-item__discount">{{ this.title }}</small><br> 7475 {{/each}} 7476 </div> 7477 </div> 7478 {{/if}} 7479 </div> 7480 </div> 7481 </div> 7482 </div> 7483 </div> 7484 </div> 7485 {{/items}} 7486 </div> 7487 <div class="ajaxcart__footer"> 7488 <div class="grid--full cart-subtotal py-2"> 7489 <p>Subtotal</p> 7490 <h3 class="primary">{{{totalPrice}}}</h3> 7491 {{#if totalCartDiscount}} 7492 <p class="ajaxcart__savings text-center"><em>{{{totalCartDiscount}}}</em></p> 7493 {{/if}} 7494 </div> 7495 7496 <a href="/cart" class="btn btn-cta view-more btn-block cart__checkout mt-2">Checkout</a> 7497 7498 <p class="cart-checkout-shipping hide">Free Ongkir dengan belanja di atas Rp.100.000 <a href="/pages/pengiriman">detail</a></p> 7499 </div> 7500 </form> 7501 7502 </script>
7502 7503
7503<script id="AjaxQty" type="text/template"> 7504 7505 <div class="ajaxcart__qty"> 7506 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}"> 7507 <svg version="1.1" xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="24" height="24" viewBox="0 0 32 32"> 7508 <title>icon-minus</title> 7509 <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> 7510 </svg> 7511 <span class="visually-hidden">Kurangi jumlah barang</span> 7512 </button> 7513 <input type="text" class="ajaxcart__qty-num" value="{{itemQty}}" min="0" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*"> 7514 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-qty="{{itemAdd}}"> 7515 <svg version="1.1" xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.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> 7516 <span class="visually-hidden">Tambahkan jumlah barang</span> 7517 </button> 7518 </div> 7519 7520 </script>
7520 7521
7521<script id="JsQty" type="text/template"> 7522 7523 <div class="js-qty mx-auto mt-2"> 7524 <button type="button" class="js-qty__adjust js-qty__adjust--minus" data-id="{{key}}" data-qty="{{itemMinus}}"> 7525 <svg version="1.1" xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.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> 7526 <span class="visually-hidden">Kurangi jumlah barang</span> 7527 </button> 7528 <input type="text" class="js-qty__num" value="{{itemQty}}" min="1" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*" name="{{inputName}}" id="{{inputId}}"> 7529 <button type="button" class="js-qty__adjust js-qty__adjust--plus" data-id="{{key}}" data-qty="{{itemAdd}}"> 7530 <svg version="1.1" xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.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> 7531 <span class="visually-hidden">Tambahkan jumlah barang</span> 7532 </button> 7533 </div> 7534 7535 </script>
7535 7536 7537 <style> 7538 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty button, 7539 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty button, 7540 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty button {display: none;} 7541 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input, 7542 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input, 7543 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;opacity: 0.5;} 7544 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input, 7545 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input, 7546 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;} 7547 </style> 7548
7548<script src="//outerbloom.com/cdn/shop/t/138/assets/ajax-cart.js?v=51128912329657147331752652452" defer></script>
7548 7549
7549<script> 7550 jQuery(function($) { 7551 ajaxCart.init({ 7552 formSelector: '#AddToCartForm', 7553 cartContainer: '#CartContainer', 7554 addToCartSelector: '#AddToCartXX', 7555 cartCountSelector: '#CartCount, #CartCount2', 7556 cartCostSelector: '#CartCost', 7557 moneyFormat: "Rp {{amount_no_decimals}}" 7558 }); 7559 }); 7560 7561 jQuery(document.body).on('afterCartLoad.ajaxCart', function(evt, cart) { 7562 // Bind to 'afterCartLoad.ajaxCart' to run any javascript after the cart has loaded in the DOM 7563 timber.RightDrawer.open(); 7564 }); 7565 </script>
7565 7566 7567 7568 7569 7570 <style> 7571 /** Search AutoComplete **/ 7572 .resultsearch .ui-menu-item[data-cat="Collection"], 7573 .resultsearch .ui-menu-item[data-cat="Collection"] {display: none;} 7574 .resultsearch .ui-widget.ui-widget-content { 7575 width: 100%; 7576 top: 48px; 7577 border: none; 7578 box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); 7579 } 7580 .resultsearch .ui-menu-item {text-align: left;} 7581 .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;} 7582 .ui-state-active { 7583 border: none!important; 7584 background-color: #fafafa!important; 7585 color: #000!important; 7586 } 7587 .ui-menu-item a[data-cat="Collection"] {padding: 5px 12px;} 7588 .ui-menu .ui-menu-item {line-height: normal;} 7589 </style> 7590
7590<script> 7591 $(window).load(function(){ 7592 7593 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;} 7594 7595 $.widget("custom.catcomplete", $.ui.autocomplete, { 7596 _renderMenu: function (ul, items) { 7597 // have search reults split up in categories 7598 var that = this, 7599 currentCategory = ""; 7600 $.each(items, function (index, item) { 7601 if (item.category != currentCategory) { 7602 ul.append("<li class='ui-autocomplete-category' data-cat=" + item.category + ">" + "<span>" + item.category + "</span>" + "</li>"); 7603 currentCategory = item.category; 7604 } 7605 that._renderItemData(ul, item); 7606 }); 7607 } 7608 }); 7609 7610 // higlight searched for term 7611 $.ui.autocomplete.prototype._renderItem = function( ul, item ) { 7612 var term = this.element.val(), 7613 html = item.label.replace( term, "<b>$&</b>" ); 7614 return $( "<li>" ) 7615 .append(format(item)) 7616 .appendTo( ul ); 7617 }; 7618 7619 7620 var data = [ 7621 { 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
7621llection", 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: " " }
7621,{ 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: " " }
7621,{ 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: " " }
7621,{ 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
7621dal", 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-
7621hampers", 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
7621o-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: " " }
7621,{ 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: " " }
7621,{ 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: " " }
7621,{ 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: " " }
7621,{ 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: " " }
7621,{ 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: " " }
7621,{ 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: " " }
7621,{ 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: "Rajabandot hadir sebagai solusi utama bagi para penggemar yang menginginkan pengalaman bermain terbaik di Indonesia.", category: "Collection", url: "/collections/standing-flower", images: " ", price: " " },{ label: "Rajabandot hadir sebagai solusi utama bagi para penggemar yang menginginkan pengalaman bermain terbaik di Indonesia. Bali", category: "Collection", url: "/collections/standing-flower-bali", images: " ", price: " " },{ label: "Rajabandot hadir sebagai solusi utama bagi para penggemar yang menginginkan pengalaman bermain terbaik di Indonesia. Bandung", category: "Collection", url: "/collections/standing-flower-bandung", images: " ", price: " " },{ label: "Rajabandot hadir sebagai solusi utama bagi para penggemar yang menginginkan pengalaman bermain terbaik di Indonesia. Congratulations", category: "Collection", url: "/collections/standing-flower-congratulations", images: " ", price: " " },{ label: "Rajabandot hadir sebagai solusi utama bagi para penggemar yang menginginkan pengalaman bermain terbaik di Indonesia. Demak", category: "Collection", url: "/collections/standing-flower-demak", images: " ", price: " " },{ label: "Rajabandot hadir sebagai solusi utama bagi para penggemar yang menginginkan pengalaman bermain terbaik di Indonesia. Jepara", category: "Collection", url: "/collections/standing-flower-jepara", images: " ", price: " " },{ label: "Rajabandot hadir sebagai solusi utama bagi para penggemar yang menginginkan pengalaman bermain terbaik di Indonesia. Semarang", category: "Collection", url: "/collections/standing-flower-semarang", images: " ", price: " " },{ label: "Rajabandot hadir sebagai solusi utama bagi para penggemar yang menginginkan pengalaman bermain terbaik di Indonesia. Sidoarjo", category: "Collection", url: "/collections/standing-flower-sidoarjo", images: " ", price: " " },{ label: "Rajabandot hadir sebagai solusi utama bagi para penggemar yang menginginkan pengalaman bermain terbaik di Indonesia. Surabaya", category: "Collection", url: "/collections/standing-flower-surabaya", images: " ", price: " " },{ label: "Rajabandot hadir sebagai solusi utama bagi para penggemar yang menginginkan pengalaman bermain terbaik di Indonesia. 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", 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: " " }
7621,{ 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: " " }
7621,{ 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
7621dal", 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: " " }, 7622 { 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" }
7622,{ 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" }
7622,{ 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" } 7623 ]; 7624 7625 7626 $( ".header-input-search" ).catcomplete({ 7627 appendTo: ".searchResult",source: function(request, response) { 7628 var results = $.ui.autocomplete.filter(data, request.term); 7629 var predicate = function () { 7630 var counter = { Collection: 0, Produk: 0 }; 7631 var fn = function(item) {counter[item.category] += 1;return (counter[item.category] <= 5);} 7632 return fn 7633 }(); 7634 response(results.filter(predicate)); 7635 }, 7636 minLength:1, 7637 //results are clickable 7638 select: function( event, ui ) {window.location = ui.item.url;} 7639 }); 7640 $( ".header-input-search2" ).catcomplete({ 7641 appendTo: ".searchResult2", 7642 source: function(request, response) { 7643 var results = $.ui.autocomplete.filter(data, request.term); 7644 var predicate = function () { 7645 var counter = { Collection: 0, Produk: 0 }; 7646 var fn = function(item) { 7647 counter[item.category] += 1; 7648 return (counter[item.category] <= 5); 7649 } 7650 return fn 7651 }(); 7652 response(results.filter(predicate)); 7653 }, 7654 minLength:1, 7655 //results are clickable 7656 select: function( event, ui ) { 7657 window.location = ui.item.url; 7658 } 7659 }); 7660 }); 7661 </script>
7661 7662 7663
7663<script src="//outerbloom.com/cdn/shop/t/138/assets/vendors.js?v=6349622868601634021752652419" defer></script>
7663 7664
7664<script src="//outerbloom.com/cdn/shop/t/138/assets/app.js?v=136050180318808583701752652452" defer></script>
7664 7665 7666
7666<script> 7667 ( function() { 7668 var youtube = document.querySelectorAll( ".youtube" ); 7669 for (var i = 0; i < youtube.length; i++) { 7670 var source = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault_1x.jpg"; 7671 var datasource = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault.jpg"; 7672 var image = new Image(); 7673 image.src = source; 7674 image.setAttribute("data-src", datasource); 7675 image.classList.add("swiper-lazy"); 7676 image.addEventListener( "load", function() { 7677 youtube[ i ].appendChild( image ); 7678 }( i ) ); 7679 youtube[i].addEventListener( "click", function() { 7680 var iframe = document.createElement( "iframe" ); 7681 iframe.setAttribute( "width", "480" ); 7682 iframe.setAttribute( "height", "480" ); 7683 iframe.setAttribute( "frameborder", "0" ); 7684 iframe.setAttribute( "allowfullscreen", "" ); 7685 iframe.setAttribute( "src", "https://www.youtube.com/embed/"+ this.dataset.embed +"?rel=0&showinfo=0&autoplay=1" ); 7686 this.innerHTML = ""; 7687 this.appendChild( iframe ); 7688 } ); 7689 }; 7690 7691 } )(); 7692 7693 /* Lazy Load */ 7694 const mainLazyLoad = new LazyLoad({threshold:400}); 7695 $(document).ready(function(){ 7696 7697 $("selectxxx").addClass("needsclick"); 7698 FastClick.attach(document.body); 7699 7700 var $customSelects = $('.select-search'); 7701 $customSelects.select2({ 7702 templateResult: function(result, container) { 7703 if (!result.id) { 7704 return result.text; 7705 } 7706 container.className += ' needsclick'; 7707 return result.text; 7708 } 7709 }); 7710 $customSelects.each(function(index, el){$(el).data('select2').$container.find('*').addClass('needsclick');}); 7711 $(document).on('select2:open', () => { 7712 document.querySelector('.select2-search__field').focus(); 7713 }); 7714 7715 7716 $(".overlay").click(function(){ 7717 $(".js-drawer-close").click(); 7718 }); 7719 $(".site-nav--mobile .js-drawer-open-left, #NavDrawer .icon-close, .overlay-nav").click(function(){ 7720 $("html").toggleClass("nav_open"); 7721 }); 7722 7723 $('.swatch-element label').on('click', function(){ 7724 var srcImg = $(this).data('src'); 7725 $('#thumb-image-product .product-single__thumbnail').each(function(){ 7726 if ($(this).attr("href") == srcImg) { 7727 $(this).trigger('click'); 7728 } 7729 }); 7730 }); 7731 var defaultValue = $(".swatch input:checked").val() 7732 7733 $('#purchaseProduct .swatch [type=radio]').change(function() { 7734 var optionIndex = $(this).closest('.swatch').attr('data-option-index'); 7735 var optionValue = $(this).val(); 7736 console.log(optionIndex, optionValue) 7737 var value = parseInt(optionValue.split(' ')[0]) 7738 $(this) 7739 .closest('#purchaseProduct') 7740 .find('.single-option-selector') 7741 .eq(optionIndex) 7742 .val(optionValue) 7743 .trigger('change'); 7744 7745 }); 7746 7747 }); 7748 $(document).ready(function(){ 7749 $(".nav-search a").click(function(e){ 7750 e.preventDefault(); 7751 $(".icon-navsearch").toggle(); 7752 $(".icon-navclose").toggle(); 7753 $(".site-nav__item > .site-nav__link").toggle(); 7754 $(".open-search").toggle(); 7755 $(".open-search input").focus(); 7756 }); 7757 $(".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'>"); 7758 if ($(window).width() < 768) { 7759 $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_75x.png?v=82732945490105366961752652419' alt='Icon Valentine'>"); 7760 $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_45x.png?v=101884295148001743851752652418' alt='Icon CNY'>"); 7761 $(".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'>"); 7762 } else { 7763 $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_60x.png?v=82732945490105366961752652419' alt='Icon Valentine'>"); 7764 $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_60x.png?v=101884295148001743851752652418' alt='Icon CNY'>"); 7765 $(".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'>"); 7766 } 7767 $(".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'>"); 7768 $(".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'>"); 7769 }); 7770 </script>
7770 7771 7772 7773 7774 7775
7775<script type="text/javascript"> 7776 var wishlistpage = 0; 7777 7778 var quickShop_money_format="<span class='money'>"+"Rp {{amount_no_decimals}}"+"</span>"; 7779 </script>
7779 7780 7781 <!-- Remove duplicate wishlist.js reference --> 7782 <style> 7783 .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)}} 7784 </style> 7785 7786 <div class="modal fade" id="modalwishlist0" tabindex="-1" role="dialog"> 7787 <div class="modal-dialog" role="document"> 7788 <div class="modal-content"> 7789 <div class="modal-body">Your Wishlist is empty!</div> 7790 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> 7791 </div> 7792 </div> 7793 </div> 7794 7795 <div class="wishlist-model"> 7796 <div class="modal fade" id="modalwishlist1" tabindex="-1" role="dialog" aria-hidden="true"> 7797 <div class="modal-dialog white-modal"> 7798 <div class="modal-content"> 7799 <div class="modal-header"> 7800 <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 7801 <svg class="icon icon-close" version="1.1" xmlns="https://img
7801saya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="32" height="32" viewBox="0 0 32 32"> 7802 <title>icon-close</title> 7803 <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> 7804 </svg> 7805 </button> 7806 </div> 7807 <div class="modal-body"> 7808 <div class="wishlist-left"> 7809 <div class="wishlist-note"> 7810 <span class="cirle"><svg version="1.1" xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="32" height="32" viewBox="0 0 32 32"> 7811 <title>icon-check</title> 7812 <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> 7813 </svg></span> 7814 Product added to <a href="/pages/wish-list">Wishlist</a> 7815 </div> 7816 <div class="wishlist-product"> 7817 <div class="product-left"> 7818 <div class="wishlist-image"></div> 7819 </div> 7820 <div class="product-right"> 7821 <div class="wishlist-name"></div> 7822 <div class="wishlist-price"></div> 7823 </div> 7824 </div> 7825 </div> 7826 <div class="wishlist-right"> 7827 <div class="wishlist-cart"> 7828 <form action="/cart/add" method="post" class="variants-form variants" id="AddToCartForm" enctype="multipart/form-data"> 7829 <div class="others-bottom"> 7830 <a class="btn btn-quick-shop" href="/pages/wish-list">View Wishlist</a> 7831 <button type="submit" name="add" id="AddToCart" class="btn btn-cta"> 7832 <span id="AddToCartText" class="">Beli Sekarang</span> 7833 </button> 7834 </div> 7835 <div id="wishlist-variants-container" class="variants-wrapper"></div> 7836 <div class="quantity-content"> 7837 <label>QTY</label> 7838 <input type="number" size="5" class="" name="quantity" value="1" /> 7839 </div> 7840 </form> 7841 </div> 7842 </div> 7843 </div> 7844 </div> 7845 </div> 7846 </div> 7847 </div> 7848 7849 7850 <style> 7851 .stamped-badge[data-rating="0.0"]{display: none !Important;} 7852 7853 div[data-load-type="continue"] ul.stamped-pagination li.next a, div[data-widget-load-type="continue"] ul.stamped-pagination li.next a { 7854 border-radius: 0px; 7855 } 7856 .stamped-review-body { 7857 padding-left: 0px !important; 7858 } 7859 #product-reviews .stamped-header:after { 7860 display:none !Important; 7861 } 7862 #stamped-main-widget .stamped-container, .stamped-badge-caption,#stamped-reviews-widget { 7863 font-family:inherit !important; 7864 } 7865 </style> 7866 7867 7868 7869 <div id='stamped-rewards-init' class='stamped-rewards-init' 7870 data-key-public='' 7871 7872 ></div> 7873 7874
7874<script src="//outerbloom.com/cdn/shop/t/138/assets/variant-sku-handler.js?v=91239063692820757781752652418" defer></script>
7874 7875 <!-- Remove duplicate jQuery reference and load wishlist script properly --> 7876
7876<script src="//outerbloom.com/cdn/shop/t/138/assets/wishlist-fixed.js?v=35991423018869066281754360012" defer></script>
7876 7877 7878
7878<script> 7879 function myInit(){ StampedFn.init({ apiKey: 'pubkey-hCS8DHE9QbBHhHN89WXFkuJ0Y3422D', sId: '23462' }); } 7880 </script>
7880 7881
7881<script async onload="myInit()" type="text/javascript" src="https://cdn1.stamped.io/files/widget.min.js"></script>
7881<style> 7882 .jss59 { 7883 background-color: rgba(0, 0, 0, 0.6); 7884 } 7885 .MuiBackdrop-root { 7886 top: 0; 7887 left: 0; 7888 right: 0; 7889 bottom: 0; 7890 display: flex; 7891 z-index: -1; 7892 position: fixed; 7893 align-items: center; 7894 justify-content: center; 7895 background-color: rgba(0, 0, 0, 0.5); 7896 -webkit-tap-highlight-color: transparent; 7897 } 7898 .MuiDialog-scrollPaper { 7899 display: flex; 7900 align-items: center; 7901 justify-content: center; 7902 } 7903 .MuiDialog-container { 7904 height: 100%; 7905 outline: 0; 7906 } 7907 .MuiPaper-elevation24 { 7908 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); 7909 } 7910 .MuiDialog-paper { 7911 margin: 32px; 7912 position: relative; 7913 overflow-y: auto; 7914 } 7915 .MuiDialog-paperScrollPaper { 7916 display: flex; 7917 max-height: calc(100% - 64px); 7918 flex-direction: column; 7919 } 7920 .MuiDialog-paperWidthSm { 7921 max-width: 600px; 7922 } 7923 #location-lock-dialog { 7924 top: 20%; 7925 left: 0; 7926 right: 0; 7927 width: 30%; 7928 margin: 0px auto; 7929 display: block; 7930 padding: 30px; 7931 z-index: 99999; 7932 position: fixed; 7933 font-size: 14px; 7934 background: rgb(0, 0, 0); 7935 box-shadow: rgba(11, 11, 12, 0.2) 2px 4px 5px 0px; 7936 text-align: center; 7937 font-family: Roboto, Arial, sans-serif; 7938 line-height: 1; 7939 border-radius: 8px; 7940 -webkit-font-smoothing: subpixel-antialiased; 7941 } 7942 .MuiButtonBase-root { 7943 color: inherit; 7944 border: 0; 7945 cursor: pointer; 7946 margin: 0; 7947 display: inline-flex; 7948 outline: 0; 7949 padding: 0; 7950 position: relative; 7951 align-items: center; 7952 user-select: none; 7953 border-radius: 0; 7954 vertical-align: middle; 7955 -moz-appearance: none; 7956 justify-content: center; 7957 text-decoration: none; 7958 background-color: transparent; 7959 -webkit-appearance: none; 7960 -webkit-tap-highlight-color: transparent; 7961 } 7962 .MuiIconButton-root { 7963 flex: 0 0 auto; 7964 color: rgba(0, 0, 0, 0.54); 7965 padding: 12px; 7966 overflow: visible; 7967 font-size: 1.5rem; 7968 text-align: center; 7969 transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 7970 border-radius: 50%; 7971 } 7972 .MuiIconButton-label { 7973 width: 100%; 7974 display: flex; 7975 align-items: inherit; 7976 justify-content: inherit; 7977 } 7978 .MuiSvgIcon-root { 7979 fill: currentColor; 7980 width: 1em; 7981 height: 1em; 7982 display: inline-block; 7983 font-size: 1.5rem; 7984 transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 7985 flex-shrink: 0; 7986 user-select: none; 7987 } 7988 .MuiTouchRipple-root { 7989 top: 0; 7990 left: 0; 7991 right: 0; 7992 bottom: 0; 7993 z-index: 0; 7994 overflow: hidden; 7995 position: absolute; 7996 border-radius: inherit; 7997 pointer-events: none; 7998 } 7999 .jss36 { 8000 color: #222222; 8001 font-size: 24px; 8002 font-family: Roboto, Arial, sans-serif; 8003 font-weight: 500; 8004 } 8005 .jss37 { 8006 color: #555555; 8007 padding: 10px 0px 0px; 8008 font-size: 14px; 8009 } 8010 .MuiFormGroup-root { 8011 display: flex; 8012 flex-wrap: wrap; 8013 flex-direction: column; 8014 } 8015 .MuiFormGroup-row { 8016 flex-direction: row; 8017 } 8018 .jss63 { 8019 width: 85%; 8020 margin: 15px auto; 8021 display: flex; 8022 padding: 11px 0px 0px; 8023 justify-content: space-evenly; 8024 } 8025 .MuiFormControlLabel-root { 8026 cursor: pointer; 8027 display: inline-flex; 8028 align-items: center; 8029 margin-left: -11px; 8030 margin-right: 16px; 8031 vertical-align: middle; 8032 -webkit-tap-highlight-color: transparent; 8033 } 8034 .jss70 { 8035 margin: 0; 8036 } 8037 .MuiButtonBase-root { 8038 color: inherit; 8039 border: 0; 8040 cursor: pointer; 8041 margin: 0; 8042 display: inline-flex; 8043 outline: 0; 8044 padding: 0; 8045 position: relative; 8046 align-items: center; 8047 user-select: none; 8048 border-radius: 0; 8049 vertical-align: middle; 8050 -moz-appearance: none; 8051 justify-content: center; 8052 text-decoration: none; 8053 background-color: transparent; 8054 -webkit-appearance: none; 8055 -webkit-tap-highlight-color: transparent; 8056 } 8057 .MuiIconButton-root { 8058 flex: 0 0 auto; 8059 color: rgba(0, 0, 0, 0.54); 8060 padding: 12px; 8061 overflow: visible; 8062 font-size: 1.5rem; 8063 text-align: center; 8064 transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 8065 border-radius: 50%; 8066 } 8067 .MuiIconButton-colorSecondary { 8068 color: #f50057; 8069 } 8070 .jss71 { 8071 padding: 9px; 8072 } 8073 .MuiRadio-root { 8074 color: rgba(0, 0, 0, 0.54); 8075 } 8076 .jss64 { 8077 padding: 2px; 8078 } 8079 .MuiRadio-colorSecondary.Mui-checked { 8080 color: #f50057; 8081 } 8082 .MuiIconButton-label { 8083 width: 100%; 8084 display: flex; 8085 align-items: inherit; 8086 justify-content: inherit; 8087 } 8088 .MuiTypography-root { 8089 margin: 0; 8090 } 8091 .MuiTypography-body1 { 8092 font-size: 18px; 8093 font-family: Roboto,sans-serif; 8094 font-weight: 400; 8095 line-height: 1.5; 8096 } 8097 .location-popup_area-block__sp9Ws { 8098 display: -moz-box; 8099 display: flex; 8100 -moz-box-orient: vertical; 8101 -moz-box-direction: normal; 8102 flex-direction: column; 8103 -moz-box-pack: center; 8104 justify-content: center; 8105 position: relative; 8106 margin: 10px 10% 0; 8107 } 8108 .location-popup_pin-search-box__3l5mJ { 8109 width: 100%; 8110 display: -moz-box; 8111 display: flex; 8112 -moz-box-align: center; 8113 align-items: center; 8114 } 8115 .location-popup_place-icon-city__1XAX5, .location-popup_place-icon__jSG0Q { 8116 position: absolute; 8117 z-index: 999; 8118 } 8119 .location-popup_place-icon__jSG0Q { 8120 color: #ffffff; 8121 padding-left: 8px; 8122 } 8123 .location-popup_place-icon__jSG0Q svg { 8124 width: 18px; 8125 height: 18px; 8126 } 8127 .location-popup_cancel-icon__FHujU { 8128 color: #fff; 8129 right: 10px; 8130 width: 16px; 8131 cursor: pointer; 8132 height: 16px; 8133 display: none; 8134 padding: 5px; 8135 position: absolute; 8136 background: #999; 8137 text-align: center; 8138 border-radius: 50%; 8139 } 8140 .location-popup_pin-search-box__3l5mJ>div>select { 8141 /* -webkit-box-shadow: 0 0 10px #ffffff; 8142 box-shadow: 0 0 10px #ffffff; */ 8143 text-transform: capitalize; 8144 border: 1px solid #ffffff; 8145 color: #ffffff; 8146 width: 100%; 8147 margin: 0; 8148 display: -moz-box; 8149 display: flex;
8150 padding: 0 30px; 8151 -webkit-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8152 -moz-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8153 animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8154 font-size: 16px; 8155 border-radius: 4px; 8156 height: 44px; 8157 moz-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite; 8158 webkit-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite; 8159 } 8160 .MuiButtonBase-root { 8161 color: inherit; 8162 border: 0; 8163 cursor: pointer; 8164 margin: 0; 8165 display: inline-flex; 8166 outline: 0; 8167 padding: 0; 8168 position: relative; 8169 align-items: center; 8170 user-select: none; 8171 border-radius: 0; 8172 vertical-align: middle; 8173 -moz-appearance: none; 8174 justify-content: center; 8175 text-decoration: none; 8176 background-color: transparent; 8177 -webkit-appearance: none; 8178 -webkit-tap-highlight-color: transparent; 8179 } 8180 .MuiButton-root { 8181 color: rgba(0, 0, 0, 0.87); 8182 padding: 6px 16px; 8183 font-size: 0.875rem; 8184 min-width: 64px; 8185 box-sizing: border-box; 8186 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; 8187 font-family: Roboto,sans-serif; 8188 font-weight: 500; 8189 line-height: 1.75; 8190 border-radius: 4px; 8191 text-transform: uppercase; 8192 } 8193 .MuiButton-contained { 8194 color: rgba(0, 0, 0, 0.87); 8195 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); 8196 background-color: #e0e0e0; 8197 } 8198 .MuiButtonBase-root.Mui-disabled { 8199 cursor: default; 8200 pointer-events: none; 8201 } 8202 .MuiButton-label { 8203 width: 100%; 8204 display: inherit; 8205 align-items: inherit; 8206 justify-content: inherit; 8207 } 8208 .cartButton_login_content__2j1f7 { 8209 display: -moz-box; 8210 display: flex; 8211 text-align: center; 8212 z-index: 9; 8213 font-size: 18px; 8214 font-weight: 500; 8215 color: #fff; 8216 } 8217 8218 .jss35 { 8219 top: 5px; 8220 right: 5px; 8221 padding: 4px; 8222 position: absolute; 8223 border-radius: 50%; 8224 } 8225 .jss67 { 8226 cursor: pointer; 8227 font-size: 15px; 8228 line-height: 1.3; 8229 padding-left: 5px; 8230 } 8231 .jss69 { 8232 color: #222222; 8233 } 8234 .jss80 { 8235 color: #fff; 8236 width: 100%; 8237 height: 52px; 8238 padding: 11px 16px; 8239 font-size: 18px; 8240 min-width: 88px; 8241 min-height: 36px; 8242 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; 8243 font-weight: 500; 8244 line-weight: 1em; 8245 border-radius: 4px; 8246 text-transform: uppercase; 8247 background-color: #E87325; 8248 } 8249 @media (min-width: 991px){ 8250 .cartButton_login_content__2j1f7 { 8251 font-weight: 500; 8252 } 8253 } 8254 8255 @media (max-width: 992px) { 8256 #location-lock-dialog { 8257 width: 100%; 8258 top: auto; 8259 bottom: 0; 8260 padding-left: 0; 8261 padding-right: 0; 8262 } 8263 .MuiFormGroup-row { 8264 display: block 8265 } 8266 .MuiIconButton-label input { 8267 margin: 0; 8268 } 8269 } 8270 </style> 8271 <div role="presentation" class="MuiDialog-root jss34" style="display: none;position: fixed; z-index: 9999; inset: 0px;"> 8272 <div class="MuiBackdrop-root" aria-hidden="true" style="opacity: 1; transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"></div> 8273 <div tabindex="0" data-test="sentinelStart"></div> 8274 <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;"> 8275 <div class="MuiPaper-root MuiDialog-paper MuiDialog-paperScrollPaper MuiDialog-paperWidthSm MuiPaper-elevation24 MuiPaper-rounded" role="dialog"> 8276 <div class="jss31 undefined" id="location-lock-dialog"> 8277 <button id="close-popup-delivery" class="MuiButtonBase-root MuiIconButton-root jss35" tabindex="0" type="button" aria-label="close"> 8278 <span class="MuiIconButton-label"> 8279 <svg class="MuiSvgIcon-root" focusable="false" viewBox="0 0 24 24" aria-hidden="true"> 8280 <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> 8281 </svg> 8282 </span>
8283 <span class="MuiTouchRipple-root"></span> 8284 </button> 8285 <div> 8286 <div class="jss36">Select Delivery Location</div> 8287 <div class="jss37">Select a delivery location to see product availability</div> 8288 </div> 8289 <div class="MuiFormGroup-root jss63 MuiFormGroup-row" role="radiogroup"> 8290 <label for="jabodetabek" class="MuiFormControlLabel-root jss45"> 8291 <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 jss47 Mui-checked MuiIconButton-colorSecondary" aria-disabled="false"> 8292 <span class="MuiIconButton-label"> 8293 <input id="jabodetabek" class="jss49" type="radio" value="Jabodetabek" checked="" name="location"> 8294 <span class="jss41"></span> 8295 </span> 8296 <span class="MuiTouchRipple-root"></span> 8297 </span> 8298 <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1"> 8299 <span class="jss67 jss69">Jabodetabek</span> 8300 </span> 8301 </label> 8302 <label for="non-jabodetabek" class="MuiFormControlLabel-root jss45"> 8303 <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 MuiIconButton-colorSecondary" aria-disabled="false"> 8304 <span class="MuiIconButton-label"> 8305 <input id="non-jabodetabek" class="jss49" type="radio" value="Outside Jabodetabek" name="location"> 8306 <span class="jss40"></span> 8307 </span> 8308 <span class="MuiTouchRipple-root"></span> 8309 </span> 8310 <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1"> 8311 <span class="jss67 jss68">Outside Jabodetabek</span> 8312 </span> 8313 </label> 8314 </div> 8315 <div> 8316 <div class="MuiGrid-root location-popup_area-block__sp9Ws"> 8317 <div class="MuiGrid-root location-popup_pin-search-box__3l5mJ false"> 8318 <div class="MuiGrid-root location-popup_place-icon__jSG0Q"> 8319 <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> 8320 </div> 8321 <div class="MuiGrid-root location-popup_cancel-icon__FHujU false"> 8322 <i class="material-icons location-popup_clear-pin__s1dRc">close</i> 8323 </div> 8324 <div style="width: 100%;"> 8325 <select id="choose-location" class="form-control"> 8326 <option value="">Choose Location</option> 8327 <option value="jakarta">Jakarta</option> 8328 <option value="bogor">Bogor</option> 8329 <option value="depok">Depok</option> 8330 <option value="tangerang">Tangerang</option> 8331 <option value="bekasi">Bekasi</option> 8332 </select> 8333 </div> 8334 </div> 8335 </div> 8336 </div> 8337 <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=""> 8338 <span class="MuiButton-label"> 8339 <span class=""></span> 8340 <span id="location-lock-continue-btn" class="cartButton_login_content__2j1f7" style="font-weight: 500;" data-content="">Continue Shopping</span> 8341 </span> 8342 </button> 8343 </div> 8344 </div> 8345 </div> 8346 <div tabindex="0" data-test="sentinelEnd"></div> 8347 </div> 8348 8349
8349<script> 8350 const jabodetabek = [ 8351 { 8352 "code": "jakarta", 8353 "city": "jakarta", 8354 "zip": [] 8355 }, 8356 { 8357 "code": "bogor", 8358 "city": "bogor", 8359 "zip": [] 8360 }, 8361 { 8362 "code": "depok", 8363 "city": "depok", 8364 "zip": [] 8365 }, 8366 { 8367 "code": "tangerang", 8368 "city": "tangerang", 8369 "zip": [] 8370 }, 8371 { 8372 "code": "bekasi", 8373 "city": "bekasi", 8374 "zip": [] 8375 } 8376 ] 8377 let cityNonJabodetabek = [ 8378 8379 8380 8381 8382 "pengiriman_aceh", 8383 8384 8385 8386 8387 8388 "pengiriman_ambon", 8389 8390 8391 8392 8393 8394 "pengiriman_atambua", 8395 8396 8397 8398 8399 8400 "pengiriman_badung", 8401 8402 8403 8404 8405 8406 "pengiriman_bali", 8407 8408 8409 8410 8411 8412 "pengiriman_balikpapan", 8413 8414 8415 8416 8417 8418 "pengiriman_bandar lampung", 8419 8420 8421 8422 8423 8424 "pengiriman_bandung", 8425 8426 8427 8428 8429 8430 "pengiriman_bandung barat", 8431 8432 8433 8434 8435 8436 "pengiriman_banjarmasin", 8437 8438 8439 8440 8441 8442 "pengiriman_banyumas", 8443 8444 8445 8446 8447 8448 "pengiriman_banyuwangi", 8449 8450 8451 8452 8453 8454 "pengiriman_batam", 8455 8456 8457 8458 8459 8460 8461 8462 8463 8464 "pengiriman_biak", 8465 8466 8467 8468 8469 8470 "pengiriman_binjai", 8471 8472 8473 8474 8475 8476 "pengiriman_blitar", 8477 8478 8479 8480 8481 8482 "pengiriman_blora", 8483 8484 8485 8486 8487 8488 8489 8490 8491 8492 "pengiriman_bojonegoro", 8493 8494 8495 8496 8497 8498 "pengiriman_boyolali", 8499 8500 8501 8502 8503 8504 "pengiriman_bukittinggi", 8505 8506 8507 8508 8509 8510 "pengiriman_buleleng", 8511 8512 8513 8514 8515 8516 "pengiriman_ciamis", 8517 8518 8519 8520 8521 8522 "pengiriman_cianjur", 8523 8524 8525 8526 8527 8528 "pengiriman_cibinong", 8529 8530 8531 8532 8533 8534 "pengiriman_cikarang", 8535 8536 8537 8538 8539 8540 "pengiriman_cikupa", 8541 8542 8543 8544 8545 8546 "pengiriman_cilacap", 8547 8548 8549 8550 8551 8552 "pengiriman_cileunyi", 8553 8554 8555 8556 8557 8558 "pengiriman_cimahi", 8559 8560 8561 8562 8563 8564 "pengiriman_cirebon", 8565 8566 8567 8568 8569 8570 "pengiriman_ciwidey", 8571 8572 8573 8574 8575 8576 "pengiriman_deli serdang", 8577 8578 8579 8580 8581 8582 "pengiriman_demak", 8583 8584 8585 8586 8587 8588 "pengiriman_denpasar", 8589 8590 8591 8592 8593 8594 8595 "pengiriman_garut", 8596 8597 8598 8599 8600 8601 "pengiriman_gianyar", 8602 8603 8604 8605 8606 8607 "pengiriman_gresik", 8608 8609 8610 8611 8612 8613 "pengiriman_gunung kidul", 8614 8615 8616 8617 8618 8619 8620 "pengiriman_jambi", 8621 8622 8623 8624 8625 8626 "pengiriman_jayapura", 8627 8628 8629 8630 8631 8632 "pengiriman_jember", 8633 8634 8635 8636 8637 8638 "pengiriman_jepara", 8639 8640 8641 8642 8643 8644 "pengiriman_jombang", 8645 8646 8647 8648 8649 8650 "pengiriman_karanganyar", 8651 8652 8653 8654 8655 8656 "pengiriman_karawang", 8657 8658 8659 8660 8661 8662 "pengiriman_karo", 8663 8664 8665 8666 8667 8668 "pengiriman_kebumen", 8669 8670 8671 8672 8673 8674 "pengiriman_kediri", 8675 8676 8677 8678 8679 8680 "pengiriman_keerom", 8681 8682 8683 8684 8685 8686 "pengiriman_kendal", 8687 8688 8689 8690 8691 8692 "pengiriman_klaten", 8693 8694 8695 8696 8697 8698 "pengiriman_kudus", 8699 8700 8701 8702 8703 8704 "pengiriman_kupang", 8705 8706 8707 8708 8709 8710 "pengiriman_lainnya", 8711 8712 8713 8714 8715 8716 "pengiriman_lamongan", 8717 8718 8719 8720 8721 8722 "pengiriman_lampung", 8723 8724 8725 8726 8727 8728 "pengiriman_lampung barat", 8729 8730 8731 8732 8733 8734 "pengiriman_lembang", 8735 8736 8737 8738 8739 8740 "pengiriman_lombok", 8741 8742 8743 8744 8745 8746 "pengiriman_lumajang", 8747 8748 8749 8750 8751 8752 "pengiriman_madiun", 8753 8754 8755 8756 8757 8758 "pengiriman_magelang", 8759 8760 8761 8762 8763 8764 "pengiriman_majalengka", 8765 8766 8767 8768 8769 8770 "pengiriman_makassar", 8771 8772 8773 8774 8775 8776 "pengiriman_malang", 8777 8778 8779 8780 8781 8782 "pengiriman_manado", 8783 8784 8785 8786 8787 8788 "pengiriman_medan", 8789 8790 8791 8792 8793 8794 "pengiriman_mengwi", 8795 8796 8797 8798 8799 8800 "pengiriman_mojokerto", 8801 8802 8803 8804 8805 8806 "pengiriman_nganjuk", 8807 8808 8809 8810 8811 8812 "pengiriman_ngawi", 8813 8814 8815 8816 8817 8818 "pengiriman_padang", 8819 8820 8821 8822 8823 8824 "pengiriman_palembang", 8825 8826 8827 8828 8829 8830 "pengiriman_pasuruan", 8831 8832 8833 8834 8835 8836 "pengiriman_pati", 8837 8838 8839 8840 8841 8842 "pengiriman_pekalongan", 8843 8844 8845 8846 8847 8848 "pengiriman_pekanbaru", 8849 8850 8851 8852 8853 8854 "pengiriman_pemalang", 8855 8856 8857 8858 8859 8860 "pengiriman_ponorogo", 8861 8862 8863 8864 8865 8866 "pengiriman_pontianak", 8867 8868 8869 8870 8871 8872 "pengiriman_probolinggo", 8873 8874 8875 8876 8877 8878 "pengiriman_purbalingga", 8879 8880 8881 8882 8883 8884 "pengiriman_purwakarta", 8885 8886 8887 8888 8889 8890 "pengiriman_purwokerto", 8891 8892 8893 8894 8895 8896 "pengiriman_rembang", 8897 8898 8899 8900 8901 8902 "pengiriman_riau", 8903 8904 8905 8906 8907 8908 "pengiriman_salatiga", 8909 8910 8911 8912 8913 8914 "pengiriman_samarinda", 8915 8916 8917 8918 8919 8920 "pengiriman_semarang", 8921 8922 8923 8924 8925 8926 "pengiriman_sentani", 8927 8928 8929 8930 8931 8932 "pengiriman_serang", 8933 8934 8935 8936 8937 8938 "pengiriman_sidoarjo", 8939 8940 8941 8942 8943 8944 "pengiriman_singkawang", 8945 8946 8947 8948 8949 8950 "pengiriman_sragen", 8951 8952 8953 8954 8955 8956 "pengiriman_subang", 8957 8958 8959 8960 8961 8962 "pengiriman_sukabumi", 8963 8964 8965 8966 8967 8968 "pengiriman_sumbawa", 8969 8970 8971 8972 8973 8974 "pengiriman_surabaya", 8975 8976 8977 8978 8979 8980 "pengiriman_surakarta solo", 8981 8982 8983 8984 8985 "pengiriman_tasikmalaya", 8986 8987 8988 8989 8990 8991 "pengiriman_tegal", 8992 8993 8994 8995 8996 8997 "pengiriman_timika", 8998 8999 9000 9001 9002 9003 "pengiriman_wamena", 9004 9005 9006 9007 9008 9009 "pengiriman_wiyung", 9010 9011 9012 9013 9014 9015 "pengiriman_wonokromo", 9016 9017 9018 9019 9020 9021 "pengiriman_yogyakarta", 9022 9023 ] 9024 console.log(cityNonJabodetabek) 9025 let non_jabodetabek = [] 9026 for(var i=0;i<cityNonJabodetabek.length;i++) { 9027 const obj = { 9028 "code": cityNonJabodetabek[i].toLowerCase().replace('pengiriman_', '').replace(' ','-'), 9029 "city": cityNonJabodetabek[i].replace('pengiriman_', '').replace(' ','-'), 9030 "zip": [] 9031 } 9032 non_jabodetabek.push(obj) 9033 } 9034 let current_location = getCookie("location_delivery") 9035 $("[name=location]").change(function(){ 9036 let v = $(this).val() 9037 let option = [] 9038 if(v == 'Jabodetabek') { 9039 for(var i=0;i<jabodetabek.length;i++) { 9040 const jabodetabekHtml = `<option value=${jabodetabek[i].city}>${jabodetabek[i].city}</option>` 9041 option.push(jabodetabekHtml) 9042 } 9043 $("#choose-location").html(`<option value="">Choose Location</option>${option}`) 9044 } else { 9045 for(var i=0;i<non_jabodetabek.length;i++) { 9046 const nonjabodetabekHtml = `<option value=${non_jabodetabek[i].city}>${non_jabodetabek[i].city}</option>` 9047 option.push(nonjabodetabekHtml) 9048 } 9049 $("#choose-location").html(`<option value="">Choose Location</option>${option}`) 9050 } 9051 }) 9052 9053 $("#location-lock-submit").click(function(e){ 9054 let select = $("#choose-location") 9055 let value = select.val().toLowerCase() 9056 console.log(value) 9057 if(select.val() == "") { 9058 return alert("Choose Your Location") 9059 e.preventDefault() 9060 }
9061 setCookie("location_delivery",value,1000000); 9062 9063 location.reload(); 9064 9065 }) 9066 9067 $("#close-popup-delivery").click(function(){ 9068 $(".MuiDialog-root").hide() 9069 if(!current_location){ 9070 setCookie("location_delivery","jakarta",1000000); 9071 $("#loc_delivery_city, #loc_delivery_city_mobile").text("Jakarta") 9072 } 9073 }) 9074 $("#loc_delivery, #loc_delivery_mobile").click(function(){ 9075 $(".MuiDialog-root").show() 9076 }) 9077 9078 9079 if(!current_location){ 9080 9081 } else { 9082 $("#loc_delivery_city, #loc_delivery_city_mobile").text(current_location) 9083 console.log(current_location) 9084 $("#choose-location").each(function(){ 9085 if(current_location == 'jakarta' || current_location == 'depok' || current_location == 'bogor' || current_location == 'tangerang' || current_location == 'bekasi'){ 9086 $("#jabodetabek").trigger("click") 9087 } else { 9088 $("#non-jabodetabek").trigger("click") 9089 } 9090 $("#choose-location").find("option[value="+current_location+"]").attr("selected", "selected") 9091 }) 9092 } 9093 9094 // 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'){ 9095 // $("#timeMalam").attr("disabled", false) 9096 // } else { 9097 // $("#timeMalam").attr("disabled", true) 9098 // } 9099 9100 if(current_location && current_location != 'jakarta') { 9101 $("#self-pickup").attr("disabled", true) 9102 } 9103 9104 function setCookie(name,value,days) { 9105 var expires = ""; 9106 if (days) { 9107 var date = new Date(); 9108 date.setTime(date.getTime() + (days*24*60*60*1000)); 9109 expires = "; expires=" + date.toUTCString(); 9110 } 9111 document.cookie = name + "=" + (value || "") + expires + "; path=/"; 9112 } 9113 function getCookie(name) { 9114 var nameEQ = name + "="; 9115 var ca = document.cookie.split(';'); 9116 for(var i=0;i < ca.length;i++) { 9117 var c = ca[i]; 9118 while (c.charAt(0)==' ') c = c.substring(1,c.length); 9119 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 9120 } 9121 return null; 9122 } 9123 </script>
9123 9124 <!-- One Tap --> 9125
9125<script> 9126 console.log("Outerbloom..."); 9127 </script>
9127 9128 <div id="shopify-block-ANVEzSUcxTUxZOGpwZ__9703700522657871012" class="shopify-block shopify-app-block"> 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 <link rel="stylesheet" href="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.css" /> 9176
9176<script src="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.js" defer></script>
9176 9177
9177<script> 9178 const widgetConfig = { 9179 id: "clz7897za002cz7otleaz0d3d", 9180 showQuickResponse: false, 9181 quickResponsesData: [], 9182 themeColor: "#ffffff", 9183 widgetText: "", 9184 radiusType: "circle", 9185 widgetIconType: "whatsapp", 9186 position: "right", 9187 storeLogo: "", 9188 storeName: "Outerbloom", 9189 storeDescription: "", 9190 size: "small", 9191 showCard: false, 9192 widgetColorType: "solid", 9193 widgetColor1: "#008069", 9194 widgetColor2: "#008069", 9195 social: { 9196 socialOrders: ["instagram","tiktok","facebook","x","youtube","linkedin","email"], 9197 values: { 9198 instagram: { 9199 enabled: false, 9200 value: "", 9201 }, 9202 facebook: { 9203 enabled: false, 9204 value: "", 9205 }, 9206 email: { 9207 enabled: false, 9208 value: "", 9209 }, 9210 x: { 9211 enabled: false, 9212 value: "", 9213 }, 9214 tiktok: { 9215 enabled: false, 9216 value: "", 9217 }, 9218 linkedin: { 9219 enabled: false, 9220 value: "", 9221 }, 9222 youtube: { 9223 enabled: false, 9224 value: "", 9225 }, 9226 }, 9227 }, 9228 }; 9229 9230 function initializeWidget() { 9231 if (typeof BBBWidget !== 'undefined') { 9232 BBBWidget.init(widgetConfig); 9233 } else { 9234 setTimeout(initializeWidget, 100); 9235 } 9236 } 9237 9238 initializeWidget();</script>
9238 9239 9240 9241 </div><div id="shopify-block-ATzRpVTBPU3k1R2pnW__286197278318599166" class="shopify-block shopify-app-block"> 9242 9243 9244 <div style="position: fixed; bottom: 0; right: 0"></div> 9245 9246
9246<script> 9247 console.info("bitlogin extension version: v2.5.7"); 9248 9249 const googleScript = document.createElement("script"); 9250 googleScript.setAttribute("src", "https://accounts.google.com/gsi/client"); 9251 document.head.append(googleScript); 9252 9253 const bitLoginBaseUrl = "https://api.bitbybit.studio"; 9254 const apiUrl = `${bitLoginBaseUrl}/bitlogin/api`; 9255 9256 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"}}; 9257 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
9257n1.oa2-cs.v1.1cb5f9085a202341f60daf5a7be16c570ccc0b4bd5908b3afd080f34e9b8935d","appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null}]; 9258 const redirectUrl = appearance.redirectLink; 9259 9260 let locationCacheSet = false; 9261 let errorLocation = false; 9262 let oneTapSet = false; 9263 9264 let bitloginCache = { 9265 appearance: appearance, 9266 config: config 9267 }; 9268 9269 let isInitializing = false; 9270 const queue = []; 9271 9272 // Add CSS for the popup 9273 const popupStyles = document.createElement('style'); 9274 popupStyles.textContent = ` 9275 /* Styles for login popup */ 9276 .bitlogin-popup-overlay { 9277 position: fixed; 9278 top: 0; 9279 left: 0; 9280 width: 100%; 9281 height: 100%; 9282 background: rgba(0, 0, 0, 0.45); 9283 backdrop-filter: blur(4px); 9284 display: flex; 9285 align-items: center; 9286 justify-content: center; 9287 opacity: 0; 9288 transition: opacity 0.3s ease-in-out; 9289 z-index: 999999; 9290 } 9291 9292 .bitlogin-popup-overlay.visible { 9293 opacity: 1; 9294 } 9295 9296 .bitlogin-popup { 9297 background: #FFFFFF; 9298 box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); 9299 border-radius: 16px; 9300 width: 100%; 9301 max-width: 560px; 9302 display: flex; 9303 overflow: hidden; 9304 position: relative; 9305 opacity: 0; 9306 transform: translateY(20px) scale(0.98); 9307 transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1); 9308 } 9309 9310 .bitlogin-popup.visible { 9311 opacity: 1; 9312 transform: translateY(0) scale(1); 9313 } 9314 9315 .bitlogin-popup-with-image { 9316 max-width: 640px; 9317 } 9318 9319 .bitlogin-popup-right-image { 9320 flex-direction: row-reverse; 9321 } 9322 9323 .bitlogin-popup-image { 9324 object-fit: cover; 9325 width: 50%; 9326 height: auto; 9327 } 9328 9329 .bitlogin-popup-content { 9330 padding: 32px; 9331 position: relative; 9332 width: 50%; 9333 } 9334 9335 .bitlogin-popup-close { 9336 position: absolute; 9337 top: 16px; 9338 right: 16px; 9339 background: white; 9340 border: none; 9341 width: 30px; 9342 height: 30px; 9343 display: flex; 9344 align-items: center; 9345 justify-content: center; 9346 cursor: pointer; 9347 transition: background-color 0.2s; 9348 color: inherit; 9349 padding: 0; 9350 } 9351 9352 .bitlogin-popup-close:hover { 9353 background-color: #e5e5e5; 9354 } 9355 9356 .bitlogin-popup-buttons { 9357 display: flex; 9358 flex-direction: column; 9359 gap: 12px; 9360 margin-top: 24px; 9361 } 9362 9363 /* Button styles within popup - override width for popup buttons */ 9364 .bitlogin-popup-buttons #google-login, 9365 .bitlogin-popup-buttons #facebook-login, 9366 .bitlogin-popup-buttons #apple-login, 9367 .bitlogin-popup-buttons #whatsapp-login, 9368 .bitlogin-popup-buttons #microsoft-login, 9369 .bitlogin-popup-buttons #twitter-login, 9370 .bitlogin-popup-buttons #amazon-login, 9371 .bitlogin-popup-buttons #instagram-login, 9372 .bitlogin-popup-buttons #magic-link-login, 9373 .bitlogin-popup-buttons #mobile-app-login { 9374 width: 100% !important; 9375 font-family: inherit !important; 9376 } 9377 9378 .bitlogin-popup-footer { 9379 margin-top: 32px; 9380 text-align: center; 9381 font-size: 14px; 9382 opacity: 0.6; 9383 } 9384 9385 /* Modern Typography */ 9386 .bitlogin-popup h2 { 9387 margin-top: 12px; 9388 font-size: 21px !important; 9389 line-height: 1.2 !important; 9390 font-weight: 700 !important; 9391 letter-spacing: -0.02em !important; 9392 margin-bottom: 16px !important; 9393 } 9394 9395 .bitlogin-popup-header { 9396 position: relative; 9397 margin-bottom: 24px; 9398 } 9399 9400 /* Modern gradient accent */ 9401 .bitlogin-popup-content > div { 9402 font-size: 16px !important; 9403 line-height: 1.2 !important; 9404 opacity: 0.85 !important; 9405 } 9406 9407 /* Enhanced button interactions */ 9408 .bitlogin-popup-buttons button { 9409 position: relative; 9410 overflow: hidden; 9411 } 9412 9413 @keyframes ripple { 9414 0% { 9415 transform: scale(0, 0); 9416 opacity: 0.5; 9417 } 9418 100% { 9419 transform: scale(100, 100); 9420 opacity: 0; 9421 } 9422 } 9423 9424 /* Responsive adjustments */ 9425 @media (max-width: 640px) { 9426 .bitlogin-popup { 9427 max-width: 90%; 9428 width: 90%; 9429 margin: 0 16px; 9430 } 9431 9432 .bitlogin-popup-with-image { 9433 flex-direction: column !important; 9434 } 9435 9436 .bitlogin-popup-image { 9437 width: 100%; 9438 height: 180px; 9439 } 9440 9441 .bitlogin-popup-content { 9442 padding: 24px; 9443 } 9444 9445 .bitlogin-popup h2 { 9446 font-size: 24px !important; 9447 } 9448 } 9449 `; 9450
9451 document.head.appendChild(popupStyles); 9452 9453 // Add fonts link for different font options 9454 const fontsLink = document.createElement('link'); 9455 fontsLink.rel = 'stylesheet'; 9456 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'; 9457 document.head.appendChild(fontsLink); 9458 9459 (async () => { 9460 try { 9461 let host = window.location.host; 9462 if (host === "admin.shopify.com") { 9463 host = `${window.location.pathname.split("/")[2]}.myshopify.com`; 9464 } 9465 9466 const urlSearchParams = new URLSearchParams(window.location.search); 9467 const checkoutUrl = urlSearchParams.get("checkout_url"); 9468 9469 async function init({ inputRef, index }) { 9470 if (isInitializing) { 9471 queue.push(() => init({ inputRef, index })); 9472 return; 9473 } 9474 9475 isInitializing = true; 9476 9477 try { 9478 let bitLoginSectionRoot = document.querySelector( 9479 `.bitlogin-root[data-index="${index}"]` 9480 ); 9481 9482 const formRef = inputRef?.closest( 9483 "form:not([action='/account/recover'])" 9484 ); 9485 9486 if (formRef && !bitLoginSectionRoot) { 9487 await getLocation(); 9488 9489 bitLoginSectionRoot = document.createElement(`div`); 9490 9491 bitLoginSectionRoot.setAttribute("class", "bitlogin-root"); 9492 bitLoginSectionRoot.setAttribute("data-index", `${index}`); 9493 9494 updateAppearance({ 9495 formRef, 9496 rootRef: bitLoginSectionRoot, 9497 host, 9498 }); 9499 } 9500 } catch (err) { 9501 console.error(`error while initiating bitlogin extensions`, err); 9502 } finally { 9503 // Release the lock 9504 isInitializing = false; 9505 9506 // Check if there are pending items in the queue 9507 if (queue.length > 0) { 9508 // Process the next function in the queue 9509 const nextFunction = queue.shift(); 9510 nextFunction(); 9511 } 9512 } 9513 } 9514 9515 function initAll() { 9516 return new Promise((resolve, reject) => { 9517 setTimeout(async () => { 9518 const inputRefs = document.querySelectorAll( 9519 'input[name="customer[email]"]' 9520 ); 9521 9522 for (let i = 0; i < inputRefs.length; i++) { 9523 const currentInputRef = inputRefs[i]; 9524 const isVisible = isElementVisible(currentInputRef); 9525 9526 if (isVisible) { 9527 await init({ inputRef: currentInputRef, index: i }); 9528 } 9529 } 9530 9531 resolve("ok"); 9532 }, 100); 9533 }); 9534 } 9535 9536 const observer = new MutationObserver((mutationsList) => { 9537 for (let mutation of mutationsList) { 9538 initAll(); 9539 } 9540 }); 9541 9542 observer.observe(document.body, { 9543 childList: true, 9544 subtree: true, 9545 attributes: true, 9546 }); 9547 9548 initAll(); 9549 9550 if (appearance.googleOneTap) { 9551 setupOneTap({ host, checkoutUrl }); 9552 } 9553 9554 // Initialize popup 9555 await initPopup(host); 9556 } catch (error) { 9557 console.error("Error initializing BitLogin:", error); 9558 } 9559 })(); 9560 9561 async function initPopup(host) { 9562 // Check if user is already logged in using Liquid checks properly 9563 const isLoggedIn = false || 9564 document.querySelector('.customer-logout-link') || 9565 document.querySelector('.account-link') || 9566 window.location.pathname.includes('/account'); 9567 9568 if (isLoggedIn) { 9569 return; // User is logged in, don't show popup 9570 } 9571 9572 try { 9573 // Fetch the popup configuration 9574 const popupConfig = await fetch(`${apiUrl}/appearance/popup/domain/${host}`) 9575 .then(res => res.json()) 9576 .catch(err => { 9577 console.error('Error fetching popup configuration:', err); 9578 return null; 9579 }); 9580 9581 if (!popupConfig || !popupConfig.enabled) { 9582 return;
9582 // Don't show popup if disabled or config not found 9583 } 9584 9585 // Create popup after 10 seconds 9586 setTimeout(() => { 9587 // Check if user is still on the page and still not logged in 9588 if (document.visibilityState === 'visible') { 9589 // Additional check in case user logged in during the 10 second wait 9590 const currentlyLoggedIn = false || 9591 document.querySelector('.customer-logout-link') || 9592 document.querySelector('.account-link'); 9593 9594 if (!currentlyLoggedIn) { 9595 createLoginPopup(popupConfig, host); 9596 } 9597 } 9598 }, 10000); 9599 } catch (error) { 9600 console.error('Error initializing popup:', error); 9601 } 9602 } 9603 9604 function createLoginPopup(popupConfig, host) { 9605 // Font mapping 9606 const fontFamilyMap = { 9607 system_fonts: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif', 9608 montserrat: 'Montserrat, sans-serif', 9609 roboto: 'Roboto, sans-serif', 9610 open_sans: 'Open Sans, sans-serif', 9611 noto_sans: 'Noto Sans, sans-serif', 9612 lato: 'Lato, sans-serif', 9613 poppins: 'Poppins, sans-serif', 9614 quicksand: 'Quicksand, sans-serif', 9615 raleway: 'Raleway, sans-serif', 9616 pt_sans: 'PT Sans, sans-serif', 9617 oswald: 'Oswald, sans-serif', 9618 }; 9619 9620 // Create overlay 9621 const overlay = document.createElement('div'); 9622 overlay.className = 'bitlogin-popup-overlay'; 9623 9624 // Create popup container with appropriate styling 9625 const popup = document.createElement('div'); 9626 popup.className = 'bitlogin-popup'; 9627 9628 if (popupConfig.layout === 'default') { 9629 popup.style.maxWidth = '400px'; 9630 } 9631 9632 // Function to close the popup 9633 const closePopup = () => { 9634 overlay.classList.remove('visible'); 9635 popup.classList.remove('visible'); 9636 setTimeout(() => { 9637 if (document.body.contains(overlay)) { 9638 document.body.removeChild(overlay); 9639 } 9640 }, 300); 9641 }; 9642 9643 // Add click handler to the overlay to close when clicking outside 9644 overlay.addEventListener('click', (event) => { 9645 // Close only if clicking directly on the overlay, not its children 9646 if (event.target === overlay) { 9647 closePopup(); 9648 } 9649 }); 9650 9651 // Add escape key handler to close popup 9652 document.addEventListener('keydown', (event) => { 9653 if (event.key === 'Escape' && document.body.contains(overlay)) { 9654 closePopup(); 9655 } 9656 }); 9657 9658 // Create layout with image if specified 9659 let contentWrapper; 9660 if (popupConfig.layout !== 'default' && popupConfig.popupImage) { 9661 popup.classList.add('bitlogin-popup-with-image'); 9662 9663 if (popupConfig.layout === 'right') { 9664 popup.classList.add('bitlogin-popup-right-image'); 9665 } 9666 9667 // Add image 9668 const image = document.createElement('img'); 9669 image.className = 'bitlogin-popup-image'; 9670 image.src = popupConfig.popupImage; 9671 image.alt = 'Login'; 9672 image.loading = 'lazy'; 9673 popup.appendChild(image); 9674 9675 // Create content container 9676 contentWrapper = document.createElement('div'); 9677 contentWrapper.className = 'bitlogin-popup-content'; 9678 9679 if (popupConfig.layout === 'right') { 9680 const closeButton = document.createElement('button'); 9681 closeButton.className = 'bitlogin-popup-close'; 9682 closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif"> 9683 <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 9684 </svg>`; 9685 closeButton.setAttribute('aria-label', 'Close'); 9686 closeButton.onclick = closePopup; 9687 9688 popup.appendChild(closeButton); 9689 } 9690 } else { 9691 contentWrapper = document.createElement('div'); 9692 contentWrapper.className = 'bitlogin-popup-content'; 9693 contentWrapper.style.width = '100%'; 9694 } 9695 9696 // Set background style 9697 if (popupConfig.backgroundTheme === 'gradient') { 9698 contentWrapper.style.background = `linear-gradient(135deg, ${popupConfig.backgroundPopupColor}, ${popupConfig.gradientColor})`; 9699 } else { 9700 contentWrapper.style.backgroundColor = popupConfig.backgroundPopupColor; 9701 } 9702 9703 // Apply font family 9704 contentWrapper.style.setProperty('font-family', fontFamilyMap[popupConfig.font] || fontFamilyMap.system_fonts, 'important'); 9705 9706 if (popupConfig.layout !== 'right') { 9707 const closeButton = document.createElement('button'); 9708 closeButton.className = 'bitlogin-popup-close'; 9709 closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="https://img
9709saya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif"> 9710 <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 9711 </svg>`; 9712 closeButton.setAttribute('aria-label', 'Close'); 9713 closeButton.onclick = closePopup; 9714 9715 contentWrapper.appendChild(closeButton); 9716 } 9717 9718 // Add heading with subtle animation effect 9719 const header = document.createElement('div'); 9720 header.className = 'bitlogin-popup-header'; 9721 9722 const heading = document.createElement('h2'); 9723 heading.textContent = popupConfig.headingText || 'Sign in for exclusive benefits'; 9724 heading.style.color = popupConfig.fontColor; 9725 header.appendChild(heading); 9726 9727 // Add body text with improved formatting 9728 const bodyText = document.createElement('div'); 9729 bodyText.innerHTML = popupConfig.bodyText || 'Join our community to access exclusive offers and a personalized shopping experience.'; 9730 bodyText.style.color = popupConfig.fontColor; 9731 header.appendChild(bodyText); 9732 9733 contentWrapper.appendChild(header); 9734 9735 // Create buttons container with modern styling 9736 const buttonsContainer = document.createElement('div'); 9737 buttonsContainer.className = 'bitlogin-popup-buttons'; 9738 9739 // Add social buttons 9740 const providerLabels = { 9741 'GOOGLE': 'Continue with Google', 9742 'FACEBOOK': 'Continue with Facebook', 9743 'APPLE': 'Continue with Apple', 9744 'WHATSAPP': 'Continue with WhatsApp', 9745 'MAGIC_LINK': 'Continue with Email', 9746 }; 9747 9748 // Add first login provider button 9749 if (popupConfig.loginProvider1 !== 'NONE') { 9750 const buttonConfig = { 9751 theme: popupConfig.colorScheme || 'match', 9752 customColor: popupConfig.textColor, 9753 format: 'contentFlex', 9754 buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider1.toLowerCase()], 9755 hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true, 9756 style: popupConfig.style || 'rounded', 9757 size: popupConfig.size || 'medium', 9758 colorScheme: popupConfig.colorScheme || 'match', 9759 backgroundColor: popupConfig.backgroundColor || '#3B82F6', 9760 textColor: popupConfig.textColor || '#FFFFFF', 9761 outlineColor: popupConfig.outlineColor || '#3B82F6', 9762 host: host 9763 }; 9764 9765 const button1 = createSocialLoginButton(popupConfig.loginProvider1, buttonConfig); 9766 9767 // Handle click event - this overrides the default click handler in createSocialLoginButton 9768 button1.onclick = () => { 9769 onClickSocialLogin({ provider: popupConfig.loginProvider1.toLowerCase(), host }); 9770 closePopup(); 9771 }; 9772 9773 buttonsContainer.appendChild(button1); 9774 } 9775 9776 // Add second login provider button if enabled 9777 if (popupConfig.loginProvider2 !== 'NONE') { 9778 const buttonConfig = { 9779 theme: popupConfig.colorScheme || 'match', 9780 customColor: popupConfig.textColor, 9781 format: 'contentFlex', 9782 buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider2.toLowerCase()], 9783 hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true, 9784 style: popupConfig.style || 'rounded', 9785 size: popupConfig.size || 'medium', 9786 colorScheme: popupConfig.colorScheme || 'match', 9787 backgroundColor: popupConfig.backgroundColor || '#3B82F6', 9788 textColor: popupConfig.textColor || '#FFFFFF', 9789 outlineColor: popupConfig.outlineColor || '#3B82F6', 9790 host: host 9791 }; 9792 9793 const button2 = createSocialLoginButton(popupConfig.loginProvider2, buttonConfig); 9794 9795 // Handle click event - this overrides the default click handler in createSocialLoginButton 9796 button2.onclick = () => { 9797 onClickSocialLogin({ provider: popupConfig.loginProvider2.toLowerCase(), host }); 9798 closePopup(); 9799 }; 9800 9801 buttonsContainer.appendChild(button2); 9802 } 9803 9804 contentWrapper.appendChild(buttonsContainer); 9805 9806 // Append content to popup 9807 popup.appendChild(contentWrapper); 9808 9809 // Append popup to overlay 9810 overlay.appendChild(popup); 9811 9812 // Append overlay to body 9813 document.body.appendChild(overlay); 9814 9815 // Trigger animation with slight delay for better perceived performance 9816 setTimeout(() => { 9817 overlay.classList.add('visible'); 9818 setTimeout(() => { 9819 popup.classList.add('visible'); 9820 }, 50); 9821 }, 10); 9822 } 9823 9824 window.addEventListener("load", () => { 9825 window.addEventListener("message", (event) => { 9826 const receivedData = event.data; 9827 9828 if (receivedData.type === "authorize") { 9829 post( 9830 JSON.parse( 9831 JSON.stringify({ 9832 "customer[email]": receivedData.email, 9833 "customer[password]": receivedData.password, 9834 form_type: "customer_login", 9835 utf8: "â", 9836 return_url: redirectUrl, 9837 }) 9838 ) 9839 ); 9840 } else if (receivedData.type === "rejected") { 9841 if (receivedData.reason === "customer_account_disabled") { 9842 showAlert( 9843 "Your account needs to be activated. We've sent you an activation link - please check your email to complete this step." 9844 ); 9845 } else if (receivedData.reason === "customer_entry_created_email_not_set") { 9846 showAlert( 9847 "A new account was created but requires an email address. Please update your account with a valid email address to continue." 9848 ); 9849 } else if (receivedData.reason === "customer_exist_email_not_set") { 9850 showAlert( 9851 "Your existing account is missing an email address. Please contact support to update your account with a valid email address." 9852 ); 9853 } 9854 } 9855 9856 if (receivedData.type === "customer_authenticated") { 9857 // Dispatch a custom event that merchants can listen for to implement their custom logic 9858 const customerAuthEvent = new CustomEvent('bitlogin:customer_authenticated', { 9859 detail: { 9860 provider: receivedData.provider, 9861 customer: receivedData.customer, 9862 shopifyCustomerCreated: receivedData.shopifyCustomerCreated 9863 } 9864 }); 9865 9866 // Dispatch the event on the window object so merchants can listen for it 9867 window.dispatchEvent(customerAuthEvent); 9868 9869 } 9870 }); 9871 }); 9872 9873 // Reusable functions for social login buttons 9874 function createSocialLoginButton(provider, config = {}) { 9875 const { 9876 theme = 'match', 9877 customColor = null, 9878 format = 'contentFlex', 9879 buttonText = null, 9880 hasShadow = true, 9881 style = 'rounded', 9882 size = 'medium', 9883 colorScheme = 'match', 9884 backgroundColor = '#3B82F6', 9885 textColor = '#FFFFFF', 9886 outlineColor = '#3B82F6', 9887 rootRef = null, 9888 host = null 9889 } = config; 9890 9891 // Create button element with appropriate ID and attributes 9892 const button = document.createElement('button'); 9893 button.id = `${provider.toLowerCase()}-login`; 9894 button.type = 'button'; 9895 9896 // Set the inner SVG based on provider 9897 switch (provider.toUpperCase()) {
9898 case 'GOOGLE': 9899 button.innerHTML = googleLoginIcon(theme, customColor); 9900 break; 9901 case 'FACEBOOK': 9902 button.innerHTML = facebookLoginIcon(theme, customColor); 9903 break; 9904 case 'APPLE': 9905 button.innerHTML = appleLoginIcon(theme, customColor); 9906 break; 9907 case 'WHATSAPP': 9908 button.innerHTML = whatsappLoginIcon(theme, customColor); 9909 break; 9910 case 'MICROSOFT': 9911 button.innerHTML = microsoftLoginIcon(theme, customColor); 9912 break; 9913 case 'TWITTER': 9914 button.innerHTML = twitterLoginIcon(theme, customColor); 9915 break; 9916 case 'AMAZON': 9917 button.innerHTML = amazonLoginIcon(theme, customColor); 9918 break; 9919 case 'INSTAGRAM': 9920 button.innerHTML = instagramLoginIcon(theme, customColor); 9921 break; 9922 case 'MAGIC_LINK': 9923 button.innerHTML = magicLinkLoginIcon(theme, customColor); 9924 break; 9925 case 'MOBILE_APP': 9926 button.innerHTML = mobileAppLoginIcon(theme, customColor); 9927 break; 9928 case 'LINKEDIN': 9929 button.innerHTML = linkedinLoginIcon(theme, customColor); 9930 break; 9931 } 9932 9933 // Add text if format isn't icon-only and buttonText is provided 9934 if (format !== "wrapperFlexContainerOnlyLogo" && buttonText) { 9935 button.innerHTML += `<p>${buttonText}</p>`; 9936 } 9937 9938 // Apply styling 9939 // Shadow 9940 if (hasShadow) { 9941 const shadowProperties = `0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)`; 9942 button.style["box-shadow"] = shadowProperties; 9943 } 9944 9945 // Border radius 9946 const radiusProperties = 9947 style === "rounded" 9948 ? "8px" 9949 : style === "square" 9950 ? "0px" 9951 : style === "fullRounded" 9952 ? format === "wrapperFlexContainerOnlyLogo" 9953 ? "50%" 9954 : "50px" 9955 : undefined; 9956 button.style["border-radius"] = radiusProperties; 9957 9958 // Size 9959 const sizeProperties = 9960 size === "medium" 9961 ? "12px" 9962 : size === "small" 9963 ? "8px" 9964 : size === "large" 9965 ? "16px" 9966 : "8px"; 9967 9968 button.style["padding-block"] = sizeProperties; 9969 9970 // Format styling 9971 if (format) { 9972 if ( 9973 format === "contentFlexReverse" || 9974 format === "contentFlexCenterReverse" 9975 ) { 9976 const flexDir = `row-reverse`; 9977 button.style["flex-direction"] = flexDir; 9978 } 9979 9980 if ( 9981 format === "contentFlexCenter" || 9982 format === "contentFlexCenterReverse" 9983 ) { 9984 const justifyContent = `center`; 9985 button.style["justify-content"] = justifyContent; 9986 } else if ( 9987 format === "contentFlex" || 9988 format === "contentFlexReverse" 9989 ) { 9990 const buttonTextElement = button.querySelector("p"); 9991 if (buttonTextElement) { 9992 buttonTextElement.style["flex-grow"] = 1; 9993 buttonTextElement.style["text-align"] = "center"; 9994 } 9995 } 9996 9997 if (format === "wrapperFlexContainerOnlyLogo" && rootRef) { 9998 rootRef.style["flex-direction"] = "row"; 9999 rootRef.style["gap"] = "8px"; 10000 rootRef.style["display"] = "flex"; 10001 rootRef.style["flex-wrap"] = "wrap"; 10002 10003 const sizeMapping = { 10004 small: "52px", 10005 medium: "62px", 10006 large: "72px", 10007 }; 10008 const buttonSize = sizeMapping[size] || "52px"; 10009 10010 button.style["margin"] = 0; 10011 button.style["width"] = buttonSize; 10012 button.style["height"] = buttonSize; 10013 button.style["display"] = "flex"; 10014 button.style["align-items"] = "center"; 10015 button.style["justify-content"] = "center"; 10016 10017 const svgElement = button.querySelector("svg"); 10018 if (svgElement) { 10019 svgElement.style["flex"] = "none"; 10020 } 10021 } 10022 } 10023 10024 // Color scheme styling 10025 if (colorScheme === "black") { 10026 button.classList.add("scheme-black"); 10027 } else if (colorScheme === "white") { 10028 button.classList.add("scheme-white"); 10029 } else if (colorScheme === "custom") { 10030 button.style["background-color"] = backgroundColor; 10031 button.style["color"] = textColor; 10032 button.style["border-color"] = outlineColor; 10033 10034 const darkenColor = (color, percentage) => { 10035 const value = parseInt(color.slice(1), 16); 10036 const r = Math.max(0, ((value >> 16) & 0xff) - (0xff * percentage)); 10037 const g = Math.max(0, ((value >> 8) & 0xff) - (0xff * percentage)); 10038 const b = Math.max(0, (value & 0xff) - (0xff * percentage)); 10039 return `rgb(${Math.round(r)}, ${Math.round(g)}, ${Math.round(b)})`; 10040 }; 10041 10042 button.addEventListener("mouseover", () => {
10043 button.style["background-color"] = darkenColor(backgroundColor, 0.2); 10044 }); 10045 button.addEventListener("mouseout", () => { 10046 button.style["background-color"] = backgroundColor; 10047 }); 10048 } else if (colorScheme === "match") { 10049 button.classList.add("scheme-match"); 10050 } else if (colorScheme === "matchOutline") { 10051 button.classList.add("scheme-match-outline"); 10052 } 10053 10054 // Add click event listener if host is provided 10055 if (host) { 10056 button.addEventListener("click", () => 10057 onClickSocialLogin({ provider: provider.toLowerCase(), host }) 10058 ); 10059 } 10060 10061 return button; 10062 } 10063 10064 function setupSocialLoginButtons(config, rootRef, data, host) { 10065 // Clear any existing content 10066 rootRef.innerHTML = ''; 10067 10068 const sortedEnabledProviders = config 10069 .filter(c => c.enabledWeb) 10070 .sort((a, b) => a.position - b.position); 10071 10072 sortedEnabledProviders.forEach(provider => { 10073 const key = provider.provider; 10074 const lowerKey = key.toLowerCase(); 10075 10076 const buttonText = data.format !== "wrapperFlexContainerOnlyLogo" 10077 ? (lowerKey === 'twitter' 10078 ? data.buttonList.twitter.replace('Twitter', 'X') 10079 : data.buttonList[lowerKey]) 10080 : null; 10081 10082 const button = createSocialLoginButton(key, { 10083 theme: data.colorScheme || 'match', 10084 customColor: data.textColor, 10085 format: data.format, 10086 buttonText: buttonText, 10087 hasShadow: data.hasShadow !== undefined ? data.hasShadow : true, 10088 style: data.style, 10089 size: data.size, 10090 colorScheme: data.colorScheme, 10091 backgroundColor: data.backgroundColor, 10092 textColor: data.textColor, 10093 outlineColor: data.outlineColor, 10094 rootRef: rootRef, 10095 host: host 10096 }); 10097 10098 rootRef.appendChild(button); 10099 }); 10100 10101 return rootRef; 10102 } 10103 10104 function updateAppearance({ formRef, rootRef, host }) { 10105 if (!formRef) return; 10106 10107 const data = bitloginCache.appearance || { 10108 style: "square", 10109 hasShadow: false, 10110 colorScheme: "match", 10111 backgroundColor: "#FFFFFF", 10112 outlineColor: "#000000", 10113 textColor: "#000000", 10114 position: "bottom", 10115 hideDivider: "false", 10116 dividerText: "OR", 10117 size: "small", 10118 format: "contentFlex", 10119 language: "en", 10120 buttonText: "Continue with", 10121 redirectLink: "/account", 10122 googleOneTap: true, 10123 googleOneTapBanner: true, 10124 customerTag: "bitLogin", 10125 redirectOneTapDesktop: null, 10126 redirectOneTapMobile: null, 10127 buttonList: { 10128 google: "Continue with Google", 10129 facebook: "Continue with Facebook", 10130 apple: "Continue with Apple", 10131 whatsapp: "Continue with WhatsApp", 10132 microsoft: "Continue with Microsoft", 10133 twitter: "Continue with X", 10134 amazon: "Continue with Amazon", 10135 instagram: "Continue with Instagram", 10136 magic_link: "Continue with Magic Link", 10137 mobile_app: "Continue with Mobile App", 10138 linkedin: "Continue with LinkedIn", 10139 }, 10140 }; 10141 10142 // Use the new setupSocialLoginButtons function to create and configure all buttons 10143 setupSocialLoginButtons(bitloginCache.config, rootRef, data, host); 10144 10145 let divider; 10146 10147 if (!data.hideDivider) { 10148 divider = document.createElement("div"); 10149 const dividerStyle = "text-align:center;margin-block:16px"; 10150 divider.setAttribute("style", dividerStyle); 10151 divider.innerHTML = data.dividerText; 10152 } 10153 10154 if (data.position === "bottom") { 10155 if (divider) { 10156 formRef.appendChild(divider); 10157 } 10158 formRef.appendChild(rootRef); 10159 } else if (data.position === "top") { 10160 if (divider) { 10161 formRef.prepend(divider); 10162 } 10163 formRef.prepend(rootRef); 10164 } 10165 } 10166 10167 10168 async function onClickSocialLogin({ provider, host }) { 10169 const rand = Math.random().toString(); 10170 10171 const locationQueryString = bitloginCache.location 10172 ? `&${objectToQueryString(bitloginCache.location)}` 10173 : ""; 10174 10175 const width = 800; 10176 const height = 600; 10177 const left = (window.screen.width / 2) - (width / 2); 10178 const top = (window.screen.height / 2) - (height / 2) - 50; 10179 10180 if(provider === 'whatsapp') { 10181 window.open( 10182 `/apps/bitlogin/whatsapp${locationQueryString ? `?${locationQueryString}` : ''}`, 10183 "mywindow", 10184 `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}` 10185 ); 10186 } else { 10187 window.open( 10188 `${apiUrl}/login/${provider}?referrerId=${rand}&shop=${host}${locationQueryString}`, 10189 "mywindow", 10190 `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}` 10191 ); 10192 } 10193 } 10194 10195 function objectToQueryString(obj) { 10196 return Object.keys(obj) 10197 .map((key) => { 10198 return encodeURIComponent(key) + "=" + encodeURIComponent(obj[key]); 10199 }) 10200 .join("&"); 10201 } 10202 10203 async function getLocation() { 10204 if (locationCacheSet) return; 10205 10206 try { 10207 const response = await fetch("https://ipapi.co/json/"); 10208 10209 if (!response.ok) { 10210 console.error(`error retrieving location...`, response.status); 10211 errorLocation = true; 10212 } else { 10213 const data = await response.json(); 10214 10215 const { city, region, country_name, country_code } = data; 10216 10217 const formattedLocationData = { 10218 city, 10219 region, 10220 country_name, 10221 country_code, 10222 }; 10223 10224 bitloginCache.location = formattedLocationData; 10225 locationCacheSet = true; 10226 errorLocation = false;
10227 } 10228 } catch (err) { 10229 console.error(`error fetching location`, err); 10230 errorLocation = true; 10231 } 10232 } 10233 10234 function post(params) { 10235 // The rest of this code assumes you are not using a library. 10236 // It can be made less verbose if you use one. 10237 const form = document.createElement("form"); 10238 form.method = "post"; 10239 form.action = `/account/login`; 10240 form.acceptCharset = "UTF-8"; 10241 form.setAttribute("data-login-with-shop-sign-in", "true"); 10242 form.setAttribute("novalidate", "novalidate"); 10243 10244 for (const key in params) { 10245 if (params.hasOwnProperty(key)) { 10246 const hiddenField = document.createElement("input"); 10247 hiddenField.type = "hidden"; 10248 hiddenField.name = key; 10249 hiddenField.value = params[key]; 10250 10251 form.appendChild(hiddenField); 10252 } 10253 } 10254 10255 document.body.appendChild(form); 10256 form.submit(); 10257 } 10258 10259 async function setupOneTap({ host, checkoutUrl }) { 10260 if (oneTapSet) return; 10261 10262 const redirectOneTapDesktop = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapDesktop || '[]')); 10263 const redirectOneTapMobile = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapMobile || '[]')); 10264 10265 const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent); 10266 const redirectList = JSON.parse(isMobile ? redirectOneTapMobile : redirectOneTapDesktop); 10267 10268 const currentPath = window.location.pathname.toLowerCase(); 10269 const currentUrl = window.location.href.toLowerCase(); 10270 10271 const shouldHideGoogleOneTap = redirectList.some(({ value }) => { 10272 switch (value) { 10273 case 'home': 10274 return currentPath === '/'; 10275 case 'product': 10276 return currentPath.startsWith('/products/'); 10277 case 'collections': 10278 return currentPath.startsWith('/collections'); 10279 case 'cart': 10280 return currentPath === '/cart'; 10281 case 'checkout': 10282 return currentPath.startsWith('/checkouts') && !currentPath.includes('thank_you'); 10283 case 'thank_you': 10284 return currentPath.includes('/thank_you'); 10285 case 'account': 10286 return currentPath.startsWith('/account'); 10287 case 'pages': 10288 return currentPath.startsWith('/pages'); 10289 case 'blogs': 10290 return currentPath === '/blogs' || currentPath === '/blogs/news'; 10291 case 'blog_post': 10292 return currentPath.startsWith('/blogs/') && currentPath.split('/').length > 3; 10293 default: 10294 return false; 10295 } 10296 }); 10297 10298 if (shouldHideGoogleOneTap) return; 10299 10300 const oneTapClientId = bitloginCache.config.find( 10301 (config) => config.provider === "GOOGLE" 10302 )?.clientId; 10303 10304 const isLoggedIn = false; 10305 10306 if (bitloginCache.appearance.googleOneTap && oneTapClientId && !isLoggedIn) { 10307 const googleOneTapButton = document.createElement("div"); 10308 googleOneTapButton.setAttribute("id", "g_id_onload"); 10309 googleOneTapButton.setAttribute("data-client_id", oneTapClientId); 10310 googleOneTapButton.setAttribute("data-context", "signin"); 10311 googleOneTapButton.setAttribute( 10312 "data-callback", 10313 "handleGoogleOneTapResponse" 10314 ); 10315 googleOneTapButton.setAttribute("data-itp_support", "true"); 10316 10317 const googleOneTapScript = document.createElement("script"); 10318 10319 googleOneTapScript.innerHTML += ` 10320 function handleGoogleOneTapResponse(response) { 10321 if (response.credential) { 10322 const idToken = response.credential; 10323 fetch('${bitLoginBaseUrl}/bitlogin/api/login/google-one-tap', { 10324 method: 'POST', 10325 headers: { 'Content-Type': 'application/json' }, 10326 body: JSON.stringify({ idToken, shop: "${host}", ...bitloginCache.location }) 10327 }).then(response => { 10328 response.json().then((data) => { 10329 post( 10330 JSON.parse( 10331 JSON.stringify({ 10332 "customer[email]": data.email, 10333 "customer[password]": data.password, 10334 form_type: "customer_login", 10335 utf8: "â", 10336 return_url: redirectUrl, 10337 }) 10338 ) 10339 ); 10340 }); 10341 }).catch(error => { 10342 console.error('Error occurred:', error); 10343 }); 10344 } else { 10345 console.error('No credential available'); 10346 } 10347 } 10348 `; 10349 10350 document.body.append(googleOneTapButton); 10351 document.body.append(googleOneTapScript); 10352 } 10353 10354 oneTapSet = true; 10355 } 10356 10357 const googleLoginIcon = ( 10358 theme, 10359 customColor 10360 ) => ` 10361 ${ 10362 theme === "match" || theme === "matchOutline" || theme === "custom" 10363 ? `<svg
10364 xmlns='https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif' 10365 xmlns:v='https://vecta.io/nano' 10366 width='24' 10367 height='24' 10368 viewBox='0 0 186.69 190.5' 10369 > 10370 <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="${ 10371 theme === "custom" ? customColor : "#4285f4" 10372 }"/><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="${ 10373 theme === "custom" ? customColor : "#34a853" 10374 }"/><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="${ 10375 theme === "custom" ? customColor : "#fbbc05" 10376 }"/><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="${ 10377 theme === "custom" ? customColor : "#ea4335" 10378 }" clip-path="none" mask="none"/></g> 10379 </svg>` 10380 : `<svg xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="25" height="25" viewBox="0 0 25 25" fill="none"> 10381 <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="${ 10382 theme !== "black" ? "black" : "white" 10383 }"/> 10384 <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="${ 10385 theme !== "black" ? "black" : "white" 10386 }"/> 10387 <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="${ 10388 theme !== "black" ? "black" : "white" 10389 }"/> 10390 <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="${ 10391 theme !== "black" ? "black" : "white" 10392 }"/> 10393 </svg>` 10394 }`; 10395 10396 const appleLoginIcon = ( 10397 theme, 10398 customColor 10399 ) => `<svg width="24" height="24" viewBox="0 0 19 24" fill="none" xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif"> 10400 <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="${ 10401 theme === "custom" 10402 ? customColor 10403 : theme === "match" || theme === "black" 10404 ? "white" 10405 : "black" 10406 }"/> 10407 </svg>`; 10408 10409 const facebookLoginIcon = ( 10410 theme, 10411 customColor 10412 ) => ` 10413 ${ 10414 theme === "match" || theme === "matchOutline" || theme === "custom" 10415 ? `<svg xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="24" height="25" viewBox="0 0 24 25" fill="none"> 10416 <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="${ 10417 theme === "custom" ? customColor : theme === "match" ? "white" : "#1977F3" 10418 }"/> 10419 <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="${ 10420 theme === "match" ? "#1778f2" : "transparent" 10421 }"/> 10422 </svg>`
10423 : `<svg xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" width="24" height="25" viewBox="0 0 24 25" fill="none"> 10424 <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="${ 10425 theme === "black" ? "white" : "black" 10426 }"/> 10427 <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="${ 10428 theme === "black" ? "black" : "white" 10429 }"/> 10430 </svg>` 10431 }`; 10432 10433 const whatsappLoginIcon = ( 10434 theme, 10435 customColor 10436 ) => `<svg 10437 viewBox="0 0 24 24" 10438 fill="none" 10439 width="24" 10440 height="25" 10441 xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" 10442 > 10443 <g id="SVGRepo_bgCarrier" stroke-width="0"></g> 10444 <g 10445 id="SVGRepo_tracerCarrier" 10446 stroke-linecap="round" 10447 stroke-linejoin="round" 10448 ></g> 10449 <g id="SVGRepo_iconCarrier"> 10450 <path 10451 fill-rule="evenodd" 10452 clip-rule="evenodd" 10453 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" 10454 fill="${ 10455 theme === "match" || theme === "black" 10456 ? "#ffffff" 10457 : theme === "white" 10458 ? "#000000" 10459 : theme === "matchOutline" 10460 ? "#25d366" 10461 : customColor 10462 }" 10463 ></path> 10464 </g> 10465 </svg>`; 10466 10467 const microsoftLoginIcon = ( 10468 theme, 10469 customColor 10470 ) => `<svg 10471 xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" 10472 width="25" 10473 height="25" 10474 viewBox="0 0 48 48"> 10475 <path fill="${ 10476 theme === "match" || theme == "matchOutline" 10477 ? "#ff5722" 10478 : theme === "black" 10479 ? "#ffffff" 10480 : theme === "white" 10481 ? "#000000" 10482 : customColor 10483 }" d="M6 6H22V22H6z" transform="rotate(-180 14 14)"></path> 10484 <path 10485 fill="${ 10486 theme === "match" || theme == "matchOutline" 10487 ? "#4caf50" 10488 : theme === "black" 10489 ? "#ffffff" 10490 : theme === "white" 10491 ? "#000000" 10492 : customColor 10493 }" 10494 d="M26 6H42V22H26z" 10495 transform="rotate(-180 34 14)"></path> 10496 <path 10497 fill="${ 10498 theme === "match" || theme == "matchOutline" 10499 ? "#ffc107" 10500 : theme === "black" 10501 ? "#ffffff" 10502 : theme === "white" 10503 ? "#000000" 10504 : customColor 10505 }" 10506 d="M26 26H42V42H26z" 10507 transform="rotate(-180 34 34)"></path> 10508 <path fill="${ 10509 theme === "match" || theme == "matchOutline" 10510 ? "#03a9f4" 10511 : theme === "black" 10512 ? "#ffffff" 10513 : theme === "white" 10514 ? "#000000" 10515 : customColor 10516 }" d="M6 26H22V42H6z" transform="rotate(-180 14 34)"></path> 10517 </svg>`; 10518 10519 const twitterLoginIcon = ( 10520 theme, 10521 customColor 10522 ) => `<svg
10523 xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" 10524 width="25" 10525 height="25" 10526 viewBox="0 0 48 48"> 10527 <polygon fill="${ 10528 theme === "match" || theme === "black" 10529 ? "#ffffff" 10530 : theme === "matchOutline" || theme === "white" 10531 ? "#000000" 10532 : customColor 10533 }" points="41,6 9.929,42 6.215,42 37.287,6"></polygon> 10534 <polygon 10535 fill="${ 10536 theme === "match" || theme === "black" 10537 ? "#000000" 10538 : theme === "matchOutline" || theme === "white" 10539 ? "#ffffff" 10540 : customColor 10541 }" 10542 fill-rule="evenodd" 10543 points="31.143,41 7.82,7 16.777,7 40.1,41" 10544 clip-rule="evenodd"></polygon> 10545 <path 10546 fill="${ 10547 theme === "match" || theme === "black" 10548 ? "#ffffff" 10549 : theme === "matchOutline" || theme === "white" 10550 ? "#000000" 10551 : customColor 10552 }" 10553 d="M15.724,9l20.578,30h-4.106L11.618,9H15.724 M17.304,6H5.922l24.694,36h11.382L17.304,6L17.304,6z"></path> 10554 </svg>`; 10555 10556 const amazonLoginIcon = (theme, customColor) => ` 10557 <svg 10558 xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" 10559 x="0px" 10560 y="0px" 10561 width="25" 10562 height="25" 10563 viewBox="0 0 50 50" 10564 > 10565 <path 10566 fill="${ 10567 theme === "black" 10568 ? "#ffffff" 10569 : theme === "matchOutline" 10570 ? "#FF9900" 10571 : theme === "white" || theme === "match" 10572 ? "#000000" 10573 : customColor 10574 }" 10575 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" 10576 ></path> 10577 </svg>`; 10578 10579 const instagramLoginIcon= (theme, customColor) => ` 10580 <svg 10581 width="25" 10582 height="25" 10583 viewBox="0 0 25 24" 10584 fill="none" 10585 xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif"> 10586 <path 10587 fill-rule="evenodd" 10588 clip-rule="evenodd" 10589 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.
1058964321C8.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" 10590 fill="url(#paint0_radial_378_3535)" /> 10591 <path 10592 fill-rule="evenodd" 10593 clip-rule="evenodd" 10594 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" 10595 fill="url(#paint0_radial_378_3535)" /> 10596 <path 10597 fill-rule="evenodd" 10598 clip-rule="evenodd" 10599 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.
1059964321C8.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" 10600 fill="url(#paint0_radial_378_3535)" /> 10601 <path 10602 fill-rule="evenodd" 10603 clip-rule="evenodd" 10604 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" 10605 fill="url(#paint1_radial_378_3535)" /> 10606 <defs> 10607 <radialGradient 10608 id="paint0_radial_378_3535" 10609 cx="0" 10610 cy="0" 10611 r="1" 10612 gradientUnits="userSpaceOnUse" 10613 gradientTransform="translate(17.4 22.7) rotate(-115.776) scale(27.2737 40.5665)"> 10614 <stop offset="0.24392" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF1B90' : customColor}" /> 10615 <stop offset="0.436673" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#F80261' : customColor}" /> 10616 <stop offset="0.688476" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#ED00C0' : customColor}" /> 10617 <stop offset="0.776787" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#C500E9' : customColor}" /> 10618 <stop offset="0.893155" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#7017FF' : customColor}" /> 10619 </radialGradient> 10620 <radialGradient 10621 id="paint1_radial_378_3535" 10622 cx="0" 10623 cy="0" 10624 r="1" 10625 gradientUnits="userSpaceOnUse" 10626 gradientTransform="translate(7.75 19.31) rotate(-57.4396) scale(11.8174 12.2918)"> 10627 <stop stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FFD600' : customColor}" /> 10628 <stop offset="0.484375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF6930' : customColor}" /> 10629 <stop offset="0.734375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" /> 10630 <stop offset="1" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" stop-opacity="0" /> 10631 </radialGradient> 10632 </defs> 10633 </svg>`; 10634 10635 const magicLinkLoginIcon = (theme, customColor) => ` 10636 <svg
10637 xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" 10638 width="25" 10639 height="25" 10640 fill="none" 10641 viewBox="0 0 25 25" 10642 > 10643 <path 10644 fill="${ 10645 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' || theme === 'white' ? '#000000' : customColor 10646 }" 10647 fillRule="evenodd" 10648 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" 10649 clipRule="evenodd" 10650 ></path> 10651 </svg>`; 10652 10653 const mobileAppLoginIcon = (theme, customColor) => ` 10654 <svg 10655 width="20" 10656 height="24" 10657 viewBox="0 0 12 16" 10658 fill="none" 10659 xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" 10660 > 10661 <path 10662 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" 10663 fill=${ 10664 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#FD823E' : theme === 'white' ? '#000000' : customColor 10665 } 10666 /> 10667 </svg> 10668 `; 10669 10670 const linkedinLoginIcon = (theme, customColor) => ` 10671 <svg 10672 xmlns="https://imgsaya3.io/images/2026/04/15/2026-GIF-RJB-PARTICLE.gif" 10673 width="25" 10674 height="24" 10675 viewBox="0 0 25 24" 10676 fill="none" 10677 > 10678 <path 10679 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" 10680 fill=${ 10681 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#0A66C2' : theme === 'white' ? '#000000' : customColor 10682 } 10683 /> 10684 </svg> 10685 `; 10686 10687 function isElementVisible(element) { 10688 return ( 10689 document.body.contains(element) && 10690 getComputedStyle(element).display !== "none" && 10691 getComputedStyle(element).visibility !== "hidden" && 10692 getComputedStyle(element).opacity !== "0" && 10693 !element.hasAttribute("hidden") && 10694 !isAncestorHidden(element) 10695 ); 10696 } 10697 10698 function isAncestorHidden(element) { 10699 let parent = element.parentElement; 10700 while (parent) { 10701 if ( 10702 getComputedStyle(parent).display === "none" || 10703 getComputedStyle(parent).visibility === "hidden" || 10704 getComputedStyle(parent).opacity === "0" || 10705 parent.hasAttribute("hidden") 10706 ) { 10707 return true; 10708 } 10709 parent = parent.parentElement; 10710 } 10711 return false; 10712 } 10713 10714 function showAlert(message) { 10715 const alertBox = document.createElement("div"); 10716 alertBox.textContent = message; 10717 alertBox.style.position = "fixed"; 10718 alertBox.style.top = "20px"; 10719 alertBox.style.right = "-300px"; // Start off-screen 10720 alertBox.style.backgroundColor = "#000000"; // Black background 10721 alertBox.style.color = "#ffffff"; // White text 10722 alertBox.style.padding = "15px"; 10723 alertBox.style.borderRadius = "8px"; 10724 alertBox.style.zIndex = "1000"; 10725 alertBox.style.transition = 10726 "right 0.5s ease-in-out, opacity 0.5s ease-in-out"; // Transition for sliding and fading 10727 alertBox.style.boxShadow = "0 2px 5px rgba(0, 0, 0, 0.2)"; // Optional shadow for depth 10728 10729 document.body.appendChild(alertBox); 10730 10731 // Slide in 10732 requestAnimationFrame(() => { 10733 alertBox.style.right = "20px"; // Move into view 10734 alertBox.style.opacity = "1"; // Ensure opacity is set to 1 10735 }); 10736 10737 // Slide out and remove the alert after a few seconds 10738 setTimeout(() => { 10739 alertBox.style.opacity = "0"; // Fade out 10740 alertBox.style.right = "-300px"; // Move out of view 10741 10742 // Wait for the transition to finish before removing the element 10743 setTimeout(() => { 10744 document.body.removeChild(alertBox); 10745 }, 500); // Match this duration with the exit transition duration 10746 }, 3000); 10747 } 10748 </script>
10748 10749 10750 <style> 10751 .daftarku-fixed-footer { 10752 display: flex; 10753 justify-content: space-around; 10754 position: fixed; 10755 background: linear-gradient(to bottom, #000000 0%, #3d3d3d, #000000 100%); 10756 box-shadow: 0 0 12px #ffd700; 10757 outline: none; 10758 padding: 5px 0; 10759 box-shadow: 0 0 0 0 2px 2px #198f01; 10760 left: 0; 10761 right: 0; 10762 bottom: 0; 10763 z-index: 99; 10764 border-radius: 40px 40px 0px 0px; 10765 border-style:dashed; 10766 10767 } 10768 10769 .daftarku-fixed-footer a { 10770 flex-basis: calc((100% - 15px*6)/ 5); 10771 text-decoration: none; 10772 display: flex; 10773 flex-direction: column; 10774 justify-content: center; 10775 align-items: center; 10776 color: #fff; 10777 max-width: 75px; 10778 font-size: 12px; 10779 font-family: Ubuntu, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; 10780 } 10781 10782 .daftarku-fixed-footer a:hover { 10783 font-weight: bold; 10784 } 10785 10786 .daftarku-fixed-footer .center { 10787 transform: scale(1.5) translateY(-5px); 10788 background: center no-repeat; 10789 background-size: contain; 10790 background-color: inherit; 10791 border-radius: 50%; 10792 } 10793 10794 .daftarku-fixed-footer img { 10795 max-width: 20px; 10796 margin-bottom: 0; 10797 max-height: 20px; 10798 } 10799 </style> 10800 10801 <div class="daftarku-fixed-footer"> 10802 <a href="https://aman-aja-ces.pages.dev/" rel="nofollow noopener" target="_blank"> 10803 <img layout="intrinsic" height="20px" width="20px" src="https://imgstore.io/images/2025/07/30/promo.png" alt="PROMOSI"> 10804 PROMO 10805 </a> 10806 <a href="https://aman-aja-ces.pages.dev/" rel="nofollow noopener" target="_blank"> 10807 <img layout="intrinsic" height="20px" width="20px" src="https://imgstore.io/images/2025/07/30/login.png" alt="LOGIN"> 10808 LOGIN 10809 </a> 10810 <a href="https://aman-aja-ces.pages.dev/" rel="nofollow noopener" target="_blank" class="tada"> 10811 <img layout="intrinsic" height="20px" width="20px" src="https://imgstore.io/images/2025/07/30/daftar.png" alt="DAFTAR"> 10812 DAFTAR 10813 </a> 10814 <a href="https://aman-aja-ces.pages.dev/" rel="nofollow noopener" target="_blank"> 10815 <img layout="intrinsic" height="20px" width="20px" src="https://imgstore.io/images/2025/08/27/icon-whatsapp.png" alt="WHATSAPP"> 10816 WHATSAPP 10817 </a> 10818 <a href="https://aman-aja-ces.pages.dev/" rel="nofollow noopener" target="_blank" 10819 class="js_live_chat_link live-chat-link"> 10820 <img class="live-chat-icon" layout="intrinsic" height="20px" width="20px" src="https://imgstore.io/images/2025/06/17/live-chat.png" alt="Live Chat"> 10821 Live Chat 10822 </a> 10823 </div> 10824 </div> 10825
10825<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon='{"version":"2024.11.0","token":"d1f6ecb0d44247bca15f2f6072300f64","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 10825
10825
10826<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon='{"version":"2024.11.0","token":"d1f6ecb0d44247bca15f2f6072300f64","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 10826
10826
10827<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":"594dbefc921a4d56ab5bbd5f2944be03","r":1,"spa":2}' crossorigin="anonymous"></script>
10827 10828</body> 10829 </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.