1 2 3<!doctype html> 4 <!--Brumm Brumm--> 5 <html class="no-js"> 6 <head> 7 <meta charset="utf-8"> 8 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 9 <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"> 10 <meta name="apple-itunes-app" content="app-id=1576832504"> 11 <link rel="icon" type="image/x-icon" href="https://ik.imagekit.io/9ng7ozhvc/FAVKASKUS.webp?updatedAt=1783584698948"> 12 <!-- Title and description --> 13 <title>KASKUSTOTO : Alternatif Tercepat Anti Nawala Anti Lelet </title> 14 <meta name="description" content="KASKUSTOTO adalah situs resmi yang memiliki fitur akses live result togel dengan cepat dan terpercaya dan fitur canggih yang kami miliki."> 15 <link rel="canonical" href="https://lower9thwardhomeowners.org/"> 16 <link rel="amphtml" href="https://amp13-2.vercel.app/"/> 17 <link rel="alternate" hreflang="id-id" href="https://amp13-2.vercel.app/"/> 18 <link rel="alternate" href="https://amp13-2.vercel.app/"/> 19 <link rel="alternate" hreflang="id" href="https://amp13-2.vercel.app/"/> 20 <link rel="alternate" hreflang="en" href="https://amp13-2.vercel.app/"/> 21 <link rel="alternate" hreflang="x-default" href="https://amp13-2.vercel.app/"/> 22 <!-- /snippets/social-meta-tags.liquid --> 23 <meta property="og:type" content="TOGEL ONLINE"> 24 <meta property="og:title" content="KASKUSTOTO : Alternatif Tercepat Anti Nawala Anti Lelet "> 25 <meta property="og:image" content="https://ik.imagekit.io/9ng7ozhvc/kaskus14.png"> 26 <meta property="og:image:secure_url" content="https://ik.imagekit.io/9ng7ozhvc/kaskus14.png"> 27 <meta property="og:image" content="https://ik.imagekit.io/9ng7ozhvc/kaskus14.png"> 28 <meta property="og:image:secure_url" content="https://ik.imagekit.io/9ng7ozhvc/kaskus14.png"> 29 <meta property="og:image" content="https://ik.imagekit.io/9ng7ozhvc/kaskus14.png"> 30 <meta property="og:image:secure_url" content="https://ik.imagekit.io/9ng7ozhvc/kaskus14.png"> 31 <meta property="og:description" content="KASKUSTOTO adalah situs resmi yang memiliki fitur akses live result togel dengan cepat dan terpercaya dan fitur canggih yang kami miliki."> 32 <meta property="og:price:amount" content="10,000,"> 33 <meta property="og:price:currency" content="IDR"> 34 <meta property="og:url" content="https://lower9thwardhomeowners.org/"> 35 <meta property="og:site_name" content="KASKUSTOTO"> 36 <meta name="twitter:site" content="@KASKUSTOTO"> 37 <meta name="twitter:card" content="summary"> 38 <meta name="twitter:title" content="KASKUSTOTO : Alternatif Tercepat Anti Nawala Anti Lelet "> 39 <meta name="twitter:description" content="KASKUSTOTO adalah situs resmi yang memiliki fitur akses live result togel dengan cepat dan terpercaya dan fitur canggih yang kami miliki."> 40 <meta name="twitter:image" content="https://ik.imagekit.io/9ng7ozhvc/kaskus14.png"> 41 <meta name="twitter:image:width" content="1080"> 42 <meta name="twitter:image:height" content="1080"> 43 <link rel="shortcut icon" href="https://ik.imagekit.io/9ng7ozhvc/FAVKASKUS.webp?updatedAt=1783584698948" 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: 471 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: 44 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: 76 bytes, lines 80-81
80 81 <script async src="https://www.googletagmanager.com/gtag/js?id=
81G-X26HYP4083
vendor: 24 bytes, lines 81-82
81"></script> 82
82<script> 83
vendor: 174 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: 16 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://amp13-2.vercel.app/" rel="nofollow noreferrer"> 93 LOGIN 94 </a> 95 <a class="register" href="https://amp13-2.vercel.app/" 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":"KASKUSTOTO : Alternatif Tercepat Anti Nawala Anti Lelet ","vendor":"Outerbloom Florist","id":"8144957800663","untranslatedTitle":"KASKUSTOTO : Alternatif Tercepat Anti Nawala Anti Lelet ","url":"\/products\/blossom-shine","type":"KASKUSTOTO adalah situs resmi yang memiliki fitur akses live result togel dengan cepat dan terpercaya dan fitur canggih yang kami miliki."},"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\":\"KASKUSTOTO : Alternatif Tercepat Anti Nawala Anti Lelet \",\"vendor\":\"Outerbloom Florist\",\"id\":\"8144957800663\",\"untranslatedTitle\":\"KASKUSTOTO : Alternatif Tercepat Anti Nawala Anti Lelet \",\"url\":\"\/products\/blossom-shine\",\"type\":\"KASKUSTOTO adalah situs resmi yang memiliki fitur akses live result togel dengan cepat dan terpercaya dan fitur canggih yang kami miliki.\"},\"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":"KASKUSTOTO adalah situs resmi yang memiliki fitur akses live result togel dengan cepat dan terpercaya dan fitur canggih yang kami miliki.","variants":[{"id":44083045826775,"price":1000000 224 ,"name":"KASKUSTOTO : Alternatif Tercepat Anti Nawala Anti Lelet ","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":"KASKUSTOTO : Alternatif Tercepat Anti Nawala Anti Lelet ","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"KASKUSTOTO adalah situs resmi yang memiliki fitur akses live result togel dengan cepat dan terpercaya dan fitur canggih yang kami miliki.","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":"KASKUSTOTO : Alternatif Tercepat Anti Nawala Anti Lelet ","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"KASKUSTOTO adalah situs resmi yang memiliki fitur akses live result togel dengan cepat dan terpercaya dan fitur canggih yang kami miliki.","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: 93 bytes, lines 424-427
424 425 <noscript 426 ><iframe 427 src="https://www.googletagmanager.com/ns.html?id=
427GTM-MF9VVZX
vendor: 135 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: #00BFFF;} 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://lower9thwardhomeowners.org/" title="KASKUSTOTO">KASKUSTOTO : Alternatif Tercepat Anti Nawala Anti Lelet </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://ik.imagekit.io/9ng7ozhvc/petirkaskus.png); 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://lower9thwardhomeowners.org/"> 473 <img src="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" alt="logo-KASKUSTOTO" style="width: 190px;"></a> 474 <link href="https://ik.imagekit.io/9ng7ozhvc/FAVKASKUS.webp?updatedAt=1783584698948" rel="shortcut icon" type="image/x-icon" /> 475 <div id="menu-hamburger" class="d-lg-none"> 476 <svg xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" 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://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" 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://lower9thwardhomeowners.org/"> 489 <svg xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" 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://lower9thwardhomeowners.org/"> 498 <svg xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" 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.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.
49911233C11.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://lower9thwardhomeowners.org/"> 507 <svg xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" 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://lower9thwardhomeowners.org/"> 525 <img src="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" alt="KASKUSTOTO" 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://amp13-2.vercel.app/">Log In</a> | <a href="https://amp13-2.vercel.app/">Sign Up</a> 534 </div> 535 </div> 536 <ul class="nav-menu container"> 537 538 <li class="nav-menu container"> 539 <a href="https://lower9thwardhomeowners.org/"> 540 <span style="color: #00BFFF;">KASKUSTOTO</span> 541 542 543 <li class=" nav-menu container"> 544 <a href="https://lower9thwardhomeowners.org/"> 545 <span style="color: #00BFFF;">KASKUS TOTO</span> 546 547 548 <li class=" nav-menu container"> 549 <a href="https://lower9thwardhomeowners.org/"> 550 <span style="color: #00BFFF;">TOGEL ONLINE</span> 551 552 <li class=" nav-menu container"> 553 <a href="https://lower9thwardhomeowners.org/"> 554 <span style="color: #00BFFF;">TOTO TOGEL</span> 555 556 <li class=" nav-menu container"> 557 <a href="https://lower9thwardhomeowners.org/"> 558 <span style="color: #00BFFF;">KASKUSTOTO LINK</span> 559 560 <li class=" nav-menu container"> 561 <a href="https://lower9thwardhomeowners.org/"> 562 <span style="color: #00BFFF;">KASKUSTOTO 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://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672"> 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,#00BFFF,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, #00BFFF, #00BFFF, #00BFFF); 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 #00BFFF; 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:#00BFFF; 989 transform:translateX(10px); 990 box-shadow:0 12px 35px rgba(0, 255, 255, 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:#00BFFF 1009 } 1010 1011 .faq-question::after{ 1012 content:'+'; 1013 font-size:32px; 1014 font-weight:300; 1015 transition:all .4s ease; 1016 color:#00BFFF; 1017 width:40px; 1018 height:40px; 1019 display:flex; 1020 align-items:center; 1021 justify-content:center; 1022 border:2px solid #00BFFF;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,#00BFFF,#00BFFF); 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(0, 255, 255, 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://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" 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://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" 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 12.507C16.82 13.603 16.1787 14.556 15.368 15.366C14.5573 16.176 13.6053 16.8177 12.512 17.291C11.4187 17.7643 10.249 18.0007 9.003 18ZM9 17C11.2333 17 13.125 16.225 14.675 14.675C16.225 13.125 17 11.2333 17 9C17 6.76667 16.225 4.875 14.675 3.325C13.125 1.775 11.2333 1 9 1C6.76667 1 4.875 1.775 3.325 3.325C1.775 4.875 1 6.76667 1 9C1 11.2333 1.775 13.125 3.325 14.675C4.875 16.225 6.76667 17 9 17Z" fill="#757575"/> 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://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" 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://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" 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.072
11566 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"/> 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://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" 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://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" 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://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" 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://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" 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://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" 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://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" 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://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" 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://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" 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://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" 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://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672"><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]}">
1856${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: #00BFFF;"> 1952 <ul role="navigation" aria-label="breadcrumbs"> 1953 <li><a href="https://lower9thwardhomeowners.org/" style="color: #00BFFF;">KASKUSTOTO</a></li> 1954 <li><svg xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" 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>KASKUS TOTO</li> 1958 <li>KASKUSTOTO TOGEL</li> 1959 <li>TOGEL ONLINE RESMI</li> 1960 <li>SLOT</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": "KASKUSTOTO : Alternatif Tercepat Anti Nawala Anti Lelet ", 1972 "image": "https://ik.imagekit.io/9ng7ozhvc/kaskus14.png", 1973 "description": "KASKUSTOTO adalah situs resmi yang memiliki fitur akses live result togel dengan cepat dan terpercaya dan fitur canggih yang kami miliki.", 1974 "brand": { 1975 "@type": "Brand", 1976 "name": "KASKUSTOTO" 1977 }, 1978 "sku": "KASKUSTOTO", 1979 "mpn": "KASKUSTOTO", 1980 "url": "https://lower9thwardhomeowners.org/", 1981 "offers": { 1982 "@type": "Offer", 1983 "url": "https://lower9thwardhomeowners.org/", 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": "KASKUSTOTO" 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": "KASKUSTOTO", 2035 "item": "https://lower9thwardhomeowners.org/" 2036 }, 2037 { 2038 "@type": "ListItem", 2039 "position": 2, 2040 "name": "KASKUS TOTO", 2041 "item": "https://lower9thwardhomeowners.org/" 2042 }, 2043 { 2044 "@type": "ListItem", 2045 "position": 3, 2046 "name": "TOGEL ONLINE", 2047 "item": "https://lower9thwardhomeowners.org/" 2048 }, 2049 { 2050 "@type": "ListItem", 2051 "position": 4, 2052 "name": "KASKUSTOTO TOGEL", 2053 "item": "https://lower9thwardhomeowners.org/" 2054 }, 2055 { 2056 "@type": "ListItem", 2057 "position": 5, 2058 "name": "TOGEL", 2059 "item": "https://lower9thwardhomeowners.org/" 2060 }, 2061 { 2062 "@type": "ListItem", 2063 "position": 6, 2064 "name": "TOGEL ONLINE RESMI", 2065 "item": "https://lower9thwardhomeowners.org/" 2066 }, 2067 { 2068 "@type": "ListItem", 2069 "position": 7, 2070 "name": "GAME SLOT ONLINE", 2071 "item": "https://lower9thwardhomeowners.org/" 2072 }, 2073 { 2074 "@type": "ListItem", 2075 "position": 8, 2076 "name": "KASKUSTOTO : Alternatif Tercepat Anti Nawala Anti Lelet ", 2077 "item": "https://lower9thwardhomeowners.org/" 2078 } 2079 ] 2080 } 2081 </script>
2081 2082 2083 <!--faq--> 2084
2085<script type="application/ld+json"> 2086{ 2087 "@context": "https://schema.org", 2088 "@type": "FAQPage", 2089 "mainEntity": [ 2090 { 2091 "@type": "Question", 2092 "name": "Mengapa banyak pemain memilih KASKUSTOTO sebagai platform untuk melihat live result togel online?", 2093 "acceptedAnswer": { 2094 "@type": "Answer", 2095 "text": "KASKUSTOTO sudah menggunakan sistem live result realtime dan akurat, tampilan fitur yang sederhana serta akses yang mudah digunakan melalui perangkat apa saja setiap hari" 2096 } 2097 }, 2098 { 2099 "@type": "Question", 2100 "name": "Apakah update result di KASUSTOTO berlangsung secara Akurat & Cepat?", 2101 "acceptedAnswer": { 2102 "@type": "Answer", 2103 "text": "Benar, KASKUSTOTO telah menyediakan live result secara realtime sesuai dengan jadwal pasaran resmi, sehingga sangat membantu pemain untuk memantau hasil terbaru tanpa terlambat." 2104 } 2105 }, 2106 { 2107 "@type": "Question", 2108 "name": "Jenis pasaran apa saja yang ada di KASKUSTOTO?", 2109 "acceptedAnswer": { 2110 "@type": "Answer", 2111 "text": "KASKUSTOTO menyediakan berbagai pasaran populer seperti Sydney, Singapore, Macau, Hongkong, serta pasaran internasional lainnya yang banyak di cari oleh para pemain togel online." 2112 } 2113 }, 2114 { 2115 "@type": "Question", 2116 "name": "Apakah tampilan KASKUSTOTO nyaman di gunakan di perangkat mobile?", 2117 "acceptedAnswer": { 2118 "@type": "Answer", 2119 "text": "KASKUSTOTO dirancang dengan tampilan responsif dan navigasi sederhana sehingga pemain bisa dengan nyaman ketika mengakses menggunakan perangkat apa saja tanpa mengalami kendala." 2120 } 2121 }, 2122 { 2123 "@type": "Question", 2124 "name": "Apa keunggulan yang diberikan KASKUSTOTO dibanding dengan platfom lain?", 2125 "acceptedAnswer": { 2126 "@type": "Answer", 2127 "text": "Keunggulan KASKUSTOTO terletak pada akses yang stabil, informasi yang mudah di pahami, serta fitur ringan yang sangat membantu pemain untuk bermain secara praktis setiap hari." 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": "KASKUSTOTO", 2138 "url": "https://lower9thwardhomeowners.org/", 2139 "logo": "https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672", 2140 "sameAs": [ 2141 "https://www.facebook.com/KASKUSTOTO", 2142 "https://twitter.com/KASKUSTOTO", 2143 "https://www.instagram.com/KASKUSTOTO" 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": "KASKUSTOTO : Alternatif Tercepat Anti Nawala Anti Lelet ", 2160 "description": "KASKUSTOTO adalah situs resmi yang memiliki fitur akses live result togel dengan cepat dan terpercaya dan fitur canggih yang kami miliki.", 2161 "thumbnailUrl": [ 2162 "https://ik.imagekit.io/9ng7ozhvc/kaskus14.png", 2163 "https://ik.imagekit.io/9ng7ozhvc/kaskus14.png" 2164 ], 2165 "uploadDate": "2025-09-28T04:19:10-04:00", 2166 "duration": "PT168", 2167 "contentUrl": "https://lower9thwardhomeowners.org/" 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://lower9thwardhomeowners.org/" 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://lower9thwardhomeowners.org/#org", 2193 "name": "KASKUSTOTO", 2194 "url": "https://lower9thwardhomeowners.org/", 2195 "logo": "https://ik.imagekit.io/9ng7ozhvc/kaskus14.png" 2196 }, 2197 { 2198 "@type": "WebSite", 2199 "@id": "https://lower9thwardhomeowners.org/#website", 2200 "url": "https://lower9thwardhomeowners.org/", 2201 "name": "KASKUSTOTO", 2202 "publisher": { "@id": "https://lower9thwardhomeowners.org/#org" }, 2203 "inLanguage": "id-ID", 2204 "potentialAction": { 2205 "@type": "SearchAction", 2206 "target": "https://lower9thwardhomeowners.org/?s={search_term_string}", 2207 "query-input": "required name=search_term_string" 2208 } 2209 }, 2210 { 2211 "@type": "SoftwareApplication", 2212 "@id": "https://lower9thwardhomeowners.org/#app", 2213 "name": "KASKUSTOTO", 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://lower9thwardhomeowners.org/"> 2240 <meta itemprop="image" content="https://ik.imagekit.io/9ng7ozhvc/kaskus14.png"> 2241 2242 2243 2244 <input id="data-sku" type="hidden" value="OBVSTF1086"> 2245 <div class="product-single" style="background-image: url(https://ik.imagekit.io/9ng7ozhvc/petirkaskus.png); 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://ik.imagekit.io/9ng7ozhvc/kaskus14.png" 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://ik.imagekit.io/9ng7ozhvc/kaskus14.png" 2270 alt="KASKUSTOTO : Alternatif Tercepat Anti Nawala Anti Lelet " 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://ik.imagekit.io/9ng7ozhvc/kaskus14.png" 2283 data-standard="https://ik.imagekit.io/9ng7ozhvc/kaskus14.png" 2284 data-image="https://ik.imagekit.io/9ng7ozhvc/kaskus14.png" 2285 data-position="2" 2286 class="product-single__thumbnail" 2287 > 2288 <img 2289 class="lazyload w-100" 2290 src="https://ik.imagekit.io/9ng7ozhvc/kaskus14.png" 2291 alt="KASKUSTOTO : Alternatif Tercepat Anti Nawala Anti Lelet " 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://ik.imagekit.io/9ng7ozhvc/kaskus14.png" 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://ik.imagekit.io/9ng7ozhvc/kaskus14.png" 2312 alt="KASKUSTOTO : Alternatif Tercepat Anti Nawala Anti Lelet " 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://ik.imagekit.io/9ng7ozhvc/kaskus14.png" 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://ik.imagekit.io/9ng7ozhvc/kaskus14.png" 2333 alt="KASKUSTOTO : Alternatif Tercepat Anti Nawala Anti Lelet " 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://ik.imagekit.io/9ng7ozhvc/kaskus14.png"> 2359 <img 2360 src="https://ik.imagekit.io/9ng7ozhvc/kaskus14.png" 2361 alt="KASKUSTOTO : Alternatif Tercepat Anti Nawala Anti Lelet " 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://ik.imagekit.io/9ng7ozhvc/kaskus14.png" 2391 data-src="https://ik.imagekit.io/9ng7ozhvc/kaskus14.png" 2392 alt="KASKUSTOTO : Alternatif Tercepat Anti Nawala Anti Lelet " 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://ik.imagekit.io/9ng7ozhvc/kaskus14.png" 2405 data-src="https://ik.imagekit.io/9ng7ozhvc/kaskus14.png" 2406 alt="KASKUSTOTO : Alternatif Tercepat Anti Nawala Anti Lelet " 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://ik.imagekit.io/9ng7ozhvc/kaskus14.png" 2419 data-src="https://ik.imagekit.io/9ng7ozhvc/kaskus14.png" 2420 alt="KASKUSTOTO : Alternatif Tercepat Anti Nawala Anti Lelet " 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://ik.imagekit.io/9ng7ozhvc/kaskus14.png" 2433 data-src="https://ik.imagekit.io/9ng7ozhvc/kaskus14.png" 2434 alt="KASKUSTOTO : Alternatif Tercepat Anti Nawala Anti Lelet " 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://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" 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://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" width="7" height="10" viewB
2445ox="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>KASKUSTOTO</strong> menjadi pilihan utama untuk memantau hasil togel online resmi secara praktis, nyaman, dan mudah di akses kapan pun. Melalui sistem live result yang akurat dan cepat milik KASKUSTOTO, pemain dapat memantau informasi angka terbaru dengan lebih mudah, cepat, dan praktis melalui berbagai perangkat. Tampilan fitur KASKUSTOTO sangat sederhana dan stabil yang membuat akses menjadi nyaman tanpa ada kendala saat membuka halaman result kapan saja. 2630 </li> 2631 <br> 2632 <li> 2633 Sebagai platform resmi dan terpercaya, KASKUSTOTO menghadirkan informasi seputaran angka result dengan pembaruan stabil dan tampilan fitur yang sederhana. KASKUSTOTO juga membantu para pemain untuk melihat result yang akurat tanpa perlu pindah ke halaman lain. Selain itu, navigasi yang sederhana dan responsif membuat pemain bermain secara nyaman dan aman dan mengikuti update terbaru setiap hari dengan akses yang cepat dan efisien. 2634 </li> 2635 </ul> 2636 </div> 2637 </div> 2638 2639 2640 2641 2642 2643 <style> 2644 .c-pdp-product-info__service--active { 2645 font-size: 12px; 2646 padding-left: 10px; 2647 text-align: left; 2648 max-width: 550px; 2649 margin: auto; 2650 color: #fff; 2651 } 2652 .c-pdp-product-info__service--active li { 2653 list-style: disc; 2654 } 2655 .c-pdp-product-info { 2656 background-color: #000000; 2657 padding: 12px; 2658 margin: 0; 2659 } 2660 .freeship em { 2661 font-style: italic; 2662 font-size: 12px !important; 2663 } 2664 2665 2666 </style> 2667 2668
2668<script> 2669 $(document).ready(function(){ 2670 if ( $(".c-pdp-product-info__service li").length == 1 ) { 2671 $(".c-pdp-product-info__service").addClass("no-bullet"); 2672 $(".c-pdp-product-info__service li").addClass("no-bullets"); 2673 } 2674 }); 2675 </script>
2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 </div> 2689 <div id="product-meta" class="col-lg-5 p-0"> 2690 <div class="product-meta"> 2691 <style> 2692 .product-meta--review {margin-top:10px} 2693 .freeship * {font-size: 14px !important;font-style: normal;} 2694 </style> 2695 <h1 itemprop="name" class="mb-2" style="color: rgb(0, 191, 255); font-weight: bold;">KASKUSTOTO : Alternatif Tercepat Anti Nawala Anti Lelet </h1> 2696 2697 <div itemprop="offers" itemscope itemtype="http://schema.org/Offer"> 2698 <meta itemprop="priceCurrency" content="IDR"> 2699 2700 <link itemprop="availability" href="https://schema.org/InStock"> 2701
2701<script 2702 type="text/javascript" 2703 src="//platform-api.sharethis.com/js/sharethis.js#property=5acdc0aa3ef3c0001396fd50&product=custom-share-buttons" 2704 async="async" 2705 ></script>
2705 2706 2707 2708 2709 2710 <span class="visually-hidden">Translation missing: en.products.general.regular_price</span> 2711 2712 <span class="visually-hidden">Translation missing: en.products.general.sale_price</span> 2713 2714 <div class="row no-gutters mb-3"> 2715 <span 2716 id="ProductPrice" 2717 class="h2 ProductPrice" 2718 itemprop="price" 2719 content="835000" style="color: #ffffff;" 2720 > 2721 Rp 10,000 2722 </span> 2723 <div class="discount-product-detail"> 2724 <p id="ComparePrice" class="ComparePrice mt-2 mt-lg-0"> 2725 Rp 20,000 2726 </p> 2727 <span class=" tag-discount"> 2728 2729 2730 <span id="newDiscount" class="product-tag persentase-discount hide"> 2731 (90%) 2732 </span><br> 2733 2734 </span> 2735 </div> 2736 </div> 2737 2738 <div class="row no-gutters meta-sds"> 2739 <div class="col-12 mb-2 mb-lg-0 stock-info"> 2740 2741 2742 <span 2743 id="ProductStock-Product" 2744 class="product-single__stock mb-2 hide" 2745 > 2746 2747 2748 2749 2750 Barang dikirim pada 2751 2752 2753 2754 </span> 2755 2756 <style> 2757 .short-desc-desktop { 2758 margin-bottom: 2rem; 2759 color: white; 2760 } 2761 .short-desc ul li:nth-child(n + 4) { 2762 display: none; 2763 } 2764 .short-desc ul li.showList:nth-child(n + 4) { 2765 display: list-item; 2766 } 2767 label.more { 2768 display: none; 2769 } 2770 label.more.showMe { 2771 display: block; 2772 font-size: 12px; 2773 text-transform: uppercase; 2774 font-weight: 700; 2775 cursor: pointer; 2776 } 2777 </style> 2778 2779 <div class="short-desc-desktop d-none d-lg-block"> 2780 <div class="short-desc"> 2781 2782 <p>KASKUSTOTO adalah situs resmi yang memiliki fitur akses live result togel dengan cepat dan terpercaya dan fitur canggih yang kami miliki.</p> 2783 </div> 2784 <label class="more">Show More â</label> 2785 </div><br> 2786 2787 2788
2788<script> 2789 var liCount; 2790 $(document).ready(function () { 2791 $(".short-desc ul").each(function() { 2792 liCount = $(this).children("li").length; 2793 if (liCount > 3) { 2794 $(this).parent(".short-desc").next(".more").addClass("showMe"); 2795 } 2796 }); 2797 2798 $(".more").click(function () { 2799 //$(".short-desc").find("li").addClass("showList"); 2800 // $(this).hide(); 2801 $("#product-desc").find("ul").show() 2802 $('html, body').animate({ 2803 scrollTop: $("#product-desc").offset().top - 250 2804 }, 2000); 2805 $("#product-desc").css("height","auto"); 2806 $("#more_content").remove(); 2807 $(".product-spec").append("<div id='less_content' class='readmore'><span class='less_content'>Less</span></div>") 2808 }); 2809 }); 2810 </script>
2810 2811 2812 2813 </div> 2814 </div> 2815 2816 <div id="purchaseProduct"> 2817 2818 2819 2820 2821 <style> 2822 .variant-metafield { 2823 display: block!important; 2824 width: 1px; 2825 padding: 0; 2826 border-color: #fff; 2827 } 2828 .select2-results__option[aria-disabled] { 2829 display: none; 2830 } 2831 2832 .towel-bordir { 2833 width: 100%; 2834 display: flex; 2835 align-items: center; 2836 justify-content: space-around; 2837 } 2838 </style> 2839 2840 2841 2842 2843
2843<script> 2844 2845 2846 </script>
2846 2847 2848 2849 2850 2851 2852 2853 <select 2854 name="id[]" 2855 id="productSelect" 2856 class="product-single__variants ignore hide hide" 2857 > 2858 2859 2860 2861 <option 2862 2863 selected="selected" 2864 2865 data-sku="OBVSTF1086" 2866 value="44083045826775" 2867 > 2868 Default Title 2869 </option> 2870 2871 2872 2873 </select> 2874 2875
2875<script src="//outerbloom.com/cdn/shop/t/138/assets/jquery.magnific-popup.min.js?v=184369421263510081681752652422" type="text/javascript"></script>
2875 2876 2877
2877<script> 2878 $('.size-chart-open-popup').magnificPopup({ 2879 type:'inline', 2880 midClick: true 2881 }); 2882 </script>
2882 2883 2884 2885 2886 2887 <div class="upload-image-preview"> 2888 2889 2890 2891 2892 2893 <style> 2894 .file-dnd * { 2895 margin: 0; 2896 padding: 0; 2897 box-sizing: border-box; 2898 } 2899 .file-dnd { 2900 width: 100%; 2901 height: 250px; 2902 border: 1px solid #ddd; 2903 border-radius: 10px; 2904 padding: 15px; 2905 display: flex; 2906 flex-direction: column; 2907 gap: 10px; 2908 /* box-shadow: 0px 2px 10px 2px rgba(0,0,0,0.05); */ 2909 margin: auto; 2910 } 2911 .file-dnd input { 2912 display: none; 2913 } 2914 .file-dnd .before-upload { 2915 border: 1px dashed #888; 2916 flex: 1; 2917 border-radius: 5px; 2918 display: flex; 2919 justify-content: center; 2920 align-items: center; 2921 text-align: center; 2922 cursor: pointer; 2923 } 2924 .file-dnd .before-upload > div { 2925 display: flex; 2926 flex-direction: column; 2927 align-items: center; 2928 gap: 8px; 2929 } 2930 .file-dnd .before-upload > div h4 { 2931 width: 150px; 2932 } 2933 .file-dnd .before-upload > div p { 2934 font-size: 12px !important; 2935 color: #555; 2936 } 2937 .file-dnd.active .before-upload { 2938 border: 1px solid #5750d9; 2939 background-color: #f5f5ff; 2940 } 2941 .file-dnd .after-upload { 2942 position: relative; 2943 display: none; 2944 } 2945 .file-dnd .after-upload img { 2946 width: 100%; 2947 border-radius: 5px; 2948 max-height: 180px; 2949 object-fit: contain; 2950 display: block; 2951 } 2952 .file-dnd .after-upload .clear-btn { 2953 position: absolute; 2954 top: 10px; 2955 right: 10px; 2956 background: rgba(255, 255, 255, 0.5); 2957 width: 15px; 2958 height: 15px; 2959 text-align: center; 2960 line-height: 15px; 2961 border-radius: 50%; 2962 color: #fff; 2963 cursor: pointer; 2964 font-size: 14px; 2965 } 2966 </style> 2967 2968 <div 2969 class="file-dnd mb-3" 2970 2971 style="display: none" 2972 2973 > 2974 <label for="upload-photo">Upload your Photo:</label> 2975 <input type="file" id="upload-photo" accept="image/*"> 2976 <input type="hidden" data-properties="Photo"> 2977 <div class="before-upload"> 2978 <div> 2979 <svg id="surface1" xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" width="33.053" height="41.719" viewBox="0 0 33.053 41.719"> 2980 <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> 2981 <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> 2982 <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> 2983 </svg> 2984 2985 <h4>Drag & Drop Photo file or Browse</h4> 2986 <p>Supports: JPEG, PNG, GIF, TIFF</p> 2987 </div> 2988 </div> 2989 <div class="after-upload"> 2990 <div class="clear-btn">×</div> 2991 <img src="" width="" height=""> 2992 </div> 2993 </div> 2994
2994<script> 2995 function applyDndFile(el) { 2996 const parent = document.querySelector(".file-dnd") 2997 const beforeUploadEl = el.querySelector(".before-upload") 2998 const afterUploadEl = el.querySelector(".after-upload") 2999 const inputFile = el.querySelector("input[type=file]") 3000 const imagePreview = el.querySelector(".after-upload img") 3001 const clearBtn = el.querySelector(".after-upload .clear-btn") 3002 const inputProps = parent.querySelector("[data-properties]"); 3003 3004 async function upload(name, uri, type) { 3005 try { 3006 const filename = name.split('.')[0] 3007 let formData = new FormData(); 3008 formData.append("file", uri); 3009 const response = await fetch(`${host}/upload?name=${filename}&dir=gift&type=${type}`, { 3010 method: "POST", 3011 body: formData 3012 }) 3013 if(response) { 3014 const res = await response.json() 3015 return res 3016 } 3017 } catch(err){ 3018 console.log(err) 3019 } 3020 } 3021 3022 function showImagePreview(img) { 3023 if(img){ 3024 const blobUrl = URL.createObjectURL(img) 3025 imagePreview.src = blobUrl 3026 afterUploadEl.style.display = "block" 3027 beforeUploadEl.style.display = "none" 3028 } 3029 } 3030 3031 beforeUploadEl.addEventListener("click", (e) => { 3032 e.preventDefault() 3033 inputFile.click() 3034 }) 3035 3036 inputFile.addEventListener("change", async (e) => { 3037 e.preventDefault() 3038 showImagePreview(e.target.files[0]) 3039 var uploadData = await upload(e.target.files[0].name, e.target.files[0], e.target.files[0].type) 3040 inputProps.value = uploadData?.url 3041 }) 3042 3043 clearBtn.addEventListener("click", (e) => { 3044 afterUploadEl.style.display = "none" 3045 beforeUploadEl.style.display = "flex" 3046 inputProps.value = "" 3047 }) 3048 3049 beforeUploadEl.addEventListener("dragover", (e) => { 3050 e.preventDefault() 3051 el.classList.add("active") 3052 }) 3053 3054 beforeUploadEl.addEventListener("dragleave", (e) => { 3055 e.preventDefault() 3056 el.classList.remove("active") 3057 }) 3058 3059 beforeUploadEl.addEventListener("drop", async (e) => { 3060 e.preventDefault() 3061 el.classList.remove("active") 3062 showImagePreview(e.dataTransfer.files[0]) 3063 var uploadData = await upload(e.dataTransfer.files[0].name, e.dataTransfer.files[0], e.dataTransfer.files[0].type) 3064 console.log(uploadData) 3065 inputProps.value = uploadData?.url 3066 }) 3067 } 3068 3069 applyDndFile(document.querySelector(".file-dnd")) 3070 3071 $(document).ready(function(){ 3072 $(".variant-swatch").change(function(){ 3073 const v = $(this).val().toLowerCase() 3074 const list = ["photo", "custom one side", "custom two side", "small", "big"] 3075 if(list.some(item => v.includes(item))) return $(".file-dnd").show() 3076 $(".file-dnd").hide() 3077 $(".file-dnd").find("[data-properties]").val("") 3078 $(".after-upload").hide() 3079 $(".before-upload").css("display", "flex") 3080 }) 3081 }) 3082 </script>
3082 3083 3084 </div> 3085 3086 3087 <div class="delivery-city mb-4"> 3088 <a href="https://amp13-2.vercel.app/"> 3089 <center><img src="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" alt="logo-daftar" style="width: 260px; margin-top: -20px;"></center></a><br> 3090 <h4 class="fw-600 text-uppercase mb-15" style="color: rgb(0, 191, 255);">AKSES RESMI KASKUSTOTO</h4> 3091 <div class="row justify-content-between m-0"> 3092 <select id="cities" class="form-control select-search" required> 3093 <option value="">Main Lebih Praktis hanya di KASKUSTOTO, Situs Game Togel Online Dan Slot Resmi Dengan Sistem Modern</option> 3094 </select> 3095 </div> 3096 </div> 3097 3098 <style> 3099 @media (max-width: 768px) { 3100 .select2-search__field { 3101 pointer-events: none !important; 3102 } 3103 3104 .select2-search { 3105 display: none !important; 3106 } 3107 } 3108 </style> 3109 3110
3110<script> 3111 $(document).ready(function() { 3112 // Check if mobile 3113 if (window.innerWidth <= 768) { 3114 // When cities select2 opens on mobile, remove focus from search 3115 $('#cities').on('select2:open', function() { 3116 setTimeout(function() { 3117 $('.select2-search__field').blur(); 3118 $('.select2-search__field').prop('readonly', true); 3119 }, 100); 3120 }); 3121 } 3122 }); 3123 </script>
3123 3124 3125 <style> 3126 .icon-img-footer { 3127 width: 80px; 3128 padding: 0px 5px; 3129 } 3130 @media (min-width: 768px) { 3131 .icon-img-footer { 3132 width: 120px; 3133 } 3134 } 3135 @media (min-width: 992px) { 3136 .icon-img-footer { 3137 width: 120px; 3138 } 3139 } 3140 3141 3142 </style> 3143 <div id="row-delivery-date" class="row m-0 mb-3"> 3144 <h4 class="fw-600 text-uppercase col-12 p-0 mb-15" style="color: rgb(0, 191, 255);">Nikmati bermain Togel Online Resmi Dan Slot Online Terlengkap Di KASKUSTOTO</h4> 3145 <div id="deliveryDate" class="m-0"></div> 3146 <div id="deliveryDateFull"> 3147 <div class=""> 3148 <input 3149 type="text" 3150 id="full-date" 3151 class="date-full calendarbutton btn steps-btn btn-date-time mb-0" 3152 value="Full Calendar" 3153 > 3154 <label for="full-date"><svg version="1.1" xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" width="32" height="32" viewBox="0 0 32 32"> 3155 <title>icon-arrow-right</title> 3156 <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> 3157 </svg></label> 3158 </div> 3159 <button class="btnChangeDeliveryDate hide">Change Delivery Date</button> 3160 </div> 3161 <div class="form-group p-0"> 3162 <input type="text" id="propDeliveryDate" required class="hide"> 3163 </div> 3164 </div> 3165 3166 3167 <div id="row-delivery-time" class="row m-0 mb-3"> 3168 <h4 class="text-center fw-600 text-uppercase col-12 mb-15"> 3169 KASKUSTOTO 3170 </h4> 3171 <div id="deliveryTime" class="d-flex w-100 m-0"></div> 3172 <div class="form-group p-0"> 3173 <input type="text" id="propDeliveryTime" class="hide" required> 3174 </div> 3175 </div> 3176 3177 3178 3179 3180 3181 <div id="personalizeBtn"> 3182 3183 3184 3185 3186 <button 3187 class="btn text-uppercase w-100 fw-400" 3188 3189 3190 3191 > 3192 3193 customize your flower board 3194 3195 </button> 3196 <div class="button-share-wishlist d-flex justify-content-around mt-3"> 3197 <div class="button-share text-center"> 3198 <p id="shareButton" class="d-flex gap-2"><span>KASKUSTOTO</span><svg xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" width="15" height="13" viewBox="0 0 15 13" fill="none"> 3199 <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"/> 3200 </svg> 3201 </p> 3202 </div> 3203 <div class="button-wishlist text-center"> 3204 <p id="wishButton" class="d-flex gap-2 wishlist-toggle" data-product-handle="blossom-shine"><span>Wishlist</span><svg xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" width="16" height="15" viewBox="0 0 16 15" fill="none"> 3205 <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"/> 3206 </svg> 3207 <!-- 3208 <svg xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" width="34" height="30" viewBox="0 0 34 30" fill="none"> 3209 <path d="M32.8333 9.23082C32.8333 4.51916 29.0142 0.699158 24.3025 0.699158C21.2 0.699158
320918.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"/> 3210 </svg> 3211 --> 3212 </p> 3213 </div> 3214 </div> 3215 </div> 3216 </div> 3217 <div class="purchasePopup purchasePopupSpotify" style="display: none;"> 3218 <div class="purchaseArea"> 3219 <div class="sectionPurchase sectionPurchaseSpotify"> 3220 <div class="wrapperPurchase"> 3221 <div class="headerPurchase"> 3222 <h3>personalize spotify photo print</h3> 3223 <a class="close-purchase-popup"> 3224 <svg xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" width="18" height="18" viewBox="0 0 18 18" fill="none"> 3225 <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> 3226 </svg> 3227 </a> 3228 </div> 3229 <div class="contentPurchase"> 3230 <div class="spotifyAddons"></div> 3231 </div> 3232 3233 <div class="purchase-button btn-addon row m-0" style="display: none;"> 3234 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 3235 <button class="back-purchase-button back-addon text-uppercase"> 3236 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672"> 3237 <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> 3238 </svg> 3239 <span>Back</span> 3240 </button> 3241 </div> 3242 <div class="col-12 col-lg-10 text-right" style="display: flex;justify-content: end;gap: 20px;"> 3243 <button class="btn next-purchase-button next-addon text-uppercase"> 3244 <span>continue without add-ons</span> 3245 </button> 3246 </div> 3247 </div> 3248 </div> 3249 </div> 3250 </div> 3251 </div> 3252 3253 <style> 3254 #PBarNextFrameWrapper { 3255 display: none; 3256 } 3257 #backgroundPopup { 3258 display: none; 3259 position: fixed; 3260 _position: absolute; 3261 height: 100%; 3262 width: 100%; 3263 top: 0; 3264 left: 0; 3265 background: rgb(117 117 117 / 24%); 3266 z-index: 1; 3267 } 3268 .sectionPurchase { 3269 height: 100%; 3270 position: relative; 3271 max-width: 1344px; 3272 background-color: #fff; 3273 padding: 0; 3274 overflow: hidden; /* Changed from auto to hidden */ 3275 display: flex; 3276 flex-direction: column; 3277 } 3278 .sectionPurchase.purchaseAddonSpotify { 3279 max-width: 1070px!important; 3280 max-height: 765px!important; 3281 } 3282 .sectionPurchaseBoard { 3283 max-width: 872px!important; 3284 max-height: 821px!important; 3285 } 3286 .purchaseAddonSpotify .btn-action { 3287 position: absolute; 3288 bottom: 0; 3289 left: 0; 3290 width: 100%; 3291 display: flex; 3292 gap: 10px; 3293 } 3294 .wrapperPurchase { 3295 position: relative; 3296 height: 100%; 3297 display: flex; 3298 flex-direction: column; 3299 } 3300 3301 /* New styles for scrollable content and sticky button */ 3302 .purchase-content { 3303 flex: 1; 3304 overflow-y: auto; 3305 overflow-x: hidden; 3306 padding: 20px; 3307 } 3308 3309 .purchase-button-wrapper { 3310 position: sticky; 3311 bottom: 0; 3312 background-color: #fff; 3313 border-top: 1px solid #e0e0e0; 3314 padding: 15px 0; 3315 margin-top: auto; 3316 z-index: 10; 3317 } 3318 3319 .purchasePopup { 3320 display: none; 3321 position: fixed; 3322 background: rgb(117 117 117 / 24%); 3323 z-index: 999; 3324 padding: 40px; 3325 font-size: 13px; 3326 top: 0; 3327 left: 0; 3328 width: 100%; 3329 height: 100%; 3330 } 3331 .popupPurchaseClose{ 3332 font-size:14px; 3333 line-height:14px; 3334 right:45px; 3335 top:45px; 3336 position:absolute; 3337 color:#6fa5fd; 3338 font-weight:700; 3339 display:block; 3340 cursor: pointer; 3341 } 3342 3343 .headerPurchase { 3344 margin-bottom: 30px; 3345 display: flex; 3346 justify-content: space-between; 3347 } 3348 3349 .headerPurchase h3 { 3350 font-size: 16px; 3351 text-transform: uppercase; 3352 } 3353 3354 .sectionPurchaseBoard .headerPurchase { 3355 margin-bottom: 15px; 3356 } 3357 3358 .sectionPurchaseBoard .formAddressPurchase { 3359 padding-top: 0;
3360 } 3361 3362 .purchaseArea { 3363 position: relative; 3364 height: 100%; 3365 } 3366 3367 .purchaseArea h4 { 3368 width: 100%; 3369 font-size: 12px; 3370 font-weight: 600; 3371 margin-bottom: 10px; 3372 text-transform: uppercase; 3373 } 3374 3375 .menuPurchase { 3376 margin-bottom: 30px; 3377 } 3378 3379 .menuPurchase ul { 3380 list-style-type: none; 3381 margin: 0; 3382 } 3383 3384 .menuPurchase ul li { 3385 display: inline-block; 3386 border: 1px solid #ffffff; 3387 padding: 5px 20px; 3388 margin-right: 5px; 3389 margin-bottom: 10px; 3390 font-size: 12px; 3391 font-weight: 400; 3392 } 3393 3394 .menuPurchase ul li:hover, .menuPurchase ul li.selected { 3395 background-color: #ffffff; 3396 color: #ffffff; 3397 } 3398 3399 .contentPurchase h5 { 3400 font-size: 12px; 3401 margin-bottom: 10px; 3402 font-weight: 400; 3403 overflow: hidden; 3404 } 3405 3406 /* Card */ 3407 3408 #itemCards { 3409 max-height: 430px; 3410 overflow: auto; 3411 } 3412 3413 .item-cards { 3414 width: 100%; 3415 } 3416 .item-card.selected { 3417 border: 1px solid #ffffff; 3418 } 3419 .item-card:hover { 3420 border: 1px solid #C4C4C4; 3421 } 3422 .item-cards .item-card { 3423 position: relative; 3424 width: calc(33% - 10px); 3425 max-width: calc(33% - 10px); 3426 flex: 0 0 calc(33% - 10px); 3427 margin-bottom: 20px; 3428 } 3429 .item-cards .item-card label, 3430 .item-addons .item-addon label { 3431 position: absolute; 3432 left: 0; 3433 width: 100%; 3434 height: 100%; 3435 } 3436 .item-cards .item-card .card-image img, 3437 .item-addons .item-addon .card-image img { 3438 display: block; 3439 width: 100%; 3440 } 3441 .item-card .card-meta, 3442 .item-addon .card-meta { 3443 padding: 10px 5px 5px; 3444 } 3445 .item-card.selected .card-meta, 3446 .item-addon.selected .card-meta, 3447 .item-card.selected .card-qty { 3448 background-color: #ffffff; 3449 color: #fff; 3450 visibility: visible!important; 3451 } 3452 .item-card:hover .card-meta, 3453 .item-addon:hover .card-meta, 3454 .item-card:hover .card-qty { 3455 background-color: #C4C4C4; 3456 color: #fff; 3457 visibility: visible!important; 3458 } 3459 .item-cards .item-card p, 3460 .item-addons .item-addon p { 3461 font-size: 12px !important; 3462 margin: 0; 3463 font-weight: 600; 3464 } 3465 .item-card .card-meta input, 3466 .item-addon .card-meta input { 3467 display: none; 3468 } 3469 .item-cards .item-card h5, 3470 .item-addons .item-addon h5 { 3471 text-transform: uppercase; 3472 max-height: 35px; 3473 } 3474 3475 @media (max-width: 768px) { 3476 .item-cards .item-card { 3477 width: calc(50% - 10px); 3478 max-width: calc(50% - 10px); 3479 flex: 0 0 calc(50% - 10px); 3480 margin-bottom: 0; 3481 } 3482 } 3483 3484 .card-qty { 3485 display: flex; 3486 padding: 5px; 3487 visibility: hidden; 3488 background-color: #fff !important; 3489 z-index: 999; 3490 } 3491 .card-qty a { 3492 border-width: 1px; 3493 width: 30%; 3494 cursor: pointer; 3495 text-align: center; 3496 align-self: center; 3497 height: 28px; 3498 display: block; 3499 position: relative; 3500 } 3501 .card-qty a svg { 3502 position: absolute; 3503 top: 50%; 3504 left: 50%; 3505 transform: translate(-50%, -50%); 3506 text-align: center; 3507 } 3508 input.btn-qty { 3509 border-width: 0px; 3510 border-radius: 0; 3511 background-color: #fff; 3512 -webkit-appearance: none; 3513 box-shadow: none !important; 3514 -webkit-box-shadow: none !important; 3515 -moz-box-shadow: none!important; 3516 width: 40%; 3517 border-left: 1px solid #c4c4c4; 3518 border-right: 1px solid #c4c4c4; 3519 padding: 0; 3520 } 3521 3522 .sectionPurchaseBoard #itemAddons .item-card { 3523 width: calc(20% - 15px); 3524 max-width: calc(20% - 15px); 3525 flex: 0 0 calc(20% - 15px); 3526 } 3527 3528 .purchase-button { 3529 width: 100%; 3530 padding: 0; /* Reset padding as it's now handled by wrapper */ 3531 margin: 0; 3532 } 3533 3534 .sectionPurchaseBoard .purchase-button { 3535 margin-top: 0 !important; /* Reset margin */ 3536 } 3537 3538 .back-purchase-button, .back-spotify { 3539 width: 139px; 3540 border: 1px solid; 3541 height: 43px; 3542 } 3543 .purchase-button .btn { 3544 width: 297px; 3545 height: 43px; 3546 background-color: #ffffff; 3547 color: #ffffff; 3548 } 3549 .purchase-button .btn[disabled] { 3550 background-color: #EEEEEE; 3551 } 3552 .back-purchase-button svg, .back-spotify svg { 3553 align-self: center; 3554 vertical-align: middle; 3555 margin-right: 10px; 3556 } 3557 3558 #purchaseProduct .row .error { 3559 font-size: 12px !important; 3560 color: orange; 3561 margin-top: 5px; 3562 } 3563 3564 .reviewCardPurchase { 3565 max-width: 448px; 3566 float: right; 3567 } 3568 3569 .addonsPurchase .addon-item {display: flex;justify-content: space-between;} 3570 .addon-item * {align-self: center;font-size: 12px;} 3571 .addon-itm-title {width: 360px;} 3572 .addon-itm-line-price {color: #757575;width: 80px;justify-content: space-between;display: flex;} 3573 3574 .propsAddonSpotify p { 3575 margin: 0; 3576 display: flex; 3577 font-size: 12px !important; 3578 margin-bottom: 5px; 3579 } 3580 .propsAddonSpotify p span:first-child { 3581 text-transform: uppercase; 3582 font-weight: 600; 3583 -ms-flex: 0 0 150px; 3584 flex: 0 0 150px; 3585 max-width: 150px; 3586 } 3587 3588 .addonsPurchase .addons { 3589 max-height: 250px; 3590 overflow: auto; 3591 } 3592 3593 .btn .loading:after { 3594 content: ""; 3595 display: inline-block;
3596 width: 20px; 3597 height: 20px; 3598 padding: 3px; 3599 aspect-ratio: 1; 3600 border-radius: 50%; 3601 background: #FFFFFF; 3602 --_m: conic-gradient(#0000 10%, #ffffff), linear-gradient(#ffffff 0 0) content-box; 3603 -webkit-mask: var(--_m); 3604 mask: var(--_m); 3605 -webkit-mask-composite: source-out; 3606 mask-composite: subtract; 3607 animation: l3 1s infinite linear; 3608 margin: auto; 3609 vertical-align: middle; 3610 margin-left: 10px; 3611 } 3612 3613 #qrcode img, #qrcode canvas { 3614 width: 50px; 3615 position: absolute; 3616 top: 12px; 3617 left: 16px; 3618 } 3619 3620 .t-preview { 3621 position: absolute; 3622 top: 17px; 3623 left: 75px; 3624 } 3625 .t-preview p { 3626 margin: 0; 3627 font-size: 12px !important; 3628 } 3629 .t-preview .h3 { 3630 font-size: 16px !important; 3631 margin-bottom: 5px; 3632 font-weight: 600; 3633 } 3634 .scanCard { 3635 width: 100%; 3636 border: 1px solid; 3637 height: 76px; 3638 background-color: #fff; 3639 } 3640 .scanCard > div > img { 3641 position: absolute; 3642 right: 0; 3643 width: 55px; 3644 } 3645 3646 @keyframes l3 { 3647 100% { 3648 transform: rotate(1turn); 3649 } 3650 } 3651 3652 @media (min-width: 991px) { 3653 .sectionPurchase { 3654 height: 100%; 3655 position: relative; 3656 max-width: 1344px; 3657 background-color: #fff; 3658 top: 50%; 3659 left: 50%; 3660 transform: translate(-50%, -50%); 3661 } 3662 .headerPurchase h3 { 3663 font-size: 20px; 3664 } 3665 .purchaseArea h4 { 3666 font-size: 16px; 3667 } 3668 3669 .menuPurchase ul li { 3670 font-size: 16px; 3671 } 3672 3673 .contentPurchase { 3674 margin-bottom: 30px; 3675 } 3676 .contentPurchase h5 { 3677 font-size: 16px; 3678 } 3679 3680 .item-cards .item-card p, 3681 .item-addons .item-addon p { 3682 font-size: 16px !important; 3683 } 3684 3685 .cards { 3686 float: right; 3687 width: 400px; 3688 } 3689 3690 .item-cards .item-card { 3691 width: calc(25% - 30px); 3692 max-width: calc(25% - 30px); 3693 flex: 0 0 calc(25% - 30px); 3694 } 3695 3696 #itemAddons .item-card { 3697 position: relative; 3698 width: calc(16% - 40px); 3699 max-width: calc(16% - 40px); 3700 flex: 0 0 calc(16% - 40px); 3701 } 3702 3703 .purchase-button-wrapper { 3704 padding: 10px 20px; 3705 } 3706 } 3707 3708 @media (max-width: 1200px) { 3709 .item-cards .item-card { 3710 width: calc(33% - 30px); 3711 max-width: calc(33% - 30px); 3712 flex: 0 0 calc(33% - 30px); 3713 } 3714 } 3715 3716 @media (max-width: 992px) { 3717 .purchasePopup { 3718 padding: 0; 3719 } 3720 .item-cards .item-card h5, 3721 .item-addons .item-addon h5 { 3722 max-height: 30px; 3723 } 3724 3725 .back-purchase-button, .back-spotify, .next-purchase-button { 3726 width: 100%; 3727 } 3728 .addon-itm-title { 3729 width: 300px; 3730 } 3731 .addon-itm-line-price { 3732 margin-right: 10px; 3733 } 3734 .t-preview { 3735 top: 10px; 3736 } 3737 3738 .card-qty a { 3739 height: 15px; 3740 } 3741 3742 .purchase-button-wrapper { 3743 padding: 15px; 3744 } 3745 } 3746 3747 @media (max-width: 576px) { 3748 .purchase-button .btn { 3749 width: 100%!important; 3750 } 3751 .purchase-button > .col-12 { 3752 padding-left: 0; 3753 padding-right: 0; 3754 } 3755 } 3756 </style> 3757 3758 3759 <div class="purchasePopup"> 3760 <div class="purchaseArea"> 3761 3762 <div class="sectionPurchase purchasePersonalize sectionPurchaseBoard"> 3763 <div class="wrapperPurchase"> 3764 <div class="purchase-content"> 3765 <div class="headerPurchase"> 3766 <h3 class="text-uppercase"> 3767 3768 customize your flower board 3769 3770 </h3> 3771 <a class="close-purchase-popup"> 3772 <svg xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" width="18" height="18" viewBox="0 0 18 18" fill="none"> 3773 <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"/> 3774 </svg> 3775 </a> 3776 3777 </div> 3778 <div class="contentPurchase"> 3779 <div class="row"> 3780 3781 <div class="col-12"> 3782 3783 3784 <style> 3785 3786 3787 .customize-papan .group-field-1 .input-field {float: left;width: 100%;height: 317px;background-color: #E5E5EA;} 3788 .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;} 3789 3790 .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;} 3791 .customize-papan .btn-upload-papan svg {width: 21px;height: 25px;display: block;align-self: center;margin: auto;margin-bottom: 12px;} 3792 .svgLogoPapan {position: absolute;width: 100%;top: 50%;left: 50%;transform: translate(-50%, -50%);text-align: center;} 3793 .svgLogoPapan p {color: #8E8E93; margin: 0;} 3794 .svgLogoPapan p span {font-size: 12px;color: #FF0E00;} 3795 .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;} 3796 #suggest-messages {position: absolute;bottom: 5px;left: 5px;} 3797 #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;} 3798 .case-occasion .nice-select:after {border-bottom: 2px solid #333;border-right: 2px solid #333;right: 20px;top: 42%;width: 10px;height: 10px;} 3799 .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;} 3800 .customize-papan .input-field .limit {position: absolute;right: 15px;top: 0;color: #757575;} 3801 3802 @media (min-width: 991px) { 3803 .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);} 3804 .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);} 3805 } 3806 </style> 3807 3808 <input type="hidden" data-properties="penerima" value="-"> 3809 <div class="customize-papan"> 3810 <div class="container"> 3811 <div class="field-papan group-field-1 form-group"> 3812 <div class="input-field">
3813 <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. 3814 (Ex: Selamat Menempuh Hidup Baru A & B)." maxlength="100"></textarea> 3815 <p class="limit">0/100</p> 3816 <div id="suggest-messages"> 3817 <a id="show_note_papan1" href="#"> 3818 <div class="suggest-message" id="note_btn_div1"> 3819 <span class="promo-code-link" id="note_btn_papan1">Contoh Kata WEDDING</span> 3820 </div> 3821 </a> 3822 <a id="show_note_papan2" href="#"> 3823 <div class="suggest-message" id="note_btn_div2"> 3824 <span class="promo-code-link" id="note_btn_papan2">Contoh Kata SELAMAT</span> 3825 </div> 3826 </a> 3827 <a id="show_note_papan3" href="#"> 3828 <div class="suggest-message" id="note_btn_div3"> 3829 <span class="promo-code-link" id="note_btn_papan3">Contoh Kata DUKA CITA</span> 3830 </div> 3831 </a> 3832 </div> 3833 </div> 3834 </div> 3835 <div class="hide"> 3836 <input type="hidden" value="" id="note_id_papan1" name="note_id_papan1" style="top: 0px;"> 3837 <input type="hidden" value="" id="note_btn_id_papan1" name="note_btn_id_papan1"> 3838 </div> 3839 <div class="hide"> 3840 <input type="hidden" value="" id="note_id_papan2" name="note_id_papan2" style="top: 0px;"> 3841 <input type="hidden" value="" id="note_btn_id_papan2" name="note_btn_id_papan2"> 3842 </div> 3843 <div class="hide"> 3844 <input type="hidden" value="" id="note_id_papan3" name="note_id_papan3" style="top: 0px;"> 3845 <input type="hidden" value="" id="note_btn_id_papan3" name="note_btn_id_papan3"> 3846 </div> 3847 <div class="field-papan group-field-2 form-group"> 3848 3849 <label for="logoPapan" onclick="" class="input-field field-logo"> 3850 3851 3852 3853 <div class="btn-upload-papan w-100"> 3854 <?xml version="1.0" encoding="UTF-8"?> 3855 <img src="" style="display:none"> 3856 <div class="svgLogoPapan"> 3857 <svg xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" width="22" height="26" viewBox="0 0 22 26" fill="none"> 3858 <path d="M6.5 20H15.5V11H21.5L11 0.5L0.5 11H6.5V20ZM0.5 23H21.5V26H0.5V23Z" fill="black"/> 3859 </svg> 3860 <p>Upload Logo <span>*optional</span></p> 3861 </div> 3862 </div> 3863 3864 </label> 3865 3866 <input 3867 type="hidden" 3868 data-properties="papan-logo" 3869 value="" 3870 > 3871 <input 3872 type="file" 3873 id="logoPapan" 3874 accept="image/*" 3875 style="position: absolute;width: 1px;height: 1px;padding: 0" 3876 > 3877 3878 <div class="input-field"> 3879 <input class="has-limit sender-name" type="text" placeholder="Nama Pengirim" data-properties="pengirim" maxlength="35"/> 3880 <p class="limit">0/35</p> 3881 </div> 3882 3883 </div> 3884 3885 </div> 3886 </div> 3887 </div> 3888 3889 </div> 3890 </div> 3891 3892 </div> 3893 <div class="purchase-button-wrapper"> 3894 <div class="purchase-button btn-card row m-0"> 3895 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 3896 3897 </div> 3898 <div class="btn-next-card col-12 col-lg-10 text-right"> 3899 3900 3901 <button 3902 3903 3904 3905 class="btn next-purchase-button text-uppercase" 3906 3907 disabled 3908 3909 > 3910 <span>save your flower board</span> 3911 </button> 3912 </div> 3913 </div> 3914 3915 </div> 3916 </div> 3917 </div> 3918 3919 3920 3921 <div 3922 class="sectionPurchase sectionPurchaseBoard hide" 3923 data-section="address" 3924 > 3925 <div class="wrapperPurchase"> 3926 <div class="purchase-content"> 3927 <div class="headerPurchase"> 3928 <h3> 3929 Complete Your Order 3930 </h3> 3931 <a class="close-purchase-popup"> 3932 <svg xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" width="18" height="18" viewBox="0 0 18 18" fill="none"> 3933 <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"/> 3934 </svg> 3935 </a> 3936 3937 </div> 3938 <div class="contentPurchase"> 3939 <div class="row"> 3940 <div class="col-12 position-relative"> 3941 <div class="addressPurchase"> 3942 3943 <h4 class="text-uppercase">recipient delivery address</h4> 3944 <p>Share the delivery address to send your heartfelt blooms straight to their door.</p> 3945 3946 <div class="formAddressPurchase row"> 3947 <div class="col-12"> 3948 <form> 3949 <div class="form-group row mb-2 mb-lg-4"> 3950 <div class="col-6 position-relative"> 3951 <input id="first_name" type="text" class="form-control input__field" placeholder="" required> 3952 <label for="first_name" class="input__label">First Name<span>*</span></label> 3953 </div> 3954 <div class="col-6 position-relative"> 3955 <input id="last_name" type="text" class="form-control input__field" placeholder="" required> 3956 <label for="last_name" class="input__label">Last Name<span>*</span></label> 3957 </div> 3958 <input type="hidden" data-properties="nama-penerima"> 3959 </div> 3960 3961 <h4 class="text-uppercase">how you want to input your address</h4> 3962 <div class="form-group row mb-2 mb-lg-4 form-address-upload"> 3963 <div class="col-6 position-relative"> 3964 <label class="address-manualy"> 3965 <svg xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" width="18" height="17" viewBox="0 0 18 17" fill="none"> 3966 <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
39661216 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
39665 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"/> 3967 </svg> 3968 <span>Input Address Manually</span> 3969 </label> 3970 </div> 3971 <div class="col-6 position-relative"> 3972 <label for="address-upload" class="address-upload"> 3973 <svg xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" width="12" height="13" viewBox="0 0 12 13" fill="none"> 3974 <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"/> 3975 </svg> 3976 <span>Upload Address Picture</span> 3977 </label> 3978 <input 3979 id="address-upload" 3980 type="file" 3981 accept="image/png, image/jpeg" 3982 style="position: absolute; padding: 0;width: 1px;height: 1px" 3983 > 3984 <input type="hidden" class="props-address-upload" data-properties="foto-alamat"> 3985 </div> 3986 </div> 3987 <img width="150" height="" src="" class="photo-address" style="display: none;"> 3988 3989 <div class="form-group row position-relative mb-2 mb-lg-4 form-address"> 3990 <div class="col-12"> 3991 <textarea 3992 id="delivery_address" 3993 data-properties="alamat-penerima" 3994 class="form-control input__field col-12" 3995 placeholder="" 3996 required 3997 ></textarea> 3998 <label for="delivery_address" class="input__label">Delivery Address<span>*</span></label> 3999 4000 </div> 4001 </div> 4002 <div class="form-group row mb-2 mb-lg-4 form-address"> 4003 <div class="col-6 position-relative"> 4004 <input 4005 id="recipient_number" 4006 type="text" 4007 data-properties="telepon-penerima" 4008 class="form-control input__field" 4009 placeholder="" 4010 required 4011 > 4012 <label for="recipient_number" class="input__label">Recipient number<span>*</span></label> 4013 </div> 4014 <div class="col-6 position-relative"> 4015 <input 4016 id="company" 4017 type="text" 4018 data-properties="company" 4019 class="form-control input__field" 4020 placeholder="" 4021 > 4022 <label for="company" class="input__label">Company (Optional)</label> 4023 </div> 4024 </div> 4025 <div class="form-group row mb-2 mb-lg-4 form-address"> 4026 <div class="col-6 position-relative"> 4027 <input 4028 id="province" 4029 type="text" 4030 class="form-control input__field" 4031 placeholder="" 4032 value="Jakarta" 4033 data-properties="province" 4034 > 4035 <label for="province" class="input__label">Province</label> 4036 </div> 4037 <div class="col-6 position-relative"> 4038 <select id="zip" class="form-control select-search" required></select> 4039 </div> 4040 </div> 4041 </form> 4042 </div> 4043 </div> 4044 </div> 4045 <div class="addonsPurchase"> 4046 <h4 class="text-uppercase">add-ons</h4> 4047 <div class="addons"> 4048 <p>No Add-Ons</p> 4049 <!-- 4050 <button class="add-addon"> 4051 <svg xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" width="12" height="12" viewBox="0 0 12 12" fill="none"> 4052 <path d="M5.5 6.5H0V5.5H5.5V0H6.5V5.5H12V6.5H6.5V12H5.5V6.5Z" fill="black"/> 4053 </svg>
4054 <span>Enhance my moment with Add-ons</span> 4055 </button> 4056 --> 4057 </div> 4058 </div> 4059 </div> 4060 4061 </div> 4062 </div> 4063 4064
4064<script> 4065 document.addEventListener('DOMContentLoaded', function() { 4066 // Detect iOS 4067 var isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; 4068 4069 if (isIOS) { 4070 document.querySelector('.formAddressPurchase').classList.add('ios'); 4071 4072 // iOS specific fixes 4073 var inputs = document.querySelectorAll('.formAddressPurchase .input__field'); 4074 4075 inputs.forEach(function(input) { 4076 // Force enable touch events on iOS 4077 input.style.webkitUserSelect = 'text'; 4078 input.style.webkitTouchCallout = 'default'; 4079 input.style.pointerEvents = 'auto'; 4080 input.style.touchAction = 'manipulation'; 4081 4082 // Add explicit touch event listeners for iOS 4083 input.addEventListener('touchstart', function(e) { 4084 e.stopPropagation(); 4085 this.focus(); 4086 }, { passive: false }); 4087 4088 input.addEventListener('touchend', function(e) { 4089 e.preventDefault(); 4090 e.stopPropagation(); 4091 this.focus(); 4092 this.click(); 4093 }, { passive: false }); 4094 4095 // Force focus on tap for iOS 4096 input.addEventListener('click', function(e) { 4097 e.stopPropagation(); 4098 if (document.activeElement !== this) { 4099 this.focus(); 4100 } 4101 }); 4102 }); 4103 4104 // Fix for label overlapping on iOS 4105 var labels = document.querySelectorAll('.formAddressPurchase .input__label'); 4106 labels.forEach(function(label) { 4107 label.style.pointerEvents = 'none'; 4108 label.addEventListener('touchstart', function(e) { 4109 e.preventDefault(); 4110 var input = this.parentNode.querySelector('.input__field'); 4111 if (input) { 4112 input.focus(); 4113 } 4114 }); 4115 }); 4116 } 4117 4118 // Handle input state for all browsers, especially iOS 4119 var inputs = document.querySelectorAll('.input__field'); 4120 4121 inputs.forEach(function(input) { 4122 // Handle input events 4123 input.addEventListener('input', function() { 4124 if (this.value.trim() !== '') { 4125 this.classList.add('has-value'); 4126 } else { 4127 this.classList.remove('has-value'); 4128 } 4129 }); 4130 4131 // Handle focus 4132 input.addEventListener('focus', function() { 4133 this.classList.add('focused'); 4134 // iOS specific: ensure input is visible 4135 if (isIOS) { 4136 setTimeout(function() { 4137 input.scrollIntoView({ behavior: 'smooth', block: 'center' }); 4138 }, 300); 4139 } 4140 }); 4141 4142 // Handle blur 4143 input.addEventListener('blur', function() { 4144 this.classList.remove('focused'); 4145 if (this.value.trim() !== '') { 4146 this.classList.add('has-value'); 4147 } else { 4148 this.classList.remove('has-value'); 4149 } 4150 }); 4151 4152 // Initial check for pre-filled values 4153 if (input.value.trim() !== '') { 4154 input.classList.add('has-value'); 4155 } 4156 }); 4157 4158 // Additional iOS fixes 4159 if (isIOS) { 4160 // Prevent iOS Safari from adding default styling 4161 document.addEventListener('touchstart', function() {}, { passive: true }); 4162 4163 // Fix viewport issues on iOS 4164 var viewport = document.querySelector('meta[name=viewport]'); 4165 if (viewport) { 4166 viewport.setAttribute('content', 4167 'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' 4168 ); 4169 } 4170 } 4171 }); 4172 </script>
4172 4173 </div> 4174 <div class="purchase-button-wrapper"> 4175 <div class="purchase-button btn-address row m-0"> 4176 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 4177 4178 <button class="back-purchase-button back-address text-uppercase"> 4179 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672"> 4180 <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"/> 4181 </svg> 4182 <span>Back</span> 4183 </button> 4184 4185 </div> 4186 <div class="btn-next-card col-12 col-lg-10 text-right"> 4187 4188 <!-- 4189 <button class="back-purchase-button back-address text-uppercase mr-lg-2 mb-2 mb-lg-0"> 4190 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672"> 4191 <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"/> 4192 </svg> 4193 <span>Back</span> 4194 </button> 4195 --> 4196 4197 4198 <button 4199 4200 id="addtocart-card" 4201 4202 class="btn next-address text-uppercase" 4203 4204 > 4205 <span>add to cart</span> 4206 </button> 4207 </div> 4208 </div> 4209 4210 </div> 4211 </div> 4212 </div> 4213 4214 </div> 4215 </div> 4216 <div id="backgroundPopup"></div> 4217 4218 4219 4220 <input 4221 data-index="1" 4222 type="hidden" 4223 id="properties-delivery-date" 4224 name="properties[Delivery Date]" 4225 value="-" 4226 > 4227 <input 4228 data-index="2" 4229 type="hidden" 4230 id="properties-delivery-time" 4231 name="properties[Delivery Time]" 4232 value="-" 4233 > 4234 <input 4235 data-index="4" 4236 type="hidden" 4237 id="properties-nama-penerima" 4238 name="properties[Nama Penerima]" 4239 value="-" 4240 > 4241 <input 4242 data-index="5" 4243 type="hidden" 4244 id="properties-alamat-penerima" 4245 name="properties[Alamat Penerima]" 4246 value="-" 4247 > 4248 <input 4249 data-index="6" 4250 type="hidden" 4251 id="properties-kodepos" 4252 name="properties[Kodepos]" 4253 value="-" 4254 > 4255 <input data-index="7" type="hidden" id="properties-telepon-penerima" name="properties[Telepon Penerima]"> 4256 4257 4258 <input 4259 data-index="8" 4260 type="hidden" 4261 id="properties-kartu-nama-penerima" 4262 name="properties[Kartu Nama Penerima]" 4263 value="-" 4264 > 4265 4266 <textarea 4267 data-index="9" 4268 type="hidden" 4269 id="properties-kartu-pesan" 4270 name="properties[Kartu Pesan]" 4271 style="display: none" 4272 >-</textarea> 4273 4274 4275 4276 <input 4277 data-index="10" 4278 type="hidden" 4279 id="properties-kartu-nama-pengirim" 4280 name="properties[Kartu Nama Pengirim]" 4281 value="-" 4282 > 4283 4284 <!-- Additional Shipping --> 4285 <input type="hidden" id="properties-kota-pengiriman-province" name="properties[Province]"> 4286 <input 4287 type="hidden" 4288 id="properties-kota-pengiriman-country" 4289 name="properties[Country]" 4290 value="Indonesia" 4291 > 4292 <input type="hidden" id="properties-shipping" name="properties[Shipping]"> 4293 4294 <input type="hidden" id="properties-time" name="properties[Time]"> 4295 <input type="hidden" id="properties-card" name="properties[Card]"> 4296 <input type="hidden" id="properties-addons" name="properties[Addons]"> 4297 4298 <input 4299 type="hidden" 4300 id="properties-company" 4301 name="properties[Company]" 4302 value="" 4303 > 4304
4304<script> 4305 4306 $(document).ready(function(){ 4307 4308 var text_max_papan1=150; 4309 var msg_text_papan1=""; 4310 $('#kartu-ucapan-ucapan').keyup(function(){ 4311 var text_length_papan1=$('#kartu-ucapan-ucapan').val().length; 4312 var msg_text_papan1=$('#kartu-ucapan-ucapan').val(); 4313 }); 4314 4315 var notes_papan1 = [ 4316 4317 [0,"Happy Wedding (nama & nama)."],[1,"Congratulations lovebirds (nama & nama)."],[2,"Selamat berbahagia (nama & nama)."],[3,"Selamat menempuh hidup baru (nama & nama)."] 4318 4319 ]; 4320 $('#show_note_papan1').click(function(event){ 4321 event.preventDefault(); 4322 var idx_papan1=parseInt($('#note_id_papan1').val()); 4323 if(isNaN(idx_papan1)){ 4324 idx_papan1=0; 4325 }else{ 4326 idx_papan1++; 4327 idx_papan1=idx_papan1%notes_papan1.length; 4328 } 4329 var note_papan1=notes_papan1[idx_papan1][1]; 4330 $('#note_id_papan1').val(idx_papan1); 4331 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan1); 4332 $('#msgDelivery').val(note_papan1); 4333 4334 var text_length_papan1=$('#kartu-ucapan-papan').val().length; 4335 var idx_2_papan1=parseInt($('#note_btn_id_papan1').val()); 4336 if(isNaN(idx_2_papan1)){ 4337 idx_2_papan1=0; 4338 }else{ 4339 idx_2_papan1++; 4340 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4341 } 4342 $('#note_btn_id_papan1').val(idx_2_papan1); 4343 //var note_btn=note_btn_text[idx_2][1]; 4344 //$('#note_btn').text(note_btn); 4345 }); 4346 4347 var text_max_papan2=150; 4348 var msg_text_papan2=""; 4349 $('#kartu-ucapan-ucapan').keyup(function(){ 4350 var text_length_papan2=$('#kartu-ucapan-ucapan').val().length; 4351 var msg_text_papan2=$('#kartu-ucapan-ucapan').val(); 4352 }); 4353 4354 var notes_papan2 = [ 4355 4356 [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)."] 4357 4358 ]; 4359 $('#show_note_papan2').click(function(event){ 4360 event.preventDefault(); 4361 var idx_papan2=parseInt($('#note_id_papan2').val()); 4362 if(isNaN(idx_papan2)){ 4363 idx_papan2=0; 4364 }else{ 4365 idx_papan2++; 4366 idx_papan2=idx_papan2%notes_papan2.length; 4367 } 4368 var note_papan2=notes_papan2[idx_papan2][1]; 4369 $('#note_id_papan2').val(idx_papan2); 4370 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan2); 4371 $('#msgDelivery').val(note_papan2); 4372 var text_length_papan2=$('#kartu-ucapan-papan').val().length; 4373 var idx_2_papan2=parseInt($('#note_btn_id_papan2').val()); 4374 if(isNaN(idx_2_papan2)){ 4375 idx_2_papan2=0; 4376 }else{ 4377 idx_2_papan2++; 4378 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4379 } 4380 $('#note_btn_id_papan2').val(idx_2_papan2); 4381 //var note_btn=note_btn_text[idx_2][1]; 4382 //$('#note_btn').text(note_btn); 4383 }); 4384 4385 var text_max_papan3=150; 4386 var msg_text_papan3=""; 4387 $('#kartu-ucapan-ucapan').keyup(function(){ 4388 var text_length_papan3=$('#kartu-ucapan-ucapan').val().length; 4389 var msg_text_papan3=$('#kartu-ucapan-ucapan').val(); 4390 }); 4391 4392 var notes_papan3 = [ 4393 4394 [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)."] 4395 4396 ]; 4397 $('#show_note_papan3').click(function(event){ 4398 event.preventDefault(); 4399 var idx_papan3=parseInt($('#note_id_papan3').val()); 4400 if(isNaN(idx_papan3)){ 4401 idx_papan3=0; 4402 }else{ 4403 idx_papan3++; 4404 idx_papan3=idx_papan3%notes_papan3.length; 4405 } 4406 var note_papan3=notes_papan3[idx_papan3][1]; 4407 $('#note_id_papan3').val(idx_papan3);
4408 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan3); 4409 $('#msgDelivery').val(note_papan3); 4410 var text_length_papan3=$('#kartu-ucapan-papan').val().length; 4411 var idx_2_papan3=parseInt($('#note_btn_id_papan3').val()); 4412 if(isNaN(idx_2_papan3)){ 4413 idx_2_papan3=0; 4414 }else{ 4415 idx_2_papan3++; 4416 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4417 } 4418 $('#note_btn_id_papan3').val(idx_2_papan3); 4419 //var note_btn=note_btn_text[idx_2][1]; 4420 //$('#note_btn').text(note_btn); 4421 }); 4422 4423 var text_max_papan4=150; 4424 var msg_text_papan4=""; 4425 $('#kartu-ucapan-ucapan').keyup(function(){ 4426 var text_length_papan4=$('#kartu-ucapan-ucapan').val().length; 4427 var msg_text_papan4=$('#kartu-ucapan-ucapan').val(); 4428 }); 4429 4430 $('#show_note_papan4').click(function(event){ 4431 var notes_papan4 = [ 4432 [0,"Hereâs to youâsteadier, stronger and better every day."], 4433 [1,"Warmest wishes for a speedy recovery!"], 4434 [2,"Dengan ucapan terhangat, semoga lekas membaik dan semakin pulih setiap harinya ya."], 4435 [3,"Semoga lekas sembuh untuk kembali beraktivitas dan berkarya."] 4436 ]; 4437 event.preventDefault(); 4438 var idx_papan4=parseInt($('#note_id_papan4').val()); 4439 console.log(idx_papan4, 'idx_papan4') 4440 if(isNaN(idx_papan4)){ 4441 idx_papan4=0; 4442 }else{ 4443 idx_papan4++; 4444 idx_papan4=idx_papan4%notes_papan4.length; 4445 } 4446 var note_papan4=notes_papan4[idx_papan4][1]; 4447 $('#note_id_papan4').val(idx_papan4); 4448 $('#kartu-ucapan-papan, #properties-kartu-ucapan, #properties-kartu-pesan').val(note_papan4); 4449 console.log(note_papan4, 'note_papan4') 4450 var text_length_papan4=$('#kartu-ucapan-papan').val().length; 4451 var idx_2_papan4=parseInt($('#note_btn_id_papan4').val()); 4452 if(isNaN(idx_2_papan4)){ 4453 idx_2_papan4=0; 4454 }else{ 4455 idx_2_papan4++; 4456 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4457 } 4458 $('#note_btn_id_papan4').val(idx_2_papan4); 4459 }); 4460 4461 /* 4462 $("#jenisPapan").change(function(){ 4463 $( "select option:selected").each(function(){ 4464 if($(this).attr("value")=="Happy Wedding"){ 4465 $("#suggest-messages a").hide(); 4466 $("#show_note_papan1").show(); 4467 $("#kartu-ucapan-papan").val(""); 4468 } 4469 if($(this).attr("value")=="Congratulations"){ 4470 $("#suggest-messages a").hide(); 4471 $("#show_note_papan2").show(); 4472 $("#kartu-ucapan-papan").val(""); 4473 } 4474 if($(this).attr("value")=="Duka Cita"){ 4475 $("#suggest-messages a").hide(); 4476 $("#show_note_papan3").show(); 4477 $("#kartu-ucapan-papan").val(""); 4478 } 4479 }); 4480 }).change(); 4481 */ 4482 4483 4484 4485 4486 4487 $(".variant-metafield").each(function(){ 4488 const t = $(this) 4489 const id = t.attr("id") 4490 const target = $(`[data-select=${id}]`) 4491 t.on('select2:selecting', function(e) { 4492 const data = e.params.args.data 4493 target.val(data.text) 4494 }); 4495 }) 4496 }) 4497 </script>
4497 4498 4499 <div id="popupCart"> 4500 <div class="container"> 4501 <div class="wrapperPopupCart"> 4502 <div class="headerPopupCart"> 4503 <div class="d-flex pl-5 pr-5 p-4"> 4504 <svg xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" width="16" height="12" viewBox="0 0 16 12" fill="none"> 4505 <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"/> 4506 </svg> 4507 <span>item added to your cart</span> 4508 </div> 4509 <a class="close-purchase-popup"> 4510 <svg xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" width="18" height="18" viewBox="0 0 18 18" fill="none"> 4511 <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"/> 4512 </svg> 4513 </a> 4514 4515 </div> 4516 <div class="contentPopupCart"> 4517 <div class="pl-5 pr-5 p-4"> 4518 <div class="itemContent row m-0 justify-content-between"> 4519 <div class="col-2 align-self-center"> 4520 4521 <img 4522 class="d-block" 4523 width="80" 4524 src="//outerbloom.com/cdn/shop/files/Blossom-Shine-WM_80x.jpg?v=1695788426" 4525 > 4526 </div> 4527 <div class="col-10 align-self-center"> 4528 <div class="row pl-3"> 4529 <div class="col-12 col-lg-7"> 4530 <span class="titleCartPopup text-uppercase">KASKUSTOTO : Alternatif Tercepat Anti Nawala Anti Lelet </span> 4531 </div> 4532 <div class="d-flex justify-content-end col-12 col-lg-5"> 4533 <span class="deleteCartPopup hide">Delete</span> 4534 <span class="lineCartPrice align-self-center">Rp 5.000</span> 4535 </div> 4536 </div> 4537 </div> 4538 </div> 4539 <div class="itemProperties"> 4540 4541 <div class="propDeliver"> 4542 <h4>delivery option detail</h4> 4543 <p> 4544 <span>delivery city</span> 4545 <span class="propDeliveryCity">jakarta</span> 4546 </p> 4547 <p> 4548 <span>delivery date</span> 4549 <span class="propDeliveryDate">24/03/2025</span> 4550 </p> 4551 <p> 4552 <span>delivery time</span> 4553 <span class="propDeliveryTime">Afternoon | 13:00 - 18:00</span> 4554 </p> 4555 </div> 4556 <div class="propAddress"> 4557 <h4>delivery option detail</h4> 4558 <p> 4559 <span>RECIPIENT NAME</span> 4560 <span class="propDeliveryName">jane doe</span> 4561 </p> 4562 <p> 4563 <span>delivery address</span> 4564 <span class="propDeliveryAddress" 4565 >Jl. Gatot Subroto No. 25, RT.2/RW.4, Kuningan Barat, Kecamatan Mampang Prapatan, Kota Jakarta 4566 Selatan, Daerah Khusus Ibukota Jakarta 12710, Indonesia</span 4567 > 4568 </p> 4569 <p> 4570 <span>recipient phone number</span> 4571 <span class="propDeliveryPhone">(+62) 812-3456-7890</span> 4572 </p> 4573 <p> 4574 <span>PROVINCE</span> 4575 <span class="propDeliveryProv">Jakarta</span> 4576 </p> 4577 <p> 4578 <span>postal code</span> 4579 <span class="propDeliveryZip">12710</span> 4580 </p> 4581 4582 4583 </div> 4584 4585 </div> 4586 <div class="itemAddonCart"> 4587 <div class="toggleAddonCart d-flex justify-content-between"> 4588 <h4>add-ons (0)</h4> 4589 <svg xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" width="5" height="9" viewBox="0 0 5 9" fill="none"> 4590 <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"/> 4591 </svg> 4592 </div> 4593 <div class="wrapperItemAddonCart"></div> 4594 </div> 4595 4596 </div> 4597 </div>
4598 <div class="footerPopupCart"> 4599 <div class="row m-0 pl-5 pr-5 p-4"> 4600 <a class="btn btnViewCart w-100 text-uppercase text-center" href="/cart">View Cart</a> 4601 <a class="btn btnViewCheckout w-100 text-uppercase text-center" href="/checkout"><span>Checkout</span></a> 4602 <a class="btnContinueShopping w-100 text-center" href="/">Continue shopping</a> 4603 </div> 4604 </div> 4605 </div> 4606 </div> 4607 </div> 4608 4609 4610
4610<script> 4611 const shareButton = document.getElementById('shareButton'); 4612 4613 shareButton.addEventListener('click', () => { 4614 if (navigator.share) { 4615 navigator.share({ 4616 title: "KASKUSTOTO : Alternatif Tercepat Anti Nawala Anti Lelet ", 4617 url: "/products/blossom-shine", 4618 text: 'Check out this page!' 4619 }) 4620 .then(() => console.log('Successful share')) 4621 .catch((error) => console.log('Error sharing', error)); 4622 } else { 4623 alert('Web Share API is not supported in this browser.'); 4624 } 4625 }); 4626 4627 // Inventory validation function 4628 function checkInventoryStatus() { 4629 const productSelect = document.getElementById('productSelect'); 4630 const purchaseButton = document.querySelector('#personalizeBtn button'); 4631 4632 if (!productSelect || !purchaseButton) return; 4633 4634 const selectedVariantId = productSelect.value; 4635 4636 // Get variant data from Shopify 4637 fetch(`/products/blossom-shine.js`) 4638 .then(response => response.json()) 4639 .then(product => { 4640 const selectedVariant = product.variants.find(variant => variant.id == selectedVariantId); 4641 4642 if (selectedVariant) { 4643 const isOutOfStock = selectedVariant.inventory_quantity <= 0 && 4644 selectedVariant.inventory_management === 'shopify' && 4645 selectedVariant.inventory_policy !== 'continue'; 4646 4647 if (isOutOfStock) { 4648 purchaseButton.disabled = true; 4649 purchaseButton.textContent = 'Out of Stock'; 4650 purchaseButton.setAttribute('data-out-of-stock', 'true'); 4651 purchaseButton.style.backgroundColor = '#cccccc'; 4652 purchaseButton.style.cursor = 'not-allowed'; 4653 } else { 4654 // Check if button was disabled due to other conditions 4655 4656 4657 4658 4659 4660 4661 4662 4663 const isOtherDisabled = false || true || false; 4664 4665 if (!isOtherDisabled) { 4666 purchaseButton.disabled = false; 4667 purchaseButton.textContent = 'customize your flower board'; 4668 purchaseButton.removeAttribute('data-out-of-stock'); 4669 purchaseButton.style.backgroundColor = ''; 4670 purchaseButton.style.cursor = ''; 4671 } 4672 } 4673 } 4674 }) 4675 .catch(error => { 4676 console.error('Error checking inventory:', error); 4677 }); 4678 } 4679 4680 // Check inventory on page load 4681 document.addEventListener('DOMContentLoaded', function() { 4682 checkInventoryStatus();
4683 4684 // Listen for variant changes 4685 const productSelect = document.getElementById('productSelect'); 4686 if (productSelect) { 4687 productSelect.addEventListener('change', checkInventoryStatus); 4688 } 4689 }); 4690 4691 // Prevent form submission if out of stock 4692 document.addEventListener('click', function(e) { 4693 if (e.target.matches('button[data-out-of-stock="true"]')) { 4694 e.preventDefault(); 4695 e.stopPropagation(); 4696 alert('This product is currently out of stock and cannot be purchased.'); 4697 return false; 4698 } 4699 }); 4700 </script>
4700 4701 4702 4703 4704 </div> 4705 4706 </div> 4707 </div> 4708 </div> 4709 </div> 4710 <div id="product-bottom"> 4711 4712 <div class="product-description rte bg-card col-12 py-3 px-0 m-0" itemprop="description"> 4713 <div class="container"> 4714 4715 4716 4717 4718 4719 <div class="short-desc-mobile d-block d-lg-none mb-3"> 4720 <div class="short-desc"> 4721 <ul> 4722 <li><strong>KASKUSTOTO dikenal sebagai platform alternatif togel online resmi yang memberikan akses stabil serta banyak bonus-bonus yang diberikan setiap hari.</strong></li> 4723 </div> 4724 <label class="more-mobile">Show More â</label> 4725 </div> 4726 4727 <style> 4728 .animated-title { 4729 text-align: center; 4730 font-weight: bold; 4731 color: #079c02; 4732 font-size: 28px; 4733 position: relative; 4734 animation: glow 2s infinite alternate, moveUpDown 3s infinite; 4735 } 4736 4737 /* Efek glow / bercahaya hijau */ 4738 @keyframes glow { 4739 0% { text-shadow: 0 0 5px #079c02; color: #079c02; } 4740 50% { text-shadow: 0 0 20px #00ff55; color: #12d12b; } 4741 100% { text-shadow: 0 0 10px #1bff00; color: #079c02; } 4742 } 4743 4744 /* Efek gerakan naik turun */ 4745 @keyframes moveUpDown { 4746 0% { transform: translateY(0px); } 4747 50% { transform: translateY(-5px); } 4748 100% { transform: translateY(0px); } 4749 } 4750 </style> 4751 4752
4752<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/shopify-cartjs/1.1.0/cart.min.js"></script>
4752 4753
4753<script> 4754 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}); 4755 4756 const productType = $("[data-product-type]").data("product-type") 4757 const productDate = Date.parse(new Date()) 4758 4759 const shop = 'outerbloom1.myshopify.com' 4760 const host = 'https://app.asmaraku.com' 4761 // const host = 'http://localhost:5001' 4762 4763 const gsheet = "https://script.google.com/macros/s/AKfycbyqa6mPD6lVjU6hiHr12J8URZ2aJBGyxBsGQ0QtEIDari-rBk_9vSOITjSSmUXL1NwxEg/exec" 4764 4765 const qrID = "041025" + randomString(4, 'aAbCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ') 4766 4767 $("#properties-time").val(new Date().getTime()) 4768 4769 const isIOS = /iPhone|iPad|iPod/i.test(navigator.userAgent); 4770 4771 if(!isIOS) { 4772 $("#full-date").attr("type", "button") 4773 } 4774 4775 let dateTime = new Date(); 4776 let today = dateTime.getDate(); 4777 let day = dateTime.getDay(); 4778 let hour = dateTime.getHours(); 4779 let min = dateTime.getMinutes(); 4780 let timeOfDay = hour + (min / 100); 4781 4782 async function getFetch(url) { 4783 const response = await fetch(url); 4784 let status = false 4785 let result 4786 if(response.ok) { 4787 status = true 4788 result = await response.json(); 4789 } 4790 return { 4791 status, 4792 data: result 4793 } 4794 } 4795 4796 4797 4798 function setCookie(cname, cvalue, exMins) { 4799 var d = new Date(); 4800 d.setTime(d.getTime() + (exMins*60*1000)); 4801 var expires = "expires="+d.toUTCString(); 4802 document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; 4803 } 4804 4805 function getCookie(cname) { 4806 let name = cname + "="; 4807 let decodedCookie = decodeURIComponent(document.cookie); 4808 let ca = decodedCookie.split(';'); 4809 for(let i = 0; i <ca.length; i++) { 4810 let c = ca[i]; 4811 while (c.charAt(0) == ' ') { 4812 c = c.substring(1); 4813 } 4814 if (c.indexOf(name) == 0) { 4815 return c.substring(name.length, c.length); 4816 } 4817 } 4818 return ""; 4819 } 4820 4821 async function renderDate() { 4822 let dataDate = await getFetch(`${host}/api/shipping/date?domain=${shop}&productId=8144957800663&v=${Date.now()}`); 4823 console.log(dataDate, 'renderDate') 4824 const data = dataDate?.data 4825 const date = data.date 4826 const time = data.time 4827 4828 console.log(date, 'DATE') 4829 4830 const weekday = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]; 4831 const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; 4832 const htmlDate = []
4833 for(let i = 0;i < date.length;i++) { 4834 const full = date[i].date 4835 const d = new Date(date[i].date); 4836 const day = weekday[d.getDay()]; 4837 const dt = d.getDate(); 4838 const mt = monthly[d.getMonth()]; 4839 const yr = d.getFullYear(); 4840 const isDate = Boolean(date[i].isEnabled) 4841 const cutoffpagi = date[i].cutoff?.pagi 4842 const cutoffsiang = date[i].cutoff?.siang 4843 const cutoffMalam = date[i].cutoff?.Malam 4844 var html = ` 4845 <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'}> 4846 ${dt === today ? 4847 `Today<span>${dt < 10 ? '0' + dt : dt}</span>` : 4848 `${day}<span>${dt < 10 ? '0' + dt : dt}</span>` 4849 } 4850 </button> 4851 ` 4852 htmlDate.push(html) 4853 } 4854 const htmlTime = []
4855 for(var i = 0;i < time.length;i++) { 4856 const timeText = time[i].text 4857 const timeTime = time[i].time 4858 const timeEnabled = time[i].isEnabled 4859 var html = ` 4860 <button class="time-single calendarbutton2 btn steps-btn" data-time="${timeText}" ${timeEnabled ? '' : 'disabled'}>${timeText}<br/>${timeTime}</button> 4861 ` 4862 htmlTime.push(html) 4863 } 4864 const deliveryDate = document.getElementById("deliveryDate"); 4865 if(deliveryDate) { 4866 deliveryDate.insertAdjacentHTML("afterbegin", htmlDate.join('')) 4867 $("#deliveryTime").html(htmlTime) 4868 if(productType !== '') { 4869 console.log("clarity event " + productType + ' calendaring') 4870 window.clarity("event", `${productType} calendaringSchedule`) 4871 // window.clarity("set", productType, `calendaringSchedule - ${productDate}`) 4872 } 4873 } 4874 } 4875 4876 async function getProvince(city) { 4877 let { data: { province } } = await getFetch(`${host}/api/shipping/address/province?city=${city}`); 4878 console.log(province, 'province') 4879 $("#province").val(province) 4880 } 4881 4882 async function renderAddress() { 4883 let current 4884 if(getCookie("location_delivery")){ 4885 current = getCookie("location_delivery").charAt(0).toUpperCase() + getCookie("location_delivery").slice(1) 4886 } 4887 let address = await getFetch(`${host}/api/shipping/address?domain=${shop}&productId=8144957800663`); 4888 console.log(address) 4889 const data = address?.data?.city 4890 const htmlAddress = [] 4891 const grouping = []
4892 for(let i = 0;i < data?.length;i++) { 4893 if(data[i]){ 4894 if(data[i]?.group) { 4895 grouping.push(data[i].group) 4896 } 4897 const price = rupiah.format(data[i]?.rate) 4898 let promo = '(Promo Free Delivery)' 4899 if(data[i]?.name === 'Jakarta - PickUp ASHTA'){ 4900 promo = '(at SCBD, Ashta)' 4901 } else if(data[i]?.name === 'Jakarta - PickUp ITC'){ 4902 promo = '(at Kuningan, ITC Kuningan)' 4903 } else if(data[i]?.name === 'BSD - PickUp'){ 4904 promo = '(at Goldfinch Gading Serpong)' 4905 } else if(data[i]?.name === 'Kota Lainnya'){ 4906 promo = '' 4907 } 4908 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>`) 4909 } 4910 } 4911 4912 const deliveryCity = document.getElementById("cities"); 4913 if(deliveryCity) { 4914 deliveryCity.insertAdjacentHTML("beforeend", htmlAddress.join('')) 4915 if(!isIOS) { 4916 $(deliveryCity).select2(); 4917 } 4918 } 4919 } 4920 4921 async function renderZip(v, v2, v3) { 4922 const deliveryZip = document.getElementById("zip"); 4923 if(v === '') { 4924 return 4925 } 4926 let dataZip = await getFetch(`${host}/api/shipping/address/zip?city=${v}&city2=${v2}&city3=${v3}`); 4927 let zip = dataZip?.data?.zip 4928 console.log(zip) 4929 let htmlZip = []
4930 for(let i = 0; i < zip?.length;i++) { 4931 htmlZip.push(`<option value="${zip[i]?.postalCode} - ${zip[i]?.subdistrict}">${zip[i]?.postalCode} - ${zip[i]?.subdistrict} - ${zip[i]?.city}</option>`) 4932 } 4933 deliveryZip.insertAdjacentHTML("beforeend", htmlZip.join('')) 4934 } 4935 4936 renderDate() 4937 renderAddress() 4938 4939 let rupiah = new Intl.NumberFormat('id-ID', { 4940 style: 'currency', 4941 currency: 'IDR', 4942 maximumFractionDigits: 0, 4943 minimumFractionDigits: 0 4944 }); 4945 4946 async function insertCard(data) { 4947 const response = await fetch(`${host}/api/card/new`, { 4948 method: "POST", 4949 headers: { 4950 'Content-Type': 'application/json', 4951 }, 4952 body: data 4953 }) 4954 const result = await response.json() 4955 let rowIndex = result?.data?.tableRange.split("Outerbloom!A1:J")[1] 4956 $("#greetingCard").attr("data-index", rowIndex) 4957 return result 4958 } 4959 4960 async function updateCard(data){ 4961 const rowIndex = $("#greetingCard").data("index") 4962 const response = await fetch(`${host}/api/card/update?rowIndex=${rowIndex}`, { 4963 method: "PUT", 4964 headers: { 4965 'Content-Type': 'application/json', 4966 }, 4967 body: data 4968 }) 4969 return response 4970 } 4971 4972 function bytesToSize(bytes) { 4973 var sizes = ['b', 'kb', 'mb', 'gb', 'tb', 'p']; 4974 for (var i = 0; i < sizes.length; i++) { 4975 if (bytes <= 1024) { 4976 return bytes + ' ' + sizes[i]; 4977 } else { 4978 bytes = parseFloat(bytes / 1024).toFixed(2) 4979 } 4980 } 4981 return bytes + ' P'; 4982 } 4983 4984 async function uploadMedia(uri, type) { 4985 nameq = $("#properties-nama-penerima").val() 4986 dear = $("#properties-kartu-nama-penerima").val() 4987 card = $("[data-properties=ucapan]").val() 4988 sender = $("#properties-kartu-nama-pengirim").val() 4989 photo = $("#properties-photo").val() 4990 video = $("#properties-video").val() 4991 status = "Product" 4992 4993 const name = qrID 4994 let formData = new FormData(); 4995 formData.append("file", uri); 4996 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 4997 method: "POST", 4998 body: formData 4999 }) 5000 const result = await response.json(); 5001 if(result) { 5002 const url = result.url 5003 if(type === 'image/jpeg') { 5004 $("#properties-photo").val(url) 5005 $(".preview-image").show() 5006 $(".remove-image").show() 5007 photo = url 5008 } else { 5009 $("#properties-video").val(url) 5010 $("#label-input-video span").text("Change File") 5011 $(".case-qrcode-preview p").text("Scan here for a secret message") 5012 $(".remove-media").show() 5013 $("#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>`) 5014 $("[for=input-video]").hide() 5015 video = url 5016 } 5017 $(".case-video-preview").show() 5018 $(".steps-card-preview").removeClass("loading") 5019 // updateCard(nameq, dear, card, sender, photo, video, status) 5020 5021 $(".nextBtn").attr("disabled", false) 5022 } 5023 } 5024 5025 function randomString(length, chars) { 5026 var result = ''; 5027 for (var i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))]; 5028 return result; 5029 } 5030 5031 function getNoteCity(fulldate) { 5032 const h_1 = new Date(new Date().setDate(new Date().getDate() + 1)) 5033 const weekday = ["Min","Sen","Sel","Rab","Kam","Jum","Sab"]; 5034 const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; 5035 const d = new Date(h_1); 5036 const day = weekday[d.getDay()]; 5037 const dt = d.getDate(); 5038 const mt = monthly[d.getMonth()]; 5039 const yr = d.getFullYear(); 5040 const p = $("#cities").parent(".form-group") 5041 } 5042 5043 function disabledSameDay() { 5044 let btnFirst = $("#deliveryDate").find("button:first-child") 5045 let getDay = new Date().getDay(); 5046 5047 5048 5049 if(getDay == 1 || getDay == 2 || getDay == 3 || getDay == 4 || getDay == 5){ 5050 if(hour >= 14.00){ 5051 btnFirst.attr("disabled", true) 5052 } 5053 } else if(getDay == 6){ 5054 if(hour >= 16.00){ 5055 btnFirst.attr("disabled", true) 5056 } 5057 } else if(getDay == 0){ 5058 if(hour >= 16.00){ 5059 btnFirst.attr("disabled", true) 5060 } 5061 } 5062 5063 5064 } 5065 5066 function disabledays(date) { 5067 let ymd = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate(); 5068 //if u have to disable a list of day 5069 let removeDays 5070 5071 5072 5073 removeDays = ["2025-2-13", "2025-2-14"]; 5074 5075 if ($.inArray(ymd, removeDays) >= 0) { 5076 return [false]; 5077 } else { 5078 let day = date.getDay(); 5079 if(day == 0 && date.getDate() == 13 && date.getMonth() == 1){ 5080 return [(day == 0), '']; 5081 } 5082 5083 if(day == 0){ 5084 return [(day == 0), '']; 5085 } 5086 5087 5088 return [(day != 0), '']; 5089 } 5090 } 5091 5092 /* Indonesian initialisation for the jQuery UI date picker plugin. */ 5093 /* Written by Deden Fathurahman ([email protected]). */ 5094 ( function( factory ) { 5095 if ( typeof define === "function" && define.amd ) { 5096 5097 // AMD. Register as an anonymous module. 5098 define( [ "../widgets/datepicker" ], factory ); 5099 } else { 5100 5101 // Browser globals 5102 factory( jQuery.datepicker ); 5103 } 5104 }( function( datepicker ) { 5105 5106 datepicker.regional.id = { 5107 closeText: "Tutup", 5108 prevText: "<mundur", 5109 nextText: "maju>", 5110 currentText: "Today", 5111 monthNames: [ "January","February","March","April","May","Juny", 5112 "July","August","September","October","November","December" ], 5113 monthNamesShort: [ "Jan","Feb","Mar","Apr","May","Jun", 5114 "Jul","Agu","Sep","Oct","Nov","Dec" ], 5115 dayNames: [ "Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu" ], 5116 dayNamesShort: [ "Sun","Mon","Tue","Wed","Thu","Fri","Sat" ], 5117 dayNamesMin: [ "Mg","Sn","Sl","Rb","Km","jm","Sb" ], 5118 weekHeader: "Mg", 5119 dateFormat: "D, dd M", 5120 firstDay: 0, 5121 isRTL: false, 5122 showMonthAfterYear: false, 5123 yearSuffix: "" }; 5124 datepicker.setDefaults( datepicker.regional.id ); 5125 5126 return datepicker.regional.id; 5127 5128 } ) ); 5129 5130 function loadPopup() { 5131 $("#backgroundPopup").fadeIn("slow"); 5132 $(".purchasePopup:not(.purchasePopupSpotify)").fadeIn("slow"); 5133 const firstSection = $(".purchasePopup:not(.purchasePopupSpotify) .sectionPurchase").first() 5134 if(firstSection.hasClass("purchasePersonalize")) { 5135 if(productType !== '') { 5136 console.log("clarity event " + productType + ' personalize') 5137 window.clarity("event", `${productType} cardPersonalization`) 5138 // window.clarity("set", productType, `cardPersonalization - ${productDate}`) 5139 } 5140 } else if (firstSection.hasClass("sectionPurchaseBoard")) { 5141 console.log("clarity event " + productType + ' personalizeBoard') 5142 window.clarity("event", `${productType} personalizeBoard`) 5143 // window.clarity("set", productType, `personalizeBoard - ${productDate}`) 5144 } 5145 firstSection.removeClass("hide") 5146 5147 // Auto-trigger addon loading when addon section becomes visible 5148 setTimeout(function() { 5149 const addonSection = $(".purchaseAddon") 5150 if(addonSection.length > 0 && !addonSection.hasClass("hide")) { 5151 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 5152 $("[data-addon=upsell-all]").trigger("click") 5153 } 5154 } 5155 }, 200) 5156 } 5157 5158 function disablePopup() { 5159 $("#backgroundPopup").fadeOut("slow"); 5160 $(".purchasePopup").fadeOut("slow"); 5161 $("#popupCart").fadeOut("slow"); 5162 } 5163
5164 function scrollTo(parent, div, dur) { 5165 $(parent).animate({ 5166 scrollTop: $(div).offset().top 5167 }, dur); 5168 } 5169 5170 function loadPopupPersonalize() { 5171 const div = "#purchaseProduct" 5172 const p = "html, body, .product-meta" 5173 $("p.error").remove() 5174 loadItemOccasion($("[data-occassion]").eq(0), "greeting-card-all") 5175 const isCity = $("#cities[required]") 5176 const isDate = $("#propDeliveryDate[required]") 5177 const isTime = $("#propDeliveryTime[required]") 5178 // loadPopup() 5179 if(isCity.val() !== '' && isDate.val() !== '' && isTime.val() !== '') { 5180 loadPopup() 5181 } 5182 if(isCity.val() == '') { 5183 isCity.parent(".row").append("<p class='error'>Choose delivery city</p>") 5184 scrollTo(p, div, 500) 5185 } 5186 if(isDate.val() == '') { 5187 isDate.parents(".row").append("<p class='error'>Choose delivery date</p>") 5188 scrollTo(p, div, 500) 5189 } 5190 if(isTime.val() == '') { 5191 isTime.parents(".row").append("<p class='error'>Choose delivery time</p>") 5192 scrollTo(p, div, 500) 5193 } 5194 } 5195 5196 function quantityCounter() { 5197 $(document).on("click", ".item-card.selected .q_up", function () { 5198 var C = $(this).attr("data-id"), 5199 S = 5200 parseInt( 5201 $(this) 5202 .siblings(".quantity-cart-" + C) 5203 .val() 5204 ) + 1; 5205 $(this).attr("data-quantity", S), 5206 $(this) 5207 .siblings(".quantity-cart-" + C) 5208 .val(S); 5209 }), 5210 $(document).on("click", ".item-card.selected .q_down", function () { 5211 var C = $(this).attr("data-id"), 5212 S = parseInt( 5213 $(this) 5214 .siblings(".quantity-cart-" + C) 5215 .val() 5216 ); 5217 0 < S && $(this).attr("data-quantity", S - 1), 5218 0 < S && 5219 $(this) 5220 .siblings(".quantity-cart-" + C) 5221 .val(S - 1); 5222 }); 5223 } 5224 5225 quantityCounter() 5226 5227 const itemAddon = $(".item-card").length 5228 const nofree = $(".nofree").length 5229 5230 const upsell = '' 5231 5232 if(nofree === itemAddon) { 5233 // $("#itemAddons").html("<p>No Items available</p>") 5234 } 5235 5236 $("#itemAddons .item-card").each(function(e){ 5237 $("#itemAddons").attr("data-length", e) 5238 }) 5239 5240 $("[data-addon]").click(function(){ 5241 5242 5243 5244 const t = $(this) 5245 5246 const data = t.data("addon") 5247 5248 $("[data-addon]").removeClass("selected") 5249 t.addClass("selected") 5250 $.get(`https://outerbloom.com/collections/${data}/products.json`, function(data, status){ 5251 const products = data.products 5252 const html = [] 5253 for(let i = 0; i < products.length; i++) { 5254 const id = products[i].id 5255 const variantId = products[i].variants[0].id 5256 const img = products[i].images[0].src 5257 let img2 = img.split('.jpg')[0] 5258 const title = products[i].title 5259 const price = products[i].variants[0].price 5260 const tags = products[i].tags 5261 const qty = products[i].variants[0].available 5262 let type_upsell = '' 5263 if(tags.includes('upsell-item-standing')) { 5264 type_upsell = 'standing' 5265 } 5266 console.log(type_upsell) 5267 if(type_upsell !== '') { 5268 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}"> 5269 5270 <div class="card-image"> 5271 <img src="${img2}_150x.jpg" alt="${title}" width="" height="" /> 5272 </div> 5273 <div class="card-meta"> 5274 <h5>${title}</h5> 5275 <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p> 5276 <input id="card-${variantId}" type="hidden" name="" value="${variantId}"> 5277 </div> 5278 <div class="card-qty"> 5279 <a data-quantity="1" type="submit" id="q_down-${variantId}" class="btn-qty-min q_down drawer-cart" data-id="${variantId}"><svg xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" width="12" height="2" viewBox="0 0 12 2" fill="none"><path d="M0 1.90869V0.908691H12V1.90869H0Z" fill="black"/></svg></a> 5280 <input maxlength="3" min="0" class="btn-qty text-center quantity-cart-${variantId}
5280" value="0" data-price=${price} name="quantity"> 5281 <a data-quantity="1" type="submit" class="btn-qty-plus q_up text-green drawer-cart" data-id="${variantId}"><svg xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" width="12" height="13" viewBox="0 0 12 13" fill="none"> 5282 <path d="M0 6.87023V5.94715H5.53846V0.408691H6.46154V5.94715H12V6.87023H6.46154V12.4087H5.53846V6.87023H0Z" fill="black"/> 5283 </svg></a> 5284 </div> 5285 </div>` 5286 html.push(body) 5287 } 5288 } 5289 $("#itemAddons .row").html(html.length === 0 ? '<p>No Item available</p>' : html) 5290 $("#itemAddons").attr("data-length", products.length) 5291 // $('#itemAddons')[0].swiper.update(); 5292 }); 5293 }) 5294 5295 async function isAddon(){ 5296 let ids = [] 5297 $("#itemAddons .item-card.selected").each(function(i, e){ 5298 const id = $(this).data("id") 5299 ids.push(id) 5300 }) 5301 console.log(ids) 5302 return ids 5303 } 5304 5305 $("#itemAddons").delegate(".item-card > div:not(.card-qty)", "click", async function(){ 5306 const t = $(this).parent() 5307 const id = t.data("id") 5308 const btn = t.parents(".purchaseAddon").find(".next-purchase-button") 5309 t.toggleClass("selected"); 5310 //$(this).next("input").toggleAttr('name', 'id[]'); 5311 if (t.hasClass('selected')) { 5312 t.find("input").val(1) 5313 t.find("input").attr('name', 'id[]'); 5314 } else { 5315 t.find("input").val(0) 5316 t.find("input").removeAttr('name'); 5317 } 5318 $("#properties-addons").val(addons) 5319 const is = await isAddon() 5320 if(is.length === 0) { 5321 btn.text("continue without add-ons") 5322 return 5323 } 5324 if(is.includes(8835692069079)) { 5325 btn.text("personalize acrylic frame") 5326 } else { 5327 btn.text("Continue") 5328 } 5329 5330 }) 5331 5332 async function myAddon(data) { 5333 const c = $(".addonsPurchase .addons") 5334 let items = [] 5335 5336 const spotifyAddons = $(".spotifyAddons").find("[data-index]") 5337 // if(spotifyAddons.length > 0) { 5338 // $(spotifyAddons).each(function(i, e){ 5339 // const spotifyLink = $(this).find(".spotifyLink").val() 5340 // const spotifySong = $(this).find(".spotifySong").val() 5341 // const spotifyArtist = $(this).find(".spotifyArtist").val() 5342 // const spotifyFotoAddon = $(this).find(".resultPhotoSpotify").val() 5343 // if(spotifyLink !== '') { 5344 // spotifyAddon = `<div class="addon-item" data-id="46067682607319" data-qty="1"> 5345 // <div class="addon-itm-img"> 5346 // <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"/> 5347 // </div> 5348 // <div class="addon-itm-title"> 5349 // <span>[US] Outerbloom Acrylic Frame 4R</span> 5350 // </div> 5351 // <div class="addon-itm-line-total"> 5352 // <span>Rp 99.000</span> 5353 // </div> 5354 // </div> 5355 // <div class="propsAddonSpotify row m-0"> 5356 // <div class="col-12 col-lg-2"></div> 5357 // <div class="col-12 col-lg-10"> 5358 // <p> 5359 // <span>spotify link</span> 5360 // <span class="spotifyLinkAddon">${spotifyLink}</span> 5361 // </p> 5362 // <p> 5363 // <span>uploaded photo</span> 5364 // <span class="spotifyFotoAddon">${spotifyFotoAddon}</span> 5365 // </p> 5366 // <p> 5367 // <span>song / playlist name</span> 5368 // <span class="spotifySongAddon">${spotifySong}</span> 5369 // </p> 5370 // <p> 5371 // <span>artist name</span> 5372 // <span class="spotifyArtistAddon">${spotifyArtist}</span> 5373 // </p> 5374 // </div> 5375 // </div>` 5376 // items.push(spotifyAddon) 5377 // } 5378 // }) 5379 // }
5380 for(let i = 0; i < data.length; i++) { 5381 if(data[i].title !== '[US] Outerbloom Acrylic Frame 4R' ) { 5382 const img = data[i].image 5383 const title = data[i].title 5384 const qty = data[i].qty 5385 const price = data[i].price 5386 const total = Number(qty) * Number(price) 5387 let addons = `<div class="addon-item" data-id="${data[i].id}" data-qty="${qty}"> 5388 <div class="addon-itm-img"> 5389 <img src="${img}" alt="" width="70"/> 5390 </div> 5391 <div class="addon-itm-title"> 5392 <span>${title}</span> 5393 </div> 5394 <div class="addon-itm-line-price"> 5395 <span>${rupiah.format(price)}</span> 5396 ${data[i].title == '[US] Outerbloom Acrylic Frame 4R' ? '' : `<span>x${qty}</span>`} 5397 </div> 5398 <div class="addon-itm-line-total"> 5399 <span>${rupiah.format(total)}</span> 5400 </div> 5401 </div>` 5402 items.push(addons) 5403 } 5404 } 5405 c.html(items) 5406 const parent = $(".purchaseAddon") 5407 const next = parent.next(".sectionPurchase") 5408 parent.addClass("hide") 5409 next.removeClass("hide") 5410 // if(items2.length === 0) return $("#popupCart").addClass("no-addon-cart") 5411 // $(".itemAddonCart").find("h4").text(`add-ons (${items2.length})`) 5412 } 5413 5414 async function listAddon() { 5415 const data = $("#itemAddons").find(".selected") 5416 let ids = [] 5417 $(data).each(function(){ 5418 const id = $(this).data("variant") 5419 const image = $(this).find(".card-image img").attr("src") 5420 const title = $(this).find(".card-meta h5").text() 5421 const qty = $(this).find(".card-qty input").val() 5422 const price = $(this).find(".card-qty input").data("price") 5423 ids.push({ 5424 id: Number(id), 5425 image, 5426 title, 5427 qty, 5428 price 5429 }) 5430 }) 5431 myAddon(ids) 5432 } 5433 5434 async function customSpotify(idx, length, type){ 5435 let isCard = false 5436 5437 let p = $(".purchasePopupSpotify") 5438 const preLink = $(".spotifyLinkFirst").val() 5439 $("[data-index]").hide() 5440 p.find(".headerPurchase h3").text(`personalize spotify photo print${length > 1 ? ` - ${idx}` : ''}`) 5441 p.find(".regulerAddons, .purchase-button").hide() 5442 p.find(".spotifyAddons").show() 5443 5444 const data = await trackUrl(preLink) 5445 5446 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://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" width="13" height="11" viewB
5446ox="0 0 13 11" fill="none"> 5447 <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"/> 5448 </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://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672><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://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" width="13" height="11" viewB
5448ox="0 0 13 11" fill="none"> 5449 <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"/> 5450 </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>` 5451 // console.log(html) 5452 5453 $(".spotifyAddons").append(html) 5454 5455 $(`[data-index=${idx}]`).show() 5456 5457 if (preLink !== '') { 5458 $(".btn-action .btn").attr("disabled", false) 5459 } else { 5460 $(".btn-action .btn").attr("disabled", true) 5461 } 5462 5463 return html 5464 5465 } 5466 5467 $(".spotifyLinkFirst").keyup(async function(){ 5468 const v = $(this).val() 5469 if(v.includes('spotify:user:spotify')) { 5470 const correct = v.split('user:spotify:')[1] 5471 console.log(correct, 'BNER') 5472 $(this).val(correct) 5473 return 5474 } 5475 if(v.includes("spotify:") || v.includes("https://open.spotify.com/")){ 5476 const data = await trackUrl(v) 5477 if(!data || !data.status) { 5478 $(this).parent().addClass("error") 5479 // $(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>`) 5480 $("#personalizeBtnSpotify .btn").attr("disabled", true) 5481 return 5482 } 5483 $(this).parent().removeClass("error") 5484 // $(this).parent().remove("txt-error") 5485 $("#personalizeBtnSpotify .btn").attr("disabled", false) 5486 } else { 5487 $("#personalizeBtnSpotify .btn").attr("disabled", true) 5488 } 5489 }) 5490 5491 $(".purchaseAddon").delegate(".next-addon", "click", function(){ 5492 const parent = $(this).parents(".purchaseAddon") 5493 const next = parent.next(".sectionPurchase") 5494 if(next.hasClass("purchaseAddress")) { 5495 if(productType !== '') { 5496 console.log("clarity event " + productType + ' purchaseDelivery') 5497 window.clarity("event", `${productType} purchaseDelivery`) 5498 // window.clarity("set", productType, `purchaseDelivery - ${productDate}`) 5499 } 5500 } 5501 const data = $("#itemAddons").find(".selected") 5502 const length = $(".quantity-cart-46067682607319").val() 5503 const checked = data.length; 5504 if(checked > 0) { 5505 if(length > 0) { 5506 $(".purchaseAddon").addClass("purchaseAddonSpotify") 5507 customSpotify(1, length, 'addon') 5508 } else { 5509 listAddon() 5510 } 5511 } else { 5512 parent.addClass("hide") 5513 next.removeClass("hide") 5514 } 5515 }) 5516 5517 $("#personalizeBtnSpotify .btn").click(async function(){ 5518 const isCity = $("#cities[required]") 5519 const isDate = $("#propDeliveryDate[required]") 5520 if((isDate.length > 0 && isCity.length > 0) && (isCity.val() === '' || isDate.val() === '')) { 5521 alert('Please choose Delivery City & Delivery Date') 5522 return 5523 } 5524 const data = await customSpotify(1, 1, 'product') 5525 if(data) { 5526 $("#backgroundPopup").fadeIn("slow"); 5527 $(".purchasePopupSpotify").fadeIn("slow"); 5528 5529 if(productType !== '') { 5530 console.log("clarity event " + productType + ' spotify') 5531 window.clarity("event", `${productType} spotify`) 5532 // window.clarity("set", productType, `purchaseDelivery - ${productDate}`) 5533 } 5534 } 5535 }) 5536 5537 function formatBytes(bytes, decimals = 2) { 5538 if (!+bytes) return '0 Bytes' 5539
5540 const k = 1024 5541 const dm = decimals < 0 ? 0 : decimals 5542 const sizes = ['B', 'KB', 'MB'] 5543 5544 const i = Math.floor(Math.log(bytes) / Math.log(k)) 5545 5546 return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}` 5547 } 5548 5549 async function trackUrl(link){ 5550 try { 5551 let trackId = link.split('/').pop().split('?')[0]; 5552 let type = '' 5553 if(link.includes("spotify:")) { 5554 const uri = link.split('spotify:')[1] 5555 trackId = uri.split(':')[1] 5556 type = uri.split(':')[0] + 's' 5557 } else { 5558 if(link.match('track')){ 5559 type = 'tracks' 5560 } else if(link.match('playlist')) { 5561 type = 'playlists' 5562 } else if(link.match('artist')) { 5563 type = 'artists' 5564 } else if(link.match('album')) { 5565 type = 'albums' 5566 } 5567 } 5568 console.log(`${host}/api/spotify/${type}/${trackId}`) 5569 const data = await getFetch(`${host}/api/spotify/${type}/${trackId}`) 5570 console.log(data, 'DATA') 5571 const song = data?.data?.name 5572 const artist = data?.data?.artist 5573 return { 5574 song, artist, type, trackId, status: data.status 5575 } 5576 } catch(err) { 5577 console.log(err) 5578 } 5579 } 5580 5581 $(".spotifyAddons").delegate(".uploadPhotoSpotify", "change", async function(){ 5582 const parent = $(this).parents("[data-index]") 5583 const preview = parent.find(".previewImage") 5584 const file = $(this)[0].files[0]; 5585 if (file) { 5586 const reader = new FileReader(); 5587 reader.onload = async function(e) { 5588 parent.find(".uploadResult label").hide() 5589 parent.find(".uploadedResult").remove() 5590 parent.find(".uploadResult").append(`<div class="uploadedResult d-flex" style="justify-content: space-between"> 5591 <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> 5592 <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;">
5592<svg fill="none" height="11" viewBox="0 0 10 11" width="10" xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672"> 5593 <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 /> 5594 </svg> 5595 </span></div></div>`) 5596 parent.find(".frameImageUploaded svg").hide() 5597 parent.find(".frameImage").addClass("uploaded") 5598 preview.attr("src", e.target.result); 5599 preview.show(); 5600 let formData = new FormData(); 5601 formData.append("file", file); 5602 const response = await fetch(`${host}/api/upload?name=${file.name}&type=image/jpeg&r=${Date.parse(new Date)}`, { 5603 method: "POST", 5604 body: formData 5605 }) 5606 const result = await response.json(); 5607 if(result){ 5608 parent.find(".resultPhotoSpotify").val(result.url) 5609 } 5610 } 5611 5612 reader.readAsDataURL(file); 5613 } else { 5614 preview.hide(); 5615 } 5616 }); 5617 5618 $(".spotifyAddons").delegate(".uploadResult", "click", function(){ 5619 $(this).next("input[type=file]").trigger("click") 5620 }) 5621 5622 $(".spotifyAddons").delegate(".changeUpload", "click", function(){ 5623 $(this).parents("input[type=file]").trigger("click") 5624 }) 5625 5626 $(".spotifyAddons").delegate(".removeUpload", "click", function(){ 5627 const parent = $(this).parents("[data-index]") 5628 parent.find(".uploadPhotoSpotify").val("") 5629 parent.find(".uploadResult label").show() 5630 parent.find(".uploadedResult").remove() 5631 parent.find(".frameImageUploaded svg").show() 5632 parent.find(".previewImage").hide() 5633 parent.find(".frameImage").removeClass("uploaded") 5634 }) 5635 5636 $(".spotifyAddons").delegate("label.checkbox", "click", function(){ 5637 const parent = $(this).parents("[data-index]") 5638 parent.toggleClass("checked") 5639 }) 5640 5641 $(".spotifyAddons").delegate(".spotifyLink", "change", async function(){ 5642 const parent = $(this).parents("[data-index]") 5643 const link = $(this).val() 5644 const data = await trackUrl(link) 5645 5646 console.log(data) 5647 5648 if(data.song) { 5649 parent.find(".spotifySong").val(data.song) 5650 parent.find(".spotifyData").find("h3").text(data.song) 5651 } 5652 if(data.artist) { 5653 parent.find(".spotifyArtist").val(data.artist) 5654 parent.find(".spotifyData").find("p").text(data.artist) 5655 } 5656 parent.find(".spotifyCode img").attr("src", `https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:${data.type.slice(0, -1)}:${data.trackId}`) 5657 // https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:track:1er51HCEBhIAtoEemKuC3M 5658 if (data.status === true) { 5659 parent.find(".btn-action .btn").attr("disabled", false) 5660 } else { 5661 parent.find(".btn-action .btn").attr("disabled", true) 5662 } 5663 }) 5664
5665 $(".spotifyAddons").delegate(".spotifySong", "keyup", async function(){ 5666 const parent = $(this).parents("[data-index]") 5667 const v = $(this).val() 5668 parent.find(".spotifyData h3").text(v) 5669 }) 5670 5671 $(".spotifyAddons").delegate(".spotifyArtist", "keyup", async function(){ 5672 const parent = $(this).parents("[data-index]") 5673 const v = $(this).val() 5674 parent.find(".spotifyData p").text(v) 5675 }) 5676 5677 $(".spotifyAddons").delegate(".btn-action .btn:not(.no-addon)", "click", async function(){ 5678 const parent = $(this).parents("[data-index]") 5679 const length = parent.data("length") 5680 const index = parent.data("index") 5681 const indexNext = Number(index) + 1 5682 customSpotify(indexNext, length, 'addon') 5683 }) 5684 5685 5686 $(".spotifyAddons").delegate(".btn-action .btn.finished", "click", async function(){ 5687 const parent = $(this).parents(".purchaseAddon") 5688 const next = parent.next(".sectionPurchase") 5689 parent.addClass("hide") 5690 next.removeClass("hide") 5691 next.find(".purchase-button").show() 5692 listAddon() 5693 }) 5694 5695 $(".spotifyAddons").delegate(".back-spotify", "click", async function(){ 5696 const t = $(this).parents("[data-index]") 5697 const parent = $(this).parents(".sectionPurchase") 5698 const current = t.data("index") 5699 const prevCurrent = Number(current) - 1 5700 if(current == 1) { 5701 parent.removeClass("purchaseAddonSpotify") 5702 parent.find(".purchase-button").show() 5703 parent.find(".headerPurchase h3").text("Make It More Special with Add-Ons!") 5704 $(".spotifyAddons").empty() 5705 $(".regulerAddons").show() 5706 return 5707 } 5708 t.hide() 5709 t.prev("[data-index]").show() 5710 t.remove() 5711 parent.find(".headerPurchase h3").text(`personalize spotify photo print - ${prevCurrent}`) 5712 }) 5713 5714 $("#personalizeBtn .btn").click(async function() { 5715 loadPopupPersonalize() 5716 }); 5717 5718 $(".sectionPurchaseSpotify").delegate(".btn[data-type=card]", "click", function(){ 5719 $(".sectionPurchaseSpotify").hide() 5720 loadPopupPersonalize() 5721 }) 5722 5723 $(".close-purchase-popup").click(function() { 5724 disablePopup(); 5725 }); 5726 $("#backgroundPopup").click(function() { 5727 // disablePopup(); 5728 }); 5729 5730 $("#popupCart .close-purchase-popup").click(function() { 5731 location.reload() 5732 }); 5733 5734 $('#popupCart').on('hide.bs.modal', function (e) { 5735 location.reload() 5736 }) 5737 5738 $(".next-card").click(function(){ 5739 const parent = $(this).parents(".sectionPurchase") 5740 const next = parent.next(".sectionPurchase") 5741 parent.addClass("hide") 5742 next.removeClass("hide") 5743 }) 5744 5745 $(".back-purchase-button").click(function(){ 5746 const parent = $(this).parents(".sectionPurchase") 5747 const prev = parent.prev(".sectionPurchase") 5748 parent.addClass("hide") 5749 prev.removeClass("hide") 5750 }) 5751 5752 $(document).keypress(function(e) { 5753 if (e.keyCode == 27 && popupStatus == 1) { 5754 disablePopup(); 5755 } 5756 }); 5757 5758 const parentImg = $(".case-img-preview") 5759 const parentVid = $(".case-video-preview") 5760 5761 function readURL(input) { 5762 if (input.files && input.files[0]) { 5763 let reader = new FileReader(); 5764 5765 let type = 'image/jpeg' 5766 const size = input.files[0].size 5767 if(input.files[0].type.match('video/')){ 5768 type = 'video/mp4' 5769 if(size > 15728640) { 5770 alert('File size exceeds maximum limit 15 MB') 5771 return 5772 } 5773 } else { 5774 if(size > 5242880) { 5775 alert('File size exceeds maximum limit 5 MB') 5776 return 5777 } 5778 } 5779 5780 reader.onload = function (e) { 5781 $(".nextBtn").attr("disabled", true) 5782 if(type === 'image/jpeg') { 5783 5784 $('.placeholder-image').hide(); 5785 $('.preview-image').show() 5786 $('.preview-image').attr('src', e.target.result); 5787 5788 } else { 5789 // parentVid.find(".ajax-loader").show(); 5790 $(".steps-card-preview").addClass("loading") 5791 } 5792 } 5793 5794 5795
5796 reader.readAsDataURL(input.files[0]); 5797 } 5798 } 5799 5800 async function readURLPapan(input) { 5801 if (input.files && input.files[0]) { 5802 let reader = new FileReader(); 5803 5804 reader.onload = function (e) { 5805 $('.btn-upload-papan').siblings('label').hide(); 5806 $('.btn-upload-papan img').attr('src', e.target.result); 5807 $('.btn-upload-papan img').show(); 5808 $('.svgLogoPapan').hide(); 5809 } 5810 5811 const type = 'image/jpeg' 5812 const name = `logo-8144957800663-${Date.parse(new Date())}` 5813 5814 let formData = new FormData(); 5815 formData.append("file", input.files[0]); 5816 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 5817 method: "POST", 5818 body: formData 5819 }) 5820 const result = await response.json(); 5821 if(result) { 5822 const url = result.url 5823 $("[data-properties=papan-logo]").val(url) 5824 } 5825 5826 reader.readAsDataURL(input.files[0]); 5827 } 5828 } 5829 5830 async function readURLAddress(input) { 5831 console.log(input, 'readURLAddress') 5832 if (input.files && input.files[0]) { 5833 let reader = new FileReader(); 5834 5835 reader.onload = function (e) { 5836 $('.photo-address').attr('src', e.target.result); 5837 $('.photo-address').show(); 5838 } 5839 5840 const type = 'image/jpeg' 5841 const name = input.files[0].name?.split('.')[0] 5842 5843 let formData = new FormData(); 5844 formData.append("file", input.files[0]); 5845 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 5846 method: "POST", 5847 body: formData 5848 }) 5849 const result = await response.json(); 5850 5851 reader.readAsDataURL(input.files[0]); 5852 5853 return result 5854 } 5855 } 5856 5857 5858 5859 5860 async function addToCartUang() { 5861 var productAddOnId1 = 42122101162199; 5862 var productAddOnId2 = 42122101194967; 5863 var product_id = 8144957800663 5864 const data = { 5865 items: [ 5866 { 5867 quantity: $("#Quantity-" + productAddOnId1).val(), 5868 id: productAddOnId1, 5869 "properties": { "Time": $("#properties-time").val() } 5870 }, 5871 { 5872 quantity: $("#Quantity-" + productAddOnId2).val(), 5873 id: productAddOnId2, 5874 "properties": { "Time": $("#properties-time").val() } 5875 } 5876 ] 5877 } 5878 await fetch(window.Shopify.routes.root + 'cart/add.js', { 5879 method: 'POST', 5880 headers: { 5881 'Content-Type': 'application/json' 5882 }, 5883 body: JSON.stringify(data) 5884 }) 5885 .then(response => { 5886 console.error('Sukses Buket Uang:', response); 5887 $(".form-flower").submit() 5888 }) 5889 .catch((error) => { 5890 console.error('Error Buket Uang:', error); 5891 $(".form-flower").submit() 5892 }); 5893 } 5894 5895 async function saveCard(){ 5896 let isCard = true 5897 const kartu_penerima = $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '' 5898 const kartu_pengirim = $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '' 5899 const kartu_ucapan = $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '' 5900 const foto = $("#properties-photo").val() 5901 const video = $("#properties-video").val() 5902 const data = JSON.stringify({ 5903 "id": qrID, 5904 "penerima": $("#properties-nama-penerima").val(), 5905 "kartu_penerima": kartu_penerima, 5906 "kartu_ucapan": kartu_ucapan, 5907 "kartu_pengirim": kartu_pengirim, 5908 "foto": foto, 5909 "video": video, 5910 "productId": "8144957800663", 5911 "order_name": "", 5912 "status": "Cart" 5913 }) 5914 5915 5916 } 5917 5918 async function additem(items){ 5919 try { 5920 let formData = items 5921 if(items?.length) { 5922 formData = { 5923 'items': items 5924 }; 5925 } 5926 5927 const add = await fetch(window.Shopify.routes.root + 'cart/add.js', { 5928 method: 'POST', 5929 headers: { 5930 'Content-Type': 'application/json', 5931 'X-Requested-With':'xmlhttprequest' /* XMLHttpRequest is ok too, it's case insensitive */ 5932 }, 5933 body: JSON.stringify(formData) 5934 }) 5935 5936 const data = await add.json(); 5937 return data 5938 } catch(err){ 5939 console.log('Error additem', err) 5940 } 5941 } 5942 5943 async function addons(){ 5944 let items = [] 5945 $(".addon-item").each(function(){ 5946 const p = $(this) 5947 const props = p.next(".propsAddonSpotify") 5948 const id = $(this).data("id") 5949 const quantity = $(this).data("qty") 5950 const propId = $("#properties-time").val() 5951 let properties = {} 5952 if(id === 46067682607319) { 5953 const link = props.find(".spotifyLinkAddon").text() 5954 const photo = props.find(".spotifyFotoAddon").text() 5955 const song = props.find(".spotifySongAddon").text() 5956 const artist = props.find(".spotifyArtistAddon").text() 5957 properties = { 5958 id: propId, 5959 "Spotify Link": link !== '' ? link : '-', 5960 "Spotify Photo": photo !== '' ? photo : '-', 5961 "Spotify Song": song !== '' ? song : '-', 5962 "Spotify Artist": artist !== '' ? artist : '-', 5963 type: 'addon' 5964 } 5965 } else { 5966 properties = { 5967 "id": propId, 5968 "type": "addon" 5969 } 5970 } 5971 items.push({ 5972 id, 5973 quantity, 5974 properties 5975 }) 5976 }) 5977 return items 5978 } 5979 5980 async function propItems() { 5981 let props = {} 5982 $("[data-properties]").each(function(e){
5983 let elementType = this.tagName; 5984 const k = $(this).data("properties") 5985 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') { 5986 const v = elementType === 'SELECT' ? $(this).find(":selected").val() : $(this).val(); 5987 if(v !== '') { 5988 props[k] = v?.replace(/[\s\n]/g, ''); 5989 } 5990 } 5991 }) 5992 return props 5993 } 5994 5995 async function showPopupCart(items){ 5996 if(productType !== '') { 5997 console.log("clarity event " + productType + ' completeOrder') 5998 window.clarity("event", `${productType} completeOrder`) 5999 // window.clarity("set", productType, `completeOrder - ${productDate}`) 6000 } 6001 $("#popupCart").show() 6002 6003 $(".propDeliveryCity").text($("#cities").val()) 6004 $(".propDeliveryDate").text($("#propDeliveryDate").val()) 6005 $(".propDeliveryTime").text($("#propDeliveryTime").val()) 6006 $(".propDeliveryName").text($("[data-properties=nama-penerima]").val()) 6007 $(".propDeliveryAddress").text($("[data-properties=alamat-penerima]").val()) 6008 $(".propDeliveryPhone").text($("[data-properties=telepon-penerima]").val()) 6009 $(".propDeliveryProv").text($("#province").val()) 6010 $(".propDeliveryZip").text($("#zip").val()) 6011 6012 6013 6014 const addons = [] 6015 if(items && items.length > 0) { 6016 for(let i = 1; i < items.length; i++) { 6017 const spotifyLink = items[i].properties['Spotify Link'] 6018 const spotifyPhoto = items[i].properties['Spotify Photo'] 6019 const spotifySong = items[i].properties['Spotify Song'] 6020 const spotifyArtist = items[i].properties['Spotify Artist'] 6021 const price = items[i].price / 100 6022 const props = spotifyLink ? `<div class="propsAddonCart row m-0"> 6023 <div class="col-12 col-lg-2"></div> 6024 <div class="col-12 col-lg-10"> 6025 <p> 6026 <span>spotify link</span> 6027 <span>${spotifyLink}</span> 6028 </p> 6029 <p> 6030 <span>Upload Photo</span> 6031 <span>${spotifyPhoto}</span> 6032 </p> 6033 <p> 6034 <span>song / playlist name</span> 6035 <span>${spotifySong}</span> 6036 </p> 6037 <p> 6038 <span>artist name</span> 6039 <span>${spotifyArtist}</span> 6040 </p> 6041 </div> 6042 </div>` : ''; 6043 addons.push(`<div class="row m-0"> 6044 <div class="imgAddonCart col-2"> 6045 <img 6046 width="43" 6047 src="${items[i].image}" 6048 alt="" 6049 > 6050 </div> 6051 <div class="imgAddonTitlePrice col-10 align-self-center"> 6052 <div class="row justify-content-between m-0"> 6053 <div class="col-12 col-lg-8"> 6054 <h5>${items[i].title}</h5> 6055 </div> 6056 <div class="col-12 col-lg-4 text-lg-right"> 6057 <span>${rupiah.format(price)}</span> 6058 </div> 6059 </div> 6060 </div> 6061 </div>${props}`) 6062 } 6063 } 6064 // console.log(addons) 6065 if(addons.length === 0) { 6066 $(".itemAddonCart").hide() 6067 return 6068 } 6069 $(".toggleAddonCart h4").text(`add-ons (${items.length - 1})`) 6070 $(".wrapperItemAddonCart").html(addons) 6071 } 6072 6073 const money = (money) => { 6074 return new Intl.NumberFormat('id-ID', 6075 { style: 'currency', currency: 'IDR', minimumFractionDigits: 0 } 6076 ).format(money); 6077 } 6078 6079 async function showNoteMoney() { 6080 let qty50k = $("[data-properties='Uang 50k']").val() 6081 let qty100k = $("[data-properties='Uang 100k']").val() 6082 const total50k = Number(qty50k) * 50000 6083 const total100k = Number(qty100k) * 100000 6084 const total_all = total50k + total100k 6085 $(".prop50k").html(`<span>${qty50k} Lembar: <strong class="pl-1">${money(total50k)}</strong></span>`) 6086 $(".prop100k").html(`<span>${qty100k} Lembar: <strong class="pl-1">${money(total100k)}</strong></span>`) 6087 $(".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://amp13-2.vercel.app/" target="_blank" style="text-decoration: underline;
6087 color: #8d3f2d">Customer Service</a> to confirm with proof of payment.</p>`) 6088 } 6089 6090 async function removeImage() { 6091 const data = JSON.stringify({ 6092 "ID": $("#properties-properties-qrId").val(), 6093 "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 6094 "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 6095 "Kartu Ucapan": $("[data-properties=ucapan]").val(), 6096 "Nama Penerima": $("#properties-nama-penerima").val(), 6097 "Order Number":"", 6098 "Status":"Product", 6099 "Foto": "", 6100 "Media": $("#properties-video").val(), 6101 "Image": "8144957800663" 6102 }) 6103 const remove = updateCard(data) 6104 if(remove) { 6105 $(this).hide() 6106 $("#properties-photo").val("-") 6107 $(".placeholder-image").show() 6108 $(".preview-image").attr("src", "") 6109 } 6110 } 6111 6112 async function removeVideo() { 6113 const data = JSON.stringify({ 6114 "ID": $("#properties-properties-qrId").val(), 6115 "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 6116 "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 6117 "Kartu Ucapan": $("[data-properties=ucapan]").val(), 6118 "Nama Penerima": $("#properties-nama-penerima").val(), 6119 "Order Number":"", 6120 "Status":"Product", 6121 "Foto": $("#properties-photo").val(), 6122 "Media": "", 6123 "Image": "8144957800663" 6124 }) 6125 const remove = updateCard(data) 6126 if(remove) { 6127 $("#properties-video").val("-") 6128 $(this).find("img").hide() 6129 $(this).hide() 6130 $(this).prev("p").text("Add video to make it more special (optional)") 6131 $("#label-input-video").show() 6132 $("#label-input-video span").text("Upload Video") 6133 $(".case-video-preview p span").remove() 6134 } 6135 } 6136 6137 async function loadItemOccasion(t, occasion) { 6138 const name = occasion?.replace('greeting-card-', '') 6139 $("#kartu-ucapan").val("") 6140 $("[data-occassion]").removeClass("selected") 6141 $("[data-properties=ucapan]").val("") 6142 $("#save-card").attr("disabled", true) 6143 t.addClass("selected") 6144 $("#show_note").attr("data-card-occassion", name) 6145 $.get(`https://outerbloom.com/collections/${occasion}/products.json`, function(data, status){ 6146 const products = data.products 6147 const html = [] 6148 for(let i = 0; i < products.length; i++) { 6149 const id = products[i].id 6150 const variantId = products[i].variants[0].id 6151 const img = products[i].images[0].src 6152 const title = products[i].title 6153 const price = products[i].variants[0].price 6154 const qty = products[i].variants[0].inventory_quantity 6155 const body = `<div class="item-card${price < 1 ? ' free' : ' nofree'}${i === 0 ? ' selected' : ''}" data-id=${id}> 6156 <label for="card-${variantId}"></label> 6157 <div class="card-image"> 6158 <img src="${img}" alt="${title}" width="" height="" /> 6159 </div> 6160 <div class="card-meta text-center"> 6161 <h5>${title}</h5> 6162 <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p> 6163 <input id="card-${variantId}" type="radio" name="id" value="${variantId}" data-price="${price}"> 6164 </div> 6165 </div>` 6166 html.push(body) 6167 } 6168 const withoutCard = `<div class="item-card item-without-card"> 6169 <label for="card-0"></label> 6170 <div class="card-image"> 6171 <img src="https://cdn.shopify.com/s/files/1/1589/6833/t/129/assets/without-card.png?v=1747632283" alt="Without card" width="" height="" /> 6172 </div> 6173 <div class="card-meta text-center"> 6174 <h5>
6174Send without a greeting card</h5> 6175 <input id="card-0" type="radio" name="id" value="" data-price=""> 6176 </div> 6177 </div>` 6178 $("#itemCards .items-card").html(html.length === 0 ? '<p>No Item available</p>' : html.join("")) 6179 }); 6180 } 6181 6182 $(document).ready(function(){ 6183 6184 // Observer to auto-trigger addon loading when addon section becomes visible 6185 const addonObserver = new MutationObserver(function(mutations) { 6186 mutations.forEach(function(mutation) { 6187 const target = $(mutation.target) 6188 if(target.hasClass('purchaseAddon') && mutation.type === 'attributes' && mutation.attributeName === 'class') { 6189 if(!target.hasClass('hide')) { 6190 // Addon section just became visible, ensure items are loaded 6191 setTimeout(function() { 6192 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6193 console.log("Auto-triggering addon load...") 6194 $("[data-addon=upsell-all]").trigger("click") 6195 } 6196 }, 150) 6197 } 6198 } 6199 }) 6200 }) 6201 6202 // Start observing addon section 6203 const addonSection = document.querySelector('.purchaseAddon') 6204 if(addonSection) { 6205 addonObserver.observe(addonSection, { 6206 attributes: true, 6207 attributeFilter: ['class'] 6208 }) 6209 } 6210 6211 $(".purchasePopup").delegate("#addtocart-card", "click", async function(){ 6212 6213 $(this).find("span").addClass("loading") 6214 let isValid = true 6215 $(".formAddressPurchase [required]").each(function(){ 6216 const t = $(this) 6217 const input = t.val() 6218 const p = t.parent() 6219 if(input === '') { 6220 p.addClass("error") 6221 isValid = false 6222 } 6223 }) 6224 6225 if(!isValid) { 6226 $(this).find("span").removeClass("loading") 6227 return 6228 } 6229 6230 let items = [] 6231 const mainProps = { 6232 6233 "Delivery Date": $("#propDeliveryDate").val(), 6234 "Delivery Time": $("#propDeliveryTime").val() !== '' ? $("#propDeliveryTime").val() : '-' , 6235 "Kota Pengiriman": $("#cities").val(), 6236 "Nama Penerima": $("[data-properties=nama-penerima]").val() !== '' ? $("[data-properties=nama-penerima]").val() : '-' , 6237 "Alamat Penerima": $("[data-properties=alamat-penerima]").val() !== '' ? $("[data-properties=alamat-penerima]").val() : '-' , 6238 "Kodepos": $("#zip").val() !== '' ? $("#zip").val() : '-' , 6239 "Telepon Penerima": $("[data-properties=telepon-penerima").val() !== '' ? $("[data-properties=telepon-penerima").val() : '-' , 6240 6241 6242 "Papan Nama Penerima": $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '-' , 6243 "Papan Ucapan": $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '-' , 6244 "Papan Nama Pengirim": $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '-' , 6245 "Papan Logo": $("[data-properties=papan-logo]").val() !== '' ? $("[data-properties=papan-logo]").val() : '-' , 6246 "Foto Alamat": $("[data-properties=foto-alamat]").val() !== '' ? $("[data-properties=foto-alamat]").val() : '-' , 6247 6248 6249 "Province": $("#province").val() !== '' ? $("#province").val() : '-' , 6250 "Country": $("#properties-kota-pengiriman-country").val() !== '' ? $("#properties-kota-pengiriman-country").val() : '-' , 6251 "Shipping": $("#properties-shipping").val() !== '' ? $("#properties-shipping").val() : '-' , 6252 "Company": $("[data-properties=company]").val() !== '' ? $("[data-properties=company]").val() : '-' , 6253 "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 6254 "type": 'product' 6255 } 6256 const props = await propItems() 6257 properties = {...mainProps, ...props }; 6258 const id = $("#productSelect").find('option:selected').val() 6259 console.log(id, 'main ID') 6260 const mainItem = { 6261 id: Number(id), 6262 quantity: 1, 6263 properties 6264 } 6265 items.push(mainItem) 6266 const cardId = $("#itemCards").find(".selected input").val() 6267 const cardItem = { 6268 id: Number(cardId), 6269 quantity: 1, 6270 properties: { "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', type: 'card' } 6271 } 6272 console.log(cardId, 'cardId') 6273 if(cardId) { 6274 items.push(cardItem) 6275 } 6276 const addon = await addons() 6277 if(addon) { 6278 for(let i = 0;
6278 i < addon.length; i++){ 6279 items.push({ 6280 id: addon[i].id, 6281 quantity: addon[i].quantity, 6282 properties: addon[i].properties 6283 }) 6284 } 6285 } 6286 const addItems = await additem(items) 6287 console.log(addItems.items, 'add items') 6288 if(addItems) { 6289 $(this).find("span").removeClass("loading") 6290 disablePopup() 6291 showPopupCart(addItems.items) 6292 6293 localStorage.setItem("items", JSON.stringify(addItems.items)) 6294 } 6295 }) 6296 6297 $("#addtocart-cart .btn").click(async function(){ 6298 const id = $("#productSelect").find('option:selected').val() 6299 const mainProps = { 6300 id: $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 6301 type: 'product' 6302 } 6303 const props = await propItems() 6304 const properties = { ...mainProps, ...props }; 6305 const items = { 6306 id: Number(id), 6307 quantity: 1, 6308 properties 6309 } 6310 const addItems = await additem(items) 6311 if(addItems) { 6312 showPopupCart(addItems.items) 6313 localStorage.setItem("items", JSON.stringify(addItems)) 6314 } 6315 }) 6316 6317 $(".formAddressPurchase [required]").change(function(){ 6318 const t = $(this) 6319 const p = t.parent() 6320 const v = t.val() 6321 if(v !== '') { 6322 p.removeClass("error") 6323 } 6324 }) 6325 6326 $("#save-card").click(async function(){ 6327 const parent = $(this).parents(".sectionPurchase") 6328 const next = parent.next(".sectionPurchase") 6329 $(this).find("span").addClass("loading") 6330 const card = await saveCard() 6331 console.log(card, 'ssaveCCC') 6332 if(card?.status === 200 || card?.status === 201) { 6333 $(".scanCard").removeClass("hide") 6334 $(this).find("span").removeClass("loading") 6335 parent.addClass("hide") 6336 next.removeClass("hide") 6337 if(next.hasClass("purchaseAddon")) { 6338 $("[data-addon=upsell-all]").click() 6339 console.log("clarity event addons") 6340 window.clarity("event", `${productType} add-ons`) 6341 // Ensure addon items are loaded when entering addon popup 6342 setTimeout(function() { 6343 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6344 $("[data-addon=upsell-all]").trigger("click") 6345 } 6346 }, 100) 6347 } 6348 if(next.hasClass("purchaseAddress")) { 6349 $("#zip").select2() 6350 } 6351 } 6352 }) 6353 6354 $("#skip-card").click(async function(){ 6355 $("#greetingCard [data-properties]").val("") 6356 $("#properties-photo").val("") 6357 $("#properties-video").val("") 6358 const parent = $(this).parents(".sectionPurchase") 6359 const next = parent.next(".sectionPurchase") 6360 parent.addClass("hide") 6361 next.removeClass("hide") 6362 // $("#itemCards").html("") 6363 removeImage() 6364 removeVideo() 6365 if(next.hasClass("purchaseAddon")) { 6366 $("[data-addon='upsell-all']").click() 6367 console.log("clarity event addons") 6368 window.clarity("event", `${productType} add-ons`) 6369 // Ensure addon items are loaded when entering addon popup 6370 setTimeout(function() { 6371 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6372 $("[data-addon='upsell-all']").trigger("click") 6373 } 6374 }, 100) 6375 } 6376 if(next.hasClass("purchaseAddress")) { 6377 $("#zip").select2() 6378 } 6379 }) 6380 6381 $("#msgCard").click(async function(){ 6382 $(this).parent().addClass("loading") 6383 let occasion = $(".selected[data-occassion]").data("occassion") 6384 occasion = occasion?.replace("greeting-card-", "") 6385 const { data } = await getFetch(`${host}/api/card/template/occasion?name=${occasion}`); 6386 const d = data?.data 6387 for(let i = 0; i < d.length; i++) { 6388 const num = Math.floor(Math.random() * (d.length - 1 + 1) + 1); 6389 const greeting = d[num]?.Greeting 6390 $(".greetingCard textarea").val(greeting) 6391 $(this).parent().removeClass("loading") 6392 } 6393 $("#save-card").attr("disabled", false) 6394 }) 6395 6396 $(".sectionPurchaseBoard .next-purchase-button").click(function(){ 6397 const parent = $(this).parents(".sectionPurchase") 6398 const next = parent.next(".sectionPurchase") 6399 parent.addClass("hide") 6400 next.removeClass("hide") 6401 }) 6402 6403 $("#editCard").click(function(){ 6404 $(".custom-card").show() 6405 $(".preview-card").hide() 6406 }) 6407 6408 $("#first_name, #last_name").change(function(){ 6409 const v = $(this).val() 6410 const first_name = $("#first_name").val() 6411 const last_name = $("#last_name").val() !== '' ? ' ' + $("#last_name").val() : '' 6412 $("[data-properties=nama-penerima]").val(first_name+last_name) 6413 }) 6414 6415 $("[data-occassion]").click(function(){ 6416 const t = $(this) 6417 const p = t.parents(".sectionPurchase") 6418 // $(".greetingCard").addClass("disabled") 6419 const occasion = t.data("occassion") 6420 loadItemOccasion(t, occasion) 6421 }) 6422 6423 $("#itemCards").delegate(".item-card:not(.item-without-card) label", "click", function(){ 6424 const id = $(this).parent(".item-card").data("id") 6425 const t = $(this).parent(".item-card") 6426 const target = t.find("input") 6427 const v = $('.item-card input[type="radio"]:checked').val(); 6428 $("#itemCards .item-card").removeClass("selected") 6429 t.addClass("selected") 6430 $("#itemCards .item-card").find("input").attr("name", "") 6431 if(target.length > 0) { 6432 target.attr("name", "id[]") 6433 $("#properties-card").val(id) 6434 $(".greetingCard").removeClass("disabled") 6435 $("#skip-card").attr("disabled", false) 6436 } else { 6437 $("#properties-card").val("") 6438 } 6439 }) 6440 6441 $("#itemCards").delegate(".item-without-card label", "click", function(){ 6442 const parent = $(this).parents(".sectionPurchase") 6443 const next = parent.next(".sectionPurchase") 6444 $(".greetingCard").addClass("disabled") 6445 parent.addClass("hide") 6446 next.removeClass("hide") 6447 $("[data-addon=upsell-all]").click() 6448 $("#zip").select2() 6449 }) 6450 6451 $("[data-properties=ucapan]").keyup(function(){ 6452 const v = $(this).val() 6453 const p = $(this).parents(".sectionPurchase") 6454 $(".purchaseAddress").find(".greetingCard textarea").val(v) 6455 if(v.length > 3) { 6456 p.find(".next-purchase-button").attr("disabled", false) 6457 } else { 6458 p.find(".next-purchase-button").attr("disabled", true) 6459 } 6460 }) 6461 6462 $("[data-properties=penerima]").keyup(function(){ 6463 const v = $(this).val() 6464 $(".purchaseAddress").find("[data-properties=penerima]").val(v) 6465 }) 6466 6467 $("[data-properties=pengirim]").keyup(function(){ 6468 const v = $(this).val() 6469 $(".purchaseAddress").find("[data-properties=pengirim]").val(v) 6470 }) 6471 6472 $(document).click(function(e){
6473 6474 if($(e.target).closest('.wrapperPopupCart').length != 0) return false; 6475 // $('#popupCart').fadeOut('slow'); 6476 // location.reload() 6477 }); 6478 6479 $(".toggleAddonCart").click(function(){ 6480 const p = $(this).parent(".itemAddonCart") 6481 p.toggleClass("open") 6482 }) 6483 6484 $(".btnViewCart").click(function(){ 6485 window.location.href = "https://outerbloom.com/cart"; 6486 }) 6487 6488 $(".btnViewCheckout").click(async function(){ 6489 $(this).find("span").addClass("loading") 6490 let zip = $("#zip").val() 6491 const first_name = $("#first_name").val() 6492 const last_name = $("#last_name").val() 6493 const company = $("#company").val() !== '' ? $("#company").val() : '' 6494 const address1 = $("#delivery_address").val() 6495 const address2 = zip && zip !== '' ? zip?.split(' - ')[1] : '' 6496 zip = zip && zip !== '' ? zip?.split(' - ')[0] : '' 6497 const phone = $("#recipient_number").val() 6498 const city = $("#cities").val() 6499 const province = $("#province").val() 6500 const country = 'Indonesia' 6501 const ver = Date.parse(new Date()) 6502 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}` 6503 6504 const clear = await fetch(`/cart/clear.js`, {method: 'POST'}) 6505 if(clear.status === 200) { 6506 const savedItem = window.localStorage.getItem("items"); 6507 const items = JSON.parse(savedItem) 6508 const addItems = await additem(items) 6509 console.log(addItems, 'new addItems') 6510 if(addItems) { 6511 window.location.href = `https://outerbloom.com/checkout?${params}`; 6512 } 6513 } 6514 }) 6515 6516 $(".btnContinueShopping").click(function(){ 6517 window.location.href = "https://outerbloom.com/"; 6518 }) 6519 6520 if (isIOS) { 6521 $(".empty-state-card").click(function(){ 6522 $("#input-foto").trigger("click") 6523 }) 6524 $(".btn-upload-image").click(function(){ 6525 $("#input-foto").trigger("click") 6526 }) 6527 $("[for=input-video]").click(function(){ 6528 $("#input-video").trigger("click") 6529 }) 6530 $(".btn-upload-papan").click(function(){ 6531 $("#logoPapan").trigger("click") 6532 }) 6533 } 6534 6535 $("[data-properties]").each(function(){ 6536 const select = $(this).parents(".form-group").find("select") 6537 $(this).change(function(){ 6538 const name = $(this).data("properties") 6539 const v = $(this).val() 6540 if (name == 'telepon-penerima') { 6541 let phone = v.replace(/[^0-9]/g, '') 6542 $(this).val(phone); 6543 $("#properties-telepon-penerima").val(phone) 6544 $('.iti__search-input').val('-') 6545 } else { 6546 $("#properties-" + name).val(v) 6547 } 6548 }) 6549 select.on("change", function(){ 6550 const name = $(this).data("properties") 6551 const v = $(this).val() 6552 $("#properties-" + name).val(v) 6553 }) 6554 }) 6555 6556 $("#show_note").click(function(){ 6557 nameq = $("#properties-nama-penerima").val() 6558 dear = $("#properties-kartu-nama-penerima").val() 6559 card = $("[data-properties=ucapan]").val() 6560 sender = $("#properties-kartu-nama-pengirim").val() 6561 photo = $("#properties-photo").val() 6562 video = $("#properties-video").val() 6563 updateCard(nameq, dear, card, sender, photo, video, status) 6564 }) 6565 6566 $(".remove-image").click(function(e){ 6567 e.preventDefault() 6568 $(this).find("img").show() 6569 removeImage() 6570 }) 6571 6572 $(".remove-media").click(function(e){ 6573 e.preventDefault() 6574 $(this).find("img").show() 6575 removeVideo() 6576 }) 6577 6578 6579 6580 $("[data-delivery_method]").click(function(e){
6581 e.preventDefault() 6582 const t = $(this) 6583 const data = t.data("delivery_method") 6584 $("[data-delivery_method]").removeClass("selected") 6585 t.addClass("selected") 6586 $("#cities").val("") 6587 $("#properties-delivery-date").val("-") 6588 $("#deliveryDate button").removeClass("selected") 6589 $("#full-date").val("Full Calendar â") 6590 $("#propDeliveryDate").val("") 6591 const step3 = $("#step-3") 6592 if(data.match('PickUp')) { 6593 $(".selfpickup-point").show() 6594 step3.find("[data-finished=false]").hide() 6595 $("#panel-4").hide() 6596 step3.find("[data-finished=true]").show() 6597 $("#cities").attr("required", false) 6598 $("#form-group-city").hide() 6599 $("#row-delivery-time").hide() 6600 $("#propDeliveryTime, #properties-delivery-time, #properties-nama-penerima, #properties-alamat-penerima, #properties-kodepos, #properties-kodepos, #properties-telepon-penerima").val("-") 6601 $("#propDeliveryTime").attr("required", false) 6602 // $("#deliveryDate").find("button:first-child").addClass("stop") 6603 $(".form-selfpickup").show() 6604 $(".form-delivery").hide() 6605 $(".form-delivery").find("input, textarea, select").val("") 6606 $(".form-delivery").find("input, textarea, select").attr("required", false) 6607 $("#properties-shipping").val("0") 6608 $("#noteDeliveryDate").hide() 6609 $(".form-delivery .form-control").attr("required", false) 6610 $("#stepNav4").hide() 6611 6612 $("#deliveryDate").find("button:nth-child(1)").addClass("stop") 6613 6614 6615 6616 if(timeOfDay >= 16.01){ 6617 $("#deliveryDate").find("button:nth-child(2)").addClass("stop") 6618 } 6619 } else { 6620 6621 6622 $("#deliveryDate").find("button:nth-child(1)").removeClass("stop") 6623 step3.find("[data-finished=false]").show() 6624 $("#panel-4").show() 6625 step3.find("[data-finished=true]").hide() 6626 $("#cities").attr("required", true) 6627 $(".selfpickup-point").hide() 6628 $("#form-group-city").show() 6629 $("#cities").val('').trigger('change'); 6630 $("#properties-kota-pengiriman").val("-") 6631 6632 $("#row-delivery-date, #row-delivery-time").show() 6633 $("#propDeliveryDate, #propDeliveryTime").attr("required", true) 6634 $("#deliveryDate").find("button").removeClass("stop") 6635 $(".form-selfpickup").hide() 6636 $(".form-delivery").show() 6637 $(".form-delivery").find("input, textarea, select").attr("required", true)
6638 $(".form-delivery [data-properties]").attr("readonly", false) 6639 $("#properties-kodepos").val("-") 6640 $("#properties-alamat-penerima").val("-") 6641 $(".form-delivery .form-control").attr("required", true) 6642 $(this).parents(".setup-content").attr("id", "step-1") 6643 6644 $("#stepNav4").show() 6645 } 6646 }) 6647 6648 $("[name=selfpickup]").click(function(){ 6649 const p = $(this).parents(".row-pickup") 6650 const pickupCity = $("input[name='selfpickup']:checked").val(); 6651 const pickupAddress = $("input[name='selfpickup']:checked").data("address"); 6652 const pickupZip = $("input[name='selfpickup']:checked").data("zip"); 6653 6654 $(".row-pickup").removeClass("selected") 6655 p.addClass("selected") 6656 6657 $("#properties-kota-pengiriman").val(pickupCity) 6658 $("#province").val("Jakarta") 6659 $("#properties-alamat-penerima").val(pickupAddress) 6660 $("#properties-kodepos").val(pickupZip) 6661 }) 6662 6663 $("#cities").change(function(e){ 6664 e.preventDefault() 6665 $(this).parent(".row").find("p.error").remove() 6666 $("#full-date").val("Full Calendar") 6667 $("#deliveryDate, #deliveryDateFull label ").show() 6668 $("#deliveryDateFull").removeClass("filled") 6669 $(".btnChangeDeliveryDate").addClass("hide") 6670 $("#full-date").prop('disabled', false); 6671 $("#stepNav2, #stepNav3, #stepNav4").removeClass("btn-success") 6672 $("#stepNav2, #stepNav3, #stepNav4").find("a").attr("disabled", true) 6673 const step3 = $("#step-3") 6674 $("#cityNote").remove() 6675 $("#noteDeliveryDate").hide() 6676 $("#noteDeliveryDate").empty() 6677 let v = $(this).val() 6678 let v2 = $('option:selected', this).attr('data-city'); 6679 let v3 = $('option:selected', this).attr('data-province'); 6680 let price = $('option:selected', this).attr('data-price'); 6681 $("#country").val(v) 6682 $("#properties-kota-pengiriman").val(v) 6683 $("#properties-shipping").val(price) 6684 $("#deliveryDate button, #deliveryTime button, .calendarseasonal .button").removeClass("selected") 6685 $("#properties-delivery-date, #properties-delivery-time").val("-") 6686 $("#propDeliveryDate, #propDeliveryTime").val("") 6687 let note = $('option:selected', this).attr('data-note'); 6688 if(v === 'Kota Lainnya') { 6689 $("#noteDeliveryDate").show() 6690 $("#noteDeliveryDate").text("Order akan segera dikirim. Estimasi tanggal diterima akan disesuaikan dengan waktu pengiriman oleh pihak ekspedisi ke lokasi Anda.") 6691 $("#zip").attr("required", false) 6692 $("#zip").hide() 6693 $("#propDeliveryDate, #propDeliveryTime").attr("required", false) 6694 $("#propDeliveryDate, #properties-delivery-date, #propDeliveryTime, #properties-delivery-time").val("-") 6695 $("#row-delivery-date, #row-delivery-time").hide() 6696 $("#properties-shipping").val("") 6697 // $(this).parents(".setup-content").attr("id", "step-2") 6698 6699 } else { 6700 $("#noteDeliveryDate").hide() 6701 $("#zip").attr("required", true) 6702 $("#zip").show() 6703 $("#row-delivery-date, #row-delivery-time").show() 6704 $("#propDeliveryDate, #propDeliveryTime").attr("required", true) 6705 $("#deliveryDate").find("button").removeClass("stop") 6706 // $(this).parents(".setup-content").attr("id", "step-1") 6707 6708 } 6709 6710 6711 6712 // if(v !== 'Jakarta') { 6713 // $("[data-type=upsell]").hide() 6714 // } else { 6715 // $("[data-type=upsell]").show() 6716 // } 6717 // $('.collection-addons')[0].swiper.update(); 6718 6719 6720 getProvince(v) 6721 $("#zip").html(`<option value="">Choose Postal Code</option>`) 6722 renderZip(v, v2, v3) 6723 6724 disabledSameDay() 6725 6726 6727 if(v !== 'Jakarta' && v !== 'Depok' && v !== 'Bekasi' && v !== 'Tangerang') { 6728 6729 $("#cardOccasion, #navAddon, .collection-addons").hide() 6730 6731 $("[data-addon=giftcard]").show() 6732 $("[data-addon=giftcard]").click() 6733 $("#itemAddons").show() 6734 $("#flower-step").addClass("nonjadetabek") 6735 } else { 6736 $("#cardOccasion, #navAddon, .collection-addons").show() 6737 $("[data-addon=all]").click() 6738 $("#flower-step").removeClass("nonjadetabek") 6739 } 6740 6741 if(v !== '') { 6742 $("#personalizeBtn .btn").attr("disabled", false) 6743 } else { 6744 $("#personalizeBtn .btn").attr("disabled", true) 6745 } 6746 6747 }) 6748 6749 $("#zip").change(function(e){
6750 let v = $(this).val() 6751 var city = $("#cities").find('option:selected'); 6752 $("#properties-kodepos").val(v) 6753 if(city === 'Kota Lainnya') { 6754 $(this).attr("required", true) 6755 $("#recipient-address").val("") 6756 } 6757 }) 6758 6759 6760 var minDate = +7 6761 6762 6763 6764 $("#full-date").datepicker({ 6765 minDate, 6766 dateFormat: 'Mdd_yy', //Nop22_2021, 6767 6768 beforeShowDay: disabledays, 6769 6770 onSelect: function (date) { 6771 $("#deliveryDate, #deliveryDateFull label ").hide() 6772 $("#deliveryDateFull").addClass("filled") 6773 $(".btnChangeDeliveryDate").removeClass("hide") 6774 $("#full-date").prop('disabled', true); 6775 $('#propDeliveryDate, #properties-delivery-date').val('Kirim_'+date); 6776 $(".date-full").addClass("selected") 6777 $(".date-single, .calendar-group").removeClass("selected") 6778 $("#propDeliveryTime").val('') 6779 $("#properties-delivery-time").val('-') 6780 $(".time-single").removeClass("selected") 6781 6782 6783 } 6784 }); 6785 6786 $(".btnChangeDeliveryDate").click(function(){ 6787 $("#deliveryDate, #deliveryDateFull label ").show() 6788 $("#deliveryDateFull").removeClass("filled") 6789 $(".btnChangeDeliveryDate").addClass("hide") 6790 $("#full-date").prop('disabled', false); 6791 }) 6792 6793 $("#deliveryDate").delegate(".calendarbutton:not(.date-full)", "click", function(e){ 6794 e.preventDefault() 6795 $(this).parents("#row-delivery-date").find("p.error").remove() 6796 const fulldate = $(this).data("fulldate") 6797 const day = $(this).data("day") 6798 const date = $(this).data("date")
6799 const month = $(this).data("month") 6800 const year = $(this).data("year") 6801 const off_pagi = $(this).data("offpagi") 6802 const off_siang = $(this).data("offsiang") 6803 const off_Malam = $(this).data("offMalam") 6804 $(".calendarbutton").removeClass("selected") 6805 $(this).addClass("selected") 6806 $("#propDeliveryDate, #properties-delivery-date").val(`Kirim_${month}${date}_${year}`) 6807 $("#propDeliveryTime").val('') 6808 $("#properties-delivery-time").val('-') 6809 $(".calendarbutton2").removeClass("selected") 6810 $("#full-date").val("Full Calendar") 6811 6812 6813 if(off_pagi && timeOfDay > off_pagi) { 6814 $("[data-time=Morning]").attr("disabled", true) 6815 } else { 6816 $("[data-time=Morning]").attr("disabled", false) 6817 } 6818 if(off_siang && timeOfDay > off_siang) { 6819 $("[data-time=Afternoon]").attr("disabled", true) 6820 } else { 6821 $("[data-time=Afternoon]").attr("disabled", false) 6822 } 6823 6824 6825 6826 }) 6827 6828 if(today === 14 && timeOfDay > 17.00) { 6829 $("#deliveryDate button:first-child").attr("disabled", true) 6830 } 6831 6832 $("#deliveryTime").delegate(".calendarbutton2", "click", function(e){ 6833 e.preventDefault() 6834 const time = $(this).data("time") 6835 const date = $("#propDeliveryDate").val() 6836 if(date == '') { 6837 return alert('Silakan pilih tanggal terlebih dahulu') 6838 } 6839 $(".calendarbutton2").removeClass("selected") 6840 $(this).addClass("selected") 6841 $("#propDeliveryTime, #properties-delivery-time").val(`KirimJam_${date.replace('Kirim_','')}_${time}`) 6842 }) 6843 6844 $('textarea.has-limit, input.has-limit').keyup(function () { 6845 max = this.getAttribute("maxlength"); 6846 let len = $(this).val().length; 6847 let limit = $(this).siblings(".limit"); 6848 if (len > max) { 6849 alert('you have reached the limit'); 6850 } else { 6851 limit.text(`${len}/${max}`); 6852 } 6853 }); 6854 6855 $("#button-action-step .btn").click(function(){ 6856 $(this).find("span").text("Processing..."); 6857 }); 6858 6859 $(".finishBtn").on('click', function() { 6860 $(this).addClass("is-adding"); 6861 // $(this).click(); 6862 }); 6863 6864 $('.setup-panel .nav-item a.btn-success').trigger('click'); 6865 6866 $("#button-action .btn").click(function(){ 6867 $("#flower-step").addClass("block"); 6868 $("#button-action").hide(); 6869 }); 6870 6871 $(".close-how-order").click(function(){ 6872 $("#flower-step").removeClass("block"); 6873 $("#button-action").show(); 6874 }); 6875 6876 $("#input-foto, #input-video").change(function(e){ 6877 readURL(this); 6878 }); 6879 6880 $("#logoPapan").change(function(){ 6881 readURLPapan(this); 6882 }); 6883 6884 $("#address-upload").change(async function(){ 6885 const upload_address = await readURLAddress(this) 6886 if(upload_address) { 6887 const url = upload_address.url 6888 $(".props-address-upload").val(url) 6889 $(".form-address").addClass("address-uploaded") 6890 $(".form-address-upload").addClass("uploaded") 6891 6892 $(this).parents(".form-group").siblings(".form-group").find("[required]").attr("required", false) 6893 } 6894 }) 6895 6896 $(".address-manualy").click(function(){ 6897 $(".form-address-upload").removeClass("uploaded"); 6898 $(".photo-address").hide(); 6899 $(".form-address").removeClass("address-uploaded") 6900 $("#formAddressPurchase").find(".form-control").attr("required", true) 6901 }); 6902 6903 $(".case-video-preview").delegate(".replace-video", "click", function(){ 6904 $("#input-video").trigger("click") 6905 }) 6906 6907 $('.date-single').click(function(e) { 6908 e.preventDefault(); 6909 $('.date-single').removeClass('selected'); 6910 $('#full-date').removeClass('selected'); 6911 $(this).addClass('selected'); 6912 $('#full-date').html('Full' + '<br/>' + 'Calendar'); 6913 }); 6914 $('#full-date').click(function(e){ 6915 e.preventDefault(); 6916 $('.date-single').removeClass('selected'); 6917 $(this).addClass('selected'); 6918 }); 6919 6920 // $("tr").each(function(){ 6921 // if($(this).text().match('SKU')) { 6922 // $(".sku-product").html($(this).parents("table").html()) 6923 // } 6924 // }) 6925 6926 $("#product-image").scroll(function(){ 6927 $(".desc-add").each(function(){ 6928 const img = $(this).find("img") 6929 const src = img.data("src") 6930 img.attr("src", src) 6931 }) 6932 }) 6933 6934 $(".product-fixed").hide() 6935 6936 let target = $("#personalizeBtn") 6937 6938 6939 $(".product-meta").scroll(function() { 6940 if ($(window).scrollTop() >= target.offset().top ) { 6941 $(".product-fixed").addClass("show") 6942 } else { 6943 $(".product-fixed").removeClass("show") 6944 } 6945 }); 6946 6947 $(window).scroll(function() { 6948 if ($(window).scrollTop() >= target.offset().top ) { 6949 $(".product-fixed").addClass("show") 6950 } else { 6951 $(".product-fixed").removeClass("show") 6952 } 6953 }); 6954 }); 6955 </script>
6955 6956 6957
6957<script> 6958 // 6959 </script>
6959 6960 6961
6961<script> 6962 $(document).ready(function(){ 6963 $('table tr td').each(function(){ 6964 var texto = $(this).text(); 6965 var nextto = $(this).next("td"); 6966 var sku = $("#data-sku").val() 6967 if(texto == 'SKU'){ 6968 nextto.text(sku) 6969 } 6970 }); 6971 6972 $(".stamped-summary-actions-newquestion").text("Tulis Pertanyaan"); 6973 $(".stamped-summary-actions-newreview").text("Tulis Review"); 6974 $("#tab-questions").text("Pertanyaan"); 6975 6976 $(".freeship .icon").click(function(){ 6977 $(".fs-content").slideToggle(); 6978 $(this).parents(".freeship").toggleClass("expand"); 6979 }); 6980 6981 var $easyzoom = $('.easyzoom').easyZoom(); 6982 // Setup thumbnails example 6983 var api1 = $easyzoom.filter('.easyzoom--with-thumbnails').data('easyZoom'); 6984 $('.thumbnails').on('click', 'a', function(e) { 6985 var $this = $(this); 6986 e.preventDefault(); 6987 // Use EasyZoom's `swap` method 6988 api1.swap($this.data('standard'), $this.attr('href')); 6989 }); 6990 6991 $('#playerID').click(function(){ 6992 var videoURL = $('#VdoID').attr('src'), 6993 dataplay = $('#VdoID').attr('data-play'); 6994 6995 //for check autoplay 6996 //if not set autoplay=1 6997 if(dataplay == 0 ){ 6998 $('#VdoID').attr('src',videoURL+'?autoplay=1'); 6999 $('#VdoID').attr('data-play',1); 7000 } 7001 else{ 7002 var videoURL = $('#VdoID').attr('src'); 7003 videoURL = videoURL.replace("?autoplay=1", ""); 7004 $('#VdoID').prop('src',''); 7005 $('#VdoID').prop('src',videoURL); 7006 7007 $('#VdoID').attr('data-play',0); 7008 } 7009 7010 }); 7011 7012 $(".product-photo-thumb-video").click(function(e){ 7013 e.preventDefault(); 7014 7015 var newEmbed = $(this).attr('href'); 7016 $("#featured-image-product").addClass("img-video"); 7017 $("#ProductPhotoImg").hide(); 7018 $("#featured-image-product .video").show(); 7019 $("#featured-image-product iframe").attr('src', newEmbed); 7020 $("#VdoID")[0].src += "&autoplay=1"; 7021 }); 7022 $(".product-single__thumbnail").click(function(evt){ 7023 evt.preventDefault(); 7024 $("#featured-image-product").removeClass("img-video"); 7025 $("#ProductPhotoImg").show(); 7026 $("#featured-image-product .video").hide(); 7027 $("#featured-image-product iframe").attr('src', ''); 7028 }); 7029 7030 if($('#product-meta .short-desc > div').length >= 1){ 7031 //console.log('div detected') 7032 var replacer = $('#product-meta .short-desc > div').contents(); 7033 $('#product-meta .short-desc > div').replaceWith(replacer); 7034 7035 var cAssured = $('.c-assured').detach(); 7036 cAssured.insertAfter('.meta-sds .stock-info'); 7037 } 7038 7039 7040 7041 $(".heading-toggle").click(function(){ 7042 $(this).parent().toggleClass("open") 7043 7044 }); 7045 }); 7046 </script>
7046 7047 7048 7049
7049<script type="application/json" id="ProductJson-Product"> 7050 7051 {"id":8144957800663,"title":"KASKUSTOTO : Alternatif Tercepat Anti Nawala Anti Lelet ","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eKASKUSTOTO adalah situs resmi yang memiliki fitur akses live result togel dengan cepat dan terpercaya dan fitur canggih yang kami miliki."} 7052 </script>
7052 7053 7054
7054<script type="application/json" id="VariantJson-Product"> 7055 [ 7056 7057 { 7058 "incoming": false, 7059 "next_incoming_date": null 7060 } 7061 7062 ] 7063 </script>
7063 7064 7065 7066 7067 7068 </div> 7069 7070 7071
7071<script src="//outerbloom.com/cdn/shopifycloud/storefront/assets/themes_support/option_selection-b017cd28.js" type="text/javascript"></script>
7071 7072 <style> 7073 .stamped-review-header-title, 7074 .stamped-review-header .author, 7075 .stamped-review-content-body, 7076 .stamped-sort-select, 7077 .stamped-review-header .verified-badge[data-type=buyer]:after, 7078 .stamped-review-header-byline, 7079 .stamped-review-reply-body {font-size: 14px!important;font-family: 'Barlow',sans-serif!important;} 7080 .stamped-review {margin-bottom: 0;} 7081 .stamped-review-body {padding-left: 65px;} 7082 .stamped-review:first-child {padding-top: 25px;} 7083 .stamped-review-content {clear: none;} 7084 .stamped-review-reply {margin: 15px 0 0 65px;background: #f2f2f2;border-left: none;} 7085 .stamped-review-reply-body {padding-left: 65px;} 7086 .stamped-review-header .author {text-transform: capitalize;} 7087 .stamped-questions .stamped-review-content {padding-left: 65px;} 7088 7089 .stamped-pagination {margin: 20px 0 0;} 7090 .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;} 7091 .stamped-pagination li a {color: #121212;padding: 13px 18px;vertical-align: middle;display: block;} 7092 .stamped-pagination li.active a {background-color: #ddd;font-weight: 400;} 7093 .stamped-pagination li:hover a {background: #ddd;} 7094 .stamped-pagination .next {border-right: 1px solid #ccc;} 7095 .stamped-pagination li:first-child {border-top-left-radius: 5px;border-bottom-left-radius: 5px;} 7096 .stamped-pagination li:last-child {border-top-right-radius: 5px;border-bottom-right-radius: 5px;} 7097 7098 #stamped-pagination-question span.page {display: inline-block;border: 1px solid #ccc;width: 47px;} 7099 #stamped-pagination-question span {font-size: 14px;} 7100 #stamped-pagination-question .page.active {padding: 12px;font-weight: 400;background: #ddd;} 7101 #stamped-pagination-question a, #stamped-pagination-question .page.active {color: #121212;padding: 13px 18px;vertical-align: middle;display: inline-block;} 7102 .stamped-pagination-deco {color: #121212;padding: 13px 18px;width: 47px;vertical-align: middle;display: inline-block;border: 1px solid #ccc;padding: 12px;} 7103 .stamped-pagination-prev, .stamped-pagination-next {position: inherit;} 7104 .stamped-pagination-prev a, .stamped-pagination-next a {width: auto!important;border: 1px solid #ccc;} 7105 7106 @media (max-width: 480px){ 7107 .stamped-review-reply {margin-left: 0!important;} 7108 select.stamped-sort-select {font-size: 13px!important;} 7109 } 7110 7111 #product-reviews .stamped-summary-ratings, #product-reviews .stamped-summary-actions, .stamped-content { 7112 display: block !important; 7113 } 7114 </style> 7115
7115<script> 7116 var selectCallback = function(variant, selector) { 7117 timber.productPage({ 7118 money_format: "Rp {{amount_no_decimals}}", 7119 variant: variant, 7120 selector: selector 7121 }); 7122 }; 7123 7124 jQuery(function($) { 7125 new Shopify.OptionSelectors('productSelect', { 7126 product: 7127 7128 7129 7130 7131 7132 {"id":8144957800663,"title":"KASKUSTOTO : Alternatif Tercepat Anti Nawala Anti Lelet ","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eKASKUSTOTO adalah situs resmi yang memiliki fitur akses live result togel dengan cepat dan terpercaya dan fitur canggih yang kami miliki."}, 7133 onVariantSelected: selectCallback, 7134 enableHistoryState: true 7135 }); 7136 7137 // Add label if only one product option and it isn't 'Title'. Could be 'Size'. 7138 7139 7140 // Hide selectors if we only have 1 variant and its title contains 'Default'. 7141 7142 $('.selector-wrapper').hide(); 7143 7144 }); 7145 </script>
7145 7146 7147 7148 7149
7149<script type="application/ld+json"> 7150 { 7151 "@context": "http://schema.org", 7152 "@type": "Product", 7153 "offers": { 7154 "@type": "Offer", 7155 "availability":"https://schema.org/InStock", 7156 "price": 835000, 7157 "priceValidUntil": "05-10-2025", 7158 "priceCurrency": "IDR", 7159 "url": "https://lower9thwardhomeowners.org/" 7160 }, 7161 "brand": { 7162 "@type": "Brand", 7163 "name": "Outerbloom Florist" 7164 }, 7165 "sku": "8144957800663", 7166 "gtin13": "Jawa", 7167 "name": "KASKUSTOTO : Alternatif Tercepat Anti Nawala Anti Lelet ", 7168 "description": "KASKUSTOTO adalah situs resmi yang memiliki fitur akses live result togel dengan cepat dan terpercaya dan fitur canggih yang kami miliki.", 7169 "category": "KASKUSTOTO adalah situs resmi yang memiliki fitur akses live result togel dengan cepat dan terpercaya dan fitur canggih yang kami miliki.", 7170 "url": "https://lower9thwardhomeowners.org/", 7171 "image": { 7172 "@type": "ImageObject", 7173 "url": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426", 7174 "image": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426", 7175 "name": "KASKUSTOTO : Alternatif Tercepat Anti Nawala Anti Lelet ", 7176 "width": 1024, 7177 "height": 1024 7178 } 7179 } 7180 </script>
7180 7181 7182 7183 7184 7185 7186
7186<script id="bss-ltap-hide-price" type="text/javascript" > 7187 !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)}))}
7187)),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)}
7187)),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()}
7187if("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)}
7187if(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");
7187c&&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
7187-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");
7187i&&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
7187--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
7187opify.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");
7187e.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=
7187o.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");
7187if(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();
7187let 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()}]); 7188 </script>
7188 7189 7190 </main> 7191 7192 <div id="shopify-section-newsletter" class="shopify-section"><br> 7193 <style> 7194 #shopify-section-newsletter { 7195 background: url('https://ik.imagekit.io/9ng7ozhvc/petirkaskus.png'); 7196 background-attachment: fixed; 7197 margin-bottom: 0; 7198 } 7199 input:-webkit-autofill, 7200 input:-webkit-autofill:hover, 7201 input:-webkit-autofill:active, 7202 input:-webkit-autofill:focus { 7203 -webkit-box-shadow:0 0 0 50px white inset; 7204 -webkit-text-fill-color: #ffffff; 7205 } 7206 .section-newsletter { 7207 max-width: 800px; 7208 margin: auto; 7209 padding: 50px 0; 7210 } 7211 .section-newsletter h2 { 7212 font-weight: 700; 7213 font-size: 24px; 7214 } 7215 .section-newsletter input[type="email"] { 7216 width: 100%; 7217 text-align: center; 7218 border: none; 7219 border-bottom: 1px solid #ffffff; 7220 font-size: 16px; 7221 color: #757575; 7222 background-color: #eeeeee; 7223 } 7224 .section-newsletter .row label { 7225 font-size: 14px; 7226 cursor: pointer; 7227 } 7228 .section-newsletter .radio-inline input { 7229 width: auto; 7230 } 7231 .section-newsletter .btn { 7232 width: 130px; 7233 border: 1px solid #ffffff; 7234 box-shadow: none; 7235 font-size: 16px; 7236 font-weight: 500; 7237 text-transform: uppercase; 7238 } 7239 .section-newsletter form { 7240 margin: 30px 0 60px; 7241 } 7242 .section-newsletter input[type="radio"] { 7243 position: absolute; 7244 width: 1px; 7245 height: 1px; 7246 } 7247 .section-newsletter [type="radio"]:checked + label, .section-newsletter [type="radio"]:not(:checked) + label { 7248 position: relative; 7249 padding-left: 28px; 7250 cursor: pointer; 7251 line-height: 20px; 7252 display: inline-block; 7253 color: #666; 7254 } 7255 .section-newsletter [type="radio"]:checked + label:before, .section-newsletter [type="radio"]:not(:checked) + label:before { 7256 content: ''; 7257 position: absolute; 7258 left: 0; 7259 top: 0; 7260 width: 18px; 7261 height: 18px; 7262 border: 1px solid #ddd; 7263 border-radius: 100%; 7264 background: #fff; 7265 } 7266 .section-newsletter [type="radio"]:checked + label:after, .section-newsletter [type="radio"]:not(:checked) + label:after { 7267 content: ''; 7268 width: 12px; 7269 height: 12px; 7270 background: #ffffff; 7271 position: absolute; 7272 top: 3px; 7273 left: 3px; 7274 border-radius: 100%; 7275 -webkit-transition: all 0.2s ease; 7276 transition: all 0.2s ease; 7277 } 7278 .section-newsletter [type="radio"]:not(:checked) + label:after { 7279 opacity: 0; 7280 -webkit-transform: scale(0); 7281 transform: scale(0); 7282 } 7283 .opt-newsletter {display:none;} 7284 .footer-newsletter p, .footer-newsletter p a { 7285 color: #757575; 7286 } 7287 @media (max-width:991px){ 7288 .section-newsletter h2 { 7289 font-size: 32px; 7290 } 7291 .section-newsletter input { 7292 width: 300px; 7293 font-size: 14px; 7294 } 7295 .section-newsletter { 7296 padding: 50px 20px; 7297 } 7298 } 7299 @media (max-width: 480px){ 7300 .section-newsletter input[type="email"] {font-size: 16px;} 7301 } 7302 </style> 7303 <style> 7304 .icon-img-footer { 7305 width: 80px; 7306 padding: 0px 5px; 7307 } 7308 @media (min-width: 768px) { 7309 .icon-img-footer { 7310 width: 120px; 7311 } 7312 } 7313 @media (min-width: 992px) { 7314 .icon-img-footer { 7315 width: 120px; 7316 } 7317 } 7318 7319 .button-login-daftar { 7320 display: grid; 7321 grid-template-columns: repeat(2, 1fr); 7322 font-weight: 700; 7323 } 7324 .button-login-daftar a { 7325 text-align: center; 7326 } 7327 .login, 7328 .register { 7329 color: #00BFFF; 7330 padding: 15px 10px; 7331 font-size: 23px; 7332 } 7333 .login, 7334 .login-button { 7335 background: linear-gradient(to bottom,#000000 0,#000000 100%); 7336 border: 2px solid #00BFFF; 7337 } 7338 .register, 7339 .register-button { 7340 background: linear-gradient(to bottom,#000000 0,#000000 100%); 7341 border: 2px solid #00BFFF; 7342 } 7343 7344 7345 7346 </style> 7347 7348 <!-- wp:html --> 7349
7349<script> 7350 document.addEventListener('DOMContentLoaded', 7351 function(){const faqItems=document.querySelectorAll('.faq-item'); 7352 faqItems.forEach(item=>{const question=item.querySelector('.faq-question'); 7353 question.addEventListener('click', 7354 ()=>{const isActive=item.classList.contains('active'); 7355 faqItems.forEach(otherItem=>{otherItem.classList.remove('active')}); 7356 if(!isActive){item.classList.add('active')}})})}); 7357 </script>
7357 7358 7359 7360 <div class="page__overlay" data-view="offCanvasNavToggle" data-off-canvas="close" bis_skin_checked="1"> 7361 </div> 7362 <div class="faq-section"> 7363 <h2>TENTANG KASKUSTOTO</h2> 7364 7365 <div class="faq-container"> 7366 7367 <div class="faq-item"> 7368 <button class="faq-question">1. Mengapa banyak pemain memilih KASKUSTOTO sebagai platform untuk melihat live result togel online?<span></span></button> 7369 <div class="faq-answer"> 7370 <p>KASKUSTOTO sudah menggunakan sistem live result realtime dan akurat, tampilan fitur yang sederhana serta akses yang mudah digunakan melalui perangkat apa saja setiap hari</p> 7371 </div> 7372 </div> 7373 7374 <div class="faq-item"> 7375 <button class="faq-question">2. Apakah update result di KASUSTOTO berlangsung secara Akurat & Cepat?<span></span></button> 7376 <div class="faq-answer"> 7377 <p>Benar, KASKUSTOTO telah menyediakan live result secara realtime sesuai dengan jadwal pasaran resmi, sehingga sangat membantu pemain untuk memantau hasil terbaru tanpa terlambat.</p> 7378 </div> 7379 </div> 7380 7381 <div class="faq-item"> 7382 <button class="faq-question">3. Jenis pasaran apa saja yang ada di KASKUSTOTO?<span></span></button> 7383 <div class="faq-answer"> 7384 <p>KASKUSTOTO menyediakan berbagai pasaran populer seperti Sydney, Singapore, Macau, Hongkong, serta pasaran internasional lainnya yang banyak di cari oleh para pemain togel online.</p> 7385 </div> 7386 </div> 7387 7388 <div class="faq-item"> 7389 <button class="faq-question">4. Apakah tampilan KASKUSTOTO nyaman di gunakan di perangkat mobile?<span></span></button> 7390 <div class="faq-answer"> 7391 <p>KASKUSTOTO dirancang dengan tampilan responsif dan navigasi sederhana sehingga pemain bisa dengan nyaman ketika mengakses menggunakan perangkat apa saja tanpa mengalami kendala.</p> 7392 </div> 7393 </div> 7394 7395 <div class="faq-item"> 7396 <button class="faq-question">5. Apa keunggulan yang diberikan KASKUSTOTO dibanding dengan platfom lain?<span></span></button> 7397 <div class="faq-answer"> 7398 <p>Keunggulan KASKUSTOTO terletak pada akses yang stabil, informasi yang mudah di pahami, serta fitur ringan yang sangat membantu pemain untuk bermain secara praktis setiap hari.</p> 7399 </div> 7400 </div> 7401 7402 </div> 7403 7404</div> 7405 7406 7407 <div class="overlay overlay-cart"></div> 7408 <div id="CartDrawer" class="drawer drawer--right"> 7409 <div class="drawer__header pl-2 pr-2"> 7410 <div class="drawer__icon-cart display-table-cell"> 7411 <a href="/cart" class=""> 7412 <svg class="icon icon-cart" version="1.1" xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" 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.
7412005-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> 7413 </a> 7414 </div> 7415 <div class="drawer__title h4">Keranjang Belanja</div> 7416 <div class="drawer__close js-drawer-close"> 7417 <button type="button"> 7418 <svg class="icon icon-close" version="1.1" xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" width="32" height="32" viewBox="0 0 32 32"> 7419 <title>icon-close</title> 7420 <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> 7421 </svg> 7422 </button> 7423 </div> 7424 </div> 7425 <div id="CartContainer" class="p-2"></div> 7426 </div> 7427 7428
7428<script> 7429 7430 </script>
7430 7431
7431<script src="//outerbloom.com/cdn/shop/t/138/assets/handlebars.min.js?v=79044469952368397291752652415" defer></script>
7431 7432 <!-- /snippets/ajax-cart-template.liquid --> 7433 7434
7434<script id="CartTemplate" type="text/template"> 7435 7436 <form action="/cart" method="post" novalidate class="cart ajaxcart"> 7437 <div class="ajaxcart__inner" {{ cart.item_count }}> 7438 {{#items}} 7439 <div class="ajaxcart__product"> 7440 <div class="ajaxcart__row" data-line="{{line}}"> 7441 <div class="grid"> 7442 <div class="grid__item one-quarter"> 7443 <a href="{{url}}" class="ajaxcart__product-image"><img src="{{img}}" alt=""></a> 7444 </div> 7445 <div class="grid__item three-quarters"> 7446 <p class="d-block mb-3"> 7447 <a class="h4 d-block mb-2" href="{{url}}" class="ajaxcart__product-name">{{name}}</a> 7448 {{#if variation}} 7449 <span class="ajaxcart__product-meta p">{{variation}}</span> 7450 {{/if}} 7451 {{#properties}} 7452 {{#each this}} 7453 {{#if this}} 7454 <span class="ajaxcart__product-meta p hide">{{@key}}: {{this}}</span> 7455 {{/if}} 7456 {{/each}} 7457 {{/properties}} 7458 7459 </p> 7460 <div class="grid--full display-table"> 7461 <div class="grid__item display-table-cell one-half"> 7462 <div class="ajaxcart__qty"> 7463 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}" data-line="{{line}}"> 7464 <svg version="1.1" xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" 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> 7465 <span class="visually-hidden">Kurangi jumlah barang</span> 7466 </button> 7467 <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]*"> 7468 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-line="{{line}}" data-qty="{{itemAdd}}"> 7469 <svg version="1.1" xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" 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> 7470 <span class="visually-hidden">Tambahkan jumlah barang</span> 7471 </button> 7472 </div> 7473 </div> 7474 <div class="grid__item display-table-cell one-half text-right"> 7475 {{#if discountsApplied}} 7476 <small class="ajaxcart-item__price-strikethrough"><s>{{{originalLinePrice}}}</s></small> 7477 <br><span class="h4">{{{linePrice}}}</span> 7478 {{else}} 7479 <span class="h4">{{{linePrice}}}</span> 7480 {{/if}} 7481 </div> 7482 </div> 7483 {{#if discountsApplied}} 7484 <div class="grid--full display-table"> 7485 <div class="grid__item text-right"> 7486 {{#each discounts}} 7487 <small class="ajaxcart-item__discount">{{ this.title }}</small><br> 7488 {{/each}} 7489 </div> 7490 </div> 7491 {{/if}} 7492 </div> 7493 </div> 7494 </div> 7495 </div> 7496 </div> 7497 </div> 7498 {{/items}} 7499 </div> 7500 <div class="ajaxcart__footer"> 7501 <div class="grid--full cart-subtotal py-2"> 7502 <p>Subtotal</p> 7503 <h3 class="primary">{{{totalPrice}}}</h3> 7504 {{#if totalCartDiscount}} 7505 <p class="ajaxcart__savings text-center"><em>{{{totalCartDiscount}}}</em></p> 7506 {{/if}} 7507 </div> 7508 7509 <a href="/cart" class="btn btn-cta view-more btn-block cart__checkout mt-2">Checkout</a> 7510 7511 <p class="cart-checkout-shipping hide">Free Ongkir dengan belanja di atas Rp.10.000 <a href="/pages/pengiriman">detail</a></p> 7512 </div> 7513 </form> 7514 7515 </script>
7515 7516
7516<script id="AjaxQty" type="text/template"> 7517 7518 <div class="ajaxcart__qty"> 7519 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}"> 7520 <svg version="1.1" xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" width="24" height="24" viewBox="0 0 32 32"> 7521 <title>icon-minus</title> 7522 <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> 7523 </svg> 7524 <span class="visually-hidden">Kurangi jumlah barang</span> 7525 </button> 7526 <input type="text" class="ajaxcart__qty-num" value="{{itemQty}}" min="0" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*"> 7527 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-qty="{{itemAdd}}"> 7528 <svg version="1.1" xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" 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> 7529 <span class="visually-hidden">Tambahkan jumlah barang</span> 7530 </button> 7531 </div> 7532 7533 </script>
7533 7534
7534<script id="JsQty" type="text/template"> 7535 7536 <div class="js-qty mx-auto mt-2"> 7537 <button type="button" class="js-qty__adjust js-qty__adjust--minus" data-id="{{key}}" data-qty="{{itemMinus}}"> 7538 <svg version="1.1" xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" 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> 7539 <span class="visually-hidden">Kurangi jumlah barang</span> 7540 </button> 7541 <input type="text" class="js-qty__num" value="{{itemQty}}" min="1" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*" name="{{inputName}}" id="{{inputId}}"> 7542 <button type="button" class="js-qty__adjust js-qty__adjust--plus" data-id="{{key}}" data-qty="{{itemAdd}}"> 7543 <svg version="1.1" xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" 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> 7544 <span class="visually-hidden">Tambahkan jumlah barang</span> 7545 </button> 7546 </div> 7547 7548 </script>
7548 7549 7550 <style> 7551 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty button, 7552 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty button, 7553 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty button {display: none;} 7554 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input, 7555 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input, 7556 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;opacity: 0.5;} 7557 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input, 7558 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input, 7559 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;} 7560 </style> 7561
7561<script src="//outerbloom.com/cdn/shop/t/138/assets/ajax-cart.js?v=51128912329657147331752652452" defer></script>
7561 7562
7562<script> 7563 jQuery(function($) { 7564 ajaxCart.init({ 7565 formSelector: '#AddToCartForm', 7566 cartContainer: '#CartContainer', 7567 addToCartSelector: '#AddToCartXX', 7568 cartCountSelector: '#CartCount, #CartCount2', 7569 cartCostSelector: '#CartCost', 7570 moneyFormat: "Rp {{amount_no_decimals}}" 7571 }); 7572 }); 7573 7574 jQuery(document.body).on('afterCartLoad.ajaxCart', function(evt, cart) { 7575 // Bind to 'afterCartLoad.ajaxCart' to run any javascript after the cart has loaded in the DOM 7576 timber.RightDrawer.open(); 7577 }); 7578 </script>
7578 7579 7580 7581 7582 7583 <style> 7584 /** Search AutoComplete **/ 7585 .resultsearch .ui-menu-item[data-cat="Collection"], 7586 .resultsearch .ui-menu-item[data-cat="Collection"] {display: none;} 7587 .resultsearch .ui-widget.ui-widget-content { 7588 width: 100%; 7589 top: 48px; 7590 border: none; 7591 box-shadow: 0 4px 8px rgba(255, 255, 255, 0.3); 7592 } 7593 .resultsearch .ui-menu-item {text-align: left;} 7594 .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;} 7595 .ui-state-active { 7596 border: none!important; 7597 background-color: #fafafa!important; 7598 color: #000!important; 7599 } 7600 .ui-menu-item a[data-cat="Collection"] {padding: 5px 12px;} 7601 .ui-menu .ui-menu-item {line-height: normal;} 7602 </style> 7603
7603<script> 7604 $(window).load(function(){ 7605 7606 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;} 7607 7608 $.widget("custom.catcomplete", $.ui.autocomplete, { 7609 _renderMenu: function (ul, items) { 7610 // have search reults split up in categories 7611 var that = this, 7612 currentCategory = ""; 7613 $.each(items, function (index, item) { 7614 if (item.category != currentCategory) { 7615 ul.append("<li class='ui-autocomplete-category' data-cat=" + item.category + ">" + "<span>" + item.category + "</span>" + "</li>"); 7616 currentCategory = item.category; 7617 } 7618 that._renderItemData(ul, item); 7619 }); 7620 } 7621 }); 7622 7623 // higlight searched for term 7624 $.ui.autocomplete.prototype._renderItem = function( ul, item ) { 7625 var term = this.element.val(), 7626 html = item.label.replace( term, "<b>$&</b>" ); 7627 return $( "<li>" ) 7628 .append(format(item)) 7629 .appendTo( ul ); 7630 }; 7631 7632 7633 var data = [ 7634 { 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 S
7634weetbox Newborn", category: "Collection", 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: " " }
7634,{ 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: " " }
7634,{ 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: " " }
7634,{ 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
7634dal", 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-
7634hampers", 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
7634o-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: " " }
7634,{ 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: " " }
7634,{ 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: " " }
7634,{ 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: " " }
7634,{ 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: " " }
7634,{ 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: " " }
7634,{ 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: " " }
7634,{ 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: "KASKUSTOTO adalah situs resmi yang memiliki fitur akses live result togel dengan cepat dan terpercaya dan fitur canggih yang kami miliki.", category: "Collection", url: "/collections/standing-flower", images: " ", price: " " },{ label: "KASKUSTOTO adalah situs resmi yang memiliki fitur akses live result togel dengan cepat dan terpercaya dan fitur canggih yang kami miliki. Bali", category: "Collection", url: "/collections/standing-flower-bali", images: " ", price: " " },{ label: "KASKUSTOTO adalah situs resmi yang memiliki fitur akses live result togel dengan cepat dan terpercaya dan fitur canggih yang kami miliki. Bandung", category: "Collection", url: "/collections/standing-flower-bandung", images: " ", price: " " },{ label: "KASKUSTOTO adalah situs resmi yang memiliki fitur akses live result togel dengan cepat dan terpercaya dan fitur canggih yang kami miliki. Congratulations", category: "Collection", url: "/collections/standing-flower-congratulations", images: " ", price: " " },{ label: "KASKUSTOTO adalah situs resmi yang memiliki fitur akses live result togel dengan cepat dan terpercaya dan fitur canggih yang kami miliki. Demak", category: "Collection", url: "/collections/standing-flower-demak", images: " ", price: " " },{ label: "KASKUSTOTO adalah situs resmi yang memiliki fitur akses live result togel dengan cepat dan terpercaya dan fitur canggih yang kami miliki. Jepara", category: "Collection", url: "/collections/standing-flower-jepara", images: " ", price: " " },{ label: "KASKUSTOTO adalah situs resmi yang memiliki fitur akses live result togel dengan cepat dan terpercaya dan fitur canggih yang kami miliki. Semarang", category: "Collection", url: "/collections/standing-flower-semarang", images: " ", price: " " },{ label: "KASKUSTOTO adalah situs resmi yang memiliki fitur akses live result togel dengan cepat dan terpercaya dan fitur canggih yang kami miliki. Sidoarjo", category: "Collection", url: "/collections/standing-flower-sidoarjo", images: " ", price: " " },{ label: "KASKUSTOTO adalah situs resmi yang memiliki fitur akses live result togel dengan cepat dan terpercaya dan fitur canggih yang kami miliki. Surabaya", category: "Collection", url: "/collections/standing-flower-surabaya", images: " ", price: " " },{ label: "KASKUSTOTO adalah situs resmi yang memiliki fitur akses live result togel dengan cepat dan terpercaya dan fitur canggih yang kami miliki. Yogyakarta", category: "Collection", url: "/collections/standing-flower-yogyakarta", images: " ", price: " " },{ label: "Standing Giant Flower", category: "Collection", url: "/collections/standing-giant-flower", images: " ", price: " " },{ label: "Stationery", category: "Collection", url: "/collections/stationery", images: " ", price: " " },{ label: "Steekwerk", category: "Collection", url: "/collections/steekwerk", images: " ", price: " " },{ label: "Stylish Hampers", category: "Collection", url: "/collections/stylish-hampers", images: " ", price: " " },{ label: "Stylish Hampers Luar Jadetabek", category: "Collection", url: "/collections/stylish-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Succulent", category: "Collection", url: "/collections/succulent", images: " ", price: " " },{ label: "Sunflower", category: "Collection", url: "/collections/bunga-matahari", images: " ", price: " " },{ label: "Sweet & Savoury Hampers", category: "Collection", url: "/collections/sweet-savoury-hampers", images: " ", price: " " },{ label: "Sweet Gracie", category: "Collection", url: "/collections/sweet-gracie", images: " ", price: " " },{ label: "Sweet Pastel Love", category: "Collection", url: "/collections/pastel-love", images: " ", price: " " },{ label: "Sweet Pastel Love Nusantara", category: "Collection", url: "/collections/sweet-pastel-love-nusantara", images: " ", price: " " },{ label: "Sweet Treats", category: "Collection", url: "/collections/sweet-treats", images: " ", price: " " },{ label: "Sweetooth", category: "Collection", url: "/collections/sweetooth", images: " ", price: " " },{ label: "Taurus âï¸ 20April - 20May", category: "Collection", url: "/collections/kado-untuk-zodiak-taurus", images: " ", price: " " },{ label: "Teddy Bear", category: "Collection", url: "/collections/boneka-teddy-bear", images: " ", price: " " },{ label: "Teh", category: "Collection", url: "/collections/teh", images: " ", price: " " },{ label: "Test Error", category: "Collection", url: "/collections/test-error", images: " ", price: " " },{ label: "Testing", category: "Collection", url: "/collections/testing", images: " ", price: " " },{ label: "Thank You", category: "Collection", url: "/collections/rangkaian-bunga-ucapan-terima-kasih", images: " ", price: " " },{ label: "The Classic Astoria", category: "Collection", url: "/collections/astoria", images: " ", price: " " },{ label: "The Classic Enchanted Dome", category: "Collection", url: "/collections/enchanted-dome", images: " ", price: " " },{ label: "The Enchanted Love Pirouette Special Edition", category: "Collection", url: "/collections/the-enchanted-love-pirouette-special-edition", images: " ", price: " " },{ label: "The F Thing", category: "Collection", url: "/collections/the-f-thing", images: " ", price: " " },{ label: "The First", category: "Collection", url: "/collections/the-first", images: " ", price: " " },{ label: "The Novo Astoria", category: "Collection", url: "/collections/the-novo-astoria", images: " ", price: " " },{ label: "The Novo Enchanted Dome", category: "Collection", url: "/collections/the-novo-enchanted-dome", images: " ", price: " " },{ label: "The Novo Enchanted Dome Special Edition", category: "Collection", url: "/collections/the-novo-enchanted-dome-special-edition", images: " ", price: " " },{ label: "The Palace", category: "Collection", url: "/collections/the-palace", images: " ", price: " " },{ label: "Ties", category: "Collection", url: "/collections/dasi", images: " ", price: " " },{ label: "Tisane", category: "Collection", url: "/collections/tisane", images: " ", price: " " },{ label: "Toko Bunga Aceh", category: "Collection", url: "/collections/toko-bunga-aceh", images: " ", price: " " },{ label: "Toko Bunga Ambon", category: "Collection", url: "/collections/toko-bunga-ambon", images: " ", price: " " },{ label: "Toko Bunga Atambua", category: "Collection", url: "/collections/toko-bunga-atambua", images: " ", price: " " },{ label: "Toko Bunga Bali", category: "Collection", url: "/collections/toko-bunga-bali", images: " ", price: " " },{ label: "Toko Bunga Balikpapan", category: "Collection", url: "/collections/toko-bunga
7634-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: " " }
7634,{ 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
7634dal", 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: " " }, 7635 { 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" }
7635,{ 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" }
7635,{ 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" } 7636 ]; 7637 7638 7639 $( ".header-input-search" ).catcomplete({ 7640 appendTo: ".searchResult",source: function(request, response) { 7641 var results = $.ui.autocomplete.filter(data, request.term); 7642 var predicate = function () { 7643 var counter = { Collection: 0, Produk: 0 }; 7644 var fn = function(item) {counter[item.category] += 1;return (counter[item.category] <= 5);} 7645 return fn 7646 }(); 7647 response(results.filter(predicate)); 7648 }, 7649 minLength:1, 7650 //results are clickable 7651 select: function( event, ui ) {window.location = ui.item.url;} 7652 }); 7653 $( ".header-input-search2" ).catcomplete({ 7654 appendTo: ".searchResult2", 7655 source: function(request, response) { 7656 var results = $.ui.autocomplete.filter(data, request.term); 7657 var predicate = function () { 7658 var counter = { Collection: 0, Produk: 0 }; 7659 var fn = function(item) { 7660 counter[item.category] += 1; 7661 return (counter[item.category] <= 5); 7662 } 7663 return fn 7664 }(); 7665 response(results.filter(predicate)); 7666 }, 7667 minLength:1, 7668 //results are clickable 7669 select: function( event, ui ) { 7670 window.location = ui.item.url; 7671 } 7672 }); 7673 }); 7674 </script>
7674 7675 7676
7676<script src="//outerbloom.com/cdn/shop/t/138/assets/vendors.js?v=6349622868601634021752652419" defer></script>
7676 7677
7677<script src="//outerbloom.com/cdn/shop/t/138/assets/app.js?v=136050180318808583701752652452" defer></script>
7677 7678 7679
7679<script> 7680 ( function() { 7681 var youtube = document.querySelectorAll( ".youtube" ); 7682 for (var i = 0; i < youtube.length; i++) { 7683 var source = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault_1x.jpg"; 7684 var datasource = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault.jpg"; 7685 var image = new Image(); 7686 image.src = source; 7687 image.setAttribute("data-src", datasource); 7688 image.classList.add("swiper-lazy"); 7689 image.addEventListener( "load", function() { 7690 youtube[ i ].appendChild( image ); 7691 }( i ) ); 7692 youtube[i].addEventListener( "click", function() { 7693 var iframe = document.createElement( "iframe" ); 7694 iframe.setAttribute( "width", "480" ); 7695 iframe.setAttribute( "height", "480" ); 7696 iframe.setAttribute( "frameborder", "0" ); 7697 iframe.setAttribute( "allowfullscreen", "" ); 7698 iframe.setAttribute( "src", "https://www.youtube.com/embed/"+ this.dataset.embed +"?rel=0&showinfo=0&autoplay=1" ); 7699 this.innerHTML = ""; 7700 this.appendChild( iframe ); 7701 } ); 7702 }; 7703 7704 } )(); 7705 7706 /* Lazy Load */ 7707 const mainLazyLoad = new LazyLoad({threshold:400}); 7708 $(document).ready(function(){ 7709 7710 $("selectxxx").addClass("needsclick"); 7711 FastClick.attach(document.body); 7712 7713 var $customSelects = $('.select-search'); 7714 $customSelects.select2({ 7715 templateResult: function(result, container) { 7716 if (!result.id) { 7717 return result.text; 7718 } 7719 container.className += ' needsclick'; 7720 return result.text; 7721 } 7722 }); 7723 $customSelects.each(function(index, el){$(el).data('select2').$container.find('*').addClass('needsclick');}); 7724 $(document).on('select2:open', () => { 7725 document.querySelector('.select2-search__field').focus(); 7726 }); 7727 7728 7729 $(".overlay").click(function(){ 7730 $(".js-drawer-close").click(); 7731 }); 7732 $(".site-nav--mobile .js-drawer-open-left, #NavDrawer .icon-close, .overlay-nav").click(function(){ 7733 $("html").toggleClass("nav_open"); 7734 }); 7735 7736 $('.swatch-element label').on('click', function(){ 7737 var srcImg = $(this).data('src'); 7738 $('#thumb-image-product .product-single__thumbnail').each(function(){ 7739 if ($(this).attr("href") == srcImg) { 7740 $(this).trigger('click'); 7741 } 7742 }); 7743 }); 7744 var defaultValue = $(".swatch input:checked").val() 7745 7746 $('#purchaseProduct .swatch [type=radio]').change(function() { 7747 var optionIndex = $(this).closest('.swatch').attr('data-option-index'); 7748 var optionValue = $(this).val(); 7749 console.log(optionIndex, optionValue) 7750 var value = parseInt(optionValue.split(' ')[0]) 7751 $(this) 7752 .closest('#purchaseProduct') 7753 .find('.single-option-selector') 7754 .eq(optionIndex) 7755 .val(optionValue) 7756 .trigger('change'); 7757 7758 }); 7759 7760 }); 7761 $(document).ready(function(){ 7762 $(".nav-search a").click(function(e){ 7763 e.preventDefault(); 7764 $(".icon-navsearch").toggle(); 7765 $(".icon-navclose").toggle(); 7766 $(".site-nav__item > .site-nav__link").toggle(); 7767 $(".open-search").toggle(); 7768 $(".open-search input").focus(); 7769 }); 7770 $(".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'>"); 7771 if ($(window).width() < 768) { 7772 $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_75x.png?v=82732945490105366961752652419' alt='Icon Valentine'>"); 7773 $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_45x.png?v=101884295148001743851752652418' alt='Icon CNY'>"); 7774 $(".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'>"); 7775 } else { 7776 $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_60x.png?v=82732945490105366961752652419' alt='Icon Valentine'>"); 7777 $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_60x.png?v=101884295148001743851752652418' alt='Icon CNY'>"); 7778 $(".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'>"); 7779 } 7780 $(".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'>"); 7781 $(".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'>"); 7782 }); 7783 </script>
7783 7784 7785 7786 7787 7788
7788<script type="text/javascript"> 7789 var wishlistpage = 0; 7790 7791 var quickShop_money_format="<span class='money'>"+"Rp {{amount_no_decimals}}"+"</span>"; 7792 </script>
7792 7793 7794 <!-- Remove duplicate wishlist.js reference --> 7795 <style> 7796 .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)}} 7797 </style> 7798 7799 <div class="modal fade" id="modalwishlist0" tabindex="-1" role="dialog"> 7800 <div class="modal-dialog" role="document"> 7801 <div class="modal-content"> 7802 <div class="modal-body">Your Wishlist is empty!</div> 7803 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> 7804 </div> 7805 </div> 7806 </div> 7807 7808 <div class="wishlist-model"> 7809 <div class="modal fade" id="modalwishlist1" tabindex="-1" role="dialog" aria-hidden="true"> 7810 <div class="modal-dialog white-modal"> 7811 <div class="modal-content"> 7812 <div class="modal-header"> 7813 <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 7814 <svg class="icon icon-close" version="1.1" xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" width="32" height="32" viewBox="0 0 32 32"> 7815 <title>icon-close</title> 7816 <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> 7817 </svg> 7818 </button> 7819 </div> 7820 <div class="modal-body"> 7821 <div class="wishlist-left"> 7822 <div class="wishlist-note">
7823 <span class="cirle"><svg version="1.1" xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" width="32" height="32" viewBox="0 0 32 32"> 7824 <title>icon-check</title> 7825 <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> 7826 </svg></span> 7827 Product added to <a href="/pages/wish-list">Wishlist</a> 7828 </div> 7829 <div class="wishlist-product"> 7830 <div class="product-left"> 7831 <div class="wishlist-image"></div> 7832 </div> 7833 <div class="product-right"> 7834 <div class="wishlist-name"></div> 7835 <div class="wishlist-price"></div> 7836 </div> 7837 </div> 7838 </div> 7839 <div class="wishlist-right"> 7840 <div class="wishlist-cart"> 7841 <form action="/cart/add" method="post" class="variants-form variants" id="AddToCartForm" enctype="multipart/form-data"> 7842 <div class="others-bottom"> 7843 <a class="btn btn-quick-shop" href="/pages/wish-list">View Wishlist</a> 7844 <button type="submit" name="add" id="AddToCart" class="btn btn-cta"> 7845 <span id="AddToCartText" class="">Beli Sekarang</span> 7846 </button> 7847 </div> 7848 <div id="wishlist-variants-container" class="variants-wrapper"></div> 7849 <div class="quantity-content"> 7850 <label>QTY</label> 7851 <input type="number" size="5" class="" name="quantity" value="1" /> 7852 </div> 7853 </form> 7854 </div> 7855 </div> 7856 </div> 7857 </div> 7858 </div> 7859 </div> 7860 </div> 7861 7862 7863 <style> 7864 .stamped-badge[data-rating="0.0"]{display: none !Important;} 7865 7866 div[data-load-type="continue"] ul.stamped-pagination li.next a, div[data-widget-load-type="continue"] ul.stamped-pagination li.next a { 7867 border-radius: 0px; 7868 } 7869 .stamped-review-body { 7870 padding-left: 0px !important; 7871 } 7872 #product-reviews .stamped-header:after { 7873 display:none !Important; 7874 } 7875 #stamped-main-widget .stamped-container, .stamped-badge-caption,#stamped-reviews-widget { 7876 font-family:inherit !important; 7877 } 7878 </style> 7879 7880 7881 7882 <div id='stamped-rewards-init' class='stamped-rewards-init' 7883 data-key-public='' 7884 7885 ></div> 7886 7887
7887<script src="//outerbloom.com/cdn/shop/t/138/assets/variant-sku-handler.js?v=91239063692820757781752652418" defer></script>
7887 7888 <!-- Remove duplicate jQuery reference and load wishlist script properly --> 7889
7889<script src="//outerbloom.com/cdn/shop/t/138/assets/wishlist-fixed.js?v=35991423018869066281754360012" defer></script>
7889 7890 7891
7891<script> 7892 function myInit(){ StampedFn.init({ apiKey: 'pubkey-hCS8DHE9QbBHhHN89WXFkuJ0Y3422D', sId: '23462' }); } 7893 </script>
7893 7894
7894<script async onload="myInit()" type="text/javascript" src="https://cdn1.stamped.io/files/widget.min.js"></script>
7894<style> 7895 .jss59 { 7896 background-color: rgba(0, 0, 0, 0.6); 7897 } 7898 .MuiBackdrop-root { 7899 top: 0; 7900 left: 0; 7901 right: 0; 7902 bottom: 0; 7903 display: flex; 7904 z-index: -1; 7905 position: fixed; 7906 align-items: center; 7907 justify-content: center; 7908 background-color: rgba(0, 0, 0, 0.5); 7909 -webkit-tap-highlight-color: transparent; 7910 } 7911 .MuiDialog-scrollPaper { 7912 display: flex; 7913 align-items: center; 7914 justify-content: center; 7915 } 7916 .MuiDialog-container { 7917 height: 100%; 7918 outline: 0; 7919 } 7920 .MuiPaper-elevation24 { 7921 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); 7922 } 7923 .MuiDialog-paper { 7924 margin: 32px; 7925 position: relative; 7926 overflow-y: auto; 7927 } 7928 .MuiDialog-paperScrollPaper { 7929 display: flex; 7930 max-height: calc(100% - 64px); 7931 flex-direction: column; 7932 } 7933 .MuiDialog-paperWidthSm { 7934 max-width: 600px; 7935 } 7936 #location-lock-dialog { 7937 top: 20%; 7938 left: 0; 7939 right: 0; 7940 width: 30%; 7941 margin: 0px auto; 7942 display: block; 7943 padding: 30px; 7944 z-index: 99999; 7945 position: fixed; 7946 font-size: 14px; 7947 background: rgb(0, 0, 0); 7948 box-shadow: rgba(11, 11, 12, 0.2) 2px 4px 5px 0px; 7949 text-align: center; 7950 font-family: Roboto, Arial, sans-serif; 7951 line-height: 1; 7952 border-radius: 8px; 7953 -webkit-font-smoothing: subpixel-antialiased; 7954 } 7955 .MuiButtonBase-root { 7956 color: inherit; 7957 border: 0; 7958 cursor: pointer; 7959 margin: 0; 7960 display: inline-flex; 7961 outline: 0; 7962 padding: 0; 7963 position: relative; 7964 align-items: center; 7965 user-select: none; 7966 border-radius: 0; 7967 vertical-align: middle; 7968 -moz-appearance: none; 7969 justify-content: center; 7970 text-decoration: none; 7971 background-color: transparent; 7972 -webkit-appearance: none; 7973 -webkit-tap-highlight-color: transparent; 7974 } 7975 .MuiIconButton-root { 7976 flex: 0 0 auto; 7977 color: rgba(0, 0, 0, 0.54); 7978 padding: 12px; 7979 overflow: visible; 7980 font-size: 1.5rem; 7981 text-align: center; 7982 transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 7983 border-radius: 50%; 7984 } 7985 .MuiIconButton-label { 7986 width: 100%; 7987 display: flex; 7988 align-items: inherit; 7989 justify-content: inherit; 7990 } 7991 .MuiSvgIcon-root { 7992 fill: currentColor; 7993 width: 1em; 7994 height: 1em; 7995 display: inline-block; 7996 font-size: 1.5rem; 7997 transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 7998 flex-shrink: 0; 7999 user-select: none; 8000 } 8001 .MuiTouchRipple-root { 8002 top: 0; 8003 left: 0; 8004 right: 0; 8005 bottom: 0; 8006 z-index: 0; 8007 overflow: hidden; 8008 position: absolute; 8009 border-radius: inherit; 8010 pointer-events: none; 8011 } 8012 .jss36 { 8013 color: #222222; 8014 font-size: 24px; 8015 font-family: Roboto, Arial, sans-serif; 8016 font-weight: 500; 8017 } 8018 .jss37 { 8019 color: #555555; 8020 padding: 10px 0px 0px; 8021 font-size: 14px; 8022 } 8023 .MuiFormGroup-root { 8024 display: flex; 8025 flex-wrap: wrap; 8026 flex-direction: column; 8027 } 8028 .MuiFormGroup-row { 8029 flex-direction: row; 8030 } 8031 .jss63 { 8032 width: 85%; 8033 margin: 15px auto; 8034 display: flex; 8035 padding: 11px 0px 0px; 8036 justify-content: space-evenly; 8037 } 8038 .MuiFormControlLabel-root { 8039 cursor: pointer; 8040 display: inline-flex; 8041 align-items: center; 8042 margin-left: -11px; 8043 margin-right: 16px; 8044 vertical-align: middle; 8045 -webkit-tap-highlight-color: transparent; 8046 } 8047 .jss70 { 8048 margin: 0; 8049 } 8050 .MuiButtonBase-root { 8051 color: inherit; 8052 border: 0; 8053 cursor: pointer; 8054 margin: 0; 8055 display: inline-flex; 8056 outline: 0; 8057 padding: 0; 8058 position: relative; 8059 align-items: center; 8060 user-select: none; 8061 border-radius: 0; 8062 vertical-align: middle; 8063 -moz-appearance: none; 8064 justify-content: center; 8065 text-decoration: none; 8066 background-color: transparent; 8067 -webkit-appearance: none; 8068 -webkit-tap-highlight-color: transparent; 8069 } 8070 .MuiIconButton-root { 8071 flex: 0 0 auto; 8072 color: rgba(0, 0, 0, 0.54); 8073 padding: 12px; 8074 overflow: visible; 8075 font-size: 1.5rem; 8076 text-align: center; 8077 transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 8078 border-radius: 50%; 8079 } 8080 .MuiIconButton-colorSecondary { 8081 color: #f50057; 8082 } 8083 .jss71 { 8084 padding: 9px; 8085 } 8086 .MuiRadio-root { 8087 color: rgba(0, 0, 0, 0.54); 8088 } 8089 .jss64 { 8090 padding: 2px; 8091 } 8092 .MuiRadio-colorSecondary.Mui-checked { 8093 color: #f50057; 8094 } 8095 .MuiIconButton-label { 8096 width: 100%; 8097 display: flex; 8098 align-items: inherit; 8099 justify-content: inherit; 8100 } 8101 .MuiTypography-root { 8102 margin: 0; 8103 } 8104 .MuiTypography-body1 { 8105 font-size: 18px; 8106 font-family: Roboto,sans-serif; 8107 font-weight: 400; 8108 line-height: 1.5; 8109 } 8110 .location-popup_area-block__sp9Ws { 8111 display: -moz-box; 8112 display: flex; 8113 -moz-box-orient: vertical; 8114 -moz-box-direction: normal; 8115 flex-direction: column; 8116 -moz-box-pack: center; 8117 justify-content: center; 8118 position: relative; 8119 margin: 10px 10% 0;
8120 } 8121 .location-popup_pin-search-box__3l5mJ { 8122 width: 100%; 8123 display: -moz-box; 8124 display: flex; 8125 -moz-box-align: center; 8126 align-items: center; 8127 } 8128 .location-popup_place-icon-city__1XAX5, .location-popup_place-icon__jSG0Q { 8129 position: absolute; 8130 z-index: 999; 8131 } 8132 .location-popup_place-icon__jSG0Q { 8133 color: #ffffff; 8134 padding-left: 8px; 8135 } 8136 .location-popup_place-icon__jSG0Q svg { 8137 width: 18px; 8138 height: 18px; 8139 } 8140 .location-popup_cancel-icon__FHujU { 8141 color: #fff; 8142 right: 10px; 8143 width: 16px; 8144 cursor: pointer; 8145 height: 16px; 8146 display: none; 8147 padding: 5px; 8148 position: absolute; 8149 background: #999; 8150 text-align: center; 8151 border-radius: 50%; 8152 } 8153 .location-popup_pin-search-box__3l5mJ>div>select { 8154 /* -webkit-box-shadow: 0 0 10px #ffffff; 8155 box-shadow: 0 0 10px #ffffff; */ 8156 text-transform: capitalize; 8157 border: 1px solid #ffffff; 8158 color: #ffffff; 8159 width: 100%; 8160 margin: 0; 8161 display: -moz-box; 8162 display: flex; 8163 padding: 0 30px; 8164 -webkit-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8165 -moz-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8166 animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8167 font-size: 16px; 8168 border-radius: 4px; 8169 height: 44px; 8170 moz-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite; 8171 webkit-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite; 8172 } 8173 .MuiButtonBase-root { 8174 color: inherit; 8175 border: 0; 8176 cursor: pointer; 8177 margin: 0; 8178 display: inline-flex; 8179 outline: 0; 8180 padding: 0; 8181 position: relative; 8182 align-items: center; 8183 user-select: none; 8184 border-radius: 0; 8185 vertical-align: middle; 8186 -moz-appearance: none; 8187 justify-content: center; 8188 text-decoration: none; 8189 background-color: transparent; 8190 -webkit-appearance: none; 8191 -webkit-tap-highlight-color: transparent; 8192 } 8193 .MuiButton-root { 8194 color: rgba(0, 0, 0, 0.87); 8195 padding: 6px 16px; 8196 font-size: 0.875rem; 8197 min-width: 64px; 8198 box-sizing: border-box; 8199 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; 8200 font-family: Roboto,sans-serif; 8201 font-weight: 500; 8202 line-height: 1.75; 8203 border-radius: 4px; 8204 text-transform: uppercase; 8205 } 8206 .MuiButton-contained { 8207 color: rgba(0, 0, 0, 0.87); 8208 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); 8209 background-color: #e0e0e0; 8210 } 8211 .MuiButtonBase-root.Mui-disabled { 8212 cursor: default; 8213 pointer-events: none; 8214 } 8215 .MuiButton-label { 8216 width: 100%; 8217 display: inherit; 8218 align-items: inherit; 8219 justify-content: inherit; 8220 } 8221 .cartButton_login_content__2j1f7 { 8222 display: -moz-box; 8223 display: flex; 8224 text-align: center; 8225 z-index: 9; 8226 font-size: 18px; 8227 font-weight: 500; 8228 color: #fff; 8229 } 8230 8231 .jss35 { 8232 top: 5px; 8233 right: 5px; 8234 padding: 4px; 8235 position: absolute; 8236 border-radius: 50%; 8237 } 8238 .jss67 { 8239 cursor: pointer; 8240 font-size: 15px; 8241 line-height: 1.3; 8242 padding-left: 5px; 8243 } 8244 .jss69 { 8245 color: #222222; 8246 } 8247 .jss80 { 8248 color: #fff; 8249 width: 100%; 8250 height: 52px; 8251 padding: 11px 16px; 8252 font-size: 18px; 8253 min-width: 88px; 8254 min-height: 36px; 8255 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; 8256 font-weight: 500; 8257 line-weight: 1em; 8258 border-radius: 4px; 8259 text-transform: uppercase; 8260 background-color: #ff6600; 8261 } 8262 @media (min-width: 991px){ 8263 .cartButton_login_content__2j1f7 { 8264 font-weight: 500; 8265 } 8266 } 8267 8268 @media (max-width: 992px) { 8269 #location-lock-dialog { 8270 width: 100%; 8271 top: auto; 8272 bottom: 0; 8273 padding-left: 0; 8274 padding-right: 0; 8275 } 8276 .MuiFormGroup-row { 8277 display: block 8278 } 8279 .MuiIconButton-label input { 8280 margin: 0; 8281 } 8282 } 8283 </style> 8284 <div role="presentation" class="MuiDialog-root jss34" style="display: none;position: fixed; z-index: 9999; inset: 0px;"> 8285 <div class="MuiBackdrop-root" aria-hidden="true" style="opacity: 1; transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"></div> 8286 <div tabindex="0" data-test="sentinelStart"></div> 8287 <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;"> 8288 <div class="MuiPaper-root MuiDialog-paper MuiDialog-paperScrollPaper MuiDialog-paperWidthSm MuiPaper-elevation24 MuiPaper-rounded" role="dialog"> 8289 <div class="jss31 undefined" id="location-lock-dialog"> 8290 <button id="close-popup-delivery" class="MuiButtonBase-root MuiIconButton-root jss35" tabindex="0" type="button" aria-label="close">
8291 <span class="MuiIconButton-label"> 8292 <svg class="MuiSvgIcon-root" focusable="false" viewBox="0 0 24 24" aria-hidden="true"> 8293 <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> 8294 </svg> 8295 </span> 8296 <span class="MuiTouchRipple-root"></span> 8297 </button> 8298 <div> 8299 <div class="jss36">Select Delivery Location</div> 8300 <div class="jss37">Select a delivery location to see product availability</div> 8301 </div> 8302 <div class="MuiFormGroup-root jss63 MuiFormGroup-row" role="radiogroup"> 8303 <label for="jabodetabek" class="MuiFormControlLabel-root jss45"> 8304 <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 jss47 Mui-checked MuiIconButton-colorSecondary" aria-disabled="false"> 8305 <span class="MuiIconButton-label"> 8306 <input id="jabodetabek" class="jss49" type="radio" value="Jabodetabek" checked="" name="location"> 8307 <span class="jss41"></span> 8308 </span> 8309 <span class="MuiTouchRipple-root"></span> 8310 </span> 8311 <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1"> 8312 <span class="jss67 jss69">Jabodetabek</span> 8313 </span> 8314 </label> 8315 <label for="non-jabodetabek" class="MuiFormControlLabel-root jss45"> 8316 <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 MuiIconButton-colorSecondary" aria-disabled="false"> 8317 <span class="MuiIconButton-label"> 8318 <input id="non-jabodetabek" class="jss49" type="radio" value="Outside Jabodetabek" name="location"> 8319 <span class="jss40"></span> 8320 </span> 8321 <span class="MuiTouchRipple-root"></span> 8322 </span> 8323 <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1"> 8324 <span class="jss67 jss68">Outside Jabodetabek</span> 8325 </span> 8326 </label> 8327 </div> 8328 <div> 8329 <div class="MuiGrid-root location-popup_area-block__sp9Ws"> 8330 <div class="MuiGrid-root location-popup_pin-search-box__3l5mJ false"> 8331 <div class="MuiGrid-root location-popup_place-icon__jSG0Q"> 8332 <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> 8333 </div> 8334 <div class="MuiGrid-root location-popup_cancel-icon__FHujU false"> 8335 <i class="material-icons location-popup_clear-pin__s1dRc">close</i> 8336 </div> 8337 <div style="width: 100%;"> 8338 <select id="choose-location" class="form-control"> 8339 <option value="">Choose Location</option> 8340 <option value="jakarta">Jakarta</option> 8341 <option value="bogor">Bogor</option> 8342 <option value="depok">Depok</option> 8343 <option value="tangerang">Tangerang</option> 8344 <option value="bekasi">Bekasi</option> 8345 </select> 8346 </div> 8347 </div> 8348 </div> 8349 </div> 8350 <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=""> 8351 <span class="MuiButton-label">
8352 <span class=""></span> 8353 <span id="location-lock-continue-btn" class="cartButton_login_content__2j1f7" style="font-weight: 500;" data-content="">Continue Shopping</span> 8354 </span> 8355 </button> 8356 </div> 8357 </div> 8358 </div> 8359 <div tabindex="0" data-test="sentinelEnd"></div> 8360 </div> 8361 8362
8362<script> 8363 const jabodetabek = [ 8364 { 8365 "code": "jakarta", 8366 "city": "jakarta", 8367 "zip": [] 8368 }, 8369 { 8370 "code": "bogor", 8371 "city": "bogor", 8372 "zip": [] 8373 }, 8374 { 8375 "code": "depok", 8376 "city": "depok", 8377 "zip": [] 8378 }, 8379 { 8380 "code": "tangerang", 8381 "city": "tangerang", 8382 "zip": [] 8383 }, 8384 { 8385 "code": "bekasi", 8386 "city": "bekasi", 8387 "zip": [] 8388 } 8389 ] 8390 let cityNonJabodetabek = [ 8391 8392 8393 8394 8395 "pengiriman_aceh", 8396 8397 8398 8399 8400 8401 "pengiriman_ambon", 8402 8403 8404 8405 8406 8407 "pengiriman_atambua", 8408 8409 8410 8411 8412 8413 "pengiriman_badung", 8414 8415 8416 8417 8418 8419 "pengiriman_bali", 8420 8421 8422 8423 8424 8425 "pengiriman_balikpapan", 8426 8427 8428 8429 8430 8431 "pengiriman_bandar lampung", 8432 8433 8434 8435 8436 8437 "pengiriman_bandung", 8438 8439 8440 8441 8442 8443 "pengiriman_bandung barat", 8444 8445 8446 8447 8448 8449 "pengiriman_banjarmasin", 8450 8451 8452 8453 8454 8455 "pengiriman_banyumas", 8456 8457 8458 8459 8460 8461 "pengiriman_banyuwangi", 8462 8463 8464 8465 8466 8467 "pengiriman_batam", 8468 8469 8470 8471 8472 8473 8474 8475 8476 8477 "pengiriman_biak", 8478 8479 8480 8481 8482 8483 "pengiriman_binjai", 8484 8485 8486 8487 8488 8489 "pengiriman_blitar", 8490 8491 8492 8493 8494 8495 "pengiriman_blora", 8496 8497 8498 8499 8500 8501 8502 8503 8504 8505 "pengiriman_bojonegoro", 8506 8507 8508 8509 8510 8511 "pengiriman_boyolali", 8512 8513 8514 8515 8516 8517 "pengiriman_bukittinggi", 8518 8519 8520 8521 8522 8523 "pengiriman_buleleng", 8524 8525 8526 8527 8528 8529 "pengiriman_ciamis", 8530 8531 8532 8533 8534 8535 "pengiriman_cianjur", 8536 8537 8538 8539 8540 8541 "pengiriman_cibinong", 8542 8543 8544 8545 8546 8547 "pengiriman_cikarang", 8548 8549 8550 8551 8552 8553 "pengiriman_cikupa", 8554 8555 8556 8557 8558 8559 "pengiriman_cilacap", 8560 8561 8562 8563 8564 8565 "pengiriman_cileunyi", 8566 8567 8568 8569 8570 8571 "pengiriman_cimahi", 8572 8573 8574 8575 8576 8577 "pengiriman_cirebon", 8578 8579 8580 8581 8582 8583 "pengiriman_ciwidey", 8584 8585 8586 8587 8588 8589 "pengiriman_deli serdang", 8590 8591 8592 8593 8594 8595 "pengiriman_demak", 8596 8597 8598 8599 8600 8601 "pengiriman_denpasar", 8602 8603 8604 8605 8606 8607 8608 "pengiriman_garut", 8609 8610 8611 8612 8613 8614 "pengiriman_gianyar", 8615 8616 8617 8618 8619 8620 "pengiriman_gresik", 8621 8622 8623 8624 8625 8626 "pengiriman_gunung kidul", 8627 8628 8629 8630 8631 8632 8633 "pengiriman_jambi", 8634 8635 8636 8637 8638 8639 "pengiriman_jayapura", 8640 8641 8642 8643 8644 8645 "pengiriman_jember", 8646 8647 8648 8649 8650 8651 "pengiriman_jepara", 8652 8653 8654 8655 8656 8657 "pengiriman_jombang", 8658 8659 8660 8661 8662 8663 "pengiriman_karanganyar", 8664 8665 8666 8667 8668 8669 "pengiriman_karawang", 8670 8671 8672 8673 8674 8675 "pengiriman_karo", 8676 8677 8678 8679 8680 8681 "pengiriman_kebumen", 8682 8683 8684 8685 8686 8687 "pengiriman_kediri", 8688 8689 8690 8691 8692 8693 "pengiriman_keerom", 8694 8695 8696 8697 8698 8699 "pengiriman_kendal", 8700 8701 8702 8703 8704 8705 "pengiriman_klaten", 8706 8707 8708 8709 8710 8711 "pengiriman_kudus", 8712 8713 8714 8715 8716 8717 "pengiriman_kupang", 8718 8719 8720 8721 8722 8723 "pengiriman_lainnya", 8724 8725 8726 8727 8728 8729 "pengiriman_lamongan", 8730 8731 8732 8733 8734 8735 "pengiriman_lampung", 8736 8737 8738 8739 8740 8741 "pengiriman_lampung barat", 8742 8743 8744 8745 8746 8747 "pengiriman_lembang", 8748 8749 8750 8751 8752 8753 "pengiriman_lombok", 8754 8755 8756 8757 8758 8759 "pengiriman_lumajang", 8760 8761 8762 8763 8764 8765 "pengiriman_madiun", 8766 8767 8768 8769 8770 8771 "pengiriman_magelang", 8772 8773 8774 8775 8776 8777 "pengiriman_majalengka", 8778 8779 8780 8781 8782 8783 "pengiriman_makassar", 8784 8785 8786 8787 8788 8789 "pengiriman_malang", 8790 8791 8792 8793 8794 8795 "pengiriman_manado", 8796 8797 8798 8799 8800 8801 "pengiriman_medan", 8802 8803 8804 8805 8806 8807 "pengiriman_mengwi", 8808 8809 8810 8811 8812 8813 "pengiriman_mojokerto", 8814 8815 8816 8817 8818 8819 "pengiriman_nganjuk", 8820 8821 8822 8823 8824 8825 "pengiriman_ngawi", 8826 8827 8828 8829 8830 8831 "pengiriman_padang", 8832 8833 8834 8835 8836 8837 "pengiriman_palembang", 8838 8839 8840 8841 8842 8843 "pengiriman_pasuruan", 8844 8845 8846 8847 8848 8849 "pengiriman_pati", 8850 8851 8852 8853 8854 8855 "pengiriman_pekalongan", 8856 8857 8858 8859 8860 8861 "pengiriman_pekanbaru", 8862 8863 8864 8865 8866 8867 "pengiriman_pemalang", 8868 8869 8870 8871 8872 8873 "pengiriman_ponorogo", 8874 8875 8876 8877 8878 8879 "pengiriman_pontianak", 8880 8881 8882 8883 8884 8885 "pengiriman_probolinggo", 8886 8887 8888 8889 8890 8891 "pengiriman_purbalingga", 8892 8893 8894 8895 8896 8897 "pengiriman_purwakarta", 8898 8899 8900 8901 8902 8903 "pengiriman_purwokerto", 8904 8905 8906 8907 8908 8909 "pengiriman_rembang", 8910 8911 8912 8913 8914 8915 "pengiriman_riau", 8916 8917 8918 8919 8920 8921 "pengiriman_salatiga", 8922 8923 8924 8925 8926 8927 "pengiriman_samarinda", 8928 8929 8930 8931 8932 8933 "pengiriman_semarang", 8934 8935 8936 8937 8938 8939 "pengiriman_sentani", 8940 8941 8942 8943 8944 8945 "pengiriman_serang", 8946 8947 8948 8949 8950 8951 "pengiriman_sidoarjo", 8952 8953 8954 8955 8956 8957 "pengiriman_singkawang", 8958 8959 8960 8961 8962 8963 "pengiriman_sragen", 8964 8965 8966 8967 8968 8969 "pengiriman_subang", 8970 8971 8972 8973 8974 8975 "pengiriman_sukabumi", 8976 8977 8978 8979 8980 8981 "pengiriman_sumbawa", 8982 8983 8984 8985 8986 8987 "pengiriman_surabaya", 8988 8989 8990 8991 8992 8993 "pengiriman_surakarta solo", 8994 8995 8996 8997 8998 "pengiriman_tasikmalaya", 8999 9000 9001 9002 9003 9004 "pengiriman_tegal", 9005 9006 9007 9008 9009 9010 "pengiriman_timika", 9011 9012 9013 9014 9015 9016 "pengiriman_wamena", 9017 9018 9019 9020 9021 9022 "pengiriman_wiyung", 9023 9024 9025 9026 9027 9028 "pengiriman_wonokromo", 9029 9030 9031 9032 9033 9034 "pengiriman_yogyakarta", 9035 9036 ] 9037 console.log(cityNonJabodetabek) 9038 let non_jabodetabek = [] 9039 for(var i=0;i<cityNonJabodetabek.length;i++) { 9040 const obj = { 9041 "code": cityNonJabodetabek[i].toLowerCase().replace('pengiriman_', '').replace(' ','-'), 9042 "city": cityNonJabodetabek[i].replace('pengiriman_', '').replace(' ','-'), 9043 "zip": [] 9044 } 9045 non_jabodetabek.push(obj) 9046 } 9047 let current_location = getCookie("location_delivery") 9048 $("[name=location]").change(function(){ 9049 let v = $(this).val() 9050 let option = [] 9051 if(v == 'Jabodetabek') { 9052 for(var i=0;i<jabodetabek.length;i++) { 9053 const jabodetabekHtml = `<option value=${jabodetabek[i].city}>${jabodetabek[i].city}</option>` 9054 option.push(jabodetabekHtml) 9055 } 9056 $("#choose-location").html(`<option value="">Choose Location</option>${option}`) 9057 } else { 9058 for(var i=0;i<non_jabodetabek.length;i++) { 9059 const nonjabodetabekHtml = `<option value=${non_jabodetabek[i].city}>${non_jabodetabek[i].city}</option>` 9060 option.push(nonjabodetabekHtml) 9061 } 9062 $("#choose-location").html(`<option value="">Choose Location</option>${option}`) 9063 } 9064 }) 9065 9066 $("#location-lock-submit").click(function(e){
9067 let select = $("#choose-location") 9068 let value = select.val().toLowerCase() 9069 console.log(value) 9070 if(select.val() == "") { 9071 return alert("Choose Your Location") 9072 e.preventDefault() 9073 } 9074 setCookie("location_delivery",value,1000000); 9075 9076 location.reload(); 9077 9078 }) 9079 9080 $("#close-popup-delivery").click(function(){ 9081 $(".MuiDialog-root").hide() 9082 if(!current_location){ 9083 setCookie("location_delivery","jakarta",1000000); 9084 $("#loc_delivery_city, #loc_delivery_city_mobile").text("Jakarta") 9085 } 9086 }) 9087 $("#loc_delivery, #loc_delivery_mobile").click(function(){ 9088 $(".MuiDialog-root").show() 9089 }) 9090 9091 9092 if(!current_location){ 9093 9094 } else { 9095 $("#loc_delivery_city, #loc_delivery_city_mobile").text(current_location) 9096 console.log(current_location) 9097 $("#choose-location").each(function(){ 9098 if(current_location == 'jakarta' || current_location == 'depok' || current_location == 'bogor' || current_location == 'tangerang' || current_location == 'bekasi'){ 9099 $("#jabodetabek").trigger("click") 9100 } else { 9101 $("#non-jabodetabek").trigger("click") 9102 } 9103 $("#choose-location").find("option[value="+current_location+"]").attr("selected", "selected") 9104 }) 9105 } 9106 9107 // 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'){ 9108 // $("#timeMalam").attr("disabled", false) 9109 // } else { 9110 // $("#timeMalam").attr("disabled", true) 9111 // } 9112 9113 if(current_location && current_location != 'jakarta') { 9114 $("#self-pickup").attr("disabled", true) 9115 } 9116 9117 function setCookie(name,value,days) { 9118 var expires = ""; 9119 if (days) { 9120 var date = new Date(); 9121 date.setTime(date.getTime() + (days*24*60*60*1000)); 9122 expires = "; expires=" + date.toUTCString(); 9123 } 9124 document.cookie = name + "=" + (value || "") + expires + "; path=/"; 9125 } 9126 function getCookie(name) { 9127 var nameEQ = name + "="; 9128 var ca = document.cookie.split(';'); 9129 for(var i=0;i < ca.length;i++) { 9130 var c = ca[i]; 9131 while (c.charAt(0)==' ') c = c.substring(1,c.length); 9132 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 9133 } 9134 return null; 9135 } 9136 </script>
9136 9137 <!-- One Tap --> 9138
9138<script> 9139 console.log("Outerbloom..."); 9140 </script>
9140 9141 <div id="shopify-block-ANVEzSUcxTUxZOGpwZ__9703700522657871012" class="shopify-block shopify-app-block"> 9142 9143 9144 9145 9146 9147 9148 9149 9150 9151 9152 9153 9154 9155 9156 9157 9158 9159 9160 9161 9162 9163 9164 9165 9166 9167 9168 9169 9170 9171 9172 9173 9174 9175 9176 9177 9178 9179 9180 9181 9182 9183 9184 9185 9186 9187 9188 <link rel="stylesheet" href="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.css" /> 9189
9189<script src="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.js" defer></script>
9189 9190
9190<script> 9191 const widgetConfig = { 9192 id: "clz7897za002cz7otleaz0d3d", 9193 showQuickResponse: false, 9194 quickResponsesData: [], 9195 themeColor: "#ffffff", 9196 widgetText: "", 9197 radiusType: "circle", 9198 widgetIconType: "whatsapp", 9199 position: "right", 9200 storeLogo: "", 9201 storeName: "Outerbloom", 9202 storeDescription: "", 9203 size: "small", 9204 showCard: false, 9205 widgetColorType: "solid", 9206 widgetColor1: "#008069", 9207 widgetColor2: "#008069", 9208 social: { 9209 socialOrders: ["instagram","tiktok","facebook","x","youtube","linkedin","email"], 9210 values: { 9211 instagram: { 9212 enabled: false, 9213 value: "", 9214 }, 9215 facebook: { 9216 enabled: false, 9217 value: "", 9218 }, 9219 email: { 9220 enabled: false, 9221 value: "", 9222 }, 9223 x: { 9224 enabled: false, 9225 value: "", 9226 }, 9227 tiktok: { 9228 enabled: false, 9229 value: "", 9230 }, 9231 linkedin: { 9232 enabled: false, 9233 value: "", 9234 }, 9235 youtube: { 9236 enabled: false, 9237 value: "", 9238 }, 9239 }, 9240 }, 9241 }; 9242 9243 function initializeWidget() { 9244 if (typeof BBBWidget !== 'undefined') { 9245 BBBWidget.init(widgetConfig); 9246 } else { 9247 setTimeout(initializeWidget, 100); 9248 } 9249 } 9250 9251 initializeWidget();</script>
9251 9252 9253 9254 </div><div id="shopify-block-ATzRpVTBPU3k1R2pnW__286197278318599166" class="shopify-block shopify-app-block"> 9255 9256 9257 <div style="position: fixed; bottom: 0; right: 0"></div> 9258 9259
9259<script> 9260 console.info("bitlogin extension version: v2.5.7"); 9261 9262 const googleScript = document.createElement("script"); 9263 googleScript.setAttribute("src", "https://accounts.google.com/gsi/client"); 9264 document.head.append(googleScript); 9265 9266 const bitLoginBaseUrl = "https://api.bitbybit.studio"; 9267 const apiUrl = `${bitLoginBaseUrl}/bitlogin/api`; 9268 9269 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"}}; 9270 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
9270n1.oa2-cs.v1.1cb5f9085a202341f60daf5a7be16c570ccc0b4bd5908b3afd080f34e9b8935d","appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null}]; 9271 const redirectUrl = appearance.redirectLink; 9272 9273 let locationCacheSet = false; 9274 let errorLocation = false; 9275 let oneTapSet = false; 9276 9277 let bitloginCache = { 9278 appearance: appearance, 9279 config: config 9280 }; 9281 9282 let isInitializing = false; 9283 const queue = []; 9284 9285 // Add CSS for the popup 9286 const popupStyles = document.createElement('style'); 9287 popupStyles.textContent = ` 9288 /* Styles for login popup */ 9289 .bitlogin-popup-overlay { 9290 position: fixed; 9291 top: 0; 9292 left: 0; 9293 width: 100%; 9294 height: 100%; 9295 background: rgba(0, 0, 0, 0.45); 9296 backdrop-filter: blur(4px); 9297 display: flex; 9298 align-items: center; 9299 justify-content: center; 9300 opacity: 0; 9301 transition: opacity 0.3s ease-in-out; 9302 z-index: 999999; 9303 } 9304 9305 .bitlogin-popup-overlay.visible { 9306 opacity: 1; 9307 } 9308 9309 .bitlogin-popup { 9310 background: #FFFFFF; 9311 box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); 9312 border-radius: 16px; 9313 width: 100%; 9314 max-width: 560px; 9315 display: flex; 9316 overflow: hidden; 9317 position: relative; 9318 opacity: 0; 9319 transform: translateY(20px) scale(0.98); 9320 transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1); 9321 } 9322 9323 .bitlogin-popup.visible { 9324 opacity: 1; 9325 transform: translateY(0) scale(1); 9326 } 9327 9328 .bitlogin-popup-with-image { 9329 max-width: 640px; 9330 } 9331 9332 .bitlogin-popup-right-image { 9333 flex-direction: row-reverse; 9334 } 9335 9336 .bitlogin-popup-image { 9337 object-fit: cover; 9338 width: 50%; 9339 height: auto; 9340 } 9341 9342 .bitlogin-popup-content { 9343 padding: 32px; 9344 position: relative; 9345 width: 50%; 9346 } 9347 9348 .bitlogin-popup-close { 9349 position: absolute; 9350 top: 16px; 9351 right: 16px; 9352 background: white; 9353 border: none; 9354 width: 30px; 9355 height: 30px; 9356 display: flex; 9357 align-items: center; 9358 justify-content: center; 9359 cursor: pointer; 9360 transition: background-color 0.2s; 9361 color: inherit; 9362 padding: 0; 9363 } 9364 9365 .bitlogin-popup-close:hover { 9366 background-color: #e5e5e5; 9367 } 9368 9369 .bitlogin-popup-buttons { 9370 display: flex; 9371 flex-direction: column; 9372 gap: 12px; 9373 margin-top: 24px; 9374 } 9375 9376 /* Button styles within popup - override width for popup buttons */ 9377 .bitlogin-popup-buttons #google-login, 9378 .bitlogin-popup-buttons #facebook-login, 9379 .bitlogin-popup-buttons #apple-login, 9380 .bitlogin-popup-buttons #whatsapp-login, 9381 .bitlogin-popup-buttons #microsoft-login, 9382 .bitlogin-popup-buttons #twitter-login, 9383 .bitlogin-popup-buttons #amazon-login, 9384 .bitlogin-popup-buttons #instagram-login, 9385 .bitlogin-popup-buttons #magic-link-login, 9386 .bitlogin-popup-buttons #mobile-app-login { 9387 width: 100% !important; 9388 font-family: inherit !important; 9389 } 9390 9391 .bitlogin-popup-footer { 9392 margin-top: 32px; 9393 text-align: center; 9394 font-size: 14px; 9395 opacity: 0.6; 9396 } 9397 9398 /* Modern Typography */ 9399 .bitlogin-popup h2 { 9400 margin-top: 12px; 9401 font-size: 21px !important; 9402 line-height: 1.2 !important; 9403 font-weight: 700 !important; 9404 letter-spacing: -0.02em !important; 9405 margin-bottom: 16px !important; 9406 } 9407 9408 .bitlogin-popup-header { 9409 position: relative; 9410 margin-bottom: 24px; 9411 } 9412 9413 /* Modern gradient accent */ 9414 .bitlogin-popup-content > div { 9415 font-size: 16px !important; 9416 line-height: 1.2 !important; 9417 opacity: 0.85 !important; 9418 } 9419 9420 /* Enhanced button interactions */ 9421 .bitlogin-popup-buttons button { 9422 position: relative; 9423 overflow: hidden; 9424 } 9425 9426 @keyframes ripple { 9427 0% { 9428 transform: scale(0, 0); 9429 opacity: 0.5; 9430 } 9431 100% { 9432 transform: scale(100, 100); 9433 opacity: 0; 9434 } 9435 } 9436 9437 /* Responsive adjustments */ 9438 @media (max-width: 640px) { 9439 .bitlogin-popup { 9440 max-width: 90%; 9441 width: 90%; 9442 margin: 0 16px; 9443 } 9444 9445 .bitlogin-popup-with-image { 9446 flex-direction: column !important; 9447 } 9448 9449 .bitlogin-popup-image { 9450 width: 100%; 9451 height: 180px; 9452 } 9453 9454 .bitlogin-popup-content { 9455 padding: 24px; 9456 } 9457 9458 .bitlogin-popup h2 { 9459 font-size: 24px !important; 9460 } 9461 } 9462 `; 9463
9464 document.head.appendChild(popupStyles); 9465 9466 // Add fonts link for different font options 9467 const fontsLink = document.createElement('link'); 9468 fontsLink.rel = 'stylesheet'; 9469 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'; 9470 document.head.appendChild(fontsLink); 9471 9472 (async () => { 9473 try { 9474 let host = window.location.host; 9475 if (host === "admin.shopify.com") { 9476 host = `${window.location.pathname.split("/")[2]}.myshopify.com`; 9477 } 9478 9479 const urlSearchParams = new URLSearchParams(window.location.search); 9480 const checkoutUrl = urlSearchParams.get("checkout_url"); 9481 9482 async function init({ inputRef, index }) { 9483 if (isInitializing) { 9484 queue.push(() => init({ inputRef, index })); 9485 return; 9486 } 9487 9488 isInitializing = true; 9489 9490 try { 9491 let bitLoginSectionRoot = document.querySelector( 9492 `.bitlogin-root[data-index="${index}"]` 9493 ); 9494 9495 const formRef = inputRef?.closest( 9496 "form:not([action='/account/recover'])" 9497 ); 9498 9499 if (formRef && !bitLoginSectionRoot) { 9500 await getLocation(); 9501 9502 bitLoginSectionRoot = document.createElement(`div`); 9503 9504 bitLoginSectionRoot.setAttribute("class", "bitlogin-root"); 9505 bitLoginSectionRoot.setAttribute("data-index", `${index}`); 9506 9507 updateAppearance({ 9508 formRef, 9509 rootRef: bitLoginSectionRoot, 9510 host, 9511 }); 9512 } 9513 } catch (err) { 9514 console.error(`error while initiating bitlogin extensions`, err); 9515 } finally { 9516 // Release the lock 9517 isInitializing = false; 9518 9519 // Check if there are pending items in the queue 9520 if (queue.length > 0) { 9521 // Process the next function in the queue 9522 const nextFunction = queue.shift(); 9523 nextFunction(); 9524 } 9525 } 9526 } 9527 9528 function initAll() { 9529 return new Promise((resolve, reject) => { 9530 setTimeout(async () => { 9531 const inputRefs = document.querySelectorAll( 9532 'input[name="customer[email]"]' 9533 ); 9534 9535 for (let i = 0; i < inputRefs.length; i++) { 9536 const currentInputRef = inputRefs[i]; 9537 const isVisible = isElementVisible(currentInputRef); 9538 9539 if (isVisible) { 9540 await init({ inputRef: currentInputRef, index: i }); 9541 } 9542 } 9543 9544 resolve("ok"); 9545 }, 100); 9546 }); 9547 } 9548 9549 const observer = new MutationObserver((mutationsList) => { 9550 for (let mutation of mutationsList) { 9551 initAll(); 9552 } 9553 }); 9554 9555 observer.observe(document.body, { 9556 childList: true, 9557 subtree: true, 9558 attributes: true, 9559 }); 9560 9561 initAll(); 9562 9563 if (appearance.googleOneTap) { 9564 setupOneTap({ host, checkoutUrl }); 9565 } 9566 9567 // Initialize popup 9568 await initPopup(host); 9569 } catch (error) { 9570 console.error("Error initializing BitLogin:", error); 9571 } 9572 })(); 9573 9574 async function initPopup(host) { 9575 // Check if user is already logged in using Liquid checks properly 9576 const isLoggedIn = false || 9577 document.querySelector('.customer-logout-link') || 9578 document.querySelector('.account-link') || 9579 window.location.pathname.includes('/account'); 9580 9581 if (isLoggedIn) { 9582 return; // User is logged in, don't show popup 9583 } 9584 9585 try { 9586 // Fetch the popup configuration 9587 const popupConfig = await fetch(`${apiUrl}/appearance/popup/domain/${host}`) 9588 .then(res => res.json()) 9589 .catch(err => { 9590 console.error('Error fetching popup configuration:', err); 9591 return null; 9592 }); 9593 9594 if (!popupConfig || !popupConfig.enabled) { 9595 return;
9595 // Don't show popup if disabled or config not found 9596 } 9597 9598 // Create popup after 10 seconds 9599 setTimeout(() => { 9600 // Check if user is still on the page and still not logged in 9601 if (document.visibilityState === 'visible') { 9602 // Additional check in case user logged in during the 10 second wait 9603 const currentlyLoggedIn = false || 9604 document.querySelector('.customer-logout-link') || 9605 document.querySelector('.account-link'); 9606 9607 if (!currentlyLoggedIn) { 9608 createLoginPopup(popupConfig, host); 9609 } 9610 } 9611 }, 10000); 9612 } catch (error) { 9613 console.error('Error initializing popup:', error); 9614 } 9615 } 9616 9617 function createLoginPopup(popupConfig, host) { 9618 // Font mapping 9619 const fontFamilyMap = { 9620 system_fonts: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif', 9621 montserrat: 'Montserrat, sans-serif', 9622 roboto: 'Roboto, sans-serif', 9623 open_sans: 'Open Sans, sans-serif', 9624 noto_sans: 'Noto Sans, sans-serif', 9625 lato: 'Lato, sans-serif', 9626 poppins: 'Poppins, sans-serif', 9627 quicksand: 'Quicksand, sans-serif', 9628 raleway: 'Raleway, sans-serif', 9629 pt_sans: 'PT Sans, sans-serif', 9630 oswald: 'Oswald, sans-serif', 9631 }; 9632 9633 // Create overlay 9634 const overlay = document.createElement('div'); 9635 overlay.className = 'bitlogin-popup-overlay'; 9636 9637 // Create popup container with appropriate styling 9638 const popup = document.createElement('div'); 9639 popup.className = 'bitlogin-popup'; 9640 9641 if (popupConfig.layout === 'default') { 9642 popup.style.maxWidth = '400px'; 9643 } 9644 9645 // Function to close the popup 9646 const closePopup = () => { 9647 overlay.classList.remove('visible'); 9648 popup.classList.remove('visible'); 9649 setTimeout(() => { 9650 if (document.body.contains(overlay)) { 9651 document.body.removeChild(overlay); 9652 } 9653 }, 300); 9654 }; 9655 9656 // Add click handler to the overlay to close when clicking outside 9657 overlay.addEventListener('click', (event) => { 9658 // Close only if clicking directly on the overlay, not its children 9659 if (event.target === overlay) { 9660 closePopup(); 9661 } 9662 }); 9663 9664 // Add escape key handler to close popup 9665 document.addEventListener('keydown', (event) => { 9666 if (event.key === 'Escape' && document.body.contains(overlay)) { 9667 closePopup(); 9668 } 9669 }); 9670 9671 // Create layout with image if specified 9672 let contentWrapper; 9673 if (popupConfig.layout !== 'default' && popupConfig.popupImage) { 9674 popup.classList.add('bitlogin-popup-with-image'); 9675 9676 if (popupConfig.layout === 'right') { 9677 popup.classList.add('bitlogin-popup-right-image'); 9678 } 9679 9680 // Add image 9681 const image = document.createElement('img'); 9682 image.className = 'bitlogin-popup-image'; 9683 image.src = popupConfig.popupImage; 9684 image.alt = 'Login'; 9685 image.loading = 'lazy'; 9686 popup.appendChild(image); 9687 9688 // Create content container 9689 contentWrapper = document.createElement('div'); 9690 contentWrapper.className = 'bitlogin-popup-content'; 9691 9692 if (popupConfig.layout === 'right') { 9693 const closeButton = document.createElement('button'); 9694 closeButton.className = 'bitlogin-popup-close'; 9695 closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672"> 9696 <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 9697 </svg>`; 9698 closeButton.setAttribute('aria-label', 'Close'); 9699 closeButton.onclick = closePopup; 9700 9701 popup.appendChild(closeButton); 9702 } 9703 } else { 9704 contentWrapper = document.createElement('div'); 9705 contentWrapper.className = 'bitlogin-popup-content'; 9706 contentWrapper.style.width = '100%'; 9707 } 9708 9709 // Set background style 9710 if (popupConfig.backgroundTheme === 'gradient') { 9711 contentWrapper.style.background = `linear-gradient(135deg, ${popupConfig.backgroundPopupColor}, ${popupConfig.gradientColor})`; 9712 } else { 9713 contentWrapper.style.backgroundColor = popupConfig.backgroundPopupColor; 9714 } 9715 9716 // Apply font family 9717 contentWrapper.style.setProperty('font-family', fontFamilyMap[popupConfig.font] || fontFamilyMap.system_fonts, 'important'); 9718 9719 if (popupConfig.layout !== 'right') { 9720 const closeButton = document.createElement('button'); 9721 closeButton.className = 'bitlogin-popup-close'; 9722 closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672"> 9723 <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 9724 </svg>`; 9725 closeButton.setAttribute('aria-label', 'Close'); 9726 closeButton.onclick = closePopup; 9727 9728 contentWrapper.appendChild(closeButton); 9729 } 9730 9731 // Add heading with subtle animation effect 9732 const header = document.createElement('div'); 9733 header.className = 'bitlogin-popup-header'; 9734 9735 const heading = document.createElement('h2'); 9736 heading.textContent = popupConfig.headingText || 'Sign in for exclusive benef
9736its'; 9737 heading.style.color = popupConfig.fontColor; 9738 header.appendChild(heading); 9739 9740 // Add body text with improved formatting 9741 const bodyText = document.createElement('div'); 9742 bodyText.innerHTML = popupConfig.bodyText || 'Join our community to access exclusive offers and a personalized shopping experience.'; 9743 bodyText.style.color = popupConfig.fontColor; 9744 header.appendChild(bodyText); 9745 9746 contentWrapper.appendChild(header); 9747 9748 // Create buttons container with modern styling 9749 const buttonsContainer = document.createElement('div'); 9750 buttonsContainer.className = 'bitlogin-popup-buttons'; 9751 9752 // Add social buttons 9753 const providerLabels = { 9754 'GOOGLE': 'Continue with Google', 9755 'FACEBOOK': 'Continue with Facebook', 9756 'APPLE': 'Continue with Apple', 9757 'WHATSAPP': 'Continue with WhatsApp', 9758 'MAGIC_LINK': 'Continue with Email', 9759 }; 9760 9761 // Add first login provider button 9762 if (popupConfig.loginProvider1 !== 'NONE') { 9763 const buttonConfig = { 9764 theme: popupConfig.colorScheme || 'match', 9765 customColor: popupConfig.textColor, 9766 format: 'contentFlex', 9767 buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider1.toLowerCase()], 9768 hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true, 9769 style: popupConfig.style || 'rounded', 9770 size: popupConfig.size || 'medium', 9771 colorScheme: popupConfig.colorScheme || 'match', 9772 backgroundColor: popupConfig.backgroundColor || '#3B82F6', 9773 textColor: popupConfig.textColor || '#FFFFFF', 9774 outlineColor: popupConfig.outlineColor || '#3B82F6', 9775 host: host 9776 }; 9777 9778 const button1 = createSocialLoginButton(popupConfig.loginProvider1, buttonConfig); 9779 9780 // Handle click event - this overrides the default click handler in createSocialLoginButton 9781 button1.onclick = () => { 9782 onClickSocialLogin({ provider: popupConfig.loginProvider1.toLowerCase(), host }); 9783 closePopup(); 9784 }; 9785 9786 buttonsContainer.appendChild(button1); 9787 } 9788 9789 // Add second login provider button if enabled 9790 if (popupConfig.loginProvider2 !== 'NONE') { 9791 const buttonConfig = { 9792 theme: popupConfig.colorScheme || 'match', 9793 customColor: popupConfig.textColor, 9794 format: 'contentFlex', 9795 buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider2.toLowerCase()], 9796 hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true, 9797 style: popupConfig.style || 'rounded', 9798 size: popupConfig.size || 'medium', 9799 colorScheme: popupConfig.colorScheme || 'match', 9800 backgroundColor: popupConfig.backgroundColor || '#3B82F6', 9801 textColor: popupConfig.textColor || '#FFFFFF', 9802 outlineColor: popupConfig.outlineColor || '#3B82F6', 9803 host: host 9804 }; 9805 9806 const button2 = createSocialLoginButton(popupConfig.loginProvider2, buttonConfig); 9807 9808 // Handle click event - this overrides the default click handler in createSocialLoginButton 9809 button2.onclick = () => { 9810 onClickSocialLogin({ provider: popupConfig.loginProvider2.toLowerCase(), host }); 9811 closePopup(); 9812 }; 9813 9814 buttonsContainer.appendChild(button2); 9815 } 9816 9817 contentWrapper.appendChild(buttonsContainer); 9818 9819 // Append content to popup 9820 popup.appendChild(contentWrapper); 9821 9822 // Append popup to overlay 9823 overlay.appendChild(popup); 9824 9825 // Append overlay to body 9826 document.body.appendChild(overlay); 9827 9828 // Trigger animation with slight delay for better perceived performance 9829 setTimeout(() => { 9830 overlay.classList.add('visible'); 9831 setTimeout(() => { 9832 popup.classList.add('visible'); 9833 }, 50); 9834 }, 10); 9835 } 9836 9837 window.addEventListener("load", () => { 9838 window.addEventListener("message", (event) => { 9839 const receivedData = event.data; 9840 9841 if (receivedData.type === "authorize") { 9842 post( 9843 JSON.parse( 9844 JSON.stringify({ 9845 "customer[email]": receivedData.email, 9846 "customer[password]": receivedData.password, 9847 form_type: "customer_login", 9848 utf8: "â", 9849 return_url: redirectUrl, 9850 }) 9851 ) 9852 ); 9853 } else if (receivedData.type === "rejected") { 9854 if (receivedData.reason === "customer_account_disabled") { 9855 showAlert( 9856 "Your account needs to be activated. We've sent you an activation link - please check your email to complete this step." 9857 ); 9858 } else if (receivedData.reason === "customer_entry_created_email_not_set") { 9859 showAlert( 9860 "A new account was created but requires an email address. Please update your account with a valid email address to continue." 9861 ); 9862 } else if (receivedData.reason === "customer_exist_email_not_set") { 9863 showAlert( 9864 "Your existing account is missing an email address. Please contact support to update your account with a valid email address." 9865 ); 9866 } 9867 } 9868 9869 if (receivedData.type === "customer_authenticated") { 9870 // Dispatch a custom event that merchants can listen for to implement their custom logic 9871 const customerAuthEvent = new CustomEvent('bitlogin:customer_authenticated', { 9872 detail: { 9873 provider: receivedData.provider, 9874 customer: receivedData.customer, 9875 shopifyCustomerCreated: receivedData.shopifyCustomerCreated 9876 } 9877 }); 9878 9879 // Dispatch the event on the window object so merchants can listen for it 9880 window.dispatchEvent(customerAuthEvent); 9881 9882 } 9883 }); 9884 }); 9885 9886 // Reusable functions for social login buttons 9887 function createSocialLoginButton(provider, config = {}) { 9888 const { 9889 theme = 'match', 9890 customColor = null, 9891 format = 'contentFlex', 9892 buttonText = null, 9893 hasShadow = true, 9894 style = 'rounded', 9895 size = 'medium', 9896 colorScheme = 'match', 9897 backgroundColor = '#3B82F6', 9898 textColor = '#FFFFFF', 9899 outlineColor = '#3B82F6', 9900 rootRef = null, 9901 host = null 9902 } = config; 9903 9904 // Create button element with appropriate ID and attributes 9905 const button = document.createElement('button'); 9906 button.id = `${provider.toLowerCase()}-login`; 9907 button.type = 'button'; 9908 9909 // Set the inner SVG based on provider 9910 switch (provider.toUpperCase()) {
9911 case 'GOOGLE': 9912 button.innerHTML = googleLoginIcon(theme, customColor); 9913 break; 9914 case 'FACEBOOK': 9915 button.innerHTML = facebookLoginIcon(theme, customColor); 9916 break; 9917 case 'APPLE': 9918 button.innerHTML = appleLoginIcon(theme, customColor); 9919 break; 9920 case 'WHATSAPP': 9921 button.innerHTML = whatsappLoginIcon(theme, customColor); 9922 break; 9923 case 'MICROSOFT': 9924 button.innerHTML = microsoftLoginIcon(theme, customColor); 9925 break; 9926 case 'TWITTER': 9927 button.innerHTML = twitterLoginIcon(theme, customColor); 9928 break; 9929 case 'AMAZON': 9930 button.innerHTML = amazonLoginIcon(theme, customColor); 9931 break; 9932 case 'INSTAGRAM': 9933 button.innerHTML = instagramLoginIcon(theme, customColor); 9934 break; 9935 case 'MAGIC_LINK': 9936 button.innerHTML = magicLinkLoginIcon(theme, customColor); 9937 break; 9938 case 'MOBILE_APP': 9939 button.innerHTML = mobileAppLoginIcon(theme, customColor); 9940 break; 9941 case 'LINKEDIN': 9942 button.innerHTML = linkedinLoginIcon(theme, customColor); 9943 break; 9944 } 9945 9946 // Add text if format isn't icon-only and buttonText is provided 9947 if (format !== "wrapperFlexContainerOnlyLogo" && buttonText) { 9948 button.innerHTML += `<p>${buttonText}</p>`; 9949 } 9950 9951 // Apply styling 9952 // Shadow 9953 if (hasShadow) { 9954 const shadowProperties = `0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)`; 9955 button.style["box-shadow"] = shadowProperties; 9956 } 9957 9958 // Border radius 9959 const radiusProperties = 9960 style === "rounded" 9961 ? "8px" 9962 : style === "square" 9963 ? "0px" 9964 : style === "fullRounded" 9965 ? format === "wrapperFlexContainerOnlyLogo" 9966 ? "50%" 9967 : "50px" 9968 : undefined; 9969 button.style["border-radius"] = radiusProperties; 9970 9971 // Size 9972 const sizeProperties = 9973 size === "medium" 9974 ? "12px" 9975 : size === "small" 9976 ? "8px" 9977 : size === "large" 9978 ? "16px" 9979 : "8px"; 9980 9981 button.style["padding-block"] = sizeProperties; 9982 9983 // Format styling 9984 if (format) { 9985 if ( 9986 format === "contentFlexReverse" || 9987 format === "contentFlexCenterReverse" 9988 ) { 9989 const flexDir = `row-reverse`; 9990 button.style["flex-direction"] = flexDir; 9991 } 9992 9993 if ( 9994 format === "contentFlexCenter" || 9995 format === "contentFlexCenterReverse" 9996 ) { 9997 const justifyContent = `center`; 9998 button.style["justify-content"] = justifyContent; 9999 } else if ( 10000 format === "contentFlex" || 10001 format === "contentFlexReverse" 10002 ) { 10003 const buttonTextElement = button.querySelector("p"); 10004 if (buttonTextElement) { 10005 buttonTextElement.style["flex-grow"] = 1; 10006 buttonTextElement.style["text-align"] = "center"; 10007 } 10008 } 10009 10010 if (format === "wrapperFlexContainerOnlyLogo" && rootRef) { 10011 rootRef.style["flex-direction"] = "row"; 10012 rootRef.style["gap"] = "8px"; 10013 rootRef.style["display"] = "flex"; 10014 rootRef.style["flex-wrap"] = "wrap"; 10015 10016 const sizeMapping = { 10017 small: "52px", 10018 medium: "62px", 10019 large: "72px", 10020 }; 10021 const buttonSize = sizeMapping[size] || "52px"; 10022 10023 button.style["margin"] = 0; 10024 button.style["width"] = buttonSize; 10025 button.style["height"] = buttonSize; 10026 button.style["display"] = "flex"; 10027 button.style["align-items"] = "center"; 10028 button.style["justify-content"] = "center"; 10029 10030 const svgElement = button.querySelector("svg"); 10031 if (svgElement) { 10032 svgElement.style["flex"] = "none"; 10033 } 10034 } 10035 } 10036 10037 // Color scheme styling 10038 if (colorScheme === "black") { 10039 button.classList.add("scheme-black"); 10040 } else if (colorScheme === "white") { 10041 button.classList.add("scheme-white"); 10042 } else if (colorScheme === "custom") { 10043 button.style["background-color"] = backgroundColor; 10044 button.style["color"] = textColor; 10045 button.style["border-color"] = outlineColor; 10046 10047 const darkenColor = (color, percentage) => { 10048 const value = parseInt(color.slice(1), 16); 10049 const r = Math.max(0, ((value >> 16) & 0xff) - (0xff * percentage)); 10050 const g = Math.max(0, ((value >> 8) & 0xff) - (0xff * percentage)); 10051 const b = Math.max(0, (value & 0xff) - (0xff * percentage)); 10052 return `rgb(${Math.round(r)}, ${Math.round(g)}, ${Math.round(b)})`; 10053 }; 10054 10055 button.addEventListener("mouseover", () => {
10056 button.style["background-color"] = darkenColor(backgroundColor, 0.2); 10057 }); 10058 button.addEventListener("mouseout", () => { 10059 button.style["background-color"] = backgroundColor; 10060 }); 10061 } else if (colorScheme === "match") { 10062 button.classList.add("scheme-match"); 10063 } else if (colorScheme === "matchOutline") { 10064 button.classList.add("scheme-match-outline"); 10065 } 10066 10067 // Add click event listener if host is provided 10068 if (host) { 10069 button.addEventListener("click", () => 10070 onClickSocialLogin({ provider: provider.toLowerCase(), host }) 10071 ); 10072 } 10073 10074 return button; 10075 } 10076 10077 function setupSocialLoginButtons(config, rootRef, data, host) { 10078 // Clear any existing content 10079 rootRef.innerHTML = ''; 10080 10081 const sortedEnabledProviders = config 10082 .filter(c => c.enabledWeb) 10083 .sort((a, b) => a.position - b.position); 10084 10085 sortedEnabledProviders.forEach(provider => { 10086 const key = provider.provider; 10087 const lowerKey = key.toLowerCase(); 10088 10089 const buttonText = data.format !== "wrapperFlexContainerOnlyLogo" 10090 ? (lowerKey === 'twitter' 10091 ? data.buttonList.twitter.replace('Twitter', 'X') 10092 : data.buttonList[lowerKey]) 10093 : null; 10094 10095 const button = createSocialLoginButton(key, { 10096 theme: data.colorScheme || 'match', 10097 customColor: data.textColor, 10098 format: data.format, 10099 buttonText: buttonText, 10100 hasShadow: data.hasShadow !== undefined ? data.hasShadow : true, 10101 style: data.style, 10102 size: data.size, 10103 colorScheme: data.colorScheme, 10104 backgroundColor: data.backgroundColor, 10105 textColor: data.textColor, 10106 outlineColor: data.outlineColor, 10107 rootRef: rootRef, 10108 host: host 10109 }); 10110 10111 rootRef.appendChild(button); 10112 }); 10113 10114 return rootRef; 10115 } 10116 10117 function updateAppearance({ formRef, rootRef, host }) { 10118 if (!formRef) return; 10119 10120 const data = bitloginCache.appearance || { 10121 style: "square", 10122 hasShadow: false, 10123 colorScheme: "match", 10124 backgroundColor: "#FFFFFF", 10125 outlineColor: "#000000", 10126 textColor: "#000000", 10127 position: "bottom", 10128 hideDivider: "false", 10129 dividerText: "OR", 10130 size: "small", 10131 format: "contentFlex", 10132 language: "en", 10133 buttonText: "Continue with", 10134 redirectLink: "/account", 10135 googleOneTap: true, 10136 googleOneTapBanner: true, 10137 customerTag: "bitLogin", 10138 redirectOneTapDesktop: null, 10139 redirectOneTapMobile: null, 10140 buttonList: { 10141 google: "Continue with Google", 10142 facebook: "Continue with Facebook", 10143 apple: "Continue with Apple", 10144 whatsapp: "Continue with WhatsApp", 10145 microsoft: "Continue with Microsoft", 10146 twitter: "Continue with X", 10147 amazon: "Continue with Amazon", 10148 instagram: "Continue with Instagram", 10149 magic_link: "Continue with Magic Link", 10150 mobile_app: "Continue with Mobile App", 10151 linkedin: "Continue with LinkedIn", 10152 }, 10153 }; 10154 10155 // Use the new setupSocialLoginButtons function to create and configure all buttons 10156 setupSocialLoginButtons(bitloginCache.config, rootRef, data, host); 10157 10158 let divider; 10159 10160 if (!data.hideDivider) { 10161 divider = document.createElement("div"); 10162 const dividerStyle = "text-align:center;margin-block:16px"; 10163 divider.setAttribute("style", dividerStyle); 10164 divider.innerHTML = data.dividerText; 10165 } 10166 10167 if (data.position === "bottom") { 10168 if (divider) { 10169 formRef.appendChild(divider); 10170 } 10171 formRef.appendChild(rootRef); 10172 } else if (data.position === "top") { 10173 if (divider) { 10174 formRef.prepend(divider); 10175 } 10176 formRef.prepend(rootRef); 10177 } 10178 } 10179 10180 10181 async function onClickSocialLogin({ provider, host }) { 10182 const rand = Math.random().toString(); 10183 10184 const locationQueryString = bitloginCache.location 10185 ? `&${objectToQueryString(bitloginCache.location)}` 10186 : ""; 10187 10188 const width = 800; 10189 const height = 600; 10190 const left = (window.screen.width / 2) - (width / 2); 10191 const top = (window.screen.height / 2) - (height / 2) - 50; 10192
10193 if(provider === 'whatsapp') { 10194 window.open( 10195 `/apps/bitlogin/whatsapp${locationQueryString ? `?${locationQueryString}` : ''}`, 10196 "mywindow", 10197 `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}` 10198 ); 10199 } else { 10200 window.open( 10201 `${apiUrl}/login/${provider}?referrerId=${rand}&shop=${host}${locationQueryString}`, 10202 "mywindow", 10203 `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}` 10204 ); 10205 } 10206 } 10207 10208 function objectToQueryString(obj) { 10209 return Object.keys(obj) 10210 .map((key) => { 10211 return encodeURIComponent(key) + "=" + encodeURIComponent(obj[key]); 10212 }) 10213 .join("&"); 10214 } 10215 10216 async function getLocation() { 10217 if (locationCacheSet) return; 10218 10219 try { 10220 const response = await fetch("https://ipapi.co/json/"); 10221 10222 if (!response.ok) { 10223 console.error(`error retrieving location...`, response.status); 10224 errorLocation = true; 10225 } else { 10226 const data = await response.json(); 10227 10228 const { city, region, country_name, country_code } = data; 10229 10230 const formattedLocationData = { 10231 city, 10232 region, 10233 country_name, 10234 country_code, 10235 }; 10236 10237 bitloginCache.location = formattedLocationData; 10238 locationCacheSet = true; 10239 errorLocation = false; 10240 } 10241 } catch (err) { 10242 console.error(`error fetching location`, err); 10243 errorLocation = true; 10244 } 10245 } 10246 10247 function post(params) { 10248 // The rest of this code assumes you are not using a library. 10249 // It can be made less verbose if you use one. 10250 const form = document.createElement("form"); 10251 form.method = "post"; 10252 form.action = `/account/login`; 10253 form.acceptCharset = "UTF-8"; 10254 form.setAttribute("data-login-with-shop-sign-in", "true"); 10255 form.setAttribute("novalidate", "novalidate"); 10256 10257 for (const key in params) { 10258 if (params.hasOwnProperty(key)) { 10259 const hiddenField = document.createElement("input"); 10260 hiddenField.type = "hidden"; 10261 hiddenField.name = key; 10262 hiddenField.value = params[key]; 10263 10264 form.appendChild(hiddenField); 10265 } 10266 } 10267 10268 document.body.appendChild(form); 10269 form.submit(); 10270 } 10271 10272 async function setupOneTap({ host, checkoutUrl }) { 10273 if (oneTapSet) return; 10274 10275 const redirectOneTapDesktop = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapDesktop || '[]')); 10276 const redirectOneTapMobile = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapMobile || '[]')); 10277 10278 const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent); 10279 const redirectList = JSON.parse(isMobile ? redirectOneTapMobile : redirectOneTapDesktop); 10280 10281 const currentPath = window.location.pathname.toLowerCase(); 10282 const currentUrl = window.location.href.toLowerCase(); 10283 10284 const shouldHideGoogleOneTap = redirectList.some(({ value }) => { 10285 switch (value) { 10286 case 'home': 10287 return currentPath === '/'; 10288 case 'product': 10289 return currentPath.startsWith('/products/'); 10290 case 'collections': 10291 return currentPath.startsWith('/collections'); 10292 case 'cart': 10293 return currentPath === '/cart'; 10294 case 'checkout': 10295 return currentPath.startsWith('/checkouts') && !currentPath.includes('thank_you'); 10296 case 'thank_you': 10297 return currentPath.includes('/thank_you'); 10298 case 'account': 10299 return currentPath.startsWith('/account'); 10300 case 'pages': 10301 return currentPath.startsWith('/pages'); 10302 case 'blogs': 10303 return currentPath === '/blogs' || currentPath === '/blogs/news'; 10304 case 'blog_post': 10305 return currentPath.startsWith('/blogs/') && currentPath.split('/').length > 3; 10306 default: 10307 return false; 10308 } 10309 }); 10310 10311 if (shouldHideGoogleOneTap) return; 10312 10313 const oneTapClientId = bitloginCache.config.find( 10314 (config) => config.provider === "GOOGLE" 10315 )?.clientId; 10316 10317 const isLoggedIn = false; 10318 10319 if (bitloginCache.appearance.googleOneTap && oneTapClientId && !isLoggedIn) { 10320 const googleOneTapButton = document.createElement("div"); 10321 googleOneTapButton.setAttribute("id", "g_id_onload"); 10322 googleOneTapButton.setAttribute("data-client_id", oneTapClientId); 10323 googleOneTapButton.setAttribute("data-context", "signin"); 10324 googleOneTapButton.setAttribute( 10325 "data-callback", 10326 "handleGoogleOneTapResponse" 10327 ); 10328 googleOneTapButton.setAttribute("data-itp_support", "true"); 10329 10330 const googleOneTapScript = document.createElement("script"); 10331 10332 googleOneTapScript.innerHTML += ` 10333 function handleGoogleOneTapResponse(response) { 10334 if (response.credential) { 10335 const idToken = response.credential; 10336 fetch('${bitLoginBaseUrl}/bitlogin/api/login/google-one-tap', { 10337 method: 'POST', 10338 headers: { 'Content-Type': 'application/json' }, 10339 body: JSON.stringify({ idToken, shop: "${host}", ...bitloginCache.location }) 10340 }).then(response => { 10341 response.json().then((data) => { 10342 post( 10343 JSON.parse( 10344 JSON.stringify({ 10345 "customer[email]": data.email, 10346 "customer[password]": data.password, 10347 form_type: "customer_login", 10348 utf8: "â", 10349 return_url: redirectUrl, 10350 }) 10351 ) 10352 ); 10353 }); 10354 }).catch(error => { 10355 console.error('Error occurred:', error); 10356 }); 10357 } else { 10358 console.error('No credential available'); 10359 } 10360 } 10361 `; 10362 10363 document.body.append(googleOneTapButton); 10364 document.body.append(googleOneTapScript); 10365 } 10366 10367 oneTapSet = true; 10368 } 10369
10370 const googleLoginIcon = ( 10371 theme, 10372 customColor 10373 ) => ` 10374 ${ 10375 theme === "match" || theme === "matchOutline" || theme === "custom" 10376 ? `<svg 10377 xmlns='https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672' 10378 xmlns:v='https://vecta.io/nano' 10379 width='24' 10380 height='24' 10381 viewBox='0 0 186.69 190.5' 10382 > 10383 <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="${ 10384 theme === "custom" ? customColor : "#4285f4" 10385 }"/><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="${ 10386 theme === "custom" ? customColor : "#34a853" 10387 }"/><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="${ 10388 theme === "custom" ? customColor : "#fbbc05" 10389 }"/><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="${ 10390 theme === "custom" ? customColor : "#ea4335" 10391 }" clip-path="none" mask="none"/></g> 10392 </svg>` 10393 : `<svg xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" width="25" height="25" viewBox="0 0 25 25" fill="none"> 10394 <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="${ 10395 theme !== "black" ? "black" : "white" 10396 }"/> 10397 <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="${ 10398 theme !== "black" ? "black" : "white" 10399 }"/> 10400 <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="${ 10401 theme !== "black" ? "black" : "white" 10402 }"/> 10403 <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="${ 10404 theme !== "black" ? "black" : "white" 10405 }"/> 10406 </svg>` 10407 }`; 10408 10409 const appleLoginIcon = ( 10410 theme, 10411 customColor 10412 ) => `<svg width="24" height="24" viewBox="0 0 19 24" fill="none" xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672"> 10413 <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="${ 10414 theme === "custom" 10415 ? customColor 10416 : theme === "match" || theme === "black" 10417 ? "white" 10418 : "black" 10419 }"/> 10420 </svg>`; 10421 10422 const facebookLoginIcon = ( 10423 theme, 10424 customColor 10425 ) => ` 10426 ${ 10427 theme === "match" || theme === "matchOutline" || theme === "custom" 10428 ? `<svg xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" width="24" height="25" viewB
10428ox="0 0 24 25" fill="none"> 10429 <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="${ 10430 theme === "custom" ? customColor : theme === "match" ? "white" : "#1977F3" 10431 }"/> 10432 <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="${ 10433 theme === "match" ? "#1778f2" : "transparent" 10434 }"/> 10435 </svg>` 10436 : `<svg xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" width="24" height="25" viewBox="0 0 24 25" fill="none"> 10437 <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="${ 10438 theme === "black" ? "white" : "black" 10439 }"/> 10440 <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="${ 10441 theme === "black" ? "black" : "white" 10442 }"/> 10443 </svg>` 10444 }`; 10445 10446 const whatsappLoginIcon = ( 10447 theme, 10448 customColor 10449 ) => `<svg 10450 viewBox="0 0 24 24" 10451 fill="none" 10452 width="24" 10453 height="25" 10454 xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" 10455 > 10456 <g id="SVGRepo_bgCarrier" stroke-width="0"></g> 10457 <g 10458 id="SVGRepo_tracerCarrier" 10459 stroke-linecap="round" 10460 stroke-linejoin="round" 10461 ></g> 10462 <g id="SVGRepo_iconCarrier"> 10463 <path 10464 fill-rule="evenodd" 10465 clip-rule="evenodd" 10466 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" 10467 fill="${ 10468 theme === "match" || theme === "black" 10469 ? "#ffffff" 10470 : theme === "white" 10471 ? "#000000" 10472 : theme === "matchOutline" 10473 ? "#25d366" 10474 : customColor 10475 }" 10476 ></path> 10477 </g> 10478 </svg>`; 10479 10480 const microsoftLoginIcon = ( 10481 theme, 10482 customColor 10483 ) => `<svg 10484 xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" 10485 width="25" 10486 height="25" 10487 viewBox="0 0 48 48"> 10488 <path fill="${ 10489 theme === "match" || theme == "matchOutline" 10490 ? "#ff5722" 10491 : theme === "black" 10492 ? "#ffffff" 10493 : theme === "white" 10494 ? "#000000" 10495 : customColor 10496 }" d="M6 6H22V22H6z" transform="rotate(-180 14 14)"></path> 10497 <path 10498 fill="${ 10499 theme === "match" || theme == "matchOutline" 10500 ? "#4caf50" 10501 : theme === "black" 10502 ? "#ffffff" 10503 : theme === "white" 10504 ? "#000000" 10505 : customColor 10506 }" 10507 d="M26 6H42V22H26z" 10508 transform="rotate(-180 34 14)"></path> 10509 <path 10510 fill="${ 10511 theme === "match" || theme == "matchOutline" 10512 ? "#ffc107" 10513 : theme === "black" 10514 ? "#ffffff" 10515 : theme === "white" 10516 ? "#000000" 10517 : customColor 10518 }" 10519 d="M26 26H42V42H26z" 10520 transform="rotate(-180 34 34)"></path> 10521 <path fill="${ 10522 theme === "match" || theme == "matchOutline" 10523 ? "#03a9f4" 10524 : theme === "black" 10525 ? "#ffffff" 10526 : theme === "white" 10527 ? "#000000" 10528 : customColor 10529 }" d="M6 26H22V42H6z" transform="rotate(-180 14 34)"></path> 10530 </svg>`; 10531 10532 const twitterLoginIcon = ( 10533 theme, 10534 customColor 10535 ) => `<svg 10536 xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" 10537 width="25" 10538 height="25" 10539 viewBox="0 0 48 48"> 10540 <polygon fill="${ 10541 theme === "match" || theme === "black" 10542 ? "#ffffff" 10543 : theme === "matchOutline" || theme === "white" 10544 ? "#000000" 10545 : customColor 10546 }" points="41,6 9.929,42 6.215,42 37.287,6"></polygon> 10547 <polygon 10548 fill="${ 10549 theme === "match" || theme === "black" 10550 ? "#000000" 10551 : theme === "matchOutline" || theme === "white" 10552 ? "#ffffff" 10553 : customColor 10554 }" 10555 fill-rule="evenodd" 10556 points="31.143,41 7.82,7 16.777,7 40.1,41" 10557 clip-rule="evenodd"></polygon> 10558 <path 10559 fill="${ 10560 theme === "match" || theme === "black" 10561 ? "#ffffff" 10562 : theme === "matchOutline" || theme === "white" 10563 ? "#000000" 10564 : customColor 10565 }" 10566 d="M15.724,9l20.578,30h-4.106L11.618,9H15.724 M17.304,6H5.922l24.694,36h11.382L17.304,6L17.304,6z"></path> 10567 </svg>`; 10568 10569 const amazonLoginIcon = (theme, customColor) => ` 10570 <svg 10571 xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" 10572 x="0px" 10573 y="0px" 10574 width="25" 10575 height="25"
10576 viewBox="0 0 50 50" 10577 > 10578 <path 10579 fill="${ 10580 theme === "black" 10581 ? "#ffffff" 10582 : theme === "matchOutline" 10583 ? "#FF9900" 10584 : theme === "white" || theme === "match" 10585 ? "#000000" 10586 : customColor 10587 }" 10588 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" 10589 ></path> 10590 </svg>`; 10591 10592 const instagramLoginIcon= (theme, customColor) => ` 10593 <svg 10594 width="25" 10595 height="25" 10596 viewBox="0 0 25 24" 10597 fill="none" 10598 xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672"> 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.
1060264321C8.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.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" 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.
1061264321C8.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(#paint0_radial_378_3535)" /> 10614 <path 10615 fill-rule="evenodd" 10616 clip-rule="evenodd" 10617 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" 10618 fill="url(#paint1_radial_378_3535)" /> 10619 <defs> 10620 <radialGradient 10621 id="paint0_radial_378_3535" 10622 cx="0" 10623 cy="0" 10624 r="1" 10625 gradientUnits="userSpaceOnUse" 10626 gradientTransform="translate(17.4 22.7) rotate(-115.776) scale(27.2737 40.5665)"> 10627 <stop offset="0.24392" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF1B90' : customColor}" /> 10628 <stop offset="0.436673" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#F80261' : customColor}" /> 10629 <stop offset="0.688476" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#ED00C0' : customColor}" /> 10630 <stop offset="0.776787" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#C500E9' : customColor}" /> 10631 <stop offset="0.893155" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#7017FF' : customColor}" /> 10632 </radialGradient> 10633 <radialGradient 10634 id="paint1_radial_378_3535" 10635 cx="0" 10636 cy="0" 10637 r="1" 10638 gradientUnits="userSpaceOnUse" 10639 gradientTransform="translate(7.75 19.31) rotate(-57.4396) scale(11.8174 12.2918)"> 10640 <stop stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FFD600' : customColor}" /> 10641 <stop offset="0.484375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF6930' : customColor}" /> 10642 <stop offset="0.734375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" /> 10643 <stop offset="1" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" stop-opacity="0" /> 10644 </radialGradient> 10645 </defs> 10646 </svg>`; 10647 10648 const magicLinkLoginIcon = (theme, customColor) => ` 10649 <svg 10650 xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" 10651 width="25" 10652 height="25" 10653 fill="none"
10654 viewBox="0 0 25 25" 10655 > 10656 <path 10657 fill="${ 10658 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' || theme === 'white' ? '#000000' : customColor 10659 }" 10660 fillRule="evenodd" 10661 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" 10662 clipRule="evenodd" 10663 ></path> 10664 </svg>`; 10665 10666 const mobileAppLoginIcon = (theme, customColor) => ` 10667 <svg 10668 width="20" 10669 height="24" 10670 viewBox="0 0 12 16" 10671 fill="none" 10672 xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" 10673 > 10674 <path 10675 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" 10676 fill=${ 10677 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#FD823E' : theme === 'white' ? '#000000' : customColor 10678 } 10679 /> 10680 </svg> 10681 `; 10682 10683 const linkedinLoginIcon = (theme, customColor) => ` 10684 <svg 10685 xmlns="https://ik.imagekit.io/9ng7ozhvc/logokaskus.webp?updatedAt=1783585841672" 10686 width="25" 10687 height="24" 10688 viewBox="0 0 25 24" 10689 fill="none" 10690 > 10691 <path 10692 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" 10693 fill=${ 10694 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#0A66C2' : theme === 'white' ? '#000000' : customColor 10695 } 10696 /> 10697 </svg> 10698 `; 10699 10700 function isElementVisible(element) { 10701 return ( 10702 document.body.contains(element) && 10703 getComputedStyle(element).display !== "none" && 10704 getComputedStyle(element).visibility !== "hidden" && 10705 getComputedStyle(element).opacity !== "0" && 10706 !element.hasAttribute("hidden") && 10707 !isAncestorHidden(element) 10708 ); 10709 } 10710 10711 function isAncestorHidden(element) { 10712 let parent = element.parentElement; 10713 while (parent) { 10714 if ( 10715 getComputedStyle(parent).display === "none" || 10716 getComputedStyle(parent).visibility === "hidden" || 10717 getComputedStyle(parent).opacity === "0" || 10718 parent.hasAttribute("hidden") 10719 ) { 10720 return true; 10721 } 10722 parent = parent.parentElement; 10723 } 10724 return false; 10725 } 10726 10727 function showAlert(message) { 10728 const alertBox = document.createElement("div"); 10729 alertBox.textContent = message; 10730 alertBox.style.position = "fixed"; 10731 alertBox.style.top = "20px"; 10732 alertBox.style.right = "-300px"; // Start off-screen 10733 alertBox.style.backgroundColor = "#000000"; // Black background 10734 alertBox.style.color = "#ffffff"; // White text 10735 alertBox.style.padding = "15px"; 10736 alertBox.style.borderRadius = "8px"; 10737 alertBox.style.zIndex = "1000"; 10738 alertBox.style.transition = 10739 "right 0.5s ease-in-out, opacity 0.5s ease-in-out"; // Transition for sliding and fading 10740 alertBox.style.boxShadow = "0 2px 5px rgba(0, 0, 0, 0.2)"; // Optional shadow for depth 10741 10742 document.body.appendChild(alertBox); 10743 10744 // Slide in 10745 requestAnimationFrame(() => { 10746 alertBox.style.right = "20px"; // Move into view 10747 alertBox.style.opacity = "1"; // Ensure opacity is set to 1 10748 }); 10749 10750 // Slide out and remove the alert after a few seconds 10751 setTimeout(() => { 10752 alertBox.style.opacity = "0"; // Fade out 10753 alertBox.style.right = "-300px"; // Move out of view 10754 10755 // Wait for the transition to finish before removing the element 10756 setTimeout(() => { 10757 document.body.removeChild(alertBox); 10758 }, 500); // Match this duration with the exit transition duration 10759 }, 3000); 10760 } 10761 </script>
10761 10762 10763 <style> 10764 .daftarku-fixed-footer { 10765 display: flex; 10766 justify-content: space-around; 10767 position: fixed; 10768 background: linear-gradient(to bottom, #000000 0%, #3d3d3d, #000000 100%); 10769 box-shadow: 0 0 12px #00ffff; 10770 outline: none; 10771 padding: 5px 0; 10772 box-shadow: 0 0 0 0 2px 2px #198f01; 10773 left: 0; 10774 right: 0; 10775 bottom: 0; 10776 z-index: 99; 10777 border-radius: 40px 40px 0px 0px; 10778 border-style:dashed; 10779 10780 } 10781 10782 .daftarku-fixed-footer a { 10783 flex-basis: calc((100% - 15px*6)/ 5); 10784 text-decoration: none; 10785 display: flex; 10786 flex-direction: column; 10787 justify-content: center; 10788 align-items: center; 10789 color: #fff; 10790 max-width: 75px; 10791 font-size: 12px; 10792 font-family: Ubuntu, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; 10793 } 10794 10795 .daftarku-fixed-footer a:hover { 10796 font-weight: bold; 10797 } 10798 10799 .daftarku-fixed-footer .center { 10800 transform: scale(1.5) translateY(-5px); 10801 background: center no-repeat; 10802 background-size: contain; 10803 background-color: inherit; 10804 border-radius: 50%; 10805 } 10806 10807 .daftarku-fixed-footer img { 10808 max-width: 20px; 10809 margin-bottom: 0; 10810 max-height: 20px; 10811 } 10812 </style> 10813 10814 <div class="daftarku-fixed-footer"> 10815 <a href="https://amp13-2.vercel.app/" rel="nofollow noopener" target="_blank"> 10816 <img layout="intrinsic" height="20px" width="20px" src="https://ik.imagekit.io/9ng7ozhvc/FAVKASKUS.webp?updatedAt=1783584698948" alt="PROMOSI"> 10817 PROMO 10818 </a> 10819 <a href="https://amp13-2.vercel.app/" rel="nofollow noopener" target="_blank"> 10820 <img layout="intrinsic" height="20px" width="20px" src="https://ik.imagekit.io/9ng7ozhvc/FAVKASKUS.webp?updatedAt=1783584698948" alt="LOGIN"> 10821 LOGIN 10822 </a> 10823 <a href="https://amp13-2.vercel.app/" rel="nofollow noopener" target="_blank" class="tada"> 10824 <img layout="intrinsic" height="20px" width="20px" src="https://ik.imagekit.io/9ng7ozhvc/FAVKASKUS.webp?updatedAt=1783584698948" alt="DAFTAR"> 10825 DAFTAR 10826 </a> 10827 <a href="https://amp13-2.vercel.app/" rel="nofollow noopener" target="_blank"> 10828 <img layout="intrinsic" height="20px" width="20px" src="https://ik.imagekit.io/9ng7ozhvc/FAVKASKUS.webp?updatedAt=1783584698948" alt="TELEGRAM"> 10829 TELEGRAM 10830 </a> 10831 <a href="https://amp13-2.vercel.app/" rel="nofollow noopener" target="_blank" 10832 class="js_live_chat_link live-chat-link"> 10833 <img class="live-chat-icon" layout="intrinsic" height="20px" width="20px" src="https://ik.imagekit.io/9ng7ozhvc/FAVKASKUS.webp?updatedAt=1783584698948" alt="Live Chat"> 10834 Live Chat 10835 </a> 10836 </div> 10837 </div>
10838<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"5abaec601c63442d979cb0cee0e1cbca","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
10838 10839</body> 10840 </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.