1 2 3 4<!doctype html> 5 <!--Kang Begal--> 6 <html class="no-js"> 7 <head> 8 <meta charset="utf-8"> 9 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 10 <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"> 11 <meta name="apple-itunes-app" content="app-id=1576832504"> 12 <link rel="icon" type="image/x-icon" href="https://mobile.wso138wede-amp.org/favicon.png"> 13 <!-- Title and description --> 14 <title>WSO138: Link Resmi Situs Slotgacor Gampang Wede Terpercaya</title> 15 <meta name="description" content="WSO138 memberikan link resmi situs slotgacor gampang wede terpercaya untuk semua pemain Indonesia yang akses login alternatif dan daftar akun baru sekarang."> 16 17 <link rel="canonical" href="https://wso138wede.com/"> 18 <link rel="amphtml" href="https://mobile.wso138wede-amp.org/"/> 19 <link rel="alternate" hreflang="id-id" href="https://mobile.wso138wede-amp.org/"/> 20 <link rel="alternate" href="https://mobile.wso138wede-amp.org/"/> 21 <link rel="alternate" hreflang="id" href="https://mobile.wso138wede-amp.org/"/> 22 <link rel="alternate" hreflang="en" href="https://mobile.wso138wede-amp.org/"/> 23 <link rel="alternate" hreflang="x-default" href="https://mobile.wso138wede-amp.org/"/> 24 <!-- /snippets/social-meta-tags.liquid --> 25 <meta property="og:type" content="WSO138"> 26 <meta property="og:title" content="WSO138: Link Resmi Situs Slotgacor Gampang Wede Terpercaya"> 27 <meta property="og:image" content="https://mobile.wso138wede-amp.org/wso138.webp"> 28 <meta property="og:image:secure_url" content="https://mobile.wso138wede-amp.org/wso138.webp"> 29 <meta property="og:image" content="https://mobile.wso138wede-amp.org/wso138.webp"> 30 <meta property="og:image:secure_url" content="https://mobile.wso138wede-amp.org/wso138.webp"> 31 <meta property="og:image" content="https://mobile.wso138wede-amp.org/wso138.webp"> 32 <meta property="og:image:secure_url" content="https://mobile.wso138wede-amp.org/wso138.webp"> 33 <meta property="og:description" content="WSO138 memberikan link resmi situs slotgacor gampang wede terpercaya untuk semua pemain Indonesia yang akses login alternatif dan daftar akun baru sekarang."> 34 <meta property="og:price:amount" content="5,000-,"> 35 <meta property="og:price:currency" content="IDR"> 36 <meta property="og:url" content="https://wso138wede.com/"> 37 <meta property="og:site_name" content="WSO138"> 38 <meta name="twitter:site" content="@WSO138"> 39 <meta name="twitter:card" content="summary"> 40 <meta name="twitter:title" content="WSO138: Link Resmi Situs Slotgacor Gampang Wede Terpercaya"> 41 <meta name="twitter:description" content="WSO138 memberikan link resmi situs slotgacor gampang wede terpercaya untuk semua pemain Indonesia yang akses login alternatif dan daftar akun baru sekarang."> 42 <meta name="twitter:image" content="https://mobile.wso138wede-amp.org/wso138.webp"> 43 <meta name="twitter:image:width" content="600"> 44 <meta name="twitter:image:height" content="600"> 45 <link rel="shortcut icon" href="https://mobile.wso138wede-amp.org/favicon.png" type="image/png"> 46 <meta name="theme-color" content="#ffffff"> 47 <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700&family=Poppins&display=swap" rel="stylesheet"> 48 <link href="https://outerbloom.com/cdn/shop/t/138/assets/custom-styles.css?v=94643080714485117621752652418" rel="stylesheet" type="text/css" media="all" /> 49 <link rel="stylesheet" href="https://outerbloom.com/cdn/shop/t/138/assets/wishlist-styles.css?v=166819525406734116961754385201">
49<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js" defer></script>
49 50
50<script 51 src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js" 52 integrity="sha512-57oZ/vW8ANMjR/KQ6Be9v/+/h6bq9/l3f0Oc7vn6qMqyhvPd1cvKBRWWpzu0QoneImqr2SkmO4MSqU+RpHom3Q==" 53 crossorigin="anonymous" 54 referrerpolicy="no-referrer" 55 defer 56 ></script>
56 57
57<script src="https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js" async="async"></script>
57 58
58<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/select2.min.js" defer></script>
58<!-- Facebook Pixel Code --> 59
59<script>
vendor: 462 bytes, lines 59-68
59 60 !function(f,b,e,v,n,t,s) 61 {if(f.fbq)return;n=f.fbq=function(){n.callMethod? 62 n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 63 if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 64 n.queue=[];t=b.createElement(e);t.async=!0; 65 t.src=v;s=b.getElementsByTagName(e)[0]; 66 s.parentNode.insertBefore(t,s)}(window, document,'script', 67 'https://connect.facebook.net/en_US/fbevents.js'); 68 fbq('init', '
68165971065669324
vendor: 42 bytes, lines 68-70
68'); 69 fbq('track', 'PageView'); 70
70</script>
70 71 <noscript 72 ><img 73 height="1" 74 width="1" 75 style="display:none" 76 src="https://www.facebook.com/tr?id=165971065669324&ev=PageView&noscript=1" 77 ></noscript> 78 <!-- End Facebook Pixel Code --> 79 80 <!-- Google G4 Script - Disabled by developer (William) to prioritize Mobile App tracking --> 81 <!-- 82 Global site tag (gtag.js) - Google Analytics -->
vendor: 75 bytes, lines 82-83
82 83 <script async src="https://www.googletagmanager.com/gtag/js?id=
83G-X26HYP4083
vendor: 23 bytes, lines 83-84
83"></script> 84
84<script> 85
vendor: 170 bytes, lines 85-89
85window.dataLayer = window.dataLayer || []; 86 function gtag(){dataLayer.push(arguments);} 87 gtag('js', new Date()); 88 89 gtag('config', '
89G-X26HYP4083
vendor: 15 bytes, lines 89-90
89'); 90
90</script>
90 91 <!-- Global site tag (gtag.js) - Google Analytics --> 92 93 <div class="button-login-daftar"> 94 <a class="login" href="https://mobile.wso138wede-amp.org/" rel="nofollow noreferrer"> 95 LOGIN 96 </a> 97 <a class="register" href="https://mobile.wso138wede-amp.org/" rel="nofollow noreferrer"> 98 DAFTAR 99 </a> 100 </div> 101 102
102<script src="//cdnjs.cloudflare.com/ajax/libs/vissense/0.9.0/vissense.js" defer></script>
102 103 104 <!-- Bing UET --> 105
105<script> 106 (function(w,d,t,r,u) 107 { 108 var f,n,i; 109 w[u]=w[u]||[],f=function() 110 { 111 var o={ti:"343051754", tm:"shpfy_ui", enableAutoSpaTracking: true}; 112 o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad") 113 }, 114 n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function() 115 { 116 var s=this.readyState; 117 s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null) 118 }, 119 i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i) 120 }) 121 (window,document,"script","//bat.bing.com/bat.js","uetq"); 122 </script>
122 123
123<script> 124 window.uetq = window.uetq || []; 125 window.uetq.push('event', '', {"revenue_value":0,"currency":"IDR"}); 126 </script>
126 127 <!-- End Bing UET --> 128 129 <!-- Microsoft Clarity --> 130
130<script type="text/javascript"> 131 (function(c,l,a,r,i,t,y){ 132 c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; 133 t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i; 134 y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); 135 })(window, document, "clarity", "script", "h7rbxqry9k"); 136 </script>
136 137 <!-- End Microsoft Clarity --> 138 139 140 <link href="https://outerbloom.com/cdn/shop/t/138/assets/combine.min.css?v=111340648424012527321754385205" rel="stylesheet" type="text/css" media="all" /> 141 142 <link href="https://outerbloom.com/cdn/shop/t/138/assets/font-awesome.css?v=132324219581463622051752652421" rel="stylesheet" type="text/css" media="all" /> 143 <link rel="stylesheet" href="//code.jquery.com/ui/1.13.0/themes/base/jquery-ui.min.css"> 144 145
145<script src="//code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
145 146
146<script src="https://outerbloom.com/cdn/shop/t/138/assets/combine.js?v=140218079523075729301752652421" type="text/javascript"></script>
146 147
147<script src="//code.jquery.com/ui/1.13.0/jquery-ui.min.js"></script>
147 148
148<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
148 149 <meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/15896833/digital_wallets/dialog"> 150 <link rel="alternate" type="application/json+oembed" href="https://datatellers.info.oembed"> 151
151<script async="async" src="/checkouts/internal/preloads.js?locale=en-ID"></script>
151 152
152<script id="shopify-features" type="application/json">{"accessToken":"d2e176e59f6658d5056234d6249b3ab4","betas":["rich-media-storefront-analytics"],"domain":"outerbloom.com","predictiveSearch":true,"shopId":15896833,"locale":"en"}</script>
152 153
153<script>var Shopify = Shopify || {}; 154 Shopify.shop = "outerbloom1.myshopify.com"; 155 Shopify.locale = "en"; 156 Shopify.currency = {"active":"IDR","rate":"1.0"}; 157 Shopify.country = "ID"; 158 Shopify.theme = {"name":"web-outerbloom-shopify\/main","id":153139282135,"schema_name":null,"schema_version":null,"theme_store_id":null,"role":"main"}; 159 Shopify.theme.handle = "null"; 160 Shopify.theme.style = {"id":null,"handle":null}; 161 Shopify.cdnHost = "outerbloom.com/cdn"; 162 Shopify.routes = Shopify.routes || {}; 163 Shopify.routes.root = "/";</script>
163 164
164<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
164 165
165<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>
165 166
166<script id="shop-js-analytics" type="application/json">{"pageType":"product"}</script>
166 167
167<script defer="defer" async="async" src="https://outerbloom.com/cdn/shopifycloud/shop-js/client.js" onload="window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 168 "></script>
168 169
169<script>(function() { 170 var isLoaded = false; 171 function asyncLoad() { 172 if (isLoaded) return; 173 isLoaded = true; 174 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"]; 175 for (var i = 0; i < urls.length; i++) { 176 var s = document.createElement('script'); 177 s.type = 'text/javascript'; 178 s.async = true; 179 s.src = urls[i]; 180 var x = document.getElementsByTagName('script')[0]; 181 x.parentNode.insertBefore(s, x); 182 } 183 }; 184 if(window.attachEvent) { 185 window.attachEvent('onload', asyncLoad); 186 } else { 187 window.addEventListener('load', asyncLoad, false); 188 } 189 })();</script>
189 190
190<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>
190 191
191<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
191 192
192<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>
192 193
193<script integrity="sha256-52AcMU7V7pcBOXWImdc/TAGTFKeNjmkeM1Pvks/DTgc=" data-source-attribution="shopify.loadfeatures" defer="defer" src="https://outerbloom.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-81c60534.js" crossorigin="anonymous"></script>
193 194
194<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)}}; 195 </script>
195 196
196<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 197 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); 198 </script>
198 199
199<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})}})); 200 </script>
200 201 202
202<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
202 203 <!-- /snippets/oldIE-js.liquid --> 204 205 206 <!--[if lt IE 9]> 207
207<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js" type="text/javascript"></script>
207 208
208<script src="https://outerbloom.com/cdn/shop/t/138/assets/respond.min.js?v=52248677837542619231752652418" type="text/javascript"></script>
208 209 <link href="https://outerbloom.com/cdn/shop/t/138/assets/respond-proxy.html" id="respond-proxy" rel="respond-proxy" /> 210 <link href="https://outerbloom.com/search?q=142e9156869335090161dced0ac98b64" id="respond-redirect" rel="respond-redirect" /> 211
211<script src="https://outerbloom.com/search?q=142e9156869335090161dced0ac98b64" type="text/javascript"></script>
211 212 <![endif]--> 213 214 215 216 217 218 <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"> 219 <link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch"> 220
220<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>
220 221
221<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":"WSO138: Link Resmi Situs Slotgacor Gampang Wede Terpercaya","vendor":"Outerbloom Florist","id":"8144957800663","untranslatedTitle":"WSO138: Link Resmi Situs Slotgacor Gampang Wede Terpercaya","url":"\/products\/blossom-shine","type":"WSO138 memberikan link resmi situs slotgacor gampang wede terpercaya untuk semua pemain Indonesia yang akses login alternatif dan daftar aku
221n baru sekarang."},"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\":\"WSO138: Link Resmi Situs Slotgacor Gampang Wede Terpercaya\",\"vendor\":\"Outerbloom Florist\",\"id\":\"8144957800663\",\"untranslatedTitle\":\"WSO138: Link Resmi Situs Slotgacor Gampang Wede Terpercaya\",\"url\":\"\/products\/blossom-shine\",\"type\":\"WSO138 memberikan link resmi situs slotgacor gampang wede terpercaya untuk semua pemain Indonesia yang akses login alternatif dan daftar akun baru sekarang.\"},\"id\":\"44083045826775\",\"image\":{\"src\":\"\/\/outerbloom.com\/cdn\/shop\/files\/Blossom-Shine-WM.jpg?v=1695788426\"},\"sku\":\"OBVSTF1086\",\"title\":\"Default Title\",\"untranslatedTitle\":\"Default Title\"}}]]"});</script>
221<script> 222 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 223 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 224 window.ShopifyAnalytics.meta.currency = 'IDR'; 225 var meta = {"product":{"id":8144957800663,"gid":"gid:\/\/shopify\/Product\/8144957800663","vendor":"Outerbloom Florist","type":"WSO138 memberikan link resmi situs slotgacor gampang wede terpercaya untuk semua pemain Indonesia yang akses login alternatif dan daftar akun baru sekarang.","variants":[{"id":44083045826775,"price":1000000 226 ,"name":"WSO138: Link Resmi Situs Slotgacor Gampang Wede Terpercaya","public_title":null,"sku":"OBVSTF1086"}],"remote":false},"page":{"pageType":"product","resourceType":"product","resourceId":8144957800663}}; 227 for (var attr in meta) { 228 window.ShopifyAnalytics.meta[attr] = meta[attr]; 229 } 230 </script>
230 231
231<script class="analytics"> 232 (function () { 233 var customDocumentWrite = function(content) { 234 var jquery = null; 235 236 if (window.jQuery) { 237 jquery = window.jQuery; 238 } else if (window.Checkout && window.Checkout.$) { 239 jquery = window.Checkout.$; 240 } 241 242 if (jquery) { 243 jquery('body').append(content); 244 } 245 }; 246 247 var hasLoggedConversion = function(token) { 248 if (token) { 249 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 250 } 251 return false; 252 } 253 254 var setCookieIfConversion = function(token) { 255 if (token) { 256 var twoMonthsFromNow = new Date(Date.now()); 257 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 258 259 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 260 } 261 } 262 263 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 264 if (trekkie.integrations) { 265 return; 266 } 267 trekkie.methods = [ 268 'identify', 269 'page', 270 'ready', 271 'track', 272 'trackForm', 273 'trackLink' 274 ]; 275 trekkie.factory = function(method) { 276 return function() { 277 var args = Array.prototype.slice.call(arguments); 278 args.unshift(method); 279 trekkie.push(args); 280 return trekkie; 281 }; 282 }; 283 for (var i = 0; i < trekkie.methods.length; i++) { 284 var key = trekkie.methods[i]; 285 trekkie[key] = trekkie.factory(key); 286 } 287 trekkie.load = function(config) { 288 trekkie.config = config || {}; 289 trekkie.config.initialDocumentCookie = document.cookie; 290 var first = document.getElementsByTagName('script')[0]; 291 var script = document.createElement('script'); 292 script.type = 'text/javascript'; 293 script.onerror = function(e) { 294 var scriptFallback = document.createElement('script'); 295 scriptFallback.type = 'text/javascript'; 296 scriptFallback.onerror = function(error) { 297 var Monorail = { 298 produce: function produce(monorailDomain, schemaId, payload) { 299 var currentMs = new Date().getTime(); 300 var event = { 301 schema_id: schemaId, 302 payload: payload, 303 metadata: { 304 event_created_at_ms: currentMs, 305 event_sent_at_ms: currentMs 306 } 307 }; 308 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 309 }, 310 sendRequest: function sendRequest(endpointUrl, payload) { 311 // Try the sendBeacon API 312 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 313 var blobData = new window.Blob([payload], { 314 type: 'text/plain' 315 }); 316 317 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 318 return true; 319 } // sendBeacon was not successful 320 321 } // XHR beacon 322 323 var xhr = new XMLHttpRequest(); 324 325 try { 326 xhr.open('POST', endpointUrl); 327 xhr.setRequestHeader('Content-Type', 'text/plain'); 328 xhr.send(payload); 329 } catch (e) { 330 console.log(e); 331 } 332 333 return false; 334 }, 335 isIos12: function isIos12() { 336 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 337 } 338 }; 339 Monorail.produce('monorail-edge.shopifysvc.com', 340 'trekkie_storefront_load_errors/1.1', 341 {shop_id: 15896833, 342 theme_id: 153139282135, 343 app_name: "storefront", 344 context_url: window.location.href, 345 source_url: "https://outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js"}); 346 347 }; 348 scriptFallback.async = true; 349 scriptFallback.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js'; 350 first.parentNode.insertBefore(scriptFallback, first); 351 }; 352 script.async = true; 353 script.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js'; 354 first.parentNode.insertBefore(script, first); 355 }; 356 trekkie.load( 357 {"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}} 358 ); 359 360 var loaded = false;
361 trekkie.ready(function() { 362 if (loaded) return; 363 loaded = true; 364 365 window.ShopifyAnalytics.lib = window.trekkie; 366 367 var originalDocumentWrite = document.write; 368 document.write = customDocumentWrite; 369 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 370 document.write = originalDocumentWrite; 371 372 window.ShopifyAnalytics.lib.page(null,{"pageType":"product","resourceType":"product","resourceId":8144957800663,"shopifyEmitted":true}); 373 374 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 375 var token = match? match[1]: undefined; 376 if (!hasLoggedConversion(token)) { 377 setCookieIfConversion(token); 378 window.ShopifyAnalytics.lib.track("Viewed Product",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"WSO138: Link Resmi Situs Slotgacor Gampang Wede Terpercaya","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"WSO138 memberikan link resmi situs slotgacor gampang wede terpercaya untuk semua pemain Indonesia yang akses login alternatif dan daftar akun baru sekarang.","nonInteraction":true,"remote":false},undefined,undefined,{"shopifyEmitted":true}); 379 window.ShopifyAnalytics.lib.track("monorail:\/\/trekkie_storefront_viewed_product\/1.1",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"WSO138: Link Resmi Situs Slotgacor Gampang Wede Terpercaya","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"WSO138 memberikan link resmi situs slotgacor gampang wede terpercaya untuk semua pemain Indonesia yang akses login alternatif dan daftar akun baru sekarang.","nonInteraction":true,"remote":false,"referer":"https:\/\/outerbloom.com\/products\/blossom-shine"}); 380 } 381 }); 382 383 384 var eventsListenerScript = document.createElement('script'); 385 eventsListenerScript.async = true; 386 eventsListenerScript.src = "https://outerbloom.com/cdn/shopifycloud/storefront/assets/shop_events_listener-abeef7a0.js"; 387 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 388 389 })();</script>
389 390
390<script> 391 if (!window.ga || (window.ga && typeof window.ga !== 'function')) { 392 window.ga = function ga() { 393 (window.ga.q = window.ga.q || []).push(arguments); 394 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 395 window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"}); 396 } 397 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."); 398 }; 399 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 400 window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"}); 401 } 402 } 403 </script>
403 404
404<script 405 defer 406 src="https://outerbloom.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-2.0.13.min.js" 407 data-application="storefront-renderer" 408 data-shop-id="15896833" 409 data-render-region="gcp-asia-southeast1" 410 data-page-type="product" 411 data-theme-instance-id="153139282135" 412 data-theme-name="" 413 data-theme-version="" 414 data-monorail-region="shop_domain" 415 data-resource-timing-sampling-rate="10" 416 data-shs="true" 417 data-shs-beacon="true" 418 data-shs-export-with-fetch="true" 419 data-shs-logs-sample-rate="1" 420 ></script>
420 421 </head><body 422 data-template="product" 423 id="blossom-shine" 424 class="template-product template-product" 425 > 426 <!-- Google Tag Manager (noscript) -->
vendor: 90 bytes, lines 426-429
426 427 <noscript 428 ><iframe 429 src="https://www.googletagmanager.com/ns.html?id=
429GTM-MF9VVZX
vendor: 129 bytes, lines 429-435
429" 430 height="0" 431 width="0" 432 style="display:none;visibility:hidden" 433 ></iframe 434 ></noscript> 435
435<!-- End Google Tag Manager (noscript) --> 436 437 438 439 <div class="header-wrapper"> 440 441 <div id="shopify-section-NotifBar" class="shopify-section m-0"> 442 443 <style> 444 #notification {z-index: 99;width: 100%;transition: top 0.2s ease-in-out;} 445 #notification.promo-up {top: -48px!important;} 446 .promo-bg {width: 100%;padding: 6px 0;background-color: #242424;} 447 .notification__message p {margin: 0;color: #000000;font-size: 14px!important;} 448 .notification__message p a {text-decoration: underline;color: #00BFFF;} 449 @media (max-width: 991px){ 450 .notification__message p {font-size: 14px!important;} 451 } 452 </style> 453 <input id="clearCookie" class="hide" type="button" value="Delete Cookie" /> 454 <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"> 455 <div class="page-width notification__inner "> 456 457 458 <div class="notification__message text-center"> 459 <p><a href="https://wso138wede.com/" title="WSO138">WSO138: Link Resmi Situs Slotgacor Gampang Wede Terpercaya</a></p> 460 </div> 461 </div> 462 </div> 463 464 465 466 467 </div> 468 <div id="shopify-section-new-header" class="shopify-section mb-0 mt-0"><link href="https://outerbloom.com/cdn/shop/t/138/assets/section-new-header.css?v=159841885358852784021757475904" rel="stylesheet" type="text/css" media="all"/> 469 470 471 <header style="background-image: url(https://assetevos.io/images/2026/06/25/garis-keras-evs.png); background-attachment: fixed;"> 472 <div class="container"> 473 <div class="header-container row justify-content-between pl-lg-0 pr-lg-0"> 474 <a href="https://wso138wede.com/"> 475 <img src="https://mobile.wso138wede-amp.org/logo-wso138.png" alt="logo-WSO138" style="width: 190px;"></a> 476 <link href="https://mobile.wso138wede-amp.org/favicon.png" rel="shortcut icon" type="image/x-icon" /> 477 <div id="menu-hamburger" class="d-lg-none"> 478 <svg xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="16" height="10" viewBox="0 0 16 10" fill="none"> 479 <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"/> 480 </svg> 481 482 <a href="/"><svg xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" viewBox="0 0 854 78.29"> 483 <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> 484 </svg> 485 </a> 486 </div> 487 488 <div class="header-icon-right header-icons col-3"> 489 <div class="icon icon-account-header d-none d-lg-block"> 490 <a href="https://wso138wede.com/"> 491 <svg xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="20" height="21" viewBox="0 0 20 21" fill="none"> 492 <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"/> 493 <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"/> 494 </svg> 495 496 </a> 497 </div> 498 <div class="icon icon-wishlist-header"> 499 <a href="https://wso138wede.com/"> 500 <svg xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 501 <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
5016 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"/> 502 </svg> 503 504 <span class="wishlist-count d-none">0</span> 505 </a> 506 </div> 507 <div class="icon icon-cart-header"> 508 <a href="https://wso138wede.com/"> 509 <svg xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="22" height="21" viewBox="0 0 22 21" fill="none"> 510 <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"/> 511 <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"/> 512 </svg> 513 514 </a> 515 </div> 516 </div> 517 </div> 518 </div> 519 </header> 520 521 <nav class="nav-header" style="background-color: #242424;"> 522 <div class="nav-account-mobile row m-0 d-lg-none"> 523 <div class="col-6 welcome-cust p-0"> 524 525 <h1 class="logo"> 526 <a href="https://wso138wede.com/"> 527 <img src="https://mobile.wso138wede-amp.org/logo-wso138.png" alt="WSO138" style="max-height:60px;"> 528 </a> 529 </h1> 530 531 532 </div> 533 534 <div class="col-6 login-register text-right p-0"> 535 <a href="https://mobile.wso138wede-amp.org/">Log In</a> | <a href="https://mobile.wso138wede-amp.org/">Sign Up</a> 536 </div> 537 </div> 538 <ul class="nav-menu container"> 539 540 <li class="nav-menu container"> 541 <a href="https://wso138wede.com/"> 542 <span style="color: #00BFFF;">WSO138</span> 543 544 545 <li class=" nav-menu container"> 546 <a href="https://wso138wede.com/"> 547 <span style="color: #00BFFF;">WSO138 LINK</span> 548 549 550 <li class=" nav-menu container"> 551 <a href="https://wso138wede.com/"> 552 <span style="color: #00BFFF;">LOGIN WSO138</span> 553 554 <li class=" nav-menu container"> 555 <a href="https://wso138wede.com/"> 556 <span style="color: #00BFFF;">PREDIKSI BOLA</span> 557 558 <li class=" nav-menu container"> 559 <a href="https://wso138wede.com/"> 560 <span style="color: #00BFFF;">SBOBET</span> 561 562 <li class=" nav-menu container"> 563 <a href="https://wso138wede.com/"> 564 <span style="color: #00BFFF;">BOLA ONLINE</span> 565 566 <div class="overlay-nav"> 567 <!-- Mobile Close Button in Overlay --> 568 <button id="nav-close" class="nav-close-btn d-lg-none"> 569 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png"> 570 <path d="M18 6L6 18M6 6L18 18" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 571 </svg> 572 </button> 573 </div> 574 575
575<script> 576 if ($(window).width() < 992) { 577 // Level 1 menu accordion (main menu items) 578 $(".nav-menu .nav-menu container > a").click(function(e){ 579 e.preventDefault() 580 const parentLi = $(this).parent() 581 const isCurrentlyOpen = parentLi.hasClass("menu-open") 582 583 // Close all other open menus (accordion behavior) 584 $(".nav-menu .nav-menu container").not(parentLi).removeClass("menu-open") 585 $(".nav-menu .megamenu").not($(this).next(".megamenu")).slideUp() 586 587 // Toggle current menu 588 if (isCurrentlyOpen) { 589 parentLi.removeClass("menu-open") 590 $(this).next(".megamenu").slideUp() 591 } else { 592 parentLi.addClass("menu-open") 593 $(this).next(".megamenu").slideDown() 594 } 595 }) 596 597 // Level 2 menu accordion (submenu items with grandchildren) 598 $(document).on('click', '.dropdown-menu .has-submenu > a', function(e){ 599 e.preventDefault() 600 const parentLi = $(this).parent() 601 const isCurrentlyOpen = parentLi.hasClass("submenu-open") 602 const grandchild = $(this).next(".grandchild") 603 604 // Close all other open submenus in the same dropdown (accordion behavior) 605 parentLi.siblings('.has-submenu').removeClass("submenu-open") 606 parentLi.siblings('.has-submenu').find('.grandchild').slideUp() 607 parentLi.siblings('.has-submenu').find('.chevron-right').css('transform', 'rotate(0deg)') 608 609 // Toggle current submenu 610 if (isCurrentlyOpen) { 611 parentLi.removeClass("submenu-open") 612 grandchild.slideUp() 613 $(this).find('.chevron-right').css('transform', 'rotate(0deg)') 614 } else { 615 parentLi.addClass("submenu-open") 616 grandchild.slideDown() 617 $(this).find('.chevron-right').css('transform', 'rotate(90deg)') 618 } 619 }) 620 621 $("#menu-hamburger").click(function(e){ 622 e.preventDefault() 623 $("body").toggleClass("nav_open") 624 }) 625 626 // Handle close button click 627 $("#nav-close").click(function(e){ 628 e.preventDefault() 629 $("body").removeClass("nav_open") 630 // Close all open menus when close button is clicked 631 $(".nav-menu .nav-menu container").removeClass("menu-open") 632 $(".nav-menu .megamenu").slideUp() 633 $(".dropdown-menu .has-submenu").removeClass("submenu-open") 634 $(".dropdown-menu .grandchild").slideUp() 635 $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)') 636 }) 637 } 638 639 $(".overlay-nav").click(function(e){ 640 e.preventDefault() 641 $("body").removeClass("nav_open") 642 // Close all open menus when overlay is clicked 643 $(".nav-menu .nav-menu container").removeClass("menu-open") 644 $(".nav-menu .megamenu").slideUp() 645 $(".dropdown-menu .has-submenu").removeClass("submenu-open") 646 $(".dropdown-menu .grandchild").slideUp() 647 $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)') 648 }) 649 </script>
649 650 651 652 </div> 653 654 <div id="shopify-section-search-popup" class="shopify-section m-0"><style> 655 #search-trigger { 656 cursor: pointer; 657 } 658 #search-popup { 659 display: none; 660 position: fixed; 661 left: 0; 662 width: 100%; 663 top: 0; 664 height: 100%; 665 justify-content: center; 666 z-index: 9999; 667 background: rgb(196 196 196 / 30%); 668 } 669 #search-input { 670 align-self: center; 671 width: 100%; 672 height: 80px; 673 position: absolute; 674 top: 0; 675 border-bottom: 0.5px solid #A3A3A3; 676 background-color: #fff; 677 } 678 #search-input * { 679 align-self: center; 680 } 681 #search-type { 682 width: 100%; 683 border: none; 684 padding-right: 20px; 685 padding-left: 20px; 686 font-size: 16px; 687 color: #757575; 688 } 689 #search-btn { 690 font-size: 16px; 691 font-weight: 500; 692 } 693 #search-result { 694 min-height: 490px; 695 width: 100%; 696 padding-top: 80px; 697 } 698 #search-result .container { 699 background-color: #fff; 700 padding: 20px 40px; 701 } 702 body.search-popup-open { 703 /* .search-popup-open */ 704 overflow: hidden; 705 } 706 .search-popup-open #loc_delivery { 707 display: none 708 } 709 .search-header svg { 710 display: none; 711 cursor: pointer; 712 } 713 .wrapper-search-popup { 714 max-height: calc(100vh - 150px); 715 overflow-y: auto; 716 overflow-x: hidden; 717 } 718 719 .group-recommend { 720 padding: 20px 40px; 721 } 722 723 .resultsearch { 724 display: none; 725 } 726 .results { padding: 20px 40px } 727 .resultsearch label { 728 font-weight: 600; 729 padding-bottom: 20px; 730 display: block; 731 margin-bottom: 20px; 732 border-bottom: 1px solid #AAAAAA; 733 } 734 735 ul.result_product { 736 max-height: 300px; 737 overflow: auto; 738 } 739 740 .group-promotion ul { 741 margin: 0; 742 } 743 .group-promotion li { 744 list-style: none; 745 margin-bottom: 12px; 746 } 747 .group-promotion li a { 748 color: inherit; 749 } 750 751 .group-recent { 752 position: relative; 753 padding: 20px 40px; 754 } 755 .group-recent ul { 756 margin: 0; 757 } 758 .group-recent li { 759 list-style: none; 760 display: inline-block; 761 margin-right: 60px; 762 } 763 .group-recent li a { 764 color: inherit; 765 } 766 767 .last-search svg { 768 width: 20px; 769 vertical-align: middle; 770 } 771 ul.last-search a { 772 vertical-align: middle; 773 padding: 0 10px; 774 } 775 ul.last-search li span { 776 cursor: pointer; 777 } 778 .delete-all-history { 779 position: absolute; 780 top: 25px; 781 right: 40px; 782 text-decoration: underline; 783 color: #e11d1d; 784 cursor: pointer; 785 font-size: 12px; 786 } 787 788 form.search.search-modal__form { 789 position: relative; 790 } 791 792 button.search__button svg { 793 width: 25px; 794 color: #495057; 795 fill: #757582; 796 } 797 798 button.search__button.field__button { 799 position: absolute; 800 top: 50%; 801 margin-top: -12px; 802 } 803 804 .close-search { 805 display: none; 806 position: absolute; 807 right: 65px; 808 top: 10px; 809 cursor: pointer; 810 } 811 812 .site-overlay { 813 position: fixed; 814 top: 0; 815 width: 100vw; 816 height: 100vh; 817 z-index: 1000; 818 background: #0000005c; 819 visibility: hidden; 820 opacity: 0; 821 pointer-events: none; 822 transition: all .3s linear; 823 display: block !important; 824 } 825 826 .search-popup-open .site-overlay { 827 opacity: 1; 828 visibility: visible; 829 pointer-events: all; 830 z-index: -1; 831 cursor: pointer; 832 } 833 834 @media (min-width: 991px) { 835 .group-recent ul { 836 column-count: 3; 837 } 838 .group-promotion li a { 839 font-size: 12px; 840 font-weight: 400; 841 } 842 .group-recent li a { 843 font-size: 12px; 844 font-weight: 400; 845 } 846 } 847 848 .moreresult { 849 padding: 10px 40px; 850 border-top: 1px solid #AAAAAA; 851 } 852 .moreresult * { 853 align-self: center; 854 } 855 .moreresult p { 856 margin: 0; 857 font-size: 12px !important; 858 } 859 .moreresult svg { 860 width: 13px; 861 } 862 863 @media (max-width: 992px) { 864 .icon-key-mobile { 865 height: auto!important; 866 width: 10px!important; 867 } 868 body.grid-view.search-popup-open .products { 869 -ms-flex: 0 0 100%!important; 870 flex: 0 0 100%!important; 871 max-width: 100%!important; 872 } 873 button.search__button svg {
874 width: 20px; 875 } 876 #search-result { 877 padding-left: 0; 878 padding-right: 0; 879 } 880 #search-result { 881 padding-top: 55px; 882 } 883 #search-input { 884 height: 55px; 885 } 886 .group-recommend { 887 padding: 20px; 888 } 889 #search-input .container { 890 padding: 0 20px; 891 } 892 #search-type { 893 font-size: 14px; 894 } 895 #search-btn { 896 font-size: 12px; 897 text-decoration: underline; 898 } 899 .results { 900 padding: 20px; 901 } 902 .group-recommend h3 { 903 font-size: 16px; 904 } 905 .products .card-body { 906 padding: 8px 0px 10px; 907 } 908 .moreresult { 909 padding: 10px 20px; 910 } 911 } 912 </style> 913 <style type="text/css"> 914 div.advertisement-placeholder { 915 text-align: center; 916 padding-bottom: 20px; 917 display: flex; 918 flex-direction: column; 919 justify-content: center; 920 } 921 div.advertisement-text p { 922 margin: 0; 923 font-family: Open Sans; 924 font-style: normal; 925 font-weight: normal; 926 font-size: 10px; 927 line-height: 20px; 928 color: #999999; 929 } 930 div.advertisement-banner { 931 margin: 0px auto; 932 } 933 div#div-gpt-ad-billboard-placeholder { 934 width: 996px; 935 margin: 0 auto; 936 background: #F5F5F5; 937 padding-bottom: unset !important; 938 min-height: 200px; 939 } 940 div#div-gpt-ad-lb-placeholder { 941 background: #F5F5F5; 942 padding-bottom: unset !important; 943 min-height: 280px; 944 } 945 .faq-section{ 946 max-width:1200px; 947 margin:50px auto; 948 padding:40px 20px; 949 position:relative; 950 background-color: rgba(0, 0, 0, 0.1); 951 backdrop-filter: blur(25px); 952 border-radius: 20px; 953 } 954 955 .faq-section::before{ 956 content:""; 957 position:absolute; 958 top:0;left:50%; 959 transform:translateX(-50%); 960 width:80%; 961 height:2px; 962 background:linear-gradient(90deg,transparent,#00BFFF,transparent) 963 } 964 965 .faq-section h2{ 966 text-align:center; 967 font-size:34px;font-weight:700; 968 margin-bottom:50px; 969 background: linear-gradient(135deg, #00BFFF, #00BFFF, #00BFFF); 970 -webkit-background-clip:text; 971 -webkit-text-fill-color:transparent; 972 background-clip:text; 973 font-family:"Poppins",sans-serif;letter-spacing:1px 974 } 975 976 .faq-container{ 977 display:flex; 978 flex-direction:column; 979 gap:25px 980 } 981 982 .faq-item{ 983 background:linear-gradient(145deg,#0a0a0a,#1a1a1a); 984 border:2px solid #00BFFF; 985 border-radius:20px;overflow:hidden; 986 transition:all .4s ease;box-shadow:0 5px 20px rgba(0,0,0,0.5) 987 } 988 989 .faq-item:hover{ 990 border-color:#00BFFF; 991 transform:translateX(10px); 992 box-shadow:0 12px 35px rgba(0, 191, 255, 0.25) 993 } 994 995 .faq-question{width:100%; 996 padding:28px 35px;background:transparent; 997 color:#ffffff; 998 font-size:18px; 999 font-weight:600; 1000 text-align:left; 1001 border:none;cursor:pointer; 1002 display:flex; 1003 justify-content:space-between; 1004 align-items:center; 1005 font-family:"Poppins",sans-serif; 1006 transition:all .3s ease 1007 } 1008 1009 .faq-question:hover{ 1010 color:#00BFFF 1011 } 1012 1013 .faq-question::after{ 1014 content:'+'; 1015 font-size:32px; 1016 font-weight:300; 1017 transition:all .4s ease; 1018 color:#00BFFF; 1019 width:40px; 1020 height:40px; 1021 display:flex; 1022 align-items:center; 1023 justify-content:center; 1024 border:2px solid #00BFFF;border-radius:50%; 1025 background:rgba(0, 0, 0, 0.1) 1026 } 1027 1028 .faq-item.active .faq-question::after{ 1029 transform:rotate(135deg); 1030 background:linear-gradient(135deg,#00BFFF,#00BFFF); 1031 color:#000;border-color:transparent 1032 } 1033 1034 .faq-answer{ 1035 max-height:0; 1036 overflow:hidden; 1037 transition:max-height .5s ease,padding .5s ease; 1038 background:linear-gradient(180deg,rgba(253,228,4,0.05),transparent); 1039 padding:0 35px 1040 } 1041 1042 .faq-item.active .faq-answer{ 1043 max-height:800px;padding:30px 35px; 1044 border-top:1px solid rgba(0, 191, 255, 0.3) 1045 } 1046 1047 .faq-answer p{ 1048 color:#e0e0e0; 1049 font-size:16px; 1050 line-height:2; 1051 margin:0; 1052 font-family:"Poppins",sans-serif 1053 } 1054 1055 @media 1056 (max-width:768px) 1057 { 1058 1059 .faq-section 1060 {padding:30px 15px} 1061 1062 .faq-section h2 1063 {font-size:26px} 1064 1065 .faq-question 1066 {font-size:16px; 1067 padding:22px 25px} 1068 1069 .faq-question::after 1070 {width:35px; 1071 height:35px; 1072 font-size:28px} 1073 1074 .faq-answer 1075 {padding:0 25px} 1076 1077 .faq-item.active .faq-answer 1078 {padding:25px} 1079 1080 .faq-item:hover 1081 {transform:translateX(5px)} 1082 } 1083 </style> 1084 <div id="search-popup"> 1085 <div id="search-input" class="row"> 1086 <div class="container w-100"> 1087 <form 1088 action="/search" 1089 method="get" 1090 role="search" 1091 class="search search-modal__form d-flex justify-content-between" 1092 > 1093 <svg xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="20" height="20" viewBox="0 0 20 20" fill="none"> 1094 <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"/> 1095 </svg> 1096 1097 <input type="hidden" name="type" value="product"> 1098 <input 1099 type="text" 1100 id="search-type" 1101 name="q" 1102 class="search-popup" 1103 placeholder="Gifts that linger: Uncover treasures for cherished moments." 1104 > 1105 <div class="close-search"><svg xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="18" height="18" viewBox="0 0 18 18" fill="none"> 1106 <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
110612.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"/> 1107 </svg> 1108 </div> 1109 <button id="search-btn">Search</button> 1110 </form> 1111 </div> 1112 </div> 1113 <div id="search-result" class="container m-auto"> 1114 <div class="container p-0"> 1115 <div class="group-promotion"> 1116 <div class="resultsearch"> 1117 <div class="row results"> 1118 <div class="col-12 col-lg-6 mb-3 mb-lg-0"> 1119 <label>SUGGESTIONS</label> 1120 <ul class="result_collection"></ul> 1121 </div> 1122 <div class="col-12 col-lg-6"> 1123 <label>PRODUCTS</label> 1124 <ul class="result_product"></ul> 1125 </div> 1126 </div> 1127 <div class="d-flex justify-content-between moreresult m-0"> 1128 <p>Search for<span></span></p> 1129 <svg version="1.1" xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="32" height="32" viewBox="0 0 32 32"> 1130 <title>icon-arrow-right</title> 1131 <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> 1132 </svg> 1133 </div> 1134 </div> 1135 </div> 1136 <div class="group-recent hide"> 1137 <h3>RECENT SEARCH</h3> 1138 <span class="delete-all-history">Hapus riwayat</span> 1139 <ul class="last-search"></ul> 1140 </div> 1141 <div class="group-recommend"> 1142 <h3>YOU MAY ALSO LIKE</h3> 1143 1144 1145 <div class="row popup-recommend c-products-grid infinite-case product-multi-"> 1146 <div class="swiper-wrapper justify-content-between" style="margin-left:1px;"> 1147 1148 1149 <div class="swiper-slide card"> 1150 1151 1152 1153 1154 <div class="products" data-lazy="false"> 1155 <div class="bg-products"> 1156 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-love-mooncake"> 1157 <svg xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1158 <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.
115811233C11.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"/> 1159 </svg> 1160 1161 </div> 1162 <a href="/products/mid-autumn-of-love-mooncake"> 1163 1164 <div class="product-card-img-container p-0 position-relative"> 1165 1166 <img class="product-card-img" lazy="false" src="https://outerbloom.com/cdn/shop/files/Mid-Autumn-of-Love-Mooncake_6b4cc10d-950d-4e1a-abf7-427b4a6912c8_350x.jpg?v=1755750898" data-src="https://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"> 1167 </div> 1168 <div class="card-body product-card-info"> 1169 <h5 class="h5 mb-0"> 1170 Mid Autumn of Love Mooncake 1171 </h5> 1172 <div class="product-card-price"> 1173 1174 <div class="product-price-sale"> 1175 <s class="product-card-price-before card-money">Rp 588.000</s> 1176 <span class="product-card-discount small"> 1177 (-40%) 1178 </span> 1179 </div> 1180 1181 1182 1183 <div class="price-discount"> 1184 <h4 class="product-card-price-after card-money">Rp 348.000</h4> 1185 </div> 1186 1187 1188 1189 1190 1191 </div> 1192 1193 </div> 1194 </a> 1195 </div> 1196 1197 </div> 1198 1199 </div> 1200 1201 1202 1203 <div class="swiper-slide card"> 1204 1205 1206 1207 1208 <div class="products" data-lazy="false"> 1209 <div class="bg-products"> 1210 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-joy-mooncake"> 1211 <svg xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1212 <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.
121211233C11.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"/> 1213 </svg> 1214 1215 </div> 1216 <a href="/products/mid-autumn-of-joy-mooncake"> 1217 1218 <div class="product-card-img-container p-0 position-relative"> 1219 1220 <img class="product-card-img" lazy="false" src="https://outerbloom.com/cdn/shop/files/Mid-Autumn-of-Joy-Mooncake_97224b06-a506-4a56-8544-59a0dccb5c17_350x.jpg?v=1755750798" data-src="https://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"> 1221 </div> 1222 <div class="card-body product-card-info"> 1223 <h5 class="h5 mb-0"> 1224 Mid Autumn of Joy Mooncake 1225 </h5> 1226 <div class="product-card-price"> 1227 1228 <div class="product-price-sale"> 1229 <s class="product-card-price-before card-money">Rp 888.000</s> 1230 <span class="product-card-discount small"> 1231 (-33%) 1232 </span> 1233 </div> 1234 1235 1236 1237 <div class="price-discount"> 1238 <h4 class="product-card-price-after card-money">Rp 588.000</h4> 1239 </div> 1240 1241 1242 1243 1244 1245 </div> 1246 1247 </div> 1248 </a> 1249 </div> 1250 1251 </div> 1252 1253 </div> 1254 1255 1256 1257 <div class="swiper-slide card"> 1258 1259 1260 1261 1262 <div class="products" data-lazy="false"> 1263 <div class="bg-products"> 1264 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-fortune-mooncake"> 1265 <svg xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1266 <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.
126611233C11.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"/> 1267 </svg> 1268 1269 </div> 1270 <a href="/products/mid-autumn-of-fortune-mooncake"> 1271 1272 <div class="product-card-img-container p-0 position-relative"> 1273 1274 <img class="product-card-img" lazy="false" src="https://outerbloom.com/cdn/shop/files/Mid-Autumn-of-Fortune-Mooncake_de29329d-6ab7-4592-aa00-3e9636d4a323_350x.jpg?v=1755846072" data-src="https://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"> 1275 </div> 1276 <div class="card-body product-card-info"> 1277 <h5 class="h5 mb-0"> 1278 Mid Autumn of Fortune Mooncake 1279 </h5> 1280 <div class="product-card-price"> 1281 1282 <div class="product-price-sale"> 1283 <s class="product-card-price-before card-money">Rp 1.188.000</s> 1284 <span class="product-card-discount small"> 1285 (-33%) 1286 </span> 1287 </div> 1288 1289 1290 1291 <div class="price-discount"> 1292 <h4 class="product-card-price-after card-money">Rp 788.000</h4> 1293 </div> 1294 1295 1296 1297 1298 1299 </div> 1300 1301 </div> 1302 </a> 1303 </div> 1304 1305 </div> 1306 1307 </div> 1308 1309 1310 1311 <div class="swiper-slide card"> 1312 1313 1314 1315 1316 <div class="products" data-lazy="false"> 1317 <div class="bg-products"> 1318 <div class="wishlist-toggle" data-product-handle="mid-autumn-festival-mooncake"> 1319 <svg xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1320 <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.
132011233C11.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"/> 1321 </svg> 1322 1323 </div> 1324 <a href="/products/mid-autumn-festival-mooncake"> 1325 1326 <div class="product-card-img-container p-0 position-relative"> 1327 1328 <img class="product-card-img" lazy="false" src="https://outerbloom.com/cdn/shop/files/Mid-Autumn-Festival-Mooncake_06ea4f9c-bdaa-49de-b0ba-c3dd60fef351_350x.jpg?v=1755845965" data-src="https://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"> 1329 </div> 1330 <div class="card-body product-card-info"> 1331 <h5 class="h5 mb-0"> 1332 Mid Autumn Festival Mooncake 1333 </h5> 1334 <div class="product-card-price"> 1335 1336 <div class="product-price-sale"> 1337 <s class="product-card-price-before card-money">Rp 1.288.000</s> 1338 <span class="product-card-discount small"> 1339 (-23%) 1340 </span> 1341 </div> 1342 1343 1344 1345 <div class="price-discount"> 1346 <h4 class="product-card-price-after card-money">Rp 988.000</h4> 1347 </div> 1348 1349 1350 1351 1352 1353 </div> 1354 1355 </div> 1356 </a> 1357 </div> 1358 1359 </div> 1360 1361 </div> 1362 1363 1364 1365 <div class="swiper-slide card"> 1366 1367 1368 1369 1370 <div class="products" data-lazy="false"> 1371 <div class="bg-products"> 1372 <div class="wishlist-toggle" data-product-handle="the-jade-bouquet"> 1373 <svg xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1374 <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.
137411233C11.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"/> 1375 </svg> 1376 1377 </div> 1378 <a href="/products/the-jade-bouquet"> 1379 1380 <div class="product-card-img-container p-0 position-relative"> 1381 1382 <img class="product-card-img" lazy="false" src="https://outerbloom.com/cdn/shop/files/The-Jade-Bouquet_350x.jpg?v=1751618030" data-src="https://outerbloom.com/cdn/shop/files/The-Jade-Bouquet_350x.jpg?v=1751618030" alt="The Jade Bouquet" height="200" width="200"> 1383 </div> 1384 <div class="card-body product-card-info"> 1385 <h5 class="h5 mb-0"> 1386 The Jade Bouquet 1387 </h5> 1388 <div class="product-card-price"> 1389 1390 <div class="product-price-sale"> 1391 <s class="product-card-price-before card-money">Rp 435.000</s> 1392 <span class="product-card-discount small"> 1393 (-34%) 1394 </span> 1395 </div> 1396 1397 1398 1399 <div class="price-discount"> 1400 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1401 </div> 1402 1403 1404 1405 1406 1407 </div> 1408 1409 </div> 1410 </a> 1411 </div> 1412 1413 </div> 1414 1415 </div> 1416 1417 1418 1419 <div class="swiper-slide card"> 1420 1421 1422 1423 1424 <div class="products" data-lazy="false"> 1425 <div class="bg-products"> 1426 <div class="wishlist-toggle" data-product-handle="the-selena-bouquet"> 1427 <svg xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1428 <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.
142811233C11.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"/> 1429 </svg> 1430 1431 </div> 1432 <a href="/products/the-selena-bouquet"> 1433 1434 <div class="product-card-img-container p-0 position-relative"> 1435 1436 <img class="product-card-img" lazy="false" src="https://outerbloom.com/cdn/shop/files/The-Selena-Bouquet_350x.jpg?v=1751618047" data-src="https://outerbloom.com/cdn/shop/files/The-Selena-Bouquet_350x.jpg?v=1751618047" alt="The Selena Bouquet" height="200" width="200"> 1437 </div> 1438 <div class="card-body product-card-info"> 1439 <h5 class="h5 mb-0"> 1440 The Selena Bouquet 1441 </h5> 1442 <div class="product-card-price"> 1443 1444 <div class="product-price-sale"> 1445 <s class="product-card-price-before card-money">Rp 335.000</s> 1446 <span class="product-card-discount small"> 1447 (-29%) 1448 </span> 1449 </div> 1450 1451 1452 1453 <div class="price-discount"> 1454 <h4 class="product-card-price-after card-money">Rp 235.000</h4> 1455 </div> 1456 1457 1458 1459 1460 1461 </div> 1462 1463 </div> 1464 </a> 1465 </div> 1466 1467 </div> 1468 1469 </div> 1470 1471 1472 1473 <div class="swiper-slide card"> 1474 1475 1476 1477 1478 <div class="products" data-lazy="false"> 1479 <div class="bg-products"> 1480 <div class="wishlist-toggle" data-product-handle="the-viola-bouquet"> 1481 <svg xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1482 <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.
148211233C11.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"/> 1483 </svg> 1484 1485 </div> 1486 <a href="/products/the-viola-bouquet"> 1487 1488 <div class="product-card-img-container p-0 position-relative"> 1489 1490 <img class="product-card-img" lazy="false" src="https://outerbloom.com/cdn/shop/files/The-Viola-Bouquet_350x.jpg?v=1751618053" data-src="https://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"> 1491 </div> 1492 <div class="card-body product-card-info"> 1493 <h5 class="h5 mb-0"> 1494 The Viola Bouquet 1495 </h5> 1496 <div class="product-card-price"> 1497 1498 <div class="product-price-sale"> 1499 <s class="product-card-price-before card-money">Rp 385.000</s> 1500 <span class="product-card-discount small"> 1501 (-25%) 1502 </span> 1503 </div> 1504 1505 1506 1507 <div class="price-discount"> 1508 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1509 </div> 1510 1511 1512 1513 1514 1515 </div> 1516 1517 </div> 1518 </a> 1519 </div> 1520 1521 </div> 1522 1523 </div> 1524 1525 1526 1527 <div class="swiper-slide card"> 1528 1529 1530 1531 1532 <div class="products" data-lazy="false"> 1533 <div class="bg-products"> 1534 <div class="wishlist-toggle" data-product-handle="the-minerva-bouquet"> 1535 <svg xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1536 <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.
153611233C11.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"/> 1537 </svg> 1538 1539 </div> 1540 <a href="/products/the-minerva-bouquet"> 1541 1542 <div class="product-card-img-container p-0 position-relative"> 1543 1544 <img class="product-card-img" lazy="false" src="https://outerbloom.com/cdn/shop/files/The-Minerva-Bouquet_350x.jpg?v=1751618061" data-src="https://outerbloom.com/cdn/shop/files/The-Minerva-Bouquet_350x.jpg?v=1751618061" alt="The Minerva Bouquet" height="200" width="200"> 1545 </div> 1546 <div class="card-body product-card-info"> 1547 <h5 class="h5 mb-0"> 1548 The Minerva Bouquet 1549 </h5> 1550 <div class="product-card-price"> 1551 1552 <div class="product-price-sale"> 1553 <s class="product-card-price-before card-money">Rp 385.000</s> 1554 <span class="product-card-discount small"> 1555 (-25%) 1556 </span> 1557 </div> 1558 1559 1560 1561 <div class="price-discount"> 1562 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1563 </div> 1564 1565 1566 1567 1568 1569 </div> 1570 1571 </div> 1572 </a> 1573 </div> 1574 1575 </div> 1576 1577 </div> 1578 1579 1580 1581 <div class="swiper-slide card"> 1582 1583 1584 1585 1586 <div class="products" data-lazy="false"> 1587 <div class="bg-products"> 1588 <div class="wishlist-toggle" data-product-handle="congraduations-bouquet"> 1589 <svg xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1590 <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.
159011233C11.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"/> 1591 </svg> 1592 1593 </div> 1594 <a href="/products/congraduations-bouquet"> 1595 1596 <div class="product-card-img-container p-0 position-relative"> 1597 1598 <img class="product-card-img" lazy="false" src="https://outerbloom.com/cdn/shop/files/Congraduations-Bouquet_350x.jpg?v=1749545306" data-src="https://outerbloom.com/cdn/shop/files/Congraduations-Bouquet_350x.jpg?v=1749545306" alt="Congraduations Bouquet" height="200" width="200"> 1599 </div> 1600 <div class="card-body product-card-info"> 1601 <h5 class="h5 mb-0"> 1602 Congraduations Bouquet 1603 </h5> 1604 <div class="product-card-price"> 1605 1606 <div class="product-price-sale"> 1607 <s class="product-card-price-before card-money">Rp 380.000</s> 1608 <span class="product-card-discount small"> 1609 (-25%) 1610 </span> 1611 </div> 1612 1613 1614 1615 <div class="price-discount"> 1616 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1617 </div> 1618 1619 1620 1621 1622 1623 </div> 1624 1625 </div> 1626 </a> 1627 </div> 1628 1629 </div> 1630 1631 </div> 1632 1633 1634 1635 <div class="swiper-slide card"> 1636 1637 1638 1639 1640 <div class="products" data-lazy="false"> 1641 <div class="bg-products"> 1642 <div class="wishlist-toggle" data-product-handle="grad-gorgeous-bouquet"> 1643 <svg xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1644 <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.
164411233C11.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"/> 1645 </svg> 1646 1647 </div> 1648 <a href="/products/grad-gorgeous-bouquet"> 1649 1650 <div class="product-card-img-container p-0 position-relative"> 1651 1652 <img class="product-card-img" lazy="false" src="https://outerbloom.com/cdn/shop/files/Grad-_-Gorgeous-Bouquet_350x.jpg?v=1749545297" data-src="https://outerbloom.com/cdn/shop/files/Grad-_-Gorgeous-Bouquet_350x.jpg?v=1749545297" alt="Grad & Gorgeous Bouquet" height="200" width="200"> 1653 </div> 1654 <div class="card-body product-card-info"> 1655 <h5 class="h5 mb-0"> 1656 Grad & Gorgeous Bouquet 1657 </h5> 1658 <div class="product-card-price"> 1659 1660 <div class="product-price-sale"> 1661 <s class="product-card-price-before card-money">Rp 380.000</s> 1662 <span class="product-card-discount small"> 1663 (-25%) 1664 </span> 1665 </div> 1666 1667 1668 1669 <div class="price-discount"> 1670 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1671 </div> 1672 1673 1674 1675 1676 1677 </div> 1678 1679 </div> 1680 </a> 1681 </div> 1682 1683 </div> 1684 1685 </div> 1686 1687 1688 </div> 1689 </div> 1690 1691 </div> 1692 </div> 1693 </div> 1694 1695 <div class="site-overlay" style="display: none"></div> 1696 </div> 1697
1697<script> 1698 1699 var swiper = new Swiper('.popup-recommend', { 1700 slidesPerView : 4, 1701 spaceBetween: 30, 1702 lazy: true , 1703 speed: 300, 1704 breakpoints: { 1705 // when window width is <= 576px 1706 576: { 1707 slidesPerView: 2, 1708 spaceBetween: 10, 1709 freeMode: true, 1710 resistance : true, 1711 resistanceRatio : 0, 1712 freeModeMomentumRatio : 0.45, 1713 freeModeMomentumVelocityRatio : 1.5 1714 }, 1715 768: { 1716 slidesPerView: 2, 1717 spaceBetween: 10 1718 }, 1719 992: { 1720 slidesPerView: 3, 1721 spaceBetween: 20 1722 } 1723 } 1724 }); 1725 1726 const searchContainer = $("#search-popup") 1727 const searchInput = $(".search-popup") 1728 const result_collection = $('.result_collection') 1729 const result_product = $('.result_product') 1730 const resultsearch = $('.resultsearch') 1731 const resultrecommend = $(".group-recommend") 1732 const moreresult = $(".moreresult") 1733 1734 searchInput.keyup(function(){ 1735 const input = $(this).val() 1736 moreresult.find("p span").text(` â${input}â`) 1737 if(input.length > 2) { 1738 $(".close-search").show() 1739 const url = `https://outerbloom.com/search/suggest.json?resources[limit]=10&resources[limit_scope]=each&resources[type]=collection,product&q=${input}` 1740 $.ajax({ 1741 type: 'GET', 1742 url, 1743 beforeSend: function() { 1744 // setting a timeout 1745 // $(placeholder).addClass('loading'); 1746 }, 1747 success: function(response) { 1748 resultsearch.show() 1749 resultrecommend.hide() 1750 result_collection.html("") 1751 result_product.html("") 1752 const collections = response.resources.results.collections 1753 const products = response.resources.results.products 1754 let collection_length = collections.length 1755 let product_length = products.length 1756 // if(collections.length > 5) { 1757 // collection_length = 5 1758 // } 1759 // if(products.length > 5) { 1760 // product_length = 5 1761 // } 1762 for(let i=0;i<collection_length;i++){ 1763 const title = collections[i].title 1764 const url = collections[i].url 1765 let html_collection 1766 if(!title.includes('AIA') && !title.includes('AXA') && !title.includes('WOM') && !title.includes('Upsell')) { 1767 html_collection = ` 1768 <li class="item" data-title="${title}"> 1769 <a href="${url}" data-type="collection" class="item_url" data-title="${title}" data-url="${url}">${title}</a> 1770 </li> 1771 ` 1772 } 1773 result_collection.append(html_collection) 1774 } 1775 for(let i=0;i<product_length;i++){ 1776 const title = products[i].title 1777 const url = products[i].url 1778 const image = products[i].featured_image.url 1779 const vendor = products[i].vendor 1780 let html_product 1781 if(vendor !== 'AIA' && vendor !== 'AXA' && vendor !== 'WOM Finance' && !title.includes('Extra Shipping Cost') && !title.includes('[US]') && !title.includes('Rp')){ 1782 html_product = ` 1783 <li class="item" data-vendor="${vendor}"> 1784 <a href="${url}" class="item_url" data-type="product" data-title="${title}" data-url="${url}"> 1785 <img src="${image}" alt="${title}" style="width: 70px;vertical-align: middle;margin-right: 20px;"><span>${title}</span> 1786 </a> 1787 </li> 1788 ` 1789 } 1790 result_product.append(html_product) 1791 } 1792 }, 1793 error: function(xhr) { // if error occured 1794 alert("Error occured.please try again"); 1795 }, 1796 complete: function(response) { 1797 // $(placeholder).removeClass('loading'); 1798 }, 1799 dataType: 'JSON' 1800 }); 1801 } else { 1802 result_collection.html("") 1803 result_product.html("") 1804 1805 resultsearch.hide() 1806 resultrecommend.show() 1807 } 1808 }) 1809 1810 moreresult.click(function(){ 1811 $("#search-btn").trigger("click"); 1812 }) 1813 1814 $(".close-search").click(function(){ 1815 $(this).hide() 1816 searchInput.val("") 1817 searchInput.focus() 1818 resultsearch.hide() 1819 resultrecommend.show() 1820 }) 1821 1822 function setCookie(name,value,days) { 1823 var expires = ""; 1824 if (days) { 1825 var date = new Date(); 1826 date.setTime(date.getTime() + (days*24*60*60*1000)); 1827 expires = "; expires=" + date.toUTCString(); 1828 } 1829 document.cookie = name + "=" + (value || "") + expires + "; path=/"; 1830 } 1831 function getCookie(name) { 1832 var nameEQ = name + "="; 1833 var ca = document.cookie.split(';');
1834 for(var i=0;i < ca.length;i++) { 1835 var c = ca[i]; 1836 while (c.charAt(0)==' ') c = c.substring(1,c.length); 1837 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 1838 } 1839 return null; 1840 } 1841 let last_search_name = [] 1842 let last_search_url = [] 1843 $(".group-recent").hide() 1844 if(getCookie("last_search_name") != null && getCookie("last_search_url") != null){ 1845 if(getCookie("last_search_name") != "" && getCookie("last_search_url") != ""){ 1846 $(".group-recent").show() 1847 last_search_name = getCookie("last_search_name"); 1848 last_search_url = getCookie("last_search_url"); 1849 const arrName = last_search_name.substring(1).split(',').reverse() 1850 const arrUrl = last_search_url.substring(1).split(',').reverse() 1851 console.log(arrName, 'Array Name') 1852 console.log(arrUrl, 'Array Url') 1853 let length = arrName.length 1854 if(arrName.length > 5) { 1855 length = 5 1856 } 1857 for(let n=0;n<length;n++){ 1858 let html2 = `<li><svg viewBox="0 0 24 24" xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png"><title/><path d="M12.25,2A9.81,9.81,0,0,0,4.77,5.46L3.41,4.25a1,1,0,0,0-1.07-.16A1,1,0,0,0,1.75,5V9a1,1,0,0,0,1,1h4.5a1,1,0,0,0,.93-.64,1,1,0,0,0-.27-1.11L6.26,6.78a7.86,7.86,0,0,1,6-2.78A8,8,0,1,1,4.72,14.67a1,1,0,0,0-1.89.66A10,10,0,1,0,12.25,2Z" fill="#C9C9C9"/><path d="M16,16a1,1,0,0,1-.6-.2l-4-3A1,1,0,0,1,11,12V8a1,1,0,0,1,2,0v3.5l3.6,2.7a1,1,0,0,1,.2,1.4A1,1,0,0,1,16,16Z" fill="#C9C9C9"/></svg><a href="${arrUrl[n]}">${arrName[n]}</a><span data-title="${arrName[n]}" data-url="${arrUrl[n]}"></span></li>` 1859 $(".group-recent ul").append(html2) 1860 } 1861 } 1862 } 1863 console.log(last_search_name, 'Name') 1864 console.log(last_search_url, 'url') 1865 1866 resultsearch.delegate(".item a", "click", function(){ 1867 let name = [last_search_name] 1868 let url = [last_search_url] 1869 name.push($(this).attr('data-title')) 1870 url.push($(this).attr('data-url')) 1871 setCookie("last_search_name",name,7); 1872 setCookie("last_search_url",url,7); 1873 }) 1874 1875 $(".delete-all-history").click(function() { 1876 setCookie("last_search_name",null,0); 1877 setCookie("last_search_url",null,0); 1878 $(".last-search").hide(); 1879 setTimeout(function(){ 1880 location.reload(); 1881 }, 500); 1882 }) 1883 1884 $("#search-trigger").click(function(){ 1885 search_open() 1886 }) 1887 $(".icon-search-mobile").click(function(){ 1888 search_open() 1889 }) 1890 $(".search-header svg").click(function(){ 1891 search_close() 1892 }) 1893 $(".icon-key-mobile").click(function(){ 1894 search_close() 1895 }) 1896 1897 function search_open() { 1898 $("body").addClass("search-popup-open") 1899 $("#nav-mobile-icon, .search-header label, .icon-search-mobile").hide() 1900 $("#search-popup, .search-header svg, .icon-key-mobile").show() 1901 $(".search-popup").focus() 1902 $('.popup-recommend')[0].swiper.update(); 1903 } 1904 function search_close() { 1905 $("body").removeClass("search-popup-open") 1906 $("#nav-mobile-icon, .search-header label, .icon-search-mobile").show() 1907 $("#search-popup, .search-header svg, .icon-key-mobile").hide() 1908 searchInput.val("") 1909 resultsearch.hide() 1910 resultrecommend.show() 1911 } 1912 1913 $(".site-overlay").click(function(){ 1914 search_close() 1915 }) 1916 </script>
1916 1917 1918 </div> 1919 </div> 1920 1921 <div id="PageContainer" class="is-moved-by-drawerx" style="background-color: #000000;"> 1922 <main class="main-content pt-0" role="main"> 1923 1924 <div id="breadcrumbProduct" class="d-none d-lg-block"> 1925 <style> 1926 #breadcrumbProduct { 1927 padding: 20px 0; 1928 } 1929 #breadcrumbProduct ul { 1930 display: flex; 1931 padding: 0; 1932 list-style: none; 1933 margin: 0; 1934 gap: 12px; 1935 } 1936 #breadcrumbProduct ul li { 1937 text-transform: uppercase; 1938 margin: 0; 1939 font-size: 12px; 1940 } 1941 #breadcrumbProduct ul li a { 1942 color: #757575; 1943 } 1944 1945 #breadcrumbProduct ul li svg { 1946 width: 10px; 1947 height: 10px; 1948 padding: 0; 1949 color: #757575; 1950 vertical-align: middle; 1951 } 1952 </style> 1953 <div class="container" style="color: #00BFFF;"> 1954 <ul role="navigation" aria-label="breadcrumbs"> 1955 <li><a href="https://wso138wede.com/" style="color: #00BFFF;">WSO138</a></li> 1956 <li><svg xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="7" height="10" viewBox="0 0 7 10" fill="none"> 1957 <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"/> 1958 </svg></li> 1959 <li>WSO138</li> 1960 <li>BOLA ONLINE</li> 1961 <li>PREDIKSI BOLA</li> 1962 <li>LINK SBOBET</li> 1963 1964 </ul> 1965 </div> 1966 1967 </div> 1968 1969
1969<script type="application/ld+json"> 1970 { 1971 "@context": "https://schema.org", 1972 "@type": "Product", 1973 "name": "WSO138: Link Resmi Situs Slotgacor Gampang Wede Terpercaya", 1974 "image": "https://mobile.wso138wede-amp.org/wso138.webp", 1975 "description": "WSO138 memberikan link resmi situs slotgacor gampang wede terpercaya untuk semua pemain Indonesia yang akses login alternatif dan daftar akun baru sekarang.", 1976 "brand": { 1977 "@type": "Brand", 1978 "name": "WSO138" 1979 }, 1980 "sku": "WSO138", 1981 "mpn": "WSO138", 1982 "url": "https://wso138wede.com/", 1983 "offers": { 1984 "@type": "Offer", 1985 "url": "https://wso138wede.com/", 1986 "priceCurrency": "USD", 1987 "price": "10.00", 1988 "priceValidUntil": "2025-12-25", 1989 "itemCondition": "https://schema.org/NewCondition", 1990 "availability": "https://schema.org/InStock", 1991 "seller": { 1992 "@type": "Organization", 1993 "name": "WSO138" 1994 } 1995 }, 1996 "aggregateRating": { 1997 "@type": "AggregateRating", 1998 "ratingValue": "5.0", 1999 "reviewCount": 858 2000 }, 2001 "review": [ 2002 { 2003 "@type": "Review", 2004 "reviewRating": { 2005 "@type": "Rating", 2006 "ratingValue": "5", 2007 "bestRating": "5" 2008 }, 2009 "author": { 2010 "@type": "Person", 2011 "name": "Hanabi" 2012 } 2013 }, 2014 { 2015 "@type": "Review", 2016 "reviewRating": { 2017 "@type": "Rating", 2018 "ratingValue": "5", 2019 "bestRating": "5" 2020 }, 2021 "author": { 2022 "@type": "Person", 2023 "name": "Hayabusa" 2024 } 2025 } 2026 ] 2027 } 2028 </script>
2028<script type="application/ld+json"> 2029 { 2030 "@context": "https://schema.org", 2031 "@type": "BreadcrumbList", 2032 "itemListElement": [ 2033 { 2034 "@type": "ListItem", 2035 "position": 1, 2036 "name": "WSO138", 2037 "item": "https://wso138wede.com/" 2038 }, 2039 { 2040 "@type": "ListItem", 2041 "position": 2, 2042 "name": "WSO138 LINK", 2043 "item": "https://wso138wede.com/" 2044 }, 2045 { 2046 "@type": "ListItem", 2047 "position": 3, 2048 "name": "WSO138 LOGIN", 2049 "item": "https://wso138wede.com/" 2050 }, 2051 { 2052 "@type": "ListItem", 2053 "position": 4, 2054 "name": "JUDI BOLA", 2055 "item": "https://wso138wede.com/" 2056 }, 2057 { 2058 "@type": "ListItem", 2059 "position": 5, 2060 "name": "BOLA ONLINE", 2061 "item": "https://wso138wede.com/" 2062 }, 2063 { 2064 "@type": "ListItem", 2065 "position": 6, 2066 "name": "SBOBET", 2067 "item": "https://wso138wede.com/" 2068 }, 2069 { 2070 "@type": "ListItem", 2071 "position": 7, 2072 "name": "LINK BOLA ONLINE", 2073 "item": "https://wso138wede.com/" 2074 }, 2075 { 2076 "@type": "ListItem", 2077 "position": 8, 2078 "name": "WSO138: Link Resmi Situs Slotgacor Gampang Wede Terpercaya", 2079 "item": "https://wso138wede.com/" 2080 } 2081 ] 2082 } 2083 </script>
2083 2084 2085 <!--faq--> 2086 2087
2087<script type="application/ld+json" id="faq-schema"> 2088{ 2089 "@context": "https://schema.org", 2090 "@type": "FAQPage", 2091 "mainEntity": [ 2092 { 2093 "@type": "Question", 2094 "name": "1. Apa itu WSO138?", 2095 "acceptedAnswer": { 2096 "@type": "Answer", 2097 "text": "WSO138 merupakan link yang menghadirkan layanan login judi bola online dengan pilihan pasar pertandingan yang lengkap serta beragam odds kompetitif. Pemain dapat mengikuti berbagai liga populer dunia melalui tampilan yang mudah digunakan dan proses akses yang praktis." 2098 } 2099 }, 2100 { 2101 "@type": "Question", 2102 "name": "2. Mengapa banyak pemain memilih WSO138 untuk taruhan bola online?", 2103 "acceptedAnswer": { 2104 "@type": "Answer", 2105 "text": "WSO138 populer karena menyediakan transaksi yang aman, layanan 24 jam, serta integrasi lancar dengan provider Sport GG yang menjamin keadilan permainan." 2106 } 2107 }, 2108 { 2109 "@type": "Question", 2110 "name": "3. Apa keuntungan bermain di WSO138?", 2111 "acceptedAnswer": { 2112 "@type": "Answer", 2113 "text": "Beragam pilihan odds memberikan fleksibilitas kepada pemain dalam menentukan strategi taruhan sesuai analisis pertandingan. Dengan variasi pasar yang tersedia, pengguna memiliki lebih banyak kesempatan memilih opsi yang dianggap paling sesuai." 2114 } 2115 }, 2116 { 2117 "@type": "Question", 2118 "name": "4. Apakah WSO138 menyediakan akses selama 24 jam?", 2119 "acceptedAnswer": { 2120 "@type": "Answer", 2121 "text": "Ya, WSO138 menyediakan akses yang dapat digunakan kapan saja sehingga pemain dapat mengikuti jadwal pertandingan dari berbagai liga internasional tanpa terbatas oleh waktu." 2122 } 2123 }, 2124 { 2125 "@type": "Question", 2126 "name": "5. Mengapa WSO138 menjadi pilihan bagi pecinta judi bola online?", 2127 "acceptedAnswer": { 2128 "@type": "Answer", 2129 "text": "Karena WSO138 menghadirkan kombinasi akses yang mudah, pilihan pertandingan yang lengkap, beragam odds terbaik, serta pengalaman pemain yang dirancang agar praktis dan nyaman bagi penggemar taruhan sepak bola online." 2130 } 2131 } 2132 ] 2133} 2134</script>
2134 2135
2135<script type="application/ld+json"> 2136 { 2137 "@context": "https://schema.org", 2138 "@type": "Organization", 2139 "name": "WSO138", 2140 "url": "https://wso138wede.com/", 2141 "logo": "https://mobile.wso138wede-amp.org/logo-wso138.png", 2142 "sameAs": [ 2143 "https://www.facebook.com/WSO138", 2144 "https://twitter.com/WSO138", 2145 "https://www.instagram.com/WSO138" 2146 ], 2147 "contactPoint": { 2148 "@type": "ContactPoint", 2149 "telephone": "+62-8101-111-1111", 2150 "contactType": "customer support", 2151 "areaServed": "ID", 2152 "availableLanguage": ["Indonesian", "English"] 2153 } 2154 } 2155 </script>
2155 2156 2157
2157<script type="application/ld+json"> 2158 { 2159 "@context": "https://schema.org", 2160 "@type": "VideoObject", 2161 "name": "WSO138: Link Resmi Situs Slotgacor Gampang Wede Terpercaya", 2162 "description": "WSO138 memberikan link resmi situs slotgacor gampang wede terpercaya untuk semua pemain Indonesia yang akses login alternatif dan daftar akun baru sekarang.", 2163 "thumbnailUrl": [ 2164 "https://mobile.wso138wede-amp.org/wso138.webp", 2165 "https://mobile.wso138wede-amp.org/wso138.webp" 2166 ], 2167 "uploadDate": "2025-09-28T04:19:10-04:00", 2168 "duration": "PT168", 2169 "contentUrl": "https://wso138wede.com/" 2170 } 2171 </script>
2171 2172 2173
2173<script type="application/ld+json"> 2174 { 2175 "@context": "https://schema.org", 2176 "@type": "BreadcrumbList", 2177 "itemListElement": [ 2178 { 2179 "@type": "ListItem", 2180 "position": 1, 2181 "name": "Home", 2182 "item": "https://wso138wede.com/" 2183 } 2184 ] 2185 } 2186 </script>
2186 2187 2188
2188<script type="application/ld+json"> 2189 { 2190 "@context": "https://schema.org", 2191 "@graph": [ 2192 { 2193 "@type": "Organization", 2194 "@id": "https://wso138wede.com/#org", 2195 "name": "WSO138", 2196 "url": "https://wso138wede.com/", 2197 "logo": "https://mobile.wso138wede-amp.org/wso138.webp" 2198 }, 2199 { 2200 "@type": "WebSite", 2201 "@id": "https://wso138wede.com/#website", 2202 "url": "https://wso138wede.com/", 2203 "name": "WSO138", 2204 "publisher": { "@id": "https://wso138wede.com/#org" }, 2205 "inLanguage": "id-ID", 2206 "potentialAction": { 2207 "@type": "SearchAction", 2208 "target": "https://wso138wede.com/?s={search_term_string}", 2209 "query-input": "required name=search_term_string" 2210 } 2211 }, 2212 { 2213 "@type": "SoftwareApplication", 2214 "@id": "https://wso138wede.com/#app", 2215 "name": "WSO138", 2216 "applicationCategory": "GameApplication", 2217 "operatingSystem": "Android, iOS, Windows", 2218 "offers": { "@type": "Offer", "price": "0", "priceCurrency": "IDR" }, 2219 "aggregateRating": { "@type": "AggregateRating", "ratingValue": 4.9, "ratingCount": 62595 } 2220 } 2221 ] 2222 } 2223 </script>
2223 2224 2225 <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" /> 2226 2227 2228 <style> 2229 .bg-card { 2230 background-color: #000000; 2231 } 2232 </style> 2233 2234 <!-- /templates/product.liquid --> 2235 2236 2237 <!-- <div itemscope itemtype="http://schema.org/Product"> --> 2238 2239 2240 <div class="product-standing-flower" data-product-type="flowerBoard"> 2241 <meta itemprop="url" content="https://wso138wede.com/"> 2242 <meta itemprop="image" content="https://mobile.wso138wede-amp.org/wso138.webp"> 2243 2244 2245 2246 <input id="data-sku" type="hidden" value="OBVSTF1086"> 2247 <div class="product-single" style="background-image: url(https://assetevos.io/images/2026/06/25/garis-keras-evs.png); background-attachment: fixed;"> 2248 <div id="product-top" class="container"> 2249 <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;"> 2250 <div id="product-image" class="col-lg-7 text-center"> 2251 <div class="product-image"> 2252 <div class="row no-gutters"> 2253 2254 <div id="product-featured-image" class="row w-100"> 2255 2256 <div id="thumb-image-product" class="col-lg-2 col-12 d-none d-lg-block"> 2257 2258 <div class="swiper-container gallery-thumbs" style="min-height: 500px"> 2259 <ul class="list-unstyled slider swiper-wrapper slider-nav ProductThumbs thumbnails" id="ProductThumbsx"> 2260 2261 <li class="swiper-slide" data-type="image"> 2262 <a 2263 href="files/Blossom-Shine-WM.jpg" 2264 data-standard="https://mobile.wso138wede-amp.org/wso138.webp" 2265 data-image="files/Blossom-Shine-WM.jpg" 2266 data-position="1" 2267 class="product-single__thumbnail" 2268 > 2269 <img 2270 class="lazyload w-100" 2271 src="https://mobile.wso138wede-amp.org/wso138.webp" 2272 alt="WSO138: Link Resmi Situs Slotgacor Gampang Wede Terpercaya" 2273 width="" 2274 height="" 2275 > 2276 </a> 2277 </li> 2278 2279 2280 2281 2282 <li class="swiper-slide" data-type="image"> 2283 <a 2284 href="https://mobile.wso138wede-amp.org/wso138.webp" 2285 data-standard="https://mobile.wso138wede-amp.org/wso138.webp" 2286 data-image="https://mobile.wso138wede-amp.org/wso138.webp" 2287 data-position="2" 2288 class="product-single__thumbnail" 2289 > 2290 <img 2291 class="lazyload w-100" 2292 src="https://mobile.wso138wede-amp.org/wso138.webp" 2293 alt="WSO138: Link Resmi Situs Slotgacor Gampang Wede Terpercaya" 2294 width="" 2295 height="" 2296 > 2297 </a> 2298 </li> 2299 2300 2301 2302 2303 <li class="swiper-slide" data-type="image"> 2304 <a 2305 href="files/Blossom-Shine_3-WM.jpg" 2306 data-standard="https://mobile.wso138wede-amp.org/wso138.webp" 2307 data-image="files/Blossom-Shine_3-WM.jpg" 2308 data-position="3" 2309 class="product-single__thumbnail" 2310 > 2311 <img 2312 class="lazyload w-100" 2313 src="https://mobile.wso138wede-amp.org/wso138.webp" 2314 alt="WSO138: Link Resmi Situs Slotgacor Gampang Wede Terpercaya" 2315 width="" 2316 height="" 2317 > 2318 </a> 2319 </li> 2320 2321 2322 2323 2324 <li class="swiper-slide" data-type="image"> 2325 <a 2326 href="files/Blossom-Shine_4.jpg" 2327 data-standard="https://mobile.wso138wede-amp.org/wso138.webp" 2328 data-image="files/Blossom-Shine_4.jpg" 2329 data-position="4" 2330 class="product-single__thumbnail" 2331 > 2332 <img 2333 class="lazyload w-100" 2334 src="https://mobile.wso138wede-amp.org/wso138.webp" 2335 alt="WSO138: Link Resmi Situs Slotgacor Gampang Wede Terpercaya" 2336 width="" 2337 height="" 2338 > 2339 </a> 2340 </li> 2341 2342 2343 2344 </ul> 2345 </div> 2346 2347 </div> 2348 2349 <div 2350 id="featured-image-product" 2351 class="col-lg-10 col-12 d-none d-lg-block" 2352 > 2353 <div class="swiper-container gallery-top"> 2354 <div class="swiper-slide product-single__image"> 2355 2356 <div class="product-single__photos slider slider-for" id="ProductPhoto"> 2357 2358 2359 <div class="easyzoom easyzoom--overlay easyzoom--with-thumbnails"> 2360 <a href="https://mobile.wso138wede-amp.org/wso138.webp"> 2361 <img 2362 src="https://mobile.wso138wede-amp.org/wso138.webp" 2363 alt="WSO138: Link Resmi Situs Slotgacor Gampang Wede Terpercaya" 2364 id="ProductPhotoImg" 2365 class="lazyload" 2366 > 2367 2368 </a> 2369 </div> 2370 </div> 2371 2372 </div> 2373 <div class="swiper-slide product-single__video" style="display: none"> 2374 <video 2375 src="https://cdn.shopify.com/videos/c/vp/05d379ea115d41c2bd0f7d08b1496bd9/05d379ea115d41c2bd0f7d08b1496bd9.HD-1080p-7.2Mbps-24002195.mp4" 2376 playsinline 2377 loop 2378 muted 2379 ></video> 2380 </div> 2381 </div>
2382 </div> 2383 </div> 2384 2385 <div id="featured-image-product2" class="col-12 d-lg-none"> 2386 <div class="swiper-container gallery-mobile"> 2387 <ul class="swiper-wrapper"> 2388 <li class="swiper-slide img"> 2389 2390 <img 2391 class="swiper-lazy" 2392 src="https://mobile.wso138wede-amp.org/wso138.webp" 2393 data-src="https://mobile.wso138wede-amp.org/wso138.webp" 2394 alt="WSO138: Link Resmi Situs Slotgacor Gampang Wede Terpercaya" 2395 width="" 2396 height="" 2397 > 2398 2399 </li> 2400 2401 2402 <li class="swiper-slide img"> 2403 2404 <img 2405 class="swiper-lazy" 2406 src="https://mobile.wso138wede-amp.org/wso138.webp" 2407 data-src="https://mobile.wso138wede-amp.org/wso138.webp" 2408 alt="WSO138: Link Resmi Situs Slotgacor Gampang Wede Terpercaya" 2409 width="" 2410 height="" 2411 > 2412 2413 </li> 2414 2415 2416 <li class="swiper-slide img"> 2417 2418 <img 2419 class="swiper-lazy" 2420 src="https://mobile.wso138wede-amp.org/wso138.webp" 2421 data-src="https://mobile.wso138wede-amp.org/wso138.webp" 2422 alt="WSO138: Link Resmi Situs Slotgacor Gampang Wede Terpercaya" 2423 width="" 2424 height="" 2425 > 2426 2427 </li> 2428 2429 2430 <li class="swiper-slide img"> 2431 2432 <img 2433 class="swiper-lazy" 2434 src="https://mobile.wso138wede-amp.org/wso138.webp" 2435 data-src="https://mobile.wso138wede-amp.org/wso138.webp" 2436 alt="WSO138: Link Resmi Situs Slotgacor Gampang Wede Terpercaya" 2437 width="" 2438 height="" 2439 > 2440 2441 </li> 2442 2443 2444 </ul> 2445 2446 <div class="swiper-button-prev"><svg class="icon icon-chevron-left" xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="7" height="12" viewBox="0 0 7 12"> <circle cx="60%" cy="50%" r="12" fill="transparent" /> <path d="M6.35355339,10.6464466 C6.54881554,10.8417088 6.54881554,11.1582912 6.35355339,11.3535534 C6.15829124,11.5488155 5.84170876,11.5488155 5.64644661,11.3535534 L0.646446609,6.35355339 C0.451184464,6.15829124 0.451184464,5.84170876 0.646446609,5.64644661 L5.64644661,0.646446609 C5.84170876,0.451184464 6.15829124,0.451184464 6.35355339,0.646446609 C6.54881554,0.841708755 6.54881554,1.15829124 6.35355339,1.35355339 L1.70710678,6 L6.35355339,10.6464466 Z"/> </svg></div> 2447 <div class="swiper-button-next"><svg xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="7" height="10" viewBox="0 0 7 10" fill="none"> 2448 <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"/> 2449 </svg></div> 2450 2451 <!-- Add Pagination --> 2452 <div class="swiper-pagination"></div> 2453 2454 </div> 2455 </div> 2456 2457 <div class="product-m-pageleb-video col-12 text-center d-lg-none"> 2458 <!-- product video --> 2459 <style> 2460 .view-video{display:block; margin:auto; padding:5px 10px;font-size:16px;font-weight:bold;border:2px solid #ffffff;background:#fff;} 2461 .view-video .icon-play{fill:#ffffff;vertical-align: middle;} 2462 .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;} 2463 .close-video{position:absolute;right:9px; top:8%;z-index:2;padding:5px;} 2464 .close-video .icon{width:30px;height:30px;} 2465 /*responsive iframe */ 2466 .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);} 2467 .video-container iframe {position: absolute;top:60%;left: 0;width: 100%;height: 100%;} 2468 2469 .youtube { 2470 background-color: #000; 2471 margin-bottom: 30px; 2472 position: relative; 2473 padding-top: 56.25%; 2474 overflow: hidden; 2475 cursor: pointer; 2476 width: 100%; 2477 } 2478 .swiper-slide .youtube { 2479 max-width: 480px; 2480 } 2481 .youtube img { 2482 width: 100%; 2483 top: -16.82%; 2484 left: 0; 2485 opacity: 0.7; 2486 } 2487 .youtube .play-button { 2488 width: 90px; 2489 height: 60px; 2490 background-color: #333; 2491 box-shadow: 0 0 30px rgba( 0,0,0,0.6 ); 2492 z-index: 1; 2493 opacity: 0.8; 2494 border-radius: 6px; 2495 } 2496 .youtube .play-button:before { 2497 content: ""; 2498 border-style: solid; 2499 border-width: 15px 0 15px 26.0px; 2500 border-color: transparent transparent transparent #fff; 2501 } 2502 .youtube img, 2503 .youtube .play-button { 2504 cursor: pointer; 2505 } 2506 .youtube img, 2507 .youtube iframe, 2508 .youtube .play-button, 2509 .youtube .play-button:before { 2510 position: absolute; 2511 } 2512 .youtube .play-button, 2513 .youtube .play-button:before { 2514 top: 50%; 2515 left: 50%; 2516 transform: translate3d( -50%, -50%, 0 ); 2517 } 2518 .youtube iframe { 2519 height: 100%; 2520 width: 100%; 2521 top: 0; 2522 left: 0; 2523 } 2524 </style> 2525 2526 2527 </div> 2528 </div> 2529 2530 <div class="product-desc-add position-relative d-none d-lg-block m-0"> 2531 2532 </div> 2533 2534
2534<script> 2535 if ($(window).width() < 991) { 2536 var direction = 'horizontal' 2537 } else { 2538 var direction = 'vertical' 2539 $(".gallery-thumbs").height($("#ProductPhotoImg").height()) 2540 } 2541 var swiper = new Swiper('.gallery-thumbs', { 2542 2543 direction, 2544 slidesPerView: 4.5, 2545 spaceBetween: 12, 2546 navigation: { 2547 nextEl: '.swiper-button-next', 2548 prevEl: '.swiper-button-prev', 2549 } 2550 }); 2551 2552 var swiper = new Swiper('.gallery-mobile', { 2553 //loop: true, 2554 lazy: true, 2555 speed: 300, 2556 resistance : true, 2557 resistanceRatio : 0, 2558 freeModeMomentumRatio : 0.45, 2559 freeModeMomentumVelocityRatio : 1.5, 2560 navigation: { 2561 nextEl: '.swiper-button-next', 2562 prevEl: '.swiper-button-prev', 2563 }, 2564 pagination: { 2565 el: '.swiper-pagination' 2566 }, 2567 useCSS3Transforms: false, 2568 loop: false, 2569 on: { 2570 init: function () { 2571 console.log('swiper initialized'); 2572 var currentVideo = $("[data-swiper-slide-index=" + this.realIndex + "]").find("video"); 2573 currentVideo.trigger('play'); 2574 }, 2575 }, 2576 }); 2577 2578 /* GET ALL VIDEOS */ 2579 var sliderVideos = $(".swiper-slide video"); 2580 2581 /* SWIPER API - Event will be fired after animation to other slide (next or previous) */ 2582 swiper.on('slideChange', function () { 2583 console.log('slide changed'); 2584 /* stop all videos */ 2585 sliderVideos.each(function( index ) { 2586 this.currentTime = 0; 2587 }); 2588 2589 /* SWIPER GET CURRENT AND PREV SLIDE (AND The VIDEO INSIDE) */ 2590 var prevVideo = $(`[data-swiper-slide-index="${this.previousIndex}]"`).find("video"); 2591 var currentVideo = $(`[data-swiper-slide-index="${this.realIndex}"]`).find("video"); 2592 prevVideo.trigger('stop'); 2593 currentVideo.trigger('play'); 2594 }); 2595 2596 2597 $("[data-video]").click(function(){ 2598 const file = $(this).data("video") 2599 $(".product-single__video").show() 2600 $(".product-single__image").hide() 2601 $(".product-single__video").find("video").attr("src", file) 2602 $(".product-single__video").find("video")[0].play(); 2603 }) 2604 $("[data-image]").click(function(){ 2605 $(".product-single__video").hide() 2606 $(".product-single__image").show() 2607 $(".product-single__video").find("video")[0].pause(); 2608 }) 2609 2610 $("#product-image .swiper-slide").each(function(){ 2611 let width = $(this).width() 2612 $(this).height(width) 2613 }) 2614 2615 $(window).resize(function() { 2616 $("#product-image .swiper-slide").each(function(){ 2617 let width = $(this).width() 2618 $(this).height(width) 2619 }) 2620 }) 2621 </script>
2621 2622 2623 </div> 2624 2625 2626 <div class="grid__item_product-info mb-3"> 2627 <div class="c-pdp-product-info"> 2628 <ul class="c-pdp-product-info__service c-pdp-product-info__service--active"> 2629 <!-- artikel --> 2630 <li> 2631 <strong>WSO138</strong> hadir dalam dunia hiburan digital dengan konsep situs slot online yang mengusung desain modern dan interaktif. Tampilan yang dinamis serta navigasi sederhana dapat membantu pengguna menjelajahi berbagai kategori permainan dengan lebih praktis. Elemen visual, menu yang tertata, dan fitur interaktif memberikan pengalaman berbeda bagi pengguna yang menikmati hiburan digital melalui smartphone maupun komputer. Beragam pilihan tema juga membuat aktivitas menjelajah permainan terasa lebih variatif. 2632 </li> 2633 <br> 2634 <li> 2635 Meski istilah âgacorâ sering digunakan dalam promosi, hasil permainan slot tetap tidak dapat dipastikan karena dipengaruhi mekanisme acak dan keberuntungan. Pengguna sebaiknya memahami aturan, risiko, serta ketentuan yang berlaku dan menetapkan batas waktu maupun anggaran secara bijak. 2636 </li> 2637 </ul> 2638 </div> 2639 </div> 2640 2641 2642 2643 2644 2645 <style> 2646 .c-pdp-product-info__service--active { 2647 font-size: 12px; 2648 padding-left: 10px; 2649 text-align: left; 2650 max-width: 550px; 2651 margin: auto; 2652 color: #fff; 2653 } 2654 .c-pdp-product-info__service--active li { 2655 list-style: disc; 2656 } 2657 .c-pdp-product-info { 2658 background-color: #000000; 2659 padding: 12px; 2660 margin: 0; 2661 } 2662 .freeship em { 2663 font-style: italic; 2664 font-size: 12px !important; 2665 } 2666 2667 2668 </style> 2669 2670
2670<script> 2671 $(document).ready(function(){ 2672 if ( $(".c-pdp-product-info__service li").length == 1 ) { 2673 $(".c-pdp-product-info__service").addClass("no-bullet"); 2674 $(".c-pdp-product-info__service li").addClass("no-bullets"); 2675 } 2676 }); 2677 </script>
2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 </div> 2691 <div id="product-meta" class="col-lg-5 p-0"> 2692 <div class="product-meta"> 2693 <style> 2694 .product-meta--review {margin-top:10px} 2695 .freeship * {font-size: 14px !important;font-style: normal;} 2696 </style> 2697 <h1 itemprop="name" class="mb-2" style="color: rgb(0, 191, 255); font-weight: bold;">WSO138: Link Resmi Situs Slotgacor Gampang Wede Terpercaya</h1> 2698 2699 <div itemprop="offers" itemscope itemtype="http://schema.org/Offer"> 2700 <meta itemprop="priceCurrency" content="IDR"> 2701 2702 <link itemprop="availability" href="https://schema.org/InStock"> 2703
2703<script 2704 type="text/javascript" 2705 src="//platform-api.sharethis.com/js/sharethis.js#property=5acdc0aa3ef3c0001396fd50&product=custom-share-buttons" 2706 async="async" 2707 ></script>
2707 2708 2709 2710 2711 2712 <span class="visually-hidden">Translation missing: en.products.general.regular_price</span> 2713 2714 <span class="visually-hidden">Translation missing: en.products.general.sale_price</span> 2715 2716 <div class="row no-gutters mb-3"> 2717 <span 2718 id="ProductPrice" 2719 class="h2 ProductPrice" 2720 itemprop="price" 2721 content="835000" style="color: #ffffff;" 2722 > 2723 Rp 5.000 2724 </span> 2725 <div class="discount-product-detail"> 2726 <p id="ComparePrice" class="ComparePrice mt-2 mt-lg-0"> 2727 Rp 10.000 2728 </p> 2729 <span class=" tag-discount"> 2730 2731 2732 <span id="newDiscount" class="product-tag persentase-discount hide"> 2733 (90%) 2734 </span><br> 2735 2736 </span> 2737 </div> 2738 </div> 2739 2740 <div class="row no-gutters meta-sds"> 2741 <div class="col-12 mb-2 mb-lg-0 stock-info"> 2742 2743 2744 <span 2745 id="ProductStock-Product" 2746 class="product-single__stock mb-2 hide" 2747 > 2748 2749 2750 2751 2752 Barang dikirim pada 2753 2754 2755 2756 </span> 2757 2758 <style> 2759 .short-desc-desktop { 2760 margin-bottom: 2rem; 2761 color: white; 2762 } 2763 .short-desc ul li:nth-child(n + 4) { 2764 display: none; 2765 } 2766 .short-desc ul li.showList:nth-child(n + 4) { 2767 display: list-item; 2768 } 2769 label.more { 2770 display: none; 2771 } 2772 label.more.showMe { 2773 display: block; 2774 font-size: 12px; 2775 text-transform: uppercase; 2776 font-weight: 700; 2777 cursor: pointer; 2778 } 2779 </style> 2780 2781 <div class="short-desc-desktop d-none d-lg-block"> 2782 <div class="short-desc"> 2783 2784 <p>WSO138 memberikan link resmi situs slotgacor gampang wede terpercaya untuk semua pemain Indonesia yang akses login alternatif dan daftar akun baru sekarang.</p> 2785 </div> 2786 <label class="more">Show More â</label>
2787 </div><br> 2788 2789 2790
2790<script> 2791 var liCount; 2792 $(document).ready(function () { 2793 $(".short-desc ul").each(function() { 2794 liCount = $(this).children("li").length; 2795 if (liCount > 3) { 2796 $(this).parent(".short-desc").next(".more").addClass("showMe"); 2797 } 2798 }); 2799 2800 $(".more").click(function () { 2801 //$(".short-desc").find("li").addClass("showList"); 2802 // $(this).hide(); 2803 $("#product-desc").find("ul").show() 2804 $('html, body').animate({ 2805 scrollTop: $("#product-desc").offset().top - 250 2806 }, 2000); 2807 $("#product-desc").css("height","auto"); 2808 $("#more_content").remove(); 2809 $(".product-spec").append("<div id='less_content' class='readmore'><span class='less_content'>Less</span></div>") 2810 }); 2811 }); 2812 </script>
2812 2813 2814 2815 </div> 2816 </div> 2817 2818 <div id="purchaseProduct"> 2819 2820 2821 2822 2823 <style> 2824 .variant-metafield { 2825 display: block!important; 2826 width: 1px; 2827 padding: 0; 2828 border-color: #fff; 2829 } 2830 .select2-results__option[aria-disabled] { 2831 display: none; 2832 } 2833 2834 .towel-bordir { 2835 width: 100%; 2836 display: flex; 2837 align-items: center; 2838 justify-content: space-around; 2839 } 2840 </style> 2841 2842 2843 2844 2845
2845<script> 2846 2847 2848 </script>
2848 2849 2850 2851 2852 2853 2854 2855 <select 2856 name="id[]" 2857 id="productSelect" 2858 class="product-single__variants ignore hide hide" 2859 > 2860 2861 2862 2863 <option 2864 2865 selected="selected" 2866 2867 data-sku="OBVSTF1086" 2868 value="44083045826775" 2869 > 2870 Default Title 2871 </option> 2872 2873 2874 2875 </select> 2876 2877
2877<script src="https://outerbloom.com/cdn/shop/t/138/assets/jquery.magnific-popup.min.js?v=184369421263510081681752652422" type="text/javascript"></script>
2877 2878 2879
2879<script> 2880 $('.size-chart-open-popup').magnificPopup({ 2881 type:'inline', 2882 midClick: true 2883 }); 2884 </script>
2884 2885 2886 2887 2888 2889 <div class="upload-image-preview"> 2890 2891 2892 2893 2894 2895 <style> 2896 .file-dnd * { 2897 margin: 0; 2898 padding: 0; 2899 box-sizing: border-box; 2900 } 2901 .file-dnd { 2902 width: 100%; 2903 height: 250px; 2904 border: 1px solid #ddd; 2905 border-radius: 10px; 2906 padding: 15px; 2907 display: flex; 2908 flex-direction: column; 2909 gap: 10px; 2910 /* box-shadow: 0px 2px 10px 2px rgba(0,0,0,0.05); */ 2911 margin: auto; 2912 } 2913 .file-dnd input { 2914 display: none; 2915 } 2916 .file-dnd .before-upload { 2917 border: 1px dashed #888; 2918 flex: 1; 2919 border-radius: 5px; 2920 display: flex; 2921 justify-content: center; 2922 align-items: center; 2923 text-align: center; 2924 cursor: pointer; 2925 } 2926 .file-dnd .before-upload > div { 2927 display: flex; 2928 flex-direction: column; 2929 align-items: center; 2930 gap: 8px; 2931 } 2932 .file-dnd .before-upload > div h4 { 2933 width: 150px; 2934 } 2935 .file-dnd .before-upload > div p { 2936 font-size: 12px !important; 2937 color: #555; 2938 } 2939 .file-dnd.active .before-upload { 2940 border: 1px solid #5750d9; 2941 background-color: #f5f5ff; 2942 } 2943 .file-dnd .after-upload { 2944 position: relative; 2945 display: none; 2946 } 2947 .file-dnd .after-upload img { 2948 width: 100%; 2949 border-radius: 5px; 2950 max-height: 180px; 2951 object-fit: contain; 2952 display: block; 2953 } 2954 .file-dnd .after-upload .clear-btn { 2955 position: absolute; 2956 top: 10px; 2957 right: 10px; 2958 background: rgba(255, 255, 255, 0.5); 2959 width: 15px; 2960 height: 15px; 2961 text-align: center; 2962 line-height: 15px; 2963 border-radius: 50%; 2964 color: #fff; 2965 cursor: pointer; 2966 font-size: 14px; 2967 } 2968 </style> 2969 2970 <div 2971 class="file-dnd mb-3" 2972 2973 style="display: none" 2974 2975 > 2976 <label for="upload-photo">Upload your Photo:</label> 2977 <input type="file" id="upload-photo" accept="image/*"> 2978 <input type="hidden" data-properties="Photo"> 2979 <div class="before-upload"> 2980 <div> 2981 <svg id="surface1" xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="33.053" height="41.719" viewBox="0 0 33.053 41.719"> 2982 <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> 2983 <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> 2984 <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> 2985 </svg> 2986 2987 <h4>Drag & Drop Photo file or Browse</h4> 2988 <p>Supports: JPEG, PNG, GIF, TIFF</p> 2989 </div> 2990 </div> 2991 <div class="after-upload"> 2992 <div class="clear-btn">×</div> 2993 <img src="" width="" height=""> 2994 </div> 2995 </div> 2996
2996<script> 2997 function applyDndFile(el) { 2998 const parent = document.querySelector(".file-dnd") 2999 const beforeUploadEl = el.querySelector(".before-upload") 3000 const afterUploadEl = el.querySelector(".after-upload") 3001 const inputFile = el.querySelector("input[type=file]") 3002 const imagePreview = el.querySelector(".after-upload img") 3003 const clearBtn = el.querySelector(".after-upload .clear-btn") 3004 const inputProps = parent.querySelector("[data-properties]"); 3005 3006 async function upload(name, uri, type) { 3007 try { 3008 const filename = name.split('.')[0] 3009 let formData = new FormData(); 3010 formData.append("file", uri); 3011 const response = await fetch(`${host}/upload?name=${filename}&dir=gift&type=${type}`, { 3012 method: "POST", 3013 body: formData 3014 }) 3015 if(response) { 3016 const res = await response.json() 3017 return res 3018 } 3019 } catch(err){ 3020 console.log(err) 3021 } 3022 } 3023 3024 function showImagePreview(img) { 3025 if(img){ 3026 const blobUrl = URL.createObjectURL(img) 3027 imagePreview.src = blobUrl 3028 afterUploadEl.style.display = "block" 3029 beforeUploadEl.style.display = "none" 3030 } 3031 } 3032 3033 beforeUploadEl.addEventListener("click", (e) => { 3034 e.preventDefault() 3035 inputFile.click() 3036 }) 3037 3038 inputFile.addEventListener("change", async (e) => { 3039 e.preventDefault() 3040 showImagePreview(e.target.files[0]) 3041 var uploadData = await upload(e.target.files[0].name, e.target.files[0], e.target.files[0].type) 3042 inputProps.value = uploadData?.url 3043 }) 3044 3045 clearBtn.addEventListener("click", (e) => { 3046 afterUploadEl.style.display = "none" 3047 beforeUploadEl.style.display = "flex" 3048 inputProps.value = "" 3049 }) 3050 3051 beforeUploadEl.addEventListener("dragover", (e) => { 3052 e.preventDefault() 3053 el.classList.add("active") 3054 }) 3055 3056 beforeUploadEl.addEventListener("dragleave", (e) => { 3057 e.preventDefault() 3058 el.classList.remove("active") 3059 }) 3060 3061 beforeUploadEl.addEventListener("drop", async (e) => { 3062 e.preventDefault() 3063 el.classList.remove("active") 3064 showImagePreview(e.dataTransfer.files[0]) 3065 var uploadData = await upload(e.dataTransfer.files[0].name, e.dataTransfer.files[0], e.dataTransfer.files[0].type) 3066 console.log(uploadData) 3067 inputProps.value = uploadData?.url 3068 }) 3069 } 3070 3071 applyDndFile(document.querySelector(".file-dnd")) 3072 3073 $(document).ready(function(){ 3074 $(".variant-swatch").change(function(){ 3075 const v = $(this).val().toLowerCase() 3076 const list = ["photo", "custom one side", "custom two side", "small", "big"] 3077 if(list.some(item => v.includes(item))) return $(".file-dnd").show() 3078 $(".file-dnd").hide() 3079 $(".file-dnd").find("[data-properties]").val("") 3080 $(".after-upload").hide() 3081 $(".before-upload").css("display", "flex") 3082 }) 3083 }) 3084 </script>
3084 3085 3086 </div> 3087 3088 3089 <div class="delivery-city mb-4"> 3090 <a href="https://mobile.wso138wede-amp.org/"> 3091 <center><img src="https://mobile.wso138wede-amp.org/logo-wso138.png" alt="logo-daftar" style="width: 260px; margin-top: -20px;"></center></a><br> 3092 <h4 class="fw-600 text-uppercase mb-15" style="color: rgb(0, 191, 255);">AKSES LINK RESMI WSO138 !</h4> 3093 <div class="row justify-content-between m-0"> 3094 <select id="cities" class="form-control select-search" required> 3095 <option value="">Gabung Sekarang Di WSO138 Nikmati Akses Tercepat Bersama Bandar SBOBET</option> 3096 </select> 3097 </div> 3098 </div> 3099 3100 <style> 3101 @media (max-width: 768px) { 3102 .select2-search__field { 3103 pointer-events: none !important; 3104 } 3105 3106 .select2-search { 3107 display: none !important; 3108 } 3109 } 3110 </style> 3111 3112
3112<script> 3113 $(document).ready(function() { 3114 // Check if mobile 3115 if (window.innerWidth <= 768) { 3116 // When cities select2 opens on mobile, remove focus from search 3117 $('#cities').on('select2:open', function() { 3118 setTimeout(function() { 3119 $('.select2-search__field').blur(); 3120 $('.select2-search__field').prop('readonly', true); 3121 }, 100); 3122 }); 3123 } 3124 }); 3125 </script>
3125 3126 3127 <style> 3128 .icon-img-footer { 3129 width: 80px; 3130 padding: 0px 5px; 3131 } 3132 @media (min-width: 768px) { 3133 .icon-img-footer { 3134 width: 120px; 3135 } 3136 } 3137 @media (min-width: 992px) { 3138 .icon-img-footer { 3139 width: 120px; 3140 } 3141 } 3142 3143 3144 </style> 3145 <div id="row-delivery-date" class="row m-0 mb-3"> 3146 <h4 class="fw-600 text-uppercase col-12 p-0 mb-15" style="color: rgb(0, 191, 255);">Nikmati Akses Bermain SBOBET Bersama WSO138</h4> 3147 <div id="deliveryDate" class="m-0"></div> 3148 <div id="deliveryDateFull"> 3149 <div class=""> 3150 <input 3151 type="text" 3152 id="full-date" 3153 class="date-full calendarbutton btn steps-btn btn-date-time mb-0" 3154 value="Full Calendar" 3155 > 3156 <label for="full-date"><svg version="1.1" xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="32" height="32" viewBox="0 0 32 32"> 3157 <title>icon-arrow-right</title> 3158 <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> 3159 </svg></label> 3160 </div> 3161 <button class="btnChangeDeliveryDate hide">Change Delivery Date</button> 3162 </div> 3163 <div class="form-group p-0"> 3164 <input type="text" id="propDeliveryDate" required class="hide"> 3165 </div> 3166 </div> 3167 3168 3169 <div id="row-delivery-time" class="row m-0 mb-3"> 3170 <h4 class="text-center fw-600 text-uppercase col-12 mb-15"> 3171 SEO SON 3172 </h4> 3173 <div id="deliveryTime" class="d-flex w-100 m-0"></div> 3174 <div class="form-group p-0"> 3175 <input type="text" id="propDeliveryTime" class="hide" required> 3176 </div> 3177 </div> 3178 3179 3180 3181 3182 3183 <div id="personalizeBtn"> 3184 3185 3186 3187 3188 <button 3189 class="btn text-uppercase w-100 fw-400" 3190 3191 3192 3193 > 3194 3195 customize your flower board 3196 3197 </button> 3198 <div class="button-share-wishlist d-flex justify-content-around mt-3"> 3199 <div class="button-share text-center"> 3200 <p id="shareButton" class="d-flex gap-2"><span>WSO138</span><svg xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="15" height="13" viewBox="0 0 15 13" fill="none"> 3201 <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"/> 3202 </svg> 3203 </p> 3204 </div> 3205 <div class="button-wishlist text-center"> 3206 <p id="wishButton" class="d-flex gap-2 wishlist-toggle" data-product-handle="blossom-shine"><span>Wishlist</span><svg xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="16" height="15" viewBox="0 0 16 15" fill="none"> 3207 <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"/> 3208 </svg> 3209 <!-- 3210 <svg xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="34" height="30" viewBox="0 0 34 30" fill="none"> 3211 <path d="M32.8333 9.23082C32.8333 4.51916 29.0142 0.699158 24.3025 0.699158C21.2 0.699158
321118.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"/> 3212 </svg> 3213 --> 3214 </p> 3215 </div> 3216 </div> 3217 </div> 3218 </div> 3219 <div class="purchasePopup purchasePopupSpotify" style="display: none;"> 3220 <div class="purchaseArea"> 3221 <div class="sectionPurchase sectionPurchaseSpotify"> 3222 <div class="wrapperPurchase"> 3223 <div class="headerPurchase"> 3224 <h3>personalize spotify photo print</h3> 3225 <a class="close-purchase-popup"> 3226 <svg xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="18" height="18" viewBox="0 0 18 18" fill="none"> 3227 <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> 3228 </svg> 3229 </a> 3230 </div> 3231 <div class="contentPurchase"> 3232 <div class="spotifyAddons"></div> 3233 </div> 3234 3235 <div class="purchase-button btn-addon row m-0" style="display: none;"> 3236 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 3237 <button class="back-purchase-button back-addon text-uppercase"> 3238 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png"> 3239 <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> 3240 </svg> 3241 <span>Back</span> 3242 </button> 3243 </div> 3244 <div class="col-12 col-lg-10 text-right" style="display: flex;justify-content: end;gap: 20px;"> 3245 <button class="btn next-purchase-button next-addon text-uppercase"> 3246 <span>continue without add-ons</span> 3247 </button> 3248 </div> 3249 </div> 3250 </div> 3251 </div> 3252 </div> 3253 </div> 3254 3255 <style> 3256 #PBarNextFrameWrapper { 3257 display: none; 3258 } 3259 #backgroundPopup { 3260 display: none; 3261 position: fixed; 3262 _position: absolute; 3263 height: 100%; 3264 width: 100%; 3265 top: 0; 3266 left: 0; 3267 background: rgb(117 117 117 / 24%); 3268 z-index: 1; 3269 } 3270 .sectionPurchase { 3271 height: 100%; 3272 position: relative; 3273 max-width: 1344px; 3274 background-color: #fff; 3275 padding: 0; 3276 overflow: hidden; /* Changed from auto to hidden */ 3277 display: flex; 3278 flex-direction: column; 3279 } 3280 .sectionPurchase.purchaseAddonSpotify { 3281 max-width: 1070px!important; 3282 max-height: 765px!important; 3283 } 3284 .sectionPurchaseBoard { 3285 max-width: 872px!important; 3286 max-height: 821px!important; 3287 } 3288 .purchaseAddonSpotify .btn-action { 3289 position: absolute; 3290 bottom: 0; 3291 left: 0; 3292 width: 100%; 3293 display: flex; 3294 gap: 10px; 3295 } 3296 .wrapperPurchase { 3297 position: relative; 3298 height: 100%; 3299 display: flex; 3300 flex-direction: column; 3301 } 3302 3303 /* New styles for scrollable content and sticky button */ 3304 .purchase-content { 3305 flex: 1; 3306 overflow-y: auto; 3307 overflow-x: hidden; 3308 padding: 20px; 3309 } 3310 3311 .purchase-button-wrapper { 3312 position: sticky; 3313 bottom: 0; 3314 background-color: #fff; 3315 border-top: 1px solid #e0e0e0; 3316 padding: 15px 0; 3317 margin-top: auto; 3318 z-index: 10; 3319 } 3320 3321 .purchasePopup { 3322 display: none; 3323 position: fixed; 3324 background: rgb(117 117 117 / 24%); 3325 z-index: 999; 3326 padding: 40px; 3327 font-size: 13px; 3328 top: 0; 3329 left: 0; 3330 width: 100%; 3331 height: 100%; 3332 } 3333 .popupPurchaseClose{ 3334 font-size:14px; 3335 line-height:14px; 3336 right:45px; 3337 top:45px; 3338 position:absolute; 3339 color:#6fa5fd; 3340 font-weight:700; 3341 display:block; 3342 cursor: pointer; 3343 } 3344 3345 .headerPurchase { 3346 margin-bottom: 30px; 3347 display: flex; 3348 justify-content: space-between; 3349 } 3350 3351 .headerPurchase h3 { 3352 font-size: 16px; 3353 text-transform: uppercase; 3354 } 3355 3356 .sectionPurchaseBoard .headerPurchase { 3357 margin-bottom: 15px; 3358 } 3359 3360 .sectionPurchaseBoard .formAddressPurchase { 3361 padding-top: 0; 3362 } 3363 3364 .purchaseArea { 3365 position: relative; 3366 height: 100%; 3367 } 3368 3369 .purchaseArea h4 { 3370 width: 100%; 3371 font-size: 12px; 3372 font-weight: 600; 3373 margin-bottom: 10px; 3374 text-transform: uppercase; 3375 } 3376 3377 .menuPurchase { 3378 margin-bottom: 30px; 3379 } 3380 3381 .menuPurchase ul { 3382 list-style-type: none; 3383 margin: 0; 3384 } 3385 3386 .menuPurchase ul li { 3387 display: inline-block; 3388 border: 1px solid #ffffff; 3389 padding: 5px 20px; 3390 margin-right: 5px; 3391 margin-bottom: 10px; 3392 font-size: 12px; 3393 font-weight: 400; 3394 } 3395 3396 .menuPurchase ul li:hover, .menuPurchase ul li.selected { 3397 background-color: #ffffff; 3398 color: #ffffff; 3399 } 3400 3401 .contentPurchase h5 { 3402 font-size: 12px; 3403 margin-bottom: 10px; 3404 font-weight: 400; 3405 overflow: hidden; 3406 } 3407 3408 /* Card */ 3409 3410 #itemCards { 3411 max-height: 430px; 3412 overflow: auto; 3413 } 3414 3415 .item-cards { 3416 width: 100%; 3417 } 3418 .item-card.selected { 3419 border: 1px solid #ffffff; 3420 } 3421 .item-card:hover { 3422 border: 1px solid #C4C4C4; 3423 } 3424 .item-cards .item-card { 3425 position: relative; 3426 width: calc(33% - 10px); 3427 max-width: calc(33% - 10px); 3428 flex: 0 0 calc(33% - 10px); 3429 margin-bottom: 20px; 3430 } 3431 .item-cards .item-card label, 3432 .item-addons .item-addon label { 3433 position: absolute; 3434 left: 0; 3435 width: 100%; 3436 height: 100%; 3437 } 3438 .item-cards .item-card .card-image img, 3439 .item-addons .item-addon .card-image img { 3440 display: block; 3441 width: 100%; 3442 } 3443 .item-card .card-meta, 3444 .item-addon .card-meta { 3445 padding: 10px 5px 5px; 3446 } 3447 .item-card.selected .card-meta, 3448 .item-addon.selected .card-meta, 3449 .item-card.selected .card-qty { 3450 background-color: #ffffff; 3451 color: #fff; 3452 visibility: visible!important; 3453 } 3454 .item-card:hover .card-meta, 3455 .item-addon:hover .card-meta, 3456 .item-card:hover .card-qty { 3457 background-color: #C4C4C4; 3458 color: #fff; 3459 visibility: visible!important; 3460 } 3461 .item-cards .item-card p, 3462 .item-addons .item-addon p { 3463 font-size: 12px !important; 3464 margin: 0; 3465 font-weight: 600; 3466 } 3467 .item-card .card-meta input, 3468 .item-addon .card-meta input { 3469 display: none; 3470 } 3471 .item-cards .item-card h5, 3472 .item-addons .item-addon h5 { 3473 text-transform: uppercase; 3474 max-height: 35px; 3475 } 3476 3477 @media (max-width: 768px) { 3478 .item-cards .item-card {
3479 width: calc(50% - 10px); 3480 max-width: calc(50% - 10px); 3481 flex: 0 0 calc(50% - 10px); 3482 margin-bottom: 0; 3483 } 3484 } 3485 3486 .card-qty { 3487 display: flex; 3488 padding: 5px; 3489 visibility: hidden; 3490 background-color: #fff !important; 3491 z-index: 999; 3492 } 3493 .card-qty a { 3494 border-width: 1px; 3495 width: 30%; 3496 cursor: pointer; 3497 text-align: center; 3498 align-self: center; 3499 height: 28px; 3500 display: block; 3501 position: relative; 3502 } 3503 .card-qty a svg { 3504 position: absolute; 3505 top: 50%; 3506 left: 50%; 3507 transform: translate(-50%, -50%); 3508 text-align: center; 3509 } 3510 input.btn-qty { 3511 border-width: 0px; 3512 border-radius: 0; 3513 background-color: #fff; 3514 -webkit-appearance: none; 3515 box-shadow: none !important; 3516 -webkit-box-shadow: none !important; 3517 -moz-box-shadow: none!important; 3518 width: 40%; 3519 border-left: 1px solid #c4c4c4; 3520 border-right: 1px solid #c4c4c4; 3521 padding: 0; 3522 } 3523 3524 .sectionPurchaseBoard #itemAddons .item-card { 3525 width: calc(20% - 15px); 3526 max-width: calc(20% - 15px); 3527 flex: 0 0 calc(20% - 15px); 3528 } 3529 3530 .purchase-button { 3531 width: 100%; 3532 padding: 0; /* Reset padding as it's now handled by wrapper */ 3533 margin: 0; 3534 } 3535 3536 .sectionPurchaseBoard .purchase-button { 3537 margin-top: 0 !important; /* Reset margin */ 3538 } 3539 3540 .back-purchase-button, .back-spotify { 3541 width: 139px; 3542 border: 1px solid; 3543 height: 43px; 3544 } 3545 .purchase-button .btn { 3546 width: 297px; 3547 height: 43px; 3548 background-color: #ffffff; 3549 color: #ffffff; 3550 } 3551 .purchase-button .btn[disabled] { 3552 background-color: #EEEEEE; 3553 } 3554 .back-purchase-button svg, .back-spotify svg { 3555 align-self: center; 3556 vertical-align: middle; 3557 margin-right: 10px; 3558 } 3559 3560 #purchaseProduct .row .error { 3561 font-size: 12px !important; 3562 color: orange; 3563 margin-top: 5px; 3564 } 3565 3566 .reviewCardPurchase { 3567 max-width: 448px; 3568 float: right; 3569 } 3570 3571 .addonsPurchase .addon-item {display: flex;justify-content: space-between;} 3572 .addon-item * {align-self: center;font-size: 12px;} 3573 .addon-itm-title {width: 360px;} 3574 .addon-itm-line-price {color: #757575;width: 80px;justify-content: space-between;display: flex;} 3575 3576 .propsAddonSpotify p { 3577 margin: 0; 3578 display: flex; 3579 font-size: 12px !important; 3580 margin-bottom: 5px; 3581 } 3582 .propsAddonSpotify p span:first-child { 3583 text-transform: uppercase; 3584 font-weight: 600; 3585 -ms-flex: 0 0 150px; 3586 flex: 0 0 150px; 3587 max-width: 150px; 3588 } 3589 3590 .addonsPurchase .addons { 3591 max-height: 250px; 3592 overflow: auto; 3593 } 3594 3595 .btn .loading:after { 3596 content: ""; 3597 display: inline-block; 3598 width: 20px; 3599 height: 20px; 3600 padding: 3px; 3601 aspect-ratio: 1; 3602 border-radius: 50%; 3603 background: #FFFFFF; 3604 --_m: conic-gradient(#0000 10%, #ffffff), linear-gradient(#ffffff 0 0) content-box; 3605 -webkit-mask: var(--_m); 3606 mask: var(--_m); 3607 -webkit-mask-composite: source-out; 3608 mask-composite: subtract; 3609 animation: l3 1s infinite linear; 3610 margin: auto; 3611 vertical-align: middle; 3612 margin-left: 10px; 3613 } 3614 3615 #qrcode img, #qrcode canvas { 3616 width: 50px; 3617 position: absolute; 3618 top: 12px; 3619 left: 16px; 3620 } 3621 3622 .t-preview { 3623 position: absolute; 3624 top: 17px; 3625 left: 75px; 3626 } 3627 .t-preview p { 3628 margin: 0; 3629 font-size: 12px !important; 3630 } 3631 .t-preview .h3 { 3632 font-size: 16px !important; 3633 margin-bottom: 5px; 3634 font-weight: 600; 3635 } 3636 .scanCard { 3637 width: 100%; 3638 border: 1px solid; 3639 height: 76px; 3640 background-color: #fff; 3641 } 3642 .scanCard > div > img { 3643 position: absolute; 3644 right: 0; 3645 width: 55px; 3646 } 3647 3648 @keyframes l3 { 3649 100% { 3650 transform: rotate(1turn); 3651 } 3652 } 3653 3654 @media (min-width: 991px) { 3655 .sectionPurchase { 3656 height: 100%; 3657 position: relative; 3658 max-width: 1344px; 3659 background-color: #fff; 3660 top: 50%; 3661 left: 50%; 3662 transform: translate(-50%, -50%); 3663 } 3664 .headerPurchase h3 { 3665 font-size: 20px; 3666 } 3667 .purchaseArea h4 { 3668 font-size: 16px; 3669 } 3670 3671 .menuPurchase ul li { 3672 font-size: 16px; 3673 } 3674 3675 .contentPurchase { 3676 margin-bottom: 30px; 3677 } 3678 .contentPurchase h5 { 3679 font-size: 16px; 3680 } 3681 3682 .item-cards .item-card p, 3683 .item-addons .item-addon p { 3684 font-size: 16px !important; 3685 } 3686 3687 .cards { 3688 float: right; 3689 width: 400px; 3690 } 3691 3692 .item-cards .item-card { 3693 width: calc(25% - 30px); 3694 max-width: calc(25% - 30px); 3695 flex: 0 0 calc(25% - 30px); 3696 } 3697 3698 #itemAddons .item-card { 3699 position: relative; 3700 width: calc(16% - 40px); 3701 max-width: calc(16% - 40px); 3702 flex: 0 0 calc(16% - 40px); 3703 } 3704 3705 .purchase-button-wrapper { 3706 padding: 10px 20px; 3707 } 3708 } 3709 3710 @media (max-width: 1200px) { 3711 .item-cards .item-card { 3712 width: calc(33% - 30px); 3713 max-width: calc(33% - 30px); 3714 flex: 0 0 calc(33% - 30px); 3715 } 3716 } 3717 3718 @media (max-width: 992px) { 3719 .purchasePopup { 3720 padding: 0; 3721 } 3722 .item-cards .item-card h5, 3723 .item-addons .item-addon h5 { 3724 max-height: 30px; 3725 } 3726 3727 .back-purchase-button, .back-spotify, .next-purchase-button { 3728 width: 100%; 3729 } 3730 .addon-itm-title { 3731 width: 300px; 3732 } 3733 .addon-itm-line-price { 3734 margin-right: 10px; 3735 } 3736 .t-preview { 3737 top: 10px; 3738 } 3739 3740 .card-qty a { 3741 height: 15px; 3742 } 3743 3744 .purchase-button-wrapper { 3745 padding: 15px; 3746 } 3747 } 3748 3749 @media (max-width: 576px) { 3750 .purchase-button .btn { 3751 width: 100%!important; 3752 } 3753 .purchase-button > .col-12 { 3754 padding-left: 0; 3755 padding-right: 0; 3756 } 3757 } 3758 </style> 3759 3760 3761 <div class="purchasePopup"> 3762 <div class="purchaseArea"> 3763 3764 <div class="sectionPurchase purchasePersonalize sectionPurchaseBoard"> 3765 <div class="wrapperPurchase"> 3766 <div class="purchase-content"> 3767 <div class="headerPurchase"> 3768 <h3 class="text-uppercase"> 3769 3770 customize your flower board 3771 3772 </h3> 3773 <a class="close-purchase-popup"> 3774 <svg xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="18" height="18" viewBox="0 0 18 18" fill="none"> 3775 <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"/> 3776 </svg> 3777 </a> 3778 3779 </div> 3780 <div class="contentPurchase"> 3781 <div class="row"> 3782 3783 <div class="col-12"> 3784 3785 3786 <style> 3787 3788 3789 .customize-papan .group-field-1 .input-field {float: left;width: 100%;height: 317px;background-color: #E5E5EA;} 3790 .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;} 3791 3792 .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;} 3793 .customize-papan .btn-upload-papan svg {width: 21px;height: 25px;display: block;align-self: center;margin: auto;margin-bottom: 12px;} 3794 .svgLogoPapan {position: absolute;width: 100%;top: 50%;left: 50%;transform: translate(-50%, -50%);text-align: center;} 3795 .svgLogoPapan p {color: #8E8E93; margin: 0;} 3796 .svgLogoPapan p span {font-size: 12px;color: #FF0E00;} 3797 .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;} 3798 #suggest-messages {position: absolute;bottom: 5px;left: 5px;} 3799 #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;} 3800 .case-occasion .nice-select:after {border-bottom: 2px solid #333;border-right: 2px solid #333;right: 20px;top: 42%;width: 10px;height: 10px;} 3801 .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;} 3802 .customize-papan .input-field .limit {position: absolute;right: 15px;top: 0;color: #757575;} 3803 3804 @media (min-width: 991px) { 3805 .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);} 3806 .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);} 3807 } 3808 </style> 3809 3810 <input type="hidden" data-properties="penerima" value="-"> 3811 <div class="customize-papan"> 3812 <div class="container"> 3813 <div class="field-papan group-field-1 form-group"> 3814 <div class="input-field">
3815 <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. 3816 (Ex: Selamat Menempuh Hidup Baru A & B)." maxlength="100"></textarea> 3817 <p class="limit">0/100</p> 3818 <div id="suggest-messages"> 3819 <a id="show_note_papan1" href="#"> 3820 <div class="suggest-message" id="note_btn_div1"> 3821 <span class="promo-code-link" id="note_btn_papan1">Contoh Kata WEDDING</span> 3822 </div> 3823 </a> 3824 <a id="show_note_papan2" href="#"> 3825 <div class="suggest-message" id="note_btn_div2"> 3826 <span class="promo-code-link" id="note_btn_papan2">Contoh Kata SELAMAT</span> 3827 </div> 3828 </a> 3829 <a id="show_note_papan3" href="#"> 3830 <div class="suggest-message" id="note_btn_div3"> 3831 <span class="promo-code-link" id="note_btn_papan3">Contoh Kata DUKA CITA</span> 3832 </div> 3833 </a> 3834 </div> 3835 </div> 3836 </div> 3837 <div class="hide"> 3838 <input type="hidden" value="" id="note_id_papan1" name="note_id_papan1" style="top: 0px;"> 3839 <input type="hidden" value="" id="note_btn_id_papan1" name="note_btn_id_papan1"> 3840 </div> 3841 <div class="hide"> 3842 <input type="hidden" value="" id="note_id_papan2" name="note_id_papan2" style="top: 0px;"> 3843 <input type="hidden" value="" id="note_btn_id_papan2" name="note_btn_id_papan2"> 3844 </div> 3845 <div class="hide"> 3846 <input type="hidden" value="" id="note_id_papan3" name="note_id_papan3" style="top: 0px;"> 3847 <input type="hidden" value="" id="note_btn_id_papan3" name="note_btn_id_papan3"> 3848 </div> 3849 <div class="field-papan group-field-2 form-group"> 3850 3851 <label for="logoPapan" onclick="" class="input-field field-logo"> 3852 3853 3854 3855 <div class="btn-upload-papan w-100"> 3856 <?xml version="1.0" encoding="UTF-8"?> 3857 <img src="" style="display:none"> 3858 <div class="svgLogoPapan"> 3859 <svg xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="22" height="26" viewBox="0 0 22 26" fill="none"> 3860 <path d="M6.5 20H15.5V11H21.5L11 0.5L0.5 11H6.5V20ZM0.5 23H21.5V26H0.5V23Z" fill="black"/> 3861 </svg> 3862 <p>Upload Logo <span>*optional</span></p> 3863 </div> 3864 </div> 3865 3866 </label> 3867 3868 <input 3869 type="hidden" 3870 data-properties="papan-logo" 3871 value="" 3872 > 3873 <input 3874 type="file" 3875 id="logoPapan" 3876 accept="image/*" 3877 style="position: absolute;width: 1px;height: 1px;padding: 0" 3878 > 3879 3880 <div class="input-field"> 3881 <input class="has-limit sender-name" type="text" placeholder="Nama Pengirim" data-properties="pengirim" maxlength="35"/> 3882 <p class="limit">0/35</p> 3883 </div> 3884 3885 </div> 3886 3887 </div> 3888 </div> 3889 </div> 3890 3891 </div> 3892 </div> 3893 3894 </div> 3895 <div class="purchase-button-wrapper"> 3896 <div class="purchase-button btn-card row m-0"> 3897 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 3898 3899 </div> 3900 <div class="btn-next-card col-12 col-lg-10 text-right"> 3901 3902 3903 <button 3904 3905 3906 3907 class="btn next-purchase-button text-uppercase" 3908 3909 disabled 3910 3911 > 3912 <span>save your flower board</span> 3913 </button> 3914 </div> 3915 </div> 3916 3917 </div> 3918 </div> 3919 </div> 3920 3921 3922 3923 <div 3924 class="sectionPurchase sectionPurchaseBoard hide" 3925 data-section="address" 3926 > 3927 <div class="wrapperPurchase"> 3928 <div class="purchase-content"> 3929 <div class="headerPurchase"> 3930 <h3> 3931 Complete Your Order 3932 </h3> 3933 <a class="close-purchase-popup"> 3934 <svg xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="18" height="18" viewBox="0 0 18 18" fill="none"> 3935 <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"/> 3936 </svg> 3937 </a> 3938 3939 </div> 3940 <div class="contentPurchase"> 3941 <div class="row"> 3942 <div class="col-12 position-relative"> 3943 <div class="addressPurchase"> 3944 3945 <h4 class="text-uppercase">recipient delivery address</h4> 3946 <p>Share the delivery address to send your heartfelt blooms straight to their door.</p> 3947 3948 <div class="formAddressPurchase row"> 3949 <div class="col-12"> 3950 <form> 3951 <div class="form-group row mb-2 mb-lg-4"> 3952 <div class="col-6 position-relative"> 3953 <input id="first_name" type="text" class="form-control input__field" placeholder="" required> 3954 <label for="first_name" class="input__label">First Name<span>*</span></label> 3955 </div> 3956 <div class="col-6 position-relative"> 3957 <input id="last_name" type="text" class="form-control input__field" placeholder="" required> 3958 <label for="last_name" class="input__label">Last Name<span>*</span></label> 3959 </div> 3960 <input type="hidden" data-properties="nama-penerima"> 3961 </div> 3962 3963 <h4 class="text-uppercase">how you want to input your address</h4> 3964 <div class="form-group row mb-2 mb-lg-4 form-address-upload"> 3965 <div class="col-6 position-relative"> 3966 <label class="address-manualy"> 3967 <svg xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="18" height="17" viewBox="0 0 18 17" fill="none"> 3968 <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
39681216 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
39685 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"/> 3969 </svg> 3970 <span>Input Address Manually</span> 3971 </label> 3972 </div> 3973 <div class="col-6 position-relative"> 3974 <label for="address-upload" class="address-upload"> 3975 <svg xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="12" height="13" viewBox="0 0 12 13" fill="none"> 3976 <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"/> 3977 </svg> 3978 <span>Upload Address Picture</span> 3979 </label> 3980 <input 3981 id="address-upload" 3982 type="file" 3983 accept="image/png, image/jpeg" 3984 style="position: absolute; padding: 0;width: 1px;height: 1px" 3985 > 3986 <input type="hidden" class="props-address-upload" data-properties="foto-alamat"> 3987 </div> 3988 </div> 3989 <img width="150" height="" src="" class="photo-address" style="display: none;"> 3990 3991 <div class="form-group row position-relative mb-2 mb-lg-4 form-address"> 3992 <div class="col-12"> 3993 <textarea 3994 id="delivery_address" 3995 data-properties="alamat-penerima" 3996 class="form-control input__field col-12" 3997 placeholder="" 3998 required 3999 ></textarea> 4000 <label for="delivery_address" class="input__label">Delivery Address<span>*</span></label> 4001 4002 </div> 4003 </div> 4004 <div class="form-group row mb-2 mb-lg-4 form-address"> 4005 <div class="col-6 position-relative"> 4006 <input 4007 id="recipient_number" 4008 type="text" 4009 data-properties="telepon-penerima" 4010 class="form-control input__field" 4011 placeholder="" 4012 required 4013 > 4014 <label for="recipient_number" class="input__label">Recipient number<span>*</span></label> 4015 </div> 4016 <div class="col-6 position-relative"> 4017 <input 4018 id="company" 4019 type="text" 4020 data-properties="company" 4021 class="form-control input__field" 4022 placeholder="" 4023 > 4024 <label for="company" class="input__label">Company (Optional)</label> 4025 </div> 4026 </div> 4027 <div class="form-group row mb-2 mb-lg-4 form-address"> 4028 <div class="col-6 position-relative"> 4029 <input 4030 id="province" 4031 type="text" 4032 class="form-control input__field" 4033 placeholder="" 4034 value="Jakarta" 4035 data-properties="province" 4036 > 4037 <label for="province" class="input__label">Province</label> 4038 </div> 4039 <div class="col-6 position-relative"> 4040 <select id="zip" class="form-control select-search" required></select> 4041 </div> 4042 </div> 4043 </form> 4044 </div> 4045 </div> 4046 </div> 4047 <div class="addonsPurchase"> 4048 <h4 class="text-uppercase">add-ons</h4> 4049 <div class="addons"> 4050 <p>No Add-Ons</p> 4051 <!-- 4052 <button class="add-addon"> 4053 <svg xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="12" height="12" viewBox="0 0 12 12" fill="none"> 4054 <path d="M5.5 6.5H0V5.5H5.5V0H6.5V5.5H12V6.5H6.5V12H5.5V6.5Z" fill="black"/> 4055 </svg>
4056 <span>Enhance my moment with Add-ons</span> 4057 </button> 4058 --> 4059 </div> 4060 </div> 4061 </div> 4062 4063 </div> 4064 </div> 4065 4066
4066<script> 4067 document.addEventListener('DOMContentLoaded', function() { 4068 // Detect iOS 4069 var isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; 4070 4071 if (isIOS) { 4072 document.querySelector('.formAddressPurchase').classList.add('ios'); 4073 4074 // iOS specific fixes 4075 var inputs = document.querySelectorAll('.formAddressPurchase .input__field'); 4076 4077 inputs.forEach(function(input) { 4078 // Force enable touch events on iOS 4079 input.style.webkitUserSelect = 'text'; 4080 input.style.webkitTouchCallout = 'default'; 4081 input.style.pointerEvents = 'auto'; 4082 input.style.touchAction = 'manipulation'; 4083 4084 // Add explicit touch event listeners for iOS 4085 input.addEventListener('touchstart', function(e) { 4086 e.stopPropagation(); 4087 this.focus(); 4088 }, { passive: false }); 4089 4090 input.addEventListener('touchend', function(e) { 4091 e.preventDefault(); 4092 e.stopPropagation(); 4093 this.focus(); 4094 this.click(); 4095 }, { passive: false }); 4096 4097 // Force focus on tap for iOS 4098 input.addEventListener('click', function(e) { 4099 e.stopPropagation(); 4100 if (document.activeElement !== this) { 4101 this.focus(); 4102 } 4103 }); 4104 }); 4105 4106 // Fix for label overlapping on iOS 4107 var labels = document.querySelectorAll('.formAddressPurchase .input__label'); 4108 labels.forEach(function(label) { 4109 label.style.pointerEvents = 'none'; 4110 label.addEventListener('touchstart', function(e) { 4111 e.preventDefault(); 4112 var input = this.parentNode.querySelector('.input__field'); 4113 if (input) { 4114 input.focus(); 4115 } 4116 }); 4117 }); 4118 } 4119 4120 // Handle input state for all browsers, especially iOS 4121 var inputs = document.querySelectorAll('.input__field'); 4122 4123 inputs.forEach(function(input) { 4124 // Handle input events 4125 input.addEventListener('input', function() { 4126 if (this.value.trim() !== '') { 4127 this.classList.add('has-value'); 4128 } else { 4129 this.classList.remove('has-value'); 4130 } 4131 }); 4132 4133 // Handle focus 4134 input.addEventListener('focus', function() { 4135 this.classList.add('focused'); 4136 // iOS specific: ensure input is visible 4137 if (isIOS) { 4138 setTimeout(function() { 4139 input.scrollIntoView({ behavior: 'smooth', block: 'center' }); 4140 }, 300); 4141 } 4142 }); 4143 4144 // Handle blur 4145 input.addEventListener('blur', function() { 4146 this.classList.remove('focused'); 4147 if (this.value.trim() !== '') { 4148 this.classList.add('has-value'); 4149 } else { 4150 this.classList.remove('has-value'); 4151 } 4152 }); 4153 4154 // Initial check for pre-filled values 4155 if (input.value.trim() !== '') { 4156 input.classList.add('has-value'); 4157 } 4158 }); 4159 4160 // Additional iOS fixes 4161 if (isIOS) { 4162 // Prevent iOS Safari from adding default styling 4163 document.addEventListener('touchstart', function() {}, { passive: true }); 4164 4165 // Fix viewport issues on iOS 4166 var viewport = document.querySelector('meta[name=viewport]'); 4167 if (viewport) { 4168 viewport.setAttribute('content', 4169 'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' 4170 ); 4171 } 4172 } 4173 }); 4174 </script>
4174 4175 </div> 4176 <div class="purchase-button-wrapper"> 4177 <div class="purchase-button btn-address row m-0"> 4178 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 4179 4180 <button class="back-purchase-button back-address text-uppercase"> 4181 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png"> 4182 <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"/> 4183 </svg> 4184 <span>Back</span> 4185 </button> 4186 4187 </div> 4188 <div class="btn-next-card col-12 col-lg-10 text-right"> 4189 4190 <!-- 4191 <button class="back-purchase-button back-address text-uppercase mr-lg-2 mb-2 mb-lg-0"> 4192 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png"> 4193 <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"/> 4194 </svg> 4195 <span>Back</span> 4196 </button> 4197 --> 4198 4199 4200 <button 4201 4202 id="addtocart-card" 4203 4204 class="btn next-address text-uppercase" 4205 4206 > 4207 <span>add to cart</span> 4208 </button> 4209 </div> 4210 </div> 4211 4212 </div> 4213 </div> 4214 </div> 4215 4216 </div> 4217 </div> 4218 <div id="backgroundPopup"></div> 4219 4220 4221 4222 <input 4223 data-index="1" 4224 type="hidden" 4225 id="properties-delivery-date" 4226 name="properties[Delivery Date]" 4227 value="-" 4228 > 4229 <input 4230 data-index="2" 4231 type="hidden" 4232 id="properties-delivery-time" 4233 name="properties[Delivery Time]" 4234 value="-" 4235 > 4236 <input 4237 data-index="4" 4238 type="hidden" 4239 id="properties-nama-penerima" 4240 name="properties[Nama Penerima]" 4241 value="-" 4242 > 4243 <input 4244 data-index="5" 4245 type="hidden" 4246 id="properties-alamat-penerima" 4247 name="properties[Alamat Penerima]" 4248 value="-" 4249 > 4250 <input 4251 data-index="6" 4252 type="hidden" 4253 id="properties-kodepos" 4254 name="properties[Kodepos]" 4255 value="-" 4256 > 4257 <input data-index="7" type="hidden" id="properties-telepon-penerima" name="properties[Telepon Penerima]"> 4258 4259 4260 <input 4261 data-index="8" 4262 type="hidden" 4263 id="properties-kartu-nama-penerima" 4264 name="properties[Kartu Nama Penerima]" 4265 value="-" 4266 > 4267 4268 <textarea 4269 data-index="9" 4270 type="hidden" 4271 id="properties-kartu-pesan" 4272 name="properties[Kartu Pesan]" 4273 style="display: none" 4274 >-</textarea> 4275 4276 4277 4278 <input 4279 data-index="10" 4280 type="hidden" 4281 id="properties-kartu-nama-pengirim" 4282 name="properties[Kartu Nama Pengirim]" 4283 value="-" 4284 > 4285 4286 <!-- Additional Shipping --> 4287 <input type="hidden" id="properties-kota-pengiriman-province" name="properties[Province]"> 4288 <input 4289 type="hidden" 4290 id="properties-kota-pengiriman-country" 4291 name="properties[Country]" 4292 value="Indonesia" 4293 > 4294 <input type="hidden" id="properties-shipping" name="properties[Shipping]"> 4295 4296 <input type="hidden" id="properties-time" name="properties[Time]"> 4297 <input type="hidden" id="properties-card" name="properties[Card]"> 4298 <input type="hidden" id="properties-addons" name="properties[Addons]"> 4299 4300 <input 4301 type="hidden" 4302 id="properties-company" 4303 name="properties[Company]" 4304 value="" 4305 > 4306
4306<script> 4307 4308 $(document).ready(function(){ 4309 4310 var text_max_papan1=150; 4311 var msg_text_papan1=""; 4312 $('#kartu-ucapan-ucapan').keyup(function(){ 4313 var text_length_papan1=$('#kartu-ucapan-ucapan').val().length; 4314 var msg_text_papan1=$('#kartu-ucapan-ucapan').val(); 4315 }); 4316 4317 var notes_papan1 = [ 4318 4319 [0,"Happy Wedding (nama & nama)."],[1,"Congratulations lovebirds (nama & nama)."],[2,"Selamat berbahagia (nama & nama)."],[3,"Selamat menempuh hidup baru (nama & nama)."] 4320 4321 ]; 4322 $('#show_note_papan1').click(function(event){ 4323 event.preventDefault(); 4324 var idx_papan1=parseInt($('#note_id_papan1').val()); 4325 if(isNaN(idx_papan1)){ 4326 idx_papan1=0; 4327 }else{ 4328 idx_papan1++; 4329 idx_papan1=idx_papan1%notes_papan1.length; 4330 } 4331 var note_papan1=notes_papan1[idx_papan1][1]; 4332 $('#note_id_papan1').val(idx_papan1); 4333 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan1); 4334 $('#msgDelivery').val(note_papan1); 4335 4336 var text_length_papan1=$('#kartu-ucapan-papan').val().length; 4337 var idx_2_papan1=parseInt($('#note_btn_id_papan1').val()); 4338 if(isNaN(idx_2_papan1)){ 4339 idx_2_papan1=0; 4340 }else{ 4341 idx_2_papan1++; 4342 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4343 } 4344 $('#note_btn_id_papan1').val(idx_2_papan1); 4345 //var note_btn=note_btn_text[idx_2][1]; 4346 //$('#note_btn').text(note_btn); 4347 }); 4348 4349 var text_max_papan2=150; 4350 var msg_text_papan2=""; 4351 $('#kartu-ucapan-ucapan').keyup(function(){ 4352 var text_length_papan2=$('#kartu-ucapan-ucapan').val().length; 4353 var msg_text_papan2=$('#kartu-ucapan-ucapan').val(); 4354 }); 4355 4356 var notes_papan2 = [ 4357 4358 [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)."] 4359 4360 ]; 4361 $('#show_note_papan2').click(function(event){ 4362 event.preventDefault(); 4363 var idx_papan2=parseInt($('#note_id_papan2').val()); 4364 if(isNaN(idx_papan2)){ 4365 idx_papan2=0; 4366 }else{ 4367 idx_papan2++; 4368 idx_papan2=idx_papan2%notes_papan2.length; 4369 } 4370 var note_papan2=notes_papan2[idx_papan2][1]; 4371 $('#note_id_papan2').val(idx_papan2); 4372 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan2); 4373 $('#msgDelivery').val(note_papan2); 4374 var text_length_papan2=$('#kartu-ucapan-papan').val().length; 4375 var idx_2_papan2=parseInt($('#note_btn_id_papan2').val()); 4376 if(isNaN(idx_2_papan2)){ 4377 idx_2_papan2=0; 4378 }else{ 4379 idx_2_papan2++; 4380 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4381 } 4382 $('#note_btn_id_papan2').val(idx_2_papan2); 4383 //var note_btn=note_btn_text[idx_2][1]; 4384 //$('#note_btn').text(note_btn); 4385 }); 4386 4387 var text_max_papan3=150; 4388 var msg_text_papan3=""; 4389 $('#kartu-ucapan-ucapan').keyup(function(){ 4390 var text_length_papan3=$('#kartu-ucapan-ucapan').val().length; 4391 var msg_text_papan3=$('#kartu-ucapan-ucapan').val(); 4392 }); 4393 4394 var notes_papan3 = [ 4395 4396 [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)."] 4397 4398 ]; 4399 $('#show_note_papan3').click(function(event){ 4400 event.preventDefault(); 4401 var idx_papan3=parseInt($('#note_id_papan3').val()); 4402 if(isNaN(idx_papan3)){ 4403 idx_papan3=0; 4404 }else{ 4405 idx_papan3++; 4406 idx_papan3=idx_papan3%notes_papan3.length; 4407 } 4408 var note_papan3=notes_papan3[idx_papan3][1]; 4409 $('#note_id_papan3').val(idx_papan3); 4410 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan3); 4411 $('#msgDelivery').val(note_papan3);
4412 var text_length_papan3=$('#kartu-ucapan-papan').val().length; 4413 var idx_2_papan3=parseInt($('#note_btn_id_papan3').val()); 4414 if(isNaN(idx_2_papan3)){ 4415 idx_2_papan3=0; 4416 }else{ 4417 idx_2_papan3++; 4418 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4419 } 4420 $('#note_btn_id_papan3').val(idx_2_papan3); 4421 //var note_btn=note_btn_text[idx_2][1]; 4422 //$('#note_btn').text(note_btn); 4423 }); 4424 4425 var text_max_papan4=150; 4426 var msg_text_papan4=""; 4427 $('#kartu-ucapan-ucapan').keyup(function(){ 4428 var text_length_papan4=$('#kartu-ucapan-ucapan').val().length; 4429 var msg_text_papan4=$('#kartu-ucapan-ucapan').val(); 4430 }); 4431 4432 $('#show_note_papan4').click(function(event){ 4433 var notes_papan4 = [ 4434 [0,"Hereâs to youâsteadier, stronger and better every day."], 4435 [1,"Warmest wishes for a speedy recovery!"], 4436 [2,"Dengan ucapan terhangat, semoga lekas membaik dan semakin pulih setiap harinya ya."], 4437 [3,"Semoga lekas sembuh untuk kembali beraktivitas dan berkarya."] 4438 ]; 4439 event.preventDefault(); 4440 var idx_papan4=parseInt($('#note_id_papan4').val()); 4441 console.log(idx_papan4, 'idx_papan4') 4442 if(isNaN(idx_papan4)){ 4443 idx_papan4=0; 4444 }else{ 4445 idx_papan4++; 4446 idx_papan4=idx_papan4%notes_papan4.length; 4447 } 4448 var note_papan4=notes_papan4[idx_papan4][1]; 4449 $('#note_id_papan4').val(idx_papan4); 4450 $('#kartu-ucapan-papan, #properties-kartu-ucapan, #properties-kartu-pesan').val(note_papan4); 4451 console.log(note_papan4, 'note_papan4') 4452 var text_length_papan4=$('#kartu-ucapan-papan').val().length; 4453 var idx_2_papan4=parseInt($('#note_btn_id_papan4').val()); 4454 if(isNaN(idx_2_papan4)){ 4455 idx_2_papan4=0; 4456 }else{ 4457 idx_2_papan4++; 4458 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4459 } 4460 $('#note_btn_id_papan4').val(idx_2_papan4); 4461 }); 4462 4463 /* 4464 $("#jenisPapan").change(function(){ 4465 $( "select option:selected").each(function(){ 4466 if($(this).attr("value")=="Happy Wedding"){ 4467 $("#suggest-messages a").hide(); 4468 $("#show_note_papan1").show(); 4469 $("#kartu-ucapan-papan").val(""); 4470 } 4471 if($(this).attr("value")=="Congratulations"){ 4472 $("#suggest-messages a").hide(); 4473 $("#show_note_papan2").show(); 4474 $("#kartu-ucapan-papan").val(""); 4475 } 4476 if($(this).attr("value")=="Duka Cita"){ 4477 $("#suggest-messages a").hide(); 4478 $("#show_note_papan3").show(); 4479 $("#kartu-ucapan-papan").val(""); 4480 } 4481 }); 4482 }).change(); 4483 */ 4484 4485 4486 4487 4488 4489 $(".variant-metafield").each(function(){ 4490 const t = $(this) 4491 const id = t.attr("id") 4492 const target = $(`[data-select=${id}]`) 4493 t.on('select2:selecting', function(e) { 4494 const data = e.params.args.data 4495 target.val(data.text) 4496 }); 4497 }) 4498 }) 4499 </script>
4499 4500 4501 <div id="popupCart"> 4502 <div class="container"> 4503 <div class="wrapperPopupCart"> 4504 <div class="headerPopupCart"> 4505 <div class="d-flex pl-5 pr-5 p-4"> 4506 <svg xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="16" height="12" viewBox="0 0 16 12" fill="none"> 4507 <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"/> 4508 </svg> 4509 <span>item added to your cart</span> 4510 </div> 4511 <a class="close-purchase-popup"> 4512 <svg xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="18" height="18" viewBox="0 0 18 18" fill="none"> 4513 <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"/> 4514 </svg> 4515 </a> 4516 4517 </div> 4518 <div class="contentPopupCart"> 4519 <div class="pl-5 pr-5 p-4"> 4520 <div class="itemContent row m-0 justify-content-between"> 4521 <div class="col-2 align-self-center"> 4522 4523 <img 4524 class="d-block" 4525 width="80" 4526 src="https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_80x.jpg?v=1695788426" 4527 > 4528 </div> 4529 <div class="col-10 align-self-center"> 4530 <div class="row pl-3"> 4531 <div class="col-12 col-lg-7"> 4532 <span class="titleCartPopup text-uppercase">WSO138: Link Resmi Situs Slotgacor Gampang Wede Terpercaya</span> 4533 </div> 4534 <div class="d-flex justify-content-end col-12 col-lg-5"> 4535 <span class="deleteCartPopup hide">Delete</span> 4536 <span class="lineCartPrice align-self-center">Rp 5.000</span> 4537 </div> 4538 </div> 4539 </div> 4540 </div> 4541 <div class="itemProperties"> 4542 4543 <div class="propDeliver"> 4544 <h4>delivery option detail</h4> 4545 <p> 4546 <span>delivery city</span> 4547 <span class="propDeliveryCity">jakarta</span> 4548 </p> 4549 <p> 4550 <span>delivery date</span> 4551 <span class="propDeliveryDate">24/03/2025</span> 4552 </p> 4553 <p> 4554 <span>delivery time</span> 4555 <span class="propDeliveryTime">Afternoon | 13:00 - 18:00</span> 4556 </p> 4557 </div> 4558 <div class="propAddress"> 4559 <h4>delivery option detail</h4> 4560 <p> 4561 <span>RECIPIENT NAME</span> 4562 <span class="propDeliveryName">jane doe</span> 4563 </p> 4564 <p> 4565 <span>delivery address</span> 4566 <span class="propDeliveryAddress" 4567 >Jl. Gatot Subroto No. 25, RT.2/RW.4, Kuningan Barat, Kecamatan Mampang Prapatan, Kota Jakarta 4568 Selatan, Daerah Khusus Ibukota Jakarta 12710, Indonesia</span 4569 > 4570 </p> 4571 <p> 4572 <span>recipient phone number</span> 4573 <span class="propDeliveryPhone">(+62) 812-3456-7890</span> 4574 </p> 4575 <p> 4576 <span>PROVINCE</span> 4577 <span class="propDeliveryProv">Jakarta</span> 4578 </p> 4579 <p> 4580 <span>postal code</span> 4581 <span class="propDeliveryZip">12710</span> 4582 </p> 4583 4584 4585 </div> 4586 4587 </div> 4588 <div class="itemAddonCart"> 4589 <div class="toggleAddonCart d-flex justify-content-between"> 4590 <h4>add-ons (0)</h4> 4591 <svg xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="5" height="9" viewBox="0 0 5 9" fill="none"> 4592 <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"/> 4593 </svg> 4594 </div> 4595 <div class="wrapperItemAddonCart"></div> 4596 </div> 4597 4598 </div> 4599 </div>
4600 <div class="footerPopupCart"> 4601 <div class="row m-0 pl-5 pr-5 p-4"> 4602 <a class="btn btnViewCart w-100 text-uppercase text-center" href="/cart">View Cart</a> 4603 <a class="btn btnViewCheckout w-100 text-uppercase text-center" href="/checkout"><span>Checkout</span></a> 4604 <a class="btnContinueShopping w-100 text-center" href="/">Continue shopping</a> 4605 </div> 4606 </div> 4607 </div> 4608 </div> 4609 </div> 4610 4611 4612
4612<script> 4613 const shareButton = document.getElementById('shareButton'); 4614 4615 shareButton.addEventListener('click', () => { 4616 if (navigator.share) { 4617 navigator.share({ 4618 title: "WSO138: Link Resmi Situs Slotgacor Gampang Wede Terpercaya", 4619 url: "/products/blossom-shine", 4620 text: 'Check out this page!' 4621 }) 4622 .then(() => console.log('Successful share')) 4623 .catch((error) => console.log('Error sharing', error)); 4624 } else { 4625 alert('Web Share API is not supported in this browser.'); 4626 } 4627 }); 4628 4629 // Inventory validation function 4630 function checkInventoryStatus() { 4631 const productSelect = document.getElementById('productSelect'); 4632 const purchaseButton = document.querySelector('#personalizeBtn button'); 4633 4634 if (!productSelect || !purchaseButton) return; 4635 4636 const selectedVariantId = productSelect.value; 4637 4638 // Get variant data from Shopify 4639 fetch(`/products/blossom-shine.js`) 4640 .then(response => response.json()) 4641 .then(product => { 4642 const selectedVariant = product.variants.find(variant => variant.id == selectedVariantId); 4643 4644 if (selectedVariant) { 4645 const isOutOfStock = selectedVariant.inventory_quantity <= 0 && 4646 selectedVariant.inventory_management === 'shopify' && 4647 selectedVariant.inventory_policy !== 'continue'; 4648 4649 if (isOutOfStock) { 4650 purchaseButton.disabled = true; 4651 purchaseButton.textContent = 'Out of Stock'; 4652 purchaseButton.setAttribute('data-out-of-stock', 'true'); 4653 purchaseButton.style.backgroundColor = '#cccccc'; 4654 purchaseButton.style.cursor = 'not-allowed'; 4655 } else { 4656 // Check if button was disabled due to other conditions 4657 4658 4659 4660 4661 4662 4663 4664 4665 const isOtherDisabled = false || true || false; 4666 4667 if (!isOtherDisabled) { 4668 purchaseButton.disabled = false; 4669 purchaseButton.textContent = 'customize your flower board'; 4670 purchaseButton.removeAttribute('data-out-of-stock'); 4671 purchaseButton.style.backgroundColor = ''; 4672 purchaseButton.style.cursor = ''; 4673 } 4674 } 4675 } 4676 }) 4677 .catch(error => { 4678 console.error('Error checking inventory:', error); 4679 }); 4680 } 4681 4682 // Check inventory on page load 4683 document.addEventListener('DOMContentLoaded', function() { 4684 checkInventoryStatus(); 4685 4686 // Listen for variant changes 4687 const productSelect = document.getElementById('productSelect'); 4688 if (productSelect) { 4689 productSelect.addEventListener('change', checkInventoryStatus); 4690 } 4691 }); 4692 4693 // Prevent form submission if out of stock 4694 document.addEventListener('click', function(e) { 4695 if (e.target.matches('button[data-out-of-stock="true"]')) { 4696 e.preventDefault(); 4697 e.stopPropagation(); 4698 alert('This product is currently out of stock and cannot be purchased.'); 4699 return false; 4700 } 4701 }); 4702 </script>
4702 4703 4704 4705 4706 </div> 4707 4708 </div> 4709 </div> 4710 </div> 4711 </div> 4712 <div id="product-bottom"> 4713 4714 <div class="product-description rte bg-card col-12 py-3 px-0 m-0" itemprop="description"> 4715 <div class="container"> 4716 4717 4718 4719 4720 4721 <div class="short-desc-mobile d-block d-lg-none mb-3"> 4722 <div class="short-desc"> 4723 <ul> 4724 <li><strong>WSO138 memberikan link resmi situs slotgacor gampang wede terpercaya untuk semua pemain Indonesia yang akses login alternatif dan daftar akun baru sekarang.</strong></li> 4725 </div> 4726 <label class="more-mobile">Show More â</label> 4727 </div> 4728 4729 <style> 4730 .animated-title { 4731 text-align: center; 4732 font-weight: bold; 4733 color: #079c02; 4734 font-size: 28px; 4735 position: relative; 4736 animation: glow 2s infinite alternate, moveUpDown 3s infinite; 4737 } 4738 4739 /* Efek glow / bercahaya hijau */ 4740 @keyframes glow { 4741 0% { text-shadow: 0 0 5px #079c02; color: #079c02; } 4742 50% { text-shadow: 0 0 20px #00ff55; color: #12d12b; } 4743 100% { text-shadow: 0 0 10px #1bff00; color: #079c02; } 4744 } 4745 4746 /* Efek gerakan naik turun */ 4747 @keyframes moveUpDown { 4748 0% { transform: translateY(0px); } 4749 50% { transform: translateY(-5px); } 4750 100% { transform: translateY(0px); } 4751 } 4752 </style> 4753 4754
4754<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/shopify-cartjs/1.1.0/cart.min.js"></script>
4754 4755
4755<script> 4756 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}); 4757 4758 const productType = $("[data-product-type]").data("product-type") 4759 const productDate = Date.parse(new Date()) 4760 4761 const shop = 'outerbloom1.myshopify.com' 4762 const host = 'https://app.asmaraku.com' 4763 // const host = 'http://localhost:5001' 4764 4765 const gsheet = "https://script.google.com/macros/s/AKfycbyqa6mPD6lVjU6hiHr12J8URZ2aJBGyxBsGQ0QtEIDari-rBk_9vSOITjSSmUXL1NwxEg/exec" 4766 4767 const qrID = "041025" + randomString(4, 'aAbCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ') 4768 4769 $("#properties-time").val(new Date().getTime()) 4770 4771 const isIOS = /iPhone|iPad|iPod/i.test(navigator.userAgent); 4772 4773 if(!isIOS) { 4774 $("#full-date").attr("type", "button") 4775 } 4776 4777 let dateTime = new Date(); 4778 let today = dateTime.getDate(); 4779 let day = dateTime.getDay(); 4780 let hour = dateTime.getHours(); 4781 let min = dateTime.getMinutes(); 4782 let timeOfDay = hour + (min / 100); 4783 4784 async function getFetch(url) { 4785 const response = await fetch(url); 4786 let status = false 4787 let result 4788 if(response.ok) { 4789 status = true 4790 result = await response.json(); 4791 } 4792 return { 4793 status, 4794 data: result 4795 } 4796 } 4797 4798 4799 4800 function setCookie(cname, cvalue, exMins) { 4801 var d = new Date(); 4802 d.setTime(d.getTime() + (exMins*60*1000)); 4803 var expires = "expires="+d.toUTCString(); 4804 document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; 4805 } 4806 4807 function getCookie(cname) { 4808 let name = cname + "="; 4809 let decodedCookie = decodeURIComponent(document.cookie); 4810 let ca = decodedCookie.split(';'); 4811 for(let i = 0; i <ca.length; i++) { 4812 let c = ca[i]; 4813 while (c.charAt(0) == ' ') { 4814 c = c.substring(1); 4815 } 4816 if (c.indexOf(name) == 0) { 4817 return c.substring(name.length, c.length); 4818 } 4819 } 4820 return ""; 4821 } 4822 4823 async function renderDate() { 4824 let dataDate = await getFetch(`${host}/api/shipping/date?domain=${shop}&productId=8144957800663&v=${Date.now()}`); 4825 console.log(dataDate, 'renderDate') 4826 const data = dataDate?.data 4827 const date = data.date 4828 const time = data.time 4829 4830 console.log(date, 'DATE') 4831 4832 const weekday = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]; 4833 const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; 4834 const htmlDate = [] 4835 for(let i = 0;i < date.length;i++) { 4836 const full = date[i].date 4837 const d = new Date(date[i].date); 4838 const day = weekday[d.getDay()]; 4839 const dt = d.getDate(); 4840 const mt = monthly[d.getMonth()]; 4841 const yr = d.getFullYear(); 4842 const isDate = Boolean(date[i].isEnabled) 4843 const cutoffpagi = date[i].cutoff?.pagi 4844 const cutoffsiang = date[i].cutoff?.siang 4845 const cutoffMalam = date[i].cutoff?.Malam 4846 var html = ` 4847 <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'}> 4848 ${dt === today ? 4849 `Today<span>${dt < 10 ? '0' + dt : dt}</span>` : 4850 `${day}<span>${dt < 10 ? '0' + dt : dt}</span>` 4851 } 4852 </button> 4853 ` 4854 htmlDate.push(html) 4855 } 4856 const htmlTime = [] 4857 for(var i = 0;i < time.length;i++) { 4858 const timeText = time[i].text 4859 const timeTime = time[i].time 4860 const timeEnabled = time[i].isEnabled 4861 var html = ` 4862 <button class="time-single calendarbutton2 btn steps-btn" data-time="${timeText}" ${timeEnabled ? '' : 'disabled'}>${timeText}<br/>${timeTime}</button> 4863 ` 4864 htmlTime.push(html) 4865 } 4866 const deliveryDate = document.getElementById("deliveryDate"); 4867 if(deliveryDate) { 4868 deliveryDate.insertAdjacentHTML("afterbegin", htmlDate.join('')) 4869 $("#deliveryTime").html(htmlTime) 4870 if(productType !== '') { 4871 console.log("clarity event " + productType + ' calendaring') 4872 window.clarity("event", `${productType} calendaringSchedule`) 4873 // window.clarity("set", productType, `calendaringSchedule - ${productDate}`) 4874 } 4875 } 4876 } 4877 4878 async function getProvince(city) { 4879 let { data: { province } } = await getFetch(`${host}/api/shipping/address/province?city=${city}`); 4880 console.log(province, 'province') 4881 $("#province").val(province) 4882 } 4883 4884 async function renderAddress() { 4885 let current 4886 if(getCookie("location_delivery")){ 4887 current = getCookie("location_delivery").charAt(0).toUpperCase() + getCookie("location_delivery").slice(1) 4888 } 4889 let address = await getFetch(`${host}/api/shipping/address?domain=${shop}&productId=8144957800663`); 4890 console.log(address) 4891 const data = address?.data?.city 4892 const htmlAddress = [] 4893 const grouping = []
4894 for(let i = 0;i < data?.length;i++) { 4895 if(data[i]){ 4896 if(data[i]?.group) { 4897 grouping.push(data[i].group) 4898 } 4899 const price = rupiah.format(data[i]?.rate) 4900 let promo = '(Promo Free Delivery)' 4901 if(data[i]?.name === 'Jakarta - PickUp ASHTA'){ 4902 promo = '(at SCBD, Ashta)' 4903 } else if(data[i]?.name === 'Jakarta - PickUp ITC'){ 4904 promo = '(at Kuningan, ITC Kuningan)' 4905 } else if(data[i]?.name === 'BSD - PickUp'){ 4906 promo = '(at Goldfinch Gading Serpong)' 4907 } else if(data[i]?.name === 'Kota Lainnya'){ 4908 promo = '' 4909 } 4910 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>`) 4911 } 4912 } 4913 4914 const deliveryCity = document.getElementById("cities"); 4915 if(deliveryCity) { 4916 deliveryCity.insertAdjacentHTML("beforeend", htmlAddress.join('')) 4917 if(!isIOS) { 4918 $(deliveryCity).select2(); 4919 } 4920 } 4921 } 4922 4923 async function renderZip(v, v2, v3) { 4924 const deliveryZip = document.getElementById("zip"); 4925 if(v === '') { 4926 return 4927 } 4928 let dataZip = await getFetch(`${host}/api/shipping/address/zip?city=${v}&city2=${v2}&city3=${v3}`); 4929 let zip = dataZip?.data?.zip 4930 console.log(zip) 4931 let htmlZip = [] 4932 for(let i = 0; i < zip?.length;i++) { 4933 htmlZip.push(`<option value="${zip[i]?.postalCode} - ${zip[i]?.subdistrict}">${zip[i]?.postalCode} - ${zip[i]?.subdistrict} - ${zip[i]?.city}</option>`) 4934 } 4935 deliveryZip.insertAdjacentHTML("beforeend", htmlZip.join('')) 4936 } 4937 4938 renderDate() 4939 renderAddress() 4940 4941 let rupiah = new Intl.NumberFormat('id-ID', { 4942 style: 'currency', 4943 currency: 'IDR', 4944 maximumFractionDigits: 0, 4945 minimumFractionDigits: 0 4946 }); 4947 4948 async function insertCard(data) { 4949 const response = await fetch(`${host}/api/card/new`, { 4950 method: "POST", 4951 headers: { 4952 'Content-Type': 'application/json', 4953 }, 4954 body: data 4955 }) 4956 const result = await response.json() 4957 let rowIndex = result?.data?.tableRange.split("Outerbloom!A1:J")[1] 4958 $("#greetingCard").attr("data-index", rowIndex) 4959 return result 4960 } 4961 4962 async function updateCard(data){ 4963 const rowIndex = $("#greetingCard").data("index") 4964 const response = await fetch(`${host}/api/card/update?rowIndex=${rowIndex}`, { 4965 method: "PUT", 4966 headers: { 4967 'Content-Type': 'application/json', 4968 }, 4969 body: data 4970 }) 4971 return response 4972 } 4973 4974 function bytesToSize(bytes) { 4975 var sizes = ['b', 'kb', 'mb', 'gb', 'tb', 'p']; 4976 for (var i = 0; i < sizes.length; i++) { 4977 if (bytes <= 1024) { 4978 return bytes + ' ' + sizes[i]; 4979 } else { 4980 bytes = parseFloat(bytes / 1024).toFixed(2) 4981 } 4982 } 4983 return bytes + ' P'; 4984 } 4985 4986 async function uploadMedia(uri, type) { 4987 nameq = $("#properties-nama-penerima").val() 4988 dear = $("#properties-kartu-nama-penerima").val() 4989 card = $("[data-properties=ucapan]").val() 4990 sender = $("#properties-kartu-nama-pengirim").val() 4991 photo = $("#properties-photo").val() 4992 video = $("#properties-video").val() 4993 status = "Product" 4994 4995 const name = qrID 4996 let formData = new FormData(); 4997 formData.append("file", uri); 4998 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 4999 method: "POST", 5000 body: formData 5001 }) 5002 const result = await response.json(); 5003 if(result) { 5004 const url = result.url 5005 if(type === 'image/jpeg') { 5006 $("#properties-photo").val(url) 5007 $(".preview-image").show() 5008 $(".remove-image").show() 5009 photo = url 5010 } else { 5011 $("#properties-video").val(url) 5012 $("#label-input-video span").text("Change File") 5013 $(".case-qrcode-preview p").text("Scan here for a secret message") 5014 $(".remove-media").show() 5015 $("#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>`) 5016 $("[for=input-video]").hide() 5017 video = url 5018 } 5019 $(".case-video-preview").show() 5020 $(".steps-card-preview").removeClass("loading") 5021 // updateCard(nameq, dear, card, sender, photo, video, status) 5022 5023 $(".nextBtn").attr("disabled", false) 5024 } 5025 } 5026 5027 function randomString(length, chars) { 5028 var result = ''; 5029 for (var i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))]; 5030 return result; 5031 } 5032 5033 function getNoteCity(fulldate) { 5034 const h_1 = new Date(new Date().setDate(new Date().getDate() + 1)) 5035 const weekday = ["Min","Sen","Sel","Rab","Kam","Jum","Sab"]; 5036 const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; 5037 const d = new Date(h_1); 5038 const day = weekday[d.getDay()]; 5039 const dt = d.getDate(); 5040 const mt = monthly[d.getMonth()]; 5041 const yr = d.getFullYear(); 5042 const p = $("#cities").parent(".form-group") 5043 } 5044 5045 function disabledSameDay() { 5046 let btnFirst = $("#deliveryDate").find("button:first-child") 5047 let getDay = new Date().getDay(); 5048 5049 5050 5051 if(getDay == 1 || getDay == 2 || getDay == 3 || getDay == 4 || getDay == 5){ 5052 if(hour >= 14.00){ 5053 btnFirst.attr("disabled", true) 5054 } 5055 } else if(getDay == 6){ 5056 if(hour >= 16.00){ 5057 btnFirst.attr("disabled", true) 5058 } 5059 } else if(getDay == 0){ 5060 if(hour >= 16.00){ 5061 btnFirst.attr("disabled", true) 5062 } 5063 } 5064 5065 5066 } 5067 5068 function disabledays(date) { 5069 let ymd = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate(); 5070 //if u have to disable a list of day 5071 let removeDays 5072 5073 5074 5075 removeDays = ["2025-2-13", "2025-2-14"]; 5076 5077 if ($.inArray(ymd, removeDays) >= 0) { 5078 return [false]; 5079 } else { 5080 let day = date.getDay(); 5081 if(day == 0 && date.getDate() == 13 && date.getMonth() == 1){ 5082 return [(day == 0), '']; 5083 } 5084 5085 if(day == 0){ 5086 return [(day == 0), '']; 5087 } 5088 5089 5090 return [(day != 0), '']; 5091 } 5092 } 5093 5094 /* Indonesian initialisation for the jQuery UI date picker plugin. */ 5095 /* Written by Deden Fathurahman ([email protected]). */ 5096 ( function( factory ) { 5097 if ( typeof define === "function" && define.amd ) { 5098 5099 // AMD. Register as an anonymous module. 5100 define( [ "../widgets/datepicker" ], factory ); 5101 } else { 5102 5103 // Browser globals 5104 factory( jQuery.datepicker ); 5105 } 5106 }( function( datepicker ) { 5107 5108 datepicker.regional.id = { 5109 closeText: "Tutup", 5110 prevText: "<mundur", 5111 nextText: "maju>", 5112 currentText: "Today", 5113 monthNames: [ "January","February","March","April","May","Juny", 5114 "July","August","September","October","November","December" ], 5115 monthNamesShort: [ "Jan","Feb","Mar","Apr","May","Jun", 5116 "Jul","Agu","Sep","Oct","Nov","Dec" ], 5117 dayNames: [ "Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu" ], 5118 dayNamesShort: [ "Sun","Mon","Tue","Wed","Thu","Fri","Sat" ], 5119 dayNamesMin: [ "Mg","Sn","Sl","Rb","Km","jm","Sb" ], 5120 weekHeader: "Mg", 5121 dateFormat: "D, dd M", 5122 firstDay: 0, 5123 isRTL: false, 5124 showMonthAfterYear: false, 5125 yearSuffix: "" }; 5126 datepicker.setDefaults( datepicker.regional.id ); 5127 5128 return datepicker.regional.id; 5129 5130 } ) ); 5131 5132 function loadPopup() { 5133 $("#backgroundPopup").fadeIn("slow"); 5134 $(".purchasePopup:not(.purchasePopupSpotify)").fadeIn("slow"); 5135 const firstSection = $(".purchasePopup:not(.purchasePopupSpotify) .sectionPurchase").first() 5136 if(firstSection.hasClass("purchasePersonalize")) { 5137 if(productType !== '') { 5138 console.log("clarity event " + productType + ' personalize') 5139 window.clarity("event", `${productType} cardPersonalization`) 5140 // window.clarity("set", productType, `cardPersonalization - ${productDate}`) 5141 } 5142 } else if (firstSection.hasClass("sectionPurchaseBoard")) { 5143 console.log("clarity event " + productType + ' personalizeBoard') 5144 window.clarity("event", `${productType} personalizeBoard`) 5145 // window.clarity("set", productType, `personalizeBoard - ${productDate}`) 5146 } 5147 firstSection.removeClass("hide") 5148 5149 // Auto-trigger addon loading when addon section becomes visible 5150 setTimeout(function() { 5151 const addonSection = $(".purchaseAddon") 5152 if(addonSection.length > 0 && !addonSection.hasClass("hide")) { 5153 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 5154 $("[data-addon=upsell-all]").trigger("click") 5155 } 5156 } 5157 }, 200) 5158 } 5159 5160 function disablePopup() { 5161 $("#backgroundPopup").fadeOut("slow"); 5162 $(".purchasePopup").fadeOut("slow"); 5163 $("#popupCart").fadeOut("slow"); 5164 } 5165
5166 function scrollTo(parent, div, dur) { 5167 $(parent).animate({ 5168 scrollTop: $(div).offset().top 5169 }, dur); 5170 } 5171 5172 function loadPopupPersonalize() { 5173 const div = "#purchaseProduct" 5174 const p = "html, body, .product-meta" 5175 $("p.error").remove() 5176 loadItemOccasion($("[data-occassion]").eq(0), "greeting-card-all") 5177 const isCity = $("#cities[required]") 5178 const isDate = $("#propDeliveryDate[required]") 5179 const isTime = $("#propDeliveryTime[required]") 5180 // loadPopup() 5181 if(isCity.val() !== '' && isDate.val() !== '' && isTime.val() !== '') { 5182 loadPopup() 5183 } 5184 if(isCity.val() == '') { 5185 isCity.parent(".row").append("<p class='error'>Choose delivery city</p>") 5186 scrollTo(p, div, 500) 5187 } 5188 if(isDate.val() == '') { 5189 isDate.parents(".row").append("<p class='error'>Choose delivery date</p>") 5190 scrollTo(p, div, 500) 5191 } 5192 if(isTime.val() == '') { 5193 isTime.parents(".row").append("<p class='error'>Choose delivery time</p>") 5194 scrollTo(p, div, 500) 5195 } 5196 } 5197 5198 function quantityCounter() { 5199 $(document).on("click", ".item-card.selected .q_up", function () { 5200 var C = $(this).attr("data-id"), 5201 S = 5202 parseInt( 5203 $(this) 5204 .siblings(".quantity-cart-" + C) 5205 .val() 5206 ) + 1; 5207 $(this).attr("data-quantity", S), 5208 $(this) 5209 .siblings(".quantity-cart-" + C) 5210 .val(S); 5211 }), 5212 $(document).on("click", ".item-card.selected .q_down", function () { 5213 var C = $(this).attr("data-id"), 5214 S = parseInt( 5215 $(this) 5216 .siblings(".quantity-cart-" + C) 5217 .val() 5218 ); 5219 0 < S && $(this).attr("data-quantity", S - 1), 5220 0 < S && 5221 $(this) 5222 .siblings(".quantity-cart-" + C) 5223 .val(S - 1); 5224 }); 5225 } 5226 5227 quantityCounter() 5228 5229 const itemAddon = $(".item-card").length 5230 const nofree = $(".nofree").length 5231 5232 const upsell = '' 5233 5234 if(nofree === itemAddon) { 5235 // $("#itemAddons").html("<p>No Items available</p>") 5236 } 5237 5238 $("#itemAddons .item-card").each(function(e){ 5239 $("#itemAddons").attr("data-length", e) 5240 }) 5241 5242 $("[data-addon]").click(function(){ 5243 5244 5245 5246 const t = $(this) 5247 5248 const data = t.data("addon") 5249 5250 $("[data-addon]").removeClass("selected") 5251 t.addClass("selected") 5252 $.get(`https://outerbloom.com/collections/${data}/products.json`, function(data, status){ 5253 const products = data.products 5254 const html = [] 5255 for(let i = 0; i < products.length; i++) { 5256 const id = products[i].id 5257 const variantId = products[i].variants[0].id 5258 const img = products[i].images[0].src 5259 let img2 = img.split('.jpg')[0] 5260 const title = products[i].title 5261 const price = products[i].variants[0].price 5262 const tags = products[i].tags 5263 const qty = products[i].variants[0].available 5264 let type_upsell = '' 5265 if(tags.includes('upsell-item-standing')) { 5266 type_upsell = 'standing' 5267 } 5268 console.log(type_upsell) 5269 if(type_upsell !== '') { 5270 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}"> 5271 5272 <div class="card-image"> 5273 <img src="${img2}_150x.jpg" alt="${title}" width="" height="" /> 5274 </div> 5275 <div class="card-meta"> 5276 <h5>${title}</h5> 5277 <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p> 5278 <input id="card-${variantId}" type="hidden" name="" value="${variantId}"> 5279 </div> 5280 <div class="card-qty"> 5281 <a data-quantity="1" type="submit" id="q_down-${variantId}" class="btn-qty-min q_down drawer-cart" data-id="${variantId}"><svg xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="12" height="2" viewBox="0 0 12 2" fill="none"><path d="M0 1.90869V0.908691H12V1.90869H0Z" fill="black"/></svg></a> 5282 <input maxlength="3" min="0" class="btn-qty text-center quantity-cart-${variantId}
5282" value="0" data-price=${price} name="quantity"> 5283 <a data-quantity="1" type="submit" class="btn-qty-plus q_up text-green drawer-cart" data-id="${variantId}"><svg xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="12" height="13" viewBox="0 0 12 13" fill="none"> 5284 <path d="M0 6.87023V5.94715H5.53846V0.408691H6.46154V5.94715H12V6.87023H6.46154V12.4087H5.53846V6.87023H0Z" fill="black"/> 5285 </svg></a> 5286 </div> 5287 </div>` 5288 html.push(body) 5289 } 5290 } 5291 $("#itemAddons .row").html(html.length === 0 ? '<p>No Item available</p>' : html) 5292 $("#itemAddons").attr("data-length", products.length) 5293 // $('#itemAddons')[0].swiper.update(); 5294 }); 5295 }) 5296 5297 async function isAddon(){ 5298 let ids = [] 5299 $("#itemAddons .item-card.selected").each(function(i, e){ 5300 const id = $(this).data("id") 5301 ids.push(id) 5302 }) 5303 console.log(ids) 5304 return ids 5305 } 5306 5307 $("#itemAddons").delegate(".item-card > div:not(.card-qty)", "click", async function(){ 5308 const t = $(this).parent() 5309 const id = t.data("id") 5310 const btn = t.parents(".purchaseAddon").find(".next-purchase-button") 5311 t.toggleClass("selected"); 5312 //$(this).next("input").toggleAttr('name', 'id[]'); 5313 if (t.hasClass('selected')) { 5314 t.find("input").val(1) 5315 t.find("input").attr('name', 'id[]'); 5316 } else { 5317 t.find("input").val(0) 5318 t.find("input").removeAttr('name'); 5319 } 5320 $("#properties-addons").val(addons) 5321 const is = await isAddon() 5322 if(is.length === 0) { 5323 btn.text("continue without add-ons") 5324 return 5325 } 5326 if(is.includes(8835692069079)) { 5327 btn.text("personalize acrylic frame") 5328 } else { 5329 btn.text("Continue") 5330 } 5331 5332 }) 5333 5334 async function myAddon(data) { 5335 const c = $(".addonsPurchase .addons") 5336 let items = [] 5337 5338 const spotifyAddons = $(".spotifyAddons").find("[data-index]") 5339 // if(spotifyAddons.length > 0) { 5340 // $(spotifyAddons).each(function(i, e){ 5341 // const spotifyLink = $(this).find(".spotifyLink").val() 5342 // const spotifySong = $(this).find(".spotifySong").val() 5343 // const spotifyArtist = $(this).find(".spotifyArtist").val() 5344 // const spotifyFotoAddon = $(this).find(".resultPhotoSpotify").val() 5345 // if(spotifyLink !== '') { 5346 // spotifyAddon = `<div class="addon-item" data-id="46067682607319" data-qty="1"> 5347 // <div class="addon-itm-img"> 5348 // <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"/> 5349 // </div> 5350 // <div class="addon-itm-title"> 5351 // <span>[US] Outerbloom Acrylic Frame 4R</span> 5352 // </div> 5353 // <div class="addon-itm-line-total"> 5354 // <span>Rp 99.000</span> 5355 // </div> 5356 // </div> 5357 // <div class="propsAddonSpotify row m-0"> 5358 // <div class="col-12 col-lg-2"></div> 5359 // <div class="col-12 col-lg-10"> 5360 // <p> 5361 // <span>spotify link</span> 5362 // <span class="spotifyLinkAddon">${spotifyLink}</span> 5363 // </p> 5364 // <p> 5365 // <span>uploaded photo</span> 5366 // <span class="spotifyFotoAddon">${spotifyFotoAddon}</span> 5367 // </p> 5368 // <p> 5369 // <span>song / playlist name</span> 5370 // <span class="spotifySongAddon">${spotifySong}</span> 5371 // </p> 5372 // <p> 5373 // <span>artist name</span> 5374 // <span class="spotifyArtistAddon">${spotifyArtist}</span> 5375 // </p> 5376 // </div> 5377 // </div>` 5378 // items.push(spotifyAddon) 5379 // } 5380 // }) 5381 // } 5382 for(let i = 0; i < data.length; i++) { 5383 if(data[i].title !== '[US] Outerbloom Acrylic Frame 4R' ) { 5384 const img = data[i].image 5385 const title = data[i].title
5386 const qty = data[i].qty 5387 const price = data[i].price 5388 const total = Number(qty) * Number(price) 5389 let addons = `<div class="addon-item" data-id="${data[i].id}" data-qty="${qty}"> 5390 <div class="addon-itm-img"> 5391 <img src="${img}" alt="" width="70"/> 5392 </div> 5393 <div class="addon-itm-title"> 5394 <span>${title}</span> 5395 </div> 5396 <div class="addon-itm-line-price"> 5397 <span>${rupiah.format(price)}</span> 5398 ${data[i].title == '[US] Outerbloom Acrylic Frame 4R' ? '' : `<span>x${qty}</span>`} 5399 </div> 5400 <div class="addon-itm-line-total"> 5401 <span>${rupiah.format(total)}</span> 5402 </div> 5403 </div>` 5404 items.push(addons) 5405 } 5406 } 5407 c.html(items) 5408 const parent = $(".purchaseAddon") 5409 const next = parent.next(".sectionPurchase") 5410 parent.addClass("hide") 5411 next.removeClass("hide") 5412 // if(items2.length === 0) return $("#popupCart").addClass("no-addon-cart") 5413 // $(".itemAddonCart").find("h4").text(`add-ons (${items2.length})`) 5414 } 5415 5416 async function listAddon() { 5417 const data = $("#itemAddons").find(".selected") 5418 let ids = [] 5419 $(data).each(function(){ 5420 const id = $(this).data("variant") 5421 const image = $(this).find(".card-image img").attr("src") 5422 const title = $(this).find(".card-meta h5").text() 5423 const qty = $(this).find(".card-qty input").val() 5424 const price = $(this).find(".card-qty input").data("price") 5425 ids.push({ 5426 id: Number(id), 5427 image, 5428 title, 5429 qty, 5430 price 5431 }) 5432 }) 5433 myAddon(ids) 5434 } 5435 5436 async function customSpotify(idx, length, type){ 5437 let isCard = false 5438 5439 let p = $(".purchasePopupSpotify") 5440 const preLink = $(".spotifyLinkFirst").val() 5441 $("[data-index]").hide() 5442 p.find(".headerPurchase h3").text(`personalize spotify photo print${length > 1 ? ` - ${idx}` : ''}`) 5443 p.find(".regulerAddons, .purchase-button").hide() 5444 p.find(".spotifyAddons").show() 5445 5446 const data = await trackUrl(preLink) 5447 5448 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://mobile.wso138wede-amp.org/logo-wso138.png" 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><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://mobile.wso138wede-amp.org/logo-wso138.png><path d="M14.5799 7.41992L2.32992 7.41992L7.57992 12.6699L6.91992 13.4199L0.419922 6.91992L6.91992 0.419922L7.57992 1.16992L2.32992 6.41992L14.5799 6.41992V7.41992Z"fill=black /></svg> <span>Back</span></button><button data-type="${isCard ? 'card' : ''}" ${isCard ? '' : 'id=addtocart-card'} class="text-uppercase btn w-100${type == 'addon' && idx == length ? ' finished' : ' no-addon'}" disabled>${isCard ? 'Continue Personalizing' : 'add to cart'}</button></div></div></div><div class="col-12 col-lg-6 columnRight"><div class=frame-spotify><div class=frameImage><div class=frameImageUploaded><svg xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="13" height="11" viewB
5450ox="0 0 13 11" fill="none"> 5451 <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"/> 5452 </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="https://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>` 5453 // console.log(html) 5454 5455 $(".spotifyAddons").append(html) 5456 5457 $(`[data-index=${idx}]`).show() 5458 5459 if (preLink !== '') { 5460 $(".btn-action .btn").attr("disabled", false) 5461 } else { 5462 $(".btn-action .btn").attr("disabled", true) 5463 } 5464 5465 return html 5466 5467 } 5468 5469 $(".spotifyLinkFirst").keyup(async function(){ 5470 const v = $(this).val() 5471 if(v.includes('spotify:user:spotify')) { 5472 const correct = v.split('user:spotify:')[1] 5473 console.log(correct, 'BNER') 5474 $(this).val(correct) 5475 return 5476 } 5477 if(v.includes("spotify:") || v.includes("https://open.spotify.com/")){ 5478 const data = await trackUrl(v) 5479 if(!data || !data.status) { 5480 $(this).parent().addClass("error") 5481 // $(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>`) 5482 $("#personalizeBtnSpotify .btn").attr("disabled", true) 5483 return 5484 } 5485 $(this).parent().removeClass("error") 5486 // $(this).parent().remove("txt-error") 5487 $("#personalizeBtnSpotify .btn").attr("disabled", false) 5488 } else { 5489 $("#personalizeBtnSpotify .btn").attr("disabled", true) 5490 } 5491 }) 5492 5493 $(".purchaseAddon").delegate(".next-addon", "click", function(){ 5494 const parent = $(this).parents(".purchaseAddon") 5495 const next = parent.next(".sectionPurchase") 5496 if(next.hasClass("purchaseAddress")) { 5497 if(productType !== '') { 5498 console.log("clarity event " + productType + ' purchaseDelivery') 5499 window.clarity("event", `${productType} purchaseDelivery`) 5500 // window.clarity("set", productType, `purchaseDelivery - ${productDate}`) 5501 } 5502 } 5503 const data = $("#itemAddons").find(".selected") 5504 const length = $(".quantity-cart-46067682607319").val() 5505 const checked = data.length; 5506 if(checked > 0) { 5507 if(length > 0) { 5508 $(".purchaseAddon").addClass("purchaseAddonSpotify") 5509 customSpotify(1, length, 'addon') 5510 } else { 5511 listAddon() 5512 } 5513 } else { 5514 parent.addClass("hide") 5515 next.removeClass("hide") 5516 } 5517 }) 5518 5519 $("#personalizeBtnSpotify .btn").click(async function(){ 5520 const isCity = $("#cities[required]") 5521 const isDate = $("#propDeliveryDate[required]") 5522 if((isDate.length > 0 && isCity.length > 0) && (isCity.val() === '' || isDate.val() === '')) { 5523 alert('Please choose Delivery City & Delivery Date') 5524 return 5525 } 5526 const data = await customSpotify(1, 1, 'product') 5527 if(data) { 5528 $("#backgroundPopup").fadeIn("slow"); 5529 $(".purchasePopupSpotify").fadeIn("slow"); 5530 5531 if(productType !== '') { 5532 console.log("clarity event " + productType + ' spotify') 5533 window.clarity("event", `${productType} spotify`) 5534 // window.clarity("set", productType, `purchaseDelivery - ${productDate}`) 5535 } 5536 } 5537 }) 5538 5539 function formatBytes(bytes, decimals = 2) { 5540 if (!+bytes) return '0 Bytes' 5541
5542 const k = 1024 5543 const dm = decimals < 0 ? 0 : decimals 5544 const sizes = ['B', 'KB', 'MB'] 5545 5546 const i = Math.floor(Math.log(bytes) / Math.log(k)) 5547 5548 return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}` 5549 } 5550 5551 async function trackUrl(link){ 5552 try { 5553 let trackId = link.split('/').pop().split('?')[0]; 5554 let type = '' 5555 if(link.includes("spotify:")) { 5556 const uri = link.split('spotify:')[1] 5557 trackId = uri.split(':')[1] 5558 type = uri.split(':')[0] + 's' 5559 } else { 5560 if(link.match('track')){ 5561 type = 'tracks' 5562 } else if(link.match('playlist')) { 5563 type = 'playlists' 5564 } else if(link.match('artist')) { 5565 type = 'artists' 5566 } else if(link.match('album')) { 5567 type = 'albums' 5568 } 5569 } 5570 console.log(`${host}/api/spotify/${type}/${trackId}`) 5571 const data = await getFetch(`${host}/api/spotify/${type}/${trackId}`) 5572 console.log(data, 'DATA') 5573 const song = data?.data?.name 5574 const artist = data?.data?.artist 5575 return { 5576 song, artist, type, trackId, status: data.status 5577 } 5578 } catch(err) { 5579 console.log(err) 5580 } 5581 } 5582 5583 $(".spotifyAddons").delegate(".uploadPhotoSpotify", "change", async function(){ 5584 const parent = $(this).parents("[data-index]") 5585 const preview = parent.find(".previewImage") 5586 const file = $(this)[0].files[0]; 5587 if (file) { 5588 const reader = new FileReader(); 5589 reader.onload = async function(e) { 5590 parent.find(".uploadResult label").hide() 5591 parent.find(".uploadedResult").remove() 5592 parent.find(".uploadResult").append(`<div class="uploadedResult d-flex" style="justify-content: space-between"> 5593 <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> 5594 <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;">
5594<svg fill="none" height="11" viewBox="0 0 10 11" width="10" xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png"> 5595 <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 /> 5596 </svg> 5597 </span></div></div>`) 5598 parent.find(".frameImageUploaded svg").hide() 5599 parent.find(".frameImage").addClass("uploaded") 5600 preview.attr("src", e.target.result); 5601 preview.show(); 5602 let formData = new FormData(); 5603 formData.append("file", file); 5604 const response = await fetch(`${host}/api/upload?name=${file.name}&type=image/jpeg&r=${Date.parse(new Date)}`, { 5605 method: "POST", 5606 body: formData 5607 }) 5608 const result = await response.json(); 5609 if(result){ 5610 parent.find(".resultPhotoSpotify").val(result.url) 5611 } 5612 } 5613 5614 reader.readAsDataURL(file); 5615 } else { 5616 preview.hide(); 5617 } 5618 }); 5619 5620 $(".spotifyAddons").delegate(".uploadResult", "click", function(){ 5621 $(this).next("input[type=file]").trigger("click") 5622 }) 5623 5624 $(".spotifyAddons").delegate(".changeUpload", "click", function(){ 5625 $(this).parents("input[type=file]").trigger("click") 5626 }) 5627 5628 $(".spotifyAddons").delegate(".removeUpload", "click", function(){ 5629 const parent = $(this).parents("[data-index]") 5630 parent.find(".uploadPhotoSpotify").val("") 5631 parent.find(".uploadResult label").show() 5632 parent.find(".uploadedResult").remove() 5633 parent.find(".frameImageUploaded svg").show() 5634 parent.find(".previewImage").hide() 5635 parent.find(".frameImage").removeClass("uploaded") 5636 }) 5637 5638 $(".spotifyAddons").delegate("label.checkbox", "click", function(){ 5639 const parent = $(this).parents("[data-index]") 5640 parent.toggleClass("checked") 5641 }) 5642 5643 $(".spotifyAddons").delegate(".spotifyLink", "change", async function(){ 5644 const parent = $(this).parents("[data-index]") 5645 const link = $(this).val() 5646 const data = await trackUrl(link) 5647 5648 console.log(data) 5649 5650 if(data.song) { 5651 parent.find(".spotifySong").val(data.song) 5652 parent.find(".spotifyData").find("h3").text(data.song) 5653 } 5654 if(data.artist) { 5655 parent.find(".spotifyArtist").val(data.artist) 5656 parent.find(".spotifyData").find("p").text(data.artist) 5657 } 5658 parent.find(".spotifyCode img").attr("src", `https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:${data.type.slice(0, -1)}:${data.trackId}`) 5659 // https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:track:1er51HCEBhIAtoEemKuC3M 5660 if (data.status === true) { 5661 parent.find(".btn-action .btn").attr("disabled", false) 5662 } else { 5663 parent.find(".btn-action .btn").attr("disabled", true) 5664 } 5665 }) 5666
5667 $(".spotifyAddons").delegate(".spotifySong", "keyup", async function(){ 5668 const parent = $(this).parents("[data-index]") 5669 const v = $(this).val() 5670 parent.find(".spotifyData h3").text(v) 5671 }) 5672 5673 $(".spotifyAddons").delegate(".spotifyArtist", "keyup", async function(){ 5674 const parent = $(this).parents("[data-index]") 5675 const v = $(this).val() 5676 parent.find(".spotifyData p").text(v) 5677 }) 5678 5679 $(".spotifyAddons").delegate(".btn-action .btn:not(.no-addon)", "click", async function(){ 5680 const parent = $(this).parents("[data-index]") 5681 const length = parent.data("length") 5682 const index = parent.data("index") 5683 const indexNext = Number(index) + 1 5684 customSpotify(indexNext, length, 'addon') 5685 }) 5686 5687 5688 $(".spotifyAddons").delegate(".btn-action .btn.finished", "click", async function(){ 5689 const parent = $(this).parents(".purchaseAddon") 5690 const next = parent.next(".sectionPurchase") 5691 parent.addClass("hide") 5692 next.removeClass("hide") 5693 next.find(".purchase-button").show() 5694 listAddon() 5695 }) 5696 5697 $(".spotifyAddons").delegate(".back-spotify", "click", async function(){ 5698 const t = $(this).parents("[data-index]") 5699 const parent = $(this).parents(".sectionPurchase") 5700 const current = t.data("index") 5701 const prevCurrent = Number(current) - 1 5702 if(current == 1) { 5703 parent.removeClass("purchaseAddonSpotify") 5704 parent.find(".purchase-button").show() 5705 parent.find(".headerPurchase h3").text("Make It More Special with Add-Ons!") 5706 $(".spotifyAddons").empty() 5707 $(".regulerAddons").show() 5708 return 5709 } 5710 t.hide() 5711 t.prev("[data-index]").show() 5712 t.remove() 5713 parent.find(".headerPurchase h3").text(`personalize spotify photo print - ${prevCurrent}`) 5714 }) 5715 5716 $("#personalizeBtn .btn").click(async function() { 5717 loadPopupPersonalize() 5718 }); 5719 5720 $(".sectionPurchaseSpotify").delegate(".btn[data-type=card]", "click", function(){ 5721 $(".sectionPurchaseSpotify").hide() 5722 loadPopupPersonalize() 5723 }) 5724 5725 $(".close-purchase-popup").click(function() { 5726 disablePopup(); 5727 }); 5728 $("#backgroundPopup").click(function() { 5729 // disablePopup(); 5730 }); 5731 5732 $("#popupCart .close-purchase-popup").click(function() { 5733 location.reload() 5734 }); 5735 5736 $('#popupCart').on('hide.bs.modal', function (e) { 5737 location.reload() 5738 }) 5739 5740 $(".next-card").click(function(){ 5741 const parent = $(this).parents(".sectionPurchase") 5742 const next = parent.next(".sectionPurchase") 5743 parent.addClass("hide") 5744 next.removeClass("hide") 5745 }) 5746 5747 $(".back-purchase-button").click(function(){ 5748 const parent = $(this).parents(".sectionPurchase") 5749 const prev = parent.prev(".sectionPurchase") 5750 parent.addClass("hide") 5751 prev.removeClass("hide") 5752 }) 5753 5754 $(document).keypress(function(e) { 5755 if (e.keyCode == 27 && popupStatus == 1) { 5756 disablePopup(); 5757 } 5758 }); 5759 5760 const parentImg = $(".case-img-preview") 5761 const parentVid = $(".case-video-preview") 5762 5763 function readURL(input) { 5764 if (input.files && input.files[0]) { 5765 let reader = new FileReader(); 5766 5767 let type = 'image/jpeg' 5768 const size = input.files[0].size 5769 if(input.files[0].type.match('video/')){ 5770 type = 'video/mp4' 5771 if(size > 15728640) { 5772 alert('File size exceeds maximum limit 15 MB') 5773 return 5774 } 5775 } else { 5776 if(size > 5242880) { 5777 alert('File size exceeds maximum limit 5 MB') 5778 return 5779 } 5780 } 5781 5782 reader.onload = function (e) { 5783 $(".nextBtn").attr("disabled", true) 5784 if(type === 'image/jpeg') { 5785 5786 $('.placeholder-image').hide(); 5787 $('.preview-image').show() 5788 $('.preview-image').attr('src', e.target.result); 5789 5790 } else { 5791 // parentVid.find(".ajax-loader").show(); 5792 $(".steps-card-preview").addClass("loading") 5793 } 5794 } 5795 5796 5797 5798 reader.readAsDataURL(input.files[0]); 5799 } 5800 } 5801 5802 async function readURLPapan(input) { 5803 if (input.files && input.files[0]) { 5804 let reader = new FileReader(); 5805 5806 reader.onload = function (e) { 5807 $('.btn-upload-papan').siblings('label').hide(); 5808 $('.btn-upload-papan img').attr('src', e.target.result); 5809 $('.btn-upload-papan img').show(); 5810 $('.svgLogoPapan').hide(); 5811 } 5812 5813 const type = 'image/jpeg' 5814 const name = `logo-8144957800663-${Date.parse(new Date())}` 5815 5816 let formData = new FormData(); 5817 formData.append("file", input.files[0]); 5818 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 5819 method: "POST", 5820 body: formData 5821 }) 5822 const result = await response.json(); 5823 if(result) { 5824 const url = result.url 5825 $("[data-properties=papan-logo]").val(url) 5826 } 5827
5828 reader.readAsDataURL(input.files[0]); 5829 } 5830 } 5831 5832 async function readURLAddress(input) { 5833 console.log(input, 'readURLAddress') 5834 if (input.files && input.files[0]) { 5835 let reader = new FileReader(); 5836 5837 reader.onload = function (e) { 5838 $('.photo-address').attr('src', e.target.result); 5839 $('.photo-address').show(); 5840 } 5841 5842 const type = 'image/jpeg' 5843 const name = input.files[0].name?.split('.')[0] 5844 5845 let formData = new FormData(); 5846 formData.append("file", input.files[0]); 5847 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 5848 method: "POST", 5849 body: formData 5850 }) 5851 const result = await response.json(); 5852 5853 reader.readAsDataURL(input.files[0]); 5854 5855 return result 5856 } 5857 } 5858 5859 5860 5861 5862 async function addToCartUang() { 5863 var productAddOnId1 = 42122101162199; 5864 var productAddOnId2 = 42122101194967; 5865 var product_id = 8144957800663 5866 const data = { 5867 items: [ 5868 { 5869 quantity: $("#Quantity-" + productAddOnId1).val(), 5870 id: productAddOnId1, 5871 "properties": { "Time": $("#properties-time").val() } 5872 }, 5873 { 5874 quantity: $("#Quantity-" + productAddOnId2).val(), 5875 id: productAddOnId2, 5876 "properties": { "Time": $("#properties-time").val() } 5877 } 5878 ] 5879 } 5880 await fetch(window.Shopify.routes.root + 'cart/add.js', { 5881 method: 'POST', 5882 headers: { 5883 'Content-Type': 'application/json' 5884 }, 5885 body: JSON.stringify(data) 5886 }) 5887 .then(response => { 5888 console.error('Sukses Buket Uang:', response); 5889 $(".form-flower").submit() 5890 }) 5891 .catch((error) => { 5892 console.error('Error Buket Uang:', error); 5893 $(".form-flower").submit() 5894 }); 5895 } 5896 5897 async function saveCard(){ 5898 let isCard = true 5899 const kartu_penerima = $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '' 5900 const kartu_pengirim = $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '' 5901 const kartu_ucapan = $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '' 5902 const foto = $("#properties-photo").val() 5903 const video = $("#properties-video").val() 5904 const data = JSON.stringify({ 5905 "id": qrID, 5906 "penerima": $("#properties-nama-penerima").val(), 5907 "kartu_penerima": kartu_penerima, 5908 "kartu_ucapan": kartu_ucapan, 5909 "kartu_pengirim": kartu_pengirim, 5910 "foto": foto, 5911 "video": video, 5912 "productId": "8144957800663", 5913 "order_name": "", 5914 "status": "Cart" 5915 }) 5916 5917 5918 } 5919 5920 async function additem(items){ 5921 try { 5922 let formData = items 5923 if(items?.length) { 5924 formData = { 5925 'items': items 5926 }; 5927 } 5928 5929 const add = await fetch(window.Shopify.routes.root + 'cart/add.js', { 5930 method: 'POST', 5931 headers: { 5932 'Content-Type': 'application/json', 5933 'X-Requested-With':'xmlhttprequest' /* XMLHttpRequest is ok too, it's case insensitive */ 5934 }, 5935 body: JSON.stringify(formData) 5936 }) 5937 5938 const data = await add.json(); 5939 return data 5940 } catch(err){ 5941 console.log('Error additem', err) 5942 } 5943 } 5944 5945 async function addons(){ 5946 let items = [] 5947 $(".addon-item").each(function(){ 5948 const p = $(this) 5949 const props = p.next(".propsAddonSpotify") 5950 const id = $(this).data("id") 5951 const quantity = $(this).data("qty") 5952 const propId = $("#properties-time").val() 5953 let properties = {} 5954 if(id === 46067682607319) { 5955 const link = props.find(".spotifyLinkAddon").text() 5956 const photo = props.find(".spotifyFotoAddon").text() 5957 const song = props.find(".spotifySongAddon").text() 5958 const artist = props.find(".spotifyArtistAddon").text() 5959 properties = { 5960 id: propId, 5961 "Spotify Link": link !== '' ? link : '-', 5962 "Spotify Photo": photo !== '' ? photo : '-', 5963 "Spotify Song": song !== '' ? song : '-', 5964 "Spotify Artist": artist !== '' ? artist : '-', 5965 type: 'addon' 5966 } 5967 } else { 5968 properties = { 5969 "id": propId, 5970 "type": "addon" 5971 } 5972 } 5973 items.push({ 5974 id, 5975 quantity, 5976 properties 5977 }) 5978 }) 5979 return items 5980 } 5981 5982 async function propItems() { 5983 let props = {} 5984 $("[data-properties]").each(function(e){ 5985 let elementType = this.tagName;
5986 const k = $(this).data("properties") 5987 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') { 5988 const v = elementType === 'SELECT' ? $(this).find(":selected").val() : $(this).val(); 5989 if(v !== '') { 5990 props[k] = v?.replace(/[\s\n]/g, ''); 5991 } 5992 } 5993 }) 5994 return props 5995 } 5996 5997 async function showPopupCart(items){ 5998 if(productType !== '') { 5999 console.log("clarity event " + productType + ' completeOrder') 6000 window.clarity("event", `${productType} completeOrder`) 6001 // window.clarity("set", productType, `completeOrder - ${productDate}`) 6002 } 6003 $("#popupCart").show() 6004 6005 $(".propDeliveryCity").text($("#cities").val()) 6006 $(".propDeliveryDate").text($("#propDeliveryDate").val()) 6007 $(".propDeliveryTime").text($("#propDeliveryTime").val()) 6008 $(".propDeliveryName").text($("[data-properties=nama-penerima]").val()) 6009 $(".propDeliveryAddress").text($("[data-properties=alamat-penerima]").val()) 6010 $(".propDeliveryPhone").text($("[data-properties=telepon-penerima]").val()) 6011 $(".propDeliveryProv").text($("#province").val()) 6012 $(".propDeliveryZip").text($("#zip").val()) 6013 6014 6015 6016 const addons = [] 6017 if(items && items.length > 0) { 6018 for(let i = 1; i < items.length; i++) { 6019 const spotifyLink = items[i].properties['Spotify Link'] 6020 const spotifyPhoto = items[i].properties['Spotify Photo'] 6021 const spotifySong = items[i].properties['Spotify Song'] 6022 const spotifyArtist = items[i].properties['Spotify Artist'] 6023 const price = items[i].price / 100 6024 const props = spotifyLink ? `<div class="propsAddonCart row m-0"> 6025 <div class="col-12 col-lg-2"></div> 6026 <div class="col-12 col-lg-10"> 6027 <p> 6028 <span>spotify link</span> 6029 <span>${spotifyLink}</span> 6030 </p> 6031 <p> 6032 <span>Upload Photo</span> 6033 <span>${spotifyPhoto}</span> 6034 </p> 6035 <p> 6036 <span>song / playlist name</span> 6037 <span>${spotifySong}</span> 6038 </p> 6039 <p> 6040 <span>artist name</span> 6041 <span>${spotifyArtist}</span> 6042 </p> 6043 </div> 6044 </div>` : ''; 6045 addons.push(`<div class="row m-0"> 6046 <div class="imgAddonCart col-2"> 6047 <img 6048 width="43" 6049 src="${items[i].image}" 6050 alt="" 6051 > 6052 </div> 6053 <div class="imgAddonTitlePrice col-10 align-self-center"> 6054 <div class="row justify-content-between m-0"> 6055 <div class="col-12 col-lg-8"> 6056 <h5>${items[i].title}</h5> 6057 </div> 6058 <div class="col-12 col-lg-4 text-lg-right"> 6059 <span>${rupiah.format(price)}</span> 6060 </div> 6061 </div> 6062 </div> 6063 </div>${props}`) 6064 } 6065 } 6066 // console.log(addons) 6067 if(addons.length === 0) { 6068 $(".itemAddonCart").hide() 6069 return 6070 } 6071 $(".toggleAddonCart h4").text(`add-ons (${items.length - 1})`) 6072 $(".wrapperItemAddonCart").html(addons) 6073 } 6074 6075 const money = (money) => { 6076 return new Intl.NumberFormat('id-ID', 6077 { style: 'currency', currency: 'IDR', minimumFractionDigits: 0 } 6078 ).format(money); 6079 } 6080 6081 async function showNoteMoney() { 6082 let qty50k = $("[data-properties='Uang 50k']").val() 6083 let qty100k = $("[data-properties='Uang 100k']").val() 6084 const total50k = Number(qty50k) * 50000 6085 const total100k = Number(qty100k) * 100000 6086 const total_all = total50k + total100k 6087 $(".prop50k").html(`<span>${qty50k} Lembar: <strong class="pl-1">${money(total50k)}</strong></span>`) 6088 $(".prop100k").html(`<span>${qty100k} Lembar: <strong class="pl-1">${money(total100k)}</strong></span>`) 6089 $(".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://mobile.wso138wede-amp.org/" target="_blank" style="text-decoration: underline;
6089 color: #8d3f2d">Customer Service</a> to confirm with proof of payment.</p>`) 6090 } 6091 6092 async function removeImage() { 6093 const data = JSON.stringify({ 6094 "ID": $("#properties-properties-qrId").val(), 6095 "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 6096 "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 6097 "Kartu Ucapan": $("[data-properties=ucapan]").val(), 6098 "Nama Penerima": $("#properties-nama-penerima").val(), 6099 "Order Number":"", 6100 "Status":"Product", 6101 "Foto": "", 6102 "Media": $("#properties-video").val(), 6103 "Image": "8144957800663" 6104 }) 6105 const remove = updateCard(data) 6106 if(remove) { 6107 $(this).hide() 6108 $("#properties-photo").val("-") 6109 $(".placeholder-image").show() 6110 $(".preview-image").attr("src", "") 6111 } 6112 } 6113 6114 async function removeVideo() { 6115 const data = JSON.stringify({ 6116 "ID": $("#properties-properties-qrId").val(), 6117 "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 6118 "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 6119 "Kartu Ucapan": $("[data-properties=ucapan]").val(), 6120 "Nama Penerima": $("#properties-nama-penerima").val(), 6121 "Order Number":"", 6122 "Status":"Product", 6123 "Foto": $("#properties-photo").val(), 6124 "Media": "", 6125 "Image": "8144957800663" 6126 }) 6127 const remove = updateCard(data) 6128 if(remove) { 6129 $("#properties-video").val("-") 6130 $(this).find("img").hide() 6131 $(this).hide() 6132 $(this).prev("p").text("Add video to make it more special (optional)") 6133 $("#label-input-video").show() 6134 $("#label-input-video span").text("Upload Video") 6135 $(".case-video-preview p span").remove() 6136 } 6137 } 6138 6139 async function loadItemOccasion(t, occasion) { 6140 const name = occasion?.replace('greeting-card-', '') 6141 $("#kartu-ucapan").val("") 6142 $("[data-occassion]").removeClass("selected") 6143 $("[data-properties=ucapan]").val("") 6144 $("#save-card").attr("disabled", true) 6145 t.addClass("selected") 6146 $("#show_note").attr("data-card-occassion", name) 6147 $.get(`https://outerbloom.com/collections/${occasion}/products.json`, function(data, status){ 6148 const products = data.products 6149 const html = [] 6150 for(let i = 0; i < products.length; i++) { 6151 const id = products[i].id 6152 const variantId = products[i].variants[0].id 6153 const img = products[i].images[0].src 6154 const title = products[i].title 6155 const price = products[i].variants[0].price 6156 const qty = products[i].variants[0].inventory_quantity 6157 const body = `<div class="item-card${price < 1 ? ' free' : ' nofree'}${i === 0 ? ' selected' : ''}" data-id=${id}> 6158 <label for="card-${variantId}"></label> 6159 <div class="card-image"> 6160 <img src="${img}" alt="${title}" width="" height="" /> 6161 </div> 6162 <div class="card-meta text-center"> 6163 <h5>${title}</h5> 6164 <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p> 6165 <input id="card-${variantId}" type="radio" name="id" value="${variantId}" data-price="${price}"> 6166 </div> 6167 </div>` 6168 html.push(body) 6169 } 6170 const withoutCard = `<div class="item-card item-without-card"> 6171 <label for="card-0"></label> 6172 <div class="card-image"> 6173 <img src="https://cdn.shopify.com/s/files/1/1589/6833/t/129/assets/without-card.png?v=1747632283" alt="Without card" width="" height="" /> 6174 </div> 6175 <div class="card-meta text-center"> 6176 <h5>
6176Send without a greeting card</h5> 6177 <input id="card-0" type="radio" name="id" value="" data-price=""> 6178 </div> 6179 </div>` 6180 $("#itemCards .items-card").html(html.length === 0 ? '<p>No Item available</p>' : html.join("")) 6181 }); 6182 } 6183 6184 $(document).ready(function(){ 6185 6186 // Observer to auto-trigger addon loading when addon section becomes visible 6187 const addonObserver = new MutationObserver(function(mutations) { 6188 mutations.forEach(function(mutation) { 6189 const target = $(mutation.target) 6190 if(target.hasClass('purchaseAddon') && mutation.type === 'attributes' && mutation.attributeName === 'class') { 6191 if(!target.hasClass('hide')) { 6192 // Addon section just became visible, ensure items are loaded 6193 setTimeout(function() { 6194 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6195 console.log("Auto-triggering addon load...") 6196 $("[data-addon=upsell-all]").trigger("click") 6197 } 6198 }, 150) 6199 } 6200 } 6201 }) 6202 }) 6203 6204 // Start observing addon section 6205 const addonSection = document.querySelector('.purchaseAddon') 6206 if(addonSection) { 6207 addonObserver.observe(addonSection, { 6208 attributes: true, 6209 attributeFilter: ['class'] 6210 }) 6211 } 6212 6213 $(".purchasePopup").delegate("#addtocart-card", "click", async function(){ 6214 6215 $(this).find("span").addClass("loading") 6216 let isValid = true 6217 $(".formAddressPurchase [required]").each(function(){ 6218 const t = $(this) 6219 const input = t.val() 6220 const p = t.parent() 6221 if(input === '') { 6222 p.addClass("error") 6223 isValid = false 6224 } 6225 }) 6226 6227 if(!isValid) { 6228 $(this).find("span").removeClass("loading") 6229 return 6230 } 6231 6232 let items = [] 6233 const mainProps = { 6234 6235 "Delivery Date": $("#propDeliveryDate").val(), 6236 "Delivery Time": $("#propDeliveryTime").val() !== '' ? $("#propDeliveryTime").val() : '-' , 6237 "Kota Pengiriman": $("#cities").val(), 6238 "Nama Penerima": $("[data-properties=nama-penerima]").val() !== '' ? $("[data-properties=nama-penerima]").val() : '-' , 6239 "Alamat Penerima": $("[data-properties=alamat-penerima]").val() !== '' ? $("[data-properties=alamat-penerima]").val() : '-' , 6240 "Kodepos": $("#zip").val() !== '' ? $("#zip").val() : '-' , 6241 "Telepon Penerima": $("[data-properties=telepon-penerima").val() !== '' ? $("[data-properties=telepon-penerima").val() : '-' , 6242 6243 6244 "Papan Nama Penerima": $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '-' , 6245 "Papan Ucapan": $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '-' , 6246 "Papan Nama Pengirim": $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '-' , 6247 "Papan Logo": $("[data-properties=papan-logo]").val() !== '' ? $("[data-properties=papan-logo]").val() : '-' , 6248 "Foto Alamat": $("[data-properties=foto-alamat]").val() !== '' ? $("[data-properties=foto-alamat]").val() : '-' , 6249 6250 6251 "Province": $("#province").val() !== '' ? $("#province").val() : '-' , 6252 "Country": $("#properties-kota-pengiriman-country").val() !== '' ? $("#properties-kota-pengiriman-country").val() : '-' , 6253 "Shipping": $("#properties-shipping").val() !== '' ? $("#properties-shipping").val() : '-' , 6254 "Company": $("[data-properties=company]").val() !== '' ? $("[data-properties=company]").val() : '-' , 6255 "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 6256 "type": 'product' 6257 } 6258 const props = await propItems() 6259 properties = {...mainProps, ...props }; 6260 const id = $("#productSelect").find('option:selected').val() 6261 console.log(id, 'main ID') 6262 const mainItem = { 6263 id: Number(id), 6264 quantity: 1, 6265 properties 6266 } 6267 items.push(mainItem) 6268 const cardId = $("#itemCards").find(".selected input").val() 6269 const cardItem = { 6270 id: Number(cardId), 6271 quantity: 1, 6272 properties: { "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', type: 'card' } 6273 } 6274 console.log(cardId, 'cardId') 6275 if(cardId) { 6276 items.push(cardItem) 6277 } 6278 const addon = await addons() 6279 if(addon) { 6280 for(let i = 0;
6280 i < addon.length; i++){ 6281 items.push({ 6282 id: addon[i].id, 6283 quantity: addon[i].quantity, 6284 properties: addon[i].properties 6285 }) 6286 } 6287 } 6288 const addItems = await additem(items) 6289 console.log(addItems.items, 'add items') 6290 if(addItems) { 6291 $(this).find("span").removeClass("loading") 6292 disablePopup() 6293 showPopupCart(addItems.items) 6294 6295 localStorage.setItem("items", JSON.stringify(addItems.items)) 6296 } 6297 }) 6298 6299 $("#addtocart-cart .btn").click(async function(){ 6300 const id = $("#productSelect").find('option:selected').val() 6301 const mainProps = { 6302 id: $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 6303 type: 'product' 6304 } 6305 const props = await propItems() 6306 const properties = { ...mainProps, ...props }; 6307 const items = { 6308 id: Number(id), 6309 quantity: 1, 6310 properties 6311 } 6312 const addItems = await additem(items) 6313 if(addItems) { 6314 showPopupCart(addItems.items) 6315 localStorage.setItem("items", JSON.stringify(addItems)) 6316 } 6317 }) 6318 6319 $(".formAddressPurchase [required]").change(function(){ 6320 const t = $(this) 6321 const p = t.parent() 6322 const v = t.val() 6323 if(v !== '') { 6324 p.removeClass("error") 6325 } 6326 }) 6327 6328 $("#save-card").click(async function(){ 6329 const parent = $(this).parents(".sectionPurchase") 6330 const next = parent.next(".sectionPurchase") 6331 $(this).find("span").addClass("loading") 6332 const card = await saveCard() 6333 console.log(card, 'ssaveCCC') 6334 if(card?.status === 200 || card?.status === 201) { 6335 $(".scanCard").removeClass("hide") 6336 $(this).find("span").removeClass("loading") 6337 parent.addClass("hide") 6338 next.removeClass("hide") 6339 if(next.hasClass("purchaseAddon")) { 6340 $("[data-addon=upsell-all]").click() 6341 console.log("clarity event addons") 6342 window.clarity("event", `${productType} add-ons`) 6343 // Ensure addon items are loaded when entering addon popup 6344 setTimeout(function() { 6345 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6346 $("[data-addon=upsell-all]").trigger("click") 6347 } 6348 }, 100) 6349 } 6350 if(next.hasClass("purchaseAddress")) { 6351 $("#zip").select2() 6352 } 6353 } 6354 }) 6355 6356 $("#skip-card").click(async function(){ 6357 $("#greetingCard [data-properties]").val("") 6358 $("#properties-photo").val("") 6359 $("#properties-video").val("") 6360 const parent = $(this).parents(".sectionPurchase") 6361 const next = parent.next(".sectionPurchase") 6362 parent.addClass("hide") 6363 next.removeClass("hide") 6364 // $("#itemCards").html("") 6365 removeImage() 6366 removeVideo() 6367 if(next.hasClass("purchaseAddon")) { 6368 $("[data-addon='upsell-all']").click() 6369 console.log("clarity event addons") 6370 window.clarity("event", `${productType} add-ons`) 6371 // Ensure addon items are loaded when entering addon popup 6372 setTimeout(function() { 6373 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6374 $("[data-addon='upsell-all']").trigger("click") 6375 } 6376 }, 100) 6377 } 6378 if(next.hasClass("purchaseAddress")) { 6379 $("#zip").select2() 6380 } 6381 }) 6382 6383 $("#msgCard").click(async function(){ 6384 $(this).parent().addClass("loading") 6385 let occasion = $(".selected[data-occassion]").data("occassion") 6386 occasion = occasion?.replace("greeting-card-", "") 6387 const { data } = await getFetch(`${host}/api/card/template/occasion?name=${occasion}`); 6388 const d = data?.data 6389 for(let i = 0; i < d.length; i++) { 6390 const num = Math.floor(Math.random() * (d.length - 1 + 1) + 1); 6391 const greeting = d[num]?.Greeting 6392 $(".greetingCard textarea").val(greeting) 6393 $(this).parent().removeClass("loading") 6394 } 6395 $("#save-card").attr("disabled", false) 6396 }) 6397 6398 $(".sectionPurchaseBoard .next-purchase-button").click(function(){ 6399 const parent = $(this).parents(".sectionPurchase") 6400 const next = parent.next(".sectionPurchase") 6401 parent.addClass("hide") 6402 next.removeClass("hide") 6403 }) 6404 6405 $("#editCard").click(function(){ 6406 $(".custom-card").show() 6407 $(".preview-card").hide() 6408 }) 6409 6410 $("#first_name, #last_name").change(function(){ 6411 const v = $(this).val() 6412 const first_name = $("#first_name").val() 6413 const last_name = $("#last_name").val() !== '' ? ' ' + $("#last_name").val() : '' 6414 $("[data-properties=nama-penerima]").val(first_name+last_name) 6415 }) 6416 6417 $("[data-occassion]").click(function(){ 6418 const t = $(this) 6419 const p = t.parents(".sectionPurchase") 6420 // $(".greetingCard").addClass("disabled") 6421 const occasion = t.data("occassion") 6422 loadItemOccasion(t, occasion) 6423 }) 6424 6425 $("#itemCards").delegate(".item-card:not(.item-without-card) label", "click", function(){ 6426 const id = $(this).parent(".item-card").data("id") 6427 const t = $(this).parent(".item-card") 6428 const target = t.find("input") 6429 const v = $('.item-card input[type="radio"]:checked').val(); 6430 $("#itemCards .item-card").removeClass("selected") 6431 t.addClass("selected") 6432 $("#itemCards .item-card").find("input").attr("name", "") 6433 if(target.length > 0) { 6434 target.attr("name", "id[]") 6435 $("#properties-card").val(id) 6436 $(".greetingCard").removeClass("disabled") 6437 $("#skip-card").attr("disabled", false) 6438 } else { 6439 $("#properties-card").val("") 6440 } 6441 }) 6442 6443 $("#itemCards").delegate(".item-without-card label", "click", function(){ 6444 const parent = $(this).parents(".sectionPurchase") 6445 const next = parent.next(".sectionPurchase") 6446 $(".greetingCard").addClass("disabled") 6447 parent.addClass("hide") 6448 next.removeClass("hide") 6449 $("[data-addon=upsell-all]").click() 6450 $("#zip").select2() 6451 }) 6452 6453 $("[data-properties=ucapan]").keyup(function(){ 6454 const v = $(this).val() 6455 const p = $(this).parents(".sectionPurchase") 6456 $(".purchaseAddress").find(".greetingCard textarea").val(v) 6457 if(v.length > 3) { 6458 p.find(".next-purchase-button").attr("disabled", false) 6459 } else { 6460 p.find(".next-purchase-button").attr("disabled", true) 6461 } 6462 }) 6463 6464 $("[data-properties=penerima]").keyup(function(){ 6465 const v = $(this).val() 6466 $(".purchaseAddress").find("[data-properties=penerima]").val(v) 6467 }) 6468 6469 $("[data-properties=pengirim]").keyup(function(){ 6470 const v = $(this).val() 6471 $(".purchaseAddress").find("[data-properties=pengirim]").val(v) 6472 }) 6473 6474 $(document).click(function(e){ 6475 6476 if($(e.target).closest('.wrapperPopupCart').length != 0) return false;
6477 // $('#popupCart').fadeOut('slow'); 6478 // location.reload() 6479 }); 6480 6481 $(".toggleAddonCart").click(function(){ 6482 const p = $(this).parent(".itemAddonCart") 6483 p.toggleClass("open") 6484 }) 6485 6486 $(".btnViewCart").click(function(){ 6487 window.location.href = "https://outerbloom.com/cart"; 6488 }) 6489 6490 $(".btnViewCheckout").click(async function(){ 6491 $(this).find("span").addClass("loading") 6492 let zip = $("#zip").val() 6493 const first_name = $("#first_name").val() 6494 const last_name = $("#last_name").val() 6495 const company = $("#company").val() !== '' ? $("#company").val() : '' 6496 const address1 = $("#delivery_address").val() 6497 const address2 = zip && zip !== '' ? zip?.split(' - ')[1] : '' 6498 zip = zip && zip !== '' ? zip?.split(' - ')[0] : '' 6499 const phone = $("#recipient_number").val() 6500 const city = $("#cities").val() 6501 const province = $("#province").val() 6502 const country = 'Indonesia' 6503 const ver = Date.parse(new Date()) 6504 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}` 6505 6506 const clear = await fetch(`/cart/clear.js`, {method: 'POST'}) 6507 if(clear.status === 200) { 6508 const savedItem = window.localStorage.getItem("items"); 6509 const items = JSON.parse(savedItem) 6510 const addItems = await additem(items) 6511 console.log(addItems, 'new addItems') 6512 if(addItems) { 6513 window.location.href = `https://outerbloom.com/checkout?${params}`; 6514 } 6515 } 6516 }) 6517 6518 $(".btnContinueShopping").click(function(){ 6519 window.location.href = "https://outerbloom.com/"; 6520 }) 6521 6522 if (isIOS) { 6523 $(".empty-state-card").click(function(){ 6524 $("#input-foto").trigger("click") 6525 }) 6526 $(".btn-upload-image").click(function(){ 6527 $("#input-foto").trigger("click") 6528 }) 6529 $("[for=input-video]").click(function(){ 6530 $("#input-video").trigger("click") 6531 }) 6532 $(".btn-upload-papan").click(function(){ 6533 $("#logoPapan").trigger("click") 6534 }) 6535 } 6536 6537 $("[data-properties]").each(function(){ 6538 const select = $(this).parents(".form-group").find("select") 6539 $(this).change(function(){ 6540 const name = $(this).data("properties") 6541 const v = $(this).val() 6542 if (name == 'telepon-penerima') { 6543 let phone = v.replace(/[^0-9]/g, '') 6544 $(this).val(phone); 6545 $("#properties-telepon-penerima").val(phone) 6546 $('.iti__search-input').val('-') 6547 } else { 6548 $("#properties-" + name).val(v) 6549 } 6550 }) 6551 select.on("change", function(){ 6552 const name = $(this).data("properties") 6553 const v = $(this).val() 6554 $("#properties-" + name).val(v) 6555 }) 6556 }) 6557 6558 $("#show_note").click(function(){ 6559 nameq = $("#properties-nama-penerima").val() 6560 dear = $("#properties-kartu-nama-penerima").val() 6561 card = $("[data-properties=ucapan]").val() 6562 sender = $("#properties-kartu-nama-pengirim").val() 6563 photo = $("#properties-photo").val() 6564 video = $("#properties-video").val() 6565 updateCard(nameq, dear, card, sender, photo, video, status) 6566 }) 6567 6568 $(".remove-image").click(function(e){ 6569 e.preventDefault() 6570 $(this).find("img").show() 6571 removeImage() 6572 }) 6573 6574 $(".remove-media").click(function(e){ 6575 e.preventDefault() 6576 $(this).find("img").show() 6577 removeVideo() 6578 }) 6579 6580 6581 6582 $("[data-delivery_method]").click(function(e){ 6583 e.preventDefault() 6584 const t = $(this) 6585 const data = t.data("delivery_method") 6586 $("[data-delivery_method]").removeClass("selected") 6587 t.addClass("selected") 6588 $("#cities").val("") 6589 $("#properties-delivery-date").val("-") 6590 $("#deliveryDate button").removeClass("selected") 6591 $("#full-date").val("Full Calendar â") 6592 $("#propDeliveryDate").val("") 6593 const step3 = $("#step-3") 6594 if(data.match('PickUp')) { 6595 $(".selfpickup-point").show() 6596 step3.find("[data-finished=false]").hide() 6597 $("#panel-4").hide() 6598 step3.find("[data-finished=true]").show() 6599 $("#cities").attr("required", false) 6600 $("#form-group-city").hide() 6601 $("#row-delivery-time").hide() 6602 $("#propDeliveryTime, #properties-delivery-time, #properties-nama-penerima, #properties-alamat-penerima, #properties-kodepos, #properties-kodepos, #properties-telepon-penerima").val("-") 6603 $("#propDeliveryTime").attr("required", false) 6604 // $("#deliveryDate").find("button:first-child").addClass("stop") 6605 $(".form-selfpickup").show() 6606 $(".form-delivery").hide() 6607 $(".form-delivery").find("input, textarea, select").val("") 6608 $(".form-delivery").find("input, textarea, select").attr("required", false) 6609 $("#properties-shipping").val("0") 6610 $("#noteDeliveryDate").hide() 6611 $(".form-delivery .form-control").attr("required", false) 6612 $("#stepNav4").hide() 6613 6614 $("#deliveryDate").find("button:nth-child(1)").addClass("stop") 6615 6616 6617 6618 if(timeOfDay >= 16.01){ 6619 $("#deliveryDate").find("button:nth-child(2)").addClass("stop") 6620 } 6621 } else { 6622 6623 6624 $("#deliveryDate").find("button:nth-child(1)").removeClass("stop") 6625 step3.find("[data-finished=false]").show() 6626 $("#panel-4").show() 6627 step3.find("[data-finished=true]").hide() 6628 $("#cities").attr("required", true) 6629 $(".selfpickup-point").hide() 6630 $("#form-group-city").show() 6631 $("#cities").val('').trigger('change'); 6632 $("#properties-kota-pengiriman").val("-") 6633 6634 $("#row-delivery-date, #row-delivery-time").show() 6635 $("#propDeliveryDate, #propDeliveryTime").attr("required", true) 6636 $("#deliveryDate").find("button").removeClass("stop") 6637 $(".form-selfpickup").hide() 6638 $(".form-delivery").show() 6639 $(".form-delivery").find("input, textarea, select").attr("required", true)
6640 $(".form-delivery [data-properties]").attr("readonly", false) 6641 $("#properties-kodepos").val("-") 6642 $("#properties-alamat-penerima").val("-") 6643 $(".form-delivery .form-control").attr("required", true) 6644 $(this).parents(".setup-content").attr("id", "step-1") 6645 6646 $("#stepNav4").show() 6647 } 6648 }) 6649 6650 $("[name=selfpickup]").click(function(){ 6651 const p = $(this).parents(".row-pickup") 6652 const pickupCity = $("input[name='selfpickup']:checked").val(); 6653 const pickupAddress = $("input[name='selfpickup']:checked").data("address"); 6654 const pickupZip = $("input[name='selfpickup']:checked").data("zip"); 6655 6656 $(".row-pickup").removeClass("selected") 6657 p.addClass("selected") 6658 6659 $("#properties-kota-pengiriman").val(pickupCity) 6660 $("#province").val("Jakarta") 6661 $("#properties-alamat-penerima").val(pickupAddress) 6662 $("#properties-kodepos").val(pickupZip) 6663 }) 6664 6665 $("#cities").change(function(e){ 6666 e.preventDefault() 6667 $(this).parent(".row").find("p.error").remove() 6668 $("#full-date").val("Full Calendar") 6669 $("#deliveryDate, #deliveryDateFull label ").show() 6670 $("#deliveryDateFull").removeClass("filled") 6671 $(".btnChangeDeliveryDate").addClass("hide") 6672 $("#full-date").prop('disabled', false); 6673 $("#stepNav2, #stepNav3, #stepNav4").removeClass("btn-success") 6674 $("#stepNav2, #stepNav3, #stepNav4").find("a").attr("disabled", true) 6675 const step3 = $("#step-3") 6676 $("#cityNote").remove() 6677 $("#noteDeliveryDate").hide() 6678 $("#noteDeliveryDate").empty() 6679 let v = $(this).val() 6680 let v2 = $('option:selected', this).attr('data-city'); 6681 let v3 = $('option:selected', this).attr('data-province'); 6682 let price = $('option:selected', this).attr('data-price'); 6683 $("#country").val(v) 6684 $("#properties-kota-pengiriman").val(v) 6685 $("#properties-shipping").val(price) 6686 $("#deliveryDate button, #deliveryTime button, .calendarseasonal .button").removeClass("selected") 6687 $("#properties-delivery-date, #properties-delivery-time").val("-") 6688 $("#propDeliveryDate, #propDeliveryTime").val("") 6689 let note = $('option:selected', this).attr('data-note'); 6690 if(v === 'Kota Lainnya') { 6691 $("#noteDeliveryDate").show() 6692 $("#noteDeliveryDate").text("Order akan segera dikirim. Estimasi tanggal diterima akan disesuaikan dengan waktu pengiriman oleh pihak ekspedisi ke lokasi Anda.") 6693 $("#zip").attr("required", false) 6694 $("#zip").hide() 6695 $("#propDeliveryDate, #propDeliveryTime").attr("required", false) 6696 $("#propDeliveryDate, #properties-delivery-date, #propDeliveryTime, #properties-delivery-time").val("-") 6697 $("#row-delivery-date, #row-delivery-time").hide() 6698 $("#properties-shipping").val("") 6699 // $(this).parents(".setup-content").attr("id", "step-2") 6700 6701 } else { 6702 $("#noteDeliveryDate").hide() 6703 $("#zip").attr("required", true) 6704 $("#zip").show() 6705 $("#row-delivery-date, #row-delivery-time").show() 6706 $("#propDeliveryDate, #propDeliveryTime").attr("required", true) 6707 $("#deliveryDate").find("button").removeClass("stop") 6708 // $(this).parents(".setup-content").attr("id", "step-1") 6709 6710 } 6711 6712 6713 6714 // if(v !== 'Jakarta') { 6715 // $("[data-type=upsell]").hide() 6716 // } else { 6717 // $("[data-type=upsell]").show() 6718 // } 6719 // $('.collection-addons')[0].swiper.update(); 6720 6721 6722 getProvince(v) 6723 $("#zip").html(`<option value="">Choose Postal Code</option>`) 6724 renderZip(v, v2, v3) 6725 6726 disabledSameDay() 6727 6728 6729 if(v !== 'Jakarta' && v !== 'Depok' && v !== 'Bekasi' && v !== 'Tangerang') { 6730 6731 $("#cardOccasion, #navAddon, .collection-addons").hide() 6732 6733 $("[data-addon=giftcard]").show() 6734 $("[data-addon=giftcard]").click() 6735 $("#itemAddons").show() 6736 $("#flower-step").addClass("nonjadetabek") 6737 } else { 6738 $("#cardOccasion, #navAddon, .collection-addons").show() 6739 $("[data-addon=all]").click() 6740 $("#flower-step").removeClass("nonjadetabek") 6741 } 6742 6743 if(v !== '') { 6744 $("#personalizeBtn .btn").attr("disabled", false) 6745 } else { 6746 $("#personalizeBtn .btn").attr("disabled", true) 6747 } 6748 6749 }) 6750 6751 $("#zip").change(function(e){ 6752 let v = $(this).val() 6753 var city = $("#cities").find('option:selected'); 6754 $("#properties-kodepos").val(v) 6755 if(city === 'Kota Lainnya') { 6756 $(this).attr("required", true) 6757 $("#recipient-address").val("") 6758 } 6759 }) 6760 6761 6762 var minDate = +7 6763 6764 6765 6766 $("#full-date").datepicker({ 6767 minDate, 6768 dateFormat: 'Mdd_yy', //Nop22_2021, 6769 6770 beforeShowDay: disabledays, 6771 6772 onSelect: function (date) { 6773 $("#deliveryDate, #deliveryDateFull label ").hide() 6774 $("#deliveryDateFull").addClass("filled") 6775 $(".btnChangeDeliveryDate").removeClass("hide") 6776 $("#full-date").prop('disabled', true); 6777 $('#propDeliveryDate, #properties-delivery-date').val('Kirim_'+date); 6778 $(".date-full").addClass("selected") 6779 $(".date-single, .calendar-group").removeClass("selected") 6780 $("#propDeliveryTime").val('') 6781 $("#properties-delivery-time").val('-') 6782 $(".time-single").removeClass("selected") 6783 6784 6785 } 6786 }); 6787 6788 $(".btnChangeDeliveryDate").click(function(){ 6789 $("#deliveryDate, #deliveryDateFull label ").show() 6790 $("#deliveryDateFull").removeClass("filled") 6791 $(".btnChangeDeliveryDate").addClass("hide") 6792 $("#full-date").prop('disabled', false); 6793 }) 6794 6795 $("#deliveryDate").delegate(".calendarbutton:not(.date-full)", "click", function(e){ 6796 e.preventDefault() 6797 $(this).parents("#row-delivery-date").find("p.error").remove() 6798 const fulldate = $(this).data("fulldate") 6799 const day = $(this).data("day") 6800 const date = $(this).data("date")
6801 const month = $(this).data("month") 6802 const year = $(this).data("year") 6803 const off_pagi = $(this).data("offpagi") 6804 const off_siang = $(this).data("offsiang") 6805 const off_Malam = $(this).data("offMalam") 6806 $(".calendarbutton").removeClass("selected") 6807 $(this).addClass("selected") 6808 $("#propDeliveryDate, #properties-delivery-date").val(`Kirim_${month}${date}_${year}`) 6809 $("#propDeliveryTime").val('') 6810 $("#properties-delivery-time").val('-') 6811 $(".calendarbutton2").removeClass("selected") 6812 $("#full-date").val("Full Calendar") 6813 6814 6815 if(off_pagi && timeOfDay > off_pagi) { 6816 $("[data-time=Morning]").attr("disabled", true) 6817 } else { 6818 $("[data-time=Morning]").attr("disabled", false) 6819 } 6820 if(off_siang && timeOfDay > off_siang) { 6821 $("[data-time=Afternoon]").attr("disabled", true) 6822 } else { 6823 $("[data-time=Afternoon]").attr("disabled", false) 6824 } 6825 6826 6827 6828 }) 6829 6830 if(today === 14 && timeOfDay > 17.00) { 6831 $("#deliveryDate button:first-child").attr("disabled", true) 6832 } 6833 6834 $("#deliveryTime").delegate(".calendarbutton2", "click", function(e){ 6835 e.preventDefault() 6836 const time = $(this).data("time") 6837 const date = $("#propDeliveryDate").val() 6838 if(date == '') { 6839 return alert('Silakan pilih tanggal terlebih dahulu') 6840 } 6841 $(".calendarbutton2").removeClass("selected") 6842 $(this).addClass("selected") 6843 $("#propDeliveryTime, #properties-delivery-time").val(`KirimJam_${date.replace('Kirim_','')}_${time}`) 6844 }) 6845 6846 $('textarea.has-limit, input.has-limit').keyup(function () { 6847 max = this.getAttribute("maxlength"); 6848 let len = $(this).val().length; 6849 let limit = $(this).siblings(".limit"); 6850 if (len > max) { 6851 alert('you have reached the limit'); 6852 } else { 6853 limit.text(`${len}/${max}`); 6854 } 6855 }); 6856 6857 $("#button-action-step .btn").click(function(){ 6858 $(this).find("span").text("Processing..."); 6859 }); 6860 6861 $(".finishBtn").on('click', function() { 6862 $(this).addClass("is-adding"); 6863 // $(this).click(); 6864 }); 6865 6866 $('.setup-panel .nav-item a.btn-success').trigger('click'); 6867 6868 $("#button-action .btn").click(function(){ 6869 $("#flower-step").addClass("block"); 6870 $("#button-action").hide(); 6871 }); 6872 6873 $(".close-how-order").click(function(){ 6874 $("#flower-step").removeClass("block"); 6875 $("#button-action").show(); 6876 }); 6877 6878 $("#input-foto, #input-video").change(function(e){ 6879 readURL(this); 6880 }); 6881 6882 $("#logoPapan").change(function(){ 6883 readURLPapan(this); 6884 }); 6885 6886 $("#address-upload").change(async function(){ 6887 const upload_address = await readURLAddress(this) 6888 if(upload_address) { 6889 const url = upload_address.url 6890 $(".props-address-upload").val(url) 6891 $(".form-address").addClass("address-uploaded") 6892 $(".form-address-upload").addClass("uploaded") 6893 6894 $(this).parents(".form-group").siblings(".form-group").find("[required]").attr("required", false) 6895 } 6896 }) 6897 6898 $(".address-manualy").click(function(){ 6899 $(".form-address-upload").removeClass("uploaded"); 6900 $(".photo-address").hide(); 6901 $(".form-address").removeClass("address-uploaded") 6902 $("#formAddressPurchase").find(".form-control").attr("required", true) 6903 }); 6904 6905 $(".case-video-preview").delegate(".replace-video", "click", function(){ 6906 $("#input-video").trigger("click") 6907 }) 6908 6909 $('.date-single').click(function(e) { 6910 e.preventDefault(); 6911 $('.date-single').removeClass('selected'); 6912 $('#full-date').removeClass('selected'); 6913 $(this).addClass('selected'); 6914 $('#full-date').html('Full' + '<br/>' + 'Calendar'); 6915 }); 6916 $('#full-date').click(function(e){ 6917 e.preventDefault(); 6918 $('.date-single').removeClass('selected'); 6919 $(this).addClass('selected'); 6920 }); 6921 6922 // $("tr").each(function(){ 6923 // if($(this).text().match('SKU')) { 6924 // $(".sku-product").html($(this).parents("table").html()) 6925 // } 6926 // }) 6927 6928 $("#product-image").scroll(function(){ 6929 $(".desc-add").each(function(){ 6930 const img = $(this).find("img") 6931 const src = img.data("src") 6932 img.attr("src", src) 6933 }) 6934 }) 6935 6936 $(".product-fixed").hide() 6937 6938 let target = $("#personalizeBtn") 6939 6940 6941 $(".product-meta").scroll(function() { 6942 if ($(window).scrollTop() >= target.offset().top ) { 6943 $(".product-fixed").addClass("show") 6944 } else { 6945 $(".product-fixed").removeClass("show") 6946 } 6947 }); 6948 6949 $(window).scroll(function() { 6950 if ($(window).scrollTop() >= target.offset().top ) { 6951 $(".product-fixed").addClass("show") 6952 } else { 6953 $(".product-fixed").removeClass("show") 6954 } 6955 }); 6956 }); 6957 </script>
6957 6958 6959
6959<script> 6960 // 6961 </script>
6961 6962 6963
6963<script> 6964 $(document).ready(function(){ 6965 $('table tr td').each(function(){ 6966 var texto = $(this).text(); 6967 var nextto = $(this).next("td"); 6968 var sku = $("#data-sku").val() 6969 if(texto == 'SKU'){ 6970 nextto.text(sku) 6971 } 6972 }); 6973 6974 $(".stamped-summary-actions-newquestion").text("Tulis Pertanyaan"); 6975 $(".stamped-summary-actions-newreview").text("Tulis Review"); 6976 $("#tab-questions").text("Pertanyaan"); 6977 6978 $(".freeship .icon").click(function(){ 6979 $(".fs-content").slideToggle(); 6980 $(this).parents(".freeship").toggleClass("expand"); 6981 }); 6982 6983 var $easyzoom = $('.easyzoom').easyZoom(); 6984 // Setup thumbnails example 6985 var api1 = $easyzoom.filter('.easyzoom--with-thumbnails').data('easyZoom'); 6986 $('.thumbnails').on('click', 'a', function(e) { 6987 var $this = $(this); 6988 e.preventDefault(); 6989 // Use EasyZoom's `swap` method 6990 api1.swap($this.data('standard'), $this.attr('href')); 6991 }); 6992 6993 $('#playerID').click(function(){ 6994 var videoURL = $('#VdoID').attr('src'), 6995 dataplay = $('#VdoID').attr('data-play'); 6996 6997 //for check autoplay 6998 //if not set autoplay=1 6999 if(dataplay == 0 ){ 7000 $('#VdoID').attr('src',videoURL+'?autoplay=1'); 7001 $('#VdoID').attr('data-play',1); 7002 } 7003 else{ 7004 var videoURL = $('#VdoID').attr('src'); 7005 videoURL = videoURL.replace("?autoplay=1", ""); 7006 $('#VdoID').prop('src',''); 7007 $('#VdoID').prop('src',videoURL); 7008 7009 $('#VdoID').attr('data-play',0); 7010 } 7011 7012 }); 7013 7014 $(".product-photo-thumb-video").click(function(e){ 7015 e.preventDefault(); 7016 7017 var newEmbed = $(this).attr('href'); 7018 $("#featured-image-product").addClass("img-video"); 7019 $("#ProductPhotoImg").hide(); 7020 $("#featured-image-product .video").show(); 7021 $("#featured-image-product iframe").attr('src', newEmbed); 7022 $("#VdoID")[0].src += "&autoplay=1"; 7023 }); 7024 $(".product-single__thumbnail").click(function(evt){ 7025 evt.preventDefault(); 7026 $("#featured-image-product").removeClass("img-video"); 7027 $("#ProductPhotoImg").show(); 7028 $("#featured-image-product .video").hide(); 7029 $("#featured-image-product iframe").attr('src', ''); 7030 }); 7031 7032 if($('#product-meta .short-desc > div').length >= 1){ 7033 //console.log('div detected') 7034 var replacer = $('#product-meta .short-desc > div').contents(); 7035 $('#product-meta .short-desc > div').replaceWith(replacer); 7036 7037 var cAssured = $('.c-assured').detach(); 7038 cAssured.insertAfter('.meta-sds .stock-info'); 7039 } 7040 7041 7042 7043 $(".heading-toggle").click(function(){ 7044 $(this).parent().toggleClass("open") 7045 7046 }); 7047 }); 7048 </script>
7048 7049 7050 7051
7051<script type="application/json" id="ProductJson-Product"> 7052 7053 {"id":8144957800663,"title":"WSO138: Link Resmi Situs Slotgacor Gampang Wede Terpercaya","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eWSO138 memberikan link resmi situs slotgacor gampang wede terpercaya untuk semua pemain Indonesia yang akses login alternatif dan daftar akun baru sekarang."} 7054 </script>
7054 7055 7056
7056<script type="application/json" id="VariantJson-Product"> 7057 [ 7058 7059 { 7060 "incoming": false, 7061 "next_incoming_date": null 7062 } 7063 7064 ] 7065 </script>
7065 7066 7067 7068 7069 7070 </div> 7071 7072 7073
7073<script src="https://outerbloom.com/cdn/shopifycloud/storefront/assets/themes_support/option_selection-b017cd28.js" type="text/javascript"></script>
7073 7074 <style> 7075 .stamped-review-header-title, 7076 .stamped-review-header .author, 7077 .stamped-review-content-body, 7078 .stamped-sort-select, 7079 .stamped-review-header .verified-badge[data-type=buyer]:after, 7080 .stamped-review-header-byline, 7081 .stamped-review-reply-body {font-size: 14px!important;font-family: 'Barlow',sans-serif!important;} 7082 .stamped-review {margin-bottom: 0;} 7083 .stamped-review-body {padding-left: 65px;} 7084 .stamped-review:first-child {padding-top: 25px;} 7085 .stamped-review-content {clear: none;} 7086 .stamped-review-reply {margin: 15px 0 0 65px;background: #f2f2f2;border-left: none;} 7087 .stamped-review-reply-body {padding-left: 65px;} 7088 .stamped-review-header .author {text-transform: capitalize;} 7089 .stamped-questions .stamped-review-content {padding-left: 65px;} 7090 7091 .stamped-pagination {margin: 20px 0 0;} 7092 .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;} 7093 .stamped-pagination li a {color: #121212;padding: 13px 18px;vertical-align: middle;display: block;} 7094 .stamped-pagination li.active a {background-color: #ddd;font-weight: 400;} 7095 .stamped-pagination li:hover a {background: #ddd;} 7096 .stamped-pagination .next {border-right: 1px solid #ccc;} 7097 .stamped-pagination li:first-child {border-top-left-radius: 5px;border-bottom-left-radius: 5px;} 7098 .stamped-pagination li:last-child {border-top-right-radius: 5px;border-bottom-right-radius: 5px;} 7099 7100 #stamped-pagination-question span.page {display: inline-block;border: 1px solid #ccc;width: 47px;} 7101 #stamped-pagination-question span {font-size: 14px;} 7102 #stamped-pagination-question .page.active {padding: 12px;font-weight: 400;background: #ddd;} 7103 #stamped-pagination-question a, #stamped-pagination-question .page.active {color: #121212;padding: 13px 18px;vertical-align: middle;display: inline-block;} 7104 .stamped-pagination-deco {color: #121212;padding: 13px 18px;width: 47px;vertical-align: middle;display: inline-block;border: 1px solid #ccc;padding: 12px;} 7105 .stamped-pagination-prev, .stamped-pagination-next {position: inherit;} 7106 .stamped-pagination-prev a, .stamped-pagination-next a {width: auto!important;border: 1px solid #ccc;} 7107 7108 @media (max-width: 480px){ 7109 .stamped-review-reply {margin-left: 0!important;} 7110 select.stamped-sort-select {font-size: 13px!important;} 7111 } 7112 7113 #product-reviews .stamped-summary-ratings, #product-reviews .stamped-summary-actions, .stamped-content { 7114 display: block !important; 7115 } 7116 </style> 7117
7117<script> 7118 var selectCallback = function(variant, selector) { 7119 timber.productPage({ 7120 money_format: "Rp {{amount_no_decimals}}", 7121 variant: variant, 7122 selector: selector 7123 }); 7124 }; 7125 7126 jQuery(function($) { 7127 new Shopify.OptionSelectors('productSelect', { 7128 product: 7129 7130 7131 7132 7133 7134 7135 7136 {"id":8144957800663,"title":"WSO138: Link Resmi Situs Slotgacor Gampang Wede Terpercaya","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eWSO138 memberikan link resmi situs slotgacor gampang wede terpercaya untuk semua pemain Indonesia yang akses login alternatif dan daftar akun baru sekarang."}, 7137 onVariantSelected: selectCallback, 7138 enableHistoryState: true 7139 }); 7140 7141 // Add label if only one product option and it isn't 'Title'. Could be 'Size'. 7142 7143 7144 // Hide selectors if we only have 1 variant and its title contains 'Default'. 7145 7146 $('.selector-wrapper').hide(); 7147 7148 }); 7149 </script>
7149 7150 7151 7152 7153
7153<script type="application/ld+json"> 7154 { 7155 "@context": "http://schema.org", 7156 "@type": "Product", 7157 "offers": { 7158 "@type": "Offer", 7159 "availability":"https://schema.org/InStock", 7160 "price": 835000, 7161 "priceValidUntil": "05-10-2025", 7162 "priceCurrency": "IDR", 7163 "url": "https://wso138wede.com/" 7164 }, 7165 "brand": { 7166 "@type": "Brand", 7167 "name": "Outerbloom Florist" 7168 }, 7169 "sku": "8144957800663", 7170 "gtin13": "Jawa", 7171 "name": "WSO138: Link Resmi Situs Slotgacor Gampang Wede Terpercaya", 7172 "description": "WSO138 memberikan link resmi situs slotgacor gampang wede terpercaya untuk semua pemain Indonesia yang akses login alternatif dan daftar akun baru sekarang.", 7173 "category": "WSO138 memberikan link resmi situs slotgacor gampang wede terpercaya untuk semua pemain Indonesia yang akses login alternatif dan daftar akun baru sekarang.", 7174 "url": "https://wso138wede.com/", 7175 "image": { 7176 "@type": "ImageObject", 7177 "url": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426", 7178 "image": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426", 7179 "name": "WSO138: Link Resmi Situs Slotgacor Gampang Wede Terpercaya", 7180 "width": 1024, 7181 "height": 1024 7182 } 7183 } 7184 </script>
7184 7185 7186 7187 7188 7189 7190
7190<script id="bss-ltap-hide-price" type="text/javascript" > 7191 !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)}))}
7191)),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)}
7191)),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()}
7191if("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)}
7191if(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");
7191c&&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
7191-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");
7191i&&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
7191--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
7191opify.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");
7191e.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=
7191o.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");
7191if(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();
7191let 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()}]); 7192 </script>
7192 7193 7194 </main> 7195 7196 <div id="shopify-section-newsletter" class="shopify-section"><br> 7197 <style> 7198 #shopify-section-newsletter { 7199 background: url('https://assetevos.io/images/2026/06/25/garis-keras-evs.png'); 7200 background-attachment: fixed; 7201 margin-bottom: 0; 7202 } 7203 input:-webkit-autofill, 7204 input:-webkit-autofill:hover, 7205 input:-webkit-autofill:active, 7206 input:-webkit-autofill:focus { 7207 -webkit-box-shadow:0 0 0 50px white inset; 7208 -webkit-text-fill-color: #ffffff; 7209 } 7210 .section-newsletter { 7211 max-width: 800px; 7212 margin: auto; 7213 padding: 50px 0; 7214 } 7215 .section-newsletter h2 { 7216 font-weight: 700; 7217 font-size: 24px; 7218 } 7219 .section-newsletter input[type="email"] { 7220 width: 100%; 7221 text-align: center; 7222 border: none; 7223 border-bottom: 1px solid #ffffff; 7224 font-size: 16px; 7225 color: #757575; 7226 background-color: #eeeeee; 7227 } 7228 .section-newsletter .row label { 7229 font-size: 14px; 7230 cursor: pointer; 7231 } 7232 .section-newsletter .radio-inline input { 7233 width: auto; 7234 } 7235 .section-newsletter .btn { 7236 width: 130px; 7237 border: 1px solid #ffffff; 7238 box-shadow: none; 7239 font-size: 16px; 7240 font-weight: 500; 7241 text-transform: uppercase; 7242 } 7243 .section-newsletter form { 7244 margin: 30px 0 60px; 7245 } 7246 .section-newsletter input[type="radio"] { 7247 position: absolute; 7248 width: 1px; 7249 height: 1px; 7250 } 7251 .section-newsletter [type="radio"]:checked + label, .section-newsletter [type="radio"]:not(:checked) + label { 7252 position: relative; 7253 padding-left: 28px; 7254 cursor: pointer; 7255 line-height: 20px; 7256 display: inline-block; 7257 color: #666; 7258 } 7259 .section-newsletter [type="radio"]:checked + label:before, .section-newsletter [type="radio"]:not(:checked) + label:before { 7260 content: ''; 7261 position: absolute; 7262 left: 0; 7263 top: 0; 7264 width: 18px; 7265 height: 18px; 7266 border: 1px solid #ddd; 7267 border-radius: 100%; 7268 background: #fff; 7269 } 7270 .section-newsletter [type="radio"]:checked + label:after, .section-newsletter [type="radio"]:not(:checked) + label:after { 7271 content: ''; 7272 width: 12px; 7273 height: 12px; 7274 background: #ffffff; 7275 position: absolute; 7276 top: 3px; 7277 left: 3px; 7278 border-radius: 100%; 7279 -webkit-transition: all 0.2s ease; 7280 transition: all 0.2s ease; 7281 } 7282 .section-newsletter [type="radio"]:not(:checked) + label:after { 7283 opacity: 0; 7284 -webkit-transform: scale(0); 7285 transform: scale(0); 7286 } 7287 .opt-newsletter {display:none;} 7288 .footer-newsletter p, .footer-newsletter p a { 7289 color: #757575; 7290 } 7291 @media (max-width:991px){ 7292 .section-newsletter h2 { 7293 font-size: 32px; 7294 } 7295 .section-newsletter input { 7296 width: 300px; 7297 font-size: 14px; 7298 } 7299 .section-newsletter { 7300 padding: 50px 20px; 7301 } 7302 } 7303 @media (max-width: 480px){ 7304 .section-newsletter input[type="email"] {font-size: 16px;} 7305 } 7306 </style> 7307 <style> 7308 .icon-img-footer { 7309 width: 80px; 7310 padding: 0px 5px; 7311 } 7312 @media (min-width: 768px) { 7313 .icon-img-footer { 7314 width: 120px; 7315 } 7316 } 7317 @media (min-width: 992px) { 7318 .icon-img-footer { 7319 width: 120px; 7320 } 7321 } 7322 7323 .button-login-daftar { 7324 display: grid; 7325 grid-template-columns: repeat(2, 1fr); 7326 font-weight: 700; 7327 } 7328 .button-login-daftar a { 7329 text-align: center; 7330 } 7331 .login, 7332 .register { 7333 color: #00BFFF; 7334 padding: 15px 10px; 7335 font-size: 23px; 7336 } 7337 .login, 7338 .login-button { 7339 background: linear-gradient(to bottom,#000000 0,#000000 100%); 7340 border: 2px solid #00BFFF; 7341 } 7342 .register, 7343 .register-button { 7344 background: linear-gradient(to bottom,#000000 0,#000000 100%); 7345 border: 2px solid #00BFFF; 7346 } 7347 7348 7349 7350 </style> 7351 7352 <!-- wp:html --> 7353
7353<script> 7354 document.addEventListener('DOMContentLoaded', 7355 function(){const faqItems=document.querySelectorAll('.faq-item'); 7356 faqItems.forEach(item=>{const question=item.querySelector('.faq-question'); 7357 question.addEventListener('click', 7358 ()=>{const isActive=item.classList.contains('active'); 7359 faqItems.forEach(otherItem=>{otherItem.classList.remove('active')}); 7360 if(!isActive){item.classList.add('active')}})})}); 7361 </script>
7361 7362 7363 7364 <div class="page__overlay" data-view="offCanvasNavToggle" data-off-canvas="close" bis_skin_checked="1"> 7365 </div> 7366 <div class="faq-section"> 7367 <h2>FAQ TERBAIK WSO138</h2> 7368 <div class="faq-container"> 7369 <div class="faq-item"> 7370 <button class="faq-question">1. Apa itu WSO138?<span></span></button> 7371 <div class="faq-answer"><p>WSO138 merupakan link yang menghadirkan layanan login judi bola online dengan pilihan pasar pertandingan yang lengkap serta beragam odds kompetitif. Pemain dapat mengikuti berbagai liga populer dunia melalui tampilan yang mudah digunakan dan proses akses yang praktis.</p></div> 7372 </div> 7373 <div class="faq-item"> 7374 <button class="faq-question">2. Mengapa banyak pemain memilih WSO138 untuk taruhan bola online?<span></span></button> 7375 <div class="faq-answer"><p>Banyak pemain memilih WSO138 karena menawarkan variasi odds yang kompetitif, pilihan pertandingan yang lengkap, proses login yang cepat, serta pengalaman bermain yang nyaman melalui perangkat desktop maupun smartphone.<p></div> 7376 </div> 7377 <div class="faq-item"> 7378 <button class="faq-question">3. Apa keuntungan bermain di WSO138?<span></span></button> 7379 <div class="faq-answer"><p>Beragam pilihan odds memberikan fleksibilitas kepada pemain dalam menentukan strategi taruhan sesuai analisis pertandingan. Dengan variasi pasar yang tersedia, pengguna memiliki lebih banyak kesempatan memilih opsi yang dianggap paling sesuai.</p></div> 7380 </div> 7381 <div class="faq-item"> 7382 <button class="faq-question">4. Apakah WSO138 menyediakan akses selama 24 jam?<span></span></button> 7383 <div class="faq-answer"><p>Ya, WSO138 menyediakan akses yang dapat digunakan kapan saja sehingga pemain dapat mengikuti jadwal pertandingan dari berbagai liga internasional tanpa terbatas oleh waktu.</p></div> 7384 </div> 7385 <div class="faq-item"> 7386 <button class="faq-question">5. Mengapa WSO138 menjadi pilihan bagi pecinta judi bola online?<span></span></button> 7387 <div class="faq-answer"><p>Karena WSO138 menghadirkan kombinasi akses yang mudah, pilihan pertandingan yang lengkap, beragam odds terbaik, serta pengalaman pemain yang dirancang agar praktis dan nyaman bagi penggemar taruhan sepak bola online.</p></div> 7388 </div> 7389 7390 </div> 7391 7392 </div> 7393 7394 </div> 7395 7396 7397 <div class="overlay overlay-cart"></div> 7398 <div id="CartDrawer" class="drawer drawer--right"> 7399 <div class="drawer__header pl-2 pr-2"> 7400 <div class="drawer__icon-cart display-table-cell"> 7401 <a href="/cart" class=""> 7402 <svg class="icon icon-cart" version="1.1" xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="32" height="32" viewBox="0 0 32 32"> <path fill="#fff" d="M13.638 23.203c0 0 3.5-2.113 3.502-4.11 0.002-2.304-2.689-3.537-3.497-1.76-0.916-1.778-3.493-1.714-3.497 0.59-0.003 1.999 3.491 5.28 3.491 5.28z"></path> <path fill="#fff" d="M8.112 9.809v16.662l11.063 2.491v-17.58l-11.063-1.573zM7.74 8.858l11.925 1.696c0.213 0.030 0.372 0.218 0.372 0.44v18.519c0 0.284-0.254 0.495-0.523 0.434l-11.925-2.685c-0.198-0.045-0.339-0.225-0.339-0.434v-17.53c0-0.27 0.231-0.477 0.49-0.44z"></path> <path fill="#fff" d="M23.7 10.046l-3.275 0.146-0.388 0.897v17.656l3.664-2.174v-16.526zM24.346 27.214l-4.526 2.685c-0.287 0.17-0.646-0.043-0.646-0.385v-18.519l0.037-0.181 0.534-1.235c0.067-0.154 0.212-0.256 0.375-0.263l3.991-0.178c0.245-0.011 0.45 0.191 0.45 0.444v17.247c0 0.159-0.082 0.306-0.216 0.385z"></path> <path fill="#000" d="M20.772 27.081l-0.501 2.383c-0.050 0.24-0.28 0.392-0.512 0.34s-0.38-0.289-0.33-0.528l0.569-2.707v-16.588c0-0.245 0.193-0.444 0.431-0.444s0.431 0.199 0.431 0.444v16.215l3.296 0.189c0.238 0.014 0.42 0.223 0.406 0.468s-0.217 0.433-0.454 0.419l-3.335-0.191z"></path> <path fill="#fff" d="M20.772 27.081l-0.501 2.383c-0.050 0.24-0.28 0.392-0.512 0.34s-0.38-0.289-0.33-0.528l0.569-2.707v-16.588c0-0.245 0.193-0.444 0.431-0.444s0.431 0.199 0.431 0.444v16.215l3.296 0.189c0.238 0.014 0.42 0.223 0.406 0.468s-0.217 0.433-0.454 0.419l-3.335-0.191z"></path> <path fill="#fff" d="M11.336 8.354l-0.257-0.333c-0.243-0.315 0.012-0.774 0.398-0.717l12.51 1.838c0.236 0.035 0.399 0.26 0.366 0.503s-0.252 0.412-0.487 0.377l-11.436-1.68 0.056 0.073c0.209 0.27 0.052 0.672-0.281 0.718l-4.467 0.607c-0.236 0.032-0.452-0.139-0.484-0.383s0.135-0.467 0.371-0.499l3.711-0.504z"></path> <path fill="#fff" d="M17.152 11.344c0.026-0.003 0.053-0.005 0.079-0.005 0.357 0 0.645 0.297 0.645 0.665s-0.288 0.665-0.645 0.665c-0.322 0-0.59-0.245-0.637-0.565-0.383-0.45-0.515-1.321-0.521-2.536-0.003-0.556 0.026-1.149 0.076-1.739 0.028-0.339 0.057-0.603 0.074-0.735 0.195-2.391-2.008-3.379-3.568-1.658-0.64 0.707-1.041 1.855-1.266 3.412-0.092 0.634-0.137 1.111-0.194 2.024 0.107 0.119 0.172 0.278 0.172 0.453 0 0.342-0.251 0.624-0.573 0.661-0.031 0.005-0.064 0.007-0.097 0.005-0.015-0.001-0.029-0.003-0.044-0.
7402005-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> 7403 </a> 7404 </div> 7405 <div class="drawer__title h4">Keranjang Belanja</div> 7406 <div class="drawer__close js-drawer-close"> 7407 <button type="button"> 7408 <svg class="icon icon-close" version="1.1" xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="32" height="32" viewBox="0 0 32 32"> 7409 <title>icon-close</title> 7410 <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> 7411 </svg> 7412 </button> 7413 </div> 7414 </div> 7415 <div id="CartContainer" class="p-2"></div> 7416 </div> 7417 7418
7418<script> 7419 7420 </script>
7420 7421
7421<script src="https://outerbloom.com/cdn/shop/t/138/assets/handlebars.min.js?v=79044469952368397291752652415" defer></script>
7421 7422 <!-- /snippets/ajax-cart-template.liquid --> 7423 7424
7424<script id="CartTemplate" type="text/template"> 7425 7426 <form action="/cart" method="post" novalidate class="cart ajaxcart"> 7427 <div class="ajaxcart__inner" {{ cart.item_count }}> 7428 {{#items}} 7429 <div class="ajaxcart__product"> 7430 <div class="ajaxcart__row" data-line="{{line}}"> 7431 <div class="grid"> 7432 <div class="grid__item one-quarter"> 7433 <a href="{{url}}" class="ajaxcart__product-image"><img src="{{img}}" alt=""></a> 7434 </div> 7435 <div class="grid__item three-quarters"> 7436 <p class="d-block mb-3"> 7437 <a class="h4 d-block mb-2" href="{{url}}" class="ajaxcart__product-name">{{name}}</a> 7438 {{#if variation}} 7439 <span class="ajaxcart__product-meta p">{{variation}}</span> 7440 {{/if}} 7441 {{#properties}} 7442 {{#each this}} 7443 {{#if this}} 7444 <span class="ajaxcart__product-meta p hide">{{@key}}: {{this}}</span> 7445 {{/if}} 7446 {{/each}} 7447 {{/properties}} 7448 7449 </p> 7450 <div class="grid--full display-table"> 7451 <div class="grid__item display-table-cell one-half"> 7452 <div class="ajaxcart__qty"> 7453 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}" data-line="{{line}}"> 7454 <svg version="1.1" xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-minus</title><path d="M6.667 16.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h18.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-18.667z"></path></svg> 7455 <span class="visually-hidden">Kurangi jumlah barang</span> 7456 </button> 7457 <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]*"> 7458 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-line="{{line}}" data-qty="{{itemAdd}}"> 7459 <svg version="1.1" xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg> 7460 <span class="visually-hidden">Tambahkan jumlah barang</span> 7461 </button> 7462 </div> 7463 </div> 7464 <div class="grid__item display-table-cell one-half text-right"> 7465 {{#if discountsApplied}} 7466 <small class="ajaxcart-item__price-strikethrough"><s>{{{originalLinePrice}}}</s></small> 7467 <br><span class="h4">{{{linePrice}}}</span> 7468 {{else}} 7469 <span class="h4">{{{linePrice}}}</span> 7470 {{/if}} 7471 </div> 7472 </div> 7473 {{#if discountsApplied}} 7474 <div class="grid--full display-table"> 7475 <div class="grid__item text-right"> 7476 {{#each discounts}} 7477 <small class="ajaxcart-item__discount">{{ this.title }}</small><br> 7478 {{/each}} 7479 </div> 7480 </div> 7481 {{/if}} 7482 </div> 7483 </div> 7484 </div> 7485 </div> 7486 </div> 7487 </div> 7488 {{/items}} 7489 </div> 7490 <div class="ajaxcart__footer"> 7491 <div class="grid--full cart-subtotal py-2"> 7492 <p>Subtotal</p> 7493 <h3 class="primary">{{{totalPrice}}}</h3> 7494 {{#if totalCartDiscount}} 7495 <p class="ajaxcart__savings text-center"><em>{{{totalCartDiscount}}}</em></p> 7496 {{/if}} 7497 </div> 7498 7499 <a href="/cart" class="btn btn-cta view-more btn-block cart__checkout mt-2">Checkout</a> 7500 7501 <p class="cart-checkout-shipping hide">Free Ongkir dengan belanja di atas Rp.10.000 <a href="/pages/pengiriman">detail</a></p> 7502 </div> 7503 </form> 7504 7505 </script>
7505 7506
7506<script id="AjaxQty" type="text/template"> 7507 7508 <div class="ajaxcart__qty"> 7509 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}"> 7510 <svg version="1.1" xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="24" height="24" viewBox="0 0 32 32"> 7511 <title>icon-minus</title> 7512 <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> 7513 </svg> 7514 <span class="visually-hidden">Kurangi jumlah barang</span> 7515 </button> 7516 <input type="text" class="ajaxcart__qty-num" value="{{itemQty}}" min="0" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*"> 7517 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-qty="{{itemAdd}}"> 7518 <svg version="1.1" xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg> 7519 <span class="visually-hidden">Tambahkan jumlah barang</span> 7520 </button> 7521 </div> 7522 7523 </script>
7523 7524
7524<script id="JsQty" type="text/template"> 7525 7526 <div class="js-qty mx-auto mt-2"> 7527 <button type="button" class="js-qty__adjust js-qty__adjust--minus" data-id="{{key}}" data-qty="{{itemMinus}}"> 7528 <svg version="1.1" xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-minus</title><path d="M6.667 16.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h18.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-18.667z"></path></svg> 7529 <span class="visually-hidden">Kurangi jumlah barang</span> 7530 </button> 7531 <input type="text" class="js-qty__num" value="{{itemQty}}" min="1" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*" name="{{inputName}}" id="{{inputId}}"> 7532 <button type="button" class="js-qty__adjust js-qty__adjust--plus" data-id="{{key}}" data-qty="{{itemAdd}}"> 7533 <svg version="1.1" xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg> 7534 <span class="visually-hidden">Tambahkan jumlah barang</span> 7535 </button> 7536 </div> 7537 7538 </script>
7538 7539 7540 <style> 7541 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty button, 7542 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty button, 7543 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty button {display: none;} 7544 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input, 7545 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input, 7546 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;opacity: 0.5;} 7547 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input, 7548 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input, 7549 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;} 7550 </style> 7551
7551<script src="https://outerbloom.com/cdn/shop/t/138/assets/ajax-cart.js?v=51128912329657147331752652452" defer></script>
7551 7552
7552<script> 7553 jQuery(function($) { 7554 ajaxCart.init({ 7555 formSelector: '#AddToCartForm', 7556 cartContainer: '#CartContainer', 7557 addToCartSelector: '#AddToCartXX', 7558 cartCountSelector: '#CartCount, #CartCount2', 7559 cartCostSelector: '#CartCost', 7560 moneyFormat: "Rp {{amount_no_decimals}}" 7561 }); 7562 }); 7563 7564 jQuery(document.body).on('afterCartLoad.ajaxCart', function(evt, cart) { 7565 // Bind to 'afterCartLoad.ajaxCart' to run any javascript after the cart has loaded in the DOM 7566 timber.RightDrawer.open(); 7567 }); 7568 </script>
7568 7569 7570 7571 7572 7573 <style> 7574 /** Search AutoComplete **/ 7575 .resultsearch .ui-menu-item[data-cat="Collection"], 7576 .resultsearch .ui-menu-item[data-cat="Collection"] {display: none;} 7577 .resultsearch .ui-widget.ui-widget-content { 7578 width: 100%; 7579 top: 48px; 7580 border: none; 7581 box-shadow: 0 4px 8px rgba(255, 255, 255, 0.3); 7582 } 7583 .resultsearch .ui-menu-item {text-align: left;} 7584 .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;} 7585 .ui-state-active { 7586 border: none!important; 7587 background-color: #fafafa!important; 7588 color: #000!important; 7589 } 7590 .ui-menu-item a[data-cat="Collection"] {padding: 5px 12px;} 7591 .ui-menu .ui-menu-item {line-height: normal;} 7592 </style> 7593
7593<script> 7594 $(window).load(function(){ 7595 7596 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;} 7597 7598 $.widget("custom.catcomplete", $.ui.autocomplete, { 7599 _renderMenu: function (ul, items) { 7600 // have search reults split up in categories 7601 var that = this, 7602 currentCategory = ""; 7603 $.each(items, function (index, item) { 7604 if (item.category != currentCategory) { 7605 ul.append("<li class='ui-autocomplete-category' data-cat=" + item.category + ">" + "<span>" + item.category + "</span>" + "</li>"); 7606 currentCategory = item.category; 7607 } 7608 that._renderItemData(ul, item); 7609 }); 7610 } 7611 }); 7612 7613 // higlight searched for term 7614 $.ui.autocomplete.prototype._renderItem = function( ul, item ) { 7615 var term = this.element.val(), 7616 html = item.label.replace( term, "<b>$&</b>" ); 7617 return $( "<li>" ) 7618 .append(format(item)) 7619 .appendTo( ul ); 7620 }; 7621 7622 7623 var data = [ 7624 { label: "< Rp 500.000", category: "Collection", url: "/collections/rp-500-000", images: " ", price: " " },{ label: "> Rp 1.000.000", category: "Collection", url: "/collections/rp-1-000-000", images: " ", price: " " },{ label: "Acrylic Jewelry Box", category: "Collection", url: "/collections/acrylic-jewelry-box", images: " ", price: " " },{ label: "Ajmal", category: "Collection", url: "/collections/ajmal", images: " ", price: " " },{ label: "Alamat Rumah Duka", category: "Collection", url: "/collections/rumah-duka", images: " ", price: " " },{ label: "Anggrek Bulan", category: "Collection", url: "/collections/anggrek-bulan", images: " ", price: " " },{ label: "Anniversary Gift", category: "Collection", url: "/collections/kado-anniversary", images: " ", price: " " },{ label: "Aquarius âï¸ 20Jan - 18Feb", category: "Collection", url: "/collections/kado-untuk-zodiak-aquarius", images: " ", price: " " },{ label: "Aries âï¸ 21March - 19April", category: "Collection", url: "/collections/kado-untuk-zodiak-aries", images: " ", price: " " },{ label: "Armaf", category: "Collection", url: "/collections/armaf", images: " ", price: " " },{ label: "Aromatherapy Diffuser", category: "Collection", url: "/collections/aromatherapy-diffuser", images: " ", price: " " },{ label: "Artisan Soap", category: "Collection", url: "/collections/artisan-soap", images: " ", price: " " },{ label: "Artisan Tea", category: "Collection", url: "/collections/artisan-tea", images: " ", price: " " },{ label: "AsmaraKu", category: "Collection", url: "/collections/asmaraku", images: " ", price: " " },{ label: "Atkinsons", category: "Collection", url: "/collections/atkinsons", images: " ", price: " " },{ label: "Autumn by Outerbloom", category: "Collection", url: "/collections/autumn-by-outerbloom", images: " ", price: " " },{ label: "Autumn by Outerbloom Chinese New Year", category: "Collection", url: "/collections/autumn-by-outerbloom-chinese-new-year", images: " ", price: " " },{ label: "Autumn by Outerbloom Christmas", category: "Collection", url: "/collections/autumn-by-outerbloom-christmas", images: " ", price: " " },{ label: "Autumn by Outerbloom Luar Jadetabek", category: "Collection", url: "/collections/autumn-by-outerbloom-luar-jadetabek", images: " ", price: " " },{ label: "Autumn by Outerbloom Ramadan", category: "Collection", url: "/collections/autumn-by-outerbloom-ramadan", images: " ", price: " " },{ label: "Autumn Pop", category: "Collection", url: "/collections/autumn-pop", images: " ", price: " " },{ label: "Bachelorette", category: "Collection", url: "/collections/bachelorette", images: " ", price: " " },{ label: "Bag Newborn Hampers", category: "Collection", url: "/collections/bag-newborn-hampers", images: " ", price: " " },{ label: "Balon", category: "Collection", url: "/collections/balon", images: " ", price: " " },{ label: "Beauty Package", category: "Collection", url: "/collections/beauty-package", images: " ", price: " " },{ label: "Best Deal", category: "Collection", url: "/collections/best-deal", images: " ", price: " " },{ label: "Best Seller", category: "Collection", url: "/collections/best-seller", images: " ", price: " " },{ label: "Best Valentine's Deals", category: "Collection", url: "/collections/bes-valentines-deals", images: " ", price: " " },{ label: "Best Value Newborn Hampers Collection", category: "Collection", url: "/collections/best-value-newborn-hampers-collection", images: " ", price: " " },{ label: "Black Tea", category: "Collection", url: "/collections/black-tea", images: " ", price: " " },{ label: "Blessing Hampers", category: "Collection", url: "/collections/blessing-hampers", images: " ", price: " " },{ label: "Bloom Box", category: "Collection", url: "/collections/bloom-box", images: " ", price: " " },{ label: "Bloomcard", category: "Collection", url: "/collections/bloomcard", images: " ", price: " " },{ label: "Boutonniere", category: "Collection", url: "/collections/boutonniere", images: " ", price: " " },{ label: "Bracelet", category: "Collection", url: "/collections/gelang", images: " ", price: " " },{ label: "Buket Bunga Bali", category: "Collection", url: "/collections/buket-bunga-bali", images: " ", price: " " },{ label: "Buket Bunga Bandung", category: "Collection", url: "/collections/buket-bunga-bandung", images: " ", price: " " },{ label: "Buket Bunga Batam", category: "Collection", url: "/collections/buket-bunga-batam", images: " ", price: " " },{ label: "Buket Bunga Demak", category: "Collection", url: "/collections/buket-bunga-demak", images: " ", price: " " },{ label: "Buket Bunga Fresh", category: "Collection", url: "/collections/buket-bunga", images: " ", price: " " },{ label: "Buket Bunga Jepara", category: "Collection", url: "/collections/buket-bunga-jepara", images: " ", price: " " },{ label: "Buket Bunga Medan", category: "Collection", url: "/collections/buket-bunga-medan", images: " ", price: " " },{ label: "Buket Bunga Nusantara", category: "Collection", url: "/collections/buket-bunga-nusantara", images: " ", price: " " },{ label: "Buket Bunga Semarang", category: "Collection", url: "/collections/buket-bunga-semarang", images: " ", price: " " },{ label: "Buket Bunga Sidoarjo", category: "Collection", url: "/collections/buket-bunga-sidoarjo", images: " ", price: " " },{ label: "Buket Bunga Surabaya", category: "Collection", url: "/collections/buket-bunga-surabaya", images: " ", price: " " },{ label: "Buket Bunga Tangerang", category: "Collection", url: "/collections/buket-bunga-tangerang", images: " ", price: " " },{ label: "Buket Bunga Uang", category: "Collection", url: "/collections/buket-bunga-uang", images: " ", price: " " },{ label: "Buket Bunga Valentine", category: "Collection", url: "/collections/buket-bunga-valentine", images: " ", price: " " },{ label: "Buket Bunga Yogyakarta", category: "Collection", url: "/collections/buket-bunga-jogja", images: " ", price: " " },{ label: "Bunga Anggrek Bali", category: "Collection", url: "/collections/bunga-anggrek-bali", images: " ", price: " " },{ label: "Bunga Anggrek Bandung", category: "Collection", url: "/collections/bunga-anggrek-bandung", images: " ", price: " " },{ label: "Bunga Anggrek Surabaya", category: "Collection", url: "/collections/bunga-anggrek-surabaya", images: " ", price: " " },{ label: "Bunga Anniversary", category: "Collection", url: "/collections/bunga-anniversary", images: " ", price: " " },{ label: "Bunga Artificial", category: "Collection", url: "/collections/bunga-artificial", images: " ", price: " " },{ label: "Bunga Buket", category: "Collection", url: "/collections/bunga-buket", images: " ", price: " " },{ label: "Bunga Carnations Bali", category: "Collection", url: "/collections/bunga-carnations-bali", images: " ", price: " " },{ label: "Bunga Carnations Bandung", category: "Collection", url: "/collections/bunga-carnations-bandung", images: " ", price: " " },{ label: "Bunga Carnations Surabaya", category: "Collection", url: "/collections/bunga-carnations-surabaya", images: " ", price: " " },{ label: "Bunga Daisy Bali", category: "Collection", url: "/collections/bunga-daisy-bali", images: " ", price: " " },{ label: "Bunga Daisy Bandung", category: "Collection", url: "/collections/bunga-daisy-bandung", images: " ", price: " " },{ label: "Bunga Daisy Surabaya", category: "Collection", url: "/collections/bunga-daisy-surabaya", images: " ", price: " " },{ label: "Bunga Gerbera Bali", category: "Collection", url: "/collections/bunga-gerbera-bali", images: " ", price: " " },{ label: "Bunga Gerbera Bandung", category: "Collection", url: "/collections/bunga-gerbera-bandung", images: " ", price: " " },{ label: "Bunga Gerbera Surabaya", category: "Collection", url: "/collections/bunga-gerbera-surabaya", images: " ", price: " " },{ label: "Bunga Imlek", category: "Collection", url: "/collections/rangkaian-bunga-tahun-baru-imlek", images: " ", price: " " },{ label: "Bunga Lebaran", category: "Collection", url: "/collections/rangkaian-bunga-lebaran", images: " ", price: " " },{ label: "Bunga Lily Bali", category: "Collection", url: "/collections/bunga-lily-bali", images: " ", price: " " },{ label: "Bunga Lily Bandung", category: "Collection", url: "/collections/bunga-lily-bandung", images: " ", price: " " },{ label: "Bunga Lily Surabaya", category: "Collection", url: "/collections/bunga-lily-surabaya", images: " ", price: " " },{ label: "Bunga Matahari Bali", category: "Collection", url: "/collections/bunga-matahari-bali", images: " ", price: " " },{ label: "Bunga Matahari Bandung", category: "Collection", url: "/collections/bunga-matahari-bandung", images: " ", price: " " },{ label: "Bunga Matahari Surabaya", category: "Collection", url: "/collections/bunga-matahari-surabaya", images: " ", price: " " },{ label: "Bunga Mawar Bali", category: "Collection", url: "/collections/bunga-mawar-bali", images: " ", price: " " },{ label: "Bunga Mawar Bandung", category: "Collection", url: "/collections/bunga-mawar-bandung", images: " ", price: " " },{ label: "Bunga Mawar Surabaya", category: "Collection", url: "/collections/bunga-mawar-surabaya", images: " ", price: " " },{ label: "Bunga Meja", category: "Collection", url: "/collections/bunga-meja", images: " ", price: " " },{ label: "Bunga Meja Bali", category: "Collection", url: "/collections/bunga-meja-bali", images: " ", price: " " },{ label: "Bunga Meja Bandung", category: "Collection", url: "/collections/bunga-meja-bandung", images: " ", price: " " },{ label: "Bunga Meja Batam", category: "Collection", url: "/collections/bunga-meja-batam", images: " ", price: " " },{ label: "Bunga Meja Jepara", category: "Collection", url: "/collections/bunga-meja-jepara", images: " ", price: " " },{ label: "Bunga Meja Medan", category: "Collection", url: "/collections/bunga-meja-medan", images: " ", price: " " },{ label: "Bunga Meja Semarang", category: "Collection", url: "/collections/bunga-meja-semarang", images: " ", price: " " },{ label: "Bunga Meja Sidoarjo", category: "Collection", url: "/collections/bunga-meja-sidoarjo", images: " ", price: " " },{ label: "Bunga Meja Surabaya", category: "Collection", url: "/collections/bunga-meja-surabaya", images: " ", price: " " },{ label: "Bunga Meja Tangerang", category: "Collection", url: "/collections/bunga-meja-tangerang", images: " ", price: " " },{ label: "Bunga Meja Yogyakarta", category: "Collection", url: "/collections/bunga-meja-jogja", images: " ", price: " " },{ label: "Bunga Modern Pastel Bali", category: "Collection", url: "/collections/bunga-modern-pastel-bali", images: " ", price: " " },{ label: "Bunga Modern Pastel Bandung", category: "Collection", url: "/collections/bunga-modern-pastel-bandung", images: " ", price: " " },{ label: "Bunga Modern Pastel Medan", category: "Collection", url: "/collections/bunga-modern-pastel-medan", images: " ", price: " " },{ label: "Bunga Modern Pastel Semarang", category: "Collection", url: "/collections/bunga-modern-pastel-semarang", images: " ", price: " " },{ label: "Bunga Modern Pastel Surabaya", category: "Collection", url: "/collections/bunga-modern-pastel-surabaya", images: " ", price: " " },{ label: "Bunga Modern Pastel Yogyakarta", category: "Collection", url: "/collections/bunga-modern-pastel-yogyakarta", images: " ", price: " " },{ label: "Bunga Natal", category: "Collection", url: "/collections/rangkaian-bunga-christmas", images: " ", price: " " },{ label: "Bunga Papan", category: "Collection", url: "/collections/bunga-papan", images: " ", price: " " },{ label: "Bunga Pernikahan", category: "Collection", url: "/collections/bunga-pernikahan", images: " ", price: " " },{ label: "Bunga Plastik", category: "Collection", url: "/collections/bunga-plastik", images: " ", price: " " },{ label: "Bunga Tulip", category: "Collection", url: "/collections/bunga-tulip", images: " ", price: " " },{ label: "Bunga Ulang Tahun", category: "Collection", url: "/collections/bunga-ulang-tahun", images: " ", price: " " },{ label: "Bunga Wisuda", category: "Collection", url: "/collections/karangan-bunga-wisuda", images: " ", price: " " },{ label: "Cake", category: "Collection", url: "/collections/kue", images: " ", price: " " },{ label: "Cake", category: "Collection", url: "/collections/cake", images: " ", price: " " },{ label: "Cake Sameday Delivery", category: "Collection", url: "/collections/cake-sameday-delivery", images: " ", price: " " },{ label: "Cake, Hampers & Gifts", category: "Collection", url: "/collections/cake-hampers", images: " ", price: " " },{ label: "Cancer âï¸ 22June - 22July", category: "Collection", url: "/collections/kado-untuk-zodiak-cancer", images: " ", price: " " },{ label: "Capricorn âï¸ 21Dec - 19Jan", category: "Collection", url: "/collections/kado-untuk-zodiak-capricorn", images: " ", price: " " },{ label: "Care Packages", category: "Collection", url: "/collections/toko-parcel-murah", images: " ", price: " " },{ label: "Care Packages (Keluarga, Sahabat, Karyawan)", category: "Collection", url: "/collections/sehat-bebas-corona", images: " ", price: " " },{ label: "Carnations", category: "Collection", url: "/collections/bunga-anyelir", images: " ", price: " " },{ label: "Celebration", category: "Collection", url: "/collections/celebration", images: " ", price: " " },{ label: "Chléa Paperie", category: "Collection", url: "/collections/chlea-paperie", images: " ", price: " " },{ label: "Chocodot", category: "Collection", url: "/collections/chocodot", images: " ", price: " " },{ label: "Christmas", category: "Collection", url: "/collections/christmas", images: " ", price: " " },{ label: "Classic Cake", category: "Collection", url: "/collections/classic-cake", images: " ", price: " " },{ label: "Classic CNY Hampers", category: "Collection", url: "/collections/classic-cny-hampers", images: " ", price: " " },{ label: "Classic CNY Hampers Luar Jabodetabek", category: "Collection", url: "/collections/classic-cny-hampers-luar-jabodetabek", images: " ", price: " " },{ label: "Classic Hampers", category: "Collection", url: "/collections/classic-hampers", images: " ", price: " " },{ label: "Classic Hampers Luar Jadetabek", category: "Collection", url: "/collections/classic-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Classic Style Flowers", category: "Collection", url: "/collections/classic-style-flowers", images: " ", price: " " },{ label: "Cokelat", category: "Collection", url: "/collections/permen-coklat", images: " ", price: " " },{ label: "Collection List", category: "Collection", url: "/collections/collection-list", images: " ", price: " " },{ label: "Condolences", category: "Collection", url: "/collections/axa-condolences", images: " ", price: " " },{ label: "Congratulations", category: "Collection", url: "/collections/rangkaian-bunga-ucapan-selamat", images: " ", price: " " },{ label: "Corporate Gifts", category: "Collection", url: "/collections/corporate-gifts", images: " ", price: " " },{ label: "Corporate Hampers", category: "Collection", url: "/collections/corporate-hampers", images: " ", price: " " },{ label: "Couple Gift", category: "Collection", url: "/collections/couple-gift", images: " ", price: " " },{ label: "Craft Sweetbox Newborn", category: "Co
7624llection", 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: " " }
7624,{ 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: " " }
7624,{ 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: " " }
7624,{ 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
7624dal", 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-
7624hampers", 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
7624o-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: " " }
7624,{ 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: " " }
7624,{ 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: " " }
7624,{ 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: " " }
7624,{ 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: " " }
7624,{ 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: " " }
7624,{ 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: " " }
7624,{ 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: "WSO138 memberikan link resmi situs slotgacor gampang wede terpercaya untuk semua pemain Indonesia yang akses login alternatif dan daftar aku
7624n baru sekarang.", category: "Collection", url: "/collections/standing-flower", images: " ", price: " " },{ label: "WSO138 memberikan link resmi situs slotgacor gampang wede terpercaya untuk semua pemain Indonesia yang akses login alternatif dan daftar akun baru sekarang. Bali", category: "Collection", url: "/collections/standing-flower-bali", images: " ", price: " " },{ label: "WSO138 memberikan link resmi situs slotgacor gampang wede terpercaya untuk semua pemain Indonesia yang akses login alternatif dan daftar akun baru sekarang. Bandung", category: "Collection", url: "/collections/standing-flower-bandung", images: " ", price: " " },{ label: "WSO138 memberikan link resmi situs slotgacor gampang wede terpercaya untuk semua pemain Indonesia yang akses login alternatif dan daftar akun baru sekarang. Congratulations", category: "Collection", url: "/collections/standing-flower-congratulations", images: " ", price: " " },{ label: "WSO138 memberikan link resmi situs slotgacor gampang wede terpercaya untuk semua pemain Indonesia yang akses login alternatif dan daftar akun baru sekarang. Demak", category: "Collection", url: "/collections/standing-flower-demak", images: " ", price: " " },{ label: "WSO138 memberikan link resmi situs slotgacor gampang wede terpercaya untuk semua pemain Indonesia yang akses login alternatif dan daftar akun baru sekarang. Jepara", category: "Collection", url: "/collections/standing-flower-jepara", images: " ", price: " " },{ label: "WSO138 memberikan link resmi situs slotgacor gampang wede terpercaya untuk semua pemain Indonesia yang akses login alternatif dan daftar akun baru sekarang. Semarang", category: "Collection", url: "/collections/standing-flower-semarang", images: " ", price: " " },{ label: "WSO138 memberikan link resmi situs slotgacor gampang wede terpercaya untuk semua pemain Indonesia yang akses login alternatif dan daftar akun baru sekarang. Sidoarjo", category: "Collection", url: "/collections/standing-flower-sidoarjo", images: " ", price: " " },{ label: "WSO138 memberikan link resmi situs slotgacor gampang wede terpercaya untuk semua pemain Indonesia yang akses login alternatif dan daftar akun baru sekarang. Surabaya", category: "Collection", url: "/collections/standing-flower-surabaya", images: " ", price: " " },{ label: "WSO138 memberikan link resmi situs slotgacor gampang wede terpercaya untuk semua pemain Indonesia yang akses login alternatif dan daftar akun baru sekarang. Yogyakarta", category: "Collection", url: "/collections/standing-flower-yogyakarta", images: " ", price: " " },{ label: "Standing Giant Flower", category: "Collection", url: "/collections/standing-giant-flower", images: " ", price: " " },{ label: "Stationery", category: "Collection", url: "/collections/stationery", images: " ", price: " " },{ label: "Steekwerk", category: "Collection", url: "/collections/steekwerk", images: " ", price: " " },{ label: "Stylish Hampers", category: "Collection", url: "/collections/stylish-hampers", images: " ", price: " " },{ label: "Stylish Hampers Luar Jadetabek", category: "Collection", url: "/collections/stylish-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Succulent", category: "Collection", url: "/collections/succulent", images: " ", price: " " },{ label: "Sunflower", category: "Collection", url: "/collections/bunga-matahari", images: " ", price: " " },{ label: "Sweet & Savoury Hampers", category: "Collection", url: "/collections/sweet-savoury-hampers", images: " ", price: " " },{ label: "Sweet Gracie", category: "Collection", url: "/collections/sweet-gracie", images: " ", price: " " },{ label: "Sweet Pastel Love", category: "Collection", url: "/collections/pastel-love", images: " ", price: " " },{ label: "Sweet Pastel Love Nusantara", category: "Collection", url: "/collections/sweet-pastel-love-nusantara", images: " ", price: " " },{ label: "Sweet Treats", category: "Collection", url: "/collections/sweet-treats", images: " ", price: " " },{ label: "Sweetooth", category: "Collection", url: "/collections/sweetooth", images: " ", price: " " },{ label: "Taurus âï¸ 20April - 20May", category: "Collection", url: "/collections/kado-untuk-zodiak-taurus", images: " ", price: " " },{ label: "Teddy Bear", category: "Collection", url: "/collections/boneka-teddy-bear", images: " ", price: " " },{ label: "Teh", category: "Collection", url: "/collections/teh", images: " ", price: " " },{ label: "Test Error", category: "Collection", url: "/collections/test-error", images: " ", price: " " },{ label: "Testing", category: "Collection", url: "/collections/testing", images: " ", price: " " },{ label: "Thank You", category: "Collection", url: "/collections/rangkaian-bunga-ucapan-terima-kasih", images: " ", price: " " },{ label: "The Classic Astoria", category: "Collection", url: "/collections/astoria", images: " ", price: " " },{ label: "The Classic Enchanted Dome", category: "Collection", url: "/collections/enchanted-dome", images: " ", price: " " },{ label: "The Enchanted Love Pirouette Special Edition", category: "Collection", url: "/collections/the-enchanted-love-pirouette-special-edition", images: " ", price: " " },{ label: "The F Thing", category: "Collection", url: "/collections/the-f-thing", images: " ", price: " " },{ label: "The First", category: "Collection", url: "/collections/the-first", images: " ", price: " " },{ label: "The Novo Astoria", category: "Collection", url: "/collections/the-novo-astoria", images: " ", price: " " },{ label: "The Novo Enchanted Dome", category: "Collection", url: "/collections/the-novo-enchanted-dome", images: " ", price: " " },{ label: "The Novo Enchanted Dome Special Edition", category: "Collection", url: "/collections/the-novo-enchanted-dome-special-edition", images: " ", price: " " },{ label: "The Palace", category: "Collection", url: "/collections/the-palace", images: " ", price: " " },{ label: "Ties", category: "Collection", url: "/collections/dasi", images: " ", price: " " },{ label: "Tisane", category: "Collection", url: "/collections/tisane", images: " ", price: " " },{ label: "Toko Bunga Aceh", category: "Collection", url: "/collections/toko-bunga-aceh", images: " ", price: " " },{ label: "Toko Bunga Ambon", category: "Collection", url: "/collections/toko-bunga-ambon", images: " ", price: " " },{ label: "Toko Bunga Atambua", category: "Collection", url: "/collections/toko-bunga-atambua", images: " ", price: " " },{ label: "Toko Bunga Bali", category: "Collection", url: "/collections/toko-bunga-bali", images: " ", price: " " },{ label: "Toko Bunga Balikpapan", category: "Collection", url: "/collections/toko-bunga-balikpapan", images: " ", price: " " }
7624,{ 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: " " }
7624,{ 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
7624dal", 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: " " }, 7625 { label: "grand salutation jabodetabek", category: "Produk", url: "/products/grand-salutation", images: "https://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: "https://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: "https://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: "https://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: "https://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: "https://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: "https://outerbloom.com/cdn/shop/files/Belleza-Jabodetabek-LED_aecb756a-0737-45cc-8bfb-008515ca0a37_thumb.gif?v=1759229680", price: "Rp 435.000" }
7625,{ label: "majestic pink roses with baby breath bouquet", category: "Produk", url: "/products/majestic-pink-roses-with-baby-breath-bouquet", images: "https://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: "https://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: "https://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: "https://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: "https://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: "https://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: "https://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: "https://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: "https://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: "https://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: "https://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: "https://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: "https://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: "https://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: "https://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: "https://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: "https://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: "https://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: "https://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: "https://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: "https://outerbloom.com/cdn/shop/products/Classic-white-Orchid-Majesty-in-Vase---white---4-Tangkai_thumb.jpg?v=1644205542", price: "Rp 435.000" }
7625,{ label: "majestic blue romance bouquet", category: "Produk", url: "/products/majestic-blue-romance-bouquet", images: "https://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: "https://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: "https://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: "https://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: "https://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: "https://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: "https://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: "https://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: "https://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: "https://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: "https://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: "https://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: "https://outerbloom.com/cdn/shop/files/OBVBUN1783_Bellarosa-Bloom-Box_c0000424-411c-48ed-abf4-0de7d925ea53_thumb.jpg?v=1757316757", price: "Rp 785.000" } 7626 ]; 7627 7628 7629 $( ".header-input-search" ).catcomplete({ 7630 appendTo: ".searchResult",source: function(request, response) { 7631 var results = $.ui.autocomplete.filter(data, request.term); 7632 var predicate = function () { 7633 var counter = { Collection: 0, Produk: 0 }; 7634 var fn = function(item) {counter[item.category] += 1;return (counter[item.category] <= 5);} 7635 return fn 7636 }(); 7637 response(results.filter(predicate)); 7638 }, 7639 minLength:1, 7640 //results are clickable 7641 select: function( event, ui ) {window.location = ui.item.url;} 7642 }); 7643 $( ".header-input-search2" ).catcomplete({ 7644 appendTo: ".searchResult2", 7645 source: function(request, response) { 7646 var results = $.ui.autocomplete.filter(data, request.term); 7647 var predicate = function () { 7648 var counter = { Collection: 0, Produk: 0 }; 7649 var fn = function(item) { 7650 counter[item.category] += 1; 7651 return (counter[item.category] <= 5); 7652 } 7653 return fn 7654 }(); 7655 response(results.filter(predicate)); 7656 }, 7657 minLength:1, 7658 //results are clickable 7659 select: function( event, ui ) { 7660 window.location = ui.item.url; 7661 } 7662 }); 7663 }); 7664 </script>
7664 7665 7666
7666<script src="https://outerbloom.com/cdn/shop/t/138/assets/vendors.js?v=6349622868601634021752652419" defer></script>
7666 7667
7667<script src="https://outerbloom.com/cdn/shop/t/138/assets/app.js?v=136050180318808583701752652452" defer></script>
7667 7668 7669
7669<script> 7670 ( function() { 7671 var youtube = document.querySelectorAll( ".youtube" ); 7672 for (var i = 0; i < youtube.length; i++) { 7673 var source = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault_1x.jpg"; 7674 var datasource = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault.jpg"; 7675 var image = new Image(); 7676 image.src = source; 7677 image.setAttribute("data-src", datasource); 7678 image.classList.add("swiper-lazy"); 7679 image.addEventListener( "load", function() { 7680 youtube[ i ].appendChild( image ); 7681 }( i ) ); 7682 youtube[i].addEventListener( "click", function() { 7683 var iframe = document.createElement( "iframe" ); 7684 iframe.setAttribute( "width", "480" ); 7685 iframe.setAttribute( "height", "480" ); 7686 iframe.setAttribute( "frameborder", "0" ); 7687 iframe.setAttribute( "allowfullscreen", "" ); 7688 iframe.setAttribute( "src", "https://www.youtube.com/embed/"+ this.dataset.embed +"?rel=0&showinfo=0&autoplay=1" ); 7689 this.innerHTML = ""; 7690 this.appendChild( iframe ); 7691 } ); 7692 }; 7693 7694 } )(); 7695 7696 /* Lazy Load */ 7697 const mainLazyLoad = new LazyLoad({threshold:400}); 7698 $(document).ready(function(){ 7699 7700 $("selectxxx").addClass("needsclick"); 7701 FastClick.attach(document.body); 7702 7703 var $customSelects = $('.select-search'); 7704 $customSelects.select2({ 7705 templateResult: function(result, container) { 7706 if (!result.id) { 7707 return result.text; 7708 } 7709 container.className += ' needsclick'; 7710 return result.text; 7711 } 7712 }); 7713 $customSelects.each(function(index, el){$(el).data('select2').$container.find('*').addClass('needsclick');}); 7714 $(document).on('select2:open', () => { 7715 document.querySelector('.select2-search__field').focus(); 7716 }); 7717 7718 7719 $(".overlay").click(function(){ 7720 $(".js-drawer-close").click(); 7721 }); 7722 $(".site-nav--mobile .js-drawer-open-left, #NavDrawer .icon-close, .overlay-nav").click(function(){ 7723 $("html").toggleClass("nav_open"); 7724 }); 7725 7726 $('.swatch-element label').on('click', function(){ 7727 var srcImg = $(this).data('src'); 7728 $('#thumb-image-product .product-single__thumbnail').each(function(){ 7729 if ($(this).attr("href") == srcImg) { 7730 $(this).trigger('click'); 7731 } 7732 }); 7733 }); 7734 var defaultValue = $(".swatch input:checked").val() 7735 7736 $('#purchaseProduct .swatch [type=radio]').change(function() { 7737 var optionIndex = $(this).closest('.swatch').attr('data-option-index'); 7738 var optionValue = $(this).val(); 7739 console.log(optionIndex, optionValue) 7740 var value = parseInt(optionValue.split(' ')[0]) 7741 $(this) 7742 .closest('#purchaseProduct') 7743 .find('.single-option-selector') 7744 .eq(optionIndex) 7745 .val(optionValue) 7746 .trigger('change'); 7747 7748 }); 7749 7750 }); 7751 $(document).ready(function(){ 7752 $(".nav-search a").click(function(e){ 7753 e.preventDefault(); 7754 $(".icon-navsearch").toggle(); 7755 $(".icon-navclose").toggle(); 7756 $(".site-nav__item > .site-nav__link").toggle(); 7757 $(".open-search").toggle(); 7758 $(".open-search input").focus(); 7759 }); 7760 $(".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'>"); 7761 if ($(window).width() < 768) { 7762 $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_75x.png?v=82732945490105366961752652419' alt='Icon Valentine'>"); 7763 $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_45x.png?v=101884295148001743851752652418' alt='Icon CNY'>"); 7764 $(".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'>"); 7765 } else { 7766 $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_60x.png?v=82732945490105366961752652419' alt='Icon Valentine'>"); 7767 $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_60x.png?v=101884295148001743851752652418' alt='Icon CNY'>"); 7768 $(".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'>"); 7769 } 7770 $(".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'>"); 7771 $(".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'>"); 7772 }); 7773 </script>
7773 7774 7775 7776 7777 7778
7778<script type="text/javascript"> 7779 var wishlistpage = 0; 7780 7781 var quickShop_money_format="<span class='money'>"+"Rp {{amount_no_decimals}}"+"</span>"; 7782 </script>
7782 7783 7784 <!-- Remove duplicate wishlist.js reference --> 7785 <style> 7786 .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)}} 7787 </style> 7788 7789 <div class="modal fade" id="modalwishlist0" tabindex="-1" role="dialog"> 7790 <div class="modal-dialog" role="document"> 7791 <div class="modal-content"> 7792 <div class="modal-body">Your Wishlist is empty!</div> 7793 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> 7794 </div> 7795 </div> 7796 </div> 7797 7798 <div class="wishlist-model"> 7799 <div class="modal fade" id="modalwishlist1" tabindex="-1" role="dialog" aria-hidden="true"> 7800 <div class="modal-dialog white-modal"> 7801 <div class="modal-content"> 7802 <div class="modal-header"> 7803 <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 7804 <svg class="icon icon-close" version="1.1" xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="32" height="32" viewBox="0 0 32 32"> 7805 <title>icon-close</title> 7806 <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> 7807 </svg> 7808 </button> 7809 </div> 7810 <div class="modal-body"> 7811 <div class="wishlist-left"> 7812 <div class="wishlist-note">
7813 <span class="cirle"><svg version="1.1" xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="32" height="32" viewBox="0 0 32 32"> 7814 <title>icon-check</title> 7815 <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> 7816 </svg></span> 7817 Product added to <a href="/pages/wish-list">Wishlist</a> 7818 </div> 7819 <div class="wishlist-product"> 7820 <div class="product-left"> 7821 <div class="wishlist-image"></div> 7822 </div> 7823 <div class="product-right"> 7824 <div class="wishlist-name"></div> 7825 <div class="wishlist-price"></div> 7826 </div> 7827 </div> 7828 </div> 7829 <div class="wishlist-right"> 7830 <div class="wishlist-cart"> 7831 <form action="/cart/add" method="post" class="variants-form variants" id="AddToCartForm" enctype="multipart/form-data"> 7832 <div class="others-bottom"> 7833 <a class="btn btn-quick-shop" href="/pages/wish-list">View Wishlist</a> 7834 <button type="submit" name="add" id="AddToCart" class="btn btn-cta"> 7835 <span id="AddToCartText" class="">Beli Sekarang</span> 7836 </button> 7837 </div> 7838 <div id="wishlist-variants-container" class="variants-wrapper"></div> 7839 <div class="quantity-content"> 7840 <label>QTY</label> 7841 <input type="number" size="5" class="" name="quantity" value="1" /> 7842 </div> 7843 </form> 7844 </div> 7845 </div> 7846 </div> 7847 </div> 7848 </div> 7849 </div> 7850 </div> 7851 7852 7853 <style> 7854 .stamped-badge[data-rating="0.0"]{display: none !Important;} 7855 7856 div[data-load-type="continue"] ul.stamped-pagination li.next a, div[data-widget-load-type="continue"] ul.stamped-pagination li.next a { 7857 border-radius: 0px; 7858 } 7859 .stamped-review-body { 7860 padding-left: 0px !important; 7861 } 7862 #product-reviews .stamped-header:after { 7863 display:none !Important; 7864 } 7865 #stamped-main-widget .stamped-container, .stamped-badge-caption,#stamped-reviews-widget { 7866 font-family:inherit !important; 7867 } 7868 </style> 7869 7870 7871 7872 <div id='stamped-rewards-init' class='stamped-rewards-init' 7873 data-key-public='' 7874 7875 ></div> 7876 7877
7877<script src="https://outerbloom.com/cdn/shop/t/138/assets/variant-sku-handler.js?v=91239063692820757781752652418" defer></script>
7877 7878 <!-- Remove duplicate jQuery reference and load wishlist script properly --> 7879
7879<script src="https://outerbloom.com/cdn/shop/t/138/assets/wishlist-fixed.js?v=35991423018869066281754360012" defer></script>
7879 7880 7881
7881<script> 7882 function myInit(){ StampedFn.init({ apiKey: 'pubkey-hCS8DHE9QbBHhHN89WXFkuJ0Y3422D', sId: '23462' }); } 7883 </script>
7883 7884
7884<script async onload="myInit()" type="text/javascript" src="https://cdn1.stamped.io/files/widget.min.js"></script>
7884<style> 7885 .jss59 { 7886 background-color: rgba(0, 0, 0, 0.6); 7887 } 7888 .MuiBackdrop-root { 7889 top: 0; 7890 left: 0; 7891 right: 0; 7892 bottom: 0; 7893 display: flex; 7894 z-index: -1; 7895 position: fixed; 7896 align-items: center; 7897 justify-content: center; 7898 background-color: rgba(0, 0, 0, 0.5); 7899 -webkit-tap-highlight-color: transparent; 7900 } 7901 .MuiDialog-scrollPaper { 7902 display: flex; 7903 align-items: center; 7904 justify-content: center; 7905 } 7906 .MuiDialog-container { 7907 height: 100%; 7908 outline: 0; 7909 } 7910 .MuiPaper-elevation24 { 7911 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); 7912 } 7913 .MuiDialog-paper { 7914 margin: 32px; 7915 position: relative; 7916 overflow-y: auto; 7917 } 7918 .MuiDialog-paperScrollPaper { 7919 display: flex; 7920 max-height: calc(100% - 64px); 7921 flex-direction: column; 7922 } 7923 .MuiDialog-paperWidthSm { 7924 max-width: 600px; 7925 } 7926 #location-lock-dialog { 7927 top: 20%; 7928 left: 0; 7929 right: 0; 7930 width: 30%; 7931 margin: 0px auto; 7932 display: block; 7933 padding: 30px; 7934 z-index: 99999; 7935 position: fixed; 7936 font-size: 14px; 7937 background: rgb(0, 0, 0); 7938 box-shadow: rgba(11, 11, 12, 0.2) 2px 4px 5px 0px; 7939 text-align: center; 7940 font-family: Roboto, Arial, sans-serif; 7941 line-height: 1; 7942 border-radius: 8px; 7943 -webkit-font-smoothing: subpixel-antialiased; 7944 } 7945 .MuiButtonBase-root { 7946 color: inherit; 7947 border: 0; 7948 cursor: pointer; 7949 margin: 0; 7950 display: inline-flex; 7951 outline: 0; 7952 padding: 0; 7953 position: relative; 7954 align-items: center; 7955 user-select: none; 7956 border-radius: 0; 7957 vertical-align: middle; 7958 -moz-appearance: none; 7959 justify-content: center; 7960 text-decoration: none; 7961 background-color: transparent; 7962 -webkit-appearance: none; 7963 -webkit-tap-highlight-color: transparent; 7964 } 7965 .MuiIconButton-root { 7966 flex: 0 0 auto; 7967 color: rgba(0, 0, 0, 0.54); 7968 padding: 12px; 7969 overflow: visible; 7970 font-size: 1.5rem; 7971 text-align: center; 7972 transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 7973 border-radius: 50%; 7974 } 7975 .MuiIconButton-label { 7976 width: 100%; 7977 display: flex; 7978 align-items: inherit; 7979 justify-content: inherit; 7980 } 7981 .MuiSvgIcon-root { 7982 fill: currentColor; 7983 width: 1em; 7984 height: 1em; 7985 display: inline-block; 7986 font-size: 1.5rem; 7987 transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 7988 flex-shrink: 0; 7989 user-select: none; 7990 } 7991 .MuiTouchRipple-root { 7992 top: 0; 7993 left: 0; 7994 right: 0; 7995 bottom: 0; 7996 z-index: 0; 7997 overflow: hidden; 7998 position: absolute; 7999 border-radius: inherit; 8000 pointer-events: none; 8001 } 8002 .jss36 { 8003 color: #222222; 8004 font-size: 24px; 8005 font-family: Roboto, Arial, sans-serif; 8006 font-weight: 500; 8007 } 8008 .jss37 { 8009 color: #555555; 8010 padding: 10px 0px 0px; 8011 font-size: 14px; 8012 } 8013 .MuiFormGroup-root { 8014 display: flex; 8015 flex-wrap: wrap; 8016 flex-direction: column; 8017 } 8018 .MuiFormGroup-row { 8019 flex-direction: row; 8020 } 8021 .jss63 { 8022 width: 85%; 8023 margin: 15px auto; 8024 display: flex; 8025 padding: 11px 0px 0px; 8026 justify-content: space-evenly; 8027 } 8028 .MuiFormControlLabel-root { 8029 cursor: pointer; 8030 display: inline-flex; 8031 align-items: center; 8032 margin-left: -11px; 8033 margin-right: 16px; 8034 vertical-align: middle; 8035 -webkit-tap-highlight-color: transparent; 8036 } 8037 .jss70 { 8038 margin: 0; 8039 } 8040 .MuiButtonBase-root { 8041 color: inherit; 8042 border: 0; 8043 cursor: pointer; 8044 margin: 0; 8045 display: inline-flex; 8046 outline: 0; 8047 padding: 0; 8048 position: relative; 8049 align-items: center; 8050 user-select: none; 8051 border-radius: 0; 8052 vertical-align: middle; 8053 -moz-appearance: none; 8054 justify-content: center; 8055 text-decoration: none; 8056 background-color: transparent; 8057 -webkit-appearance: none; 8058 -webkit-tap-highlight-color: transparent; 8059 } 8060 .MuiIconButton-root { 8061 flex: 0 0 auto; 8062 color: rgba(0, 0, 0, 0.54); 8063 padding: 12px; 8064 overflow: visible; 8065 font-size: 1.5rem; 8066 text-align: center; 8067 transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 8068 border-radius: 50%; 8069 } 8070 .MuiIconButton-colorSecondary { 8071 color: #f50057; 8072 } 8073 .jss71 { 8074 padding: 9px; 8075 } 8076 .MuiRadio-root { 8077 color: rgba(0, 0, 0, 0.54); 8078 } 8079 .jss64 { 8080 padding: 2px; 8081 } 8082 .MuiRadio-colorSecondary.Mui-checked { 8083 color: #f50057; 8084 } 8085 .MuiIconButton-label { 8086 width: 100%; 8087 display: flex; 8088 align-items: inherit; 8089 justify-content: inherit; 8090 } 8091 .MuiTypography-root { 8092 margin: 0; 8093 } 8094 .MuiTypography-body1 { 8095 font-size: 18px; 8096 font-family: Roboto,sans-serif; 8097 font-weight: 400; 8098 line-height: 1.5; 8099 } 8100 .location-popup_area-block__sp9Ws { 8101 display: -moz-box; 8102 display: flex; 8103 -moz-box-orient: vertical; 8104 -moz-box-direction: normal; 8105 flex-direction: column; 8106 -moz-box-pack: center; 8107 justify-content: center; 8108 position: relative; 8109 margin: 10px 10% 0; 8110 } 8111 .location-popup_pin-search-box__3l5mJ { 8112 width: 100%; 8113 display: -moz-box; 8114 display: flex; 8115 -moz-box-align: center; 8116 align-items: center; 8117 } 8118 .location-popup_place-icon-city__1XAX5, .location-popup_place-icon__jSG0Q { 8119 position: absolute; 8120 z-index: 999; 8121 } 8122 .location-popup_place-icon__jSG0Q { 8123 color: #ffffff; 8124 padding-left: 8px; 8125 } 8126 .location-popup_place-icon__jSG0Q svg { 8127 width: 18px; 8128 height: 18px; 8129 } 8130 .location-popup_cancel-icon__FHujU { 8131 color: #fff; 8132 right: 10px; 8133 width: 16px; 8134 cursor: pointer; 8135 height: 16px; 8136 display: none; 8137 padding: 5px; 8138 position: absolute; 8139 background: #999; 8140 text-align: center; 8141 border-radius: 50%; 8142 } 8143 .location-popup_pin-search-box__3l5mJ>div>select { 8144 /* -webkit-box-shadow: 0 0 10px #ffffff; 8145 box-shadow: 0 0 10px #ffffff; */ 8146 text-transform: capitalize; 8147 border: 1px solid #ffffff; 8148 color: #ffffff; 8149 width: 100%; 8150 margin: 0; 8151 display: -moz-box; 8152 display: flex;
8153 padding: 0 30px; 8154 -webkit-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8155 -moz-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8156 animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8157 font-size: 16px; 8158 border-radius: 4px; 8159 height: 44px; 8160 moz-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite; 8161 webkit-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite; 8162 } 8163 .MuiButtonBase-root { 8164 color: inherit; 8165 border: 0; 8166 cursor: pointer; 8167 margin: 0; 8168 display: inline-flex; 8169 outline: 0; 8170 padding: 0; 8171 position: relative; 8172 align-items: center; 8173 user-select: none; 8174 border-radius: 0; 8175 vertical-align: middle; 8176 -moz-appearance: none; 8177 justify-content: center; 8178 text-decoration: none; 8179 background-color: transparent; 8180 -webkit-appearance: none; 8181 -webkit-tap-highlight-color: transparent; 8182 } 8183 .MuiButton-root { 8184 color: rgba(0, 0, 0, 0.87); 8185 padding: 6px 16px; 8186 font-size: 0.875rem; 8187 min-width: 64px; 8188 box-sizing: border-box; 8189 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; 8190 font-family: Roboto,sans-serif; 8191 font-weight: 500; 8192 line-height: 1.75; 8193 border-radius: 4px; 8194 text-transform: uppercase; 8195 } 8196 .MuiButton-contained { 8197 color: rgba(0, 0, 0, 0.87); 8198 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); 8199 background-color: #e0e0e0; 8200 } 8201 .MuiButtonBase-root.Mui-disabled { 8202 cursor: default; 8203 pointer-events: none; 8204 } 8205 .MuiButton-label { 8206 width: 100%; 8207 display: inherit; 8208 align-items: inherit; 8209 justify-content: inherit; 8210 } 8211 .cartButton_login_content__2j1f7 { 8212 display: -moz-box; 8213 display: flex; 8214 text-align: center; 8215 z-index: 9; 8216 font-size: 18px; 8217 font-weight: 500; 8218 color: #fff; 8219 } 8220 8221 .jss35 { 8222 top: 5px; 8223 right: 5px; 8224 padding: 4px; 8225 position: absolute; 8226 border-radius: 50%; 8227 } 8228 .jss67 { 8229 cursor: pointer; 8230 font-size: 15px; 8231 line-height: 1.3; 8232 padding-left: 5px; 8233 } 8234 .jss69 { 8235 color: #222222; 8236 } 8237 .jss80 { 8238 color: #fff; 8239 width: 100%; 8240 height: 52px; 8241 padding: 11px 16px; 8242 font-size: 18px; 8243 min-width: 88px; 8244 min-height: 36px; 8245 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; 8246 font-weight: 500; 8247 line-weight: 1em; 8248 border-radius: 4px; 8249 text-transform: uppercase; 8250 background-color: #ff6600; 8251 } 8252 @media (min-width: 991px){ 8253 .cartButton_login_content__2j1f7 { 8254 font-weight: 500; 8255 } 8256 } 8257 8258 @media (max-width: 992px) { 8259 #location-lock-dialog { 8260 width: 100%; 8261 top: auto; 8262 bottom: 0; 8263 padding-left: 0; 8264 padding-right: 0; 8265 } 8266 .MuiFormGroup-row { 8267 display: block 8268 } 8269 .MuiIconButton-label input { 8270 margin: 0; 8271 } 8272 } 8273 </style> 8274 <div role="presentation" class="MuiDialog-root jss34" style="display: none;position: fixed; z-index: 9999; inset: 0px;"> 8275 <div class="MuiBackdrop-root" aria-hidden="true" style="opacity: 1; transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"></div> 8276 <div tabindex="0" data-test="sentinelStart"></div> 8277 <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;"> 8278 <div class="MuiPaper-root MuiDialog-paper MuiDialog-paperScrollPaper MuiDialog-paperWidthSm MuiPaper-elevation24 MuiPaper-rounded" role="dialog"> 8279 <div class="jss31 undefined" id="location-lock-dialog"> 8280 <button id="close-popup-delivery" class="MuiButtonBase-root MuiIconButton-root jss35" tabindex="0" type="button" aria-label="close"> 8281 <span class="MuiIconButton-label"> 8282 <svg class="MuiSvgIcon-root" focusable="false" viewBox="0 0 24 24" aria-hidden="true"> 8283 <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> 8284 </svg> 8285 </span>
8286 <span class="MuiTouchRipple-root"></span> 8287 </button> 8288 <div> 8289 <div class="jss36">Select Delivery Location</div> 8290 <div class="jss37">Select a delivery location to see product availability</div> 8291 </div> 8292 <div class="MuiFormGroup-root jss63 MuiFormGroup-row" role="radiogroup"> 8293 <label for="jabodetabek" class="MuiFormControlLabel-root jss45"> 8294 <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 jss47 Mui-checked MuiIconButton-colorSecondary" aria-disabled="false"> 8295 <span class="MuiIconButton-label"> 8296 <input id="jabodetabek" class="jss49" type="radio" value="Jabodetabek" checked="" name="location"> 8297 <span class="jss41"></span> 8298 </span> 8299 <span class="MuiTouchRipple-root"></span> 8300 </span> 8301 <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1"> 8302 <span class="jss67 jss69">Jabodetabek</span> 8303 </span> 8304 </label> 8305 <label for="non-jabodetabek" class="MuiFormControlLabel-root jss45"> 8306 <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 MuiIconButton-colorSecondary" aria-disabled="false"> 8307 <span class="MuiIconButton-label"> 8308 <input id="non-jabodetabek" class="jss49" type="radio" value="Outside Jabodetabek" name="location"> 8309 <span class="jss40"></span> 8310 </span> 8311 <span class="MuiTouchRipple-root"></span> 8312 </span> 8313 <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1"> 8314 <span class="jss67 jss68">Outside Jabodetabek</span> 8315 </span> 8316 </label> 8317 </div> 8318 <div> 8319 <div class="MuiGrid-root location-popup_area-block__sp9Ws"> 8320 <div class="MuiGrid-root location-popup_pin-search-box__3l5mJ false"> 8321 <div class="MuiGrid-root location-popup_place-icon__jSG0Q"> 8322 <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> 8323 </div> 8324 <div class="MuiGrid-root location-popup_cancel-icon__FHujU false"> 8325 <i class="material-icons location-popup_clear-pin__s1dRc">close</i> 8326 </div> 8327 <div style="width: 100%;"> 8328 <select id="choose-location" class="form-control"> 8329 <option value="">Choose Location</option> 8330 <option value="jakarta">Jakarta</option> 8331 <option value="bogor">Bogor</option> 8332 <option value="depok">Depok</option> 8333 <option value="tangerang">Tangerang</option> 8334 <option value="bekasi">Bekasi</option> 8335 </select> 8336 </div> 8337 </div> 8338 </div> 8339 </div> 8340 <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=""> 8341 <span class="MuiButton-label"> 8342 <span class=""></span> 8343 <span id="location-lock-continue-btn" class="cartButton_login_content__2j1f7" style="font-weight: 500;" data-content="">Continue Shopping</span> 8344 </span> 8345 </button> 8346 </div> 8347 </div> 8348 </div> 8349 <div tabindex="0" data-test="sentinelEnd"></div> 8350 </div> 8351 8352
8352<script> 8353 const jabodetabek = [ 8354 { 8355 "code": "jakarta", 8356 "city": "jakarta", 8357 "zip": [] 8358 }, 8359 { 8360 "code": "bogor", 8361 "city": "bogor", 8362 "zip": [] 8363 }, 8364 { 8365 "code": "depok", 8366 "city": "depok", 8367 "zip": [] 8368 }, 8369 { 8370 "code": "tangerang", 8371 "city": "tangerang", 8372 "zip": [] 8373 }, 8374 { 8375 "code": "bekasi", 8376 "city": "bekasi", 8377 "zip": [] 8378 } 8379 ] 8380 let cityNonJabodetabek = [ 8381 8382 8383 8384 8385 "pengiriman_aceh", 8386 8387 8388 8389 8390 8391 "pengiriman_ambon", 8392 8393 8394 8395 8396 8397 "pengiriman_atambua", 8398 8399 8400 8401 8402 8403 "pengiriman_badung", 8404 8405 8406 8407 8408 8409 "pengiriman_bali", 8410 8411 8412 8413 8414 8415 "pengiriman_balikpapan", 8416 8417 8418 8419 8420 8421 "pengiriman_bandar lampung", 8422 8423 8424 8425 8426 8427 "pengiriman_bandung", 8428 8429 8430 8431 8432 8433 "pengiriman_bandung barat", 8434 8435 8436 8437 8438 8439 "pengiriman_banjarmasin", 8440 8441 8442 8443 8444 8445 "pengiriman_banyumas", 8446 8447 8448 8449 8450 8451 "pengiriman_banyuwangi", 8452 8453 8454 8455 8456 8457 "pengiriman_batam", 8458 8459 8460 8461 8462 8463 8464 8465 8466 8467 "pengiriman_biak", 8468 8469 8470 8471 8472 8473 "pengiriman_binjai", 8474 8475 8476 8477 8478 8479 "pengiriman_blitar", 8480 8481 8482 8483 8484 8485 "pengiriman_blora", 8486 8487 8488 8489 8490 8491 8492 8493 8494 8495 "pengiriman_bojonegoro", 8496 8497 8498 8499 8500 8501 "pengiriman_boyolali", 8502 8503 8504 8505 8506 8507 "pengiriman_bukittinggi", 8508 8509 8510 8511 8512 8513 "pengiriman_buleleng", 8514 8515 8516 8517 8518 8519 "pengiriman_ciamis", 8520 8521 8522 8523 8524 8525 "pengiriman_cianjur", 8526 8527 8528 8529 8530 8531 "pengiriman_cibinong", 8532 8533 8534 8535 8536 8537 "pengiriman_cikarang", 8538 8539 8540 8541 8542 8543 "pengiriman_cikupa", 8544 8545 8546 8547 8548 8549 "pengiriman_cilacap", 8550 8551 8552 8553 8554 8555 "pengiriman_cileunyi", 8556 8557 8558 8559 8560 8561 "pengiriman_cimahi", 8562 8563 8564 8565 8566 8567 "pengiriman_cirebon", 8568 8569 8570 8571 8572 8573 "pengiriman_ciwidey", 8574 8575 8576 8577 8578 8579 "pengiriman_deli serdang", 8580 8581 8582 8583 8584 8585 "pengiriman_demak", 8586 8587 8588 8589 8590 8591 "pengiriman_denpasar", 8592 8593 8594 8595 8596 8597 8598 "pengiriman_garut", 8599 8600 8601 8602 8603 8604 "pengiriman_gianyar", 8605 8606 8607 8608 8609 8610 "pengiriman_gresik", 8611 8612 8613 8614 8615 8616 "pengiriman_gunung kidul", 8617 8618 8619 8620 8621 8622 8623 "pengiriman_jambi", 8624 8625 8626 8627 8628 8629 "pengiriman_jayapura", 8630 8631 8632 8633 8634 8635 "pengiriman_jember", 8636 8637 8638 8639 8640 8641 "pengiriman_jepara", 8642 8643 8644 8645 8646 8647 "pengiriman_jombang", 8648 8649 8650 8651 8652 8653 "pengiriman_karanganyar", 8654 8655 8656 8657 8658 8659 "pengiriman_karawang", 8660 8661 8662 8663 8664 8665 "pengiriman_karo", 8666 8667 8668 8669 8670 8671 "pengiriman_kebumen", 8672 8673 8674 8675 8676 8677 "pengiriman_kediri", 8678 8679 8680 8681 8682 8683 "pengiriman_keerom", 8684 8685 8686 8687 8688 8689 "pengiriman_kendal", 8690 8691 8692 8693 8694 8695 "pengiriman_klaten", 8696 8697 8698 8699 8700 8701 "pengiriman_kudus", 8702 8703 8704 8705 8706 8707 "pengiriman_kupang", 8708 8709 8710 8711 8712 8713 "pengiriman_lainnya", 8714 8715 8716 8717 8718 8719 "pengiriman_lamongan", 8720 8721 8722 8723 8724 8725 "pengiriman_lampung", 8726 8727 8728 8729 8730 8731 "pengiriman_lampung barat", 8732 8733 8734 8735 8736 8737 "pengiriman_lembang", 8738 8739 8740 8741 8742 8743 "pengiriman_lombok", 8744 8745 8746 8747 8748 8749 "pengiriman_lumajang", 8750 8751 8752 8753 8754 8755 "pengiriman_madiun", 8756 8757 8758 8759 8760 8761 "pengiriman_magelang", 8762 8763 8764 8765 8766 8767 "pengiriman_majalengka", 8768 8769 8770 8771 8772 8773 "pengiriman_makassar", 8774 8775 8776 8777 8778 8779 "pengiriman_malang", 8780 8781 8782 8783 8784 8785 "pengiriman_manado", 8786 8787 8788 8789 8790 8791 "pengiriman_medan", 8792 8793 8794 8795 8796 8797 "pengiriman_mengwi", 8798 8799 8800 8801 8802 8803 "pengiriman_mojokerto", 8804 8805 8806 8807 8808 8809 "pengiriman_nganjuk", 8810 8811 8812 8813 8814 8815 "pengiriman_ngawi", 8816 8817 8818 8819 8820 8821 "pengiriman_padang", 8822 8823 8824 8825 8826 8827 "pengiriman_palembang", 8828 8829 8830 8831 8832 8833 "pengiriman_pasuruan", 8834 8835 8836 8837 8838 8839 "pengiriman_pati", 8840 8841 8842 8843 8844 8845 "pengiriman_pekalongan", 8846 8847 8848 8849 8850 8851 "pengiriman_pekanbaru", 8852 8853 8854 8855 8856 8857 "pengiriman_pemalang", 8858 8859 8860 8861 8862 8863 "pengiriman_ponorogo", 8864 8865 8866 8867 8868 8869 "pengiriman_pontianak", 8870 8871 8872 8873 8874 8875 "pengiriman_probolinggo", 8876 8877 8878 8879 8880 8881 "pengiriman_purbalingga", 8882 8883 8884 8885 8886 8887 "pengiriman_purwakarta", 8888 8889 8890 8891 8892 8893 "pengiriman_purwokerto", 8894 8895 8896 8897 8898 8899 "pengiriman_rembang", 8900 8901 8902 8903 8904 8905 "pengiriman_riau", 8906 8907 8908 8909 8910 8911 "pengiriman_salatiga", 8912 8913 8914 8915 8916 8917 "pengiriman_samarinda", 8918 8919 8920 8921 8922 8923 "pengiriman_semarang", 8924 8925 8926 8927 8928 8929 "pengiriman_sentani", 8930 8931 8932 8933 8934 8935 "pengiriman_serang", 8936 8937 8938 8939 8940 8941 "pengiriman_sidoarjo", 8942 8943 8944 8945 8946 8947 "pengiriman_singkawang", 8948 8949 8950 8951 8952 8953 "pengiriman_sragen", 8954 8955 8956 8957 8958 8959 "pengiriman_subang", 8960 8961 8962 8963 8964 8965 "pengiriman_sukabumi", 8966 8967 8968 8969 8970 8971 "pengiriman_sumbawa", 8972 8973 8974 8975 8976 8977 "pengiriman_surabaya", 8978 8979 8980 8981 8982 8983 "pengiriman_surakarta solo", 8984 8985 8986 8987 8988 "pengiriman_tasikmalaya", 8989 8990 8991 8992 8993 8994 "pengiriman_tegal", 8995 8996 8997 8998 8999 9000 "pengiriman_timika", 9001 9002 9003 9004 9005 9006 "pengiriman_wamena", 9007 9008 9009 9010 9011 9012 "pengiriman_wiyung", 9013 9014 9015 9016 9017 9018 "pengiriman_wonokromo", 9019 9020 9021 9022 9023 9024 "pengiriman_yogyakarta", 9025 9026 ] 9027 console.log(cityNonJabodetabek) 9028 let non_jabodetabek = [] 9029 for(var i=0;i<cityNonJabodetabek.length;i++) { 9030 const obj = { 9031 "code": cityNonJabodetabek[i].toLowerCase().replace('pengiriman_', '').replace(' ','-'), 9032 "city": cityNonJabodetabek[i].replace('pengiriman_', '').replace(' ','-'), 9033 "zip": [] 9034 } 9035 non_jabodetabek.push(obj) 9036 } 9037 let current_location = getCookie("location_delivery") 9038 $("[name=location]").change(function(){ 9039 let v = $(this).val() 9040 let option = [] 9041 if(v == 'Jabodetabek') { 9042 for(var i=0;i<jabodetabek.length;i++) { 9043 const jabodetabekHtml = `<option value=${jabodetabek[i].city}>${jabodetabek[i].city}</option>` 9044 option.push(jabodetabekHtml) 9045 } 9046 $("#choose-location").html(`<option value="">Choose Location</option>${option}`) 9047 } else { 9048 for(var i=0;i<non_jabodetabek.length;i++) { 9049 const nonjabodetabekHtml = `<option value=${non_jabodetabek[i].city}>${non_jabodetabek[i].city}</option>` 9050 option.push(nonjabodetabekHtml) 9051 } 9052 $("#choose-location").html(`<option value="">Choose Location</option>${option}`) 9053 } 9054 }) 9055 9056 $("#location-lock-submit").click(function(e){ 9057 let select = $("#choose-location") 9058 let value = select.val().toLowerCase() 9059 console.log(value) 9060 if(select.val() == "") { 9061 return alert("Choose Your Location") 9062 e.preventDefault() 9063 }
9064 setCookie("location_delivery",value,1000000); 9065 9066 location.reload(); 9067 9068 }) 9069 9070 $("#close-popup-delivery").click(function(){ 9071 $(".MuiDialog-root").hide() 9072 if(!current_location){ 9073 setCookie("location_delivery","jakarta",1000000); 9074 $("#loc_delivery_city, #loc_delivery_city_mobile").text("Jakarta") 9075 } 9076 }) 9077 $("#loc_delivery, #loc_delivery_mobile").click(function(){ 9078 $(".MuiDialog-root").show() 9079 }) 9080 9081 9082 if(!current_location){ 9083 9084 } else { 9085 $("#loc_delivery_city, #loc_delivery_city_mobile").text(current_location) 9086 console.log(current_location) 9087 $("#choose-location").each(function(){ 9088 if(current_location == 'jakarta' || current_location == 'depok' || current_location == 'bogor' || current_location == 'tangerang' || current_location == 'bekasi'){ 9089 $("#jabodetabek").trigger("click") 9090 } else { 9091 $("#non-jabodetabek").trigger("click") 9092 } 9093 $("#choose-location").find("option[value="+current_location+"]").attr("selected", "selected") 9094 }) 9095 } 9096 9097 // 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'){ 9098 // $("#timeMalam").attr("disabled", false) 9099 // } else { 9100 // $("#timeMalam").attr("disabled", true) 9101 // } 9102 9103 if(current_location && current_location != 'jakarta') { 9104 $("#self-pickup").attr("disabled", true) 9105 } 9106 9107 function setCookie(name,value,days) { 9108 var expires = ""; 9109 if (days) { 9110 var date = new Date(); 9111 date.setTime(date.getTime() + (days*24*60*60*1000)); 9112 expires = "; expires=" + date.toUTCString(); 9113 } 9114 document.cookie = name + "=" + (value || "") + expires + "; path=/"; 9115 } 9116 function getCookie(name) { 9117 var nameEQ = name + "="; 9118 var ca = document.cookie.split(';'); 9119 for(var i=0;i < ca.length;i++) { 9120 var c = ca[i]; 9121 while (c.charAt(0)==' ') c = c.substring(1,c.length); 9122 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 9123 } 9124 return null; 9125 } 9126 </script>
9126 9127 <!-- One Tap --> 9128
9128<script> 9129 console.log("Outerbloom..."); 9130 </script>
9130 9131 <div id="shopify-block-ANVEzSUcxTUxZOGpwZ__9703700522657871012" class="shopify-block shopify-app-block"> 9132 9133 9134 9135 9136 9137 9138 9139 9140 9141 9142 9143 9144 9145 9146 9147 9148 9149 9150 9151 9152 9153 9154 9155 9156 9157 9158 9159 9160 9161 9162 9163 9164 9165 9166 9167 9168 9169 9170 9171 9172 9173 9174 9175 9176 9177 9178 <link rel="stylesheet" href="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.css" /> 9179
9179<script src="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.js" defer></script>
9179 9180
9180<script> 9181 const widgetConfig = { 9182 id: "clz7897za002cz7otleaz0d3d", 9183 showQuickResponse: false, 9184 quickResponsesData: [], 9185 themeColor: "#ffffff", 9186 widgetText: "", 9187 radiusType: "circle", 9188 widgetIconType: "whatsapp", 9189 position: "right", 9190 storeLogo: "", 9191 storeName: "Outerbloom", 9192 storeDescription: "", 9193 size: "small", 9194 showCard: false, 9195 widgetColorType: "solid", 9196 widgetColor1: "#008069", 9197 widgetColor2: "#008069", 9198 social: { 9199 socialOrders: ["instagram","tiktok","facebook","x","youtube","linkedin","email"], 9200 values: { 9201 instagram: { 9202 enabled: false, 9203 value: "", 9204 }, 9205 facebook: { 9206 enabled: false, 9207 value: "", 9208 }, 9209 email: { 9210 enabled: false, 9211 value: "", 9212 }, 9213 x: { 9214 enabled: false, 9215 value: "", 9216 }, 9217 tiktok: { 9218 enabled: false, 9219 value: "", 9220 }, 9221 linkedin: { 9222 enabled: false, 9223 value: "", 9224 }, 9225 youtube: { 9226 enabled: false, 9227 value: "", 9228 }, 9229 }, 9230 }, 9231 }; 9232 9233 function initializeWidget() { 9234 if (typeof BBBWidget !== 'undefined') { 9235 BBBWidget.init(widgetConfig); 9236 } else { 9237 setTimeout(initializeWidget, 100); 9238 } 9239 } 9240 9241 initializeWidget();</script>
9241 9242 9243 9244 </div><div id="shopify-block-ATzRpVTBPU3k1R2pnW__286197278318599166" class="shopify-block shopify-app-block"> 9245 9246 9247 <div style="position: fixed; bottom: 0; right: 0"></div> 9248 9249
9249<script> 9250 console.info("bitlogin extension version: v2.5.7"); 9251 9252 const googleScript = document.createElement("script"); 9253 googleScript.setAttribute("src", "https://accounts.google.com/gsi/client"); 9254 document.head.append(googleScript); 9255 9256 const bitLoginBaseUrl = "https://api.bitbybit.studio"; 9257 const apiUrl = `${bitLoginBaseUrl}/bitlogin/api`; 9258 9259 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"}}; 9260 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
9260n1.oa2-cs.v1.1cb5f9085a202341f60daf5a7be16c570ccc0b4bd5908b3afd080f34e9b8935d","appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null}]; 9261 const redirectUrl = appearance.redirectLink; 9262 9263 let locationCacheSet = false; 9264 let errorLocation = false; 9265 let oneTapSet = false; 9266 9267 let bitloginCache = { 9268 appearance: appearance, 9269 config: config 9270 }; 9271 9272 let isInitializing = false; 9273 const queue = []; 9274 9275 // Add CSS for the popup 9276 const popupStyles = document.createElement('style'); 9277 popupStyles.textContent = ` 9278 /* Styles for login popup */ 9279 .bitlogin-popup-overlay { 9280 position: fixed; 9281 top: 0; 9282 left: 0; 9283 width: 100%; 9284 height: 100%; 9285 background: rgba(0, 0, 0, 0.45); 9286 backdrop-filter: blur(4px); 9287 display: flex; 9288 align-items: center; 9289 justify-content: center; 9290 opacity: 0; 9291 transition: opacity 0.3s ease-in-out; 9292 z-index: 999999; 9293 } 9294 9295 .bitlogin-popup-overlay.visible { 9296 opacity: 1; 9297 } 9298 9299 .bitlogin-popup { 9300 background: #FFFFFF; 9301 box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); 9302 border-radius: 16px; 9303 width: 100%; 9304 max-width: 560px; 9305 display: flex; 9306 overflow: hidden; 9307 position: relative; 9308 opacity: 0; 9309 transform: translateY(20px) scale(0.98); 9310 transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1); 9311 } 9312 9313 .bitlogin-popup.visible { 9314 opacity: 1; 9315 transform: translateY(0) scale(1); 9316 } 9317 9318 .bitlogin-popup-with-image { 9319 max-width: 640px; 9320 } 9321 9322 .bitlogin-popup-right-image { 9323 flex-direction: row-reverse; 9324 } 9325 9326 .bitlogin-popup-image { 9327 object-fit: cover; 9328 width: 50%; 9329 height: auto; 9330 } 9331 9332 .bitlogin-popup-content { 9333 padding: 32px; 9334 position: relative; 9335 width: 50%; 9336 } 9337 9338 .bitlogin-popup-close { 9339 position: absolute; 9340 top: 16px; 9341 right: 16px; 9342 background: white; 9343 border: none; 9344 width: 30px; 9345 height: 30px; 9346 display: flex; 9347 align-items: center; 9348 justify-content: center; 9349 cursor: pointer; 9350 transition: background-color 0.2s; 9351 color: inherit; 9352 padding: 0; 9353 } 9354 9355 .bitlogin-popup-close:hover { 9356 background-color: #e5e5e5; 9357 } 9358 9359 .bitlogin-popup-buttons { 9360 display: flex; 9361 flex-direction: column; 9362 gap: 12px; 9363 margin-top: 24px; 9364 } 9365 9366 /* Button styles within popup - override width for popup buttons */ 9367 .bitlogin-popup-buttons #google-login, 9368 .bitlogin-popup-buttons #facebook-login, 9369 .bitlogin-popup-buttons #apple-login, 9370 .bitlogin-popup-buttons #whatsapp-login, 9371 .bitlogin-popup-buttons #microsoft-login, 9372 .bitlogin-popup-buttons #twitter-login, 9373 .bitlogin-popup-buttons #amazon-login, 9374 .bitlogin-popup-buttons #instagram-login, 9375 .bitlogin-popup-buttons #magic-link-login, 9376 .bitlogin-popup-buttons #mobile-app-login { 9377 width: 100% !important; 9378 font-family: inherit !important; 9379 } 9380 9381 .bitlogin-popup-footer { 9382 margin-top: 32px; 9383 text-align: center; 9384 font-size: 14px; 9385 opacity: 0.6; 9386 } 9387 9388 /* Modern Typography */ 9389 .bitlogin-popup h2 { 9390 margin-top: 12px; 9391 font-size: 21px !important; 9392 line-height: 1.2 !important; 9393 font-weight: 700 !important; 9394 letter-spacing: -0.02em !important; 9395 margin-bottom: 16px !important; 9396 } 9397 9398 .bitlogin-popup-header { 9399 position: relative; 9400 margin-bottom: 24px; 9401 } 9402 9403 /* Modern gradient accent */ 9404 .bitlogin-popup-content > div { 9405 font-size: 16px !important; 9406 line-height: 1.2 !important; 9407 opacity: 0.85 !important; 9408 } 9409 9410 /* Enhanced button interactions */ 9411 .bitlogin-popup-buttons button { 9412 position: relative; 9413 overflow: hidden; 9414 } 9415 9416 @keyframes ripple { 9417 0% { 9418 transform: scale(0, 0); 9419 opacity: 0.5; 9420 } 9421 100% { 9422 transform: scale(100, 100); 9423 opacity: 0; 9424 } 9425 } 9426 9427 /* Responsive adjustments */ 9428 @media (max-width: 640px) { 9429 .bitlogin-popup { 9430 max-width: 90%; 9431 width: 90%; 9432 margin: 0 16px; 9433 } 9434 9435 .bitlogin-popup-with-image { 9436 flex-direction: column !important; 9437 } 9438 9439 .bitlogin-popup-image { 9440 width: 100%; 9441 height: 180px; 9442 } 9443 9444 .bitlogin-popup-content { 9445 padding: 24px; 9446 } 9447 9448 .bitlogin-popup h2 { 9449 font-size: 24px !important; 9450 } 9451 } 9452 `; 9453
9454 document.head.appendChild(popupStyles); 9455 9456 // Add fonts link for different font options 9457 const fontsLink = document.createElement('link'); 9458 fontsLink.rel = 'stylesheet'; 9459 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'; 9460 document.head.appendChild(fontsLink); 9461 9462 (async () => { 9463 try { 9464 let host = window.location.host; 9465 if (host === "admin.shopify.com") { 9466 host = `${window.location.pathname.split("/")[2]}.myshopify.com`; 9467 } 9468 9469 const urlSearchParams = new URLSearchParams(window.location.search); 9470 const checkoutUrl = urlSearchParams.get("checkout_url"); 9471 9472 async function init({ inputRef, index }) { 9473 if (isInitializing) { 9474 queue.push(() => init({ inputRef, index })); 9475 return; 9476 } 9477 9478 isInitializing = true; 9479 9480 try { 9481 let bitLoginSectionRoot = document.querySelector( 9482 `.bitlogin-root[data-index="${index}"]` 9483 ); 9484 9485 const formRef = inputRef?.closest( 9486 "form:not([action='/account/recover'])" 9487 ); 9488 9489 if (formRef && !bitLoginSectionRoot) { 9490 await getLocation(); 9491 9492 bitLoginSectionRoot = document.createElement(`div`); 9493 9494 bitLoginSectionRoot.setAttribute("class", "bitlogin-root"); 9495 bitLoginSectionRoot.setAttribute("data-index", `${index}`); 9496 9497 updateAppearance({ 9498 formRef, 9499 rootRef: bitLoginSectionRoot, 9500 host, 9501 }); 9502 } 9503 } catch (err) { 9504 console.error(`error while initiating bitlogin extensions`, err); 9505 } finally { 9506 // Release the lock 9507 isInitializing = false; 9508 9509 // Check if there are pending items in the queue 9510 if (queue.length > 0) { 9511 // Process the next function in the queue 9512 const nextFunction = queue.shift(); 9513 nextFunction(); 9514 } 9515 } 9516 } 9517 9518 function initAll() { 9519 return new Promise((resolve, reject) => { 9520 setTimeout(async () => { 9521 const inputRefs = document.querySelectorAll( 9522 'input[name="customer[email]"]' 9523 ); 9524 9525 for (let i = 0; i < inputRefs.length; i++) { 9526 const currentInputRef = inputRefs[i]; 9527 const isVisible = isElementVisible(currentInputRef); 9528 9529 if (isVisible) { 9530 await init({ inputRef: currentInputRef, index: i }); 9531 } 9532 } 9533 9534 resolve("ok"); 9535 }, 100); 9536 }); 9537 } 9538 9539 const observer = new MutationObserver((mutationsList) => { 9540 for (let mutation of mutationsList) { 9541 initAll(); 9542 } 9543 }); 9544 9545 observer.observe(document.body, { 9546 childList: true, 9547 subtree: true, 9548 attributes: true, 9549 }); 9550 9551 initAll(); 9552 9553 if (appearance.googleOneTap) { 9554 setupOneTap({ host, checkoutUrl }); 9555 } 9556 9557 // Initialize popup 9558 await initPopup(host); 9559 } catch (error) { 9560 console.error("Error initializing BitLogin:", error); 9561 } 9562 })(); 9563 9564 async function initPopup(host) { 9565 // Check if user is already logged in using Liquid checks properly 9566 const isLoggedIn = false || 9567 document.querySelector('.customer-logout-link') || 9568 document.querySelector('.account-link') || 9569 window.location.pathname.includes('/account'); 9570 9571 if (isLoggedIn) { 9572 return; // User is logged in, don't show popup 9573 } 9574 9575 try { 9576 // Fetch the popup configuration 9577 const popupConfig = await fetch(`${apiUrl}/appearance/popup/domain/${host}`) 9578 .then(res => res.json()) 9579 .catch(err => { 9580 console.error('Error fetching popup configuration:', err); 9581 return null; 9582 }); 9583 9584 if (!popupConfig || !popupConfig.enabled) { 9585 return;
9585 // Don't show popup if disabled or config not found 9586 } 9587 9588 // Create popup after 10 seconds 9589 setTimeout(() => { 9590 // Check if user is still on the page and still not logged in 9591 if (document.visibilityState === 'visible') { 9592 // Additional check in case user logged in during the 10 second wait 9593 const currentlyLoggedIn = false || 9594 document.querySelector('.customer-logout-link') || 9595 document.querySelector('.account-link'); 9596 9597 if (!currentlyLoggedIn) { 9598 createLoginPopup(popupConfig, host); 9599 } 9600 } 9601 }, 10000); 9602 } catch (error) { 9603 console.error('Error initializing popup:', error); 9604 } 9605 } 9606 9607 function createLoginPopup(popupConfig, host) { 9608 // Font mapping 9609 const fontFamilyMap = { 9610 system_fonts: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif', 9611 montserrat: 'Montserrat, sans-serif', 9612 roboto: 'Roboto, sans-serif', 9613 open_sans: 'Open Sans, sans-serif', 9614 noto_sans: 'Noto Sans, sans-serif', 9615 lato: 'Lato, sans-serif', 9616 poppins: 'Poppins, sans-serif', 9617 quicksand: 'Quicksand, sans-serif', 9618 raleway: 'Raleway, sans-serif', 9619 pt_sans: 'PT Sans, sans-serif', 9620 oswald: 'Oswald, sans-serif', 9621 }; 9622 9623 // Create overlay 9624 const overlay = document.createElement('div'); 9625 overlay.className = 'bitlogin-popup-overlay'; 9626 9627 // Create popup container with appropriate styling 9628 const popup = document.createElement('div'); 9629 popup.className = 'bitlogin-popup'; 9630 9631 if (popupConfig.layout === 'default') { 9632 popup.style.maxWidth = '400px'; 9633 } 9634 9635 // Function to close the popup 9636 const closePopup = () => { 9637 overlay.classList.remove('visible'); 9638 popup.classList.remove('visible'); 9639 setTimeout(() => { 9640 if (document.body.contains(overlay)) { 9641 document.body.removeChild(overlay); 9642 } 9643 }, 300); 9644 }; 9645 9646 // Add click handler to the overlay to close when clicking outside 9647 overlay.addEventListener('click', (event) => { 9648 // Close only if clicking directly on the overlay, not its children 9649 if (event.target === overlay) { 9650 closePopup(); 9651 } 9652 }); 9653 9654 // Add escape key handler to close popup 9655 document.addEventListener('keydown', (event) => { 9656 if (event.key === 'Escape' && document.body.contains(overlay)) { 9657 closePopup(); 9658 } 9659 }); 9660 9661 // Create layout with image if specified 9662 let contentWrapper; 9663 if (popupConfig.layout !== 'default' && popupConfig.popupImage) { 9664 popup.classList.add('bitlogin-popup-with-image'); 9665 9666 if (popupConfig.layout === 'right') { 9667 popup.classList.add('bitlogin-popup-right-image'); 9668 } 9669 9670 // Add image 9671 const image = document.createElement('img'); 9672 image.className = 'bitlogin-popup-image'; 9673 image.src = popupConfig.popupImage; 9674 image.alt = 'Login'; 9675 image.loading = 'lazy'; 9676 popup.appendChild(image); 9677 9678 // Create content container 9679 contentWrapper = document.createElement('div'); 9680 contentWrapper.className = 'bitlogin-popup-content'; 9681 9682 if (popupConfig.layout === 'right') { 9683 const closeButton = document.createElement('button'); 9684 closeButton.className = 'bitlogin-popup-close'; 9685 closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png"> 9686 <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 9687 </svg>`; 9688 closeButton.setAttribute('aria-label', 'Close'); 9689 closeButton.onclick = closePopup; 9690 9691 popup.appendChild(closeButton); 9692 } 9693 } else { 9694 contentWrapper = document.createElement('div'); 9695 contentWrapper.className = 'bitlogin-popup-content'; 9696 contentWrapper.style.width = '100%'; 9697 } 9698 9699 // Set background style 9700 if (popupConfig.backgroundTheme === 'gradient') { 9701 contentWrapper.style.background = `linear-gradient(135deg, ${popupConfig.backgroundPopupColor}, ${popupConfig.gradientColor})`; 9702 } else { 9703 contentWrapper.style.backgroundColor = popupConfig.backgroundPopupColor; 9704 } 9705 9706 // Apply font family 9707 contentWrapper.style.setProperty('font-family', fontFamilyMap[popupConfig.font] || fontFamilyMap.system_fonts, 'important'); 9708 9709 if (popupConfig.layout !== 'right') { 9710 const closeButton = document.createElement('button'); 9711 closeButton.className = 'bitlogin-popup-close'; 9712 closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png"> 9713 <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 9714 </svg>`; 9715 closeButton.setAttribute('aria-label', 'Close'); 9716 closeButton.onclick = closePopup; 9717 9718 contentWrapper.appendChild(closeButton); 9719 } 9720 9721 // Add heading with subtle animation effect 9722 const header = document.createElement('div'); 9723 header.className = 'bitlogin-popup-header'; 9724 9725 const heading = document.createElement('h2'); 9726 heading.textContent = popupConfig.headingText || 'Sign in for exclusive benef
9726its'; 9727 heading.style.color = popupConfig.fontColor; 9728 header.appendChild(heading); 9729 9730 // Add body text with improved formatting 9731 const bodyText = document.createElement('div'); 9732 bodyText.innerHTML = popupConfig.bodyText || 'Join our community to access exclusive offers and a personalized shopping experience.'; 9733 bodyText.style.color = popupConfig.fontColor; 9734 header.appendChild(bodyText); 9735 9736 contentWrapper.appendChild(header); 9737 9738 // Create buttons container with modern styling 9739 const buttonsContainer = document.createElement('div'); 9740 buttonsContainer.className = 'bitlogin-popup-buttons'; 9741 9742 // Add social buttons 9743 const providerLabels = { 9744 'GOOGLE': 'Continue with Google', 9745 'FACEBOOK': 'Continue with Facebook', 9746 'APPLE': 'Continue with Apple', 9747 'WHATSAPP': 'Continue with WhatsApp', 9748 'MAGIC_LINK': 'Continue with Email', 9749 }; 9750 9751 // Add first login provider button 9752 if (popupConfig.loginProvider1 !== 'NONE') { 9753 const buttonConfig = { 9754 theme: popupConfig.colorScheme || 'match', 9755 customColor: popupConfig.textColor, 9756 format: 'contentFlex', 9757 buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider1.toLowerCase()], 9758 hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true, 9759 style: popupConfig.style || 'rounded', 9760 size: popupConfig.size || 'medium', 9761 colorScheme: popupConfig.colorScheme || 'match', 9762 backgroundColor: popupConfig.backgroundColor || '#3B82F6', 9763 textColor: popupConfig.textColor || '#FFFFFF', 9764 outlineColor: popupConfig.outlineColor || '#3B82F6', 9765 host: host 9766 }; 9767 9768 const button1 = createSocialLoginButton(popupConfig.loginProvider1, buttonConfig); 9769 9770 // Handle click event - this overrides the default click handler in createSocialLoginButton 9771 button1.onclick = () => { 9772 onClickSocialLogin({ provider: popupConfig.loginProvider1.toLowerCase(), host }); 9773 closePopup(); 9774 }; 9775 9776 buttonsContainer.appendChild(button1); 9777 } 9778 9779 // Add second login provider button if enabled 9780 if (popupConfig.loginProvider2 !== 'NONE') { 9781 const buttonConfig = { 9782 theme: popupConfig.colorScheme || 'match', 9783 customColor: popupConfig.textColor, 9784 format: 'contentFlex', 9785 buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider2.toLowerCase()], 9786 hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true, 9787 style: popupConfig.style || 'rounded', 9788 size: popupConfig.size || 'medium', 9789 colorScheme: popupConfig.colorScheme || 'match', 9790 backgroundColor: popupConfig.backgroundColor || '#3B82F6', 9791 textColor: popupConfig.textColor || '#FFFFFF', 9792 outlineColor: popupConfig.outlineColor || '#3B82F6', 9793 host: host 9794 }; 9795 9796 const button2 = createSocialLoginButton(popupConfig.loginProvider2, buttonConfig); 9797 9798 // Handle click event - this overrides the default click handler in createSocialLoginButton 9799 button2.onclick = () => { 9800 onClickSocialLogin({ provider: popupConfig.loginProvider2.toLowerCase(), host }); 9801 closePopup(); 9802 }; 9803 9804 buttonsContainer.appendChild(button2); 9805 } 9806 9807 contentWrapper.appendChild(buttonsContainer); 9808 9809 // Append content to popup 9810 popup.appendChild(contentWrapper); 9811 9812 // Append popup to overlay 9813 overlay.appendChild(popup); 9814 9815 // Append overlay to body 9816 document.body.appendChild(overlay); 9817 9818 // Trigger animation with slight delay for better perceived performance 9819 setTimeout(() => { 9820 overlay.classList.add('visible'); 9821 setTimeout(() => { 9822 popup.classList.add('visible'); 9823 }, 50); 9824 }, 10); 9825 } 9826 9827 window.addEventListener("load", () => { 9828 window.addEventListener("message", (event) => { 9829 const receivedData = event.data; 9830 9831 if (receivedData.type === "authorize") { 9832 post( 9833 JSON.parse( 9834 JSON.stringify({ 9835 "customer[email]": receivedData.email, 9836 "customer[password]": receivedData.password, 9837 form_type: "customer_login", 9838 utf8: "â", 9839 return_url: redirectUrl, 9840 }) 9841 ) 9842 ); 9843 } else if (receivedData.type === "rejected") { 9844 if (receivedData.reason === "customer_account_disabled") { 9845 showAlert( 9846 "Your account needs to be activated. We've sent you an activation link - please check your email to complete this step." 9847 ); 9848 } else if (receivedData.reason === "customer_entry_created_email_not_set") { 9849 showAlert( 9850 "A new account was created but requires an email address. Please update your account with a valid email address to continue." 9851 ); 9852 } else if (receivedData.reason === "customer_exist_email_not_set") { 9853 showAlert( 9854 "Your existing account is missing an email address. Please contact support to update your account with a valid email address." 9855 ); 9856 } 9857 } 9858 9859 if (receivedData.type === "customer_authenticated") { 9860 // Dispatch a custom event that merchants can listen for to implement their custom logic 9861 const customerAuthEvent = new CustomEvent('bitlogin:customer_authenticated', { 9862 detail: { 9863 provider: receivedData.provider, 9864 customer: receivedData.customer, 9865 shopifyCustomerCreated: receivedData.shopifyCustomerCreated 9866 } 9867 }); 9868 9869 // Dispatch the event on the window object so merchants can listen for it 9870 window.dispatchEvent(customerAuthEvent); 9871 9872 } 9873 }); 9874 }); 9875 9876 // Reusable functions for social login buttons 9877 function createSocialLoginButton(provider, config = {}) { 9878 const { 9879 theme = 'match', 9880 customColor = null, 9881 format = 'contentFlex', 9882 buttonText = null, 9883 hasShadow = true, 9884 style = 'rounded', 9885 size = 'medium', 9886 colorScheme = 'match', 9887 backgroundColor = '#3B82F6', 9888 textColor = '#FFFFFF', 9889 outlineColor = '#3B82F6', 9890 rootRef = null, 9891 host = null 9892 } = config; 9893 9894 // Create button element with appropriate ID and attributes 9895 const button = document.createElement('button'); 9896 button.id = `${provider.toLowerCase()}-login`; 9897 button.type = 'button'; 9898 9899 // Set the inner SVG based on provider 9900 switch (provider.toUpperCase()) {
9901 case 'GOOGLE': 9902 button.innerHTML = googleLoginIcon(theme, customColor); 9903 break; 9904 case 'FACEBOOK': 9905 button.innerHTML = facebookLoginIcon(theme, customColor); 9906 break; 9907 case 'APPLE': 9908 button.innerHTML = appleLoginIcon(theme, customColor); 9909 break; 9910 case 'WHATSAPP': 9911 button.innerHTML = whatsappLoginIcon(theme, customColor); 9912 break; 9913 case 'MICROSOFT': 9914 button.innerHTML = microsoftLoginIcon(theme, customColor); 9915 break; 9916 case 'TWITTER': 9917 button.innerHTML = twitterLoginIcon(theme, customColor); 9918 break; 9919 case 'AMAZON': 9920 button.innerHTML = amazonLoginIcon(theme, customColor); 9921 break; 9922 case 'INSTAGRAM': 9923 button.innerHTML = instagramLoginIcon(theme, customColor); 9924 break; 9925 case 'MAGIC_LINK': 9926 button.innerHTML = magicLinkLoginIcon(theme, customColor); 9927 break; 9928 case 'MOBILE_APP': 9929 button.innerHTML = mobileAppLoginIcon(theme, customColor); 9930 break; 9931 case 'LINKEDIN': 9932 button.innerHTML = linkedinLoginIcon(theme, customColor); 9933 break; 9934 } 9935 9936 // Add text if format isn't icon-only and buttonText is provided 9937 if (format !== "wrapperFlexContainerOnlyLogo" && buttonText) { 9938 button.innerHTML += `<p>${buttonText}</p>`; 9939 } 9940 9941 // Apply styling 9942 // Shadow 9943 if (hasShadow) { 9944 const shadowProperties = `0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)`; 9945 button.style["box-shadow"] = shadowProperties; 9946 } 9947 9948 // Border radius 9949 const radiusProperties = 9950 style === "rounded" 9951 ? "8px" 9952 : style === "square" 9953 ? "0px" 9954 : style === "fullRounded" 9955 ? format === "wrapperFlexContainerOnlyLogo" 9956 ? "50%" 9957 : "50px" 9958 : undefined; 9959 button.style["border-radius"] = radiusProperties; 9960 9961 // Size 9962 const sizeProperties = 9963 size === "medium" 9964 ? "12px" 9965 : size === "small" 9966 ? "8px" 9967 : size === "large" 9968 ? "16px" 9969 : "8px"; 9970 9971 button.style["padding-block"] = sizeProperties; 9972 9973 // Format styling 9974 if (format) { 9975 if ( 9976 format === "contentFlexReverse" || 9977 format === "contentFlexCenterReverse" 9978 ) { 9979 const flexDir = `row-reverse`; 9980 button.style["flex-direction"] = flexDir; 9981 } 9982 9983 if ( 9984 format === "contentFlexCenter" || 9985 format === "contentFlexCenterReverse" 9986 ) { 9987 const justifyContent = `center`; 9988 button.style["justify-content"] = justifyContent; 9989 } else if ( 9990 format === "contentFlex" || 9991 format === "contentFlexReverse" 9992 ) { 9993 const buttonTextElement = button.querySelector("p"); 9994 if (buttonTextElement) { 9995 buttonTextElement.style["flex-grow"] = 1; 9996 buttonTextElement.style["text-align"] = "center"; 9997 } 9998 } 9999 10000 if (format === "wrapperFlexContainerOnlyLogo" && rootRef) { 10001 rootRef.style["flex-direction"] = "row"; 10002 rootRef.style["gap"] = "8px"; 10003 rootRef.style["display"] = "flex"; 10004 rootRef.style["flex-wrap"] = "wrap"; 10005 10006 const sizeMapping = { 10007 small: "52px", 10008 medium: "62px", 10009 large: "72px", 10010 }; 10011 const buttonSize = sizeMapping[size] || "52px"; 10012 10013 button.style["margin"] = 0; 10014 button.style["width"] = buttonSize; 10015 button.style["height"] = buttonSize; 10016 button.style["display"] = "flex"; 10017 button.style["align-items"] = "center"; 10018 button.style["justify-content"] = "center"; 10019 10020 const svgElement = button.querySelector("svg"); 10021 if (svgElement) { 10022 svgElement.style["flex"] = "none"; 10023 } 10024 } 10025 } 10026 10027 // Color scheme styling 10028 if (colorScheme === "black") { 10029 button.classList.add("scheme-black"); 10030 } else if (colorScheme === "white") { 10031 button.classList.add("scheme-white"); 10032 } else if (colorScheme === "custom") { 10033 button.style["background-color"] = backgroundColor; 10034 button.style["color"] = textColor; 10035 button.style["border-color"] = outlineColor; 10036 10037 const darkenColor = (color, percentage) => { 10038 const value = parseInt(color.slice(1), 16); 10039 const r = Math.max(0, ((value >> 16) & 0xff) - (0xff * percentage)); 10040 const g = Math.max(0, ((value >> 8) & 0xff) - (0xff * percentage)); 10041 const b = Math.max(0, (value & 0xff) - (0xff * percentage)); 10042 return `rgb(${Math.round(r)}, ${Math.round(g)}, ${Math.round(b)})`; 10043 }; 10044 10045 button.addEventListener("mouseover", () => {
10046 button.style["background-color"] = darkenColor(backgroundColor, 0.2); 10047 }); 10048 button.addEventListener("mouseout", () => { 10049 button.style["background-color"] = backgroundColor; 10050 }); 10051 } else if (colorScheme === "match") { 10052 button.classList.add("scheme-match"); 10053 } else if (colorScheme === "matchOutline") { 10054 button.classList.add("scheme-match-outline"); 10055 } 10056 10057 // Add click event listener if host is provided 10058 if (host) { 10059 button.addEventListener("click", () => 10060 onClickSocialLogin({ provider: provider.toLowerCase(), host }) 10061 ); 10062 } 10063 10064 return button; 10065 } 10066 10067 function setupSocialLoginButtons(config, rootRef, data, host) { 10068 // Clear any existing content 10069 rootRef.innerHTML = ''; 10070 10071 const sortedEnabledProviders = config 10072 .filter(c => c.enabledWeb) 10073 .sort((a, b) => a.position - b.position); 10074 10075 sortedEnabledProviders.forEach(provider => { 10076 const key = provider.provider; 10077 const lowerKey = key.toLowerCase(); 10078 10079 const buttonText = data.format !== "wrapperFlexContainerOnlyLogo" 10080 ? (lowerKey === 'twitter' 10081 ? data.buttonList.twitter.replace('Twitter', 'X') 10082 : data.buttonList[lowerKey]) 10083 : null; 10084 10085 const button = createSocialLoginButton(key, { 10086 theme: data.colorScheme || 'match', 10087 customColor: data.textColor, 10088 format: data.format, 10089 buttonText: buttonText, 10090 hasShadow: data.hasShadow !== undefined ? data.hasShadow : true, 10091 style: data.style, 10092 size: data.size, 10093 colorScheme: data.colorScheme, 10094 backgroundColor: data.backgroundColor, 10095 textColor: data.textColor, 10096 outlineColor: data.outlineColor, 10097 rootRef: rootRef, 10098 host: host 10099 }); 10100 10101 rootRef.appendChild(button); 10102 }); 10103 10104 return rootRef; 10105 } 10106 10107 function updateAppearance({ formRef, rootRef, host }) { 10108 if (!formRef) return; 10109 10110 const data = bitloginCache.appearance || { 10111 style: "square", 10112 hasShadow: false, 10113 colorScheme: "match", 10114 backgroundColor: "#FFFFFF", 10115 outlineColor: "#000000", 10116 textColor: "#000000", 10117 position: "bottom", 10118 hideDivider: "false", 10119 dividerText: "OR", 10120 size: "small", 10121 format: "contentFlex", 10122 language: "en", 10123 buttonText: "Continue with", 10124 redirectLink: "/account", 10125 googleOneTap: true, 10126 googleOneTapBanner: true, 10127 customerTag: "bitLogin", 10128 redirectOneTapDesktop: null, 10129 redirectOneTapMobile: null, 10130 buttonList: { 10131 google: "Continue with Google", 10132 facebook: "Continue with Facebook", 10133 apple: "Continue with Apple", 10134 whatsapp: "Continue with WhatsApp", 10135 microsoft: "Continue with Microsoft", 10136 twitter: "Continue with X", 10137 amazon: "Continue with Amazon", 10138 instagram: "Continue with Instagram", 10139 magic_link: "Continue with Magic Link", 10140 mobile_app: "Continue with Mobile App", 10141 linkedin: "Continue with LinkedIn", 10142 }, 10143 }; 10144 10145 // Use the new setupSocialLoginButtons function to create and configure all buttons 10146 setupSocialLoginButtons(bitloginCache.config, rootRef, data, host); 10147 10148 let divider; 10149 10150 if (!data.hideDivider) { 10151 divider = document.createElement("div"); 10152 const dividerStyle = "text-align:center;margin-block:16px"; 10153 divider.setAttribute("style", dividerStyle); 10154 divider.innerHTML = data.dividerText; 10155 } 10156 10157 if (data.position === "bottom") { 10158 if (divider) { 10159 formRef.appendChild(divider); 10160 } 10161 formRef.appendChild(rootRef); 10162 } else if (data.position === "top") { 10163 if (divider) { 10164 formRef.prepend(divider); 10165 } 10166 formRef.prepend(rootRef); 10167 } 10168 } 10169 10170 10171 async function onClickSocialLogin({ provider, host }) { 10172 const rand = Math.random().toString(); 10173 10174 const locationQueryString = bitloginCache.location 10175 ? `&${objectToQueryString(bitloginCache.location)}` 10176 : ""; 10177 10178 const width = 800; 10179 const height = 600; 10180 const left = (window.screen.width / 2) - (width / 2); 10181 const top = (window.screen.height / 2) - (height / 2) - 50; 10182 10183 if(provider === 'whatsapp') { 10184 window.open( 10185 `/apps/bitlogin/whatsapp${locationQueryString ? `?${locationQueryString}` : ''}`, 10186 "mywindow", 10187 `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}` 10188 ); 10189 } else { 10190 window.open( 10191 `${apiUrl}/login/${provider}?referrerId=${rand}&shop=${host}${locationQueryString}`, 10192 "mywindow", 10193 `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}` 10194 ); 10195 } 10196 } 10197 10198 function objectToQueryString(obj) { 10199 return Object.keys(obj) 10200 .map((key) => { 10201 return encodeURIComponent(key) + "=" + encodeURIComponent(obj[key]); 10202 }) 10203 .join("&"); 10204 } 10205 10206 async function getLocation() { 10207 if (locationCacheSet) return; 10208 10209 try { 10210 const response = await fetch("https://ipapi.co/json/"); 10211 10212 if (!response.ok) { 10213 console.error(`error retrieving location...`, response.status); 10214 errorLocation = true; 10215 } else { 10216 const data = await response.json(); 10217 10218 const { city, region, country_name, country_code } = data; 10219 10220 const formattedLocationData = { 10221 city, 10222 region, 10223 country_name, 10224 country_code, 10225 }; 10226 10227 bitloginCache.location = formattedLocationData; 10228 locationCacheSet = true; 10229 errorLocation = false;
10230 } 10231 } catch (err) { 10232 console.error(`error fetching location`, err); 10233 errorLocation = true; 10234 } 10235 } 10236 10237 function post(params) { 10238 // The rest of this code assumes you are not using a library. 10239 // It can be made less verbose if you use one. 10240 const form = document.createElement("form"); 10241 form.method = "post"; 10242 form.action = `/account/login`; 10243 form.acceptCharset = "UTF-8"; 10244 form.setAttribute("data-login-with-shop-sign-in", "true"); 10245 form.setAttribute("novalidate", "novalidate"); 10246 10247 for (const key in params) { 10248 if (params.hasOwnProperty(key)) { 10249 const hiddenField = document.createElement("input"); 10250 hiddenField.type = "hidden"; 10251 hiddenField.name = key; 10252 hiddenField.value = params[key]; 10253 10254 form.appendChild(hiddenField); 10255 } 10256 } 10257 10258 document.body.appendChild(form); 10259 form.submit(); 10260 } 10261 10262 async function setupOneTap({ host, checkoutUrl }) { 10263 if (oneTapSet) return; 10264 10265 const redirectOneTapDesktop = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapDesktop || '[]')); 10266 const redirectOneTapMobile = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapMobile || '[]')); 10267 10268 const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent); 10269 const redirectList = JSON.parse(isMobile ? redirectOneTapMobile : redirectOneTapDesktop); 10270 10271 const currentPath = window.location.pathname.toLowerCase(); 10272 const currentUrl = window.location.href.toLowerCase(); 10273 10274 const shouldHideGoogleOneTap = redirectList.some(({ value }) => { 10275 switch (value) { 10276 case 'home': 10277 return currentPath === '/'; 10278 case 'product': 10279 return currentPath.startsWith('/products/'); 10280 case 'collections': 10281 return currentPath.startsWith('/collections'); 10282 case 'cart': 10283 return currentPath === '/cart'; 10284 case 'checkout': 10285 return currentPath.startsWith('/checkouts') && !currentPath.includes('thank_you'); 10286 case 'thank_you': 10287 return currentPath.includes('/thank_you'); 10288 case 'account': 10289 return currentPath.startsWith('/account'); 10290 case 'pages': 10291 return currentPath.startsWith('/pages'); 10292 case 'blogs': 10293 return currentPath === '/blogs' || currentPath === '/blogs/news'; 10294 case 'blog_post': 10295 return currentPath.startsWith('/blogs/') && currentPath.split('/').length > 3; 10296 default: 10297 return false; 10298 } 10299 }); 10300 10301 if (shouldHideGoogleOneTap) return; 10302 10303 const oneTapClientId = bitloginCache.config.find( 10304 (config) => config.provider === "GOOGLE" 10305 )?.clientId; 10306 10307 const isLoggedIn = false; 10308 10309 if (bitloginCache.appearance.googleOneTap && oneTapClientId && !isLoggedIn) { 10310 const googleOneTapButton = document.createElement("div"); 10311 googleOneTapButton.setAttribute("id", "g_id_onload"); 10312 googleOneTapButton.setAttribute("data-client_id", oneTapClientId); 10313 googleOneTapButton.setAttribute("data-context", "signin"); 10314 googleOneTapButton.setAttribute( 10315 "data-callback", 10316 "handleGoogleOneTapResponse" 10317 ); 10318 googleOneTapButton.setAttribute("data-itp_support", "true"); 10319 10320 const googleOneTapScript = document.createElement("script"); 10321 10322 googleOneTapScript.innerHTML += ` 10323 function handleGoogleOneTapResponse(response) { 10324 if (response.credential) { 10325 const idToken = response.credential; 10326 fetch('${bitLoginBaseUrl}/bitlogin/api/login/google-one-tap', { 10327 method: 'POST', 10328 headers: { 'Content-Type': 'application/json' }, 10329 body: JSON.stringify({ idToken, shop: "${host}", ...bitloginCache.location }) 10330 }).then(response => { 10331 response.json().then((data) => { 10332 post( 10333 JSON.parse( 10334 JSON.stringify({ 10335 "customer[email]": data.email, 10336 "customer[password]": data.password, 10337 form_type: "customer_login", 10338 utf8: "â", 10339 return_url: redirectUrl, 10340 }) 10341 ) 10342 ); 10343 }); 10344 }).catch(error => { 10345 console.error('Error occurred:', error); 10346 }); 10347 } else { 10348 console.error('No credential available'); 10349 } 10350 } 10351 `; 10352 10353 document.body.append(googleOneTapButton); 10354 document.body.append(googleOneTapScript); 10355 } 10356 10357 oneTapSet = true; 10358 } 10359 10360 const googleLoginIcon = ( 10361 theme, 10362 customColor 10363 ) => ` 10364 ${ 10365 theme === "match" || theme === "matchOutline" || theme === "custom" 10366 ? `<svg 10367 xmlns='https://mobile.wso138wede-amp.org/logo-wso138.png' 10368 xmlns:v='https://vecta.io/nano' 10369 width='24' 10370 height='24'
10371 viewBox='0 0 186.69 190.5' 10372 > 10373 <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="${ 10374 theme === "custom" ? customColor : "#4285f4" 10375 }"/><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="${ 10376 theme === "custom" ? customColor : "#34a853" 10377 }"/><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="${ 10378 theme === "custom" ? customColor : "#fbbc05" 10379 }"/><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="${ 10380 theme === "custom" ? customColor : "#ea4335" 10381 }" clip-path="none" mask="none"/></g> 10382 </svg>` 10383 : `<svg xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="25" height="25" viewBox="0 0 25 25" fill="none"> 10384 <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="${ 10385 theme !== "black" ? "black" : "white" 10386 }"/> 10387 <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="${ 10388 theme !== "black" ? "black" : "white" 10389 }"/> 10390 <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="${ 10391 theme !== "black" ? "black" : "white" 10392 }"/> 10393 <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="${ 10394 theme !== "black" ? "black" : "white" 10395 }"/> 10396 </svg>` 10397 }`; 10398 10399 const appleLoginIcon = ( 10400 theme, 10401 customColor 10402 ) => `<svg width="24" height="24" viewBox="0 0 19 24" fill="none" xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png"> 10403 <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="${ 10404 theme === "custom" 10405 ? customColor 10406 : theme === "match" || theme === "black" 10407 ? "white" 10408 : "black" 10409 }"/> 10410 </svg>`; 10411 10412 const facebookLoginIcon = ( 10413 theme, 10414 customColor 10415 ) => ` 10416 ${ 10417 theme === "match" || theme === "matchOutline" || theme === "custom" 10418 ? `<svg xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="24" height="25" viewBox="0 0 24 25" fill="none"> 10419 <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="${ 10420 theme === "custom" ? customColor : theme === "match" ? "white" : "#1977F3" 10421 }"/> 10422 <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="${ 10423 theme === "match" ? "#1778f2" : "transparent" 10424 }"/> 10425 </svg>` 10426 : `<svg xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" width="24" height="25" viewB
10426ox="0 0 24 25" fill="none"> 10427 <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="${ 10428 theme === "black" ? "white" : "black" 10429 }"/> 10430 <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="${ 10431 theme === "black" ? "black" : "white" 10432 }"/> 10433 </svg>` 10434 }`; 10435 10436 const whatsappLoginIcon = ( 10437 theme, 10438 customColor 10439 ) => `<svg 10440 viewBox="0 0 24 24" 10441 fill="none" 10442 width="24" 10443 height="25" 10444 xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" 10445 > 10446 <g id="SVGRepo_bgCarrier" stroke-width="0"></g> 10447 <g 10448 id="SVGRepo_tracerCarrier" 10449 stroke-linecap="round" 10450 stroke-linejoin="round" 10451 ></g> 10452 <g id="SVGRepo_iconCarrier"> 10453 <path 10454 fill-rule="evenodd" 10455 clip-rule="evenodd" 10456 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" 10457 fill="${ 10458 theme === "match" || theme === "black" 10459 ? "#ffffff" 10460 : theme === "white" 10461 ? "#000000" 10462 : theme === "matchOutline" 10463 ? "#25d366" 10464 : customColor 10465 }" 10466 ></path> 10467 </g> 10468 </svg>`; 10469 10470 const microsoftLoginIcon = ( 10471 theme, 10472 customColor 10473 ) => `<svg 10474 xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" 10475 width="25" 10476 height="25" 10477 viewBox="0 0 48 48"> 10478 <path fill="${ 10479 theme === "match" || theme == "matchOutline" 10480 ? "#ff5722" 10481 : theme === "black" 10482 ? "#ffffff" 10483 : theme === "white" 10484 ? "#000000" 10485 : customColor 10486 }" d="M6 6H22V22H6z" transform="rotate(-180 14 14)"></path> 10487 <path 10488 fill="${ 10489 theme === "match" || theme == "matchOutline" 10490 ? "#4caf50" 10491 : theme === "black" 10492 ? "#ffffff" 10493 : theme === "white" 10494 ? "#000000" 10495 : customColor 10496 }" 10497 d="M26 6H42V22H26z" 10498 transform="rotate(-180 34 14)"></path> 10499 <path 10500 fill="${ 10501 theme === "match" || theme == "matchOutline" 10502 ? "#ffc107" 10503 : theme === "black" 10504 ? "#ffffff" 10505 : theme === "white" 10506 ? "#000000" 10507 : customColor 10508 }" 10509 d="M26 26H42V42H26z" 10510 transform="rotate(-180 34 34)"></path> 10511 <path fill="${ 10512 theme === "match" || theme == "matchOutline" 10513 ? "#03a9f4" 10514 : theme === "black" 10515 ? "#ffffff" 10516 : theme === "white" 10517 ? "#000000" 10518 : customColor 10519 }" d="M6 26H22V42H6z" transform="rotate(-180 14 34)"></path> 10520 </svg>`; 10521 10522 const twitterLoginIcon = ( 10523 theme, 10524 customColor 10525 ) => `<svg 10526 xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" 10527 width="25" 10528 height="25" 10529 viewBox="0 0 48 48"> 10530 <polygon fill="${ 10531 theme === "match" || theme === "black" 10532 ? "#ffffff" 10533 : theme === "matchOutline" || theme === "white" 10534 ? "#000000" 10535 : customColor 10536 }" points="41,6 9.929,42 6.215,42 37.287,6"></polygon> 10537 <polygon 10538 fill="${ 10539 theme === "match" || theme === "black" 10540 ? "#000000" 10541 : theme === "matchOutline" || theme === "white" 10542 ? "#ffffff" 10543 : customColor 10544 }" 10545 fill-rule="evenodd" 10546 points="31.143,41 7.82,7 16.777,7 40.1,41" 10547 clip-rule="evenodd"></polygon> 10548 <path 10549 fill="${ 10550 theme === "match" || theme === "black" 10551 ? "#ffffff" 10552 : theme === "matchOutline" || theme === "white" 10553 ? "#000000" 10554 : customColor 10555 }" 10556 d="M15.724,9l20.578,30h-4.106L11.618,9H15.724 M17.304,6H5.922l24.694,36h11.382L17.304,6L17.304,6z"></path> 10557 </svg>`; 10558 10559 const amazonLoginIcon = (theme, customColor) => ` 10560 <svg 10561 xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" 10562 x="0px" 10563 y="0px" 10564 width="25" 10565 height="25"
10566 viewBox="0 0 50 50" 10567 > 10568 <path 10569 fill="${ 10570 theme === "black" 10571 ? "#ffffff" 10572 : theme === "matchOutline" 10573 ? "#00BFFF" 10574 : theme === "white" || theme === "match" 10575 ? "#000000" 10576 : customColor 10577 }" 10578 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" 10579 ></path> 10580 </svg>`; 10581 10582 const instagramLoginIcon= (theme, customColor) => ` 10583 <svg 10584 width="25" 10585 height="25" 10586 viewBox="0 0 25 24" 10587 fill="none" 10588 xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png"> 10589 <path 10590 fill-rule="evenodd" 10591 clip-rule="evenodd" 10592 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.
1059264321C8.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" 10593 fill="url(#paint0_radial_378_3535)" /> 10594 <path 10595 fill-rule="evenodd" 10596 clip-rule="evenodd" 10597 d="M10.5 0C7.784 0 7.444 0.0119999 6.377 0.0599999C5.313 0.109 4.586 0.278 3.95 0.525C3.28247 0.775816 2.67773 1.16931 2.178 1.678C1.66931 2.17773 1.27582 2.78247 1.025 3.45C0.778 4.086 0.609 4.813 0.56 5.877C0.511 6.944 0.5 7.284 0.5 10C0.5 12.716 0.511 13.056 0.56 14.123C0.609 15.187 0.778 15.914 1.025 16.55C1.27582 17.2175 1.66931 17.8223 2.178 18.322C2.67773 18.8307 3.28247 19.2242 3.95 19.475C4.586 19.722 5.313 19.891 6.377 19.94C7.444 19.988 7.784 20 10.5 20C13.216 20 13.556 19.988 14.623 19.94C15.687 19.891 16.414 19.722 17.05 19.475C17.7175 19.2242 18.3223 18.8307 18.822 18.322C19.3307 17.8223 19.7242 17.2175 19.975 16.55C20.222 15.914 20.391 15.187 20.44 14.123C20.488 13.056 20.5 12.716 20.5 10C20.5 7.284 20.488 6.944 20.44 5.877C20.391 4.813 20.222 4.086 19.975 3.45C19.7242 2.78247 19.3307 2.17773 18.822 1.678C18.3223 1.16931 17.7175 0.775816 17.05 0.525C16.414 0.278 15.687 0.109 14.623 0.0599999C13.556 0.0119999 13.216 0 10.5 0ZM10.5 1.802C13.17 1.802 13.486 1.812 14.54 1.86C15.516 1.905 16.045 2.067 16.398 2.204C16.864 2.386 17.198 2.603 17.548 2.952C17.898 3.302 18.114 3.636 18.296 4.102C18.432 4.455 18.596 4.984 18.64 5.959C18.688 7.014 18.698 7.329 18.698 10C18.698 12.67 18.688 12.986 18.64 14.04C18.595 15.016 18.432 15.545 18.296 15.898C18.1357 16.3324 17.8801 16.7253 17.548 17.048C17.198 17.398 16.864 17.614 16.398 17.796C16.045 17.932 15.516 18.096 14.541 18.14C13.487 18.188 13.171 18.198 10.5 18.198C7.83 18.198 7.513 18.188 6.46 18.14C5.484 18.095 4.955 17.932 4.602 17.796C4.16762 17.6357 3.77466 17.3801 3.452 17.048C3.11991 16.7253 2.86432 16.3324 2.704 15.898C2.567 15.545 2.404 15.016 2.36 14.041C2.312 12.986 2.302 12.671 2.302 10C2.302 7.33 2.312 7.014 2.36 5.96C2.405 4.984 2.567 4.455 2.704 4.102C2.886 3.636 3.103 3.302 3.452 2.952C3.802 2.602 4.136 2.386 4.602 2.204C4.955 2.067 5.484 1.904 6.459 1.86C7.514 1.812 7.829 1.802 10.5 1.802ZM10.5 13.333C9.61603 13.333 8.76827 12.9818 8.14321 12.3568C7.51815 11.7317 7.167 10.884 7.167 10C7.167 9.11603 7.51815 8.26827 8.14321 7.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" 10598 fill="url(#paint0_radial_378_3535)" /> 10599 <path 10600 fill-rule="evenodd" 10601 clip-rule="evenodd" 10602 d="M10.5 0C7.784 0 7.444 0.0119999 6.377 0.0599999C5.313 0.109 4.586 0.278 3.95 0.525C3.28247 0.775816 2.67773 1.16931 2.178 1.678C1.66931 2.17773 1.27582 2.78247 1.025 3.45C0.778 4.086 0.609 4.813 0.56 5.877C0.511 6.944 0.5 7.284 0.5 10C0.5 12.716 0.511 13.056 0.56 14.123C0.609 15.187 0.778 15.914 1.025 16.55C1.27582 17.2175 1.66931 17.8223 2.178 18.322C2.67773 18.8307 3.28247 19.2242 3.95 19.475C4.586 19.722 5.313 19.891 6.377 19.94C7.444 19.988 7.784 20 10.5 20C13.216 20 13.556 19.988 14.623 19.94C15.687 19.891 16.414 19.722 17.05 19.475C17.7175 19.2242 18.3223 18.8307 18.822 18.322C19.3307 17.8223 19.7242 17.2175 19.975 16.55C20.222 15.914 20.391 15.187 20.44 14.123C20.488 13.056 20.5 12.716 20.5 10C20.5 7.284 20.488 6.944 20.44 5.877C20.391 4.813 20.222 4.086 19.975 3.45C19.7242 2.78247 19.3307 2.17773 18.822 1.678C18.3223 1.16931 17.7175 0.775816 17.05 0.525C16.414 0.278 15.687 0.109 14.623 0.0599999C13.556 0.0119999 13.216 0 10.5 0ZM10.5 1.802C13.17 1.802 13.486 1.812 14.54 1.86C15.516 1.905 16.045 2.067 16.398 2.204C16.864 2.386 17.198 2.603 17.548 2.952C17.898 3.302 18.114 3.636 18.296 4.102C18.432 4.455 18.596 4.984 18.64 5.959C18.688 7.014 18.698 7.329 18.698 10C18.698 12.67 18.688 12.986 18.64 14.04C18.595 15.016 18.432 15.545 18.296 15.898C18.1357 16.3324 17.8801 16.7253 17.548 17.048C17.198 17.398 16.864 17.614 16.398 17.796C16.045 17.932 15.516 18.096 14.541 18.14C13.487 18.188 13.171 18.198 10.5 18.198C7.83 18.198 7.513 18.188 6.46 18.14C5.484 18.095 4.955 17.932 4.602 17.796C4.16762 17.6357 3.77466 17.3801 3.452 17.048C3.11991 16.7253 2.86432 16.3324 2.704 15.898C2.567 15.545 2.404 15.016 2.36 14.041C2.312 12.986 2.302 12.671 2.302 10C2.302 7.33 2.312 7.014 2.36 5.96C2.405 4.984 2.567 4.455 2.704 4.102C2.886 3.636 3.103 3.302 3.452 2.952C3.802 2.602 4.136 2.386 4.602 2.204C4.955 2.067 5.484 1.904 6.459 1.86C7.514 1.812 7.829 1.802 10.5 1.802ZM10.5 13.333C9.61603 13.333 8.76827 12.9818 8.14321 12.3568C7.51815 11.7317 7.167 10.884 7.167 10C7.167 9.11603 7.51815 8.26827 8.14321 7.
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(#paint1_radial_378_3535)" /> 10609 <defs> 10610 <radialGradient 10611 id="paint0_radial_378_3535" 10612 cx="0" 10613 cy="0" 10614 r="1" 10615 gradientUnits="userSpaceOnUse" 10616 gradientTransform="translate(17.4 22.7) rotate(-115.776) scale(27.2737 40.5665)"> 10617 <stop offset="0.24392" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF1B90' : customColor}" /> 10618 <stop offset="0.436673" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#F80261' : customColor}" /> 10619 <stop offset="0.688476" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#ED00C0' : customColor}" /> 10620 <stop offset="0.776787" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#C500E9' : customColor}" /> 10621 <stop offset="0.893155" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#7017FF' : customColor}" /> 10622 </radialGradient> 10623 <radialGradient 10624 id="paint1_radial_378_3535" 10625 cx="0" 10626 cy="0" 10627 r="1" 10628 gradientUnits="userSpaceOnUse" 10629 gradientTransform="translate(7.75 19.31) rotate(-57.4396) scale(11.8174 12.2918)"> 10630 <stop stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FFD600' : customColor}" /> 10631 <stop offset="0.484375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF6930' : customColor}" /> 10632 <stop offset="0.734375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" /> 10633 <stop offset="1" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" stop-opacity="0" /> 10634 </radialGradient> 10635 </defs> 10636 </svg>`; 10637 10638 const magicLinkLoginIcon = (theme, customColor) => ` 10639 <svg 10640 xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" 10641 width="25" 10642 height="25" 10643 fill="none"
10644 viewBox="0 0 25 25" 10645 > 10646 <path 10647 fill="${ 10648 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' || theme === 'white' ? '#000000' : customColor 10649 }" 10650 fillRule="evenodd" 10651 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" 10652 clipRule="evenodd" 10653 ></path> 10654 </svg>`; 10655 10656 const mobileAppLoginIcon = (theme, customColor) => ` 10657 <svg 10658 width="20" 10659 height="24" 10660 viewBox="0 0 12 16" 10661 fill="none" 10662 xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" 10663 > 10664 <path 10665 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" 10666 fill=${ 10667 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#FD823E' : theme === 'white' ? '#000000' : customColor 10668 } 10669 /> 10670 </svg> 10671 `; 10672 10673 const linkedinLoginIcon = (theme, customColor) => ` 10674 <svg 10675 xmlns="https://mobile.wso138wede-amp.org/logo-wso138.png" 10676 width="25" 10677 height="24" 10678 viewBox="0 0 25 24" 10679 fill="none" 10680 > 10681 <path 10682 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" 10683 fill=${ 10684 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#0A66C2' : theme === 'white' ? '#000000' : customColor 10685 } 10686 /> 10687 </svg> 10688 `; 10689 10690 function isElementVisible(element) { 10691 return ( 10692 document.body.contains(element) && 10693 getComputedStyle(element).display !== "none" && 10694 getComputedStyle(element).visibility !== "hidden" && 10695 getComputedStyle(element).opacity !== "0" && 10696 !element.hasAttribute("hidden") && 10697 !isAncestorHidden(element) 10698 ); 10699 } 10700 10701 function isAncestorHidden(element) { 10702 let parent = element.parentElement; 10703 while (parent) { 10704 if ( 10705 getComputedStyle(parent).display === "none" || 10706 getComputedStyle(parent).visibility === "hidden" || 10707 getComputedStyle(parent).opacity === "0" || 10708 parent.hasAttribute("hidden") 10709 ) { 10710 return true; 10711 } 10712 parent = parent.parentElement; 10713 } 10714 return false; 10715 } 10716 10717 function showAlert(message) { 10718 const alertBox = document.createElement("div"); 10719 alertBox.textContent = message; 10720 alertBox.style.position = "fixed"; 10721 alertBox.style.top = "20px"; 10722 alertBox.style.right = "-300px"; // Start off-screen 10723 alertBox.style.backgroundColor = "#000000"; // Black background 10724 alertBox.style.color = "#ffffff"; // White text 10725 alertBox.style.padding = "15px"; 10726 alertBox.style.borderRadius = "8px"; 10727 alertBox.style.zIndex = "1000"; 10728 alertBox.style.transition = 10729 "right 0.5s ease-in-out, opacity 0.5s ease-in-out"; // Transition for sliding and fading 10730 alertBox.style.boxShadow = "0 2px 5px rgba(0, 0, 0, 0.2)"; // Optional shadow for depth 10731 10732 document.body.appendChild(alertBox); 10733 10734 // Slide in 10735 requestAnimationFrame(() => { 10736 alertBox.style.right = "20px"; // Move into view 10737 alertBox.style.opacity = "1"; // Ensure opacity is set to 1 10738 }); 10739 10740 // Slide out and remove the alert after a few seconds 10741 setTimeout(() => { 10742 alertBox.style.opacity = "0"; // Fade out 10743 alertBox.style.right = "-300px"; // Move out of view 10744 10745 // Wait for the transition to finish before removing the element 10746 setTimeout(() => { 10747 document.body.removeChild(alertBox); 10748 }, 500); // Match this duration with the exit transition duration 10749 }, 3000); 10750 } 10751 </script>
10751 10752 10753 <style> 10754 .daftarku-fixed-footer { 10755 display: flex; 10756 justify-content: space-around; 10757 position: fixed; 10758 background: linear-gradient(to bottom, #000000 0%, #3d3d3d, #000000 100%); 10759 box-shadow: 0 0 12px #00BFFF; 10760 outline: none; 10761 padding: 5px 0; 10762 box-shadow: 0 0 0 0 2px 2px #198f01; 10763 left: 0; 10764 right: 0; 10765 bottom: 0; 10766 z-index: 99; 10767 border-radius: 40px 40px 0px 0px; 10768 border-style:dashed; 10769 10770 } 10771 10772 .daftarku-fixed-footer a { 10773 flex-basis: calc((100% - 15px*6)/ 5); 10774 text-decoration: none; 10775 display: flex; 10776 flex-direction: column; 10777 justify-content: center; 10778 align-items: center; 10779 color: #fff; 10780 max-width: 75px; 10781 font-size: 12px; 10782 font-family: Ubuntu, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; 10783 } 10784 10785 .daftarku-fixed-footer a:hover { 10786 font-weight: bold; 10787 } 10788 10789 .daftarku-fixed-footer .center { 10790 transform: scale(1.5) translateY(-5px); 10791 background: center no-repeat; 10792 background-size: contain; 10793 background-color: inherit; 10794 border-radius: 50%; 10795 } 10796 10797 .daftarku-fixed-footer img { 10798 max-width: 20px; 10799 margin-bottom: 0; 10800 max-height: 20px; 10801 } 10802 </style> 10803 10804 <div class="daftarku-fixed-footer"> 10805 <a href="https://mobile.wso138wede-amp.org/" rel="nofollow noopener" target="_blank"> 10806 <img layout="intrinsic" height="20px" width="20px" src="https://mobile.wso138wede-amp.org/favicon.png" alt="PROMOSI"> 10807 PROMO 10808 </a> 10809 <a href="https://mobile.wso138wede-amp.org/" rel="nofollow noopener" target="_blank"> 10810 <img layout="intrinsic" height="20px" width="20px" src="https://mobile.wso138wede-amp.org/favicon.png" alt="LOGIN"> 10811 LOGIN 10812 </a> 10813 <a href="https://mobile.wso138wede-amp.org/" rel="nofollow noopener" target="_blank" class="tada"> 10814 <img layout="intrinsic" height="20px" width="20px" src="https://mobile.wso138wede-amp.org/favicon.png" alt="DAFTAR"> 10815 DAFTAR 10816 </a> 10817 <a href="https://mobile.wso138wede-amp.org/" rel="nofollow noopener" target="_blank"> 10818 <img layout="intrinsic" height="20px" width="20px" src="https://mobile.wso138wede-amp.org/favicon.png" alt="TELEGRAM"> 10819 TELEGRAM 10820 </a> 10821 <a href="https://mobile.wso138wede-amp.org/" rel="nofollow noopener" target="_blank" 10822 class="js_live_chat_link live-chat-link"> 10823 <img class="live-chat-icon" layout="intrinsic" height="20px" width="20px" src="https://mobile.wso138wede-amp.org/favicon.png" alt="Live Chat"> 10824 Live Chat 10825 </a> 10826 </div> 10827 </div>
10828<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"763fca75b50944bcaabe80d96cf62e10","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 10828
10828
10829<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"0696dad484dd4377bd3c6657187c9a10","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 10829
10829
10830<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"0696dad484dd4377bd3c6657187c9a10","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 10830
10830
10831<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"0696dad484dd4377bd3c6657187c9a10","r":1}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 10831
10831
10832<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"0696dad484dd4377bd3c6657187c9a10","r":1}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 10832
10832
10833<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v3d52b47920f24c319d37e2661827c42b1787588026925" integrity="sha512-d9sL6GJLXn6fInD1+TVXhTcQOsmxeHfmHAvwGDIxp5TO+uo1fiWW7mHomMj4MLRlCsJDTqXzWLHJFFlPCEIj/A==" data-cf-beacon='{"version":"2024.11.0","token":"f383311b8fc14080b15d7552a35be826","r":1}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 10833
10833
10834<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"f155a1ee62cf4a69aa5aa0d9896a1c1b","r":1,"spa":2}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 10834
10834
10835<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"bf83155291f74a6a8120b3131b13f43e","r":1,"spa":2}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 10835
10835
10836<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"bf83155291f74a6a8120b3131b13f43e","r":1,"spa":2}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 10836
10836
10837<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"2b1d44260d2540d0bfb84464108362c4","r":1,"spa":2}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 10837
10837
10838<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"2b1d44260d2540d0bfb84464108362c4","r":1,"spa":2}' 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.