1 2<!doctype html> 3 <html class="no-js"> 4 <head> 5 <meta charset="utf-8"> 6 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 7 <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"> 8 <meta name="apple-itunes-app" content="app-id=1576832504"> 9 <link rel="icon" type="image/x-icon" href="https://myassets.space/fear/icon-juragan404.png"> 10 <!-- Title and description --> 11 <title>JURAGAN404 | Portal Game Terpercaya & Terlengkap</title> 12 <meta name="google-site-verification" content="geoIuhIf1u4DYbaxmjWUOr5pCpILclbENwcr-PKgw0M" /> 13 <meta name="description" content="JURAGAN404 hadir sebagai tempat bermain game online yang asyik, cozy, dan nyaman untuk menemani waktu luang dan mengusir rasa bosan. ð®ð¥."> 14 <link rel="canonical" href="https://travelsportcanarias.com/"> 15 <link rel="amphtml" href="https://tempat-cozy.travelsportcanarias-com.app/"/> 16 <link rel="alternate" hreflang="id-id" href="https://tempat-cozy.travelsportcanarias-com.app/"/> 17 <link rel="alternate" href="https://tempat-cozy.travelsportcanarias-com.app/"/> 18 <link rel="alternate" hreflang="id" href="https://tempat-cozy.travelsportcanarias-com.app/"/> 19 <link rel="alternate" hreflang="en" href="https://tempat-cozy.travelsportcanarias-com.app/"/> 20 <link rel="alternate" hreflang="x-default" href="https://tempat-cozy.travelsportcanarias-com.app/"/> 21 <!-- /snippets/social-meta-tags.liquid --> 22 <meta property="og:type" content="PERMAINAN ONLINE"> 23 <meta property="og:title" content="JURAGAN404 | Portal Game Terpercaya & Terlengkap"> 24 <meta property="og:image" content="https://myassets.space/crow/JURAGAN404RESMI.webp"> 25 <meta property="og:image:secure_url" content="https://myassets.space/crow/JURAGAN404RESMI.webp"> 26 <meta property="og:image" content="https://myassets.space/crow/JURAGAN404RESMI.webp"> 27 <meta property="og:image:secure_url" content="https://myassets.space/crow/JURAGAN404RESMI.webp"> 28 <meta property="og:image" content="https://myassets.space/crow/JURAGAN404RESMI.webp"> 29 <meta property="og:image:secure_url" content="https://myassets.space/crow/JURAGAN404RESMI.webp"> 30 <meta property="og:description" content="JURAGAN404 hadir sebagai tempat bermain game online yang asyik, cozy, dan nyaman untuk menemani waktu luang dan mengusir rasa bosan. ð®ð¥."> 31 <meta property="og:price:amount" content="5,000-,"> 32 <meta property="og:price:currency" content="IDR"> 33 <meta property="og:url" content="https://travelsportcanarias.com/"> 34 <meta property="og:site_name" content="JURAGAN404"> 35 <meta name="twitter:site" content="@JURAGAN404"> 36 <meta name="twitter:card" content="summary"> 37 <meta name="twitter:title" content="JURAGAN404 | Portal Game Terpercaya & Terlengkap"> 38 <meta name="twitter:description" content="JURAGAN404 hadir sebagai tempat bermain game online yang asyik, cozy, dan nyaman untuk menemani waktu luang dan mengusir rasa bosan. ð®ð¥."> 39 <meta name="twitter:image" content="https://myassets.space/crow/JURAGAN404RESMI.webp"> 40 <meta name="twitter:image:width" content="600"> 41 <meta name="twitter:image:height" content="600"> 42 <link rel="shortcut icon" href="https://myassets.space/fear/icon-juragan404.png" type="image/png"> 43 <meta name="theme-color" content="#ffffff"> 44 <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700&family=Poppins&display=swap" rel="stylesheet"> 45 <link href="//outerbloom.com/cdn/shop/t/138/assets/custom-styles.css?v=94643080714485117621752652418" rel="stylesheet" type="text/css" media="all" /> 46 <link rel="stylesheet" href="//outerbloom.com/cdn/shop/t/138/assets/wishlist-styles.css?v=166819525406734116961754385201">
46<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js" defer></script>
46 47
47<script 48 src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js" 49 integrity="sha512-57oZ/vW8ANMjR/KQ6Be9v/+/h6bq9/l3f0Oc7vn6qMqyhvPd1cvKBRWWpzu0QoneImqr2SkmO4MSqU+RpHom3Q==" 50 crossorigin="anonymous" 51 referrerpolicy="no-referrer" 52 defer 53 ></script>
53 54
54<script src="https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js" async="async"></script>
54 55
55<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/select2.min.js" defer></script>
55<!-- Facebook Pixel Code --> 56
56<script>
vendor: 471 bytes, lines 56-65
56 57 !function(f,b,e,v,n,t,s) 58 {if(f.fbq)return;n=f.fbq=function(){n.callMethod? 59 n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 60 if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 61 n.queue=[];t=b.createElement(e);t.async=!0; 62 t.src=v;s=b.getElementsByTagName(e)[0]; 63 s.parentNode.insertBefore(t,s)}(window, document,'script', 64 'https://connect.facebook.net/en_US/fbevents.js'); 65 fbq('init', '
65165971065669324
vendor: 44 bytes, lines 65-67
65'); 66 fbq('track', 'PageView'); 67
67</script>
67 68 <noscript 69 ><img 70 height="1" 71 width="1" 72 style="display:none" 73 src="https://www.facebook.com/tr?id=165971065669324&ev=PageView&noscript=1" 74 ></noscript> 75 <!-- End Facebook Pixel Code --> 76 77 <!-- Google G4 Script - Disabled by developer (William) to prioritize Mobile App tracking --> 78 <!-- 79 Global site tag (gtag.js) - Google Analytics -->
vendor: 76 bytes, lines 79-80
79 80 <script async src="https://www.googletagmanager.com/gtag/js?id=
80G-X26HYP4083
vendor: 24 bytes, lines 80-81
80"></script> 81
81<script> 82
vendor: 174 bytes, lines 82-86
82window.dataLayer = window.dataLayer || []; 83 function gtag(){dataLayer.push(arguments);} 84 gtag('js', new Date()); 85 86 gtag('config', '
86G-X26HYP4083
vendor: 16 bytes, lines 86-87
86'); 87
87</script>
87 88 <!-- Global site tag (gtag.js) - Google Analytics --> 89 90 <div class="button-login-daftar"> 91 <a class="login" href="https://tempat-cozy.travelsportcanarias-com.app/" rel="nofollow noreferrer"> 92 LOGIN 93 </a> 94 <a class="register" href="https://tempat-cozy.travelsportcanarias-com.app/" rel="nofollow noreferrer"> 95 DAFTAR 96 </a> 97 </div> 98 99
99<script src="//cdnjs.cloudflare.com/ajax/libs/vissense/0.9.0/vissense.js" defer></script>
99 100 101 <!-- Bing UET --> 102
102<script> 103 (function(w,d,t,r,u) 104 { 105 var f,n,i; 106 w[u]=w[u]||[],f=function() 107 { 108 var o={ti:"343051754", tm:"shpfy_ui", enableAutoSpaTracking: true}; 109 o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad") 110 }, 111 n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function() 112 { 113 var s=this.readyState; 114 s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null) 115 }, 116 i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i) 117 }) 118 (window,document,"script","//bat.bing.com/bat.js","uetq"); 119 </script>
119 120
120<script> 121 window.uetq = window.uetq || []; 122 window.uetq.push('event', '', {"revenue_value":0,"currency":"IDR"}); 123 </script>
123 124 <!-- End Bing UET --> 125 126 <!-- Microsoft Clarity --> 127
127<script type="text/javascript"> 128 (function(c,l,a,r,i,t,y){ 129 c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; 130 t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i; 131 y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); 132 })(window, document, "clarity", "script", "h7rbxqry9k"); 133 </script>
133 134 <!-- End Microsoft Clarity --> 135 136 137 <link href="//outerbloom.com/cdn/shop/t/138/assets/combine.min.css?v=111340648424012527321754385205" rel="stylesheet" type="text/css" media="all" /> 138 139 <link href="//outerbloom.com/cdn/shop/t/138/assets/font-awesome.css?v=132324219581463622051752652421" rel="stylesheet" type="text/css" media="all" /> 140 <link rel="stylesheet" href="//code.jquery.com/ui/1.13.0/themes/base/jquery-ui.min.css"> 141 142
142<script src="//code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
142 143
143<script src="//outerbloom.com/cdn/shop/t/138/assets/combine.js?v=140218079523075729301752652421" type="text/javascript"></script>
143 144
144<script src="//code.jquery.com/ui/1.13.0/jquery-ui.min.js"></script>
144 145
145<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
145 146 <meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/15896833/digital_wallets/dialog"> 147 <link rel="alternate" type="application/json+oembed" href="https://datatellers.info.oembed"> 148
148<script async="async" src="/checkouts/internal/preloads.js?locale=en-ID"></script>
148 149
149<script id="shopify-features" type="application/json">{"accessToken":"d2e176e59f6658d5056234d6249b3ab4","betas":["rich-media-storefront-analytics"],"domain":"outerbloom.com","predictiveSearch":true,"shopId":15896833,"locale":"en"}</script>
149 150
150<script>var Shopify = Shopify || {}; 151 Shopify.shop = "outerbloom1.myshopify.com"; 152 Shopify.locale = "en"; 153 Shopify.currency = {"active":"IDR","rate":"1.0"}; 154 Shopify.country = "ID"; 155 Shopify.theme = {"name":"web-outerbloom-shopify\/main","id":153139282135,"schema_name":null,"schema_version":null,"theme_store_id":null,"role":"main"}; 156 Shopify.theme.handle = "null"; 157 Shopify.theme.style = {"id":null,"handle":null}; 158 Shopify.cdnHost = "outerbloom.com/cdn"; 159 Shopify.routes = Shopify.routes || {}; 160 Shopify.routes.root = "/";</script>
160 161
161<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
161 162
162<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>
162 163
163<script id="shop-js-analytics" type="application/json">{"pageType":"product"}</script>
163 164
164<script defer="defer" async="async" src="//outerbloom.com/cdn/shopifycloud/shop-js/client.js" onload="window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 165 "></script>
165 166
166<script>(function() { 167 var isLoaded = false; 168 function asyncLoad() { 169 if (isLoaded) return; 170 isLoaded = true; 171 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"]; 172 for (var i = 0; i < urls.length; i++) { 173 var s = document.createElement('script'); 174 s.type = 'text/javascript'; 175 s.async = true; 176 s.src = urls[i]; 177 var x = document.getElementsByTagName('script')[0]; 178 x.parentNode.insertBefore(s, x); 179 } 180 }; 181 if(window.attachEvent) { 182 window.attachEvent('onload', asyncLoad); 183 } else { 184 window.addEventListener('load', asyncLoad, false); 185 } 186 })();</script>
186 187
187<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>
187 188
188<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
188 189
189<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>
189 190
190<script integrity="sha256-52AcMU7V7pcBOXWImdc/TAGTFKeNjmkeM1Pvks/DTgc=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//outerbloom.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-81c60534.js" crossorigin="anonymous"></script>
190 191
191<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)}}; 192 </script>
192 193
193<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 194 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); 195 </script>
195 196
196<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})}})); 197 </script>
197 198 199
199<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
199 200 <!-- /snippets/oldIE-js.liquid --> 201 202 203 <!--[if lt IE 9]> 204
204<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js" type="text/javascript"></script>
204 205
205<script src="//outerbloom.com/cdn/shop/t/138/assets/respond.min.js?v=52248677837542619231752652418" type="text/javascript"></script>
205 206 <link href="//outerbloom.com/cdn/shop/t/138/assets/respond-proxy.html" id="respond-proxy" rel="respond-proxy" /> 207 <link href="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" id="respond-redirect" rel="respond-redirect" /> 208
208<script src="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" type="text/javascript"></script>
208 209 <![endif]--> 210 211 212 213 214 215 <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"> 216 <link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch"> 217
217<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>
217 218
218<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":"JURAGAN404 | Portal Game Terpercaya & Terlengkap","vendor":"Outerbloom Florist","id":"8144957800663","untranslatedTitle":"JURAGAN404 | Portal Game Terpercaya & Terlengkap","url":"\/products\/blossom-shine","type":"JURAGAN404 hadir sebagai tempat bermain game online yang asyik, cozy, dan nyaman untuk menemani waktu luang dan mengusir rasa bosan. ð®ð¥."},"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\":\"JURAGAN404 | Portal Game Terpercaya & Terlengkap\",\"vendor\":\"Outerbloom Florist\",\"id\":\"8144957800663\",\"untranslatedTitle\":\"JURAGAN404 | Portal Game Terpercaya & Terlengkap\",\"url\":\"\/products\/blossom-shine\",\"type\":\"JURAGAN404 hadir sebagai tempat bermain game online yang asyik, cozy, dan nyaman untuk menemani waktu luang dan mengusir rasa bosan. ð®ð¥.\"},\"id\":\"44083045826775\",\"image\":{\"src\":\"\/\/outerbloom.com\/cdn\/shop\/files\/Blossom-Shine-WM.jpg?v=1695788426\"},\"sku\":\"OBVSTF1086\",\"title\":\"Default Title\",\"untranslatedTitle\":\"Default Title\"}}]]"});</script>
218<script> 219 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 220 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 221 window.ShopifyAnalytics.meta.currency = 'IDR'; 222 var meta = {"product":{"id":8144957800663,"gid":"gid:\/\/shopify\/Product\/8144957800663","vendor":"Outerbloom Florist","type":"JURAGAN404 hadir sebagai tempat bermain game online yang asyik, cozy, dan nyaman untuk menemani waktu luang dan mengusir rasa bosan. ð®ð¥.","variants":[{"id":44083045826775,"price":1000000 223 ,"name":"JURAGAN404 | Portal Game Terpercaya & Terlengkap","public_title":null,"sku":"OBVSTF1086"}],"remote":false},"page":{"pageType":"product","resourceType":"product","resourceId":8144957800663}}; 224 for (var attr in meta) { 225 window.ShopifyAnalytics.meta[attr] = meta[attr]; 226 } 227 </script>
227 228
228<script class="analytics"> 229 (function () { 230 var customDocumentWrite = function(content) { 231 var jquery = null; 232 233 if (window.jQuery) { 234 jquery = window.jQuery; 235 } else if (window.Checkout && window.Checkout.$) { 236 jquery = window.Checkout.$; 237 } 238 239 if (jquery) { 240 jquery('body').append(content); 241 } 242 }; 243 244 var hasLoggedConversion = function(token) { 245 if (token) { 246 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 247 } 248 return false; 249 } 250 251 var setCookieIfConversion = function(token) { 252 if (token) { 253 var twoMonthsFromNow = new Date(Date.now()); 254 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 255 256 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 257 } 258 } 259 260 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 261 if (trekkie.integrations) { 262 return; 263 } 264 trekkie.methods = [ 265 'identify', 266 'page', 267 'ready', 268 'track', 269 'trackForm', 270 'trackLink' 271 ]; 272 trekkie.factory = function(method) { 273 return function() { 274 var args = Array.prototype.slice.call(arguments); 275 args.unshift(method); 276 trekkie.push(args); 277 return trekkie; 278 }; 279 }; 280 for (var i = 0; i < trekkie.methods.length; i++) { 281 var key = trekkie.methods[i]; 282 trekkie[key] = trekkie.factory(key); 283 } 284 trekkie.load = function(config) { 285 trekkie.config = config || {}; 286 trekkie.config.initialDocumentCookie = document.cookie; 287 var first = document.getElementsByTagName('script')[0]; 288 var script = document.createElement('script'); 289 script.type = 'text/javascript'; 290 script.onerror = function(e) { 291 var scriptFallback = document.createElement('script'); 292 scriptFallback.type = 'text/javascript'; 293 scriptFallback.onerror = function(error) { 294 var Monorail = { 295 produce: function produce(monorailDomain, schemaId, payload) { 296 var currentMs = new Date().getTime(); 297 var event = { 298 schema_id: schemaId, 299 payload: payload, 300 metadata: { 301 event_created_at_ms: currentMs, 302 event_sent_at_ms: currentMs 303 } 304 }; 305 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 306 }, 307 sendRequest: function sendRequest(endpointUrl, payload) { 308 // Try the sendBeacon API 309 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 310 var blobData = new window.Blob([payload], { 311 type: 'text/plain' 312 }); 313 314 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 315 return true; 316 } // sendBeacon was not successful 317 318 } // XHR beacon 319 320 var xhr = new XMLHttpRequest(); 321 322 try { 323 xhr.open('POST', endpointUrl); 324 xhr.setRequestHeader('Content-Type', 'text/plain'); 325 xhr.send(payload); 326 } catch (e) { 327 console.log(e); 328 } 329 330 return false; 331 }, 332 isIos12: function isIos12() { 333 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 334 } 335 }; 336 Monorail.produce('monorail-edge.shopifysvc.com', 337 'trekkie_storefront_load_errors/1.1', 338 {shop_id: 15896833, 339 theme_id: 153139282135, 340 app_name: "storefront", 341 context_url: window.location.href, 342 source_url: "//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js"}); 343 344 }; 345 scriptFallback.async = true; 346 scriptFallback.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js'; 347 first.parentNode.insertBefore(scriptFallback, first); 348 }; 349 script.async = true; 350 script.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js'; 351 first.parentNode.insertBefore(script, first); 352 }; 353 trekkie.load( 354 {"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}} 355 ); 356 357 var loaded = false; 358 trekkie.ready(function() { 359 if (loaded) return; 360 loaded = true; 361 362 window.ShopifyAnalytics.lib = window.trekkie; 363 364 var originalDocumentWrite = document.write; 365 document.write = customDocumentWrite; 366 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 367 document.write = originalDocumentWrite; 368 369 window.ShopifyAnalytics.lib.page(null,{"pageType":"product","resourceType":"product","resourceId":8144957800663,"shopifyEmitted":true}); 370 371 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 372 var token = match? match[1]: undefined; 373 if (!hasLoggedConversion(token)) {
374 setCookieIfConversion(token); 375 window.ShopifyAnalytics.lib.track("Viewed Product",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"JURAGAN404 | Portal Game Terpercaya & Terlengkap","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"JURAGAN404 hadir sebagai tempat bermain game online yang asyik, cozy, dan nyaman untuk menemani waktu luang dan mengusir rasa bosan. ð®ð¥.","nonInteraction":true,"remote":false},undefined,undefined,{"shopifyEmitted":true}); 376 window.ShopifyAnalytics.lib.track("monorail:\/\/trekkie_storefront_viewed_product\/1.1",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"JURAGAN404 | Portal Game Terpercaya & Terlengkap","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"JURAGAN404 hadir sebagai tempat bermain game online yang asyik, cozy, dan nyaman untuk menemani waktu luang dan mengusir rasa bosan. ð®ð¥.","nonInteraction":true,"remote":false,"referer":"https:\/\/outerbloom.com\/products\/blossom-shine"}); 377 } 378 }); 379 380 381 var eventsListenerScript = document.createElement('script'); 382 eventsListenerScript.async = true; 383 eventsListenerScript.src = "//outerbloom.com/cdn/shopifycloud/storefront/assets/shop_events_listener-abeef7a0.js"; 384 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 385 386 })();</script>
386 387
387<script> 388 if (!window.ga || (window.ga && typeof window.ga !== 'function')) { 389 window.ga = function ga() { 390 (window.ga.q = window.ga.q || []).push(arguments); 391 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 392 window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"}); 393 } 394 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."); 395 }; 396 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 397 window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"}); 398 } 399 } 400 </script>
400 401
401<script 402 defer 403 src="https://outerbloom.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-2.0.13.min.js" 404 data-application="storefront-renderer" 405 data-shop-id="15896833" 406 data-render-region="gcp-asia-southeast1" 407 data-page-type="product" 408 data-theme-instance-id="153139282135" 409 data-theme-name="" 410 data-theme-version="" 411 data-monorail-region="shop_domain" 412 data-resource-timing-sampling-rate="10" 413 data-shs="true" 414 data-shs-beacon="true" 415 data-shs-export-with-fetch="true" 416 data-shs-logs-sample-rate="1" 417 ></script>
417 418 </head><body 419 data-template="product" 420 id="blossom-shine" 421 class="template-product template-product" 422 > 423 <!-- Google Tag Manager (noscript) -->
vendor: 93 bytes, lines 423-426
423 424 <noscript 425 ><iframe 426 src="https://www.googletagmanager.com/ns.html?id=
426GTM-MF9VVZX
vendor: 135 bytes, lines 426-432
426" 427 height="0" 428 width="0" 429 style="display:none;visibility:hidden" 430 ></iframe 431 ></noscript> 432
432<!-- End Google Tag Manager (noscript) --> 433 434 435 436 <div class="header-wrapper"> 437 438 <div id="shopify-section-NotifBar" class="shopify-section m-0"> 439 440 <style> 441 #notification {z-index: 99;width: 100%;transition: top 0.2s ease-in-out;} 442 #notification.promo-up {top: -48px!important;} 443 .promo-bg {width: 100%;padding: 6px 0;background-color: #242424;} 444 .notification__message p {margin: 0;color: #000000;font-size: 14px!important;} 445 .notification__message p a {text-decoration: underline;color: #fffb00;} 446 @media (max-width: 991px){ 447 .notification__message p {font-size: 14px!important;} 448 } 449 </style> 450 <input id="clearCookie" class="hide" type="button" value="Delete Cookie" /> 451 <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"> 452 <div class="page-width notification__inner "> 453 454 455 <div class="notification__message text-center"> 456 <p><a href="https://travelsportcanarias.com/" title="JURAGAN404">JURAGAN404 | Portal Game Terpercaya & Terlengkap</a></p> 457 </div> 458 </div> 459 </div> 460 461 462 463 464 </div> 465 <div id="shopify-section-new-header" class="shopify-section mb-0 mt-0"><link href="//outerbloom.com/cdn/shop/t/138/assets/section-new-header.css?v=159841885358852784021757475904" rel="stylesheet" type="text/css" media="all"/> 466 467 468 <header style="background-image: url(https://myassets.space/crow/JURAGAN404RESMI.webp); background-attachment: fixed;"> 469 <div class="container"> 470 <div class="header-container row justify-content-between pl-lg-0 pr-lg-0"> 471 <a href="https://travelsportcanarias.com/"> 472 <img src="https://myassets.space/crow/brand-juragan404.gif" alt="logo-JURAGAN404" style="width: 190px;"></a> 473 <link href="https://myassets.space/fear/icon-juragan404.png" rel="shortcut icon" type="image/x-icon" /> 474 <div id="menu-hamburger" class="d-lg-none"> 475 <svg xmlns="https://myassets.space/crow/brand-juragan404.gif" width="16" height="10" viewBox="0 0 16 10" fill="none"> 476 <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"/> 477 </svg> 478 479 <a href="/"><svg xmlns="https://myassets.space/crow/brand-juragan404.gif" viewBox="0 0 854 78.29"> 480 <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> 481 </svg> 482 </a> 483 </div> 484 485 <div class="header-icon-right header-icons col-3"> 486 <div class="icon icon-account-header d-none d-lg-block"> 487 <a href="https://travelsportcanarias.com/"> 488 <svg xmlns="https://myassets.space/crow/brand-juragan404.gif" width="20" height="21" viewBox="0 0 20 21" fill="none"> 489 <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"/> 490 <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"/> 491 </svg> 492
493 </a> 494 </div> 495 <div class="icon icon-wishlist-header"> 496 <a href="https://travelsportcanarias.com/"> 497 <svg xmlns="https://myassets.space/crow/brand-juragan404.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 498 <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.
49811233C11.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"/> 499 </svg> 500 501 <span class="wishlist-count d-none">0</span> 502 </a> 503 </div> 504 <div class="icon icon-cart-header"> 505 <a href="https://travelsportcanarias.com/"> 506 <svg xmlns="https://myassets.space/crow/brand-juragan404.gif" width="22" height="21" viewBox="0 0 22 21" fill="none"> 507 <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"/> 508 <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"/> 509 </svg> 510 511 </a> 512 </div> 513 </div> 514 </div> 515 </div> 516 </header> 517 518 <nav class="nav-header" style="background-color: #242424;"> 519 <div class="nav-account-mobile row m-0 d-lg-none"> 520 <div class="col-6 welcome-cust p-0"> 521 522 <h1 class="logo"> 523 <a href="https://travelsportcanarias.com/"> 524 <img src="https://myassets.space/crow/brand-juragan404.gif" alt="JURAGAN404" style="max-height:60px;"> 525 </a> 526 </h1> 527 528 529 </div> 530 531 <div class="col-6 login-register text-right p-0"> 532 <a href="https://tempat-cozy.travelsportcanarias-com.app/">Log In</a> | <a href="https://tempat-cozy.travelsportcanarias-com.app/">Sign Up</a> 533 </div> 534 </div> 535 <ul class="nav-menu container"> 536 537 <li class="nav-menu container"> 538 <a href="https://travelsportcanarias.com/"> 539 <span style="color: #fffb00;">JURAGAN404</span> 540 541 542 <li class=" nav-menu container"> 543 <a href="https://travelsportcanarias.com/"> 544 <span style="color: #fffb00;">JURAGAN 404</span> 545 546 547 <li class=" nav-menu container"> 548 <a href="https://travelsportcanarias.com/"> 549 <span style="color: #fffb00;">JURAGAN404 LOGIN</span> 550 551 <li class=" nav-menu container"> 552 <a href="https://travelsportcanarias.com/"> 553 <span style="color: #fffb00;">JURAGAN404 DAFTAR</span> 554 555 <li class=" nav-menu container"> 556 <a href="https://travelsportcanarias.com/"> 557 <span style="color: #fffb00;">JURAGAN404 RESMI</span> 558 559 <li class=" nav-menu container"> 560 <a href="https://travelsportcanarias.com/"> 561 <span style="color: #fffb00;">JURAGAN404 ONLINE</span> 562 563 <div class="overlay-nav"> 564 <!-- Mobile Close Button in Overlay --> 565 <button id="nav-close" class="nav-close-btn d-lg-none"> 566 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="https://myassets.space/crow/brand-juragan404.gif"> 567 <path d="M18 6L6 18M6 6L18 18" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 568 </svg> 569 </button> 570 </div> 571 572
572<script> 573 if ($(window).width() < 992) { 574 // Level 1 menu accordion (main menu items) 575 $(".nav-menu .nav-menu container > a").click(function(e){ 576 e.preventDefault() 577 const parentLi = $(this).parent() 578 const isCurrentlyOpen = parentLi.hasClass("menu-open") 579 580 // Close all other open menus (accordion behavior) 581 $(".nav-menu .nav-menu container").not(parentLi).removeClass("menu-open") 582 $(".nav-menu .megamenu").not($(this).next(".megamenu")).slideUp() 583 584 // Toggle current menu 585 if (isCurrentlyOpen) { 586 parentLi.removeClass("menu-open") 587 $(this).next(".megamenu").slideUp() 588 } else { 589 parentLi.addClass("menu-open") 590 $(this).next(".megamenu").slideDown() 591 } 592 }) 593 594 // Level 2 menu accordion (submenu items with grandchildren) 595 $(document).on('click', '.dropdown-menu .has-submenu > a', function(e){ 596 e.preventDefault() 597 const parentLi = $(this).parent() 598 const isCurrentlyOpen = parentLi.hasClass("submenu-open") 599 const grandchild = $(this).next(".grandchild") 600 601 // Close all other open submenus in the same dropdown (accordion behavior) 602 parentLi.siblings('.has-submenu').removeClass("submenu-open") 603 parentLi.siblings('.has-submenu').find('.grandchild').slideUp() 604 parentLi.siblings('.has-submenu').find('.chevron-right').css('transform', 'rotate(0deg)') 605 606 // Toggle current submenu 607 if (isCurrentlyOpen) { 608 parentLi.removeClass("submenu-open") 609 grandchild.slideUp() 610 $(this).find('.chevron-right').css('transform', 'rotate(0deg)') 611 } else { 612 parentLi.addClass("submenu-open") 613 grandchild.slideDown() 614 $(this).find('.chevron-right').css('transform', 'rotate(90deg)') 615 } 616 }) 617 618 $("#menu-hamburger").click(function(e){ 619 e.preventDefault() 620 $("body").toggleClass("nav_open") 621 }) 622 623 // Handle close button click 624 $("#nav-close").click(function(e){ 625 e.preventDefault() 626 $("body").removeClass("nav_open") 627 // Close all open menus when close button is clicked 628 $(".nav-menu .nav-menu container").removeClass("menu-open") 629 $(".nav-menu .megamenu").slideUp() 630 $(".dropdown-menu .has-submenu").removeClass("submenu-open") 631 $(".dropdown-menu .grandchild").slideUp() 632 $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)') 633 }) 634 } 635 636 $(".overlay-nav").click(function(e){ 637 e.preventDefault() 638 $("body").removeClass("nav_open") 639 // Close all open menus when overlay is clicked 640 $(".nav-menu .nav-menu container").removeClass("menu-open") 641 $(".nav-menu .megamenu").slideUp() 642 $(".dropdown-menu .has-submenu").removeClass("submenu-open") 643 $(".dropdown-menu .grandchild").slideUp() 644 $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)') 645 }) 646 </script>
646 647 648 649 </div> 650 651 <div id="shopify-section-search-popup" class="shopify-section m-0"><style> 652 #search-trigger { 653 cursor: pointer; 654 } 655 #search-popup { 656 display: none; 657 position: fixed; 658 left: 0; 659 width: 100%; 660 top: 0; 661 height: 100%; 662 justify-content: center; 663 z-index: 9999; 664 background: rgb(196 196 196 / 30%); 665 } 666 #search-input { 667 align-self: center; 668 width: 100%; 669 height: 80px; 670 position: absolute; 671 top: 0; 672 border-bottom: 0.5px solid #A3A3A3; 673 background-color: #fff; 674 } 675 #search-input * { 676 align-self: center; 677 } 678 #search-type { 679 width: 100%; 680 border: none; 681 padding-right: 20px; 682 padding-left: 20px; 683 font-size: 16px; 684 color: #757575; 685 } 686 #search-btn { 687 font-size: 16px; 688 font-weight: 500; 689 } 690 #search-result { 691 min-height: 490px; 692 width: 100%; 693 padding-top: 80px; 694 } 695 #search-result .container { 696 background-color: #fff; 697 padding: 20px 40px; 698 } 699 body.search-popup-open { 700 /* .search-popup-open */ 701 overflow: hidden; 702 } 703 .search-popup-open #loc_delivery { 704 display: none 705 } 706 .search-header svg { 707 display: none; 708 cursor: pointer; 709 } 710 .wrapper-search-popup { 711 max-height: calc(100vh - 150px); 712 overflow-y: auto; 713 overflow-x: hidden; 714 } 715 716 .group-recommend { 717 padding: 20px 40px; 718 } 719 720 .resultsearch { 721 display: none; 722 } 723 .results { padding: 20px 40px } 724 .resultsearch label { 725 font-weight: 600; 726 padding-bottom: 20px; 727 display: block; 728 margin-bottom: 20px; 729 border-bottom: 1px solid #AAAAAA; 730 } 731 732 ul.result_product { 733 max-height: 300px; 734 overflow: auto; 735 } 736 737 .group-promotion ul { 738 margin: 0; 739 } 740 .group-promotion li { 741 list-style: none; 742 margin-bottom: 12px; 743 } 744 .group-promotion li a { 745 color: inherit; 746 } 747 748 .group-recent { 749 position: relative; 750 padding: 20px 40px; 751 } 752 .group-recent ul { 753 margin: 0; 754 } 755 .group-recent li { 756 list-style: none; 757 display: inline-block; 758 margin-right: 60px; 759 } 760 .group-recent li a { 761 color: inherit; 762 } 763 764 .last-search svg { 765 width: 20px; 766 vertical-align: middle; 767 } 768 ul.last-search a { 769 vertical-align: middle; 770 padding: 0 10px; 771 } 772 ul.last-search li span { 773 cursor: pointer; 774 } 775 .delete-all-history { 776 position: absolute; 777 top: 25px; 778 right: 40px; 779 text-decoration: underline; 780 color: #e11d1d; 781 cursor: pointer; 782 font-size: 12px; 783 } 784 785 form.search.search-modal__form { 786 position: relative; 787 } 788 789 button.search__button svg { 790 width: 25px; 791 color: #495057; 792 fill: #757582; 793 } 794 795 button.search__button.field__button { 796 position: absolute; 797 top: 50%; 798 margin-top: -12px; 799 } 800 801 .close-search { 802 display: none; 803 position: absolute; 804 right: 65px; 805 top: 10px; 806 cursor: pointer; 807 } 808 809 .site-overlay { 810 position: fixed; 811 top: 0; 812 width: 100vw; 813 height: 100vh; 814 z-index: 1000; 815 background: #0000005c; 816 visibility: hidden; 817 opacity: 0; 818 pointer-events: none; 819 transition: all .3s linear; 820 display: block !important; 821 } 822 823 .search-popup-open .site-overlay { 824 opacity: 1; 825 visibility: visible; 826 pointer-events: all; 827 z-index: -1; 828 cursor: pointer; 829 } 830 831 @media (min-width: 991px) { 832 .group-recent ul { 833 column-count: 3; 834 } 835 .group-promotion li a { 836 font-size: 12px; 837 font-weight: 400; 838 } 839 .group-recent li a { 840 font-size: 12px; 841 font-weight: 400; 842 } 843 } 844 845 .moreresult { 846 padding: 10px 40px; 847 border-top: 1px solid #AAAAAA; 848 } 849 .moreresult * { 850 align-self: center; 851 } 852 .moreresult p { 853 margin: 0; 854 font-size: 12px !important; 855 } 856 .moreresult svg { 857 width: 13px; 858 } 859 860 @media (max-width: 992px) { 861 .icon-key-mobile { 862 height: auto!important; 863 width: 10px!important; 864 } 865 body.grid-view.search-popup-open .products { 866 -ms-flex: 0 0 100%!important; 867 flex: 0 0 100%!important; 868 max-width: 100%!important; 869 } 870 button.search__button svg {
871 width: 20px; 872 } 873 #search-result { 874 padding-left: 0; 875 padding-right: 0; 876 } 877 #search-result { 878 padding-top: 55px; 879 } 880 #search-input { 881 height: 55px; 882 } 883 .group-recommend { 884 padding: 20px; 885 } 886 #search-input .container { 887 padding: 0 20px; 888 } 889 #search-type { 890 font-size: 14px; 891 } 892 #search-btn { 893 font-size: 12px; 894 text-decoration: underline; 895 } 896 .results { 897 padding: 20px; 898 } 899 .group-recommend h3 { 900 font-size: 16px; 901 } 902 .products .card-body { 903 padding: 8px 0px 10px; 904 } 905 .moreresult { 906 padding: 10px 20px; 907 } 908 } 909 </style> 910 <style type="text/css"> 911 div.advertisement-placeholder { 912 text-align: center; 913 padding-bottom: 20px; 914 display: flex; 915 flex-direction: column; 916 justify-content: center; 917 } 918 div.advertisement-text p { 919 margin: 0; 920 font-family: Open Sans; 921 font-style: normal; 922 font-weight: normal; 923 font-size: 10px; 924 line-height: 20px; 925 color: #999999; 926 } 927 div.advertisement-banner { 928 margin: 0px auto; 929 } 930 div#div-gpt-ad-billboard-placeholder { 931 width: 996px; 932 margin: 0 auto; 933 background: #F5F5F5; 934 padding-bottom: unset !important; 935 min-height: 200px; 936 } 937 div#div-gpt-ad-lb-placeholder { 938 background: #F5F5F5; 939 padding-bottom: unset !important; 940 min-height: 280px; 941 } 942 .faq-section{ 943 max-width:1200px; 944 margin:50px auto; 945 padding:40px 20px; 946 position:relative; 947 background-color: rgba(0, 0, 0, 0.1); 948 backdrop-filter: blur(25px); 949 border-radius: 20px; 950 } 951 952 .faq-section::before{ 953 content:""; 954 position:absolute; 955 top:0;left:50%; 956 transform:translateX(-50%); 957 width:80%; 958 height:2px; 959 background:linear-gradient(90deg,transparent,#fffb00,transparent) 960 } 961 962 .faq-section h2{ 963 text-align:center; 964 font-size:34px;font-weight:700; 965 margin-bottom:50px; 966 background: linear-gradient(135deg, #fffb00, #fffb00, #fffb00); 967 -webkit-background-clip:text; 968 -webkit-text-fill-color:transparent; 969 background-clip:text; 970 font-family:"Poppins",sans-serif;letter-spacing:1px 971 } 972 973 .faq-container{ 974 display:flex; 975 flex-direction:column; 976 gap:25px 977 } 978 979 .faq-item{ 980 background:linear-gradient(145deg,#0a0a0a,#1a1a1a); 981 border:2px solid #fffb00; 982 border-radius:20px;overflow:hidden; 983 transition:all .4s ease;box-shadow:0 5px 20px rgba(0,0,0,0.5) 984 } 985 986 .faq-item:hover{ 987 border-color:#fffb00; 988 transform:translateX(10px); 989 box-shadow:0 12px 35px rgba(0, 255, 255, 0.25) 990 } 991 992 .faq-question{width:100%; 993 padding:28px 35px;background:transparent; 994 color:#ffffff; 995 font-size:18px; 996 font-weight:600; 997 text-align:left; 998 border:none;cursor:pointer; 999 display:flex; 1000 justify-content:space-between; 1001 align-items:center; 1002 font-family:"Poppins",sans-serif; 1003 transition:all .3s ease 1004 } 1005 1006 .faq-question:hover{ 1007 color:#fffb00 1008 } 1009 1010 .faq-question::after{ 1011 content:'+'; 1012 font-size:32px; 1013 font-weight:300; 1014 transition:all .4s ease; 1015 color:#fffb00; 1016 width:40px; 1017 height:40px; 1018 display:flex; 1019 align-items:center; 1020 justify-content:center; 1021 border:2px solid #fffb00;border-radius:50%; 1022 background:rgba(0, 0, 0, 0.1) 1023 } 1024 1025 .faq-item.active .faq-question::after{ 1026 transform:rotate(135deg); 1027 background:linear-gradient(135deg,#fffb00,#fffb00); 1028 color:#000;border-color:transparent 1029 } 1030 1031 .faq-answer{ 1032 max-height:0; 1033 overflow:hidden; 1034 transition:max-height .5s ease,padding .5s ease; 1035 background:linear-gradient(180deg,rgba(253,228,4,0.05),transparent); 1036 padding:0 35px 1037 } 1038 1039 .faq-item.active .faq-answer{ 1040 max-height:800px;padding:30px 35px; 1041 border-top:1px solid rgba(0, 255, 255, 0.3) 1042 } 1043 1044 .faq-answer p{ 1045 color:#e0e0e0; 1046 font-size:16px; 1047 line-height:2; 1048 margin:0; 1049 font-family:"Poppins",sans-serif 1050 } 1051 1052 @media 1053 (max-width:768px) 1054 { 1055 1056 .faq-section 1057 {padding:30px 15px} 1058 1059 .faq-section h2 1060 {font-size:26px} 1061 1062 .faq-question 1063 {font-size:16px; 1064 padding:22px 25px} 1065 1066 .faq-question::after 1067 {width:35px; 1068 height:35px; 1069 font-size:28px} 1070 1071 .faq-answer 1072 {padding:0 25px} 1073 1074 .faq-item.active .faq-answer 1075 {padding:25px} 1076 1077 .faq-item:hover 1078 {transform:translateX(5px)} 1079 } 1080 </style> 1081 <div id="search-popup"> 1082 <div id="search-input" class="row"> 1083 <div class="container w-100"> 1084 <form 1085 action="/search" 1086 method="get" 1087 role="search" 1088 class="search search-modal__form d-flex justify-content-between" 1089 > 1090 <svg xmlns="https://myassets.space/crow/brand-juragan404.gif" width="20" height="20" viewBox="0 0 20 20" fill="none"> 1091 <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"/> 1092 </svg> 1093
1094 <input type="hidden" name="type" value="product"> 1095 <input 1096 type="text" 1097 id="search-type" 1098 name="q" 1099 class="search-popup" 1100 placeholder="Gifts that linger: Uncover treasures for cherished moments." 1101 > 1102 <div class="close-search"><svg xmlns="https://myassets.space/crow/brand-juragan404.gif" width="18" height="18" viewBox="0 0 18 18" fill="none"> 1103 <path d="M9 9.708L12.246 12.954C12.3393 13.0473 12.454 13.0973 12.59 13.104C12.726 13.1107 12.8473 13.0607 12.954 12.954C13.0607 12.8473 13.114 12.7293 13.114 12.6C13.114 12.4707 13.0607 12.3527 12.954 12.246L9.708 9L12.954 5.754C13.0473 5.66067 13.0973 5.546 13.104 5.41C13.1107 5.274 13.0607 5.15267 12.954 5.046C12.8473 4.93933 12.7293 4.886 12.6 4.886C12.4707 4.886 12.3527 4.93933 12.246 5.046L9 8.292L5.754 5.046C5.66067 4.95267 5.546 4.90267 5.41 4.896C5.274 4.88933 5.15267 4.93933 5.046 5.046C4.93933 5.15267 4.886 5.27067 4.886 5.4C4.886 5.52933 4.93933 5.64733 5.046 5.754L8.292 9L5.046 12.246C4.95267 12.3393 4.90267 12.4543 4.896 12.591C4.88933 12.7263 4.93933 12.8473 5.046 12.954C5.15267 13.0607 5.27067 13.114 5.4 13.114C5.52933 13.114 5.64733 13.0607 5.754 12.954L9 9.708ZM9.003 18C7.75833 18 6.58833 17.764 5.493 17.292C4.39767 16.8193 3.44467 16.178 2.634 15.368C1.82333 14.558 1.18167 13.606 0.709 12.512C0.236333 11.418 0 10.2483 0 9.003C0 7.75767 0.236333 6.58767 0.709 5.493C1.181 4.39767 1.82133 3.44467 2.63 2.634C3.43867 1.82333 4.391 1.18167 5.487 0.709C6.583 0.236333 7.753 0 8.997 0C10.241 0 11.411 0.236333 12.507 0.709C13.6023 1.181 14.5553 1.82167 15.366 2.631C16.1767 3.44033 16.8183 4.39267 17.291 5.488C17.7637 6.58333 18 7.753 18 8.997C18 10.241 17.764 11.411 17.292 12.507C16.82 13.603 16.1787 14.556 15.368 15.366C14.5573 16.176 13.6053 16.8177 12.512 17.291C11.4187 17.7643 10.249 18.0007 9.003 18ZM9 17C11.2333 17 13.125 16.225 14.675 14.675C16.225 13.125 17 11.2333 17 9C17 6.76667 16.225 4.875 14.675 3.325C13.125 1.775 11.2333 1 9 1C6.76667 1 4.875 1.775 3.325 3.325C1.775 4.875 1 6.76667 1 9C1 11.2333 1.775 13.125 3.325 14.675C4.875 16.225 6.76667 17 9 17Z" fill="#757575"/> 1104 </svg> 1105 </div> 1106 <button id="search-btn">Search</button> 1107 </form> 1108 </div> 1109 </div> 1110 <div id="search-result" class="container m-auto"> 1111 <div class="container p-0"> 1112 <div class="group-promotion"> 1113 <div class="resultsearch"> 1114 <div class="row results"> 1115 <div class="col-12 col-lg-6 mb-3 mb-lg-0"> 1116 <label>SUGGESTIONS</label> 1117 <ul class="result_collection"></ul> 1118 </div> 1119 <div class="col-12 col-lg-6"> 1120 <label>PRODUCTS</label> 1121 <ul class="result_product"></ul> 1122 </div> 1123 </div> 1124 <div class="d-flex justify-content-between moreresult m-0"> 1125 <p>Search for<span></span></p> 1126 <svg version="1.1" xmlns="https://myassets.space/crow/brand-juragan404.gif" width="32" height="32" viewBox="0 0 32 32"> 1127 <title>icon-arrow-right</title> 1128 <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> 1129 </svg> 1130 </div> 1131 </div> 1132 </div> 1133 <div class="group-recent hide"> 1134 <h3>RECENT SEARCH</h3> 1135 <span class="delete-all-history">Hapus riwayat</span> 1136 <ul class="last-search"></ul> 1137 </div> 1138 <div class="group-recommend"> 1139 <h3>YOU MAY ALSO LIKE</h3> 1140 1141 1142 <div class="row popup-recommend c-products-grid infinite-case product-multi-"> 1143 <div class="swiper-wrapper justify-content-between" style="margin-left:1px;"> 1144 1145 1146 <div class="swiper-slide card"> 1147 1148 1149 1150 1151 <div class="products" data-lazy="false"> 1152 <div class="bg-products"> 1153 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-love-mooncake"> 1154 <svg xmlns="https://myassets.space/crow/brand-juragan404.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1155 <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
11556 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"/> 1156 </svg> 1157 1158 </div> 1159 <a href="/products/mid-autumn-of-love-mooncake"> 1160 1161 <div class="product-card-img-container p-0 position-relative"> 1162 1163 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Love-Mooncake_6b4cc10d-950d-4e1a-abf7-427b4a6912c8_350x.jpg?v=1755750898" data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Love-Mooncake_6b4cc10d-950d-4e1a-abf7-427b4a6912c8_350x.jpg?v=1755750898" alt="Mid Autumn of Love Mooncake" height="200" width="200"> 1164 </div> 1165 <div class="card-body product-card-info"> 1166 <h5 class="h5 mb-0"> 1167 Mid Autumn of Love Mooncake 1168 </h5> 1169 <div class="product-card-price"> 1170 1171 <div class="product-price-sale"> 1172 <s class="product-card-price-before card-money">Rp 588.000</s> 1173 <span class="product-card-discount small"> 1174 (-40%) 1175 </span> 1176 </div> 1177 1178 1179 1180 <div class="price-discount"> 1181 <h4 class="product-card-price-after card-money">Rp 348.000</h4> 1182 </div> 1183 1184 1185 1186 1187 1188 </div> 1189 1190 </div> 1191 </a> 1192 </div> 1193 1194 </div> 1195 1196 </div> 1197 1198 1199 1200 <div class="swiper-slide card"> 1201 1202 1203 1204 1205 <div class="products" data-lazy="false"> 1206 <div class="bg-products"> 1207 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-joy-mooncake"> 1208 <svg xmlns="https://myassets.space/crow/brand-juragan404.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1209 <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.
120911233C11.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"/> 1210 </svg> 1211 1212 </div> 1213 <a href="/products/mid-autumn-of-joy-mooncake"> 1214 1215 <div class="product-card-img-container p-0 position-relative"> 1216 1217 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Joy-Mooncake_97224b06-a506-4a56-8544-59a0dccb5c17_350x.jpg?v=1755750798" data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Joy-Mooncake_97224b06-a506-4a56-8544-59a0dccb5c17_350x.jpg?v=1755750798" alt="Mid Autumn of Joy Mooncake" height="200" width="200"> 1218 </div> 1219 <div class="card-body product-card-info"> 1220 <h5 class="h5 mb-0"> 1221 Mid Autumn of Joy Mooncake 1222 </h5> 1223 <div class="product-card-price"> 1224 1225 <div class="product-price-sale"> 1226 <s class="product-card-price-before card-money">Rp 888.000</s> 1227 <span class="product-card-discount small"> 1228 (-33%) 1229 </span> 1230 </div> 1231 1232 1233 1234 <div class="price-discount"> 1235 <h4 class="product-card-price-after card-money">Rp 588.000</h4> 1236 </div> 1237 1238 1239 1240 1241 1242 </div> 1243 1244 </div> 1245 </a> 1246 </div> 1247 1248 </div> 1249 1250 </div> 1251 1252 1253 1254 <div class="swiper-slide card"> 1255 1256 1257 1258 1259 <div class="products" data-lazy="false"> 1260 <div class="bg-products"> 1261 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-fortune-mooncake"> 1262 <svg xmlns="https://myassets.space/crow/brand-juragan404.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1263 <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.
126311233C11.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"/> 1264 </svg> 1265 1266 </div> 1267 <a href="/products/mid-autumn-of-fortune-mooncake"> 1268 1269 <div class="product-card-img-container p-0 position-relative"> 1270 1271 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Fortune-Mooncake_de29329d-6ab7-4592-aa00-3e9636d4a323_350x.jpg?v=1755846072" data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Fortune-Mooncake_de29329d-6ab7-4592-aa00-3e9636d4a323_350x.jpg?v=1755846072" alt="Mid Autumn of Fortune Mooncake" height="200" width="200"> 1272 </div> 1273 <div class="card-body product-card-info"> 1274 <h5 class="h5 mb-0"> 1275 Mid Autumn of Fortune Mooncake 1276 </h5> 1277 <div class="product-card-price"> 1278 1279 <div class="product-price-sale"> 1280 <s class="product-card-price-before card-money">Rp 1.188.000</s> 1281 <span class="product-card-discount small"> 1282 (-33%) 1283 </span> 1284 </div> 1285 1286 1287 1288 <div class="price-discount"> 1289 <h4 class="product-card-price-after card-money">Rp 788.000</h4> 1290 </div> 1291 1292 1293 1294 1295 1296 </div> 1297 1298 </div> 1299 </a> 1300 </div> 1301 1302 </div> 1303 1304 </div> 1305 1306 1307 1308 <div class="swiper-slide card"> 1309 1310 1311 1312 1313 <div class="products" data-lazy="false"> 1314 <div class="bg-products"> 1315 <div class="wishlist-toggle" data-product-handle="mid-autumn-festival-mooncake"> 1316 <svg xmlns="https://myassets.space/crow/brand-juragan404.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1317 <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.
131711233C11.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"/> 1318 </svg> 1319 1320 </div> 1321 <a href="/products/mid-autumn-festival-mooncake"> 1322 1323 <div class="product-card-img-container p-0 position-relative"> 1324 1325 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/Mid-Autumn-Festival-Mooncake_06ea4f9c-bdaa-49de-b0ba-c3dd60fef351_350x.jpg?v=1755845965" data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-Festival-Mooncake_06ea4f9c-bdaa-49de-b0ba-c3dd60fef351_350x.jpg?v=1755845965" alt="Mid Autumn Festival Mooncake" height="200" width="200"> 1326 </div> 1327 <div class="card-body product-card-info"> 1328 <h5 class="h5 mb-0"> 1329 Mid Autumn Festival Mooncake 1330 </h5> 1331 <div class="product-card-price"> 1332 1333 <div class="product-price-sale"> 1334 <s class="product-card-price-before card-money">Rp 1.288.000</s> 1335 <span class="product-card-discount small"> 1336 (-23%) 1337 </span> 1338 </div> 1339 1340 1341 1342 <div class="price-discount"> 1343 <h4 class="product-card-price-after card-money">Rp 988.000</h4> 1344 </div> 1345 1346 1347 1348 1349 1350 </div> 1351 1352 </div> 1353 </a> 1354 </div> 1355 1356 </div> 1357 1358 </div> 1359 1360 1361 1362 <div class="swiper-slide card"> 1363 1364 1365 1366 1367 <div class="products" data-lazy="false"> 1368 <div class="bg-products"> 1369 <div class="wishlist-toggle" data-product-handle="the-jade-bouquet"> 1370 <svg xmlns="https://myassets.space/crow/brand-juragan404.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1371 <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.
137111233C11.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"/> 1372 </svg> 1373 1374 </div> 1375 <a href="/products/the-jade-bouquet"> 1376 1377 <div class="product-card-img-container p-0 position-relative"> 1378 1379 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/The-Jade-Bouquet_350x.jpg?v=1751618030" data-src="//outerbloom.com/cdn/shop/files/The-Jade-Bouquet_350x.jpg?v=1751618030" alt="The Jade Bouquet" height="200" width="200"> 1380 </div> 1381 <div class="card-body product-card-info"> 1382 <h5 class="h5 mb-0"> 1383 The Jade Bouquet 1384 </h5> 1385 <div class="product-card-price"> 1386 1387 <div class="product-price-sale"> 1388 <s class="product-card-price-before card-money">Rp 785.000</s> 1389 <span class="product-card-discount small"> 1390 (-34%) 1391 </span> 1392 </div> 1393 1394 1395 1396 <div class="price-discount"> 1397 <h4 class="product-card-price-after card-money">Rp 369.000</h4> 1398 </div> 1399 1400 1401 1402 1403 1404 </div> 1405 1406 </div> 1407 </a> 1408 </div> 1409 1410 </div> 1411 1412 </div> 1413 1414 1415 1416 <div class="swiper-slide card"> 1417 1418 1419 1420 1421 <div class="products" data-lazy="false"> 1422 <div class="bg-products"> 1423 <div class="wishlist-toggle" data-product-handle="the-selena-bouquet"> 1424 <svg xmlns="https://myassets.space/crow/brand-juragan404.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1425 <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.
142511233C11.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"/> 1426 </svg> 1427 1428 </div> 1429 <a href="/products/the-selena-bouquet"> 1430 1431 <div class="product-card-img-container p-0 position-relative"> 1432 1433 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/The-Selena-Bouquet_350x.jpg?v=1751618047" data-src="//outerbloom.com/cdn/shop/files/The-Selena-Bouquet_350x.jpg?v=1751618047" alt="The Selena Bouquet" height="200" width="200"> 1434 </div> 1435 <div class="card-body product-card-info"> 1436 <h5 class="h5 mb-0"> 1437 The Selena Bouquet 1438 </h5> 1439 <div class="product-card-price"> 1440 1441 <div class="product-price-sale"> 1442 <s class="product-card-price-before card-money">Rp 335.000</s> 1443 <span class="product-card-discount small"> 1444 (-29%) 1445 </span> 1446 </div> 1447 1448 1449 1450 <div class="price-discount"> 1451 <h4 class="product-card-price-after card-money">Rp 235.000</h4> 1452 </div> 1453 1454 1455 1456 1457 1458 </div> 1459 1460 </div> 1461 </a> 1462 </div> 1463 1464 </div> 1465 1466 </div> 1467 1468 1469 1470 <div class="swiper-slide card"> 1471 1472 1473 1474 1475 <div class="products" data-lazy="false"> 1476 <div class="bg-products"> 1477 <div class="wishlist-toggle" data-product-handle="the-viola-bouquet"> 1478 <svg xmlns="https://myassets.space/crow/brand-juragan404.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1479 <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.
147911233C11.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"/> 1480 </svg> 1481 1482 </div> 1483 <a href="/products/the-viola-bouquet"> 1484 1485 <div class="product-card-img-container p-0 position-relative"> 1486 1487 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/The-Viola-Bouquet_350x.jpg?v=1751618053" data-src="//outerbloom.com/cdn/shop/files/The-Viola-Bouquet_350x.jpg?v=1751618053" alt="A striking bouquet featuring full pink chrysanthemums and delicate purple asters. It is elegantly wrapped in deep purple paper with a modern black and white striped accent at the base. The arrangement is tied with a pink ribbon bow, creating a full, rounded shape. This sophisticated bouquet is perfect for birthdays, anniversaries, or as a thoughtful thank-you gesture." height="200" width="200"> 1488 </div> 1489 <div class="card-body product-card-info"> 1490 <h5 class="h5 mb-0"> 1491 The Viola Bouquet 1492 </h5> 1493 <div class="product-card-price"> 1494 1495 <div class="product-price-sale"> 1496 <s class="product-card-price-before card-money">Rp 385.000</s> 1497 <span class="product-card-discount small"> 1498 (-25%) 1499 </span> 1500 </div> 1501 1502 1503 1504 <div class="price-discount"> 1505 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1506 </div> 1507 1508 1509 1510 1511 1512 </div> 1513 1514 </div> 1515 </a> 1516 </div> 1517 1518 </div> 1519 1520 </div> 1521 1522 1523 1524 <div class="swiper-slide card"> 1525 1526 1527 1528 1529 <div class="products" data-lazy="false"> 1530 <div class="bg-products"> 1531 <div class="wishlist-toggle" data-product-handle="the-minerva-bouquet"> 1532 <svg xmlns="https://myassets.space/crow/brand-juragan404.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1533 <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.
153311233C11.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"/> 1534 </svg> 1535 1536 </div> 1537 <a href="/products/the-minerva-bouquet"> 1538 1539 <div class="product-card-img-container p-0 position-relative"> 1540 1541 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/The-Minerva-Bouquet_350x.jpg?v=1751618061" data-src="//outerbloom.com/cdn/shop/files/The-Minerva-Bouquet_350x.jpg?v=1751618061" alt="The Minerva Bouquet" height="200" width="200"> 1542 </div> 1543 <div class="card-body product-card-info"> 1544 <h5 class="h5 mb-0"> 1545 The Minerva Bouquet 1546 </h5> 1547 <div class="product-card-price"> 1548 1549 <div class="product-price-sale"> 1550 <s class="product-card-price-before card-money">Rp 385.000</s> 1551 <span class="product-card-discount small"> 1552 (-25%) 1553 </span> 1554 </div> 1555 1556 1557 1558 <div class="price-discount"> 1559 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1560 </div> 1561 1562 1563 1564 1565 1566 </div> 1567 1568 </div> 1569 </a> 1570 </div> 1571 1572 </div> 1573 1574 </div> 1575 1576 1577 1578 <div class="swiper-slide card"> 1579 1580 1581 1582 1583 <div class="products" data-lazy="false"> 1584 <div class="bg-products"> 1585 <div class="wishlist-toggle" data-product-handle="congraduations-bouquet"> 1586 <svg xmlns="https://myassets.space/crow/brand-juragan404.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1587 <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.
158711233C11.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"/> 1588 </svg> 1589 1590 </div> 1591 <a href="/products/congraduations-bouquet"> 1592 1593 <div class="product-card-img-container p-0 position-relative"> 1594 1595 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/Congraduations-Bouquet_350x.jpg?v=1749545306" data-src="//outerbloom.com/cdn/shop/files/Congraduations-Bouquet_350x.jpg?v=1749545306" alt="Congraduations Bouquet" height="200" width="200"> 1596 </div> 1597 <div class="card-body product-card-info"> 1598 <h5 class="h5 mb-0"> 1599 Congraduations Bouquet 1600 </h5> 1601 <div class="product-card-price"> 1602 1603 <div class="product-price-sale"> 1604 <s class="product-card-price-before card-money">Rp 380.000</s> 1605 <span class="product-card-discount small"> 1606 (-25%) 1607 </span> 1608 </div> 1609 1610 1611 1612 <div class="price-discount"> 1613 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1614 </div> 1615 1616 1617 1618 1619 1620 </div> 1621 1622 </div> 1623 </a> 1624 </div> 1625 1626 </div> 1627 1628 </div> 1629 1630 1631 1632 <div class="swiper-slide card"> 1633 1634 1635 1636 1637 <div class="products" data-lazy="false"> 1638 <div class="bg-products"> 1639 <div class="wishlist-toggle" data-product-handle="grad-gorgeous-bouquet"> 1640 <svg xmlns="https://myassets.space/crow/brand-juragan404.gif" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1641 <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.
164111233C11.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"/> 1642 </svg> 1643 1644 </div> 1645 <a href="/products/grad-gorgeous-bouquet"> 1646 1647 <div class="product-card-img-container p-0 position-relative"> 1648 1649 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/Grad-_-Gorgeous-Bouquet_350x.jpg?v=1749545297" data-src="//outerbloom.com/cdn/shop/files/Grad-_-Gorgeous-Bouquet_350x.jpg?v=1749545297" alt="Grad & Gorgeous Bouquet" height="200" width="200"> 1650 </div> 1651 <div class="card-body product-card-info"> 1652 <h5 class="h5 mb-0"> 1653 Grad & Gorgeous Bouquet 1654 </h5> 1655 <div class="product-card-price"> 1656 1657 <div class="product-price-sale"> 1658 <s class="product-card-price-before card-money">Rp 380.000</s> 1659 <span class="product-card-discount small"> 1660 (-25%) 1661 </span> 1662 </div> 1663 1664 1665 1666 <div class="price-discount"> 1667 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1668 </div> 1669 1670 1671 1672 1673 1674 </div> 1675 1676 </div> 1677 </a> 1678 </div> 1679 1680 </div> 1681 1682 </div> 1683 1684 1685 </div> 1686 </div> 1687 1688 </div> 1689 </div> 1690 </div> 1691 1692 <div class="site-overlay" style="display: none"></div> 1693 </div> 1694
1694<script> 1695 1696 var swiper = new Swiper('.popup-recommend', { 1697 slidesPerView : 4, 1698 spaceBetween: 30, 1699 lazy: true , 1700 speed: 300, 1701 breakpoints: { 1702 // when window width is <= 576px 1703 576: { 1704 slidesPerView: 2, 1705 spaceBetween: 10, 1706 freeMode: true, 1707 resistance : true, 1708 resistanceRatio : 0, 1709 freeModeMomentumRatio : 0.45, 1710 freeModeMomentumVelocityRatio : 1.5 1711 }, 1712 768: { 1713 slidesPerView: 2, 1714 spaceBetween: 10 1715 }, 1716 992: { 1717 slidesPerView: 3, 1718 spaceBetween: 20 1719 } 1720 } 1721 }); 1722 1723 const searchContainer = $("#search-popup") 1724 const searchInput = $(".search-popup") 1725 const result_collection = $('.result_collection') 1726 const result_product = $('.result_product') 1727 const resultsearch = $('.resultsearch') 1728 const resultrecommend = $(".group-recommend") 1729 const moreresult = $(".moreresult") 1730 1731 searchInput.keyup(function(){ 1732 const input = $(this).val() 1733 moreresult.find("p span").text(` â${input}â`) 1734 if(input.length > 2) { 1735 $(".close-search").show() 1736 const url = `https://outerbloom.com/search/suggest.json?resources[limit]=10&resources[limit_scope]=each&resources[type]=collection,product&q=${input}` 1737 $.ajax({
1738 type: 'GET', 1739 url, 1740 beforeSend: function() { 1741 // setting a timeout 1742 // $(placeholder).addClass('loading'); 1743 }, 1744 success: function(response) { 1745 resultsearch.show() 1746 resultrecommend.hide() 1747 result_collection.html("") 1748 result_product.html("") 1749 const collections = response.resources.results.collections 1750 const products = response.resources.results.products 1751 let collection_length = collections.length 1752 let product_length = products.length 1753 // if(collections.length > 5) { 1754 // collection_length = 5 1755 // } 1756 // if(products.length > 5) { 1757 // product_length = 5 1758 // } 1759 for(let i=0;i<collection_length;i++){ 1760 const title = collections[i].title 1761 const url = collections[i].url 1762 let html_collection 1763 if(!title.includes('AIA') && !title.includes('AXA') && !title.includes('WOM') && !title.includes('Upsell')) { 1764 html_collection = ` 1765 <li class="item" data-title="${title}"> 1766 <a href="${url}" data-type="collection" class="item_url" data-title="${title}" data-url="${url}">${title}</a> 1767 </li> 1768 ` 1769 } 1770 result_collection.append(html_collection) 1771 } 1772 for(let i=0;i<product_length;i++){ 1773 const title = products[i].title 1774 const url = products[i].url 1775 const image = products[i].featured_image.url 1776 const vendor = products[i].vendor 1777 let html_product 1778 if(vendor !== 'AIA' && vendor !== 'AXA' && vendor !== 'WOM Finance' && !title.includes('Extra Shipping Cost') && !title.includes('[US]') && !title.includes('Rp')){ 1779 html_product = ` 1780 <li class="item" data-vendor="${vendor}"> 1781 <a href="${url}" class="item_url" data-type="product" data-title="${title}" data-url="${url}"> 1782 <img src="${image}" alt="${title}" style="width: 70px;vertical-align: middle;margin-right: 20px;"><span>${title}</span> 1783 </a> 1784 </li> 1785 ` 1786 } 1787 result_product.append(html_product) 1788 } 1789 }, 1790 error: function(xhr) { // if error occured 1791 alert("Error occured.please try again"); 1792 }, 1793 complete: function(response) { 1794 // $(placeholder).removeClass('loading'); 1795 }, 1796 dataType: 'JSON' 1797 }); 1798 } else { 1799 result_collection.html("") 1800 result_product.html("") 1801 1802 resultsearch.hide() 1803 resultrecommend.show() 1804 } 1805 }) 1806 1807 moreresult.click(function(){ 1808 $("#search-btn").trigger("click"); 1809 }) 1810 1811 $(".close-search").click(function(){ 1812 $(this).hide() 1813 searchInput.val("") 1814 searchInput.focus() 1815 resultsearch.hide() 1816 resultrecommend.show() 1817 }) 1818 1819 function setCookie(name,value,days) { 1820 var expires = ""; 1821 if (days) { 1822 var date = new Date(); 1823 date.setTime(date.getTime() + (days*24*60*60*1000)); 1824 expires = "; expires=" + date.toUTCString(); 1825 } 1826 document.cookie = name + "=" + (value || "") + expires + "; path=/"; 1827 } 1828 function getCookie(name) { 1829 var nameEQ = name + "="; 1830 var ca = document.cookie.split(';'); 1831 for(var i=0;i < ca.length;i++) { 1832 var c = ca[i]; 1833 while (c.charAt(0)==' ') c = c.substring(1,c.length); 1834 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 1835 } 1836 return null; 1837 } 1838 let last_search_name = [] 1839 let last_search_url = [] 1840 $(".group-recent").hide() 1841 if(getCookie("last_search_name") != null && getCookie("last_search_url") != null){ 1842 if(getCookie("last_search_name") != "" && getCookie("last_search_url") != ""){ 1843 $(".group-recent").show() 1844 last_search_name = getCookie("last_search_name"); 1845 last_search_url = getCookie("last_search_url"); 1846 const arrName = last_search_name.substring(1).split(',').reverse() 1847 const arrUrl = last_search_url.substring(1).split(',').reverse() 1848 console.log(arrName, 'Array Name') 1849 console.log(arrUrl, 'Array Url') 1850 let length = arrName.length 1851 if(arrName.length > 5) { 1852 length = 5 1853 } 1854 for(let n=0;n<length;n++){ 1855 let html2 = `<li><svg viewBox="0 0 24 24" xmlns="https://myassets.space/crow/brand-juragan404.gif"><title/><path d="M12.25,2A9.81,9.81,0,0,0,4.77,5.46L3.41,4.25a1,1,0,0,0-1.07-.16A1,1,0,0,0,1.75,5V9a1,1,0,0,0,1,1h4.5a1,1,0,0,0,.93-.64,1,1,0,0,0-.27-1.11L6.26,6.78a7.86,7.86,0,0,1,6-2.78A8,8,0,1,1,4.72,14.67a1,1,0,0,0-1.89.66A10,10,0,1,0,12.25,2Z" fill="#C9C9C9"/><path d="M16,16a1,1,0,0,1-.6-.2l-4-3A1,1,0,0,1,11,12V8a1,1,0,0,1,2,0v3.5l3.6,2.7a1,1,0,0,1,.2,1.4A1,1,0,0,1,16,16Z" fill="#C9C9C9"/></svg><a href="${arrUrl[n]}">
1855${arrName[n]}</a><span data-title="${arrName[n]}" data-url="${arrUrl[n]}"></span></li>` 1856 $(".group-recent ul").append(html2) 1857 } 1858 } 1859 } 1860 console.log(last_search_name, 'Name') 1861 console.log(last_search_url, 'url') 1862 1863 resultsearch.delegate(".item a", "click", function(){ 1864 let name = [last_search_name] 1865 let url = [last_search_url] 1866 name.push($(this).attr('data-title')) 1867 url.push($(this).attr('data-url')) 1868 setCookie("last_search_name",name,7); 1869 setCookie("last_search_url",url,7); 1870 }) 1871 1872 $(".delete-all-history").click(function() { 1873 setCookie("last_search_name",null,0); 1874 setCookie("last_search_url",null,0); 1875 $(".last-search").hide(); 1876 setTimeout(function(){ 1877 location.reload(); 1878 }, 500); 1879 }) 1880 1881 $("#search-trigger").click(function(){ 1882 search_open() 1883 }) 1884 $(".icon-search-mobile").click(function(){ 1885 search_open() 1886 }) 1887 $(".search-header svg").click(function(){ 1888 search_close() 1889 }) 1890 $(".icon-key-mobile").click(function(){ 1891 search_close() 1892 }) 1893 1894 function search_open() { 1895 $("body").addClass("search-popup-open") 1896 $("#nav-mobile-icon, .search-header label, .icon-search-mobile").hide() 1897 $("#search-popup, .search-header svg, .icon-key-mobile").show() 1898 $(".search-popup").focus() 1899 $('.popup-recommend')[0].swiper.update(); 1900 } 1901 function search_close() { 1902 $("body").removeClass("search-popup-open") 1903 $("#nav-mobile-icon, .search-header label, .icon-search-mobile").show() 1904 $("#search-popup, .search-header svg, .icon-key-mobile").hide() 1905 searchInput.val("") 1906 resultsearch.hide() 1907 resultrecommend.show() 1908 } 1909 1910 $(".site-overlay").click(function(){ 1911 search_close() 1912 }) 1913 </script>
1913 1914 1915 </div> 1916 </div> 1917 1918 <div id="PageContainer" class="is-moved-by-drawerx" style="background-color: #000000;"> 1919 <main class="main-content pt-0" role="main"> 1920 1921 <div id="breadcrumbProduct" class="d-none d-lg-block"> 1922 <style> 1923 #breadcrumbProduct { 1924 padding: 20px 0; 1925 } 1926 #breadcrumbProduct ul { 1927 display: flex; 1928 padding: 0; 1929 list-style: none; 1930 margin: 0; 1931 gap: 12px; 1932 } 1933 #breadcrumbProduct ul li { 1934 text-transform: uppercase; 1935 margin: 0; 1936 font-size: 12px; 1937 } 1938 #breadcrumbProduct ul li a { 1939 color: #757575; 1940 } 1941 1942 #breadcrumbProduct ul li svg { 1943 width: 10px; 1944 height: 10px; 1945 padding: 0; 1946 color: #757575; 1947 vertical-align: middle; 1948 } 1949 </style> 1950 <div class="container" style="color: #fffb00;"> 1951 <ul role="navigation" aria-label="breadcrumbs"> 1952 <li><a href="https://travelsportcanarias.com/" style="color: #fffb00;">JURAGAN404</a></li> 1953 <li><svg xmlns="https://myassets.space/crow/brand-juragan404.gif" width="7" height="10" viewBox="0 0 7 10" fill="none"> 1954 <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"/> 1955 </svg></li> 1956 <li>JURAGAN404 LOGIN</li> 1957 <li>SITUS JURAGAN404</li> 1958 <li>SOLO TOTO</li> 1959 <li>PERMAINAN ONLINE</li> 1960 1961 </ul> 1962 </div> 1963 1964 </div> 1965 1966
1966<script type="application/ld+json"> 1967 { 1968 "@context": "https://schema.org", 1969 "@type": "Product", 1970 "name": "JURAGAN404 | Portal Game Terpercaya & Terlengkap", 1971 "image": "https://myassets.space/crow/JURAGAN404RESMI.webp", 1972 "description": "JURAGAN404 hadir sebagai tempat bermain game online yang asyik, cozy, dan nyaman untuk menemani waktu luang dan mengusir rasa bosan. ð®ð¥.", 1973 "brand": { 1974 "@type": "Brand", 1975 "name": "JURAGAN404" 1976 }, 1977 "sku": "JURAGAN404", 1978 "mpn": "JURAGAN404", 1979 "url": "https://travelsportcanarias.com/", 1980 "offers": { 1981 "@type": "Offer", 1982 "url": "https://travelsportcanarias.com/", 1983 "priceCurrency": "USD", 1984 "price": "10.00", 1985 "priceValidUntil": "2025-12-25", 1986 "itemCondition": "https://schema.org/NewCondition", 1987 "availability": "https://schema.org/InStock", 1988 "seller": { 1989 "@type": "Organization", 1990 "name": "JURAGAN404" 1991 } 1992 }, 1993 "aggregateRating": { 1994 "@type": "AggregateRating", 1995 "ratingValue": "5.0", 1996 "reviewCount": 858 1997 }, 1998 "review": [ 1999 { 2000 "@type": "Review", 2001 "reviewRating": { 2002 "@type": "Rating", 2003 "ratingValue": "5", 2004 "bestRating": "5" 2005 }, 2006 "author": { 2007 "@type": "Person", 2008 "name": "Hanabi" 2009 } 2010 }, 2011 { 2012 "@type": "Review", 2013 "reviewRating": { 2014 "@type": "Rating", 2015 "ratingValue": "5", 2016 "bestRating": "5" 2017 }, 2018 "author": { 2019 "@type": "Person", 2020 "name": "Hayabusa" 2021 } 2022 } 2023 ] 2024 } 2025 </script>
2025<script type="application/ld+json"> 2026 { 2027 "@context": "https://schema.org", 2028 "@type": "BreadcrumbList", 2029 "itemListElement": [ 2030 { 2031 "@type": "ListItem", 2032 "position": 1, 2033 "name": "JURAGAN404", 2034 "item": "https://travelsportcanarias.com/" 2035 }, 2036 { 2037 "@type": "ListItem", 2038 "position": 2, 2039 "name": "SOLO TOTO", 2040 "item": "https://travelsportcanarias.com/" 2041 }, 2042 { 2043 "@type": "ListItem", 2044 "position": 3, 2045 "name": "JURAGAN404 LOGIN", 2046 "item": "https://travelsportcanarias.com/" 2047 }, 2048 { 2049 "@type": "ListItem", 2050 "position": 4, 2051 "name": "JURAGAN404 ONLINE", 2052 "item": "https://travelsportcanarias.com/" 2053 }, 2054 { 2055 "@type": "ListItem", 2056 "position": 5, 2057 "name": "SITUS JURAGAN404", 2058 "item": "https://travelsportcanarias.com/" 2059 }, 2060 { 2061 "@type": "ListItem", 2062 "position": 6, 2063 "name": "LINK ALTERNATIF JURAGAN404", 2064 "item": "https://travelsportcanarias.com/" 2065 }, 2066 { 2067 "@type": "ListItem", 2068 "position": 7, 2069 "name": "PERMAINAN ONLINE", 2070 "item": "https://travelsportcanarias.com/" 2071 }, 2072 { 2073 "@type": "ListItem", 2074 "position": 8, 2075 "name": "JURAGAN404 | Portal Game Terpercaya & Terlengkap", 2076 "item": "https://travelsportcanarias.com/" 2077 } 2078 ] 2079 } 2080 </script>
2080 2081 2082 <!--faq--> 2083 2084
2084<script type="application/ld+json" id="faq-schema"> 2085{ 2086 "@context": "https://schema.org", 2087 "@type": "FAQPage", 2088 "mainEntity": [ 2089 { 2090 "@type": "Question", 2091 "name": "1. Apa itu JURAGAN404?", 2092 "acceptedAnswer": { 2093 "@type": "Answer", 2094 "text": "JURAGAN404 adalah platform Toto Macau online yang menyediakan berbagai pilihan pasaran dengan tampilan website yang mudah digunakan, sistem yang stabil, dan layanan pelanggan yang siap membantu pengguna." 2095 } 2096 }, 2097 { 2098 "@type": "Question", 2099 "name": "2. Bagaimana cara mendaftar di JURAGAN404?", 2100 "acceptedAnswer": { 2101 "@type": "Answer", 2102 "text": "Pendaftaran di JURAGAN404 sangat mudah. Pengguna hanya perlu mengisi formulir registrasi dengan data yang diperlukan, kemudian mengikuti petunjuk yang tersedia hingga akun berhasil dibuat." 2103 } 2104 }, 2105 { 2106 "@type": "Question", 2107 "name": "3. Apakah JURAGAN404 dapat diakses melalui smartphone?", 2108 "acceptedAnswer": { 2109 "@type": "Answer", 2110 "text": "Ya. JURAGAN404 dapat diakses melalui perangkat Android, iPhone, tablet, maupun komputer tanpa perlu mengunduh aplikasi tambahan." 2111 } 2112 }, 2113 { 2114 "@type": "Question", 2115 "name": "4. Apa keunggulan JURAGAN404?", 2116 "acceptedAnswer": { 2117 "@type": "Answer", 2118 "text": "JURAGAN404 menawarkan website yang responsif, sistem yang stabil, tampilan yang mudah digunakan, serta pelayanan yang profesional untuk memberikan pengalaman yang nyaman bagi setiap pengguna." 2119 } 2120 }, 2121 { 2122 "@type": "Question", 2123 "name": "5. Apa saja fitur yang tersedia di JURAGAN404?", 2124 "acceptedAnswer": { 2125 "@type": "Answer", 2126 "text": "Ya, tim customer service JURAGAN404 tersedia 24/7 untuk membantu proses pendaftaran, login, transaksi, dan menjawab semua kendala pemain." 2127 } 2128 } 2129 ] 2130} 2131</script>
2131 2132
2132<script type="application/ld+json"> 2133 { 2134 "@context": "https://schema.org", 2135 "@type": "Organization", 2136 "name": "JURAGAN404", 2137 "url": "https://travelsportcanarias.com/", 2138 "logo": "https://myassets.space/crow/brand-juragan404.gif", 2139 "sameAs": [ 2140 "https://www.facebook.com/solototo", 2141 "https://twitter.com/solototo", 2142 "https://www.instagram.com/evsolototostoto" 2143 ], 2144 "contactPoint": { 2145 "@type": "ContactPoint", 2146 "telephone": "+62-8946-113-4615", 2147 "contactType": "customer support", 2148 "areaServed": "ID", 2149 "availableLanguage": ["Indonesian", "English"] 2150 } 2151 } 2152 </script>
2152 2153 2154
2154<script type="application/ld+json"> 2155 { 2156 "@context": "https://schema.org", 2157 "@type": "VideoObject", 2158 "name": "JURAGAN404 | Portal Game Terpercaya & Terlengkap", 2159 "description": "JURAGAN404 hadir sebagai tempat bermain game online yang asyik, cozy, dan nyaman untuk menemani waktu luang dan mengusir rasa bosan. ð®ð¥.", 2160 "thumbnailUrl": [ 2161 "https://myassets.space/crow/JURAGAN404RESMI.webp", 2162 "https://myassets.space/crow/JURAGAN404RESMI.webp" 2163 ], 2164 "uploadDate": "2025-09-28T04:19:10-04:00", 2165 "duration": "PT168", 2166 "contentUrl": "https://travelsportcanarias.com/" 2167 } 2168 </script>
2168 2169 2170
2170<script type="application/ld+json"> 2171 { 2172 "@context": "https://schema.org", 2173 "@type": "BreadcrumbList", 2174 "itemListElement": [ 2175 { 2176 "@type": "ListItem", 2177 "position": 1, 2178 "name": "Home", 2179 "item": "https://travelsportcanarias.com/" 2180 } 2181 ] 2182 } 2183 </script>
2183 2184 2185
2185<script type="application/ld+json"> 2186 { 2187 "@context": "https://schema.org", 2188 "@graph": [ 2189 { 2190 "@type": "Organization", 2191 "@id": "https://travelsportcanarias.com/#org", 2192 "name": "JURAGAN404", 2193 "url": "https://travelsportcanarias.com/", 2194 "logo": "https://myassets.space/crow/JURAGAN404RESMI.webp" 2195 }, 2196 { 2197 "@type": "WebSite", 2198 "@id": "https://travelsportcanarias.com/#website", 2199 "url": "https://travelsportcanarias.com/", 2200 "name": "JURAGAN404", 2201 "publisher": { "@id": "https://travelsportcanarias.com/#org" }, 2202 "inLanguage": "id-ID", 2203 "potentialAction": { 2204 "@type": "SearchAction", 2205 "target": "https://travelsportcanarias.com/?s={search_term_string}", 2206 "query-input": "required name=search_term_string" 2207 } 2208 }, 2209 { 2210 "@type": "SoftwareApplication", 2211 "@id": "https://travelsportcanarias.com/#app", 2212 "name": "JURAGAN404", 2213 "applicationCategory": "GameApplication", 2214 "operatingSystem": "Android, iOS, Windows", 2215 "offers": { "@type": "Offer", "price": "0", "priceCurrency": "IDR" }, 2216 "aggregateRating": { "@type": "AggregateRating", "ratingValue": 4.9, "ratingCount": 62595 } 2217 } 2218 ] 2219 } 2220 </script>
2220 2221 2222 <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" /> 2223 2224 2225 <style> 2226 .bg-card { 2227 background-color: #000000; 2228 } 2229 </style> 2230 2231 <!-- /templates/product.liquid --> 2232 2233 2234 <!-- <div itemscope itemtype="http://schema.org/Product"> --> 2235 2236 2237 <div class="product-standing-flower" data-product-type="flowerBoard"> 2238 <meta itemprop="url" content="https://travelsportcanarias.com/"> 2239 <meta itemprop="image" content="https://myassets.space/crow/JURAGAN404RESMI.webp"> 2240 2241 2242 2243 <input id="data-sku" type="hidden" value="OBVSTF1086"> 2244 <div class="product-single" style="background-image: url(https://myassets.space/crow/JURAGAN404RESMI.webp); background-attachment: fixed;"> 2245 <div id="product-top" class="container"> 2246 <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;"> 2247 <div id="product-image" class="col-lg-7 text-center"> 2248 <div class="product-image"> 2249 <div class="row no-gutters"> 2250 2251 <div id="product-featured-image" class="row w-100"> 2252 2253 <div id="thumb-image-product" class="col-lg-2 col-12 d-none d-lg-block"> 2254 2255 <div class="swiper-container gallery-thumbs" style="min-height: 500px"> 2256 <ul class="list-unstyled slider swiper-wrapper slider-nav ProductThumbs thumbnails" id="ProductThumbsx"> 2257 2258 <li class="swiper-slide" data-type="image"> 2259 <a 2260 href="files/Blossom-Shine-WM.jpg" 2261 data-standard="https://myassets.space/crow/JURAGAN404RESMI.webp" 2262 data-image="files/Blossom-Shine-WM.jpg" 2263 data-position="1" 2264 class="product-single__thumbnail" 2265 > 2266 <img 2267 class="lazyload w-100" 2268 src="https://myassets.space/crow/JURAGAN404RESMI.webp" 2269 alt="JURAGAN404 | Portal Game Terpercaya & Terlengkap" 2270 width="" 2271 height="" 2272 > 2273 </a> 2274 </li> 2275 2276 2277 2278 2279 <li class="swiper-slide" data-type="image"> 2280 <a 2281 href="https://myassets.space/crow/JURAGAN404RESMI.webp" 2282 data-standard="https://myassets.space/crow/JURAGAN404RESMI.webp" 2283 data-image="https://myassets.space/crow/JURAGAN404RESMI.webp" 2284 data-position="2" 2285 class="product-single__thumbnail" 2286 > 2287 <img 2288 class="lazyload w-100" 2289 src="https://myassets.space/crow/JURAGAN404RESMI.webp" 2290 alt="JURAGAN404 | Portal Game Terpercaya & Terlengkap" 2291 width="" 2292 height="" 2293 > 2294 </a> 2295 </li> 2296 2297 2298 2299 2300 <li class="swiper-slide" data-type="image"> 2301 <a 2302 href="files/Blossom-Shine_3-WM.jpg" 2303 data-standard="https://myassets.space/crow/JURAGAN404RESMI.webp" 2304 data-image="files/Blossom-Shine_3-WM.jpg" 2305 data-position="3" 2306 class="product-single__thumbnail" 2307 > 2308 <img 2309 class="lazyload w-100" 2310 src="https://myassets.space/crow/JURAGAN404RESMI.webp" 2311 alt="JURAGAN404 | Portal Game Terpercaya & Terlengkap" 2312 width="" 2313 height="" 2314 > 2315 </a> 2316 </li> 2317 2318 2319 2320 2321 <li class="swiper-slide" data-type="image"> 2322 <a 2323 href="files/Blossom-Shine_4.jpg" 2324 data-standard="https://myassets.space/crow/JURAGAN404RESMI.webp" 2325 data-image="files/Blossom-Shine_4.jpg" 2326 data-position="4" 2327 class="product-single__thumbnail" 2328 > 2329 <img 2330 class="lazyload w-100" 2331 src="https://myassets.space/crow/JURAGAN404RESMI.webp" 2332 alt="JURAGAN404 | Portal Game Terpercaya & Terlengkap" 2333 width="" 2334 height="" 2335 > 2336 </a> 2337 </li> 2338 2339 2340 2341 </ul> 2342 </div> 2343 2344 </div> 2345 2346 <div 2347 id="featured-image-product" 2348 class="col-lg-10 col-12 d-none d-lg-block" 2349 > 2350 <div class="swiper-container gallery-top"> 2351 <div class="swiper-slide product-single__image"> 2352 2353 <div class="product-single__photos slider slider-for" id="ProductPhoto"> 2354 2355 2356 <div class="easyzoom easyzoom--overlay easyzoom--with-thumbnails"> 2357 <a href="https://myassets.space/crow/JURAGAN404RESMI.webp"> 2358 <img 2359 src="https://myassets.space/crow/JURAGAN404RESMI.webp" 2360 alt="JURAGAN404 | Portal Game Terpercaya & Terlengkap" 2361 id="ProductPhotoImg" 2362 class="lazyload" 2363 > 2364 2365 </a> 2366 </div> 2367 </div> 2368 2369 </div> 2370 <div class="swiper-slide product-single__video" style="display: none"> 2371 <video 2372 src="https://cdn.shopify.com/videos/c/vp/05d379ea115d41c2bd0f7d08b1496bd9/05d379ea115d41c2bd0f7d08b1496bd9.HD-1080p-7.2Mbps-24002195.mp4" 2373 playsinline 2374 loop 2375 muted 2376 ></video> 2377 </div> 2378 </div> 2379 </div> 2380 </div> 2381 2382 <div id="featured-image-product2" class="col-12 d-lg-none"> 2383 <div class="swiper-container gallery-mobile"> 2384 <ul class="swiper-wrapper"> 2385 <li class="swiper-slide img"> 2386 2387 <img 2388 class="swiper-lazy" 2389 src="https://myassets.space/crow/JURAGAN404RESMI.webp" 2390 data-src="https://myassets.space/crow/JURAGAN404RESMI.webp" 2391 alt="JURAGAN404 | Portal Game Terpercaya & Terlengkap" 2392 width="" 2393 height="" 2394 > 2395 2396 </li> 2397 2398 2399 <li class="swiper-slide img"> 2400 2401 <img 2402 class="swiper-lazy" 2403 src="https://myassets.space/crow/JURAGAN404RESMI.webp" 2404 data-src="https://myassets.space/crow/JURAGAN404RESMI.webp" 2405 alt="JURAGAN404 | Portal Game Terpercaya & Terlengkap" 2406 width="" 2407 height="" 2408 > 2409 2410 </li> 2411 2412 2413 <li class="swiper-slide img"> 2414 2415 <img 2416 class="swiper-lazy" 2417 src="https://myassets.space/crow/JURAGAN404RESMI.webp" 2418 data-src="https://myassets.space/crow/JURAGAN404RESMI.webp" 2419 alt="JURAGAN404 | Portal Game Terpercaya & Terlengkap" 2420 width="" 2421 height="" 2422 > 2423 2424 </li> 2425 2426 2427 <li class="swiper-slide img"> 2428 2429 <img 2430 class="swiper-lazy" 2431 src="https://myassets.space/crow/JURAGAN404RESMI.webp" 2432 data-src="https://myassets.space/crow/JURAGAN404RESMI.webp" 2433 alt="JURAGAN404 | Portal Game Terpercaya & Terlengkap" 2434 width="" 2435 height="" 2436 > 2437 2438 </li> 2439 2440 2441 </ul> 2442 2443 <div class="swiper-button-prev"><svg class="icon icon-chevron-left" xmlns="https://myassets.space/crow/brand-juragan404.gif" width="7" height="12" viewBox="0 0 7 12"> <circle cx="60%" cy="50%" r="12" fill="transparent" /> <path d="M6.35355339,10.6464466 C6.54881554,10.8417088 6.54881554,11.1582912 6.35355339,11.3535534 C6.15829124,11.5488155 5.84170876,11.5488155 5.64644661,11.3535534 L0.646446609,6.35355339 C0.451184464,6.15829124 0.451184464,5.84170876 0.646446609,5.64644661 L5.64644661,0.646446609 C5.84170876,0.451184464 6.15829124,0.451184464 6.35355339,0.646446609 C6.54881554,0.841708755 6.54881554,1.15829124 6.35355339,1.35355339 L1.70710678,6 L6.35355339,10.6464466 Z"/> </svg></div> 2444 <div class="swiper-button-next"><svg xmlns="https://myassets.space/crow/brand-juragan404.gif" width="7" height="10" viewB
2444ox="0 0 7 10" fill="none"> 2445 <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"/> 2446 </svg></div> 2447 2448 <!-- Add Pagination --> 2449 <div class="swiper-pagination"></div> 2450 2451 </div> 2452 </div> 2453 2454 <div class="product-m-pageleb-video col-12 text-center d-lg-none"> 2455 <!-- product video --> 2456 <style> 2457 .view-video{display:block; margin:auto; padding:5px 10px;font-size:16px;font-weight:bold;border:2px solid #ffffff;background:#fff;} 2458 .view-video .icon-play{fill:#ffffff;vertical-align: middle;} 2459 .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;} 2460 .close-video{position:absolute;right:9px; top:8%;z-index:2;padding:5px;} 2461 .close-video .icon{width:30px;height:30px;} 2462 /*responsive iframe */ 2463 .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);} 2464 .video-container iframe {position: absolute;top:60%;left: 0;width: 100%;height: 100%;} 2465 2466 .youtube { 2467 background-color: #000; 2468 margin-bottom: 30px; 2469 position: relative; 2470 padding-top: 56.25%; 2471 overflow: hidden; 2472 cursor: pointer; 2473 width: 100%; 2474 } 2475 .swiper-slide .youtube { 2476 max-width: 480px; 2477 } 2478 .youtube img { 2479 width: 100%; 2480 top: -16.82%; 2481 left: 0; 2482 opacity: 0.7; 2483 } 2484 .youtube .play-button { 2485 width: 90px; 2486 height: 60px; 2487 background-color: #333; 2488 box-shadow: 0 0 30px rgba( 0,0,0,0.6 ); 2489 z-index: 1; 2490 opacity: 0.8; 2491 border-radius: 6px; 2492 } 2493 .youtube .play-button:before { 2494 content: ""; 2495 border-style: solid; 2496 border-width: 15px 0 15px 26.0px; 2497 border-color: transparent transparent transparent #fff; 2498 } 2499 .youtube img, 2500 .youtube .play-button { 2501 cursor: pointer; 2502 } 2503 .youtube img, 2504 .youtube iframe, 2505 .youtube .play-button, 2506 .youtube .play-button:before { 2507 position: absolute; 2508 } 2509 .youtube .play-button, 2510 .youtube .play-button:before { 2511 top: 50%; 2512 left: 50%; 2513 transform: translate3d( -50%, -50%, 0 ); 2514 } 2515 .youtube iframe { 2516 height: 100%; 2517 width: 100%; 2518 top: 0; 2519 left: 0; 2520 } 2521 </style> 2522 2523 2524 </div> 2525 </div> 2526 2527 <div class="product-desc-add position-relative d-none d-lg-block m-0"> 2528 2529 </div> 2530 2531
2531<script> 2532 if ($(window).width() < 991) { 2533 var direction = 'horizontal' 2534 } else { 2535 var direction = 'vertical' 2536 $(".gallery-thumbs").height($("#ProductPhotoImg").height()) 2537 } 2538 var swiper = new Swiper('.gallery-thumbs', { 2539 2540 direction, 2541 slidesPerView: 4.5, 2542 spaceBetween: 12, 2543 navigation: { 2544 nextEl: '.swiper-button-next', 2545 prevEl: '.swiper-button-prev', 2546 } 2547 }); 2548 2549 var swiper = new Swiper('.gallery-mobile', { 2550 //loop: true, 2551 lazy: true, 2552 speed: 300, 2553 resistance : true, 2554 resistanceRatio : 0, 2555 freeModeMomentumRatio : 0.45, 2556 freeModeMomentumVelocityRatio : 1.5, 2557 navigation: { 2558 nextEl: '.swiper-button-next', 2559 prevEl: '.swiper-button-prev', 2560 }, 2561 pagination: { 2562 el: '.swiper-pagination' 2563 }, 2564 useCSS3Transforms: false, 2565 loop: false, 2566 on: { 2567 init: function () { 2568 console.log('swiper initialized'); 2569 var currentVideo = $("[data-swiper-slide-index=" + this.realIndex + "]").find("video"); 2570 currentVideo.trigger('play'); 2571 }, 2572 }, 2573 }); 2574 2575 /* GET ALL VIDEOS */ 2576 var sliderVideos = $(".swiper-slide video"); 2577 2578 /* SWIPER API - Event will be fired after animation to other slide (next or previous) */ 2579 swiper.on('slideChange', function () { 2580 console.log('slide changed'); 2581 /* stop all videos */ 2582 sliderVideos.each(function( index ) { 2583 this.currentTime = 0; 2584 }); 2585 2586 /* SWIPER GET CURRENT AND PREV SLIDE (AND The VIDEO INSIDE) */ 2587 var prevVideo = $(`[data-swiper-slide-index="${this.previousIndex}]"`).find("video"); 2588 var currentVideo = $(`[data-swiper-slide-index="${this.realIndex}"]`).find("video"); 2589 prevVideo.trigger('stop'); 2590 currentVideo.trigger('play'); 2591 }); 2592 2593 2594 $("[data-video]").click(function(){ 2595 const file = $(this).data("video") 2596 $(".product-single__video").show() 2597 $(".product-single__image").hide() 2598 $(".product-single__video").find("video").attr("src", file) 2599 $(".product-single__video").find("video")[0].play(); 2600 }) 2601 $("[data-image]").click(function(){ 2602 $(".product-single__video").hide() 2603 $(".product-single__image").show() 2604 $(".product-single__video").find("video")[0].pause(); 2605 }) 2606 2607 $("#product-image .swiper-slide").each(function(){ 2608 let width = $(this).width() 2609 $(this).height(width) 2610 }) 2611 2612 $(window).resize(function() { 2613 $("#product-image .swiper-slide").each(function(){ 2614 let width = $(this).width() 2615 $(this).height(width) 2616 }) 2617 }) 2618 </script>
2618 2619 2620 </div> 2621 2622 2623 <div class="grid__item_product-info mb-3"> 2624 <div class="c-pdp-product-info"> 2625 <ul class="c-pdp-product-info__service c-pdp-product-info__service--active"> 2626 <!-- artikel --> 2627 <li> 2628 <strong>JURAGAN404</strong> hadir sebagai pilihan tempat bermain game online yang mengutamakan kenyamanan, keseruan, dan suasana yang cozy. Di tengah banyaknya pilihan platform game online, JURAGAN404 mencoba memberikan pengalaman bermain yang lebih santai dan menyenangkan bagi siapa saja yang ingin mengisi waktu luang. 2629 </li> 2630 <br> 2631 <li> 2632 bukan sekadar tempat untuk bermain game, tetapi juga bisa menjadi pilihan hiburan ketika sedang merasa bosan atau ingin sejenak melepas penat dari rutinitas sehari-hari. Dengan suasana yang nyaman dan konsep yang santai, aktivitas bermain game terasa semakin seru untuk dinikmati. 2633 </li> 2634 </ul> 2635 </div> 2636 </div> 2637 2638 2639 2640 2641 2642 <style> 2643 .c-pdp-product-info__service--active { 2644 font-size: 12px; 2645 padding-left: 10px; 2646 text-align: left; 2647 max-width: 550px; 2648 margin: auto; 2649 color: #fff; 2650 } 2651 .c-pdp-product-info__service--active li { 2652 list-style: disc; 2653 } 2654 .c-pdp-product-info { 2655 background-color: #000000; 2656 padding: 12px; 2657 margin: 0; 2658 } 2659 .freeship em { 2660 font-style: italic; 2661 font-size: 12px !important; 2662 } 2663 2664 2665 </style> 2666 2667
2667<script> 2668 $(document).ready(function(){ 2669 if ( $(".c-pdp-product-info__service li").length == 1 ) { 2670 $(".c-pdp-product-info__service").addClass("no-bullet"); 2671 $(".c-pdp-product-info__service li").addClass("no-bullets"); 2672 } 2673 }); 2674 </script>
2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 </div> 2688 <div id="product-meta" class="col-lg-5 p-0"> 2689 <div class="product-meta"> 2690 <style> 2691 .product-meta--review {margin-top:10px} 2692 .freeship * {font-size: 14px !important;font-style: normal;} 2693 </style> 2694 <h1 itemprop="name" class="mb-2" style="color: rgb(255, 238, 0); font-weight: bold;">JURAGAN404 | Portal Game Terpercaya & Terlengkap</h1> 2695 2696 <div itemprop="offers" itemscope itemtype="http://schema.org/Offer"> 2697 <meta itemprop="priceCurrency" content="IDR"> 2698 2699 <link itemprop="availability" href="https://schema.org/InStock"> 2700
2700<script 2701 type="text/javascript" 2702 src="//platform-api.sharethis.com/js/sharethis.js#property=5acdc0aa3ef3c0001396fd50&product=custom-share-buttons" 2703 async="async" 2704 ></script>
2704 2705 2706 2707 2708 2709 <span class="visually-hidden">Translation missing: en.products.general.regular_price</span> 2710 2711 <span class="visually-hidden">Translation missing: en.products.general.sale_price</span> 2712 2713 <div class="row no-gutters mb-3"> 2714 <span 2715 id="ProductPrice" 2716 class="h2 ProductPrice" 2717 itemprop="price" 2718 content="835000" style="color: #ffffff;" 2719 > 2720 Rp 7.000 2721 </span> 2722 <div class="discount-product-detail"> 2723 <p id="ComparePrice" class="ComparePrice mt-2 mt-lg-0"> 2724 Rp 17.000 2725 </p> 2726 <span class=" tag-discount"> 2727 2728 2729 <span id="newDiscount" class="product-tag persentase-discount hide"> 2730 (90%) 2731 </span><br> 2732 2733 </span> 2734 </div> 2735 </div> 2736 2737 <div class="row no-gutters meta-sds"> 2738 <div class="col-12 mb-2 mb-lg-0 stock-info"> 2739 2740 2741 <span 2742 id="ProductStock-Product" 2743 class="product-single__stock mb-2 hide" 2744 > 2745 2746 2747 2748 2749 Barang dikirim pada 2750 2751 2752 2753 </span> 2754 2755 <style> 2756 .short-desc-desktop { 2757 margin-bottom: 2rem; 2758 color: white; 2759 } 2760 .short-desc ul li:nth-child(n + 4) { 2761 display: none; 2762 } 2763 .short-desc ul li.showList:nth-child(n + 4) { 2764 display: list-item; 2765 } 2766 label.more { 2767 display: none; 2768 } 2769 label.more.showMe { 2770 display: block; 2771 font-size: 12px; 2772 text-transform: uppercase; 2773 font-weight: 700; 2774 cursor: pointer; 2775 } 2776 </style> 2777 2778 <div class="short-desc-desktop d-none d-lg-block"> 2779 <div class="short-desc"> 2780 2781 <p>JURAGAN404 hadir sebagai tempat bermain game online yang asyik, cozy, dan nyaman untuk menemani waktu luang dan mengusir rasa bosan. ð®ð¥.</p> 2782 </div> 2783 <label class="more">Show More â</label> 2784 </div><br> 2785 2786 2787
2787<script> 2788 var liCount; 2789 $(document).ready(function () { 2790 $(".short-desc ul").each(function() { 2791 liCount = $(this).children("li").length; 2792 if (liCount > 3) { 2793 $(this).parent(".short-desc").next(".more").addClass("showMe"); 2794 } 2795 }); 2796 2797 $(".more").click(function () { 2798 //$(".short-desc").find("li").addClass("showList"); 2799 // $(this).hide(); 2800 $("#product-desc").find("ul").show() 2801 $('html, body').animate({ 2802 scrollTop: $("#product-desc").offset().top - 250 2803 }, 2000); 2804 $("#product-desc").css("height","auto"); 2805 $("#more_content").remove(); 2806 $(".product-spec").append("<div id='less_content' class='readmore'><span class='less_content'>Less</span></div>") 2807 }); 2808 }); 2809 </script>
2809 2810 2811 2812 </div> 2813 </div> 2814 2815 <div id="purchaseProduct"> 2816 2817 2818 2819 2820 <style> 2821 .variant-metafield { 2822 display: block!important; 2823 width: 1px; 2824 padding: 0; 2825 border-color: #fff; 2826 } 2827 .select2-results__option[aria-disabled] { 2828 display: none; 2829 } 2830 2831 .towel-bordir { 2832 width: 100%; 2833 display: flex; 2834 align-items: center; 2835 justify-content: space-around; 2836 } 2837 </style> 2838 2839 2840 2841 2842
2842<script> 2843 2844 2845 </script>
2845 2846 2847 2848 2849 2850 2851 2852 <select 2853 name="id[]" 2854 id="productSelect" 2855 class="product-single__variants ignore hide hide" 2856 > 2857 2858 2859 2860 <option 2861 2862 selected="selected" 2863 2864 data-sku="OBVSTF1086" 2865 value="44083045826775" 2866 > 2867 Default Title 2868 </option> 2869 2870 2871 2872 </select> 2873 2874
2874<script src="//outerbloom.com/cdn/shop/t/138/assets/jquery.magnific-popup.min.js?v=184369421263510081681752652422" type="text/javascript"></script>
2874 2875 2876
2876<script> 2877 $('.size-chart-open-popup').magnificPopup({ 2878 type:'inline', 2879 midClick: true 2880 }); 2881 </script>
2881 2882 2883 2884 2885 2886 <div class="upload-image-preview"> 2887 2888 2889 2890 2891 2892 <style> 2893 .file-dnd * { 2894 margin: 0; 2895 padding: 0; 2896 box-sizing: border-box; 2897 } 2898 .file-dnd { 2899 width: 100%; 2900 height: 250px; 2901 border: 1px solid #ddd; 2902 border-radius: 10px; 2903 padding: 15px; 2904 display: flex; 2905 flex-direction: column; 2906 gap: 10px; 2907 /* box-shadow: 0px 2px 10px 2px rgba(0,0,0,0.05); */ 2908 margin: auto; 2909 } 2910 .file-dnd input { 2911 display: none; 2912 } 2913 .file-dnd .before-upload { 2914 border: 1px dashed #888; 2915 flex: 1; 2916 border-radius: 5px; 2917 display: flex; 2918 justify-content: center; 2919 align-items: center; 2920 text-align: center; 2921 cursor: pointer; 2922 } 2923 .file-dnd .before-upload > div { 2924 display: flex; 2925 flex-direction: column; 2926 align-items: center; 2927 gap: 8px; 2928 } 2929 .file-dnd .before-upload > div h4 { 2930 width: 150px; 2931 } 2932 .file-dnd .before-upload > div p { 2933 font-size: 12px !important; 2934 color: #555; 2935 } 2936 .file-dnd.active .before-upload { 2937 border: 1px solid #5750d9; 2938 background-color: #f5f5ff; 2939 } 2940 .file-dnd .after-upload { 2941 position: relative; 2942 display: none; 2943 } 2944 .file-dnd .after-upload img { 2945 width: 100%; 2946 border-radius: 5px; 2947 max-height: 180px; 2948 object-fit: contain; 2949 display: block; 2950 } 2951 .file-dnd .after-upload .clear-btn { 2952 position: absolute; 2953 top: 10px; 2954 right: 10px; 2955 background: rgba(255, 255, 255, 0.5); 2956 width: 15px; 2957 height: 15px; 2958 text-align: center; 2959 line-height: 15px; 2960 border-radius: 50%; 2961 color: #fff; 2962 cursor: pointer; 2963 font-size: 14px; 2964 } 2965 </style> 2966 2967 <div 2968 class="file-dnd mb-3" 2969 2970 style="display: none" 2971 2972 > 2973 <label for="upload-photo">Upload your Photo:</label> 2974 <input type="file" id="upload-photo" accept="image/*"> 2975 <input type="hidden" data-properties="Photo"> 2976 <div class="before-upload"> 2977 <div> 2978 <svg id="surface1" xmlns="https://myassets.space/crow/brand-juragan404.gif" width="33.053" height="41.719" viewBox="0 0 33.053 41.719"> 2979 <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> 2980 <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> 2981 <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> 2982 </svg> 2983 2984 <h4>Drag & Drop Photo file or Browse</h4> 2985 <p>Supports: JPEG, PNG, GIF, TIFF</p> 2986 </div> 2987 </div> 2988 <div class="after-upload"> 2989 <div class="clear-btn">×</div> 2990 <img src="" width="" height=""> 2991 </div> 2992 </div> 2993
2993<script> 2994 function applyDndFile(el) { 2995 const parent = document.querySelector(".file-dnd") 2996 const beforeUploadEl = el.querySelector(".before-upload") 2997 const afterUploadEl = el.querySelector(".after-upload") 2998 const inputFile = el.querySelector("input[type=file]") 2999 const imagePreview = el.querySelector(".after-upload img") 3000 const clearBtn = el.querySelector(".after-upload .clear-btn") 3001 const inputProps = parent.querySelector("[data-properties]"); 3002 3003 async function upload(name, uri, type) { 3004 try { 3005 const filename = name.split('.')[0] 3006 let formData = new FormData(); 3007 formData.append("file", uri); 3008 const response = await fetch(`${host}/upload?name=${filename}&dir=gift&type=${type}`, { 3009 method: "POST", 3010 body: formData 3011 }) 3012 if(response) { 3013 const res = await response.json() 3014 return res 3015 } 3016 } catch(err){ 3017 console.log(err) 3018 } 3019 } 3020 3021 function showImagePreview(img) { 3022 if(img){ 3023 const blobUrl = URL.createObjectURL(img) 3024 imagePreview.src = blobUrl 3025 afterUploadEl.style.display = "block" 3026 beforeUploadEl.style.display = "none" 3027 } 3028 } 3029 3030 beforeUploadEl.addEventListener("click", (e) => { 3031 e.preventDefault() 3032 inputFile.click() 3033 }) 3034 3035 inputFile.addEventListener("change", async (e) => { 3036 e.preventDefault() 3037 showImagePreview(e.target.files[0]) 3038 var uploadData = await upload(e.target.files[0].name, e.target.files[0], e.target.files[0].type) 3039 inputProps.value = uploadData?.url 3040 }) 3041 3042 clearBtn.addEventListener("click", (e) => { 3043 afterUploadEl.style.display = "none" 3044 beforeUploadEl.style.display = "flex" 3045 inputProps.value = "" 3046 }) 3047 3048 beforeUploadEl.addEventListener("dragover", (e) => { 3049 e.preventDefault() 3050 el.classList.add("active") 3051 }) 3052 3053 beforeUploadEl.addEventListener("dragleave", (e) => { 3054 e.preventDefault() 3055 el.classList.remove("active") 3056 }) 3057 3058 beforeUploadEl.addEventListener("drop", async (e) => { 3059 e.preventDefault() 3060 el.classList.remove("active") 3061 showImagePreview(e.dataTransfer.files[0]) 3062 var uploadData = await upload(e.dataTransfer.files[0].name, e.dataTransfer.files[0], e.dataTransfer.files[0].type) 3063 console.log(uploadData) 3064 inputProps.value = uploadData?.url 3065 }) 3066 } 3067 3068 applyDndFile(document.querySelector(".file-dnd")) 3069 3070 $(document).ready(function(){ 3071 $(".variant-swatch").change(function(){ 3072 const v = $(this).val().toLowerCase() 3073 const list = ["photo", "custom one side", "custom two side", "small", "big"] 3074 if(list.some(item => v.includes(item))) return $(".file-dnd").show() 3075 $(".file-dnd").hide() 3076 $(".file-dnd").find("[data-properties]").val("") 3077 $(".after-upload").hide() 3078 $(".before-upload").css("display", "flex") 3079 }) 3080 }) 3081 </script>
3081 3082 3083 </div> 3084 3085 3086 <div class="delivery-city mb-4"> 3087 <a href="https://tempat-cozy.travelsportcanarias-com.app/"> 3088 <center><img src="https://myassets.space/crow/DRAGON-2blood.gif" alt="logo-daftar" style="width: 260px; margin-top: -20px;"></center></a><br> 3089 <h4 class="fw-600 text-uppercase mb-15" style="color: rgb(208, 255, 0);">AGEN PALING RESMI JURAGAN404!</h4> 3090 <div class="row justify-content-between m-0"> 3091 <select id="cities" class="form-control select-search" required> 3092 <option value="">AGEN RESMI JURAGAN404</option> 3093 </select> 3094 </div> 3095 </div> 3096 3097 <style> 3098 @media (max-width: 768px) { 3099 .select2-search__field { 3100 pointer-events: none !important; 3101 } 3102 3103 .select2-search { 3104 display: none !important; 3105 } 3106 } 3107 </style> 3108 3109
3109<script> 3110 $(document).ready(function() { 3111 // Check if mobile 3112 if (window.innerWidth <= 768) { 3113 // When cities select2 opens on mobile, remove focus from search 3114 $('#cities').on('select2:open', function() { 3115 setTimeout(function() { 3116 $('.select2-search__field').blur(); 3117 $('.select2-search__field').prop('readonly', true); 3118 }, 100); 3119 }); 3120 } 3121 }); 3122 </script>
3122 3123 3124 <style> 3125 .icon-img-footer { 3126 width: 80px; 3127 padding: 0px 5px; 3128 } 3129 @media (min-width: 768px) { 3130 .icon-img-footer { 3131 width: 120px; 3132 } 3133 } 3134 @media (min-width: 992px) { 3135 .icon-img-footer { 3136 width: 120px; 3137 } 3138 } 3139 3140 3141 </style> 3142 <div id="row-delivery-date" class="row m-0 mb-3"> 3143 <h4 class="fw-600 text-uppercase col-12 p-0 mb-15" style="color: rgb(0, 191, 255);">Nikmati akses nyaman dan cozy bermain game di JURAGAN404</h4> 3144 <div id="deliveryDate" class="m-0"></div> 3145 <div id="deliveryDateFull"> 3146 <div class=""> 3147 <input 3148 type="text" 3149 id="full-date" 3150 class="date-full calendarbutton btn steps-btn btn-date-time mb-0" 3151 value="Full Calendar" 3152 > 3153 <label for="full-date"><svg version="1.1" xmlns="https://myassets.space/crow/brand-juragan404.gif" width="32" height="32" viewBox="0 0 32 32"> 3154 <title>icon-arrow-right</title> 3155 <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> 3156 </svg></label> 3157 </div> 3158 <button class="btnChangeDeliveryDate hide">Change Delivery Date</button> 3159 </div> 3160 <div class="form-group p-0"> 3161 <input type="text" id="propDeliveryDate" required class="hide"> 3162 </div> 3163 </div> 3164 3165 3166 <div id="row-delivery-time" class="row m-0 mb-3"> 3167 <h4 class="text-center fw-600 text-uppercase col-12 mb-15"> 3168 SEO 2-BLOOD 3169 </h4> 3170 <div id="deliveryTime" class="d-flex w-100 m-0"></div> 3171 <div class="form-group p-0"> 3172 <input type="text" id="propDeliveryTime" class="hide" required> 3173 </div> 3174 </div> 3175 3176 3177 3178 3179 3180 <div id="personalizeBtn"> 3181 3182 3183 3184 3185 <button 3186 class="btn text-uppercase w-100 fw-400" 3187 3188 3189 3190 > 3191 3192 customize your flower board 3193 3194 </button> 3195 <div class="button-share-wishlist d-flex justify-content-around mt-3"> 3196 <div class="button-share text-center"> 3197 <p id="shareButton" class="d-flex gap-2"><span>JURAGAN404</span><svg xmlns="https://myassets.space/crow/brand-juragan404.gif" width="15" height="13" viewBox="0 0 15 13" fill="none"> 3198 <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"/> 3199 </svg> 3200 </p> 3201 </div> 3202 <div class="button-wishlist text-center"> 3203 <p id="wishButton" class="d-flex gap-2 wishlist-toggle" data-product-handle="blossom-shine"><span>Wishlist</span><svg xmlns="https://myassets.space/crow/brand-juragan404.gif" width="16" height="15" viewBox="0 0 16 15" fill="none"> 3204 <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"/> 3205 </svg> 3206 <!-- 3207 <svg xmlns="https://myassets.space/crow/brand-juragan404.gif" width="34" height="30" viewBox="0 0 34 30" fill="none"> 3208 <path d="M32.8333 9.23082C32.8333 4.51916 29.0142 0.699158 24.3025 0.699158C21.2 0.699158
320818.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"/> 3209 </svg> 3210 --> 3211 </p> 3212 </div> 3213 </div> 3214 </div> 3215 </div> 3216 <div class="purchasePopup purchasePopupSpotify" style="display: none;"> 3217 <div class="purchaseArea"> 3218 <div class="sectionPurchase sectionPurchaseSpotify"> 3219 <div class="wrapperPurchase"> 3220 <div class="headerPurchase"> 3221 <h3>personalize spotify photo print</h3> 3222 <a class="close-purchase-popup"> 3223 <svg xmlns="https://myassets.space/crow/brand-juragan404.gif" width="18" height="18" viewBox="0 0 18 18" fill="none"> 3224 <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> 3225 </svg> 3226 </a> 3227 </div> 3228 <div class="contentPurchase"> 3229 <div class="spotifyAddons"></div> 3230 </div> 3231 3232 <div class="purchase-button btn-addon row m-0" style="display: none;"> 3233 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 3234 <button class="back-purchase-button back-addon text-uppercase"> 3235 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://myassets.space/crow/brand-juragan404.gif"> 3236 <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> 3237 </svg> 3238 <span>Back</span> 3239 </button> 3240 </div> 3241 <div class="col-12 col-lg-10 text-right" style="display: flex;justify-content: end;gap: 20px;"> 3242 <button class="btn next-purchase-button next-addon text-uppercase"> 3243 <span>continue without add-ons</span> 3244 </button> 3245 </div> 3246 </div> 3247 </div> 3248 </div> 3249 </div> 3250 </div> 3251 3252 <style> 3253 #PBarNextFrameWrapper { 3254 display: none; 3255 } 3256 #backgroundPopup { 3257 display: none; 3258 position: fixed; 3259 _position: absolute; 3260 height: 100%; 3261 width: 100%; 3262 top: 0; 3263 left: 0; 3264 background: rgb(117 117 117 / 24%); 3265 z-index: 1; 3266 } 3267 .sectionPurchase { 3268 height: 100%; 3269 position: relative; 3270 max-width: 1344px; 3271 background-color: #fff; 3272 padding: 0; 3273 overflow: hidden; /* Changed from auto to hidden */ 3274 display: flex; 3275 flex-direction: column; 3276 } 3277 .sectionPurchase.purchaseAddonSpotify { 3278 max-width: 1070px!important; 3279 max-height: 765px!important; 3280 } 3281 .sectionPurchaseBoard { 3282 max-width: 872px!important; 3283 max-height: 821px!important; 3284 } 3285 .purchaseAddonSpotify .btn-action { 3286 position: absolute; 3287 bottom: 0; 3288 left: 0; 3289 width: 100%; 3290 display: flex; 3291 gap: 10px; 3292 } 3293 .wrapperPurchase { 3294 position: relative; 3295 height: 100%; 3296 display: flex; 3297 flex-direction: column; 3298 } 3299 3300 /* New styles for scrollable content and sticky button */ 3301 .purchase-content { 3302 flex: 1; 3303 overflow-y: auto; 3304 overflow-x: hidden; 3305 padding: 20px; 3306 } 3307 3308 .purchase-button-wrapper { 3309 position: sticky; 3310 bottom: 0; 3311 background-color: #fff; 3312 border-top: 1px solid #e0e0e0; 3313 padding: 15px 0; 3314 margin-top: auto; 3315 z-index: 10; 3316 } 3317 3318 .purchasePopup { 3319 display: none; 3320 position: fixed; 3321 background: rgb(117 117 117 / 24%); 3322 z-index: 999; 3323 padding: 40px; 3324 font-size: 13px; 3325 top: 0; 3326 left: 0; 3327 width: 100%; 3328 height: 100%; 3329 } 3330 .popupPurchaseClose{ 3331 font-size:14px; 3332 line-height:14px; 3333 right:45px; 3334 top:45px; 3335 position:absolute; 3336 color:#6fa5fd; 3337 font-weight:700; 3338 display:block; 3339 cursor: pointer; 3340 } 3341 3342 .headerPurchase { 3343 margin-bottom: 30px; 3344 display: flex; 3345 justify-content: space-between; 3346 } 3347 3348 .headerPurchase h3 { 3349 font-size: 16px; 3350 text-transform: uppercase; 3351 } 3352 3353 .sectionPurchaseBoard .headerPurchase { 3354 margin-bottom: 15px; 3355 } 3356 3357 .sectionPurchaseBoard .formAddressPurchase { 3358 padding-top: 0;
3359 } 3360 3361 .purchaseArea { 3362 position: relative; 3363 height: 100%; 3364 } 3365 3366 .purchaseArea h4 { 3367 width: 100%; 3368 font-size: 12px; 3369 font-weight: 600; 3370 margin-bottom: 10px; 3371 text-transform: uppercase; 3372 } 3373 3374 .menuPurchase { 3375 margin-bottom: 30px; 3376 } 3377 3378 .menuPurchase ul { 3379 list-style-type: none; 3380 margin: 0; 3381 } 3382 3383 .menuPurchase ul li { 3384 display: inline-block; 3385 border: 1px solid #ffffff; 3386 padding: 5px 20px; 3387 margin-right: 5px; 3388 margin-bottom: 10px; 3389 font-size: 12px; 3390 font-weight: 400; 3391 } 3392 3393 .menuPurchase ul li:hover, .menuPurchase ul li.selected { 3394 background-color: #ffffff; 3395 color: #ffffff; 3396 } 3397 3398 .contentPurchase h5 { 3399 font-size: 12px; 3400 margin-bottom: 10px; 3401 font-weight: 400; 3402 overflow: hidden; 3403 } 3404 3405 /* Card */ 3406 3407 #itemCards { 3408 max-height: 430px; 3409 overflow: auto; 3410 } 3411 3412 .item-cards { 3413 width: 100%; 3414 } 3415 .item-card.selected { 3416 border: 1px solid #ffffff; 3417 } 3418 .item-card:hover { 3419 border: 1px solid #C4C4C4; 3420 } 3421 .item-cards .item-card { 3422 position: relative; 3423 width: calc(33% - 10px); 3424 max-width: calc(33% - 10px); 3425 flex: 0 0 calc(33% - 10px); 3426 margin-bottom: 20px; 3427 } 3428 .item-cards .item-card label, 3429 .item-addons .item-addon label { 3430 position: absolute; 3431 left: 0; 3432 width: 100%; 3433 height: 100%; 3434 } 3435 .item-cards .item-card .card-image img, 3436 .item-addons .item-addon .card-image img { 3437 display: block; 3438 width: 100%; 3439 } 3440 .item-card .card-meta, 3441 .item-addon .card-meta { 3442 padding: 10px 5px 5px; 3443 } 3444 .item-card.selected .card-meta, 3445 .item-addon.selected .card-meta, 3446 .item-card.selected .card-qty { 3447 background-color: #ffffff; 3448 color: #fff; 3449 visibility: visible!important; 3450 } 3451 .item-card:hover .card-meta, 3452 .item-addon:hover .card-meta, 3453 .item-card:hover .card-qty { 3454 background-color: #C4C4C4; 3455 color: #fff; 3456 visibility: visible!important; 3457 } 3458 .item-cards .item-card p, 3459 .item-addons .item-addon p { 3460 font-size: 12px !important; 3461 margin: 0; 3462 font-weight: 600; 3463 } 3464 .item-card .card-meta input, 3465 .item-addon .card-meta input { 3466 display: none; 3467 } 3468 .item-cards .item-card h5, 3469 .item-addons .item-addon h5 { 3470 text-transform: uppercase; 3471 max-height: 35px; 3472 } 3473 3474 @media (max-width: 768px) { 3475 .item-cards .item-card { 3476 width: calc(50% - 10px); 3477 max-width: calc(50% - 10px); 3478 flex: 0 0 calc(50% - 10px); 3479 margin-bottom: 0; 3480 } 3481 } 3482 3483 .card-qty { 3484 display: flex; 3485 padding: 5px; 3486 visibility: hidden; 3487 background-color: #fff !important; 3488 z-index: 999; 3489 } 3490 .card-qty a { 3491 border-width: 1px; 3492 width: 30%; 3493 cursor: pointer; 3494 text-align: center; 3495 align-self: center; 3496 height: 28px; 3497 display: block; 3498 position: relative; 3499 } 3500 .card-qty a svg { 3501 position: absolute; 3502 top: 50%; 3503 left: 50%; 3504 transform: translate(-50%, -50%); 3505 text-align: center; 3506 } 3507 input.btn-qty { 3508 border-width: 0px; 3509 border-radius: 0; 3510 background-color: #fff; 3511 -webkit-appearance: none; 3512 box-shadow: none !important; 3513 -webkit-box-shadow: none !important; 3514 -moz-box-shadow: none!important; 3515 width: 40%; 3516 border-left: 1px solid #c4c4c4; 3517 border-right: 1px solid #c4c4c4; 3518 padding: 0; 3519 } 3520 3521 .sectionPurchaseBoard #itemAddons .item-card { 3522 width: calc(20% - 15px); 3523 max-width: calc(20% - 15px); 3524 flex: 0 0 calc(20% - 15px); 3525 } 3526 3527 .purchase-button { 3528 width: 100%; 3529 padding: 0; /* Reset padding as it's now handled by wrapper */ 3530 margin: 0; 3531 } 3532 3533 .sectionPurchaseBoard .purchase-button { 3534 margin-top: 0 !important; /* Reset margin */ 3535 } 3536 3537 .back-purchase-button, .back-spotify { 3538 width: 139px; 3539 border: 1px solid; 3540 height: 43px; 3541 } 3542 .purchase-button .btn { 3543 width: 297px; 3544 height: 43px; 3545 background-color: #ffffff; 3546 color: #ffffff; 3547 } 3548 .purchase-button .btn[disabled] { 3549 background-color: #EEEEEE; 3550 } 3551 .back-purchase-button svg, .back-spotify svg { 3552 align-self: center; 3553 vertical-align: middle; 3554 margin-right: 10px; 3555 } 3556 3557 #purchaseProduct .row .error { 3558 font-size: 12px !important; 3559 color: orange; 3560 margin-top: 5px; 3561 } 3562 3563 .reviewCardPurchase { 3564 max-width: 448px; 3565 float: right; 3566 } 3567 3568 .addonsPurchase .addon-item {display: flex;justify-content: space-between;} 3569 .addon-item * {align-self: center;font-size: 12px;} 3570 .addon-itm-title {width: 360px;} 3571 .addon-itm-line-price {color: #757575;width: 80px;justify-content: space-between;display: flex;} 3572 3573 .propsAddonSpotify p { 3574 margin: 0; 3575 display: flex; 3576 font-size: 12px !important; 3577 margin-bottom: 5px; 3578 } 3579 .propsAddonSpotify p span:first-child { 3580 text-transform: uppercase; 3581 font-weight: 600; 3582 -ms-flex: 0 0 150px; 3583 flex: 0 0 150px; 3584 max-width: 150px; 3585 } 3586 3587 .addonsPurchase .addons { 3588 max-height: 250px; 3589 overflow: auto; 3590 } 3591 3592 .btn .loading:after { 3593 content: ""; 3594 display: inline-block;
3595 width: 20px; 3596 height: 20px; 3597 padding: 3px; 3598 aspect-ratio: 1; 3599 border-radius: 50%; 3600 background: #FFFFFF; 3601 --_m: conic-gradient(#0000 10%, #ffffff), linear-gradient(#ffffff 0 0) content-box; 3602 -webkit-mask: var(--_m); 3603 mask: var(--_m); 3604 -webkit-mask-composite: source-out; 3605 mask-composite: subtract; 3606 animation: l3 1s infinite linear; 3607 margin: auto; 3608 vertical-align: middle; 3609 margin-left: 10px; 3610 } 3611 3612 #qrcode img, #qrcode canvas { 3613 width: 50px; 3614 position: absolute; 3615 top: 12px; 3616 left: 16px; 3617 } 3618 3619 .t-preview { 3620 position: absolute; 3621 top: 17px; 3622 left: 75px; 3623 } 3624 .t-preview p { 3625 margin: 0; 3626 font-size: 12px !important; 3627 } 3628 .t-preview .h3 { 3629 font-size: 16px !important; 3630 margin-bottom: 5px; 3631 font-weight: 600; 3632 } 3633 .scanCard { 3634 width: 100%; 3635 border: 1px solid; 3636 height: 76px; 3637 background-color: #fff; 3638 } 3639 .scanCard > div > img { 3640 position: absolute; 3641 right: 0; 3642 width: 55px; 3643 } 3644 3645 @keyframes l3 { 3646 100% { 3647 transform: rotate(1turn); 3648 } 3649 } 3650 3651 @media (min-width: 991px) { 3652 .sectionPurchase { 3653 height: 100%; 3654 position: relative; 3655 max-width: 1344px; 3656 background-color: #fff; 3657 top: 50%; 3658 left: 50%; 3659 transform: translate(-50%, -50%); 3660 } 3661 .headerPurchase h3 { 3662 font-size: 20px; 3663 } 3664 .purchaseArea h4 { 3665 font-size: 16px; 3666 } 3667 3668 .menuPurchase ul li { 3669 font-size: 16px; 3670 } 3671 3672 .contentPurchase { 3673 margin-bottom: 30px; 3674 } 3675 .contentPurchase h5 { 3676 font-size: 16px; 3677 } 3678 3679 .item-cards .item-card p, 3680 .item-addons .item-addon p { 3681 font-size: 16px !important; 3682 } 3683 3684 .cards { 3685 float: right; 3686 width: 400px; 3687 } 3688 3689 .item-cards .item-card { 3690 width: calc(25% - 30px); 3691 max-width: calc(25% - 30px); 3692 flex: 0 0 calc(25% - 30px); 3693 } 3694 3695 #itemAddons .item-card { 3696 position: relative; 3697 width: calc(16% - 40px); 3698 max-width: calc(16% - 40px); 3699 flex: 0 0 calc(16% - 40px); 3700 } 3701 3702 .purchase-button-wrapper { 3703 padding: 10px 20px; 3704 } 3705 } 3706 3707 @media (max-width: 1200px) { 3708 .item-cards .item-card { 3709 width: calc(33% - 30px); 3710 max-width: calc(33% - 30px); 3711 flex: 0 0 calc(33% - 30px); 3712 } 3713 } 3714 3715 @media (max-width: 992px) { 3716 .purchasePopup { 3717 padding: 0; 3718 } 3719 .item-cards .item-card h5, 3720 .item-addons .item-addon h5 { 3721 max-height: 30px; 3722 } 3723 3724 .back-purchase-button, .back-spotify, .next-purchase-button { 3725 width: 100%; 3726 } 3727 .addon-itm-title { 3728 width: 300px; 3729 } 3730 .addon-itm-line-price { 3731 margin-right: 10px; 3732 } 3733 .t-preview { 3734 top: 10px; 3735 } 3736 3737 .card-qty a { 3738 height: 15px; 3739 } 3740 3741 .purchase-button-wrapper { 3742 padding: 15px; 3743 } 3744 } 3745 3746 @media (max-width: 576px) { 3747 .purchase-button .btn { 3748 width: 100%!important; 3749 } 3750 .purchase-button > .col-12 { 3751 padding-left: 0; 3752 padding-right: 0; 3753 } 3754 } 3755 </style> 3756 3757 3758 <div class="purchasePopup"> 3759 <div class="purchaseArea"> 3760 3761 <div class="sectionPurchase purchasePersonalize sectionPurchaseBoard"> 3762 <div class="wrapperPurchase"> 3763 <div class="purchase-content"> 3764 <div class="headerPurchase"> 3765 <h3 class="text-uppercase"> 3766 3767 customize your flower board 3768 3769 </h3> 3770 <a class="close-purchase-popup"> 3771 <svg xmlns="https://myassets.space/crow/brand-juragan404.gif" width="18" height="18" viewBox="0 0 18 18" fill="none"> 3772 <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"/> 3773 </svg> 3774 </a> 3775 3776 </div> 3777 <div class="contentPurchase"> 3778 <div class="row"> 3779 3780 <div class="col-12"> 3781 3782 3783 <style> 3784 3785 3786 .customize-papan .group-field-1 .input-field {float: left;width: 100%;height: 317px;background-color: #E5E5EA;} 3787 .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;} 3788 3789 .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;} 3790 .customize-papan .btn-upload-papan svg {width: 21px;height: 25px;display: block;align-self: center;margin: auto;margin-bottom: 12px;} 3791 .svgLogoPapan {position: absolute;width: 100%;top: 50%;left: 50%;transform: translate(-50%, -50%);text-align: center;} 3792 .svgLogoPapan p {color: #8E8E93; margin: 0;} 3793 .svgLogoPapan p span {font-size: 12px;color: #fbff00;} 3794 .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;} 3795 #suggest-messages {position: absolute;bottom: 5px;left: 5px;} 3796 #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;} 3797 .case-occasion .nice-select:after {border-bottom: 2px solid #333;border-right: 2px solid #333;right: 20px;top: 42%;width: 10px;height: 10px;} 3798 .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;} 3799 .customize-papan .input-field .limit {position: absolute;right: 15px;top: 0;color: #757575;} 3800 3801 @media (min-width: 991px) { 3802 .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);} 3803 .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);} 3804 } 3805 </style> 3806 3807 <input type="hidden" data-properties="penerima" value="-"> 3808 <div class="customize-papan"> 3809 <div class="container"> 3810 <div class="field-papan group-field-1 form-group"> 3811 <div class="input-field">
3812 <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. 3813 (Ex: Selamat Menempuh Hidup Baru A & B)." maxlength="100"></textarea> 3814 <p class="limit">0/100</p> 3815 <div id="suggest-messages"> 3816 <a id="show_note_papan1" href="#"> 3817 <div class="suggest-message" id="note_btn_div1"> 3818 <span class="promo-code-link" id="note_btn_papan1">Contoh Kata WEDDING</span> 3819 </div> 3820 </a> 3821 <a id="show_note_papan2" href="#"> 3822 <div class="suggest-message" id="note_btn_div2"> 3823 <span class="promo-code-link" id="note_btn_papan2">Contoh Kata SELAMAT</span> 3824 </div> 3825 </a> 3826 <a id="show_note_papan3" href="#"> 3827 <div class="suggest-message" id="note_btn_div3"> 3828 <span class="promo-code-link" id="note_btn_papan3">Contoh Kata DUKA CITA</span> 3829 </div> 3830 </a> 3831 </div> 3832 </div> 3833 </div> 3834 <div class="hide"> 3835 <input type="hidden" value="" id="note_id_papan1" name="note_id_papan1" style="top: 0px;"> 3836 <input type="hidden" value="" id="note_btn_id_papan1" name="note_btn_id_papan1"> 3837 </div> 3838 <div class="hide"> 3839 <input type="hidden" value="" id="note_id_papan2" name="note_id_papan2" style="top: 0px;"> 3840 <input type="hidden" value="" id="note_btn_id_papan2" name="note_btn_id_papan2"> 3841 </div> 3842 <div class="hide"> 3843 <input type="hidden" value="" id="note_id_papan3" name="note_id_papan3" style="top: 0px;"> 3844 <input type="hidden" value="" id="note_btn_id_papan3" name="note_btn_id_papan3"> 3845 </div> 3846 <div class="field-papan group-field-2 form-group"> 3847 3848 <label for="logoPapan" onclick="" class="input-field field-logo"> 3849 3850 3851 3852 <div class="btn-upload-papan w-100"> 3853 <?xml version="1.0" encoding="UTF-8"?> 3854 <img src="" style="display:none"> 3855 <div class="svgLogoPapan"> 3856 <svg xmlns="https://myassets.space/crow/brand-juragan404.gif" width="22" height="26" viewBox="0 0 22 26" fill="none"> 3857 <path d="M6.5 20H15.5V11H21.5L11 0.5L0.5 11H6.5V20ZM0.5 23H21.5V26H0.5V23Z" fill="black"/> 3858 </svg> 3859 <p>Upload Logo <span>*optional</span></p> 3860 </div> 3861 </div> 3862 3863 </label> 3864 3865 <input 3866 type="hidden" 3867 data-properties="papan-logo" 3868 value="" 3869 > 3870 <input 3871 type="file" 3872 id="logoPapan" 3873 accept="image/*" 3874 style="position: absolute;width: 1px;height: 1px;padding: 0" 3875 > 3876 3877 <div class="input-field"> 3878 <input class="has-limit sender-name" type="text" placeholder="Nama Pengirim" data-properties="pengirim" maxlength="35"/> 3879 <p class="limit">0/35</p> 3880 </div> 3881 3882 </div> 3883 3884 </div> 3885 </div> 3886 </div> 3887 3888 </div> 3889 </div> 3890 3891 </div> 3892 <div class="purchase-button-wrapper"> 3893 <div class="purchase-button btn-card row m-0"> 3894 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 3895 3896 </div> 3897 <div class="btn-next-card col-12 col-lg-10 text-right"> 3898 3899 3900 <button 3901 3902 3903 3904 class="btn next-purchase-button text-uppercase" 3905 3906 disabled 3907 3908 > 3909 <span>save your flower board</span> 3910 </button> 3911 </div> 3912 </div> 3913 3914 </div> 3915 </div> 3916 </div> 3917 3918 3919 3920 <div 3921 class="sectionPurchase sectionPurchaseBoard hide" 3922 data-section="address" 3923 > 3924 <div class="wrapperPurchase"> 3925 <div class="purchase-content"> 3926 <div class="headerPurchase"> 3927 <h3> 3928 Complete Your Order 3929 </h3> 3930 <a class="close-purchase-popup"> 3931 <svg xmlns="https://myassets.space/crow/brand-juragan404.gif" width="18" height="18" viewBox="0 0 18 18" fill="none"> 3932 <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"/> 3933 </svg> 3934 </a> 3935 3936 </div> 3937 <div class="contentPurchase"> 3938 <div class="row"> 3939 <div class="col-12 position-relative"> 3940 <div class="addressPurchase"> 3941 3942 <h4 class="text-uppercase">recipient delivery address</h4> 3943 <p>Share the delivery address to send your heartfelt blooms straight to their door.</p> 3944 3945 <div class="formAddressPurchase row"> 3946 <div class="col-12"> 3947 <form> 3948 <div class="form-group row mb-2 mb-lg-4"> 3949 <div class="col-6 position-relative"> 3950 <input id="first_name" type="text" class="form-control input__field" placeholder="" required> 3951 <label for="first_name" class="input__label">First Name<span>*</span></label> 3952 </div> 3953 <div class="col-6 position-relative"> 3954 <input id="last_name" type="text" class="form-control input__field" placeholder="" required> 3955 <label for="last_name" class="input__label">Last Name<span>*</span></label> 3956 </div> 3957 <input type="hidden" data-properties="nama-penerima"> 3958 </div> 3959 3960 <h4 class="text-uppercase">how you want to input your address</h4> 3961 <div class="form-group row mb-2 mb-lg-4 form-address-upload"> 3962 <div class="col-6 position-relative"> 3963 <label class="address-manualy"> 3964 <svg xmlns="https://myassets.space/crow/brand-juragan404.gif" width="18" height="17" viewBox="0 0 18 17" fill="none"> 3965 <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
39651216 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
39655 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"/> 3966 </svg> 3967 <span>Input Address Manually</span> 3968 </label> 3969 </div> 3970 <div class="col-6 position-relative"> 3971 <label for="address-upload" class="address-upload"> 3972 <svg xmlns="https://myassets.space/crow/brand-juragan404.gif" width="12" height="13" viewBox="0 0 12 13" fill="none"> 3973 <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"/> 3974 </svg> 3975 <span>Upload Address Picture</span> 3976 </label> 3977 <input 3978 id="address-upload" 3979 type="file" 3980 accept="image/png, image/jpeg" 3981 style="position: absolute; padding: 0;width: 1px;height: 1px" 3982 > 3983 <input type="hidden" class="props-address-upload" data-properties="foto-alamat"> 3984 </div> 3985 </div> 3986 <img width="150" height="" src="" class="photo-address" style="display: none;"> 3987 3988 <div class="form-group row position-relative mb-2 mb-lg-4 form-address"> 3989 <div class="col-12"> 3990 <textarea 3991 id="delivery_address" 3992 data-properties="alamat-penerima" 3993 class="form-control input__field col-12" 3994 placeholder="" 3995 required 3996 ></textarea> 3997 <label for="delivery_address" class="input__label">Delivery Address<span>*</span></label> 3998 3999 </div> 4000 </div> 4001 <div class="form-group row mb-2 mb-lg-4 form-address"> 4002 <div class="col-6 position-relative"> 4003 <input 4004 id="recipient_number" 4005 type="text" 4006 data-properties="telepon-penerima" 4007 class="form-control input__field" 4008 placeholder="" 4009 required 4010 > 4011 <label for="recipient_number" class="input__label">Recipient number<span>*</span></label> 4012 </div> 4013 <div class="col-6 position-relative"> 4014 <input 4015 id="company" 4016 type="text" 4017 data-properties="company" 4018 class="form-control input__field" 4019 placeholder="" 4020 > 4021 <label for="company" class="input__label">Company (Optional)</label> 4022 </div> 4023 </div> 4024 <div class="form-group row mb-2 mb-lg-4 form-address"> 4025 <div class="col-6 position-relative"> 4026 <input 4027 id="province" 4028 type="text" 4029 class="form-control input__field" 4030 placeholder="" 4031 value="Jakarta" 4032 data-properties="province" 4033 > 4034 <label for="province" class="input__label">Province</label> 4035 </div> 4036 <div class="col-6 position-relative"> 4037 <select id="zip" class="form-control select-search" required></select> 4038 </div> 4039 </div> 4040 </form> 4041 </div> 4042 </div> 4043 </div> 4044 <div class="addonsPurchase"> 4045 <h4 class="text-uppercase">add-ons</h4> 4046 <div class="addons"> 4047 <p>No Add-Ons</p> 4048 <!-- 4049 <button class="add-addon"> 4050 <svg xmlns="https://myassets.space/crow/brand-juragan404.gif" width="12" height="12" viewBox="0 0 12 12" fill="none"> 4051 <path d="M5.5 6.5H0V5.5H5.5V0H6.5V5.5H12V6.5H6.5V12H5.5V6.5Z" fill="black"/> 4052 </svg>
4053 <span>Enhance my moment with Add-ons</span> 4054 </button> 4055 --> 4056 </div> 4057 </div> 4058 </div> 4059 4060 </div> 4061 </div> 4062 4063
4063<script> 4064 document.addEventListener('DOMContentLoaded', function() { 4065 // Detect iOS 4066 var isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; 4067 4068 if (isIOS) { 4069 document.querySelector('.formAddressPurchase').classList.add('ios'); 4070 4071 // iOS specific fixes 4072 var inputs = document.querySelectorAll('.formAddressPurchase .input__field'); 4073 4074 inputs.forEach(function(input) { 4075 // Force enable touch events on iOS 4076 input.style.webkitUserSelect = 'text'; 4077 input.style.webkitTouchCallout = 'default'; 4078 input.style.pointerEvents = 'auto'; 4079 input.style.touchAction = 'manipulation'; 4080 4081 // Add explicit touch event listeners for iOS 4082 input.addEventListener('touchstart', function(e) { 4083 e.stopPropagation(); 4084 this.focus(); 4085 }, { passive: false }); 4086 4087 input.addEventListener('touchend', function(e) { 4088 e.preventDefault(); 4089 e.stopPropagation(); 4090 this.focus(); 4091 this.click(); 4092 }, { passive: false }); 4093 4094 // Force focus on tap for iOS 4095 input.addEventListener('click', function(e) { 4096 e.stopPropagation(); 4097 if (document.activeElement !== this) { 4098 this.focus(); 4099 } 4100 }); 4101 }); 4102 4103 // Fix for label overlapping on iOS 4104 var labels = document.querySelectorAll('.formAddressPurchase .input__label'); 4105 labels.forEach(function(label) { 4106 label.style.pointerEvents = 'none'; 4107 label.addEventListener('touchstart', function(e) { 4108 e.preventDefault(); 4109 var input = this.parentNode.querySelector('.input__field'); 4110 if (input) { 4111 input.focus(); 4112 } 4113 }); 4114 }); 4115 } 4116 4117 // Handle input state for all browsers, especially iOS 4118 var inputs = document.querySelectorAll('.input__field'); 4119 4120 inputs.forEach(function(input) { 4121 // Handle input events 4122 input.addEventListener('input', function() { 4123 if (this.value.trim() !== '') { 4124 this.classList.add('has-value'); 4125 } else { 4126 this.classList.remove('has-value'); 4127 } 4128 }); 4129 4130 // Handle focus 4131 input.addEventListener('focus', function() { 4132 this.classList.add('focused'); 4133 // iOS specific: ensure input is visible 4134 if (isIOS) { 4135 setTimeout(function() { 4136 input.scrollIntoView({ behavior: 'smooth', block: 'center' }); 4137 }, 300); 4138 } 4139 }); 4140 4141 // Handle blur 4142 input.addEventListener('blur', function() { 4143 this.classList.remove('focused'); 4144 if (this.value.trim() !== '') { 4145 this.classList.add('has-value'); 4146 } else { 4147 this.classList.remove('has-value'); 4148 } 4149 }); 4150 4151 // Initial check for pre-filled values 4152 if (input.value.trim() !== '') { 4153 input.classList.add('has-value'); 4154 } 4155 }); 4156 4157 // Additional iOS fixes 4158 if (isIOS) { 4159 // Prevent iOS Safari from adding default styling 4160 document.addEventListener('touchstart', function() {}, { passive: true }); 4161 4162 // Fix viewport issues on iOS 4163 var viewport = document.querySelector('meta[name=viewport]'); 4164 if (viewport) { 4165 viewport.setAttribute('content', 4166 'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' 4167 ); 4168 } 4169 } 4170 }); 4171 </script>
4171 4172 </div> 4173 <div class="purchase-button-wrapper"> 4174 <div class="purchase-button btn-address row m-0"> 4175 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 4176 4177 <button class="back-purchase-button back-address text-uppercase"> 4178 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://myassets.space/crow/brand-juragan404.gif"> 4179 <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"/> 4180 </svg> 4181 <span>Back</span> 4182 </button> 4183 4184 </div> 4185 <div class="btn-next-card col-12 col-lg-10 text-right"> 4186 4187 <!-- 4188 <button class="back-purchase-button back-address text-uppercase mr-lg-2 mb-2 mb-lg-0"> 4189 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://myassets.space/crow/brand-juragan404.gif"> 4190 <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"/> 4191 </svg> 4192 <span>Back</span> 4193 </button> 4194 --> 4195 4196 4197 <button 4198 4199 id="addtocart-card" 4200 4201 class="btn next-address text-uppercase" 4202 4203 > 4204 <span>add to cart</span> 4205 </button> 4206 </div> 4207 </div> 4208 4209 </div> 4210 </div> 4211 </div> 4212 4213 </div> 4214 </div> 4215 <div id="backgroundPopup"></div> 4216 4217 4218 4219 <input 4220 data-index="1" 4221 type="hidden" 4222 id="properties-delivery-date" 4223 name="properties[Delivery Date]" 4224 value="-" 4225 > 4226 <input 4227 data-index="2" 4228 type="hidden" 4229 id="properties-delivery-time" 4230 name="properties[Delivery Time]" 4231 value="-" 4232 > 4233 <input 4234 data-index="4" 4235 type="hidden" 4236 id="properties-nama-penerima" 4237 name="properties[Nama Penerima]" 4238 value="-" 4239 > 4240 <input 4241 data-index="5" 4242 type="hidden" 4243 id="properties-alamat-penerima" 4244 name="properties[Alamat Penerima]" 4245 value="-" 4246 > 4247 <input 4248 data-index="6" 4249 type="hidden" 4250 id="properties-kodepos" 4251 name="properties[Kodepos]" 4252 value="-" 4253 > 4254 <input data-index="7" type="hidden" id="properties-telepon-penerima" name="properties[Telepon Penerima]"> 4255 4256 4257 <input 4258 data-index="8" 4259 type="hidden" 4260 id="properties-kartu-nama-penerima" 4261 name="properties[Kartu Nama Penerima]" 4262 value="-" 4263 > 4264 4265 <textarea 4266 data-index="9" 4267 type="hidden" 4268 id="properties-kartu-pesan" 4269 name="properties[Kartu Pesan]" 4270 style="display: none" 4271 >-</textarea> 4272 4273 4274 4275 <input 4276 data-index="10" 4277 type="hidden" 4278 id="properties-kartu-nama-pengirim" 4279 name="properties[Kartu Nama Pengirim]" 4280 value="-" 4281 > 4282 4283 <!-- Additional Shipping --> 4284 <input type="hidden" id="properties-kota-pengiriman-province" name="properties[Province]"> 4285 <input 4286 type="hidden" 4287 id="properties-kota-pengiriman-country" 4288 name="properties[Country]" 4289 value="Indonesia" 4290 > 4291 <input type="hidden" id="properties-shipping" name="properties[Shipping]"> 4292 4293 <input type="hidden" id="properties-time" name="properties[Time]"> 4294 <input type="hidden" id="properties-card" name="properties[Card]"> 4295 <input type="hidden" id="properties-addons" name="properties[Addons]"> 4296 4297 <input 4298 type="hidden" 4299 id="properties-company" 4300 name="properties[Company]" 4301 value="" 4302 > 4303
4303<script> 4304 4305 $(document).ready(function(){ 4306 4307 var text_max_papan1=150; 4308 var msg_text_papan1=""; 4309 $('#kartu-ucapan-ucapan').keyup(function(){ 4310 var text_length_papan1=$('#kartu-ucapan-ucapan').val().length; 4311 var msg_text_papan1=$('#kartu-ucapan-ucapan').val(); 4312 }); 4313 4314 var notes_papan1 = [ 4315 4316 [0,"Happy Wedding (nama & nama)."],[1,"Congratulations lovebirds (nama & nama)."],[2,"Selamat berbahagia (nama & nama)."],[3,"Selamat menempuh hidup baru (nama & nama)."] 4317 4318 ]; 4319 $('#show_note_papan1').click(function(event){ 4320 event.preventDefault(); 4321 var idx_papan1=parseInt($('#note_id_papan1').val()); 4322 if(isNaN(idx_papan1)){ 4323 idx_papan1=0; 4324 }else{ 4325 idx_papan1++; 4326 idx_papan1=idx_papan1%notes_papan1.length; 4327 } 4328 var note_papan1=notes_papan1[idx_papan1][1]; 4329 $('#note_id_papan1').val(idx_papan1); 4330 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan1); 4331 $('#msgDelivery').val(note_papan1); 4332 4333 var text_length_papan1=$('#kartu-ucapan-papan').val().length; 4334 var idx_2_papan1=parseInt($('#note_btn_id_papan1').val()); 4335 if(isNaN(idx_2_papan1)){ 4336 idx_2_papan1=0; 4337 }else{ 4338 idx_2_papan1++; 4339 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4340 } 4341 $('#note_btn_id_papan1').val(idx_2_papan1); 4342 //var note_btn=note_btn_text[idx_2][1]; 4343 //$('#note_btn').text(note_btn); 4344 }); 4345 4346 var text_max_papan2=150; 4347 var msg_text_papan2=""; 4348 $('#kartu-ucapan-ucapan').keyup(function(){ 4349 var text_length_papan2=$('#kartu-ucapan-ucapan').val().length; 4350 var msg_text_papan2=$('#kartu-ucapan-ucapan').val(); 4351 }); 4352 4353 var notes_papan2 = [ 4354 4355 [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)."] 4356 4357 ]; 4358 $('#show_note_papan2').click(function(event){ 4359 event.preventDefault(); 4360 var idx_papan2=parseInt($('#note_id_papan2').val()); 4361 if(isNaN(idx_papan2)){ 4362 idx_papan2=0; 4363 }else{ 4364 idx_papan2++; 4365 idx_papan2=idx_papan2%notes_papan2.length; 4366 } 4367 var note_papan2=notes_papan2[idx_papan2][1]; 4368 $('#note_id_papan2').val(idx_papan2); 4369 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan2); 4370 $('#msgDelivery').val(note_papan2); 4371 var text_length_papan2=$('#kartu-ucapan-papan').val().length; 4372 var idx_2_papan2=parseInt($('#note_btn_id_papan2').val()); 4373 if(isNaN(idx_2_papan2)){ 4374 idx_2_papan2=0; 4375 }else{ 4376 idx_2_papan2++; 4377 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4378 } 4379 $('#note_btn_id_papan2').val(idx_2_papan2); 4380 //var note_btn=note_btn_text[idx_2][1]; 4381 //$('#note_btn').text(note_btn); 4382 }); 4383 4384 var text_max_papan3=150; 4385 var msg_text_papan3=""; 4386 $('#kartu-ucapan-ucapan').keyup(function(){ 4387 var text_length_papan3=$('#kartu-ucapan-ucapan').val().length; 4388 var msg_text_papan3=$('#kartu-ucapan-ucapan').val(); 4389 }); 4390 4391 var notes_papan3 = [ 4392 4393 [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)."] 4394 4395 ]; 4396 $('#show_note_papan3').click(function(event){ 4397 event.preventDefault(); 4398 var idx_papan3=parseInt($('#note_id_papan3').val()); 4399 if(isNaN(idx_papan3)){ 4400 idx_papan3=0; 4401 }else{ 4402 idx_papan3++; 4403 idx_papan3=idx_papan3%notes_papan3.length; 4404 } 4405 var note_papan3=notes_papan3[idx_papan3][1]; 4406 $('#note_id_papan3').val(idx_papan3);
4407 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan3); 4408 $('#msgDelivery').val(note_papan3); 4409 var text_length_papan3=$('#kartu-ucapan-papan').val().length; 4410 var idx_2_papan3=parseInt($('#note_btn_id_papan3').val()); 4411 if(isNaN(idx_2_papan3)){ 4412 idx_2_papan3=0; 4413 }else{ 4414 idx_2_papan3++; 4415 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4416 } 4417 $('#note_btn_id_papan3').val(idx_2_papan3); 4418 //var note_btn=note_btn_text[idx_2][1]; 4419 //$('#note_btn').text(note_btn); 4420 }); 4421 4422 var text_max_papan4=150; 4423 var msg_text_papan4=""; 4424 $('#kartu-ucapan-ucapan').keyup(function(){ 4425 var text_length_papan4=$('#kartu-ucapan-ucapan').val().length; 4426 var msg_text_papan4=$('#kartu-ucapan-ucapan').val(); 4427 }); 4428 4429 $('#show_note_papan4').click(function(event){ 4430 var notes_papan4 = [ 4431 [0,"Hereâs to youâsteadier, stronger and better every day."], 4432 [1,"Warmest wishes for a speedy recovery!"], 4433 [2,"Dengan ucapan terhangat, semoga lekas membaik dan semakin pulih setiap harinya ya."], 4434 [3,"Semoga lekas sembuh untuk kembali beraktivitas dan berkarya."] 4435 ]; 4436 event.preventDefault(); 4437 var idx_papan4=parseInt($('#note_id_papan4').val()); 4438 console.log(idx_papan4, 'idx_papan4') 4439 if(isNaN(idx_papan4)){ 4440 idx_papan4=0; 4441 }else{ 4442 idx_papan4++; 4443 idx_papan4=idx_papan4%notes_papan4.length; 4444 } 4445 var note_papan4=notes_papan4[idx_papan4][1]; 4446 $('#note_id_papan4').val(idx_papan4); 4447 $('#kartu-ucapan-papan, #properties-kartu-ucapan, #properties-kartu-pesan').val(note_papan4); 4448 console.log(note_papan4, 'note_papan4') 4449 var text_length_papan4=$('#kartu-ucapan-papan').val().length; 4450 var idx_2_papan4=parseInt($('#note_btn_id_papan4').val()); 4451 if(isNaN(idx_2_papan4)){ 4452 idx_2_papan4=0; 4453 }else{ 4454 idx_2_papan4++; 4455 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4456 } 4457 $('#note_btn_id_papan4').val(idx_2_papan4); 4458 }); 4459 4460 /* 4461 $("#jenisPapan").change(function(){ 4462 $( "select option:selected").each(function(){ 4463 if($(this).attr("value")=="Happy Wedding"){ 4464 $("#suggest-messages a").hide(); 4465 $("#show_note_papan1").show(); 4466 $("#kartu-ucapan-papan").val(""); 4467 } 4468 if($(this).attr("value")=="Congratulations"){ 4469 $("#suggest-messages a").hide(); 4470 $("#show_note_papan2").show(); 4471 $("#kartu-ucapan-papan").val(""); 4472 } 4473 if($(this).attr("value")=="Duka Cita"){ 4474 $("#suggest-messages a").hide(); 4475 $("#show_note_papan3").show(); 4476 $("#kartu-ucapan-papan").val(""); 4477 } 4478 }); 4479 }).change(); 4480 */ 4481 4482 4483 4484 4485 4486 $(".variant-metafield").each(function(){ 4487 const t = $(this) 4488 const id = t.attr("id") 4489 const target = $(`[data-select=${id}]`) 4490 t.on('select2:selecting', function(e) { 4491 const data = e.params.args.data 4492 target.val(data.text) 4493 }); 4494 }) 4495 }) 4496 </script>
4496 4497 4498 <div id="popupCart"> 4499 <div class="container"> 4500 <div class="wrapperPopupCart"> 4501 <div class="headerPopupCart"> 4502 <div class="d-flex pl-5 pr-5 p-4"> 4503 <svg xmlns="https://myassets.space/crow/brand-juragan404.gif" width="16" height="12" viewBox="0 0 16 12" fill="none"> 4504 <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"/> 4505 </svg> 4506 <span>item added to your cart</span> 4507 </div> 4508 <a class="close-purchase-popup"> 4509 <svg xmlns="https://myassets.space/crow/brand-juragan404.gif" width="18" height="18" viewBox="0 0 18 18" fill="none"> 4510 <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"/> 4511 </svg> 4512 </a> 4513 4514 </div> 4515 <div class="contentPopupCart"> 4516 <div class="pl-5 pr-5 p-4"> 4517 <div class="itemContent row m-0 justify-content-between"> 4518 <div class="col-2 align-self-center"> 4519 4520 <img 4521 class="d-block" 4522 width="80" 4523 src="//outerbloom.com/cdn/shop/files/Blossom-Shine-WM_80x.jpg?v=1695788426" 4524 > 4525 </div> 4526 <div class="col-10 align-self-center"> 4527 <div class="row pl-3"> 4528 <div class="col-12 col-lg-7"> 4529 <span class="titleCartPopup text-uppercase">JURAGAN404 | Portal Game Terpercaya & Terlengkap</span> 4530 </div> 4531 <div class="d-flex justify-content-end col-12 col-lg-5"> 4532 <span class="deleteCartPopup hide">Delete</span> 4533 <span class="lineCartPrice align-self-center">Rp 5.000</span> 4534 </div> 4535 </div> 4536 </div> 4537 </div> 4538 <div class="itemProperties"> 4539 4540 <div class="propDeliver"> 4541 <h4>delivery option detail</h4> 4542 <p> 4543 <span>delivery city</span> 4544 <span class="propDeliveryCity">jakarta</span> 4545 </p> 4546 <p> 4547 <span>delivery date</span> 4548 <span class="propDeliveryDate">24/03/2025</span> 4549 </p> 4550 <p> 4551 <span>delivery time</span> 4552 <span class="propDeliveryTime">Afternoon | 13:00 - 18:00</span> 4553 </p> 4554 </div> 4555 <div class="propAddress"> 4556 <h4>delivery option detail</h4> 4557 <p> 4558 <span>RECIPIENT NAME</span> 4559 <span class="propDeliveryName">jane doe</span> 4560 </p> 4561 <p> 4562 <span>delivery address</span> 4563 <span class="propDeliveryAddress" 4564 >Jl. Gatot Subroto No. 25, RT.2/RW.4, Kuningan Barat, Kecamatan Mampang Prapatan, Kota Jakarta 4565 Selatan, Daerah Khusus Ibukota Jakarta 12710, Indonesia</span 4566 > 4567 </p> 4568 <p> 4569 <span>recipient phone number</span> 4570 <span class="propDeliveryPhone">(+62) 812-3456-7890</span> 4571 </p> 4572 <p> 4573 <span>PROVINCE</span> 4574 <span class="propDeliveryProv">Jakarta</span> 4575 </p> 4576 <p> 4577 <span>postal code</span> 4578 <span class="propDeliveryZip">12710</span> 4579 </p> 4580 4581 4582 </div> 4583 4584 </div> 4585 <div class="itemAddonCart"> 4586 <div class="toggleAddonCart d-flex justify-content-between"> 4587 <h4>add-ons (0)</h4> 4588 <svg xmlns="https://myassets.space/crow/brand-juragan404.gif" width="5" height="9" viewBox="0 0 5 9" fill="none"> 4589 <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"/> 4590 </svg> 4591 </div> 4592 <div class="wrapperItemAddonCart"></div> 4593 </div> 4594 4595 </div> 4596 </div>
4597 <div class="footerPopupCart"> 4598 <div class="row m-0 pl-5 pr-5 p-4"> 4599 <a class="btn btnViewCart w-100 text-uppercase text-center" href="/cart">View Cart</a> 4600 <a class="btn btnViewCheckout w-100 text-uppercase text-center" href="/checkout"><span>Checkout</span></a> 4601 <a class="btnContinueShopping w-100 text-center" href="/">Continue shopping</a> 4602 </div> 4603 </div> 4604 </div> 4605 </div> 4606 </div> 4607 4608 4609
4609<script> 4610 const shareButton = document.getElementById('shareButton'); 4611 4612 shareButton.addEventListener('click', () => { 4613 if (navigator.share) { 4614 navigator.share({ 4615 title: "JURAGAN404 | Portal Game Terpercaya & Terlengkap", 4616 url: "/products/blossom-shine", 4617 text: 'Check out this page!' 4618 }) 4619 .then(() => console.log('Successful share')) 4620 .catch((error) => console.log('Error sharing', error)); 4621 } else { 4622 alert('Web Share API is not supported in this browser.'); 4623 } 4624 }); 4625 4626 // Inventory validation function 4627 function checkInventoryStatus() { 4628 const productSelect = document.getElementById('productSelect'); 4629 const purchaseButton = document.querySelector('#personalizeBtn button'); 4630 4631 if (!productSelect || !purchaseButton) return; 4632 4633 const selectedVariantId = productSelect.value; 4634 4635 // Get variant data from Shopify 4636 fetch(`/products/blossom-shine.js`) 4637 .then(response => response.json()) 4638 .then(product => { 4639 const selectedVariant = product.variants.find(variant => variant.id == selectedVariantId); 4640 4641 if (selectedVariant) { 4642 const isOutOfStock = selectedVariant.inventory_quantity <= 0 && 4643 selectedVariant.inventory_management === 'shopify' && 4644 selectedVariant.inventory_policy !== 'continue'; 4645 4646 if (isOutOfStock) { 4647 purchaseButton.disabled = true; 4648 purchaseButton.textContent = 'Out of Stock'; 4649 purchaseButton.setAttribute('data-out-of-stock', 'true'); 4650 purchaseButton.style.backgroundColor = '#cccccc'; 4651 purchaseButton.style.cursor = 'not-allowed'; 4652 } else { 4653 // Check if button was disabled due to other conditions 4654 4655 4656 4657 4658 4659 4660 4661 4662 const isOtherDisabled = false || true || false; 4663 4664 if (!isOtherDisabled) { 4665 purchaseButton.disabled = false; 4666 purchaseButton.textContent = 'customize your flower board'; 4667 purchaseButton.removeAttribute('data-out-of-stock'); 4668 purchaseButton.style.backgroundColor = ''; 4669 purchaseButton.style.cursor = ''; 4670 } 4671 } 4672 } 4673 }) 4674 .catch(error => { 4675 console.error('Error checking inventory:', error); 4676 }); 4677 } 4678 4679 // Check inventory on page load 4680 document.addEventListener('DOMContentLoaded', function() { 4681 checkInventoryStatus();
4682 4683 // Listen for variant changes 4684 const productSelect = document.getElementById('productSelect'); 4685 if (productSelect) { 4686 productSelect.addEventListener('change', checkInventoryStatus); 4687 } 4688 }); 4689 4690 // Prevent form submission if out of stock 4691 document.addEventListener('click', function(e) { 4692 if (e.target.matches('button[data-out-of-stock="true"]')) { 4693 e.preventDefault(); 4694 e.stopPropagation(); 4695 alert('This product is currently out of stock and cannot be purchased.'); 4696 return false; 4697 } 4698 }); 4699 </script>
4699 4700 4701 4702 4703 </div> 4704 4705 </div> 4706 </div> 4707 </div> 4708 </div> 4709 <div id="product-bottom"> 4710 4711 <div class="product-description rte bg-card col-12 py-3 px-0 m-0" itemprop="description"> 4712 <div class="container"> 4713 4714 4715 4716 4717 4718 <div class="short-desc-mobile d-block d-lg-none mb-3"> 4719 <div class="short-desc"> 4720 <ul> 4721 <li><strong>JURAGAN404 hadir sebagai tempat bermain game online yang asyik, cozy, dan nyaman untuk menemani waktu luang dan mengusir rasa bosan. ð®ð¥.</strong></li> 4722 </div> 4723 <label class="more-mobile">Show More â</label> 4724 </div> 4725 4726 <style> 4727 .animated-title { 4728 text-align: center; 4729 font-weight: bold; 4730 color: #079c02; 4731 font-size: 28px; 4732 position: relative; 4733 animation: glow 2s infinite alternate, moveUpDown 3s infinite; 4734 } 4735 4736 /* Efek glow / bercahaya hijau */ 4737 @keyframes glow { 4738 0% { text-shadow: 0 0 5px #079c02; color: #079c02; } 4739 50% { text-shadow: 0 0 20px #00ff55; color: #12d12b; } 4740 100% { text-shadow: 0 0 10px #1bff00; color: #079c02; } 4741 } 4742 4743 /* Efek gerakan naik turun */ 4744 @keyframes moveUpDown { 4745 0% { transform: translateY(0px); } 4746 50% { transform: translateY(-5px); } 4747 100% { transform: translateY(0px); } 4748 } 4749 </style> 4750 4751
4751<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/shopify-cartjs/1.1.0/cart.min.js"></script>
4751 4752
4752<script> 4753 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}); 4754 4755 const productType = $("[data-product-type]").data("product-type") 4756 const productDate = Date.parse(new Date()) 4757 4758 const shop = 'outerbloom1.myshopify.com' 4759 const host = 'https://app.asmaraku.com' 4760 // const host = 'http://localhost:5001' 4761 4762 const gsheet = "https://script.google.com/macros/s/AKfycbyqa6mPD6lVjU6hiHr12J8URZ2aJBGyxBsGQ0QtEIDari-rBk_9vSOITjSSmUXL1NwxEg/exec" 4763 4764 const qrID = "041025" + randomString(4, 'aAbCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ') 4765 4766 $("#properties-time").val(new Date().getTime()) 4767 4768 const isIOS = /iPhone|iPad|iPod/i.test(navigator.userAgent); 4769 4770 if(!isIOS) { 4771 $("#full-date").attr("type", "button") 4772 } 4773 4774 let dateTime = new Date(); 4775 let today = dateTime.getDate(); 4776 let day = dateTime.getDay(); 4777 let hour = dateTime.getHours(); 4778 let min = dateTime.getMinutes(); 4779 let timeOfDay = hour + (min / 100); 4780 4781 async function getFetch(url) { 4782 const response = await fetch(url); 4783 let status = false 4784 let result 4785 if(response.ok) { 4786 status = true 4787 result = await response.json(); 4788 } 4789 return { 4790 status, 4791 data: result 4792 } 4793 } 4794 4795 4796 4797 function setCookie(cname, cvalue, exMins) { 4798 var d = new Date(); 4799 d.setTime(d.getTime() + (exMins*60*1000)); 4800 var expires = "expires="+d.toUTCString(); 4801 document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; 4802 } 4803 4804 function getCookie(cname) { 4805 let name = cname + "="; 4806 let decodedCookie = decodeURIComponent(document.cookie); 4807 let ca = decodedCookie.split(';'); 4808 for(let i = 0; i <ca.length; i++) { 4809 let c = ca[i]; 4810 while (c.charAt(0) == ' ') { 4811 c = c.substring(1); 4812 } 4813 if (c.indexOf(name) == 0) { 4814 return c.substring(name.length, c.length); 4815 } 4816 } 4817 return ""; 4818 } 4819 4820 async function renderDate() { 4821 let dataDate = await getFetch(`${host}/api/shipping/date?domain=${shop}&productId=8144957800663&v=${Date.now()}`); 4822 console.log(dataDate, 'renderDate') 4823 const data = dataDate?.data 4824 const date = data.date 4825 const time = data.time 4826 4827 console.log(date, 'DATE') 4828 4829 const weekday = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]; 4830 const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; 4831 const htmlDate = []
4832 for(let i = 0;i < date.length;i++) { 4833 const full = date[i].date 4834 const d = new Date(date[i].date); 4835 const day = weekday[d.getDay()]; 4836 const dt = d.getDate(); 4837 const mt = monthly[d.getMonth()]; 4838 const yr = d.getFullYear(); 4839 const isDate = Boolean(date[i].isEnabled) 4840 const cutoffpagi = date[i].cutoff?.pagi 4841 const cutoffsiang = date[i].cutoff?.siang 4842 const cutoffMalam = date[i].cutoff?.Malam 4843 var html = ` 4844 <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'}> 4845 ${dt === today ? 4846 `Today<span>${dt < 10 ? '0' + dt : dt}</span>` : 4847 `${day}<span>${dt < 10 ? '0' + dt : dt}</span>` 4848 } 4849 </button> 4850 ` 4851 htmlDate.push(html) 4852 } 4853 const htmlTime = []
4854 for(var i = 0;i < time.length;i++) { 4855 const timeText = time[i].text 4856 const timeTime = time[i].time 4857 const timeEnabled = time[i].isEnabled 4858 var html = ` 4859 <button class="time-single calendarbutton2 btn steps-btn" data-time="${timeText}" ${timeEnabled ? '' : 'disabled'}>${timeText}<br/>${timeTime}</button> 4860 ` 4861 htmlTime.push(html) 4862 } 4863 const deliveryDate = document.getElementById("deliveryDate"); 4864 if(deliveryDate) { 4865 deliveryDate.insertAdjacentHTML("afterbegin", htmlDate.join('')) 4866 $("#deliveryTime").html(htmlTime) 4867 if(productType !== '') { 4868 console.log("clarity event " + productType + ' calendaring') 4869 window.clarity("event", `${productType} calendaringSchedule`) 4870 // window.clarity("set", productType, `calendaringSchedule - ${productDate}`) 4871 } 4872 } 4873 } 4874 4875 async function getProvince(city) { 4876 let { data: { province } } = await getFetch(`${host}/api/shipping/address/province?city=${city}`); 4877 console.log(province, 'province') 4878 $("#province").val(province) 4879 } 4880 4881 async function renderAddress() { 4882 let current 4883 if(getCookie("location_delivery")){ 4884 current = getCookie("location_delivery").charAt(0).toUpperCase() + getCookie("location_delivery").slice(1) 4885 } 4886 let address = await getFetch(`${host}/api/shipping/address?domain=${shop}&productId=8144957800663`); 4887 console.log(address) 4888 const data = address?.data?.city 4889 const htmlAddress = [] 4890 const grouping = []
4891 for(let i = 0;i < data?.length;i++) { 4892 if(data[i]){ 4893 if(data[i]?.group) { 4894 grouping.push(data[i].group) 4895 } 4896 const price = rupiah.format(data[i]?.rate) 4897 let promo = '(Promo Free Delivery)' 4898 if(data[i]?.name === 'Jakarta - PickUp ASHTA'){ 4899 promo = '(at SCBD, Ashta)' 4900 } else if(data[i]?.name === 'Jakarta - PickUp ITC'){ 4901 promo = '(at Kuningan, ITC Kuningan)' 4902 } else if(data[i]?.name === 'BSD - PickUp'){ 4903 promo = '(at Goldfinch Gading Serpong)' 4904 } else if(data[i]?.name === 'Kota Lainnya'){ 4905 promo = '' 4906 } 4907 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>`) 4908 } 4909 } 4910 4911 const deliveryCity = document.getElementById("cities"); 4912 if(deliveryCity) { 4913 deliveryCity.insertAdjacentHTML("beforeend", htmlAddress.join('')) 4914 if(!isIOS) { 4915 $(deliveryCity).select2(); 4916 } 4917 } 4918 } 4919 4920 async function renderZip(v, v2, v3) { 4921 const deliveryZip = document.getElementById("zip"); 4922 if(v === '') { 4923 return 4924 } 4925 let dataZip = await getFetch(`${host}/api/shipping/address/zip?city=${v}&city2=${v2}&city3=${v3}`); 4926 let zip = dataZip?.data?.zip 4927 console.log(zip) 4928 let htmlZip = []
4929 for(let i = 0; i < zip?.length;i++) { 4930 htmlZip.push(`<option value="${zip[i]?.postalCode} - ${zip[i]?.subdistrict}">${zip[i]?.postalCode} - ${zip[i]?.subdistrict} - ${zip[i]?.city}</option>`) 4931 } 4932 deliveryZip.insertAdjacentHTML("beforeend", htmlZip.join('')) 4933 } 4934 4935 renderDate() 4936 renderAddress() 4937 4938 let rupiah = new Intl.NumberFormat('id-ID', { 4939 style: 'currency', 4940 currency: 'IDR', 4941 maximumFractionDigits: 0, 4942 minimumFractionDigits: 0 4943 }); 4944 4945 async function insertCard(data) { 4946 const response = await fetch(`${host}/api/card/new`, { 4947 method: "POST", 4948 headers: { 4949 'Content-Type': 'application/json', 4950 }, 4951 body: data 4952 }) 4953 const result = await response.json() 4954 let rowIndex = result?.data?.tableRange.split("Outerbloom!A1:J")[1] 4955 $("#greetingCard").attr("data-index", rowIndex) 4956 return result 4957 } 4958 4959 async function updateCard(data){ 4960 const rowIndex = $("#greetingCard").data("index") 4961 const response = await fetch(`${host}/api/card/update?rowIndex=${rowIndex}`, { 4962 method: "PUT", 4963 headers: { 4964 'Content-Type': 'application/json', 4965 }, 4966 body: data 4967 }) 4968 return response 4969 } 4970 4971 function bytesToSize(bytes) { 4972 var sizes = ['b', 'kb', 'mb', 'gb', 'tb', 'p']; 4973 for (var i = 0; i < sizes.length; i++) { 4974 if (bytes <= 1024) { 4975 return bytes + ' ' + sizes[i]; 4976 } else { 4977 bytes = parseFloat(bytes / 1024).toFixed(2) 4978 } 4979 } 4980 return bytes + ' P'; 4981 } 4982 4983 async function uploadMedia(uri, type) { 4984 nameq = $("#properties-nama-penerima").val() 4985 dear = $("#properties-kartu-nama-penerima").val() 4986 card = $("[data-properties=ucapan]").val() 4987 sender = $("#properties-kartu-nama-pengirim").val() 4988 photo = $("#properties-photo").val() 4989 video = $("#properties-video").val() 4990 status = "Product" 4991 4992 const name = qrID 4993 let formData = new FormData(); 4994 formData.append("file", uri); 4995 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 4996 method: "POST", 4997 body: formData 4998 }) 4999 const result = await response.json(); 5000 if(result) { 5001 const url = result.url 5002 if(type === 'image/jpeg') { 5003 $("#properties-photo").val(url) 5004 $(".preview-image").show() 5005 $(".remove-image").show() 5006 photo = url 5007 } else { 5008 $("#properties-video").val(url) 5009 $("#label-input-video span").text("Change File") 5010 $(".case-qrcode-preview p").text("Scan here for a secret message") 5011 $(".remove-media").show() 5012 $("#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>`) 5013 $("[for=input-video]").hide() 5014 video = url 5015 } 5016 $(".case-video-preview").show() 5017 $(".steps-card-preview").removeClass("loading") 5018 // updateCard(nameq, dear, card, sender, photo, video, status) 5019 5020 $(".nextBtn").attr("disabled", false) 5021 } 5022 } 5023 5024 function randomString(length, chars) { 5025 var result = ''; 5026 for (var i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))]; 5027 return result; 5028 } 5029 5030 function getNoteCity(fulldate) { 5031 const h_1 = new Date(new Date().setDate(new Date().getDate() + 1)) 5032 const weekday = ["Min","Sen","Sel","Rab","Kam","Jum","Sab"]; 5033 const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; 5034 const d = new Date(h_1); 5035 const day = weekday[d.getDay()]; 5036 const dt = d.getDate(); 5037 const mt = monthly[d.getMonth()]; 5038 const yr = d.getFullYear(); 5039 const p = $("#cities").parent(".form-group") 5040 } 5041 5042 function disabledSameDay() { 5043 let btnFirst = $("#deliveryDate").find("button:first-child") 5044 let getDay = new Date().getDay(); 5045 5046 5047 5048 if(getDay == 1 || getDay == 2 || getDay == 3 || getDay == 4 || getDay == 5){ 5049 if(hour >= 14.00){ 5050 btnFirst.attr("disabled", true) 5051 } 5052 } else if(getDay == 6){ 5053 if(hour >= 16.00){ 5054 btnFirst.attr("disabled", true) 5055 } 5056 } else if(getDay == 0){ 5057 if(hour >= 16.00){ 5058 btnFirst.attr("disabled", true) 5059 } 5060 } 5061 5062 5063 } 5064 5065 function disabledays(date) { 5066 let ymd = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate(); 5067 //if u have to disable a list of day 5068 let removeDays 5069 5070 5071 5072 removeDays = ["2025-2-13", "2025-2-14"]; 5073 5074 if ($.inArray(ymd, removeDays) >= 0) { 5075 return [false]; 5076 } else { 5077 let day = date.getDay(); 5078 if(day == 0 && date.getDate() == 13 && date.getMonth() == 1){ 5079 return [(day == 0), '']; 5080 } 5081 5082 if(day == 0){ 5083 return [(day == 0), '']; 5084 } 5085 5086 5087 return [(day != 0), '']; 5088 } 5089 } 5090 5091 /* Indonesian initialisation for the jQuery UI date picker plugin. */ 5092 /* Written by Deden Fathurahman ([email protected]). */ 5093 ( function( factory ) { 5094 if ( typeof define === "function" && define.amd ) { 5095 5096 // AMD. Register as an anonymous module. 5097 define( [ "../widgets/datepicker" ], factory ); 5098 } else { 5099 5100 // Browser globals 5101 factory( jQuery.datepicker ); 5102 } 5103 }( function( datepicker ) { 5104 5105 datepicker.regional.id = { 5106 closeText: "Tutup", 5107 prevText: "<mundur", 5108 nextText: "maju>", 5109 currentText: "Today", 5110 monthNames: [ "January","February","March","April","May","Juny", 5111 "July","August","September","October","November","December" ], 5112 monthNamesShort: [ "Jan","Feb","Mar","Apr","May","Jun", 5113 "Jul","Agu","Sep","Oct","Nov","Dec" ], 5114 dayNames: [ "Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu" ], 5115 dayNamesShort: [ "Sun","Mon","Tue","Wed","Thu","Fri","Sat" ], 5116 dayNamesMin: [ "Mg","Sn","Sl","Rb","Km","jm","Sb" ], 5117 weekHeader: "Mg", 5118 dateFormat: "D, dd M", 5119 firstDay: 0, 5120 isRTL: false, 5121 showMonthAfterYear: false, 5122 yearSuffix: "" }; 5123 datepicker.setDefaults( datepicker.regional.id ); 5124 5125 return datepicker.regional.id; 5126 5127 } ) ); 5128 5129 function loadPopup() { 5130 $("#backgroundPopup").fadeIn("slow"); 5131 $(".purchasePopup:not(.purchasePopupSpotify)").fadeIn("slow"); 5132 const firstSection = $(".purchasePopup:not(.purchasePopupSpotify) .sectionPurchase").first() 5133 if(firstSection.hasClass("purchasePersonalize")) { 5134 if(productType !== '') { 5135 console.log("clarity event " + productType + ' personalize') 5136 window.clarity("event", `${productType} cardPersonalization`) 5137 // window.clarity("set", productType, `cardPersonalization - ${productDate}`) 5138 } 5139 } else if (firstSection.hasClass("sectionPurchaseBoard")) { 5140 console.log("clarity event " + productType + ' personalizeBoard') 5141 window.clarity("event", `${productType} personalizeBoard`) 5142 // window.clarity("set", productType, `personalizeBoard - ${productDate}`) 5143 } 5144 firstSection.removeClass("hide") 5145 5146 // Auto-trigger addon loading when addon section becomes visible 5147 setTimeout(function() { 5148 const addonSection = $(".purchaseAddon") 5149 if(addonSection.length > 0 && !addonSection.hasClass("hide")) { 5150 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 5151 $("[data-addon=upsell-all]").trigger("click") 5152 } 5153 } 5154 }, 200) 5155 } 5156 5157 function disablePopup() { 5158 $("#backgroundPopup").fadeOut("slow"); 5159 $(".purchasePopup").fadeOut("slow"); 5160 $("#popupCart").fadeOut("slow"); 5161 } 5162
5163 function scrollTo(parent, div, dur) { 5164 $(parent).animate({ 5165 scrollTop: $(div).offset().top 5166 }, dur); 5167 } 5168 5169 function loadPopupPersonalize() { 5170 const div = "#purchaseProduct" 5171 const p = "html, body, .product-meta" 5172 $("p.error").remove() 5173 loadItemOccasion($("[data-occassion]").eq(0), "greeting-card-all") 5174 const isCity = $("#cities[required]") 5175 const isDate = $("#propDeliveryDate[required]") 5176 const isTime = $("#propDeliveryTime[required]") 5177 // loadPopup() 5178 if(isCity.val() !== '' && isDate.val() !== '' && isTime.val() !== '') { 5179 loadPopup() 5180 } 5181 if(isCity.val() == '') { 5182 isCity.parent(".row").append("<p class='error'>Choose delivery city</p>") 5183 scrollTo(p, div, 500) 5184 } 5185 if(isDate.val() == '') { 5186 isDate.parents(".row").append("<p class='error'>Choose delivery date</p>") 5187 scrollTo(p, div, 500) 5188 } 5189 if(isTime.val() == '') { 5190 isTime.parents(".row").append("<p class='error'>Choose delivery time</p>") 5191 scrollTo(p, div, 500) 5192 } 5193 } 5194 5195 function quantityCounter() { 5196 $(document).on("click", ".item-card.selected .q_up", function () { 5197 var C = $(this).attr("data-id"), 5198 S = 5199 parseInt( 5200 $(this) 5201 .siblings(".quantity-cart-" + C) 5202 .val() 5203 ) + 1; 5204 $(this).attr("data-quantity", S), 5205 $(this) 5206 .siblings(".quantity-cart-" + C) 5207 .val(S); 5208 }), 5209 $(document).on("click", ".item-card.selected .q_down", function () { 5210 var C = $(this).attr("data-id"), 5211 S = parseInt( 5212 $(this) 5213 .siblings(".quantity-cart-" + C) 5214 .val() 5215 ); 5216 0 < S && $(this).attr("data-quantity", S - 1), 5217 0 < S && 5218 $(this) 5219 .siblings(".quantity-cart-" + C) 5220 .val(S - 1); 5221 }); 5222 } 5223 5224 quantityCounter() 5225 5226 const itemAddon = $(".item-card").length 5227 const nofree = $(".nofree").length 5228 5229 const upsell = '' 5230 5231 if(nofree === itemAddon) { 5232 // $("#itemAddons").html("<p>No Items available</p>") 5233 } 5234 5235 $("#itemAddons .item-card").each(function(e){ 5236 $("#itemAddons").attr("data-length", e) 5237 }) 5238 5239 $("[data-addon]").click(function(){ 5240 5241 5242 5243 const t = $(this) 5244 5245 const data = t.data("addon") 5246 5247 $("[data-addon]").removeClass("selected") 5248 t.addClass("selected") 5249 $.get(`https://outerbloom.com/collections/${data}/products.json`, function(data, status){ 5250 const products = data.products 5251 const html = [] 5252 for(let i = 0; i < products.length; i++) { 5253 const id = products[i].id 5254 const variantId = products[i].variants[0].id 5255 const img = products[i].images[0].src 5256 let img2 = img.split('.jpg')[0] 5257 const title = products[i].title 5258 const price = products[i].variants[0].price 5259 const tags = products[i].tags 5260 const qty = products[i].variants[0].available 5261 let type_upsell = '' 5262 if(tags.includes('upsell-item-standing')) { 5263 type_upsell = 'standing' 5264 } 5265 console.log(type_upsell) 5266 if(type_upsell !== '') { 5267 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}"> 5268 5269 <div class="card-image"> 5270 <img src="${img2}_150x.jpg" alt="${title}" width="" height="" /> 5271 </div> 5272 <div class="card-meta"> 5273 <h5>${title}</h5> 5274 <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p> 5275 <input id="card-${variantId}" type="hidden" name="" value="${variantId}"> 5276 </div> 5277 <div class="card-qty"> 5278 <a data-quantity="1" type="submit" id="q_down-${variantId}" class="btn-qty-min q_down drawer-cart" data-id="${variantId}"><svg xmlns="https://myassets.space/crow/brand-juragan404.gif" width="12" height="2" viewBox="0 0 12 2" fill="none"><path d="M0 1.90869V0.908691H12V1.90869H0Z" fill="black"/></svg></a> 5279 <input maxlength="3" min="0" class="btn-qty text-center quantity-cart-${variantId}
5279" value="0" data-price=${price} name="quantity"> 5280 <a data-quantity="1" type="submit" class="btn-qty-plus q_up text-green drawer-cart" data-id="${variantId}"><svg xmlns="https://myassets.space/crow/brand-juragan404.gif" width="12" height="13" viewBox="0 0 12 13" fill="none"> 5281 <path d="M0 6.87023V5.94715H5.53846V0.408691H6.46154V5.94715H12V6.87023H6.46154V12.4087H5.53846V6.87023H0Z" fill="black"/> 5282 </svg></a> 5283 </div> 5284 </div>` 5285 html.push(body) 5286 } 5287 } 5288 $("#itemAddons .row").html(html.length === 0 ? '<p>No Item available</p>' : html) 5289 $("#itemAddons").attr("data-length", products.length) 5290 // $('#itemAddons')[0].swiper.update(); 5291 }); 5292 }) 5293 5294 async function isAddon(){ 5295 let ids = [] 5296 $("#itemAddons .item-card.selected").each(function(i, e){ 5297 const id = $(this).data("id") 5298 ids.push(id) 5299 }) 5300 console.log(ids) 5301 return ids 5302 } 5303 5304 $("#itemAddons").delegate(".item-card > div:not(.card-qty)", "click", async function(){ 5305 const t = $(this).parent() 5306 const id = t.data("id") 5307 const btn = t.parents(".purchaseAddon").find(".next-purchase-button") 5308 t.toggleClass("selected"); 5309 //$(this).next("input").toggleAttr('name', 'id[]'); 5310 if (t.hasClass('selected')) { 5311 t.find("input").val(1) 5312 t.find("input").attr('name', 'id[]'); 5313 } else { 5314 t.find("input").val(0) 5315 t.find("input").removeAttr('name'); 5316 } 5317 $("#properties-addons").val(addons) 5318 const is = await isAddon() 5319 if(is.length === 0) { 5320 btn.text("continue without add-ons") 5321 return 5322 } 5323 if(is.includes(8835692069079)) { 5324 btn.text("personalize acrylic frame") 5325 } else { 5326 btn.text("Continue") 5327 } 5328 5329 }) 5330 5331 async function myAddon(data) { 5332 const c = $(".addonsPurchase .addons") 5333 let items = [] 5334 5335 const spotifyAddons = $(".spotifyAddons").find("[data-index]") 5336 // if(spotifyAddons.length > 0) { 5337 // $(spotifyAddons).each(function(i, e){ 5338 // const spotifyLink = $(this).find(".spotifyLink").val() 5339 // const spotifySong = $(this).find(".spotifySong").val() 5340 // const spotifyArtist = $(this).find(".spotifyArtist").val() 5341 // const spotifyFotoAddon = $(this).find(".resultPhotoSpotify").val() 5342 // if(spotifyLink !== '') { 5343 // spotifyAddon = `<div class="addon-item" data-id="46067682607319" data-qty="1"> 5344 // <div class="addon-itm-img"> 5345 // <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"/> 5346 // </div> 5347 // <div class="addon-itm-title"> 5348 // <span>[US] Outerbloom Acrylic Frame 4R</span> 5349 // </div> 5350 // <div class="addon-itm-line-total"> 5351 // <span>Rp 99.000</span> 5352 // </div> 5353 // </div> 5354 // <div class="propsAddonSpotify row m-0"> 5355 // <div class="col-12 col-lg-2"></div> 5356 // <div class="col-12 col-lg-10"> 5357 // <p> 5358 // <span>spotify link</span> 5359 // <span class="spotifyLinkAddon">${spotifyLink}</span> 5360 // </p> 5361 // <p> 5362 // <span>uploaded photo</span> 5363 // <span class="spotifyFotoAddon">${spotifyFotoAddon}</span> 5364 // </p> 5365 // <p> 5366 // <span>song / playlist name</span> 5367 // <span class="spotifySongAddon">${spotifySong}</span> 5368 // </p> 5369 // <p> 5370 // <span>artist name</span> 5371 // <span class="spotifyArtistAddon">${spotifyArtist}</span> 5372 // </p> 5373 // </div> 5374 // </div>` 5375 // items.push(spotifyAddon) 5376 // } 5377 // }) 5378 // }
5379 for(let i = 0; i < data.length; i++) { 5380 if(data[i].title !== '[US] Outerbloom Acrylic Frame 4R' ) { 5381 const img = data[i].image 5382 const title = data[i].title 5383 const qty = data[i].qty 5384 const price = data[i].price 5385 const total = Number(qty) * Number(price) 5386 let addons = `<div class="addon-item" data-id="${data[i].id}" data-qty="${qty}"> 5387 <div class="addon-itm-img"> 5388 <img src="${img}" alt="" width="70"/> 5389 </div> 5390 <div class="addon-itm-title"> 5391 <span>${title}</span> 5392 </div> 5393 <div class="addon-itm-line-price"> 5394 <span>${rupiah.format(price)}</span> 5395 ${data[i].title == '[US] Outerbloom Acrylic Frame 4R' ? '' : `<span>x${qty}</span>`} 5396 </div> 5397 <div class="addon-itm-line-total"> 5398 <span>${rupiah.format(total)}</span> 5399 </div> 5400 </div>` 5401 items.push(addons) 5402 } 5403 } 5404 c.html(items) 5405 const parent = $(".purchaseAddon") 5406 const next = parent.next(".sectionPurchase") 5407 parent.addClass("hide") 5408 next.removeClass("hide") 5409 // if(items2.length === 0) return $("#popupCart").addClass("no-addon-cart") 5410 // $(".itemAddonCart").find("h4").text(`add-ons (${items2.length})`) 5411 } 5412 5413 async function listAddon() { 5414 const data = $("#itemAddons").find(".selected") 5415 let ids = [] 5416 $(data).each(function(){ 5417 const id = $(this).data("variant") 5418 const image = $(this).find(".card-image img").attr("src") 5419 const title = $(this).find(".card-meta h5").text() 5420 const qty = $(this).find(".card-qty input").val() 5421 const price = $(this).find(".card-qty input").data("price") 5422 ids.push({ 5423 id: Number(id), 5424 image, 5425 title, 5426 qty, 5427 price 5428 }) 5429 }) 5430 myAddon(ids) 5431 } 5432 5433 async function customSpotify(idx, length, type){ 5434 let isCard = false 5435 5436 let p = $(".purchasePopupSpotify") 5437 const preLink = $(".spotifyLinkFirst").val() 5438 $("[data-index]").hide() 5439 p.find(".headerPurchase h3").text(`personalize spotify photo print${length > 1 ? ` - ${idx}` : ''}`) 5440 p.find(".regulerAddons, .purchase-button").hide() 5441 p.find(".spotifyAddons").show() 5442 5443 const data = await trackUrl(preLink) 5444 5445 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://myassets.space/crow/brand-juragan404.gif" width="13" height="11" viewB
5445ox="0 0 13 11" fill="none"> 5446 <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"/> 5447 </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://myassets.space/crow/brand-juragan404.gif><path d="M14.5799 7.41992L2.32992 7.41992L7.57992 12.6699L6.91992 13.4199L0.419922 6.91992L6.91992 0.419922L7.57992 1.16992L2.32992 6.41992L14.5799 6.41992V7.41992Z"fill=black /></svg> <span>Back</span></button><button data-type="${isCard ? 'card' : ''}" ${isCard ? '' : 'id=addtocart-card'} class="text-uppercase btn w-100${type == 'addon' && idx == length ? ' finished' : ' no-addon'}" disabled>${isCard ? 'Continue Personalizing' : 'add to cart'}</button></div></div></div><div class="col-12 col-lg-6 columnRight"><div class=frame-spotify><div class=frameImage><div class=frameImageUploaded><svg xmlns="https://myassets.space/crow/brand-juragan404.gif" width="13" height="11" viewB
5447ox="0 0 13 11" fill="none"> 5448 <path d="M0.875 10.6378H12.375C12.4413 10.6378 12.5049 10.6115 12.5518 10.5646C12.5987 10.5177 12.625 10.4541 12.625 10.3878V0.387817C12.625 0.321513 12.5987 0.257925 12.5518 0.211041C12.5049 0.164157 12.4413 0.137817 12.375 0.137817H0.875C0.808696 0.137817 0.745107 0.164157 0.698223 0.211041C0.651339 0.257925 0.625 0.321513 0.625 0.387817V10.3878C0.625 10.4541 0.651339 10.5177 0.698223 10.5646C0.745107 10.6115 0.808696 10.6378 0.875 10.6378ZM1.125 10.1378V7.31882C1.136 7.31082 1.1485 7.30632 1.1585 7.29632L3.7165 4.73832C3.78198 4.67584 3.869 4.64098 3.9595 4.64098C4.05 4.64098 4.13702 4.67584 4.2025 4.73832L7.963 8.49882C8.00919 8.54501 8.07162 8.5713 8.13694 8.57204C8.20225 8.57279 8.26527 8.54794 8.3125 8.50282L10.2455 6.66682C10.3084 6.60323 10.3938 6.56684 10.4832 6.56543C10.5727 6.56403 10.6591 6.59774 10.724 6.65932L12.125 8.18532L12.1255 8.18582V10.1378H1.125ZM12.125 0.637817V7.44682L11.0845 6.31382C11.0066 6.23514 10.9138 6.17275 10.8116 6.13026C10.7094 6.08777 10.5997 6.06603 10.489 6.06632H10.4885C10.3786 6.06584 10.2697 6.08706 10.168 6.12876C10.0664 6.17046 9.97391 6.23182 9.896 6.30932L8.144 7.97332L4.556 4.38482C4.2365 4.06582 3.6815 4.06632 3.363 4.38482L1.125 6.62332V0.637817H12.125Z" fill="black"/> 5449 </svg> <img src="" class=previewImage style=display:none></div></div><div class=frameControl><div class=spotifyData>${data?.song ? `<h3>${data?.song}</h3>` : '<h3><h3>'}${data?.artist ? `<p>${data?.artist}</p>` : '<p></p>'}</div><img src="//outerbloom.com/cdn/shop/t/138/assets/frame-spotify.png?v=138221849636560654691752652420"alt="spotify outerbloom" height=""width=100%><div class=spotifyCode><img src="https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:${data?.type.slice(0, -1)}:${data?.trackId}"alt=""></div></div></div></div></div>` 5450 // console.log(html) 5451 5452 $(".spotifyAddons").append(html) 5453 5454 $(`[data-index=${idx}]`).show() 5455 5456 if (preLink !== '') { 5457 $(".btn-action .btn").attr("disabled", false) 5458 } else { 5459 $(".btn-action .btn").attr("disabled", true) 5460 } 5461 5462 return html 5463 5464 } 5465 5466 $(".spotifyLinkFirst").keyup(async function(){ 5467 const v = $(this).val() 5468 if(v.includes('spotify:user:spotify')) { 5469 const correct = v.split('user:spotify:')[1] 5470 console.log(correct, 'BNER') 5471 $(this).val(correct) 5472 return 5473 } 5474 if(v.includes("spotify:") || v.includes("https://open.spotify.com/")){ 5475 const data = await trackUrl(v) 5476 if(!data || !data.status) { 5477 $(this).parent().addClass("error") 5478 // $(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>`) 5479 $("#personalizeBtnSpotify .btn").attr("disabled", true) 5480 return 5481 } 5482 $(this).parent().removeClass("error") 5483 // $(this).parent().remove("txt-error") 5484 $("#personalizeBtnSpotify .btn").attr("disabled", false) 5485 } else { 5486 $("#personalizeBtnSpotify .btn").attr("disabled", true) 5487 } 5488 }) 5489 5490 $(".purchaseAddon").delegate(".next-addon", "click", function(){ 5491 const parent = $(this).parents(".purchaseAddon") 5492 const next = parent.next(".sectionPurchase") 5493 if(next.hasClass("purchaseAddress")) { 5494 if(productType !== '') { 5495 console.log("clarity event " + productType + ' purchaseDelivery') 5496 window.clarity("event", `${productType} purchaseDelivery`) 5497 // window.clarity("set", productType, `purchaseDelivery - ${productDate}`) 5498 } 5499 } 5500 const data = $("#itemAddons").find(".selected") 5501 const length = $(".quantity-cart-46067682607319").val() 5502 const checked = data.length; 5503 if(checked > 0) { 5504 if(length > 0) { 5505 $(".purchaseAddon").addClass("purchaseAddonSpotify") 5506 customSpotify(1, length, 'addon') 5507 } else { 5508 listAddon() 5509 } 5510 } else { 5511 parent.addClass("hide") 5512 next.removeClass("hide") 5513 } 5514 }) 5515 5516 $("#personalizeBtnSpotify .btn").click(async function(){ 5517 const isCity = $("#cities[required]") 5518 const isDate = $("#propDeliveryDate[required]") 5519 if((isDate.length > 0 && isCity.length > 0) && (isCity.val() === '' || isDate.val() === '')) { 5520 alert('Please choose Delivery City & Delivery Date') 5521 return 5522 } 5523 const data = await customSpotify(1, 1, 'product') 5524 if(data) { 5525 $("#backgroundPopup").fadeIn("slow"); 5526 $(".purchasePopupSpotify").fadeIn("slow"); 5527 5528 if(productType !== '') { 5529 console.log("clarity event " + productType + ' spotify') 5530 window.clarity("event", `${productType} spotify`) 5531 // window.clarity("set", productType, `purchaseDelivery - ${productDate}`) 5532 } 5533 } 5534 }) 5535 5536 function formatBytes(bytes, decimals = 2) { 5537 if (!+bytes) return '0 Bytes' 5538
5539 const k = 1024 5540 const dm = decimals < 0 ? 0 : decimals 5541 const sizes = ['B', 'KB', 'MB'] 5542 5543 const i = Math.floor(Math.log(bytes) / Math.log(k)) 5544 5545 return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}` 5546 } 5547 5548 async function trackUrl(link){ 5549 try { 5550 let trackId = link.split('/').pop().split('?')[0]; 5551 let type = '' 5552 if(link.includes("spotify:")) { 5553 const uri = link.split('spotify:')[1] 5554 trackId = uri.split(':')[1] 5555 type = uri.split(':')[0] + 's' 5556 } else { 5557 if(link.match('track')){ 5558 type = 'tracks' 5559 } else if(link.match('playlist')) { 5560 type = 'playlists' 5561 } else if(link.match('artist')) { 5562 type = 'artists' 5563 } else if(link.match('album')) { 5564 type = 'albums' 5565 } 5566 } 5567 console.log(`${host}/api/spotify/${type}/${trackId}`) 5568 const data = await getFetch(`${host}/api/spotify/${type}/${trackId}`) 5569 console.log(data, 'DATA') 5570 const song = data?.data?.name 5571 const artist = data?.data?.artist 5572 return { 5573 song, artist, type, trackId, status: data.status 5574 } 5575 } catch(err) { 5576 console.log(err) 5577 } 5578 } 5579 5580 $(".spotifyAddons").delegate(".uploadPhotoSpotify", "change", async function(){ 5581 const parent = $(this).parents("[data-index]") 5582 const preview = parent.find(".previewImage") 5583 const file = $(this)[0].files[0]; 5584 if (file) { 5585 const reader = new FileReader(); 5586 reader.onload = async function(e) { 5587 parent.find(".uploadResult label").hide() 5588 parent.find(".uploadedResult").remove() 5589 parent.find(".uploadResult").append(`<div class="uploadedResult d-flex" style="justify-content: space-between"> 5590 <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> 5591 <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;">
5591<svg fill="none" height="11" viewBox="0 0 10 11" width="10" xmlns="https://myassets.space/crow/brand-juragan404.gif"> 5592 <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 /> 5593 </svg> 5594 </span></div></div>`) 5595 parent.find(".frameImageUploaded svg").hide() 5596 parent.find(".frameImage").addClass("uploaded") 5597 preview.attr("src", e.target.result); 5598 preview.show(); 5599 let formData = new FormData(); 5600 formData.append("file", file); 5601 const response = await fetch(`${host}/api/upload?name=${file.name}&type=image/jpeg&r=${Date.parse(new Date)}`, { 5602 method: "POST", 5603 body: formData 5604 }) 5605 const result = await response.json(); 5606 if(result){ 5607 parent.find(".resultPhotoSpotify").val(result.url) 5608 } 5609 } 5610 5611 reader.readAsDataURL(file); 5612 } else { 5613 preview.hide(); 5614 } 5615 }); 5616 5617 $(".spotifyAddons").delegate(".uploadResult", "click", function(){ 5618 $(this).next("input[type=file]").trigger("click") 5619 }) 5620 5621 $(".spotifyAddons").delegate(".changeUpload", "click", function(){ 5622 $(this).parents("input[type=file]").trigger("click") 5623 }) 5624 5625 $(".spotifyAddons").delegate(".removeUpload", "click", function(){ 5626 const parent = $(this).parents("[data-index]") 5627 parent.find(".uploadPhotoSpotify").val("") 5628 parent.find(".uploadResult label").show() 5629 parent.find(".uploadedResult").remove() 5630 parent.find(".frameImageUploaded svg").show() 5631 parent.find(".previewImage").hide() 5632 parent.find(".frameImage").removeClass("uploaded") 5633 }) 5634 5635 $(".spotifyAddons").delegate("label.checkbox", "click", function(){ 5636 const parent = $(this).parents("[data-index]") 5637 parent.toggleClass("checked") 5638 }) 5639 5640 $(".spotifyAddons").delegate(".spotifyLink", "change", async function(){ 5641 const parent = $(this).parents("[data-index]") 5642 const link = $(this).val() 5643 const data = await trackUrl(link) 5644 5645 console.log(data) 5646 5647 if(data.song) { 5648 parent.find(".spotifySong").val(data.song) 5649 parent.find(".spotifyData").find("h3").text(data.song) 5650 } 5651 if(data.artist) { 5652 parent.find(".spotifyArtist").val(data.artist) 5653 parent.find(".spotifyData").find("p").text(data.artist) 5654 } 5655 parent.find(".spotifyCode img").attr("src", `https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:${data.type.slice(0, -1)}:${data.trackId}`) 5656 // https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:track:1er51HCEBhIAtoEemKuC3M 5657 if (data.status === true) { 5658 parent.find(".btn-action .btn").attr("disabled", false) 5659 } else { 5660 parent.find(".btn-action .btn").attr("disabled", true) 5661 } 5662 }) 5663
5664 $(".spotifyAddons").delegate(".spotifySong", "keyup", async function(){ 5665 const parent = $(this).parents("[data-index]") 5666 const v = $(this).val() 5667 parent.find(".spotifyData h3").text(v) 5668 }) 5669 5670 $(".spotifyAddons").delegate(".spotifyArtist", "keyup", async function(){ 5671 const parent = $(this).parents("[data-index]") 5672 const v = $(this).val() 5673 parent.find(".spotifyData p").text(v) 5674 }) 5675 5676 $(".spotifyAddons").delegate(".btn-action .btn:not(.no-addon)", "click", async function(){ 5677 const parent = $(this).parents("[data-index]") 5678 const length = parent.data("length") 5679 const index = parent.data("index") 5680 const indexNext = Number(index) + 1 5681 customSpotify(indexNext, length, 'addon') 5682 }) 5683 5684 5685 $(".spotifyAddons").delegate(".btn-action .btn.finished", "click", async function(){ 5686 const parent = $(this).parents(".purchaseAddon") 5687 const next = parent.next(".sectionPurchase") 5688 parent.addClass("hide") 5689 next.removeClass("hide") 5690 next.find(".purchase-button").show() 5691 listAddon() 5692 }) 5693 5694 $(".spotifyAddons").delegate(".back-spotify", "click", async function(){ 5695 const t = $(this).parents("[data-index]") 5696 const parent = $(this).parents(".sectionPurchase") 5697 const current = t.data("index") 5698 const prevCurrent = Number(current) - 1 5699 if(current == 1) { 5700 parent.removeClass("purchaseAddonSpotify") 5701 parent.find(".purchase-button").show() 5702 parent.find(".headerPurchase h3").text("Make It More Special with Add-Ons!") 5703 $(".spotifyAddons").empty() 5704 $(".regulerAddons").show() 5705 return 5706 } 5707 t.hide() 5708 t.prev("[data-index]").show() 5709 t.remove() 5710 parent.find(".headerPurchase h3").text(`personalize spotify photo print - ${prevCurrent}`) 5711 }) 5712 5713 $("#personalizeBtn .btn").click(async function() { 5714 loadPopupPersonalize() 5715 }); 5716 5717 $(".sectionPurchaseSpotify").delegate(".btn[data-type=card]", "click", function(){ 5718 $(".sectionPurchaseSpotify").hide() 5719 loadPopupPersonalize() 5720 }) 5721 5722 $(".close-purchase-popup").click(function() { 5723 disablePopup(); 5724 }); 5725 $("#backgroundPopup").click(function() { 5726 // disablePopup(); 5727 }); 5728 5729 $("#popupCart .close-purchase-popup").click(function() { 5730 location.reload() 5731 }); 5732 5733 $('#popupCart').on('hide.bs.modal', function (e) { 5734 location.reload() 5735 }) 5736 5737 $(".next-card").click(function(){ 5738 const parent = $(this).parents(".sectionPurchase") 5739 const next = parent.next(".sectionPurchase") 5740 parent.addClass("hide") 5741 next.removeClass("hide") 5742 }) 5743 5744 $(".back-purchase-button").click(function(){ 5745 const parent = $(this).parents(".sectionPurchase") 5746 const prev = parent.prev(".sectionPurchase") 5747 parent.addClass("hide") 5748 prev.removeClass("hide") 5749 }) 5750 5751 $(document).keypress(function(e) { 5752 if (e.keyCode == 27 && popupStatus == 1) { 5753 disablePopup(); 5754 } 5755 }); 5756 5757 const parentImg = $(".case-img-preview") 5758 const parentVid = $(".case-video-preview") 5759 5760 function readURL(input) { 5761 if (input.files && input.files[0]) { 5762 let reader = new FileReader(); 5763 5764 let type = 'image/jpeg' 5765 const size = input.files[0].size 5766 if(input.files[0].type.match('video/')){ 5767 type = 'video/mp4' 5768 if(size > 15728640) { 5769 alert('File size exceeds maximum limit 15 MB') 5770 return 5771 } 5772 } else { 5773 if(size > 5242880) { 5774 alert('File size exceeds maximum limit 5 MB') 5775 return 5776 } 5777 } 5778 5779 reader.onload = function (e) { 5780 $(".nextBtn").attr("disabled", true) 5781 if(type === 'image/jpeg') { 5782 5783 $('.placeholder-image').hide(); 5784 $('.preview-image').show() 5785 $('.preview-image').attr('src', e.target.result); 5786 5787 } else { 5788 // parentVid.find(".ajax-loader").show(); 5789 $(".steps-card-preview").addClass("loading") 5790 } 5791 } 5792 5793 5794
5795 reader.readAsDataURL(input.files[0]); 5796 } 5797 } 5798 5799 async function readURLPapan(input) { 5800 if (input.files && input.files[0]) { 5801 let reader = new FileReader(); 5802 5803 reader.onload = function (e) { 5804 $('.btn-upload-papan').siblings('label').hide(); 5805 $('.btn-upload-papan img').attr('src', e.target.result); 5806 $('.btn-upload-papan img').show(); 5807 $('.svgLogoPapan').hide(); 5808 } 5809 5810 const type = 'image/jpeg' 5811 const name = `logo-8144957800663-${Date.parse(new Date())}` 5812 5813 let formData = new FormData(); 5814 formData.append("file", input.files[0]); 5815 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 5816 method: "POST", 5817 body: formData 5818 }) 5819 const result = await response.json(); 5820 if(result) { 5821 const url = result.url 5822 $("[data-properties=papan-logo]").val(url) 5823 } 5824 5825 reader.readAsDataURL(input.files[0]); 5826 } 5827 } 5828 5829 async function readURLAddress(input) { 5830 console.log(input, 'readURLAddress') 5831 if (input.files && input.files[0]) { 5832 let reader = new FileReader(); 5833 5834 reader.onload = function (e) { 5835 $('.photo-address').attr('src', e.target.result); 5836 $('.photo-address').show(); 5837 } 5838 5839 const type = 'image/jpeg' 5840 const name = input.files[0].name?.split('.')[0] 5841 5842 let formData = new FormData(); 5843 formData.append("file", input.files[0]); 5844 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 5845 method: "POST", 5846 body: formData 5847 }) 5848 const result = await response.json(); 5849 5850 reader.readAsDataURL(input.files[0]); 5851 5852 return result 5853 } 5854 } 5855 5856 5857 5858 5859 async function addToCartUang() { 5860 var productAddOnId1 = 42122101162199; 5861 var productAddOnId2 = 42122101194967; 5862 var product_id = 8144957800663 5863 const data = { 5864 items: [ 5865 { 5866 quantity: $("#Quantity-" + productAddOnId1).val(), 5867 id: productAddOnId1, 5868 "properties": { "Time": $("#properties-time").val() } 5869 }, 5870 { 5871 quantity: $("#Quantity-" + productAddOnId2).val(), 5872 id: productAddOnId2, 5873 "properties": { "Time": $("#properties-time").val() } 5874 } 5875 ] 5876 } 5877 await fetch(window.Shopify.routes.root + 'cart/add.js', { 5878 method: 'POST', 5879 headers: { 5880 'Content-Type': 'application/json' 5881 }, 5882 body: JSON.stringify(data) 5883 }) 5884 .then(response => { 5885 console.error('Sukses Buket Uang:', response); 5886 $(".form-flower").submit() 5887 }) 5888 .catch((error) => { 5889 console.error('Error Buket Uang:', error); 5890 $(".form-flower").submit() 5891 }); 5892 } 5893 5894 async function saveCard(){ 5895 let isCard = true 5896 const kartu_penerima = $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '' 5897 const kartu_pengirim = $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '' 5898 const kartu_ucapan = $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '' 5899 const foto = $("#properties-photo").val() 5900 const video = $("#properties-video").val() 5901 const data = JSON.stringify({ 5902 "id": qrID, 5903 "penerima": $("#properties-nama-penerima").val(), 5904 "kartu_penerima": kartu_penerima, 5905 "kartu_ucapan": kartu_ucapan, 5906 "kartu_pengirim": kartu_pengirim, 5907 "foto": foto, 5908 "video": video, 5909 "productId": "8144957800663", 5910 "order_name": "", 5911 "status": "Cart" 5912 }) 5913 5914 5915 } 5916 5917 async function additem(items){ 5918 try { 5919 let formData = items 5920 if(items?.length) { 5921 formData = { 5922 'items': items 5923 }; 5924 } 5925 5926 const add = await fetch(window.Shopify.routes.root + 'cart/add.js', { 5927 method: 'POST', 5928 headers: { 5929 'Content-Type': 'application/json', 5930 'X-Requested-With':'xmlhttprequest' /* XMLHttpRequest is ok too, it's case insensitive */ 5931 }, 5932 body: JSON.stringify(formData) 5933 }) 5934 5935 const data = await add.json(); 5936 return data 5937 } catch(err){ 5938 console.log('Error additem', err) 5939 } 5940 } 5941 5942 async function addons(){ 5943 let items = [] 5944 $(".addon-item").each(function(){ 5945 const p = $(this) 5946 const props = p.next(".propsAddonSpotify") 5947 const id = $(this).data("id") 5948 const quantity = $(this).data("qty") 5949 const propId = $("#properties-time").val() 5950 let properties = {} 5951 if(id === 46067682607319) { 5952 const link = props.find(".spotifyLinkAddon").text() 5953 const photo = props.find(".spotifyFotoAddon").text() 5954 const song = props.find(".spotifySongAddon").text() 5955 const artist = props.find(".spotifyArtistAddon").text() 5956 properties = { 5957 id: propId, 5958 "Spotify Link": link !== '' ? link : '-', 5959 "Spotify Photo": photo !== '' ? photo : '-', 5960 "Spotify Song": song !== '' ? song : '-', 5961 "Spotify Artist": artist !== '' ? artist : '-', 5962 type: 'addon' 5963 } 5964 } else { 5965 properties = { 5966 "id": propId, 5967 "type": "addon" 5968 } 5969 } 5970 items.push({ 5971 id, 5972 quantity, 5973 properties 5974 }) 5975 }) 5976 return items 5977 } 5978 5979 async function propItems() { 5980 let props = {} 5981 $("[data-properties]").each(function(e){
5982 let elementType = this.tagName; 5983 const k = $(this).data("properties") 5984 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') { 5985 const v = elementType === 'SELECT' ? $(this).find(":selected").val() : $(this).val(); 5986 if(v !== '') { 5987 props[k] = v?.replace(/[\s\n]/g, ''); 5988 } 5989 } 5990 }) 5991 return props 5992 } 5993 5994 async function showPopupCart(items){ 5995 if(productType !== '') { 5996 console.log("clarity event " + productType + ' completeOrder') 5997 window.clarity("event", `${productType} completeOrder`) 5998 // window.clarity("set", productType, `completeOrder - ${productDate}`) 5999 } 6000 $("#popupCart").show() 6001 6002 $(".propDeliveryCity").text($("#cities").val()) 6003 $(".propDeliveryDate").text($("#propDeliveryDate").val()) 6004 $(".propDeliveryTime").text($("#propDeliveryTime").val()) 6005 $(".propDeliveryName").text($("[data-properties=nama-penerima]").val()) 6006 $(".propDeliveryAddress").text($("[data-properties=alamat-penerima]").val()) 6007 $(".propDeliveryPhone").text($("[data-properties=telepon-penerima]").val()) 6008 $(".propDeliveryProv").text($("#province").val()) 6009 $(".propDeliveryZip").text($("#zip").val()) 6010 6011 6012 6013 const addons = [] 6014 if(items && items.length > 0) { 6015 for(let i = 1; i < items.length; i++) { 6016 const spotifyLink = items[i].properties['Spotify Link'] 6017 const spotifyPhoto = items[i].properties['Spotify Photo'] 6018 const spotifySong = items[i].properties['Spotify Song'] 6019 const spotifyArtist = items[i].properties['Spotify Artist'] 6020 const price = items[i].price / 100 6021 const props = spotifyLink ? `<div class="propsAddonCart row m-0"> 6022 <div class="col-12 col-lg-2"></div> 6023 <div class="col-12 col-lg-10"> 6024 <p> 6025 <span>spotify link</span> 6026 <span>${spotifyLink}</span> 6027 </p> 6028 <p> 6029 <span>Upload Photo</span> 6030 <span>${spotifyPhoto}</span> 6031 </p> 6032 <p> 6033 <span>song / playlist name</span> 6034 <span>${spotifySong}</span> 6035 </p> 6036 <p> 6037 <span>artist name</span> 6038 <span>${spotifyArtist}</span> 6039 </p> 6040 </div> 6041 </div>` : ''; 6042 addons.push(`<div class="row m-0"> 6043 <div class="imgAddonCart col-2"> 6044 <img 6045 width="43" 6046 src="${items[i].image}" 6047 alt="" 6048 > 6049 </div> 6050 <div class="imgAddonTitlePrice col-10 align-self-center"> 6051 <div class="row justify-content-between m-0"> 6052 <div class="col-12 col-lg-8"> 6053 <h5>${items[i].title}</h5> 6054 </div> 6055 <div class="col-12 col-lg-4 text-lg-right"> 6056 <span>${rupiah.format(price)}</span> 6057 </div> 6058 </div> 6059 </div> 6060 </div>${props}`) 6061 } 6062 } 6063 // console.log(addons) 6064 if(addons.length === 0) { 6065 $(".itemAddonCart").hide() 6066 return 6067 } 6068 $(".toggleAddonCart h4").text(`add-ons (${items.length - 1})`) 6069 $(".wrapperItemAddonCart").html(addons) 6070 } 6071 6072 const money = (money) => { 6073 return new Intl.NumberFormat('id-ID', 6074 { style: 'currency', currency: 'IDR', minimumFractionDigits: 0 } 6075 ).format(money); 6076 } 6077 6078 async function showNoteMoney() { 6079 let qty50k = $("[data-properties='Uang 50k']").val() 6080 let qty100k = $("[data-properties='Uang 100k']").val() 6081 const total50k = Number(qty50k) * 50000 6082 const total100k = Number(qty100k) * 100000 6083 const total_all = total50k + total100k 6084 $(".prop50k").html(`<span>${qty50k} Lembar: <strong class="pl-1">${money(total50k)}</strong></span>`) 6085 $(".prop100k").html(`<span>${qty100k} Lembar: <strong class="pl-1">${money(total100k)}</strong></span>`) 6086 $(".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://tempat-cozy.travelsportcanarias-com.app/" target="_blank" style="text-decoration: underline;
6086 color: #8d3f2d">Customer Service</a> to confirm with proof of payment.</p>`) 6087 } 6088 6089 async function removeImage() { 6090 const data = JSON.stringify({ 6091 "ID": $("#properties-properties-qrId").val(), 6092 "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 6093 "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 6094 "Kartu Ucapan": $("[data-properties=ucapan]").val(), 6095 "Nama Penerima": $("#properties-nama-penerima").val(), 6096 "Order Number":"", 6097 "Status":"Product", 6098 "Foto": "", 6099 "Media": $("#properties-video").val(), 6100 "Image": "8144957800663" 6101 }) 6102 const remove = updateCard(data) 6103 if(remove) { 6104 $(this).hide() 6105 $("#properties-photo").val("-") 6106 $(".placeholder-image").show() 6107 $(".preview-image").attr("src", "") 6108 } 6109 } 6110 6111 async function removeVideo() { 6112 const data = JSON.stringify({ 6113 "ID": $("#properties-properties-qrId").val(), 6114 "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 6115 "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 6116 "Kartu Ucapan": $("[data-properties=ucapan]").val(), 6117 "Nama Penerima": $("#properties-nama-penerima").val(), 6118 "Order Number":"", 6119 "Status":"Product", 6120 "Foto": $("#properties-photo").val(), 6121 "Media": "", 6122 "Image": "8144957800663" 6123 }) 6124 const remove = updateCard(data) 6125 if(remove) { 6126 $("#properties-video").val("-") 6127 $(this).find("img").hide() 6128 $(this).hide() 6129 $(this).prev("p").text("Add video to make it more special (optional)") 6130 $("#label-input-video").show() 6131 $("#label-input-video span").text("Upload Video") 6132 $(".case-video-preview p span").remove() 6133 } 6134 } 6135 6136 async function loadItemOccasion(t, occasion) { 6137 const name = occasion?.replace('greeting-card-', '') 6138 $("#kartu-ucapan").val("") 6139 $("[data-occassion]").removeClass("selected") 6140 $("[data-properties=ucapan]").val("") 6141 $("#save-card").attr("disabled", true) 6142 t.addClass("selected") 6143 $("#show_note").attr("data-card-occassion", name) 6144 $.get(`https://outerbloom.com/collections/${occasion}/products.json`, function(data, status){ 6145 const products = data.products 6146 const html = [] 6147 for(let i = 0; i < products.length; i++) { 6148 const id = products[i].id 6149 const variantId = products[i].variants[0].id 6150 const img = products[i].images[0].src 6151 const title = products[i].title 6152 const price = products[i].variants[0].price 6153 const qty = products[i].variants[0].inventory_quantity 6154 const body = `<div class="item-card${price < 1 ? ' free' : ' nofree'}${i === 0 ? ' selected' : ''}" data-id=${id}> 6155 <label for="card-${variantId}"></label> 6156 <div class="card-image"> 6157 <img src="${img}" alt="${title}" width="" height="" /> 6158 </div> 6159 <div class="card-meta text-center"> 6160 <h5>${title}</h5> 6161 <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p> 6162 <input id="card-${variantId}" type="radio" name="id" value="${variantId}" data-price="${price}"> 6163 </div> 6164 </div>` 6165 html.push(body) 6166 } 6167 const withoutCard = `<div class="item-card item-without-card"> 6168 <label for="card-0"></label> 6169 <div class="card-image"> 6170 <img src="https://cdn.shopify.com/s/files/1/1589/6833/t/129/assets/without-card.png?v=1747632283" alt="Without card" width="" height="" /> 6171 </div> 6172 <div class="card-meta text-center"> 6173 <h5>
6173Send without a greeting card</h5> 6174 <input id="card-0" type="radio" name="id" value="" data-price=""> 6175 </div> 6176 </div>` 6177 $("#itemCards .items-card").html(html.length === 0 ? '<p>No Item available</p>' : html.join("")) 6178 }); 6179 } 6180 6181 $(document).ready(function(){ 6182 6183 // Observer to auto-trigger addon loading when addon section becomes visible 6184 const addonObserver = new MutationObserver(function(mutations) { 6185 mutations.forEach(function(mutation) { 6186 const target = $(mutation.target) 6187 if(target.hasClass('purchaseAddon') && mutation.type === 'attributes' && mutation.attributeName === 'class') { 6188 if(!target.hasClass('hide')) { 6189 // Addon section just became visible, ensure items are loaded 6190 setTimeout(function() { 6191 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6192 console.log("Auto-triggering addon load...") 6193 $("[data-addon=upsell-all]").trigger("click") 6194 } 6195 }, 150) 6196 } 6197 } 6198 }) 6199 }) 6200 6201 // Start observing addon section 6202 const addonSection = document.querySelector('.purchaseAddon') 6203 if(addonSection) { 6204 addonObserver.observe(addonSection, { 6205 attributes: true, 6206 attributeFilter: ['class'] 6207 }) 6208 } 6209 6210 $(".purchasePopup").delegate("#addtocart-card", "click", async function(){ 6211 6212 $(this).find("span").addClass("loading") 6213 let isValid = true 6214 $(".formAddressPurchase [required]").each(function(){ 6215 const t = $(this) 6216 const input = t.val() 6217 const p = t.parent() 6218 if(input === '') { 6219 p.addClass("error") 6220 isValid = false 6221 } 6222 }) 6223 6224 if(!isValid) { 6225 $(this).find("span").removeClass("loading") 6226 return 6227 } 6228 6229 let items = [] 6230 const mainProps = { 6231 6232 "Delivery Date": $("#propDeliveryDate").val(), 6233 "Delivery Time": $("#propDeliveryTime").val() !== '' ? $("#propDeliveryTime").val() : '-' , 6234 "Kota Pengiriman": $("#cities").val(), 6235 "Nama Penerima": $("[data-properties=nama-penerima]").val() !== '' ? $("[data-properties=nama-penerima]").val() : '-' , 6236 "Alamat Penerima": $("[data-properties=alamat-penerima]").val() !== '' ? $("[data-properties=alamat-penerima]").val() : '-' , 6237 "Kodepos": $("#zip").val() !== '' ? $("#zip").val() : '-' , 6238 "Telepon Penerima": $("[data-properties=telepon-penerima").val() !== '' ? $("[data-properties=telepon-penerima").val() : '-' , 6239 6240 6241 "Papan Nama Penerima": $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '-' , 6242 "Papan Ucapan": $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '-' , 6243 "Papan Nama Pengirim": $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '-' , 6244 "Papan Logo": $("[data-properties=papan-logo]").val() !== '' ? $("[data-properties=papan-logo]").val() : '-' , 6245 "Foto Alamat": $("[data-properties=foto-alamat]").val() !== '' ? $("[data-properties=foto-alamat]").val() : '-' , 6246 6247 6248 "Province": $("#province").val() !== '' ? $("#province").val() : '-' , 6249 "Country": $("#properties-kota-pengiriman-country").val() !== '' ? $("#properties-kota-pengiriman-country").val() : '-' , 6250 "Shipping": $("#properties-shipping").val() !== '' ? $("#properties-shipping").val() : '-' , 6251 "Company": $("[data-properties=company]").val() !== '' ? $("[data-properties=company]").val() : '-' , 6252 "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 6253 "type": 'product' 6254 } 6255 const props = await propItems() 6256 properties = {...mainProps, ...props }; 6257 const id = $("#productSelect").find('option:selected').val() 6258 console.log(id, 'main ID') 6259 const mainItem = { 6260 id: Number(id), 6261 quantity: 1, 6262 properties 6263 } 6264 items.push(mainItem) 6265 const cardId = $("#itemCards").find(".selected input").val() 6266 const cardItem = { 6267 id: Number(cardId), 6268 quantity: 1, 6269 properties: { "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', type: 'card' } 6270 } 6271 console.log(cardId, 'cardId') 6272 if(cardId) { 6273 items.push(cardItem) 6274 } 6275 const addon = await addons() 6276 if(addon) { 6277 for(let i = 0;
6277 i < addon.length; i++){ 6278 items.push({ 6279 id: addon[i].id, 6280 quantity: addon[i].quantity, 6281 properties: addon[i].properties 6282 }) 6283 } 6284 } 6285 const addItems = await additem(items) 6286 console.log(addItems.items, 'add items') 6287 if(addItems) { 6288 $(this).find("span").removeClass("loading") 6289 disablePopup() 6290 showPopupCart(addItems.items) 6291 6292 localStorage.setItem("items", JSON.stringify(addItems.items)) 6293 } 6294 }) 6295 6296 $("#addtocart-cart .btn").click(async function(){ 6297 const id = $("#productSelect").find('option:selected').val() 6298 const mainProps = { 6299 id: $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 6300 type: 'product' 6301 } 6302 const props = await propItems() 6303 const properties = { ...mainProps, ...props }; 6304 const items = { 6305 id: Number(id), 6306 quantity: 1, 6307 properties 6308 } 6309 const addItems = await additem(items) 6310 if(addItems) { 6311 showPopupCart(addItems.items) 6312 localStorage.setItem("items", JSON.stringify(addItems)) 6313 } 6314 }) 6315 6316 $(".formAddressPurchase [required]").change(function(){ 6317 const t = $(this) 6318 const p = t.parent() 6319 const v = t.val() 6320 if(v !== '') { 6321 p.removeClass("error") 6322 } 6323 }) 6324 6325 $("#save-card").click(async function(){ 6326 const parent = $(this).parents(".sectionPurchase") 6327 const next = parent.next(".sectionPurchase") 6328 $(this).find("span").addClass("loading") 6329 const card = await saveCard() 6330 console.log(card, 'ssaveCCC') 6331 if(card?.status === 200 || card?.status === 201) { 6332 $(".scanCard").removeClass("hide") 6333 $(this).find("span").removeClass("loading") 6334 parent.addClass("hide") 6335 next.removeClass("hide") 6336 if(next.hasClass("purchaseAddon")) { 6337 $("[data-addon=upsell-all]").click() 6338 console.log("clarity event addons") 6339 window.clarity("event", `${productType} add-ons`) 6340 // Ensure addon items are loaded when entering addon popup 6341 setTimeout(function() { 6342 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6343 $("[data-addon=upsell-all]").trigger("click") 6344 } 6345 }, 100) 6346 } 6347 if(next.hasClass("purchaseAddress")) { 6348 $("#zip").select2() 6349 } 6350 } 6351 }) 6352 6353 $("#skip-card").click(async function(){ 6354 $("#greetingCard [data-properties]").val("") 6355 $("#properties-photo").val("") 6356 $("#properties-video").val("") 6357 const parent = $(this).parents(".sectionPurchase") 6358 const next = parent.next(".sectionPurchase") 6359 parent.addClass("hide") 6360 next.removeClass("hide") 6361 // $("#itemCards").html("") 6362 removeImage() 6363 removeVideo() 6364 if(next.hasClass("purchaseAddon")) { 6365 $("[data-addon='upsell-all']").click() 6366 console.log("clarity event addons") 6367 window.clarity("event", `${productType} add-ons`) 6368 // Ensure addon items are loaded when entering addon popup 6369 setTimeout(function() { 6370 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6371 $("[data-addon='upsell-all']").trigger("click") 6372 } 6373 }, 100) 6374 } 6375 if(next.hasClass("purchaseAddress")) { 6376 $("#zip").select2() 6377 } 6378 }) 6379 6380 $("#msgCard").click(async function(){ 6381 $(this).parent().addClass("loading") 6382 let occasion = $(".selected[data-occassion]").data("occassion") 6383 occasion = occasion?.replace("greeting-card-", "") 6384 const { data } = await getFetch(`${host}/api/card/template/occasion?name=${occasion}`); 6385 const d = data?.data 6386 for(let i = 0; i < d.length; i++) { 6387 const num = Math.floor(Math.random() * (d.length - 1 + 1) + 1); 6388 const greeting = d[num]?.Greeting 6389 $(".greetingCard textarea").val(greeting) 6390 $(this).parent().removeClass("loading") 6391 } 6392 $("#save-card").attr("disabled", false) 6393 }) 6394 6395 $(".sectionPurchaseBoard .next-purchase-button").click(function(){ 6396 const parent = $(this).parents(".sectionPurchase") 6397 const next = parent.next(".sectionPurchase") 6398 parent.addClass("hide") 6399 next.removeClass("hide") 6400 }) 6401 6402 $("#editCard").click(function(){ 6403 $(".custom-card").show() 6404 $(".preview-card").hide() 6405 }) 6406 6407 $("#first_name, #last_name").change(function(){ 6408 const v = $(this).val() 6409 const first_name = $("#first_name").val() 6410 const last_name = $("#last_name").val() !== '' ? ' ' + $("#last_name").val() : '' 6411 $("[data-properties=nama-penerima]").val(first_name+last_name) 6412 }) 6413 6414 $("[data-occassion]").click(function(){ 6415 const t = $(this) 6416 const p = t.parents(".sectionPurchase") 6417 // $(".greetingCard").addClass("disabled") 6418 const occasion = t.data("occassion") 6419 loadItemOccasion(t, occasion) 6420 }) 6421 6422 $("#itemCards").delegate(".item-card:not(.item-without-card) label", "click", function(){ 6423 const id = $(this).parent(".item-card").data("id") 6424 const t = $(this).parent(".item-card") 6425 const target = t.find("input") 6426 const v = $('.item-card input[type="radio"]:checked').val(); 6427 $("#itemCards .item-card").removeClass("selected") 6428 t.addClass("selected") 6429 $("#itemCards .item-card").find("input").attr("name", "") 6430 if(target.length > 0) { 6431 target.attr("name", "id[]") 6432 $("#properties-card").val(id) 6433 $(".greetingCard").removeClass("disabled") 6434 $("#skip-card").attr("disabled", false) 6435 } else { 6436 $("#properties-card").val("") 6437 } 6438 }) 6439 6440 $("#itemCards").delegate(".item-without-card label", "click", function(){ 6441 const parent = $(this).parents(".sectionPurchase") 6442 const next = parent.next(".sectionPurchase") 6443 $(".greetingCard").addClass("disabled") 6444 parent.addClass("hide") 6445 next.removeClass("hide") 6446 $("[data-addon=upsell-all]").click() 6447 $("#zip").select2() 6448 }) 6449 6450 $("[data-properties=ucapan]").keyup(function(){ 6451 const v = $(this).val() 6452 const p = $(this).parents(".sectionPurchase") 6453 $(".purchaseAddress").find(".greetingCard textarea").val(v) 6454 if(v.length > 3) { 6455 p.find(".next-purchase-button").attr("disabled", false) 6456 } else { 6457 p.find(".next-purchase-button").attr("disabled", true) 6458 } 6459 }) 6460 6461 $("[data-properties=penerima]").keyup(function(){ 6462 const v = $(this).val() 6463 $(".purchaseAddress").find("[data-properties=penerima]").val(v) 6464 }) 6465 6466 $("[data-properties=pengirim]").keyup(function(){ 6467 const v = $(this).val() 6468 $(".purchaseAddress").find("[data-properties=pengirim]").val(v) 6469 }) 6470 6471 $(document).click(function(e){
6472 6473 if($(e.target).closest('.wrapperPopupCart').length != 0) return false; 6474 // $('#popupCart').fadeOut('slow'); 6475 // location.reload() 6476 }); 6477 6478 $(".toggleAddonCart").click(function(){ 6479 const p = $(this).parent(".itemAddonCart") 6480 p.toggleClass("open") 6481 }) 6482 6483 $(".btnViewCart").click(function(){ 6484 window.location.href = "https://outerbloom.com/cart"; 6485 }) 6486 6487 $(".btnViewCheckout").click(async function(){ 6488 $(this).find("span").addClass("loading") 6489 let zip = $("#zip").val() 6490 const first_name = $("#first_name").val() 6491 const last_name = $("#last_name").val() 6492 const company = $("#company").val() !== '' ? $("#company").val() : '' 6493 const address1 = $("#delivery_address").val() 6494 const address2 = zip && zip !== '' ? zip?.split(' - ')[1] : '' 6495 zip = zip && zip !== '' ? zip?.split(' - ')[0] : '' 6496 const phone = $("#recipient_number").val() 6497 const city = $("#cities").val() 6498 const province = $("#province").val() 6499 const country = 'Indonesia' 6500 const ver = Date.parse(new Date()) 6501 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}` 6502 6503 const clear = await fetch(`/cart/clear.js`, {method: 'POST'}) 6504 if(clear.status === 200) { 6505 const savedItem = window.localStorage.getItem("items"); 6506 const items = JSON.parse(savedItem) 6507 const addItems = await additem(items) 6508 console.log(addItems, 'new addItems') 6509 if(addItems) { 6510 window.location.href = `https://outerbloom.com/checkout?${params}`; 6511 } 6512 } 6513 }) 6514 6515 $(".btnContinueShopping").click(function(){ 6516 window.location.href = "https://outerbloom.com/"; 6517 }) 6518 6519 if (isIOS) { 6520 $(".empty-state-card").click(function(){ 6521 $("#input-foto").trigger("click") 6522 }) 6523 $(".btn-upload-image").click(function(){ 6524 $("#input-foto").trigger("click") 6525 }) 6526 $("[for=input-video]").click(function(){ 6527 $("#input-video").trigger("click") 6528 }) 6529 $(".btn-upload-papan").click(function(){ 6530 $("#logoPapan").trigger("click") 6531 }) 6532 } 6533 6534 $("[data-properties]").each(function(){ 6535 const select = $(this).parents(".form-group").find("select") 6536 $(this).change(function(){ 6537 const name = $(this).data("properties") 6538 const v = $(this).val() 6539 if (name == 'telepon-penerima') { 6540 let phone = v.replace(/[^0-9]/g, '') 6541 $(this).val(phone); 6542 $("#properties-telepon-penerima").val(phone) 6543 $('.iti__search-input').val('-') 6544 } else { 6545 $("#properties-" + name).val(v) 6546 } 6547 }) 6548 select.on("change", function(){ 6549 const name = $(this).data("properties") 6550 const v = $(this).val() 6551 $("#properties-" + name).val(v) 6552 }) 6553 }) 6554 6555 $("#show_note").click(function(){ 6556 nameq = $("#properties-nama-penerima").val() 6557 dear = $("#properties-kartu-nama-penerima").val() 6558 card = $("[data-properties=ucapan]").val() 6559 sender = $("#properties-kartu-nama-pengirim").val() 6560 photo = $("#properties-photo").val() 6561 video = $("#properties-video").val() 6562 updateCard(nameq, dear, card, sender, photo, video, status) 6563 }) 6564 6565 $(".remove-image").click(function(e){ 6566 e.preventDefault() 6567 $(this).find("img").show() 6568 removeImage() 6569 }) 6570 6571 $(".remove-media").click(function(e){ 6572 e.preventDefault() 6573 $(this).find("img").show() 6574 removeVideo() 6575 }) 6576 6577 6578 6579 $("[data-delivery_method]").click(function(e){
6580 e.preventDefault() 6581 const t = $(this) 6582 const data = t.data("delivery_method") 6583 $("[data-delivery_method]").removeClass("selected") 6584 t.addClass("selected") 6585 $("#cities").val("") 6586 $("#properties-delivery-date").val("-") 6587 $("#deliveryDate button").removeClass("selected") 6588 $("#full-date").val("Full Calendar â") 6589 $("#propDeliveryDate").val("") 6590 const step3 = $("#step-3") 6591 if(data.match('PickUp')) { 6592 $(".selfpickup-point").show() 6593 step3.find("[data-finished=false]").hide() 6594 $("#panel-4").hide() 6595 step3.find("[data-finished=true]").show() 6596 $("#cities").attr("required", false) 6597 $("#form-group-city").hide() 6598 $("#row-delivery-time").hide() 6599 $("#propDeliveryTime, #properties-delivery-time, #properties-nama-penerima, #properties-alamat-penerima, #properties-kodepos, #properties-kodepos, #properties-telepon-penerima").val("-") 6600 $("#propDeliveryTime").attr("required", false) 6601 // $("#deliveryDate").find("button:first-child").addClass("stop") 6602 $(".form-selfpickup").show() 6603 $(".form-delivery").hide() 6604 $(".form-delivery").find("input, textarea, select").val("") 6605 $(".form-delivery").find("input, textarea, select").attr("required", false) 6606 $("#properties-shipping").val("0") 6607 $("#noteDeliveryDate").hide() 6608 $(".form-delivery .form-control").attr("required", false) 6609 $("#stepNav4").hide() 6610 6611 $("#deliveryDate").find("button:nth-child(1)").addClass("stop") 6612 6613 6614 6615 if(timeOfDay >= 16.01){ 6616 $("#deliveryDate").find("button:nth-child(2)").addClass("stop") 6617 } 6618 } else { 6619 6620 6621 $("#deliveryDate").find("button:nth-child(1)").removeClass("stop") 6622 step3.find("[data-finished=false]").show() 6623 $("#panel-4").show() 6624 step3.find("[data-finished=true]").hide() 6625 $("#cities").attr("required", true) 6626 $(".selfpickup-point").hide() 6627 $("#form-group-city").show() 6628 $("#cities").val('').trigger('change'); 6629 $("#properties-kota-pengiriman").val("-") 6630 6631 $("#row-delivery-date, #row-delivery-time").show() 6632 $("#propDeliveryDate, #propDeliveryTime").attr("required", true) 6633 $("#deliveryDate").find("button").removeClass("stop") 6634 $(".form-selfpickup").hide() 6635 $(".form-delivery").show() 6636 $(".form-delivery").find("input, textarea, select").attr("required", true)
6637 $(".form-delivery [data-properties]").attr("readonly", false) 6638 $("#properties-kodepos").val("-") 6639 $("#properties-alamat-penerima").val("-") 6640 $(".form-delivery .form-control").attr("required", true) 6641 $(this).parents(".setup-content").attr("id", "step-1") 6642 6643 $("#stepNav4").show() 6644 } 6645 }) 6646 6647 $("[name=selfpickup]").click(function(){ 6648 const p = $(this).parents(".row-pickup") 6649 const pickupCity = $("input[name='selfpickup']:checked").val(); 6650 const pickupAddress = $("input[name='selfpickup']:checked").data("address"); 6651 const pickupZip = $("input[name='selfpickup']:checked").data("zip"); 6652 6653 $(".row-pickup").removeClass("selected") 6654 p.addClass("selected") 6655 6656 $("#properties-kota-pengiriman").val(pickupCity) 6657 $("#province").val("Jakarta") 6658 $("#properties-alamat-penerima").val(pickupAddress) 6659 $("#properties-kodepos").val(pickupZip) 6660 }) 6661 6662 $("#cities").change(function(e){ 6663 e.preventDefault() 6664 $(this).parent(".row").find("p.error").remove() 6665 $("#full-date").val("Full Calendar") 6666 $("#deliveryDate, #deliveryDateFull label ").show() 6667 $("#deliveryDateFull").removeClass("filled") 6668 $(".btnChangeDeliveryDate").addClass("hide") 6669 $("#full-date").prop('disabled', false); 6670 $("#stepNav2, #stepNav3, #stepNav4").removeClass("btn-success") 6671 $("#stepNav2, #stepNav3, #stepNav4").find("a").attr("disabled", true) 6672 const step3 = $("#step-3") 6673 $("#cityNote").remove() 6674 $("#noteDeliveryDate").hide() 6675 $("#noteDeliveryDate").empty() 6676 let v = $(this).val() 6677 let v2 = $('option:selected', this).attr('data-city'); 6678 let v3 = $('option:selected', this).attr('data-province'); 6679 let price = $('option:selected', this).attr('data-price'); 6680 $("#country").val(v) 6681 $("#properties-kota-pengiriman").val(v) 6682 $("#properties-shipping").val(price) 6683 $("#deliveryDate button, #deliveryTime button, .calendarseasonal .button").removeClass("selected") 6684 $("#properties-delivery-date, #properties-delivery-time").val("-") 6685 $("#propDeliveryDate, #propDeliveryTime").val("") 6686 let note = $('option:selected', this).attr('data-note'); 6687 if(v === 'Kota Lainnya') { 6688 $("#noteDeliveryDate").show() 6689 $("#noteDeliveryDate").text("Order akan segera dikirim. Estimasi tanggal diterima akan disesuaikan dengan waktu pengiriman oleh pihak ekspedisi ke lokasi Anda.") 6690 $("#zip").attr("required", false) 6691 $("#zip").hide() 6692 $("#propDeliveryDate, #propDeliveryTime").attr("required", false) 6693 $("#propDeliveryDate, #properties-delivery-date, #propDeliveryTime, #properties-delivery-time").val("-") 6694 $("#row-delivery-date, #row-delivery-time").hide() 6695 $("#properties-shipping").val("") 6696 // $(this).parents(".setup-content").attr("id", "step-2") 6697 6698 } else { 6699 $("#noteDeliveryDate").hide() 6700 $("#zip").attr("required", true) 6701 $("#zip").show() 6702 $("#row-delivery-date, #row-delivery-time").show() 6703 $("#propDeliveryDate, #propDeliveryTime").attr("required", true) 6704 $("#deliveryDate").find("button").removeClass("stop") 6705 // $(this).parents(".setup-content").attr("id", "step-1") 6706 6707 } 6708 6709 6710 6711 // if(v !== 'Jakarta') { 6712 // $("[data-type=upsell]").hide() 6713 // } else { 6714 // $("[data-type=upsell]").show() 6715 // } 6716 // $('.collection-addons')[0].swiper.update(); 6717 6718 6719 getProvince(v) 6720 $("#zip").html(`<option value="">Choose Postal Code</option>`) 6721 renderZip(v, v2, v3) 6722 6723 disabledSameDay() 6724 6725 6726 if(v !== 'Jakarta' && v !== 'Depok' && v !== 'Bekasi' && v !== 'Tangerang') { 6727 6728 $("#cardOccasion, #navAddon, .collection-addons").hide() 6729 6730 $("[data-addon=giftcard]").show() 6731 $("[data-addon=giftcard]").click() 6732 $("#itemAddons").show() 6733 $("#flower-step").addClass("nonjadetabek") 6734 } else { 6735 $("#cardOccasion, #navAddon, .collection-addons").show() 6736 $("[data-addon=all]").click() 6737 $("#flower-step").removeClass("nonjadetabek") 6738 } 6739 6740 if(v !== '') { 6741 $("#personalizeBtn .btn").attr("disabled", false) 6742 } else { 6743 $("#personalizeBtn .btn").attr("disabled", true) 6744 } 6745 6746 }) 6747 6748 $("#zip").change(function(e){
6749 let v = $(this).val() 6750 var city = $("#cities").find('option:selected'); 6751 $("#properties-kodepos").val(v) 6752 if(city === 'Kota Lainnya') { 6753 $(this).attr("required", true) 6754 $("#recipient-address").val("") 6755 } 6756 }) 6757 6758 6759 var minDate = +7 6760 6761 6762 6763 $("#full-date").datepicker({ 6764 minDate, 6765 dateFormat: 'Mdd_yy', //Nop22_2021, 6766 6767 beforeShowDay: disabledays, 6768 6769 onSelect: function (date) { 6770 $("#deliveryDate, #deliveryDateFull label ").hide() 6771 $("#deliveryDateFull").addClass("filled") 6772 $(".btnChangeDeliveryDate").removeClass("hide") 6773 $("#full-date").prop('disabled', true); 6774 $('#propDeliveryDate, #properties-delivery-date').val('Kirim_'+date); 6775 $(".date-full").addClass("selected") 6776 $(".date-single, .calendar-group").removeClass("selected") 6777 $("#propDeliveryTime").val('') 6778 $("#properties-delivery-time").val('-') 6779 $(".time-single").removeClass("selected") 6780 6781 6782 } 6783 }); 6784 6785 $(".btnChangeDeliveryDate").click(function(){ 6786 $("#deliveryDate, #deliveryDateFull label ").show() 6787 $("#deliveryDateFull").removeClass("filled") 6788 $(".btnChangeDeliveryDate").addClass("hide") 6789 $("#full-date").prop('disabled', false); 6790 }) 6791 6792 $("#deliveryDate").delegate(".calendarbutton:not(.date-full)", "click", function(e){ 6793 e.preventDefault() 6794 $(this).parents("#row-delivery-date").find("p.error").remove() 6795 const fulldate = $(this).data("fulldate") 6796 const day = $(this).data("day") 6797 const date = $(this).data("date")
6798 const month = $(this).data("month") 6799 const year = $(this).data("year") 6800 const off_pagi = $(this).data("offpagi") 6801 const off_siang = $(this).data("offsiang") 6802 const off_Malam = $(this).data("offMalam") 6803 $(".calendarbutton").removeClass("selected") 6804 $(this).addClass("selected") 6805 $("#propDeliveryDate, #properties-delivery-date").val(`Kirim_${month}${date}_${year}`) 6806 $("#propDeliveryTime").val('') 6807 $("#properties-delivery-time").val('-') 6808 $(".calendarbutton2").removeClass("selected") 6809 $("#full-date").val("Full Calendar") 6810 6811 6812 if(off_pagi && timeOfDay > off_pagi) { 6813 $("[data-time=Morning]").attr("disabled", true) 6814 } else { 6815 $("[data-time=Morning]").attr("disabled", false) 6816 } 6817 if(off_siang && timeOfDay > off_siang) { 6818 $("[data-time=Afternoon]").attr("disabled", true) 6819 } else { 6820 $("[data-time=Afternoon]").attr("disabled", false) 6821 } 6822 6823 6824 6825 }) 6826 6827 if(today === 14 && timeOfDay > 17.00) { 6828 $("#deliveryDate button:first-child").attr("disabled", true) 6829 } 6830 6831 $("#deliveryTime").delegate(".calendarbutton2", "click", function(e){ 6832 e.preventDefault() 6833 const time = $(this).data("time") 6834 const date = $("#propDeliveryDate").val() 6835 if(date == '') { 6836 return alert('Silakan pilih tanggal terlebih dahulu') 6837 } 6838 $(".calendarbutton2").removeClass("selected") 6839 $(this).addClass("selected") 6840 $("#propDeliveryTime, #properties-delivery-time").val(`KirimJam_${date.replace('Kirim_','')}_${time}`) 6841 }) 6842 6843 $('textarea.has-limit, input.has-limit').keyup(function () { 6844 max = this.getAttribute("maxlength"); 6845 let len = $(this).val().length; 6846 let limit = $(this).siblings(".limit"); 6847 if (len > max) { 6848 alert('you have reached the limit'); 6849 } else { 6850 limit.text(`${len}/${max}`); 6851 } 6852 }); 6853 6854 $("#button-action-step .btn").click(function(){ 6855 $(this).find("span").text("Processing..."); 6856 }); 6857 6858 $(".finishBtn").on('click', function() { 6859 $(this).addClass("is-adding"); 6860 // $(this).click(); 6861 }); 6862 6863 $('.setup-panel .nav-item a.btn-success').trigger('click'); 6864 6865 $("#button-action .btn").click(function(){ 6866 $("#flower-step").addClass("block"); 6867 $("#button-action").hide(); 6868 }); 6869 6870 $(".close-how-order").click(function(){ 6871 $("#flower-step").removeClass("block"); 6872 $("#button-action").show(); 6873 }); 6874 6875 $("#input-foto, #input-video").change(function(e){ 6876 readURL(this); 6877 }); 6878 6879 $("#logoPapan").change(function(){ 6880 readURLPapan(this); 6881 }); 6882 6883 $("#address-upload").change(async function(){ 6884 const upload_address = await readURLAddress(this) 6885 if(upload_address) { 6886 const url = upload_address.url 6887 $(".props-address-upload").val(url) 6888 $(".form-address").addClass("address-uploaded") 6889 $(".form-address-upload").addClass("uploaded") 6890 6891 $(this).parents(".form-group").siblings(".form-group").find("[required]").attr("required", false) 6892 } 6893 }) 6894 6895 $(".address-manualy").click(function(){ 6896 $(".form-address-upload").removeClass("uploaded"); 6897 $(".photo-address").hide(); 6898 $(".form-address").removeClass("address-uploaded") 6899 $("#formAddressPurchase").find(".form-control").attr("required", true) 6900 }); 6901 6902 $(".case-video-preview").delegate(".replace-video", "click", function(){ 6903 $("#input-video").trigger("click") 6904 }) 6905 6906 $('.date-single').click(function(e) { 6907 e.preventDefault(); 6908 $('.date-single').removeClass('selected'); 6909 $('#full-date').removeClass('selected'); 6910 $(this).addClass('selected'); 6911 $('#full-date').html('Full' + '<br/>' + 'Calendar'); 6912 }); 6913 $('#full-date').click(function(e){ 6914 e.preventDefault(); 6915 $('.date-single').removeClass('selected'); 6916 $(this).addClass('selected'); 6917 }); 6918 6919 // $("tr").each(function(){ 6920 // if($(this).text().match('SKU')) { 6921 // $(".sku-product").html($(this).parents("table").html()) 6922 // } 6923 // }) 6924 6925 $("#product-image").scroll(function(){ 6926 $(".desc-add").each(function(){ 6927 const img = $(this).find("img") 6928 const src = img.data("src") 6929 img.attr("src", src) 6930 }) 6931 }) 6932 6933 $(".product-fixed").hide() 6934 6935 let target = $("#personalizeBtn") 6936 6937 6938 $(".product-meta").scroll(function() { 6939 if ($(window).scrollTop() >= target.offset().top ) { 6940 $(".product-fixed").addClass("show") 6941 } else { 6942 $(".product-fixed").removeClass("show") 6943 } 6944 }); 6945 6946 $(window).scroll(function() { 6947 if ($(window).scrollTop() >= target.offset().top ) { 6948 $(".product-fixed").addClass("show") 6949 } else { 6950 $(".product-fixed").removeClass("show") 6951 } 6952 }); 6953 }); 6954 </script>
6954 6955 6956
6956<script> 6957 // 6958 </script>
6958 6959 6960
6960<script> 6961 $(document).ready(function(){ 6962 $('table tr td').each(function(){ 6963 var texto = $(this).text(); 6964 var nextto = $(this).next("td"); 6965 var sku = $("#data-sku").val() 6966 if(texto == 'SKU'){ 6967 nextto.text(sku) 6968 } 6969 }); 6970 6971 $(".stamped-summary-actions-newquestion").text("Tulis Pertanyaan"); 6972 $(".stamped-summary-actions-newreview").text("Tulis Review"); 6973 $("#tab-questions").text("Pertanyaan"); 6974 6975 $(".freeship .icon").click(function(){ 6976 $(".fs-content").slideToggle(); 6977 $(this).parents(".freeship").toggleClass("expand"); 6978 }); 6979 6980 var $easyzoom = $('.easyzoom').easyZoom(); 6981 // Setup thumbnails example 6982 var api1 = $easyzoom.filter('.easyzoom--with-thumbnails').data('easyZoom'); 6983 $('.thumbnails').on('click', 'a', function(e) { 6984 var $this = $(this); 6985 e.preventDefault(); 6986 // Use EasyZoom's `swap` method 6987 api1.swap($this.data('standard'), $this.attr('href')); 6988 }); 6989 6990 $('#playerID').click(function(){ 6991 var videoURL = $('#VdoID').attr('src'), 6992 dataplay = $('#VdoID').attr('data-play'); 6993 6994 //for check autoplay 6995 //if not set autoplay=1 6996 if(dataplay == 0 ){ 6997 $('#VdoID').attr('src',videoURL+'?autoplay=1'); 6998 $('#VdoID').attr('data-play',1); 6999 } 7000 else{ 7001 var videoURL = $('#VdoID').attr('src'); 7002 videoURL = videoURL.replace("?autoplay=1", ""); 7003 $('#VdoID').prop('src',''); 7004 $('#VdoID').prop('src',videoURL); 7005 7006 $('#VdoID').attr('data-play',0); 7007 } 7008 7009 }); 7010 7011 $(".product-photo-thumb-video").click(function(e){ 7012 e.preventDefault(); 7013 7014 var newEmbed = $(this).attr('href'); 7015 $("#featured-image-product").addClass("img-video"); 7016 $("#ProductPhotoImg").hide(); 7017 $("#featured-image-product .video").show(); 7018 $("#featured-image-product iframe").attr('src', newEmbed); 7019 $("#VdoID")[0].src += "&autoplay=1"; 7020 }); 7021 $(".product-single__thumbnail").click(function(evt){ 7022 evt.preventDefault(); 7023 $("#featured-image-product").removeClass("img-video"); 7024 $("#ProductPhotoImg").show(); 7025 $("#featured-image-product .video").hide(); 7026 $("#featured-image-product iframe").attr('src', ''); 7027 }); 7028 7029 if($('#product-meta .short-desc > div').length >= 1){ 7030 //console.log('div detected') 7031 var replacer = $('#product-meta .short-desc > div').contents(); 7032 $('#product-meta .short-desc > div').replaceWith(replacer); 7033 7034 var cAssured = $('.c-assured').detach(); 7035 cAssured.insertAfter('.meta-sds .stock-info'); 7036 } 7037 7038 7039 7040 $(".heading-toggle").click(function(){ 7041 $(this).parent().toggleClass("open") 7042 7043 }); 7044 }); 7045 </script>
7045 7046 7047 7048
7048<script type="application/json" id="ProductJson-Product"> 7049 7050 {"id":8144957800663,"title":"JURAGAN404 | Portal Game Terpercaya & Terlengkap","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eJURAGAN404 hadir sebagai tempat bermain game online yang asyik, cozy, dan nyaman untuk menemani waktu luang dan mengusir rasa bosan. ð®ð¥."} 7051 </script>
7051 7052 7053
7053<script type="application/json" id="VariantJson-Product"> 7054 [ 7055 7056 { 7057 "incoming": false, 7058 "next_incoming_date": null 7059 } 7060 7061 ] 7062 </script>
7062 7063 7064 7065 7066 7067 </div> 7068 7069 7070
7070<script src="//outerbloom.com/cdn/shopifycloud/storefront/assets/themes_support/option_selection-b017cd28.js" type="text/javascript"></script>
7070 7071 <style> 7072 .stamped-review-header-title, 7073 .stamped-review-header .author, 7074 .stamped-review-content-body, 7075 .stamped-sort-select, 7076 .stamped-review-header .verified-badge[data-type=buyer]:after, 7077 .stamped-review-header-byline, 7078 .stamped-review-reply-body {font-size: 14px!important;font-family: 'Barlow',sans-serif!important;} 7079 .stamped-review {margin-bottom: 0;} 7080 .stamped-review-body {padding-left: 65px;} 7081 .stamped-review:first-child {padding-top: 25px;} 7082 .stamped-review-content {clear: none;} 7083 .stamped-review-reply {margin: 15px 0 0 65px;background: #f2f2f2;border-left: none;} 7084 .stamped-review-reply-body {padding-left: 65px;} 7085 .stamped-review-header .author {text-transform: capitalize;} 7086 .stamped-questions .stamped-review-content {padding-left: 65px;} 7087 7088 .stamped-pagination {margin: 20px 0 0;} 7089 .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;} 7090 .stamped-pagination li a {color: #121212;padding: 13px 18px;vertical-align: middle;display: block;} 7091 .stamped-pagination li.active a {background-color: #ddd;font-weight: 400;} 7092 .stamped-pagination li:hover a {background: #ddd;} 7093 .stamped-pagination .next {border-right: 1px solid #ccc;} 7094 .stamped-pagination li:first-child {border-top-left-radius: 5px;border-bottom-left-radius: 5px;} 7095 .stamped-pagination li:last-child {border-top-right-radius: 5px;border-bottom-right-radius: 5px;} 7096 7097 #stamped-pagination-question span.page {display: inline-block;border: 1px solid #ccc;width: 47px;} 7098 #stamped-pagination-question span {font-size: 14px;} 7099 #stamped-pagination-question .page.active {padding: 12px;font-weight: 400;background: #ddd;} 7100 #stamped-pagination-question a, #stamped-pagination-question .page.active {color: #121212;padding: 13px 18px;vertical-align: middle;display: inline-block;} 7101 .stamped-pagination-deco {color: #121212;padding: 13px 18px;width: 47px;vertical-align: middle;display: inline-block;border: 1px solid #ccc;padding: 12px;} 7102 .stamped-pagination-prev, .stamped-pagination-next {position: inherit;} 7103 .stamped-pagination-prev a, .stamped-pagination-next a {width: auto!important;border: 1px solid #ccc;} 7104 7105 @media (max-width: 480px){ 7106 .stamped-review-reply {margin-left: 0!important;} 7107 select.stamped-sort-select {font-size: 13px!important;} 7108 } 7109 7110 #product-reviews .stamped-summary-ratings, #product-reviews .stamped-summary-actions, .stamped-content { 7111 display: block !important; 7112 } 7113 </style> 7114
7114<script> 7115 var selectCallback = function(variant, selector) { 7116 timber.productPage({ 7117 money_format: "Rp {{amount_no_decimals}}", 7118 variant: variant, 7119 selector: selector 7120 }); 7121 }; 7122 7123 jQuery(function($) { 7124 new Shopify.OptionSelectors('productSelect', { 7125 product: 7126 7127 7128 7129 7130 7131 {"id":8144957800663,"title":"JURAGAN404 | Portal Game Terpercaya & Terlengkap","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eJURAGAN404 hadir sebagai tempat bermain game online yang asyik, cozy, dan nyaman untuk menemani waktu luang dan mengusir rasa bosan. ð®ð¥."}, 7132 onVariantSelected: selectCallback, 7133 enableHistoryState: true 7134 }); 7135 7136 // Add label if only one product option and it isn't 'Title'. Could be 'Size'. 7137 7138 7139 // Hide selectors if we only have 1 variant and its title contains 'Default'. 7140 7141 $('.selector-wrapper').hide(); 7142 7143 }); 7144 </script>
7144 7145 7146 7147 7148
7148<script type="application/ld+json"> 7149 { 7150 "@context": "http://schema.org", 7151 "@type": "Product", 7152 "offers": { 7153 "@type": "Offer", 7154 "availability":"https://schema.org/InStock", 7155 "price": 835000, 7156 "priceValidUntil": "05-10-2025", 7157 "priceCurrency": "IDR", 7158 "url": "https://travelsportcanarias.com/" 7159 }, 7160 "brand": { 7161 "@type": "Brand", 7162 "name": "Outerbloom Florist" 7163 }, 7164 "sku": "8144957800663", 7165 "gtin13": "Jawa", 7166 "name": "JURAGAN404 | Portal Game Terpercaya & Terlengkap", 7167 "description": "JURAGAN404 hadir sebagai tempat bermain game online yang asyik, cozy, dan nyaman untuk menemani waktu luang dan mengusir rasa bosan. ð®ð¥.", 7168 "category": "JURAGAN404 hadir sebagai tempat bermain game online yang asyik, cozy, dan nyaman untuk menemani waktu luang dan mengusir rasa bosan. ð®ð¥.", 7169 "url": "https://travelsportcanarias.com/", 7170 "image": { 7171 "@type": "ImageObject", 7172 "url": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426", 7173 "image": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426", 7174 "name": "JURAGAN404 | Portal Game Terpercaya & Terlengkap", 7175 "width": 1024, 7176 "height": 1024 7177 } 7178 } 7179 </script>
7179 7180 7181 7182 7183 7184 7185
7185<script id="bss-ltap-hide-price" type="text/javascript" > 7186 !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)}))}
7186)),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)}
7186)),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()}
7186if("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)}
7186if(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");
7186c&&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
7186-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");
7186i&&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
7186--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
7186opify.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");
7186e.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=
7186o.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");
7186if(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();
7186let 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()}]); 7187 </script>
7187 7188 7189 </main> 7190 7191 <div id="shopify-section-newsletter" class="shopify-section"><br> 7192 <style> 7193 #shopify-section-newsletter { 7194 background: url('https://myassets.space/crow/JURAGAN404RESMI.webp'); 7195 background-attachment: fixed; 7196 margin-bottom: 0; 7197 } 7198 input:-webkit-autofill, 7199 input:-webkit-autofill:hover, 7200 input:-webkit-autofill:active, 7201 input:-webkit-autofill:focus { 7202 -webkit-box-shadow:0 0 0 50px white inset; 7203 -webkit-text-fill-color: #ffffff; 7204 } 7205 .section-newsletter { 7206 max-width: 800px; 7207 margin: auto; 7208 padding: 50px 0; 7209 } 7210 .section-newsletter h2 { 7211 font-weight: 700; 7212 font-size: 24px; 7213 } 7214 .section-newsletter input[type="email"] { 7215 width: 100%; 7216 text-align: center; 7217 border: none; 7218 border-bottom: 1px solid #ffffff; 7219 font-size: 16px; 7220 color: #757575; 7221 background-color: #eeeeee; 7222 } 7223 .section-newsletter .row label { 7224 font-size: 14px; 7225 cursor: pointer; 7226 } 7227 .section-newsletter .radio-inline input { 7228 width: auto; 7229 } 7230 .section-newsletter .btn { 7231 width: 130px; 7232 border: 1px solid #ffffff; 7233 box-shadow: none; 7234 font-size: 16px; 7235 font-weight: 500; 7236 text-transform: uppercase; 7237 } 7238 .section-newsletter form { 7239 margin: 30px 0 60px; 7240 } 7241 .section-newsletter input[type="radio"] { 7242 position: absolute; 7243 width: 1px; 7244 height: 1px; 7245 } 7246 .section-newsletter [type="radio"]:checked + label, .section-newsletter [type="radio"]:not(:checked) + label { 7247 position: relative; 7248 padding-left: 28px; 7249 cursor: pointer; 7250 line-height: 20px; 7251 display: inline-block; 7252 color: #666; 7253 } 7254 .section-newsletter [type="radio"]:checked + label:before, .section-newsletter [type="radio"]:not(:checked) + label:before { 7255 content: ''; 7256 position: absolute; 7257 left: 0; 7258 top: 0; 7259 width: 18px; 7260 height: 18px; 7261 border: 1px solid #ddd; 7262 border-radius: 100%; 7263 background: #fff; 7264 } 7265 .section-newsletter [type="radio"]:checked + label:after, .section-newsletter [type="radio"]:not(:checked) + label:after { 7266 content: ''; 7267 width: 12px; 7268 height: 12px; 7269 background: #ffffff; 7270 position: absolute; 7271 top: 3px; 7272 left: 3px; 7273 border-radius: 100%; 7274 -webkit-transition: all 0.2s ease; 7275 transition: all 0.2s ease; 7276 } 7277 .section-newsletter [type="radio"]:not(:checked) + label:after { 7278 opacity: 0; 7279 -webkit-transform: scale(0); 7280 transform: scale(0); 7281 } 7282 .opt-newsletter {display:none;} 7283 .footer-newsletter p, .footer-newsletter p a { 7284 color: #757575; 7285 } 7286 @media (max-width:991px){ 7287 .section-newsletter h2 { 7288 font-size: 32px; 7289 } 7290 .section-newsletter input { 7291 width: 300px; 7292 font-size: 14px; 7293 } 7294 .section-newsletter { 7295 padding: 50px 20px; 7296 } 7297 } 7298 @media (max-width: 480px){ 7299 .section-newsletter input[type="email"] {font-size: 16px;} 7300 } 7301 </style> 7302 <style> 7303 .icon-img-footer { 7304 width: 80px; 7305 padding: 0px 5px; 7306 } 7307 @media (min-width: 768px) { 7308 .icon-img-footer { 7309 width: 120px; 7310 } 7311 } 7312 @media (min-width: 992px) { 7313 .icon-img-footer { 7314 width: 120px; 7315 } 7316 } 7317 7318 .button-login-daftar { 7319 display: grid; 7320 grid-template-columns: repeat(2, 1fr); 7321 font-weight: 700; 7322 } 7323 .button-login-daftar a { 7324 text-align: center; 7325 } 7326 .login, 7327 .register { 7328 color: #fffb00; 7329 padding: 15px 10px; 7330 font-size: 23px; 7331 } 7332 .login, 7333 .login-button { 7334 background: linear-gradient(to bottom,#000000 0,#000000 100%); 7335 border: 2px solid #fffb00; 7336 } 7337 .register, 7338 .register-button { 7339 background: linear-gradient(to bottom,#000000 0,#000000 100%); 7340 border: 2px solid #fffb00; 7341 } 7342 7343 7344 7345 </style> 7346 7347 <!-- wp:html --> 7348
7348<script> 7349 document.addEventListener('DOMContentLoaded', 7350 function(){const faqItems=document.querySelectorAll('.faq-item'); 7351 faqItems.forEach(item=>{const question=item.querySelector('.faq-question'); 7352 question.addEventListener('click', 7353 ()=>{const isActive=item.classList.contains('active'); 7354 faqItems.forEach(otherItem=>{otherItem.classList.remove('active')}); 7355 if(!isActive){item.classList.add('active')}})})}); 7356 </script>
7356 7357 7358 7359 <div class="page__overlay" data-view="offCanvasNavToggle" data-off-canvas="close" bis_skin_checked="1"> 7360 </div> 7361 <div class="faq-section"> 7362 <h2>FAQ</h2> 7363 <div class="faq-container"> 7364 <div class="faq-item"> 7365 <button class="faq-question">1. Apa itu JURAGAN404?<span></span></button> 7366 <div class="faq-answer"><p>JURAGAN404 adalah tempat bermain game online yang asyik, nyaman, dan cozy untuk menemani waktu luang kamu.</p></div> 7367 </div> 7368 <div class="faq-item"> 7369 <button class="faq-question">2. Kenapa harus main di JURAGAN404?<span></span></button> 7370 <div class="faq-answer"><p>Karena di sini kamu bisa menikmati pengalaman bermain yang seru, santai, dan bikin betah. ð®ð¥.</p></div> 7371 </div> 7372 <div class="faq-item"> 7373 <button class="faq-question">3. JURAGAN404 cocok untuk siapa?<span></span></button> 7374 <div class="faq-answer"><p>Buat siapa saja yang ingin mencari hiburan, mengisi waktu luang, atau sekadar melepas rasa bosan.</p></div> 7375 </div> 7376 <div class="faq-item"> 7377 <button class="faq-question">4. Main di JURAGAN404 aman nggak?<span></span></button> 7378 <div class="faq-answer"><p>Tentu! JURAGAN404 mengutamakan kenyamanan dan pengalaman bermain yang menyenangkan bagi para pemain.</p></div> 7379 </div> 7380 <div class="faq-item"> 7381 <button class="faq-question">5. Masih ragu buat coba?<span></span></button> 7382 <div class="faq-answer"><p>Daripada penasaran, langsung rasakan sendiri keseruannya di JURAGAN404.</p></div> 7383 </div> 7384 7385 </div> 7386 7387 </div> 7388 7389 </div> 7390 7391 7392 <div class="overlay overlay-cart"></div> 7393 <div id="CartDrawer" class="drawer drawer--right"> 7394 <div class="drawer__header pl-2 pr-2"> 7395 <div class="drawer__icon-cart display-table-cell"> 7396 <a href="/cart" class=""> 7397 <svg class="icon icon-cart" version="1.1" xmlns="https://myassets.space/crow/brand-juragan404.gif" width="32" height="32" viewBox="0 0 32 32"> <path fill="#fff" d="M13.638 23.203c0 0 3.5-2.113 3.502-4.11 0.002-2.304-2.689-3.537-3.497-1.76-0.916-1.778-3.493-1.714-3.497 0.59-0.003 1.999 3.491 5.28 3.491 5.28z"></path> <path fill="#fff" d="M8.112 9.809v16.662l11.063 2.491v-17.58l-11.063-1.573zM7.74 8.858l11.925 1.696c0.213 0.030 0.372 0.218 0.372 0.44v18.519c0 0.284-0.254 0.495-0.523 0.434l-11.925-2.685c-0.198-0.045-0.339-0.225-0.339-0.434v-17.53c0-0.27 0.231-0.477 0.49-0.44z"></path> <path fill="#fff" d="M23.7 10.046l-3.275 0.146-0.388 0.897v17.656l3.664-2.174v-16.526zM24.346 27.214l-4.526 2.685c-0.287 0.17-0.646-0.043-0.646-0.385v-18.519l0.037-0.181 0.534-1.235c0.067-0.154 0.212-0.256 0.375-0.263l3.991-0.178c0.245-0.011 0.45 0.191 0.45 0.444v17.247c0 0.159-0.082 0.306-0.216 0.385z"></path> <path fill="#000" d="M20.772 27.081l-0.501 2.383c-0.050 0.24-0.28 0.392-0.512 0.34s-0.38-0.289-0.33-0.528l0.569-2.707v-16.588c0-0.245 0.193-0.444 0.431-0.444s0.431 0.199 0.431 0.444v16.215l3.296 0.189c0.238 0.014 0.42 0.223 0.406 0.468s-0.217 0.433-0.454 0.419l-3.335-0.191z"></path> <path fill="#fff" d="M20.772 27.081l-0.501 2.383c-0.050 0.24-0.28 0.392-0.512 0.34s-0.38-0.289-0.33-0.528l0.569-2.707v-16.588c0-0.245 0.193-0.444 0.431-0.444s0.431 0.199 0.431 0.444v16.215l3.296 0.189c0.238 0.014 0.42 0.223 0.406 0.468s-0.217 0.433-0.454 0.419l-3.335-0.191z"></path> <path fill="#fff" d="M11.336 8.354l-0.257-0.333c-0.243-0.315 0.012-0.774 0.398-0.717l12.51 1.838c0.236 0.035 0.399 0.26 0.366 0.503s-0.252 0.412-0.487 0.377l-11.436-1.68 0.056 0.073c0.209 0.27 0.052 0.672-0.281 0.718l-4.467 0.607c-0.236 0.032-0.452-0.139-0.484-0.383s0.135-0.467 0.371-0.499l3.711-0.504z"></path> <path fill="#fff" d="M17.152 11.344c0.026-0.003 0.053-0.005 0.079-0.005 0.357 0 0.645 0.297 0.645 0.665s-0.288 0.665-0.645 0.665c-0.322 0-0.59-0.245-0.637-0.565-0.383-0.45-0.515-1.321-0.521-2.536-0.003-0.556 0.026-1.149 0.076-1.739 0.028-0.339 0.057-0.603 0.074-0.735 0.195-2.391-2.008-3.379-3.568-1.658-0.64 0.707-1.041 1.855-1.266 3.412-0.092 0.634-0.137 1.111-0.194 2.024 0.107 0.119 0.172 0.278 0.172 0.453 0 0.342-0.251 0.624-0.573 0.661-0.031 0.005-0.064 0.007-0.097 0.005-0.015-0.001-0.029-0.003-0.044-0.
7397005-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> 7398 </a> 7399 </div> 7400 <div class="drawer__title h4">Keranjang Belanja</div> 7401 <div class="drawer__close js-drawer-close"> 7402 <button type="button"> 7403 <svg class="icon icon-close" version="1.1" xmlns="https://myassets.space/crow/brand-juragan404.gif" width="32" height="32" viewBox="0 0 32 32"> 7404 <title>icon-close</title> 7405 <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> 7406 </svg> 7407 </button> 7408 </div> 7409 </div> 7410 <div id="CartContainer" class="p-2"></div> 7411 </div> 7412 7413
7413<script> 7414 7415 </script>
7415 7416
7416<script src="//outerbloom.com/cdn/shop/t/138/assets/handlebars.min.js?v=79044469952368397291752652415" defer></script>
7416 7417 <!-- /snippets/ajax-cart-template.liquid --> 7418 7419
7419<script id="CartTemplate" type="text/template"> 7420 7421 <form action="/cart" method="post" novalidate class="cart ajaxcart"> 7422 <div class="ajaxcart__inner" {{ cart.item_count }}> 7423 {{#items}} 7424 <div class="ajaxcart__product"> 7425 <div class="ajaxcart__row" data-line="{{line}}"> 7426 <div class="grid"> 7427 <div class="grid__item one-quarter"> 7428 <a href="{{url}}" class="ajaxcart__product-image"><img src="{{img}}" alt=""></a> 7429 </div> 7430 <div class="grid__item three-quarters"> 7431 <p class="d-block mb-3"> 7432 <a class="h4 d-block mb-2" href="{{url}}" class="ajaxcart__product-name">{{name}}</a> 7433 {{#if variation}} 7434 <span class="ajaxcart__product-meta p">{{variation}}</span> 7435 {{/if}} 7436 {{#properties}} 7437 {{#each this}} 7438 {{#if this}} 7439 <span class="ajaxcart__product-meta p hide">{{@key}}: {{this}}</span> 7440 {{/if}} 7441 {{/each}} 7442 {{/properties}} 7443 7444 </p> 7445 <div class="grid--full display-table"> 7446 <div class="grid__item display-table-cell one-half"> 7447 <div class="ajaxcart__qty"> 7448 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}" data-line="{{line}}"> 7449 <svg version="1.1" xmlns="https://myassets.space/crow/brand-juragan404.gif" width="24" height="24" viewBox="0 0 32 32"><title>icon-minus</title><path d="M6.667 16.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h18.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-18.667z"></path></svg> 7450 <span class="visually-hidden">Kurangi jumlah barang</span> 7451 </button> 7452 <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]*"> 7453 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-line="{{line}}" data-qty="{{itemAdd}}"> 7454 <svg version="1.1" xmlns="https://myassets.space/crow/brand-juragan404.gif" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg> 7455 <span class="visually-hidden">Tambahkan jumlah barang</span> 7456 </button> 7457 </div> 7458 </div> 7459 <div class="grid__item display-table-cell one-half text-right"> 7460 {{#if discountsApplied}} 7461 <small class="ajaxcart-item__price-strikethrough"><s>{{{originalLinePrice}}}</s></small> 7462 <br><span class="h4">{{{linePrice}}}</span> 7463 {{else}} 7464 <span class="h4">{{{linePrice}}}</span> 7465 {{/if}} 7466 </div> 7467 </div> 7468 {{#if discountsApplied}} 7469 <div class="grid--full display-table"> 7470 <div class="grid__item text-right"> 7471 {{#each discounts}} 7472 <small class="ajaxcart-item__discount">{{ this.title }}</small><br> 7473 {{/each}} 7474 </div> 7475 </div> 7476 {{/if}} 7477 </div> 7478 </div> 7479 </div> 7480 </div> 7481 </div> 7482 </div> 7483 {{/items}} 7484 </div> 7485 <div class="ajaxcart__footer"> 7486 <div class="grid--full cart-subtotal py-2"> 7487 <p>Subtotal</p> 7488 <h3 class="primary">{{{totalPrice}}}</h3> 7489 {{#if totalCartDiscount}} 7490 <p class="ajaxcart__savings text-center"><em>{{{totalCartDiscount}}}</em></p> 7491 {{/if}} 7492 </div> 7493 7494 <a href="/cart" class="btn btn-cta view-more btn-block cart__checkout mt-2">Checkout</a> 7495 7496 <p class="cart-checkout-shipping hide">Free Ongkir dengan belanja di atas Rp.20.000 <a href="/pages/pengiriman">detail</a></p> 7497 </div> 7498 </form> 7499 7500 </script>
7500 7501
7501<script id="AjaxQty" type="text/template"> 7502 7503 <div class="ajaxcart__qty"> 7504 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}"> 7505 <svg version="1.1" xmlns="https://myassets.space/crow/brand-juragan404.gif" width="24" height="24" viewBox="0 0 32 32"> 7506 <title>icon-minus</title> 7507 <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> 7508 </svg> 7509 <span class="visually-hidden">Kurangi jumlah barang</span> 7510 </button> 7511 <input type="text" class="ajaxcart__qty-num" value="{{itemQty}}" min="0" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*"> 7512 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-qty="{{itemAdd}}"> 7513 <svg version="1.1" xmlns="https://myassets.space/crow/brand-juragan404.gif" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg> 7514 <span class="visually-hidden">Tambahkan jumlah barang</span> 7515 </button> 7516 </div> 7517 7518 </script>
7518 7519
7519<script id="JsQty" type="text/template"> 7520 7521 <div class="js-qty mx-auto mt-2"> 7522 <button type="button" class="js-qty__adjust js-qty__adjust--minus" data-id="{{key}}" data-qty="{{itemMinus}}"> 7523 <svg version="1.1" xmlns="https://myassets.space/crow/brand-juragan404.gif" width="24" height="24" viewBox="0 0 32 32"><title>icon-minus</title><path d="M6.667 16.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h18.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-18.667z"></path></svg> 7524 <span class="visually-hidden">Kurangi jumlah barang</span> 7525 </button> 7526 <input type="text" class="js-qty__num" value="{{itemQty}}" min="1" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*" name="{{inputName}}" id="{{inputId}}"> 7527 <button type="button" class="js-qty__adjust js-qty__adjust--plus" data-id="{{key}}" data-qty="{{itemAdd}}"> 7528 <svg version="1.1" xmlns="https://myassets.space/crow/brand-juragan404.gif" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg> 7529 <span class="visually-hidden">Tambahkan jumlah barang</span> 7530 </button> 7531 </div> 7532 7533 </script>
7533 7534 7535 <style> 7536 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty button, 7537 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty button, 7538 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty button {display: none;} 7539 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input, 7540 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input, 7541 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;opacity: 0.5;} 7542 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input, 7543 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input, 7544 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;} 7545 </style> 7546
7546<script src="//outerbloom.com/cdn/shop/t/138/assets/ajax-cart.js?v=51128912329657147331752652452" defer></script>
7546 7547
7547<script> 7548 jQuery(function($) { 7549 ajaxCart.init({ 7550 formSelector: '#AddToCartForm', 7551 cartContainer: '#CartContainer', 7552 addToCartSelector: '#AddToCartXX', 7553 cartCountSelector: '#CartCount, #CartCount2', 7554 cartCostSelector: '#CartCost', 7555 moneyFormat: "Rp {{amount_no_decimals}}" 7556 }); 7557 }); 7558 7559 jQuery(document.body).on('afterCartLoad.ajaxCart', function(evt, cart) { 7560 // Bind to 'afterCartLoad.ajaxCart' to run any javascript after the cart has loaded in the DOM 7561 timber.RightDrawer.open(); 7562 }); 7563 </script>
7563 7564 7565 7566 7567 7568 <style> 7569 /** Search AutoComplete **/ 7570 .resultsearch .ui-menu-item[data-cat="Collection"], 7571 .resultsearch .ui-menu-item[data-cat="Collection"] {display: none;} 7572 .resultsearch .ui-widget.ui-widget-content { 7573 width: 100%; 7574 top: 48px; 7575 border: none; 7576 box-shadow: 0 4px 8px rgba(255, 255, 255, 0.3); 7577 } 7578 .resultsearch .ui-menu-item {text-align: left;} 7579 .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;} 7580 .ui-state-active { 7581 border: none!important; 7582 background-color: #fafafa!important; 7583 color: #000!important; 7584 } 7585 .ui-menu-item a[data-cat="Collection"] {padding: 5px 12px;} 7586 .ui-menu .ui-menu-item {line-height: normal;} 7587 </style> 7588
7588<script> 7589 $(window).load(function(){ 7590 7591 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;} 7592 7593 $.widget("custom.catcomplete", $.ui.autocomplete, { 7594 _renderMenu: function (ul, items) { 7595 // have search reults split up in categories 7596 var that = this, 7597 currentCategory = ""; 7598 $.each(items, function (index, item) { 7599 if (item.category != currentCategory) { 7600 ul.append("<li class='ui-autocomplete-category' data-cat=" + item.category + ">" + "<span>" + item.category + "</span>" + "</li>"); 7601 currentCategory = item.category; 7602 } 7603 that._renderItemData(ul, item); 7604 }); 7605 } 7606 }); 7607 7608 // higlight searched for term 7609 $.ui.autocomplete.prototype._renderItem = function( ul, item ) { 7610 var term = this.element.val(), 7611 html = item.label.replace( term, "<b>$&</b>" ); 7612 return $( "<li>" ) 7613 .append(format(item)) 7614 .appendTo( ul ); 7615 }; 7616 7617 7618 var data = [ 7619 { label: "< Rp 500.000", category: "Collection", url: "/collections/rp-500-000", images: " ", price: " " },{ label: "> Rp 1.000.000", category: "Collection", url: "/collections/rp-1-000-000", images: " ", price: " " },{ label: "Acrylic Jewelry Box", category: "Collection", url: "/collections/acrylic-jewelry-box", images: " ", price: " " },{ label: "Ajmal", category: "Collection", url: "/collections/ajmal", images: " ", price: " " },{ label: "Alamat Rumah Duka", category: "Collection", url: "/collections/rumah-duka", images: " ", price: " " },{ label: "Anggrek Bulan", category: "Collection", url: "/collections/anggrek-bulan", images: " ", price: " " },{ label: "Anniversary Gift", category: "Collection", url: "/collections/kado-anniversary", images: " ", price: " " },{ label: "Aquarius âï¸ 20Jan - 18Feb", category: "Collection", url: "/collections/kado-untuk-zodiak-aquarius", images: " ", price: " " },{ label: "Aries âï¸ 21March - 19April", category: "Collection", url: "/collections/kado-untuk-zodiak-aries", images: " ", price: " " },{ label: "Armaf", category: "Collection", url: "/collections/armaf", images: " ", price: " " },{ label: "Aromatherapy Diffuser", category: "Collection", url: "/collections/aromatherapy-diffuser", images: " ", price: " " },{ label: "Artisan Soap", category: "Collection", url: "/collections/artisan-soap", images: " ", price: " " },{ label: "Artisan Tea", category: "Collection", url: "/collections/artisan-tea", images: " ", price: " " },{ label: "AsmaraKu", category: "Collection", url: "/collections/asmaraku", images: " ", price: " " },{ label: "Atkinsons", category: "Collection", url: "/collections/atkinsons", images: " ", price: " " },{ label: "Autumn by Outerbloom", category: "Collection", url: "/collections/autumn-by-outerbloom", images: " ", price: " " },{ label: "Autumn by Outerbloom Chinese New Year", category: "Collection", url: "/collections/autumn-by-outerbloom-chinese-new-year", images: " ", price: " " },{ label: "Autumn by Outerbloom Christmas", category: "Collection", url: "/collections/autumn-by-outerbloom-christmas", images: " ", price: " " },{ label: "Autumn by Outerbloom Luar Jadetabek", category: "Collection", url: "/collections/autumn-by-outerbloom-luar-jadetabek", images: " ", price: " " },{ label: "Autumn by Outerbloom Ramadan", category: "Collection", url: "/collections/autumn-by-outerbloom-ramadan", images: " ", price: " " },{ label: "Autumn Pop", category: "Collection", url: "/collections/autumn-pop", images: " ", price: " " },{ label: "Bachelorette", category: "Collection", url: "/collections/bachelorette", images: " ", price: " " },{ label: "Bag Newborn Hampers", category: "Collection", url: "/collections/bag-newborn-hampers", images: " ", price: " " },{ label: "Balon", category: "Collection", url: "/collections/balon", images: " ", price: " " },{ label: "Beauty Package", category: "Collection", url: "/collections/beauty-package", images: " ", price: " " },{ label: "Best Deal", category: "Collection", url: "/collections/best-deal", images: " ", price: " " },{ label: "Best Seller", category: "Collection", url: "/collections/best-seller", images: " ", price: " " },{ label: "Best Valentine's Deals", category: "Collection", url: "/collections/bes-valentines-deals", images: " ", price: " " },{ label: "Best Value Newborn Hampers Collection", category: "Collection", url: "/collections/best-value-newborn-hampers-collection", images: " ", price: " " },{ label: "Black Tea", category: "Collection", url: "/collections/black-tea", images: " ", price: " " },{ label: "Blessing Hampers", category: "Collection", url: "/collections/blessing-hampers", images: " ", price: " " },{ label: "Bloom Box", category: "Collection", url: "/collections/bloom-box", images: " ", price: " " },{ label: "Bloomcard", category: "Collection", url: "/collections/bloomcard", images: " ", price: " " },{ label: "Boutonniere", category: "Collection", url: "/collections/boutonniere", images: " ", price: " " },{ label: "Bracelet", category: "Collection", url: "/collections/gelang", images: " ", price: " " },{ label: "Buket Bunga Bali", category: "Collection", url: "/collections/buket-bunga-bali", images: " ", price: " " },{ label: "Buket Bunga Bandung", category: "Collection", url: "/collections/buket-bunga-bandung", images: " ", price: " " },{ label: "Buket Bunga Batam", category: "Collection", url: "/collections/buket-bunga-batam", images: " ", price: " " },{ label: "Buket Bunga Demak", category: "Collection", url: "/collections/buket-bunga-demak", images: " ", price: " " },{ label: "Buket Bunga Fresh", category: "Collection", url: "/collections/buket-bunga", images: " ", price: " " },{ label: "Buket Bunga Jepara", category: "Collection", url: "/collections/buket-bunga-jepara", images: " ", price: " " },{ label: "Buket Bunga Medan", category: "Collection", url: "/collections/buket-bunga-medan", images: " ", price: " " },{ label: "Buket Bunga Nusantara", category: "Collection", url: "/collections/buket-bunga-nusantara", images: " ", price: " " },{ label: "Buket Bunga Semarang", category: "Collection", url: "/collections/buket-bunga-semarang", images: " ", price: " " },{ label: "Buket Bunga Sidoarjo", category: "Collection", url: "/collections/buket-bunga-sidoarjo", images: " ", price: " " },{ label: "Buket Bunga Surabaya", category: "Collection", url: "/collections/buket-bunga-surabaya", images: " ", price: " " },{ label: "Buket Bunga Tangerang", category: "Collection", url: "/collections/buket-bunga-tangerang", images: " ", price: " " },{ label: "Buket Bunga Uang", category: "Collection", url: "/collections/buket-bunga-uang", images: " ", price: " " },{ label: "Buket Bunga Valentine", category: "Collection", url: "/collections/buket-bunga-valentine", images: " ", price: " " },{ label: "Buket Bunga Yogyakarta", category: "Collection", url: "/collections/buket-bunga-jogja", images: " ", price: " " },{ label: "Bunga Anggrek Bali", category: "Collection", url: "/collections/bunga-anggrek-bali", images: " ", price: " " },{ label: "Bunga Anggrek Bandung", category: "Collection", url: "/collections/bunga-anggrek-bandung", images: " ", price: " " },{ label: "Bunga Anggrek Surabaya", category: "Collection", url: "/collections/bunga-anggrek-surabaya", images: " ", price: " " },{ label: "Bunga Anniversary", category: "Collection", url: "/collections/bunga-anniversary", images: " ", price: " " },{ label: "Bunga Artificial", category: "Collection", url: "/collections/bunga-artificial", images: " ", price: " " },{ label: "Bunga Buket", category: "Collection", url: "/collections/bunga-buket", images: " ", price: " " },{ label: "Bunga Carnations Bali", category: "Collection", url: "/collections/bunga-carnations-bali", images: " ", price: " " },{ label: "Bunga Carnations Bandung", category: "Collection", url: "/collections/bunga-carnations-bandung", images: " ", price: " " },{ label: "Bunga Carnations Surabaya", category: "Collection", url: "/collections/bunga-carnations-surabaya", images: " ", price: " " },{ label: "Bunga Daisy Bali", category: "Collection", url: "/collections/bunga-daisy-bali", images: " ", price: " " },{ label: "Bunga Daisy Bandung", category: "Collection", url: "/collections/bunga-daisy-bandung", images: " ", price: " " },{ label: "Bunga Daisy Surabaya", category: "Collection", url: "/collections/bunga-daisy-surabaya", images: " ", price: " " },{ label: "Bunga Gerbera Bali", category: "Collection", url: "/collections/bunga-gerbera-bali", images: " ", price: " " },{ label: "Bunga Gerbera Bandung", category: "Collection", url: "/collections/bunga-gerbera-bandung", images: " ", price: " " },{ label: "Bunga Gerbera Surabaya", category: "Collection", url: "/collections/bunga-gerbera-surabaya", images: " ", price: " " },{ label: "Bunga Imlek", category: "Collection", url: "/collections/rangkaian-bunga-tahun-baru-imlek", images: " ", price: " " },{ label: "Bunga Lebaran", category: "Collection", url: "/collections/rangkaian-bunga-lebaran", images: " ", price: " " },{ label: "Bunga Lily Bali", category: "Collection", url: "/collections/bunga-lily-bali", images: " ", price: " " },{ label: "Bunga Lily Bandung", category: "Collection", url: "/collections/bunga-lily-bandung", images: " ", price: " " },{ label: "Bunga Lily Surabaya", category: "Collection", url: "/collections/bunga-lily-surabaya", images: " ", price: " " },{ label: "Bunga Matahari Bali", category: "Collection", url: "/collections/bunga-matahari-bali", images: " ", price: " " },{ label: "Bunga Matahari Bandung", category: "Collection", url: "/collections/bunga-matahari-bandung", images: " ", price: " " },{ label: "Bunga Matahari Surabaya", category: "Collection", url: "/collections/bunga-matahari-surabaya", images: " ", price: " " },{ label: "Bunga Mawar Bali", category: "Collection", url: "/collections/bunga-mawar-bali", images: " ", price: " " },{ label: "Bunga Mawar Bandung", category: "Collection", url: "/collections/bunga-mawar-bandung", images: " ", price: " " },{ label: "Bunga Mawar Surabaya", category: "Collection", url: "/collections/bunga-mawar-surabaya", images: " ", price: " " },{ label: "Bunga Meja", category: "Collection", url: "/collections/bunga-meja", images: " ", price: " " },{ label: "Bunga Meja Bali", category: "Collection", url: "/collections/bunga-meja-bali", images: " ", price: " " },{ label: "Bunga Meja Bandung", category: "Collection", url: "/collections/bunga-meja-bandung", images: " ", price: " " },{ label: "Bunga Meja Batam", category: "Collection", url: "/collections/bunga-meja-batam", images: " ", price: " " },{ label: "Bunga Meja Jepara", category: "Collection", url: "/collections/bunga-meja-jepara", images: " ", price: " " },{ label: "Bunga Meja Medan", category: "Collection", url: "/collections/bunga-meja-medan", images: " ", price: " " },{ label: "Bunga Meja Semarang", category: "Collection", url: "/collections/bunga-meja-semarang", images: " ", price: " " },{ label: "Bunga Meja Sidoarjo", category: "Collection", url: "/collections/bunga-meja-sidoarjo", images: " ", price: " " },{ label: "Bunga Meja Surabaya", category: "Collection", url: "/collections/bunga-meja-surabaya", images: " ", price: " " },{ label: "Bunga Meja Tangerang", category: "Collection", url: "/collections/bunga-meja-tangerang", images: " ", price: " " },{ label: "Bunga Meja Yogyakarta", category: "Collection", url: "/collections/bunga-meja-jogja", images: " ", price: " " },{ label: "Bunga Modern Pastel Bali", category: "Collection", url: "/collections/bunga-modern-pastel-bali", images: " ", price: " " },{ label: "Bunga Modern Pastel Bandung", category: "Collection", url: "/collections/bunga-modern-pastel-bandung", images: " ", price: " " },{ label: "Bunga Modern Pastel Medan", category: "Collection", url: "/collections/bunga-modern-pastel-medan", images: " ", price: " " },{ label: "Bunga Modern Pastel Semarang", category: "Collection", url: "/collections/bunga-modern-pastel-semarang", images: " ", price: " " },{ label: "Bunga Modern Pastel Surabaya", category: "Collection", url: "/collections/bunga-modern-pastel-surabaya", images: " ", price: " " },{ label: "Bunga Modern Pastel Yogyakarta", category: "Collection", url: "/collections/bunga-modern-pastel-yogyakarta", images: " ", price: " " },{ label: "Bunga Natal", category: "Collection", url: "/collections/rangkaian-bunga-christmas", images: " ", price: " " },{ label: "Bunga Papan", category: "Collection", url: "/collections/bunga-papan", images: " ", price: " " },{ label: "Bunga Pernikahan", category: "Collection", url: "/collections/bunga-pernikahan", images: " ", price: " " },{ label: "Bunga Plastik", category: "Collection", url: "/collections/bunga-plastik", images: " ", price: " " },{ label: "Bunga Tulip", category: "Collection", url: "/collections/bunga-tulip", images: " ", price: " " },{ label: "Bunga Ulang Tahun", category: "Collection", url: "/collections/bunga-ulang-tahun", images: " ", price: " " },{ label: "Bunga Wisuda", category: "Collection", url: "/collections/karangan-bunga-wisuda", images: " ", price: " " },{ label: "Cake", category: "Collection", url: "/collections/kue", images: " ", price: " " },{ label: "Cake", category: "Collection", url: "/collections/cake", images: " ", price: " " },{ label: "Cake Sameday Delivery", category: "Collection", url: "/collections/cake-sameday-delivery", images: " ", price: " " },{ label: "Cake, Hampers & Gifts", category: "Collection", url: "/collections/cake-hampers", images: " ", price: " " },{ label: "Cancer âï¸ 22June - 22July", category: "Collection", url: "/collections/kado-untuk-zodiak-cancer", images: " ", price: " " },{ label: "Capricorn âï¸ 21Dec - 19Jan", category: "Collection", url: "/collections/kado-untuk-zodiak-capricorn", images: " ", price: " " },{ label: "Care Packages", category: "Collection", url: "/collections/toko-parcel-murah", images: " ", price: " " },{ label: "Care Packages (Keluarga, Sahabat, Karyawan)", category: "Collection", url: "/collections/sehat-bebas-corona", images: " ", price: " " },{ label: "Carnations", category: "Collection", url: "/collections/bunga-anyelir", images: " ", price: " " },{ label: "Celebration", category: "Collection", url: "/collections/celebration", images: " ", price: " " },{ label: "Chléa Paperie", category: "Collection", url: "/collections/chlea-paperie", images: " ", price: " " },{ label: "Chocodot", category: "Collection", url: "/collections/chocodot", images: " ", price: " " },{ label: "Christmas", category: "Collection", url: "/collections/christmas", images: " ", price: " " },{ label: "Classic Cake", category: "Collection", url: "/collections/classic-cake", images: " ", price: " " },{ label: "Classic CNY Hampers", category: "Collection", url: "/collections/classic-cny-hampers", images: " ", price: " " },{ label: "Classic CNY Hampers Luar Jabodetabek", category: "Collection", url: "/collections/classic-cny-hampers-luar-jabodetabek", images: " ", price: " " },{ label: "Classic Hampers", category: "Collection", url: "/collections/classic-hampers", images: " ", price: " " },{ label: "Classic Hampers Luar Jadetabek", category: "Collection", url: "/collections/classic-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Classic Style Flowers", category: "Collection", url: "/collections/classic-style-flowers", images: " ", price: " " },{ label: "Cokelat", category: "Collection", url: "/collections/permen-coklat", images: " ", price: " " },{ label: "Collection List", category: "Collection", url: "/collections/collection-list", images: " ", price: " " },{ label: "Condolences", category: "Collection", url: "/collections/axa-condolences", images: " ", price: " " },{ label: "Congratulations", category: "Collection", url: "/collections/rangkaian-bunga-ucapan-selamat", images: " ", price: " " },{ label: "Corporate Gifts", category: "Collection", url: "/collections/corporate-gifts", images: " ", price: " " },{ label: "Corporate Hampers", category: "Collection", url: "/collections/corporate-hampers", images: " ", price: " " },{ label: "Couple Gift", category: "Collection", url: "/collections/couple-gift", images: " ", price: " " },{ label: "Craft S
7619weetbox Newborn", category: "Collection", url: "/collections/craft-sweetbox-newborn", images: " ", price: " " },{ label: "Crystal Florarium", category: "Collection", url: "/collections/crystal-florarium", images: " ", price: " " },{ label: "Cuddlemate Doll", category: "Collection", url: "/collections/boneka-lucu", images: " ", price: " " },{ label: "Cufflinks", category: "Collection", url: "/collections/cufflinks", images: " ", price: " " },{ label: "Cupcakes", category: "Collection", url: "/collections/cupcakes", images: " ", price: " " },{ label: "Custom Alat Tulis", category: "Collection", url: "/collections/alat-tulis", images: " ", price: " " },{ label: "Custom Cake", category: "Collection", url: "/collections/custom-cake", images: " ", price: " " },{ label: "Custom Card Holder", category: "Collection", url: "/collections/custom-card-holder", images: " ", price: " " },{ label: "Custom Coaster", category: "Collection", url: "/collections/custom-coaster", images: " ", price: " " },{ label: "Custom Cutlery", category: "Collection", url: "/collections/custom-cutlery", images: " ", price: " " },{ label: "Custom E-Money", category: "Collection", url: "/collections/custom-e-money", images: " ", price: " " },{ label: "Custom Earpod", category: "Collection", url: "/collections/custom-earpod", images: " ", price: " " },{ label: "Custom Fan", category: "Collection", url: "/collections/custom-fan", images: " ", price: " " },{ label: "Custom Jewelry", category: "Collection", url: "/collections/custom-jewelry", images: " ", price: " " },{ label: "Custom Keychain", category: "Collection", url: "/collections/custom-keychain", images: " ", price: " " },{ label: "Custom Medallion", category: "Collection", url: "/collections/custom-medallion", images: " ", price: " " },{ label: "Custom Mirror", category: "Collection", url: "/collections/custom-mirror", images: " ", price: " " },{ label: "Custom Mug", category: "Collection", url: "/collections/custom-mug", images: " ", price: " " },{ label: "Custom Necklace", category: "Collection", url: "/collections/custom-necklace", images: " ", price: " " },{ label: "Custom Notebook", category: "Collection", url: "/collections/custom-notebook", images: " ", price: " " },{ label: "Custom Pen & Pencil", category: "Collection", url: "/collections/custom-pen-pencil", images: " ", price: " " },{ label: "Custom Photo Frame", category: "Collection", url: "/collections/photo-frame", images: " ", price: " " },{ label: "Custom Pillow", category: "Collection", url: "/collections/bantal-custom", images: " ", price: " " },{ label: "Custom Powerbank", category: "Collection", url: "/collections/custom-powerbank", images: " ", price: " " },{ label: "Custom Scarf", category: "Collection", url: "/collections/custom-scarf", images: " ", price: " " },{ label: "Custom Speaker", category: "Collection", url: "/collections/custom-speaker", images: " ", price: " " },{ label: "Custom T-Shirt", category: "Collection", url: "/collections/custom-t-shirt", images: " ", price: " " },{ label: "Custom Tote Bag", category: "Collection", url: "/collections/custom-tote-bag", images: " ", price: " " },{ label: "Custom Tumbler Minuman", category: "Collection", url: "/collections/custom-tumbler-minuman", images: " ", price: " " },{ label: "D'paris", category: "Collection", url: "/collections/dparis", images: " ", price: " " },{ label: "Daisy", category: "Collection", url: "/collections/bunga-aster", images: " ", price: " " },{ label: "Dekorasi", category: "Collection", url: "/collections/dekorasi", images: " ", price: " " },{ label: "Dekorasi Duka Cita", category: "Collection", url: "/collections/dekorasi-bunga-duka-cita", images: " ", price: " " },{ label: "Dekorasi Pemakaman", category: "Collection", url: "/collections/dekorasi-pemakaman", images: " ", price: " " },{ label: "Dekorasi Pernikahan", category: "Collection", url: "/collections/dekorasi-bunga-pernikahan", images: " ", price: " " },{ label: "Dekorasi Ulang Tahun", category: "Collection", url: "/collections/dekorasi-bunga-ulang-tahun", images: " ", price: " " },{ label: "Delivery", category: "Collection", url: "/collections/delivery", images: " ", price: " " },{ label: "Deluxe Newborn Hampers Collection", category: "Collection", url: "/collections/deluxe-newborn-hampers-collection", images: " ", price: " " },{ label: "Digital Gift", category: "Collection", url: "/collections/digital-gift", images: " ", price: " " },{ label: "Donasi", category: "Collection", url: "/collections/donasi", images: " ", price: " " },{ label: "E-Card", category: "Collection", url: "/collections/ecard", images: " ", price: " " },{ label: "E-Gift Card", category: "Collection", url: "/collections/e-gift-card", images: " ", price: " " },{ label: "Earrings", category: "Collection", url: "/collections/anting", images: " ", price: " " },{ label: "Edible Gift", category: "Collection", url: "/collections/edible-gift", images: " ", price: " " },{ label: "Enchanted Grande Love Pirouette", category: "Collection", url: "/collections/enchanted-grande-love-pirouette", images: " ", price: " " },{ label: "Enchanted Love Pirouette", category: "Collection", url: "/collections/enchanted-love-pirouette", images: " ", price: " " },{ label: "Engagement", category: "Collection", url: "/collections/rangkaian-bunga-lamaran", images: " ", price: " " },{ label: "Expression", category: "Collection", url: "/collections/expression", images: " ", price: " " }
7619,{ 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: " " }
7619,{ 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: " " }
7619,{ 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
7619dal", 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-
7619hampers", 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
7619o-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: " " }
7619,{ 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: " " }
7619,{ 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: " " }
7619,{ 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: " " }
7619,{ 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: " " }
7619,{ 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: " " }
7619,{ 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: " " }
7619,{ 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: "JURAGAN404 hadir sebagai tempat bermain game online yang asyik, cozy, dan nyaman untuk menemani waktu luang dan mengusir rasa bosan. ð®ð¥.", category: "Collection", url: "/collections/standing-flower", images: " ", price: " " },{ label: "JURAGAN404 hadir sebagai tempat bermain game online yang asyik, cozy, dan nyaman untuk menemani waktu luang dan mengusir rasa bosan. ð®ð¥. Bali", category: "Collection", url: "/collections/standing-flower-bali", images: " ", price: " " },{ label: "JURAGAN404 hadir sebagai tempat bermain game online yang asyik, cozy, dan nyaman untuk menemani waktu luang dan mengusir rasa bosan. ð®ð¥. Bandung", category: "Collection", url: "/collections/standing-flower-bandung", images: " ", price: " " },{ label: "JURAGAN404 hadir sebagai tempat bermain game online yang asyik, cozy, dan nyaman untuk menemani waktu luang dan mengusir rasa bosan. ð®ð¥. Congratulations", category: "Collection", url: "/collections/standing-flower-congratulations", images: " ", price: " " },{ label: "JURAGAN404 hadir sebagai tempat bermain game online yang asyik, cozy, dan nyaman untuk menemani waktu luang dan mengusir rasa bosan. ð®ð¥. Demak", category: "Collection", url: "/collections/standing-flower-demak", images: " ", price: " " },{ label: "JURAGAN404 hadir sebagai tempat bermain game online yang asyik, cozy, dan nyaman untuk menemani waktu luang dan mengusir rasa bosan. ð®ð¥. Jepara", category: "Collection", url: "/collections/standing-flower-jepara", images: " ", price: " " },{ label: "JURAGAN404 hadir sebagai tempat bermain game online yang asyik, cozy, dan nyaman untuk menemani waktu luang dan mengusir rasa bosan. ð®ð¥. Semarang", category: "Collection", url: "/collections/standing-flower-semarang", images: " ", price: " " },{ label: "JURAGAN404 hadir sebagai tempat bermain game online yang asyik, cozy, dan nyaman untuk menemani waktu luang dan mengusir rasa bosan. ð®ð¥. Sidoarjo", category: "Collection", url: "/collections/standing-flower-sidoarjo", images: " ", price: " " },{ label: "JURAGAN404 hadir sebagai tempat bermain game online yang asyik, cozy, dan nyaman untuk menemani waktu luang dan mengusir rasa bosan. ð®ð¥. Surabaya", category: "Collection", url: "/collections/standing-flower-surabaya", images: " ", price: " " },{ label: "JURAGAN404 hadir sebagai tempat bermain game online yang asyik, cozy, dan nyaman untuk menemani waktu luang dan mengusir rasa bosan. ð®ð¥. 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", cat
7619egory: "Collection", url: "/collections/toko-bunga-balikpapan", images: " ", price: " " },{ label: "Toko Bunga Bandar Lampung", category: "Collection", url: "/collections/toko-bunga-bandar-lampung", images: " ", price: " " },{ label: "Toko Bunga Bandung", category: "Collection", url: "/collections/toko-bunga-bandung", images: " ", price: " " },{ label: "Toko Bunga Bandung Barat", category: "Collection", url: "/collections/toko-bunga-bandung-barat", images: " ", price: " " },{ label: "Toko Bunga Banjarmasin", category: "Collection", url: "/collections/toko-bunga-banjarmasin", images: " ", price: " " },{ label: "Toko Bunga Banten", category: "Collection", url: "/collections/toko-bunga-banten", images: " ", price: " " },{ label: "Toko Bunga Banyumas", category: "Collection", url: "/collections/toko-bunga-banyumas", images: " ", price: " " },{ label: "Toko Bunga Banyuwangi", category: "Collection", url: "/collections/toko-bunga-banyuwangi", images: " ", price: " " },{ label: "Toko Bunga Batam", category: "Collection", url: "/collections/toko-bunga-batam", images: " ", price: " " },{ label: "Toko Bunga Baubau", category: "Collection", url: "/collections/toko-bunga-baubau", images: " ", price: " " },{ label: "Toko Bunga Bekasi", category: "Collection", url: "/collections/toko-bunga-bekasi", images: " ", price: " " },{ label: "Toko Bunga Bengkalis", category: "Collection", url: "/collections/toko-bunga-bengkalis", images: " ", price: " " },{ label: "Toko Bunga Bengkayang", category: "Collection", url: "/collections/toko-bunga-bengkayang", images: " ", price: " " },{ label: "Toko Bunga Binjai", category: "Collection", url: "/collections/toko-bunga-binjai", images: " ", price: " " },{ label: "Toko Bunga Bintaro", category: "Collection", url: "/collections/toko-bunga-bintaro", images: " ", price: " " },{ label: "Toko Bunga Blitar", category: "Collection", url: "/collections/toko-bunga-blitar", images: " ", price: " " },{ label: "Toko Bunga Blora", category: "Collection", url: "/collections/toko-bunga-blora", images: " ", price: " " },{ label: "Toko Bunga Bogor", category: "Collection", url: "/collections/toko-bunga-bogor", images: " ", price: " " },{ label: "Toko Bunga Bojonegoro", category: "Collection", url: "/collections/toko-bunga-bojonegoro", images: " ", price: " " },{ label: "Toko Bunga Boyolali", category: "Collection", url: "/collections/toko-bunga-boyolali", images: " ", price: " " },{ label: "Toko Bunga Brebes", category: "Collection", url: "/collections/toko-bunga-brebes", images: " ", price: " " },{ label: "Toko Bunga Bukittinggi", category: "Collection", url: "/collections/toko-bunga-bukittinggi", images: " ", price: " " },{ label: "Toko Bunga Buleleng", category: "Collection", url: "/collections/toko-bunga-buleleng", images: " ", price: " " },{ label: "Toko Bunga Cakung", category: "Collection", url: "/collections/toko-bunga-cakung", images: " ", price: " " },{ label: "Toko Bunga Cawang", category: "Collection", url: "/collections/toko-bunga-cawang", images: " ", price: " " },{ label: "Toko Bunga Cempaka Putih", category: "Collection", url: "/collections/toko-bunga-cempaka-putih", images: " ", price: " " },{ label: "Toko Bunga Cengkareng", category: "Collection", url: "/collections/toko-bunga-cengkareng", images: " ", price: " " },{ label: "Toko Bunga Ciamis", category: "Collection", url: "/collections/toko-bunga-ciamis", images: " ", price: " " },{ label: "Toko Bunga Cianjur", category: "Collection", url: "/collections/toko-bunga-cianjur", images: " ", price: " " },{ label: "Toko Bunga Cibinong", category: "Collection", url: "/collections/toko-bunga-cibinong", images: " ", price: " " },{ label: "Toko Bunga Cibubur", category: "Collection", url: "/collections/toko-bunga-cibubur", images: " ", price: " " },{ label: "Toko Bunga Cijantung", category: "Collection", url: "/collections/toko-bunga-cijantung", images: " ", price: " " },{ label: "Toko Bunga Cikarang", category: "Collection", url: "/collections/toko-bunga-cikarang", images: " ", price: " " },{ label: "Toko Bunga Cikini", category: "Collection", url: "/collections/toko-bunga-cikini", images: " ", price: " " },{ label: "Toko Bunga Cilacap", category: "Collection", url: "/collections/toko-bunga-cilacap", images: " ", price: " " },{ label: "Toko Bunga Cilandak", category: "Collection", url: "/collections/toko-bunga-cilandak", images: " ", price: " " },{ label: "Toko Bunga Cileunyi", category: "Collection", url: "/collections/toko-bunga-cileunyi", images: " ", price: " " },{ label: "Toko Bunga Ciracas", category: "Collection", url: "/collections/toko-bunga-ciracas", images: " ", price: " " },{ label: "Toko Bunga Cirebon", category: "Collection", url: "/collections/toko-bunga-cirebon", images: " ", price: " " }
7619,{ 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
7619dal", 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: " " }, 7620 { label: "grand salutation jabodetabek", category: "Produk", url: "/products/grand-salutation", images: "//outerbloom.com/cdn/shop/files/JKTCON1005_Grand-Salutation-Jabodetabek-WM_thumb.jpg?v=1703241523", price: "Rp 435.000" },{ label: "consolantibus jabodetabek", category: "Produk", url: "/products/consolantibus", images: "//outerbloom.com/cdn/shop/files/JKTDUK1011_Consolantibus-Jabodetabek-WM_thumb.jpg?v=1703239823", price: "Rp 435.000" },{ label: "classic midnight hand bouquet fiery red", category: "Produk", url: "/products/the-classic-midnight-hand-bouquet-fiery-red", images: "//outerbloom.com/cdn/shop/files/OBVBUN1422_Classic-Midnight-Hand-Bouquet---Fiery-Red-large_thumb.jpg?v=1757302521", price: "Rp 385.000" },{ label: "enchanted dome passionate red", category: "Produk", url: "/products/enchanted-dome-passionate-red", images: "//outerbloom.com/cdn/shop/files/Enchanted-dome-red-new-box_3_2_26c081bf-f2a5-42b4-9ce4-3c0304c498e5_thumb.jpg?v=1712639476", price: "Rp 1.435.000" },{ label: "endearing ruby", category: "Produk", url: "/products/endearing-ruby", images: "//outerbloom.com/cdn/shop/products/OUTSTF1003_Endearing-Ruby_thumb.jpg?v=1631296611", price: "Rp 585.000" },{ label: "gentle soul jabodetabek", category: "Produk", url: "/products/gentle-soul-jabodetabek", images: "//outerbloom.com/cdn/shop/files/JKTDUK1030_Gentle-Soul-Jabodetabek-WM_thumb.jpg?v=1703239894", price: "Rp 435.000" },{ label: "belleza jabodetabek", category: "Produk", url: "/products/belleza", images: "//outerbloom.com/cdn/shop/files/Belleza-Jabodetabek-LED_aecb756a-0737-45cc-8bfb-008515ca0a37_thumb.gif?v=1759229680", price: "Rp 435.000" }
7620,{ label: "majestic pink roses with baby breath bouquet", category: "Produk", url: "/products/majestic-pink-roses-with-baby-breath-bouquet", images: "//outerbloom.com/cdn/shop/products/ef4a3be9-c938-4c70-98ac-4873e7da82bf_90820a66-923a-463d-a464-81bcbe6e6644_thumb.jpg?v=1581413440", price: "Rp 485.000" },{ label: "sentiments jabodetabek", category: "Produk", url: "/products/sentiments", images: "//outerbloom.com/cdn/shop/files/Sentiments-Jabodetabek-WM_thumb.jpg?v=1759224099", price: "Rp 485.000" },{ label: "rose poetry bouquet", category: "Produk", url: "/products/rose-poetry-bouquet", images: "//outerbloom.com/cdn/shop/products/Rose-Poetry-Bouquet-20-tangkai_thumb.jpg?v=1675151039", price: "Rp 385.000" },{ label: "genuine feeling", category: "Produk", url: "/products/genuine-feeling", images: "//outerbloom.com/cdn/shop/products/OUTSTF1004Genuine-Feeling_981ade89-af27-433e-81aa-8d76175a0e4d_thumb.jpg?v=1612352389", price: "Rp 585.000" },{ label: "eternal fidelity jabodetabek", category: "Produk", url: "/products/eternal-fidelity-jabodetabek", images: "//outerbloom.com/cdn/shop/products/0b89df45-dcc1-4876-820e-61b2243a1945_964e211d-2972-46c9-8593-976210929089_thumb.jpg?v=1590491458", price: "Rp 435.000" },{ label: "rosabelle hand bouquet", category: "Produk", url: "/products/rosabelle-hand-bouquet", images: "//outerbloom.com/cdn/shop/files/OBVBUN1429_Rosabelle-Hand-Bouquet-Medium_thumb.jpg?v=1756971848", price: "Rp 385.000" },{ label: "dreaming in pink luxury in vase", category: "Produk", url: "/products/dreaming-in-pink-luxury-in-vase", images: "//outerbloom.com/cdn/shop/products/OBVBUN1051_Dreaming-In-Pink-Luxury-In-Vase_3_thumb.jpg?v=1614594504", price: "Rp 735.000" },{ label: "excito jabodetabek", category: "Produk", url: "/products/excito", images: "//outerbloom.com/cdn/shop/files/JKTCON1010_Excito-Jabodetabek-2023_thumb.gif?v=1717494677", price: "Rp 485.000" },{ label: "golden toast jabodetabek", category: "Produk", url: "/products/golden-toast", images: "//outerbloom.com/cdn/shop/products/LED-GoldenToast_thumb.gif?v=1579249585", price: "Rp 485.000" },{ label: "spirit of eminance jabodetabek", category: "Produk", url: "/products/spirit-of-eminance-jabodetabek", images: "//outerbloom.com/cdn/shop/files/JKTCON1026_Spirit-of-Eminance-Jabodetabek-newest-WM_thumb.jpg?v=1693297526", price: "Rp 485.000" },{ label: "white elysian bloom box", category: "Produk", url: "/products/white-elysian-bloom-box", images: "//outerbloom.com/cdn/shop/files/OBVBUN1704_White-Elysian-Bloom-Box_thumb.jpg?v=1757328247", price: "Rp 685.000" },{ label: "charming forevermore jabodetabek", category: "Produk", url: "/products/charming-forevermore-jabodetabek", images: "//outerbloom.com/cdn/shop/files/JKTWED1036_Charming-Forevermore-Jabodetabek-WM_thumb.jpg?v=1703239534", price: "Rp 485.000" },{ label: "moment of glory jabodetabek", category: "Produk", url: "/products/moment-of-glory-jabodetabek", images: "//outerbloom.com/cdn/shop/products/JKTCON1051_Moment-of-Glory-Jabodetabek_2_thumb.jpg?v=1596614663", price: "Rp 385.000" },{ label: "sweet romance jabodetabek", category: "Produk", url: "/products/sweet-romance", images: "//outerbloom.com/cdn/shop/products/JKTWED1005_Sweet-Romance-Jabodetabek_thumb.gif?v=1677134791", price: "Rp 635.000" },{ label: "with love bouquet", category: "Produk", url: "/products/with-love-bouquet", images: "//outerbloom.com/cdn/shop/products/c5d6fed6-8ada-4c38-ae0f-36d395aacb19_613f78f0-d52c-443b-9e13-63a151cd8ec5_thumb.jpg?v=1590748429", price: "Rp 535.000" },{ label: "sunflower yellow and with white daisies in vase", category: "Produk", url: "/products/sunflower-yellow-roses-with-white-and-yellow-daisies-in-a-glass-vase", images: "//outerbloom.com/cdn/shop/files/OBVBUN1132_Sunflower-Yellow-And-With-White-Daisies-in-Vase_thumb.jpg?v=1757930628", price: "Rp 435.000" },{ label: "everlasting peace jabodetabek", category: "Produk", url: "/products/everlasting-peace-jabodetabek", images: "//outerbloom.com/cdn/shop/products/JKTDUK1034_Everlasting-Peace-Jabodetabek_2_thumb.jpg?v=1596614613", price: "Rp 385.000" },{ label: "astoria passionate red", category: "Produk", url: "/products/astoria-passionate-red", images: "//outerbloom.com/cdn/shop/products/Astoria-passionate-red_b59b26f6-c39d-46d3-adcb-262c675bb16f_thumb.jpg?v=1633502742", price: "Rp 685.000" },{ label: "classic purple orchid majesty in vase", category: "Produk", url: "/products/classic-purple-orchid-majesty-in-vase", images: "//outerbloom.com/cdn/shop/products/Classic-Purple-Orchid-Majesty-in-Vase---White---4-Tangkai_40a5e337-283f-40f5-911c-5df9b506b9da_thumb.jpg?v=1639981404", price: "Rp 435.000" },{ label: "passion rouge bloom box", category: "Produk", url: "/products/passion-rouge-bloom-box", images: "//outerbloom.com/cdn/shop/files/OBVBUN1725_Passion-Rouge-Bloom-Box_thumb.jpg?v=1756972410", price: "Rp 385.000" },{ label: "classic white orchid majesty in vase", category: "Produk", url: "/products/classic-white-orchid-majesty-in-vase", images: "//outerbloom.com/cdn/shop/products/Classic-white-Orchid-Majesty-in-Vase---white---4-Tangkai_thumb.jpg?v=1644205542", price: "Rp 435.000" }
7620,{ label: "majestic blue romance bouquet", category: "Produk", url: "/products/majestic-blue-romance-bouquet", images: "//outerbloom.com/cdn/shop/files/OBVBUN1357_Majestic-Blue-Romance-Bouquet_99b8ba96-0e67-4eef-a00e-b2daedcddb6a_thumb.jpg?v=1757390540", price: "Rp 435.000" },{ label: "sincerely", category: "Produk", url: "/products/sincerely", images: "//outerbloom.com/cdn/shop/files/Sincerely-WM_thumb.jpg?v=1688354677", price: "Rp 585.000" },{ label: "happy days jabodetabek", category: "Produk", url: "/products/happy-days-jabodetabek", images: "//outerbloom.com/cdn/shop/files/Happy-Days-Jabodetabek_WM_thumb.jpg?v=1759224026", price: "Rp 485.000" },{ label: "solemn comfort jabodetabek", category: "Produk", url: "/products/solemn-comfort-jabodetabek", images: "//outerbloom.com/cdn/shop/products/7fe123d8-6bb2-4c0d-bd4c-f8c3032823f2_6b9c33b6-4a23-41cb-8709-fc9223fe096a_thumb.png?v=1590662086", price: "Rp 635.000" },{ label: "big dreams jabodetabek", category: "Produk", url: "/products/big-dreams", images: "//outerbloom.com/cdn/shop/files/JKTCON1002_Big-Dreams-Jabodetabek_thumb.gif?v=1717494603", price: "Rp 485.000" },{ label: "signature ramadan deluxe hampers", category: "Produk", url: "/products/outerbloom-signature-ramadhan-deluxe-hampers", images: "//outerbloom.com/cdn/shop/files/Signature-Deluxe-Hampers_thumb.jpg?v=1739242254", price: "Rp 985.000" },{ label: "amorous amos jabodetabek", category: "Produk", url: "/products/amorous-amos-jabodetabek", images: "//outerbloom.com/cdn/shop/files/Amorous-Amos-Jabodetabek-WM_thumb.jpg?v=1759224071", price: "Rp 485.000" },{ label: "pink darling bouquet", category: "Produk", url: "/products/pink-darling-bouquet", images: "//outerbloom.com/cdn/shop/products/Pink-Darling-Bouquet_thumb.jpg?v=1669969725", price: "Rp 485.000" },{ label: "black pink bouquet", category: "Produk", url: "/products/black-pink-bouquet", images: "//outerbloom.com/cdn/shop/files/Black-Pink-Bouquet_thumb.jpg?v=1756434063", price: "Rp 485.000" },{ label: "profound happiness jabodetabek", category: "Produk", url: "/products/profound-happiness-jabodetabek", images: "//outerbloom.com/cdn/shop/files/profound-happiness_thumb.gif?v=1689940309", price: "Rp 635.000" },{ label: "healing trove", category: "Produk", url: "/products/healing-trove", images: "//outerbloom.com/cdn/shop/products/2ef5379f-27a6-41ba-85c7-c65cf3ec3f08_thumb.jpg?v=1571471845", price: "Rp 485.000" },{ label: "sincerity solace", category: "Produk", url: "/products/sincerity-solace", images: "//outerbloom.com/cdn/shop/products/OUTSTF1038_sincerity-solace-WM_thumb.jpg?v=1612352477", price: "Rp 485.000" },{ label: "bellarosa bloom box", category: "Produk", url: "/products/bellarosa-bloom-box", images: "//outerbloom.com/cdn/shop/files/OBVBUN1783_Bellarosa-Bloom-Box_c0000424-411c-48ed-abf4-0de7d925ea53_thumb.jpg?v=1757316757", price: "Rp 785.000" } 7621 ]; 7622 7623 7624 $( ".header-input-search" ).catcomplete({ 7625 appendTo: ".searchResult",source: function(request, response) { 7626 var results = $.ui.autocomplete.filter(data, request.term); 7627 var predicate = function () { 7628 var counter = { Collection: 0, Produk: 0 }; 7629 var fn = function(item) {counter[item.category] += 1;return (counter[item.category] <= 5);} 7630 return fn 7631 }(); 7632 response(results.filter(predicate)); 7633 }, 7634 minLength:1, 7635 //results are clickable 7636 select: function( event, ui ) {window.location = ui.item.url;} 7637 }); 7638 $( ".header-input-search2" ).catcomplete({ 7639 appendTo: ".searchResult2", 7640 source: function(request, response) { 7641 var results = $.ui.autocomplete.filter(data, request.term); 7642 var predicate = function () { 7643 var counter = { Collection: 0, Produk: 0 }; 7644 var fn = function(item) { 7645 counter[item.category] += 1; 7646 return (counter[item.category] <= 5); 7647 } 7648 return fn 7649 }(); 7650 response(results.filter(predicate)); 7651 }, 7652 minLength:1, 7653 //results are clickable 7654 select: function( event, ui ) { 7655 window.location = ui.item.url; 7656 } 7657 }); 7658 }); 7659 </script>
7659 7660 7661
7661<script src="//outerbloom.com/cdn/shop/t/138/assets/vendors.js?v=6349622868601634021752652419" defer></script>
7661 7662
7662<script src="//outerbloom.com/cdn/shop/t/138/assets/app.js?v=136050180318808583701752652452" defer></script>
7662 7663 7664
7664<script> 7665 ( function() { 7666 var youtube = document.querySelectorAll( ".youtube" ); 7667 for (var i = 0; i < youtube.length; i++) { 7668 var source = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault_1x.jpg"; 7669 var datasource = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault.jpg"; 7670 var image = new Image(); 7671 image.src = source; 7672 image.setAttribute("data-src", datasource); 7673 image.classList.add("swiper-lazy"); 7674 image.addEventListener( "load", function() { 7675 youtube[ i ].appendChild( image ); 7676 }( i ) ); 7677 youtube[i].addEventListener( "click", function() { 7678 var iframe = document.createElement( "iframe" ); 7679 iframe.setAttribute( "width", "480" ); 7680 iframe.setAttribute( "height", "480" ); 7681 iframe.setAttribute( "frameborder", "0" ); 7682 iframe.setAttribute( "allowfullscreen", "" ); 7683 iframe.setAttribute( "src", "https://www.youtube.com/embed/"+ this.dataset.embed +"?rel=0&showinfo=0&autoplay=1" ); 7684 this.innerHTML = ""; 7685 this.appendChild( iframe ); 7686 } ); 7687 }; 7688 7689 } )(); 7690 7691 /* Lazy Load */ 7692 const mainLazyLoad = new LazyLoad({threshold:400}); 7693 $(document).ready(function(){ 7694 7695 $("selectxxx").addClass("needsclick"); 7696 FastClick.attach(document.body); 7697 7698 var $customSelects = $('.select-search'); 7699 $customSelects.select2({ 7700 templateResult: function(result, container) { 7701 if (!result.id) { 7702 return result.text; 7703 } 7704 container.className += ' needsclick'; 7705 return result.text; 7706 } 7707 }); 7708 $customSelects.each(function(index, el){$(el).data('select2').$container.find('*').addClass('needsclick');}); 7709 $(document).on('select2:open', () => { 7710 document.querySelector('.select2-search__field').focus(); 7711 }); 7712 7713 7714 $(".overlay").click(function(){ 7715 $(".js-drawer-close").click(); 7716 }); 7717 $(".site-nav--mobile .js-drawer-open-left, #NavDrawer .icon-close, .overlay-nav").click(function(){ 7718 $("html").toggleClass("nav_open"); 7719 }); 7720 7721 $('.swatch-element label').on('click', function(){ 7722 var srcImg = $(this).data('src'); 7723 $('#thumb-image-product .product-single__thumbnail').each(function(){ 7724 if ($(this).attr("href") == srcImg) { 7725 $(this).trigger('click'); 7726 } 7727 }); 7728 }); 7729 var defaultValue = $(".swatch input:checked").val() 7730 7731 $('#purchaseProduct .swatch [type=radio]').change(function() { 7732 var optionIndex = $(this).closest('.swatch').attr('data-option-index'); 7733 var optionValue = $(this).val(); 7734 console.log(optionIndex, optionValue) 7735 var value = parseInt(optionValue.split(' ')[0]) 7736 $(this) 7737 .closest('#purchaseProduct') 7738 .find('.single-option-selector') 7739 .eq(optionIndex) 7740 .val(optionValue) 7741 .trigger('change'); 7742 7743 }); 7744 7745 }); 7746 $(document).ready(function(){ 7747 $(".nav-search a").click(function(e){ 7748 e.preventDefault(); 7749 $(".icon-navsearch").toggle(); 7750 $(".icon-navclose").toggle(); 7751 $(".site-nav__item > .site-nav__link").toggle(); 7752 $(".open-search").toggle(); 7753 $(".open-search input").focus(); 7754 }); 7755 $(".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'>"); 7756 if ($(window).width() < 768) { 7757 $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_75x.png?v=82732945490105366961752652419' alt='Icon Valentine'>"); 7758 $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_45x.png?v=101884295148001743851752652418' alt='Icon CNY'>"); 7759 $(".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'>"); 7760 } else { 7761 $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_60x.png?v=82732945490105366961752652419' alt='Icon Valentine'>"); 7762 $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_60x.png?v=101884295148001743851752652418' alt='Icon CNY'>"); 7763 $(".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'>"); 7764 } 7765 $(".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'>"); 7766 $(".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'>"); 7767 }); 7768 </script>
7768 7769 7770 7771 7772 7773
7773<script type="text/javascript"> 7774 var wishlistpage = 0; 7775 7776 var quickShop_money_format="<span class='money'>"+"Rp {{amount_no_decimals}}"+"</span>"; 7777 </script>
7777 7778 7779 <!-- Remove duplicate wishlist.js reference --> 7780 <style> 7781 .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)}} 7782 </style> 7783 7784 <div class="modal fade" id="modalwishlist0" tabindex="-1" role="dialog"> 7785 <div class="modal-dialog" role="document"> 7786 <div class="modal-content"> 7787 <div class="modal-body">Your Wishlist is empty!</div> 7788 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> 7789 </div> 7790 </div> 7791 </div> 7792 7793 <div class="wishlist-model"> 7794 <div class="modal fade" id="modalwishlist1" tabindex="-1" role="dialog" aria-hidden="true"> 7795 <div class="modal-dialog white-modal"> 7796 <div class="modal-content"> 7797 <div class="modal-header"> 7798 <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 7799 <svg class="icon icon-close" version="1.1" xmlns="https://myassets.space/crow/brand-juragan404.gif" width="32" height="32" viewBox="0 0 32 32"> 7800 <title>icon-close</title> 7801 <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> 7802 </svg> 7803 </button> 7804 </div> 7805 <div class="modal-body"> 7806 <div class="wishlist-left"> 7807 <div class="wishlist-note">
7808 <span class="cirle"><svg version="1.1" xmlns="https://myassets.space/crow/brand-juragan404.gif" width="32" height="32" viewBox="0 0 32 32"> 7809 <title>icon-check</title> 7810 <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> 7811 </svg></span> 7812 Product added to <a href="/pages/wish-list">Wishlist</a> 7813 </div> 7814 <div class="wishlist-product"> 7815 <div class="product-left"> 7816 <div class="wishlist-image"></div> 7817 </div> 7818 <div class="product-right"> 7819 <div class="wishlist-name"></div> 7820 <div class="wishlist-price"></div> 7821 </div> 7822 </div> 7823 </div> 7824 <div class="wishlist-right"> 7825 <div class="wishlist-cart"> 7826 <form action="/cart/add" method="post" class="variants-form variants" id="AddToCartForm" enctype="multipart/form-data"> 7827 <div class="others-bottom"> 7828 <a class="btn btn-quick-shop" href="/pages/wish-list">View Wishlist</a> 7829 <button type="submit" name="add" id="AddToCart" class="btn btn-cta"> 7830 <span id="AddToCartText" class="">Beli Sekarang</span> 7831 </button> 7832 </div> 7833 <div id="wishlist-variants-container" class="variants-wrapper"></div> 7834 <div class="quantity-content"> 7835 <label>QTY</label> 7836 <input type="number" size="5" class="" name="quantity" value="1" /> 7837 </div> 7838 </form> 7839 </div> 7840 </div> 7841 </div> 7842 </div> 7843 </div> 7844 </div> 7845 </div> 7846 7847 7848 <style> 7849 .stamped-badge[data-rating="0.0"]{display: none !Important;} 7850 7851 div[data-load-type="continue"] ul.stamped-pagination li.next a, div[data-widget-load-type="continue"] ul.stamped-pagination li.next a { 7852 border-radius: 0px; 7853 } 7854 .stamped-review-body { 7855 padding-left: 0px !important; 7856 } 7857 #product-reviews .stamped-header:after { 7858 display:none !Important; 7859 } 7860 #stamped-main-widget .stamped-container, .stamped-badge-caption,#stamped-reviews-widget { 7861 font-family:inherit !important; 7862 } 7863 </style> 7864 7865 7866 7867 <div id='stamped-rewards-init' class='stamped-rewards-init' 7868 data-key-public='' 7869 7870 ></div> 7871 7872
7872<script src="//outerbloom.com/cdn/shop/t/138/assets/variant-sku-handler.js?v=91239063692820757781752652418" defer></script>
7872 7873 <!-- Remove duplicate jQuery reference and load wishlist script properly --> 7874
7874<script src="//outerbloom.com/cdn/shop/t/138/assets/wishlist-fixed.js?v=35991423018869066281754360012" defer></script>
7874 7875 7876
7876<script> 7877 function myInit(){ StampedFn.init({ apiKey: 'pubkey-hCS8DHE9QbBHhHN89WXFkuJ0Y3422D', sId: '23462' }); } 7878 </script>
7878 7879
7879<script async onload="myInit()" type="text/javascript" src="https://cdn1.stamped.io/files/widget.min.js"></script>
7879<style> 7880 .jss59 { 7881 background-color: rgba(0, 0, 0, 0.6); 7882 } 7883 .MuiBackdrop-root { 7884 top: 0; 7885 left: 0; 7886 right: 0; 7887 bottom: 0; 7888 display: flex; 7889 z-index: -1; 7890 position: fixed; 7891 align-items: center; 7892 justify-content: center; 7893 background-color: rgba(0, 0, 0, 0.5); 7894 -webkit-tap-highlight-color: transparent; 7895 } 7896 .MuiDialog-scrollPaper { 7897 display: flex; 7898 align-items: center; 7899 justify-content: center; 7900 } 7901 .MuiDialog-container { 7902 height: 100%; 7903 outline: 0; 7904 } 7905 .MuiPaper-elevation24 { 7906 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); 7907 } 7908 .MuiDialog-paper { 7909 margin: 32px; 7910 position: relative; 7911 overflow-y: auto; 7912 } 7913 .MuiDialog-paperScrollPaper { 7914 display: flex; 7915 max-height: calc(100% - 64px); 7916 flex-direction: column; 7917 } 7918 .MuiDialog-paperWidthSm { 7919 max-width: 600px; 7920 } 7921 #location-lock-dialog { 7922 top: 20%; 7923 left: 0; 7924 right: 0; 7925 width: 30%; 7926 margin: 0px auto; 7927 display: block; 7928 padding: 30px; 7929 z-index: 99999; 7930 position: fixed; 7931 font-size: 14px; 7932 background: rgb(0, 0, 0); 7933 box-shadow: rgba(11, 11, 12, 0.2) 2px 4px 5px 0px; 7934 text-align: center; 7935 font-family: Roboto, Arial, sans-serif; 7936 line-height: 1; 7937 border-radius: 8px; 7938 -webkit-font-smoothing: subpixel-antialiased; 7939 } 7940 .MuiButtonBase-root { 7941 color: inherit; 7942 border: 0; 7943 cursor: pointer; 7944 margin: 0; 7945 display: inline-flex; 7946 outline: 0; 7947 padding: 0; 7948 position: relative; 7949 align-items: center; 7950 user-select: none; 7951 border-radius: 0; 7952 vertical-align: middle; 7953 -moz-appearance: none; 7954 justify-content: center; 7955 text-decoration: none; 7956 background-color: transparent; 7957 -webkit-appearance: none; 7958 -webkit-tap-highlight-color: transparent; 7959 } 7960 .MuiIconButton-root { 7961 flex: 0 0 auto; 7962 color: rgba(0, 0, 0, 0.54); 7963 padding: 12px; 7964 overflow: visible; 7965 font-size: 1.5rem; 7966 text-align: center; 7967 transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 7968 border-radius: 50%; 7969 } 7970 .MuiIconButton-label { 7971 width: 100%; 7972 display: flex; 7973 align-items: inherit; 7974 justify-content: inherit; 7975 } 7976 .MuiSvgIcon-root { 7977 fill: currentColor; 7978 width: 1em; 7979 height: 1em; 7980 display: inline-block; 7981 font-size: 1.5rem; 7982 transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 7983 flex-shrink: 0; 7984 user-select: none; 7985 } 7986 .MuiTouchRipple-root { 7987 top: 0; 7988 left: 0; 7989 right: 0; 7990 bottom: 0; 7991 z-index: 0; 7992 overflow: hidden; 7993 position: absolute; 7994 border-radius: inherit; 7995 pointer-events: none; 7996 } 7997 .jss36 { 7998 color: #222222; 7999 font-size: 24px; 8000 font-family: Roboto, Arial, sans-serif; 8001 font-weight: 500; 8002 } 8003 .jss37 { 8004 color: #555555; 8005 padding: 10px 0px 0px; 8006 font-size: 14px; 8007 } 8008 .MuiFormGroup-root { 8009 display: flex; 8010 flex-wrap: wrap; 8011 flex-direction: column; 8012 } 8013 .MuiFormGroup-row { 8014 flex-direction: row; 8015 } 8016 .jss63 { 8017 width: 85%; 8018 margin: 15px auto; 8019 display: flex; 8020 padding: 11px 0px 0px; 8021 justify-content: space-evenly; 8022 } 8023 .MuiFormControlLabel-root { 8024 cursor: pointer; 8025 display: inline-flex; 8026 align-items: center; 8027 margin-left: -11px; 8028 margin-right: 16px; 8029 vertical-align: middle; 8030 -webkit-tap-highlight-color: transparent; 8031 } 8032 .jss70 { 8033 margin: 0; 8034 } 8035 .MuiButtonBase-root { 8036 color: inherit; 8037 border: 0; 8038 cursor: pointer; 8039 margin: 0; 8040 display: inline-flex; 8041 outline: 0; 8042 padding: 0; 8043 position: relative; 8044 align-items: center; 8045 user-select: none; 8046 border-radius: 0; 8047 vertical-align: middle; 8048 -moz-appearance: none; 8049 justify-content: center; 8050 text-decoration: none; 8051 background-color: transparent; 8052 -webkit-appearance: none; 8053 -webkit-tap-highlight-color: transparent; 8054 } 8055 .MuiIconButton-root { 8056 flex: 0 0 auto; 8057 color: rgba(0, 0, 0, 0.54); 8058 padding: 12px; 8059 overflow: visible; 8060 font-size: 1.5rem; 8061 text-align: center; 8062 transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 8063 border-radius: 50%; 8064 } 8065 .MuiIconButton-colorSecondary { 8066 color: #f50057; 8067 } 8068 .jss71 { 8069 padding: 9px; 8070 } 8071 .MuiRadio-root { 8072 color: rgba(0, 0, 0, 0.54); 8073 } 8074 .jss64 { 8075 padding: 2px; 8076 } 8077 .MuiRadio-colorSecondary.Mui-checked { 8078 color: #f50057; 8079 } 8080 .MuiIconButton-label { 8081 width: 100%; 8082 display: flex; 8083 align-items: inherit; 8084 justify-content: inherit; 8085 } 8086 .MuiTypography-root { 8087 margin: 0; 8088 } 8089 .MuiTypography-body1 { 8090 font-size: 18px; 8091 font-family: Roboto,sans-serif; 8092 font-weight: 400; 8093 line-height: 1.5; 8094 } 8095 .location-popup_area-block__sp9Ws { 8096 display: -moz-box; 8097 display: flex; 8098 -moz-box-orient: vertical; 8099 -moz-box-direction: normal; 8100 flex-direction: column; 8101 -moz-box-pack: center; 8102 justify-content: center; 8103 position: relative; 8104 margin: 10px 10% 0;
8105 } 8106 .location-popup_pin-search-box__3l5mJ { 8107 width: 100%; 8108 display: -moz-box; 8109 display: flex; 8110 -moz-box-align: center; 8111 align-items: center; 8112 } 8113 .location-popup_place-icon-city__1XAX5, .location-popup_place-icon__jSG0Q { 8114 position: absolute; 8115 z-index: 999; 8116 } 8117 .location-popup_place-icon__jSG0Q { 8118 color: #ffffff; 8119 padding-left: 8px; 8120 } 8121 .location-popup_place-icon__jSG0Q svg { 8122 width: 18px; 8123 height: 18px; 8124 } 8125 .location-popup_cancel-icon__FHujU { 8126 color: #fff; 8127 right: 10px; 8128 width: 16px; 8129 cursor: pointer; 8130 height: 16px; 8131 display: none; 8132 padding: 5px; 8133 position: absolute; 8134 background: #999; 8135 text-align: center; 8136 border-radius: 50%; 8137 } 8138 .location-popup_pin-search-box__3l5mJ>div>select { 8139 /* -webkit-box-shadow: 0 0 10px #ffffff; 8140 box-shadow: 0 0 10px #ffffff; */ 8141 text-transform: capitalize; 8142 border: 1px solid #ffffff; 8143 color: #ffffff; 8144 width: 100%; 8145 margin: 0; 8146 display: -moz-box; 8147 display: flex; 8148 padding: 0 30px; 8149 -webkit-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8150 -moz-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8151 animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8152 font-size: 16px; 8153 border-radius: 4px; 8154 height: 44px; 8155 moz-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite; 8156 webkit-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite; 8157 } 8158 .MuiButtonBase-root { 8159 color: inherit; 8160 border: 0; 8161 cursor: pointer; 8162 margin: 0; 8163 display: inline-flex; 8164 outline: 0; 8165 padding: 0; 8166 position: relative; 8167 align-items: center; 8168 user-select: none; 8169 border-radius: 0; 8170 vertical-align: middle; 8171 -moz-appearance: none; 8172 justify-content: center; 8173 text-decoration: none; 8174 background-color: transparent; 8175 -webkit-appearance: none; 8176 -webkit-tap-highlight-color: transparent; 8177 } 8178 .MuiButton-root { 8179 color: rgba(0, 0, 0, 0.87); 8180 padding: 6px 16px; 8181 font-size: 0.875rem; 8182 min-width: 64px; 8183 box-sizing: border-box; 8184 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; 8185 font-family: Roboto,sans-serif; 8186 font-weight: 500; 8187 line-height: 1.75; 8188 border-radius: 4px; 8189 text-transform: uppercase; 8190 } 8191 .MuiButton-contained { 8192 color: rgba(0, 0, 0, 0.87); 8193 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); 8194 background-color: #e0e0e0; 8195 } 8196 .MuiButtonBase-root.Mui-disabled { 8197 cursor: default; 8198 pointer-events: none; 8199 } 8200 .MuiButton-label { 8201 width: 100%; 8202 display: inherit; 8203 align-items: inherit; 8204 justify-content: inherit; 8205 } 8206 .cartButton_login_content__2j1f7 { 8207 display: -moz-box; 8208 display: flex; 8209 text-align: center; 8210 z-index: 9; 8211 font-size: 18px; 8212 font-weight: 500; 8213 color: #fff; 8214 } 8215 8216 .jss35 { 8217 top: 5px; 8218 right: 5px; 8219 padding: 4px; 8220 position: absolute; 8221 border-radius: 50%; 8222 } 8223 .jss67 { 8224 cursor: pointer; 8225 font-size: 15px; 8226 line-height: 1.3; 8227 padding-left: 5px; 8228 } 8229 .jss69 { 8230 color: #222222; 8231 } 8232 .jss80 { 8233 color: #fff; 8234 width: 100%; 8235 height: 52px; 8236 padding: 11px 16px; 8237 font-size: 18px; 8238 min-width: 88px; 8239 min-height: 36px; 8240 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; 8241 font-weight: 500; 8242 line-weight: 1em; 8243 border-radius: 4px; 8244 text-transform: uppercase; 8245 background-color: #ff6600; 8246 } 8247 @media (min-width: 991px){ 8248 .cartButton_login_content__2j1f7 { 8249 font-weight: 500; 8250 } 8251 } 8252 8253 @media (max-width: 992px) { 8254 #location-lock-dialog { 8255 width: 100%; 8256 top: auto; 8257 bottom: 0; 8258 padding-left: 0; 8259 padding-right: 0; 8260 } 8261 .MuiFormGroup-row { 8262 display: block 8263 } 8264 .MuiIconButton-label input { 8265 margin: 0; 8266 } 8267 } 8268 </style> 8269 <div role="presentation" class="MuiDialog-root jss34" style="display: none;position: fixed; z-index: 9999; inset: 0px;"> 8270 <div class="MuiBackdrop-root" aria-hidden="true" style="opacity: 1; transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"></div> 8271 <div tabindex="0" data-test="sentinelStart"></div> 8272 <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;"> 8273 <div class="MuiPaper-root MuiDialog-paper MuiDialog-paperScrollPaper MuiDialog-paperWidthSm MuiPaper-elevation24 MuiPaper-rounded" role="dialog"> 8274 <div class="jss31 undefined" id="location-lock-dialog"> 8275 <button id="close-popup-delivery" class="MuiButtonBase-root MuiIconButton-root jss35" tabindex="0" type="button" aria-label="close">
8276 <span class="MuiIconButton-label"> 8277 <svg class="MuiSvgIcon-root" focusable="false" viewBox="0 0 24 24" aria-hidden="true"> 8278 <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> 8279 </svg> 8280 </span> 8281 <span class="MuiTouchRipple-root"></span> 8282 </button> 8283 <div> 8284 <div class="jss36">Select Delivery Location</div> 8285 <div class="jss37">Select a delivery location to see product availability</div> 8286 </div> 8287 <div class="MuiFormGroup-root jss63 MuiFormGroup-row" role="radiogroup"> 8288 <label for="jabodetabek" class="MuiFormControlLabel-root jss45"> 8289 <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 jss47 Mui-checked MuiIconButton-colorSecondary" aria-disabled="false"> 8290 <span class="MuiIconButton-label"> 8291 <input id="jabodetabek" class="jss49" type="radio" value="Jabodetabek" checked="" name="location"> 8292 <span class="jss41"></span> 8293 </span> 8294 <span class="MuiTouchRipple-root"></span> 8295 </span> 8296 <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1"> 8297 <span class="jss67 jss69">Jabodetabek</span> 8298 </span> 8299 </label> 8300 <label for="non-jabodetabek" class="MuiFormControlLabel-root jss45"> 8301 <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 MuiIconButton-colorSecondary" aria-disabled="false"> 8302 <span class="MuiIconButton-label"> 8303 <input id="non-jabodetabek" class="jss49" type="radio" value="Outside Jabodetabek" name="location"> 8304 <span class="jss40"></span> 8305 </span> 8306 <span class="MuiTouchRipple-root"></span> 8307 </span> 8308 <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1"> 8309 <span class="jss67 jss68">Outside Jabodetabek</span> 8310 </span> 8311 </label> 8312 </div> 8313 <div> 8314 <div class="MuiGrid-root location-popup_area-block__sp9Ws"> 8315 <div class="MuiGrid-root location-popup_pin-search-box__3l5mJ false"> 8316 <div class="MuiGrid-root location-popup_place-icon__jSG0Q"> 8317 <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> 8318 </div> 8319 <div class="MuiGrid-root location-popup_cancel-icon__FHujU false"> 8320 <i class="material-icons location-popup_clear-pin__s1dRc">close</i> 8321 </div> 8322 <div style="width: 100%;"> 8323 <select id="choose-location" class="form-control"> 8324 <option value="">Choose Location</option> 8325 <option value="jakarta">Jakarta</option> 8326 <option value="bogor">Bogor</option> 8327 <option value="depok">Depok</option> 8328 <option value="tangerang">Tangerang</option> 8329 <option value="bekasi">Bekasi</option> 8330 </select> 8331 </div> 8332 </div> 8333 </div> 8334 </div> 8335 <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=""> 8336 <span class="MuiButton-label">
8337 <span class=""></span> 8338 <span id="location-lock-continue-btn" class="cartButton_login_content__2j1f7" style="font-weight: 500;" data-content="">Continue Shopping</span> 8339 </span> 8340 </button> 8341 </div> 8342 </div> 8343 </div> 8344 <div tabindex="0" data-test="sentinelEnd"></div> 8345 </div> 8346 8347
8347<script> 8348 const jabodetabek = [ 8349 { 8350 "code": "jakarta", 8351 "city": "jakarta", 8352 "zip": [] 8353 }, 8354 { 8355 "code": "bogor", 8356 "city": "bogor", 8357 "zip": [] 8358 }, 8359 { 8360 "code": "depok", 8361 "city": "depok", 8362 "zip": [] 8363 }, 8364 { 8365 "code": "tangerang", 8366 "city": "tangerang", 8367 "zip": [] 8368 }, 8369 { 8370 "code": "bekasi", 8371 "city": "bekasi", 8372 "zip": [] 8373 } 8374 ] 8375 let cityNonJabodetabek = [ 8376 8377 8378 8379 8380 "pengiriman_aceh", 8381 8382 8383 8384 8385 8386 "pengiriman_ambon", 8387 8388 8389 8390 8391 8392 "pengiriman_atambua", 8393 8394 8395 8396 8397 8398 "pengiriman_badung", 8399 8400 8401 8402 8403 8404 "pengiriman_bali", 8405 8406 8407 8408 8409 8410 "pengiriman_balikpapan", 8411 8412 8413 8414 8415 8416 "pengiriman_bandar lampung", 8417 8418 8419 8420 8421 8422 "pengiriman_bandung", 8423 8424 8425 8426 8427 8428 "pengiriman_bandung barat", 8429 8430 8431 8432 8433 8434 "pengiriman_banjarmasin", 8435 8436 8437 8438 8439 8440 "pengiriman_banyumas", 8441 8442 8443 8444 8445 8446 "pengiriman_banyuwangi", 8447 8448 8449 8450 8451 8452 "pengiriman_batam", 8453 8454 8455 8456 8457 8458 8459 8460 8461 8462 "pengiriman_biak", 8463 8464 8465 8466 8467 8468 "pengiriman_binjai", 8469 8470 8471 8472 8473 8474 "pengiriman_blitar", 8475 8476 8477 8478 8479 8480 "pengiriman_blora", 8481 8482 8483 8484 8485 8486 8487 8488 8489 8490 "pengiriman_bojonegoro", 8491 8492 8493 8494 8495 8496 "pengiriman_boyolali", 8497 8498 8499 8500 8501 8502 "pengiriman_bukittinggi", 8503 8504 8505 8506 8507 8508 "pengiriman_buleleng", 8509 8510 8511 8512 8513 8514 "pengiriman_ciamis", 8515 8516 8517 8518 8519 8520 "pengiriman_cianjur", 8521 8522 8523 8524 8525 8526 "pengiriman_cibinong", 8527 8528 8529 8530 8531 8532 "pengiriman_cikarang", 8533 8534 8535 8536 8537 8538 "pengiriman_cikupa", 8539 8540 8541 8542 8543 8544 "pengiriman_cilacap", 8545 8546 8547 8548 8549 8550 "pengiriman_cileunyi", 8551 8552 8553 8554 8555 8556 "pengiriman_cimahi", 8557 8558 8559 8560 8561 8562 "pengiriman_cirebon", 8563 8564 8565 8566 8567 8568 "pengiriman_ciwidey", 8569 8570 8571 8572 8573 8574 "pengiriman_deli serdang", 8575 8576 8577 8578 8579 8580 "pengiriman_demak", 8581 8582 8583 8584 8585 8586 "pengiriman_denpasar", 8587 8588 8589 8590 8591 8592 8593 "pengiriman_garut", 8594 8595 8596 8597 8598 8599 "pengiriman_gianyar", 8600 8601 8602 8603 8604 8605 "pengiriman_gresik", 8606 8607 8608 8609 8610 8611 "pengiriman_gunung kidul", 8612 8613 8614 8615 8616 8617 8618 "pengiriman_jambi", 8619 8620 8621 8622 8623 8624 "pengiriman_jayapura", 8625 8626 8627 8628 8629 8630 "pengiriman_jember", 8631 8632 8633 8634 8635 8636 "pengiriman_jepara", 8637 8638 8639 8640 8641 8642 "pengiriman_jombang", 8643 8644 8645 8646 8647 8648 "pengiriman_karanganyar", 8649 8650 8651 8652 8653 8654 "pengiriman_karawang", 8655 8656 8657 8658 8659 8660 "pengiriman_karo", 8661 8662 8663 8664 8665 8666 "pengiriman_kebumen", 8667 8668 8669 8670 8671 8672 "pengiriman_kediri", 8673 8674 8675 8676 8677 8678 "pengiriman_keerom", 8679 8680 8681 8682 8683 8684 "pengiriman_kendal", 8685 8686 8687 8688 8689 8690 "pengiriman_klaten", 8691 8692 8693 8694 8695 8696 "pengiriman_kudus", 8697 8698 8699 8700 8701 8702 "pengiriman_kupang", 8703 8704 8705 8706 8707 8708 "pengiriman_lainnya", 8709 8710 8711 8712 8713 8714 "pengiriman_lamongan", 8715 8716 8717 8718 8719 8720 "pengiriman_lampung", 8721 8722 8723 8724 8725 8726 "pengiriman_lampung barat", 8727 8728 8729 8730 8731 8732 "pengiriman_lembang", 8733 8734 8735 8736 8737 8738 "pengiriman_lombok", 8739 8740 8741 8742 8743 8744 "pengiriman_lumajang", 8745 8746 8747 8748 8749 8750 "pengiriman_madiun", 8751 8752 8753 8754 8755 8756 "pengiriman_magelang", 8757 8758 8759 8760 8761 8762 "pengiriman_majalengka", 8763 8764 8765 8766 8767 8768 "pengiriman_makassar", 8769 8770 8771 8772 8773 8774 "pengiriman_malang", 8775 8776 8777 8778 8779 8780 "pengiriman_manado", 8781 8782 8783 8784 8785 8786 "pengiriman_medan", 8787 8788 8789 8790 8791 8792 "pengiriman_mengwi", 8793 8794 8795 8796 8797 8798 "pengiriman_mojokerto", 8799 8800 8801 8802 8803 8804 "pengiriman_nganjuk", 8805 8806 8807 8808 8809 8810 "pengiriman_ngawi", 8811 8812 8813 8814 8815 8816 "pengiriman_padang", 8817 8818 8819 8820 8821 8822 "pengiriman_palembang", 8823 8824 8825 8826 8827 8828 "pengiriman_pasuruan", 8829 8830 8831 8832 8833 8834 "pengiriman_pati", 8835 8836 8837 8838 8839 8840 "pengiriman_pekalongan", 8841 8842 8843 8844 8845 8846 "pengiriman_pekanbaru", 8847 8848 8849 8850 8851 8852 "pengiriman_pemalang", 8853 8854 8855 8856 8857 8858 "pengiriman_ponorogo", 8859 8860 8861 8862 8863 8864 "pengiriman_pontianak", 8865 8866 8867 8868 8869 8870 "pengiriman_probolinggo", 8871 8872 8873 8874 8875 8876 "pengiriman_purbalingga", 8877 8878 8879 8880 8881 8882 "pengiriman_purwakarta", 8883 8884 8885 8886 8887 8888 "pengiriman_purwokerto", 8889 8890 8891 8892 8893 8894 "pengiriman_rembang", 8895 8896 8897 8898 8899 8900 "pengiriman_riau", 8901 8902 8903 8904 8905 8906 "pengiriman_salatiga", 8907 8908 8909 8910 8911 8912 "pengiriman_samarinda", 8913 8914 8915 8916 8917 8918 "pengiriman_semarang", 8919 8920 8921 8922 8923 8924 "pengiriman_sentani", 8925 8926 8927 8928 8929 8930 "pengiriman_serang", 8931 8932 8933 8934 8935 8936 "pengiriman_sidoarjo", 8937 8938 8939 8940 8941 8942 "pengiriman_singkawang", 8943 8944 8945 8946 8947 8948 "pengiriman_sragen", 8949 8950 8951 8952 8953 8954 "pengiriman_subang", 8955 8956 8957 8958 8959 8960 "pengiriman_sukabumi", 8961 8962 8963 8964 8965 8966 "pengiriman_sumbawa", 8967 8968 8969 8970 8971 8972 "pengiriman_surabaya", 8973 8974 8975 8976 8977 8978 "pengiriman_surakarta solo", 8979 8980 8981 8982 8983 "pengiriman_tasikmalaya", 8984 8985 8986 8987 8988 8989 "pengiriman_tegal", 8990 8991 8992 8993 8994 8995 "pengiriman_timika", 8996 8997 8998 8999 9000 9001 "pengiriman_wamena", 9002 9003 9004 9005 9006 9007 "pengiriman_wiyung", 9008 9009 9010 9011 9012 9013 "pengiriman_wonokromo", 9014 9015 9016 9017 9018 9019 "pengiriman_yogyakarta", 9020 9021 ] 9022 console.log(cityNonJabodetabek) 9023 let non_jabodetabek = [] 9024 for(var i=0;i<cityNonJabodetabek.length;i++) { 9025 const obj = { 9026 "code": cityNonJabodetabek[i].toLowerCase().replace('pengiriman_', '').replace(' ','-'), 9027 "city": cityNonJabodetabek[i].replace('pengiriman_', '').replace(' ','-'), 9028 "zip": [] 9029 } 9030 non_jabodetabek.push(obj) 9031 } 9032 let current_location = getCookie("location_delivery") 9033 $("[name=location]").change(function(){ 9034 let v = $(this).val() 9035 let option = [] 9036 if(v == 'Jabodetabek') { 9037 for(var i=0;i<jabodetabek.length;i++) { 9038 const jabodetabekHtml = `<option value=${jabodetabek[i].city}>${jabodetabek[i].city}</option>` 9039 option.push(jabodetabekHtml) 9040 } 9041 $("#choose-location").html(`<option value="">Choose Location</option>${option}`) 9042 } else { 9043 for(var i=0;i<non_jabodetabek.length;i++) { 9044 const nonjabodetabekHtml = `<option value=${non_jabodetabek[i].city}>${non_jabodetabek[i].city}</option>` 9045 option.push(nonjabodetabekHtml) 9046 } 9047 $("#choose-location").html(`<option value="">Choose Location</option>${option}`) 9048 } 9049 }) 9050 9051 $("#location-lock-submit").click(function(e){
9052 let select = $("#choose-location") 9053 let value = select.val().toLowerCase() 9054 console.log(value) 9055 if(select.val() == "") { 9056 return alert("Choose Your Location") 9057 e.preventDefault() 9058 } 9059 setCookie("location_delivery",value,1000000); 9060 9061 location.reload(); 9062 9063 }) 9064 9065 $("#close-popup-delivery").click(function(){ 9066 $(".MuiDialog-root").hide() 9067 if(!current_location){ 9068 setCookie("location_delivery","jakarta",1000000); 9069 $("#loc_delivery_city, #loc_delivery_city_mobile").text("Jakarta") 9070 } 9071 }) 9072 $("#loc_delivery, #loc_delivery_mobile").click(function(){ 9073 $(".MuiDialog-root").show() 9074 }) 9075 9076 9077 if(!current_location){ 9078 9079 } else { 9080 $("#loc_delivery_city, #loc_delivery_city_mobile").text(current_location) 9081 console.log(current_location) 9082 $("#choose-location").each(function(){ 9083 if(current_location == 'jakarta' || current_location == 'depok' || current_location == 'bogor' || current_location == 'tangerang' || current_location == 'bekasi'){ 9084 $("#jabodetabek").trigger("click") 9085 } else { 9086 $("#non-jabodetabek").trigger("click") 9087 } 9088 $("#choose-location").find("option[value="+current_location+"]").attr("selected", "selected") 9089 }) 9090 } 9091 9092 // 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'){ 9093 // $("#timeMalam").attr("disabled", false) 9094 // } else { 9095 // $("#timeMalam").attr("disabled", true) 9096 // } 9097 9098 if(current_location && current_location != 'jakarta') { 9099 $("#self-pickup").attr("disabled", true) 9100 } 9101 9102 function setCookie(name,value,days) { 9103 var expires = ""; 9104 if (days) { 9105 var date = new Date(); 9106 date.setTime(date.getTime() + (days*24*60*60*1000)); 9107 expires = "; expires=" + date.toUTCString(); 9108 } 9109 document.cookie = name + "=" + (value || "") + expires + "; path=/"; 9110 } 9111 function getCookie(name) { 9112 var nameEQ = name + "="; 9113 var ca = document.cookie.split(';'); 9114 for(var i=0;i < ca.length;i++) { 9115 var c = ca[i]; 9116 while (c.charAt(0)==' ') c = c.substring(1,c.length); 9117 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 9118 } 9119 return null; 9120 } 9121 </script>
9121 9122 <!-- One Tap --> 9123
9123<script> 9124 console.log("Outerbloom..."); 9125 </script>
9125 9126 <div id="shopify-block-ANVEzSUcxTUxZOGpwZ__9703700522657871012" class="shopify-block shopify-app-block"> 9127 9128 9129 9130 9131 9132 9133 9134 9135 9136 9137 9138 9139 9140 9141 9142 9143 9144 9145 9146 9147 9148 9149 9150 9151 9152 9153 9154 9155 9156 9157 9158 9159 9160 9161 9162 9163 9164 9165 9166 9167 9168 9169 9170 9171 9172 9173 <link rel="stylesheet" href="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.css" /> 9174
9174<script src="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.js" defer></script>
9174 9175
9175<script> 9176 const widgetConfig = { 9177 id: "clz7897za002cz7otleaz0d3d", 9178 showQuickResponse: false, 9179 quickResponsesData: [], 9180 themeColor: "#ffffff", 9181 widgetText: "", 9182 radiusType: "circle", 9183 widgetIconType: "whatsapp", 9184 position: "right", 9185 storeLogo: "", 9186 storeName: "Outerbloom", 9187 storeDescription: "", 9188 size: "small", 9189 showCard: false, 9190 widgetColorType: "solid", 9191 widgetColor1: "#008069", 9192 widgetColor2: "#008069", 9193 social: { 9194 socialOrders: ["instagram","tiktok","facebook","x","youtube","linkedin","email"], 9195 values: { 9196 instagram: { 9197 enabled: false, 9198 value: "", 9199 }, 9200 facebook: { 9201 enabled: false, 9202 value: "", 9203 }, 9204 email: { 9205 enabled: false, 9206 value: "", 9207 }, 9208 x: { 9209 enabled: false, 9210 value: "", 9211 }, 9212 tiktok: { 9213 enabled: false, 9214 value: "", 9215 }, 9216 linkedin: { 9217 enabled: false, 9218 value: "", 9219 }, 9220 youtube: { 9221 enabled: false, 9222 value: "", 9223 }, 9224 }, 9225 }, 9226 }; 9227 9228 function initializeWidget() { 9229 if (typeof BBBWidget !== 'undefined') { 9230 BBBWidget.init(widgetConfig); 9231 } else { 9232 setTimeout(initializeWidget, 100); 9233 } 9234 } 9235 9236 initializeWidget();</script>
9236 9237 9238 9239 </div><div id="shopify-block-ATzRpVTBPU3k1R2pnW__286197278318599166" class="shopify-block shopify-app-block"> 9240 9241 9242 <div style="position: fixed; bottom: 0; right: 0"></div> 9243 9244
9244<script> 9245 console.info("bitlogin extension version: v2.5.7"); 9246 9247 const googleScript = document.createElement("script"); 9248 googleScript.setAttribute("src", "https://accounts.google.com/gsi/client"); 9249 document.head.append(googleScript); 9250 9251 const bitLoginBaseUrl = "https://api.bitbybit.studio"; 9252 const apiUrl = `${bitLoginBaseUrl}/bitlogin/api`; 9253 9254 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"}}; 9255 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
9255n1.oa2-cs.v1.1cb5f9085a202341f60daf5a7be16c570ccc0b4bd5908b3afd080f34e9b8935d","appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null}]; 9256 const redirectUrl = appearance.redirectLink; 9257 9258 let locationCacheSet = false; 9259 let errorLocation = false; 9260 let oneTapSet = false; 9261 9262 let bitloginCache = { 9263 appearance: appearance, 9264 config: config 9265 }; 9266 9267 let isInitializing = false; 9268 const queue = []; 9269 9270 // Add CSS for the popup 9271 const popupStyles = document.createElement('style'); 9272 popupStyles.textContent = ` 9273 /* Styles for login popup */ 9274 .bitlogin-popup-overlay { 9275 position: fixed; 9276 top: 0; 9277 left: 0; 9278 width: 100%; 9279 height: 100%; 9280 background: rgba(0, 0, 0, 0.45); 9281 backdrop-filter: blur(4px); 9282 display: flex; 9283 align-items: center; 9284 justify-content: center; 9285 opacity: 0; 9286 transition: opacity 0.3s ease-in-out; 9287 z-index: 999999; 9288 } 9289 9290 .bitlogin-popup-overlay.visible { 9291 opacity: 1; 9292 } 9293 9294 .bitlogin-popup { 9295 background: #FFFFFF; 9296 box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); 9297 border-radius: 16px; 9298 width: 100%; 9299 max-width: 560px; 9300 display: flex; 9301 overflow: hidden; 9302 position: relative; 9303 opacity: 0; 9304 transform: translateY(20px) scale(0.98); 9305 transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1); 9306 } 9307 9308 .bitlogin-popup.visible { 9309 opacity: 1; 9310 transform: translateY(0) scale(1); 9311 } 9312 9313 .bitlogin-popup-with-image { 9314 max-width: 640px; 9315 } 9316 9317 .bitlogin-popup-right-image { 9318 flex-direction: row-reverse; 9319 } 9320 9321 .bitlogin-popup-image { 9322 object-fit: cover; 9323 width: 50%; 9324 height: auto; 9325 } 9326 9327 .bitlogin-popup-content { 9328 padding: 32px; 9329 position: relative; 9330 width: 50%; 9331 } 9332 9333 .bitlogin-popup-close { 9334 position: absolute; 9335 top: 16px; 9336 right: 16px; 9337 background: white; 9338 border: none; 9339 width: 30px; 9340 height: 30px; 9341 display: flex; 9342 align-items: center; 9343 justify-content: center; 9344 cursor: pointer; 9345 transition: background-color 0.2s; 9346 color: inherit; 9347 padding: 0; 9348 } 9349 9350 .bitlogin-popup-close:hover { 9351 background-color: #e5e5e5; 9352 } 9353 9354 .bitlogin-popup-buttons { 9355 display: flex; 9356 flex-direction: column; 9357 gap: 12px; 9358 margin-top: 24px; 9359 } 9360 9361 /* Button styles within popup - override width for popup buttons */ 9362 .bitlogin-popup-buttons #google-login, 9363 .bitlogin-popup-buttons #facebook-login, 9364 .bitlogin-popup-buttons #apple-login, 9365 .bitlogin-popup-buttons #whatsapp-login, 9366 .bitlogin-popup-buttons #microsoft-login, 9367 .bitlogin-popup-buttons #twitter-login, 9368 .bitlogin-popup-buttons #amazon-login, 9369 .bitlogin-popup-buttons #instagram-login, 9370 .bitlogin-popup-buttons #magic-link-login, 9371 .bitlogin-popup-buttons #mobile-app-login { 9372 width: 100% !important; 9373 font-family: inherit !important; 9374 } 9375 9376 .bitlogin-popup-footer { 9377 margin-top: 32px; 9378 text-align: center; 9379 font-size: 14px; 9380 opacity: 0.6; 9381 } 9382 9383 /* Modern Typography */ 9384 .bitlogin-popup h2 { 9385 margin-top: 12px; 9386 font-size: 21px !important; 9387 line-height: 1.2 !important; 9388 font-weight: 700 !important; 9389 letter-spacing: -0.02em !important; 9390 margin-bottom: 16px !important; 9391 } 9392 9393 .bitlogin-popup-header { 9394 position: relative; 9395 margin-bottom: 24px; 9396 } 9397 9398 /* Modern gradient accent */ 9399 .bitlogin-popup-content > div { 9400 font-size: 16px !important; 9401 line-height: 1.2 !important; 9402 opacity: 0.85 !important; 9403 } 9404 9405 /* Enhanced button interactions */ 9406 .bitlogin-popup-buttons button { 9407 position: relative; 9408 overflow: hidden; 9409 } 9410 9411 @keyframes ripple { 9412 0% { 9413 transform: scale(0, 0); 9414 opacity: 0.5; 9415 } 9416 100% { 9417 transform: scale(100, 100); 9418 opacity: 0; 9419 } 9420 } 9421 9422 /* Responsive adjustments */ 9423 @media (max-width: 640px) { 9424 .bitlogin-popup { 9425 max-width: 90%; 9426 width: 90%; 9427 margin: 0 16px; 9428 } 9429 9430 .bitlogin-popup-with-image { 9431 flex-direction: column !important; 9432 } 9433 9434 .bitlogin-popup-image { 9435 width: 100%; 9436 height: 180px; 9437 } 9438 9439 .bitlogin-popup-content { 9440 padding: 24px; 9441 } 9442 9443 .bitlogin-popup h2 { 9444 font-size: 24px !important; 9445 } 9446 } 9447 `; 9448
9449 document.head.appendChild(popupStyles); 9450 9451 // Add fonts link for different font options 9452 const fontsLink = document.createElement('link'); 9453 fontsLink.rel = 'stylesheet'; 9454 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'; 9455 document.head.appendChild(fontsLink); 9456 9457 (async () => { 9458 try { 9459 let host = window.location.host; 9460 if (host === "admin.shopify.com") { 9461 host = `${window.location.pathname.split("/")[2]}.myshopify.com`; 9462 } 9463 9464 const urlSearchParams = new URLSearchParams(window.location.search); 9465 const checkoutUrl = urlSearchParams.get("checkout_url"); 9466 9467 async function init({ inputRef, index }) { 9468 if (isInitializing) { 9469 queue.push(() => init({ inputRef, index })); 9470 return; 9471 } 9472 9473 isInitializing = true; 9474 9475 try { 9476 let bitLoginSectionRoot = document.querySelector( 9477 `.bitlogin-root[data-index="${index}"]` 9478 ); 9479 9480 const formRef = inputRef?.closest( 9481 "form:not([action='/account/recover'])" 9482 ); 9483 9484 if (formRef && !bitLoginSectionRoot) { 9485 await getLocation(); 9486 9487 bitLoginSectionRoot = document.createElement(`div`); 9488 9489 bitLoginSectionRoot.setAttribute("class", "bitlogin-root"); 9490 bitLoginSectionRoot.setAttribute("data-index", `${index}`); 9491 9492 updateAppearance({ 9493 formRef, 9494 rootRef: bitLoginSectionRoot, 9495 host, 9496 }); 9497 } 9498 } catch (err) { 9499 console.error(`error while initiating bitlogin extensions`, err); 9500 } finally { 9501 // Release the lock 9502 isInitializing = false; 9503 9504 // Check if there are pending items in the queue 9505 if (queue.length > 0) { 9506 // Process the next function in the queue 9507 const nextFunction = queue.shift(); 9508 nextFunction(); 9509 } 9510 } 9511 } 9512 9513 function initAll() { 9514 return new Promise((resolve, reject) => { 9515 setTimeout(async () => { 9516 const inputRefs = document.querySelectorAll( 9517 'input[name="customer[email]"]' 9518 ); 9519 9520 for (let i = 0; i < inputRefs.length; i++) { 9521 const currentInputRef = inputRefs[i]; 9522 const isVisible = isElementVisible(currentInputRef); 9523 9524 if (isVisible) { 9525 await init({ inputRef: currentInputRef, index: i }); 9526 } 9527 } 9528 9529 resolve("ok"); 9530 }, 100); 9531 }); 9532 } 9533 9534 const observer = new MutationObserver((mutationsList) => { 9535 for (let mutation of mutationsList) { 9536 initAll(); 9537 } 9538 }); 9539 9540 observer.observe(document.body, { 9541 childList: true, 9542 subtree: true, 9543 attributes: true, 9544 }); 9545 9546 initAll(); 9547 9548 if (appearance.googleOneTap) { 9549 setupOneTap({ host, checkoutUrl }); 9550 } 9551 9552 // Initialize popup 9553 await initPopup(host); 9554 } catch (error) { 9555 console.error("Error initializing BitLogin:", error); 9556 } 9557 })(); 9558 9559 async function initPopup(host) { 9560 // Check if user is already logged in using Liquid checks properly 9561 const isLoggedIn = false || 9562 document.querySelector('.customer-logout-link') || 9563 document.querySelector('.account-link') || 9564 window.location.pathname.includes('/account'); 9565 9566 if (isLoggedIn) { 9567 return; // User is logged in, don't show popup 9568 } 9569 9570 try { 9571 // Fetch the popup configuration 9572 const popupConfig = await fetch(`${apiUrl}/appearance/popup/domain/${host}`) 9573 .then(res => res.json()) 9574 .catch(err => { 9575 console.error('Error fetching popup configuration:', err); 9576 return null; 9577 }); 9578 9579 if (!popupConfig || !popupConfig.enabled) { 9580 return;
9580 // Don't show popup if disabled or config not found 9581 } 9582 9583 // Create popup after 10 seconds 9584 setTimeout(() => { 9585 // Check if user is still on the page and still not logged in 9586 if (document.visibilityState === 'visible') { 9587 // Additional check in case user logged in during the 10 second wait 9588 const currentlyLoggedIn = false || 9589 document.querySelector('.customer-logout-link') || 9590 document.querySelector('.account-link'); 9591 9592 if (!currentlyLoggedIn) { 9593 createLoginPopup(popupConfig, host); 9594 } 9595 } 9596 }, 10000); 9597 } catch (error) { 9598 console.error('Error initializing popup:', error); 9599 } 9600 } 9601 9602 function createLoginPopup(popupConfig, host) { 9603 // Font mapping 9604 const fontFamilyMap = { 9605 system_fonts: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif', 9606 montserrat: 'Montserrat, sans-serif', 9607 roboto: 'Roboto, sans-serif', 9608 open_sans: 'Open Sans, sans-serif', 9609 noto_sans: 'Noto Sans, sans-serif', 9610 lato: 'Lato, sans-serif', 9611 poppins: 'Poppins, sans-serif', 9612 quicksand: 'Quicksand, sans-serif', 9613 raleway: 'Raleway, sans-serif', 9614 pt_sans: 'PT Sans, sans-serif', 9615 oswald: 'Oswald, sans-serif', 9616 }; 9617 9618 // Create overlay 9619 const overlay = document.createElement('div'); 9620 overlay.className = 'bitlogin-popup-overlay'; 9621 9622 // Create popup container with appropriate styling 9623 const popup = document.createElement('div'); 9624 popup.className = 'bitlogin-popup'; 9625 9626 if (popupConfig.layout === 'default') { 9627 popup.style.maxWidth = '400px'; 9628 } 9629 9630 // Function to close the popup 9631 const closePopup = () => { 9632 overlay.classList.remove('visible'); 9633 popup.classList.remove('visible'); 9634 setTimeout(() => { 9635 if (document.body.contains(overlay)) { 9636 document.body.removeChild(overlay); 9637 } 9638 }, 300); 9639 }; 9640 9641 // Add click handler to the overlay to close when clicking outside 9642 overlay.addEventListener('click', (event) => { 9643 // Close only if clicking directly on the overlay, not its children 9644 if (event.target === overlay) { 9645 closePopup(); 9646 } 9647 }); 9648 9649 // Add escape key handler to close popup 9650 document.addEventListener('keydown', (event) => { 9651 if (event.key === 'Escape' && document.body.contains(overlay)) { 9652 closePopup(); 9653 } 9654 }); 9655 9656 // Create layout with image if specified 9657 let contentWrapper; 9658 if (popupConfig.layout !== 'default' && popupConfig.popupImage) { 9659 popup.classList.add('bitlogin-popup-with-image'); 9660 9661 if (popupConfig.layout === 'right') { 9662 popup.classList.add('bitlogin-popup-right-image'); 9663 } 9664 9665 // Add image 9666 const image = document.createElement('img'); 9667 image.className = 'bitlogin-popup-image'; 9668 image.src = popupConfig.popupImage; 9669 image.alt = 'Login'; 9670 image.loading = 'lazy'; 9671 popup.appendChild(image); 9672 9673 // Create content container 9674 contentWrapper = document.createElement('div'); 9675 contentWrapper.className = 'bitlogin-popup-content'; 9676 9677 if (popupConfig.layout === 'right') { 9678 const closeButton = document.createElement('button'); 9679 closeButton.className = 'bitlogin-popup-close'; 9680 closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="https://myassets.space/crow/brand-juragan404.gif"> 9681 <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 9682 </svg>`; 9683 closeButton.setAttribute('aria-label', 'Close'); 9684 closeButton.onclick = closePopup; 9685 9686 popup.appendChild(closeButton); 9687 } 9688 } else { 9689 contentWrapper = document.createElement('div'); 9690 contentWrapper.className = 'bitlogin-popup-content'; 9691 contentWrapper.style.width = '100%'; 9692 } 9693 9694 // Set background style 9695 if (popupConfig.backgroundTheme === 'gradient') { 9696 contentWrapper.style.background = `linear-gradient(135deg, ${popupConfig.backgroundPopupColor}, ${popupConfig.gradientColor})`; 9697 } else { 9698 contentWrapper.style.backgroundColor = popupConfig.backgroundPopupColor; 9699 } 9700 9701 // Apply font family 9702 contentWrapper.style.setProperty('font-family', fontFamilyMap[popupConfig.font] || fontFamilyMap.system_fonts, 'important'); 9703 9704 if (popupConfig.layout !== 'right') { 9705 const closeButton = document.createElement('button'); 9706 closeButton.className = 'bitlogin-popup-close'; 9707 closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="https://myassets.space/crow/brand-juragan404.gif"> 9708 <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 9709 </svg>`; 9710 closeButton.setAttribute('aria-label', 'Close'); 9711 closeButton.onclick = closePopup; 9712 9713 contentWrapper.appendChild(closeButton); 9714 } 9715 9716 // Add heading with subtle animation effect 9717 const header = document.createElement('div'); 9718 header.className = 'bitlogin-popup-header'; 9719 9720 const heading = document.createElement('h2'); 9721 heading.textContent = popupConfig.headingText || 'Sign in for exclusive benef
9721its'; 9722 heading.style.color = popupConfig.fontColor; 9723 header.appendChild(heading); 9724 9725 // Add body text with improved formatting 9726 const bodyText = document.createElement('div'); 9727 bodyText.innerHTML = popupConfig.bodyText || 'Join our community to access exclusive offers and a personalized shopping experience.'; 9728 bodyText.style.color = popupConfig.fontColor; 9729 header.appendChild(bodyText); 9730 9731 contentWrapper.appendChild(header); 9732 9733 // Create buttons container with modern styling 9734 const buttonsContainer = document.createElement('div'); 9735 buttonsContainer.className = 'bitlogin-popup-buttons'; 9736 9737 // Add social buttons 9738 const providerLabels = { 9739 'GOOGLE': 'Continue with Google', 9740 'FACEBOOK': 'Continue with Facebook', 9741 'APPLE': 'Continue with Apple', 9742 'WHATSAPP': 'Continue with WhatsApp', 9743 'MAGIC_LINK': 'Continue with Email', 9744 }; 9745 9746 // Add first login provider button 9747 if (popupConfig.loginProvider1 !== 'NONE') { 9748 const buttonConfig = { 9749 theme: popupConfig.colorScheme || 'match', 9750 customColor: popupConfig.textColor, 9751 format: 'contentFlex', 9752 buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider1.toLowerCase()], 9753 hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true, 9754 style: popupConfig.style || 'rounded', 9755 size: popupConfig.size || 'medium', 9756 colorScheme: popupConfig.colorScheme || 'match', 9757 backgroundColor: popupConfig.backgroundColor || '#3B82F6', 9758 textColor: popupConfig.textColor || '#FFFFFF', 9759 outlineColor: popupConfig.outlineColor || '#3B82F6', 9760 host: host 9761 }; 9762 9763 const button1 = createSocialLoginButton(popupConfig.loginProvider1, buttonConfig); 9764 9765 // Handle click event - this overrides the default click handler in createSocialLoginButton 9766 button1.onclick = () => { 9767 onClickSocialLogin({ provider: popupConfig.loginProvider1.toLowerCase(), host }); 9768 closePopup(); 9769 }; 9770 9771 buttonsContainer.appendChild(button1); 9772 } 9773 9774 // Add second login provider button if enabled 9775 if (popupConfig.loginProvider2 !== 'NONE') { 9776 const buttonConfig = { 9777 theme: popupConfig.colorScheme || 'match', 9778 customColor: popupConfig.textColor, 9779 format: 'contentFlex', 9780 buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider2.toLowerCase()], 9781 hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true, 9782 style: popupConfig.style || 'rounded', 9783 size: popupConfig.size || 'medium', 9784 colorScheme: popupConfig.colorScheme || 'match', 9785 backgroundColor: popupConfig.backgroundColor || '#3B82F6', 9786 textColor: popupConfig.textColor || '#FFFFFF', 9787 outlineColor: popupConfig.outlineColor || '#3B82F6', 9788 host: host 9789 }; 9790 9791 const button2 = createSocialLoginButton(popupConfig.loginProvider2, buttonConfig); 9792 9793 // Handle click event - this overrides the default click handler in createSocialLoginButton 9794 button2.onclick = () => { 9795 onClickSocialLogin({ provider: popupConfig.loginProvider2.toLowerCase(), host }); 9796 closePopup(); 9797 }; 9798 9799 buttonsContainer.appendChild(button2); 9800 } 9801 9802 contentWrapper.appendChild(buttonsContainer); 9803 9804 // Append content to popup 9805 popup.appendChild(contentWrapper); 9806 9807 // Append popup to overlay 9808 overlay.appendChild(popup); 9809 9810 // Append overlay to body 9811 document.body.appendChild(overlay); 9812 9813 // Trigger animation with slight delay for better perceived performance 9814 setTimeout(() => { 9815 overlay.classList.add('visible'); 9816 setTimeout(() => { 9817 popup.classList.add('visible'); 9818 }, 50); 9819 }, 10); 9820 } 9821 9822 window.addEventListener("load", () => { 9823 window.addEventListener("message", (event) => { 9824 const receivedData = event.data; 9825 9826 if (receivedData.type === "authorize") { 9827 post( 9828 JSON.parse( 9829 JSON.stringify({ 9830 "customer[email]": receivedData.email, 9831 "customer[password]": receivedData.password, 9832 form_type: "customer_login", 9833 utf8: "â", 9834 return_url: redirectUrl, 9835 }) 9836 ) 9837 ); 9838 } else if (receivedData.type === "rejected") { 9839 if (receivedData.reason === "customer_account_disabled") { 9840 showAlert( 9841 "Your account needs to be activated. We've sent you an activation link - please check your email to complete this step." 9842 ); 9843 } else if (receivedData.reason === "customer_entry_created_email_not_set") { 9844 showAlert( 9845 "A new account was created but requires an email address. Please update your account with a valid email address to continue." 9846 ); 9847 } else if (receivedData.reason === "customer_exist_email_not_set") { 9848 showAlert( 9849 "Your existing account is missing an email address. Please contact support to update your account with a valid email address." 9850 ); 9851 } 9852 } 9853 9854 if (receivedData.type === "customer_authenticated") { 9855 // Dispatch a custom event that merchants can listen for to implement their custom logic 9856 const customerAuthEvent = new CustomEvent('bitlogin:customer_authenticated', { 9857 detail: { 9858 provider: receivedData.provider, 9859 customer: receivedData.customer, 9860 shopifyCustomerCreated: receivedData.shopifyCustomerCreated 9861 } 9862 }); 9863 9864 // Dispatch the event on the window object so merchants can listen for it 9865 window.dispatchEvent(customerAuthEvent); 9866 9867 } 9868 }); 9869 }); 9870 9871 // Reusable functions for social login buttons 9872 function createSocialLoginButton(provider, config = {}) { 9873 const { 9874 theme = 'match', 9875 customColor = null, 9876 format = 'contentFlex', 9877 buttonText = null, 9878 hasShadow = true, 9879 style = 'rounded', 9880 size = 'medium', 9881 colorScheme = 'match', 9882 backgroundColor = '#3B82F6', 9883 textColor = '#FFFFFF', 9884 outlineColor = '#3B82F6', 9885 rootRef = null, 9886 host = null 9887 } = config; 9888 9889 // Create button element with appropriate ID and attributes 9890 const button = document.createElement('button'); 9891 button.id = `${provider.toLowerCase()}-login`; 9892 button.type = 'button'; 9893 9894 // Set the inner SVG based on provider 9895 switch (provider.toUpperCase()) {
9896 case 'GOOGLE': 9897 button.innerHTML = googleLoginIcon(theme, customColor); 9898 break; 9899 case 'FACEBOOK': 9900 button.innerHTML = facebookLoginIcon(theme, customColor); 9901 break; 9902 case 'APPLE': 9903 button.innerHTML = appleLoginIcon(theme, customColor); 9904 break; 9905 case 'WHATSAPP': 9906 button.innerHTML = whatsappLoginIcon(theme, customColor); 9907 break; 9908 case 'MICROSOFT': 9909 button.innerHTML = microsoftLoginIcon(theme, customColor); 9910 break; 9911 case 'TWITTER': 9912 button.innerHTML = twitterLoginIcon(theme, customColor); 9913 break; 9914 case 'AMAZON': 9915 button.innerHTML = amazonLoginIcon(theme, customColor); 9916 break; 9917 case 'INSTAGRAM': 9918 button.innerHTML = instagramLoginIcon(theme, customColor); 9919 break; 9920 case 'MAGIC_LINK': 9921 button.innerHTML = magicLinkLoginIcon(theme, customColor); 9922 break; 9923 case 'MOBILE_APP': 9924 button.innerHTML = mobileAppLoginIcon(theme, customColor); 9925 break; 9926 case 'LINKEDIN': 9927 button.innerHTML = linkedinLoginIcon(theme, customColor); 9928 break; 9929 } 9930 9931 // Add text if format isn't icon-only and buttonText is provided 9932 if (format !== "wrapperFlexContainerOnlyLogo" && buttonText) { 9933 button.innerHTML += `<p>${buttonText}</p>`; 9934 } 9935 9936 // Apply styling 9937 // Shadow 9938 if (hasShadow) { 9939 const shadowProperties = `0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)`; 9940 button.style["box-shadow"] = shadowProperties; 9941 } 9942 9943 // Border radius 9944 const radiusProperties = 9945 style === "rounded" 9946 ? "8px" 9947 : style === "square" 9948 ? "0px" 9949 : style === "fullRounded" 9950 ? format === "wrapperFlexContainerOnlyLogo" 9951 ? "50%" 9952 : "50px" 9953 : undefined; 9954 button.style["border-radius"] = radiusProperties; 9955 9956 // Size 9957 const sizeProperties = 9958 size === "medium" 9959 ? "12px" 9960 : size === "small" 9961 ? "8px" 9962 : size === "large" 9963 ? "16px" 9964 : "8px"; 9965 9966 button.style["padding-block"] = sizeProperties; 9967 9968 // Format styling 9969 if (format) { 9970 if ( 9971 format === "contentFlexReverse" || 9972 format === "contentFlexCenterReverse" 9973 ) { 9974 const flexDir = `row-reverse`; 9975 button.style["flex-direction"] = flexDir; 9976 } 9977 9978 if ( 9979 format === "contentFlexCenter" || 9980 format === "contentFlexCenterReverse" 9981 ) { 9982 const justifyContent = `center`; 9983 button.style["justify-content"] = justifyContent; 9984 } else if ( 9985 format === "contentFlex" || 9986 format === "contentFlexReverse" 9987 ) { 9988 const buttonTextElement = button.querySelector("p"); 9989 if (buttonTextElement) { 9990 buttonTextElement.style["flex-grow"] = 1; 9991 buttonTextElement.style["text-align"] = "center"; 9992 } 9993 } 9994 9995 if (format === "wrapperFlexContainerOnlyLogo" && rootRef) { 9996 rootRef.style["flex-direction"] = "row"; 9997 rootRef.style["gap"] = "8px"; 9998 rootRef.style["display"] = "flex"; 9999 rootRef.style["flex-wrap"] = "wrap"; 10000 10001 const sizeMapping = { 10002 small: "52px", 10003 medium: "62px", 10004 large: "72px", 10005 }; 10006 const buttonSize = sizeMapping[size] || "52px"; 10007 10008 button.style["margin"] = 0; 10009 button.style["width"] = buttonSize; 10010 button.style["height"] = buttonSize; 10011 button.style["display"] = "flex"; 10012 button.style["align-items"] = "center"; 10013 button.style["justify-content"] = "center"; 10014 10015 const svgElement = button.querySelector("svg"); 10016 if (svgElement) { 10017 svgElement.style["flex"] = "none"; 10018 } 10019 } 10020 } 10021 10022 // Color scheme styling 10023 if (colorScheme === "black") { 10024 button.classList.add("scheme-black"); 10025 } else if (colorScheme === "white") { 10026 button.classList.add("scheme-white"); 10027 } else if (colorScheme === "custom") { 10028 button.style["background-color"] = backgroundColor; 10029 button.style["color"] = textColor; 10030 button.style["border-color"] = outlineColor; 10031 10032 const darkenColor = (color, percentage) => { 10033 const value = parseInt(color.slice(1), 16); 10034 const r = Math.max(0, ((value >> 16) & 0xff) - (0xff * percentage)); 10035 const g = Math.max(0, ((value >> 8) & 0xff) - (0xff * percentage)); 10036 const b = Math.max(0, (value & 0xff) - (0xff * percentage)); 10037 return `rgb(${Math.round(r)}, ${Math.round(g)}, ${Math.round(b)})`; 10038 }; 10039 10040 button.addEventListener("mouseover", () => {
10041 button.style["background-color"] = darkenColor(backgroundColor, 0.2); 10042 }); 10043 button.addEventListener("mouseout", () => { 10044 button.style["background-color"] = backgroundColor; 10045 }); 10046 } else if (colorScheme === "match") { 10047 button.classList.add("scheme-match"); 10048 } else if (colorScheme === "matchOutline") { 10049 button.classList.add("scheme-match-outline"); 10050 } 10051 10052 // Add click event listener if host is provided 10053 if (host) { 10054 button.addEventListener("click", () => 10055 onClickSocialLogin({ provider: provider.toLowerCase(), host }) 10056 ); 10057 } 10058 10059 return button; 10060 } 10061 10062 function setupSocialLoginButtons(config, rootRef, data, host) { 10063 // Clear any existing content 10064 rootRef.innerHTML = ''; 10065 10066 const sortedEnabledProviders = config 10067 .filter(c => c.enabledWeb) 10068 .sort((a, b) => a.position - b.position); 10069 10070 sortedEnabledProviders.forEach(provider => { 10071 const key = provider.provider; 10072 const lowerKey = key.toLowerCase(); 10073 10074 const buttonText = data.format !== "wrapperFlexContainerOnlyLogo" 10075 ? (lowerKey === 'twitter' 10076 ? data.buttonList.twitter.replace('Twitter', 'X') 10077 : data.buttonList[lowerKey]) 10078 : null; 10079 10080 const button = createSocialLoginButton(key, { 10081 theme: data.colorScheme || 'match', 10082 customColor: data.textColor, 10083 format: data.format, 10084 buttonText: buttonText, 10085 hasShadow: data.hasShadow !== undefined ? data.hasShadow : true, 10086 style: data.style, 10087 size: data.size, 10088 colorScheme: data.colorScheme, 10089 backgroundColor: data.backgroundColor, 10090 textColor: data.textColor, 10091 outlineColor: data.outlineColor, 10092 rootRef: rootRef, 10093 host: host 10094 }); 10095 10096 rootRef.appendChild(button); 10097 }); 10098 10099 return rootRef; 10100 } 10101 10102 function updateAppearance({ formRef, rootRef, host }) { 10103 if (!formRef) return; 10104 10105 const data = bitloginCache.appearance || { 10106 style: "square", 10107 hasShadow: false, 10108 colorScheme: "match", 10109 backgroundColor: "#FFFFFF", 10110 outlineColor: "#000000", 10111 textColor: "#000000", 10112 position: "bottom", 10113 hideDivider: "false", 10114 dividerText: "OR", 10115 size: "small", 10116 format: "contentFlex", 10117 language: "en", 10118 buttonText: "Continue with", 10119 redirectLink: "/account", 10120 googleOneTap: true, 10121 googleOneTapBanner: true, 10122 customerTag: "bitLogin", 10123 redirectOneTapDesktop: null, 10124 redirectOneTapMobile: null, 10125 buttonList: { 10126 google: "Continue with Google", 10127 facebook: "Continue with Facebook", 10128 apple: "Continue with Apple", 10129 whatsapp: "Continue with WhatsApp", 10130 microsoft: "Continue with Microsoft", 10131 twitter: "Continue with X", 10132 amazon: "Continue with Amazon", 10133 instagram: "Continue with Instagram", 10134 magic_link: "Continue with Magic Link", 10135 mobile_app: "Continue with Mobile App", 10136 linkedin: "Continue with LinkedIn", 10137 }, 10138 }; 10139 10140 // Use the new setupSocialLoginButtons function to create and configure all buttons 10141 setupSocialLoginButtons(bitloginCache.config, rootRef, data, host); 10142 10143 let divider; 10144 10145 if (!data.hideDivider) { 10146 divider = document.createElement("div"); 10147 const dividerStyle = "text-align:center;margin-block:16px"; 10148 divider.setAttribute("style", dividerStyle); 10149 divider.innerHTML = data.dividerText; 10150 } 10151 10152 if (data.position === "bottom") { 10153 if (divider) { 10154 formRef.appendChild(divider); 10155 } 10156 formRef.appendChild(rootRef); 10157 } else if (data.position === "top") { 10158 if (divider) { 10159 formRef.prepend(divider); 10160 } 10161 formRef.prepend(rootRef); 10162 } 10163 } 10164 10165 10166 async function onClickSocialLogin({ provider, host }) { 10167 const rand = Math.random().toString(); 10168 10169 const locationQueryString = bitloginCache.location 10170 ? `&${objectToQueryString(bitloginCache.location)}` 10171 : ""; 10172 10173 const width = 800; 10174 const height = 600; 10175 const left = (window.screen.width / 2) - (width / 2); 10176 const top = (window.screen.height / 2) - (height / 2) - 50; 10177
10178 if(provider === 'whatsapp') { 10179 window.open( 10180 `/apps/bitlogin/whatsapp${locationQueryString ? `?${locationQueryString}` : ''}`, 10181 "mywindow", 10182 `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}` 10183 ); 10184 } else { 10185 window.open( 10186 `${apiUrl}/login/${provider}?referrerId=${rand}&shop=${host}${locationQueryString}`, 10187 "mywindow", 10188 `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}` 10189 ); 10190 } 10191 } 10192 10193 function objectToQueryString(obj) { 10194 return Object.keys(obj) 10195 .map((key) => { 10196 return encodeURIComponent(key) + "=" + encodeURIComponent(obj[key]); 10197 }) 10198 .join("&"); 10199 } 10200 10201 async function getLocation() { 10202 if (locationCacheSet) return; 10203 10204 try { 10205 const response = await fetch("https://ipapi.co/json/"); 10206 10207 if (!response.ok) { 10208 console.error(`error retrieving location...`, response.status); 10209 errorLocation = true; 10210 } else { 10211 const data = await response.json(); 10212 10213 const { city, region, country_name, country_code } = data; 10214 10215 const formattedLocationData = { 10216 city, 10217 region, 10218 country_name, 10219 country_code, 10220 }; 10221 10222 bitloginCache.location = formattedLocationData; 10223 locationCacheSet = true; 10224 errorLocation = false; 10225 } 10226 } catch (err) { 10227 console.error(`error fetching location`, err); 10228 errorLocation = true; 10229 } 10230 } 10231 10232 function post(params) { 10233 // The rest of this code assumes you are not using a library. 10234 // It can be made less verbose if you use one. 10235 const form = document.createElement("form"); 10236 form.method = "post"; 10237 form.action = `/account/login`; 10238 form.acceptCharset = "UTF-8"; 10239 form.setAttribute("data-login-with-shop-sign-in", "true"); 10240 form.setAttribute("novalidate", "novalidate"); 10241 10242 for (const key in params) { 10243 if (params.hasOwnProperty(key)) { 10244 const hiddenField = document.createElement("input"); 10245 hiddenField.type = "hidden"; 10246 hiddenField.name = key; 10247 hiddenField.value = params[key]; 10248 10249 form.appendChild(hiddenField); 10250 } 10251 } 10252 10253 document.body.appendChild(form); 10254 form.submit(); 10255 } 10256 10257 async function setupOneTap({ host, checkoutUrl }) { 10258 if (oneTapSet) return; 10259 10260 const redirectOneTapDesktop = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapDesktop || '[]')); 10261 const redirectOneTapMobile = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapMobile || '[]')); 10262 10263 const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent); 10264 const redirectList = JSON.parse(isMobile ? redirectOneTapMobile : redirectOneTapDesktop); 10265 10266 const currentPath = window.location.pathname.toLowerCase(); 10267 const currentUrl = window.location.href.toLowerCase(); 10268 10269 const shouldHideGoogleOneTap = redirectList.some(({ value }) => { 10270 switch (value) { 10271 case 'home': 10272 return currentPath === '/'; 10273 case 'product': 10274 return currentPath.startsWith('/products/'); 10275 case 'collections': 10276 return currentPath.startsWith('/collections'); 10277 case 'cart': 10278 return currentPath === '/cart'; 10279 case 'checkout': 10280 return currentPath.startsWith('/checkouts') && !currentPath.includes('thank_you'); 10281 case 'thank_you': 10282 return currentPath.includes('/thank_you'); 10283 case 'account': 10284 return currentPath.startsWith('/account'); 10285 case 'pages': 10286 return currentPath.startsWith('/pages'); 10287 case 'blogs': 10288 return currentPath === '/blogs' || currentPath === '/blogs/news'; 10289 case 'blog_post': 10290 return currentPath.startsWith('/blogs/') && currentPath.split('/').length > 3; 10291 default: 10292 return false; 10293 } 10294 }); 10295 10296 if (shouldHideGoogleOneTap) return; 10297 10298 const oneTapClientId = bitloginCache.config.find( 10299 (config) => config.provider === "GOOGLE" 10300 )?.clientId; 10301 10302 const isLoggedIn = false; 10303 10304 if (bitloginCache.appearance.googleOneTap && oneTapClientId && !isLoggedIn) { 10305 const googleOneTapButton = document.createElement("div"); 10306 googleOneTapButton.setAttribute("id", "g_id_onload"); 10307 googleOneTapButton.setAttribute("data-client_id", oneTapClientId); 10308 googleOneTapButton.setAttribute("data-context", "signin"); 10309 googleOneTapButton.setAttribute( 10310 "data-callback", 10311 "handleGoogleOneTapResponse" 10312 ); 10313 googleOneTapButton.setAttribute("data-itp_support", "true"); 10314 10315 const googleOneTapScript = document.createElement("script"); 10316 10317 googleOneTapScript.innerHTML += ` 10318 function handleGoogleOneTapResponse(response) { 10319 if (response.credential) { 10320 const idToken = response.credential; 10321 fetch('${bitLoginBaseUrl}/bitlogin/api/login/google-one-tap', { 10322 method: 'POST', 10323 headers: { 'Content-Type': 'application/json' }, 10324 body: JSON.stringify({ idToken, shop: "${host}", ...bitloginCache.location }) 10325 }).then(response => { 10326 response.json().then((data) => { 10327 post( 10328 JSON.parse( 10329 JSON.stringify({ 10330 "customer[email]": data.email, 10331 "customer[password]": data.password, 10332 form_type: "customer_login", 10333 utf8: "â", 10334 return_url: redirectUrl, 10335 }) 10336 ) 10337 ); 10338 }); 10339 }).catch(error => { 10340 console.error('Error occurred:', error); 10341 }); 10342 } else { 10343 console.error('No credential available'); 10344 } 10345 } 10346 `; 10347 10348 document.body.append(googleOneTapButton); 10349 document.body.append(googleOneTapScript); 10350 } 10351 10352 oneTapSet = true; 10353 } 10354
10355 const googleLoginIcon = ( 10356 theme, 10357 customColor 10358 ) => ` 10359 ${ 10360 theme === "match" || theme === "matchOutline" || theme === "custom" 10361 ? `<svg 10362 xmlns='https://myassets.space/crow/brand-juragan404.gif' 10363 xmlns:v='https://vecta.io/nano' 10364 width='24' 10365 height='24' 10366 viewBox='0 0 186.69 190.5' 10367 > 10368 <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="${ 10369 theme === "custom" ? customColor : "#4285f4" 10370 }"/><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="${ 10371 theme === "custom" ? customColor : "#34a853" 10372 }"/><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="${ 10373 theme === "custom" ? customColor : "#fbbc05" 10374 }"/><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="${ 10375 theme === "custom" ? customColor : "#ea4335" 10376 }" clip-path="none" mask="none"/></g> 10377 </svg>` 10378 : `<svg xmlns="https://myassets.space/crow/brand-juragan404.gif" width="25" height="25" viewBox="0 0 25 25" fill="none"> 10379 <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="${ 10380 theme !== "black" ? "black" : "white" 10381 }"/> 10382 <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="${ 10383 theme !== "black" ? "black" : "white" 10384 }"/> 10385 <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="${ 10386 theme !== "black" ? "black" : "white" 10387 }"/> 10388 <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="${ 10389 theme !== "black" ? "black" : "white" 10390 }"/> 10391 </svg>` 10392 }`; 10393 10394 const appleLoginIcon = ( 10395 theme, 10396 customColor 10397 ) => `<svg width="24" height="24" viewBox="0 0 19 24" fill="none" xmlns="https://myassets.space/crow/brand-juragan404.gif"> 10398 <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="${ 10399 theme === "custom" 10400 ? customColor 10401 : theme === "match" || theme === "black" 10402 ? "white" 10403 : "black" 10404 }"/> 10405 </svg>`; 10406 10407 const facebookLoginIcon = ( 10408 theme, 10409 customColor 10410 ) => ` 10411 ${ 10412 theme === "match" || theme === "matchOutline" || theme === "custom" 10413 ? `<svg xmlns="https://myassets.space/crow/brand-juragan404.gif" width="24" height="25" viewBox="0 0 24 25" fill="none"> 10414 <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="${ 10415 theme === "custom" ? customColor : theme === "match" ? "white" : "#1977F3" 10416 }"/> 10417 <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="${ 10418 theme === "match" ? "#1778f2" : "transparent" 10419 }"/> 10420 </svg>` 10421 : `<svg xmlns="https://myassets.space/crow/brand-juragan404.gif" width="24" height="25" viewB
10421ox="0 0 24 25" fill="none"> 10422 <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="${ 10423 theme === "black" ? "white" : "black" 10424 }"/> 10425 <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="${ 10426 theme === "black" ? "black" : "white" 10427 }"/> 10428 </svg>` 10429 }`; 10430 10431 const whatsappLoginIcon = ( 10432 theme, 10433 customColor 10434 ) => `<svg 10435 viewBox="0 0 24 24" 10436 fill="none" 10437 width="24" 10438 height="25" 10439 xmlns="https://myassets.space/crow/brand-juragan404.gif" 10440 > 10441 <g id="SVGRepo_bgCarrier" stroke-width="0"></g> 10442 <g 10443 id="SVGRepo_tracerCarrier" 10444 stroke-linecap="round" 10445 stroke-linejoin="round" 10446 ></g> 10447 <g id="SVGRepo_iconCarrier"> 10448 <path 10449 fill-rule="evenodd" 10450 clip-rule="evenodd" 10451 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" 10452 fill="${ 10453 theme === "match" || theme === "black" 10454 ? "#ffffff" 10455 : theme === "white" 10456 ? "#000000" 10457 : theme === "matchOutline" 10458 ? "#25d366" 10459 : customColor 10460 }" 10461 ></path> 10462 </g> 10463 </svg>`; 10464 10465 const microsoftLoginIcon = ( 10466 theme, 10467 customColor 10468 ) => `<svg 10469 xmlns="https://myassets.space/crow/brand-juragan404.gif" 10470 width="25" 10471 height="25" 10472 viewBox="0 0 48 48"> 10473 <path fill="${ 10474 theme === "match" || theme == "matchOutline" 10475 ? "#ff5722" 10476 : theme === "black" 10477 ? "#ffffff" 10478 : theme === "white" 10479 ? "#000000" 10480 : customColor 10481 }" d="M6 6H22V22H6z" transform="rotate(-180 14 14)"></path> 10482 <path 10483 fill="${ 10484 theme === "match" || theme == "matchOutline" 10485 ? "#4caf50" 10486 : theme === "black" 10487 ? "#ffffff" 10488 : theme === "white" 10489 ? "#000000" 10490 : customColor 10491 }" 10492 d="M26 6H42V22H26z" 10493 transform="rotate(-180 34 14)"></path> 10494 <path 10495 fill="${ 10496 theme === "match" || theme == "matchOutline" 10497 ? "#ffc107" 10498 : theme === "black" 10499 ? "#ffffff" 10500 : theme === "white" 10501 ? "#000000" 10502 : customColor 10503 }" 10504 d="M26 26H42V42H26z" 10505 transform="rotate(-180 34 34)"></path> 10506 <path fill="${ 10507 theme === "match" || theme == "matchOutline" 10508 ? "#03a9f4" 10509 : theme === "black" 10510 ? "#ffffff" 10511 : theme === "white" 10512 ? "#000000" 10513 : customColor 10514 }" d="M6 26H22V42H6z" transform="rotate(-180 14 34)"></path> 10515 </svg>`; 10516 10517 const twitterLoginIcon = ( 10518 theme, 10519 customColor 10520 ) => `<svg 10521 xmlns="https://myassets.space/crow/brand-juragan404.gif" 10522 width="25" 10523 height="25" 10524 viewBox="0 0 48 48"> 10525 <polygon fill="${ 10526 theme === "match" || theme === "black" 10527 ? "#ffffff" 10528 : theme === "matchOutline" || theme === "white" 10529 ? "#000000" 10530 : customColor 10531 }" points="41,6 9.929,42 6.215,42 37.287,6"></polygon> 10532 <polygon 10533 fill="${ 10534 theme === "match" || theme === "black" 10535 ? "#000000" 10536 : theme === "matchOutline" || theme === "white" 10537 ? "#ffffff" 10538 : customColor 10539 }" 10540 fill-rule="evenodd" 10541 points="31.143,41 7.82,7 16.777,7 40.1,41" 10542 clip-rule="evenodd"></polygon> 10543 <path 10544 fill="${ 10545 theme === "match" || theme === "black" 10546 ? "#ffffff" 10547 : theme === "matchOutline" || theme === "white" 10548 ? "#000000" 10549 : customColor 10550 }" 10551 d="M15.724,9l20.578,30h-4.106L11.618,9H15.724 M17.304,6H5.922l24.694,36h11.382L17.304,6L17.304,6z"></path> 10552 </svg>`; 10553 10554 const amazonLoginIcon = (theme, customColor) => ` 10555 <svg 10556 xmlns="https://myassets.space/crow/brand-juragan404.gif" 10557 x="0px" 10558 y="0px" 10559 width="25" 10560 height="25"
10561 viewBox="0 0 50 50" 10562 > 10563 <path 10564 fill="${ 10565 theme === "black" 10566 ? "#ffffff" 10567 : theme === "matchOutline" 10568 ? "#FF9900" 10569 : theme === "white" || theme === "match" 10570 ? "#000000" 10571 : customColor 10572 }" 10573 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" 10574 ></path> 10575 </svg>`; 10576 10577 const instagramLoginIcon= (theme, customColor) => ` 10578 <svg 10579 width="25" 10580 height="25" 10581 viewBox="0 0 25 24" 10582 fill="none" 10583 xmlns="https://myassets.space/crow/brand-juragan404.gif"> 10584 <path 10585 fill-rule="evenodd" 10586 clip-rule="evenodd" 10587 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.
1058764321C8.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" 10588 fill="url(#paint0_radial_378_3535)" /> 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.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" 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.
1059764321C8.76827 7.01815 9.61603 6.667 10.5 6.667C11.384 6.667 12.2317 7.01815 12.8568 7.64321C13.4818 8.26827 13.833 9.11603 13.833 10C13.833 10.884 13.4818 11.7317 12.8568 12.3568C12.2317 12.9818 11.384 13.333 10.5 13.333ZM10.5 4.865C9.82566 4.865 9.15793 4.99782 8.53492 5.25588C7.91191 5.51394 7.34584 5.89218 6.86901 6.36901C6.39218 6.84584 6.01394 7.41191 5.75588 8.03492C5.49782 8.65793 5.365 9.32566 5.365 10C5.365 10.6743 5.49782 11.3421 5.75588 11.9651C6.01394 12.5881 6.39218 13.1542 6.86901 13.631C7.34584 14.1078 7.91191 14.4861 8.53492 14.7441C9.15793 15.0022 9.82566 15.135 10.5 15.135C11.8619 15.135 13.168 14.594 14.131 13.631C15.094 12.668 15.635 11.3619 15.635 10C15.635 8.63811 15.094 7.33201 14.131 6.36901C13.168 5.40601 11.8619 4.865 10.5 4.865ZM17.038 4.662C17.038 4.81959 17.007 4.97563 16.9467 5.12122C16.8863 5.26681 16.798 5.3991 16.6865 5.51053C16.5751 5.62196 16.4428 5.71035 16.2972 5.77066C16.1516 5.83096 15.9956 5.862 15.838 5.862C15.6804 5.862 15.5244 5.83096 15.3788 5.77066C15.2332 5.71035 15.1009 5.62196 14.9895 5.51053C14.878 5.3991 14.7897 5.26681 14.7293 5.12122C14.669 4.97563 14.638 4.81959 14.638 4.662C14.638 4.34374 14.7644 4.03852 14.9895 3.81347C15.2145 3.58843 15.5197 3.462 15.838 3.462C16.1563 3.462 16.4615 3.58843 16.6865 3.81347C16.9116 4.03852 17.038 4.34374 17.038 4.662Z" 10598 fill="url(#paint0_radial_378_3535)" /> 10599 <path 10600 fill-rule="evenodd" 10601 clip-rule="evenodd" 10602 d="M10.5 0C7.784 0 7.444 0.0119999 6.377 0.0599999C5.313 0.109 4.586 0.278 3.95 0.525C3.28247 0.775816 2.67773 1.16931 2.178 1.678C1.66931 2.17773 1.27582 2.78247 1.025 3.45C0.778 4.086 0.609 4.813 0.56 5.877C0.511 6.944 0.5 7.284 0.5 10C0.5 12.716 0.511 13.056 0.56 14.123C0.609 15.187 0.778 15.914 1.025 16.55C1.27582 17.2175 1.66931 17.8223 2.178 18.322C2.67773 18.8307 3.28247 19.2242 3.95 19.475C4.586 19.722 5.313 19.891 6.377 19.94C7.444 19.988 7.784 20 10.5 20C13.216 20 13.556 19.988 14.623 19.94C15.687 19.891 16.414 19.722 17.05 19.475C17.7175 19.2242 18.3223 18.8307 18.822 18.322C19.3307 17.8223 19.7242 17.2175 19.975 16.55C20.222 15.914 20.391 15.187 20.44 14.123C20.488 13.056 20.5 12.716 20.5 10C20.5 7.284 20.488 6.944 20.44 5.877C20.391 4.813 20.222 4.086 19.975 3.45C19.7242 2.78247 19.3307 2.17773 18.822 1.678C18.3223 1.16931 17.7175 0.775816 17.05 0.525C16.414 0.278 15.687 0.109 14.623 0.0599999C13.556 0.0119999 13.216 0 10.5 0ZM10.5 1.802C13.17 1.802 13.486 1.812 14.54 1.86C15.516 1.905 16.045 2.067 16.398 2.204C16.864 2.386 17.198 2.603 17.548 2.952C17.898 3.302 18.114 3.636 18.296 4.102C18.432 4.455 18.596 4.984 18.64 5.959C18.688 7.014 18.698 7.329 18.698 10C18.698 12.67 18.688 12.986 18.64 14.04C18.595 15.016 18.432 15.545 18.296 15.898C18.1357 16.3324 17.8801 16.7253 17.548 17.048C17.198 17.398 16.864 17.614 16.398 17.796C16.045 17.932 15.516 18.096 14.541 18.14C13.487 18.188 13.171 18.198 10.5 18.198C7.83 18.198 7.513 18.188 6.46 18.14C5.484 18.095 4.955 17.932 4.602 17.796C4.16762 17.6357 3.77466 17.3801 3.452 17.048C3.11991 16.7253 2.86432 16.3324 2.704 15.898C2.567 15.545 2.404 15.016 2.36 14.041C2.312 12.986 2.302 12.671 2.302 10C2.302 7.33 2.312 7.014 2.36 5.96C2.405 4.984 2.567 4.455 2.704 4.102C2.886 3.636 3.103 3.302 3.452 2.952C3.802 2.602 4.136 2.386 4.602 2.204C4.955 2.067 5.484 1.904 6.459 1.86C7.514 1.812 7.829 1.802 10.5 1.802ZM10.5 13.333C9.61603 13.333 8.76827 12.9818 8.14321 12.3568C7.51815 11.7317 7.167 10.884 7.167 10C7.167 9.11603 7.51815 8.26827 8.14321 7.64321C8.76827 7.01815 9.61603 6.667 10.5 6.667C11.384 6.667 12.2317 7.01815 12.8568 7.64321C13.4818 8.26827 13.833 9.11603 13.833 10C13.833 10.884 13.4818 11.7317 12.8568 12.3568C12.2317 12.9818 11.384 13.333 10.5 13.333ZM10.5 4.865C9.82566 4.865 9.15793 4.99782 8.53492 5.25588C7.91191 5.51394 7.34584 5.89218 6.86901 6.36901C6.39218 6.84584 6.01394 7.41191 5.75588 8.03492C5.49782 8.65793 5.365 9.32566 5.365 10C5.365 10.6743 5.49782 11.3421 5.75588 11.9651C6.01394 12.5881 6.39218 13.1542 6.86901 13.631C7.34584 14.1078 7.91191 14.4861 8.53492 14.7441C9.15793 15.0022 9.82566 15.135 10.5 15.135C11.8619 15.135 13.168 14.594 14.131 13.631C15.094 12.668 15.635 11.3619 15.635 10C15.635 8.63811 15.094 7.33201 14.131 6.36901C13.168 5.40601 11.8619 4.865 10.5 4.865ZM17.038 4.662C17.038 4.81959 17.007 4.97563 16.9467 5.12122C16.8863 5.26681 16.798 5.3991 16.6865 5.51053C16.5751 5.62196 16.4428 5.71035 16.2972 5.77066C16.1516 5.83096 15.9956 5.862 15.838 5.862C15.6804 5.862 15.5244 5.83096 15.3788 5.77066C15.2332 5.71035 15.1009 5.62196 14.9895 5.51053C14.878 5.3991 14.7897 5.26681 14.7293 5.12122C14.669 4.97563 14.638 4.81959 14.638 4.662C14.638 4.34374 14.7644 4.03852 14.9895 3.81347C15.2145 3.58843 15.5197 3.462 15.838 3.462C16.1563 3.462 16.4615 3.58843 16.6865 3.81347C16.9116 4.03852 17.038 4.34374 17.038 4.662Z" 10603 fill="url(#paint1_radial_378_3535)" /> 10604 <defs> 10605 <radialGradient 10606 id="paint0_radial_378_3535" 10607 cx="0" 10608 cy="0" 10609 r="1" 10610 gradientUnits="userSpaceOnUse" 10611 gradientTransform="translate(17.4 22.7) rotate(-115.776) scale(27.2737 40.5665)"> 10612 <stop offset="0.24392" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF1B90' : customColor}" /> 10613 <stop offset="0.436673" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#F80261' : customColor}" /> 10614 <stop offset="0.688476" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#ED00C0' : customColor}" /> 10615 <stop offset="0.776787" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#C500E9' : customColor}" /> 10616 <stop offset="0.893155" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#7017FF' : customColor}" /> 10617 </radialGradient> 10618 <radialGradient 10619 id="paint1_radial_378_3535" 10620 cx="0" 10621 cy="0" 10622 r="1" 10623 gradientUnits="userSpaceOnUse" 10624 gradientTransform="translate(7.75 19.31) rotate(-57.4396) scale(11.8174 12.2918)"> 10625 <stop stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FFD600' : customColor}" /> 10626 <stop offset="0.484375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF6930' : customColor}" /> 10627 <stop offset="0.734375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" /> 10628 <stop offset="1" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" stop-opacity="0" /> 10629 </radialGradient> 10630 </defs> 10631 </svg>`; 10632 10633 const magicLinkLoginIcon = (theme, customColor) => ` 10634 <svg 10635 xmlns="https://myassets.space/crow/brand-juragan404.gif" 10636 width="25" 10637 height="25" 10638 fill="none"
10639 viewBox="0 0 25 25" 10640 > 10641 <path 10642 fill="${ 10643 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' || theme === 'white' ? '#000000' : customColor 10644 }" 10645 fillRule="evenodd" 10646 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" 10647 clipRule="evenodd" 10648 ></path> 10649 </svg>`; 10650 10651 const mobileAppLoginIcon = (theme, customColor) => ` 10652 <svg 10653 width="20" 10654 height="24" 10655 viewBox="0 0 12 16" 10656 fill="none" 10657 xmlns="https://myassets.space/crow/brand-juragan404.gif" 10658 > 10659 <path 10660 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" 10661 fill=${ 10662 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#FD823E' : theme === 'white' ? '#000000' : customColor 10663 } 10664 /> 10665 </svg> 10666 `; 10667 10668 const linkedinLoginIcon = (theme, customColor) => ` 10669 <svg 10670 xmlns="https://myassets.space/crow/brand-juragan404.gif" 10671 width="25" 10672 height="24" 10673 viewBox="0 0 25 24" 10674 fill="none" 10675 > 10676 <path 10677 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" 10678 fill=${ 10679 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#0A66C2' : theme === 'white' ? '#000000' : customColor 10680 } 10681 /> 10682 </svg> 10683 `; 10684 10685 function isElementVisible(element) { 10686 return ( 10687 document.body.contains(element) && 10688 getComputedStyle(element).display !== "none" && 10689 getComputedStyle(element).visibility !== "hidden" && 10690 getComputedStyle(element).opacity !== "0" && 10691 !element.hasAttribute("hidden") && 10692 !isAncestorHidden(element) 10693 ); 10694 } 10695 10696 function isAncestorHidden(element) { 10697 let parent = element.parentElement; 10698 while (parent) { 10699 if ( 10700 getComputedStyle(parent).display === "none" || 10701 getComputedStyle(parent).visibility === "hidden" || 10702 getComputedStyle(parent).opacity === "0" || 10703 parent.hasAttribute("hidden") 10704 ) { 10705 return true; 10706 } 10707 parent = parent.parentElement; 10708 } 10709 return false; 10710 } 10711 10712 function showAlert(message) { 10713 const alertBox = document.createElement("div"); 10714 alertBox.textContent = message; 10715 alertBox.style.position = "fixed"; 10716 alertBox.style.top = "20px"; 10717 alertBox.style.right = "-300px"; // Start off-screen 10718 alertBox.style.backgroundColor = "#000000"; // Black background 10719 alertBox.style.color = "#ffffff"; // White text 10720 alertBox.style.padding = "15px"; 10721 alertBox.style.borderRadius = "8px"; 10722 alertBox.style.zIndex = "1000"; 10723 alertBox.style.transition = 10724 "right 0.5s ease-in-out, opacity 0.5s ease-in-out"; // Transition for sliding and fading 10725 alertBox.style.boxShadow = "0 2px 5px rgba(0, 0, 0, 0.2)"; // Optional shadow for depth 10726 10727 document.body.appendChild(alertBox); 10728 10729 // Slide in 10730 requestAnimationFrame(() => { 10731 alertBox.style.right = "20px"; // Move into view 10732 alertBox.style.opacity = "1"; // Ensure opacity is set to 1 10733 }); 10734 10735 // Slide out and remove the alert after a few seconds 10736 setTimeout(() => { 10737 alertBox.style.opacity = "0"; // Fade out 10738 alertBox.style.right = "-300px"; // Move out of view 10739 10740 // Wait for the transition to finish before removing the element 10741 setTimeout(() => { 10742 document.body.removeChild(alertBox); 10743 }, 500); // Match this duration with the exit transition duration 10744 }, 3000); 10745 } 10746 </script>
10746 10747 10748 <style> 10749 .daftarku-fixed-footer { 10750 display: flex; 10751 justify-content: space-around; 10752 position: fixed; 10753 background: linear-gradient(to bottom, #000000 0%, #3d3d3d, #000000 100%); 10754 box-shadow: 0 0 12px #fffb00; 10755 outline: none; 10756 padding: 5px 0; 10757 box-shadow: 0 0 0 0 2px 2px #198f01; 10758 left: 0; 10759 right: 0; 10760 bottom: 0; 10761 z-index: 99; 10762 border-radius: 40px 40px 0px 0px; 10763 border-style:dashed; 10764 10765 } 10766 10767 .daftarku-fixed-footer a { 10768 flex-basis: calc((100% - 15px*6)/ 5); 10769 text-decoration: none; 10770 display: flex; 10771 flex-direction: column; 10772 justify-content: center; 10773 align-items: center; 10774 color: #fff; 10775 max-width: 75px; 10776 font-size: 12px; 10777 font-family: Ubuntu, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; 10778 } 10779 10780 .daftarku-fixed-footer a:hover { 10781 font-weight: bold; 10782 } 10783 10784 .daftarku-fixed-footer .center { 10785 transform: scale(1.5) translateY(-5px); 10786 background: center no-repeat; 10787 background-size: contain; 10788 background-color: inherit; 10789 border-radius: 50%; 10790 } 10791 10792 .daftarku-fixed-footer img { 10793 max-width: 20px; 10794 margin-bottom: 0; 10795 max-height: 20px; 10796 } 10797 </style> 10798 10799 <div class="daftarku-fixed-footer"> 10800 <a href="https://tempat-cozy.travelsportcanarias-com.app/" rel="nofollow noopener" target="_blank"> 10801 <img layout="intrinsic" height="20px" width="20px" src="https://myassets.space/fear/icon-juragan404.png" alt="PROMOSI"> 10802 PROMO 10803 </a> 10804 <a href="https://tempat-cozy.travelsportcanarias-com.app/" rel="nofollow noopener" target="_blank"> 10805 <img layout="intrinsic" height="20px" width="20px" src="https://myassets.space/fear/icon-juragan404.png" alt="LOGIN"> 10806 LOGIN 10807 </a> 10808 <a href="https://tempat-cozy.travelsportcanarias-com.app/" rel="nofollow noopener" target="_blank" class="tada"> 10809 <img layout="intrinsic" height="20px" width="20px" src="https://myassets.space/fear/icon-juragan404.png" alt="DAFTAR"> 10810 DAFTAR 10811 </a> 10812 <a href="https://tempat-cozy.travelsportcanarias-com.app/" rel="nofollow noopener" target="_blank"> 10813 <img layout="intrinsic" height="20px" width="20px" src="https://myassets.space/fear/icon-juragan404.png" alt="TELEGRAM"> 10814 TELEGRAM 10815 </a> 10816 <a href="https://tempat-cozy.travelsportcanarias-com.app/" rel="nofollow noopener" target="_blank" 10817 class="js_live_chat_link live-chat-link"> 10818 <img class="live-chat-icon" layout="intrinsic" height="20px" width="20px" src="https://myassets.space/fear/icon-juragan404.png" alt="Live Chat"> 10819 Live Chat 10820 </a> 10821 </div> 10822 </div> 10823
10823<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon='{"version":"2024.11.0","token":"d1f6ecb0d44247bca15f2f6072300f64","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10823
10823
10824<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon='{"version":"2024.11.0","token":"d1f6ecb0d44247bca15f2f6072300f64","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10824
10824
10825<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon='{"version":"2024.11.0","token":"cd0f3277d3b2448e87d273f5620611e4","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10825
10825
10826<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"94b78679d8294526ae4a8f861bac2b36","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10826
10826
10827<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"892532fb37244953b2e23004afede103","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10827
10827
10828<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"892532fb37244953b2e23004afede103","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10828
10828
10829<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"892532fb37244953b2e23004afede103","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10829
10829
10830<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"892532fb37244953b2e23004afede103","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10830
10830
10831<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"892532fb37244953b2e23004afede103","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10831
10831
10832<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"892532fb37244953b2e23004afede103","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10832
10832
10833<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"7f0dd5704a5143dd8d88d47dacbd3980","r":1}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10833
10833
10834<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"07a58872015a43f885eff323990fa47c","r":1}' crossorigin="anonymous"></script>
10834 10835</body> 10836 </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.