1 <!doctype html> 2 <!--Brumm Brumm--> 3 <html class="no-js"> 4 <head> 5 <meta charset="utf-8"> 6 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 7 <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"> 8 <meta name="apple-itunes-app" content="app-id=1576832504"> 9 <link rel="icon" type="image/x-icon" href="https://hokiku.io/images/2026/02/21/icon.png"> 10 <!-- Title and description --> 11 <title>BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian</title> 12 <meta name="description" content="Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari."> 13 <meta content='index, follow' name='robots'> 14 15 <link rel="canonical" href="https://basket168what.com/"> 16 <link rel="amphtml" href="https://login.basket168-hahaaa.shop/"/> 17 <link rel="alternate" hreflang="id-id" href="https://login.basket168-hahaaa.shop/"/> 18 <link rel="alternate" href="https://login.basket168-hahaaa.shop/"/> 19 <link rel="alternate" hreflang="id" href="https://login.basket168-hahaaa.shop/"/> 20 <link rel="alternate" hreflang="en" href="https://login.basket168-hahaaa.shop/"/> 21 <link rel="alternate" hreflang="x-default" href="https://login.basket168-hahaaa.shop/"/> 22 <!-- /snippets/social-meta-tags.liquid --> 23 <meta property="og:type" content="Basket168"> 24 <meta property="og:title" content="BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian"> 25 <meta property="og:image" content="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg"> 26 <meta property="og:image:secure_url" content="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg"> 27 <meta property="og:image" content="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg"> 28 <meta property="og:image:secure_url" content="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg"> 29 <meta property="og:image" content="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg"> 30 <meta property="og:image:secure_url" content="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg"> 31 <meta property="og:description" content="Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari."> 32 <meta property="og:price:amount" content="5,000-,"> 33 <meta property="og:price:currency" content="IDR"> 34 <meta property="og:url" content="https://basket168what.com/"> 35 <meta property="og:site_name" content="BASKET168"> 36 <meta name="twitter:site" content="@BASKET168"> 37 <meta name="twitter:card" content="summary"> 38 <meta name="twitter:title" content="BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian"> 39 <meta name="twitter:description" content="Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari."> 40 <meta name="twitter:image" content="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg"> 41 <meta name="twitter:image:width" content="600"> 42 <meta name="twitter:image:height" content="600"> 43 <link rel="shortcut icon" href="https://hokiku.io/images/2026/02/21/icon.png" type="image/png"> 44 <meta name="theme-color" content="#ffffff"> 45 <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700&family=Poppins&display=swap" rel="stylesheet"> 46 <link href="//outerbloom.com/cdn/shop/t/138/assets/custom-styles.css?v=94643080714485117621752652418" rel="stylesheet" type="text/css" media="all" /> 47 <link rel="stylesheet" href="//outerbloom.com/cdn/shop/t/138/assets/wishlist-styles.css?v=166819525406734116961754385201">
47<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js" defer></script>
47 48
48<script 49 src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js" 50 integrity="sha512-57oZ/vW8ANMjR/KQ6Be9v/+/h6bq9/l3f0Oc7vn6qMqyhvPd1cvKBRWWpzu0QoneImqr2SkmO4MSqU+RpHom3Q==" 51 crossorigin="anonymous" 52 referrerpolicy="no-referrer" 53 defer 54 ></script>
54 55
55<script src="https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js" async="async"></script>
55 56
56<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/select2.min.js" defer></script>
56<!-- Facebook Pixel Code --> 57
57<script>
vendor: 462 bytes, lines 57-66
57 58 !function(f,b,e,v,n,t,s) 59 {if(f.fbq)return;n=f.fbq=function(){n.callMethod? 60 n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 61 if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 62 n.queue=[];t=b.createElement(e);t.async=!0; 63 t.src=v;s=b.getElementsByTagName(e)[0]; 64 s.parentNode.insertBefore(t,s)}(window, document,'script', 65 'https://connect.facebook.net/en_US/fbevents.js'); 66 fbq('init', '
66165971065669324
vendor: 42 bytes, lines 66-68
66'); 67 fbq('track', 'PageView'); 68
68</script>
68 69 <noscript 70 ><img 71 height="1" 72 width="1" 73 style="display:none" 74 src="https://www.facebook.com/tr?id=165971065669324&ev=PageView&noscript=1" 75 ></noscript> 76 <!-- End Facebook Pixel Code --> 77 78 <!-- Google G4 Script - Disabled by developer (William) to prioritize Mobile App tracking --> 79 <!-- 80 Global site tag (gtag.js) - Google Analytics -->
vendor: 75 bytes, lines 80-81
80 81 <script async src="https://www.googletagmanager.com/gtag/js?id=
81G-X26HYP4083
vendor: 23 bytes, lines 81-82
81"></script> 82
82<script> 83
vendor: 170 bytes, lines 83-87
83window.dataLayer = window.dataLayer || []; 84 function gtag(){dataLayer.push(arguments);} 85 gtag('js', new Date()); 86 87 gtag('config', '
87G-X26HYP4083
vendor: 15 bytes, lines 87-88
87'); 88
88</script>
88 89 <!-- Global site tag (gtag.js) - Google Analytics --> 90 91 <div class="button-login-daftar"> 92 <a class="login" href="https://login.basket168-hahaaa.shop/" rel="nofollow noreferrer"> 93 LOGIN 94 </a> 95 <a class="register" href="https://login.basket168-hahaaa.shop/" rel="nofollow noreferrer"> 96 DAFTAR 97 </a> 98 </div> 99 100
100<script src="//cdnjs.cloudflare.com/ajax/libs/vissense/0.9.0/vissense.js" defer></script>
100 101 102 <!-- Bing UET --> 103
103<script> 104 (function(w,d,t,r,u) 105 { 106 var f,n,i; 107 w[u]=w[u]||[],f=function() 108 { 109 var o={ti:"343051754", tm:"shpfy_ui", enableAutoSpaTracking: true}; 110 o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad") 111 }, 112 n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function() 113 { 114 var s=this.readyState; 115 s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null) 116 }, 117 i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i) 118 }) 119 (window,document,"script","//bat.bing.com/bat.js","uetq"); 120 </script>
120 121
121<script> 122 window.uetq = window.uetq || []; 123 window.uetq.push('event', '', {"revenue_value":0,"currency":"IDR"}); 124 </script>
124 125 <!-- End Bing UET --> 126 127 <!-- Microsoft Clarity --> 128
128<script type="text/javascript"> 129 (function(c,l,a,r,i,t,y){ 130 c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; 131 t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i; 132 y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); 133 })(window, document, "clarity", "script", "h7rbxqry9k"); 134 </script>
134 135 <!-- End Microsoft Clarity --> 136 137 138 <link href="//outerbloom.com/cdn/shop/t/138/assets/combine.min.css?v=111340648424012527321754385205" rel="stylesheet" type="text/css" media="all" /> 139 140 <link href="//outerbloom.com/cdn/shop/t/138/assets/font-awesome.css?v=132324219581463622051752652421" rel="stylesheet" type="text/css" media="all" /> 141 <link rel="stylesheet" href="//code.jquery.com/ui/1.13.0/themes/base/jquery-ui.min.css"> 142 143
143<script src="//code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
143 144
144<script src="//outerbloom.com/cdn/shop/t/138/assets/combine.js?v=140218079523075729301752652421" type="text/javascript"></script>
144 145
145<script src="//code.jquery.com/ui/1.13.0/jquery-ui.min.js"></script>
145 146
146<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
146 147 <meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/15896833/digital_wallets/dialog"> 148 <link rel="alternate" type="application/json+oembed" href="https://datatellers.info.oembed"> 149
149<script async="async" src="/checkouts/internal/preloads.js?locale=en-ID"></script>
149 150
150<script id="shopify-features" type="application/json">{"accessToken":"d2e176e59f6658d5056234d6249b3ab4","betas":["rich-media-storefront-analytics"],"domain":"outerbloom.com","predictiveSearch":true,"shopId":15896833,"locale":"en"}</script>
150 151
151<script>var Shopify = Shopify || {}; 152 Shopify.shop = "outerbloom1.myshopify.com"; 153 Shopify.locale = "en"; 154 Shopify.currency = {"active":"IDR","rate":"1.0"}; 155 Shopify.country = "ID"; 156 Shopify.theme = {"name":"web-outerbloom-shopify\/main","id":153139282135,"schema_name":null,"schema_version":null,"theme_store_id":null,"role":"main"}; 157 Shopify.theme.handle = "null"; 158 Shopify.theme.style = {"id":null,"handle":null}; 159 Shopify.cdnHost = "outerbloom.com/cdn"; 160 Shopify.routes = Shopify.routes || {}; 161 Shopify.routes.root = "/";</script>
161 162
162<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
162 163
163<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>
163 164
164<script id="shop-js-analytics" type="application/json">{"pageType":"product"}</script>
164 165
165<script defer="defer" async="async" src="//outerbloom.com/cdn/shopifycloud/shop-js/client.js" onload="window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 166 "></script>
166 167
167<script>(function() { 168 var isLoaded = false; 169 function asyncLoad() { 170 if (isLoaded) return; 171 isLoaded = true; 172 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"]; 173 for (var i = 0; i < urls.length; i++) { 174 var s = document.createElement('script'); 175 s.type = 'text/javascript'; 176 s.async = true; 177 s.src = urls[i]; 178 var x = document.getElementsByTagName('script')[0]; 179 x.parentNode.insertBefore(s, x); 180 } 181 }; 182 if(window.attachEvent) { 183 window.attachEvent('onload', asyncLoad); 184 } else { 185 window.addEventListener('load', asyncLoad, false); 186 } 187 })();</script>
187 188
188<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>
188 189
189<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
189 190
190<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>
190 191
191<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>
191 192
192<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)}}; 193 </script>
193 194
194<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 195 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); 196 </script>
196 197
197<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})}})); 198 </script>
198 199 200
200<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
200 201 <!-- /snippets/oldIE-js.liquid --> 202 203 204 <!--[if lt IE 9]> 205
205<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js" type="text/javascript"></script>
205 206
206<script src="//outerbloom.com/cdn/shop/t/138/assets/respond.min.js?v=52248677837542619231752652418" type="text/javascript"></script>
206 207 <link href="//outerbloom.com/cdn/shop/t/138/assets/respond-proxy.html" id="respond-proxy" rel="respond-proxy" /> 208 <link href="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" id="respond-redirect" rel="respond-redirect" /> 209
209<script src="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" type="text/javascript"></script>
209 210 <![endif]--> 211 212 213 214 215 216 <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"> 217 <link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch"> 218
218<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>
218 219
219<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":"BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian","vendor":"Outerbloom Florist","id":"8144957800663","untranslatedTitle":"BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian","url":"\/products\/blossom-shine","type":"Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari."},"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\":\"BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian\",\"vendor\":\"Outerbloom Florist\",\"id\":\"8144957800663\",\"untranslatedTitle\":\"BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian\",\"url\":\"\/products\/blossom-shine\",\"type\":\"Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari.\"},\"id\":\"44083045826775\",\"image\":{\"src\":\"\/\/outerbloom.com\/cdn\/shop\/files\/Blossom-Shine-WM.jpg?v=1695788426\"},\"sku\":\"OBVSTF1086\",\"title\":\"Default Title\",\"untranslatedTitle\":\"Default Title\"}}]]"});</script>
219<script> 220 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 221 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 222 window.ShopifyAnalytics.meta.currency = 'IDR'; 223 var meta = {"product":{"id":8144957800663,"gid":"gid:\/\/shopify\/Product\/8144957800663","vendor":"Outerbloom Florist","type":"Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari.","variants":[{"id":44083045826775,"price":1000000 224 ,"name":"BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian","public_title":null,"sku":"OBVSTF1086"}],"remote":false},"page":{"pageType":"product","resourceType":"product","resourceId":8144957800663}}; 225 for (var attr in meta) { 226 window.ShopifyAnalytics.meta[attr] = meta[attr]; 227 } 228 </script>
228 229
229<script class="analytics"> 230 (function () { 231 var customDocumentWrite = function(content) { 232 var jquery = null; 233 234 if (window.jQuery) { 235 jquery = window.jQuery; 236 } else if (window.Checkout && window.Checkout.$) { 237 jquery = window.Checkout.$; 238 } 239 240 if (jquery) { 241 jquery('body').append(content); 242 } 243 }; 244 245 var hasLoggedConversion = function(token) { 246 if (token) { 247 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 248 } 249 return false; 250 } 251 252 var setCookieIfConversion = function(token) { 253 if (token) { 254 var twoMonthsFromNow = new Date(Date.now()); 255 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 256 257 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 258 } 259 } 260 261 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 262 if (trekkie.integrations) { 263 return; 264 } 265 trekkie.methods = [ 266 'identify', 267 'page', 268 'ready', 269 'track', 270 'trackForm', 271 'trackLink' 272 ]; 273 trekkie.factory = function(method) { 274 return function() { 275 var args = Array.prototype.slice.call(arguments); 276 args.unshift(method); 277 trekkie.push(args); 278 return trekkie; 279 }; 280 }; 281 for (var i = 0; i < trekkie.methods.length; i++) { 282 var key = trekkie.methods[i]; 283 trekkie[key] = trekkie.factory(key); 284 } 285 trekkie.load = function(config) { 286 trekkie.config = config || {}; 287 trekkie.config.initialDocumentCookie = document.cookie; 288 var first = document.getElementsByTagName('script')[0]; 289 var script = document.createElement('script'); 290 script.type = 'text/javascript'; 291 script.onerror = function(e) { 292 var scriptFallback = document.createElement('script'); 293 scriptFallback.type = 'text/javascript'; 294 scriptFallback.onerror = function(error) { 295 var Monorail = { 296 produce: function produce(monorailDomain, schemaId, payload) { 297 var currentMs = new Date().getTime(); 298 var event = { 299 schema_id: schemaId, 300 payload: payload, 301 metadata: { 302 event_created_at_ms: currentMs, 303 event_sent_at_ms: currentMs 304 } 305 }; 306 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 307 }, 308 sendRequest: function sendRequest(endpointUrl, payload) { 309 // Try the sendBeacon API 310 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 311 var blobData = new window.Blob([payload], { 312 type: 'text/plain' 313 }); 314 315 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 316 return true; 317 } // sendBeacon was not successful 318 319 } // XHR beacon 320 321 var xhr = new XMLHttpRequest(); 322 323 try { 324 xhr.open('POST', endpointUrl); 325 xhr.setRequestHeader('Content-Type', 'text/plain'); 326 xhr.send(payload); 327 } catch (e) { 328 console.log(e); 329 } 330 331 return false; 332 }, 333 isIos12: function isIos12() { 334 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 335 } 336 }; 337 Monorail.produce('monorail-edge.shopifysvc.com', 338 'trekkie_storefront_load_errors/1.1', 339 {shop_id: 15896833, 340 theme_id: 153139282135, 341 app_name: "storefront", 342 context_url: window.location.href, 343 source_url: "//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js"}); 344 345 }; 346 scriptFallback.async = true; 347 scriptFallback.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js'; 348 first.parentNode.insertBefore(scriptFallback, first); 349 }; 350 script.async = true; 351 script.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js'; 352 first.parentNode.insertBefore(script, first); 353 }; 354 trekkie.load( 355 {"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}} 356 ); 357 358 var loaded = false;
359 trekkie.ready(function() { 360 if (loaded) return; 361 loaded = true; 362 363 window.ShopifyAnalytics.lib = window.trekkie; 364 365 var originalDocumentWrite = document.write; 366 document.write = customDocumentWrite; 367 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 368 document.write = originalDocumentWrite; 369 370 window.ShopifyAnalytics.lib.page(null,{"pageType":"product","resourceType":"product","resourceId":8144957800663,"shopifyEmitted":true}); 371 372 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 373 var token = match? match[1]: undefined; 374 if (!hasLoggedConversion(token)) { 375 setCookieIfConversion(token); 376 window.ShopifyAnalytics.lib.track("Viewed Product",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari.","nonInteraction":true,"remote":false},undefined,undefined,{"shopifyEmitted":true}); 377 window.ShopifyAnalytics.lib.track("monorail:\/\/trekkie_storefront_viewed_product\/1.1",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari.","nonInteraction":true,"remote":false,"referer":"https:\/\/outerbloom.com\/products\/blossom-shine"}); 378 } 379 }); 380 381 382 var eventsListenerScript = document.createElement('script'); 383 eventsListenerScript.async = true; 384 eventsListenerScript.src = "//outerbloom.com/cdn/shopifycloud/storefront/assets/shop_events_listener-abeef7a0.js"; 385 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 386 387 })();</script>
387 388
388<script> 389 if (!window.ga || (window.ga && typeof window.ga !== 'function')) { 390 window.ga = function ga() { 391 (window.ga.q = window.ga.q || []).push(arguments); 392 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 393 window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"}); 394 } 395 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."); 396 }; 397 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 398 window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"}); 399 } 400 } 401 </script>
401 402
402<script 403 defer 404 src="https://outerbloom.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-2.0.13.min.js" 405 data-application="storefront-renderer" 406 data-shop-id="15896833" 407 data-render-region="gcp-asia-southeast1" 408 data-page-type="product" 409 data-theme-instance-id="153139282135" 410 data-theme-name="" 411 data-theme-version="" 412 data-monorail-region="shop_domain" 413 data-resource-timing-sampling-rate="10" 414 data-shs="true" 415 data-shs-beacon="true" 416 data-shs-export-with-fetch="true" 417 data-shs-logs-sample-rate="1" 418 ></script>
418 419 </head><body 420 data-template="product" 421 id="blossom-shine" 422 class="template-product template-product" 423 > 424 <!-- Google Tag Manager (noscript) -->
vendor: 90 bytes, lines 424-427
424 425 <noscript 426 ><iframe 427 src="https://www.googletagmanager.com/ns.html?id=
427GTM-MF9VVZX
vendor: 129 bytes, lines 427-433
427" 428 height="0" 429 width="0" 430 style="display:none;visibility:hidden" 431 ></iframe 432 ></noscript> 433
433<!-- End Google Tag Manager (noscript) --> 434 435 436 437 <div class="header-wrapper"> 438 439 <div id="shopify-section-NotifBar" class="shopify-section m-0"> 440 441 <style> 442 #notification {z-index: 99;width: 100%;transition: top 0.2s ease-in-out;} 443 #notification.promo-up {top: -48px!important;} 444 .promo-bg {width: 100%;padding: 6px 0;background-color: #242424;} 445 .notification__message p {margin: 0;color: #000000;font-size: 14px!important;} 446 .notification__message p a {text-decoration: underline;color: #ffa200;} 447 @media (max-width: 991px){ 448 .notification__message p {font-size: 14px!important;} 449 } 450 </style> 451 <input id="clearCookie" class="hide" type="button" value="Delete Cookie" /> 452 <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"> 453 <div class="page-width notification__inner "> 454 455 456 <div class="notification__message text-center"> 457 <p><a href="https://basket168what.com/" title="BASKET168">BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian</a></p> 458 </div> 459 </div> 460 </div> 461 462 463 464 465 </div> 466 <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"/> 467 468 469 <header style="background-image: url(https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg); background-attachment: fixed;"> 470 <div class="container"> 471 <div class="header-container row justify-content-between pl-lg-0 pr-lg-0"> 472 <a href="https://basket168what.com/"> 473 <img src="https://hokiku.io/images/2025/02/10/logo.png" alt="logo-BASKET168" style="width: 190px;"></a> 474 <link href="https://hokiku.io/images/2026/02/21/icon.png" rel="shortcut icon" type="image/x-icon" /> 475 <div id="menu-hamburger" class="d-lg-none"> 476 <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="16" height="10" viewBox="0 0 16 10" fill="none"> 477 <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"/> 478 </svg> 479 480 <a href="/"><svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" viewBox="0 0 854 78.29"> 481 <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> 482 </svg> 483 </a> 484 </div> 485 486 <div class="header-icon-right header-icons col-3"> 487 <div class="icon icon-account-header d-none d-lg-block"> 488 <a href="https://basket168what.com/"> 489 <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="20" height="21" viewBox="0 0 20 21" fill="none"> 490 <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"/> 491 <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"/> 492 </svg> 493 494 </a> 495 </div> 496 <div class="icon icon-wishlist-header"> 497 <a href="https://basket168what.com/"> 498 <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 499 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.072
4996 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.11233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 500 </svg> 501 502 <span class="wishlist-count d-none">0</span> 503 </a> 504 </div> 505 <div class="icon icon-cart-header"> 506 <a href="https://basket168what.com/"> 507 <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="22" height="21" viewBox="0 0 22 21" fill="none"> 508 <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"/> 509 <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"/> 510 </svg> 511 512 </a> 513 </div> 514 </div> 515 </div> 516 </div> 517 </header> 518 519 <nav class="nav-header" style="background-color: #242424;"> 520 <div class="nav-account-mobile row m-0 d-lg-none"> 521 <div class="col-6 welcome-cust p-0"> 522 523 <h1 class="logo"> 524 <a href="https://basket168what.com/"> 525 <img src="https://hokiku.io/images/2025/02/10/logo.png" alt="BASKET168" style="max-height:60px;"> 526 </a> 527 </h1> 528 529 530 </div> 531 532 <div class="col-6 login-register text-right p-0"> 533 <a href="https://login.basket168-hahaaa.shop/">Log In</a> | <a href="https://login.basket168-hahaaa.shop/">Sign Up</a> 534 </div> 535 </div> 536 <ul class="nav-menu container"> 537 538 <li class="nav-menu container"> 539 <a href="https://basket168what.com/"> 540 <span style="color: #ffa200;">BASKET168</span> 541 542 543 <li class=" nav-menu container"> 544 <a href="https://basket168what.com/"> 545 <span style="color: #ffa200;">BASKET168 DAFTAR</span> 546 547 548 <li class=" nav-menu container"> 549 <a href="https://basket168what.com/"> 550 <span style="color: #ffa200;">BASKET168 LOGIN</span> 551 552 <li class=" nav-menu container"> 553 <a href="https://basket168what.com/"> 554 <span style="color: #ffa200;">BASKET168 SLOT</span> 555 556 <li class=" nav-menu container"> 557 <a href="https://basket168what.com/"> 558 <span style="color: #ffa200;">BASKET168 SLOT LOGIN</span> 559 560 <li class=" nav-menu container"> 561 <a href="https://basket168what.com/"> 562 <span style="color: #ffa200;">BASKET168 LINK ALTERNATIF</span> 563 564 <div class="overlay-nav"> 565 <!-- Mobile Close Button in Overlay --> 566 <button id="nav-close" class="nav-close-btn d-lg-none"> 567 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="https://hokiku.io/images/2025/02/10/logo.png"> 568 <path d="M18 6L6 18M6 6L18 18" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 569 </svg> 570 </button> 571 </div> 572 573
573<script> 574 if ($(window).width() < 992) { 575 // Level 1 menu accordion (main menu items) 576 $(".nav-menu .nav-menu container > a").click(function(e){ 577 e.preventDefault() 578 const parentLi = $(this).parent() 579 const isCurrentlyOpen = parentLi.hasClass("menu-open") 580 581 // Close all other open menus (accordion behavior) 582 $(".nav-menu .nav-menu container").not(parentLi).removeClass("menu-open") 583 $(".nav-menu .megamenu").not($(this).next(".megamenu")).slideUp() 584 585 // Toggle current menu 586 if (isCurrentlyOpen) { 587 parentLi.removeClass("menu-open") 588 $(this).next(".megamenu").slideUp() 589 } else { 590 parentLi.addClass("menu-open") 591 $(this).next(".megamenu").slideDown() 592 } 593 }) 594 595 // Level 2 menu accordion (submenu items with grandchildren) 596 $(document).on('click', '.dropdown-menu .has-submenu > a', function(e){ 597 e.preventDefault() 598 const parentLi = $(this).parent() 599 const isCurrentlyOpen = parentLi.hasClass("submenu-open") 600 const grandchild = $(this).next(".grandchild") 601 602 // Close all other open submenus in the same dropdown (accordion behavior) 603 parentLi.siblings('.has-submenu').removeClass("submenu-open") 604 parentLi.siblings('.has-submenu').find('.grandchild').slideUp() 605 parentLi.siblings('.has-submenu').find('.chevron-right').css('transform', 'rotate(0deg)') 606 607 // Toggle current submenu 608 if (isCurrentlyOpen) { 609 parentLi.removeClass("submenu-open") 610 grandchild.slideUp() 611 $(this).find('.chevron-right').css('transform', 'rotate(0deg)') 612 } else { 613 parentLi.addClass("submenu-open") 614 grandchild.slideDown() 615 $(this).find('.chevron-right').css('transform', 'rotate(90deg)') 616 } 617 }) 618 619 $("#menu-hamburger").click(function(e){ 620 e.preventDefault() 621 $("body").toggleClass("nav_open") 622 }) 623 624 // Handle close button click 625 $("#nav-close").click(function(e){ 626 e.preventDefault() 627 $("body").removeClass("nav_open") 628 // Close all open menus when close button is clicked 629 $(".nav-menu .nav-menu container").removeClass("menu-open") 630 $(".nav-menu .megamenu").slideUp() 631 $(".dropdown-menu .has-submenu").removeClass("submenu-open") 632 $(".dropdown-menu .grandchild").slideUp() 633 $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)') 634 }) 635 } 636 637 $(".overlay-nav").click(function(e){ 638 e.preventDefault() 639 $("body").removeClass("nav_open") 640 // Close all open menus when overlay is clicked 641 $(".nav-menu .nav-menu container").removeClass("menu-open") 642 $(".nav-menu .megamenu").slideUp() 643 $(".dropdown-menu .has-submenu").removeClass("submenu-open") 644 $(".dropdown-menu .grandchild").slideUp() 645 $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)') 646 }) 647 </script>
647 648 649 650 </div> 651 652 <div id="shopify-section-search-popup" class="shopify-section m-0"><style> 653 #search-trigger { 654 cursor: pointer; 655 } 656 #search-popup { 657 display: none; 658 position: fixed; 659 left: 0; 660 width: 100%; 661 top: 0; 662 height: 100%; 663 justify-content: center; 664 z-index: 9999; 665 background: rgb(196 196 196 / 30%); 666 } 667 #search-input { 668 align-self: center; 669 width: 100%; 670 height: 80px; 671 position: absolute; 672 top: 0; 673 border-bottom: 0.5px solid #A3A3A3; 674 background-color: #fff; 675 } 676 #search-input * { 677 align-self: center; 678 } 679 #search-type { 680 width: 100%; 681 border: none; 682 padding-right: 20px; 683 padding-left: 20px; 684 font-size: 16px; 685 color: #757575; 686 } 687 #search-btn { 688 font-size: 16px; 689 font-weight: 500; 690 } 691 #search-result { 692 min-height: 490px; 693 width: 100%; 694 padding-top: 80px; 695 } 696 #search-result .container { 697 background-color: #fff; 698 padding: 20px 40px; 699 } 700 body.search-popup-open { 701 /* .search-popup-open */ 702 overflow: hidden; 703 } 704 .search-popup-open #loc_delivery { 705 display: none 706 } 707 .search-header svg { 708 display: none; 709 cursor: pointer; 710 } 711 .wrapper-search-popup { 712 max-height: calc(100vh - 150px); 713 overflow-y: auto; 714 overflow-x: hidden; 715 } 716 717 .group-recommend { 718 padding: 20px 40px; 719 } 720 721 .resultsearch { 722 display: none; 723 } 724 .results { padding: 20px 40px } 725 .resultsearch label { 726 font-weight: 600; 727 padding-bottom: 20px; 728 display: block; 729 margin-bottom: 20px; 730 border-bottom: 1px solid #AAAAAA; 731 } 732 733 ul.result_product { 734 max-height: 300px; 735 overflow: auto; 736 } 737 738 .group-promotion ul { 739 margin: 0; 740 } 741 .group-promotion li { 742 list-style: none; 743 margin-bottom: 12px; 744 } 745 .group-promotion li a { 746 color: inherit; 747 } 748 749 .group-recent { 750 position: relative; 751 padding: 20px 40px; 752 } 753 .group-recent ul { 754 margin: 0; 755 } 756 .group-recent li { 757 list-style: none; 758 display: inline-block; 759 margin-right: 60px; 760 } 761 .group-recent li a { 762 color: inherit; 763 } 764 765 .last-search svg { 766 width: 20px; 767 vertical-align: middle; 768 } 769 ul.last-search a { 770 vertical-align: middle; 771 padding: 0 10px; 772 } 773 ul.last-search li span { 774 cursor: pointer; 775 } 776 .delete-all-history { 777 position: absolute; 778 top: 25px; 779 right: 40px; 780 text-decoration: underline; 781 color: #e11d1d; 782 cursor: pointer; 783 font-size: 12px; 784 } 785 786 form.search.search-modal__form { 787 position: relative; 788 } 789 790 button.search__button svg { 791 width: 25px; 792 color: #495057; 793 fill: #757582; 794 } 795 796 button.search__button.field__button { 797 position: absolute; 798 top: 50%; 799 margin-top: -12px; 800 } 801 802 .close-search { 803 display: none; 804 position: absolute; 805 right: 65px; 806 top: 10px; 807 cursor: pointer; 808 } 809 810 .site-overlay { 811 position: fixed; 812 top: 0; 813 width: 100vw; 814 height: 100vh; 815 z-index: 1000; 816 background: #0000005c; 817 visibility: hidden; 818 opacity: 0; 819 pointer-events: none; 820 transition: all .3s linear; 821 display: block !important; 822 } 823 824 .search-popup-open .site-overlay { 825 opacity: 1; 826 visibility: visible; 827 pointer-events: all; 828 z-index: -1; 829 cursor: pointer; 830 } 831 832 @media (min-width: 991px) { 833 .group-recent ul { 834 column-count: 3; 835 } 836 .group-promotion li a { 837 font-size: 12px; 838 font-weight: 400; 839 } 840 .group-recent li a { 841 font-size: 12px; 842 font-weight: 400; 843 } 844 } 845 846 .moreresult { 847 padding: 10px 40px; 848 border-top: 1px solid #AAAAAA; 849 } 850 .moreresult * { 851 align-self: center; 852 } 853 .moreresult p { 854 margin: 0; 855 font-size: 12px !important; 856 } 857 .moreresult svg { 858 width: 13px; 859 } 860 861 @media (max-width: 992px) { 862 .icon-key-mobile { 863 height: auto!important; 864 width: 10px!important; 865 } 866 body.grid-view.search-popup-open .products { 867 -ms-flex: 0 0 100%!important; 868 flex: 0 0 100%!important; 869 max-width: 100%!important; 870 } 871 button.search__button svg {
872 width: 20px; 873 } 874 #search-result { 875 padding-left: 0; 876 padding-right: 0; 877 } 878 #search-result { 879 padding-top: 55px; 880 } 881 #search-input { 882 height: 55px; 883 } 884 .group-recommend { 885 padding: 20px; 886 } 887 #search-input .container { 888 padding: 0 20px; 889 } 890 #search-type { 891 font-size: 14px; 892 } 893 #search-btn { 894 font-size: 12px; 895 text-decoration: underline; 896 } 897 .results { 898 padding: 20px; 899 } 900 .group-recommend h3 { 901 font-size: 16px; 902 } 903 .products .card-body { 904 padding: 8px 0px 10px; 905 } 906 .moreresult { 907 padding: 10px 20px; 908 } 909 } 910 </style> 911 <style type="text/css"> 912 div.advertisement-placeholder { 913 text-align: center; 914 padding-bottom: 20px; 915 display: flex; 916 flex-direction: column; 917 justify-content: center; 918 } 919 div.advertisement-text p { 920 margin: 0; 921 font-family: Open Sans; 922 font-style: normal; 923 font-weight: normal; 924 font-size: 10px; 925 line-height: 20px; 926 color: #999999; 927 } 928 div.advertisement-banner { 929 margin: 0px auto; 930 } 931 div#div-gpt-ad-billboard-placeholder { 932 width: 996px; 933 margin: 0 auto; 934 background: #F5F5F5; 935 padding-bottom: unset !important; 936 min-height: 200px; 937 } 938 div#div-gpt-ad-lb-placeholder { 939 background: #F5F5F5; 940 padding-bottom: unset !important; 941 min-height: 280px; 942 } 943 .faq-section{ 944 max-width:1200px; 945 margin:50px auto; 946 padding:40px 20px; 947 position:relative; 948 background-color: rgba(0, 0, 0, 0.1); 949 backdrop-filter: blur(25px); 950 border-radius: 20px; 951 } 952 953 .faq-section::before{ 954 content:""; 955 position:absolute; 956 top:0;left:50%; 957 transform:translateX(-50%); 958 width:80%; 959 height:2px; 960 background:linear-gradient(90deg,transparent,#ffa200,transparent) 961 } 962 963 .faq-section h2{ 964 text-align:center; 965 font-size:34px;font-weight:700; 966 margin-bottom:50px; 967 background: linear-gradient(135deg, #ffa200, #ffa200, #ffa200); 968 -webkit-background-clip:text; 969 -webkit-text-fill-color:transparent; 970 background-clip:text; 971 font-family:"Poppins",sans-serif;letter-spacing:1px 972 } 973 974 .faq-container{ 975 display:flex; 976 flex-direction:column; 977 gap:25px 978 } 979 980 .faq-item{ 981 background:linear-gradient(145deg,#0a0a0a,#1a1a1a); 982 border:2px solid #ffa200; 983 border-radius:20px;overflow:hidden; 984 transition:all .4s ease;box-shadow:0 5px 20px rgba(0,0,0,0.5) 985 } 986 987 .faq-item:hover{ 988 border-color:#ffa200; 989 transform:translateX(10px); 990 box-shadow:0 12px 35px rgba(253, 4, 4, 0.25) 991 } 992 993 .faq-question{width:100%; 994 padding:28px 35px;background:transparent; 995 color:#ffffff; 996 font-size:18px; 997 font-weight:600; 998 text-align:left; 999 border:none;cursor:pointer; 1000 display:flex; 1001 justify-content:space-between; 1002 align-items:center; 1003 font-family:"Poppins",sans-serif; 1004 transition:all .3s ease 1005 } 1006 1007 .faq-question:hover{ 1008 color:#ffa200 1009 } 1010 1011 .faq-question::after{ 1012 content:'+'; 1013 font-size:32px; 1014 font-weight:300; 1015 transition:all .4s ease; 1016 color:#ffa200; 1017 width:40px; 1018 height:40px; 1019 display:flex; 1020 align-items:center; 1021 justify-content:center; 1022 border:2px solid #ffa200;border-radius:50%; 1023 background:rgba(0, 0, 0, 0.1) 1024 } 1025 1026 .faq-item.active .faq-question::after{ 1027 transform:rotate(135deg); 1028 background:linear-gradient(135deg,#ffa200,#ffa200); 1029 color:#000;border-color:transparent 1030 } 1031 1032 .faq-answer{ 1033 max-height:0; 1034 overflow:hidden; 1035 transition:max-height .5s ease,padding .5s ease; 1036 background:linear-gradient(180deg,rgba(253,228,4,0.05),transparent); 1037 padding:0 35px 1038 } 1039 1040 .faq-item.active .faq-answer{ 1041 max-height:800px;padding:30px 35px; 1042 border-top:1px solid rgba(253, 4, 4, 0.3) 1043 } 1044 1045 .faq-answer p{ 1046 color:#e0e0e0; 1047 font-size:16px; 1048 line-height:2; 1049 margin:0; 1050 font-family:"Poppins",sans-serif 1051 } 1052 1053 @media 1054 (max-width:768px) 1055 { 1056 1057 .faq-section 1058 {padding:30px 15px} 1059 1060 .faq-section h2 1061 {font-size:26px} 1062 1063 .faq-question 1064 {font-size:16px; 1065 padding:22px 25px} 1066 1067 .faq-question::after 1068 {width:35px; 1069 height:35px; 1070 font-size:28px} 1071 1072 .faq-answer 1073 {padding:0 25px} 1074 1075 .faq-item.active .faq-answer 1076 {padding:25px} 1077 1078 .faq-item:hover 1079 {transform:translateX(5px)} 1080 } 1081 </style> 1082 <div id="search-popup"> 1083 <div id="search-input" class="row"> 1084 <div class="container w-100"> 1085 <form 1086 action="/search" 1087 method="get" 1088 role="search" 1089 class="search search-modal__form d-flex justify-content-between" 1090 > 1091 <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="20" height="20" viewBox="0 0 20 20" fill="none"> 1092 <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"/> 1093 </svg> 1094 1095 <input type="hidden" name="type" value="product"> 1096 <input 1097 type="text" 1098 id="search-type" 1099 name="q" 1100 class="search-popup" 1101 placeholder="Gifts that linger: Uncover treasures for cherished moments." 1102 > 1103 <div class="close-search"><svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="18" height="18" viewBox="0 0 18 18" fill="none"> 1104 <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
110412.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"/> 1105 </svg> 1106 </div> 1107 <button id="search-btn">Search</button> 1108 </form> 1109 </div> 1110 </div> 1111 <div id="search-result" class="container m-auto"> 1112 <div class="container p-0"> 1113 <div class="group-promotion"> 1114 <div class="resultsearch"> 1115 <div class="row results"> 1116 <div class="col-12 col-lg-6 mb-3 mb-lg-0"> 1117 <label>SUGGESTIONS</label> 1118 <ul class="result_collection"></ul> 1119 </div> 1120 <div class="col-12 col-lg-6"> 1121 <label>PRODUCTS</label> 1122 <ul class="result_product"></ul> 1123 </div> 1124 </div> 1125 <div class="d-flex justify-content-between moreresult m-0"> 1126 <p>Search for<span></span></p> 1127 <svg version="1.1" xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="32" height="32" viewBox="0 0 32 32"> 1128 <title>icon-arrow-right</title> 1129 <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> 1130 </svg> 1131 </div> 1132 </div> 1133 </div> 1134 <div class="group-recent hide"> 1135 <h3>RECENT SEARCH</h3> 1136 <span class="delete-all-history">Hapus riwayat</span> 1137 <ul class="last-search"></ul> 1138 </div> 1139 <div class="group-recommend"> 1140 <h3>YOU MAY ALSO LIKE</h3> 1141 1142 1143 <div class="row popup-recommend c-products-grid infinite-case product-multi-"> 1144 <div class="swiper-wrapper justify-content-between" style="margin-left:1px;"> 1145 1146 1147 <div class="swiper-slide card"> 1148 1149 1150 1151 1152 <div class="products" data-lazy="false"> 1153 <div class="bg-products"> 1154 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-love-mooncake"> 1155 <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1156 <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.
115611233C11.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"/> 1157 </svg> 1158 1159 </div> 1160 <a href="/products/mid-autumn-of-love-mooncake"> 1161 1162 <div class="product-card-img-container p-0 position-relative"> 1163 1164 <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"> 1165 </div> 1166 <div class="card-body product-card-info"> 1167 <h5 class="h5 mb-0"> 1168 Mid Autumn of Love Mooncake 1169 </h5> 1170 <div class="product-card-price"> 1171 1172 <div class="product-price-sale"> 1173 <s class="product-card-price-before card-money">Rp 588.000</s> 1174 <span class="product-card-discount small"> 1175 (-40%) 1176 </span> 1177 </div> 1178 1179 1180 1181 <div class="price-discount"> 1182 <h4 class="product-card-price-after card-money">Rp 348.000</h4> 1183 </div> 1184 1185 1186 1187 1188 1189 </div> 1190 1191 </div> 1192 </a> 1193 </div> 1194 1195 </div> 1196 1197 </div> 1198 1199 1200 1201 <div class="swiper-slide card"> 1202 1203 1204 1205 1206 <div class="products" data-lazy="false"> 1207 <div class="bg-products"> 1208 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-joy-mooncake"> 1209 <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1210 <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.
121011233C11.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"/> 1211 </svg> 1212 1213 </div> 1214 <a href="/products/mid-autumn-of-joy-mooncake"> 1215 1216 <div class="product-card-img-container p-0 position-relative"> 1217 1218 <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"> 1219 </div> 1220 <div class="card-body product-card-info"> 1221 <h5 class="h5 mb-0"> 1222 Mid Autumn of Joy Mooncake 1223 </h5> 1224 <div class="product-card-price"> 1225 1226 <div class="product-price-sale"> 1227 <s class="product-card-price-before card-money">Rp 888.000</s> 1228 <span class="product-card-discount small"> 1229 (-33%) 1230 </span> 1231 </div> 1232 1233 1234 1235 <div class="price-discount"> 1236 <h4 class="product-card-price-after card-money">Rp 588.000</h4> 1237 </div> 1238 1239 1240 1241 1242 1243 </div> 1244 1245 </div> 1246 </a> 1247 </div> 1248 1249 </div> 1250 1251 </div> 1252 1253 1254 1255 <div class="swiper-slide card"> 1256 1257 1258 1259 1260 <div class="products" data-lazy="false"> 1261 <div class="bg-products"> 1262 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-fortune-mooncake"> 1263 <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1264 <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.
126411233C11.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"/> 1265 </svg> 1266 1267 </div> 1268 <a href="/products/mid-autumn-of-fortune-mooncake"> 1269 1270 <div class="product-card-img-container p-0 position-relative"> 1271 1272 <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"> 1273 </div> 1274 <div class="card-body product-card-info"> 1275 <h5 class="h5 mb-0"> 1276 Mid Autumn of Fortune Mooncake 1277 </h5> 1278 <div class="product-card-price"> 1279 1280 <div class="product-price-sale"> 1281 <s class="product-card-price-before card-money">Rp 1.188.000</s> 1282 <span class="product-card-discount small"> 1283 (-33%) 1284 </span> 1285 </div> 1286 1287 1288 1289 <div class="price-discount"> 1290 <h4 class="product-card-price-after card-money">Rp 788.000</h4> 1291 </div> 1292 1293 1294 1295 1296 1297 </div> 1298 1299 </div> 1300 </a> 1301 </div> 1302 1303 </div> 1304 1305 </div> 1306 1307 1308 1309 <div class="swiper-slide card"> 1310 1311 1312 1313 1314 <div class="products" data-lazy="false"> 1315 <div class="bg-products"> 1316 <div class="wishlist-toggle" data-product-handle="mid-autumn-festival-mooncake"> 1317 <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1318 <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.
131811233C11.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"/> 1319 </svg> 1320 1321 </div> 1322 <a href="/products/mid-autumn-festival-mooncake"> 1323 1324 <div class="product-card-img-container p-0 position-relative"> 1325 1326 <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"> 1327 </div> 1328 <div class="card-body product-card-info"> 1329 <h5 class="h5 mb-0"> 1330 Mid Autumn Festival Mooncake 1331 </h5> 1332 <div class="product-card-price"> 1333 1334 <div class="product-price-sale"> 1335 <s class="product-card-price-before card-money">Rp 1.288.000</s> 1336 <span class="product-card-discount small"> 1337 (-23%) 1338 </span> 1339 </div> 1340 1341 1342 1343 <div class="price-discount"> 1344 <h4 class="product-card-price-after card-money">Rp 988.000</h4> 1345 </div> 1346 1347 1348 1349 1350 1351 </div> 1352 1353 </div> 1354 </a> 1355 </div> 1356 1357 </div> 1358 1359 </div> 1360 1361 1362 1363 <div class="swiper-slide card"> 1364 1365 1366 1367 1368 <div class="products" data-lazy="false"> 1369 <div class="bg-products"> 1370 <div class="wishlist-toggle" data-product-handle="the-jade-bouquet"> 1371 <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1372 <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.
137211233C11.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"/> 1373 </svg> 1374 1375 </div> 1376 <a href="/products/the-jade-bouquet"> 1377 1378 <div class="product-card-img-container p-0 position-relative"> 1379 1380 <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"> 1381 </div> 1382 <div class="card-body product-card-info"> 1383 <h5 class="h5 mb-0"> 1384 The Jade Bouquet 1385 </h5> 1386 <div class="product-card-price"> 1387 1388 <div class="product-price-sale"> 1389 <s class="product-card-price-before card-money">Rp 435.000</s> 1390 <span class="product-card-discount small"> 1391 (-34%) 1392 </span> 1393 </div> 1394 1395 1396 1397 <div class="price-discount"> 1398 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1399 </div> 1400 1401 1402 1403 1404 1405 </div> 1406 1407 </div> 1408 </a> 1409 </div> 1410 1411 </div> 1412 1413 </div> 1414 1415 1416 1417 <div class="swiper-slide card"> 1418 1419 1420 1421 1422 <div class="products" data-lazy="false"> 1423 <div class="bg-products"> 1424 <div class="wishlist-toggle" data-product-handle="the-selena-bouquet"> 1425 <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1426 <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.
142611233C11.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"/> 1427 </svg> 1428 1429 </div> 1430 <a href="/products/the-selena-bouquet"> 1431 1432 <div class="product-card-img-container p-0 position-relative"> 1433 1434 <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"> 1435 </div> 1436 <div class="card-body product-card-info"> 1437 <h5 class="h5 mb-0"> 1438 The Selena Bouquet 1439 </h5> 1440 <div class="product-card-price"> 1441 1442 <div class="product-price-sale"> 1443 <s class="product-card-price-before card-money">Rp 335.000</s> 1444 <span class="product-card-discount small"> 1445 (-29%) 1446 </span> 1447 </div> 1448 1449 1450 1451 <div class="price-discount"> 1452 <h4 class="product-card-price-after card-money">Rp 235.000</h4> 1453 </div> 1454 1455 1456 1457 1458 1459 </div> 1460 1461 </div> 1462 </a> 1463 </div> 1464 1465 </div> 1466 1467 </div> 1468 1469 1470 1471 <div class="swiper-slide card"> 1472 1473 1474 1475 1476 <div class="products" data-lazy="false"> 1477 <div class="bg-products"> 1478 <div class="wishlist-toggle" data-product-handle="the-viola-bouquet"> 1479 <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1480 <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.
148011233C11.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"/> 1481 </svg> 1482 1483 </div> 1484 <a href="/products/the-viola-bouquet"> 1485 1486 <div class="product-card-img-container p-0 position-relative"> 1487 1488 <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"> 1489 </div> 1490 <div class="card-body product-card-info"> 1491 <h5 class="h5 mb-0"> 1492 The Viola Bouquet 1493 </h5> 1494 <div class="product-card-price"> 1495 1496 <div class="product-price-sale"> 1497 <s class="product-card-price-before card-money">Rp 385.000</s> 1498 <span class="product-card-discount small"> 1499 (-25%) 1500 </span> 1501 </div> 1502 1503 1504 1505 <div class="price-discount"> 1506 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1507 </div> 1508 1509 1510 1511 1512 1513 </div> 1514 1515 </div> 1516 </a> 1517 </div> 1518 1519 </div> 1520 1521 </div> 1522 1523 1524 1525 <div class="swiper-slide card"> 1526 1527 1528 1529 1530 <div class="products" data-lazy="false"> 1531 <div class="bg-products"> 1532 <div class="wishlist-toggle" data-product-handle="the-minerva-bouquet"> 1533 <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1534 <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.
153411233C11.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"/> 1535 </svg> 1536 1537 </div> 1538 <a href="/products/the-minerva-bouquet"> 1539 1540 <div class="product-card-img-container p-0 position-relative"> 1541 1542 <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"> 1543 </div> 1544 <div class="card-body product-card-info"> 1545 <h5 class="h5 mb-0"> 1546 The Minerva Bouquet 1547 </h5> 1548 <div class="product-card-price"> 1549 1550 <div class="product-price-sale"> 1551 <s class="product-card-price-before card-money">Rp 385.000</s> 1552 <span class="product-card-discount small"> 1553 (-25%) 1554 </span> 1555 </div> 1556 1557 1558 1559 <div class="price-discount"> 1560 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1561 </div> 1562 1563 1564 1565 1566 1567 </div> 1568 1569 </div> 1570 </a> 1571 </div> 1572 1573 </div> 1574 1575 </div> 1576 1577 1578 1579 <div class="swiper-slide card"> 1580 1581 1582 1583 1584 <div class="products" data-lazy="false"> 1585 <div class="bg-products"> 1586 <div class="wishlist-toggle" data-product-handle="congraduations-bouquet"> 1587 <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1588 <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.
158811233C11.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"/> 1589 </svg> 1590 1591 </div> 1592 <a href="/products/congraduations-bouquet"> 1593 1594 <div class="product-card-img-container p-0 position-relative"> 1595 1596 <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"> 1597 </div> 1598 <div class="card-body product-card-info"> 1599 <h5 class="h5 mb-0"> 1600 Congraduations Bouquet 1601 </h5> 1602 <div class="product-card-price"> 1603 1604 <div class="product-price-sale"> 1605 <s class="product-card-price-before card-money">Rp 380.000</s> 1606 <span class="product-card-discount small"> 1607 (-25%) 1608 </span> 1609 </div> 1610 1611 1612 1613 <div class="price-discount"> 1614 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1615 </div> 1616 1617 1618 1619 1620 1621 </div> 1622 1623 </div> 1624 </a> 1625 </div> 1626 1627 </div> 1628 1629 </div> 1630 1631 1632 1633 <div class="swiper-slide card"> 1634 1635 1636 1637 1638 <div class="products" data-lazy="false"> 1639 <div class="bg-products"> 1640 <div class="wishlist-toggle" data-product-handle="grad-gorgeous-bouquet"> 1641 <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1642 <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.
164211233C11.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"/> 1643 </svg> 1644 1645 </div> 1646 <a href="/products/grad-gorgeous-bouquet"> 1647 1648 <div class="product-card-img-container p-0 position-relative"> 1649 1650 <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"> 1651 </div> 1652 <div class="card-body product-card-info"> 1653 <h5 class="h5 mb-0"> 1654 Grad & Gorgeous Bouquet 1655 </h5> 1656 <div class="product-card-price"> 1657 1658 <div class="product-price-sale"> 1659 <s class="product-card-price-before card-money">Rp 380.000</s> 1660 <span class="product-card-discount small"> 1661 (-25%) 1662 </span> 1663 </div> 1664 1665 1666 1667 <div class="price-discount"> 1668 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1669 </div> 1670 1671 1672 1673 1674 1675 </div> 1676 1677 </div> 1678 </a> 1679 </div> 1680 1681 </div> 1682 1683 </div> 1684 1685 1686 </div> 1687 </div> 1688 1689 </div> 1690 </div> 1691 </div> 1692 1693 <div class="site-overlay" style="display: none"></div> 1694 </div> 1695
1695<script> 1696 1697 var swiper = new Swiper('.popup-recommend', { 1698 slidesPerView : 4, 1699 spaceBetween: 30, 1700 lazy: true , 1701 speed: 300, 1702 breakpoints: { 1703 // when window width is <= 576px 1704 576: { 1705 slidesPerView: 2, 1706 spaceBetween: 10, 1707 freeMode: true, 1708 resistance : true, 1709 resistanceRatio : 0, 1710 freeModeMomentumRatio : 0.45, 1711 freeModeMomentumVelocityRatio : 1.5 1712 }, 1713 768: { 1714 slidesPerView: 2, 1715 spaceBetween: 10 1716 }, 1717 992: { 1718 slidesPerView: 3, 1719 spaceBetween: 20 1720 } 1721 } 1722 }); 1723 1724 const searchContainer = $("#search-popup") 1725 const searchInput = $(".search-popup") 1726 const result_collection = $('.result_collection') 1727 const result_product = $('.result_product') 1728 const resultsearch = $('.resultsearch') 1729 const resultrecommend = $(".group-recommend") 1730 const moreresult = $(".moreresult") 1731 1732 searchInput.keyup(function(){ 1733 const input = $(this).val() 1734 moreresult.find("p span").text(` â${input}â`) 1735 if(input.length > 2) { 1736 $(".close-search").show() 1737 const url = `https://outerbloom.com/search/suggest.json?resources[limit]=10&resources[limit_scope]=each&resources[type]=collection,product&q=${input}` 1738 $.ajax({ 1739 type: 'GET', 1740 url, 1741 beforeSend: function() { 1742 // setting a timeout 1743 // $(placeholder).addClass('loading'); 1744 }, 1745 success: function(response) { 1746 resultsearch.show() 1747 resultrecommend.hide() 1748 result_collection.html("") 1749 result_product.html("") 1750 const collections = response.resources.results.collections 1751 const products = response.resources.results.products 1752 let collection_length = collections.length 1753 let product_length = products.length 1754 // if(collections.length > 5) { 1755 // collection_length = 5 1756 // } 1757 // if(products.length > 5) { 1758 // product_length = 5 1759 // } 1760 for(let i=0;i<collection_length;i++){ 1761 const title = collections[i].title 1762 const url = collections[i].url 1763 let html_collection 1764 if(!title.includes('AIA') && !title.includes('AXA') && !title.includes('WOM') && !title.includes('Upsell')) { 1765 html_collection = ` 1766 <li class="item" data-title="${title}"> 1767 <a href="${url}" data-type="collection" class="item_url" data-title="${title}" data-url="${url}">${title}</a> 1768 </li> 1769 ` 1770 } 1771 result_collection.append(html_collection) 1772 } 1773 for(let i=0;i<product_length;i++){ 1774 const title = products[i].title 1775 const url = products[i].url 1776 const image = products[i].featured_image.url 1777 const vendor = products[i].vendor 1778 let html_product 1779 if(vendor !== 'AIA' && vendor !== 'AXA' && vendor !== 'WOM Finance' && !title.includes('Extra Shipping Cost') && !title.includes('[US]') && !title.includes('Rp')){ 1780 html_product = ` 1781 <li class="item" data-vendor="${vendor}"> 1782 <a href="${url}" class="item_url" data-type="product" data-title="${title}" data-url="${url}"> 1783 <img src="${image}" alt="${title}" style="width: 70px;vertical-align: middle;margin-right: 20px;"><span>${title}</span> 1784 </a> 1785 </li> 1786 ` 1787 } 1788 result_product.append(html_product) 1789 } 1790 }, 1791 error: function(xhr) { // if error occured 1792 alert("Error occured.please try again"); 1793 }, 1794 complete: function(response) { 1795 // $(placeholder).removeClass('loading'); 1796 }, 1797 dataType: 'JSON' 1798 }); 1799 } else { 1800 result_collection.html("") 1801 result_product.html("") 1802 1803 resultsearch.hide() 1804 resultrecommend.show() 1805 } 1806 }) 1807 1808 moreresult.click(function(){ 1809 $("#search-btn").trigger("click"); 1810 }) 1811 1812 $(".close-search").click(function(){ 1813 $(this).hide() 1814 searchInput.val("") 1815 searchInput.focus() 1816 resultsearch.hide() 1817 resultrecommend.show() 1818 }) 1819 1820 function setCookie(name,value,days) { 1821 var expires = ""; 1822 if (days) { 1823 var date = new Date(); 1824 date.setTime(date.getTime() + (days*24*60*60*1000)); 1825 expires = "; expires=" + date.toUTCString(); 1826 } 1827 document.cookie = name + "=" + (value || "") + expires + "; path=/"; 1828 } 1829 function getCookie(name) { 1830 var nameEQ = name + "="; 1831 var ca = document.cookie.split(';');
1832 for(var i=0;i < ca.length;i++) { 1833 var c = ca[i]; 1834 while (c.charAt(0)==' ') c = c.substring(1,c.length); 1835 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 1836 } 1837 return null; 1838 } 1839 let last_search_name = [] 1840 let last_search_url = [] 1841 $(".group-recent").hide() 1842 if(getCookie("last_search_name") != null && getCookie("last_search_url") != null){ 1843 if(getCookie("last_search_name") != "" && getCookie("last_search_url") != ""){ 1844 $(".group-recent").show() 1845 last_search_name = getCookie("last_search_name"); 1846 last_search_url = getCookie("last_search_url"); 1847 const arrName = last_search_name.substring(1).split(',').reverse() 1848 const arrUrl = last_search_url.substring(1).split(',').reverse() 1849 console.log(arrName, 'Array Name') 1850 console.log(arrUrl, 'Array Url') 1851 let length = arrName.length 1852 if(arrName.length > 5) { 1853 length = 5 1854 } 1855 for(let n=0;n<length;n++){ 1856 let html2 = `<li><svg viewBox="0 0 24 24" xmlns="https://hokiku.io/images/2025/02/10/logo.png"><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>` 1857 $(".group-recent ul").append(html2) 1858 } 1859 } 1860 } 1861 console.log(last_search_name, 'Name') 1862 console.log(last_search_url, 'url') 1863 1864 resultsearch.delegate(".item a", "click", function(){ 1865 let name = [last_search_name] 1866 let url = [last_search_url] 1867 name.push($(this).attr('data-title')) 1868 url.push($(this).attr('data-url')) 1869 setCookie("last_search_name",name,7); 1870 setCookie("last_search_url",url,7); 1871 }) 1872 1873 $(".delete-all-history").click(function() { 1874 setCookie("last_search_name",null,0); 1875 setCookie("last_search_url",null,0); 1876 $(".last-search").hide(); 1877 setTimeout(function(){ 1878 location.reload(); 1879 }, 500); 1880 }) 1881 1882 $("#search-trigger").click(function(){ 1883 search_open() 1884 }) 1885 $(".icon-search-mobile").click(function(){ 1886 search_open() 1887 }) 1888 $(".search-header svg").click(function(){ 1889 search_close() 1890 }) 1891 $(".icon-key-mobile").click(function(){ 1892 search_close() 1893 }) 1894 1895 function search_open() { 1896 $("body").addClass("search-popup-open") 1897 $("#nav-mobile-icon, .search-header label, .icon-search-mobile").hide() 1898 $("#search-popup, .search-header svg, .icon-key-mobile").show() 1899 $(".search-popup").focus() 1900 $('.popup-recommend')[0].swiper.update(); 1901 } 1902 function search_close() { 1903 $("body").removeClass("search-popup-open") 1904 $("#nav-mobile-icon, .search-header label, .icon-search-mobile").show() 1905 $("#search-popup, .search-header svg, .icon-key-mobile").hide() 1906 searchInput.val("") 1907 resultsearch.hide() 1908 resultrecommend.show() 1909 } 1910 1911 $(".site-overlay").click(function(){ 1912 search_close() 1913 }) 1914 </script>
1914 1915 1916 </div> 1917 </div> 1918 1919 <div id="PageContainer" class="is-moved-by-drawerx" style="background-color: #000000;"> 1920 <main class="main-content pt-0" role="main"> 1921 1922 <div id="breadcrumbProduct" class="d-none d-lg-block"> 1923 <style> 1924 #breadcrumbProduct { 1925 padding: 20px 0; 1926 } 1927 #breadcrumbProduct ul { 1928 display: flex; 1929 padding: 0; 1930 list-style: none; 1931 margin: 0; 1932 gap: 12px; 1933 } 1934 #breadcrumbProduct ul li { 1935 text-transform: uppercase; 1936 margin: 0; 1937 font-size: 12px; 1938 } 1939 #breadcrumbProduct ul li a { 1940 color: #757575; 1941 } 1942 1943 #breadcrumbProduct ul li svg { 1944 width: 10px; 1945 height: 10px; 1946 padding: 0; 1947 color: #757575; 1948 vertical-align: middle; 1949 } 1950 </style> 1951 <div class="container" style="color: #ffa200;"> 1952 <ul role="navigation" aria-label="breadcrumbs"> 1953 <li><a href="https://basket168what.com/" style="color: #ffa200;">BASKET168</a></li> 1954 <li><svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="7" height="10" viewBox="0 0 7 10" fill="none"> 1955 <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"/> 1956 </svg></li> 1957 <li>BASKET168 DAFTAR</li> 1958 <li>BASKET168 LOGIN</li> 1959 <li>BASKET168 SLOT</li> 1960 <li>BASKET168 LINK ALTERNATIF</li> 1961 1962 </ul> 1963 </div> 1964 1965 </div> 1966 1967
1967<script type="application/ld+json"> 1968 { 1969 "@context": "https://schema.org", 1970 "@type": "Product", 1971 "name": "BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian", 1972 "image": "https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg", 1973 "description": "Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari.", 1974 "brand": { 1975 "@type": "Brand", 1976 "name": "BASKET168" 1977 }, 1978 "sku": "BASKET168", 1979 "mpn": "BASKET168", 1980 "url": "https://basket168what.com/", 1981 "offers": { 1982 "@type": "Offer", 1983 "url": "https://basket168what.com/", 1984 "priceCurrency": "USD", 1985 "price": "10.00", 1986 "priceValidUntil": "2025-12-25", 1987 "itemCondition": "https://schema.org/NewCondition", 1988 "availability": "https://schema.org/InStock", 1989 "seller": { 1990 "@type": "Organization", 1991 "name": "BASKET168" 1992 } 1993 }, 1994 "aggregateRating": { 1995 "@type": "AggregateRating", 1996 "ratingValue": "5.0", 1997 "reviewCount": 858 1998 }, 1999 "review": [ 2000 { 2001 "@type": "Review", 2002 "reviewRating": { 2003 "@type": "Rating", 2004 "ratingValue": "5", 2005 "bestRating": "5" 2006 }, 2007 "author": { 2008 "@type": "Person", 2009 "name": "Hanabi" 2010 } 2011 }, 2012 { 2013 "@type": "Review", 2014 "reviewRating": { 2015 "@type": "Rating", 2016 "ratingValue": "5", 2017 "bestRating": "5" 2018 }, 2019 "author": { 2020 "@type": "Person", 2021 "name": "Hayabusa" 2022 } 2023 } 2024 ] 2025 } 2026 </script>
2026<script type="application/ld+json"> 2027 { 2028 "@context": "https://schema.org", 2029 "@type": "BreadcrumbList", 2030 "itemListElement": [ 2031 { 2032 "@type": "ListItem", 2033 "position": 1, 2034 "name": "BASKET168", 2035 "item": "https://basket168what.com/" 2036 }, 2037 { 2038 "@type": "ListItem", 2039 "position": 2, 2040 "name": "BASKET168 DAFTAR", 2041 "item": "https://basket168what.com/" 2042 }, 2043 { 2044 "@type": "ListItem", 2045 "position": 3, 2046 "name": "BASKET168 LOGIN", 2047 "item": "https://basket168what.com/" 2048 }, 2049 { 2050 "@type": "ListItem", 2051 "position": 4, 2052 "name": "BASKET168 SLOT", 2053 "item": "https://basket168what.com/" 2054 }, 2055 { 2056 "@type": "ListItem", 2057 "position": 5, 2058 "name": "BASKET168 LINK", 2059 "item": "https://basket168what.com/" 2060 }, 2061 { 2062 "@type": "ListItem", 2063 "position": 6, 2064 "name": "BASKET168 SLOT LOGIN", 2065 "item": "https://basket168what.com/" 2066 }, 2067 { 2068 "@type": "ListItem", 2069 "position": 7, 2070 "name": "BASKET168 LINK ALTERNATIF", 2071 "item": "https://basket168what.com/" 2072 }, 2073 { 2074 "@type": "ListItem", 2075 "position": 8, 2076 "name": "BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian", 2077 "item": "https://basket168what.com/" 2078 } 2079 ] 2080 } 2081 </script>
2081 2082 2083 <!--faq--> 2084 2085
2085<script type="application/ld+json" id="faq-schema"> 2086{ 2087 "@context": "https://schema.org", 2088 "@type": "FAQPage", 2089 "mainEntity": [ 2090 { 2091 "@type": "Question", 2092 "name": "1. Apa yang membuat BASKET168 disebut portal login slot eksklusif?", 2093 "acceptedAnswer": { 2094 "@type": "Answer", 2095 "text": "BASKET168 menghadirkan pintu masuk khusus ke koleksi slot eksklusif dari puluhan provider internasional terkemuka, dilengkapi antarmuka premium yang intuitif dan sistem keamanan berlapis untuk memproteksi setiap akun member." 2096 } 2097 }, 2098 { 2099 "@type": "Question", 2100 "name": "2. Bagaimana cara mengetahui game gacor yang tersedia di BASKET168?", 2101 "acceptedAnswer": { 2102 "@type": "Answer", 2103 "text": "BASKET168 menyediakan halaman khusus yang menampilkan daftar game gacor terupdate berdasarkan nilai RTP tertinggi dan performa kemenangan terkini, sehingga member bisa langsung memilih slot dengan peluang terbaik setiap harinya." 2104 } 2105 }, 2106 { 2107 "@type": "Question", 2108 "name": "3. Apa saja jenis bonus harian yang bisa diklaim di BASKET168?", 2109 "acceptedAnswer": { 2110 "@type": "Answer", 2111 "text": "Member aktif BASKET168 berhak atas berbagai bonus harian seperti cashback kekalahan, reload deposit, dan reward spin gratis yang dikreditkan secara otomatis ke akun tanpa perlu klaim manual yang merepotkan." 2112 } 2113 }, 2114 { 2115 "@type": "Question", 2116 "name": "4. Seberapa lengkap koleksi game online yang tersedia di portal ini?", 2117 "acceptedAnswer": { 2118 "@type": "Answer", 2119 "text": "Sangat lengkap. BASKET168 mengumpulkan ribuan judul permainan mulai dari slot klasik, video slot modern, live casino, hingga sports betting semuanya tersaji dalam satu portal tanpa perlu berpindah platform." 2120 } 2121 }, 2122 { 2123 "@type": "Question", 2124 "name": "5. Apakah transaksi deposit dan withdraw di BASKET168 terjamin kecepatannya?", 2125 "acceptedAnswer": { 2126 "@type": "Answer", 2127 "text": "Dijamin. Sistem pembayaran BASKET168 telah terintegrasi dengan berbagai metode transfer lokal dan dompet digital, memastikan proses deposit instan dan pencairan dana yang cepat tanpa potongan tersembunyi." 2128 } 2129 } 2130 ] 2131} 2132</script>
2132 2133
2133<script type="application/ld+json"> 2134 { 2135 "@context": "https://schema.org", 2136 "@type": "Organization", 2137 "name": "BASKET168", 2138 "url": "https://basket168what.com/", 2139 "logo": "https://hokiku.io/images/2025/02/10/logo.png", 2140 "sameAs": [ 2141 "https://www.facebook.com/BASKET168", 2142 "https://twitter.com/BASKET168", 2143 "https://www.instagram.com/BASKET168" 2144 ], 2145 "contactPoint": { 2146 "@type": "ContactPoint", 2147 "telephone": "+62-8946-113-4615", 2148 "contactType": "customer support", 2149 "areaServed": "ID", 2150 "availableLanguage": ["Indonesian", "English"] 2151 } 2152 } 2153 </script>
2153 2154 2155
2155<script type="application/ld+json"> 2156 { 2157 "@context": "https://schema.org", 2158 "@type": "VideoObject", 2159 "name": "BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian", 2160 "description": "Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari.", 2161 "thumbnailUrl": [ 2162 "https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg", 2163 "https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg" 2164 ], 2165 "uploadDate": "2025-09-28T04:19:10-04:00", 2166 "duration": "PT168", 2167 "contentUrl": "https://basket168what.com/" 2168 } 2169 </script>
2169 2170 2171
2171<script type="application/ld+json"> 2172 { 2173 "@context": "https://schema.org", 2174 "@type": "BreadcrumbList", 2175 "itemListElement": [ 2176 { 2177 "@type": "ListItem", 2178 "position": 1, 2179 "name": "Home", 2180 "item": "https://basket168what.com/" 2181 } 2182 ] 2183 } 2184 </script>
2184 2185 2186
2186<script type="application/ld+json"> 2187 { 2188 "@context": "https://schema.org", 2189 "@graph": [ 2190 { 2191 "@type": "Organization", 2192 "@id": "https://basket168what.com/#org", 2193 "name": "BASKET168", 2194 "url": "https://basket168what.com/", 2195 "logo": "https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg" 2196 }, 2197 { 2198 "@type": "WebSite", 2199 "@id": "https://basket168what.com/#website", 2200 "url": "https://basket168what.com/", 2201 "name": "BASKET168", 2202 "publisher": { "@id": "https://basket168what.com/#org" }, 2203 "inLanguage": "id-ID", 2204 "potentialAction": { 2205 "@type": "SearchAction", 2206 "target": "https://basket168what.com/?s={search_term_string}", 2207 "query-input": "required name=search_term_string" 2208 } 2209 }, 2210 { 2211 "@type": "SoftwareApplication", 2212 "@id": "https://basket168what.com/#app", 2213 "name": "BASKET168", 2214 "applicationCategory": "GameApplication", 2215 "operatingSystem": "Android, iOS, Windows", 2216 "offers": { "@type": "Offer", "price": "0", "priceCurrency": "IDR" }, 2217 "aggregateRating": { "@type": "AggregateRating", "ratingValue": 4.9, "ratingCount": 62595 } 2218 } 2219 ] 2220 } 2221 </script>
2221 2222 2223 <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" /> 2224 2225 2226 <style> 2227 .bg-card { 2228 background-color: #000000; 2229 } 2230 </style> 2231 2232 <!-- /templates/product.liquid --> 2233 2234 2235 <!-- <div itemscope itemtype="http://schema.org/Product"> --> 2236 2237 2238 <div class="product-standing-flower" data-product-type="flowerBoard"> 2239 <meta itemprop="url" content="https://basket168what.com/"> 2240 <meta itemprop="image" content="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg"> 2241 2242 2243 2244 <input id="data-sku" type="hidden" value="OBVSTF1086"> 2245 <div class="product-single" style="background-image: url(https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg); background-attachment: fixed;"> 2246 <div id="product-top" class="container"> 2247 <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;"> 2248 <div id="product-image" class="col-lg-7 text-center"> 2249 <div class="product-image"> 2250 <div class="row no-gutters"> 2251 2252 <div id="product-featured-image" class="row w-100"> 2253 2254 <div id="thumb-image-product" class="col-lg-2 col-12 d-none d-lg-block"> 2255 2256 <div class="swiper-container gallery-thumbs" style="min-height: 500px"> 2257 <ul class="list-unstyled slider swiper-wrapper slider-nav ProductThumbs thumbnails" id="ProductThumbsx"> 2258 2259 <li class="swiper-slide" data-type="image"> 2260 <a 2261 href="files/Blossom-Shine-WM.jpg" 2262 data-standard="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg" 2263 data-image="files/Blossom-Shine-WM.jpg" 2264 data-position="1" 2265 class="product-single__thumbnail" 2266 > 2267 <img 2268 class="lazyload w-100" 2269 src="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg" 2270 alt="BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian" 2271 width="" 2272 height="" 2273 > 2274 </a> 2275 </li> 2276 2277 2278 2279 2280 <li class="swiper-slide" data-type="image"> 2281 <a 2282 href="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg" 2283 data-standard="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg" 2284 data-image="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg" 2285 data-position="2" 2286 class="product-single__thumbnail" 2287 > 2288 <img 2289 class="lazyload w-100" 2290 src="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg" 2291 alt="BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian" 2292 width="" 2293 height="" 2294 > 2295 </a> 2296 </li> 2297 2298 2299 2300 2301 <li class="swiper-slide" data-type="image"> 2302 <a 2303 href="files/Blossom-Shine_3-WM.jpg" 2304 data-standard="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengk
2304ap-Bonus-Harian.jpeg" 2305 data-image="files/Blossom-Shine_3-WM.jpg" 2306 data-position="3" 2307 class="product-single__thumbnail" 2308 > 2309 <img 2310 class="lazyload w-100" 2311 src="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg" 2312 alt="BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian" 2313 width="" 2314 height="" 2315 > 2316 </a> 2317 </li> 2318 2319 2320 2321 2322 <li class="swiper-slide" data-type="image"> 2323 <a 2324 href="files/Blossom-Shine_4.jpg" 2325 data-standard="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg" 2326 data-image="files/Blossom-Shine_4.jpg" 2327 data-position="4" 2328 class="product-single__thumbnail" 2329 > 2330 <img 2331 class="lazyload w-100" 2332 src="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg" 2333 alt="BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian" 2334 width="" 2335 height="" 2336 > 2337 </a> 2338 </li> 2339 2340 2341 2342 </ul> 2343 </div> 2344 2345 </div> 2346 2347 <div 2348 id="featured-image-product" 2349 class="col-lg-10 col-12 d-none d-lg-block" 2350 > 2351 <div class="swiper-container gallery-top"> 2352 <div class="swiper-slide product-single__image"> 2353 2354 <div class="product-single__photos slider slider-for" id="ProductPhoto"> 2355 2356 2357 <div class="easyzoom easyzoom--overlay easyzoom--with-thumbnails"> 2358 <a href="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg"> 2359 <img 2360 src="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg" 2361 alt="BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian" 2362 id="ProductPhotoImg" 2363 class="lazyload" 2364 > 2365 2366 </a> 2367 </div> 2368 </div> 2369 2370 </div> 2371 <div class="swiper-slide product-single__video" style="display: none"> 2372 <video 2373 src="https://cdn.shopify.com/videos/c/vp/05d379ea115d41c2bd0f7d08b1496bd9/05d379ea115d41c2bd0f7d08b1496bd9.HD-1080p-7.2Mbps-24002195.mp4" 2374 playsinline 2375 loop 2376 muted 2377 ></video> 2378 </div> 2379 </div> 2380 </div> 2381 </div> 2382 2383 <div id="featured-image-product2" class="col-12 d-lg-none"> 2384 <div class="swiper-container gallery-mobile"> 2385 <ul class="swiper-wrapper"> 2386 <li class="swiper-slide img"> 2387 2388 <img 2389 class="swiper-lazy" 2390 src="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg" 2391 data-src="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg" 2392 alt="BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian" 2393 width="" 2394 height="" 2395 > 2396 2397 </li> 2398 2399 2400 <li class="swiper-slide img"> 2401 2402 <img 2403 class="swiper-lazy" 2404 src="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg" 2405 data-src="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengk
2405ap-Bonus-Harian.jpeg" 2406 alt="BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian" 2407 width="" 2408 height="" 2409 > 2410 2411 </li> 2412 2413 2414 <li class="swiper-slide img"> 2415 2416 <img 2417 class="swiper-lazy" 2418 src="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg" 2419 data-src="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg" 2420 alt="BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian" 2421 width="" 2422 height="" 2423 > 2424 2425 </li> 2426 2427 2428 <li class="swiper-slide img"> 2429 2430 <img 2431 class="swiper-lazy" 2432 src="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg" 2433 data-src="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg" 2434 alt="BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian" 2435 width="" 2436 height="" 2437 > 2438 2439 </li> 2440 2441 2442 </ul> 2443 2444 <div class="swiper-button-prev"><svg class="icon icon-chevron-left" xmlns="https://hokiku.io/images/2025/02/10/logo.png" 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> 2445 <div class="swiper-button-next"><svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="7" height="10" viewBox="0 0 7 10" fill="none"> 2446 <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"/> 2447 </svg></div> 2448 2449 <!-- Add Pagination --> 2450 <div class="swiper-pagination"></div> 2451 2452 </div> 2453 </div> 2454 2455 <div class="product-m-pageleb-video col-12 text-center d-lg-none"> 2456 <!-- product video --> 2457 <style> 2458 .view-video{display:block; margin:auto; padding:5px 10px;font-size:16px;font-weight:bold;border:2px solid #ffffff;background:#fff;} 2459 .view-video .icon-play{fill:#ffffff;vertical-align: middle;} 2460 .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;} 2461 .close-video{position:absolute;right:9px; top:8%;z-index:2;padding:5px;} 2462 .close-video .icon{width:30px;height:30px;} 2463 /*responsive iframe */ 2464 .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);} 2465 .video-container iframe {position: absolute;top:60%;left: 0;width: 100%;height: 100%;} 2466 2467 .youtube { 2468 background-color: #000; 2469 margin-bottom: 30px; 2470 position: relative; 2471 padding-top: 56.25%; 2472 overflow: hidden; 2473 cursor: pointer; 2474 width: 100%; 2475 } 2476 .swiper-slide .youtube { 2477 max-width: 480px; 2478 } 2479 .youtube img { 2480 width: 100%; 2481 top: -16.82%; 2482 left: 0; 2483 opacity: 0.7; 2484 } 2485 .youtube .play-button { 2486 width: 90px; 2487 height: 60px; 2488 background-color: #333; 2489 box-shadow: 0 0 30px rgba( 0,0,0,0.6 ); 2490 z-index: 1; 2491 opacity: 0.8; 2492 border-radius: 6px; 2493 } 2494 .youtube .play-button:before { 2495 content: ""; 2496 border-style: solid; 2497 border-width: 15px 0 15px 26.0px; 2498 border-color: transparent transparent transparent #fff; 2499 } 2500 .youtube img, 2501 .youtube .play-button { 2502 cursor: pointer; 2503 } 2504 .youtube img, 2505 .youtube iframe, 2506 .youtube .play-button, 2507 .youtube .play-button:before { 2508 position: absolute; 2509 } 2510 .youtube .play-button, 2511 .youtube .play-button:before { 2512 top: 50%; 2513 left: 50%; 2514 transform: translate3d( -50%, -50%, 0 ); 2515 } 2516 .youtube iframe { 2517 height: 100%; 2518 width: 100%; 2519 top: 0; 2520 left: 0; 2521 } 2522 </style> 2523 2524 2525 </div> 2526 </div> 2527 2528 <div class="product-desc-add position-relative d-none d-lg-block m-0"> 2529 2530 </div> 2531 2532
2532<script> 2533 if ($(window).width() < 991) { 2534 var direction = 'horizontal' 2535 } else { 2536 var direction = 'vertical' 2537 $(".gallery-thumbs").height($("#ProductPhotoImg").height()) 2538 } 2539 var swiper = new Swiper('.gallery-thumbs', { 2540 2541 direction, 2542 slidesPerView: 4.5, 2543 spaceBetween: 12, 2544 navigation: { 2545 nextEl: '.swiper-button-next', 2546 prevEl: '.swiper-button-prev', 2547 } 2548 }); 2549 2550 var swiper = new Swiper('.gallery-mobile', { 2551 //loop: true, 2552 lazy: true, 2553 speed: 300, 2554 resistance : true, 2555 resistanceRatio : 0, 2556 freeModeMomentumRatio : 0.45, 2557 freeModeMomentumVelocityRatio : 1.5, 2558 navigation: { 2559 nextEl: '.swiper-button-next', 2560 prevEl: '.swiper-button-prev', 2561 }, 2562 pagination: { 2563 el: '.swiper-pagination' 2564 }, 2565 useCSS3Transforms: false, 2566 loop: false, 2567 on: { 2568 init: function () { 2569 console.log('swiper initialized'); 2570 var currentVideo = $("[data-swiper-slide-index=" + this.realIndex + "]").find("video"); 2571 currentVideo.trigger('play'); 2572 }, 2573 }, 2574 }); 2575 2576 /* GET ALL VIDEOS */ 2577 var sliderVideos = $(".swiper-slide video"); 2578 2579 /* SWIPER API - Event will be fired after animation to other slide (next or previous) */ 2580 swiper.on('slideChange', function () { 2581 console.log('slide changed'); 2582 /* stop all videos */ 2583 sliderVideos.each(function( index ) { 2584 this.currentTime = 0; 2585 }); 2586 2587 /* SWIPER GET CURRENT AND PREV SLIDE (AND The VIDEO INSIDE) */ 2588 var prevVideo = $(`[data-swiper-slide-index="${this.previousIndex}]"`).find("video"); 2589 var currentVideo = $(`[data-swiper-slide-index="${this.realIndex}"]`).find("video"); 2590 prevVideo.trigger('stop'); 2591 currentVideo.trigger('play'); 2592 }); 2593 2594 2595 $("[data-video]").click(function(){ 2596 const file = $(this).data("video") 2597 $(".product-single__video").show() 2598 $(".product-single__image").hide() 2599 $(".product-single__video").find("video").attr("src", file) 2600 $(".product-single__video").find("video")[0].play(); 2601 }) 2602 $("[data-image]").click(function(){ 2603 $(".product-single__video").hide() 2604 $(".product-single__image").show() 2605 $(".product-single__video").find("video")[0].pause(); 2606 }) 2607 2608 $("#product-image .swiper-slide").each(function(){ 2609 let width = $(this).width() 2610 $(this).height(width) 2611 }) 2612 2613 $(window).resize(function() { 2614 $("#product-image .swiper-slide").each(function(){ 2615 let width = $(this).width() 2616 $(this).height(width) 2617 }) 2618 }) 2619 </script>
2619 2620 2621 </div> 2622 2623 2624 <div class="grid__item_product-info mb-3"> 2625 <div class="c-pdp-product-info"> 2626 <ul class="c-pdp-product-info__service c-pdp-product-info__service--active"> 2627 <!-- artikel --> 2628 <li> 2629 <strong>BASKET168</strong> tampil sebagai portal login slot eksklusif yang mengkonsolidasikan ribuan pilihan game gacor dari provider kelas dunia dalam satu ekosistem yang terstruktur dan powerful. Platform ini bukan sekadar pintu masuk biasa melainkan gerbang menuju pengalaman slot online premium yang dirancang untuk memaksimalkan setiap peluang kemenangan member dari sesi pertama hingga seterusnya. 2630 </li> 2631 <br> 2632 <li> 2633 Keistimewaan nyata BASKET168 terletak pada sistem bonus harian yang berjalan otomatis tanpa syarat rumit. Setiap member aktif secara konsisten menerima reward harian berupa cashback, reload, maupun free spin yang langsung masuk ke saldo akun menjadikan setiap hari sebagai kesempatan baru untuk menambah modal bermain tanpa harus mengeluarkan biaya ekstra dari kantong sendiri. 2634 </li> 2635 <br> 2636 <li> 2637 Koleksi game online di BASKET168 benar-benar komprehensif, mencakup slot volatilitas tinggi, live dealer casino, hingga arcade interaktif yang terus diperbarui setiap bulannya. Dengan kurasi game berbasis data performa RTP terkini, member tidak perlu menghabiskan waktu untuk mencari sendiri mana slot yang sedang panas semuanya sudah tersaji dalam kategori yang jelas dan mudah dijangkau. 2638 </li> 2639 <br> 2640 <li> 2641 Sebagai portal login slot yang mengedepankan kepercayaan jangka panjang, BASKET168 membangun fondasi operasionalnya di atas transparansi transaksi dan proteksi data yang ketat. Setiap proses deposit maupun penarikan dana ditangani dengan prioritas kecepatan dan akurasi, memastikan member dapat berkonsentrasi penuh pada permainan tanpa kekhawatiran terhadap keamanan aset maupun privasi informasi pribadi mereka. 2642 </li> 2643 2644 </ul> 2645 </div> 2646 </div> 2647 2648 2649 2650 2651 2652 <style> 2653 .c-pdp-product-info__service--active { 2654 font-size: 12px; 2655 padding-left: 10px; 2656 text-align: left; 2657 max-width: 550px; 2658 margin: auto; 2659 color: #fff; 2660 } 2661 .c-pdp-product-info__service--active li { 2662 list-style: disc; 2663 } 2664 .c-pdp-product-info { 2665 background-color: #000000; 2666 padding: 12px; 2667 margin: 0; 2668 } 2669 .freeship em { 2670 font-style: italic; 2671 font-size: 12px !important; 2672 } 2673 2674 2675 </style> 2676 2677
2677<script> 2678 $(document).ready(function(){ 2679 if ( $(".c-pdp-product-info__service li").length == 1 ) { 2680 $(".c-pdp-product-info__service").addClass("no-bullet"); 2681 $(".c-pdp-product-info__service li").addClass("no-bullets"); 2682 } 2683 }); 2684 </script>
2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 </div> 2698 <div id="product-meta" class="col-lg-5 p-0"> 2699 <div class="product-meta"> 2700 <style> 2701 .product-meta--review {margin-top:10px} 2702 .freeship * {font-size: 14px !important;font-style: normal;} 2703 </style> 2704 <h1 itemprop="name" class="mb-2" style="color: rgb(255, 0, 0); font-weight: bold;">BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian</h1> 2705 2706 <div itemprop="offers" itemscope itemtype="http://schema.org/Offer"> 2707 <meta itemprop="priceCurrency" content="IDR"> 2708 2709 <link itemprop="availability" href="https://schema.org/InStock"> 2710
2710<script 2711 type="text/javascript" 2712 src="//platform-api.sharethis.com/js/sharethis.js#property=5acdc0aa3ef3c0001396fd50&product=custom-share-buttons" 2713 async="async" 2714 ></script>
2714 2715 2716 2717 2718 2719 <span class="visually-hidden">Translation missing: en.products.general.regular_price</span> 2720 2721 <span class="visually-hidden">Translation missing: en.products.general.sale_price</span> 2722 2723 <div class="row no-gutters mb-3"> 2724 <span 2725 id="ProductPrice" 2726 class="h2 ProductPrice" 2727 itemprop="price" 2728 content="835000" style="color: #ffffff;" 2729 > 2730 Rp 5.000 2731 </span> 2732 <div class="discount-product-detail"> 2733 <p id="ComparePrice" class="ComparePrice mt-2 mt-lg-0"> 2734 Rp 10.000 2735 </p> 2736 <span class=" tag-discount"> 2737 2738 2739 <span id="newDiscount" class="product-tag persentase-discount hide"> 2740 (90%) 2741 </span><br> 2742 2743 </span> 2744 </div> 2745 </div> 2746 2747 <div class="row no-gutters meta-sds"> 2748 <div class="col-12 mb-2 mb-lg-0 stock-info"> 2749 2750 2751 <span 2752 id="ProductStock-Product" 2753 class="product-single__stock mb-2 hide" 2754 > 2755 2756 2757 2758 2759 Barang dikirim pada 2760 2761 2762 2763 </span> 2764 2765 <style> 2766 .short-desc-desktop { 2767 margin-bottom: 2rem; 2768 color: white; 2769 } 2770 .short-desc ul li:nth-child(n + 4) { 2771 display: none; 2772 } 2773 .short-desc ul li.showList:nth-child(n + 4) { 2774 display: list-item; 2775 } 2776 label.more { 2777 display: none; 2778 } 2779 label.more.showMe { 2780 display: block; 2781 font-size: 12px; 2782 text-transform: uppercase; 2783 font-weight: 700; 2784 cursor: pointer; 2785 } 2786 </style> 2787 2788 <div class="short-desc-desktop d-none d-lg-block"> 2789 <div class="short-desc"> 2790 2791 <p>Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari.</p> 2792 </div> 2793 <label class="more">Show More â</label>
2794 </div><br> 2795 2796 2797
2797<script> 2798 var liCount; 2799 $(document).ready(function () { 2800 $(".short-desc ul").each(function() { 2801 liCount = $(this).children("li").length; 2802 if (liCount > 3) { 2803 $(this).parent(".short-desc").next(".more").addClass("showMe"); 2804 } 2805 }); 2806 2807 $(".more").click(function () { 2808 //$(".short-desc").find("li").addClass("showList"); 2809 // $(this).hide(); 2810 $("#product-desc").find("ul").show() 2811 $('html, body').animate({ 2812 scrollTop: $("#product-desc").offset().top - 250 2813 }, 2000); 2814 $("#product-desc").css("height","auto"); 2815 $("#more_content").remove(); 2816 $(".product-spec").append("<div id='less_content' class='readmore'><span class='less_content'>Less</span></div>") 2817 }); 2818 }); 2819 </script>
2819 2820 2821 2822 </div> 2823 </div> 2824 2825 <div id="purchaseProduct"> 2826 2827 2828 2829 2830 <style> 2831 .variant-metafield { 2832 display: block!important; 2833 width: 1px; 2834 padding: 0; 2835 border-color: #fff; 2836 } 2837 .select2-results__option[aria-disabled] { 2838 display: none; 2839 } 2840 2841 .towel-bordir { 2842 width: 100%; 2843 display: flex; 2844 align-items: center; 2845 justify-content: space-around; 2846 } 2847 </style> 2848 2849 2850 2851 2852
2852<script> 2853 2854 2855 </script>
2855 2856 2857 2858 2859 2860 2861 2862 <select 2863 name="id[]" 2864 id="productSelect" 2865 class="product-single__variants ignore hide hide" 2866 > 2867 2868 2869 2870 <option 2871 2872 selected="selected" 2873 2874 data-sku="OBVSTF1086" 2875 value="44083045826775" 2876 > 2877 Default Title 2878 </option> 2879 2880 2881 2882 </select> 2883 2884
2884<script src="//outerbloom.com/cdn/shop/t/138/assets/jquery.magnific-popup.min.js?v=184369421263510081681752652422" type="text/javascript"></script>
2884 2885 2886
2886<script> 2887 $('.size-chart-open-popup').magnificPopup({ 2888 type:'inline', 2889 midClick: true 2890 }); 2891 </script>
2891 2892 2893 2894 2895 2896 <div class="upload-image-preview"> 2897 2898 2899 2900 2901 2902 <style> 2903 .file-dnd * { 2904 margin: 0; 2905 padding: 0; 2906 box-sizing: border-box; 2907 } 2908 .file-dnd { 2909 width: 100%; 2910 height: 250px; 2911 border: 1px solid #ddd; 2912 border-radius: 10px; 2913 padding: 15px; 2914 display: flex; 2915 flex-direction: column; 2916 gap: 10px; 2917 /* box-shadow: 0px 2px 10px 2px rgba(0,0,0,0.05); */ 2918 margin: auto; 2919 } 2920 .file-dnd input { 2921 display: none; 2922 } 2923 .file-dnd .before-upload { 2924 border: 1px dashed #888; 2925 flex: 1; 2926 border-radius: 5px; 2927 display: flex; 2928 justify-content: center; 2929 align-items: center; 2930 text-align: center; 2931 cursor: pointer; 2932 } 2933 .file-dnd .before-upload > div { 2934 display: flex; 2935 flex-direction: column; 2936 align-items: center; 2937 gap: 8px; 2938 } 2939 .file-dnd .before-upload > div h4 { 2940 width: 150px; 2941 } 2942 .file-dnd .before-upload > div p { 2943 font-size: 12px !important; 2944 color: #555; 2945 } 2946 .file-dnd.active .before-upload { 2947 border: 1px solid #5750d9; 2948 background-color: #f5f5ff; 2949 } 2950 .file-dnd .after-upload { 2951 position: relative; 2952 display: none; 2953 } 2954 .file-dnd .after-upload img { 2955 width: 100%; 2956 border-radius: 5px; 2957 max-height: 180px; 2958 object-fit: contain; 2959 display: block; 2960 } 2961 .file-dnd .after-upload .clear-btn { 2962 position: absolute; 2963 top: 10px; 2964 right: 10px; 2965 background: rgba(255, 255, 255, 0.5); 2966 width: 15px; 2967 height: 15px; 2968 text-align: center; 2969 line-height: 15px; 2970 border-radius: 50%; 2971 color: #fff; 2972 cursor: pointer; 2973 font-size: 14px; 2974 } 2975 </style> 2976 2977 <div 2978 class="file-dnd mb-3" 2979 2980 style="display: none" 2981 2982 > 2983 <label for="upload-photo">Upload your Photo:</label> 2984 <input type="file" id="upload-photo" accept="image/*"> 2985 <input type="hidden" data-properties="Photo"> 2986 <div class="before-upload"> 2987 <div> 2988 <svg id="surface1" xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="33.053" height="41.719" viewBox="0 0 33.053 41.719"> 2989 <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> 2990 <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> 2991 <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> 2992 </svg> 2993 2994 <h4>Drag & Drop Photo file or Browse</h4> 2995 <p>Supports: JPEG, PNG, GIF, TIFF</p> 2996 </div> 2997 </div> 2998 <div class="after-upload"> 2999 <div class="clear-btn">×</div> 3000 <img src="" width="" height=""> 3001 </div> 3002 </div> 3003
3003<script> 3004 function applyDndFile(el) { 3005 const parent = document.querySelector(".file-dnd") 3006 const beforeUploadEl = el.querySelector(".before-upload") 3007 const afterUploadEl = el.querySelector(".after-upload") 3008 const inputFile = el.querySelector("input[type=file]") 3009 const imagePreview = el.querySelector(".after-upload img") 3010 const clearBtn = el.querySelector(".after-upload .clear-btn") 3011 const inputProps = parent.querySelector("[data-properties]"); 3012 3013 async function upload(name, uri, type) { 3014 try { 3015 const filename = name.split('.')[0] 3016 let formData = new FormData(); 3017 formData.append("file", uri); 3018 const response = await fetch(`${host}/upload?name=${filename}&dir=gift&type=${type}`, { 3019 method: "POST", 3020 body: formData 3021 }) 3022 if(response) { 3023 const res = await response.json() 3024 return res 3025 } 3026 } catch(err){ 3027 console.log(err) 3028 } 3029 } 3030 3031 function showImagePreview(img) { 3032 if(img){ 3033 const blobUrl = URL.createObjectURL(img) 3034 imagePreview.src = blobUrl 3035 afterUploadEl.style.display = "block" 3036 beforeUploadEl.style.display = "none" 3037 } 3038 } 3039 3040 beforeUploadEl.addEventListener("click", (e) => { 3041 e.preventDefault() 3042 inputFile.click() 3043 }) 3044 3045 inputFile.addEventListener("change", async (e) => { 3046 e.preventDefault() 3047 showImagePreview(e.target.files[0]) 3048 var uploadData = await upload(e.target.files[0].name, e.target.files[0], e.target.files[0].type) 3049 inputProps.value = uploadData?.url 3050 }) 3051 3052 clearBtn.addEventListener("click", (e) => { 3053 afterUploadEl.style.display = "none" 3054 beforeUploadEl.style.display = "flex" 3055 inputProps.value = "" 3056 }) 3057 3058 beforeUploadEl.addEventListener("dragover", (e) => { 3059 e.preventDefault() 3060 el.classList.add("active") 3061 }) 3062 3063 beforeUploadEl.addEventListener("dragleave", (e) => { 3064 e.preventDefault() 3065 el.classList.remove("active") 3066 }) 3067 3068 beforeUploadEl.addEventListener("drop", async (e) => { 3069 e.preventDefault() 3070 el.classList.remove("active") 3071 showImagePreview(e.dataTransfer.files[0]) 3072 var uploadData = await upload(e.dataTransfer.files[0].name, e.dataTransfer.files[0], e.dataTransfer.files[0].type) 3073 console.log(uploadData) 3074 inputProps.value = uploadData?.url 3075 }) 3076 } 3077 3078 applyDndFile(document.querySelector(".file-dnd")) 3079 3080 $(document).ready(function(){ 3081 $(".variant-swatch").change(function(){ 3082 const v = $(this).val().toLowerCase() 3083 const list = ["photo", "custom one side", "custom two side", "small", "big"] 3084 if(list.some(item => v.includes(item))) return $(".file-dnd").show() 3085 $(".file-dnd").hide() 3086 $(".file-dnd").find("[data-properties]").val("") 3087 $(".after-upload").hide() 3088 $(".before-upload").css("display", "flex") 3089 }) 3090 }) 3091 </script>
3091 3092 3093 </div> 3094 3095 3096 <div class="delivery-city mb-4"> 3097 <a href="https://login.basket168-hahaaa.shop/"> 3098 <center><img src="https://hokiku.io/images/2025/11/16/daftar3.gif" alt="logo-daftar" style="width: 260px; margin-top: -20px;"></center></a><br> 3099 <h4 class="fw-600 text-uppercase mb-15" style="color: rgb(255, 0, 0);">AKSES RESMI BASKET168 HARI INI!</h4> 3100 <div class="row justify-content-between m-0"> 3101 <select id="cities" class="form-control select-search" required> 3102 <option value="">Gabung di BASKET168 - Slot Eksklusif Game Gacor Online Lengkap</option> 3103 </select> 3104 </div> 3105 </div> 3106 3107 <style> 3108 @media (max-width: 768px) { 3109 .select2-search__field { 3110 pointer-events: none !important; 3111 } 3112 3113 .select2-search { 3114 display: none !important; 3115 } 3116 } 3117 </style> 3118 3119
3119<script> 3120 $(document).ready(function() { 3121 // Check if mobile 3122 if (window.innerWidth <= 768) { 3123 // When cities select2 opens on mobile, remove focus from search 3124 $('#cities').on('select2:open', function() { 3125 setTimeout(function() { 3126 $('.select2-search__field').blur(); 3127 $('.select2-search__field').prop('readonly', true); 3128 }, 100); 3129 }); 3130 } 3131 }); 3132 </script>
3132 3133 3134 <style> 3135 .icon-img-footer { 3136 width: 80px; 3137 padding: 0px 5px; 3138 } 3139 @media (min-width: 768px) { 3140 .icon-img-footer { 3141 width: 120px; 3142 } 3143 } 3144 @media (min-width: 992px) { 3145 .icon-img-footer { 3146 width: 120px; 3147 } 3148 } 3149 3150 3151 </style> 3152 <div id="row-delivery-date" class="row m-0 mb-3"> 3153 <h4 class="fw-600 text-uppercase col-12 p-0 mb-15" style="color: rgb(255, 0, 0);">Nikmati akses nyaman di situs Slot resmi bersama BASKET168</h4> 3154 <div id="deliveryDate" class="m-0"></div> 3155 <div id="deliveryDateFull"> 3156 <div class=""> 3157 <input 3158 type="text" 3159 id="full-date" 3160 class="date-full calendarbutton btn steps-btn btn-date-time mb-0" 3161 value="Full Calendar" 3162 > 3163 <label for="full-date"><svg version="1.1" xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="32" height="32" viewBox="0 0 32 32"> 3164 <title>icon-arrow-right</title> 3165 <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> 3166 </svg></label> 3167 </div> 3168 <button class="btnChangeDeliveryDate hide">Change Delivery Date</button> 3169 </div> 3170 <div class="form-group p-0"> 3171 <input type="text" id="propDeliveryDate" required class="hide"> 3172 </div> 3173 </div> 3174 3175 3176 <div id="row-delivery-time" class="row m-0 mb-3"> 3177 <h4 class="text-center fw-600 text-uppercase col-12 mb-15"> 3178 SEO DHIKA 3179 </h4> 3180 <div id="deliveryTime" class="d-flex w-100 m-0"></div> 3181 <div class="form-group p-0"> 3182 <input type="text" id="propDeliveryTime" class="hide" required> 3183 </div> 3184 </div> 3185 3186 3187 3188 3189 3190 <div id="personalizeBtn"> 3191 3192 3193 3194 3195 <button 3196 class="btn text-uppercase w-100 fw-400" 3197 3198 3199 3200 > 3201 3202 customize your flower board 3203 3204 </button> 3205 <div class="button-share-wishlist d-flex justify-content-around mt-3"> 3206 <div class="button-share text-center"> 3207 <p id="shareButton" class="d-flex gap-2"><span>BASKET168</span><svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="15" height="13" viewBox="0 0 15 13" fill="none"> 3208 <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"/> 3209 </svg> 3210 </p> 3211 </div> 3212 <div class="button-wishlist text-center"> 3213 <p id="wishButton" class="d-flex gap-2 wishlist-toggle" data-product-handle="blossom-shine"><span>Wishlist</span><svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="16" height="15" viewBox="0 0 16 15" fill="none"> 3214 <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"/> 3215 </svg> 3216 <!-- 3217 <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="34" height="30" viewBox="0 0 34 30" fill="none"> 3218 <path d="M32.8333 9.23082C32.8333 4.51916 29.0142 0.699158 24.3025 0.699158C21.2 0.699158
321818.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"/> 3219 </svg> 3220 --> 3221 </p> 3222 </div> 3223 </div> 3224 </div> 3225 </div> 3226 <div class="purchasePopup purchasePopupSpotify" style="display: none;"> 3227 <div class="purchaseArea"> 3228 <div class="sectionPurchase sectionPurchaseSpotify"> 3229 <div class="wrapperPurchase"> 3230 <div class="headerPurchase"> 3231 <h3>personalize spotify photo print</h3> 3232 <a class="close-purchase-popup"> 3233 <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="18" height="18" viewBox="0 0 18 18" fill="none"> 3234 <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> 3235 </svg> 3236 </a> 3237 </div> 3238 <div class="contentPurchase"> 3239 <div class="spotifyAddons"></div> 3240 </div> 3241 3242 <div class="purchase-button btn-addon row m-0" style="display: none;"> 3243 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 3244 <button class="back-purchase-button back-addon text-uppercase"> 3245 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://hokiku.io/images/2025/02/10/logo.png"> 3246 <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> 3247 </svg> 3248 <span>Back</span> 3249 </button> 3250 </div> 3251 <div class="col-12 col-lg-10 text-right" style="display: flex;justify-content: end;gap: 20px;"> 3252 <button class="btn next-purchase-button next-addon text-uppercase"> 3253 <span>continue without add-ons</span> 3254 </button> 3255 </div> 3256 </div> 3257 </div> 3258 </div> 3259 </div> 3260 </div> 3261 3262 <style> 3263 #PBarNextFrameWrapper { 3264 display: none; 3265 } 3266 #backgroundPopup { 3267 display: none; 3268 position: fixed; 3269 _position: absolute; 3270 height: 100%; 3271 width: 100%; 3272 top: 0; 3273 left: 0; 3274 background: rgb(117 117 117 / 24%); 3275 z-index: 1; 3276 } 3277 .sectionPurchase { 3278 height: 100%; 3279 position: relative; 3280 max-width: 1344px; 3281 background-color: #fff; 3282 padding: 0; 3283 overflow: hidden; /* Changed from auto to hidden */ 3284 display: flex; 3285 flex-direction: column; 3286 } 3287 .sectionPurchase.purchaseAddonSpotify { 3288 max-width: 1070px!important; 3289 max-height: 765px!important; 3290 } 3291 .sectionPurchaseBoard { 3292 max-width: 872px!important; 3293 max-height: 821px!important; 3294 } 3295 .purchaseAddonSpotify .btn-action { 3296 position: absolute; 3297 bottom: 0; 3298 left: 0; 3299 width: 100%; 3300 display: flex; 3301 gap: 10px; 3302 } 3303 .wrapperPurchase { 3304 position: relative; 3305 height: 100%; 3306 display: flex; 3307 flex-direction: column; 3308 } 3309 3310 /* New styles for scrollable content and sticky button */ 3311 .purchase-content { 3312 flex: 1; 3313 overflow-y: auto; 3314 overflow-x: hidden; 3315 padding: 20px; 3316 } 3317 3318 .purchase-button-wrapper { 3319 position: sticky; 3320 bottom: 0; 3321 background-color: #fff; 3322 border-top: 1px solid #e0e0e0; 3323 padding: 15px 0; 3324 margin-top: auto; 3325 z-index: 10; 3326 } 3327 3328 .purchasePopup { 3329 display: none; 3330 position: fixed; 3331 background: rgb(117 117 117 / 24%); 3332 z-index: 999; 3333 padding: 40px; 3334 font-size: 13px; 3335 top: 0; 3336 left: 0; 3337 width: 100%; 3338 height: 100%; 3339 } 3340 .popupPurchaseClose{ 3341 font-size:14px; 3342 line-height:14px; 3343 right:45px; 3344 top:45px; 3345 position:absolute; 3346 color:#6fa5fd; 3347 font-weight:700; 3348 display:block; 3349 cursor: pointer; 3350 } 3351 3352 .headerPurchase { 3353 margin-bottom: 30px; 3354 display: flex; 3355 justify-content: space-between; 3356 } 3357 3358 .headerPurchase h3 { 3359 font-size: 16px; 3360 text-transform: uppercase; 3361 } 3362 3363 .sectionPurchaseBoard .headerPurchase { 3364 margin-bottom: 15px; 3365 } 3366 3367 .sectionPurchaseBoard .formAddressPurchase { 3368 padding-top: 0; 3369 } 3370 3371 .purchaseArea { 3372 position: relative; 3373 height: 100%; 3374 } 3375 3376 .purchaseArea h4 { 3377 width: 100%; 3378 font-size: 12px; 3379 font-weight: 600; 3380 margin-bottom: 10px; 3381 text-transform: uppercase; 3382 } 3383 3384 .menuPurchase { 3385 margin-bottom: 30px; 3386 } 3387 3388 .menuPurchase ul { 3389 list-style-type: none; 3390 margin: 0; 3391 } 3392 3393 .menuPurchase ul li { 3394 display: inline-block; 3395 border: 1px solid #ffffff; 3396 padding: 5px 20px; 3397 margin-right: 5px; 3398 margin-bottom: 10px; 3399 font-size: 12px; 3400 font-weight: 400; 3401 } 3402 3403 .menuPurchase ul li:hover, .menuPurchase ul li.selected { 3404 background-color: #ffffff; 3405 color: #ffffff; 3406 } 3407 3408 .contentPurchase h5 { 3409 font-size: 12px; 3410 margin-bottom: 10px; 3411 font-weight: 400; 3412 overflow: hidden; 3413 } 3414 3415 /* Card */ 3416 3417 #itemCards { 3418 max-height: 430px; 3419 overflow: auto; 3420 } 3421 3422 .item-cards { 3423 width: 100%; 3424 } 3425 .item-card.selected { 3426 border: 1px solid #ffffff; 3427 } 3428 .item-card:hover { 3429 border: 1px solid #C4C4C4; 3430 } 3431 .item-cards .item-card { 3432 position: relative; 3433 width: calc(33% - 10px); 3434 max-width: calc(33% - 10px); 3435 flex: 0 0 calc(33% - 10px); 3436 margin-bottom: 20px; 3437 } 3438 .item-cards .item-card label, 3439 .item-addons .item-addon label { 3440 position: absolute; 3441 left: 0; 3442 width: 100%; 3443 height: 100%; 3444 } 3445 .item-cards .item-card .card-image img, 3446 .item-addons .item-addon .card-image img { 3447 display: block; 3448 width: 100%; 3449 } 3450 .item-card .card-meta, 3451 .item-addon .card-meta { 3452 padding: 10px 5px 5px; 3453 } 3454 .item-card.selected .card-meta, 3455 .item-addon.selected .card-meta, 3456 .item-card.selected .card-qty { 3457 background-color: #ffffff; 3458 color: #fff; 3459 visibility: visible!important; 3460 } 3461 .item-card:hover .card-meta, 3462 .item-addon:hover .card-meta, 3463 .item-card:hover .card-qty { 3464 background-color: #C4C4C4; 3465 color: #fff; 3466 visibility: visible!important; 3467 } 3468 .item-cards .item-card p, 3469 .item-addons .item-addon p { 3470 font-size: 12px !important; 3471 margin: 0; 3472 font-weight: 600; 3473 } 3474 .item-card .card-meta input, 3475 .item-addon .card-meta input { 3476 display: none; 3477 } 3478 .item-cards .item-card h5, 3479 .item-addons .item-addon h5 { 3480 text-transform: uppercase; 3481 max-height: 35px; 3482 } 3483 3484 @media (max-width: 768px) { 3485 .item-cards .item-card {
3486 width: calc(50% - 10px); 3487 max-width: calc(50% - 10px); 3488 flex: 0 0 calc(50% - 10px); 3489 margin-bottom: 0; 3490 } 3491 } 3492 3493 .card-qty { 3494 display: flex; 3495 padding: 5px; 3496 visibility: hidden; 3497 background-color: #fff !important; 3498 z-index: 999; 3499 } 3500 .card-qty a { 3501 border-width: 1px; 3502 width: 30%; 3503 cursor: pointer; 3504 text-align: center; 3505 align-self: center; 3506 height: 28px; 3507 display: block; 3508 position: relative; 3509 } 3510 .card-qty a svg { 3511 position: absolute; 3512 top: 50%; 3513 left: 50%; 3514 transform: translate(-50%, -50%); 3515 text-align: center; 3516 } 3517 input.btn-qty { 3518 border-width: 0px; 3519 border-radius: 0; 3520 background-color: #fff; 3521 -webkit-appearance: none; 3522 box-shadow: none !important; 3523 -webkit-box-shadow: none !important; 3524 -moz-box-shadow: none!important; 3525 width: 40%; 3526 border-left: 1px solid #c4c4c4; 3527 border-right: 1px solid #c4c4c4; 3528 padding: 0; 3529 } 3530 3531 .sectionPurchaseBoard #itemAddons .item-card { 3532 width: calc(20% - 15px); 3533 max-width: calc(20% - 15px); 3534 flex: 0 0 calc(20% - 15px); 3535 } 3536 3537 .purchase-button { 3538 width: 100%; 3539 padding: 0; /* Reset padding as it's now handled by wrapper */ 3540 margin: 0; 3541 } 3542 3543 .sectionPurchaseBoard .purchase-button { 3544 margin-top: 0 !important; /* Reset margin */ 3545 } 3546 3547 .back-purchase-button, .back-spotify { 3548 width: 139px; 3549 border: 1px solid; 3550 height: 43px; 3551 } 3552 .purchase-button .btn { 3553 width: 297px; 3554 height: 43px; 3555 background-color: #ffffff; 3556 color: #ffffff; 3557 } 3558 .purchase-button .btn[disabled] { 3559 background-color: #EEEEEE; 3560 } 3561 .back-purchase-button svg, .back-spotify svg { 3562 align-self: center; 3563 vertical-align: middle; 3564 margin-right: 10px; 3565 } 3566 3567 #purchaseProduct .row .error { 3568 font-size: 12px !important; 3569 color: orange; 3570 margin-top: 5px; 3571 } 3572 3573 .reviewCardPurchase { 3574 max-width: 448px; 3575 float: right; 3576 } 3577 3578 .addonsPurchase .addon-item {display: flex;justify-content: space-between;} 3579 .addon-item * {align-self: center;font-size: 12px;} 3580 .addon-itm-title {width: 360px;} 3581 .addon-itm-line-price {color: #757575;width: 80px;justify-content: space-between;display: flex;} 3582 3583 .propsAddonSpotify p { 3584 margin: 0; 3585 display: flex; 3586 font-size: 12px !important; 3587 margin-bottom: 5px; 3588 } 3589 .propsAddonSpotify p span:first-child { 3590 text-transform: uppercase; 3591 font-weight: 600; 3592 -ms-flex: 0 0 150px; 3593 flex: 0 0 150px; 3594 max-width: 150px; 3595 } 3596 3597 .addonsPurchase .addons { 3598 max-height: 250px; 3599 overflow: auto; 3600 } 3601 3602 .btn .loading:after { 3603 content: ""; 3604 display: inline-block; 3605 width: 20px; 3606 height: 20px; 3607 padding: 3px; 3608 aspect-ratio: 1; 3609 border-radius: 50%; 3610 background: #FFFFFF; 3611 --_m: conic-gradient(#0000 10%, #ffffff), linear-gradient(#ffffff 0 0) content-box; 3612 -webkit-mask: var(--_m); 3613 mask: var(--_m); 3614 -webkit-mask-composite: source-out; 3615 mask-composite: subtract; 3616 animation: l3 1s infinite linear; 3617 margin: auto; 3618 vertical-align: middle; 3619 margin-left: 10px; 3620 } 3621 3622 #qrcode img, #qrcode canvas { 3623 width: 50px; 3624 position: absolute; 3625 top: 12px; 3626 left: 16px; 3627 } 3628 3629 .t-preview { 3630 position: absolute; 3631 top: 17px; 3632 left: 75px; 3633 } 3634 .t-preview p { 3635 margin: 0; 3636 font-size: 12px !important; 3637 } 3638 .t-preview .h3 { 3639 font-size: 16px !important; 3640 margin-bottom: 5px; 3641 font-weight: 600; 3642 } 3643 .scanCard { 3644 width: 100%; 3645 border: 1px solid; 3646 height: 76px; 3647 background-color: #fff; 3648 } 3649 .scanCard > div > img { 3650 position: absolute; 3651 right: 0; 3652 width: 55px; 3653 } 3654 3655 @keyframes l3 { 3656 100% { 3657 transform: rotate(1turn); 3658 } 3659 } 3660 3661 @media (min-width: 991px) { 3662 .sectionPurchase { 3663 height: 100%; 3664 position: relative; 3665 max-width: 1344px; 3666 background-color: #fff; 3667 top: 50%; 3668 left: 50%; 3669 transform: translate(-50%, -50%); 3670 } 3671 .headerPurchase h3 { 3672 font-size: 20px; 3673 } 3674 .purchaseArea h4 { 3675 font-size: 16px; 3676 } 3677 3678 .menuPurchase ul li { 3679 font-size: 16px; 3680 } 3681 3682 .contentPurchase { 3683 margin-bottom: 30px; 3684 } 3685 .contentPurchase h5 { 3686 font-size: 16px; 3687 } 3688 3689 .item-cards .item-card p, 3690 .item-addons .item-addon p { 3691 font-size: 16px !important; 3692 } 3693 3694 .cards { 3695 float: right; 3696 width: 400px; 3697 } 3698 3699 .item-cards .item-card { 3700 width: calc(25% - 30px); 3701 max-width: calc(25% - 30px); 3702 flex: 0 0 calc(25% - 30px); 3703 } 3704 3705 #itemAddons .item-card { 3706 position: relative; 3707 width: calc(16% - 40px); 3708 max-width: calc(16% - 40px); 3709 flex: 0 0 calc(16% - 40px); 3710 } 3711 3712 .purchase-button-wrapper { 3713 padding: 10px 20px; 3714 } 3715 } 3716 3717 @media (max-width: 1200px) { 3718 .item-cards .item-card { 3719 width: calc(33% - 30px); 3720 max-width: calc(33% - 30px); 3721 flex: 0 0 calc(33% - 30px); 3722 } 3723 } 3724 3725 @media (max-width: 992px) { 3726 .purchasePopup { 3727 padding: 0; 3728 } 3729 .item-cards .item-card h5, 3730 .item-addons .item-addon h5 { 3731 max-height: 30px; 3732 } 3733 3734 .back-purchase-button, .back-spotify, .next-purchase-button { 3735 width: 100%; 3736 } 3737 .addon-itm-title { 3738 width: 300px; 3739 } 3740 .addon-itm-line-price { 3741 margin-right: 10px; 3742 } 3743 .t-preview { 3744 top: 10px; 3745 } 3746 3747 .card-qty a { 3748 height: 15px; 3749 } 3750 3751 .purchase-button-wrapper { 3752 padding: 15px; 3753 } 3754 } 3755 3756 @media (max-width: 576px) { 3757 .purchase-button .btn { 3758 width: 100%!important; 3759 } 3760 .purchase-button > .col-12 { 3761 padding-left: 0; 3762 padding-right: 0; 3763 } 3764 } 3765 </style> 3766 3767 3768 <div class="purchasePopup"> 3769 <div class="purchaseArea"> 3770 3771 <div class="sectionPurchase purchasePersonalize sectionPurchaseBoard"> 3772 <div class="wrapperPurchase"> 3773 <div class="purchase-content"> 3774 <div class="headerPurchase"> 3775 <h3 class="text-uppercase"> 3776 3777 customize your flower board 3778 3779 </h3> 3780 <a class="close-purchase-popup"> 3781 <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="18" height="18" viewBox="0 0 18 18" fill="none"> 3782 <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"/> 3783 </svg> 3784 </a> 3785 3786 </div> 3787 <div class="contentPurchase"> 3788 <div class="row"> 3789 3790 <div class="col-12"> 3791 3792 3793 <style> 3794 3795 3796 .customize-papan .group-field-1 .input-field {float: left;width: 100%;height: 317px;background-color: #E5E5EA;} 3797 .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;} 3798 3799 .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;} 3800 .customize-papan .btn-upload-papan svg {width: 21px;height: 25px;display: block;align-self: center;margin: auto;margin-bottom: 12px;} 3801 .svgLogoPapan {position: absolute;width: 100%;top: 50%;left: 50%;transform: translate(-50%, -50%);text-align: center;} 3802 .svgLogoPapan p {color: #8E8E93; margin: 0;} 3803 .svgLogoPapan p span {font-size: 12px;color: #FF0E00;} 3804 .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;} 3805 #suggest-messages {position: absolute;bottom: 5px;left: 5px;} 3806 #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;} 3807 .case-occasion .nice-select:after {border-bottom: 2px solid #333;border-right: 2px solid #333;right: 20px;top: 42%;width: 10px;height: 10px;} 3808 .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;} 3809 .customize-papan .input-field .limit {position: absolute;right: 15px;top: 0;color: #757575;} 3810 3811 @media (min-width: 991px) { 3812 .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);} 3813 .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);} 3814 } 3815 </style> 3816 3817 <input type="hidden" data-properties="penerima" value="-"> 3818 <div class="customize-papan"> 3819 <div class="container"> 3820 <div class="field-papan group-field-1 form-group"> 3821 <div class="input-field">
3822 <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. 3823 (Ex: Selamat Menempuh Hidup Baru A & B)." maxlength="100"></textarea> 3824 <p class="limit">0/100</p> 3825 <div id="suggest-messages"> 3826 <a id="show_note_papan1" href="#"> 3827 <div class="suggest-message" id="note_btn_div1"> 3828 <span class="promo-code-link" id="note_btn_papan1">Contoh Kata WEDDING</span> 3829 </div> 3830 </a> 3831 <a id="show_note_papan2" href="#"> 3832 <div class="suggest-message" id="note_btn_div2"> 3833 <span class="promo-code-link" id="note_btn_papan2">Contoh Kata SELAMAT</span> 3834 </div> 3835 </a> 3836 <a id="show_note_papan3" href="#"> 3837 <div class="suggest-message" id="note_btn_div3"> 3838 <span class="promo-code-link" id="note_btn_papan3">Contoh Kata DUKA CITA</span> 3839 </div> 3840 </a> 3841 </div> 3842 </div> 3843 </div> 3844 <div class="hide"> 3845 <input type="hidden" value="" id="note_id_papan1" name="note_id_papan1" style="top: 0px;"> 3846 <input type="hidden" value="" id="note_btn_id_papan1" name="note_btn_id_papan1"> 3847 </div> 3848 <div class="hide"> 3849 <input type="hidden" value="" id="note_id_papan2" name="note_id_papan2" style="top: 0px;"> 3850 <input type="hidden" value="" id="note_btn_id_papan2" name="note_btn_id_papan2"> 3851 </div> 3852 <div class="hide"> 3853 <input type="hidden" value="" id="note_id_papan3" name="note_id_papan3" style="top: 0px;"> 3854 <input type="hidden" value="" id="note_btn_id_papan3" name="note_btn_id_papan3"> 3855 </div> 3856 <div class="field-papan group-field-2 form-group"> 3857 3858 <label for="logoPapan" onclick="" class="input-field field-logo"> 3859 3860 3861 3862 <div class="btn-upload-papan w-100"> 3863 <?xml version="1.0" encoding="UTF-8"?> 3864 <img src="" style="display:none"> 3865 <div class="svgLogoPapan"> 3866 <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="22" height="26" viewBox="0 0 22 26" fill="none"> 3867 <path d="M6.5 20H15.5V11H21.5L11 0.5L0.5 11H6.5V20ZM0.5 23H21.5V26H0.5V23Z" fill="black"/> 3868 </svg> 3869 <p>Upload Logo <span>*optional</span></p> 3870 </div> 3871 </div> 3872 3873 </label> 3874 3875 <input 3876 type="hidden" 3877 data-properties="papan-logo" 3878 value="" 3879 > 3880 <input 3881 type="file" 3882 id="logoPapan" 3883 accept="image/*" 3884 style="position: absolute;width: 1px;height: 1px;padding: 0" 3885 > 3886 3887 <div class="input-field"> 3888 <input class="has-limit sender-name" type="text" placeholder="Nama Pengirim" data-properties="pengirim" maxlength="35"/> 3889 <p class="limit">0/35</p> 3890 </div> 3891 3892 </div> 3893 3894 </div> 3895 </div> 3896 </div> 3897 3898 </div> 3899 </div> 3900 3901 </div> 3902 <div class="purchase-button-wrapper"> 3903 <div class="purchase-button btn-card row m-0"> 3904 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 3905 3906 </div> 3907 <div class="btn-next-card col-12 col-lg-10 text-right"> 3908 3909 3910 <button 3911 3912 3913 3914 class="btn next-purchase-button text-uppercase" 3915 3916 disabled 3917 3918 > 3919 <span>save your flower board</span> 3920 </button> 3921 </div> 3922 </div> 3923 3924 </div> 3925 </div> 3926 </div> 3927 3928 3929 3930 <div 3931 class="sectionPurchase sectionPurchaseBoard hide" 3932 data-section="address" 3933 > 3934 <div class="wrapperPurchase"> 3935 <div class="purchase-content"> 3936 <div class="headerPurchase"> 3937 <h3> 3938 Complete Your Order 3939 </h3> 3940 <a class="close-purchase-popup"> 3941 <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="18" height="18" viewBox="0 0 18 18" fill="none"> 3942 <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"/> 3943 </svg> 3944 </a> 3945 3946 </div> 3947 <div class="contentPurchase"> 3948 <div class="row"> 3949 <div class="col-12 position-relative"> 3950 <div class="addressPurchase"> 3951 3952 <h4 class="text-uppercase">recipient delivery address</h4> 3953 <p>Share the delivery address to send your heartfelt blooms straight to their door.</p> 3954 3955 <div class="formAddressPurchase row"> 3956 <div class="col-12"> 3957 <form> 3958 <div class="form-group row mb-2 mb-lg-4"> 3959 <div class="col-6 position-relative"> 3960 <input id="first_name" type="text" class="form-control input__field" placeholder="" required> 3961 <label for="first_name" class="input__label">First Name<span>*</span></label> 3962 </div> 3963 <div class="col-6 position-relative"> 3964 <input id="last_name" type="text" class="form-control input__field" placeholder="" required> 3965 <label for="last_name" class="input__label">Last Name<span>*</span></label> 3966 </div> 3967 <input type="hidden" data-properties="nama-penerima"> 3968 </div> 3969 3970 <h4 class="text-uppercase">how you want to input your address</h4> 3971 <div class="form-group row mb-2 mb-lg-4 form-address-upload"> 3972 <div class="col-6 position-relative"> 3973 <label class="address-manualy"> 3974 <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="18" height="17" viewBox="0 0 18 17" fill="none"> 3975 <path d="M3.37484 1.83329C2.79984 1.83329 2.33317 2.29996 2.33317 2.87496V5.16663C2.33317 5.38764 2.24537 5.5996 2.08909 5.75588C1.93281 5.91216 1.72085 5.99996 1.49984 5.99996C1.27882 5.99996 1.06686 5.9
39751216 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
39755 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"/> 3976 </svg> 3977 <span>Input Address Manually</span> 3978 </label> 3979 </div> 3980 <div class="col-6 position-relative"> 3981 <label for="address-upload" class="address-upload"> 3982 <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="12" height="13" viewBox="0 0 12 13" fill="none"> 3983 <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"/> 3984 </svg> 3985 <span>Upload Address Picture</span> 3986 </label> 3987 <input 3988 id="address-upload" 3989 type="file" 3990 accept="image/png, image/jpeg" 3991 style="position: absolute; padding: 0;width: 1px;height: 1px" 3992 > 3993 <input type="hidden" class="props-address-upload" data-properties="foto-alamat"> 3994 </div> 3995 </div> 3996 <img width="150" height="" src="" class="photo-address" style="display: none;"> 3997 3998 <div class="form-group row position-relative mb-2 mb-lg-4 form-address"> 3999 <div class="col-12"> 4000 <textarea 4001 id="delivery_address" 4002 data-properties="alamat-penerima" 4003 class="form-control input__field col-12" 4004 placeholder="" 4005 required 4006 ></textarea> 4007 <label for="delivery_address" class="input__label">Delivery Address<span>*</span></label> 4008 4009 </div> 4010 </div> 4011 <div class="form-group row mb-2 mb-lg-4 form-address"> 4012 <div class="col-6 position-relative"> 4013 <input 4014 id="recipient_number" 4015 type="text" 4016 data-properties="telepon-penerima" 4017 class="form-control input__field" 4018 placeholder="" 4019 required 4020 > 4021 <label for="recipient_number" class="input__label">Recipient number<span>*</span></label> 4022 </div> 4023 <div class="col-6 position-relative"> 4024 <input 4025 id="company" 4026 type="text" 4027 data-properties="company" 4028 class="form-control input__field" 4029 placeholder="" 4030 > 4031 <label for="company" class="input__label">Company (Optional)</label> 4032 </div> 4033 </div> 4034 <div class="form-group row mb-2 mb-lg-4 form-address"> 4035 <div class="col-6 position-relative"> 4036 <input 4037 id="province" 4038 type="text" 4039 class="form-control input__field" 4040 placeholder="" 4041 value="Jakarta" 4042 data-properties="province" 4043 > 4044 <label for="province" class="input__label">Province</label> 4045 </div> 4046 <div class="col-6 position-relative"> 4047 <select id="zip" class="form-control select-search" required></select> 4048 </div> 4049 </div> 4050 </form> 4051 </div> 4052 </div> 4053 </div> 4054 <div class="addonsPurchase"> 4055 <h4 class="text-uppercase">add-ons</h4> 4056 <div class="addons"> 4057 <p>No Add-Ons</p> 4058 <!-- 4059 <button class="add-addon"> 4060 <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="12" height="12" viewBox="0 0 12 12" fill="none"> 4061 <path d="M5.5 6.5H0V5.5H5.5V0H6.5V5.5H12V6.5H6.5V12H5.5V6.5Z" fill="black"/> 4062 </svg>
4063 <span>Enhance my moment with Add-ons</span> 4064 </button> 4065 --> 4066 </div> 4067 </div> 4068 </div> 4069 4070 </div> 4071 </div> 4072 4073
4073<script> 4074 document.addEventListener('DOMContentLoaded', function() { 4075 // Detect iOS 4076 var isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; 4077 4078 if (isIOS) { 4079 document.querySelector('.formAddressPurchase').classList.add('ios'); 4080 4081 // iOS specific fixes 4082 var inputs = document.querySelectorAll('.formAddressPurchase .input__field'); 4083 4084 inputs.forEach(function(input) { 4085 // Force enable touch events on iOS 4086 input.style.webkitUserSelect = 'text'; 4087 input.style.webkitTouchCallout = 'default'; 4088 input.style.pointerEvents = 'auto'; 4089 input.style.touchAction = 'manipulation'; 4090 4091 // Add explicit touch event listeners for iOS 4092 input.addEventListener('touchstart', function(e) { 4093 e.stopPropagation(); 4094 this.focus(); 4095 }, { passive: false }); 4096 4097 input.addEventListener('touchend', function(e) { 4098 e.preventDefault(); 4099 e.stopPropagation(); 4100 this.focus(); 4101 this.click(); 4102 }, { passive: false }); 4103 4104 // Force focus on tap for iOS 4105 input.addEventListener('click', function(e) { 4106 e.stopPropagation(); 4107 if (document.activeElement !== this) { 4108 this.focus(); 4109 } 4110 }); 4111 }); 4112 4113 // Fix for label overlapping on iOS 4114 var labels = document.querySelectorAll('.formAddressPurchase .input__label'); 4115 labels.forEach(function(label) { 4116 label.style.pointerEvents = 'none'; 4117 label.addEventListener('touchstart', function(e) { 4118 e.preventDefault(); 4119 var input = this.parentNode.querySelector('.input__field'); 4120 if (input) { 4121 input.focus(); 4122 } 4123 }); 4124 }); 4125 } 4126 4127 // Handle input state for all browsers, especially iOS 4128 var inputs = document.querySelectorAll('.input__field'); 4129 4130 inputs.forEach(function(input) { 4131 // Handle input events 4132 input.addEventListener('input', function() { 4133 if (this.value.trim() !== '') { 4134 this.classList.add('has-value'); 4135 } else { 4136 this.classList.remove('has-value'); 4137 } 4138 }); 4139 4140 // Handle focus 4141 input.addEventListener('focus', function() { 4142 this.classList.add('focused'); 4143 // iOS specific: ensure input is visible 4144 if (isIOS) { 4145 setTimeout(function() { 4146 input.scrollIntoView({ behavior: 'smooth', block: 'center' }); 4147 }, 300); 4148 } 4149 }); 4150 4151 // Handle blur 4152 input.addEventListener('blur', function() { 4153 this.classList.remove('focused'); 4154 if (this.value.trim() !== '') { 4155 this.classList.add('has-value'); 4156 } else { 4157 this.classList.remove('has-value'); 4158 } 4159 }); 4160 4161 // Initial check for pre-filled values 4162 if (input.value.trim() !== '') { 4163 input.classList.add('has-value'); 4164 } 4165 }); 4166 4167 // Additional iOS fixes 4168 if (isIOS) { 4169 // Prevent iOS Safari from adding default styling 4170 document.addEventListener('touchstart', function() {}, { passive: true }); 4171 4172 // Fix viewport issues on iOS 4173 var viewport = document.querySelector('meta[name=viewport]'); 4174 if (viewport) { 4175 viewport.setAttribute('content', 4176 'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' 4177 ); 4178 } 4179 } 4180 }); 4181 </script>
4181 4182 </div> 4183 <div class="purchase-button-wrapper"> 4184 <div class="purchase-button btn-address row m-0"> 4185 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 4186 4187 <button class="back-purchase-button back-address text-uppercase"> 4188 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://hokiku.io/images/2025/02/10/logo.png"> 4189 <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"/> 4190 </svg> 4191 <span>Back</span> 4192 </button> 4193 4194 </div> 4195 <div class="btn-next-card col-12 col-lg-10 text-right"> 4196 4197 <!-- 4198 <button class="back-purchase-button back-address text-uppercase mr-lg-2 mb-2 mb-lg-0"> 4199 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://hokiku.io/images/2025/02/10/logo.png"> 4200 <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"/> 4201 </svg> 4202 <span>Back</span> 4203 </button> 4204 --> 4205 4206 4207 <button 4208 4209 id="addtocart-card" 4210 4211 class="btn next-address text-uppercase" 4212 4213 > 4214 <span>add to cart</span> 4215 </button> 4216 </div> 4217 </div> 4218 4219 </div> 4220 </div> 4221 </div> 4222 4223 </div> 4224 </div> 4225 <div id="backgroundPopup"></div> 4226 4227 4228 4229 <input 4230 data-index="1" 4231 type="hidden" 4232 id="properties-delivery-date" 4233 name="properties[Delivery Date]" 4234 value="-" 4235 > 4236 <input 4237 data-index="2" 4238 type="hidden" 4239 id="properties-delivery-time" 4240 name="properties[Delivery Time]" 4241 value="-" 4242 > 4243 <input 4244 data-index="4" 4245 type="hidden" 4246 id="properties-nama-penerima" 4247 name="properties[Nama Penerima]" 4248 value="-" 4249 > 4250 <input 4251 data-index="5" 4252 type="hidden" 4253 id="properties-alamat-penerima" 4254 name="properties[Alamat Penerima]" 4255 value="-" 4256 > 4257 <input 4258 data-index="6" 4259 type="hidden" 4260 id="properties-kodepos" 4261 name="properties[Kodepos]" 4262 value="-" 4263 > 4264 <input data-index="7" type="hidden" id="properties-telepon-penerima" name="properties[Telepon Penerima]"> 4265 4266 4267 <input 4268 data-index="8" 4269 type="hidden" 4270 id="properties-kartu-nama-penerima" 4271 name="properties[Kartu Nama Penerima]" 4272 value="-" 4273 > 4274 4275 <textarea 4276 data-index="9" 4277 type="hidden" 4278 id="properties-kartu-pesan" 4279 name="properties[Kartu Pesan]" 4280 style="display: none" 4281 >-</textarea> 4282 4283 4284 4285 <input 4286 data-index="10" 4287 type="hidden" 4288 id="properties-kartu-nama-pengirim" 4289 name="properties[Kartu Nama Pengirim]" 4290 value="-" 4291 > 4292 4293 <!-- Additional Shipping --> 4294 <input type="hidden" id="properties-kota-pengiriman-province" name="properties[Province]"> 4295 <input 4296 type="hidden" 4297 id="properties-kota-pengiriman-country" 4298 name="properties[Country]" 4299 value="Indonesia" 4300 > 4301 <input type="hidden" id="properties-shipping" name="properties[Shipping]"> 4302 4303 <input type="hidden" id="properties-time" name="properties[Time]"> 4304 <input type="hidden" id="properties-card" name="properties[Card]"> 4305 <input type="hidden" id="properties-addons" name="properties[Addons]"> 4306 4307 <input 4308 type="hidden" 4309 id="properties-company" 4310 name="properties[Company]" 4311 value="" 4312 > 4313
4313<script> 4314 4315 $(document).ready(function(){ 4316 4317 var text_max_papan1=150; 4318 var msg_text_papan1=""; 4319 $('#kartu-ucapan-ucapan').keyup(function(){ 4320 var text_length_papan1=$('#kartu-ucapan-ucapan').val().length; 4321 var msg_text_papan1=$('#kartu-ucapan-ucapan').val(); 4322 }); 4323 4324 var notes_papan1 = [ 4325 4326 [0,"Happy Wedding (nama & nama)."],[1,"Congratulations lovebirds (nama & nama)."],[2,"Selamat berbahagia (nama & nama)."],[3,"Selamat menempuh hidup baru (nama & nama)."] 4327 4328 ]; 4329 $('#show_note_papan1').click(function(event){ 4330 event.preventDefault(); 4331 var idx_papan1=parseInt($('#note_id_papan1').val()); 4332 if(isNaN(idx_papan1)){ 4333 idx_papan1=0; 4334 }else{ 4335 idx_papan1++; 4336 idx_papan1=idx_papan1%notes_papan1.length; 4337 } 4338 var note_papan1=notes_papan1[idx_papan1][1]; 4339 $('#note_id_papan1').val(idx_papan1); 4340 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan1); 4341 $('#msgDelivery').val(note_papan1); 4342 4343 var text_length_papan1=$('#kartu-ucapan-papan').val().length; 4344 var idx_2_papan1=parseInt($('#note_btn_id_papan1').val()); 4345 if(isNaN(idx_2_papan1)){ 4346 idx_2_papan1=0; 4347 }else{ 4348 idx_2_papan1++; 4349 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4350 } 4351 $('#note_btn_id_papan1').val(idx_2_papan1); 4352 //var note_btn=note_btn_text[idx_2][1]; 4353 //$('#note_btn').text(note_btn); 4354 }); 4355 4356 var text_max_papan2=150; 4357 var msg_text_papan2=""; 4358 $('#kartu-ucapan-ucapan').keyup(function(){ 4359 var text_length_papan2=$('#kartu-ucapan-ucapan').val().length; 4360 var msg_text_papan2=$('#kartu-ucapan-ucapan').val(); 4361 }); 4362 4363 var notes_papan2 = [ 4364 4365 [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)."] 4366 4367 ]; 4368 $('#show_note_papan2').click(function(event){ 4369 event.preventDefault(); 4370 var idx_papan2=parseInt($('#note_id_papan2').val()); 4371 if(isNaN(idx_papan2)){ 4372 idx_papan2=0; 4373 }else{ 4374 idx_papan2++; 4375 idx_papan2=idx_papan2%notes_papan2.length; 4376 } 4377 var note_papan2=notes_papan2[idx_papan2][1]; 4378 $('#note_id_papan2').val(idx_papan2); 4379 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan2); 4380 $('#msgDelivery').val(note_papan2); 4381 var text_length_papan2=$('#kartu-ucapan-papan').val().length; 4382 var idx_2_papan2=parseInt($('#note_btn_id_papan2').val()); 4383 if(isNaN(idx_2_papan2)){ 4384 idx_2_papan2=0; 4385 }else{ 4386 idx_2_papan2++; 4387 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4388 } 4389 $('#note_btn_id_papan2').val(idx_2_papan2); 4390 //var note_btn=note_btn_text[idx_2][1]; 4391 //$('#note_btn').text(note_btn); 4392 }); 4393 4394 var text_max_papan3=150; 4395 var msg_text_papan3=""; 4396 $('#kartu-ucapan-ucapan').keyup(function(){ 4397 var text_length_papan3=$('#kartu-ucapan-ucapan').val().length; 4398 var msg_text_papan3=$('#kartu-ucapan-ucapan').val(); 4399 }); 4400 4401 var notes_papan3 = [ 4402 4403 [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)."] 4404 4405 ]; 4406 $('#show_note_papan3').click(function(event){ 4407 event.preventDefault(); 4408 var idx_papan3=parseInt($('#note_id_papan3').val()); 4409 if(isNaN(idx_papan3)){ 4410 idx_papan3=0; 4411 }else{ 4412 idx_papan3++; 4413 idx_papan3=idx_papan3%notes_papan3.length; 4414 } 4415 var note_papan3=notes_papan3[idx_papan3][1]; 4416 $('#note_id_papan3').val(idx_papan3); 4417 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan3); 4418 $('#msgDelivery').val(note_papan3);
4419 var text_length_papan3=$('#kartu-ucapan-papan').val().length; 4420 var idx_2_papan3=parseInt($('#note_btn_id_papan3').val()); 4421 if(isNaN(idx_2_papan3)){ 4422 idx_2_papan3=0; 4423 }else{ 4424 idx_2_papan3++; 4425 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4426 } 4427 $('#note_btn_id_papan3').val(idx_2_papan3); 4428 //var note_btn=note_btn_text[idx_2][1]; 4429 //$('#note_btn').text(note_btn); 4430 }); 4431 4432 var text_max_papan4=150; 4433 var msg_text_papan4=""; 4434 $('#kartu-ucapan-ucapan').keyup(function(){ 4435 var text_length_papan4=$('#kartu-ucapan-ucapan').val().length; 4436 var msg_text_papan4=$('#kartu-ucapan-ucapan').val(); 4437 }); 4438 4439 $('#show_note_papan4').click(function(event){ 4440 var notes_papan4 = [ 4441 [0,"Hereâs to youâsteadier, stronger and better every day."], 4442 [1,"Warmest wishes for a speedy recovery!"], 4443 [2,"Dengan ucapan terhangat, semoga lekas membaik dan semakin pulih setiap harinya ya."], 4444 [3,"Semoga lekas sembuh untuk kembali beraktivitas dan berkarya."] 4445 ]; 4446 event.preventDefault(); 4447 var idx_papan4=parseInt($('#note_id_papan4').val()); 4448 console.log(idx_papan4, 'idx_papan4') 4449 if(isNaN(idx_papan4)){ 4450 idx_papan4=0; 4451 }else{ 4452 idx_papan4++; 4453 idx_papan4=idx_papan4%notes_papan4.length; 4454 } 4455 var note_papan4=notes_papan4[idx_papan4][1]; 4456 $('#note_id_papan4').val(idx_papan4); 4457 $('#kartu-ucapan-papan, #properties-kartu-ucapan, #properties-kartu-pesan').val(note_papan4); 4458 console.log(note_papan4, 'note_papan4') 4459 var text_length_papan4=$('#kartu-ucapan-papan').val().length; 4460 var idx_2_papan4=parseInt($('#note_btn_id_papan4').val()); 4461 if(isNaN(idx_2_papan4)){ 4462 idx_2_papan4=0; 4463 }else{ 4464 idx_2_papan4++; 4465 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4466 } 4467 $('#note_btn_id_papan4').val(idx_2_papan4); 4468 }); 4469 4470 /* 4471 $("#jenisPapan").change(function(){ 4472 $( "select option:selected").each(function(){ 4473 if($(this).attr("value")=="Happy Wedding"){ 4474 $("#suggest-messages a").hide(); 4475 $("#show_note_papan1").show(); 4476 $("#kartu-ucapan-papan").val(""); 4477 } 4478 if($(this).attr("value")=="Congratulations"){ 4479 $("#suggest-messages a").hide(); 4480 $("#show_note_papan2").show(); 4481 $("#kartu-ucapan-papan").val(""); 4482 } 4483 if($(this).attr("value")=="Duka Cita"){ 4484 $("#suggest-messages a").hide(); 4485 $("#show_note_papan3").show(); 4486 $("#kartu-ucapan-papan").val(""); 4487 } 4488 }); 4489 }).change(); 4490 */ 4491 4492 4493 4494 4495 4496 $(".variant-metafield").each(function(){ 4497 const t = $(this) 4498 const id = t.attr("id") 4499 const target = $(`[data-select=${id}]`) 4500 t.on('select2:selecting', function(e) { 4501 const data = e.params.args.data 4502 target.val(data.text) 4503 }); 4504 }) 4505 }) 4506 </script>
4506 4507 4508 <div id="popupCart"> 4509 <div class="container"> 4510 <div class="wrapperPopupCart"> 4511 <div class="headerPopupCart"> 4512 <div class="d-flex pl-5 pr-5 p-4"> 4513 <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="16" height="12" viewBox="0 0 16 12" fill="none"> 4514 <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"/> 4515 </svg> 4516 <span>item added to your cart</span> 4517 </div> 4518 <a class="close-purchase-popup"> 4519 <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="18" height="18" viewBox="0 0 18 18" fill="none"> 4520 <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"/> 4521 </svg> 4522 </a> 4523 4524 </div> 4525 <div class="contentPopupCart"> 4526 <div class="pl-5 pr-5 p-4"> 4527 <div class="itemContent row m-0 justify-content-between"> 4528 <div class="col-2 align-self-center"> 4529 4530 <img 4531 class="d-block" 4532 width="80" 4533 src="//outerbloom.com/cdn/shop/files/Blossom-Shine-WM_80x.jpg?v=1695788426" 4534 > 4535 </div> 4536 <div class="col-10 align-self-center"> 4537 <div class="row pl-3"> 4538 <div class="col-12 col-lg-7"> 4539 <span class="titleCartPopup text-uppercase">BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian</span> 4540 </div> 4541 <div class="d-flex justify-content-end col-12 col-lg-5"> 4542 <span class="deleteCartPopup hide">Delete</span> 4543 <span class="lineCartPrice align-self-center">Rp 5.000</span> 4544 </div> 4545 </div> 4546 </div> 4547 </div> 4548 <div class="itemProperties"> 4549 4550 <div class="propDeliver"> 4551 <h4>delivery option detail</h4> 4552 <p> 4553 <span>delivery city</span> 4554 <span class="propDeliveryCity">jakarta</span> 4555 </p> 4556 <p> 4557 <span>delivery date</span> 4558 <span class="propDeliveryDate">24/03/2025</span> 4559 </p> 4560 <p> 4561 <span>delivery time</span> 4562 <span class="propDeliveryTime">Afternoon | 13:00 - 18:00</span> 4563 </p> 4564 </div> 4565 <div class="propAddress"> 4566 <h4>delivery option detail</h4> 4567 <p> 4568 <span>RECIPIENT NAME</span> 4569 <span class="propDeliveryName">jane doe</span> 4570 </p> 4571 <p> 4572 <span>delivery address</span> 4573 <span class="propDeliveryAddress" 4574 >Jl. Gatot Subroto No. 25, RT.2/RW.4, Kuningan Barat, Kecamatan Mampang Prapatan, Kota Jakarta 4575 Selatan, Daerah Khusus Ibukota Jakarta 12710, Indonesia</span 4576 > 4577 </p> 4578 <p> 4579 <span>recipient phone number</span> 4580 <span class="propDeliveryPhone">(+62) 812-3456-7890</span> 4581 </p> 4582 <p> 4583 <span>PROVINCE</span> 4584 <span class="propDeliveryProv">Jakarta</span> 4585 </p> 4586 <p> 4587 <span>postal code</span> 4588 <span class="propDeliveryZip">12710</span> 4589 </p> 4590 4591 4592 </div> 4593 4594 </div> 4595 <div class="itemAddonCart"> 4596 <div class="toggleAddonCart d-flex justify-content-between"> 4597 <h4>add-ons (0)</h4> 4598 <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="5" height="9" viewBox="0 0 5 9" fill="none"> 4599 <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"/> 4600 </svg> 4601 </div> 4602 <div class="wrapperItemAddonCart"></div> 4603 </div> 4604 4605 </div> 4606 </div>
4607 <div class="footerPopupCart"> 4608 <div class="row m-0 pl-5 pr-5 p-4"> 4609 <a class="btn btnViewCart w-100 text-uppercase text-center" href="/cart">View Cart</a> 4610 <a class="btn btnViewCheckout w-100 text-uppercase text-center" href="/checkout"><span>Checkout</span></a> 4611 <a class="btnContinueShopping w-100 text-center" href="/">Continue shopping</a> 4612 </div> 4613 </div> 4614 </div> 4615 </div> 4616 </div> 4617 4618 4619
4619<script> 4620 const shareButton = document.getElementById('shareButton'); 4621 4622 shareButton.addEventListener('click', () => { 4623 if (navigator.share) { 4624 navigator.share({ 4625 title: "BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian", 4626 url: "/products/blossom-shine", 4627 text: 'Check out this page!' 4628 }) 4629 .then(() => console.log('Successful share')) 4630 .catch((error) => console.log('Error sharing', error)); 4631 } else { 4632 alert('Web Share API is not supported in this browser.'); 4633 } 4634 }); 4635 4636 // Inventory validation function 4637 function checkInventoryStatus() { 4638 const productSelect = document.getElementById('productSelect'); 4639 const purchaseButton = document.querySelector('#personalizeBtn button'); 4640 4641 if (!productSelect || !purchaseButton) return; 4642 4643 const selectedVariantId = productSelect.value; 4644 4645 // Get variant data from Shopify 4646 fetch(`/products/blossom-shine.js`) 4647 .then(response => response.json()) 4648 .then(product => { 4649 const selectedVariant = product.variants.find(variant => variant.id == selectedVariantId); 4650 4651 if (selectedVariant) { 4652 const isOutOfStock = selectedVariant.inventory_quantity <= 0 && 4653 selectedVariant.inventory_management === 'shopify' && 4654 selectedVariant.inventory_policy !== 'continue'; 4655 4656 if (isOutOfStock) { 4657 purchaseButton.disabled = true; 4658 purchaseButton.textContent = 'Out of Stock'; 4659 purchaseButton.setAttribute('data-out-of-stock', 'true'); 4660 purchaseButton.style.backgroundColor = '#cccccc'; 4661 purchaseButton.style.cursor = 'not-allowed'; 4662 } else { 4663 // Check if button was disabled due to other conditions 4664 4665 4666 4667 4668 4669 4670 4671 4672 const isOtherDisabled = false || true || false; 4673 4674 if (!isOtherDisabled) { 4675 purchaseButton.disabled = false; 4676 purchaseButton.textContent = 'customize your flower board'; 4677 purchaseButton.removeAttribute('data-out-of-stock'); 4678 purchaseButton.style.backgroundColor = ''; 4679 purchaseButton.style.cursor = ''; 4680 } 4681 } 4682 } 4683 }) 4684 .catch(error => { 4685 console.error('Error checking inventory:', error); 4686 }); 4687 } 4688 4689 // Check inventory on page load 4690 document.addEventListener('DOMContentLoaded', function() { 4691 checkInventoryStatus(); 4692 4693 // Listen for variant changes 4694 const productSelect = document.getElementById('productSelect'); 4695 if (productSelect) { 4696 productSelect.addEventListener('change', checkInventoryStatus); 4697 } 4698 }); 4699 4700 // Prevent form submission if out of stock 4701 document.addEventListener('click', function(e) { 4702 if (e.target.matches('button[data-out-of-stock="true"]')) { 4703 e.preventDefault(); 4704 e.stopPropagation(); 4705 alert('This product is currently out of stock and cannot be purchased.'); 4706 return false; 4707 } 4708 }); 4709 </script>
4709 4710 4711 4712 4713 </div> 4714 4715 </div> 4716 </div> 4717 </div> 4718 </div> 4719 <div id="product-bottom"> 4720 4721 <div class="product-description rte bg-card col-12 py-3 px-0 m-0" itemprop="description"> 4722 <div class="container"> 4723 4724 4725 4726 4727 4728 <div class="short-desc-mobile d-block d-lg-none mb-3"> 4729 <div class="short-desc"> 4730 <ul> 4731 <li><strong>Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari.</strong></li> 4732 </div> 4733 <label class="more-mobile">Show More â</label> 4734 </div> 4735 4736 <style> 4737 .animated-title { 4738 text-align: center; 4739 font-weight: bold; 4740 color: #079c02; 4741 font-size: 28px; 4742 position: relative; 4743 animation: glow 2s infinite alternate, moveUpDown 3s infinite; 4744 } 4745 4746 /* Efek glow / bercahaya hijau */ 4747 @keyframes glow { 4748 0% { text-shadow: 0 0 5px #079c02; color: #079c02; } 4749 50% { text-shadow: 0 0 20px #00ff55; color: #12d12b; } 4750 100% { text-shadow: 0 0 10px #1bff00; color: #079c02; } 4751 } 4752 4753 /* Efek gerakan naik turun */ 4754 @keyframes moveUpDown { 4755 0% { transform: translateY(0px); } 4756 50% { transform: translateY(-5px); } 4757 100% { transform: translateY(0px); } 4758 } 4759 </style> 4760 4761
4761<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/shopify-cartjs/1.1.0/cart.min.js"></script>
4761 4762
4762<script> 4763 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}); 4764 4765 const productType = $("[data-product-type]").data("product-type") 4766 const productDate = Date.parse(new Date()) 4767 4768 const shop = 'outerbloom1.myshopify.com' 4769 const host = 'https://app.asmaraku.com' 4770 // const host = 'http://localhost:5001' 4771 4772 const gsheet = "https://script.google.com/macros/s/AKfycbyqa6mPD6lVjU6hiHr12J8URZ2aJBGyxBsGQ0QtEIDari-rBk_9vSOITjSSmUXL1NwxEg/exec" 4773 4774 const qrID = "041025" + randomString(4, 'aAbCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ') 4775 4776 $("#properties-time").val(new Date().getTime()) 4777 4778 const isIOS = /iPhone|iPad|iPod/i.test(navigator.userAgent); 4779 4780 if(!isIOS) { 4781 $("#full-date").attr("type", "button") 4782 } 4783 4784 let dateTime = new Date(); 4785 let today = dateTime.getDate(); 4786 let day = dateTime.getDay(); 4787 let hour = dateTime.getHours(); 4788 let min = dateTime.getMinutes(); 4789 let timeOfDay = hour + (min / 100); 4790 4791 async function getFetch(url) { 4792 const response = await fetch(url); 4793 let status = false 4794 let result 4795 if(response.ok) { 4796 status = true 4797 result = await response.json(); 4798 } 4799 return { 4800 status, 4801 data: result 4802 } 4803 } 4804 4805 4806 4807 function setCookie(cname, cvalue, exMins) { 4808 var d = new Date(); 4809 d.setTime(d.getTime() + (exMins*60*1000)); 4810 var expires = "expires="+d.toUTCString(); 4811 document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; 4812 } 4813 4814 function getCookie(cname) { 4815 let name = cname + "="; 4816 let decodedCookie = decodeURIComponent(document.cookie); 4817 let ca = decodedCookie.split(';'); 4818 for(let i = 0; i <ca.length; i++) { 4819 let c = ca[i]; 4820 while (c.charAt(0) == ' ') { 4821 c = c.substring(1); 4822 } 4823 if (c.indexOf(name) == 0) { 4824 return c.substring(name.length, c.length); 4825 } 4826 } 4827 return ""; 4828 } 4829 4830 async function renderDate() { 4831 let dataDate = await getFetch(`${host}/api/shipping/date?domain=${shop}&productId=8144957800663&v=${Date.now()}`); 4832 console.log(dataDate, 'renderDate') 4833 const data = dataDate?.data 4834 const date = data.date 4835 const time = data.time 4836 4837 console.log(date, 'DATE') 4838 4839 const weekday = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]; 4840 const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; 4841 const htmlDate = [] 4842 for(let i = 0;i < date.length;i++) { 4843 const full = date[i].date 4844 const d = new Date(date[i].date); 4845 const day = weekday[d.getDay()]; 4846 const dt = d.getDate(); 4847 const mt = monthly[d.getMonth()]; 4848 const yr = d.getFullYear(); 4849 const isDate = Boolean(date[i].isEnabled) 4850 const cutoffpagi = date[i].cutoff?.pagi 4851 const cutoffsiang = date[i].cutoff?.siang 4852 const cutoffMalam = date[i].cutoff?.Malam 4853 var html = ` 4854 <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'}> 4855 ${dt === today ? 4856 `Today<span>${dt < 10 ? '0' + dt : dt}</span>` : 4857 `${day}<span>${dt < 10 ? '0' + dt : dt}</span>` 4858 } 4859 </button> 4860 ` 4861 htmlDate.push(html) 4862 } 4863 const htmlTime = [] 4864 for(var i = 0;i < time.length;i++) { 4865 const timeText = time[i].text 4866 const timeTime = time[i].time 4867 const timeEnabled = time[i].isEnabled 4868 var html = ` 4869 <button class="time-single calendarbutton2 btn steps-btn" data-time="${timeText}" ${timeEnabled ? '' : 'disabled'}>${timeText}<br/>${timeTime}</button> 4870 ` 4871 htmlTime.push(html) 4872 } 4873 const deliveryDate = document.getElementById("deliveryDate"); 4874 if(deliveryDate) { 4875 deliveryDate.insertAdjacentHTML("afterbegin", htmlDate.join('')) 4876 $("#deliveryTime").html(htmlTime) 4877 if(productType !== '') { 4878 console.log("clarity event " + productType + ' calendaring') 4879 window.clarity("event", `${productType} calendaringSchedule`) 4880 // window.clarity("set", productType, `calendaringSchedule - ${productDate}`) 4881 } 4882 } 4883 } 4884 4885 async function getProvince(city) { 4886 let { data: { province } } = await getFetch(`${host}/api/shipping/address/province?city=${city}`); 4887 console.log(province, 'province') 4888 $("#province").val(province) 4889 } 4890 4891 async function renderAddress() { 4892 let current 4893 if(getCookie("location_delivery")){ 4894 current = getCookie("location_delivery").charAt(0).toUpperCase() + getCookie("location_delivery").slice(1) 4895 } 4896 let address = await getFetch(`${host}/api/shipping/address?domain=${shop}&productId=8144957800663`); 4897 console.log(address) 4898 const data = address?.data?.city 4899 const htmlAddress = [] 4900 const grouping = []
4901 for(let i = 0;i < data?.length;i++) { 4902 if(data[i]){ 4903 if(data[i]?.group) { 4904 grouping.push(data[i].group) 4905 } 4906 const price = rupiah.format(data[i]?.rate) 4907 let promo = '(Promo Free Delivery)' 4908 if(data[i]?.name === 'Jakarta - PickUp ASHTA'){ 4909 promo = '(at SCBD, Ashta)' 4910 } else if(data[i]?.name === 'Jakarta - PickUp ITC'){ 4911 promo = '(at Kuningan, ITC Kuningan)' 4912 } else if(data[i]?.name === 'BSD - PickUp'){ 4913 promo = '(at Goldfinch Gading Serpong)' 4914 } else if(data[i]?.name === 'Kota Lainnya'){ 4915 promo = '' 4916 } 4917 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>`) 4918 } 4919 } 4920 4921 const deliveryCity = document.getElementById("cities"); 4922 if(deliveryCity) { 4923 deliveryCity.insertAdjacentHTML("beforeend", htmlAddress.join('')) 4924 if(!isIOS) { 4925 $(deliveryCity).select2(); 4926 } 4927 } 4928 } 4929 4930 async function renderZip(v, v2, v3) { 4931 const deliveryZip = document.getElementById("zip"); 4932 if(v === '') { 4933 return 4934 } 4935 let dataZip = await getFetch(`${host}/api/shipping/address/zip?city=${v}&city2=${v2}&city3=${v3}`); 4936 let zip = dataZip?.data?.zip 4937 console.log(zip) 4938 let htmlZip = [] 4939 for(let i = 0; i < zip?.length;i++) { 4940 htmlZip.push(`<option value="${zip[i]?.postalCode} - ${zip[i]?.subdistrict}">${zip[i]?.postalCode} - ${zip[i]?.subdistrict} - ${zip[i]?.city}</option>`) 4941 } 4942 deliveryZip.insertAdjacentHTML("beforeend", htmlZip.join('')) 4943 } 4944 4945 renderDate() 4946 renderAddress() 4947 4948 let rupiah = new Intl.NumberFormat('id-ID', { 4949 style: 'currency', 4950 currency: 'IDR', 4951 maximumFractionDigits: 0, 4952 minimumFractionDigits: 0 4953 }); 4954 4955 async function insertCard(data) { 4956 const response = await fetch(`${host}/api/card/new`, { 4957 method: "POST", 4958 headers: { 4959 'Content-Type': 'application/json', 4960 }, 4961 body: data 4962 }) 4963 const result = await response.json() 4964 let rowIndex = result?.data?.tableRange.split("Outerbloom!A1:J")[1] 4965 $("#greetingCard").attr("data-index", rowIndex) 4966 return result 4967 } 4968 4969 async function updateCard(data){ 4970 const rowIndex = $("#greetingCard").data("index") 4971 const response = await fetch(`${host}/api/card/update?rowIndex=${rowIndex}`, { 4972 method: "PUT", 4973 headers: { 4974 'Content-Type': 'application/json', 4975 }, 4976 body: data 4977 }) 4978 return response 4979 } 4980 4981 function bytesToSize(bytes) { 4982 var sizes = ['b', 'kb', 'mb', 'gb', 'tb', 'p']; 4983 for (var i = 0; i < sizes.length; i++) { 4984 if (bytes <= 1024) { 4985 return bytes + ' ' + sizes[i]; 4986 } else { 4987 bytes = parseFloat(bytes / 1024).toFixed(2) 4988 } 4989 } 4990 return bytes + ' P'; 4991 } 4992 4993 async function uploadMedia(uri, type) { 4994 nameq = $("#properties-nama-penerima").val() 4995 dear = $("#properties-kartu-nama-penerima").val() 4996 card = $("[data-properties=ucapan]").val() 4997 sender = $("#properties-kartu-nama-pengirim").val() 4998 photo = $("#properties-photo").val() 4999 video = $("#properties-video").val() 5000 status = "Product" 5001 5002 const name = qrID 5003 let formData = new FormData(); 5004 formData.append("file", uri); 5005 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 5006 method: "POST", 5007 body: formData 5008 }) 5009 const result = await response.json(); 5010 if(result) { 5011 const url = result.url 5012 if(type === 'image/jpeg') { 5013 $("#properties-photo").val(url) 5014 $(".preview-image").show() 5015 $(".remove-image").show() 5016 photo = url 5017 } else { 5018 $("#properties-video").val(url) 5019 $("#label-input-video span").text("Change File") 5020 $(".case-qrcode-preview p").text("Scan here for a secret message") 5021 $(".remove-media").show() 5022 $("#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>`) 5023 $("[for=input-video]").hide() 5024 video = url 5025 } 5026 $(".case-video-preview").show() 5027 $(".steps-card-preview").removeClass("loading") 5028 // updateCard(nameq, dear, card, sender, photo, video, status) 5029 5030 $(".nextBtn").attr("disabled", false) 5031 } 5032 } 5033 5034 function randomString(length, chars) { 5035 var result = ''; 5036 for (var i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))]; 5037 return result; 5038 } 5039 5040 function getNoteCity(fulldate) { 5041 const h_1 = new Date(new Date().setDate(new Date().getDate() + 1)) 5042 const weekday = ["Min","Sen","Sel","Rab","Kam","Jum","Sab"]; 5043 const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; 5044 const d = new Date(h_1); 5045 const day = weekday[d.getDay()]; 5046 const dt = d.getDate(); 5047 const mt = monthly[d.getMonth()]; 5048 const yr = d.getFullYear(); 5049 const p = $("#cities").parent(".form-group") 5050 } 5051 5052 function disabledSameDay() { 5053 let btnFirst = $("#deliveryDate").find("button:first-child") 5054 let getDay = new Date().getDay(); 5055 5056 5057 5058 if(getDay == 1 || getDay == 2 || getDay == 3 || getDay == 4 || getDay == 5){ 5059 if(hour >= 14.00){ 5060 btnFirst.attr("disabled", true) 5061 } 5062 } else if(getDay == 6){ 5063 if(hour >= 16.00){ 5064 btnFirst.attr("disabled", true) 5065 } 5066 } else if(getDay == 0){ 5067 if(hour >= 16.00){ 5068 btnFirst.attr("disabled", true) 5069 } 5070 } 5071 5072 5073 } 5074 5075 function disabledays(date) { 5076 let ymd = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate(); 5077 //if u have to disable a list of day 5078 let removeDays 5079 5080 5081 5082 removeDays = ["2025-2-13", "2025-2-14"]; 5083 5084 if ($.inArray(ymd, removeDays) >= 0) { 5085 return [false]; 5086 } else { 5087 let day = date.getDay(); 5088 if(day == 0 && date.getDate() == 13 && date.getMonth() == 1){ 5089 return [(day == 0), '']; 5090 } 5091 5092 if(day == 0){ 5093 return [(day == 0), '']; 5094 } 5095 5096 5097 return [(day != 0), '']; 5098 } 5099 } 5100 5101 /* Indonesian initialisation for the jQuery UI date picker plugin. */ 5102 /* Written by Deden Fathurahman ([email protected]). */ 5103 ( function( factory ) { 5104 if ( typeof define === "function" && define.amd ) { 5105 5106 // AMD. Register as an anonymous module. 5107 define( [ "../widgets/datepicker" ], factory ); 5108 } else { 5109 5110 // Browser globals 5111 factory( jQuery.datepicker ); 5112 } 5113 }( function( datepicker ) { 5114 5115 datepicker.regional.id = { 5116 closeText: "Tutup", 5117 prevText: "<mundur", 5118 nextText: "maju>", 5119 currentText: "Today", 5120 monthNames: [ "January","February","March","April","May","Juny", 5121 "July","August","September","October","November","December" ], 5122 monthNamesShort: [ "Jan","Feb","Mar","Apr","May","Jun", 5123 "Jul","Agu","Sep","Oct","Nov","Dec" ], 5124 dayNames: [ "Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu" ], 5125 dayNamesShort: [ "Sun","Mon","Tue","Wed","Thu","Fri","Sat" ], 5126 dayNamesMin: [ "Mg","Sn","Sl","Rb","Km","jm","Sb" ], 5127 weekHeader: "Mg", 5128 dateFormat: "D, dd M", 5129 firstDay: 0, 5130 isRTL: false, 5131 showMonthAfterYear: false, 5132 yearSuffix: "" }; 5133 datepicker.setDefaults( datepicker.regional.id ); 5134 5135 return datepicker.regional.id; 5136 5137 } ) ); 5138 5139 function loadPopup() { 5140 $("#backgroundPopup").fadeIn("slow"); 5141 $(".purchasePopup:not(.purchasePopupSpotify)").fadeIn("slow"); 5142 const firstSection = $(".purchasePopup:not(.purchasePopupSpotify) .sectionPurchase").first() 5143 if(firstSection.hasClass("purchasePersonalize")) { 5144 if(productType !== '') { 5145 console.log("clarity event " + productType + ' personalize') 5146 window.clarity("event", `${productType} cardPersonalization`) 5147 // window.clarity("set", productType, `cardPersonalization - ${productDate}`) 5148 } 5149 } else if (firstSection.hasClass("sectionPurchaseBoard")) { 5150 console.log("clarity event " + productType + ' personalizeBoard') 5151 window.clarity("event", `${productType} personalizeBoard`) 5152 // window.clarity("set", productType, `personalizeBoard - ${productDate}`) 5153 } 5154 firstSection.removeClass("hide") 5155 5156 // Auto-trigger addon loading when addon section becomes visible 5157 setTimeout(function() { 5158 const addonSection = $(".purchaseAddon") 5159 if(addonSection.length > 0 && !addonSection.hasClass("hide")) { 5160 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 5161 $("[data-addon=upsell-all]").trigger("click") 5162 } 5163 } 5164 }, 200) 5165 } 5166 5167 function disablePopup() { 5168 $("#backgroundPopup").fadeOut("slow"); 5169 $(".purchasePopup").fadeOut("slow"); 5170 $("#popupCart").fadeOut("slow"); 5171 } 5172
5173 function scrollTo(parent, div, dur) { 5174 $(parent).animate({ 5175 scrollTop: $(div).offset().top 5176 }, dur); 5177 } 5178 5179 function loadPopupPersonalize() { 5180 const div = "#purchaseProduct" 5181 const p = "html, body, .product-meta" 5182 $("p.error").remove() 5183 loadItemOccasion($("[data-occassion]").eq(0), "greeting-card-all") 5184 const isCity = $("#cities[required]") 5185 const isDate = $("#propDeliveryDate[required]") 5186 const isTime = $("#propDeliveryTime[required]") 5187 // loadPopup() 5188 if(isCity.val() !== '' && isDate.val() !== '' && isTime.val() !== '') { 5189 loadPopup() 5190 } 5191 if(isCity.val() == '') { 5192 isCity.parent(".row").append("<p class='error'>Choose delivery city</p>") 5193 scrollTo(p, div, 500) 5194 } 5195 if(isDate.val() == '') { 5196 isDate.parents(".row").append("<p class='error'>Choose delivery date</p>") 5197 scrollTo(p, div, 500) 5198 } 5199 if(isTime.val() == '') { 5200 isTime.parents(".row").append("<p class='error'>Choose delivery time</p>") 5201 scrollTo(p, div, 500) 5202 } 5203 } 5204 5205 function quantityCounter() { 5206 $(document).on("click", ".item-card.selected .q_up", function () { 5207 var C = $(this).attr("data-id"), 5208 S = 5209 parseInt( 5210 $(this) 5211 .siblings(".quantity-cart-" + C) 5212 .val() 5213 ) + 1; 5214 $(this).attr("data-quantity", S), 5215 $(this) 5216 .siblings(".quantity-cart-" + C) 5217 .val(S); 5218 }), 5219 $(document).on("click", ".item-card.selected .q_down", function () { 5220 var C = $(this).attr("data-id"), 5221 S = parseInt( 5222 $(this) 5223 .siblings(".quantity-cart-" + C) 5224 .val() 5225 ); 5226 0 < S && $(this).attr("data-quantity", S - 1), 5227 0 < S && 5228 $(this) 5229 .siblings(".quantity-cart-" + C) 5230 .val(S - 1); 5231 }); 5232 } 5233 5234 quantityCounter() 5235 5236 const itemAddon = $(".item-card").length 5237 const nofree = $(".nofree").length 5238 5239 const upsell = '' 5240 5241 if(nofree === itemAddon) { 5242 // $("#itemAddons").html("<p>No Items available</p>") 5243 } 5244 5245 $("#itemAddons .item-card").each(function(e){ 5246 $("#itemAddons").attr("data-length", e) 5247 }) 5248 5249 $("[data-addon]").click(function(){ 5250 5251 5252 5253 const t = $(this) 5254 5255 const data = t.data("addon") 5256 5257 $("[data-addon]").removeClass("selected") 5258 t.addClass("selected") 5259 $.get(`https://outerbloom.com/collections/${data}/products.json`, function(data, status){ 5260 const products = data.products 5261 const html = [] 5262 for(let i = 0; i < products.length; i++) { 5263 const id = products[i].id 5264 const variantId = products[i].variants[0].id 5265 const img = products[i].images[0].src 5266 let img2 = img.split('.jpg')[0] 5267 const title = products[i].title 5268 const price = products[i].variants[0].price 5269 const tags = products[i].tags 5270 const qty = products[i].variants[0].available 5271 let type_upsell = '' 5272 if(tags.includes('upsell-item-standing')) { 5273 type_upsell = 'standing' 5274 } 5275 console.log(type_upsell) 5276 if(type_upsell !== '') { 5277 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}"> 5278 5279 <div class="card-image"> 5280 <img src="${img2}_150x.jpg" alt="${title}" width="" height="" /> 5281 </div> 5282 <div class="card-meta"> 5283 <h5>${title}</h5> 5284 <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p> 5285 <input id="card-${variantId}" type="hidden" name="" value="${variantId}"> 5286 </div> 5287 <div class="card-qty"> 5288 <a data-quantity="1" type="submit" id="q_down-${variantId}" class="btn-qty-min q_down drawer-cart" data-id="${variantId}"><svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="12" height="2" viewBox="0 0 12 2" fill="none"><path d="M0 1.90869V0.908691H12V1.90869H0Z" fill="black"/></svg></a> 5289 <input maxlength="3" min="0" class="btn-qty text-center quantity-cart-${variantId}
5289" value="0" data-price=${price} name="quantity"> 5290 <a data-quantity="1" type="submit" class="btn-qty-plus q_up text-green drawer-cart" data-id="${variantId}"><svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="12" height="13" viewBox="0 0 12 13" fill="none"> 5291 <path d="M0 6.87023V5.94715H5.53846V0.408691H6.46154V5.94715H12V6.87023H6.46154V12.4087H5.53846V6.87023H0Z" fill="black"/> 5292 </svg></a> 5293 </div> 5294 </div>` 5295 html.push(body) 5296 } 5297 } 5298 $("#itemAddons .row").html(html.length === 0 ? '<p>No Item available</p>' : html) 5299 $("#itemAddons").attr("data-length", products.length) 5300 // $('#itemAddons')[0].swiper.update(); 5301 }); 5302 }) 5303 5304 async function isAddon(){ 5305 let ids = [] 5306 $("#itemAddons .item-card.selected").each(function(i, e){ 5307 const id = $(this).data("id") 5308 ids.push(id) 5309 }) 5310 console.log(ids) 5311 return ids 5312 } 5313 5314 $("#itemAddons").delegate(".item-card > div:not(.card-qty)", "click", async function(){ 5315 const t = $(this).parent() 5316 const id = t.data("id") 5317 const btn = t.parents(".purchaseAddon").find(".next-purchase-button") 5318 t.toggleClass("selected"); 5319 //$(this).next("input").toggleAttr('name', 'id[]'); 5320 if (t.hasClass('selected')) { 5321 t.find("input").val(1) 5322 t.find("input").attr('name', 'id[]'); 5323 } else { 5324 t.find("input").val(0) 5325 t.find("input").removeAttr('name'); 5326 } 5327 $("#properties-addons").val(addons) 5328 const is = await isAddon() 5329 if(is.length === 0) { 5330 btn.text("continue without add-ons") 5331 return 5332 } 5333 if(is.includes(8835692069079)) { 5334 btn.text("personalize acrylic frame") 5335 } else { 5336 btn.text("Continue") 5337 } 5338 5339 }) 5340 5341 async function myAddon(data) { 5342 const c = $(".addonsPurchase .addons") 5343 let items = [] 5344 5345 const spotifyAddons = $(".spotifyAddons").find("[data-index]") 5346 // if(spotifyAddons.length > 0) { 5347 // $(spotifyAddons).each(function(i, e){ 5348 // const spotifyLink = $(this).find(".spotifyLink").val() 5349 // const spotifySong = $(this).find(".spotifySong").val() 5350 // const spotifyArtist = $(this).find(".spotifyArtist").val() 5351 // const spotifyFotoAddon = $(this).find(".resultPhotoSpotify").val() 5352 // if(spotifyLink !== '') { 5353 // spotifyAddon = `<div class="addon-item" data-id="46067682607319" data-qty="1"> 5354 // <div class="addon-itm-img"> 5355 // <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"/> 5356 // </div> 5357 // <div class="addon-itm-title"> 5358 // <span>[US] Outerbloom Acrylic Frame 4R</span> 5359 // </div> 5360 // <div class="addon-itm-line-total"> 5361 // <span>Rp 99.000</span> 5362 // </div> 5363 // </div> 5364 // <div class="propsAddonSpotify row m-0"> 5365 // <div class="col-12 col-lg-2"></div> 5366 // <div class="col-12 col-lg-10"> 5367 // <p> 5368 // <span>spotify link</span> 5369 // <span class="spotifyLinkAddon">${spotifyLink}</span> 5370 // </p> 5371 // <p> 5372 // <span>uploaded photo</span> 5373 // <span class="spotifyFotoAddon">${spotifyFotoAddon}</span> 5374 // </p> 5375 // <p> 5376 // <span>song / playlist name</span> 5377 // <span class="spotifySongAddon">${spotifySong}</span> 5378 // </p> 5379 // <p> 5380 // <span>artist name</span> 5381 // <span class="spotifyArtistAddon">${spotifyArtist}</span> 5382 // </p> 5383 // </div> 5384 // </div>` 5385 // items.push(spotifyAddon) 5386 // } 5387 // }) 5388 // } 5389 for(let i = 0; i < data.length; i++) { 5390 if(data[i].title !== '[US] Outerbloom Acrylic Frame 4R' ) { 5391 const img = data[i].image 5392 const title = data[i].title
5393 const qty = data[i].qty 5394 const price = data[i].price 5395 const total = Number(qty) * Number(price) 5396 let addons = `<div class="addon-item" data-id="${data[i].id}" data-qty="${qty}"> 5397 <div class="addon-itm-img"> 5398 <img src="${img}" alt="" width="70"/> 5399 </div> 5400 <div class="addon-itm-title"> 5401 <span>${title}</span> 5402 </div> 5403 <div class="addon-itm-line-price"> 5404 <span>${rupiah.format(price)}</span> 5405 ${data[i].title == '[US] Outerbloom Acrylic Frame 4R' ? '' : `<span>x${qty}</span>`} 5406 </div> 5407 <div class="addon-itm-line-total"> 5408 <span>${rupiah.format(total)}</span> 5409 </div> 5410 </div>` 5411 items.push(addons) 5412 } 5413 } 5414 c.html(items) 5415 const parent = $(".purchaseAddon") 5416 const next = parent.next(".sectionPurchase") 5417 parent.addClass("hide") 5418 next.removeClass("hide") 5419 // if(items2.length === 0) return $("#popupCart").addClass("no-addon-cart") 5420 // $(".itemAddonCart").find("h4").text(`add-ons (${items2.length})`) 5421 } 5422 5423 async function listAddon() { 5424 const data = $("#itemAddons").find(".selected") 5425 let ids = [] 5426 $(data).each(function(){ 5427 const id = $(this).data("variant") 5428 const image = $(this).find(".card-image img").attr("src") 5429 const title = $(this).find(".card-meta h5").text() 5430 const qty = $(this).find(".card-qty input").val() 5431 const price = $(this).find(".card-qty input").data("price") 5432 ids.push({ 5433 id: Number(id), 5434 image, 5435 title, 5436 qty, 5437 price 5438 }) 5439 }) 5440 myAddon(ids) 5441 } 5442 5443 async function customSpotify(idx, length, type){ 5444 let isCard = false 5445 5446 let p = $(".purchasePopupSpotify") 5447 const preLink = $(".spotifyLinkFirst").val() 5448 $("[data-index]").hide() 5449 p.find(".headerPurchase h3").text(`personalize spotify photo print${length > 1 ? ` - ${idx}` : ''}`) 5450 p.find(".regulerAddons, .purchase-button").hide() 5451 p.find(".spotifyAddons").show() 5452 5453 const data = await trackUrl(preLink) 5454 5455 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://hokiku.io/images/2025/02/10/logo.png" width="13" height="11" viewB
5455ox="0 0 13 11" fill="none"> 5456 <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"/> 5457 </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://hokiku.io/images/2025/02/10/logo.png><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://hokiku.io/images/2025/02/10/logo.png" width="13" height="11" viewB
5457ox="0 0 13 11" fill="none"> 5458 <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"/> 5459 </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>` 5460 // console.log(html) 5461 5462 $(".spotifyAddons").append(html) 5463 5464 $(`[data-index=${idx}]`).show() 5465 5466 if (preLink !== '') { 5467 $(".btn-action .btn").attr("disabled", false) 5468 } else { 5469 $(".btn-action .btn").attr("disabled", true) 5470 } 5471 5472 return html 5473 5474 } 5475 5476 $(".spotifyLinkFirst").keyup(async function(){ 5477 const v = $(this).val() 5478 if(v.includes('spotify:user:spotify')) { 5479 const correct = v.split('user:spotify:')[1] 5480 console.log(correct, 'BNER') 5481 $(this).val(correct) 5482 return 5483 } 5484 if(v.includes("spotify:") || v.includes("https://open.spotify.com/")){ 5485 const data = await trackUrl(v) 5486 if(!data || !data.status) { 5487 $(this).parent().addClass("error") 5488 // $(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>`) 5489 $("#personalizeBtnSpotify .btn").attr("disabled", true) 5490 return 5491 } 5492 $(this).parent().removeClass("error") 5493 // $(this).parent().remove("txt-error") 5494 $("#personalizeBtnSpotify .btn").attr("disabled", false) 5495 } else { 5496 $("#personalizeBtnSpotify .btn").attr("disabled", true) 5497 } 5498 }) 5499 5500 $(".purchaseAddon").delegate(".next-addon", "click", function(){ 5501 const parent = $(this).parents(".purchaseAddon") 5502 const next = parent.next(".sectionPurchase") 5503 if(next.hasClass("purchaseAddress")) { 5504 if(productType !== '') { 5505 console.log("clarity event " + productType + ' purchaseDelivery') 5506 window.clarity("event", `${productType} purchaseDelivery`) 5507 // window.clarity("set", productType, `purchaseDelivery - ${productDate}`) 5508 } 5509 } 5510 const data = $("#itemAddons").find(".selected") 5511 const length = $(".quantity-cart-46067682607319").val() 5512 const checked = data.length; 5513 if(checked > 0) { 5514 if(length > 0) { 5515 $(".purchaseAddon").addClass("purchaseAddonSpotify") 5516 customSpotify(1, length, 'addon') 5517 } else { 5518 listAddon() 5519 } 5520 } else { 5521 parent.addClass("hide") 5522 next.removeClass("hide") 5523 } 5524 }) 5525 5526 $("#personalizeBtnSpotify .btn").click(async function(){ 5527 const isCity = $("#cities[required]") 5528 const isDate = $("#propDeliveryDate[required]") 5529 if((isDate.length > 0 && isCity.length > 0) && (isCity.val() === '' || isDate.val() === '')) { 5530 alert('Please choose Delivery City & Delivery Date') 5531 return 5532 } 5533 const data = await customSpotify(1, 1, 'product') 5534 if(data) { 5535 $("#backgroundPopup").fadeIn("slow"); 5536 $(".purchasePopupSpotify").fadeIn("slow"); 5537 5538 if(productType !== '') { 5539 console.log("clarity event " + productType + ' spotify') 5540 window.clarity("event", `${productType} spotify`) 5541 // window.clarity("set", productType, `purchaseDelivery - ${productDate}`) 5542 } 5543 } 5544 }) 5545 5546 function formatBytes(bytes, decimals = 2) { 5547 if (!+bytes) return '0 Bytes' 5548
5549 const k = 1024 5550 const dm = decimals < 0 ? 0 : decimals 5551 const sizes = ['B', 'KB', 'MB'] 5552 5553 const i = Math.floor(Math.log(bytes) / Math.log(k)) 5554 5555 return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}` 5556 } 5557 5558 async function trackUrl(link){ 5559 try { 5560 let trackId = link.split('/').pop().split('?')[0]; 5561 let type = '' 5562 if(link.includes("spotify:")) { 5563 const uri = link.split('spotify:')[1] 5564 trackId = uri.split(':')[1] 5565 type = uri.split(':')[0] + 's' 5566 } else { 5567 if(link.match('track')){ 5568 type = 'tracks' 5569 } else if(link.match('playlist')) { 5570 type = 'playlists' 5571 } else if(link.match('artist')) { 5572 type = 'artists' 5573 } else if(link.match('album')) { 5574 type = 'albums' 5575 } 5576 } 5577 console.log(`${host}/api/spotify/${type}/${trackId}`) 5578 const data = await getFetch(`${host}/api/spotify/${type}/${trackId}`) 5579 console.log(data, 'DATA') 5580 const song = data?.data?.name 5581 const artist = data?.data?.artist 5582 return { 5583 song, artist, type, trackId, status: data.status 5584 } 5585 } catch(err) { 5586 console.log(err) 5587 } 5588 } 5589 5590 $(".spotifyAddons").delegate(".uploadPhotoSpotify", "change", async function(){ 5591 const parent = $(this).parents("[data-index]") 5592 const preview = parent.find(".previewImage") 5593 const file = $(this)[0].files[0]; 5594 if (file) { 5595 const reader = new FileReader(); 5596 reader.onload = async function(e) { 5597 parent.find(".uploadResult label").hide() 5598 parent.find(".uploadedResult").remove() 5599 parent.find(".uploadResult").append(`<div class="uploadedResult d-flex" style="justify-content: space-between"> 5600 <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> 5601 <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;">
5601<svg fill="none" height="11" viewBox="0 0 10 11" width="10" xmlns="https://hokiku.io/images/2025/02/10/logo.png"> 5602 <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 /> 5603 </svg> 5604 </span></div></div>`) 5605 parent.find(".frameImageUploaded svg").hide() 5606 parent.find(".frameImage").addClass("uploaded") 5607 preview.attr("src", e.target.result); 5608 preview.show(); 5609 let formData = new FormData(); 5610 formData.append("file", file); 5611 const response = await fetch(`${host}/api/upload?name=${file.name}&type=image/jpeg&r=${Date.parse(new Date)}`, { 5612 method: "POST", 5613 body: formData 5614 }) 5615 const result = await response.json(); 5616 if(result){ 5617 parent.find(".resultPhotoSpotify").val(result.url) 5618 } 5619 } 5620 5621 reader.readAsDataURL(file); 5622 } else { 5623 preview.hide(); 5624 } 5625 }); 5626 5627 $(".spotifyAddons").delegate(".uploadResult", "click", function(){ 5628 $(this).next("input[type=file]").trigger("click") 5629 }) 5630 5631 $(".spotifyAddons").delegate(".changeUpload", "click", function(){ 5632 $(this).parents("input[type=file]").trigger("click") 5633 }) 5634 5635 $(".spotifyAddons").delegate(".removeUpload", "click", function(){ 5636 const parent = $(this).parents("[data-index]") 5637 parent.find(".uploadPhotoSpotify").val("") 5638 parent.find(".uploadResult label").show() 5639 parent.find(".uploadedResult").remove() 5640 parent.find(".frameImageUploaded svg").show() 5641 parent.find(".previewImage").hide() 5642 parent.find(".frameImage").removeClass("uploaded") 5643 }) 5644 5645 $(".spotifyAddons").delegate("label.checkbox", "click", function(){ 5646 const parent = $(this).parents("[data-index]") 5647 parent.toggleClass("checked") 5648 }) 5649 5650 $(".spotifyAddons").delegate(".spotifyLink", "change", async function(){ 5651 const parent = $(this).parents("[data-index]") 5652 const link = $(this).val() 5653 const data = await trackUrl(link) 5654 5655 console.log(data) 5656 5657 if(data.song) { 5658 parent.find(".spotifySong").val(data.song) 5659 parent.find(".spotifyData").find("h3").text(data.song) 5660 } 5661 if(data.artist) { 5662 parent.find(".spotifyArtist").val(data.artist) 5663 parent.find(".spotifyData").find("p").text(data.artist) 5664 } 5665 parent.find(".spotifyCode img").attr("src", `https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:${data.type.slice(0, -1)}:${data.trackId}`) 5666 // https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:track:1er51HCEBhIAtoEemKuC3M 5667 if (data.status === true) { 5668 parent.find(".btn-action .btn").attr("disabled", false) 5669 } else { 5670 parent.find(".btn-action .btn").attr("disabled", true) 5671 } 5672 }) 5673
5674 $(".spotifyAddons").delegate(".spotifySong", "keyup", async function(){ 5675 const parent = $(this).parents("[data-index]") 5676 const v = $(this).val() 5677 parent.find(".spotifyData h3").text(v) 5678 }) 5679 5680 $(".spotifyAddons").delegate(".spotifyArtist", "keyup", async function(){ 5681 const parent = $(this).parents("[data-index]") 5682 const v = $(this).val() 5683 parent.find(".spotifyData p").text(v) 5684 }) 5685 5686 $(".spotifyAddons").delegate(".btn-action .btn:not(.no-addon)", "click", async function(){ 5687 const parent = $(this).parents("[data-index]") 5688 const length = parent.data("length") 5689 const index = parent.data("index") 5690 const indexNext = Number(index) + 1 5691 customSpotify(indexNext, length, 'addon') 5692 }) 5693 5694 5695 $(".spotifyAddons").delegate(".btn-action .btn.finished", "click", async function(){ 5696 const parent = $(this).parents(".purchaseAddon") 5697 const next = parent.next(".sectionPurchase") 5698 parent.addClass("hide") 5699 next.removeClass("hide") 5700 next.find(".purchase-button").show() 5701 listAddon() 5702 }) 5703 5704 $(".spotifyAddons").delegate(".back-spotify", "click", async function(){ 5705 const t = $(this).parents("[data-index]") 5706 const parent = $(this).parents(".sectionPurchase") 5707 const current = t.data("index") 5708 const prevCurrent = Number(current) - 1 5709 if(current == 1) { 5710 parent.removeClass("purchaseAddonSpotify") 5711 parent.find(".purchase-button").show() 5712 parent.find(".headerPurchase h3").text("Make It More Special with Add-Ons!") 5713 $(".spotifyAddons").empty() 5714 $(".regulerAddons").show() 5715 return 5716 } 5717 t.hide() 5718 t.prev("[data-index]").show() 5719 t.remove() 5720 parent.find(".headerPurchase h3").text(`personalize spotify photo print - ${prevCurrent}`) 5721 }) 5722 5723 $("#personalizeBtn .btn").click(async function() { 5724 loadPopupPersonalize() 5725 }); 5726 5727 $(".sectionPurchaseSpotify").delegate(".btn[data-type=card]", "click", function(){ 5728 $(".sectionPurchaseSpotify").hide() 5729 loadPopupPersonalize() 5730 }) 5731 5732 $(".close-purchase-popup").click(function() { 5733 disablePopup(); 5734 }); 5735 $("#backgroundPopup").click(function() { 5736 // disablePopup(); 5737 }); 5738 5739 $("#popupCart .close-purchase-popup").click(function() { 5740 location.reload() 5741 }); 5742 5743 $('#popupCart').on('hide.bs.modal', function (e) { 5744 location.reload() 5745 }) 5746 5747 $(".next-card").click(function(){ 5748 const parent = $(this).parents(".sectionPurchase") 5749 const next = parent.next(".sectionPurchase") 5750 parent.addClass("hide") 5751 next.removeClass("hide") 5752 }) 5753 5754 $(".back-purchase-button").click(function(){ 5755 const parent = $(this).parents(".sectionPurchase") 5756 const prev = parent.prev(".sectionPurchase") 5757 parent.addClass("hide") 5758 prev.removeClass("hide") 5759 }) 5760 5761 $(document).keypress(function(e) { 5762 if (e.keyCode == 27 && popupStatus == 1) { 5763 disablePopup(); 5764 } 5765 }); 5766 5767 const parentImg = $(".case-img-preview") 5768 const parentVid = $(".case-video-preview") 5769 5770 function readURL(input) { 5771 if (input.files && input.files[0]) { 5772 let reader = new FileReader(); 5773 5774 let type = 'image/jpeg' 5775 const size = input.files[0].size 5776 if(input.files[0].type.match('video/')){ 5777 type = 'video/mp4' 5778 if(size > 15728640) { 5779 alert('File size exceeds maximum limit 15 MB') 5780 return 5781 } 5782 } else { 5783 if(size > 5242880) { 5784 alert('File size exceeds maximum limit 5 MB') 5785 return 5786 } 5787 } 5788 5789 reader.onload = function (e) { 5790 $(".nextBtn").attr("disabled", true) 5791 if(type === 'image/jpeg') { 5792 5793 $('.placeholder-image').hide(); 5794 $('.preview-image').show() 5795 $('.preview-image').attr('src', e.target.result); 5796 5797 } else { 5798 // parentVid.find(".ajax-loader").show(); 5799 $(".steps-card-preview").addClass("loading") 5800 } 5801 } 5802 5803 5804 5805 reader.readAsDataURL(input.files[0]); 5806 } 5807 } 5808 5809 async function readURLPapan(input) { 5810 if (input.files && input.files[0]) { 5811 let reader = new FileReader(); 5812 5813 reader.onload = function (e) { 5814 $('.btn-upload-papan').siblings('label').hide(); 5815 $('.btn-upload-papan img').attr('src', e.target.result); 5816 $('.btn-upload-papan img').show(); 5817 $('.svgLogoPapan').hide(); 5818 } 5819 5820 const type = 'image/jpeg' 5821 const name = `logo-8144957800663-${Date.parse(new Date())}` 5822 5823 let formData = new FormData(); 5824 formData.append("file", input.files[0]); 5825 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 5826 method: "POST", 5827 body: formData 5828 }) 5829 const result = await response.json(); 5830 if(result) { 5831 const url = result.url 5832 $("[data-properties=papan-logo]").val(url) 5833 } 5834
5835 reader.readAsDataURL(input.files[0]); 5836 } 5837 } 5838 5839 async function readURLAddress(input) { 5840 console.log(input, 'readURLAddress') 5841 if (input.files && input.files[0]) { 5842 let reader = new FileReader(); 5843 5844 reader.onload = function (e) { 5845 $('.photo-address').attr('src', e.target.result); 5846 $('.photo-address').show(); 5847 } 5848 5849 const type = 'image/jpeg' 5850 const name = input.files[0].name?.split('.')[0] 5851 5852 let formData = new FormData(); 5853 formData.append("file", input.files[0]); 5854 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 5855 method: "POST", 5856 body: formData 5857 }) 5858 const result = await response.json(); 5859 5860 reader.readAsDataURL(input.files[0]); 5861 5862 return result 5863 } 5864 } 5865 5866 5867 5868 5869 async function addToCartUang() { 5870 var productAddOnId1 = 42122101162199; 5871 var productAddOnId2 = 42122101194967; 5872 var product_id = 8144957800663 5873 const data = { 5874 items: [ 5875 { 5876 quantity: $("#Quantity-" + productAddOnId1).val(), 5877 id: productAddOnId1, 5878 "properties": { "Time": $("#properties-time").val() } 5879 }, 5880 { 5881 quantity: $("#Quantity-" + productAddOnId2).val(), 5882 id: productAddOnId2, 5883 "properties": { "Time": $("#properties-time").val() } 5884 } 5885 ] 5886 } 5887 await fetch(window.Shopify.routes.root + 'cart/add.js', { 5888 method: 'POST', 5889 headers: { 5890 'Content-Type': 'application/json' 5891 }, 5892 body: JSON.stringify(data) 5893 }) 5894 .then(response => { 5895 console.error('Sukses Buket Uang:', response); 5896 $(".form-flower").submit() 5897 }) 5898 .catch((error) => { 5899 console.error('Error Buket Uang:', error); 5900 $(".form-flower").submit() 5901 }); 5902 } 5903 5904 async function saveCard(){ 5905 let isCard = true 5906 const kartu_penerima = $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '' 5907 const kartu_pengirim = $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '' 5908 const kartu_ucapan = $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '' 5909 const foto = $("#properties-photo").val() 5910 const video = $("#properties-video").val() 5911 const data = JSON.stringify({ 5912 "id": qrID, 5913 "penerima": $("#properties-nama-penerima").val(), 5914 "kartu_penerima": kartu_penerima, 5915 "kartu_ucapan": kartu_ucapan, 5916 "kartu_pengirim": kartu_pengirim, 5917 "foto": foto, 5918 "video": video, 5919 "productId": "8144957800663", 5920 "order_name": "", 5921 "status": "Cart" 5922 }) 5923 5924 5925 } 5926 5927 async function additem(items){ 5928 try { 5929 let formData = items 5930 if(items?.length) { 5931 formData = { 5932 'items': items 5933 }; 5934 } 5935 5936 const add = await fetch(window.Shopify.routes.root + 'cart/add.js', { 5937 method: 'POST', 5938 headers: { 5939 'Content-Type': 'application/json', 5940 'X-Requested-With':'xmlhttprequest' /* XMLHttpRequest is ok too, it's case insensitive */ 5941 }, 5942 body: JSON.stringify(formData) 5943 }) 5944 5945 const data = await add.json(); 5946 return data 5947 } catch(err){ 5948 console.log('Error additem', err) 5949 } 5950 } 5951 5952 async function addons(){ 5953 let items = [] 5954 $(".addon-item").each(function(){ 5955 const p = $(this) 5956 const props = p.next(".propsAddonSpotify") 5957 const id = $(this).data("id") 5958 const quantity = $(this).data("qty") 5959 const propId = $("#properties-time").val() 5960 let properties = {} 5961 if(id === 46067682607319) { 5962 const link = props.find(".spotifyLinkAddon").text() 5963 const photo = props.find(".spotifyFotoAddon").text() 5964 const song = props.find(".spotifySongAddon").text() 5965 const artist = props.find(".spotifyArtistAddon").text() 5966 properties = { 5967 id: propId, 5968 "Spotify Link": link !== '' ? link : '-', 5969 "Spotify Photo": photo !== '' ? photo : '-', 5970 "Spotify Song": song !== '' ? song : '-', 5971 "Spotify Artist": artist !== '' ? artist : '-', 5972 type: 'addon' 5973 } 5974 } else { 5975 properties = { 5976 "id": propId, 5977 "type": "addon" 5978 } 5979 } 5980 items.push({ 5981 id, 5982 quantity, 5983 properties 5984 }) 5985 }) 5986 return items 5987 } 5988 5989 async function propItems() { 5990 let props = {} 5991 $("[data-properties]").each(function(e){ 5992 let elementType = this.tagName;
5993 const k = $(this).data("properties") 5994 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') { 5995 const v = elementType === 'SELECT' ? $(this).find(":selected").val() : $(this).val(); 5996 if(v !== '') { 5997 props[k] = v?.replace(/[\s\n]/g, ''); 5998 } 5999 } 6000 }) 6001 return props 6002 } 6003 6004 async function showPopupCart(items){ 6005 if(productType !== '') { 6006 console.log("clarity event " + productType + ' completeOrder') 6007 window.clarity("event", `${productType} completeOrder`) 6008 // window.clarity("set", productType, `completeOrder - ${productDate}`) 6009 } 6010 $("#popupCart").show() 6011 6012 $(".propDeliveryCity").text($("#cities").val()) 6013 $(".propDeliveryDate").text($("#propDeliveryDate").val()) 6014 $(".propDeliveryTime").text($("#propDeliveryTime").val()) 6015 $(".propDeliveryName").text($("[data-properties=nama-penerima]").val()) 6016 $(".propDeliveryAddress").text($("[data-properties=alamat-penerima]").val()) 6017 $(".propDeliveryPhone").text($("[data-properties=telepon-penerima]").val()) 6018 $(".propDeliveryProv").text($("#province").val()) 6019 $(".propDeliveryZip").text($("#zip").val()) 6020 6021 6022 6023 const addons = [] 6024 if(items && items.length > 0) { 6025 for(let i = 1; i < items.length; i++) { 6026 const spotifyLink = items[i].properties['Spotify Link'] 6027 const spotifyPhoto = items[i].properties['Spotify Photo'] 6028 const spotifySong = items[i].properties['Spotify Song'] 6029 const spotifyArtist = items[i].properties['Spotify Artist'] 6030 const price = items[i].price / 100 6031 const props = spotifyLink ? `<div class="propsAddonCart row m-0"> 6032 <div class="col-12 col-lg-2"></div> 6033 <div class="col-12 col-lg-10"> 6034 <p> 6035 <span>spotify link</span> 6036 <span>${spotifyLink}</span> 6037 </p> 6038 <p> 6039 <span>Upload Photo</span> 6040 <span>${spotifyPhoto}</span> 6041 </p> 6042 <p> 6043 <span>song / playlist name</span> 6044 <span>${spotifySong}</span> 6045 </p> 6046 <p> 6047 <span>artist name</span> 6048 <span>${spotifyArtist}</span> 6049 </p> 6050 </div> 6051 </div>` : ''; 6052 addons.push(`<div class="row m-0"> 6053 <div class="imgAddonCart col-2"> 6054 <img 6055 width="43" 6056 src="${items[i].image}" 6057 alt="" 6058 > 6059 </div> 6060 <div class="imgAddonTitlePrice col-10 align-self-center"> 6061 <div class="row justify-content-between m-0"> 6062 <div class="col-12 col-lg-8"> 6063 <h5>${items[i].title}</h5> 6064 </div> 6065 <div class="col-12 col-lg-4 text-lg-right"> 6066 <span>${rupiah.format(price)}</span> 6067 </div> 6068 </div> 6069 </div> 6070 </div>${props}`) 6071 } 6072 } 6073 // console.log(addons) 6074 if(addons.length === 0) { 6075 $(".itemAddonCart").hide() 6076 return 6077 } 6078 $(".toggleAddonCart h4").text(`add-ons (${items.length - 1})`) 6079 $(".wrapperItemAddonCart").html(addons) 6080 } 6081 6082 const money = (money) => { 6083 return new Intl.NumberFormat('id-ID', 6084 { style: 'currency', currency: 'IDR', minimumFractionDigits: 0 } 6085 ).format(money); 6086 } 6087 6088 async function showNoteMoney() { 6089 let qty50k = $("[data-properties='Uang 50k']").val() 6090 let qty100k = $("[data-properties='Uang 100k']").val() 6091 const total50k = Number(qty50k) * 50000 6092 const total100k = Number(qty100k) * 100000 6093 const total_all = total50k + total100k 6094 $(".prop50k").html(`<span>${qty50k} Lembar: <strong class="pl-1">${money(total50k)}</strong></span>`) 6095 $(".prop100k").html(`<span>${qty100k} Lembar: <strong class="pl-1">${money(total100k)}</strong></span>`) 6096 $(".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://login.basket168-hahaaa.shop/" target="_blank" style="text-decoration: underline;
6096 color: #8d3f2d">Customer Service</a> to confirm with proof of payment.</p>`) 6097 } 6098 6099 async function removeImage() { 6100 const data = JSON.stringify({ 6101 "ID": $("#properties-properties-qrId").val(), 6102 "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 6103 "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 6104 "Kartu Ucapan": $("[data-properties=ucapan]").val(), 6105 "Nama Penerima": $("#properties-nama-penerima").val(), 6106 "Order Number":"", 6107 "Status":"Product", 6108 "Foto": "", 6109 "Media": $("#properties-video").val(), 6110 "Image": "8144957800663" 6111 }) 6112 const remove = updateCard(data) 6113 if(remove) { 6114 $(this).hide() 6115 $("#properties-photo").val("-") 6116 $(".placeholder-image").show() 6117 $(".preview-image").attr("src", "") 6118 } 6119 } 6120 6121 async function removeVideo() { 6122 const data = JSON.stringify({ 6123 "ID": $("#properties-properties-qrId").val(), 6124 "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 6125 "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 6126 "Kartu Ucapan": $("[data-properties=ucapan]").val(), 6127 "Nama Penerima": $("#properties-nama-penerima").val(), 6128 "Order Number":"", 6129 "Status":"Product", 6130 "Foto": $("#properties-photo").val(), 6131 "Media": "", 6132 "Image": "8144957800663" 6133 }) 6134 const remove = updateCard(data) 6135 if(remove) { 6136 $("#properties-video").val("-") 6137 $(this).find("img").hide() 6138 $(this).hide() 6139 $(this).prev("p").text("Add video to make it more special (optional)") 6140 $("#label-input-video").show() 6141 $("#label-input-video span").text("Upload Video") 6142 $(".case-video-preview p span").remove() 6143 } 6144 } 6145 6146 async function loadItemOccasion(t, occasion) { 6147 const name = occasion?.replace('greeting-card-', '') 6148 $("#kartu-ucapan").val("") 6149 $("[data-occassion]").removeClass("selected") 6150 $("[data-properties=ucapan]").val("") 6151 $("#save-card").attr("disabled", true) 6152 t.addClass("selected") 6153 $("#show_note").attr("data-card-occassion", name) 6154 $.get(`https://outerbloom.com/collections/${occasion}/products.json`, function(data, status){ 6155 const products = data.products 6156 const html = [] 6157 for(let i = 0; i < products.length; i++) { 6158 const id = products[i].id 6159 const variantId = products[i].variants[0].id 6160 const img = products[i].images[0].src 6161 const title = products[i].title 6162 const price = products[i].variants[0].price 6163 const qty = products[i].variants[0].inventory_quantity 6164 const body = `<div class="item-card${price < 1 ? ' free' : ' nofree'}${i === 0 ? ' selected' : ''}" data-id=${id}> 6165 <label for="card-${variantId}"></label> 6166 <div class="card-image"> 6167 <img src="${img}" alt="${title}" width="" height="" /> 6168 </div> 6169 <div class="card-meta text-center"> 6170 <h5>${title}</h5> 6171 <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p> 6172 <input id="card-${variantId}" type="radio" name="id" value="${variantId}" data-price="${price}"> 6173 </div> 6174 </div>` 6175 html.push(body) 6176 } 6177 const withoutCard = `<div class="item-card item-without-card"> 6178 <label for="card-0"></label> 6179 <div class="card-image"> 6180 <img src="https://cdn.shopify.com/s/files/1/1589/6833/t/129/assets/without-card.png?v=1747632283" alt="Without card" width="" height="" /> 6181 </div> 6182 <div class="card-meta text-center"> 6183 <h5>
6183Send without a greeting card</h5> 6184 <input id="card-0" type="radio" name="id" value="" data-price=""> 6185 </div> 6186 </div>` 6187 $("#itemCards .items-card").html(html.length === 0 ? '<p>No Item available</p>' : html.join("")) 6188 }); 6189 } 6190 6191 $(document).ready(function(){ 6192 6193 // Observer to auto-trigger addon loading when addon section becomes visible 6194 const addonObserver = new MutationObserver(function(mutations) { 6195 mutations.forEach(function(mutation) { 6196 const target = $(mutation.target) 6197 if(target.hasClass('purchaseAddon') && mutation.type === 'attributes' && mutation.attributeName === 'class') { 6198 if(!target.hasClass('hide')) { 6199 // Addon section just became visible, ensure items are loaded 6200 setTimeout(function() { 6201 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6202 console.log("Auto-triggering addon load...") 6203 $("[data-addon=upsell-all]").trigger("click") 6204 } 6205 }, 150) 6206 } 6207 } 6208 }) 6209 }) 6210 6211 // Start observing addon section 6212 const addonSection = document.querySelector('.purchaseAddon') 6213 if(addonSection) { 6214 addonObserver.observe(addonSection, { 6215 attributes: true, 6216 attributeFilter: ['class'] 6217 }) 6218 } 6219 6220 $(".purchasePopup").delegate("#addtocart-card", "click", async function(){ 6221 6222 $(this).find("span").addClass("loading") 6223 let isValid = true 6224 $(".formAddressPurchase [required]").each(function(){ 6225 const t = $(this) 6226 const input = t.val() 6227 const p = t.parent() 6228 if(input === '') { 6229 p.addClass("error") 6230 isValid = false 6231 } 6232 }) 6233 6234 if(!isValid) { 6235 $(this).find("span").removeClass("loading") 6236 return 6237 } 6238 6239 let items = [] 6240 const mainProps = { 6241 6242 "Delivery Date": $("#propDeliveryDate").val(), 6243 "Delivery Time": $("#propDeliveryTime").val() !== '' ? $("#propDeliveryTime").val() : '-' , 6244 "Kota Pengiriman": $("#cities").val(), 6245 "Nama Penerima": $("[data-properties=nama-penerima]").val() !== '' ? $("[data-properties=nama-penerima]").val() : '-' , 6246 "Alamat Penerima": $("[data-properties=alamat-penerima]").val() !== '' ? $("[data-properties=alamat-penerima]").val() : '-' , 6247 "Kodepos": $("#zip").val() !== '' ? $("#zip").val() : '-' , 6248 "Telepon Penerima": $("[data-properties=telepon-penerima").val() !== '' ? $("[data-properties=telepon-penerima").val() : '-' , 6249 6250 6251 "Papan Nama Penerima": $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '-' , 6252 "Papan Ucapan": $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '-' , 6253 "Papan Nama Pengirim": $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '-' , 6254 "Papan Logo": $("[data-properties=papan-logo]").val() !== '' ? $("[data-properties=papan-logo]").val() : '-' , 6255 "Foto Alamat": $("[data-properties=foto-alamat]").val() !== '' ? $("[data-properties=foto-alamat]").val() : '-' , 6256 6257 6258 "Province": $("#province").val() !== '' ? $("#province").val() : '-' , 6259 "Country": $("#properties-kota-pengiriman-country").val() !== '' ? $("#properties-kota-pengiriman-country").val() : '-' , 6260 "Shipping": $("#properties-shipping").val() !== '' ? $("#properties-shipping").val() : '-' , 6261 "Company": $("[data-properties=company]").val() !== '' ? $("[data-properties=company]").val() : '-' , 6262 "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 6263 "type": 'product' 6264 } 6265 const props = await propItems() 6266 properties = {...mainProps, ...props }; 6267 const id = $("#productSelect").find('option:selected').val() 6268 console.log(id, 'main ID') 6269 const mainItem = { 6270 id: Number(id), 6271 quantity: 1, 6272 properties 6273 } 6274 items.push(mainItem) 6275 const cardId = $("#itemCards").find(".selected input").val() 6276 const cardItem = { 6277 id: Number(cardId), 6278 quantity: 1, 6279 properties: { "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', type: 'card' } 6280 } 6281 console.log(cardId, 'cardId') 6282 if(cardId) { 6283 items.push(cardItem) 6284 } 6285 const addon = await addons() 6286 if(addon) { 6287 for(let i = 0;
6287 i < addon.length; i++){ 6288 items.push({ 6289 id: addon[i].id, 6290 quantity: addon[i].quantity, 6291 properties: addon[i].properties 6292 }) 6293 } 6294 } 6295 const addItems = await additem(items) 6296 console.log(addItems.items, 'add items') 6297 if(addItems) { 6298 $(this).find("span").removeClass("loading") 6299 disablePopup() 6300 showPopupCart(addItems.items) 6301 6302 localStorage.setItem("items", JSON.stringify(addItems.items)) 6303 } 6304 }) 6305 6306 $("#addtocart-cart .btn").click(async function(){ 6307 const id = $("#productSelect").find('option:selected').val() 6308 const mainProps = { 6309 id: $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 6310 type: 'product' 6311 } 6312 const props = await propItems() 6313 const properties = { ...mainProps, ...props }; 6314 const items = { 6315 id: Number(id), 6316 quantity: 1, 6317 properties 6318 } 6319 const addItems = await additem(items) 6320 if(addItems) { 6321 showPopupCart(addItems.items) 6322 localStorage.setItem("items", JSON.stringify(addItems)) 6323 } 6324 }) 6325 6326 $(".formAddressPurchase [required]").change(function(){ 6327 const t = $(this) 6328 const p = t.parent() 6329 const v = t.val() 6330 if(v !== '') { 6331 p.removeClass("error") 6332 } 6333 }) 6334 6335 $("#save-card").click(async function(){ 6336 const parent = $(this).parents(".sectionPurchase") 6337 const next = parent.next(".sectionPurchase") 6338 $(this).find("span").addClass("loading") 6339 const card = await saveCard() 6340 console.log(card, 'ssaveCCC') 6341 if(card?.status === 200 || card?.status === 201) { 6342 $(".scanCard").removeClass("hide") 6343 $(this).find("span").removeClass("loading") 6344 parent.addClass("hide") 6345 next.removeClass("hide") 6346 if(next.hasClass("purchaseAddon")) { 6347 $("[data-addon=upsell-all]").click() 6348 console.log("clarity event addons") 6349 window.clarity("event", `${productType} add-ons`) 6350 // Ensure addon items are loaded when entering addon popup 6351 setTimeout(function() { 6352 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6353 $("[data-addon=upsell-all]").trigger("click") 6354 } 6355 }, 100) 6356 } 6357 if(next.hasClass("purchaseAddress")) { 6358 $("#zip").select2() 6359 } 6360 } 6361 }) 6362 6363 $("#skip-card").click(async function(){ 6364 $("#greetingCard [data-properties]").val("") 6365 $("#properties-photo").val("") 6366 $("#properties-video").val("") 6367 const parent = $(this).parents(".sectionPurchase") 6368 const next = parent.next(".sectionPurchase") 6369 parent.addClass("hide") 6370 next.removeClass("hide") 6371 // $("#itemCards").html("") 6372 removeImage() 6373 removeVideo() 6374 if(next.hasClass("purchaseAddon")) { 6375 $("[data-addon='upsell-all']").click() 6376 console.log("clarity event addons") 6377 window.clarity("event", `${productType} add-ons`) 6378 // Ensure addon items are loaded when entering addon popup 6379 setTimeout(function() { 6380 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6381 $("[data-addon='upsell-all']").trigger("click") 6382 } 6383 }, 100) 6384 } 6385 if(next.hasClass("purchaseAddress")) { 6386 $("#zip").select2() 6387 } 6388 }) 6389 6390 $("#msgCard").click(async function(){ 6391 $(this).parent().addClass("loading") 6392 let occasion = $(".selected[data-occassion]").data("occassion") 6393 occasion = occasion?.replace("greeting-card-", "") 6394 const { data } = await getFetch(`${host}/api/card/template/occasion?name=${occasion}`); 6395 const d = data?.data 6396 for(let i = 0; i < d.length; i++) { 6397 const num = Math.floor(Math.random() * (d.length - 1 + 1) + 1); 6398 const greeting = d[num]?.Greeting 6399 $(".greetingCard textarea").val(greeting) 6400 $(this).parent().removeClass("loading") 6401 } 6402 $("#save-card").attr("disabled", false) 6403 }) 6404 6405 $(".sectionPurchaseBoard .next-purchase-button").click(function(){ 6406 const parent = $(this).parents(".sectionPurchase") 6407 const next = parent.next(".sectionPurchase") 6408 parent.addClass("hide") 6409 next.removeClass("hide") 6410 }) 6411 6412 $("#editCard").click(function(){ 6413 $(".custom-card").show() 6414 $(".preview-card").hide() 6415 }) 6416 6417 $("#first_name, #last_name").change(function(){ 6418 const v = $(this).val() 6419 const first_name = $("#first_name").val() 6420 const last_name = $("#last_name").val() !== '' ? ' ' + $("#last_name").val() : '' 6421 $("[data-properties=nama-penerima]").val(first_name+last_name) 6422 }) 6423 6424 $("[data-occassion]").click(function(){ 6425 const t = $(this) 6426 const p = t.parents(".sectionPurchase") 6427 // $(".greetingCard").addClass("disabled") 6428 const occasion = t.data("occassion") 6429 loadItemOccasion(t, occasion) 6430 }) 6431 6432 $("#itemCards").delegate(".item-card:not(.item-without-card) label", "click", function(){ 6433 const id = $(this).parent(".item-card").data("id") 6434 const t = $(this).parent(".item-card") 6435 const target = t.find("input") 6436 const v = $('.item-card input[type="radio"]:checked').val(); 6437 $("#itemCards .item-card").removeClass("selected") 6438 t.addClass("selected") 6439 $("#itemCards .item-card").find("input").attr("name", "") 6440 if(target.length > 0) { 6441 target.attr("name", "id[]") 6442 $("#properties-card").val(id) 6443 $(".greetingCard").removeClass("disabled") 6444 $("#skip-card").attr("disabled", false) 6445 } else { 6446 $("#properties-card").val("") 6447 } 6448 }) 6449 6450 $("#itemCards").delegate(".item-without-card label", "click", function(){ 6451 const parent = $(this).parents(".sectionPurchase") 6452 const next = parent.next(".sectionPurchase") 6453 $(".greetingCard").addClass("disabled") 6454 parent.addClass("hide") 6455 next.removeClass("hide") 6456 $("[data-addon=upsell-all]").click() 6457 $("#zip").select2() 6458 }) 6459 6460 $("[data-properties=ucapan]").keyup(function(){ 6461 const v = $(this).val() 6462 const p = $(this).parents(".sectionPurchase") 6463 $(".purchaseAddress").find(".greetingCard textarea").val(v) 6464 if(v.length > 3) { 6465 p.find(".next-purchase-button").attr("disabled", false) 6466 } else { 6467 p.find(".next-purchase-button").attr("disabled", true) 6468 } 6469 }) 6470 6471 $("[data-properties=penerima]").keyup(function(){ 6472 const v = $(this).val() 6473 $(".purchaseAddress").find("[data-properties=penerima]").val(v) 6474 }) 6475 6476 $("[data-properties=pengirim]").keyup(function(){ 6477 const v = $(this).val() 6478 $(".purchaseAddress").find("[data-properties=pengirim]").val(v) 6479 }) 6480 6481 $(document).click(function(e){ 6482 6483 if($(e.target).closest('.wrapperPopupCart').length != 0) return false;
6484 // $('#popupCart').fadeOut('slow'); 6485 // location.reload() 6486 }); 6487 6488 $(".toggleAddonCart").click(function(){ 6489 const p = $(this).parent(".itemAddonCart") 6490 p.toggleClass("open") 6491 }) 6492 6493 $(".btnViewCart").click(function(){ 6494 window.location.href = "https://outerbloom.com/cart"; 6495 }) 6496 6497 $(".btnViewCheckout").click(async function(){ 6498 $(this).find("span").addClass("loading") 6499 let zip = $("#zip").val() 6500 const first_name = $("#first_name").val() 6501 const last_name = $("#last_name").val() 6502 const company = $("#company").val() !== '' ? $("#company").val() : '' 6503 const address1 = $("#delivery_address").val() 6504 const address2 = zip && zip !== '' ? zip?.split(' - ')[1] : '' 6505 zip = zip && zip !== '' ? zip?.split(' - ')[0] : '' 6506 const phone = $("#recipient_number").val() 6507 const city = $("#cities").val() 6508 const province = $("#province").val() 6509 const country = 'Indonesia' 6510 const ver = Date.parse(new Date()) 6511 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}` 6512 6513 const clear = await fetch(`/cart/clear.js`, {method: 'POST'}) 6514 if(clear.status === 200) { 6515 const savedItem = window.localStorage.getItem("items"); 6516 const items = JSON.parse(savedItem) 6517 const addItems = await additem(items) 6518 console.log(addItems, 'new addItems') 6519 if(addItems) { 6520 window.location.href = `https://outerbloom.com/checkout?${params}`; 6521 } 6522 } 6523 }) 6524 6525 $(".btnContinueShopping").click(function(){ 6526 window.location.href = "https://outerbloom.com/"; 6527 }) 6528 6529 if (isIOS) { 6530 $(".empty-state-card").click(function(){ 6531 $("#input-foto").trigger("click") 6532 }) 6533 $(".btn-upload-image").click(function(){ 6534 $("#input-foto").trigger("click") 6535 }) 6536 $("[for=input-video]").click(function(){ 6537 $("#input-video").trigger("click") 6538 }) 6539 $(".btn-upload-papan").click(function(){ 6540 $("#logoPapan").trigger("click") 6541 }) 6542 } 6543 6544 $("[data-properties]").each(function(){ 6545 const select = $(this).parents(".form-group").find("select") 6546 $(this).change(function(){ 6547 const name = $(this).data("properties") 6548 const v = $(this).val() 6549 if (name == 'telepon-penerima') { 6550 let phone = v.replace(/[^0-9]/g, '') 6551 $(this).val(phone); 6552 $("#properties-telepon-penerima").val(phone) 6553 $('.iti__search-input').val('-') 6554 } else { 6555 $("#properties-" + name).val(v) 6556 } 6557 }) 6558 select.on("change", function(){ 6559 const name = $(this).data("properties") 6560 const v = $(this).val() 6561 $("#properties-" + name).val(v) 6562 }) 6563 }) 6564 6565 $("#show_note").click(function(){ 6566 nameq = $("#properties-nama-penerima").val() 6567 dear = $("#properties-kartu-nama-penerima").val() 6568 card = $("[data-properties=ucapan]").val() 6569 sender = $("#properties-kartu-nama-pengirim").val() 6570 photo = $("#properties-photo").val() 6571 video = $("#properties-video").val() 6572 updateCard(nameq, dear, card, sender, photo, video, status) 6573 }) 6574 6575 $(".remove-image").click(function(e){ 6576 e.preventDefault() 6577 $(this).find("img").show() 6578 removeImage() 6579 }) 6580 6581 $(".remove-media").click(function(e){ 6582 e.preventDefault() 6583 $(this).find("img").show() 6584 removeVideo() 6585 }) 6586 6587 6588 6589 $("[data-delivery_method]").click(function(e){ 6590 e.preventDefault() 6591 const t = $(this) 6592 const data = t.data("delivery_method") 6593 $("[data-delivery_method]").removeClass("selected") 6594 t.addClass("selected") 6595 $("#cities").val("") 6596 $("#properties-delivery-date").val("-") 6597 $("#deliveryDate button").removeClass("selected") 6598 $("#full-date").val("Full Calendar â") 6599 $("#propDeliveryDate").val("") 6600 const step3 = $("#step-3") 6601 if(data.match('PickUp')) { 6602 $(".selfpickup-point").show() 6603 step3.find("[data-finished=false]").hide() 6604 $("#panel-4").hide() 6605 step3.find("[data-finished=true]").show() 6606 $("#cities").attr("required", false) 6607 $("#form-group-city").hide() 6608 $("#row-delivery-time").hide() 6609 $("#propDeliveryTime, #properties-delivery-time, #properties-nama-penerima, #properties-alamat-penerima, #properties-kodepos, #properties-kodepos, #properties-telepon-penerima").val("-") 6610 $("#propDeliveryTime").attr("required", false) 6611 // $("#deliveryDate").find("button:first-child").addClass("stop") 6612 $(".form-selfpickup").show() 6613 $(".form-delivery").hide() 6614 $(".form-delivery").find("input, textarea, select").val("") 6615 $(".form-delivery").find("input, textarea, select").attr("required", false) 6616 $("#properties-shipping").val("0") 6617 $("#noteDeliveryDate").hide() 6618 $(".form-delivery .form-control").attr("required", false) 6619 $("#stepNav4").hide() 6620 6621 $("#deliveryDate").find("button:nth-child(1)").addClass("stop") 6622 6623 6624 6625 if(timeOfDay >= 16.01){ 6626 $("#deliveryDate").find("button:nth-child(2)").addClass("stop") 6627 } 6628 } else { 6629 6630 6631 $("#deliveryDate").find("button:nth-child(1)").removeClass("stop") 6632 step3.find("[data-finished=false]").show() 6633 $("#panel-4").show() 6634 step3.find("[data-finished=true]").hide() 6635 $("#cities").attr("required", true) 6636 $(".selfpickup-point").hide() 6637 $("#form-group-city").show() 6638 $("#cities").val('').trigger('change'); 6639 $("#properties-kota-pengiriman").val("-") 6640 6641 $("#row-delivery-date, #row-delivery-time").show() 6642 $("#propDeliveryDate, #propDeliveryTime").attr("required", true) 6643 $("#deliveryDate").find("button").removeClass("stop") 6644 $(".form-selfpickup").hide() 6645 $(".form-delivery").show() 6646 $(".form-delivery").find("input, textarea, select").attr("required", true)
6647 $(".form-delivery [data-properties]").attr("readonly", false) 6648 $("#properties-kodepos").val("-") 6649 $("#properties-alamat-penerima").val("-") 6650 $(".form-delivery .form-control").attr("required", true) 6651 $(this).parents(".setup-content").attr("id", "step-1") 6652 6653 $("#stepNav4").show() 6654 } 6655 }) 6656 6657 $("[name=selfpickup]").click(function(){ 6658 const p = $(this).parents(".row-pickup") 6659 const pickupCity = $("input[name='selfpickup']:checked").val(); 6660 const pickupAddress = $("input[name='selfpickup']:checked").data("address"); 6661 const pickupZip = $("input[name='selfpickup']:checked").data("zip"); 6662 6663 $(".row-pickup").removeClass("selected") 6664 p.addClass("selected") 6665 6666 $("#properties-kota-pengiriman").val(pickupCity) 6667 $("#province").val("Jakarta") 6668 $("#properties-alamat-penerima").val(pickupAddress) 6669 $("#properties-kodepos").val(pickupZip) 6670 }) 6671 6672 $("#cities").change(function(e){ 6673 e.preventDefault() 6674 $(this).parent(".row").find("p.error").remove() 6675 $("#full-date").val("Full Calendar") 6676 $("#deliveryDate, #deliveryDateFull label ").show() 6677 $("#deliveryDateFull").removeClass("filled") 6678 $(".btnChangeDeliveryDate").addClass("hide") 6679 $("#full-date").prop('disabled', false); 6680 $("#stepNav2, #stepNav3, #stepNav4").removeClass("btn-success") 6681 $("#stepNav2, #stepNav3, #stepNav4").find("a").attr("disabled", true) 6682 const step3 = $("#step-3") 6683 $("#cityNote").remove() 6684 $("#noteDeliveryDate").hide() 6685 $("#noteDeliveryDate").empty() 6686 let v = $(this).val() 6687 let v2 = $('option:selected', this).attr('data-city'); 6688 let v3 = $('option:selected', this).attr('data-province'); 6689 let price = $('option:selected', this).attr('data-price'); 6690 $("#country").val(v) 6691 $("#properties-kota-pengiriman").val(v) 6692 $("#properties-shipping").val(price) 6693 $("#deliveryDate button, #deliveryTime button, .calendarseasonal .button").removeClass("selected") 6694 $("#properties-delivery-date, #properties-delivery-time").val("-") 6695 $("#propDeliveryDate, #propDeliveryTime").val("") 6696 let note = $('option:selected', this).attr('data-note'); 6697 if(v === 'Kota Lainnya') { 6698 $("#noteDeliveryDate").show() 6699 $("#noteDeliveryDate").text("Order akan segera dikirim. Estimasi tanggal diterima akan disesuaikan dengan waktu pengiriman oleh pihak ekspedisi ke lokasi Anda.") 6700 $("#zip").attr("required", false) 6701 $("#zip").hide() 6702 $("#propDeliveryDate, #propDeliveryTime").attr("required", false) 6703 $("#propDeliveryDate, #properties-delivery-date, #propDeliveryTime, #properties-delivery-time").val("-") 6704 $("#row-delivery-date, #row-delivery-time").hide() 6705 $("#properties-shipping").val("") 6706 // $(this).parents(".setup-content").attr("id", "step-2") 6707 6708 } else { 6709 $("#noteDeliveryDate").hide() 6710 $("#zip").attr("required", true) 6711 $("#zip").show() 6712 $("#row-delivery-date, #row-delivery-time").show() 6713 $("#propDeliveryDate, #propDeliveryTime").attr("required", true) 6714 $("#deliveryDate").find("button").removeClass("stop") 6715 // $(this).parents(".setup-content").attr("id", "step-1") 6716 6717 } 6718 6719 6720 6721 // if(v !== 'Jakarta') { 6722 // $("[data-type=upsell]").hide() 6723 // } else { 6724 // $("[data-type=upsell]").show() 6725 // } 6726 // $('.collection-addons')[0].swiper.update(); 6727 6728 6729 getProvince(v) 6730 $("#zip").html(`<option value="">Choose Postal Code</option>`) 6731 renderZip(v, v2, v3) 6732 6733 disabledSameDay() 6734 6735 6736 if(v !== 'Jakarta' && v !== 'Depok' && v !== 'Bekasi' && v !== 'Tangerang') { 6737 6738 $("#cardOccasion, #navAddon, .collection-addons").hide() 6739 6740 $("[data-addon=giftcard]").show() 6741 $("[data-addon=giftcard]").click() 6742 $("#itemAddons").show() 6743 $("#flower-step").addClass("nonjadetabek") 6744 } else { 6745 $("#cardOccasion, #navAddon, .collection-addons").show() 6746 $("[data-addon=all]").click() 6747 $("#flower-step").removeClass("nonjadetabek") 6748 } 6749 6750 if(v !== '') { 6751 $("#personalizeBtn .btn").attr("disabled", false) 6752 } else { 6753 $("#personalizeBtn .btn").attr("disabled", true) 6754 } 6755 6756 }) 6757 6758 $("#zip").change(function(e){ 6759 let v = $(this).val() 6760 var city = $("#cities").find('option:selected'); 6761 $("#properties-kodepos").val(v) 6762 if(city === 'Kota Lainnya') { 6763 $(this).attr("required", true) 6764 $("#recipient-address").val("") 6765 } 6766 }) 6767 6768 6769 var minDate = +7 6770 6771 6772 6773 $("#full-date").datepicker({ 6774 minDate, 6775 dateFormat: 'Mdd_yy', //Nop22_2021, 6776 6777 beforeShowDay: disabledays, 6778 6779 onSelect: function (date) { 6780 $("#deliveryDate, #deliveryDateFull label ").hide() 6781 $("#deliveryDateFull").addClass("filled") 6782 $(".btnChangeDeliveryDate").removeClass("hide") 6783 $("#full-date").prop('disabled', true); 6784 $('#propDeliveryDate, #properties-delivery-date').val('Kirim_'+date); 6785 $(".date-full").addClass("selected") 6786 $(".date-single, .calendar-group").removeClass("selected") 6787 $("#propDeliveryTime").val('') 6788 $("#properties-delivery-time").val('-') 6789 $(".time-single").removeClass("selected") 6790 6791 6792 } 6793 }); 6794 6795 $(".btnChangeDeliveryDate").click(function(){ 6796 $("#deliveryDate, #deliveryDateFull label ").show() 6797 $("#deliveryDateFull").removeClass("filled") 6798 $(".btnChangeDeliveryDate").addClass("hide") 6799 $("#full-date").prop('disabled', false); 6800 }) 6801 6802 $("#deliveryDate").delegate(".calendarbutton:not(.date-full)", "click", function(e){ 6803 e.preventDefault() 6804 $(this).parents("#row-delivery-date").find("p.error").remove() 6805 const fulldate = $(this).data("fulldate") 6806 const day = $(this).data("day") 6807 const date = $(this).data("date")
6808 const month = $(this).data("month") 6809 const year = $(this).data("year") 6810 const off_pagi = $(this).data("offpagi") 6811 const off_siang = $(this).data("offsiang") 6812 const off_Malam = $(this).data("offMalam") 6813 $(".calendarbutton").removeClass("selected") 6814 $(this).addClass("selected") 6815 $("#propDeliveryDate, #properties-delivery-date").val(`Kirim_${month}${date}_${year}`) 6816 $("#propDeliveryTime").val('') 6817 $("#properties-delivery-time").val('-') 6818 $(".calendarbutton2").removeClass("selected") 6819 $("#full-date").val("Full Calendar") 6820 6821 6822 if(off_pagi && timeOfDay > off_pagi) { 6823 $("[data-time=Morning]").attr("disabled", true) 6824 } else { 6825 $("[data-time=Morning]").attr("disabled", false) 6826 } 6827 if(off_siang && timeOfDay > off_siang) { 6828 $("[data-time=Afternoon]").attr("disabled", true) 6829 } else { 6830 $("[data-time=Afternoon]").attr("disabled", false) 6831 } 6832 6833 6834 6835 }) 6836 6837 if(today === 14 && timeOfDay > 17.00) { 6838 $("#deliveryDate button:first-child").attr("disabled", true) 6839 } 6840 6841 $("#deliveryTime").delegate(".calendarbutton2", "click", function(e){ 6842 e.preventDefault() 6843 const time = $(this).data("time") 6844 const date = $("#propDeliveryDate").val() 6845 if(date == '') { 6846 return alert('Silakan pilih tanggal terlebih dahulu') 6847 } 6848 $(".calendarbutton2").removeClass("selected") 6849 $(this).addClass("selected") 6850 $("#propDeliveryTime, #properties-delivery-time").val(`KirimJam_${date.replace('Kirim_','')}_${time}`) 6851 }) 6852 6853 $('textarea.has-limit, input.has-limit').keyup(function () { 6854 max = this.getAttribute("maxlength"); 6855 let len = $(this).val().length; 6856 let limit = $(this).siblings(".limit"); 6857 if (len > max) { 6858 alert('you have reached the limit'); 6859 } else { 6860 limit.text(`${len}/${max}`); 6861 } 6862 }); 6863 6864 $("#button-action-step .btn").click(function(){ 6865 $(this).find("span").text("Processing..."); 6866 }); 6867 6868 $(".finishBtn").on('click', function() { 6869 $(this).addClass("is-adding"); 6870 // $(this).click(); 6871 }); 6872 6873 $('.setup-panel .nav-item a.btn-success').trigger('click'); 6874 6875 $("#button-action .btn").click(function(){ 6876 $("#flower-step").addClass("block"); 6877 $("#button-action").hide(); 6878 }); 6879 6880 $(".close-how-order").click(function(){ 6881 $("#flower-step").removeClass("block"); 6882 $("#button-action").show(); 6883 }); 6884 6885 $("#input-foto, #input-video").change(function(e){ 6886 readURL(this); 6887 }); 6888 6889 $("#logoPapan").change(function(){ 6890 readURLPapan(this); 6891 }); 6892 6893 $("#address-upload").change(async function(){ 6894 const upload_address = await readURLAddress(this) 6895 if(upload_address) { 6896 const url = upload_address.url 6897 $(".props-address-upload").val(url) 6898 $(".form-address").addClass("address-uploaded") 6899 $(".form-address-upload").addClass("uploaded") 6900 6901 $(this).parents(".form-group").siblings(".form-group").find("[required]").attr("required", false) 6902 } 6903 }) 6904 6905 $(".address-manualy").click(function(){ 6906 $(".form-address-upload").removeClass("uploaded"); 6907 $(".photo-address").hide(); 6908 $(".form-address").removeClass("address-uploaded") 6909 $("#formAddressPurchase").find(".form-control").attr("required", true) 6910 }); 6911 6912 $(".case-video-preview").delegate(".replace-video", "click", function(){ 6913 $("#input-video").trigger("click") 6914 }) 6915 6916 $('.date-single').click(function(e) { 6917 e.preventDefault(); 6918 $('.date-single').removeClass('selected'); 6919 $('#full-date').removeClass('selected'); 6920 $(this).addClass('selected'); 6921 $('#full-date').html('Full' + '<br/>' + 'Calendar'); 6922 }); 6923 $('#full-date').click(function(e){ 6924 e.preventDefault(); 6925 $('.date-single').removeClass('selected'); 6926 $(this).addClass('selected'); 6927 }); 6928 6929 // $("tr").each(function(){ 6930 // if($(this).text().match('SKU')) { 6931 // $(".sku-product").html($(this).parents("table").html()) 6932 // } 6933 // }) 6934 6935 $("#product-image").scroll(function(){ 6936 $(".desc-add").each(function(){ 6937 const img = $(this).find("img") 6938 const src = img.data("src") 6939 img.attr("src", src) 6940 }) 6941 }) 6942 6943 $(".product-fixed").hide() 6944 6945 let target = $("#personalizeBtn") 6946 6947 6948 $(".product-meta").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 $(window).scroll(function() { 6957 if ($(window).scrollTop() >= target.offset().top ) { 6958 $(".product-fixed").addClass("show") 6959 } else { 6960 $(".product-fixed").removeClass("show") 6961 } 6962 }); 6963 }); 6964 </script>
6964 6965 6966
6966<script> 6967 // 6968 </script>
6968 6969 6970
6970<script> 6971 $(document).ready(function(){ 6972 $('table tr td').each(function(){ 6973 var texto = $(this).text(); 6974 var nextto = $(this).next("td"); 6975 var sku = $("#data-sku").val() 6976 if(texto == 'SKU'){ 6977 nextto.text(sku) 6978 } 6979 }); 6980 6981 $(".stamped-summary-actions-newquestion").text("Tulis Pertanyaan"); 6982 $(".stamped-summary-actions-newreview").text("Tulis Review"); 6983 $("#tab-questions").text("Pertanyaan"); 6984 6985 $(".freeship .icon").click(function(){ 6986 $(".fs-content").slideToggle(); 6987 $(this).parents(".freeship").toggleClass("expand"); 6988 }); 6989 6990 var $easyzoom = $('.easyzoom').easyZoom(); 6991 // Setup thumbnails example 6992 var api1 = $easyzoom.filter('.easyzoom--with-thumbnails').data('easyZoom'); 6993 $('.thumbnails').on('click', 'a', function(e) { 6994 var $this = $(this); 6995 e.preventDefault(); 6996 // Use EasyZoom's `swap` method 6997 api1.swap($this.data('standard'), $this.attr('href')); 6998 }); 6999 7000 $('#playerID').click(function(){ 7001 var videoURL = $('#VdoID').attr('src'), 7002 dataplay = $('#VdoID').attr('data-play'); 7003 7004 //for check autoplay 7005 //if not set autoplay=1 7006 if(dataplay == 0 ){ 7007 $('#VdoID').attr('src',videoURL+'?autoplay=1'); 7008 $('#VdoID').attr('data-play',1); 7009 } 7010 else{ 7011 var videoURL = $('#VdoID').attr('src'); 7012 videoURL = videoURL.replace("?autoplay=1", ""); 7013 $('#VdoID').prop('src',''); 7014 $('#VdoID').prop('src',videoURL); 7015 7016 $('#VdoID').attr('data-play',0); 7017 } 7018 7019 }); 7020 7021 $(".product-photo-thumb-video").click(function(e){ 7022 e.preventDefault(); 7023 7024 var newEmbed = $(this).attr('href'); 7025 $("#featured-image-product").addClass("img-video"); 7026 $("#ProductPhotoImg").hide(); 7027 $("#featured-image-product .video").show(); 7028 $("#featured-image-product iframe").attr('src', newEmbed); 7029 $("#VdoID")[0].src += "&autoplay=1"; 7030 }); 7031 $(".product-single__thumbnail").click(function(evt){ 7032 evt.preventDefault(); 7033 $("#featured-image-product").removeClass("img-video"); 7034 $("#ProductPhotoImg").show(); 7035 $("#featured-image-product .video").hide(); 7036 $("#featured-image-product iframe").attr('src', ''); 7037 }); 7038 7039 if($('#product-meta .short-desc > div').length >= 1){ 7040 //console.log('div detected') 7041 var replacer = $('#product-meta .short-desc > div').contents(); 7042 $('#product-meta .short-desc > div').replaceWith(replacer); 7043 7044 var cAssured = $('.c-assured').detach(); 7045 cAssured.insertAfter('.meta-sds .stock-info'); 7046 } 7047 7048 7049 7050 $(".heading-toggle").click(function(){ 7051 $(this).parent().toggleClass("open") 7052 7053 }); 7054 }); 7055 </script>
7055 7056 7057 7058
7058<script type="application/json" id="ProductJson-Product"> 7059 7060 {"id":8144957800663,"title":"BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBasket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari."} 7061 </script>
7061 7062 7063
7063<script type="application/json" id="VariantJson-Product"> 7064 [ 7065 7066 { 7067 "incoming": false, 7068 "next_incoming_date": null 7069 } 7070 7071 ] 7072 </script>
7072 7073 7074 7075 7076 7077 </div> 7078 7079 7080
7080<script src="//outerbloom.com/cdn/shopifycloud/storefront/assets/themes_support/option_selection-b017cd28.js" type="text/javascript"></script>
7080 7081 <style> 7082 .stamped-review-header-title, 7083 .stamped-review-header .author, 7084 .stamped-review-content-body, 7085 .stamped-sort-select, 7086 .stamped-review-header .verified-badge[data-type=buyer]:after, 7087 .stamped-review-header-byline, 7088 .stamped-review-reply-body {font-size: 14px!important;font-family: 'Barlow',sans-serif!important;} 7089 .stamped-review {margin-bottom: 0;} 7090 .stamped-review-body {padding-left: 65px;} 7091 .stamped-review:first-child {padding-top: 25px;} 7092 .stamped-review-content {clear: none;} 7093 .stamped-review-reply {margin: 15px 0 0 65px;background: #f2f2f2;border-left: none;} 7094 .stamped-review-reply-body {padding-left: 65px;} 7095 .stamped-review-header .author {text-transform: capitalize;} 7096 .stamped-questions .stamped-review-content {padding-left: 65px;} 7097 7098 .stamped-pagination {margin: 20px 0 0;} 7099 .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;} 7100 .stamped-pagination li a {color: #121212;padding: 13px 18px;vertical-align: middle;display: block;} 7101 .stamped-pagination li.active a {background-color: #ddd;font-weight: 400;} 7102 .stamped-pagination li:hover a {background: #ddd;} 7103 .stamped-pagination .next {border-right: 1px solid #ccc;} 7104 .stamped-pagination li:first-child {border-top-left-radius: 5px;border-bottom-left-radius: 5px;} 7105 .stamped-pagination li:last-child {border-top-right-radius: 5px;border-bottom-right-radius: 5px;} 7106 7107 #stamped-pagination-question span.page {display: inline-block;border: 1px solid #ccc;width: 47px;} 7108 #stamped-pagination-question span {font-size: 14px;} 7109 #stamped-pagination-question .page.active {padding: 12px;font-weight: 400;background: #ddd;} 7110 #stamped-pagination-question a, #stamped-pagination-question .page.active {color: #121212;padding: 13px 18px;vertical-align: middle;display: inline-block;} 7111 .stamped-pagination-deco {color: #121212;padding: 13px 18px;width: 47px;vertical-align: middle;display: inline-block;border: 1px solid #ccc;padding: 12px;} 7112 .stamped-pagination-prev, .stamped-pagination-next {position: inherit;} 7113 .stamped-pagination-prev a, .stamped-pagination-next a {width: auto!important;border: 1px solid #ccc;} 7114 7115 @media (max-width: 480px){ 7116 .stamped-review-reply {margin-left: 0!important;} 7117 select.stamped-sort-select {font-size: 13px!important;} 7118 } 7119 7120 #product-reviews .stamped-summary-ratings, #product-reviews .stamped-summary-actions, .stamped-content { 7121 display: block !important; 7122 } 7123 </style> 7124
7124<script> 7125 var selectCallback = function(variant, selector) { 7126 timber.productPage({ 7127 money_format: "Rp {{amount_no_decimals}}", 7128 variant: variant, 7129 selector: selector 7130 }); 7131 }; 7132 7133 jQuery(function($) { 7134 new Shopify.OptionSelectors('productSelect', { 7135 product: 7136 7137 7138 7139 7140 7141 {"id":8144957800663,"title":"BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBasket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari."}, 7142 onVariantSelected: selectCallback, 7143 enableHistoryState: true 7144 }); 7145 7146 // Add label if only one product option and it isn't 'Title'. Could be 'Size'. 7147 7148 7149 // Hide selectors if we only have 1 variant and its title contains 'Default'. 7150 7151 $('.selector-wrapper').hide(); 7152 7153 }); 7154 </script>
7154 7155 7156 7157 7158
7158<script type="application/ld+json"> 7159 { 7160 "@context": "http://schema.org", 7161 "@type": "Product", 7162 "offers": { 7163 "@type": "Offer", 7164 "availability":"https://schema.org/InStock", 7165 "price": 835000, 7166 "priceValidUntil": "05-10-2025", 7167 "priceCurrency": "IDR", 7168 "url": "https://basket168what.com/" 7169 }, 7170 "brand": { 7171 "@type": "Brand", 7172 "name": "Outerbloom Florist" 7173 }, 7174 "sku": "8144957800663", 7175 "gtin13": "Jawa", 7176 "name": "BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian", 7177 "description": "Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari.", 7178 "category": "Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari.", 7179 "url": "https://basket168what.com/", 7180 "image": { 7181 "@type": "ImageObject", 7182 "url": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426", 7183 "image": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426", 7184 "name": "BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian", 7185 "width": 1024, 7186 "height": 1024 7187 } 7188 } 7189 </script>
7189 7190 7191 7192 7193 7194 7195
7195<script id="bss-ltap-hide-price" type="text/javascript" > 7196 !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)}))}
7196)),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)}
7196)),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()}
7196if("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)}
7196if(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");
7196c&&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
7196-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");
7196i&&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
7196--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
7196opify.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");
7196e.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=
7196o.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");
7196if(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();
7196let 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()}]); 7197 </script>
7197 7198 7199 </main> 7200 7201 <div id="shopify-section-newsletter" class="shopify-section"><br> 7202 <style> 7203 #shopify-section-newsletter { 7204 background: url('https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg'); 7205 background-attachment: fixed; 7206 margin-bottom: 0; 7207 } 7208 input:-webkit-autofill, 7209 input:-webkit-autofill:hover, 7210 input:-webkit-autofill:active, 7211 input:-webkit-autofill:focus { 7212 -webkit-box-shadow:0 0 0 50px white inset; 7213 -webkit-text-fill-color: #ffffff; 7214 } 7215 .section-newsletter { 7216 max-width: 800px; 7217 margin: auto; 7218 padding: 50px 0; 7219 } 7220 .section-newsletter h2 { 7221 font-weight: 700; 7222 font-size: 24px; 7223 } 7224 .section-newsletter input[type="email"] { 7225 width: 100%; 7226 text-align: center; 7227 border: none; 7228 border-bottom: 1px solid #ffffff; 7229 font-size: 16px; 7230 color: #757575; 7231 background-color: #eeeeee; 7232 } 7233 .section-newsletter .row label { 7234 font-size: 14px; 7235 cursor: pointer; 7236 } 7237 .section-newsletter .radio-inline input { 7238 width: auto; 7239 } 7240 .section-newsletter .btn { 7241 width: 130px; 7242 border: 1px solid #ffffff; 7243 box-shadow: none; 7244 font-size: 16px; 7245 font-weight: 500; 7246 text-transform: uppercase; 7247 } 7248 .section-newsletter form { 7249 margin: 30px 0 60px; 7250 } 7251 .section-newsletter input[type="radio"] { 7252 position: absolute; 7253 width: 1px; 7254 height: 1px; 7255 } 7256 .section-newsletter [type="radio"]:checked + label, .section-newsletter [type="radio"]:not(:checked) + label { 7257 position: relative; 7258 padding-left: 28px; 7259 cursor: pointer; 7260 line-height: 20px; 7261 display: inline-block; 7262 color: #666; 7263 } 7264 .section-newsletter [type="radio"]:checked + label:before, .section-newsletter [type="radio"]:not(:checked) + label:before { 7265 content: ''; 7266 position: absolute; 7267 left: 0; 7268 top: 0; 7269 width: 18px; 7270 height: 18px; 7271 border: 1px solid #ddd; 7272 border-radius: 100%; 7273 background: #fff; 7274 } 7275 .section-newsletter [type="radio"]:checked + label:after, .section-newsletter [type="radio"]:not(:checked) + label:after { 7276 content: ''; 7277 width: 12px; 7278 height: 12px; 7279 background: #ffffff; 7280 position: absolute; 7281 top: 3px; 7282 left: 3px; 7283 border-radius: 100%; 7284 -webkit-transition: all 0.2s ease; 7285 transition: all 0.2s ease; 7286 } 7287 .section-newsletter [type="radio"]:not(:checked) + label:after { 7288 opacity: 0; 7289 -webkit-transform: scale(0); 7290 transform: scale(0); 7291 } 7292 .opt-newsletter {display:none;} 7293 .footer-newsletter p, .footer-newsletter p a { 7294 color: #757575; 7295 } 7296 @media (max-width:991px){ 7297 .section-newsletter h2 { 7298 font-size: 32px; 7299 } 7300 .section-newsletter input { 7301 width: 300px; 7302 font-size: 14px; 7303 } 7304 .section-newsletter { 7305 padding: 50px 20px; 7306 } 7307 } 7308 @media (max-width: 480px){ 7309 .section-newsletter input[type="email"] {font-size: 16px;} 7310 } 7311 </style> 7312 <style> 7313 .icon-img-footer { 7314 width: 80px; 7315 padding: 0px 5px; 7316 } 7317 @media (min-width: 768px) { 7318 .icon-img-footer { 7319 width: 120px; 7320 } 7321 } 7322 @media (min-width: 992px) { 7323 .icon-img-footer { 7324 width: 120px; 7325 } 7326 } 7327 7328 .button-login-daftar { 7329 display: grid; 7330 grid-template-columns: repeat(2, 1fr); 7331 font-weight: 700; 7332 } 7333 .button-login-daftar a { 7334 text-align: center; 7335 } 7336 .login, 7337 .register { 7338 color: #ffa200; 7339 padding: 15px 10px; 7340 font-size: 23px; 7341 } 7342 .login, 7343 .login-button { 7344 background: linear-gradient(to bottom,#000000 0,#000000 100%); 7345 border: 2px solid #ffa200; 7346 } 7347 .register, 7348 .register-button { 7349 background: linear-gradient(to bottom,#000000 0,#000000 100%); 7350 border: 2px solid #ffa200; 7351 } 7352 7353 7354 7355 </style> 7356 7357 <!-- wp:html --> 7358
7358<script> 7359 document.addEventListener('DOMContentLoaded', 7360 function(){const faqItems=document.querySelectorAll('.faq-item'); 7361 faqItems.forEach(item=>{const question=item.querySelector('.faq-question'); 7362 question.addEventListener('click', 7363 ()=>{const isActive=item.classList.contains('active'); 7364 faqItems.forEach(otherItem=>{otherItem.classList.remove('active')}); 7365 if(!isActive){item.classList.add('active')}})})}); 7366 </script>
7366 7367 7368 7369 <div class="page__overlay" data-view="offCanvasNavToggle" data-off-canvas="close" bis_skin_checked="1"> 7370 </div> 7371 <div class="faq-section"> 7372 <h2>FAQ</h2> 7373 <div class="faq-container"> 7374 <div class="faq-item"> 7375 <button class="faq-question">1. Apa yang membuat BASKET168 disebut portal login slot eksklusif?<span></span></button> 7376 <div class="faq-answer"><p>BASKET168 menghadirkan pintu masuk khusus ke koleksi slot eksklusif dari puluhan provider internasional terkemuka, dilengkapi antarmuka premium yang intuitif dan sistem keamanan berlapis untuk memproteksi setiap akun member.</p></div> 7377 </div> 7378 <div class="faq-item"> 7379 <button class="faq-question">2. Bagaimana cara mengetahui game gacor yang tersedia di BASKET168?<span></span></button> 7380 <div class="faq-answer"><p>BASKET168 menyediakan halaman khusus yang menampilkan daftar game gacor terupdate berdasarkan nilai RTP tertinggi dan performa kemenangan terkini, sehingga member bisa langsung memilih slot dengan peluang terbaik setiap harinya.</p></div> 7381 </div> 7382 <div class="faq-item"> 7383 <button class="faq-question">3. Apa saja jenis bonus harian yang bisa diklaim di BASKET168?<span></span></button> 7384 <div class="faq-answer"><p>Member aktif BASKET168 berhak atas berbagai bonus harian seperti cashback kekalahan, reload deposit, dan reward spin gratis yang dikreditkan secara otomatis ke akun tanpa perlu klaim manual yang merepotkan.</p></div> 7385 </div> 7386 <div class="faq-item"> 7387 <button class="faq-question">4. Seberapa lengkap koleksi game online yang tersedia di portal ini?<span></span></button> 7388 <div class="faq-answer"><p>Sangat lengkap. BASKET168 mengumpulkan ribuan judul permainan mulai dari slot klasik, video slot modern, live casino, hingga sports betting semuanya tersaji dalam satu portal tanpa perlu berpindah platform.</p></div> 7389 </div> 7390 <div class="faq-item"> 7391 <button class="faq-question">5. Apakah transaksi deposit dan withdraw di BASKET168 terjamin kecepatannya?<span></span></button> 7392 <div class="faq-answer"><p>Dijamin. Sistem pembayaran BASKET168 telah terintegrasi dengan berbagai metode transfer lokal dan dompet digital, memastikan proses deposit instan dan pencairan dana yang cepat tanpa potongan tersembunyi.</p></div> 7393 </div> 7394 7395 </div> 7396 7397 </div> 7398 7399 </div> 7400 7401 7402 <div class="overlay overlay-cart"></div> 7403 <div id="CartDrawer" class="drawer drawer--right"> 7404 <div class="drawer__header pl-2 pr-2"> 7405 <div class="drawer__icon-cart display-table-cell"> 7406 <a href="/cart" class=""> 7407 <svg class="icon icon-cart" version="1.1" xmlns="https://hokiku.io/images/2025/02/10/logo.png" 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.
7407005-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> 7408 </a> 7409 </div> 7410 <div class="drawer__title h4">Keranjang Belanja</div> 7411 <div class="drawer__close js-drawer-close"> 7412 <button type="button"> 7413 <svg class="icon icon-close" version="1.1" xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="32" height="32" viewBox="0 0 32 32"> 7414 <title>icon-close</title> 7415 <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> 7416 </svg> 7417 </button> 7418 </div> 7419 </div> 7420 <div id="CartContainer" class="p-2"></div> 7421 </div> 7422 7423
7423<script> 7424 7425 </script>
7425 7426
7426<script src="//outerbloom.com/cdn/shop/t/138/assets/handlebars.min.js?v=79044469952368397291752652415" defer></script>
7426 7427 <!-- /snippets/ajax-cart-template.liquid --> 7428 7429
7429<script id="CartTemplate" type="text/template"> 7430 7431 <form action="/cart" method="post" novalidate class="cart ajaxcart"> 7432 <div class="ajaxcart__inner" {{ cart.item_count }}> 7433 {{#items}} 7434 <div class="ajaxcart__product"> 7435 <div class="ajaxcart__row" data-line="{{line}}"> 7436 <div class="grid"> 7437 <div class="grid__item one-quarter"> 7438 <a href="{{url}}" class="ajaxcart__product-image"><img src="{{img}}" alt=""></a> 7439 </div> 7440 <div class="grid__item three-quarters"> 7441 <p class="d-block mb-3"> 7442 <a class="h4 d-block mb-2" href="{{url}}" class="ajaxcart__product-name">{{name}}</a> 7443 {{#if variation}} 7444 <span class="ajaxcart__product-meta p">{{variation}}</span> 7445 {{/if}} 7446 {{#properties}} 7447 {{#each this}} 7448 {{#if this}} 7449 <span class="ajaxcart__product-meta p hide">{{@key}}: {{this}}</span> 7450 {{/if}} 7451 {{/each}} 7452 {{/properties}} 7453 7454 </p> 7455 <div class="grid--full display-table"> 7456 <div class="grid__item display-table-cell one-half"> 7457 <div class="ajaxcart__qty"> 7458 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}" data-line="{{line}}"> 7459 <svg version="1.1" xmlns="https://hokiku.io/images/2025/02/10/logo.png" 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> 7460 <span class="visually-hidden">Kurangi jumlah barang</span> 7461 </button> 7462 <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]*"> 7463 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-line="{{line}}" data-qty="{{itemAdd}}"> 7464 <svg version="1.1" xmlns="https://hokiku.io/images/2025/02/10/logo.png" 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> 7465 <span class="visually-hidden">Tambahkan jumlah barang</span> 7466 </button> 7467 </div> 7468 </div> 7469 <div class="grid__item display-table-cell one-half text-right"> 7470 {{#if discountsApplied}} 7471 <small class="ajaxcart-item__price-strikethrough"><s>{{{originalLinePrice}}}</s></small> 7472 <br><span class="h4">{{{linePrice}}}</span> 7473 {{else}} 7474 <span class="h4">{{{linePrice}}}</span> 7475 {{/if}} 7476 </div> 7477 </div> 7478 {{#if discountsApplied}} 7479 <div class="grid--full display-table"> 7480 <div class="grid__item text-right"> 7481 {{#each discounts}} 7482 <small class="ajaxcart-item__discount">{{ this.title }}</small><br> 7483 {{/each}} 7484 </div> 7485 </div> 7486 {{/if}} 7487 </div> 7488 </div> 7489 </div> 7490 </div> 7491 </div> 7492 </div> 7493 {{/items}} 7494 </div> 7495 <div class="ajaxcart__footer"> 7496 <div class="grid--full cart-subtotal py-2"> 7497 <p>Subtotal</p> 7498 <h3 class="primary">{{{totalPrice}}}</h3> 7499 {{#if totalCartDiscount}} 7500 <p class="ajaxcart__savings text-center"><em>{{{totalCartDiscount}}}</em></p> 7501 {{/if}} 7502 </div> 7503 7504 <a href="/cart" class="btn btn-cta view-more btn-block cart__checkout mt-2">Checkout</a> 7505 7506 <p class="cart-checkout-shipping hide">Free Ongkir dengan belanja di atas Rp.10.000 <a href="/pages/pengiriman">detail</a></p> 7507 </div> 7508 </form> 7509 7510 </script>
7510 7511
7511<script id="AjaxQty" type="text/template"> 7512 7513 <div class="ajaxcart__qty"> 7514 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}"> 7515 <svg version="1.1" xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="24" height="24" viewBox="0 0 32 32"> 7516 <title>icon-minus</title> 7517 <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> 7518 </svg> 7519 <span class="visually-hidden">Kurangi jumlah barang</span> 7520 </button> 7521 <input type="text" class="ajaxcart__qty-num" value="{{itemQty}}" min="0" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*"> 7522 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-qty="{{itemAdd}}"> 7523 <svg version="1.1" xmlns="https://hokiku.io/images/2025/02/10/logo.png" 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> 7524 <span class="visually-hidden">Tambahkan jumlah barang</span> 7525 </button> 7526 </div> 7527 7528 </script>
7528 7529
7529<script id="JsQty" type="text/template"> 7530 7531 <div class="js-qty mx-auto mt-2"> 7532 <button type="button" class="js-qty__adjust js-qty__adjust--minus" data-id="{{key}}" data-qty="{{itemMinus}}"> 7533 <svg version="1.1" xmlns="https://hokiku.io/images/2025/02/10/logo.png" 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> 7534 <span class="visually-hidden">Kurangi jumlah barang</span> 7535 </button> 7536 <input type="text" class="js-qty__num" value="{{itemQty}}" min="1" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*" name="{{inputName}}" id="{{inputId}}"> 7537 <button type="button" class="js-qty__adjust js-qty__adjust--plus" data-id="{{key}}" data-qty="{{itemAdd}}"> 7538 <svg version="1.1" xmlns="https://hokiku.io/images/2025/02/10/logo.png" 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> 7539 <span class="visually-hidden">Tambahkan jumlah barang</span> 7540 </button> 7541 </div> 7542 7543 </script>
7543 7544 7545 <style> 7546 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty button, 7547 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty button, 7548 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty button {display: none;} 7549 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input, 7550 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input, 7551 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;opacity: 0.5;} 7552 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input, 7553 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input, 7554 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;} 7555 </style> 7556
7556<script src="//outerbloom.com/cdn/shop/t/138/assets/ajax-cart.js?v=51128912329657147331752652452" defer></script>
7556 7557
7557<script> 7558 jQuery(function($) { 7559 ajaxCart.init({ 7560 formSelector: '#AddToCartForm', 7561 cartContainer: '#CartContainer', 7562 addToCartSelector: '#AddToCartXX', 7563 cartCountSelector: '#CartCount, #CartCount2', 7564 cartCostSelector: '#CartCost', 7565 moneyFormat: "Rp {{amount_no_decimals}}" 7566 }); 7567 }); 7568 7569 jQuery(document.body).on('afterCartLoad.ajaxCart', function(evt, cart) { 7570 // Bind to 'afterCartLoad.ajaxCart' to run any javascript after the cart has loaded in the DOM 7571 timber.RightDrawer.open(); 7572 }); 7573 </script>
7573 7574 7575 7576 7577 7578 <style> 7579 /** Search AutoComplete **/ 7580 .resultsearch .ui-menu-item[data-cat="Collection"], 7581 .resultsearch .ui-menu-item[data-cat="Collection"] {display: none;} 7582 .resultsearch .ui-widget.ui-widget-content { 7583 width: 100%; 7584 top: 48px; 7585 border: none; 7586 box-shadow: 0 4px 8px rgba(255, 255, 255, 0.3); 7587 } 7588 .resultsearch .ui-menu-item {text-align: left;} 7589 .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;} 7590 .ui-state-active { 7591 border: none!important; 7592 background-color: #fafafa!important; 7593 color: #000!important; 7594 } 7595 .ui-menu-item a[data-cat="Collection"] {padding: 5px 12px;} 7596 .ui-menu .ui-menu-item {line-height: normal;} 7597 </style> 7598
7598<script> 7599 $(window).load(function(){ 7600 7601 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;} 7602 7603 $.widget("custom.catcomplete", $.ui.autocomplete, { 7604 _renderMenu: function (ul, items) { 7605 // have search reults split up in categories 7606 var that = this, 7607 currentCategory = ""; 7608 $.each(items, function (index, item) { 7609 if (item.category != currentCategory) { 7610 ul.append("<li class='ui-autocomplete-category' data-cat=" + item.category + ">" + "<span>" + item.category + "</span>" + "</li>"); 7611 currentCategory = item.category; 7612 } 7613 that._renderItemData(ul, item); 7614 }); 7615 } 7616 }); 7617 7618 // higlight searched for term 7619 $.ui.autocomplete.prototype._renderItem = function( ul, item ) { 7620 var term = this.element.val(), 7621 html = item.label.replace( term, "<b>$&</b>" ); 7622 return $( "<li>" ) 7623 .append(format(item)) 7624 .appendTo( ul ); 7625 }; 7626 7627 7628 var data = [ 7629 { 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
7629llection", 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: " " }
7629,{ 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: " " }
7629,{ 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: " " }
7629,{ 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
7629dal", 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-
7629hampers", 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
7629o-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: " " }
7629,{ 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: " " }
7629,{ 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: " " }
7629,{ 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: " " }
7629,{ 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: " " }
7629,{ 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: " " }
7629,{ 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: " " }
7629,{ 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: "Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari.", category: "Collection", url: "/collections/standing-flower", images: " ", price: " " },{ label: "Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari. Bali", category: "Collection", url: "/collections/standing-flower-bali", images: " ", price: " " },{ label: "Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari. Bandung", category: "Collection", url: "/collections/standing-flower-bandung", images: " ", price: " " },{ label: "Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari. Congratulations", category: "Collection", url: "/collections/standing-flower-congratulations", images: " ", price: " " },{ label: "Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari. Demak", category: "Collection", url: "/collections/standing-flower-demak", images: " ", price: " " },{ label: "Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari. Jepara", category: "Collection", url: "/collections/standing-flower-jepara", images: " ", price: " " },{ label: "Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari. Semarang", category: "Collection", url: "/collections/standing-flower-semarang", images: " ", price: " " },{ label: "Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari. Sidoarjo", category: "Collection", url: "/collections/standing-flower-sidoarjo", images: " ", price: " " },{ label: "Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari. Surabaya", category: "Collection", url: "/collections/standing-flower-surabaya", images: " ", price: " " },{ label: "Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari. 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: " " },{ l
7629abel: "Toko Bunga Atambua", category: "Collection", url: "/collections/toko-bunga-atambua", images: " ", price: " " },{ label: "Toko Bunga Bali", category: "Collection", url: "/collections/toko-bunga-bali", images: " ", price: " " },{ label: "Toko Bunga Balikpapan", category: "Collection", url: "/collections/toko-bunga-balikpapan", images: " ", price: " " },{ label: "Toko Bunga Bandar Lampung", category: "Collection", url: "/collections/toko-bunga-bandar-lampung", images: " ", price: " " },{ label: "Toko Bunga Bandung", category: "Collection", url: "/collections/toko-bunga-bandung", images: " ", price: " " },{ label: "Toko Bunga Bandung Barat", category: "Collection", url: "/collections/toko-bunga-bandung-barat", images: " ", price: " " },{ label: "Toko Bunga Banjarmasin", category: "Collection", url: "/collections/toko-bunga-banjarmasin", images: " ", price: " " },{ label: "Toko Bunga Banten", category: "Collection", url: "/collections/toko-bunga-banten", images: " ", price: " " },{ label: "Toko Bunga Banyumas", category: "Collection", url: "/collections/toko-bunga-banyumas", images: " ", price: " " },{ label: "Toko Bunga Banyuwangi", category: "Collection", url: "/collections/toko-bunga-banyuwangi", images: " ", price: " " },{ label: "Toko Bunga Batam", category: "Collection", url: "/collections/toko-bunga-batam", images: " ", price: " " },{ label: "Toko Bunga Baubau", category: "Collection", url: "/collections/toko-bunga-baubau", images: " ", price: " " },{ label: "Toko Bunga Bekasi", category: "Collection", url: "/collections/toko-bunga-bekasi", images: " ", price: " " },{ label: "Toko Bunga Bengkalis", category: "Collection", url: "/collections/toko-bunga-bengkalis", images: " ", price: " " },{ label: "Toko Bunga Bengkayang", category: "Collection", url: "/collections/toko-bunga-bengkayang", images: " ", price: " " },{ label: "Toko Bunga Binjai", category: "Collection", url: "/collections/toko-bunga-binjai", images: " ", price: " " },{ label: "Toko Bunga Bintaro", category: "Collection", url: "/collections/toko-bunga-bintaro", images: " ", price: " " },{ label: "Toko Bunga Blitar", category: "Collection", url: "/collections/toko-bunga-blitar", images: " ", price: " " },{ label: "Toko Bunga Blora", category: "Collection", url: "/collections/toko-bunga-blora", images: " ", price: " " },{ label: "Toko Bunga Bogor", category: "Collection", url: "/collections/toko-bunga-bogor", images: " ", price: " " },{ label: "Toko Bunga Bojonegoro", category: "Collection", url: "/collections/toko-bunga-bojonegoro", images: " ", price: " " },{ label: "Toko Bunga Boyolali", category: "Collection", url: "/collections/toko-bunga-boyolali", images: " ", price: " " },{ label: "Toko Bunga Brebes", category: "Collection", url: "/collections/toko-bunga-brebes", images: " ", price: " " },{ label: "Toko Bunga Bukittinggi", category: "Collection", url: "/collections/toko-bunga-bukittinggi", images: " ", price: " " },{ label: "Toko Bunga Buleleng", category: "Collection", url: "/collections/toko-bunga-buleleng", images: " ", price: " " },{ label: "Toko Bunga Cakung", category: "Collection", url: "/collections/toko-bunga-cakung", images: " ", price: " " },{ label: "Toko Bunga Cawang", category: "Collection", url: "/collections/toko-bunga-cawang", images: " ", price: " " },{ label: "Toko Bunga Cempaka Putih", category: "Collection", url: "/collections/toko-bunga-cempaka-putih", images: " ", price: " " },{ label: "Toko Bunga Cengkareng", category: "Collection", url: "/collections/toko-bunga-cengkareng", images: " ", price: " " },{ label: "Toko Bunga Ciamis", category: "Collection", url: "/collections/toko-bunga-ciamis", images: " ", price: " " },{ label: "Toko Bunga Cianjur", category: "Collection", url: "/collections/toko-bunga-cianjur", images: " ", price: " " },{ label: "Toko Bunga Cibinong", category: "Collection", url: "/collections/toko-bunga-cibinong", images: " ", price: " " },{ label: "Toko Bunga Cibubur", category: "Collection", url: "/collections/toko-bunga-cibubur", images: " ", price: " " },{ label: "Toko Bunga Cijantung", category: "Collection", url: "/collections/toko-bunga-cijantung", images: " ", price: " " },{ label: "Toko Bunga Cikarang", category: "Collection", url: "/collections/toko-bunga-cikarang", images: " ", price: " " },{ label: "Toko Bunga Cikini", category: "Collection", url: "/collections/toko-bunga-cikini", images: " ", price: " " },{ label: "Toko Bunga Cilacap", category: "Collection", url: "/collections/toko-bunga-cilacap", images: " ", price: " " },{ label: "Toko Bunga Cilandak", category: "Collection", url: "/collections/toko-bunga-cilandak", images: " ", price: " " },{ label: "Toko Bunga Cileunyi", category: "Collection", url: "/collections/toko-bunga-cileunyi", images: " ", price: " " },{ label: "Toko Bunga Ciracas", category: "Collection", url: "/collections/toko-bunga-ciracas", images: " ", price: " " },{ label: "Toko Bunga Cirebon", category: "Collection", url: "/collections/toko-bunga-cirebon", images: " ", price: " " }
7629,{ 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
7629dal", 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: " " }, 7630 { 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" }
7630,{ 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" }
7630,{ 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" } 7631 ]; 7632 7633 7634 $( ".header-input-search" ).catcomplete({ 7635 appendTo: ".searchResult",source: function(request, response) { 7636 var results = $.ui.autocomplete.filter(data, request.term); 7637 var predicate = function () { 7638 var counter = { Collection: 0, Produk: 0 }; 7639 var fn = function(item) {counter[item.category] += 1;return (counter[item.category] <= 5);} 7640 return fn 7641 }(); 7642 response(results.filter(predicate)); 7643 }, 7644 minLength:1, 7645 //results are clickable 7646 select: function( event, ui ) {window.location = ui.item.url;} 7647 }); 7648 $( ".header-input-search2" ).catcomplete({ 7649 appendTo: ".searchResult2", 7650 source: function(request, response) { 7651 var results = $.ui.autocomplete.filter(data, request.term); 7652 var predicate = function () { 7653 var counter = { Collection: 0, Produk: 0 }; 7654 var fn = function(item) { 7655 counter[item.category] += 1; 7656 return (counter[item.category] <= 5); 7657 } 7658 return fn 7659 }(); 7660 response(results.filter(predicate)); 7661 }, 7662 minLength:1, 7663 //results are clickable 7664 select: function( event, ui ) { 7665 window.location = ui.item.url; 7666 } 7667 }); 7668 }); 7669 </script>
7669 7670 7671
7671<script src="//outerbloom.com/cdn/shop/t/138/assets/vendors.js?v=6349622868601634021752652419" defer></script>
7671 7672
7672<script src="//outerbloom.com/cdn/shop/t/138/assets/app.js?v=136050180318808583701752652452" defer></script>
7672 7673 7674
7674<script> 7675 ( function() { 7676 var youtube = document.querySelectorAll( ".youtube" ); 7677 for (var i = 0; i < youtube.length; i++) { 7678 var source = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault_1x.jpg"; 7679 var datasource = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault.jpg"; 7680 var image = new Image(); 7681 image.src = source; 7682 image.setAttribute("data-src", datasource); 7683 image.classList.add("swiper-lazy"); 7684 image.addEventListener( "load", function() { 7685 youtube[ i ].appendChild( image ); 7686 }( i ) ); 7687 youtube[i].addEventListener( "click", function() { 7688 var iframe = document.createElement( "iframe" ); 7689 iframe.setAttribute( "width", "480" ); 7690 iframe.setAttribute( "height", "480" ); 7691 iframe.setAttribute( "frameborder", "0" ); 7692 iframe.setAttribute( "allowfullscreen", "" ); 7693 iframe.setAttribute( "src", "https://www.youtube.com/embed/"+ this.dataset.embed +"?rel=0&showinfo=0&autoplay=1" ); 7694 this.innerHTML = ""; 7695 this.appendChild( iframe ); 7696 } ); 7697 }; 7698 7699 } )(); 7700 7701 /* Lazy Load */ 7702 const mainLazyLoad = new LazyLoad({threshold:400}); 7703 $(document).ready(function(){ 7704 7705 $("selectxxx").addClass("needsclick"); 7706 FastClick.attach(document.body); 7707 7708 var $customSelects = $('.select-search'); 7709 $customSelects.select2({ 7710 templateResult: function(result, container) { 7711 if (!result.id) { 7712 return result.text; 7713 } 7714 container.className += ' needsclick'; 7715 return result.text; 7716 } 7717 }); 7718 $customSelects.each(function(index, el){$(el).data('select2').$container.find('*').addClass('needsclick');}); 7719 $(document).on('select2:open', () => { 7720 document.querySelector('.select2-search__field').focus(); 7721 }); 7722 7723 7724 $(".overlay").click(function(){ 7725 $(".js-drawer-close").click(); 7726 }); 7727 $(".site-nav--mobile .js-drawer-open-left, #NavDrawer .icon-close, .overlay-nav").click(function(){ 7728 $("html").toggleClass("nav_open"); 7729 }); 7730 7731 $('.swatch-element label').on('click', function(){ 7732 var srcImg = $(this).data('src'); 7733 $('#thumb-image-product .product-single__thumbnail').each(function(){ 7734 if ($(this).attr("href") == srcImg) { 7735 $(this).trigger('click'); 7736 } 7737 }); 7738 }); 7739 var defaultValue = $(".swatch input:checked").val() 7740 7741 $('#purchaseProduct .swatch [type=radio]').change(function() { 7742 var optionIndex = $(this).closest('.swatch').attr('data-option-index'); 7743 var optionValue = $(this).val(); 7744 console.log(optionIndex, optionValue) 7745 var value = parseInt(optionValue.split(' ')[0]) 7746 $(this) 7747 .closest('#purchaseProduct') 7748 .find('.single-option-selector') 7749 .eq(optionIndex) 7750 .val(optionValue) 7751 .trigger('change'); 7752 7753 }); 7754 7755 }); 7756 $(document).ready(function(){ 7757 $(".nav-search a").click(function(e){ 7758 e.preventDefault(); 7759 $(".icon-navsearch").toggle(); 7760 $(".icon-navclose").toggle(); 7761 $(".site-nav__item > .site-nav__link").toggle(); 7762 $(".open-search").toggle(); 7763 $(".open-search input").focus(); 7764 }); 7765 $(".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'>"); 7766 if ($(window).width() < 768) { 7767 $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_75x.png?v=82732945490105366961752652419' alt='Icon Valentine'>"); 7768 $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_45x.png?v=101884295148001743851752652418' alt='Icon CNY'>"); 7769 $(".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'>"); 7770 } else { 7771 $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_60x.png?v=82732945490105366961752652419' alt='Icon Valentine'>"); 7772 $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_60x.png?v=101884295148001743851752652418' alt='Icon CNY'>"); 7773 $(".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'>"); 7774 } 7775 $(".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'>"); 7776 $(".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'>"); 7777 }); 7778 </script>
7778 7779 7780 7781 7782 7783
7783<script type="text/javascript"> 7784 var wishlistpage = 0; 7785 7786 var quickShop_money_format="<span class='money'>"+"Rp {{amount_no_decimals}}"+"</span>"; 7787 </script>
7787 7788 7789 <!-- Remove duplicate wishlist.js reference --> 7790 <style> 7791 .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)}} 7792 </style> 7793 7794 <div class="modal fade" id="modalwishlist0" tabindex="-1" role="dialog"> 7795 <div class="modal-dialog" role="document"> 7796 <div class="modal-content"> 7797 <div class="modal-body">Your Wishlist is empty!</div> 7798 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> 7799 </div> 7800 </div> 7801 </div> 7802 7803 <div class="wishlist-model"> 7804 <div class="modal fade" id="modalwishlist1" tabindex="-1" role="dialog" aria-hidden="true"> 7805 <div class="modal-dialog white-modal"> 7806 <div class="modal-content"> 7807 <div class="modal-header"> 7808 <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 7809 <svg class="icon icon-close" version="1.1" xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="32" height="32" viewBox="0 0 32 32"> 7810 <title>icon-close</title> 7811 <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> 7812 </svg> 7813 </button> 7814 </div> 7815 <div class="modal-body"> 7816 <div class="wishlist-left"> 7817 <div class="wishlist-note">
7818 <span class="cirle"><svg version="1.1" xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="32" height="32" viewBox="0 0 32 32"> 7819 <title>icon-check</title> 7820 <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> 7821 </svg></span> 7822 Product added to <a href="/pages/wish-list">Wishlist</a> 7823 </div> 7824 <div class="wishlist-product"> 7825 <div class="product-left"> 7826 <div class="wishlist-image"></div> 7827 </div> 7828 <div class="product-right"> 7829 <div class="wishlist-name"></div> 7830 <div class="wishlist-price"></div> 7831 </div> 7832 </div> 7833 </div> 7834 <div class="wishlist-right"> 7835 <div class="wishlist-cart"> 7836 <form action="/cart/add" method="post" class="variants-form variants" id="AddToCartForm" enctype="multipart/form-data"> 7837 <div class="others-bottom"> 7838 <a class="btn btn-quick-shop" href="/pages/wish-list">View Wishlist</a> 7839 <button type="submit" name="add" id="AddToCart" class="btn btn-cta"> 7840 <span id="AddToCartText" class="">Beli Sekarang</span> 7841 </button> 7842 </div> 7843 <div id="wishlist-variants-container" class="variants-wrapper"></div> 7844 <div class="quantity-content"> 7845 <label>QTY</label> 7846 <input type="number" size="5" class="" name="quantity" value="1" /> 7847 </div> 7848 </form> 7849 </div> 7850 </div> 7851 </div> 7852 </div> 7853 </div> 7854 </div> 7855 </div> 7856 7857 7858 <style> 7859 .stamped-badge[data-rating="0.0"]{display: none !Important;} 7860 7861 div[data-load-type="continue"] ul.stamped-pagination li.next a, div[data-widget-load-type="continue"] ul.stamped-pagination li.next a { 7862 border-radius: 0px; 7863 } 7864 .stamped-review-body { 7865 padding-left: 0px !important; 7866 } 7867 #product-reviews .stamped-header:after { 7868 display:none !Important; 7869 } 7870 #stamped-main-widget .stamped-container, .stamped-badge-caption,#stamped-reviews-widget { 7871 font-family:inherit !important; 7872 } 7873 </style> 7874 7875 7876 7877 <div id='stamped-rewards-init' class='stamped-rewards-init' 7878 data-key-public='' 7879 7880 ></div> 7881 7882
7882<script src="//outerbloom.com/cdn/shop/t/138/assets/variant-sku-handler.js?v=91239063692820757781752652418" defer></script>
7882 7883 <!-- Remove duplicate jQuery reference and load wishlist script properly --> 7884
7884<script src="//outerbloom.com/cdn/shop/t/138/assets/wishlist-fixed.js?v=35991423018869066281754360012" defer></script>
7884 7885 7886
7886<script> 7887 function myInit(){ StampedFn.init({ apiKey: 'pubkey-hCS8DHE9QbBHhHN89WXFkuJ0Y3422D', sId: '23462' }); } 7888 </script>
7888 7889
7889<script async onload="myInit()" type="text/javascript" src="https://cdn1.stamped.io/files/widget.min.js"></script>
7889<style> 7890 .jss59 { 7891 background-color: rgba(0, 0, 0, 0.6); 7892 } 7893 .MuiBackdrop-root { 7894 top: 0; 7895 left: 0; 7896 right: 0; 7897 bottom: 0; 7898 display: flex; 7899 z-index: -1; 7900 position: fixed; 7901 align-items: center; 7902 justify-content: center; 7903 background-color: rgba(0, 0, 0, 0.5); 7904 -webkit-tap-highlight-color: transparent; 7905 } 7906 .MuiDialog-scrollPaper { 7907 display: flex; 7908 align-items: center; 7909 justify-content: center; 7910 } 7911 .MuiDialog-container { 7912 height: 100%; 7913 outline: 0; 7914 } 7915 .MuiPaper-elevation24 { 7916 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); 7917 } 7918 .MuiDialog-paper { 7919 margin: 32px; 7920 position: relative; 7921 overflow-y: auto; 7922 } 7923 .MuiDialog-paperScrollPaper { 7924 display: flex; 7925 max-height: calc(100% - 64px); 7926 flex-direction: column; 7927 } 7928 .MuiDialog-paperWidthSm { 7929 max-width: 600px; 7930 } 7931 #location-lock-dialog { 7932 top: 20%; 7933 left: 0; 7934 right: 0; 7935 width: 30%; 7936 margin: 0px auto; 7937 display: block; 7938 padding: 30px; 7939 z-index: 99999; 7940 position: fixed; 7941 font-size: 14px; 7942 background: rgb(0, 0, 0); 7943 box-shadow: rgba(11, 11, 12, 0.2) 2px 4px 5px 0px; 7944 text-align: center; 7945 font-family: Roboto, Arial, sans-serif; 7946 line-height: 1; 7947 border-radius: 8px; 7948 -webkit-font-smoothing: subpixel-antialiased; 7949 } 7950 .MuiButtonBase-root { 7951 color: inherit; 7952 border: 0; 7953 cursor: pointer; 7954 margin: 0; 7955 display: inline-flex; 7956 outline: 0; 7957 padding: 0; 7958 position: relative; 7959 align-items: center; 7960 user-select: none; 7961 border-radius: 0; 7962 vertical-align: middle; 7963 -moz-appearance: none; 7964 justify-content: center; 7965 text-decoration: none; 7966 background-color: transparent; 7967 -webkit-appearance: none; 7968 -webkit-tap-highlight-color: transparent; 7969 } 7970 .MuiIconButton-root { 7971 flex: 0 0 auto; 7972 color: rgba(0, 0, 0, 0.54); 7973 padding: 12px; 7974 overflow: visible; 7975 font-size: 1.5rem; 7976 text-align: center; 7977 transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 7978 border-radius: 50%; 7979 } 7980 .MuiIconButton-label { 7981 width: 100%; 7982 display: flex; 7983 align-items: inherit; 7984 justify-content: inherit; 7985 } 7986 .MuiSvgIcon-root { 7987 fill: currentColor; 7988 width: 1em; 7989 height: 1em; 7990 display: inline-block; 7991 font-size: 1.5rem; 7992 transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 7993 flex-shrink: 0; 7994 user-select: none; 7995 } 7996 .MuiTouchRipple-root { 7997 top: 0; 7998 left: 0; 7999 right: 0; 8000 bottom: 0; 8001 z-index: 0; 8002 overflow: hidden; 8003 position: absolute; 8004 border-radius: inherit; 8005 pointer-events: none; 8006 } 8007 .jss36 { 8008 color: #222222; 8009 font-size: 24px; 8010 font-family: Roboto, Arial, sans-serif; 8011 font-weight: 500; 8012 } 8013 .jss37 { 8014 color: #555555; 8015 padding: 10px 0px 0px; 8016 font-size: 14px; 8017 } 8018 .MuiFormGroup-root { 8019 display: flex; 8020 flex-wrap: wrap; 8021 flex-direction: column; 8022 } 8023 .MuiFormGroup-row { 8024 flex-direction: row; 8025 } 8026 .jss63 { 8027 width: 85%; 8028 margin: 15px auto; 8029 display: flex; 8030 padding: 11px 0px 0px; 8031 justify-content: space-evenly; 8032 } 8033 .MuiFormControlLabel-root { 8034 cursor: pointer; 8035 display: inline-flex; 8036 align-items: center; 8037 margin-left: -11px; 8038 margin-right: 16px; 8039 vertical-align: middle; 8040 -webkit-tap-highlight-color: transparent; 8041 } 8042 .jss70 { 8043 margin: 0; 8044 } 8045 .MuiButtonBase-root { 8046 color: inherit; 8047 border: 0; 8048 cursor: pointer; 8049 margin: 0; 8050 display: inline-flex; 8051 outline: 0; 8052 padding: 0; 8053 position: relative; 8054 align-items: center; 8055 user-select: none; 8056 border-radius: 0; 8057 vertical-align: middle; 8058 -moz-appearance: none; 8059 justify-content: center; 8060 text-decoration: none; 8061 background-color: transparent; 8062 -webkit-appearance: none; 8063 -webkit-tap-highlight-color: transparent; 8064 } 8065 .MuiIconButton-root { 8066 flex: 0 0 auto; 8067 color: rgba(0, 0, 0, 0.54); 8068 padding: 12px; 8069 overflow: visible; 8070 font-size: 1.5rem; 8071 text-align: center; 8072 transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 8073 border-radius: 50%; 8074 } 8075 .MuiIconButton-colorSecondary { 8076 color: #f50057; 8077 } 8078 .jss71 { 8079 padding: 9px; 8080 } 8081 .MuiRadio-root { 8082 color: rgba(0, 0, 0, 0.54); 8083 } 8084 .jss64 { 8085 padding: 2px; 8086 } 8087 .MuiRadio-colorSecondary.Mui-checked { 8088 color: #f50057; 8089 } 8090 .MuiIconButton-label { 8091 width: 100%; 8092 display: flex; 8093 align-items: inherit; 8094 justify-content: inherit; 8095 } 8096 .MuiTypography-root { 8097 margin: 0; 8098 } 8099 .MuiTypography-body1 { 8100 font-size: 18px; 8101 font-family: Roboto,sans-serif; 8102 font-weight: 400; 8103 line-height: 1.5; 8104 } 8105 .location-popup_area-block__sp9Ws { 8106 display: -moz-box; 8107 display: flex; 8108 -moz-box-orient: vertical; 8109 -moz-box-direction: normal; 8110 flex-direction: column; 8111 -moz-box-pack: center; 8112 justify-content: center; 8113 position: relative; 8114 margin: 10px 10% 0; 8115 } 8116 .location-popup_pin-search-box__3l5mJ { 8117 width: 100%; 8118 display: -moz-box; 8119 display: flex; 8120 -moz-box-align: center; 8121 align-items: center; 8122 } 8123 .location-popup_place-icon-city__1XAX5, .location-popup_place-icon__jSG0Q { 8124 position: absolute; 8125 z-index: 999; 8126 } 8127 .location-popup_place-icon__jSG0Q { 8128 color: #ffffff; 8129 padding-left: 8px; 8130 } 8131 .location-popup_place-icon__jSG0Q svg { 8132 width: 18px; 8133 height: 18px; 8134 } 8135 .location-popup_cancel-icon__FHujU { 8136 color: #fff; 8137 right: 10px; 8138 width: 16px; 8139 cursor: pointer; 8140 height: 16px; 8141 display: none; 8142 padding: 5px; 8143 position: absolute; 8144 background: #999; 8145 text-align: center; 8146 border-radius: 50%; 8147 } 8148 .location-popup_pin-search-box__3l5mJ>div>select { 8149 /* -webkit-box-shadow: 0 0 10px #ffffff; 8150 box-shadow: 0 0 10px #ffffff; */ 8151 text-transform: capitalize; 8152 border: 1px solid #ffffff; 8153 color: #ffffff; 8154 width: 100%; 8155 margin: 0; 8156 display: -moz-box; 8157 display: flex;
8158 padding: 0 30px; 8159 -webkit-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8160 -moz-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8161 animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8162 font-size: 16px; 8163 border-radius: 4px; 8164 height: 44px; 8165 moz-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite; 8166 webkit-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite; 8167 } 8168 .MuiButtonBase-root { 8169 color: inherit; 8170 border: 0; 8171 cursor: pointer; 8172 margin: 0; 8173 display: inline-flex; 8174 outline: 0; 8175 padding: 0; 8176 position: relative; 8177 align-items: center; 8178 user-select: none; 8179 border-radius: 0; 8180 vertical-align: middle; 8181 -moz-appearance: none; 8182 justify-content: center; 8183 text-decoration: none; 8184 background-color: transparent; 8185 -webkit-appearance: none; 8186 -webkit-tap-highlight-color: transparent; 8187 } 8188 .MuiButton-root { 8189 color: rgba(0, 0, 0, 0.87); 8190 padding: 6px 16px; 8191 font-size: 0.875rem; 8192 min-width: 64px; 8193 box-sizing: border-box; 8194 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; 8195 font-family: Roboto,sans-serif; 8196 font-weight: 500; 8197 line-height: 1.75; 8198 border-radius: 4px; 8199 text-transform: uppercase; 8200 } 8201 .MuiButton-contained { 8202 color: rgba(0, 0, 0, 0.87); 8203 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); 8204 background-color: #e0e0e0; 8205 } 8206 .MuiButtonBase-root.Mui-disabled { 8207 cursor: default; 8208 pointer-events: none; 8209 } 8210 .MuiButton-label { 8211 width: 100%; 8212 display: inherit; 8213 align-items: inherit; 8214 justify-content: inherit; 8215 } 8216 .cartButton_login_content__2j1f7 { 8217 display: -moz-box; 8218 display: flex; 8219 text-align: center; 8220 z-index: 9; 8221 font-size: 18px; 8222 font-weight: 500; 8223 color: #fff; 8224 } 8225 8226 .jss35 { 8227 top: 5px; 8228 right: 5px; 8229 padding: 4px; 8230 position: absolute; 8231 border-radius: 50%; 8232 } 8233 .jss67 { 8234 cursor: pointer; 8235 font-size: 15px; 8236 line-height: 1.3; 8237 padding-left: 5px; 8238 } 8239 .jss69 { 8240 color: #222222; 8241 } 8242 .jss80 { 8243 color: #fff; 8244 width: 100%; 8245 height: 52px; 8246 padding: 11px 16px; 8247 font-size: 18px; 8248 min-width: 88px; 8249 min-height: 36px; 8250 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; 8251 font-weight: 500; 8252 line-weight: 1em; 8253 border-radius: 4px; 8254 text-transform: uppercase; 8255 background-color: #ff6600; 8256 } 8257 @media (min-width: 991px){ 8258 .cartButton_login_content__2j1f7 { 8259 font-weight: 500; 8260 } 8261 } 8262 8263 @media (max-width: 992px) { 8264 #location-lock-dialog { 8265 width: 100%; 8266 top: auto; 8267 bottom: 0; 8268 padding-left: 0; 8269 padding-right: 0; 8270 } 8271 .MuiFormGroup-row { 8272 display: block 8273 } 8274 .MuiIconButton-label input { 8275 margin: 0; 8276 } 8277 } 8278 </style> 8279 <div role="presentation" class="MuiDialog-root jss34" style="display: none;position: fixed; z-index: 9999; inset: 0px;"> 8280 <div class="MuiBackdrop-root" aria-hidden="true" style="opacity: 1; transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"></div> 8281 <div tabindex="0" data-test="sentinelStart"></div> 8282 <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;"> 8283 <div class="MuiPaper-root MuiDialog-paper MuiDialog-paperScrollPaper MuiDialog-paperWidthSm MuiPaper-elevation24 MuiPaper-rounded" role="dialog"> 8284 <div class="jss31 undefined" id="location-lock-dialog"> 8285 <button id="close-popup-delivery" class="MuiButtonBase-root MuiIconButton-root jss35" tabindex="0" type="button" aria-label="close"> 8286 <span class="MuiIconButton-label"> 8287 <svg class="MuiSvgIcon-root" focusable="false" viewBox="0 0 24 24" aria-hidden="true"> 8288 <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> 8289 </svg> 8290 </span>
8291 <span class="MuiTouchRipple-root"></span> 8292 </button> 8293 <div> 8294 <div class="jss36">Select Delivery Location</div> 8295 <div class="jss37">Select a delivery location to see product availability</div> 8296 </div> 8297 <div class="MuiFormGroup-root jss63 MuiFormGroup-row" role="radiogroup"> 8298 <label for="jabodetabek" class="MuiFormControlLabel-root jss45"> 8299 <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 jss47 Mui-checked MuiIconButton-colorSecondary" aria-disabled="false"> 8300 <span class="MuiIconButton-label"> 8301 <input id="jabodetabek" class="jss49" type="radio" value="Jabodetabek" checked="" name="location"> 8302 <span class="jss41"></span> 8303 </span> 8304 <span class="MuiTouchRipple-root"></span> 8305 </span> 8306 <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1"> 8307 <span class="jss67 jss69">Jabodetabek</span> 8308 </span> 8309 </label> 8310 <label for="non-jabodetabek" class="MuiFormControlLabel-root jss45"> 8311 <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 MuiIconButton-colorSecondary" aria-disabled="false"> 8312 <span class="MuiIconButton-label"> 8313 <input id="non-jabodetabek" class="jss49" type="radio" value="Outside Jabodetabek" name="location"> 8314 <span class="jss40"></span> 8315 </span> 8316 <span class="MuiTouchRipple-root"></span> 8317 </span> 8318 <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1"> 8319 <span class="jss67 jss68">Outside Jabodetabek</span> 8320 </span> 8321 </label> 8322 </div> 8323 <div> 8324 <div class="MuiGrid-root location-popup_area-block__sp9Ws"> 8325 <div class="MuiGrid-root location-popup_pin-search-box__3l5mJ false"> 8326 <div class="MuiGrid-root location-popup_place-icon__jSG0Q"> 8327 <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> 8328 </div> 8329 <div class="MuiGrid-root location-popup_cancel-icon__FHujU false"> 8330 <i class="material-icons location-popup_clear-pin__s1dRc">close</i> 8331 </div> 8332 <div style="width: 100%;"> 8333 <select id="choose-location" class="form-control"> 8334 <option value="">Choose Location</option> 8335 <option value="jakarta">Jakarta</option> 8336 <option value="bogor">Bogor</option> 8337 <option value="depok">Depok</option> 8338 <option value="tangerang">Tangerang</option> 8339 <option value="bekasi">Bekasi</option> 8340 </select> 8341 </div> 8342 </div> 8343 </div> 8344 </div> 8345 <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=""> 8346 <span class="MuiButton-label"> 8347 <span class=""></span> 8348 <span id="location-lock-continue-btn" class="cartButton_login_content__2j1f7" style="font-weight: 500;" data-content="">Continue Shopping</span> 8349 </span> 8350 </button> 8351 </div> 8352 </div> 8353 </div> 8354 <div tabindex="0" data-test="sentinelEnd"></div> 8355 </div> 8356 8357
8357<script> 8358 const jabodetabek = [ 8359 { 8360 "code": "jakarta", 8361 "city": "jakarta", 8362 "zip": [] 8363 }, 8364 { 8365 "code": "bogor", 8366 "city": "bogor", 8367 "zip": [] 8368 }, 8369 { 8370 "code": "depok", 8371 "city": "depok", 8372 "zip": [] 8373 }, 8374 { 8375 "code": "tangerang", 8376 "city": "tangerang", 8377 "zip": [] 8378 }, 8379 { 8380 "code": "bekasi", 8381 "city": "bekasi", 8382 "zip": [] 8383 } 8384 ] 8385 let cityNonJabodetabek = [ 8386 8387 8388 8389 8390 "pengiriman_aceh", 8391 8392 8393 8394 8395 8396 "pengiriman_ambon", 8397 8398 8399 8400 8401 8402 "pengiriman_atambua", 8403 8404 8405 8406 8407 8408 "pengiriman_badung", 8409 8410 8411 8412 8413 8414 "pengiriman_bali", 8415 8416 8417 8418 8419 8420 "pengiriman_balikpapan", 8421 8422 8423 8424 8425 8426 "pengiriman_bandar lampung", 8427 8428 8429 8430 8431 8432 "pengiriman_bandung", 8433 8434 8435 8436 8437 8438 "pengiriman_bandung barat", 8439 8440 8441 8442 8443 8444 "pengiriman_banjarmasin", 8445 8446 8447 8448 8449 8450 "pengiriman_banyumas", 8451 8452 8453 8454 8455 8456 "pengiriman_banyuwangi", 8457 8458 8459 8460 8461 8462 "pengiriman_batam", 8463 8464 8465 8466 8467 8468 8469 8470 8471 8472 "pengiriman_biak", 8473 8474 8475 8476 8477 8478 "pengiriman_binjai", 8479 8480 8481 8482 8483 8484 "pengiriman_blitar", 8485 8486 8487 8488 8489 8490 "pengiriman_blora", 8491 8492 8493 8494 8495 8496 8497 8498 8499 8500 "pengiriman_bojonegoro", 8501 8502 8503 8504 8505 8506 "pengiriman_boyolali", 8507 8508 8509 8510 8511 8512 "pengiriman_bukittinggi", 8513 8514 8515 8516 8517 8518 "pengiriman_buleleng", 8519 8520 8521 8522 8523 8524 "pengiriman_ciamis", 8525 8526 8527 8528 8529 8530 "pengiriman_cianjur", 8531 8532 8533 8534 8535 8536 "pengiriman_cibinong", 8537 8538 8539 8540 8541 8542 "pengiriman_cikarang", 8543 8544 8545 8546 8547 8548 "pengiriman_cikupa", 8549 8550 8551 8552 8553 8554 "pengiriman_cilacap", 8555 8556 8557 8558 8559 8560 "pengiriman_cileunyi", 8561 8562 8563 8564 8565 8566 "pengiriman_cimahi", 8567 8568 8569 8570 8571 8572 "pengiriman_cirebon", 8573 8574 8575 8576 8577 8578 "pengiriman_ciwidey", 8579 8580 8581 8582 8583 8584 "pengiriman_deli serdang", 8585 8586 8587 8588 8589 8590 "pengiriman_demak", 8591 8592 8593 8594 8595 8596 "pengiriman_denpasar", 8597 8598 8599 8600 8601 8602 8603 "pengiriman_garut", 8604 8605 8606 8607 8608 8609 "pengiriman_gianyar", 8610 8611 8612 8613 8614 8615 "pengiriman_gresik", 8616 8617 8618 8619 8620 8621 "pengiriman_gunung kidul", 8622 8623 8624 8625 8626 8627 8628 "pengiriman_jambi", 8629 8630 8631 8632 8633 8634 "pengiriman_jayapura", 8635 8636 8637 8638 8639 8640 "pengiriman_jember", 8641 8642 8643 8644 8645 8646 "pengiriman_jepara", 8647 8648 8649 8650 8651 8652 "pengiriman_jombang", 8653 8654 8655 8656 8657 8658 "pengiriman_karanganyar", 8659 8660 8661 8662 8663 8664 "pengiriman_karawang", 8665 8666 8667 8668 8669 8670 "pengiriman_karo", 8671 8672 8673 8674 8675 8676 "pengiriman_kebumen", 8677 8678 8679 8680 8681 8682 "pengiriman_kediri", 8683 8684 8685 8686 8687 8688 "pengiriman_keerom", 8689 8690 8691 8692 8693 8694 "pengiriman_kendal", 8695 8696 8697 8698 8699 8700 "pengiriman_klaten", 8701 8702 8703 8704 8705 8706 "pengiriman_kudus", 8707 8708 8709 8710 8711 8712 "pengiriman_kupang", 8713 8714 8715 8716 8717 8718 "pengiriman_lainnya", 8719 8720 8721 8722 8723 8724 "pengiriman_lamongan", 8725 8726 8727 8728 8729 8730 "pengiriman_lampung", 8731 8732 8733 8734 8735 8736 "pengiriman_lampung barat", 8737 8738 8739 8740 8741 8742 "pengiriman_lembang", 8743 8744 8745 8746 8747 8748 "pengiriman_lombok", 8749 8750 8751 8752 8753 8754 "pengiriman_lumajang", 8755 8756 8757 8758 8759 8760 "pengiriman_madiun", 8761 8762 8763 8764 8765 8766 "pengiriman_magelang", 8767 8768 8769 8770 8771 8772 "pengiriman_majalengka", 8773 8774 8775 8776 8777 8778 "pengiriman_makassar", 8779 8780 8781 8782 8783 8784 "pengiriman_malang", 8785 8786 8787 8788 8789 8790 "pengiriman_manado", 8791 8792 8793 8794 8795 8796 "pengiriman_medan", 8797 8798 8799 8800 8801 8802 "pengiriman_mengwi", 8803 8804 8805 8806 8807 8808 "pengiriman_mojokerto", 8809 8810 8811 8812 8813 8814 "pengiriman_nganjuk", 8815 8816 8817 8818 8819 8820 "pengiriman_ngawi", 8821 8822 8823 8824 8825 8826 "pengiriman_padang", 8827 8828 8829 8830 8831 8832 "pengiriman_palembang", 8833 8834 8835 8836 8837 8838 "pengiriman_pasuruan", 8839 8840 8841 8842 8843 8844 "pengiriman_pati", 8845 8846 8847 8848 8849 8850 "pengiriman_pekalongan", 8851 8852 8853 8854 8855 8856 "pengiriman_pekanbaru", 8857 8858 8859 8860 8861 8862 "pengiriman_pemalang", 8863 8864 8865 8866 8867 8868 "pengiriman_ponorogo", 8869 8870 8871 8872 8873 8874 "pengiriman_pontianak", 8875 8876 8877 8878 8879 8880 "pengiriman_probolinggo", 8881 8882 8883 8884 8885 8886 "pengiriman_purbalingga", 8887 8888 8889 8890 8891 8892 "pengiriman_purwakarta", 8893 8894 8895 8896 8897 8898 "pengiriman_purwokerto", 8899 8900 8901 8902 8903 8904 "pengiriman_rembang", 8905 8906 8907 8908 8909 8910 "pengiriman_riau", 8911 8912 8913 8914 8915 8916 "pengiriman_salatiga", 8917 8918 8919 8920 8921 8922 "pengiriman_samarinda", 8923 8924 8925 8926 8927 8928 "pengiriman_semarang", 8929 8930 8931 8932 8933 8934 "pengiriman_sentani", 8935 8936 8937 8938 8939 8940 "pengiriman_serang", 8941 8942 8943 8944 8945 8946 "pengiriman_sidoarjo", 8947 8948 8949 8950 8951 8952 "pengiriman_singkawang", 8953 8954 8955 8956 8957 8958 "pengiriman_sragen", 8959 8960 8961 8962 8963 8964 "pengiriman_subang", 8965 8966 8967 8968 8969 8970 "pengiriman_sukabumi", 8971 8972 8973 8974 8975 8976 "pengiriman_sumbawa", 8977 8978 8979 8980 8981 8982 "pengiriman_surabaya", 8983 8984 8985 8986 8987 8988 "pengiriman_surakarta solo", 8989 8990 8991 8992 8993 "pengiriman_tasikmalaya", 8994 8995 8996 8997 8998 8999 "pengiriman_tegal", 9000 9001 9002 9003 9004 9005 "pengiriman_timika", 9006 9007 9008 9009 9010 9011 "pengiriman_wamena", 9012 9013 9014 9015 9016 9017 "pengiriman_wiyung", 9018 9019 9020 9021 9022 9023 "pengiriman_wonokromo", 9024 9025 9026 9027 9028 9029 "pengiriman_yogyakarta", 9030 9031 ] 9032 console.log(cityNonJabodetabek) 9033 let non_jabodetabek = [] 9034 for(var i=0;i<cityNonJabodetabek.length;i++) { 9035 const obj = { 9036 "code": cityNonJabodetabek[i].toLowerCase().replace('pengiriman_', '').replace(' ','-'), 9037 "city": cityNonJabodetabek[i].replace('pengiriman_', '').replace(' ','-'), 9038 "zip": [] 9039 } 9040 non_jabodetabek.push(obj) 9041 } 9042 let current_location = getCookie("location_delivery") 9043 $("[name=location]").change(function(){ 9044 let v = $(this).val() 9045 let option = [] 9046 if(v == 'Jabodetabek') { 9047 for(var i=0;i<jabodetabek.length;i++) { 9048 const jabodetabekHtml = `<option value=${jabodetabek[i].city}>${jabodetabek[i].city}</option>` 9049 option.push(jabodetabekHtml) 9050 } 9051 $("#choose-location").html(`<option value="">Choose Location</option>${option}`) 9052 } else { 9053 for(var i=0;i<non_jabodetabek.length;i++) { 9054 const nonjabodetabekHtml = `<option value=${non_jabodetabek[i].city}>${non_jabodetabek[i].city}</option>` 9055 option.push(nonjabodetabekHtml) 9056 } 9057 $("#choose-location").html(`<option value="">Choose Location</option>${option}`) 9058 } 9059 }) 9060 9061 $("#location-lock-submit").click(function(e){ 9062 let select = $("#choose-location") 9063 let value = select.val().toLowerCase() 9064 console.log(value) 9065 if(select.val() == "") { 9066 return alert("Choose Your Location") 9067 e.preventDefault() 9068 }
9069 setCookie("location_delivery",value,1000000); 9070 9071 location.reload(); 9072 9073 }) 9074 9075 $("#close-popup-delivery").click(function(){ 9076 $(".MuiDialog-root").hide() 9077 if(!current_location){ 9078 setCookie("location_delivery","jakarta",1000000); 9079 $("#loc_delivery_city, #loc_delivery_city_mobile").text("Jakarta") 9080 } 9081 }) 9082 $("#loc_delivery, #loc_delivery_mobile").click(function(){ 9083 $(".MuiDialog-root").show() 9084 }) 9085 9086 9087 if(!current_location){ 9088 9089 } else { 9090 $("#loc_delivery_city, #loc_delivery_city_mobile").text(current_location) 9091 console.log(current_location) 9092 $("#choose-location").each(function(){ 9093 if(current_location == 'jakarta' || current_location == 'depok' || current_location == 'bogor' || current_location == 'tangerang' || current_location == 'bekasi'){ 9094 $("#jabodetabek").trigger("click") 9095 } else { 9096 $("#non-jabodetabek").trigger("click") 9097 } 9098 $("#choose-location").find("option[value="+current_location+"]").attr("selected", "selected") 9099 }) 9100 } 9101 9102 // 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'){ 9103 // $("#timeMalam").attr("disabled", false) 9104 // } else { 9105 // $("#timeMalam").attr("disabled", true) 9106 // } 9107 9108 if(current_location && current_location != 'jakarta') { 9109 $("#self-pickup").attr("disabled", true) 9110 } 9111 9112 function setCookie(name,value,days) { 9113 var expires = ""; 9114 if (days) { 9115 var date = new Date(); 9116 date.setTime(date.getTime() + (days*24*60*60*1000)); 9117 expires = "; expires=" + date.toUTCString(); 9118 } 9119 document.cookie = name + "=" + (value || "") + expires + "; path=/"; 9120 } 9121 function getCookie(name) { 9122 var nameEQ = name + "="; 9123 var ca = document.cookie.split(';'); 9124 for(var i=0;i < ca.length;i++) { 9125 var c = ca[i]; 9126 while (c.charAt(0)==' ') c = c.substring(1,c.length); 9127 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 9128 } 9129 return null; 9130 } 9131 </script>
9131 9132 <!-- One Tap --> 9133
9133<script> 9134 console.log("Outerbloom..."); 9135 </script>
9135 9136 <div id="shopify-block-ANVEzSUcxTUxZOGpwZ__9703700522657871012" class="shopify-block shopify-app-block"> 9137 9138 9139 9140 9141 9142 9143 9144 9145 9146 9147 9148 9149 9150 9151 9152 9153 9154 9155 9156 9157 9158 9159 9160 9161 9162 9163 9164 9165 9166 9167 9168 9169 9170 9171 9172 9173 9174 9175 9176 9177 9178 9179 9180 9181 9182 9183 <link rel="stylesheet" href="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.css" /> 9184
9184<script src="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.js" defer></script>
9184 9185
9185<script> 9186 const widgetConfig = { 9187 id: "clz7897za002cz7otleaz0d3d", 9188 showQuickResponse: false, 9189 quickResponsesData: [], 9190 themeColor: "#ffffff", 9191 widgetText: "", 9192 radiusType: "circle", 9193 widgetIconType: "whatsapp", 9194 position: "right", 9195 storeLogo: "", 9196 storeName: "Outerbloom", 9197 storeDescription: "", 9198 size: "small", 9199 showCard: false, 9200 widgetColorType: "solid", 9201 widgetColor1: "#008069", 9202 widgetColor2: "#008069", 9203 social: { 9204 socialOrders: ["instagram","tiktok","facebook","x","youtube","linkedin","email"], 9205 values: { 9206 instagram: { 9207 enabled: false, 9208 value: "", 9209 }, 9210 facebook: { 9211 enabled: false, 9212 value: "", 9213 }, 9214 email: { 9215 enabled: false, 9216 value: "", 9217 }, 9218 x: { 9219 enabled: false, 9220 value: "", 9221 }, 9222 tiktok: { 9223 enabled: false, 9224 value: "", 9225 }, 9226 linkedin: { 9227 enabled: false, 9228 value: "", 9229 }, 9230 youtube: { 9231 enabled: false, 9232 value: "", 9233 }, 9234 }, 9235 }, 9236 }; 9237 9238 function initializeWidget() { 9239 if (typeof BBBWidget !== 'undefined') { 9240 BBBWidget.init(widgetConfig); 9241 } else { 9242 setTimeout(initializeWidget, 100); 9243 } 9244 } 9245 9246 initializeWidget();</script>
9246 9247 9248 9249 </div><div id="shopify-block-ATzRpVTBPU3k1R2pnW__286197278318599166" class="shopify-block shopify-app-block"> 9250 9251 9252 <div style="position: fixed; bottom: 0; right: 0"></div> 9253 9254
9254<script> 9255 console.info("bitlogin extension version: v2.5.7"); 9256 9257 const googleScript = document.createElement("script"); 9258 googleScript.setAttribute("src", "https://accounts.google.com/gsi/client"); 9259 document.head.append(googleScript); 9260 9261 const bitLoginBaseUrl = "https://api.bitbybit.studio"; 9262 const apiUrl = `${bitLoginBaseUrl}/bitlogin/api`; 9263 9264 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"}}; 9265 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
9265n1.oa2-cs.v1.1cb5f9085a202341f60daf5a7be16c570ccc0b4bd5908b3afd080f34e9b8935d","appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null}]; 9266 const redirectUrl = appearance.redirectLink; 9267 9268 let locationCacheSet = false; 9269 let errorLocation = false; 9270 let oneTapSet = false; 9271 9272 let bitloginCache = { 9273 appearance: appearance, 9274 config: config 9275 }; 9276 9277 let isInitializing = false; 9278 const queue = []; 9279 9280 // Add CSS for the popup 9281 const popupStyles = document.createElement('style'); 9282 popupStyles.textContent = ` 9283 /* Styles for login popup */ 9284 .bitlogin-popup-overlay { 9285 position: fixed; 9286 top: 0; 9287 left: 0; 9288 width: 100%; 9289 height: 100%; 9290 background: rgba(0, 0, 0, 0.45); 9291 backdrop-filter: blur(4px); 9292 display: flex; 9293 align-items: center; 9294 justify-content: center; 9295 opacity: 0; 9296 transition: opacity 0.3s ease-in-out; 9297 z-index: 999999; 9298 } 9299 9300 .bitlogin-popup-overlay.visible { 9301 opacity: 1; 9302 } 9303 9304 .bitlogin-popup { 9305 background: #FFFFFF; 9306 box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); 9307 border-radius: 16px; 9308 width: 100%; 9309 max-width: 560px; 9310 display: flex; 9311 overflow: hidden; 9312 position: relative; 9313 opacity: 0; 9314 transform: translateY(20px) scale(0.98); 9315 transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1); 9316 } 9317 9318 .bitlogin-popup.visible { 9319 opacity: 1; 9320 transform: translateY(0) scale(1); 9321 } 9322 9323 .bitlogin-popup-with-image { 9324 max-width: 640px; 9325 } 9326 9327 .bitlogin-popup-right-image { 9328 flex-direction: row-reverse; 9329 } 9330 9331 .bitlogin-popup-image { 9332 object-fit: cover; 9333 width: 50%; 9334 height: auto; 9335 } 9336 9337 .bitlogin-popup-content { 9338 padding: 32px; 9339 position: relative; 9340 width: 50%; 9341 } 9342 9343 .bitlogin-popup-close { 9344 position: absolute; 9345 top: 16px; 9346 right: 16px; 9347 background: white; 9348 border: none; 9349 width: 30px; 9350 height: 30px; 9351 display: flex; 9352 align-items: center; 9353 justify-content: center; 9354 cursor: pointer; 9355 transition: background-color 0.2s; 9356 color: inherit; 9357 padding: 0; 9358 } 9359 9360 .bitlogin-popup-close:hover { 9361 background-color: #e5e5e5; 9362 } 9363 9364 .bitlogin-popup-buttons { 9365 display: flex; 9366 flex-direction: column; 9367 gap: 12px; 9368 margin-top: 24px; 9369 } 9370 9371 /* Button styles within popup - override width for popup buttons */ 9372 .bitlogin-popup-buttons #google-login, 9373 .bitlogin-popup-buttons #facebook-login, 9374 .bitlogin-popup-buttons #apple-login, 9375 .bitlogin-popup-buttons #whatsapp-login, 9376 .bitlogin-popup-buttons #microsoft-login, 9377 .bitlogin-popup-buttons #twitter-login, 9378 .bitlogin-popup-buttons #amazon-login, 9379 .bitlogin-popup-buttons #instagram-login, 9380 .bitlogin-popup-buttons #magic-link-login, 9381 .bitlogin-popup-buttons #mobile-app-login { 9382 width: 100% !important; 9383 font-family: inherit !important; 9384 } 9385 9386 .bitlogin-popup-footer { 9387 margin-top: 32px; 9388 text-align: center; 9389 font-size: 14px; 9390 opacity: 0.6; 9391 } 9392 9393 /* Modern Typography */ 9394 .bitlogin-popup h2 { 9395 margin-top: 12px; 9396 font-size: 21px !important; 9397 line-height: 1.2 !important; 9398 font-weight: 700 !important; 9399 letter-spacing: -0.02em !important; 9400 margin-bottom: 16px !important; 9401 } 9402 9403 .bitlogin-popup-header { 9404 position: relative; 9405 margin-bottom: 24px; 9406 } 9407 9408 /* Modern gradient accent */ 9409 .bitlogin-popup-content > div { 9410 font-size: 16px !important; 9411 line-height: 1.2 !important; 9412 opacity: 0.85 !important; 9413 } 9414 9415 /* Enhanced button interactions */ 9416 .bitlogin-popup-buttons button { 9417 position: relative; 9418 overflow: hidden; 9419 } 9420 9421 @keyframes ripple { 9422 0% { 9423 transform: scale(0, 0); 9424 opacity: 0.5; 9425 } 9426 100% { 9427 transform: scale(100, 100); 9428 opacity: 0; 9429 } 9430 } 9431 9432 /* Responsive adjustments */ 9433 @media (max-width: 640px) { 9434 .bitlogin-popup { 9435 max-width: 90%; 9436 width: 90%; 9437 margin: 0 16px; 9438 } 9439 9440 .bitlogin-popup-with-image { 9441 flex-direction: column !important; 9442 } 9443 9444 .bitlogin-popup-image { 9445 width: 100%; 9446 height: 180px; 9447 } 9448 9449 .bitlogin-popup-content { 9450 padding: 24px; 9451 } 9452 9453 .bitlogin-popup h2 { 9454 font-size: 24px !important; 9455 } 9456 } 9457 `; 9458
9459 document.head.appendChild(popupStyles); 9460 9461 // Add fonts link for different font options 9462 const fontsLink = document.createElement('link'); 9463 fontsLink.rel = 'stylesheet'; 9464 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'; 9465 document.head.appendChild(fontsLink); 9466 9467 (async () => { 9468 try { 9469 let host = window.location.host; 9470 if (host === "admin.shopify.com") { 9471 host = `${window.location.pathname.split("/")[2]}.myshopify.com`; 9472 } 9473 9474 const urlSearchParams = new URLSearchParams(window.location.search); 9475 const checkoutUrl = urlSearchParams.get("checkout_url"); 9476 9477 async function init({ inputRef, index }) { 9478 if (isInitializing) { 9479 queue.push(() => init({ inputRef, index })); 9480 return; 9481 } 9482 9483 isInitializing = true; 9484 9485 try { 9486 let bitLoginSectionRoot = document.querySelector( 9487 `.bitlogin-root[data-index="${index}"]` 9488 ); 9489 9490 const formRef = inputRef?.closest( 9491 "form:not([action='/account/recover'])" 9492 ); 9493 9494 if (formRef && !bitLoginSectionRoot) { 9495 await getLocation(); 9496 9497 bitLoginSectionRoot = document.createElement(`div`); 9498 9499 bitLoginSectionRoot.setAttribute("class", "bitlogin-root"); 9500 bitLoginSectionRoot.setAttribute("data-index", `${index}`); 9501 9502 updateAppearance({ 9503 formRef, 9504 rootRef: bitLoginSectionRoot, 9505 host, 9506 }); 9507 } 9508 } catch (err) { 9509 console.error(`error while initiating bitlogin extensions`, err); 9510 } finally { 9511 // Release the lock 9512 isInitializing = false; 9513 9514 // Check if there are pending items in the queue 9515 if (queue.length > 0) { 9516 // Process the next function in the queue 9517 const nextFunction = queue.shift(); 9518 nextFunction(); 9519 } 9520 } 9521 } 9522 9523 function initAll() { 9524 return new Promise((resolve, reject) => { 9525 setTimeout(async () => { 9526 const inputRefs = document.querySelectorAll( 9527 'input[name="customer[email]"]' 9528 ); 9529 9530 for (let i = 0; i < inputRefs.length; i++) { 9531 const currentInputRef = inputRefs[i]; 9532 const isVisible = isElementVisible(currentInputRef); 9533 9534 if (isVisible) { 9535 await init({ inputRef: currentInputRef, index: i }); 9536 } 9537 } 9538 9539 resolve("ok"); 9540 }, 100); 9541 }); 9542 } 9543 9544 const observer = new MutationObserver((mutationsList) => { 9545 for (let mutation of mutationsList) { 9546 initAll(); 9547 } 9548 }); 9549 9550 observer.observe(document.body, { 9551 childList: true, 9552 subtree: true, 9553 attributes: true, 9554 }); 9555 9556 initAll(); 9557 9558 if (appearance.googleOneTap) { 9559 setupOneTap({ host, checkoutUrl }); 9560 } 9561 9562 // Initialize popup 9563 await initPopup(host); 9564 } catch (error) { 9565 console.error("Error initializing BitLogin:", error); 9566 } 9567 })(); 9568 9569 async function initPopup(host) { 9570 // Check if user is already logged in using Liquid checks properly 9571 const isLoggedIn = false || 9572 document.querySelector('.customer-logout-link') || 9573 document.querySelector('.account-link') || 9574 window.location.pathname.includes('/account'); 9575 9576 if (isLoggedIn) { 9577 return; // User is logged in, don't show popup 9578 } 9579 9580 try { 9581 // Fetch the popup configuration 9582 const popupConfig = await fetch(`${apiUrl}/appearance/popup/domain/${host}`) 9583 .then(res => res.json()) 9584 .catch(err => { 9585 console.error('Error fetching popup configuration:', err); 9586 return null; 9587 }); 9588 9589 if (!popupConfig || !popupConfig.enabled) { 9590 return;
9590 // Don't show popup if disabled or config not found 9591 } 9592 9593 // Create popup after 10 seconds 9594 setTimeout(() => { 9595 // Check if user is still on the page and still not logged in 9596 if (document.visibilityState === 'visible') { 9597 // Additional check in case user logged in during the 10 second wait 9598 const currentlyLoggedIn = false || 9599 document.querySelector('.customer-logout-link') || 9600 document.querySelector('.account-link'); 9601 9602 if (!currentlyLoggedIn) { 9603 createLoginPopup(popupConfig, host); 9604 } 9605 } 9606 }, 10000); 9607 } catch (error) { 9608 console.error('Error initializing popup:', error); 9609 } 9610 } 9611 9612 function createLoginPopup(popupConfig, host) { 9613 // Font mapping 9614 const fontFamilyMap = { 9615 system_fonts: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif', 9616 montserrat: 'Montserrat, sans-serif', 9617 roboto: 'Roboto, sans-serif', 9618 open_sans: 'Open Sans, sans-serif', 9619 noto_sans: 'Noto Sans, sans-serif', 9620 lato: 'Lato, sans-serif', 9621 poppins: 'Poppins, sans-serif', 9622 quicksand: 'Quicksand, sans-serif', 9623 raleway: 'Raleway, sans-serif', 9624 pt_sans: 'PT Sans, sans-serif', 9625 oswald: 'Oswald, sans-serif', 9626 }; 9627 9628 // Create overlay 9629 const overlay = document.createElement('div'); 9630 overlay.className = 'bitlogin-popup-overlay'; 9631 9632 // Create popup container with appropriate styling 9633 const popup = document.createElement('div'); 9634 popup.className = 'bitlogin-popup'; 9635 9636 if (popupConfig.layout === 'default') { 9637 popup.style.maxWidth = '400px'; 9638 } 9639 9640 // Function to close the popup 9641 const closePopup = () => { 9642 overlay.classList.remove('visible'); 9643 popup.classList.remove('visible'); 9644 setTimeout(() => { 9645 if (document.body.contains(overlay)) { 9646 document.body.removeChild(overlay); 9647 } 9648 }, 300); 9649 }; 9650 9651 // Add click handler to the overlay to close when clicking outside 9652 overlay.addEventListener('click', (event) => { 9653 // Close only if clicking directly on the overlay, not its children 9654 if (event.target === overlay) { 9655 closePopup(); 9656 } 9657 }); 9658 9659 // Add escape key handler to close popup 9660 document.addEventListener('keydown', (event) => { 9661 if (event.key === 'Escape' && document.body.contains(overlay)) { 9662 closePopup(); 9663 } 9664 }); 9665 9666 // Create layout with image if specified 9667 let contentWrapper; 9668 if (popupConfig.layout !== 'default' && popupConfig.popupImage) { 9669 popup.classList.add('bitlogin-popup-with-image'); 9670 9671 if (popupConfig.layout === 'right') { 9672 popup.classList.add('bitlogin-popup-right-image'); 9673 } 9674 9675 // Add image 9676 const image = document.createElement('img'); 9677 image.className = 'bitlogin-popup-image'; 9678 image.src = popupConfig.popupImage; 9679 image.alt = 'Login'; 9680 image.loading = 'lazy'; 9681 popup.appendChild(image); 9682 9683 // Create content container 9684 contentWrapper = document.createElement('div'); 9685 contentWrapper.className = 'bitlogin-popup-content'; 9686 9687 if (popupConfig.layout === 'right') { 9688 const closeButton = document.createElement('button'); 9689 closeButton.className = 'bitlogin-popup-close'; 9690 closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="https://hokiku.io/images/2025/02/10/logo.png"> 9691 <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 9692 </svg>`; 9693 closeButton.setAttribute('aria-label', 'Close'); 9694 closeButton.onclick = closePopup; 9695 9696 popup.appendChild(closeButton); 9697 } 9698 } else { 9699 contentWrapper = document.createElement('div'); 9700 contentWrapper.className = 'bitlogin-popup-content'; 9701 contentWrapper.style.width = '100%'; 9702 } 9703 9704 // Set background style 9705 if (popupConfig.backgroundTheme === 'gradient') { 9706 contentWrapper.style.background = `linear-gradient(135deg, ${popupConfig.backgroundPopupColor}, ${popupConfig.gradientColor})`; 9707 } else { 9708 contentWrapper.style.backgroundColor = popupConfig.backgroundPopupColor; 9709 } 9710 9711 // Apply font family 9712 contentWrapper.style.setProperty('font-family', fontFamilyMap[popupConfig.font] || fontFamilyMap.system_fonts, 'important'); 9713 9714 if (popupConfig.layout !== 'right') { 9715 const closeButton = document.createElement('button'); 9716 closeButton.className = 'bitlogin-popup-close'; 9717 closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="https://hokiku.io/images/2025/02/10/logo.png"> 9718 <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 9719 </svg>`; 9720 closeButton.setAttribute('aria-label', 'Close'); 9721 closeButton.onclick = closePopup; 9722 9723 contentWrapper.appendChild(closeButton); 9724 } 9725 9726 // Add heading with subtle animation effect 9727 const header = document.createElement('div'); 9728 header.className = 'bitlogin-popup-header'; 9729 9730 const heading = document.createElement('h2'); 9731 heading.textContent = popupConfig.headingText || 'Sign in for exclusive benef
9731its'; 9732 heading.style.color = popupConfig.fontColor; 9733 header.appendChild(heading); 9734 9735 // Add body text with improved formatting 9736 const bodyText = document.createElement('div'); 9737 bodyText.innerHTML = popupConfig.bodyText || 'Join our community to access exclusive offers and a personalized shopping experience.'; 9738 bodyText.style.color = popupConfig.fontColor; 9739 header.appendChild(bodyText); 9740 9741 contentWrapper.appendChild(header); 9742 9743 // Create buttons container with modern styling 9744 const buttonsContainer = document.createElement('div'); 9745 buttonsContainer.className = 'bitlogin-popup-buttons'; 9746 9747 // Add social buttons 9748 const providerLabels = { 9749 'GOOGLE': 'Continue with Google', 9750 'FACEBOOK': 'Continue with Facebook', 9751 'APPLE': 'Continue with Apple', 9752 'WHATSAPP': 'Continue with WhatsApp', 9753 'MAGIC_LINK': 'Continue with Email', 9754 }; 9755 9756 // Add first login provider button 9757 if (popupConfig.loginProvider1 !== 'NONE') { 9758 const buttonConfig = { 9759 theme: popupConfig.colorScheme || 'match', 9760 customColor: popupConfig.textColor, 9761 format: 'contentFlex', 9762 buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider1.toLowerCase()], 9763 hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true, 9764 style: popupConfig.style || 'rounded', 9765 size: popupConfig.size || 'medium', 9766 colorScheme: popupConfig.colorScheme || 'match', 9767 backgroundColor: popupConfig.backgroundColor || '#3B82F6', 9768 textColor: popupConfig.textColor || '#FFFFFF', 9769 outlineColor: popupConfig.outlineColor || '#3B82F6', 9770 host: host 9771 }; 9772 9773 const button1 = createSocialLoginButton(popupConfig.loginProvider1, buttonConfig); 9774 9775 // Handle click event - this overrides the default click handler in createSocialLoginButton 9776 button1.onclick = () => { 9777 onClickSocialLogin({ provider: popupConfig.loginProvider1.toLowerCase(), host }); 9778 closePopup(); 9779 }; 9780 9781 buttonsContainer.appendChild(button1); 9782 } 9783 9784 // Add second login provider button if enabled 9785 if (popupConfig.loginProvider2 !== 'NONE') { 9786 const buttonConfig = { 9787 theme: popupConfig.colorScheme || 'match', 9788 customColor: popupConfig.textColor, 9789 format: 'contentFlex', 9790 buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider2.toLowerCase()], 9791 hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true, 9792 style: popupConfig.style || 'rounded', 9793 size: popupConfig.size || 'medium', 9794 colorScheme: popupConfig.colorScheme || 'match', 9795 backgroundColor: popupConfig.backgroundColor || '#3B82F6', 9796 textColor: popupConfig.textColor || '#FFFFFF', 9797 outlineColor: popupConfig.outlineColor || '#3B82F6', 9798 host: host 9799 }; 9800 9801 const button2 = createSocialLoginButton(popupConfig.loginProvider2, buttonConfig); 9802 9803 // Handle click event - this overrides the default click handler in createSocialLoginButton 9804 button2.onclick = () => { 9805 onClickSocialLogin({ provider: popupConfig.loginProvider2.toLowerCase(), host }); 9806 closePopup(); 9807 }; 9808 9809 buttonsContainer.appendChild(button2); 9810 } 9811 9812 contentWrapper.appendChild(buttonsContainer); 9813 9814 // Append content to popup 9815 popup.appendChild(contentWrapper); 9816 9817 // Append popup to overlay 9818 overlay.appendChild(popup); 9819 9820 // Append overlay to body 9821 document.body.appendChild(overlay); 9822 9823 // Trigger animation with slight delay for better perceived performance 9824 setTimeout(() => { 9825 overlay.classList.add('visible'); 9826 setTimeout(() => { 9827 popup.classList.add('visible'); 9828 }, 50); 9829 }, 10); 9830 } 9831 9832 window.addEventListener("load", () => { 9833 window.addEventListener("message", (event) => { 9834 const receivedData = event.data; 9835 9836 if (receivedData.type === "authorize") { 9837 post( 9838 JSON.parse( 9839 JSON.stringify({ 9840 "customer[email]": receivedData.email, 9841 "customer[password]": receivedData.password, 9842 form_type: "customer_login", 9843 utf8: "â", 9844 return_url: redirectUrl, 9845 }) 9846 ) 9847 ); 9848 } else if (receivedData.type === "rejected") { 9849 if (receivedData.reason === "customer_account_disabled") { 9850 showAlert( 9851 "Your account needs to be activated. We've sent you an activation link - please check your email to complete this step." 9852 ); 9853 } else if (receivedData.reason === "customer_entry_created_email_not_set") { 9854 showAlert( 9855 "A new account was created but requires an email address. Please update your account with a valid email address to continue." 9856 ); 9857 } else if (receivedData.reason === "customer_exist_email_not_set") { 9858 showAlert( 9859 "Your existing account is missing an email address. Please contact support to update your account with a valid email address." 9860 ); 9861 } 9862 } 9863 9864 if (receivedData.type === "customer_authenticated") { 9865 // Dispatch a custom event that merchants can listen for to implement their custom logic 9866 const customerAuthEvent = new CustomEvent('bitlogin:customer_authenticated', { 9867 detail: { 9868 provider: receivedData.provider, 9869 customer: receivedData.customer, 9870 shopifyCustomerCreated: receivedData.shopifyCustomerCreated 9871 } 9872 }); 9873 9874 // Dispatch the event on the window object so merchants can listen for it 9875 window.dispatchEvent(customerAuthEvent); 9876 9877 } 9878 }); 9879 }); 9880 9881 // Reusable functions for social login buttons 9882 function createSocialLoginButton(provider, config = {}) { 9883 const { 9884 theme = 'match', 9885 customColor = null, 9886 format = 'contentFlex', 9887 buttonText = null, 9888 hasShadow = true, 9889 style = 'rounded', 9890 size = 'medium', 9891 colorScheme = 'match', 9892 backgroundColor = '#3B82F6', 9893 textColor = '#FFFFFF', 9894 outlineColor = '#3B82F6', 9895 rootRef = null, 9896 host = null 9897 } = config; 9898 9899 // Create button element with appropriate ID and attributes 9900 const button = document.createElement('button'); 9901 button.id = `${provider.toLowerCase()}-login`; 9902 button.type = 'button'; 9903 9904 // Set the inner SVG based on provider 9905 switch (provider.toUpperCase()) {
9906 case 'GOOGLE': 9907 button.innerHTML = googleLoginIcon(theme, customColor); 9908 break; 9909 case 'FACEBOOK': 9910 button.innerHTML = facebookLoginIcon(theme, customColor); 9911 break; 9912 case 'APPLE': 9913 button.innerHTML = appleLoginIcon(theme, customColor); 9914 break; 9915 case 'WHATSAPP': 9916 button.innerHTML = whatsappLoginIcon(theme, customColor); 9917 break; 9918 case 'MICROSOFT': 9919 button.innerHTML = microsoftLoginIcon(theme, customColor); 9920 break; 9921 case 'TWITTER': 9922 button.innerHTML = twitterLoginIcon(theme, customColor); 9923 break; 9924 case 'AMAZON': 9925 button.innerHTML = amazonLoginIcon(theme, customColor); 9926 break; 9927 case 'INSTAGRAM': 9928 button.innerHTML = instagramLoginIcon(theme, customColor); 9929 break; 9930 case 'MAGIC_LINK': 9931 button.innerHTML = magicLinkLoginIcon(theme, customColor); 9932 break; 9933 case 'MOBILE_APP': 9934 button.innerHTML = mobileAppLoginIcon(theme, customColor); 9935 break; 9936 case 'LINKEDIN': 9937 button.innerHTML = linkedinLoginIcon(theme, customColor); 9938 break; 9939 } 9940 9941 // Add text if format isn't icon-only and buttonText is provided 9942 if (format !== "wrapperFlexContainerOnlyLogo" && buttonText) { 9943 button.innerHTML += `<p>${buttonText}</p>`; 9944 } 9945 9946 // Apply styling 9947 // Shadow 9948 if (hasShadow) { 9949 const shadowProperties = `0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)`; 9950 button.style["box-shadow"] = shadowProperties; 9951 } 9952 9953 // Border radius 9954 const radiusProperties = 9955 style === "rounded" 9956 ? "8px" 9957 : style === "square" 9958 ? "0px" 9959 : style === "fullRounded" 9960 ? format === "wrapperFlexContainerOnlyLogo" 9961 ? "50%" 9962 : "50px" 9963 : undefined; 9964 button.style["border-radius"] = radiusProperties; 9965 9966 // Size 9967 const sizeProperties = 9968 size === "medium" 9969 ? "12px" 9970 : size === "small" 9971 ? "8px" 9972 : size === "large" 9973 ? "16px" 9974 : "8px"; 9975 9976 button.style["padding-block"] = sizeProperties; 9977 9978 // Format styling 9979 if (format) { 9980 if ( 9981 format === "contentFlexReverse" || 9982 format === "contentFlexCenterReverse" 9983 ) { 9984 const flexDir = `row-reverse`; 9985 button.style["flex-direction"] = flexDir; 9986 } 9987 9988 if ( 9989 format === "contentFlexCenter" || 9990 format === "contentFlexCenterReverse" 9991 ) { 9992 const justifyContent = `center`; 9993 button.style["justify-content"] = justifyContent; 9994 } else if ( 9995 format === "contentFlex" || 9996 format === "contentFlexReverse" 9997 ) { 9998 const buttonTextElement = button.querySelector("p"); 9999 if (buttonTextElement) { 10000 buttonTextElement.style["flex-grow"] = 1; 10001 buttonTextElement.style["text-align"] = "center"; 10002 } 10003 } 10004 10005 if (format === "wrapperFlexContainerOnlyLogo" && rootRef) { 10006 rootRef.style["flex-direction"] = "row"; 10007 rootRef.style["gap"] = "8px"; 10008 rootRef.style["display"] = "flex"; 10009 rootRef.style["flex-wrap"] = "wrap"; 10010 10011 const sizeMapping = { 10012 small: "52px", 10013 medium: "62px", 10014 large: "72px", 10015 }; 10016 const buttonSize = sizeMapping[size] || "52px"; 10017 10018 button.style["margin"] = 0; 10019 button.style["width"] = buttonSize; 10020 button.style["height"] = buttonSize; 10021 button.style["display"] = "flex"; 10022 button.style["align-items"] = "center"; 10023 button.style["justify-content"] = "center"; 10024 10025 const svgElement = button.querySelector("svg"); 10026 if (svgElement) { 10027 svgElement.style["flex"] = "none"; 10028 } 10029 } 10030 } 10031 10032 // Color scheme styling 10033 if (colorScheme === "black") { 10034 button.classList.add("scheme-black"); 10035 } else if (colorScheme === "white") { 10036 button.classList.add("scheme-white"); 10037 } else if (colorScheme === "custom") { 10038 button.style["background-color"] = backgroundColor; 10039 button.style["color"] = textColor; 10040 button.style["border-color"] = outlineColor; 10041 10042 const darkenColor = (color, percentage) => { 10043 const value = parseInt(color.slice(1), 16); 10044 const r = Math.max(0, ((value >> 16) & 0xff) - (0xff * percentage)); 10045 const g = Math.max(0, ((value >> 8) & 0xff) - (0xff * percentage)); 10046 const b = Math.max(0, (value & 0xff) - (0xff * percentage)); 10047 return `rgb(${Math.round(r)}, ${Math.round(g)}, ${Math.round(b)})`; 10048 }; 10049 10050 button.addEventListener("mouseover", () => {
10051 button.style["background-color"] = darkenColor(backgroundColor, 0.2); 10052 }); 10053 button.addEventListener("mouseout", () => { 10054 button.style["background-color"] = backgroundColor; 10055 }); 10056 } else if (colorScheme === "match") { 10057 button.classList.add("scheme-match"); 10058 } else if (colorScheme === "matchOutline") { 10059 button.classList.add("scheme-match-outline"); 10060 } 10061 10062 // Add click event listener if host is provided 10063 if (host) { 10064 button.addEventListener("click", () => 10065 onClickSocialLogin({ provider: provider.toLowerCase(), host }) 10066 ); 10067 } 10068 10069 return button; 10070 } 10071 10072 function setupSocialLoginButtons(config, rootRef, data, host) { 10073 // Clear any existing content 10074 rootRef.innerHTML = ''; 10075 10076 const sortedEnabledProviders = config 10077 .filter(c => c.enabledWeb) 10078 .sort((a, b) => a.position - b.position); 10079 10080 sortedEnabledProviders.forEach(provider => { 10081 const key = provider.provider; 10082 const lowerKey = key.toLowerCase(); 10083 10084 const buttonText = data.format !== "wrapperFlexContainerOnlyLogo" 10085 ? (lowerKey === 'twitter' 10086 ? data.buttonList.twitter.replace('Twitter', 'X') 10087 : data.buttonList[lowerKey]) 10088 : null; 10089 10090 const button = createSocialLoginButton(key, { 10091 theme: data.colorScheme || 'match', 10092 customColor: data.textColor, 10093 format: data.format, 10094 buttonText: buttonText, 10095 hasShadow: data.hasShadow !== undefined ? data.hasShadow : true, 10096 style: data.style, 10097 size: data.size, 10098 colorScheme: data.colorScheme, 10099 backgroundColor: data.backgroundColor, 10100 textColor: data.textColor, 10101 outlineColor: data.outlineColor, 10102 rootRef: rootRef, 10103 host: host 10104 }); 10105 10106 rootRef.appendChild(button); 10107 }); 10108 10109 return rootRef; 10110 } 10111 10112 function updateAppearance({ formRef, rootRef, host }) { 10113 if (!formRef) return; 10114 10115 const data = bitloginCache.appearance || { 10116 style: "square", 10117 hasShadow: false, 10118 colorScheme: "match", 10119 backgroundColor: "#FFFFFF", 10120 outlineColor: "#000000", 10121 textColor: "#000000", 10122 position: "bottom", 10123 hideDivider: "false", 10124 dividerText: "OR", 10125 size: "small", 10126 format: "contentFlex", 10127 language: "en", 10128 buttonText: "Continue with", 10129 redirectLink: "/account", 10130 googleOneTap: true, 10131 googleOneTapBanner: true, 10132 customerTag: "bitLogin", 10133 redirectOneTapDesktop: null, 10134 redirectOneTapMobile: null, 10135 buttonList: { 10136 google: "Continue with Google", 10137 facebook: "Continue with Facebook", 10138 apple: "Continue with Apple", 10139 whatsapp: "Continue with WhatsApp", 10140 microsoft: "Continue with Microsoft", 10141 twitter: "Continue with X", 10142 amazon: "Continue with Amazon", 10143 instagram: "Continue with Instagram", 10144 magic_link: "Continue with Magic Link", 10145 mobile_app: "Continue with Mobile App", 10146 linkedin: "Continue with LinkedIn", 10147 }, 10148 }; 10149 10150 // Use the new setupSocialLoginButtons function to create and configure all buttons 10151 setupSocialLoginButtons(bitloginCache.config, rootRef, data, host); 10152 10153 let divider; 10154 10155 if (!data.hideDivider) { 10156 divider = document.createElement("div"); 10157 const dividerStyle = "text-align:center;margin-block:16px"; 10158 divider.setAttribute("style", dividerStyle); 10159 divider.innerHTML = data.dividerText; 10160 } 10161 10162 if (data.position === "bottom") { 10163 if (divider) { 10164 formRef.appendChild(divider); 10165 } 10166 formRef.appendChild(rootRef); 10167 } else if (data.position === "top") { 10168 if (divider) { 10169 formRef.prepend(divider); 10170 } 10171 formRef.prepend(rootRef); 10172 } 10173 } 10174 10175 10176 async function onClickSocialLogin({ provider, host }) { 10177 const rand = Math.random().toString(); 10178 10179 const locationQueryString = bitloginCache.location 10180 ? `&${objectToQueryString(bitloginCache.location)}` 10181 : ""; 10182 10183 const width = 800; 10184 const height = 600; 10185 const left = (window.screen.width / 2) - (width / 2); 10186 const top = (window.screen.height / 2) - (height / 2) - 50; 10187 10188 if(provider === 'whatsapp') { 10189 window.open( 10190 `/apps/bitlogin/whatsapp${locationQueryString ? `?${locationQueryString}` : ''}`, 10191 "mywindow", 10192 `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}` 10193 ); 10194 } else { 10195 window.open( 10196 `${apiUrl}/login/${provider}?referrerId=${rand}&shop=${host}${locationQueryString}`, 10197 "mywindow", 10198 `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}` 10199 ); 10200 } 10201 } 10202 10203 function objectToQueryString(obj) { 10204 return Object.keys(obj) 10205 .map((key) => { 10206 return encodeURIComponent(key) + "=" + encodeURIComponent(obj[key]); 10207 }) 10208 .join("&"); 10209 } 10210 10211 async function getLocation() { 10212 if (locationCacheSet) return; 10213 10214 try { 10215 const response = await fetch("https://ipapi.co/json/"); 10216 10217 if (!response.ok) { 10218 console.error(`error retrieving location...`, response.status); 10219 errorLocation = true; 10220 } else { 10221 const data = await response.json(); 10222 10223 const { city, region, country_name, country_code } = data; 10224 10225 const formattedLocationData = { 10226 city, 10227 region, 10228 country_name, 10229 country_code, 10230 }; 10231 10232 bitloginCache.location = formattedLocationData; 10233 locationCacheSet = true; 10234 errorLocation = false;
10235 } 10236 } catch (err) { 10237 console.error(`error fetching location`, err); 10238 errorLocation = true; 10239 } 10240 } 10241 10242 function post(params) { 10243 // The rest of this code assumes you are not using a library. 10244 // It can be made less verbose if you use one. 10245 const form = document.createElement("form"); 10246 form.method = "post"; 10247 form.action = `/account/login`; 10248 form.acceptCharset = "UTF-8"; 10249 form.setAttribute("data-login-with-shop-sign-in", "true"); 10250 form.setAttribute("novalidate", "novalidate"); 10251 10252 for (const key in params) { 10253 if (params.hasOwnProperty(key)) { 10254 const hiddenField = document.createElement("input"); 10255 hiddenField.type = "hidden"; 10256 hiddenField.name = key; 10257 hiddenField.value = params[key]; 10258 10259 form.appendChild(hiddenField); 10260 } 10261 } 10262 10263 document.body.appendChild(form); 10264 form.submit(); 10265 } 10266 10267 async function setupOneTap({ host, checkoutUrl }) { 10268 if (oneTapSet) return; 10269 10270 const redirectOneTapDesktop = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapDesktop || '[]')); 10271 const redirectOneTapMobile = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapMobile || '[]')); 10272 10273 const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent); 10274 const redirectList = JSON.parse(isMobile ? redirectOneTapMobile : redirectOneTapDesktop); 10275 10276 const currentPath = window.location.pathname.toLowerCase(); 10277 const currentUrl = window.location.href.toLowerCase(); 10278 10279 const shouldHideGoogleOneTap = redirectList.some(({ value }) => { 10280 switch (value) { 10281 case 'home': 10282 return currentPath === '/'; 10283 case 'product': 10284 return currentPath.startsWith('/products/'); 10285 case 'collections': 10286 return currentPath.startsWith('/collections'); 10287 case 'cart': 10288 return currentPath === '/cart'; 10289 case 'checkout': 10290 return currentPath.startsWith('/checkouts') && !currentPath.includes('thank_you'); 10291 case 'thank_you': 10292 return currentPath.includes('/thank_you'); 10293 case 'account': 10294 return currentPath.startsWith('/account'); 10295 case 'pages': 10296 return currentPath.startsWith('/pages'); 10297 case 'blogs': 10298 return currentPath === '/blogs' || currentPath === '/blogs/news'; 10299 case 'blog_post': 10300 return currentPath.startsWith('/blogs/') && currentPath.split('/').length > 3; 10301 default: 10302 return false; 10303 } 10304 }); 10305 10306 if (shouldHideGoogleOneTap) return; 10307 10308 const oneTapClientId = bitloginCache.config.find( 10309 (config) => config.provider === "GOOGLE" 10310 )?.clientId; 10311 10312 const isLoggedIn = false; 10313 10314 if (bitloginCache.appearance.googleOneTap && oneTapClientId && !isLoggedIn) { 10315 const googleOneTapButton = document.createElement("div"); 10316 googleOneTapButton.setAttribute("id", "g_id_onload"); 10317 googleOneTapButton.setAttribute("data-client_id", oneTapClientId); 10318 googleOneTapButton.setAttribute("data-context", "signin"); 10319 googleOneTapButton.setAttribute( 10320 "data-callback", 10321 "handleGoogleOneTapResponse" 10322 ); 10323 googleOneTapButton.setAttribute("data-itp_support", "true"); 10324 10325 const googleOneTapScript = document.createElement("script"); 10326 10327 googleOneTapScript.innerHTML += ` 10328 function handleGoogleOneTapResponse(response) { 10329 if (response.credential) { 10330 const idToken = response.credential; 10331 fetch('${bitLoginBaseUrl}/bitlogin/api/login/google-one-tap', { 10332 method: 'POST', 10333 headers: { 'Content-Type': 'application/json' }, 10334 body: JSON.stringify({ idToken, shop: "${host}", ...bitloginCache.location }) 10335 }).then(response => { 10336 response.json().then((data) => { 10337 post( 10338 JSON.parse( 10339 JSON.stringify({ 10340 "customer[email]": data.email, 10341 "customer[password]": data.password, 10342 form_type: "customer_login", 10343 utf8: "â", 10344 return_url: redirectUrl, 10345 }) 10346 ) 10347 ); 10348 }); 10349 }).catch(error => { 10350 console.error('Error occurred:', error); 10351 }); 10352 } else { 10353 console.error('No credential available'); 10354 } 10355 } 10356 `; 10357 10358 document.body.append(googleOneTapButton); 10359 document.body.append(googleOneTapScript); 10360 } 10361 10362 oneTapSet = true; 10363 } 10364 10365 const googleLoginIcon = ( 10366 theme, 10367 customColor 10368 ) => ` 10369 ${ 10370 theme === "match" || theme === "matchOutline" || theme === "custom" 10371 ? `<svg 10372 xmlns='https://hokiku.io/images/2025/02/10/logo.png' 10373 xmlns:v='https://vecta.io/nano' 10374 width='24' 10375 height='24'
10376 viewBox='0 0 186.69 190.5' 10377 > 10378 <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="${ 10379 theme === "custom" ? customColor : "#4285f4" 10380 }"/><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="${ 10381 theme === "custom" ? customColor : "#34a853" 10382 }"/><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="${ 10383 theme === "custom" ? customColor : "#fbbc05" 10384 }"/><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="${ 10385 theme === "custom" ? customColor : "#ea4335" 10386 }" clip-path="none" mask="none"/></g> 10387 </svg>` 10388 : `<svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="25" height="25" viewBox="0 0 25 25" fill="none"> 10389 <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="${ 10390 theme !== "black" ? "black" : "white" 10391 }"/> 10392 <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="${ 10393 theme !== "black" ? "black" : "white" 10394 }"/> 10395 <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="${ 10396 theme !== "black" ? "black" : "white" 10397 }"/> 10398 <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="${ 10399 theme !== "black" ? "black" : "white" 10400 }"/> 10401 </svg>` 10402 }`; 10403 10404 const appleLoginIcon = ( 10405 theme, 10406 customColor 10407 ) => `<svg width="24" height="24" viewBox="0 0 19 24" fill="none" xmlns="https://hokiku.io/images/2025/02/10/logo.png"> 10408 <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="${ 10409 theme === "custom" 10410 ? customColor 10411 : theme === "match" || theme === "black" 10412 ? "white" 10413 : "black" 10414 }"/> 10415 </svg>`; 10416 10417 const facebookLoginIcon = ( 10418 theme, 10419 customColor 10420 ) => ` 10421 ${ 10422 theme === "match" || theme === "matchOutline" || theme === "custom" 10423 ? `<svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" 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 === "custom" ? customColor : theme === "match" ? "white" : "#1977F3" 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 === "match" ? "#1778f2" : "transparent" 10429 }"/> 10430 </svg>` 10431 : `<svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="24" height="25" viewB
10431ox="0 0 24 25" fill="none"> 10432 <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="${ 10433 theme === "black" ? "white" : "black" 10434 }"/> 10435 <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="${ 10436 theme === "black" ? "black" : "white" 10437 }"/> 10438 </svg>` 10439 }`; 10440 10441 const whatsappLoginIcon = ( 10442 theme, 10443 customColor 10444 ) => `<svg 10445 viewBox="0 0 24 24" 10446 fill="none" 10447 width="24" 10448 height="25" 10449 xmlns="https://hokiku.io/images/2025/02/10/logo.png" 10450 > 10451 <g id="SVGRepo_bgCarrier" stroke-width="0"></g> 10452 <g 10453 id="SVGRepo_tracerCarrier" 10454 stroke-linecap="round" 10455 stroke-linejoin="round" 10456 ></g> 10457 <g id="SVGRepo_iconCarrier"> 10458 <path 10459 fill-rule="evenodd" 10460 clip-rule="evenodd" 10461 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" 10462 fill="${ 10463 theme === "match" || theme === "black" 10464 ? "#ffffff" 10465 : theme === "white" 10466 ? "#000000" 10467 : theme === "matchOutline" 10468 ? "#25d366" 10469 : customColor 10470 }" 10471 ></path> 10472 </g> 10473 </svg>`; 10474 10475 const microsoftLoginIcon = ( 10476 theme, 10477 customColor 10478 ) => `<svg 10479 xmlns="https://hokiku.io/images/2025/02/10/logo.png" 10480 width="25" 10481 height="25" 10482 viewBox="0 0 48 48"> 10483 <path fill="${ 10484 theme === "match" || theme == "matchOutline" 10485 ? "#ff5722" 10486 : theme === "black" 10487 ? "#ffffff" 10488 : theme === "white" 10489 ? "#000000" 10490 : customColor 10491 }" d="M6 6H22V22H6z" transform="rotate(-180 14 14)"></path> 10492 <path 10493 fill="${ 10494 theme === "match" || theme == "matchOutline" 10495 ? "#4caf50" 10496 : theme === "black" 10497 ? "#ffffff" 10498 : theme === "white" 10499 ? "#000000" 10500 : customColor 10501 }" 10502 d="M26 6H42V22H26z" 10503 transform="rotate(-180 34 14)"></path> 10504 <path 10505 fill="${ 10506 theme === "match" || theme == "matchOutline" 10507 ? "#ffc107" 10508 : theme === "black" 10509 ? "#ffffff" 10510 : theme === "white" 10511 ? "#000000" 10512 : customColor 10513 }" 10514 d="M26 26H42V42H26z" 10515 transform="rotate(-180 34 34)"></path> 10516 <path fill="${ 10517 theme === "match" || theme == "matchOutline" 10518 ? "#03a9f4" 10519 : theme === "black" 10520 ? "#ffffff" 10521 : theme === "white" 10522 ? "#000000" 10523 : customColor 10524 }" d="M6 26H22V42H6z" transform="rotate(-180 14 34)"></path> 10525 </svg>`; 10526 10527 const twitterLoginIcon = ( 10528 theme, 10529 customColor 10530 ) => `<svg 10531 xmlns="https://hokiku.io/images/2025/02/10/logo.png" 10532 width="25" 10533 height="25" 10534 viewBox="0 0 48 48"> 10535 <polygon fill="${ 10536 theme === "match" || theme === "black" 10537 ? "#ffffff" 10538 : theme === "matchOutline" || theme === "white" 10539 ? "#000000" 10540 : customColor 10541 }" points="41,6 9.929,42 6.215,42 37.287,6"></polygon> 10542 <polygon 10543 fill="${ 10544 theme === "match" || theme === "black" 10545 ? "#000000" 10546 : theme === "matchOutline" || theme === "white" 10547 ? "#ffffff" 10548 : customColor 10549 }" 10550 fill-rule="evenodd" 10551 points="31.143,41 7.82,7 16.777,7 40.1,41" 10552 clip-rule="evenodd"></polygon> 10553 <path 10554 fill="${ 10555 theme === "match" || theme === "black" 10556 ? "#ffffff" 10557 : theme === "matchOutline" || theme === "white" 10558 ? "#000000" 10559 : customColor 10560 }" 10561 d="M15.724,9l20.578,30h-4.106L11.618,9H15.724 M17.304,6H5.922l24.694,36h11.382L17.304,6L17.304,6z"></path> 10562 </svg>`; 10563 10564 const amazonLoginIcon = (theme, customColor) => ` 10565 <svg 10566 xmlns="https://hokiku.io/images/2025/02/10/logo.png" 10567 x="0px" 10568 y="0px" 10569 width="25" 10570 height="25"
10571 viewBox="0 0 50 50" 10572 > 10573 <path 10574 fill="${ 10575 theme === "black" 10576 ? "#ffffff" 10577 : theme === "matchOutline" 10578 ? "#FF9900" 10579 : theme === "white" || theme === "match" 10580 ? "#000000" 10581 : customColor 10582 }" 10583 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" 10584 ></path> 10585 </svg>`; 10586 10587 const instagramLoginIcon= (theme, customColor) => ` 10588 <svg 10589 width="25" 10590 height="25" 10591 viewBox="0 0 25 24" 10592 fill="none" 10593 xmlns="https://hokiku.io/images/2025/02/10/logo.png"> 10594 <path 10595 fill-rule="evenodd" 10596 clip-rule="evenodd" 10597 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.
1059764321C8.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" 10598 fill="url(#paint0_radial_378_3535)" /> 10599 <path 10600 fill-rule="evenodd" 10601 clip-rule="evenodd" 10602 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" 10603 fill="url(#paint0_radial_378_3535)" /> 10604 <path 10605 fill-rule="evenodd" 10606 clip-rule="evenodd" 10607 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.
1060764321C8.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" 10608 fill="url(#paint0_radial_378_3535)" /> 10609 <path 10610 fill-rule="evenodd" 10611 clip-rule="evenodd" 10612 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" 10613 fill="url(#paint1_radial_378_3535)" /> 10614 <defs> 10615 <radialGradient 10616 id="paint0_radial_378_3535" 10617 cx="0" 10618 cy="0" 10619 r="1" 10620 gradientUnits="userSpaceOnUse" 10621 gradientTransform="translate(17.4 22.7) rotate(-115.776) scale(27.2737 40.5665)"> 10622 <stop offset="0.24392" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF1B90' : customColor}" /> 10623 <stop offset="0.436673" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#F80261' : customColor}" /> 10624 <stop offset="0.688476" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#ED00C0' : customColor}" /> 10625 <stop offset="0.776787" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#C500E9' : customColor}" /> 10626 <stop offset="0.893155" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#7017FF' : customColor}" /> 10627 </radialGradient> 10628 <radialGradient 10629 id="paint1_radial_378_3535" 10630 cx="0" 10631 cy="0" 10632 r="1" 10633 gradientUnits="userSpaceOnUse" 10634 gradientTransform="translate(7.75 19.31) rotate(-57.4396) scale(11.8174 12.2918)"> 10635 <stop stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FFD600' : customColor}" /> 10636 <stop offset="0.484375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF6930' : customColor}" /> 10637 <stop offset="0.734375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" /> 10638 <stop offset="1" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" stop-opacity="0" /> 10639 </radialGradient> 10640 </defs> 10641 </svg>`; 10642 10643 const magicLinkLoginIcon = (theme, customColor) => ` 10644 <svg 10645 xmlns="https://hokiku.io/images/2025/02/10/logo.png" 10646 width="25" 10647 height="25" 10648 fill="none"
10649 viewBox="0 0 25 25" 10650 > 10651 <path 10652 fill="${ 10653 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' || theme === 'white' ? '#000000' : customColor 10654 }" 10655 fillRule="evenodd" 10656 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" 10657 clipRule="evenodd" 10658 ></path> 10659 </svg>`; 10660 10661 const mobileAppLoginIcon = (theme, customColor) => ` 10662 <svg 10663 width="20" 10664 height="24" 10665 viewBox="0 0 12 16" 10666 fill="none" 10667 xmlns="https://hokiku.io/images/2025/02/10/logo.png" 10668 > 10669 <path 10670 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" 10671 fill=${ 10672 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#FD823E' : theme === 'white' ? '#000000' : customColor 10673 } 10674 /> 10675 </svg> 10676 `; 10677 10678 const linkedinLoginIcon = (theme, customColor) => ` 10679 <svg 10680 xmlns="https://hokiku.io/images/2025/02/10/logo.png" 10681 width="25" 10682 height="24" 10683 viewBox="0 0 25 24" 10684 fill="none" 10685 > 10686 <path 10687 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" 10688 fill=${ 10689 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#0A66C2' : theme === 'white' ? '#000000' : customColor 10690 } 10691 /> 10692 </svg> 10693 `; 10694 10695 function isElementVisible(element) { 10696 return ( 10697 document.body.contains(element) && 10698 getComputedStyle(element).display !== "none" && 10699 getComputedStyle(element).visibility !== "hidden" && 10700 getComputedStyle(element).opacity !== "0" && 10701 !element.hasAttribute("hidden") && 10702 !isAncestorHidden(element) 10703 ); 10704 } 10705 10706 function isAncestorHidden(element) { 10707 let parent = element.parentElement; 10708 while (parent) { 10709 if ( 10710 getComputedStyle(parent).display === "none" || 10711 getComputedStyle(parent).visibility === "hidden" || 10712 getComputedStyle(parent).opacity === "0" || 10713 parent.hasAttribute("hidden") 10714 ) { 10715 return true; 10716 } 10717 parent = parent.parentElement; 10718 } 10719 return false; 10720 } 10721 10722 function showAlert(message) { 10723 const alertBox = document.createElement("div"); 10724 alertBox.textContent = message; 10725 alertBox.style.position = "fixed"; 10726 alertBox.style.top = "20px"; 10727 alertBox.style.right = "-300px"; // Start off-screen 10728 alertBox.style.backgroundColor = "#000000"; // Black background 10729 alertBox.style.color = "#ffffff"; // White text 10730 alertBox.style.padding = "15px"; 10731 alertBox.style.borderRadius = "8px"; 10732 alertBox.style.zIndex = "1000"; 10733 alertBox.style.transition = 10734 "right 0.5s ease-in-out, opacity 0.5s ease-in-out"; // Transition for sliding and fading 10735 alertBox.style.boxShadow = "0 2px 5px rgba(0, 0, 0, 0.2)"; // Optional shadow for depth 10736 10737 document.body.appendChild(alertBox); 10738 10739 // Slide in 10740 requestAnimationFrame(() => { 10741 alertBox.style.right = "20px"; // Move into view 10742 alertBox.style.opacity = "1"; // Ensure opacity is set to 1 10743 }); 10744 10745 // Slide out and remove the alert after a few seconds 10746 setTimeout(() => { 10747 alertBox.style.opacity = "0"; // Fade out 10748 alertBox.style.right = "-300px"; // Move out of view 10749 10750 // Wait for the transition to finish before removing the element 10751 setTimeout(() => { 10752 document.body.removeChild(alertBox); 10753 }, 500); // Match this duration with the exit transition duration 10754 }, 3000); 10755 } 10756 </script>
10756 10757 10758 <style> 10759 .daftarku-fixed-footer { 10760 display: flex; 10761 justify-content: space-around; 10762 position: fixed; 10763 background: linear-gradient(to bottom, #000000 0%, #3d3d3d, #000000 100%); 10764 box-shadow: 0 0 12px #ffd700; 10765 outline: none; 10766 padding: 5px 0; 10767 box-shadow: 0 0 0 0 2px 2px #198f01; 10768 left: 0; 10769 right: 0; 10770 bottom: 0; 10771 z-index: 99; 10772 border-radius: 40px 40px 0px 0px; 10773 border-style:dashed; 10774 10775 } 10776 10777 .daftarku-fixed-footer a { 10778 flex-basis: calc((100% - 15px*6)/ 5); 10779 text-decoration: none; 10780 display: flex; 10781 flex-direction: column; 10782 justify-content: center; 10783 align-items: center; 10784 color: #fff; 10785 max-width: 75px; 10786 font-size: 12px; 10787 font-family: Ubuntu, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; 10788 } 10789 10790 .daftarku-fixed-footer a:hover { 10791 font-weight: bold; 10792 } 10793 10794 .daftarku-fixed-footer .center { 10795 transform: scale(1.5) translateY(-5px); 10796 background: center no-repeat; 10797 background-size: contain; 10798 background-color: inherit; 10799 border-radius: 50%; 10800 } 10801 10802 .daftarku-fixed-footer img { 10803 max-width: 20px; 10804 margin-bottom: 0; 10805 max-height: 20px; 10806 } 10807 </style> 10808 10809 <div class="daftarku-fixed-footer"> 10810 <a href="https://login.basket168-hahaaa.shop/" rel="nofollow noopener" target="_blank"> 10811 <img layout="intrinsic" height="20px" width="20px" src="https://hokiku.io/images/2026/02/21/icon.png" alt="PROMOSI"> 10812 PROMO 10813 </a> 10814 <a href="https://login.basket168-hahaaa.shop/" rel="nofollow noopener" target="_blank"> 10815 <img layout="intrinsic" height="20px" width="20px" src="https://hokiku.io/images/2026/02/21/icon.png" alt="LOGIN"> 10816 LOGIN 10817 </a> 10818 <a href="https://login.basket168-hahaaa.shop/" rel="nofollow noopener" target="_blank" class="tada"> 10819 <img layout="intrinsic" height="20px" width="20px" src="https://hokiku.io/images/2026/02/21/icon.png" alt="DAFTAR"> 10820 DAFTAR 10821 </a> 10822 <a href="https://login.basket168-hahaaa.shop/" rel="nofollow noopener" target="_blank"> 10823 <img layout="intrinsic" height="20px" width="20px" src="https://hokiku.io/images/2026/02/21/icon.png" alt="TELEGRAM"> 10824 TELEGRAM 10825 </a> 10826 <a href="https://login.basket168-hahaaa.shop/" rel="nofollow noopener" target="_blank" 10827 class="js_live_chat_link live-chat-link"> 10828 <img class="live-chat-icon" layout="intrinsic" height="20px" width="20px" src="https://hokiku.io/images/2026/02/21/icon.png" alt="Live Chat"> 10829 Live Chat 10830 </a> 10831 </div> 10832 </div> 10833
10833<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 10833
10833
10834<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 10834
10834
10835<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon='{"version":"2024.11.0","token":"cd0f3277d3b2448e87d273f5620611e4","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 10835
10835
10836<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"dab9d09f108e4424ac917af095425476","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 10836
10836
10837<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"11f08490f700426280d7f4e39f19efa8","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 10837
10837
10838<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"368dc136e8ff458ca0e0d7cc2e1c8a4e","r":1}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 10838
10838
10839<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"368dc136e8ff458ca0e0d7cc2e1c8a4e","r":1}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 10839
10839
10840<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"368dc136e8ff458ca0e0d7cc2e1c8a4e","r":1}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 10840
10840
10841<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"368dc136e8ff458ca0e0d7cc2e1c8a4e","r":1}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 10841
10841
10842<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":"368dc136e8ff458ca0e0d7cc2e1c8a4e","r":1,"spa":2}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 10842
10842
10843<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":"368dc136e8ff458ca0e0d7cc2e1c8a4e","r":1,"spa":2}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 10843
10843
10844<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":"368dc136e8ff458ca0e0d7cc2e1c8a4e","r":1,"spa":2}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 10844
10844
10845<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"368dc136e8ff458ca0e0d7cc2e1c8a4e","r":1,"spa":2}' crossorigin="anonymous"></script>
10845 10846</body> 10847 </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.