1 2 3 4 5<!doctype html> 6 <!--Brumm Brumm ngenggggg--> 7 <html class="no-js"> 8 <head> 9 <meta charset="utf-8"> 10 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 11 <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"> 12 <meta name="apple-itunes-app" content="app-id=1576832504"> 13 <link rel="icon" type="image/x-icon" href="favicon.png"> 14 <!-- Title and description --> 15 <title>RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah</title> 16 <meta name="description" content="RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna."> 17 <link rel="canonical" href="https://islamic-books.org/"> 18 <link rel="amphtml" href="https://ruang.islamic-books.org/"/> 19 <link rel="alternate" hreflang="id-id" href="https://ruang.islamic-books.org/"/> 20 <link rel="alternate" href="https://ruang.islamic-books.org/"/> 21 <link rel="alternate" hreflang="id" href="https://ruang.islamic-books.org/"/> 22 <link rel="alternate" hreflang="en" href="https://ruang.islamic-books.org/"/> 23 <link rel="alternate" hreflang="x-default" href="https://ruang.islamic-books.org/"/> 24 <!-- /snippets/social-meta-tags.liquid --> 25 <meta property="og:type" content="RSLOT77"> 26 <meta property="og:title" content="RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah"> 27 <meta property="og:image" content="rslot77.webp"> 28 <meta property="og:image:secure_url" content="rslot77.webp"> 29 <meta property="og:image" content="rslot77.webp"> 30 <meta property="og:image:secure_url" content="rslot77.webp"> 31 <meta property="og:image" content="rslot77.webp"> 32 <meta property="og:image:secure_url" content="rslot77.webp"> 33 <meta property="og:description" content="RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna."> 34 <meta name="google-site-verification" content="rdm_owxn341NRbGpn7O59HLsC11qmW7R5vdGSHoTOBs" /> 35 <meta name="google-site-verification" content="TlslKfbnrKYTjWu65XphpRtxRr5UgS5mCgImRHUWuhA" /> 36 <meta name="google-site-verification" content="W3UmWOrN5T0xRWm4K4S6vJF5nFD0hrwh6tX1lk3DFrA" /> 37 <meta name="google-site-verification" content="7na77dnbYgDPrxee-045aWLAogMxOGtC4xLBeCbveso" /> 38 <meta property="og:price:amount" content="5,000-,"> 39 <meta property="og:price:currency" content="IDR"> 40 <meta property="og:url" content="https://islamic-books.org/"> 41 <meta property="og:site_name" content="RSLOT77"> 42 <meta name="twitter:site" content="@RSLOT77"> 43 <meta name="twitter:card" content="summary"> 44 <meta name="twitter:title" content="RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah"> 45 <meta name="twitter:description" content="RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna."> 46 <meta name="twitter:image" content="rslot77.webp"> 47 <meta name="twitter:image:width" content="600"> 48 <meta name="twitter:image:height" content="600"> 49 <link rel="shortcut icon" href="favicon.png" type="image/png"> 50 <meta name="theme-color" content="#ffffff"> 51 <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700&family=Poppins&display=swap" rel="stylesheet"> 52 <link href="//outerbloom.com/cdn/shop/t/138/assets/custom-styles.css?v=94643080714485117621752652418" rel="stylesheet" type="text/css" media="all" /> 53 <link rel="stylesheet" href="//outerbloom.com/cdn/shop/t/138/assets/wishlist-styles.css?v=166819525406734116961754385201">
53<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js" defer></script>
53 54
54<script 55 src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js" 56 integrity="sha512-57oZ/vW8ANMjR/KQ6Be9v/+/h6bq9/l3f0Oc7vn6qMqyhvPd1cvKBRWWpzu0QoneImqr2SkmO4MSqU+RpHom3Q==" 57 crossorigin="anonymous" 58 referrerpolicy="no-referrer" 59 defer 60 ></script>
60 61
61<script src="https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js" async="async"></script>
61 62
62<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/select2.min.js" defer></script>
62<!-- Facebook Pixel Code --> 63
63<script>
vendor: 471 bytes, lines 63-72
63 64 !function(f,b,e,v,n,t,s) 65 {if(f.fbq)return;n=f.fbq=function(){n.callMethod? 66 n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 67 if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 68 n.queue=[];t=b.createElement(e);t.async=!0; 69 t.src=v;s=b.getElementsByTagName(e)[0]; 70 s.parentNode.insertBefore(t,s)}(window, document,'script', 71 'https://connect.facebook.net/en_US/fbevents.js'); 72 fbq('init', '
72165971065669324
vendor: 44 bytes, lines 72-74
72'); 73 fbq('track', 'PageView'); 74
74</script>
74 75 <noscript 76 ><img 77 height="1" 78 width="1" 79 style="display:none" 80 src="https://www.facebook.com/tr?id=165971065669324&ev=PageView&noscript=1" 81 ></noscript> 82 <!-- End Facebook Pixel Code --> 83 84 <!-- Google G4 Script - Disabled by developer (William) to prioritize Mobile App tracking --> 85 <!-- 86 Global site tag (gtag.js) - Google Analytics -->
vendor: 76 bytes, lines 86-87
86 87 <script async src="https://www.googletagmanager.com/gtag/js?id=
87G-X26HYP4083
vendor: 24 bytes, lines 87-88
87"></script> 88
88<script> 89
vendor: 174 bytes, lines 89-93
89window.dataLayer = window.dataLayer || []; 90 function gtag(){dataLayer.push(arguments);} 91 gtag('js', new Date()); 92 93 gtag('config', '
93G-X26HYP4083
vendor: 16 bytes, lines 93-94
93'); 94
94</script>
94 95 <!-- Global site tag (gtag.js) - Google Analytics --> 96 97 <div class="button-login-daftar"> 98 <a class="login" href="https://ruang.islamic-books.org/" rel="nofollow noreferrer"> 99 LOGIN 100 </a> 101 <a class="register" href="https://ruang.islamic-books.org/" rel="nofollow noreferrer"> 102 DAFTAR 103 </a> 104 </div> 105 106
106<script src="//cdnjs.cloudflare.com/ajax/libs/vissense/0.9.0/vissense.js" defer></script>
106 107 108 <!-- Bing UET --> 109
109<script> 110 (function(w,d,t,r,u) 111 { 112 var f,n,i; 113 w[u]=w[u]||[],f=function() 114 { 115 var o={ti:"343051754", tm:"shpfy_ui", enableAutoSpaTracking: true}; 116 o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad") 117 }, 118 n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function() 119 { 120 var s=this.readyState; 121 s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null) 122 }, 123 i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i) 124 }) 125 (window,document,"script","//bat.bing.com/bat.js","uetq"); 126 </script>
126 127
127<script> 128 window.uetq = window.uetq || []; 129 window.uetq.push('event', '', {"revenue_value":0,"currency":"IDR"}); 130 </script>
130 131 <!-- End Bing UET --> 132 133 <!-- Microsoft Clarity --> 134
134<script type="text/javascript"> 135 (function(c,l,a,r,i,t,y){ 136 c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; 137 t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i; 138 y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); 139 })(window, document, "clarity", "script", "h7rbxqry9k"); 140 </script>
140 141 <!-- End Microsoft Clarity --> 142 143 144 <link href="//outerbloom.com/cdn/shop/t/138/assets/combine.min.css?v=111340648424012527321754385205" rel="stylesheet" type="text/css" media="all" /> 145 146 <link href="//outerbloom.com/cdn/shop/t/138/assets/font-awesome.css?v=132324219581463622051752652421" rel="stylesheet" type="text/css" media="all" /> 147 <link rel="stylesheet" href="//code.jquery.com/ui/1.13.0/themes/base/jquery-ui.min.css"> 148 149
149<script src="//code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
149 150
150<script src="//outerbloom.com/cdn/shop/t/138/assets/combine.js?v=140218079523075729301752652421" type="text/javascript"></script>
150 151
151<script src="//code.jquery.com/ui/1.13.0/jquery-ui.min.js"></script>
151 152
152<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
152 153 <meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/15896833/digital_wallets/dialog"> 154 <link rel="alternate" type="application/json+oembed" href="https://datatellers.info.oembed"> 155
155<script async="async" src="/checkouts/internal/preloads.js?locale=en-ID"></script>
155 156
156<script id="shopify-features" type="application/json">{"accessToken":"d2e176e59f6658d5056234d6249b3ab4","betas":["rich-media-storefront-analytics"],"domain":"outerbloom.com","predictiveSearch":true,"shopId":15896833,"locale":"en"}</script>
156 157
157<script>var Shopify = Shopify || {}; 158 Shopify.shop = "outerbloom1.myshopify.com"; 159 Shopify.locale = "en"; 160 Shopify.currency = {"active":"IDR","rate":"1.0"}; 161 Shopify.country = "ID"; 162 Shopify.theme = {"name":"web-outerbloom-shopify\/main","id":153139282135,"schema_name":null,"schema_version":null,"theme_store_id":null,"role":"main"}; 163 Shopify.theme.handle = "null"; 164 Shopify.theme.style = {"id":null,"handle":null}; 165 Shopify.cdnHost = "outerbloom.com/cdn"; 166 Shopify.routes = Shopify.routes || {}; 167 Shopify.routes.root = "/";</script>
167 168
168<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
168 169
169<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>
169 170
170<script id="shop-js-analytics" type="application/json">{"pageType":"product"}</script>
170 171
171<script defer="defer" async="async" src="//outerbloom.com/cdn/shopifycloud/shop-js/client.js" onload="window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 172 "></script>
172 173
173<script>(function() { 174 var isLoaded = false; 175 function asyncLoad() { 176 if (isLoaded) return; 177 isLoaded = true; 178 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"]; 179 for (var i = 0; i < urls.length; i++) { 180 var s = document.createElement('script'); 181 s.type = 'text/javascript'; 182 s.async = true; 183 s.src = urls[i]; 184 var x = document.getElementsByTagName('script')[0]; 185 x.parentNode.insertBefore(s, x); 186 } 187 }; 188 if(window.attachEvent) { 189 window.attachEvent('onload', asyncLoad); 190 } else { 191 window.addEventListener('load', asyncLoad, false); 192 } 193 })();</script>
193 194
194<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>
194 195
195<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
195 196
196<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>
196 197
197<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>
197 198
198<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)}}; 199 </script>
199 200
200<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 201 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); 202 </script>
202 203
203<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})}})); 204 </script>
204 205 206
206<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
206 207 <!-- /snippets/oldIE-js.liquid --> 208 209 210 <!--[if lt IE 9]> 211
211<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js" type="text/javascript"></script>
211 212
212<script src="//outerbloom.com/cdn/shop/t/138/assets/respond.min.js?v=52248677837542619231752652418" type="text/javascript"></script>
212 213 <link href="//outerbloom.com/cdn/shop/t/138/assets/respond-proxy.html" id="respond-proxy" rel="respond-proxy" /> 214 <link href="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" id="respond-redirect" rel="respond-redirect" /> 215
215<script src="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" type="text/javascript"></script>
215 216 <![endif]--> 217 218 219 220 221 222 <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"> 223 <link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch"> 224
224<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>
224 225
225<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":"RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah","vendor":"Outerbloom Florist","id":"8144957800663","untranslatedTitle":"RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah","url":"\/products\/blossom-shine","type":"RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna."},"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\":\"RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah\",\"vendor\":\"Outerbloom Florist\",\"id\":\"8144957800663\",\"untranslatedTitle\":\"RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah\",\"url\":\"\/products\/blossom-shine\",\"type\":\"RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna.\"},\"id\":\"44083045826775\",\"image\":{\"src\":\"\/\/outerbloom.com\/cdn\/shop\/files\/Blossom-Shine-WM.jpg?v=1695788426\"},\"sku\":\"OBVSTF1086\",\"title\":\"Default Title\",\"untranslatedTitle\":\"Default Title\"}}]]"});</script>
225<script> 226 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 227 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 228 window.ShopifyAnalytics.meta.currency = 'IDR'; 229 var meta = {"product":{"id":8144957800663,"gid":"gid:\/\/shopify\/Product\/8144957800663","vendor":"Outerbloom Florist","type":"RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna.","variants":[{"id":44083045826775,"price":1000000 230 ,"name":"RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah","public_title":null,"sku":"OBVSTF1086"}],"remote":false},"page":{"pageType":"product","resourceType":"product","resourceId":8144957800663}}; 231 for (var attr in meta) { 232 window.ShopifyAnalytics.meta[attr] = meta[attr]; 233 } 234 </script>
234 235
235<script class="analytics"> 236 (function () { 237 var customDocumentWrite = function(content) { 238 var jquery = null; 239 240 if (window.jQuery) { 241 jquery = window.jQuery; 242 } else if (window.Checkout && window.Checkout.$) { 243 jquery = window.Checkout.$; 244 } 245 246 if (jquery) { 247 jquery('body').append(content); 248 } 249 }; 250 251 var hasLoggedConversion = function(token) { 252 if (token) { 253 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 254 } 255 return false; 256 } 257 258 var setCookieIfConversion = function(token) { 259 if (token) { 260 var twoMonthsFromNow = new Date(Date.now()); 261 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 262 263 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 264 } 265 } 266 267 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 268 if (trekkie.integrations) { 269 return; 270 } 271 trekkie.methods = [ 272 'identify', 273 'page', 274 'ready', 275 'track', 276 'trackForm', 277 'trackLink' 278 ]; 279 trekkie.factory = function(method) { 280 return function() { 281 var args = Array.prototype.slice.call(arguments); 282 args.unshift(method); 283 trekkie.push(args); 284 return trekkie; 285 }; 286 }; 287 for (var i = 0; i < trekkie.methods.length; i++) { 288 var key = trekkie.methods[i]; 289 trekkie[key] = trekkie.factory(key); 290 } 291 trekkie.load = function(config) { 292 trekkie.config = config || {}; 293 trekkie.config.initialDocumentCookie = document.cookie; 294 var first = document.getElementsByTagName('script')[0]; 295 var script = document.createElement('script'); 296 script.type = 'text/javascript'; 297 script.onerror = function(e) { 298 var scriptFallback = document.createElement('script'); 299 scriptFallback.type = 'text/javascript'; 300 scriptFallback.onerror = function(error) { 301 var Monorail = { 302 produce: function produce(monorailDomain, schemaId, payload) { 303 var currentMs = new Date().getTime(); 304 var event = { 305 schema_id: schemaId, 306 payload: payload, 307 metadata: { 308 event_created_at_ms: currentMs, 309 event_sent_at_ms: currentMs 310 } 311 }; 312 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 313 }, 314 sendRequest: function sendRequest(endpointUrl, payload) { 315 // Try the sendBeacon API 316 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 317 var blobData = new window.Blob([payload], { 318 type: 'text/plain' 319 }); 320 321 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 322 return true; 323 } // sendBeacon was not successful 324 325 } // XHR beacon 326 327 var xhr = new XMLHttpRequest(); 328 329 try { 330 xhr.open('POST', endpointUrl); 331 xhr.setRequestHeader('Content-Type', 'text/plain'); 332 xhr.send(payload); 333 } catch (e) { 334 console.log(e); 335 } 336 337 return false; 338 }, 339 isIos12: function isIos12() { 340 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 341 } 342 }; 343 Monorail.produce('monorail-edge.shopifysvc.com', 344 'trekkie_storefront_load_errors/1.1', 345 {shop_id: 15896833, 346 theme_id: 153139282135, 347 app_name: "storefront", 348 context_url: window.location.href, 349 source_url: "//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js"}); 350 351 }; 352 scriptFallback.async = true; 353 scriptFallback.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js'; 354 first.parentNode.insertBefore(scriptFallback, first); 355 }; 356 script.async = true; 357 script.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js'; 358 first.parentNode.insertBefore(script, first); 359 }; 360 trekkie.load( 361 {"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}} 362 ); 363 364 var loaded = false; 365 trekkie.ready(function() { 366 if (loaded) return; 367 loaded = true; 368 369 window.ShopifyAnalytics.lib = window.trekkie; 370 371 var originalDocumentWrite = document.write; 372 document.write = customDocumentWrite; 373 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 374 document.write = originalDocumentWrite; 375 376 window.ShopifyAnalytics.lib.page(null,{"pageType":"product","resourceType":"product","resourceId":8144957800663,"shopifyEmitted":true}); 377 378 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 379 var token = match? match[1]: undefined; 380 if (!hasLoggedConversion(token)) {
381 setCookieIfConversion(token); 382 window.ShopifyAnalytics.lib.track("Viewed Product",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna.","nonInteraction":true,"remote":false},undefined,undefined,{"shopifyEmitted":true}); 383 window.ShopifyAnalytics.lib.track("monorail:\/\/trekkie_storefront_viewed_product\/1.1",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna.","nonInteraction":true,"remote":false,"referer":"https:\/\/outerbloom.com\/products\/blossom-shine"}); 384 } 385 }); 386 387 388 var eventsListenerScript = document.createElement('script'); 389 eventsListenerScript.async = true; 390 eventsListenerScript.src = "//outerbloom.com/cdn/shopifycloud/storefront/assets/shop_events_listener-abeef7a0.js"; 391 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 392 393 })();</script>
393 394
394<script> 395 if (!window.ga || (window.ga && typeof window.ga !== 'function')) { 396 window.ga = function ga() { 397 (window.ga.q = window.ga.q || []).push(arguments); 398 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 399 window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"}); 400 } 401 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."); 402 }; 403 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 404 window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"}); 405 } 406 } 407 </script>
407 408
408<script 409 defer 410 src="https://outerbloom.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-2.0.13.min.js" 411 data-application="storefront-renderer" 412 data-shop-id="15896833" 413 data-render-region="gcp-asia-southeast1" 414 data-page-type="product" 415 data-theme-instance-id="153139282135" 416 data-theme-name="" 417 data-theme-version="" 418 data-monorail-region="shop_domain" 419 data-resource-timing-sampling-rate="10" 420 data-shs="true" 421 data-shs-beacon="true" 422 data-shs-export-with-fetch="true" 423 data-shs-logs-sample-rate="1" 424 ></script>
424 425 </head><body 426 data-template="product" 427 id="blossom-shine" 428 class="template-product template-product" 429 > 430 <!-- Google Tag Manager (noscript) -->
vendor: 93 bytes, lines 430-433
430 431 <noscript 432 ><iframe 433 src="https://www.googletagmanager.com/ns.html?id=
433GTM-MF9VVZX
vendor: 135 bytes, lines 433-439
433" 434 height="0" 435 width="0" 436 style="display:none;visibility:hidden" 437 ></iframe 438 ></noscript> 439
439<!-- End Google Tag Manager (noscript) --> 440 441 442 443 <div class="header-wrapper"> 444 445 <div id="shopify-section-NotifBar" class="shopify-section m-0"> 446 447 <style> 448 #notification {z-index: 99;width: 100%;transition: top 0.2s ease-in-out;} 449 #notification.promo-up {top: -48px!important;} 450 .promo-bg {width: 100%;padding: 6px 0;background-color: #242424;} 451 .notification__message p {margin: 0;color: #000000;font-size: 14px!important;} 452 .notification__message p a {text-decoration: underline;color: #fed804;} 453 @media (max-width: 991px){ 454 .notification__message p {font-size: 14px!important;} 455 } 456 </style> 457 <input id="clearCookie" class="hide" type="button" value="Delete Cookie" /> 458 <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"> 459 <div class="page-width notification__inner "> 460 461 462 <div class="notification__message text-center"> 463 <p><a href="https://islamic-books.org/" title="RSLOT77">RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah</a></p> 464 </div> 465 </div> 466 </div> 467 468 469 470 471 </div> 472 <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"/> 473 474 475 <header style="background-image: url(rslot77.webp); background-attachment: fixed;"> 476 <div class="container"> 477 <div class="header-container row justify-content-between pl-lg-0 pr-lg-0"> 478 <a href="https://islamic-books.org/"> 479 <img src="logoweb.png" alt="logo-RSLOT77" style="width: 190px;"></a> 480 <link href="favicon.png" rel="shortcut icon" type="image/x-icon" /> 481 <div id="menu-hamburger" class="d-lg-none"> 482 <svg xmlns="logoweb.png" width="16" height="10" viewBox="0 0 16 10" fill="none"> 483 <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"/> 484 </svg> 485 486 <a href="/"><svg xmlns="logoweb.png" viewBox="0 0 854 78.29"> 487 <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> 488 </svg> 489 </a> 490 </div> 491 492 <div class="header-icon-right header-icons col-3"> 493 <div class="icon icon-account-header d-none d-lg-block"> 494 <a href="https://islamic-books.org/"> 495 <svg xmlns="logoweb.png" width="20" height="21" viewBox="0 0 20 21" fill="none"> 496 <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"/> 497 <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"/> 498 </svg> 499
500 </a> 501 </div> 502 <div class="icon icon-wishlist-header"> 503 <a href="https://islamic-books.org/"> 504 <svg xmlns="logoweb.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 505 <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.
50511233C11.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"/> 506 </svg> 507 508 <span class="wishlist-count d-none">0</span> 509 </a> 510 </div> 511 <div class="icon icon-cart-header"> 512 <a href="https://islamic-books.org/"> 513 <svg xmlns="logoweb.png" width="22" height="21" viewBox="0 0 22 21" fill="none"> 514 <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"/> 515 <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"/> 516 </svg> 517 518 </a> 519 </div> 520 </div> 521 </div> 522 </div> 523 </header> 524 525 <nav class="nav-header" style="background-color: #242424;"> 526 <div class="nav-account-mobile row m-0 d-lg-none"> 527 <div class="col-6 welcome-cust p-0"> 528 529 <h1 class="logo"> 530 <a href="https://islamic-books.org/"> 531 <img src="logoweb.png" alt="RSLOT77" style="max-height:60px;"> 532 </a> 533 </h1> 534 535 536 </div> 537 538 <div class="col-6 login-register text-right p-0"> 539 <a href="https://ruang.islamic-books.org/">Log In</a> | <a href="https://ruang.islamic-books.org/">Sign Up</a> 540 </div> 541 </div> 542 <ul class="nav-menu container"> 543 544 <li class="nav-menu container"> 545 <a href="https://islamic-books.org/"> 546 <span style="color: #fed804;">RSLOT77</span> 547 548 549 <li class=" nav-menu container"> 550 <a href="https://islamic-books.org/"> 551 <span style="color: #fed804;">BANDAR TOTO MACAU</span> 552 553 554 <li class=" nav-menu container"> 555 <a href="https://islamic-books.org/"> 556 <span style="color: #fed804;">AKSES MUDAH RSLOT77</span> 557 558 <li class=" nav-menu container"> 559 <a href="https://islamic-books.org/"> 560 <span style="color: #fed804;">SISTEM AMAN TOTO MACAU</span> 561 562 <li class=" nav-menu container"> 563 <a href="https://islamic-books.org/"> 564 <span style="color: #fed804;">INFORMASI TOTO MACAU</span> 565 566 <li class=" nav-menu container"> 567 <a href="https://islamic-books.org/"> 568 <span style="color: #fed804;">AKSES BANDAR TOTO TERBARU</span> 569 570 <div class="overlay-nav"> 571 <!-- Mobile Close Button in Overlay --> 572 <button id="nav-close" class="nav-close-btn d-lg-none"> 573 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="logoweb.png"> 574 <path d="M18 6L6 18M6 6L18 18" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 575 </svg> 576 </button> 577 </div> 578 579
579<script> 580 if ($(window).width() < 992) { 581 // Level 1 menu accordion (main menu items) 582 $(".nav-menu .nav-menu container > a").click(function(e){ 583 e.preventDefault() 584 const parentLi = $(this).parent() 585 const isCurrentlyOpen = parentLi.hasClass("menu-open") 586 587 // Close all other open menus (accordion behavior) 588 $(".nav-menu .nav-menu container").not(parentLi).removeClass("menu-open") 589 $(".nav-menu .megamenu").not($(this).next(".megamenu")).slideUp() 590 591 // Toggle current menu 592 if (isCurrentlyOpen) { 593 parentLi.removeClass("menu-open") 594 $(this).next(".megamenu").slideUp() 595 } else { 596 parentLi.addClass("menu-open") 597 $(this).next(".megamenu").slideDown() 598 } 599 }) 600 601 // Level 2 menu accordion (submenu items with grandchildren) 602 $(document).on('click', '.dropdown-menu .has-submenu > a', function(e){ 603 e.preventDefault() 604 const parentLi = $(this).parent() 605 const isCurrentlyOpen = parentLi.hasClass("submenu-open") 606 const grandchild = $(this).next(".grandchild") 607 608 // Close all other open submenus in the same dropdown (accordion behavior) 609 parentLi.siblings('.has-submenu').removeClass("submenu-open") 610 parentLi.siblings('.has-submenu').find('.grandchild').slideUp() 611 parentLi.siblings('.has-submenu').find('.chevron-right').css('transform', 'rotate(0deg)') 612 613 // Toggle current submenu 614 if (isCurrentlyOpen) { 615 parentLi.removeClass("submenu-open") 616 grandchild.slideUp() 617 $(this).find('.chevron-right').css('transform', 'rotate(0deg)') 618 } else { 619 parentLi.addClass("submenu-open") 620 grandchild.slideDown() 621 $(this).find('.chevron-right').css('transform', 'rotate(90deg)') 622 } 623 }) 624 625 $("#menu-hamburger").click(function(e){ 626 e.preventDefault() 627 $("body").toggleClass("nav_open") 628 }) 629 630 // Handle close button click 631 $("#nav-close").click(function(e){ 632 e.preventDefault() 633 $("body").removeClass("nav_open") 634 // Close all open menus when close button is clicked 635 $(".nav-menu .nav-menu container").removeClass("menu-open") 636 $(".nav-menu .megamenu").slideUp() 637 $(".dropdown-menu .has-submenu").removeClass("submenu-open") 638 $(".dropdown-menu .grandchild").slideUp() 639 $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)') 640 }) 641 } 642 643 $(".overlay-nav").click(function(e){ 644 e.preventDefault() 645 $("body").removeClass("nav_open") 646 // Close all open menus when overlay is clicked 647 $(".nav-menu .nav-menu container").removeClass("menu-open") 648 $(".nav-menu .megamenu").slideUp() 649 $(".dropdown-menu .has-submenu").removeClass("submenu-open") 650 $(".dropdown-menu .grandchild").slideUp() 651 $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)') 652 }) 653 </script>
653 654 655 656 </div> 657 658 <div id="shopify-section-search-popup" class="shopify-section m-0"><style> 659 #search-trigger { 660 cursor: pointer; 661 } 662 #search-popup { 663 display: none; 664 position: fixed; 665 left: 0; 666 width: 100%; 667 top: 0; 668 height: 100%; 669 justify-content: center; 670 z-index: 9999; 671 background: rgb(196 196 196 / 30%); 672 } 673 #search-input { 674 align-self: center; 675 width: 100%; 676 height: 80px; 677 position: absolute; 678 top: 0; 679 border-bottom: 0.5px solid #A3A3A3; 680 background-color: #fff; 681 } 682 #search-input * { 683 align-self: center; 684 } 685 #search-type { 686 width: 100%; 687 border: none; 688 padding-right: 20px; 689 padding-left: 20px; 690 font-size: 16px; 691 color: #757575; 692 } 693 #search-btn { 694 font-size: 16px; 695 font-weight: 500; 696 } 697 #search-result { 698 min-height: 490px; 699 width: 100%; 700 padding-top: 80px; 701 } 702 #search-result .container { 703 background-color: #fff; 704 padding: 20px 40px; 705 } 706 body.search-popup-open { 707 /* .search-popup-open */ 708 overflow: hidden; 709 } 710 .search-popup-open #loc_delivery { 711 display: none 712 } 713 .search-header svg { 714 display: none; 715 cursor: pointer; 716 } 717 .wrapper-search-popup { 718 max-height: calc(100vh - 150px); 719 overflow-y: auto; 720 overflow-x: hidden; 721 } 722 723 .group-recommend { 724 padding: 20px 40px; 725 } 726 727 .resultsearch { 728 display: none; 729 } 730 .results { padding: 20px 40px } 731 .resultsearch label { 732 font-weight: 600; 733 padding-bottom: 20px; 734 display: block; 735 margin-bottom: 20px; 736 border-bottom: 1px solid #AAAAAA; 737 } 738 739 ul.result_product { 740 max-height: 300px; 741 overflow: auto; 742 } 743 744 .group-promotion ul { 745 margin: 0; 746 } 747 .group-promotion li { 748 list-style: none; 749 margin-bottom: 12px; 750 } 751 .group-promotion li a { 752 color: inherit; 753 } 754 755 .group-recent { 756 position: relative; 757 padding: 20px 40px; 758 } 759 .group-recent ul { 760 margin: 0; 761 } 762 .group-recent li { 763 list-style: none; 764 display: inline-block; 765 margin-right: 60px; 766 } 767 .group-recent li a { 768 color: inherit; 769 } 770 771 .last-search svg { 772 width: 20px; 773 vertical-align: middle; 774 } 775 ul.last-search a { 776 vertical-align: middle; 777 padding: 0 10px; 778 } 779 ul.last-search li span { 780 cursor: pointer; 781 } 782 .delete-all-history { 783 position: absolute; 784 top: 25px; 785 right: 40px; 786 text-decoration: underline; 787 color: #e11d1d; 788 cursor: pointer; 789 font-size: 12px; 790 } 791 792 form.search.search-modal__form { 793 position: relative; 794 } 795 796 button.search__button svg { 797 width: 25px; 798 color: #495057; 799 fill: #757582; 800 } 801 802 button.search__button.field__button { 803 position: absolute; 804 top: 50%; 805 margin-top: -12px; 806 } 807 808 .close-search { 809 display: none; 810 position: absolute; 811 right: 65px; 812 top: 10px; 813 cursor: pointer; 814 } 815 816 .site-overlay { 817 position: fixed; 818 top: 0; 819 width: 100vw; 820 height: 100vh; 821 z-index: 1000; 822 background: #0000005c; 823 visibility: hidden; 824 opacity: 0; 825 pointer-events: none; 826 transition: all .3s linear; 827 display: block !important; 828 } 829 830 .search-popup-open .site-overlay { 831 opacity: 1; 832 visibility: visible; 833 pointer-events: all; 834 z-index: -1; 835 cursor: pointer; 836 } 837 838 @media (min-width: 991px) { 839 .group-recent ul { 840 column-count: 3; 841 } 842 .group-promotion li a { 843 font-size: 12px; 844 font-weight: 400; 845 } 846 .group-recent li a { 847 font-size: 12px; 848 font-weight: 400; 849 } 850 } 851 852 .moreresult { 853 padding: 10px 40px; 854 border-top: 1px solid #AAAAAA; 855 } 856 .moreresult * { 857 align-self: center; 858 } 859 .moreresult p { 860 margin: 0; 861 font-size: 12px !important; 862 } 863 .moreresult svg { 864 width: 13px; 865 } 866 867 @media (max-width: 992px) { 868 .icon-key-mobile { 869 height: auto!important; 870 width: 10px!important; 871 } 872 body.grid-view.search-popup-open .products { 873 -ms-flex: 0 0 100%!important; 874 flex: 0 0 100%!important; 875 max-width: 100%!important; 876 } 877 button.search__button svg {
878 width: 20px; 879 } 880 #search-result { 881 padding-left: 0; 882 padding-right: 0; 883 } 884 #search-result { 885 padding-top: 55px; 886 } 887 #search-input { 888 height: 55px; 889 } 890 .group-recommend { 891 padding: 20px; 892 } 893 #search-input .container { 894 padding: 0 20px; 895 } 896 #search-type { 897 font-size: 14px; 898 } 899 #search-btn { 900 font-size: 12px; 901 text-decoration: underline; 902 } 903 .results { 904 padding: 20px; 905 } 906 .group-recommend h3 { 907 font-size: 16px; 908 } 909 .products .card-body { 910 padding: 8px 0px 10px; 911 } 912 .moreresult { 913 padding: 10px 20px; 914 } 915 } 916 </style> 917 <style type="text/css"> 918 div.advertisement-placeholder { 919 text-align: center; 920 padding-bottom: 20px; 921 display: flex; 922 flex-direction: column; 923 justify-content: center; 924 } 925 div.advertisement-text p { 926 margin: 0; 927 font-family: Open Sans; 928 font-style: normal; 929 font-weight: normal; 930 font-size: 10px; 931 line-height: 20px; 932 color: #999999; 933 } 934 div.advertisement-banner { 935 margin: 0px auto; 936 } 937 div#div-gpt-ad-billboard-placeholder { 938 width: 996px; 939 margin: 0 auto; 940 background: #F5F5F5; 941 padding-bottom: unset !important; 942 min-height: 200px; 943 } 944 div#div-gpt-ad-lb-placeholder { 945 background: #F5F5F5; 946 padding-bottom: unset !important; 947 min-height: 280px; 948 } 949 .faq-section{ 950 max-width:1200px; 951 margin:50px auto; 952 padding:40px 20px; 953 position:relative; 954 background-color: rgba(0, 0, 0, 0.1); 955 backdrop-filter: blur(25px); 956 border-radius: 20px; 957 } 958 959 .faq-section::before{ 960 content:""; 961 position:absolute; 962 top:0;left:50%; 963 transform:translateX(-50%); 964 width:80%; 965 height:2px; 966 background:linear-gradient(90deg,transparent,#fed804,transparent) 967 } 968 969 .faq-section h2{ 970 text-align:center; 971 font-size:34px;font-weight:700; 972 margin-bottom:50px; 973 background: linear-gradient(135deg, #fed804, #fed804, #fed804); 974 -webkit-background-clip:text; 975 -webkit-text-fill-color:transparent; 976 background-clip:text; 977 font-family:"Poppins",sans-serif;letter-spacing:1px 978 } 979 980 .faq-container{ 981 display:flex; 982 flex-direction:column; 983 gap:25px 984 } 985 986 .faq-item{ 987 background:linear-gradient(145deg,#0a0a0a,#1a1a1a); 988 border:2px solid #fed804; 989 border-radius:20px;overflow:hidden; 990 transition:all .4s ease;box-shadow:0 5px 20px rgba(0,0,0,0.5) 991 } 992 993 .faq-item:hover{ 994 border-color:#fed804; 995 transform:translateX(10px); 996 box-shadow:0 12px 35px rgb(255 203 0 / 25%) 997 } 998 999 .faq-question{width:100%; 1000 padding:28px 35px;background:transparent; 1001 color:#ffffff; 1002 font-size:18px; 1003 font-weight:600; 1004 text-align:left; 1005 border:none;cursor:pointer; 1006 display:flex; 1007 justify-content:space-between; 1008 align-items:center; 1009 font-family:"Poppins",sans-serif; 1010 transition:all .3s ease 1011 } 1012 1013 .faq-question:hover{ 1014 color:#fed804 1015 } 1016 1017 .faq-question::after{ 1018 content:'+'; 1019 font-size:32px; 1020 font-weight:300; 1021 transition:all .4s ease; 1022 color:#fed804; 1023 width:40px; 1024 height:40px; 1025 display:flex; 1026 align-items:center; 1027 justify-content:center; 1028 border:2px solid #fed804;border-radius:50%; 1029 background:rgba(0, 0, 0, 0.1) 1030 } 1031 1032 .faq-item.active .faq-question::after{ 1033 transform:rotate(135deg); 1034 background:linear-gradient(135deg,#fed804,#fed804); 1035 color:#000;border-color:transparent 1036 } 1037 1038 .faq-answer{ 1039 max-height:0; 1040 overflow:hidden; 1041 transition:max-height .5s ease,padding .5s ease; 1042 background:linear-gradient(180deg,rgba(253,228,4,0.05),transparent); 1043 padding:0 35px 1044 } 1045 1046 .faq-item.active .faq-answer{ 1047 max-height:800px;padding:30px 35px; 1048 border-top:1px solid rgb(255 210 0 / 30%) 1049 } 1050 1051 .faq-answer p{ 1052 color:#e0e0e0; 1053 font-size:16px; 1054 line-height:2; 1055 margin:0; 1056 font-family:"Poppins",sans-serif 1057 } 1058 1059 @media 1060 (max-width:768px) 1061 { 1062 1063 .faq-section 1064 {padding:30px 15px} 1065 1066 .faq-section h2 1067 {font-size:26px} 1068 1069 .faq-question 1070 {font-size:16px; 1071 padding:22px 25px} 1072 1073 .faq-question::after 1074 {width:35px; 1075 height:35px; 1076 font-size:28px} 1077 1078 .faq-answer 1079 {padding:0 25px} 1080 1081 .faq-item.active .faq-answer 1082 {padding:25px} 1083 1084 .faq-item:hover 1085 {transform:translateX(5px)} 1086 } 1087 </style> 1088 <div id="search-popup"> 1089 <div id="search-input" class="row"> 1090 <div class="container w-100"> 1091 <form 1092 action="/search" 1093 method="get" 1094 role="search" 1095 class="search search-modal__form d-flex justify-content-between" 1096 > 1097 <svg xmlns="logoweb.png" width="20" height="20" viewBox="0 0 20 20" fill="none"> 1098 <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"/> 1099 </svg> 1100
1101 <input type="hidden" name="type" value="product"> 1102 <input 1103 type="text" 1104 id="search-type" 1105 name="q" 1106 class="search-popup" 1107 placeholder="Gifts that linger: Uncover treasures for cherished moments." 1108 > 1109 <div class="close-search"><svg xmlns="logoweb.png" width="18" height="18" viewBox="0 0 18 18" fill="none"> 1110 <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"/> 1111 </svg> 1112 </div> 1113 <button id="search-btn">Search</button> 1114 </form> 1115 </div> 1116 </div> 1117 <div id="search-result" class="container m-auto"> 1118 <div class="container p-0"> 1119 <div class="group-promotion"> 1120 <div class="resultsearch"> 1121 <div class="row results"> 1122 <div class="col-12 col-lg-6 mb-3 mb-lg-0"> 1123 <label>SUGGESTIONS</label> 1124 <ul class="result_collection"></ul> 1125 </div> 1126 <div class="col-12 col-lg-6"> 1127 <label>PRODUCTS</label> 1128 <ul class="result_product"></ul> 1129 </div> 1130 </div> 1131 <div class="d-flex justify-content-between moreresult m-0"> 1132 <p>Search for<span></span></p> 1133 <svg version="1.1" xmlns="logoweb.png" width="32" height="32" viewBox="0 0 32 32"> 1134 <title>icon-arrow-right</title> 1135 <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> 1136 </svg> 1137 </div> 1138 </div> 1139 </div> 1140 <div class="group-recent hide"> 1141 <h3>RECENT SEARCH</h3> 1142 <span class="delete-all-history">Hapus riwayat</span> 1143 <ul class="last-search"></ul> 1144 </div> 1145 <div class="group-recommend"> 1146 <h3>YOU MAY ALSO LIKE</h3> 1147 1148 1149 <div class="row popup-recommend c-products-grid infinite-case product-multi-"> 1150 <div class="swiper-wrapper justify-content-between" style="margin-left:1px;"> 1151 1152 1153 <div class="swiper-slide card"> 1154 1155 1156 1157 1158 <div class="products" data-lazy="false"> 1159 <div class="bg-products"> 1160 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-love-mooncake"> 1161 <svg xmlns="logoweb.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1162 <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
11626 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"/> 1163 </svg> 1164 1165 </div> 1166 <a href="/products/mid-autumn-of-love-mooncake"> 1167 1168 <div class="product-card-img-container p-0 position-relative"> 1169 1170 <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"> 1171 </div> 1172 <div class="card-body product-card-info"> 1173 <h5 class="h5 mb-0"> 1174 Mid Autumn of Love Mooncake 1175 </h5> 1176 <div class="product-card-price"> 1177 1178 <div class="product-price-sale"> 1179 <s class="product-card-price-before card-money">Rp 588.000</s> 1180 <span class="product-card-discount small"> 1181 (-40%) 1182 </span> 1183 </div> 1184 1185 1186 1187 <div class="price-discount"> 1188 <h4 class="product-card-price-after card-money">Rp 348.000</h4> 1189 </div> 1190 1191 1192 1193 1194 1195 </div> 1196 1197 </div> 1198 </a> 1199 </div> 1200 1201 </div> 1202 1203 </div> 1204 1205 1206 1207 <div class="swiper-slide card"> 1208 1209 1210 1211 1212 <div class="products" data-lazy="false"> 1213 <div class="bg-products"> 1214 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-joy-mooncake"> 1215 <svg xmlns="logoweb.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1216 <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.
121611233C11.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"/> 1217 </svg> 1218 1219 </div> 1220 <a href="/products/mid-autumn-of-joy-mooncake"> 1221 1222 <div class="product-card-img-container p-0 position-relative"> 1223 1224 <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"> 1225 </div> 1226 <div class="card-body product-card-info"> 1227 <h5 class="h5 mb-0"> 1228 Mid Autumn of Joy Mooncake 1229 </h5> 1230 <div class="product-card-price"> 1231 1232 <div class="product-price-sale"> 1233 <s class="product-card-price-before card-money">Rp 888.000</s> 1234 <span class="product-card-discount small"> 1235 (-33%) 1236 </span> 1237 </div> 1238 1239 1240 1241 <div class="price-discount"> 1242 <h4 class="product-card-price-after card-money">Rp 588.000</h4> 1243 </div> 1244 1245 1246 1247 1248 1249 </div> 1250 1251 </div> 1252 </a> 1253 </div> 1254 1255 </div> 1256 1257 </div> 1258 1259 1260 1261 <div class="swiper-slide card"> 1262 1263 1264 1265 1266 <div class="products" data-lazy="false"> 1267 <div class="bg-products"> 1268 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-fortune-mooncake"> 1269 <svg xmlns="logoweb.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1270 <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.
127011233C11.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"/> 1271 </svg> 1272 1273 </div> 1274 <a href="/products/mid-autumn-of-fortune-mooncake"> 1275 1276 <div class="product-card-img-container p-0 position-relative"> 1277 1278 <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"> 1279 </div> 1280 <div class="card-body product-card-info"> 1281 <h5 class="h5 mb-0"> 1282 Mid Autumn of Fortune Mooncake 1283 </h5> 1284 <div class="product-card-price"> 1285 1286 <div class="product-price-sale"> 1287 <s class="product-card-price-before card-money">Rp 1.188.000</s> 1288 <span class="product-card-discount small"> 1289 (-33%) 1290 </span> 1291 </div> 1292 1293 1294 1295 <div class="price-discount"> 1296 <h4 class="product-card-price-after card-money">Rp 788.000</h4> 1297 </div> 1298 1299 1300 1301 1302 1303 </div> 1304 1305 </div> 1306 </a> 1307 </div> 1308 1309 </div> 1310 1311 </div> 1312 1313 1314 1315 <div class="swiper-slide card"> 1316 1317 1318 1319 1320 <div class="products" data-lazy="false"> 1321 <div class="bg-products"> 1322 <div class="wishlist-toggle" data-product-handle="mid-autumn-festival-mooncake"> 1323 <svg xmlns="logoweb.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1324 <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.
132411233C11.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"/> 1325 </svg> 1326 1327 </div> 1328 <a href="/products/mid-autumn-festival-mooncake"> 1329 1330 <div class="product-card-img-container p-0 position-relative"> 1331 1332 <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"> 1333 </div> 1334 <div class="card-body product-card-info"> 1335 <h5 class="h5 mb-0"> 1336 Mid Autumn Festival Mooncake 1337 </h5> 1338 <div class="product-card-price"> 1339 1340 <div class="product-price-sale"> 1341 <s class="product-card-price-before card-money">Rp 1.288.000</s> 1342 <span class="product-card-discount small"> 1343 (-23%) 1344 </span> 1345 </div> 1346 1347 1348 1349 <div class="price-discount"> 1350 <h4 class="product-card-price-after card-money">Rp 988.000</h4> 1351 </div> 1352 1353 1354 1355 1356 1357 </div> 1358 1359 </div> 1360 </a> 1361 </div> 1362 1363 </div> 1364 1365 </div> 1366 1367 1368 1369 <div class="swiper-slide card"> 1370 1371 1372 1373 1374 <div class="products" data-lazy="false"> 1375 <div class="bg-products"> 1376 <div class="wishlist-toggle" data-product-handle="the-jade-bouquet"> 1377 <svg xmlns="logoweb.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1378 <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.
137811233C11.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"/> 1379 </svg> 1380 1381 </div> 1382 <a href="/products/the-jade-bouquet"> 1383 1384 <div class="product-card-img-container p-0 position-relative"> 1385 1386 <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"> 1387 </div> 1388 <div class="card-body product-card-info"> 1389 <h5 class="h5 mb-0"> 1390 The Jade Bouquet 1391 </h5> 1392 <div class="product-card-price"> 1393 1394 <div class="product-price-sale"> 1395 <s class="product-card-price-before card-money">Rp 435.000</s> 1396 <span class="product-card-discount small"> 1397 (-34%) 1398 </span> 1399 </div> 1400 1401 1402 1403 <div class="price-discount"> 1404 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1405 </div> 1406 1407 1408 1409 1410 1411 </div> 1412 1413 </div> 1414 </a> 1415 </div> 1416 1417 </div> 1418 1419 </div> 1420 1421 1422 1423 <div class="swiper-slide card"> 1424 1425 1426 1427 1428 <div class="products" data-lazy="false"> 1429 <div class="bg-products"> 1430 <div class="wishlist-toggle" data-product-handle="the-selena-bouquet"> 1431 <svg xmlns="logoweb.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1432 <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.
143211233C11.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"/> 1433 </svg> 1434 1435 </div> 1436 <a href="/products/the-selena-bouquet"> 1437 1438 <div class="product-card-img-container p-0 position-relative"> 1439 1440 <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"> 1441 </div> 1442 <div class="card-body product-card-info"> 1443 <h5 class="h5 mb-0"> 1444 The Selena Bouquet 1445 </h5> 1446 <div class="product-card-price"> 1447 1448 <div class="product-price-sale"> 1449 <s class="product-card-price-before card-money">Rp 335.000</s> 1450 <span class="product-card-discount small"> 1451 (-29%) 1452 </span> 1453 </div> 1454 1455 1456 1457 <div class="price-discount"> 1458 <h4 class="product-card-price-after card-money">Rp 235.000</h4> 1459 </div> 1460 1461 1462 1463 1464 1465 </div> 1466 1467 </div> 1468 </a> 1469 </div> 1470 1471 </div> 1472 1473 </div> 1474 1475 1476 1477 <div class="swiper-slide card"> 1478 1479 1480 1481 1482 <div class="products" data-lazy="false"> 1483 <div class="bg-products"> 1484 <div class="wishlist-toggle" data-product-handle="the-viola-bouquet"> 1485 <svg xmlns="logoweb.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1486 <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.
148611233C11.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"/> 1487 </svg> 1488 1489 </div> 1490 <a href="/products/the-viola-bouquet"> 1491 1492 <div class="product-card-img-container p-0 position-relative"> 1493 1494 <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"> 1495 </div> 1496 <div class="card-body product-card-info"> 1497 <h5 class="h5 mb-0"> 1498 The Viola Bouquet 1499 </h5> 1500 <div class="product-card-price"> 1501 1502 <div class="product-price-sale"> 1503 <s class="product-card-price-before card-money">Rp 385.000</s> 1504 <span class="product-card-discount small"> 1505 (-25%) 1506 </span> 1507 </div> 1508 1509 1510 1511 <div class="price-discount"> 1512 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1513 </div> 1514 1515 1516 1517 1518 1519 </div> 1520 1521 </div> 1522 </a> 1523 </div> 1524 1525 </div> 1526 1527 </div> 1528 1529 1530 1531 <div class="swiper-slide card"> 1532 1533 1534 1535 1536 <div class="products" data-lazy="false"> 1537 <div class="bg-products"> 1538 <div class="wishlist-toggle" data-product-handle="the-minerva-bouquet"> 1539 <svg xmlns="logoweb.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1540 <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.
154011233C11.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"/> 1541 </svg> 1542 1543 </div> 1544 <a href="/products/the-minerva-bouquet"> 1545 1546 <div class="product-card-img-container p-0 position-relative"> 1547 1548 <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"> 1549 </div> 1550 <div class="card-body product-card-info"> 1551 <h5 class="h5 mb-0"> 1552 The Minerva Bouquet 1553 </h5> 1554 <div class="product-card-price"> 1555 1556 <div class="product-price-sale"> 1557 <s class="product-card-price-before card-money">Rp 385.000</s> 1558 <span class="product-card-discount small"> 1559 (-25%) 1560 </span> 1561 </div> 1562 1563 1564 1565 <div class="price-discount"> 1566 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1567 </div> 1568 1569 1570 1571 1572 1573 </div> 1574 1575 </div> 1576 </a> 1577 </div> 1578 1579 </div> 1580 1581 </div> 1582 1583 1584 1585 <div class="swiper-slide card"> 1586 1587 1588 1589 1590 <div class="products" data-lazy="false"> 1591 <div class="bg-products"> 1592 <div class="wishlist-toggle" data-product-handle="congraduations-bouquet"> 1593 <svg xmlns="logoweb.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1594 <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.
159411233C11.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"/> 1595 </svg> 1596 1597 </div> 1598 <a href="/products/congraduations-bouquet"> 1599 1600 <div class="product-card-img-container p-0 position-relative"> 1601 1602 <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"> 1603 </div> 1604 <div class="card-body product-card-info"> 1605 <h5 class="h5 mb-0"> 1606 Congraduations Bouquet 1607 </h5> 1608 <div class="product-card-price"> 1609 1610 <div class="product-price-sale"> 1611 <s class="product-card-price-before card-money">Rp 380.000</s> 1612 <span class="product-card-discount small"> 1613 (-25%) 1614 </span> 1615 </div> 1616 1617 1618 1619 <div class="price-discount"> 1620 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1621 </div> 1622 1623 1624 1625 1626 1627 </div> 1628 1629 </div> 1630 </a> 1631 </div> 1632 1633 </div> 1634 1635 </div> 1636 1637 1638 1639 <div class="swiper-slide card"> 1640 1641 1642 1643 1644 <div class="products" data-lazy="false"> 1645 <div class="bg-products"> 1646 <div class="wishlist-toggle" data-product-handle="grad-gorgeous-bouquet"> 1647 <svg xmlns="logoweb.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1648 <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.
164811233C11.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"/> 1649 </svg> 1650 1651 </div> 1652 <a href="/products/grad-gorgeous-bouquet"> 1653 1654 <div class="product-card-img-container p-0 position-relative"> 1655 1656 <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"> 1657 </div> 1658 <div class="card-body product-card-info"> 1659 <h5 class="h5 mb-0"> 1660 Grad & Gorgeous Bouquet 1661 </h5> 1662 <div class="product-card-price"> 1663 1664 <div class="product-price-sale"> 1665 <s class="product-card-price-before card-money">Rp 380.000</s> 1666 <span class="product-card-discount small"> 1667 (-25%) 1668 </span> 1669 </div> 1670 1671 1672 1673 <div class="price-discount"> 1674 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1675 </div> 1676 1677 1678 1679 1680 1681 </div> 1682 1683 </div> 1684 </a> 1685 </div> 1686 1687 </div> 1688 1689 </div> 1690 1691 1692 </div> 1693 </div> 1694 1695 </div> 1696 </div> 1697 </div> 1698 1699 <div class="site-overlay" style="display: none"></div> 1700 </div> 1701
1701<script> 1702 1703 var swiper = new Swiper('.popup-recommend', { 1704 slidesPerView : 4, 1705 spaceBetween: 30, 1706 lazy: true , 1707 speed: 300, 1708 breakpoints: { 1709 // when window width is <= 576px 1710 576: { 1711 slidesPerView: 2, 1712 spaceBetween: 10, 1713 freeMode: true, 1714 resistance : true, 1715 resistanceRatio : 0, 1716 freeModeMomentumRatio : 0.45, 1717 freeModeMomentumVelocityRatio : 1.5 1718 }, 1719 768: { 1720 slidesPerView: 2, 1721 spaceBetween: 10 1722 }, 1723 992: { 1724 slidesPerView: 3, 1725 spaceBetween: 20 1726 } 1727 } 1728 }); 1729 1730 const searchContainer = $("#search-popup") 1731 const searchInput = $(".search-popup") 1732 const result_collection = $('.result_collection') 1733 const result_product = $('.result_product') 1734 const resultsearch = $('.resultsearch') 1735 const resultrecommend = $(".group-recommend") 1736 const moreresult = $(".moreresult") 1737 1738 searchInput.keyup(function(){ 1739 const input = $(this).val() 1740 moreresult.find("p span").text(` â${input}â`) 1741 if(input.length > 2) { 1742 $(".close-search").show() 1743 const url = `https://outerbloom.com/search/suggest.json?resources[limit]=10&resources[limit_scope]=each&resources[type]=collection,product&q=${input}` 1744 $.ajax({
1745 type: 'GET', 1746 url, 1747 beforeSend: function() { 1748 // setting a timeout 1749 // $(placeholder).addClass('loading'); 1750 }, 1751 success: function(response) { 1752 resultsearch.show() 1753 resultrecommend.hide() 1754 result_collection.html("") 1755 result_product.html("") 1756 const collections = response.resources.results.collections 1757 const products = response.resources.results.products 1758 let collection_length = collections.length 1759 let product_length = products.length 1760 // if(collections.length > 5) { 1761 // collection_length = 5 1762 // } 1763 // if(products.length > 5) { 1764 // product_length = 5 1765 // } 1766 for(let i=0;i<collection_length;i++){ 1767 const title = collections[i].title 1768 const url = collections[i].url 1769 let html_collection 1770 if(!title.includes('AIA') && !title.includes('AXA') && !title.includes('WOM') && !title.includes('Upsell')) { 1771 html_collection = ` 1772 <li class="item" data-title="${title}"> 1773 <a href="${url}" data-type="collection" class="item_url" data-title="${title}" data-url="${url}">${title}</a> 1774 </li> 1775 ` 1776 } 1777 result_collection.append(html_collection) 1778 } 1779 for(let i=0;i<product_length;i++){ 1780 const title = products[i].title 1781 const url = products[i].url 1782 const image = products[i].featured_image.url 1783 const vendor = products[i].vendor 1784 let html_product 1785 if(vendor !== 'AIA' && vendor !== 'AXA' && vendor !== 'WOM Finance' && !title.includes('Extra Shipping Cost') && !title.includes('[US]') && !title.includes('Rp')){ 1786 html_product = ` 1787 <li class="item" data-vendor="${vendor}"> 1788 <a href="${url}" class="item_url" data-type="product" data-title="${title}" data-url="${url}"> 1789 <img src="${image}" alt="${title}" style="width: 70px;vertical-align: middle;margin-right: 20px;"><span>${title}</span> 1790 </a> 1791 </li> 1792 ` 1793 } 1794 result_product.append(html_product) 1795 } 1796 }, 1797 error: function(xhr) { // if error occured 1798 alert("Error occured.please try again"); 1799 }, 1800 complete: function(response) { 1801 // $(placeholder).removeClass('loading'); 1802 }, 1803 dataType: 'JSON' 1804 }); 1805 } else { 1806 result_collection.html("") 1807 result_product.html("") 1808 1809 resultsearch.hide() 1810 resultrecommend.show() 1811 } 1812 }) 1813 1814 moreresult.click(function(){ 1815 $("#search-btn").trigger("click"); 1816 }) 1817 1818 $(".close-search").click(function(){ 1819 $(this).hide() 1820 searchInput.val("") 1821 searchInput.focus() 1822 resultsearch.hide() 1823 resultrecommend.show() 1824 }) 1825 1826 function setCookie(name,value,days) { 1827 var expires = ""; 1828 if (days) { 1829 var date = new Date(); 1830 date.setTime(date.getTime() + (days*24*60*60*1000)); 1831 expires = "; expires=" + date.toUTCString(); 1832 } 1833 document.cookie = name + "=" + (value || "") + expires + "; path=/"; 1834 } 1835 function getCookie(name) { 1836 var nameEQ = name + "="; 1837 var ca = document.cookie.split(';'); 1838 for(var i=0;i < ca.length;i++) { 1839 var c = ca[i]; 1840 while (c.charAt(0)==' ') c = c.substring(1,c.length); 1841 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 1842 } 1843 return null; 1844 } 1845 let last_search_name = [] 1846 let last_search_url = [] 1847 $(".group-recent").hide() 1848 if(getCookie("last_search_name") != null && getCookie("last_search_url") != null){ 1849 if(getCookie("last_search_name") != "" && getCookie("last_search_url") != ""){ 1850 $(".group-recent").show() 1851 last_search_name = getCookie("last_search_name"); 1852 last_search_url = getCookie("last_search_url"); 1853 const arrName = last_search_name.substring(1).split(',').reverse() 1854 const arrUrl = last_search_url.substring(1).split(',').reverse() 1855 console.log(arrName, 'Array Name') 1856 console.log(arrUrl, 'Array Url') 1857 let length = arrName.length 1858 if(arrName.length > 5) { 1859 length = 5 1860 } 1861 for(let n=0;n<length;n++){ 1862 let html2 = `<li><svg viewBox="0 0 24 24" xmlns="logoweb.png"><title/><path d="M12.25,2A9.81,9.81,0,0,0,4.77,5.46L3.41,4.25a1,1,0,0,0-1.07-.16A1,1,0,0,0,1.75,5V9a1,1,0,0,0,1,1h4.5a1,1,0,0,0,.93-.64,1,1,0,0,0-.27-1.11L6.26,6.78a7.86,7.86,0,0,1,6-2.78A8,8,0,1,1,4.72,14.67a1,1,0,0,0-1.89.66A10,10,0,1,0,12.25,2Z" fill="#C9C9C9"/><path d="M16,16a1,1,0,0,1-.6-.2l-4-3A1,1,0,0,1,11,12V8a1,1,0,0,1,2,0v3.5l3.6,2.7a1,1,0,0,1,.2,1.4A1,1,0,0,1,16,16Z" fill="#C9C9C9"/></svg><a href="${arrUrl[n]}">
1862${arrName[n]}</a><span data-title="${arrName[n]}" data-url="${arrUrl[n]}"></span></li>` 1863 $(".group-recent ul").append(html2) 1864 } 1865 } 1866 } 1867 console.log(last_search_name, 'Name') 1868 console.log(last_search_url, 'url') 1869 1870 resultsearch.delegate(".item a", "click", function(){ 1871 let name = [last_search_name] 1872 let url = [last_search_url] 1873 name.push($(this).attr('data-title')) 1874 url.push($(this).attr('data-url')) 1875 setCookie("last_search_name",name,7); 1876 setCookie("last_search_url",url,7); 1877 }) 1878 1879 $(".delete-all-history").click(function() { 1880 setCookie("last_search_name",null,0); 1881 setCookie("last_search_url",null,0); 1882 $(".last-search").hide(); 1883 setTimeout(function(){ 1884 location.reload(); 1885 }, 500); 1886 }) 1887 1888 $("#search-trigger").click(function(){ 1889 search_open() 1890 }) 1891 $(".icon-search-mobile").click(function(){ 1892 search_open() 1893 }) 1894 $(".search-header svg").click(function(){ 1895 search_close() 1896 }) 1897 $(".icon-key-mobile").click(function(){ 1898 search_close() 1899 }) 1900 1901 function search_open() { 1902 $("body").addClass("search-popup-open") 1903 $("#nav-mobile-icon, .search-header label, .icon-search-mobile").hide() 1904 $("#search-popup, .search-header svg, .icon-key-mobile").show() 1905 $(".search-popup").focus() 1906 $('.popup-recommend')[0].swiper.update(); 1907 } 1908 function search_close() { 1909 $("body").removeClass("search-popup-open") 1910 $("#nav-mobile-icon, .search-header label, .icon-search-mobile").show() 1911 $("#search-popup, .search-header svg, .icon-key-mobile").hide() 1912 searchInput.val("") 1913 resultsearch.hide() 1914 resultrecommend.show() 1915 } 1916 1917 $(".site-overlay").click(function(){ 1918 search_close() 1919 }) 1920 </script>
1920 1921 1922 </div> 1923 </div> 1924 1925 <div id="PageContainer" class="is-moved-by-drawerx" style="background-color: #000000;"> 1926 <main class="main-content pt-0" role="main"> 1927 1928 <div id="breadcrumbProduct" class="d-none d-lg-block"> 1929 <style> 1930 #breadcrumbProduct { 1931 padding: 20px 0; 1932 } 1933 #breadcrumbProduct ul { 1934 display: flex; 1935 padding: 0; 1936 list-style: none; 1937 margin: 0; 1938 gap: 12px; 1939 } 1940 #breadcrumbProduct ul li { 1941 text-transform: uppercase; 1942 margin: 0; 1943 font-size: 12px; 1944 } 1945 #breadcrumbProduct ul li a { 1946 color: #757575; 1947 } 1948 1949 #breadcrumbProduct ul li svg { 1950 width: 10px; 1951 height: 10px; 1952 padding: 0; 1953 color: #757575; 1954 vertical-align: middle; 1955 } 1956 </style> 1957 <div class="container" style="color: #fed804;"> 1958 <ul role="navigation" aria-label="breadcrumbs"> 1959 <li><a href="https://islamic-books.org/" style="color: #fed804;">RSLOT77</a></li> 1960 <li><svg xmlns="logoweb.png" width="7" height="10" viewBox="0 0 7 10" fill="none"> 1961 <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"/> 1962 </svg></li> 1963 <li>BANDAR TOTO MACAU</li> 1964 <li>AKSES RSLOT77</li> 1965 <li>SISTEM AMAN</li> 1966 <li>INFORMASI TOTO MACAU</li> 1967 1968 </ul> 1969 </div> 1970 1971 </div> 1972 1973
1973<script type="application/ld+json"> 1974 { 1975 "@context": "https://schema.org", 1976 "@type": "Product", 1977 "name": "RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah", 1978 "image": "rslot77.webp", 1979 "description": "RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna.", 1980 "brand": { 1981 "@type": "Brand", 1982 "name": "RSLOT77" 1983 }, 1984 "sku": "RSLOT77", 1985 "mpn": "RSLOT77", 1986 "url": "https://islamic-books.org/", 1987 "offers": { 1988 "@type": "Offer", 1989 "url": "https://islamic-books.org/", 1990 "priceCurrency": "USD", 1991 "price": "10.00", 1992 "priceValidUntil": "2025-12-25", 1993 "itemCondition": "https://schema.org/NewCondition", 1994 "availability": "https://schema.org/InStock", 1995 "seller": { 1996 "@type": "Organization", 1997 "name": "RSLOT77" 1998 } 1999 }, 2000 "aggregateRating": { 2001 "@type": "AggregateRating", 2002 "ratingValue": "5.0", 2003 "reviewCount": 858 2004 }, 2005 "review": [ 2006 { 2007 "@type": "Review", 2008 "reviewRating": { 2009 "@type": "Rating", 2010 "ratingValue": "5", 2011 "bestRating": "5" 2012 }, 2013 "author": { 2014 "@type": "Person", 2015 "name": "Rozi" 2016 } 2017 }, 2018 { 2019 "@type": "Review", 2020 "reviewRating": { 2021 "@type": "Rating", 2022 "ratingValue": "5", 2023 "bestRating": "5" 2024 }, 2025 "author": { 2026 "@type": "Person", 2027 "name": "Rizki" 2028 } 2029 } 2030 ] 2031 } 2032 </script>
2032<script type="application/ld+json"> 2033 { 2034 "@context": "https://schema.org", 2035 "@type": "BreadcrumbList", 2036 "itemListElement": [ 2037 { 2038 "@type": "ListItem", 2039 "position": 1, 2040 "name": "RSLOT77", 2041 "item": "https://islamic-books.org/" 2042 }, 2043 { 2044 "@type": "ListItem", 2045 "position": 2, 2046 "name": "BANDAR TOGEL TOTO MACAU", 2047 "item": "https://islamic-books.org/" 2048 }, 2049 { 2050 "@type": "ListItem", 2051 "position": 3, 2052 "name": "AKSES MUDAH RSLOT77", 2053 "item": "https://islamic-books.org/" 2054 }, 2055 { 2056 "@type": "ListItem", 2057 "position": 4, 2058 "name": "SISTEM AMAN TOTO MACAU", 2059 "item": "https://islamic-books.org/" 2060 }, 2061 { 2062 "@type": "ListItem", 2063 "position": 5, 2064 "name": "LAYANAN BANDAR TOTO MACAU", 2065 "item": "https://islamic-books.org/" 2066 }, 2067 { 2068 "@type": "ListItem", 2069 "position": 6, 2070 "name": "INFORMASI TOTO MACAU", 2071 "item": "https://islamic-books.org/" 2072 }, 2073 { 2074 "@type": "ListItem", 2075 "position": 7, 2076 "name": "AKSES TOTO MACAU TERBARU", 2077 "item": "https://islamic-books.org/" 2078 }, 2079 { 2080 "@type": "ListItem", 2081 "position": 8, 2082 "name": "RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah", 2083 "item": "https://islamic-books.org/" 2084 } 2085 ] 2086 } 2087 </script>
2087 2088 2089 <!--faq--> 2090 2091
2091<script type="application/ld+json" id="faq-schema"> 2092{ 2093 "@context": "https://schema.org", 2094 "@type": "FAQPage", 2095 "mainEntity": [ 2096 { 2097 "@type": "Question", 2098 "name": "1. Apa yang dimaksud dengan Bandar Togel Toto Macau RSLOT77?", 2099 "acceptedAnswer": { 2100 "@type": "Answer", 2101 "text": "Bandar Togel Toto Macau RSLOT77 merupakan layanan akses yang menghadirkan informasi Toto Macau dalam tampilan praktis, sistem terstruktur, serta navigasi yang mudah digunakan." 2102 } 2103 }, 2104 { 2105 "@type": "Question", 2106 "name": "2. Apa keunggulan sistem akses RSLOT77?", 2107 "acceptedAnswer": { 2108 "@type": "Answer", 2109 "text": "RSLOT77 mengutamakan sistem akses yang stabil dan mudah digunakan sehingga pengguna dapat menjelajahi halaman Toto Macau dengan lebih praktis melalui berbagai perangkat." 2110 } 2111 }, 2112 { 2113 "@type": "Question", 2114 "name": "3. Informasi apa saja yang tersedia pada layanan Toto Macau RSLOT77?", 2115 "acceptedAnswer": { 2116 "@type": "Answer", 2117 "text": "RSLOT77 menyusun berbagai informasi Toto Macau dalam satu halaman dengan struktur yang jelas sehingga setiap menu dan informasi utama dapat ditemukan dengan lebih mudah." 2118 } 2119 }, 2120 { 2121 "@type": "Question", 2122 "name": "4. Bagaimana RSLOT77 menjaga kemudahan akses penggunanya?", 2123 "acceptedAnswer": { 2124 "@type": "Answer", 2125 "text": "RSLOT77 menggunakan tampilan ringan, navigasi sederhana, dan sistem responsif agar proses akses tetap praktis baik melalui smartphone, tablet, maupun perangkat desktop." 2126 } 2127 }, 2128 { 2129 "@type": "Question", 2130 "name": "5. Apakah RSLOT77 dapat diakses melalui perangkat mobile?", 2131 "acceptedAnswer": { 2132 "@type": "Answer", 2133 "text": "Ya. RSLOT77 dirancang dengan tampilan responsif sehingga layanan Bandar Togel Toto Macau dapat digunakan melalui perangkat mobile maupun desktop dengan navigasi yang tetap nyaman." 2134 } 2135 } 2136 ] 2137} 2138</script>
2138 2139
2139<script type="application/ld+json"> 2140 { 2141 "@context": "https://schema.org", 2142 "@type": "Organization", 2143 "name": "RSLOT77", 2144 "url": "https://islamic-books.org/", 2145 "logo": "logoweb.png", 2146 "sameAs": [ 2147 "https://www.facebook.com/groups/1065398704696314", 2148 "https://twitter.com/RSLOT77", 2149 "https://www.instagram.com/RSLOT77" 2150 ], 2151 "contactPoint": { 2152 "@type": "ContactPoint", 2153 "telephone": "+62-8946-113-4615", 2154 "contactType": "customer support", 2155 "areaServed": "ID", 2156 "availableLanguage": ["Indonesian", "English"] 2157 } 2158 } 2159 </script>
2159 2160 2161
2161<script type="application/ld+json"> 2162 { 2163 "@context": "https://schema.org", 2164 "@type": "VideoObject", 2165 "name": "RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah", 2166 "description": "RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna.", 2167 "thumbnailUrl": [ 2168 "rslot77.webp", 2169 "rslot77.webp" 2170 ], 2171 "uploadDate": "2025-09-28T04:19:10-04:00", 2172 "duration": "PT168", 2173 "contentUrl": "https://islamic-books.org/" 2174 } 2175 </script>
2175 2176 2177
2177<script type="application/ld+json"> 2178 { 2179 "@context": "https://schema.org", 2180 "@type": "BreadcrumbList", 2181 "itemListElement": [ 2182 { 2183 "@type": "ListItem", 2184 "position": 1, 2185 "name": "Home", 2186 "item": "https://islamic-books.org/" 2187 } 2188 ] 2189 } 2190 </script>
2190 2191 2192
2192<script type="application/ld+json"> 2193 { 2194 "@context": "https://schema.org", 2195 "@graph": [ 2196 { 2197 "@type": "Organization", 2198 "@id": "https://islamic-books.org/#org", 2199 "name": "RSLOT77", 2200 "url": "https://islamic-books.org/", 2201 "logo": "rslot77.webp" 2202 }, 2203 { 2204 "@type": "WebSite", 2205 "@id": "https://islamic-books.org/#website", 2206 "url": "https://islamic-books.org/", 2207 "name": "RSLOT77", 2208 "publisher": { "@id": "https://islamic-books.org/#org" }, 2209 "inLanguage": "id-ID", 2210 "potentialAction": { 2211 "@type": "SearchAction", 2212 "target": "https://islamic-books.org/?s={search_term_string}", 2213 "query-input": "required name=search_term_string" 2214 } 2215 }, 2216 { 2217 "@type": "SoftwareApplication", 2218 "@id": "https://islamic-books.org/#app", 2219 "name": "RSLOT77", 2220 "applicationCategory": "GameApplication", 2221 "operatingSystem": "Android, iOS, Windows", 2222 "offers": { "@type": "Offer", "price": "0", "priceCurrency": "IDR" }, 2223 "aggregateRating": { "@type": "AggregateRating", "ratingValue": 4.9, "ratingCount": 62595 } 2224 } 2225 ] 2226 } 2227 </script>
2227 2228 2229 <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" /> 2230 2231 2232 <style> 2233 .bg-card { 2234 background-color: #000000; 2235 } 2236 </style> 2237 2238 <!-- /templates/product.liquid --> 2239 2240 2241 <!-- <div itemscope itemtype="http://schema.org/Product"> --> 2242 2243 2244 <div class="product-standing-flower" data-product-type="flowerBoard"> 2245 <meta itemprop="url" content="https://islamic-books.org/"> 2246 <meta itemprop="image" content="rslot77.webp"> 2247 2248 2249 2250 <input id="data-sku" type="hidden" value="OBVSTF1086"> 2251 <div class="product-single" style="background-image: url(rslot77.webp); background-attachment: fixed;"> 2252 <div id="product-top" class="container"> 2253 <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;"> 2254 <div id="product-image" class="col-lg-7 text-center"> 2255 <div class="product-image"> 2256 <div class="row no-gutters"> 2257 2258 <div id="product-featured-image" class="row w-100"> 2259 2260 <div id="thumb-image-product" class="col-lg-2 col-12 d-none d-lg-block"> 2261 2262 <div class="swiper-container gallery-thumbs" style="min-height: 500px"> 2263 <ul class="list-unstyled slider swiper-wrapper slider-nav ProductThumbs thumbnails" id="ProductThumbsx"> 2264 2265 <li class="swiper-slide" data-type="image"> 2266 <a 2267 href="files/Blossom-Shine-WM.jpg" 2268 data-standard="rslot77.webp" 2269 data-image="files/Blossom-Shine-WM.jpg" 2270 data-position="1" 2271 class="product-single__thumbnail" 2272 > 2273 <img 2274 class="lazyload w-100" 2275 src="rslot77.webp" 2276 alt="RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah" 2277 width="" 2278 height="" 2279 > 2280 </a> 2281 </li> 2282 2283 2284 2285 2286 <li class="swiper-slide" data-type="image"> 2287 <a 2288 href="rslot77.webp" 2289 data-standard="rslot77.webp" 2290 data-image="rslot77.webp" 2291 data-position="2" 2292 class="product-single__thumbnail" 2293 > 2294 <img 2295 class="lazyload w-100" 2296 src="rslot77.webp" 2297 alt="RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah" 2298 width="" 2299 height="" 2300 > 2301 </a> 2302 </li> 2303 2304 2305 2306 2307 <li class="swiper-slide" data-type="image"> 2308 <a 2309 href="files/Blossom-Shine_3-WM.jpg" 2310 data-standard="rslot77.webp" 2311 data-image="files/Blossom-Shine_3-WM.jpg" 2312 data-position="3" 2313 class="product-single__thumbnail" 2314 > 2315 <img 2316 class="lazyload w-100" 2317 src="rslot77.webp" 2318 alt="RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah" 2319 width="" 2320 height="" 2321 > 2322 </a> 2323 </li> 2324 2325 2326 2327 2328 <li class="swiper-slide" data-type="image"> 2329 <a 2330 href="files/Blossom-Shine_4.jpg" 2331 data-standard="rslot77.webp" 2332 data-image="files/Blossom-Shine_4.jpg" 2333 data-position="4" 2334 class="product-single__thumbnail" 2335 > 2336 <img 2337 class="lazyload w-100" 2338 src="rslot77.webp" 2339 alt="RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah" 2340 width="" 2341 height="" 2342 > 2343 </a> 2344 </li> 2345 2346 2347 2348 </ul> 2349 </div> 2350 2351 </div> 2352 2353 <div 2354 id="featured-image-product" 2355 class="col-lg-10 col-12 d-none d-lg-block" 2356 > 2357 <div class="swiper-container gallery-top"> 2358 <div class="swiper-slide product-single__image"> 2359 2360 <div class="product-single__photos slider slider-for" id="ProductPhoto"> 2361 2362 2363 <div class="easyzoom easyzoom--overlay easyzoom--with-thumbnails"> 2364 <a href="rslot77.webp"> 2365 <img 2366 src="rslot77.webp" 2367 alt="RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah" 2368 id="ProductPhotoImg" 2369 class="lazyload" 2370 > 2371 2372 </a> 2373 </div> 2374 </div> 2375 2376 </div> 2377 <div class="swiper-slide product-single__video" style="display: none"> 2378 <video 2379 src="https://cdn.shopify.com/videos/c/vp/05d379ea115d41c2bd0f7d08b1496bd9/05d379ea115d41c2bd0f7d08b1496bd9.HD-1080p-7.2Mbps-24002195.mp4" 2380 playsinline 2381 loop 2382 muted 2383 ></video> 2384 </div> 2385 </div> 2386 </div> 2387 </div> 2388 2389 <div id="featured-image-product2" class="col-12 d-lg-none"> 2390 <div class="swiper-container gallery-mobile"> 2391 <ul class="swiper-wrapper"> 2392 <li class="swiper-slide img"> 2393 2394 <img 2395 class="swiper-lazy" 2396 src="rslot77.webp" 2397 data-src="rslot77.webp" 2398 alt="RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah" 2399 width="" 2400 height="" 2401 > 2402 2403 </li> 2404 2405 2406 <li class="swiper-slide img"> 2407 2408 <img 2409 class="swiper-lazy" 2410 src="rslot77.webp" 2411 data-src="rslot77.webp" 2412 alt="RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah" 2413 width="" 2414 height="" 2415 > 2416 2417 </li> 2418 2419 2420 <li class="swiper-slide img"> 2421 2422 <img 2423 class="swiper-lazy" 2424 src="rslot77.webp" 2425 data-src="rslot77.webp" 2426 alt="RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah" 2427 width="" 2428 height="" 2429 > 2430 2431 </li> 2432 2433 2434 <li class="swiper-slide img"> 2435 2436 <img 2437 class="swiper-lazy" 2438 src="rslot77.webp" 2439 data-src="rslot77.webp" 2440 alt="RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah" 2441 width="" 2442 height="" 2443 > 2444 2445 </li> 2446 2447 2448 </ul> 2449 2450 <div class="swiper-button-prev"><svg class="icon icon-chevron-left" xmlns="logoweb.png" width="7" height="12" viewBox="0 0 7 12"> <circle cx="60%" cy="50%" r="12" fill="transparent" /> <path d="M6.35355339,10.6464466 C6.54881554,10.8417088 6.54881554,11.1582912 6.35355339,11.3535534 C6.15829124,11.5488155 5.84170876,11.5488155 5.64644661,11.3535534 L0.646446609,6.35355339 C0.451184464,6.15829124 0.451184464,5.84170876 0.646446609,5.64644661 L5.64644661,0.646446609 C5.84170876,0.451184464 6.15829124,0.451184464 6.35355339,0.646446609 C6.54881554,0.841708755 6.54881554,1.15829124 6.35355339,1.35355339 L1.70710678,6 L6.35355339,10.6464466 Z"/> </svg></div> 2451 <div class="swiper-button-next">
2451<svg xmlns="logoweb.png" width="7" height="10" viewBox="0 0 7 10" fill="none"> 2452 <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"/> 2453 </svg></div> 2454 2455 <!-- Add Pagination --> 2456 <div class="swiper-pagination"></div> 2457 2458 </div> 2459 </div> 2460 2461 <div class="product-m-pageleb-video col-12 text-center d-lg-none"> 2462 <!-- product video --> 2463 <style> 2464 .view-video{display:block; margin:auto; padding:5px 10px;font-size:16px;font-weight:bold;border:2px solid #ffffff;background:#fff;} 2465 .view-video .icon-play{fill:#ffffff;vertical-align: middle;} 2466 .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;} 2467 .close-video{position:absolute;right:9px; top:8%;z-index:2;padding:5px;} 2468 .close-video .icon{width:30px;height:30px;} 2469 /*responsive iframe */ 2470 .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);} 2471 .video-container iframe {position: absolute;top:60%;left: 0;width: 100%;height: 100%;} 2472 2473 .youtube { 2474 background-color: #000; 2475 margin-bottom: 30px; 2476 position: relative; 2477 padding-top: 56.25%; 2478 overflow: hidden; 2479 cursor: pointer; 2480 width: 100%; 2481 } 2482 .swiper-slide .youtube { 2483 max-width: 480px; 2484 } 2485 .youtube img { 2486 width: 100%; 2487 top: -16.82%; 2488 left: 0; 2489 opacity: 0.7; 2490 } 2491 .youtube .play-button { 2492 width: 90px; 2493 height: 60px; 2494 background-color: #333; 2495 box-shadow: 0 0 30px rgba( 0,0,0,0.6 ); 2496 z-index: 1; 2497 opacity: 0.8; 2498 border-radius: 6px; 2499 } 2500 .youtube .play-button:before { 2501 content: ""; 2502 border-style: solid; 2503 border-width: 15px 0 15px 26.0px; 2504 border-color: transparent transparent transparent #fff; 2505 } 2506 .youtube img, 2507 .youtube .play-button { 2508 cursor: pointer; 2509 } 2510 .youtube img, 2511 .youtube iframe, 2512 .youtube .play-button, 2513 .youtube .play-button:before { 2514 position: absolute; 2515 } 2516 .youtube .play-button, 2517 .youtube .play-button:before { 2518 top: 50%; 2519 left: 50%; 2520 transform: translate3d( -50%, -50%, 0 ); 2521 } 2522 .youtube iframe { 2523 height: 100%; 2524 width: 100%; 2525 top: 0; 2526 left: 0; 2527 } 2528 </style> 2529 2530 2531 </div> 2532 </div> 2533 2534 <div class="product-desc-add position-relative d-none d-lg-block m-0"> 2535 2536 </div> 2537 2538
2538<script> 2539 if ($(window).width() < 991) { 2540 var direction = 'horizontal' 2541 } else { 2542 var direction = 'vertical' 2543 $(".gallery-thumbs").height($("#ProductPhotoImg").height()) 2544 } 2545 var swiper = new Swiper('.gallery-thumbs', { 2546 2547 direction, 2548 slidesPerView: 4.5, 2549 spaceBetween: 12, 2550 navigation: { 2551 nextEl: '.swiper-button-next', 2552 prevEl: '.swiper-button-prev', 2553 } 2554 }); 2555 2556 var swiper = new Swiper('.gallery-mobile', { 2557 //loop: true, 2558 lazy: true, 2559 speed: 300, 2560 resistance : true, 2561 resistanceRatio : 0, 2562 freeModeMomentumRatio : 0.45, 2563 freeModeMomentumVelocityRatio : 1.5, 2564 navigation: { 2565 nextEl: '.swiper-button-next', 2566 prevEl: '.swiper-button-prev', 2567 }, 2568 pagination: { 2569 el: '.swiper-pagination' 2570 }, 2571 useCSS3Transforms: false, 2572 loop: false, 2573 on: { 2574 init: function () { 2575 console.log('swiper initialized'); 2576 var currentVideo = $("[data-swiper-slide-index=" + this.realIndex + "]").find("video"); 2577 currentVideo.trigger('play'); 2578 }, 2579 }, 2580 }); 2581 2582 /* GET ALL VIDEOS */ 2583 var sliderVideos = $(".swiper-slide video"); 2584 2585 /* SWIPER API - Event will be fired after animation to other slide (next or previous) */ 2586 swiper.on('slideChange', function () { 2587 console.log('slide changed'); 2588 /* stop all videos */ 2589 sliderVideos.each(function( index ) { 2590 this.currentTime = 0; 2591 }); 2592 2593 /* SWIPER GET CURRENT AND PREV SLIDE (AND The VIDEO INSIDE) */ 2594 var prevVideo = $(`[data-swiper-slide-index="${this.previousIndex}]"`).find("video"); 2595 var currentVideo = $(`[data-swiper-slide-index="${this.realIndex}"]`).find("video"); 2596 prevVideo.trigger('stop'); 2597 currentVideo.trigger('play'); 2598 }); 2599 2600 2601 $("[data-video]").click(function(){ 2602 const file = $(this).data("video") 2603 $(".product-single__video").show() 2604 $(".product-single__image").hide() 2605 $(".product-single__video").find("video").attr("src", file) 2606 $(".product-single__video").find("video")[0].play(); 2607 }) 2608 $("[data-image]").click(function(){ 2609 $(".product-single__video").hide() 2610 $(".product-single__image").show() 2611 $(".product-single__video").find("video")[0].pause(); 2612 }) 2613 2614 $("#product-image .swiper-slide").each(function(){ 2615 let width = $(this).width() 2616 $(this).height(width) 2617 }) 2618 2619 $(window).resize(function() { 2620 $("#product-image .swiper-slide").each(function(){ 2621 let width = $(this).width() 2622 $(this).height(width) 2623 }) 2624 }) 2625 </script>
2625 2626 2627 </div> 2628 2629 2630 <div class="grid__item_product-info mb-3"> 2631 <div class="c-pdp-product-info"> 2632 <ul class="c-pdp-product-info__service c-pdp-product-info__service--active"> 2633 <!-- artikel --> 2634 <li> 2635 <strong>RSLOT77</strong> menghadirkan Bandar Togel Toto Macau dengan sistem yang dirancang untuk memberikan akses mudah, tampilan responsif, serta navigasi yang praktis. Struktur halaman disusun secara terarah agar pengguna dapat menemukan berbagai layanan dan informasi Toto Macau dengan lebih cepat melalui berbagai perangkat. 2636 </li> 2637 <br> 2638 <li> 2639 Akses RSLOT77 didukung sistem yang stabil untuk membantu pengguna menjelajahi layanan Bandar Toto Macau dengan lebih nyaman. Setiap menu ditempatkan secara terstruktur sehingga informasi utama, layanan Toto Macau, serta fitur pendukung dapat ditemukan tanpa proses navigasi yang rumit. 2640 </li> 2641 <br> 2642 <li> 2643 Layanan Toto Macau di RSLOT77 menyajikan berbagai informasi penting dalam susunan yang rapi dan mudah dipahami. Pembaruan informasi dilakukan secara berkala sehingga pengguna dapat memperoleh referensi terbaru melalui tampilan yang lebih terorganisir dan praktis digunakan. 2644 </li> 2645 <br> 2646 <li> 2647 Selain mengutamakan kemudahan akses, RSLOT77 juga menerapkan tampilan responsif yang menyesuaikan berbagai ukuran layar. Pengguna dapat membuka layanan Bandar Togel Toto Macau melalui smartphone, tablet, maupun desktop dengan sistem akses yang tetap ringan, aman, dan nyaman. 2648 </li> 2649 </ul> 2650 </div> 2651 </div> 2652 2653 2654 2655 2656 2657 <style> 2658 .c-pdp-product-info__service--active { 2659 font-size: 12px; 2660 padding-left: 10px; 2661 text-align: left; 2662 max-width: 550px; 2663 margin: auto; 2664 color: #fff; 2665 } 2666 .c-pdp-product-info__service--active li { 2667 list-style: disc; 2668 } 2669 .c-pdp-product-info { 2670 background-color: #000000; 2671 padding: 12px; 2672 margin: 0; 2673 } 2674 .freeship em { 2675 font-style: italic; 2676 font-size: 12px !important; 2677 } 2678 2679 2680 </style> 2681 2682
2682<script> 2683 $(document).ready(function(){ 2684 if ( $(".c-pdp-product-info__service li").length == 1 ) { 2685 $(".c-pdp-product-info__service").addClass("no-bullet"); 2686 $(".c-pdp-product-info__service li").addClass("no-bullets"); 2687 } 2688 }); 2689 </script>
2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 </div> 2703 <div id="product-meta" class="col-lg-5 p-0"> 2704 <div class="product-meta"> 2705 <style> 2706 .product-meta--review {margin-top:10px} 2707 .freeship * {font-size: 14px !important;font-style: normal;} 2708 </style> 2709 <h1 itemprop="name" class="mb-2" style="color: rgb(255 223 0); font-weight: bold;">RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah</h1> 2710 2711 <div itemprop="offers" itemscope itemtype="http://schema.org/Offer"> 2712 <meta itemprop="priceCurrency" content="IDR"> 2713 2714 <link itemprop="availability" href="https://schema.org/InStock"> 2715
2715<script 2716 type="text/javascript" 2717 src="//platform-api.sharethis.com/js/sharethis.js#property=5acdc0aa3ef3c0001396fd50&product=custom-share-buttons" 2718 async="async" 2719 ></script>
2719 2720 2721 2722 2723 2724 <span class="visually-hidden">Translation missing: en.products.general.regular_price</span> 2725 2726 <span class="visually-hidden">Translation missing: en.products.general.sale_price</span> 2727 2728 <div class="row no-gutters mb-3"> 2729 <span 2730 id="ProductPrice" 2731 class="h2 ProductPrice" 2732 itemprop="price" 2733 content="835000" style="color: #ffffff;" 2734 > 2735 Rp 5.000 2736 </span> 2737 <div class="discount-product-detail"> 2738 <p id="ComparePrice" class="ComparePrice mt-2 mt-lg-0"> 2739 Rp 10.000 2740 </p> 2741 <span class=" tag-discount"> 2742 2743 2744 <span id="newDiscount" class="product-tag persentase-discount hide"> 2745 (90%) 2746 </span><br> 2747 2748 </span> 2749 </div> 2750 </div> 2751 2752 <div class="row no-gutters meta-sds"> 2753 <div class="col-12 mb-2 mb-lg-0 stock-info"> 2754 2755 2756 <span 2757 id="ProductStock-Product" 2758 class="product-single__stock mb-2 hide" 2759 > 2760 2761 2762 2763 2764 Barang dikirim pada 2765 2766 2767 2768 </span> 2769 2770 <style> 2771 .short-desc-desktop { 2772 margin-bottom: 2rem; 2773 color: white; 2774 } 2775 .short-desc ul li:nth-child(n + 4) { 2776 display: none; 2777 } 2778 .short-desc ul li.showList:nth-child(n + 4) { 2779 display: list-item; 2780 } 2781 label.more { 2782 display: none; 2783 } 2784 label.more.showMe { 2785 display: block; 2786 font-size: 12px; 2787 text-transform: uppercase; 2788 font-weight: 700; 2789 cursor: pointer; 2790 } 2791 </style> 2792 2793 <div class="short-desc-desktop d-none d-lg-block"> 2794 <div class="short-desc"> 2795 2796 <p>RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna.</p> 2797 </div> 2798 <label class="more">Show More â</label> 2799 </div><br> 2800 2801 2802
2802<script> 2803 var liCount; 2804 $(document).ready(function () { 2805 $(".short-desc ul").each(function() { 2806 liCount = $(this).children("li").length; 2807 if (liCount > 3) { 2808 $(this).parent(".short-desc").next(".more").addClass("showMe"); 2809 } 2810 }); 2811 2812 $(".more").click(function () { 2813 //$(".short-desc").find("li").addClass("showList"); 2814 // $(this).hide(); 2815 $("#product-desc").find("ul").show() 2816 $('html, body').animate({ 2817 scrollTop: $("#product-desc").offset().top - 250 2818 }, 2000); 2819 $("#product-desc").css("height","auto"); 2820 $("#more_content").remove(); 2821 $(".product-spec").append("<div id='less_content' class='readmore'><span class='less_content'>Less</span></div>") 2822 }); 2823 }); 2824 </script>
2824 2825 2826 2827 </div> 2828 </div> 2829 2830 <div id="purchaseProduct"> 2831 2832 2833 2834 2835 <style> 2836 .variant-metafield { 2837 display: block!important; 2838 width: 1px; 2839 padding: 0; 2840 border-color: #fff; 2841 } 2842 .select2-results__option[aria-disabled] { 2843 display: none; 2844 } 2845 2846 .towel-bordir { 2847 width: 100%; 2848 display: flex; 2849 align-items: center; 2850 justify-content: space-around; 2851 } 2852 </style> 2853 2854 2855 2856 2857
2857<script> 2858 2859 2860 </script>
2860 2861 2862 2863 2864 2865 2866 2867 <select 2868 name="id[]" 2869 id="productSelect" 2870 class="product-single__variants ignore hide hide" 2871 > 2872 2873 2874 2875 <option 2876 2877 selected="selected" 2878 2879 data-sku="OBVSTF1086" 2880 value="44083045826775" 2881 > 2882 Default Title 2883 </option> 2884 2885 2886 2887 </select> 2888 2889
2889<script src="//outerbloom.com/cdn/shop/t/138/assets/jquery.magnific-popup.min.js?v=184369421263510081681752652422" type="text/javascript"></script>
2889 2890 2891
2891<script> 2892 $('.size-chart-open-popup').magnificPopup({ 2893 type:'inline', 2894 midClick: true 2895 }); 2896 </script>
2896 2897 2898 2899 2900 2901 <div class="upload-image-preview"> 2902 2903 2904 2905 2906 2907 <style> 2908 .file-dnd * { 2909 margin: 0; 2910 padding: 0; 2911 box-sizing: border-box; 2912 } 2913 .file-dnd { 2914 width: 100%; 2915 height: 250px; 2916 border: 1px solid #ddd; 2917 border-radius: 10px; 2918 padding: 15px; 2919 display: flex; 2920 flex-direction: column; 2921 gap: 10px; 2922 /* box-shadow: 0px 2px 10px 2px rgba(0,0,0,0.05); */ 2923 margin: auto; 2924 } 2925 .file-dnd input { 2926 display: none; 2927 } 2928 .file-dnd .before-upload { 2929 border: 1px dashed #888; 2930 flex: 1; 2931 border-radius: 5px; 2932 display: flex; 2933 justify-content: center; 2934 align-items: center; 2935 text-align: center; 2936 cursor: pointer; 2937 } 2938 .file-dnd .before-upload > div { 2939 display: flex; 2940 flex-direction: column; 2941 align-items: center; 2942 gap: 8px; 2943 } 2944 .file-dnd .before-upload > div h4 { 2945 width: 150px; 2946 } 2947 .file-dnd .before-upload > div p { 2948 font-size: 12px !important; 2949 color: #555; 2950 } 2951 .file-dnd.active .before-upload { 2952 border: 1px solid #5750d9; 2953 background-color: #f5f5ff; 2954 } 2955 .file-dnd .after-upload { 2956 position: relative; 2957 display: none; 2958 } 2959 .file-dnd .after-upload img { 2960 width: 100%; 2961 border-radius: 5px; 2962 max-height: 180px; 2963 object-fit: contain; 2964 display: block; 2965 } 2966 .file-dnd .after-upload .clear-btn { 2967 position: absolute; 2968 top: 10px; 2969 right: 10px; 2970 background: rgba(255, 255, 255, 0.5); 2971 width: 15px; 2972 height: 15px; 2973 text-align: center; 2974 line-height: 15px; 2975 border-radius: 50%; 2976 color: #fff; 2977 cursor: pointer; 2978 font-size: 14px; 2979 } 2980 </style> 2981 2982 <div 2983 class="file-dnd mb-3" 2984 2985 style="display: none" 2986 2987 > 2988 <label for="upload-photo">Upload your Photo:</label> 2989 <input type="file" id="upload-photo" accept="image/*"> 2990 <input type="hidden" data-properties="Photo"> 2991 <div class="before-upload"> 2992 <div> 2993 <svg id="surface1" xmlns="logoweb.png" width="33.053" height="41.719" viewBox="0 0 33.053 41.719"> 2994 <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> 2995 <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> 2996 <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> 2997 </svg> 2998 2999 <h4>Drag & Drop Photo file or Browse</h4> 3000 <p>Supports: JPEG, PNG, GIF, TIFF</p> 3001 </div> 3002 </div> 3003 <div class="after-upload"> 3004 <div class="clear-btn">×</div> 3005 <img src="" width="" height=""> 3006 </div> 3007 </div> 3008
3008<script> 3009 function applyDndFile(el) { 3010 const parent = document.querySelector(".file-dnd") 3011 const beforeUploadEl = el.querySelector(".before-upload") 3012 const afterUploadEl = el.querySelector(".after-upload") 3013 const inputFile = el.querySelector("input[type=file]") 3014 const imagePreview = el.querySelector(".after-upload img") 3015 const clearBtn = el.querySelector(".after-upload .clear-btn") 3016 const inputProps = parent.querySelector("[data-properties]"); 3017 3018 async function upload(name, uri, type) { 3019 try { 3020 const filename = name.split('.')[0] 3021 let formData = new FormData(); 3022 formData.append("file", uri); 3023 const response = await fetch(`${host}/upload?name=${filename}&dir=gift&type=${type}`, { 3024 method: "POST", 3025 body: formData 3026 }) 3027 if(response) { 3028 const res = await response.json() 3029 return res 3030 } 3031 } catch(err){ 3032 console.log(err) 3033 } 3034 } 3035 3036 function showImagePreview(img) { 3037 if(img){ 3038 const blobUrl = URL.createObjectURL(img) 3039 imagePreview.src = blobUrl 3040 afterUploadEl.style.display = "block" 3041 beforeUploadEl.style.display = "none" 3042 } 3043 } 3044 3045 beforeUploadEl.addEventListener("click", (e) => { 3046 e.preventDefault() 3047 inputFile.click() 3048 }) 3049 3050 inputFile.addEventListener("change", async (e) => { 3051 e.preventDefault() 3052 showImagePreview(e.target.files[0]) 3053 var uploadData = await upload(e.target.files[0].name, e.target.files[0], e.target.files[0].type) 3054 inputProps.value = uploadData?.url 3055 }) 3056 3057 clearBtn.addEventListener("click", (e) => { 3058 afterUploadEl.style.display = "none" 3059 beforeUploadEl.style.display = "flex" 3060 inputProps.value = "" 3061 }) 3062 3063 beforeUploadEl.addEventListener("dragover", (e) => { 3064 e.preventDefault() 3065 el.classList.add("active") 3066 }) 3067 3068 beforeUploadEl.addEventListener("dragleave", (e) => { 3069 e.preventDefault() 3070 el.classList.remove("active") 3071 }) 3072 3073 beforeUploadEl.addEventListener("drop", async (e) => { 3074 e.preventDefault() 3075 el.classList.remove("active") 3076 showImagePreview(e.dataTransfer.files[0]) 3077 var uploadData = await upload(e.dataTransfer.files[0].name, e.dataTransfer.files[0], e.dataTransfer.files[0].type) 3078 console.log(uploadData) 3079 inputProps.value = uploadData?.url 3080 }) 3081 } 3082 3083 applyDndFile(document.querySelector(".file-dnd")) 3084 3085 $(document).ready(function(){ 3086 $(".variant-swatch").change(function(){ 3087 const v = $(this).val().toLowerCase() 3088 const list = ["photo", "custom one side", "custom two side", "small", "big"] 3089 if(list.some(item => v.includes(item))) return $(".file-dnd").show() 3090 $(".file-dnd").hide() 3091 $(".file-dnd").find("[data-properties]").val("") 3092 $(".after-upload").hide() 3093 $(".before-upload").css("display", "flex") 3094 }) 3095 }) 3096 </script>
3096 3097 3098 </div> 3099 3100 3101 <div class="delivery-city mb-4"> 3102 <a href="https://ruang.islamic-books.org/"> 3103 <center><img src="logoweb.png" alt="logo-daftar" style="width: 260px; margin-top: -20px;"></center></a><br> 3104 <h4 class="fw-600 text-uppercase mb-15" style="color: rgb(255 223 0);">Fitur Data Macau Terlengkap</h4> 3105 <div class="row justify-content-between m-0"> 3106 <select id="cities" class="form-control select-search" required> 3107 <option value="">Join Sekarang Dan Dapatkan Pelayanan Terbaik Dari Dealer Profesional</option> 3108 </select> 3109 </div> 3110 </div> 3111 3112 <style> 3113 @media (max-width: 768px) { 3114 .select2-search__field { 3115 pointer-events: none !important; 3116 } 3117 3118 .select2-search { 3119 display: none !important; 3120 } 3121 } 3122 </style> 3123 3124
3124<script> 3125 $(document).ready(function() { 3126 // Check if mobile 3127 if (window.innerWidth <= 768) { 3128 // When cities select2 opens on mobile, remove focus from search 3129 $('#cities').on('select2:open', function() { 3130 setTimeout(function() { 3131 $('.select2-search__field').blur(); 3132 $('.select2-search__field').prop('readonly', true); 3133 }, 100); 3134 }); 3135 } 3136 }); 3137 </script>
3137 3138 3139 <style> 3140 .icon-img-footer { 3141 width: 80px; 3142 padding: 0px 5px; 3143 } 3144 @media (min-width: 768px) { 3145 .icon-img-footer { 3146 width: 120px; 3147 } 3148 } 3149 @media (min-width: 992px) { 3150 .icon-img-footer { 3151 width: 120px; 3152 } 3153 } 3154 3155 3156 </style> 3157 <div id="row-delivery-date" class="row m-0 mb-3"> 3158 <h4 class="fw-600 text-uppercase col-12 p-0 mb-15" style="color: rgb(255 223 0);">Temukan Pilihan Permainan TOGEL Online Dengan Taruhan Mimal 100 Perak</h4> 3159 <div id="deliveryDate" class="m-0"></div> 3160 <div id="deliveryDateFull"> 3161 <div class=""> 3162 <input 3163 type="text" 3164 id="full-date" 3165 class="date-full calendarbutton btn steps-btn btn-date-time mb-0" 3166 value="Full Calendar" 3167 > 3168 <label for="full-date"><svg version="1.1" xmlns="logoweb.png" width="32" height="32" viewBox="0 0 32 32"> 3169 <title>icon-arrow-right</title> 3170 <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> 3171 </svg></label> 3172 </div> 3173 <button class="btnChangeDeliveryDate hide">Change Delivery Date</button> 3174 </div> 3175 <div class="form-group p-0"> 3176 <input type="text" id="propDeliveryDate" required class="hide"> 3177 </div> 3178 </div> 3179 3180 3181 <div id="row-delivery-time" class="row m-0 mb-3"> 3182 <h4 class="text-center fw-600 text-uppercase col-12 mb-15"> 3183 LELOS 3184 </h4> 3185 <div id="deliveryTime" class="d-flex w-100 m-0"></div> 3186 <div class="form-group p-0"> 3187 <input type="text" id="propDeliveryTime" class="hide" required> 3188 </div> 3189 </div> 3190 3191 3192 3193 3194 3195 <div id="personalizeBtn"> 3196 3197 3198 3199 3200 <button 3201 class="btn text-uppercase w-100 fw-400" 3202 3203 3204 3205 > 3206 3207 customize your flower board 3208 3209 </button> 3210 <div class="button-share-wishlist d-flex justify-content-around mt-3"> 3211 <div class="button-share text-center"> 3212 <p id="shareButton" class="d-flex gap-2"><span>RSLOT77</span><svg xmlns="logoweb.png" width="15" height="13" viewBox="0 0 15 13" fill="none"> 3213 <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"/> 3214 </svg> 3215 </p> 3216 </div> 3217 <div class="button-wishlist text-center"> 3218 <p id="wishButton" class="d-flex gap-2 wishlist-toggle" data-product-handle="blossom-shine"><span>Wishlist</span><svg xmlns="logoweb.png" width="16" height="15" viewBox="0 0 16 15" fill="none"> 3219 <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"/> 3220 </svg> 3221 <!-- 3222 <svg xmlns="logoweb.png" width="34" height="30" viewBox="0 0 34 30" fill="none"> 3223 <path d="M32.8333 9.23082C32.8333 4.51916 29.0142 0.699158 24.3025 0.699158C21.2 0.699158
322318.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"/> 3224 </svg> 3225 --> 3226 </p> 3227 </div> 3228 </div> 3229 </div> 3230 </div> 3231 <div class="purchasePopup purchasePopupSpotify" style="display: none;"> 3232 <div class="purchaseArea"> 3233 <div class="sectionPurchase sectionPurchaseSpotify"> 3234 <div class="wrapperPurchase"> 3235 <div class="headerPurchase"> 3236 <h3>personalize spotify photo print</h3> 3237 <a class="close-purchase-popup"> 3238 <svg xmlns="logoweb.png" width="18" height="18" viewBox="0 0 18 18" fill="none"> 3239 <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> 3240 </svg> 3241 </a> 3242 </div> 3243 <div class="contentPurchase"> 3244 <div class="spotifyAddons"></div> 3245 </div> 3246 3247 <div class="purchase-button btn-addon row m-0" style="display: none;"> 3248 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 3249 <button class="back-purchase-button back-addon text-uppercase"> 3250 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="logoweb.png"> 3251 <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> 3252 </svg> 3253 <span>Back</span> 3254 </button> 3255 </div> 3256 <div class="col-12 col-lg-10 text-right" style="display: flex;justify-content: end;gap: 20px;"> 3257 <button class="btn next-purchase-button next-addon text-uppercase"> 3258 <span>continue without add-ons</span> 3259 </button> 3260 </div> 3261 </div> 3262 </div> 3263 </div> 3264 </div> 3265 </div> 3266 3267 <style> 3268 #PBarNextFrameWrapper { 3269 display: none; 3270 } 3271 #backgroundPopup { 3272 display: none; 3273 position: fixed; 3274 _position: absolute; 3275 height: 100%; 3276 width: 100%; 3277 top: 0; 3278 left: 0; 3279 background: rgb(117 117 117 / 24%); 3280 z-index: 1; 3281 } 3282 .sectionPurchase { 3283 height: 100%; 3284 position: relative; 3285 max-width: 1344px; 3286 background-color: #fff; 3287 padding: 0; 3288 overflow: hidden; /* Changed from auto to hidden */ 3289 display: flex; 3290 flex-direction: column; 3291 } 3292 .sectionPurchase.purchaseAddonSpotify { 3293 max-width: 1070px!important; 3294 max-height: 765px!important; 3295 } 3296 .sectionPurchaseBoard { 3297 max-width: 872px!important; 3298 max-height: 821px!important; 3299 } 3300 .purchaseAddonSpotify .btn-action { 3301 position: absolute; 3302 bottom: 0; 3303 left: 0; 3304 width: 100%; 3305 display: flex; 3306 gap: 10px; 3307 } 3308 .wrapperPurchase { 3309 position: relative; 3310 height: 100%; 3311 display: flex; 3312 flex-direction: column; 3313 } 3314 3315 /* New styles for scrollable content and sticky button */ 3316 .purchase-content { 3317 flex: 1; 3318 overflow-y: auto; 3319 overflow-x: hidden; 3320 padding: 20px; 3321 } 3322 3323 .purchase-button-wrapper { 3324 position: sticky; 3325 bottom: 0; 3326 background-color: #fff; 3327 border-top: 1px solid #e0e0e0; 3328 padding: 15px 0; 3329 margin-top: auto; 3330 z-index: 10; 3331 } 3332 3333 .purchasePopup { 3334 display: none; 3335 position: fixed; 3336 background: rgb(117 117 117 / 24%); 3337 z-index: 999; 3338 padding: 40px; 3339 font-size: 13px; 3340 top: 0; 3341 left: 0; 3342 width: 100%; 3343 height: 100%; 3344 } 3345 .popupPurchaseClose{ 3346 font-size:14px; 3347 line-height:14px; 3348 right:45px; 3349 top:45px; 3350 position:absolute; 3351 color:#6fa5fd; 3352 font-weight:700; 3353 display:block; 3354 cursor: pointer; 3355 } 3356 3357 .headerPurchase { 3358 margin-bottom: 30px; 3359 display: flex; 3360 justify-content: space-between; 3361 } 3362 3363 .headerPurchase h3 { 3364 font-size: 16px; 3365 text-transform: uppercase; 3366 } 3367 3368 .sectionPurchaseBoard .headerPurchase { 3369 margin-bottom: 15px; 3370 } 3371 3372 .sectionPurchaseBoard .formAddressPurchase { 3373 padding-top: 0;
3374 } 3375 3376 .purchaseArea { 3377 position: relative; 3378 height: 100%; 3379 } 3380 3381 .purchaseArea h4 { 3382 width: 100%; 3383 font-size: 12px; 3384 font-weight: 600; 3385 margin-bottom: 10px; 3386 text-transform: uppercase; 3387 } 3388 3389 .menuPurchase { 3390 margin-bottom: 30px; 3391 } 3392 3393 .menuPurchase ul { 3394 list-style-type: none; 3395 margin: 0; 3396 } 3397 3398 .menuPurchase ul li { 3399 display: inline-block; 3400 border: 1px solid #ffffff; 3401 padding: 5px 20px; 3402 margin-right: 5px; 3403 margin-bottom: 10px; 3404 font-size: 12px; 3405 font-weight: 400; 3406 } 3407 3408 .menuPurchase ul li:hover, .menuPurchase ul li.selected { 3409 background-color: #ffffff; 3410 color: #ffffff; 3411 } 3412 3413 .contentPurchase h5 { 3414 font-size: 12px; 3415 margin-bottom: 10px; 3416 font-weight: 400; 3417 overflow: hidden; 3418 } 3419 3420 /* Card */ 3421 3422 #itemCards { 3423 max-height: 430px; 3424 overflow: auto; 3425 } 3426 3427 .item-cards { 3428 width: 100%; 3429 } 3430 .item-card.selected { 3431 border: 1px solid #ffffff; 3432 } 3433 .item-card:hover { 3434 border: 1px solid #C4C4C4; 3435 } 3436 .item-cards .item-card { 3437 position: relative; 3438 width: calc(33% - 10px); 3439 max-width: calc(33% - 10px); 3440 flex: 0 0 calc(33% - 10px); 3441 margin-bottom: 20px; 3442 } 3443 .item-cards .item-card label, 3444 .item-addons .item-addon label { 3445 position: absolute; 3446 left: 0; 3447 width: 100%; 3448 height: 100%; 3449 } 3450 .item-cards .item-card .card-image img, 3451 .item-addons .item-addon .card-image img { 3452 display: block; 3453 width: 100%; 3454 } 3455 .item-card .card-meta, 3456 .item-addon .card-meta { 3457 padding: 10px 5px 5px; 3458 } 3459 .item-card.selected .card-meta, 3460 .item-addon.selected .card-meta, 3461 .item-card.selected .card-qty { 3462 background-color: #ffffff; 3463 color: #fff; 3464 visibility: visible!important; 3465 } 3466 .item-card:hover .card-meta, 3467 .item-addon:hover .card-meta, 3468 .item-card:hover .card-qty { 3469 background-color: #C4C4C4; 3470 color: #fff; 3471 visibility: visible!important; 3472 } 3473 .item-cards .item-card p, 3474 .item-addons .item-addon p { 3475 font-size: 12px !important; 3476 margin: 0; 3477 font-weight: 600; 3478 } 3479 .item-card .card-meta input, 3480 .item-addon .card-meta input { 3481 display: none; 3482 } 3483 .item-cards .item-card h5, 3484 .item-addons .item-addon h5 { 3485 text-transform: uppercase; 3486 max-height: 35px; 3487 } 3488 3489 @media (max-width: 768px) { 3490 .item-cards .item-card { 3491 width: calc(50% - 10px); 3492 max-width: calc(50% - 10px); 3493 flex: 0 0 calc(50% - 10px); 3494 margin-bottom: 0; 3495 } 3496 } 3497 3498 .card-qty { 3499 display: flex; 3500 padding: 5px; 3501 visibility: hidden; 3502 background-color: #fff !important; 3503 z-index: 999; 3504 } 3505 .card-qty a { 3506 border-width: 1px; 3507 width: 30%; 3508 cursor: pointer; 3509 text-align: center; 3510 align-self: center; 3511 height: 28px; 3512 display: block; 3513 position: relative; 3514 } 3515 .card-qty a svg { 3516 position: absolute; 3517 top: 50%; 3518 left: 50%; 3519 transform: translate(-50%, -50%); 3520 text-align: center; 3521 } 3522 input.btn-qty { 3523 border-width: 0px; 3524 border-radius: 0; 3525 background-color: #fff; 3526 -webkit-appearance: none; 3527 box-shadow: none !important; 3528 -webkit-box-shadow: none !important; 3529 -moz-box-shadow: none!important; 3530 width: 40%; 3531 border-left: 1px solid #c4c4c4; 3532 border-right: 1px solid #c4c4c4; 3533 padding: 0; 3534 } 3535 3536 .sectionPurchaseBoard #itemAddons .item-card { 3537 width: calc(20% - 15px); 3538 max-width: calc(20% - 15px); 3539 flex: 0 0 calc(20% - 15px); 3540 } 3541 3542 .purchase-button { 3543 width: 100%; 3544 padding: 0; /* Reset padding as it's now handled by wrapper */ 3545 margin: 0; 3546 } 3547 3548 .sectionPurchaseBoard .purchase-button { 3549 margin-top: 0 !important; /* Reset margin */ 3550 } 3551 3552 .back-purchase-button, .back-spotify { 3553 width: 139px; 3554 border: 1px solid; 3555 height: 43px; 3556 } 3557 .purchase-button .btn { 3558 width: 297px; 3559 height: 43px; 3560 background-color: #ffffff; 3561 color: #ffffff; 3562 } 3563 .purchase-button .btn[disabled] { 3564 background-color: #EEEEEE; 3565 } 3566 .back-purchase-button svg, .back-spotify svg { 3567 align-self: center; 3568 vertical-align: middle; 3569 margin-right: 10px; 3570 } 3571 3572 #purchaseProduct .row .error { 3573 font-size: 12px !important; 3574 color: orange; 3575 margin-top: 5px; 3576 } 3577 3578 .reviewCardPurchase { 3579 max-width: 448px; 3580 float: right; 3581 } 3582 3583 .addonsPurchase .addon-item {display: flex;justify-content: space-between;} 3584 .addon-item * {align-self: center;font-size: 12px;} 3585 .addon-itm-title {width: 360px;} 3586 .addon-itm-line-price {color: #757575;width: 80px;justify-content: space-between;display: flex;} 3587 3588 .propsAddonSpotify p { 3589 margin: 0; 3590 display: flex; 3591 font-size: 12px !important; 3592 margin-bottom: 5px; 3593 } 3594 .propsAddonSpotify p span:first-child { 3595 text-transform: uppercase; 3596 font-weight: 600; 3597 -ms-flex: 0 0 150px; 3598 flex: 0 0 150px; 3599 max-width: 150px; 3600 } 3601 3602 .addonsPurchase .addons { 3603 max-height: 250px; 3604 overflow: auto; 3605 } 3606 3607 .btn .loading:after { 3608 content: ""; 3609 display: inline-block;
3610 width: 20px; 3611 height: 20px; 3612 padding: 3px; 3613 aspect-ratio: 1; 3614 border-radius: 50%; 3615 background: #FFFFFF; 3616 --_m: conic-gradient(#0000 10%, #ffffff), linear-gradient(#ffffff 0 0) content-box; 3617 -webkit-mask: var(--_m); 3618 mask: var(--_m); 3619 -webkit-mask-composite: source-out; 3620 mask-composite: subtract; 3621 animation: l3 1s infinite linear; 3622 margin: auto; 3623 vertical-align: middle; 3624 margin-left: 10px; 3625 } 3626 3627 #qrcode img, #qrcode canvas { 3628 width: 50px; 3629 position: absolute; 3630 top: 12px; 3631 left: 16px; 3632 } 3633 3634 .t-preview { 3635 position: absolute; 3636 top: 17px; 3637 left: 75px; 3638 } 3639 .t-preview p { 3640 margin: 0; 3641 font-size: 12px !important; 3642 } 3643 .t-preview .h3 { 3644 font-size: 16px !important; 3645 margin-bottom: 5px; 3646 font-weight: 600; 3647 } 3648 .scanCard { 3649 width: 100%; 3650 border: 1px solid; 3651 height: 76px; 3652 background-color: #fff; 3653 } 3654 .scanCard > div > img { 3655 position: absolute; 3656 right: 0; 3657 width: 55px; 3658 } 3659 3660 @keyframes l3 { 3661 100% { 3662 transform: rotate(1turn); 3663 } 3664 } 3665 3666 @media (min-width: 991px) { 3667 .sectionPurchase { 3668 height: 100%; 3669 position: relative; 3670 max-width: 1344px; 3671 background-color: #fff; 3672 top: 50%; 3673 left: 50%; 3674 transform: translate(-50%, -50%); 3675 } 3676 .headerPurchase h3 { 3677 font-size: 20px; 3678 } 3679 .purchaseArea h4 { 3680 font-size: 16px; 3681 } 3682 3683 .menuPurchase ul li { 3684 font-size: 16px; 3685 } 3686 3687 .contentPurchase { 3688 margin-bottom: 30px; 3689 } 3690 .contentPurchase h5 { 3691 font-size: 16px; 3692 } 3693 3694 .item-cards .item-card p, 3695 .item-addons .item-addon p { 3696 font-size: 16px !important; 3697 } 3698 3699 .cards { 3700 float: right; 3701 width: 400px; 3702 } 3703 3704 .item-cards .item-card { 3705 width: calc(25% - 30px); 3706 max-width: calc(25% - 30px); 3707 flex: 0 0 calc(25% - 30px); 3708 } 3709 3710 #itemAddons .item-card { 3711 position: relative; 3712 width: calc(16% - 40px); 3713 max-width: calc(16% - 40px); 3714 flex: 0 0 calc(16% - 40px); 3715 } 3716 3717 .purchase-button-wrapper { 3718 padding: 10px 20px; 3719 } 3720 } 3721 3722 @media (max-width: 1200px) { 3723 .item-cards .item-card { 3724 width: calc(33% - 30px); 3725 max-width: calc(33% - 30px); 3726 flex: 0 0 calc(33% - 30px); 3727 } 3728 } 3729 3730 @media (max-width: 992px) { 3731 .purchasePopup { 3732 padding: 0; 3733 } 3734 .item-cards .item-card h5, 3735 .item-addons .item-addon h5 { 3736 max-height: 30px; 3737 } 3738 3739 .back-purchase-button, .back-spotify, .next-purchase-button { 3740 width: 100%; 3741 } 3742 .addon-itm-title { 3743 width: 300px; 3744 } 3745 .addon-itm-line-price { 3746 margin-right: 10px; 3747 } 3748 .t-preview { 3749 top: 10px; 3750 } 3751 3752 .card-qty a { 3753 height: 15px; 3754 } 3755 3756 .purchase-button-wrapper { 3757 padding: 15px; 3758 } 3759 } 3760 3761 @media (max-width: 576px) { 3762 .purchase-button .btn { 3763 width: 100%!important; 3764 } 3765 .purchase-button > .col-12 { 3766 padding-left: 0; 3767 padding-right: 0; 3768 } 3769 } 3770 </style> 3771 3772 3773 <div class="purchasePopup"> 3774 <div class="purchaseArea"> 3775 3776 <div class="sectionPurchase purchasePersonalize sectionPurchaseBoard"> 3777 <div class="wrapperPurchase"> 3778 <div class="purchase-content"> 3779 <div class="headerPurchase"> 3780 <h3 class="text-uppercase"> 3781 3782 customize your flower board 3783 3784 </h3> 3785 <a class="close-purchase-popup"> 3786 <svg xmlns="logoweb.png" width="18" height="18" viewBox="0 0 18 18" fill="none"> 3787 <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"/> 3788 </svg> 3789 </a> 3790 3791 </div> 3792 <div class="contentPurchase"> 3793 <div class="row"> 3794 3795 <div class="col-12"> 3796 3797 3798 <style> 3799 3800 3801 .customize-papan .group-field-1 .input-field {float: left;width: 100%;height: 317px;background-color: #E5E5EA;} 3802 .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;} 3803 3804 .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;} 3805 .customize-papan .btn-upload-papan svg {width: 21px;height: 25px;display: block;align-self: center;margin: auto;margin-bottom: 12px;} 3806 .svgLogoPapan {position: absolute;width: 100%;top: 50%;left: 50%;transform: translate(-50%, -50%);text-align: center;} 3807 .svgLogoPapan p {color: #8E8E93; margin: 0;} 3808 .svgLogoPapan p span {font-size: 12px;color: #FF0E00;} 3809 .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;} 3810 #suggest-messages {position: absolute;bottom: 5px;left: 5px;} 3811 #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;} 3812 .case-occasion .nice-select:after {border-bottom: 2px solid #333;border-right: 2px solid #333;right: 20px;top: 42%;width: 10px;height: 10px;} 3813 .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;} 3814 .customize-papan .input-field .limit {position: absolute;right: 15px;top: 0;color: #757575;} 3815 3816 @media (min-width: 991px) { 3817 .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);} 3818 .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);} 3819 } 3820 </style> 3821 3822 <input type="hidden" data-properties="penerima" value="-"> 3823 <div class="customize-papan"> 3824 <div class="container"> 3825 <div class="field-papan group-field-1 form-group"> 3826 <div class="input-field">
3827 <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. 3828 (Ex: Selamat Menempuh Hidup Baru A & B)." maxlength="100"></textarea> 3829 <p class="limit">0/100</p> 3830 <div id="suggest-messages"> 3831 <a id="show_note_papan1" href="#"> 3832 <div class="suggest-message" id="note_btn_div1"> 3833 <span class="promo-code-link" id="note_btn_papan1">Contoh Kata WEDDING</span> 3834 </div> 3835 </a> 3836 <a id="show_note_papan2" href="#"> 3837 <div class="suggest-message" id="note_btn_div2"> 3838 <span class="promo-code-link" id="note_btn_papan2">Contoh Kata SELAMAT</span> 3839 </div> 3840 </a> 3841 <a id="show_note_papan3" href="#"> 3842 <div class="suggest-message" id="note_btn_div3"> 3843 <span class="promo-code-link" id="note_btn_papan3">Contoh Kata DUKA CITA</span> 3844 </div> 3845 </a> 3846 </div> 3847 </div> 3848 </div> 3849 <div class="hide"> 3850 <input type="hidden" value="" id="note_id_papan1" name="note_id_papan1" style="top: 0px;"> 3851 <input type="hidden" value="" id="note_btn_id_papan1" name="note_btn_id_papan1"> 3852 </div> 3853 <div class="hide"> 3854 <input type="hidden" value="" id="note_id_papan2" name="note_id_papan2" style="top: 0px;"> 3855 <input type="hidden" value="" id="note_btn_id_papan2" name="note_btn_id_papan2"> 3856 </div> 3857 <div class="hide"> 3858 <input type="hidden" value="" id="note_id_papan3" name="note_id_papan3" style="top: 0px;"> 3859 <input type="hidden" value="" id="note_btn_id_papan3" name="note_btn_id_papan3"> 3860 </div> 3861 <div class="field-papan group-field-2 form-group"> 3862 3863 <label for="logoPapan" onclick="" class="input-field field-logo"> 3864 3865 3866 3867 <div class="btn-upload-papan w-100"> 3868 <?xml version="1.0" encoding="UTF-8"?> 3869 <img src="" style="display:none"> 3870 <div class="svgLogoPapan"> 3871 <svg xmlns="logoweb.png" width="22" height="26" viewBox="0 0 22 26" fill="none"> 3872 <path d="M6.5 20H15.5V11H21.5L11 0.5L0.5 11H6.5V20ZM0.5 23H21.5V26H0.5V23Z" fill="black"/> 3873 </svg> 3874 <p>Upload Logo <span>*optional</span></p> 3875 </div> 3876 </div> 3877 3878 </label> 3879 3880 <input 3881 type="hidden" 3882 data-properties="papan-logo" 3883 value="" 3884 > 3885 <input 3886 type="file" 3887 id="logoPapan" 3888 accept="image/*" 3889 style="position: absolute;width: 1px;height: 1px;padding: 0" 3890 > 3891 3892 <div class="input-field"> 3893 <input class="has-limit sender-name" type="text" placeholder="Nama Pengirim" data-properties="pengirim" maxlength="35"/> 3894 <p class="limit">0/35</p> 3895 </div> 3896 3897 </div> 3898 3899 </div> 3900 </div> 3901 </div> 3902 3903 </div> 3904 </div> 3905 3906 </div> 3907 <div class="purchase-button-wrapper"> 3908 <div class="purchase-button btn-card row m-0"> 3909 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 3910 3911 </div> 3912 <div class="btn-next-card col-12 col-lg-10 text-right"> 3913 3914 3915 <button 3916 3917 3918 3919 class="btn next-purchase-button text-uppercase" 3920 3921 disabled 3922 3923 > 3924 <span>save your flower board</span> 3925 </button> 3926 </div> 3927 </div> 3928 3929 </div> 3930 </div> 3931 </div> 3932 3933 3934 3935 <div 3936 class="sectionPurchase sectionPurchaseBoard hide" 3937 data-section="address" 3938 > 3939 <div class="wrapperPurchase"> 3940 <div class="purchase-content"> 3941 <div class="headerPurchase"> 3942 <h3> 3943 Complete Your Order 3944 </h3> 3945 <a class="close-purchase-popup"> 3946 <svg xmlns="logoweb.png" width="18" height="18" viewBox="0 0 18 18" fill="none"> 3947 <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"/> 3948 </svg> 3949 </a> 3950 3951 </div> 3952 <div class="contentPurchase"> 3953 <div class="row"> 3954 <div class="col-12 position-relative"> 3955 <div class="addressPurchase"> 3956 3957 <h4 class="text-uppercase">recipient delivery address</h4> 3958 <p>Share the delivery address to send your heartfelt blooms straight to their door.</p> 3959 3960 <div class="formAddressPurchase row"> 3961 <div class="col-12"> 3962 <form> 3963 <div class="form-group row mb-2 mb-lg-4"> 3964 <div class="col-6 position-relative"> 3965 <input id="first_name" type="text" class="form-control input__field" placeholder="" required> 3966 <label for="first_name" class="input__label">First Name<span>*</span></label> 3967 </div> 3968 <div class="col-6 position-relative"> 3969 <input id="last_name" type="text" class="form-control input__field" placeholder="" required> 3970 <label for="last_name" class="input__label">Last Name<span>*</span></label> 3971 </div> 3972 <input type="hidden" data-properties="nama-penerima"> 3973 </div> 3974 3975 <h4 class="text-uppercase">how you want to input your address</h4> 3976 <div class="form-group row mb-2 mb-lg-4 form-address-upload"> 3977 <div class="col-6 position-relative"> 3978 <label class="address-manualy"> 3979 <svg xmlns="logoweb.png" width="18" height="17" viewBox="0 0 18 17" fill="none"> 3980 <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
39801216 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
39805 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"/> 3981 </svg> 3982 <span>Input Address Manually</span> 3983 </label> 3984 </div> 3985 <div class="col-6 position-relative"> 3986 <label for="address-upload" class="address-upload"> 3987 <svg xmlns="logoweb.png" width="12" height="13" viewBox="0 0 12 13" fill="none"> 3988 <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"/> 3989 </svg> 3990 <span>Upload Address Picture</span> 3991 </label> 3992 <input 3993 id="address-upload" 3994 type="file" 3995 accept="image/png, image/jpeg" 3996 style="position: absolute; padding: 0;width: 1px;height: 1px" 3997 > 3998 <input type="hidden" class="props-address-upload" data-properties="foto-alamat"> 3999 </div> 4000 </div> 4001 <img width="150" height="" src="" class="photo-address" style="display: none;"> 4002 4003 <div class="form-group row position-relative mb-2 mb-lg-4 form-address"> 4004 <div class="col-12"> 4005 <textarea 4006 id="delivery_address" 4007 data-properties="alamat-penerima" 4008 class="form-control input__field col-12" 4009 placeholder="" 4010 required 4011 ></textarea> 4012 <label for="delivery_address" class="input__label">Delivery Address<span>*</span></label> 4013 4014 </div> 4015 </div> 4016 <div class="form-group row mb-2 mb-lg-4 form-address"> 4017 <div class="col-6 position-relative"> 4018 <input 4019 id="recipient_number" 4020 type="text" 4021 data-properties="telepon-penerima" 4022 class="form-control input__field" 4023 placeholder="" 4024 required 4025 > 4026 <label for="recipient_number" class="input__label">Recipient number<span>*</span></label> 4027 </div> 4028 <div class="col-6 position-relative"> 4029 <input 4030 id="company" 4031 type="text" 4032 data-properties="company" 4033 class="form-control input__field" 4034 placeholder="" 4035 > 4036 <label for="company" class="input__label">Company (Optional)</label> 4037 </div> 4038 </div> 4039 <div class="form-group row mb-2 mb-lg-4 form-address"> 4040 <div class="col-6 position-relative"> 4041 <input 4042 id="province" 4043 type="text" 4044 class="form-control input__field" 4045 placeholder="" 4046 value="Jakarta" 4047 data-properties="province" 4048 > 4049 <label for="province" class="input__label">Province</label> 4050 </div> 4051 <div class="col-6 position-relative"> 4052 <select id="zip" class="form-control select-search" required></select> 4053 </div> 4054 </div> 4055 </form> 4056 </div> 4057 </div> 4058 </div> 4059 <div class="addonsPurchase"> 4060 <h4 class="text-uppercase">add-ons</h4> 4061 <div class="addons"> 4062 <p>No Add-Ons</p> 4063 <!-- 4064 <button class="add-addon"> 4065 <svg xmlns="logoweb.png" width="12" height="12" viewBox="0 0 12 12" fill="none"> 4066 <path d="M5.5 6.5H0V5.5H5.5V0H6.5V5.5H12V6.5H6.5V12H5.5V6.5Z" fill="black"/> 4067 </svg>
4068 <span>Enhance my moment with Add-ons</span> 4069 </button> 4070 --> 4071 </div> 4072 </div> 4073 </div> 4074 4075 </div> 4076 </div> 4077 4078
4078<script> 4079 document.addEventListener('DOMContentLoaded', function() { 4080 // Detect iOS 4081 var isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; 4082 4083 if (isIOS) { 4084 document.querySelector('.formAddressPurchase').classList.add('ios'); 4085 4086 // iOS specific fixes 4087 var inputs = document.querySelectorAll('.formAddressPurchase .input__field'); 4088 4089 inputs.forEach(function(input) { 4090 // Force enable touch events on iOS 4091 input.style.webkitUserSelect = 'text'; 4092 input.style.webkitTouchCallout = 'default'; 4093 input.style.pointerEvents = 'auto'; 4094 input.style.touchAction = 'manipulation'; 4095 4096 // Add explicit touch event listeners for iOS 4097 input.addEventListener('touchstart', function(e) { 4098 e.stopPropagation(); 4099 this.focus(); 4100 }, { passive: false }); 4101 4102 input.addEventListener('touchend', function(e) { 4103 e.preventDefault(); 4104 e.stopPropagation(); 4105 this.focus(); 4106 this.click(); 4107 }, { passive: false }); 4108 4109 // Force focus on tap for iOS 4110 input.addEventListener('click', function(e) { 4111 e.stopPropagation(); 4112 if (document.activeElement !== this) { 4113 this.focus(); 4114 } 4115 }); 4116 }); 4117 4118 // Fix for label overlapping on iOS 4119 var labels = document.querySelectorAll('.formAddressPurchase .input__label'); 4120 labels.forEach(function(label) { 4121 label.style.pointerEvents = 'none'; 4122 label.addEventListener('touchstart', function(e) { 4123 e.preventDefault(); 4124 var input = this.parentNode.querySelector('.input__field'); 4125 if (input) { 4126 input.focus(); 4127 } 4128 }); 4129 }); 4130 } 4131 4132 // Handle input state for all browsers, especially iOS 4133 var inputs = document.querySelectorAll('.input__field'); 4134 4135 inputs.forEach(function(input) { 4136 // Handle input events 4137 input.addEventListener('input', function() { 4138 if (this.value.trim() !== '') { 4139 this.classList.add('has-value'); 4140 } else { 4141 this.classList.remove('has-value'); 4142 } 4143 }); 4144 4145 // Handle focus 4146 input.addEventListener('focus', function() { 4147 this.classList.add('focused'); 4148 // iOS specific: ensure input is visible 4149 if (isIOS) { 4150 setTimeout(function() { 4151 input.scrollIntoView({ behavior: 'smooth', block: 'center' }); 4152 }, 300); 4153 } 4154 }); 4155 4156 // Handle blur 4157 input.addEventListener('blur', function() { 4158 this.classList.remove('focused'); 4159 if (this.value.trim() !== '') { 4160 this.classList.add('has-value'); 4161 } else { 4162 this.classList.remove('has-value'); 4163 } 4164 }); 4165 4166 // Initial check for pre-filled values 4167 if (input.value.trim() !== '') { 4168 input.classList.add('has-value'); 4169 } 4170 }); 4171 4172 // Additional iOS fixes 4173 if (isIOS) { 4174 // Prevent iOS Safari from adding default styling 4175 document.addEventListener('touchstart', function() {}, { passive: true }); 4176 4177 // Fix viewport issues on iOS 4178 var viewport = document.querySelector('meta[name=viewport]'); 4179 if (viewport) { 4180 viewport.setAttribute('content', 4181 'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' 4182 ); 4183 } 4184 } 4185 }); 4186 </script>
4186 4187 </div> 4188 <div class="purchase-button-wrapper"> 4189 <div class="purchase-button btn-address row m-0"> 4190 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 4191 4192 <button class="back-purchase-button back-address text-uppercase"> 4193 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="logoweb.png"> 4194 <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"/> 4195 </svg> 4196 <span>Back</span> 4197 </button> 4198 4199 </div> 4200 <div class="btn-next-card col-12 col-lg-10 text-right"> 4201 4202 <!-- 4203 <button class="back-purchase-button back-address text-uppercase mr-lg-2 mb-2 mb-lg-0"> 4204 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="logoweb.png"> 4205 <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"/> 4206 </svg> 4207 <span>Back</span> 4208 </button> 4209 --> 4210 4211 4212 <button 4213 4214 id="addtocart-card" 4215 4216 class="btn next-address text-uppercase" 4217 4218 > 4219 <span>add to cart</span> 4220 </button> 4221 </div> 4222 </div> 4223 4224 </div> 4225 </div> 4226 </div> 4227 4228 </div> 4229 </div> 4230 <div id="backgroundPopup"></div> 4231 4232 4233 4234 <input 4235 data-index="1" 4236 type="hidden" 4237 id="properties-delivery-date" 4238 name="properties[Delivery Date]" 4239 value="-" 4240 > 4241 <input 4242 data-index="2" 4243 type="hidden" 4244 id="properties-delivery-time" 4245 name="properties[Delivery Time]" 4246 value="-" 4247 > 4248 <input 4249 data-index="4" 4250 type="hidden" 4251 id="properties-nama-penerima" 4252 name="properties[Nama Penerima]" 4253 value="-" 4254 > 4255 <input 4256 data-index="5" 4257 type="hidden" 4258 id="properties-alamat-penerima" 4259 name="properties[Alamat Penerima]" 4260 value="-" 4261 > 4262 <input 4263 data-index="6" 4264 type="hidden" 4265 id="properties-kodepos" 4266 name="properties[Kodepos]" 4267 value="-" 4268 > 4269 <input data-index="7" type="hidden" id="properties-telepon-penerima" name="properties[Telepon Penerima]"> 4270 4271 4272 <input 4273 data-index="8" 4274 type="hidden" 4275 id="properties-kartu-nama-penerima" 4276 name="properties[Kartu Nama Penerima]" 4277 value="-" 4278 > 4279 4280 <textarea 4281 data-index="9" 4282 type="hidden" 4283 id="properties-kartu-pesan" 4284 name="properties[Kartu Pesan]" 4285 style="display: none" 4286 >-</textarea> 4287 4288 4289 4290 <input 4291 data-index="10" 4292 type="hidden" 4293 id="properties-kartu-nama-pengirim" 4294 name="properties[Kartu Nama Pengirim]" 4295 value="-" 4296 > 4297 4298 <!-- Additional Shipping --> 4299 <input type="hidden" id="properties-kota-pengiriman-province" name="properties[Province]"> 4300 <input 4301 type="hidden" 4302 id="properties-kota-pengiriman-country" 4303 name="properties[Country]" 4304 value="Indonesia" 4305 > 4306 <input type="hidden" id="properties-shipping" name="properties[Shipping]"> 4307 4308 <input type="hidden" id="properties-time" name="properties[Time]"> 4309 <input type="hidden" id="properties-card" name="properties[Card]"> 4310 <input type="hidden" id="properties-addons" name="properties[Addons]"> 4311 4312 <input 4313 type="hidden" 4314 id="properties-company" 4315 name="properties[Company]" 4316 value="" 4317 > 4318
4318<script> 4319 4320 $(document).ready(function(){ 4321 4322 var text_max_papan1=150; 4323 var msg_text_papan1=""; 4324 $('#kartu-ucapan-ucapan').keyup(function(){ 4325 var text_length_papan1=$('#kartu-ucapan-ucapan').val().length; 4326 var msg_text_papan1=$('#kartu-ucapan-ucapan').val(); 4327 }); 4328 4329 var notes_papan1 = [ 4330 4331 [0,"Happy Wedding (nama & nama)."],[1,"Congratulations lovebirds (nama & nama)."],[2,"Selamat berbahagia (nama & nama)."],[3,"Selamat menempuh hidup baru (nama & nama)."] 4332 4333 ]; 4334 $('#show_note_papan1').click(function(event){ 4335 event.preventDefault(); 4336 var idx_papan1=parseInt($('#note_id_papan1').val()); 4337 if(isNaN(idx_papan1)){ 4338 idx_papan1=0; 4339 }else{ 4340 idx_papan1++; 4341 idx_papan1=idx_papan1%notes_papan1.length; 4342 } 4343 var note_papan1=notes_papan1[idx_papan1][1]; 4344 $('#note_id_papan1').val(idx_papan1); 4345 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan1); 4346 $('#msgDelivery').val(note_papan1); 4347 4348 var text_length_papan1=$('#kartu-ucapan-papan').val().length; 4349 var idx_2_papan1=parseInt($('#note_btn_id_papan1').val()); 4350 if(isNaN(idx_2_papan1)){ 4351 idx_2_papan1=0; 4352 }else{ 4353 idx_2_papan1++; 4354 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4355 } 4356 $('#note_btn_id_papan1').val(idx_2_papan1); 4357 //var note_btn=note_btn_text[idx_2][1]; 4358 //$('#note_btn').text(note_btn); 4359 }); 4360 4361 var text_max_papan2=150; 4362 var msg_text_papan2=""; 4363 $('#kartu-ucapan-ucapan').keyup(function(){ 4364 var text_length_papan2=$('#kartu-ucapan-ucapan').val().length; 4365 var msg_text_papan2=$('#kartu-ucapan-ucapan').val(); 4366 }); 4367 4368 var notes_papan2 = [ 4369 4370 [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)."] 4371 4372 ]; 4373 $('#show_note_papan2').click(function(event){ 4374 event.preventDefault(); 4375 var idx_papan2=parseInt($('#note_id_papan2').val()); 4376 if(isNaN(idx_papan2)){ 4377 idx_papan2=0; 4378 }else{ 4379 idx_papan2++; 4380 idx_papan2=idx_papan2%notes_papan2.length; 4381 } 4382 var note_papan2=notes_papan2[idx_papan2][1]; 4383 $('#note_id_papan2').val(idx_papan2); 4384 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan2); 4385 $('#msgDelivery').val(note_papan2); 4386 var text_length_papan2=$('#kartu-ucapan-papan').val().length; 4387 var idx_2_papan2=parseInt($('#note_btn_id_papan2').val()); 4388 if(isNaN(idx_2_papan2)){ 4389 idx_2_papan2=0; 4390 }else{ 4391 idx_2_papan2++; 4392 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4393 } 4394 $('#note_btn_id_papan2').val(idx_2_papan2); 4395 //var note_btn=note_btn_text[idx_2][1]; 4396 //$('#note_btn').text(note_btn); 4397 }); 4398 4399 var text_max_papan3=150; 4400 var msg_text_papan3=""; 4401 $('#kartu-ucapan-ucapan').keyup(function(){ 4402 var text_length_papan3=$('#kartu-ucapan-ucapan').val().length; 4403 var msg_text_papan3=$('#kartu-ucapan-ucapan').val(); 4404 }); 4405 4406 var notes_papan3 = [ 4407 4408 [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)."] 4409 4410 ]; 4411 $('#show_note_papan3').click(function(event){ 4412 event.preventDefault(); 4413 var idx_papan3=parseInt($('#note_id_papan3').val()); 4414 if(isNaN(idx_papan3)){ 4415 idx_papan3=0; 4416 }else{ 4417 idx_papan3++; 4418 idx_papan3=idx_papan3%notes_papan3.length; 4419 } 4420 var note_papan3=notes_papan3[idx_papan3][1]; 4421 $('#note_id_papan3').val(idx_papan3);
4422 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan3); 4423 $('#msgDelivery').val(note_papan3); 4424 var text_length_papan3=$('#kartu-ucapan-papan').val().length; 4425 var idx_2_papan3=parseInt($('#note_btn_id_papan3').val()); 4426 if(isNaN(idx_2_papan3)){ 4427 idx_2_papan3=0; 4428 }else{ 4429 idx_2_papan3++; 4430 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4431 } 4432 $('#note_btn_id_papan3').val(idx_2_papan3); 4433 //var note_btn=note_btn_text[idx_2][1]; 4434 //$('#note_btn').text(note_btn); 4435 }); 4436 4437 var text_max_papan4=150; 4438 var msg_text_papan4=""; 4439 $('#kartu-ucapan-ucapan').keyup(function(){ 4440 var text_length_papan4=$('#kartu-ucapan-ucapan').val().length; 4441 var msg_text_papan4=$('#kartu-ucapan-ucapan').val(); 4442 }); 4443 4444 $('#show_note_papan4').click(function(event){ 4445 var notes_papan4 = [ 4446 [0,"Hereâs to youâsteadier, stronger and better every day."], 4447 [1,"Warmest wishes for a speedy recovery!"], 4448 [2,"Dengan ucapan terhangat, semoga lekas membaik dan semakin pulih setiap harinya ya."], 4449 [3,"Semoga lekas sembuh untuk kembali beraktivitas dan berkarya."] 4450 ]; 4451 event.preventDefault(); 4452 var idx_papan4=parseInt($('#note_id_papan4').val()); 4453 console.log(idx_papan4, 'idx_papan4') 4454 if(isNaN(idx_papan4)){ 4455 idx_papan4=0; 4456 }else{ 4457 idx_papan4++; 4458 idx_papan4=idx_papan4%notes_papan4.length; 4459 } 4460 var note_papan4=notes_papan4[idx_papan4][1]; 4461 $('#note_id_papan4').val(idx_papan4); 4462 $('#kartu-ucapan-papan, #properties-kartu-ucapan, #properties-kartu-pesan').val(note_papan4); 4463 console.log(note_papan4, 'note_papan4') 4464 var text_length_papan4=$('#kartu-ucapan-papan').val().length; 4465 var idx_2_papan4=parseInt($('#note_btn_id_papan4').val()); 4466 if(isNaN(idx_2_papan4)){ 4467 idx_2_papan4=0; 4468 }else{ 4469 idx_2_papan4++; 4470 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4471 } 4472 $('#note_btn_id_papan4').val(idx_2_papan4); 4473 }); 4474 4475 /* 4476 $("#jenisPapan").change(function(){ 4477 $( "select option:selected").each(function(){ 4478 if($(this).attr("value")=="Happy Wedding"){ 4479 $("#suggest-messages a").hide(); 4480 $("#show_note_papan1").show(); 4481 $("#kartu-ucapan-papan").val(""); 4482 } 4483 if($(this).attr("value")=="Congratulations"){ 4484 $("#suggest-messages a").hide(); 4485 $("#show_note_papan2").show(); 4486 $("#kartu-ucapan-papan").val(""); 4487 } 4488 if($(this).attr("value")=="Duka Cita"){ 4489 $("#suggest-messages a").hide(); 4490 $("#show_note_papan3").show(); 4491 $("#kartu-ucapan-papan").val(""); 4492 } 4493 }); 4494 }).change(); 4495 */ 4496 4497 4498 4499 4500 4501 $(".variant-metafield").each(function(){ 4502 const t = $(this) 4503 const id = t.attr("id") 4504 const target = $(`[data-select=${id}]`) 4505 t.on('select2:selecting', function(e) { 4506 const data = e.params.args.data 4507 target.val(data.text) 4508 }); 4509 }) 4510 }) 4511 </script>
4511 4512 4513 <div id="popupCart"> 4514 <div class="container"> 4515 <div class="wrapperPopupCart"> 4516 <div class="headerPopupCart"> 4517 <div class="d-flex pl-5 pr-5 p-4"> 4518 <svg xmlns="logoweb.png" width="16" height="12" viewBox="0 0 16 12" fill="none"> 4519 <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"/> 4520 </svg> 4521 <span>item added to your cart</span> 4522 </div> 4523 <a class="close-purchase-popup"> 4524 <svg xmlns="logoweb.png" width="18" height="18" viewBox="0 0 18 18" fill="none"> 4525 <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"/> 4526 </svg> 4527 </a> 4528 4529 </div> 4530 <div class="contentPopupCart"> 4531 <div class="pl-5 pr-5 p-4"> 4532 <div class="itemContent row m-0 justify-content-between"> 4533 <div class="col-2 align-self-center"> 4534 4535 <img 4536 class="d-block" 4537 width="80" 4538 src="//outerbloom.com/cdn/shop/files/Blossom-Shine-WM_80x.jpg?v=1695788426" 4539 > 4540 </div> 4541 <div class="col-10 align-self-center"> 4542 <div class="row pl-3"> 4543 <div class="col-12 col-lg-7"> 4544 <span class="titleCartPopup text-uppercase">RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah</span> 4545 </div> 4546 <div class="d-flex justify-content-end col-12 col-lg-5"> 4547 <span class="deleteCartPopup hide">Delete</span> 4548 <span class="lineCartPrice align-self-center">Rp 10.101</span> 4549 </div> 4550 </div> 4551 </div> 4552 </div> 4553 <div class="itemProperties"> 4554 4555 <div class="propDeliver"> 4556 <h4>delivery option detail</h4> 4557 <p> 4558 <span>delivery city</span> 4559 <span class="propDeliveryCity">jakarta</span> 4560 </p> 4561 <p> 4562 <span>delivery date</span> 4563 <span class="propDeliveryDate">24/03/2025</span> 4564 </p> 4565 <p> 4566 <span>delivery time</span> 4567 <span class="propDeliveryTime">Afternoon | 13:00 - 18:00</span> 4568 </p> 4569 </div> 4570 <div class="propAddress"> 4571 <h4>delivery option detail</h4> 4572 <p> 4573 <span>RECIPIENT NAME</span> 4574 <span class="propDeliveryName">jane doe</span> 4575 </p> 4576 <p> 4577 <span>delivery address</span> 4578 <span class="propDeliveryAddress" 4579 >Jl. Gatot Subroto No. 25, RT.2/RW.4, Kuningan Barat, Kecamatan Mampang Prapatan, Kota Jakarta 4580 Selatan, Daerah Khusus Ibukota Jakarta 12710, Indonesia</span 4581 > 4582 </p> 4583 <p> 4584 <span>recipient phone number</span> 4585 <span class="propDeliveryPhone">(+62) 812-3456-7890</span> 4586 </p> 4587 <p> 4588 <span>PROVINCE</span> 4589 <span class="propDeliveryProv">Jakarta</span> 4590 </p> 4591 <p> 4592 <span>postal code</span> 4593 <span class="propDeliveryZip">12710</span> 4594 </p> 4595 4596 4597 </div> 4598 4599 </div> 4600 <div class="itemAddonCart"> 4601 <div class="toggleAddonCart d-flex justify-content-between"> 4602 <h4>add-ons (0)</h4> 4603 <svg xmlns="logoweb.png" width="5" height="9" viewBox="0 0 5 9" fill="none"> 4604 <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"/> 4605 </svg> 4606 </div> 4607 <div class="wrapperItemAddonCart"></div> 4608 </div> 4609 4610 </div> 4611 </div>
4612 <div class="footerPopupCart"> 4613 <div class="row m-0 pl-5 pr-5 p-4"> 4614 <a class="btn btnViewCart w-100 text-uppercase text-center" href="/cart">View Cart</a> 4615 <a class="btn btnViewCheckout w-100 text-uppercase text-center" href="/checkout"><span>Checkout</span></a> 4616 <a class="btnContinueShopping w-100 text-center" href="/">Continue shopping</a> 4617 </div> 4618 </div> 4619 </div> 4620 </div> 4621 </div> 4622 4623 4624
4624<script> 4625 const shareButton = document.getElementById('shareButton'); 4626 4627 shareButton.addEventListener('click', () => { 4628 if (navigator.share) { 4629 navigator.share({ 4630 title: "RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah", 4631 url: "/products/blossom-shine", 4632 text: 'Check out this page!' 4633 }) 4634 .then(() => console.log('Successful share')) 4635 .catch((error) => console.log('Error sharing', error)); 4636 } else { 4637 alert('Web Share API is not supported in this browser.'); 4638 } 4639 }); 4640 4641 // Inventory validation function 4642 function checkInventoryStatus() { 4643 const productSelect = document.getElementById('productSelect'); 4644 const purchaseButton = document.querySelector('#personalizeBtn button'); 4645 4646 if (!productSelect || !purchaseButton) return; 4647 4648 const selectedVariantId = productSelect.value; 4649 4650 // Get variant data from Shopify 4651 fetch(`/products/blossom-shine.js`) 4652 .then(response => response.json()) 4653 .then(product => { 4654 const selectedVariant = product.variants.find(variant => variant.id == selectedVariantId); 4655 4656 if (selectedVariant) { 4657 const isOutOfStock = selectedVariant.inventory_quantity <= 0 && 4658 selectedVariant.inventory_management === 'shopify' && 4659 selectedVariant.inventory_policy !== 'continue'; 4660 4661 if (isOutOfStock) { 4662 purchaseButton.disabled = true; 4663 purchaseButton.textContent = 'Out of Stock'; 4664 purchaseButton.setAttribute('data-out-of-stock', 'true'); 4665 purchaseButton.style.backgroundColor = '#cccccc'; 4666 purchaseButton.style.cursor = 'not-allowed'; 4667 } else { 4668 // Check if button was disabled due to other conditions 4669 4670 4671 4672 4673 4674 4675 4676 4677 const isOtherDisabled = false || true || false; 4678 4679 if (!isOtherDisabled) { 4680 purchaseButton.disabled = false; 4681 purchaseButton.textContent = 'customize your flower board'; 4682 purchaseButton.removeAttribute('data-out-of-stock'); 4683 purchaseButton.style.backgroundColor = ''; 4684 purchaseButton.style.cursor = ''; 4685 } 4686 } 4687 } 4688 }) 4689 .catch(error => { 4690 console.error('Error checking inventory:', error); 4691 }); 4692 } 4693 4694 // Check inventory on page load 4695 document.addEventListener('DOMContentLoaded', function() { 4696 checkInventoryStatus();
4697 4698 // Listen for variant changes 4699 const productSelect = document.getElementById('productSelect'); 4700 if (productSelect) { 4701 productSelect.addEventListener('change', checkInventoryStatus); 4702 } 4703 }); 4704 4705 // Prevent form submission if out of stock 4706 document.addEventListener('click', function(e) { 4707 if (e.target.matches('button[data-out-of-stock="true"]')) { 4708 e.preventDefault(); 4709 e.stopPropagation(); 4710 alert('This product is currently out of stock and cannot be purchased.'); 4711 return false; 4712 } 4713 }); 4714 </script>
4714 4715 4716 4717 4718 </div> 4719 4720 </div> 4721 </div> 4722 </div> 4723 </div> 4724 <div id="product-bottom"> 4725 4726 <div class="product-description rte bg-card col-12 py-3 px-0 m-0" itemprop="description"> 4727 <div class="container"> 4728 4729 4730 4731 4732 4733 <div class="short-desc-mobile d-block d-lg-none mb-3"> 4734 <div class="short-desc"> 4735 <ul> 4736 <li><strong>RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna.</strong></li> 4737 </div> 4738 <label class="more-mobile">Show More â</label> 4739 </div> 4740 4741 <style> 4742 .animated-title { 4743 text-align: center; 4744 font-weight: bold; 4745 color: #079c02; 4746 font-size: 28px; 4747 position: relative; 4748 animation: glow 2s infinite alternate, moveUpDown 3s infinite; 4749 } 4750 4751 /* Efek glow / bercahaya hijau */ 4752 @keyframes glow { 4753 0% { text-shadow: 0 0 5px #079c02; color: #079c02; } 4754 50% { text-shadow: 0 0 20px #00ff55; color: #12d12b; } 4755 100% { text-shadow: 0 0 10px #1bff00; color: #079c02; } 4756 } 4757 4758 /* Efek gerakan naik turun */ 4759 @keyframes moveUpDown { 4760 0% { transform: translateY(0px); } 4761 50% { transform: translateY(-5px); } 4762 100% { transform: translateY(0px); } 4763 } 4764 </style> 4765 4766
4766<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/shopify-cartjs/1.1.0/cart.min.js"></script>
4766 4767
4767<script> 4768 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}); 4769 4770 const productType = $("[data-product-type]").data("product-type") 4771 const productDate = Date.parse(new Date()) 4772 4773 const shop = 'outerbloom1.myshopify.com' 4774 const host = 'https://app.asmaraku.com' 4775 // const host = 'http://localhost:5001' 4776 4777 const gsheet = "https://script.google.com/macros/s/AKfycbyqa6mPD6lVjU6hiHr12J8URZ2aJBGyxBsGQ0QtEIDari-rBk_9vSOITjSSmUXL1NwxEg/exec" 4778 4779 const qrID = "041025" + randomString(4, 'aAbCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ') 4780 4781 $("#properties-time").val(new Date().getTime()) 4782 4783 const isIOS = /iPhone|iPad|iPod/i.test(navigator.userAgent); 4784 4785 if(!isIOS) { 4786 $("#full-date").attr("type", "button") 4787 } 4788 4789 let dateTime = new Date(); 4790 let today = dateTime.getDate(); 4791 let day = dateTime.getDay(); 4792 let hour = dateTime.getHours(); 4793 let min = dateTime.getMinutes(); 4794 let timeOfDay = hour + (min / 100); 4795 4796 async function getFetch(url) { 4797 const response = await fetch(url); 4798 let status = false 4799 let result 4800 if(response.ok) { 4801 status = true 4802 result = await response.json(); 4803 } 4804 return { 4805 status, 4806 data: result 4807 } 4808 } 4809 4810 4811 4812 function setCookie(cname, cvalue, exMins) { 4813 var d = new Date(); 4814 d.setTime(d.getTime() + (exMins*60*1000)); 4815 var expires = "expires="+d.toUTCString(); 4816 document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; 4817 } 4818 4819 function getCookie(cname) { 4820 let name = cname + "="; 4821 let decodedCookie = decodeURIComponent(document.cookie); 4822 let ca = decodedCookie.split(';'); 4823 for(let i = 0; i <ca.length; i++) { 4824 let c = ca[i]; 4825 while (c.charAt(0) == ' ') { 4826 c = c.substring(1); 4827 } 4828 if (c.indexOf(name) == 0) { 4829 return c.substring(name.length, c.length); 4830 } 4831 } 4832 return ""; 4833 } 4834 4835 async function renderDate() { 4836 let dataDate = await getFetch(`${host}/api/shipping/date?domain=${shop}&productId=8144957800663&v=${Date.now()}`); 4837 console.log(dataDate, 'renderDate') 4838 const data = dataDate?.data 4839 const date = data.date 4840 const time = data.time 4841 4842 console.log(date, 'DATE') 4843 4844 const weekday = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]; 4845 const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; 4846 const htmlDate = []
4847 for(let i = 0;i < date.length;i++) { 4848 const full = date[i].date 4849 const d = new Date(date[i].date); 4850 const day = weekday[d.getDay()]; 4851 const dt = d.getDate(); 4852 const mt = monthly[d.getMonth()]; 4853 const yr = d.getFullYear(); 4854 const isDate = Boolean(date[i].isEnabled) 4855 const cutoffpagi = date[i].cutoff?.pagi 4856 const cutoffsiang = date[i].cutoff?.siang 4857 const cutoffMalam = date[i].cutoff?.Malam 4858 var html = ` 4859 <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'}> 4860 ${dt === today ? 4861 `Today<span>${dt < 10 ? '0' + dt : dt}</span>` : 4862 `${day}<span>${dt < 10 ? '0' + dt : dt}</span>` 4863 } 4864 </button> 4865 ` 4866 htmlDate.push(html) 4867 } 4868 const htmlTime = []
4869 for(var i = 0;i < time.length;i++) { 4870 const timeText = time[i].text 4871 const timeTime = time[i].time 4872 const timeEnabled = time[i].isEnabled 4873 var html = ` 4874 <button class="time-single calendarbutton2 btn steps-btn" data-time="${timeText}" ${timeEnabled ? '' : 'disabled'}>${timeText}<br/>${timeTime}</button> 4875 ` 4876 htmlTime.push(html) 4877 } 4878 const deliveryDate = document.getElementById("deliveryDate"); 4879 if(deliveryDate) { 4880 deliveryDate.insertAdjacentHTML("afterbegin", htmlDate.join('')) 4881 $("#deliveryTime").html(htmlTime) 4882 if(productType !== '') { 4883 console.log("clarity event " + productType + ' calendaring') 4884 window.clarity("event", `${productType} calendaringSchedule`) 4885 // window.clarity("set", productType, `calendaringSchedule - ${productDate}`) 4886 } 4887 } 4888 } 4889 4890 async function getProvince(city) { 4891 let { data: { province } } = await getFetch(`${host}/api/shipping/address/province?city=${city}`); 4892 console.log(province, 'province') 4893 $("#province").val(province) 4894 } 4895 4896 async function renderAddress() { 4897 let current 4898 if(getCookie("location_delivery")){ 4899 current = getCookie("location_delivery").charAt(0).toUpperCase() + getCookie("location_delivery").slice(1) 4900 } 4901 let address = await getFetch(`${host}/api/shipping/address?domain=${shop}&productId=8144957800663`); 4902 console.log(address) 4903 const data = address?.data?.city 4904 const htmlAddress = [] 4905 const grouping = []
4906 for(let i = 0;i < data?.length;i++) { 4907 if(data[i]){ 4908 if(data[i]?.group) { 4909 grouping.push(data[i].group) 4910 } 4911 const price = rupiah.format(data[i]?.rate) 4912 let promo = '(Promo Free Delivery)' 4913 if(data[i]?.name === 'Jakarta - PickUp ASHTA'){ 4914 promo = '(at SCBD, Ashta)' 4915 } else if(data[i]?.name === 'Jakarta - PickUp ITC'){ 4916 promo = '(at Kuningan, ITC Kuningan)' 4917 } else if(data[i]?.name === 'BSD - PickUp'){ 4918 promo = '(at Goldfinch Gading Serpong)' 4919 } else if(data[i]?.name === 'Kota Lainnya'){ 4920 promo = '' 4921 } 4922 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>`) 4923 } 4924 } 4925 4926 const deliveryCity = document.getElementById("cities"); 4927 if(deliveryCity) { 4928 deliveryCity.insertAdjacentHTML("beforeend", htmlAddress.join('')) 4929 if(!isIOS) { 4930 $(deliveryCity).select2(); 4931 } 4932 } 4933 } 4934 4935 async function renderZip(v, v2, v3) { 4936 const deliveryZip = document.getElementById("zip"); 4937 if(v === '') { 4938 return 4939 } 4940 let dataZip = await getFetch(`${host}/api/shipping/address/zip?city=${v}&city2=${v2}&city3=${v3}`); 4941 let zip = dataZip?.data?.zip 4942 console.log(zip) 4943 let htmlZip = []
4944 for(let i = 0; i < zip?.length;i++) { 4945 htmlZip.push(`<option value="${zip[i]?.postalCode} - ${zip[i]?.subdistrict}">${zip[i]?.postalCode} - ${zip[i]?.subdistrict} - ${zip[i]?.city}</option>`) 4946 } 4947 deliveryZip.insertAdjacentHTML("beforeend", htmlZip.join('')) 4948 } 4949 4950 renderDate() 4951 renderAddress() 4952 4953 let rupiah = new Intl.NumberFormat('id-ID', { 4954 style: 'currency', 4955 currency: 'IDR', 4956 maximumFractionDigits: 0, 4957 minimumFractionDigits: 0 4958 }); 4959 4960 async function insertCard(data) { 4961 const response = await fetch(`${host}/api/card/new`, { 4962 method: "POST", 4963 headers: { 4964 'Content-Type': 'application/json', 4965 }, 4966 body: data 4967 }) 4968 const result = await response.json() 4969 let rowIndex = result?.data?.tableRange.split("Outerbloom!A1:J")[1] 4970 $("#greetingCard").attr("data-index", rowIndex) 4971 return result 4972 } 4973 4974 async function updateCard(data){ 4975 const rowIndex = $("#greetingCard").data("index") 4976 const response = await fetch(`${host}/api/card/update?rowIndex=${rowIndex}`, { 4977 method: "PUT", 4978 headers: { 4979 'Content-Type': 'application/json', 4980 }, 4981 body: data 4982 }) 4983 return response 4984 } 4985 4986 function bytesToSize(bytes) { 4987 var sizes = ['b', 'kb', 'mb', 'gb', 'tb', 'p']; 4988 for (var i = 0; i < sizes.length; i++) { 4989 if (bytes <= 1024) { 4990 return bytes + ' ' + sizes[i]; 4991 } else { 4992 bytes = parseFloat(bytes / 1024).toFixed(2) 4993 } 4994 } 4995 return bytes + ' P'; 4996 } 4997 4998 async function uploadMedia(uri, type) { 4999 nameq = $("#properties-nama-penerima").val() 5000 dear = $("#properties-kartu-nama-penerima").val() 5001 card = $("[data-properties=ucapan]").val() 5002 sender = $("#properties-kartu-nama-pengirim").val() 5003 photo = $("#properties-photo").val() 5004 video = $("#properties-video").val() 5005 status = "Product" 5006 5007 const name = qrID 5008 let formData = new FormData(); 5009 formData.append("file", uri); 5010 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 5011 method: "POST", 5012 body: formData 5013 }) 5014 const result = await response.json(); 5015 if(result) { 5016 const url = result.url 5017 if(type === 'image/jpeg') { 5018 $("#properties-photo").val(url) 5019 $(".preview-image").show() 5020 $(".remove-image").show() 5021 photo = url 5022 } else { 5023 $("#properties-video").val(url) 5024 $("#label-input-video span").text("Change File") 5025 $(".case-qrcode-preview p").text("Scan here for a secret message") 5026 $(".remove-media").show() 5027 $("#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>`) 5028 $("[for=input-video]").hide() 5029 video = url 5030 } 5031 $(".case-video-preview").show() 5032 $(".steps-card-preview").removeClass("loading") 5033 // updateCard(nameq, dear, card, sender, photo, video, status) 5034 5035 $(".nextBtn").attr("disabled", false) 5036 } 5037 } 5038 5039 function randomString(length, chars) { 5040 var result = ''; 5041 for (var i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))]; 5042 return result; 5043 } 5044 5045 function getNoteCity(fulldate) { 5046 const h_1 = new Date(new Date().setDate(new Date().getDate() + 1)) 5047 const weekday = ["Min","Sen","Sel","Rab","Kam","Jum","Sab"]; 5048 const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; 5049 const d = new Date(h_1); 5050 const day = weekday[d.getDay()]; 5051 const dt = d.getDate(); 5052 const mt = monthly[d.getMonth()]; 5053 const yr = d.getFullYear(); 5054 const p = $("#cities").parent(".form-group") 5055 } 5056 5057 function disabledSameDay() { 5058 let btnFirst = $("#deliveryDate").find("button:first-child") 5059 let getDay = new Date().getDay(); 5060 5061 5062 5063 if(getDay == 1 || getDay == 2 || getDay == 3 || getDay == 4 || getDay == 5){ 5064 if(hour >= 14.00){ 5065 btnFirst.attr("disabled", true) 5066 } 5067 } else if(getDay == 6){ 5068 if(hour >= 16.00){ 5069 btnFirst.attr("disabled", true) 5070 } 5071 } else if(getDay == 0){ 5072 if(hour >= 16.00){ 5073 btnFirst.attr("disabled", true) 5074 } 5075 } 5076 5077 5078 } 5079 5080 function disabledays(date) { 5081 let ymd = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate(); 5082 //if u have to disable a list of day 5083 let removeDays 5084 5085 5086 5087 removeDays = ["2025-2-13", "2025-2-14"]; 5088 5089 if ($.inArray(ymd, removeDays) >= 0) { 5090 return [false]; 5091 } else { 5092 let day = date.getDay(); 5093 if(day == 0 && date.getDate() == 13 && date.getMonth() == 1){ 5094 return [(day == 0), '']; 5095 } 5096 5097 if(day == 0){ 5098 return [(day == 0), '']; 5099 } 5100 5101 5102 return [(day != 0), '']; 5103 } 5104 } 5105 5106 /* Indonesian initialisation for the jQuery UI date picker plugin. */ 5107 /* Written by Deden Fathurahman ([email protected]). */ 5108 ( function( factory ) { 5109 if ( typeof define === "function" && define.amd ) { 5110 5111 // AMD. Register as an anonymous module. 5112 define( [ "../widgets/datepicker" ], factory ); 5113 } else { 5114 5115 // Browser globals 5116 factory( jQuery.datepicker ); 5117 } 5118 }( function( datepicker ) { 5119 5120 datepicker.regional.id = { 5121 closeText: "Tutup", 5122 prevText: "<mundur", 5123 nextText: "maju>", 5124 currentText: "Today", 5125 monthNames: [ "January","February","March","April","May","Juny", 5126 "July","August","September","October","November","December" ], 5127 monthNamesShort: [ "Jan","Feb","Mar","Apr","May","Jun", 5128 "Jul","Agu","Sep","Oct","Nov","Dec" ], 5129 dayNames: [ "Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu" ], 5130 dayNamesShort: [ "Sun","Mon","Tue","Wed","Thu","Fri","Sat" ], 5131 dayNamesMin: [ "Mg","Sn","Sl","Rb","Km","jm","Sb" ], 5132 weekHeader: "Mg", 5133 dateFormat: "D, dd M", 5134 firstDay: 0, 5135 isRTL: false, 5136 showMonthAfterYear: false, 5137 yearSuffix: "" }; 5138 datepicker.setDefaults( datepicker.regional.id ); 5139 5140 return datepicker.regional.id; 5141 5142 } ) ); 5143 5144 function loadPopup() { 5145 $("#backgroundPopup").fadeIn("slow"); 5146 $(".purchasePopup:not(.purchasePopupSpotify)").fadeIn("slow"); 5147 const firstSection = $(".purchasePopup:not(.purchasePopupSpotify) .sectionPurchase").first() 5148 if(firstSection.hasClass("purchasePersonalize")) { 5149 if(productType !== '') { 5150 console.log("clarity event " + productType + ' personalize') 5151 window.clarity("event", `${productType} cardPersonalization`) 5152 // window.clarity("set", productType, `cardPersonalization - ${productDate}`) 5153 } 5154 } else if (firstSection.hasClass("sectionPurchaseBoard")) { 5155 console.log("clarity event " + productType + ' personalizeBoard') 5156 window.clarity("event", `${productType} personalizeBoard`) 5157 // window.clarity("set", productType, `personalizeBoard - ${productDate}`) 5158 } 5159 firstSection.removeClass("hide") 5160 5161 // Auto-trigger addon loading when addon section becomes visible 5162 setTimeout(function() { 5163 const addonSection = $(".purchaseAddon") 5164 if(addonSection.length > 0 && !addonSection.hasClass("hide")) { 5165 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 5166 $("[data-addon=upsell-all]").trigger("click") 5167 } 5168 } 5169 }, 200) 5170 } 5171 5172 function disablePopup() { 5173 $("#backgroundPopup").fadeOut("slow"); 5174 $(".purchasePopup").fadeOut("slow"); 5175 $("#popupCart").fadeOut("slow"); 5176 } 5177
5178 function scrollTo(parent, div, dur) { 5179 $(parent).animate({ 5180 scrollTop: $(div).offset().top 5181 }, dur); 5182 } 5183 5184 function loadPopupPersonalize() { 5185 const div = "#purchaseProduct" 5186 const p = "html, body, .product-meta" 5187 $("p.error").remove() 5188 loadItemOccasion($("[data-occassion]").eq(0), "greeting-card-all") 5189 const isCity = $("#cities[required]") 5190 const isDate = $("#propDeliveryDate[required]") 5191 const isTime = $("#propDeliveryTime[required]") 5192 // loadPopup() 5193 if(isCity.val() !== '' && isDate.val() !== '' && isTime.val() !== '') { 5194 loadPopup() 5195 } 5196 if(isCity.val() == '') { 5197 isCity.parent(".row").append("<p class='error'>Choose delivery city</p>") 5198 scrollTo(p, div, 500) 5199 } 5200 if(isDate.val() == '') { 5201 isDate.parents(".row").append("<p class='error'>Choose delivery date</p>") 5202 scrollTo(p, div, 500) 5203 } 5204 if(isTime.val() == '') { 5205 isTime.parents(".row").append("<p class='error'>Choose delivery time</p>") 5206 scrollTo(p, div, 500) 5207 } 5208 } 5209 5210 function quantityCounter() { 5211 $(document).on("click", ".item-card.selected .q_up", function () { 5212 var C = $(this).attr("data-id"), 5213 S = 5214 parseInt( 5215 $(this) 5216 .siblings(".quantity-cart-" + C) 5217 .val() 5218 ) + 1; 5219 $(this).attr("data-quantity", S), 5220 $(this) 5221 .siblings(".quantity-cart-" + C) 5222 .val(S); 5223 }), 5224 $(document).on("click", ".item-card.selected .q_down", function () { 5225 var C = $(this).attr("data-id"), 5226 S = parseInt( 5227 $(this) 5228 .siblings(".quantity-cart-" + C) 5229 .val() 5230 ); 5231 0 < S && $(this).attr("data-quantity", S - 1), 5232 0 < S && 5233 $(this) 5234 .siblings(".quantity-cart-" + C) 5235 .val(S - 1); 5236 }); 5237 } 5238 5239 quantityCounter() 5240 5241 const itemAddon = $(".item-card").length 5242 const nofree = $(".nofree").length 5243 5244 const upsell = '' 5245 5246 if(nofree === itemAddon) { 5247 // $("#itemAddons").html("<p>No Items available</p>") 5248 } 5249 5250 $("#itemAddons .item-card").each(function(e){ 5251 $("#itemAddons").attr("data-length", e) 5252 }) 5253 5254 $("[data-addon]").click(function(){ 5255 5256 5257 5258 const t = $(this) 5259 5260 const data = t.data("addon") 5261 5262 $("[data-addon]").removeClass("selected") 5263 t.addClass("selected") 5264 $.get(`https://outerbloom.com/collections/${data}/products.json`, function(data, status){ 5265 const products = data.products 5266 const html = [] 5267 for(let i = 0; i < products.length; i++) { 5268 const id = products[i].id 5269 const variantId = products[i].variants[0].id 5270 const img = products[i].images[0].src 5271 let img2 = img.split('.jpg')[0] 5272 const title = products[i].title 5273 const price = products[i].variants[0].price 5274 const tags = products[i].tags 5275 const qty = products[i].variants[0].available 5276 let type_upsell = '' 5277 if(tags.includes('upsell-item-standing')) { 5278 type_upsell = 'standing' 5279 } 5280 console.log(type_upsell) 5281 if(type_upsell !== '') { 5282 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}"> 5283 5284 <div class="card-image"> 5285 <img src="${img2}_150x.jpg" alt="${title}" width="" height="" /> 5286 </div> 5287 <div class="card-meta"> 5288 <h5>${title}</h5> 5289 <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p> 5290 <input id="card-${variantId}" type="hidden" name="" value="${variantId}"> 5291 </div> 5292 <div class="card-qty"> 5293 <a data-quantity="1" type="submit" id="q_down-${variantId}" class="btn-qty-min q_down drawer-cart" data-id="${variantId}"><svg xmlns="logoweb.png" width="12" height="2" viewBox="0 0 12 2" fill="none"><path d="M0 1.90869V0.908691H12V1.90869H0Z" fill="black"/></svg></a> 5294 <input maxlength="3" min="0" class="btn-qty text-center quantity-cart-${variantId}
5294" value="0" data-price=${price} name="quantity"> 5295 <a data-quantity="1" type="submit" class="btn-qty-plus q_up text-green drawer-cart" data-id="${variantId}"><svg xmlns="logoweb.png" width="12" height="13" viewBox="0 0 12 13" fill="none"> 5296 <path d="M0 6.87023V5.94715H5.53846V0.408691H6.46154V5.94715H12V6.87023H6.46154V12.4087H5.53846V6.87023H0Z" fill="black"/> 5297 </svg></a> 5298 </div> 5299 </div>` 5300 html.push(body) 5301 } 5302 } 5303 $("#itemAddons .row").html(html.length === 0 ? '<p>No Item available</p>' : html) 5304 $("#itemAddons").attr("data-length", products.length) 5305 // $('#itemAddons')[0].swiper.update(); 5306 }); 5307 }) 5308 5309 async function isAddon(){ 5310 let ids = [] 5311 $("#itemAddons .item-card.selected").each(function(i, e){ 5312 const id = $(this).data("id") 5313 ids.push(id) 5314 }) 5315 console.log(ids) 5316 return ids 5317 } 5318 5319 $("#itemAddons").delegate(".item-card > div:not(.card-qty)", "click", async function(){ 5320 const t = $(this).parent() 5321 const id = t.data("id") 5322 const btn = t.parents(".purchaseAddon").find(".next-purchase-button") 5323 t.toggleClass("selected"); 5324 //$(this).next("input").toggleAttr('name', 'id[]'); 5325 if (t.hasClass('selected')) { 5326 t.find("input").val(1) 5327 t.find("input").attr('name', 'id[]'); 5328 } else { 5329 t.find("input").val(0) 5330 t.find("input").removeAttr('name'); 5331 } 5332 $("#properties-addons").val(addons) 5333 const is = await isAddon() 5334 if(is.length === 0) { 5335 btn.text("continue without add-ons") 5336 return 5337 } 5338 if(is.includes(8835692069079)) { 5339 btn.text("personalize acrylic frame") 5340 } else { 5341 btn.text("Continue") 5342 } 5343 5344 }) 5345 5346 async function myAddon(data) { 5347 const c = $(".addonsPurchase .addons") 5348 let items = [] 5349 5350 const spotifyAddons = $(".spotifyAddons").find("[data-index]") 5351 // if(spotifyAddons.length > 0) { 5352 // $(spotifyAddons).each(function(i, e){ 5353 // const spotifyLink = $(this).find(".spotifyLink").val() 5354 // const spotifySong = $(this).find(".spotifySong").val() 5355 // const spotifyArtist = $(this).find(".spotifyArtist").val() 5356 // const spotifyFotoAddon = $(this).find(".resultPhotoSpotify").val() 5357 // if(spotifyLink !== '') { 5358 // spotifyAddon = `<div class="addon-item" data-id="46067682607319" data-qty="1"> 5359 // <div class="addon-itm-img"> 5360 // <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"/> 5361 // </div> 5362 // <div class="addon-itm-title"> 5363 // <span>[US] Outerbloom Acrylic Frame 4R</span> 5364 // </div> 5365 // <div class="addon-itm-line-total"> 5366 // <span>Rp 99.000</span> 5367 // </div> 5368 // </div> 5369 // <div class="propsAddonSpotify row m-0"> 5370 // <div class="col-12 col-lg-2"></div> 5371 // <div class="col-12 col-lg-10"> 5372 // <p> 5373 // <span>spotify link</span> 5374 // <span class="spotifyLinkAddon">${spotifyLink}</span> 5375 // </p> 5376 // <p> 5377 // <span>uploaded photo</span> 5378 // <span class="spotifyFotoAddon">${spotifyFotoAddon}</span> 5379 // </p> 5380 // <p> 5381 // <span>song / playlist name</span> 5382 // <span class="spotifySongAddon">${spotifySong}</span> 5383 // </p> 5384 // <p> 5385 // <span>artist name</span> 5386 // <span class="spotifyArtistAddon">${spotifyArtist}</span> 5387 // </p> 5388 // </div> 5389 // </div>` 5390 // items.push(spotifyAddon) 5391 // } 5392 // }) 5393 // }
5394 for(let i = 0; i < data.length; i++) { 5395 if(data[i].title !== '[US] Outerbloom Acrylic Frame 4R' ) { 5396 const img = data[i].image 5397 const title = data[i].title 5398 const qty = data[i].qty 5399 const price = data[i].price 5400 const total = Number(qty) * Number(price) 5401 let addons = `<div class="addon-item" data-id="${data[i].id}" data-qty="${qty}"> 5402 <div class="addon-itm-img"> 5403 <img src="${img}" alt="" width="70"/> 5404 </div> 5405 <div class="addon-itm-title"> 5406 <span>${title}</span> 5407 </div> 5408 <div class="addon-itm-line-price"> 5409 <span>${rupiah.format(price)}</span> 5410 ${data[i].title == '[US] Outerbloom Acrylic Frame 4R' ? '' : `<span>x${qty}</span>`} 5411 </div> 5412 <div class="addon-itm-line-total"> 5413 <span>${rupiah.format(total)}</span> 5414 </div> 5415 </div>` 5416 items.push(addons) 5417 } 5418 } 5419 c.html(items) 5420 const parent = $(".purchaseAddon") 5421 const next = parent.next(".sectionPurchase") 5422 parent.addClass("hide") 5423 next.removeClass("hide") 5424 // if(items2.length === 0) return $("#popupCart").addClass("no-addon-cart") 5425 // $(".itemAddonCart").find("h4").text(`add-ons (${items2.length})`) 5426 } 5427 5428 async function listAddon() { 5429 const data = $("#itemAddons").find(".selected") 5430 let ids = [] 5431 $(data).each(function(){ 5432 const id = $(this).data("variant") 5433 const image = $(this).find(".card-image img").attr("src") 5434 const title = $(this).find(".card-meta h5").text() 5435 const qty = $(this).find(".card-qty input").val() 5436 const price = $(this).find(".card-qty input").data("price") 5437 ids.push({ 5438 id: Number(id), 5439 image, 5440 title, 5441 qty, 5442 price 5443 }) 5444 }) 5445 myAddon(ids) 5446 } 5447 5448 async function customSpotify(idx, length, type){ 5449 let isCard = false 5450 5451 let p = $(".purchasePopupSpotify") 5452 const preLink = $(".spotifyLinkFirst").val() 5453 $("[data-index]").hide() 5454 p.find(".headerPurchase h3").text(`personalize spotify photo print${length > 1 ? ` - ${idx}` : ''}`) 5455 p.find(".regulerAddons, .purchase-button").hide() 5456 p.find(".spotifyAddons").show() 5457 5458 const data = await trackUrl(preLink) 5459 5460 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>
5460<svg xmlns="logoweb.png" width="13" height="11" viewBox="0 0 13 11" fill="none"> 5461 <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"/> 5462 </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=logoweb.png><path d="M14.5799 7.41992L2.32992 7.41992L7.57992 12.6699L6.91992 13.4199L0.419922 6.91992L6.91992 0.419922L7.57992 1.16992L2.32992 6.41992L14.5799 6.41992V7.41992Z"fill=black /></svg> <span>Back</span></button><button data-type="${isCard ? 'card' : ''}" ${isCard ? '' : 'id=addtocart-card'} class="text-uppercase btn w-100${type == 'addon' && idx == length ? ' finished' : ' no-addon'}" disabled>${isCard ? 'Continue Personalizing' : 'add to cart'}</button></div></div></div><div class="col-12 col-lg-6 columnRight"><div class=frame-spotify><div class=frameImage><div class=frameImageUploaded>
5462<svg xmlns="logoweb.png" width="13" height="11" viewBox="0 0 13 11" fill="none"> 5463 <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"/> 5464 </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>` 5465 // console.log(html) 5466 5467 $(".spotifyAddons").append(html) 5468 5469 $(`[data-index=${idx}]`).show() 5470 5471 if (preLink !== '') { 5472 $(".btn-action .btn").attr("disabled", false) 5473 } else { 5474 $(".btn-action .btn").attr("disabled", true) 5475 } 5476 5477 return html 5478 5479 } 5480 5481 $(".spotifyLinkFirst").keyup(async function(){ 5482 const v = $(this).val() 5483 if(v.includes('spotify:user:spotify')) { 5484 const correct = v.split('user:spotify:')[1] 5485 console.log(correct, 'BNER') 5486 $(this).val(correct) 5487 return 5488 } 5489 if(v.includes("spotify:") || v.includes("https://open.spotify.com/")){ 5490 const data = await trackUrl(v) 5491 if(!data || !data.status) { 5492 $(this).parent().addClass("error") 5493 // $(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>`) 5494 $("#personalizeBtnSpotify .btn").attr("disabled", true) 5495 return 5496 } 5497 $(this).parent().removeClass("error") 5498 // $(this).parent().remove("txt-error") 5499 $("#personalizeBtnSpotify .btn").attr("disabled", false) 5500 } else { 5501 $("#personalizeBtnSpotify .btn").attr("disabled", true) 5502 } 5503 }) 5504 5505 $(".purchaseAddon").delegate(".next-addon", "click", function(){ 5506 const parent = $(this).parents(".purchaseAddon") 5507 const next = parent.next(".sectionPurchase") 5508 if(next.hasClass("purchaseAddress")) { 5509 if(productType !== '') { 5510 console.log("clarity event " + productType + ' purchaseDelivery') 5511 window.clarity("event", `${productType} purchaseDelivery`) 5512 // window.clarity("set", productType, `purchaseDelivery - ${productDate}`) 5513 } 5514 } 5515 const data = $("#itemAddons").find(".selected") 5516 const length = $(".quantity-cart-46067682607319").val() 5517 const checked = data.length; 5518 if(checked > 0) { 5519 if(length > 0) { 5520 $(".purchaseAddon").addClass("purchaseAddonSpotify") 5521 customSpotify(1, length, 'addon') 5522 } else { 5523 listAddon() 5524 } 5525 } else { 5526 parent.addClass("hide") 5527 next.removeClass("hide") 5528 } 5529 }) 5530 5531 $("#personalizeBtnSpotify .btn").click(async function(){ 5532 const isCity = $("#cities[required]") 5533 const isDate = $("#propDeliveryDate[required]") 5534 if((isDate.length > 0 && isCity.length > 0) && (isCity.val() === '' || isDate.val() === '')) { 5535 alert('Please choose Delivery City & Delivery Date') 5536 return 5537 } 5538 const data = await customSpotify(1, 1, 'product') 5539 if(data) { 5540 $("#backgroundPopup").fadeIn("slow"); 5541 $(".purchasePopupSpotify").fadeIn("slow"); 5542 5543 if(productType !== '') { 5544 console.log("clarity event " + productType + ' spotify') 5545 window.clarity("event", `${productType} spotify`) 5546 // window.clarity("set", productType, `purchaseDelivery - ${productDate}`) 5547 } 5548 } 5549 }) 5550 5551 function formatBytes(bytes, decimals = 2) { 5552 if (!+bytes) return '0 Bytes' 5553
5554 const k = 1024 5555 const dm = decimals < 0 ? 0 : decimals 5556 const sizes = ['B', 'KB', 'MB'] 5557 5558 const i = Math.floor(Math.log(bytes) / Math.log(k)) 5559 5560 return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}` 5561 } 5562 5563 async function trackUrl(link){ 5564 try { 5565 let trackId = link.split('/').pop().split('?')[0]; 5566 let type = '' 5567 if(link.includes("spotify:")) { 5568 const uri = link.split('spotify:')[1] 5569 trackId = uri.split(':')[1] 5570 type = uri.split(':')[0] + 's' 5571 } else { 5572 if(link.match('track')){ 5573 type = 'tracks' 5574 } else if(link.match('playlist')) { 5575 type = 'playlists' 5576 } else if(link.match('artist')) { 5577 type = 'artists' 5578 } else if(link.match('album')) { 5579 type = 'albums' 5580 } 5581 } 5582 console.log(`${host}/api/spotify/${type}/${trackId}`) 5583 const data = await getFetch(`${host}/api/spotify/${type}/${trackId}`) 5584 console.log(data, 'DATA') 5585 const song = data?.data?.name 5586 const artist = data?.data?.artist 5587 return { 5588 song, artist, type, trackId, status: data.status 5589 } 5590 } catch(err) { 5591 console.log(err) 5592 } 5593 } 5594 5595 $(".spotifyAddons").delegate(".uploadPhotoSpotify", "change", async function(){ 5596 const parent = $(this).parents("[data-index]") 5597 const preview = parent.find(".previewImage") 5598 const file = $(this)[0].files[0]; 5599 if (file) { 5600 const reader = new FileReader(); 5601 reader.onload = async function(e) { 5602 parent.find(".uploadResult label").hide() 5603 parent.find(".uploadedResult").remove() 5604 parent.find(".uploadResult").append(`<div class="uploadedResult d-flex" style="justify-content: space-between"> 5605 <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> 5606 <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;">
5606<svg fill="none" height="11" viewBox="0 0 10 11" width="10" xmlns="logoweb.png"> 5607 <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 /> 5608 </svg> 5609 </span></div></div>`) 5610 parent.find(".frameImageUploaded svg").hide() 5611 parent.find(".frameImage").addClass("uploaded") 5612 preview.attr("src", e.target.result); 5613 preview.show(); 5614 let formData = new FormData(); 5615 formData.append("file", file); 5616 const response = await fetch(`${host}/api/upload?name=${file.name}&type=image/jpeg&r=${Date.parse(new Date)}`, { 5617 method: "POST", 5618 body: formData 5619 }) 5620 const result = await response.json(); 5621 if(result){ 5622 parent.find(".resultPhotoSpotify").val(result.url) 5623 } 5624 } 5625 5626 reader.readAsDataURL(file); 5627 } else { 5628 preview.hide(); 5629 } 5630 }); 5631 5632 $(".spotifyAddons").delegate(".uploadResult", "click", function(){ 5633 $(this).next("input[type=file]").trigger("click") 5634 }) 5635 5636 $(".spotifyAddons").delegate(".changeUpload", "click", function(){ 5637 $(this).parents("input[type=file]").trigger("click") 5638 }) 5639 5640 $(".spotifyAddons").delegate(".removeUpload", "click", function(){ 5641 const parent = $(this).parents("[data-index]") 5642 parent.find(".uploadPhotoSpotify").val("") 5643 parent.find(".uploadResult label").show() 5644 parent.find(".uploadedResult").remove() 5645 parent.find(".frameImageUploaded svg").show() 5646 parent.find(".previewImage").hide() 5647 parent.find(".frameImage").removeClass("uploaded") 5648 }) 5649 5650 $(".spotifyAddons").delegate("label.checkbox", "click", function(){ 5651 const parent = $(this).parents("[data-index]") 5652 parent.toggleClass("checked") 5653 }) 5654 5655 $(".spotifyAddons").delegate(".spotifyLink", "change", async function(){ 5656 const parent = $(this).parents("[data-index]") 5657 const link = $(this).val() 5658 const data = await trackUrl(link) 5659 5660 console.log(data) 5661 5662 if(data.song) { 5663 parent.find(".spotifySong").val(data.song) 5664 parent.find(".spotifyData").find("h3").text(data.song) 5665 } 5666 if(data.artist) { 5667 parent.find(".spotifyArtist").val(data.artist) 5668 parent.find(".spotifyData").find("p").text(data.artist) 5669 } 5670 parent.find(".spotifyCode img").attr("src", `https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:${data.type.slice(0, -1)}:${data.trackId}`) 5671 // https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:track:1er51HCEBhIAtoEemKuC3M 5672 if (data.status === true) { 5673 parent.find(".btn-action .btn").attr("disabled", false) 5674 } else { 5675 parent.find(".btn-action .btn").attr("disabled", true) 5676 } 5677 }) 5678
5679 $(".spotifyAddons").delegate(".spotifySong", "keyup", async function(){ 5680 const parent = $(this).parents("[data-index]") 5681 const v = $(this).val() 5682 parent.find(".spotifyData h3").text(v) 5683 }) 5684 5685 $(".spotifyAddons").delegate(".spotifyArtist", "keyup", async function(){ 5686 const parent = $(this).parents("[data-index]") 5687 const v = $(this).val() 5688 parent.find(".spotifyData p").text(v) 5689 }) 5690 5691 $(".spotifyAddons").delegate(".btn-action .btn:not(.no-addon)", "click", async function(){ 5692 const parent = $(this).parents("[data-index]") 5693 const length = parent.data("length") 5694 const index = parent.data("index") 5695 const indexNext = Number(index) + 1 5696 customSpotify(indexNext, length, 'addon') 5697 }) 5698 5699 5700 $(".spotifyAddons").delegate(".btn-action .btn.finished", "click", async function(){ 5701 const parent = $(this).parents(".purchaseAddon") 5702 const next = parent.next(".sectionPurchase") 5703 parent.addClass("hide") 5704 next.removeClass("hide") 5705 next.find(".purchase-button").show() 5706 listAddon() 5707 }) 5708 5709 $(".spotifyAddons").delegate(".back-spotify", "click", async function(){ 5710 const t = $(this).parents("[data-index]") 5711 const parent = $(this).parents(".sectionPurchase") 5712 const current = t.data("index") 5713 const prevCurrent = Number(current) - 1 5714 if(current == 1) { 5715 parent.removeClass("purchaseAddonSpotify") 5716 parent.find(".purchase-button").show() 5717 parent.find(".headerPurchase h3").text("Make It More Special with Add-Ons!") 5718 $(".spotifyAddons").empty() 5719 $(".regulerAddons").show() 5720 return 5721 } 5722 t.hide() 5723 t.prev("[data-index]").show() 5724 t.remove() 5725 parent.find(".headerPurchase h3").text(`personalize spotify photo print - ${prevCurrent}`) 5726 }) 5727 5728 $("#personalizeBtn .btn").click(async function() { 5729 loadPopupPersonalize() 5730 }); 5731 5732 $(".sectionPurchaseSpotify").delegate(".btn[data-type=card]", "click", function(){ 5733 $(".sectionPurchaseSpotify").hide() 5734 loadPopupPersonalize() 5735 }) 5736 5737 $(".close-purchase-popup").click(function() { 5738 disablePopup(); 5739 }); 5740 $("#backgroundPopup").click(function() { 5741 // disablePopup(); 5742 }); 5743 5744 $("#popupCart .close-purchase-popup").click(function() { 5745 location.reload() 5746 }); 5747 5748 $('#popupCart').on('hide.bs.modal', function (e) { 5749 location.reload() 5750 }) 5751 5752 $(".next-card").click(function(){ 5753 const parent = $(this).parents(".sectionPurchase") 5754 const next = parent.next(".sectionPurchase") 5755 parent.addClass("hide") 5756 next.removeClass("hide") 5757 }) 5758 5759 $(".back-purchase-button").click(function(){ 5760 const parent = $(this).parents(".sectionPurchase") 5761 const prev = parent.prev(".sectionPurchase") 5762 parent.addClass("hide") 5763 prev.removeClass("hide") 5764 }) 5765 5766 $(document).keypress(function(e) { 5767 if (e.keyCode == 27 && popupStatus == 1) { 5768 disablePopup(); 5769 } 5770 }); 5771 5772 const parentImg = $(".case-img-preview") 5773 const parentVid = $(".case-video-preview") 5774 5775 function readURL(input) { 5776 if (input.files && input.files[0]) { 5777 let reader = new FileReader(); 5778 5779 let type = 'image/jpeg' 5780 const size = input.files[0].size 5781 if(input.files[0].type.match('video/')){ 5782 type = 'video/mp4' 5783 if(size > 15728640) { 5784 alert('File size exceeds maximum limit 15 MB') 5785 return 5786 } 5787 } else { 5788 if(size > 5242880) { 5789 alert('File size exceeds maximum limit 5 MB') 5790 return 5791 } 5792 } 5793 5794 reader.onload = function (e) { 5795 $(".nextBtn").attr("disabled", true) 5796 if(type === 'image/jpeg') { 5797 5798 $('.placeholder-image').hide(); 5799 $('.preview-image').show() 5800 $('.preview-image').attr('src', e.target.result); 5801 5802 } else { 5803 // parentVid.find(".ajax-loader").show(); 5804 $(".steps-card-preview").addClass("loading") 5805 } 5806 } 5807 5808 5809
5810 reader.readAsDataURL(input.files[0]); 5811 } 5812 } 5813 5814 async function readURLPapan(input) { 5815 if (input.files && input.files[0]) { 5816 let reader = new FileReader(); 5817 5818 reader.onload = function (e) { 5819 $('.btn-upload-papan').siblings('label').hide(); 5820 $('.btn-upload-papan img').attr('src', e.target.result); 5821 $('.btn-upload-papan img').show(); 5822 $('.svgLogoPapan').hide(); 5823 } 5824 5825 const type = 'image/jpeg' 5826 const name = `logo-8144957800663-${Date.parse(new Date())}` 5827 5828 let formData = new FormData(); 5829 formData.append("file", input.files[0]); 5830 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 5831 method: "POST", 5832 body: formData 5833 }) 5834 const result = await response.json(); 5835 if(result) { 5836 const url = result.url 5837 $("[data-properties=papan-logo]").val(url) 5838 } 5839 5840 reader.readAsDataURL(input.files[0]); 5841 } 5842 } 5843 5844 async function readURLAddress(input) { 5845 console.log(input, 'readURLAddress') 5846 if (input.files && input.files[0]) { 5847 let reader = new FileReader(); 5848 5849 reader.onload = function (e) { 5850 $('.photo-address').attr('src', e.target.result); 5851 $('.photo-address').show(); 5852 } 5853 5854 const type = 'image/jpeg' 5855 const name = input.files[0].name?.split('.')[0] 5856 5857 let formData = new FormData(); 5858 formData.append("file", input.files[0]); 5859 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 5860 method: "POST", 5861 body: formData 5862 }) 5863 const result = await response.json(); 5864 5865 reader.readAsDataURL(input.files[0]); 5866 5867 return result 5868 } 5869 } 5870 5871 5872 5873 5874 async function addToCartUang() { 5875 var productAddOnId1 = 42122101162199; 5876 var productAddOnId2 = 42122101194967; 5877 var product_id = 8144957800663 5878 const data = { 5879 items: [ 5880 { 5881 quantity: $("#Quantity-" + productAddOnId1).val(), 5882 id: productAddOnId1, 5883 "properties": { "Time": $("#properties-time").val() } 5884 }, 5885 { 5886 quantity: $("#Quantity-" + productAddOnId2).val(), 5887 id: productAddOnId2, 5888 "properties": { "Time": $("#properties-time").val() } 5889 } 5890 ] 5891 } 5892 await fetch(window.Shopify.routes.root + 'cart/add.js', { 5893 method: 'POST', 5894 headers: { 5895 'Content-Type': 'application/json' 5896 }, 5897 body: JSON.stringify(data) 5898 }) 5899 .then(response => { 5900 console.error('Sukses Buket Uang:', response); 5901 $(".form-flower").submit() 5902 }) 5903 .catch((error) => { 5904 console.error('Error Buket Uang:', error); 5905 $(".form-flower").submit() 5906 }); 5907 } 5908 5909 async function saveCard(){ 5910 let isCard = true 5911 const kartu_penerima = $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '' 5912 const kartu_pengirim = $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '' 5913 const kartu_ucapan = $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '' 5914 const foto = $("#properties-photo").val() 5915 const video = $("#properties-video").val() 5916 const data = JSON.stringify({ 5917 "id": qrID, 5918 "penerima": $("#properties-nama-penerima").val(), 5919 "kartu_penerima": kartu_penerima, 5920 "kartu_ucapan": kartu_ucapan, 5921 "kartu_pengirim": kartu_pengirim, 5922 "foto": foto, 5923 "video": video, 5924 "productId": "8144957800663", 5925 "order_name": "", 5926 "status": "Cart" 5927 }) 5928 5929 5930 } 5931 5932 async function additem(items){ 5933 try { 5934 let formData = items 5935 if(items?.length) { 5936 formData = { 5937 'items': items 5938 }; 5939 } 5940 5941 const add = await fetch(window.Shopify.routes.root + 'cart/add.js', { 5942 method: 'POST', 5943 headers: { 5944 'Content-Type': 'application/json', 5945 'X-Requested-With':'xmlhttprequest' /* XMLHttpRequest is ok too, it's case insensitive */ 5946 }, 5947 body: JSON.stringify(formData) 5948 }) 5949 5950 const data = await add.json(); 5951 return data 5952 } catch(err){ 5953 console.log('Error additem', err) 5954 } 5955 } 5956 5957 async function addons(){ 5958 let items = [] 5959 $(".addon-item").each(function(){ 5960 const p = $(this) 5961 const props = p.next(".propsAddonSpotify") 5962 const id = $(this).data("id") 5963 const quantity = $(this).data("qty") 5964 const propId = $("#properties-time").val() 5965 let properties = {} 5966 if(id === 46067682607319) { 5967 const link = props.find(".spotifyLinkAddon").text() 5968 const photo = props.find(".spotifyFotoAddon").text() 5969 const song = props.find(".spotifySongAddon").text() 5970 const artist = props.find(".spotifyArtistAddon").text() 5971 properties = { 5972 id: propId, 5973 "Spotify Link": link !== '' ? link : '-', 5974 "Spotify Photo": photo !== '' ? photo : '-', 5975 "Spotify Song": song !== '' ? song : '-', 5976 "Spotify Artist": artist !== '' ? artist : '-', 5977 type: 'addon' 5978 } 5979 } else { 5980 properties = { 5981 "id": propId, 5982 "type": "addon" 5983 } 5984 } 5985 items.push({ 5986 id, 5987 quantity, 5988 properties 5989 }) 5990 }) 5991 return items 5992 } 5993 5994 async function propItems() { 5995 let props = {} 5996 $("[data-properties]").each(function(e){
5997 let elementType = this.tagName; 5998 const k = $(this).data("properties") 5999 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') { 6000 const v = elementType === 'SELECT' ? $(this).find(":selected").val() : $(this).val(); 6001 if(v !== '') { 6002 props[k] = v?.replace(/[\s\n]/g, ''); 6003 } 6004 } 6005 }) 6006 return props 6007 } 6008 6009 async function showPopupCart(items){ 6010 if(productType !== '') { 6011 console.log("clarity event " + productType + ' completeOrder') 6012 window.clarity("event", `${productType} completeOrder`) 6013 // window.clarity("set", productType, `completeOrder - ${productDate}`) 6014 } 6015 $("#popupCart").show() 6016 6017 $(".propDeliveryCity").text($("#cities").val()) 6018 $(".propDeliveryDate").text($("#propDeliveryDate").val()) 6019 $(".propDeliveryTime").text($("#propDeliveryTime").val()) 6020 $(".propDeliveryName").text($("[data-properties=nama-penerima]").val()) 6021 $(".propDeliveryAddress").text($("[data-properties=alamat-penerima]").val()) 6022 $(".propDeliveryPhone").text($("[data-properties=telepon-penerima]").val()) 6023 $(".propDeliveryProv").text($("#province").val()) 6024 $(".propDeliveryZip").text($("#zip").val()) 6025 6026 6027 6028 const addons = [] 6029 if(items && items.length > 0) { 6030 for(let i = 1; i < items.length; i++) { 6031 const spotifyLink = items[i].properties['Spotify Link'] 6032 const spotifyPhoto = items[i].properties['Spotify Photo'] 6033 const spotifySong = items[i].properties['Spotify Song'] 6034 const spotifyArtist = items[i].properties['Spotify Artist'] 6035 const price = items[i].price / 100 6036 const props = spotifyLink ? `<div class="propsAddonCart row m-0"> 6037 <div class="col-12 col-lg-2"></div> 6038 <div class="col-12 col-lg-10"> 6039 <p> 6040 <span>spotify link</span> 6041 <span>${spotifyLink}</span> 6042 </p> 6043 <p> 6044 <span>Upload Photo</span> 6045 <span>${spotifyPhoto}</span> 6046 </p> 6047 <p> 6048 <span>song / playlist name</span> 6049 <span>${spotifySong}</span> 6050 </p> 6051 <p> 6052 <span>artist name</span> 6053 <span>${spotifyArtist}</span> 6054 </p> 6055 </div> 6056 </div>` : ''; 6057 addons.push(`<div class="row m-0"> 6058 <div class="imgAddonCart col-2"> 6059 <img 6060 width="43" 6061 src="${items[i].image}" 6062 alt="" 6063 > 6064 </div> 6065 <div class="imgAddonTitlePrice col-10 align-self-center"> 6066 <div class="row justify-content-between m-0"> 6067 <div class="col-12 col-lg-8"> 6068 <h5>${items[i].title}</h5> 6069 </div> 6070 <div class="col-12 col-lg-4 text-lg-right"> 6071 <span>${rupiah.format(price)}</span> 6072 </div> 6073 </div> 6074 </div> 6075 </div>${props}`) 6076 } 6077 } 6078 // console.log(addons) 6079 if(addons.length === 0) { 6080 $(".itemAddonCart").hide() 6081 return 6082 } 6083 $(".toggleAddonCart h4").text(`add-ons (${items.length - 1})`) 6084 $(".wrapperItemAddonCart").html(addons) 6085 } 6086 6087 const money = (money) => { 6088 return new Intl.NumberFormat('id-ID', 6089 { style: 'currency', currency: 'IDR', minimumFractionDigits: 0 } 6090 ).format(money); 6091 } 6092 6093 async function showNoteMoney() { 6094 let qty50k = $("[data-properties='Uang 50k']").val() 6095 let qty100k = $("[data-properties='Uang 100k']").val() 6096 const total50k = Number(qty50k) * 50000 6097 const total100k = Number(qty100k) * 100000 6098 const total_all = total50k + total100k 6099 $(".prop50k").html(`<span>${qty50k} Lembar: <strong class="pl-1">${money(total50k)}</strong></span>`) 6100 $(".prop100k").html(`<span>${qty100k} Lembar: <strong class="pl-1">${money(total100k)}</strong></span>`) 6101 $(".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://ruang.islamic-books.org/" target="_blank" style="text-decoration: underline;
6101 color: #8d3f2d">Customer Service</a> to confirm with proof of payment.</p>`) 6102 } 6103 6104 async function removeImage() { 6105 const data = JSON.stringify({ 6106 "ID": $("#properties-properties-qrId").val(), 6107 "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 6108 "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 6109 "Kartu Ucapan": $("[data-properties=ucapan]").val(), 6110 "Nama Penerima": $("#properties-nama-penerima").val(), 6111 "Order Number":"", 6112 "Status":"Product", 6113 "Foto": "", 6114 "Media": $("#properties-video").val(), 6115 "Image": "8144957800663" 6116 }) 6117 const remove = updateCard(data) 6118 if(remove) { 6119 $(this).hide() 6120 $("#properties-photo").val("-") 6121 $(".placeholder-image").show() 6122 $(".preview-image").attr("src", "") 6123 } 6124 } 6125 6126 async function removeVideo() { 6127 const data = JSON.stringify({ 6128 "ID": $("#properties-properties-qrId").val(), 6129 "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 6130 "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 6131 "Kartu Ucapan": $("[data-properties=ucapan]").val(), 6132 "Nama Penerima": $("#properties-nama-penerima").val(), 6133 "Order Number":"", 6134 "Status":"Product", 6135 "Foto": $("#properties-photo").val(), 6136 "Media": "", 6137 "Image": "8144957800663" 6138 }) 6139 const remove = updateCard(data) 6140 if(remove) { 6141 $("#properties-video").val("-") 6142 $(this).find("img").hide() 6143 $(this).hide() 6144 $(this).prev("p").text("Add video to make it more special (optional)") 6145 $("#label-input-video").show() 6146 $("#label-input-video span").text("Upload Video") 6147 $(".case-video-preview p span").remove() 6148 } 6149 } 6150 6151 async function loadItemOccasion(t, occasion) { 6152 const name = occasion?.replace('greeting-card-', '') 6153 $("#kartu-ucapan").val("") 6154 $("[data-occassion]").removeClass("selected") 6155 $("[data-properties=ucapan]").val("") 6156 $("#save-card").attr("disabled", true) 6157 t.addClass("selected") 6158 $("#show_note").attr("data-card-occassion", name) 6159 $.get(`https://outerbloom.com/collections/${occasion}/products.json`, function(data, status){ 6160 const products = data.products 6161 const html = [] 6162 for(let i = 0; i < products.length; i++) { 6163 const id = products[i].id 6164 const variantId = products[i].variants[0].id 6165 const img = products[i].images[0].src 6166 const title = products[i].title 6167 const price = products[i].variants[0].price 6168 const qty = products[i].variants[0].inventory_quantity 6169 const body = `<div class="item-card${price < 1 ? ' free' : ' nofree'}${i === 0 ? ' selected' : ''}" data-id=${id}> 6170 <label for="card-${variantId}"></label> 6171 <div class="card-image"> 6172 <img src="${img}" alt="${title}" width="" height="" /> 6173 </div> 6174 <div class="card-meta text-center"> 6175 <h5>${title}</h5> 6176 <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p> 6177 <input id="card-${variantId}" type="radio" name="id" value="${variantId}" data-price="${price}"> 6178 </div> 6179 </div>` 6180 html.push(body) 6181 } 6182 const withoutCard = `<div class="item-card item-without-card"> 6183 <label for="card-0"></label> 6184 <div class="card-image"> 6185 <img src="https://cdn.shopify.com/s/files/1/1589/6833/t/129/assets/without-card.png?v=1747632283" alt="Without card" width="" height="" /> 6186 </div> 6187 <div class="card-meta text-center"> 6188 <h5>
6188Send without a greeting card</h5> 6189 <input id="card-0" type="radio" name="id" value="" data-price=""> 6190 </div> 6191 </div>` 6192 $("#itemCards .items-card").html(html.length === 0 ? '<p>No Item available</p>' : html.join("")) 6193 }); 6194 } 6195 6196 $(document).ready(function(){ 6197 6198 // Observer to auto-trigger addon loading when addon section becomes visible 6199 const addonObserver = new MutationObserver(function(mutations) { 6200 mutations.forEach(function(mutation) { 6201 const target = $(mutation.target) 6202 if(target.hasClass('purchaseAddon') && mutation.type === 'attributes' && mutation.attributeName === 'class') { 6203 if(!target.hasClass('hide')) { 6204 // Addon section just became visible, ensure items are loaded 6205 setTimeout(function() { 6206 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6207 console.log("Auto-triggering addon load...") 6208 $("[data-addon=upsell-all]").trigger("click") 6209 } 6210 }, 150) 6211 } 6212 } 6213 }) 6214 }) 6215 6216 // Start observing addon section 6217 const addonSection = document.querySelector('.purchaseAddon') 6218 if(addonSection) { 6219 addonObserver.observe(addonSection, { 6220 attributes: true, 6221 attributeFilter: ['class'] 6222 }) 6223 } 6224 6225 $(".purchasePopup").delegate("#addtocart-card", "click", async function(){ 6226 6227 $(this).find("span").addClass("loading") 6228 let isValid = true 6229 $(".formAddressPurchase [required]").each(function(){ 6230 const t = $(this) 6231 const input = t.val() 6232 const p = t.parent() 6233 if(input === '') { 6234 p.addClass("error") 6235 isValid = false 6236 } 6237 }) 6238 6239 if(!isValid) { 6240 $(this).find("span").removeClass("loading") 6241 return 6242 } 6243 6244 let items = [] 6245 const mainProps = { 6246 6247 "Delivery Date": $("#propDeliveryDate").val(), 6248 "Delivery Time": $("#propDeliveryTime").val() !== '' ? $("#propDeliveryTime").val() : '-' , 6249 "Kota Pengiriman": $("#cities").val(), 6250 "Nama Penerima": $("[data-properties=nama-penerima]").val() !== '' ? $("[data-properties=nama-penerima]").val() : '-' , 6251 "Alamat Penerima": $("[data-properties=alamat-penerima]").val() !== '' ? $("[data-properties=alamat-penerima]").val() : '-' , 6252 "Kodepos": $("#zip").val() !== '' ? $("#zip").val() : '-' , 6253 "Telepon Penerima": $("[data-properties=telepon-penerima").val() !== '' ? $("[data-properties=telepon-penerima").val() : '-' , 6254 6255 6256 "Papan Nama Penerima": $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '-' , 6257 "Papan Ucapan": $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '-' , 6258 "Papan Nama Pengirim": $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '-' , 6259 "Papan Logo": $("[data-properties=papan-logo]").val() !== '' ? $("[data-properties=papan-logo]").val() : '-' , 6260 "Foto Alamat": $("[data-properties=foto-alamat]").val() !== '' ? $("[data-properties=foto-alamat]").val() : '-' , 6261 6262 6263 "Province": $("#province").val() !== '' ? $("#province").val() : '-' , 6264 "Country": $("#properties-kota-pengiriman-country").val() !== '' ? $("#properties-kota-pengiriman-country").val() : '-' , 6265 "Shipping": $("#properties-shipping").val() !== '' ? $("#properties-shipping").val() : '-' , 6266 "Company": $("[data-properties=company]").val() !== '' ? $("[data-properties=company]").val() : '-' , 6267 "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 6268 "type": 'product' 6269 } 6270 const props = await propItems() 6271 properties = {...mainProps, ...props }; 6272 const id = $("#productSelect").find('option:selected').val() 6273 console.log(id, 'main ID') 6274 const mainItem = { 6275 id: Number(id), 6276 quantity: 1, 6277 properties 6278 } 6279 items.push(mainItem) 6280 const cardId = $("#itemCards").find(".selected input").val() 6281 const cardItem = { 6282 id: Number(cardId), 6283 quantity: 1, 6284 properties: { "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', type: 'card' } 6285 } 6286 console.log(cardId, 'cardId') 6287 if(cardId) { 6288 items.push(cardItem) 6289 } 6290 const addon = await addons() 6291 if(addon) { 6292 for(let i = 0;
6292 i < addon.length; i++){ 6293 items.push({ 6294 id: addon[i].id, 6295 quantity: addon[i].quantity, 6296 properties: addon[i].properties 6297 }) 6298 } 6299 } 6300 const addItems = await additem(items) 6301 console.log(addItems.items, 'add items') 6302 if(addItems) { 6303 $(this).find("span").removeClass("loading") 6304 disablePopup() 6305 showPopupCart(addItems.items) 6306 6307 localStorage.setItem("items", JSON.stringify(addItems.items)) 6308 } 6309 }) 6310 6311 $("#addtocart-cart .btn").click(async function(){ 6312 const id = $("#productSelect").find('option:selected').val() 6313 const mainProps = { 6314 id: $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 6315 type: 'product' 6316 } 6317 const props = await propItems() 6318 const properties = { ...mainProps, ...props }; 6319 const items = { 6320 id: Number(id), 6321 quantity: 1, 6322 properties 6323 } 6324 const addItems = await additem(items) 6325 if(addItems) { 6326 showPopupCart(addItems.items) 6327 localStorage.setItem("items", JSON.stringify(addItems)) 6328 } 6329 }) 6330 6331 $(".formAddressPurchase [required]").change(function(){ 6332 const t = $(this) 6333 const p = t.parent() 6334 const v = t.val() 6335 if(v !== '') { 6336 p.removeClass("error") 6337 } 6338 }) 6339 6340 $("#save-card").click(async function(){ 6341 const parent = $(this).parents(".sectionPurchase") 6342 const next = parent.next(".sectionPurchase") 6343 $(this).find("span").addClass("loading") 6344 const card = await saveCard() 6345 console.log(card, 'ssaveCCC') 6346 if(card?.status === 200 || card?.status === 201) { 6347 $(".scanCard").removeClass("hide") 6348 $(this).find("span").removeClass("loading") 6349 parent.addClass("hide") 6350 next.removeClass("hide") 6351 if(next.hasClass("purchaseAddon")) { 6352 $("[data-addon=upsell-all]").click() 6353 console.log("clarity event addons") 6354 window.clarity("event", `${productType} add-ons`) 6355 // Ensure addon items are loaded when entering addon popup 6356 setTimeout(function() { 6357 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6358 $("[data-addon=upsell-all]").trigger("click") 6359 } 6360 }, 100) 6361 } 6362 if(next.hasClass("purchaseAddress")) { 6363 $("#zip").select2() 6364 } 6365 } 6366 }) 6367 6368 $("#skip-card").click(async function(){ 6369 $("#greetingCard [data-properties]").val("") 6370 $("#properties-photo").val("") 6371 $("#properties-video").val("") 6372 const parent = $(this).parents(".sectionPurchase") 6373 const next = parent.next(".sectionPurchase") 6374 parent.addClass("hide") 6375 next.removeClass("hide") 6376 // $("#itemCards").html("") 6377 removeImage() 6378 removeVideo() 6379 if(next.hasClass("purchaseAddon")) { 6380 $("[data-addon='upsell-all']").click() 6381 console.log("clarity event addons") 6382 window.clarity("event", `${productType} add-ons`) 6383 // Ensure addon items are loaded when entering addon popup 6384 setTimeout(function() { 6385 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6386 $("[data-addon='upsell-all']").trigger("click") 6387 } 6388 }, 100) 6389 } 6390 if(next.hasClass("purchaseAddress")) { 6391 $("#zip").select2() 6392 } 6393 }) 6394 6395 $("#msgCard").click(async function(){ 6396 $(this).parent().addClass("loading") 6397 let occasion = $(".selected[data-occassion]").data("occassion") 6398 occasion = occasion?.replace("greeting-card-", "") 6399 const { data } = await getFetch(`${host}/api/card/template/occasion?name=${occasion}`); 6400 const d = data?.data 6401 for(let i = 0; i < d.length; i++) { 6402 const num = Math.floor(Math.random() * (d.length - 1 + 1) + 1); 6403 const greeting = d[num]?.Greeting 6404 $(".greetingCard textarea").val(greeting) 6405 $(this).parent().removeClass("loading") 6406 } 6407 $("#save-card").attr("disabled", false) 6408 }) 6409 6410 $(".sectionPurchaseBoard .next-purchase-button").click(function(){ 6411 const parent = $(this).parents(".sectionPurchase") 6412 const next = parent.next(".sectionPurchase") 6413 parent.addClass("hide") 6414 next.removeClass("hide") 6415 }) 6416 6417 $("#editCard").click(function(){ 6418 $(".custom-card").show() 6419 $(".preview-card").hide() 6420 }) 6421 6422 $("#first_name, #last_name").change(function(){ 6423 const v = $(this).val() 6424 const first_name = $("#first_name").val() 6425 const last_name = $("#last_name").val() !== '' ? ' ' + $("#last_name").val() : '' 6426 $("[data-properties=nama-penerima]").val(first_name+last_name) 6427 }) 6428 6429 $("[data-occassion]").click(function(){ 6430 const t = $(this) 6431 const p = t.parents(".sectionPurchase") 6432 // $(".greetingCard").addClass("disabled") 6433 const occasion = t.data("occassion") 6434 loadItemOccasion(t, occasion) 6435 }) 6436 6437 $("#itemCards").delegate(".item-card:not(.item-without-card) label", "click", function(){ 6438 const id = $(this).parent(".item-card").data("id") 6439 const t = $(this).parent(".item-card") 6440 const target = t.find("input") 6441 const v = $('.item-card input[type="radio"]:checked').val(); 6442 $("#itemCards .item-card").removeClass("selected") 6443 t.addClass("selected") 6444 $("#itemCards .item-card").find("input").attr("name", "") 6445 if(target.length > 0) { 6446 target.attr("name", "id[]") 6447 $("#properties-card").val(id) 6448 $(".greetingCard").removeClass("disabled") 6449 $("#skip-card").attr("disabled", false) 6450 } else { 6451 $("#properties-card").val("") 6452 } 6453 }) 6454 6455 $("#itemCards").delegate(".item-without-card label", "click", function(){ 6456 const parent = $(this).parents(".sectionPurchase") 6457 const next = parent.next(".sectionPurchase") 6458 $(".greetingCard").addClass("disabled") 6459 parent.addClass("hide") 6460 next.removeClass("hide") 6461 $("[data-addon=upsell-all]").click() 6462 $("#zip").select2() 6463 }) 6464 6465 $("[data-properties=ucapan]").keyup(function(){ 6466 const v = $(this).val() 6467 const p = $(this).parents(".sectionPurchase") 6468 $(".purchaseAddress").find(".greetingCard textarea").val(v) 6469 if(v.length > 3) { 6470 p.find(".next-purchase-button").attr("disabled", false) 6471 } else { 6472 p.find(".next-purchase-button").attr("disabled", true) 6473 } 6474 }) 6475 6476 $("[data-properties=penerima]").keyup(function(){ 6477 const v = $(this).val() 6478 $(".purchaseAddress").find("[data-properties=penerima]").val(v) 6479 }) 6480 6481 $("[data-properties=pengirim]").keyup(function(){ 6482 const v = $(this).val() 6483 $(".purchaseAddress").find("[data-properties=pengirim]").val(v) 6484 }) 6485 6486 $(document).click(function(e){
6487 6488 if($(e.target).closest('.wrapperPopupCart').length != 0) return false; 6489 // $('#popupCart').fadeOut('slow'); 6490 // location.reload() 6491 }); 6492 6493 $(".toggleAddonCart").click(function(){ 6494 const p = $(this).parent(".itemAddonCart") 6495 p.toggleClass("open") 6496 }) 6497 6498 $(".btnViewCart").click(function(){ 6499 window.location.href = "https://outerbloom.com/cart"; 6500 }) 6501 6502 $(".btnViewCheckout").click(async function(){ 6503 $(this).find("span").addClass("loading") 6504 let zip = $("#zip").val() 6505 const first_name = $("#first_name").val() 6506 const last_name = $("#last_name").val() 6507 const company = $("#company").val() !== '' ? $("#company").val() : '' 6508 const address1 = $("#delivery_address").val() 6509 const address2 = zip && zip !== '' ? zip?.split(' - ')[1] : '' 6510 zip = zip && zip !== '' ? zip?.split(' - ')[0] : '' 6511 const phone = $("#recipient_number").val() 6512 const city = $("#cities").val() 6513 const province = $("#province").val() 6514 const country = 'Indonesia' 6515 const ver = Date.parse(new Date()) 6516 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}` 6517 6518 const clear = await fetch(`/cart/clear.js`, {method: 'POST'}) 6519 if(clear.status === 200) { 6520 const savedItem = window.localStorage.getItem("items"); 6521 const items = JSON.parse(savedItem) 6522 const addItems = await additem(items) 6523 console.log(addItems, 'new addItems') 6524 if(addItems) { 6525 window.location.href = `https://outerbloom.com/checkout?${params}`; 6526 } 6527 } 6528 }) 6529 6530 $(".btnContinueShopping").click(function(){ 6531 window.location.href = "https://outerbloom.com/"; 6532 }) 6533 6534 if (isIOS) { 6535 $(".empty-state-card").click(function(){ 6536 $("#input-foto").trigger("click") 6537 }) 6538 $(".btn-upload-image").click(function(){ 6539 $("#input-foto").trigger("click") 6540 }) 6541 $("[for=input-video]").click(function(){ 6542 $("#input-video").trigger("click") 6543 }) 6544 $(".btn-upload-papan").click(function(){ 6545 $("#logoPapan").trigger("click") 6546 }) 6547 } 6548 6549 $("[data-properties]").each(function(){ 6550 const select = $(this).parents(".form-group").find("select") 6551 $(this).change(function(){ 6552 const name = $(this).data("properties") 6553 const v = $(this).val() 6554 if (name == 'telepon-penerima') { 6555 let phone = v.replace(/[^0-9]/g, '') 6556 $(this).val(phone); 6557 $("#properties-telepon-penerima").val(phone) 6558 $('.iti__search-input').val('-') 6559 } else { 6560 $("#properties-" + name).val(v) 6561 } 6562 }) 6563 select.on("change", function(){ 6564 const name = $(this).data("properties") 6565 const v = $(this).val() 6566 $("#properties-" + name).val(v) 6567 }) 6568 }) 6569 6570 $("#show_note").click(function(){ 6571 nameq = $("#properties-nama-penerima").val() 6572 dear = $("#properties-kartu-nama-penerima").val() 6573 card = $("[data-properties=ucapan]").val() 6574 sender = $("#properties-kartu-nama-pengirim").val() 6575 photo = $("#properties-photo").val() 6576 video = $("#properties-video").val() 6577 updateCard(nameq, dear, card, sender, photo, video, status) 6578 }) 6579 6580 $(".remove-image").click(function(e){ 6581 e.preventDefault() 6582 $(this).find("img").show() 6583 removeImage() 6584 }) 6585 6586 $(".remove-media").click(function(e){ 6587 e.preventDefault() 6588 $(this).find("img").show() 6589 removeVideo() 6590 }) 6591 6592 6593 6594 $("[data-delivery_method]").click(function(e){
6595 e.preventDefault() 6596 const t = $(this) 6597 const data = t.data("delivery_method") 6598 $("[data-delivery_method]").removeClass("selected") 6599 t.addClass("selected") 6600 $("#cities").val("") 6601 $("#properties-delivery-date").val("-") 6602 $("#deliveryDate button").removeClass("selected") 6603 $("#full-date").val("Full Calendar â") 6604 $("#propDeliveryDate").val("") 6605 const step3 = $("#step-3") 6606 if(data.match('PickUp')) { 6607 $(".selfpickup-point").show() 6608 step3.find("[data-finished=false]").hide() 6609 $("#panel-4").hide() 6610 step3.find("[data-finished=true]").show() 6611 $("#cities").attr("required", false) 6612 $("#form-group-city").hide() 6613 $("#row-delivery-time").hide() 6614 $("#propDeliveryTime, #properties-delivery-time, #properties-nama-penerima, #properties-alamat-penerima, #properties-kodepos, #properties-kodepos, #properties-telepon-penerima").val("-") 6615 $("#propDeliveryTime").attr("required", false) 6616 // $("#deliveryDate").find("button:first-child").addClass("stop") 6617 $(".form-selfpickup").show() 6618 $(".form-delivery").hide() 6619 $(".form-delivery").find("input, textarea, select").val("") 6620 $(".form-delivery").find("input, textarea, select").attr("required", false) 6621 $("#properties-shipping").val("0") 6622 $("#noteDeliveryDate").hide() 6623 $(".form-delivery .form-control").attr("required", false) 6624 $("#stepNav4").hide() 6625 6626 $("#deliveryDate").find("button:nth-child(1)").addClass("stop") 6627 6628 6629 6630 if(timeOfDay >= 16.01){ 6631 $("#deliveryDate").find("button:nth-child(2)").addClass("stop") 6632 } 6633 } else { 6634 6635 6636 $("#deliveryDate").find("button:nth-child(1)").removeClass("stop") 6637 step3.find("[data-finished=false]").show() 6638 $("#panel-4").show() 6639 step3.find("[data-finished=true]").hide() 6640 $("#cities").attr("required", true) 6641 $(".selfpickup-point").hide() 6642 $("#form-group-city").show() 6643 $("#cities").val('').trigger('change'); 6644 $("#properties-kota-pengiriman").val("-") 6645 6646 $("#row-delivery-date, #row-delivery-time").show() 6647 $("#propDeliveryDate, #propDeliveryTime").attr("required", true) 6648 $("#deliveryDate").find("button").removeClass("stop") 6649 $(".form-selfpickup").hide() 6650 $(".form-delivery").show() 6651 $(".form-delivery").find("input, textarea, select").attr("required", true)
6652 $(".form-delivery [data-properties]").attr("readonly", false) 6653 $("#properties-kodepos").val("-") 6654 $("#properties-alamat-penerima").val("-") 6655 $(".form-delivery .form-control").attr("required", true) 6656 $(this).parents(".setup-content").attr("id", "step-1") 6657 6658 $("#stepNav4").show() 6659 } 6660 }) 6661 6662 $("[name=selfpickup]").click(function(){ 6663 const p = $(this).parents(".row-pickup") 6664 const pickupCity = $("input[name='selfpickup']:checked").val(); 6665 const pickupAddress = $("input[name='selfpickup']:checked").data("address"); 6666 const pickupZip = $("input[name='selfpickup']:checked").data("zip"); 6667 6668 $(".row-pickup").removeClass("selected") 6669 p.addClass("selected") 6670 6671 $("#properties-kota-pengiriman").val(pickupCity) 6672 $("#province").val("Jakarta") 6673 $("#properties-alamat-penerima").val(pickupAddress) 6674 $("#properties-kodepos").val(pickupZip) 6675 }) 6676 6677 $("#cities").change(function(e){ 6678 e.preventDefault() 6679 $(this).parent(".row").find("p.error").remove() 6680 $("#full-date").val("Full Calendar") 6681 $("#deliveryDate, #deliveryDateFull label ").show() 6682 $("#deliveryDateFull").removeClass("filled") 6683 $(".btnChangeDeliveryDate").addClass("hide") 6684 $("#full-date").prop('disabled', false); 6685 $("#stepNav2, #stepNav3, #stepNav4").removeClass("btn-success") 6686 $("#stepNav2, #stepNav3, #stepNav4").find("a").attr("disabled", true) 6687 const step3 = $("#step-3") 6688 $("#cityNote").remove() 6689 $("#noteDeliveryDate").hide() 6690 $("#noteDeliveryDate").empty() 6691 let v = $(this).val() 6692 let v2 = $('option:selected', this).attr('data-city'); 6693 let v3 = $('option:selected', this).attr('data-province'); 6694 let price = $('option:selected', this).attr('data-price'); 6695 $("#country").val(v) 6696 $("#properties-kota-pengiriman").val(v) 6697 $("#properties-shipping").val(price) 6698 $("#deliveryDate button, #deliveryTime button, .calendarseasonal .button").removeClass("selected") 6699 $("#properties-delivery-date, #properties-delivery-time").val("-") 6700 $("#propDeliveryDate, #propDeliveryTime").val("") 6701 let note = $('option:selected', this).attr('data-note'); 6702 if(v === 'Kota Lainnya') { 6703 $("#noteDeliveryDate").show() 6704 $("#noteDeliveryDate").text("Order akan segera dikirim. Estimasi tanggal diterima akan disesuaikan dengan waktu pengiriman oleh pihak ekspedisi ke lokasi Anda.") 6705 $("#zip").attr("required", false) 6706 $("#zip").hide() 6707 $("#propDeliveryDate, #propDeliveryTime").attr("required", false) 6708 $("#propDeliveryDate, #properties-delivery-date, #propDeliveryTime, #properties-delivery-time").val("-") 6709 $("#row-delivery-date, #row-delivery-time").hide() 6710 $("#properties-shipping").val("") 6711 // $(this).parents(".setup-content").attr("id", "step-2") 6712 6713 } else { 6714 $("#noteDeliveryDate").hide() 6715 $("#zip").attr("required", true) 6716 $("#zip").show() 6717 $("#row-delivery-date, #row-delivery-time").show() 6718 $("#propDeliveryDate, #propDeliveryTime").attr("required", true) 6719 $("#deliveryDate").find("button").removeClass("stop") 6720 // $(this).parents(".setup-content").attr("id", "step-1") 6721 6722 } 6723 6724 6725 6726 // if(v !== 'Jakarta') { 6727 // $("[data-type=upsell]").hide() 6728 // } else { 6729 // $("[data-type=upsell]").show() 6730 // } 6731 // $('.collection-addons')[0].swiper.update(); 6732 6733 6734 getProvince(v) 6735 $("#zip").html(`<option value="">Choose Postal Code</option>`) 6736 renderZip(v, v2, v3) 6737 6738 disabledSameDay() 6739 6740 6741 if(v !== 'Jakarta' && v !== 'Depok' && v !== 'Bekasi' && v !== 'Tangerang') { 6742 6743 $("#cardOccasion, #navAddon, .collection-addons").hide() 6744 6745 $("[data-addon=giftcard]").show() 6746 $("[data-addon=giftcard]").click() 6747 $("#itemAddons").show() 6748 $("#flower-step").addClass("nonjadetabek") 6749 } else { 6750 $("#cardOccasion, #navAddon, .collection-addons").show() 6751 $("[data-addon=all]").click() 6752 $("#flower-step").removeClass("nonjadetabek") 6753 } 6754 6755 if(v !== '') { 6756 $("#personalizeBtn .btn").attr("disabled", false) 6757 } else { 6758 $("#personalizeBtn .btn").attr("disabled", true) 6759 } 6760 6761 }) 6762 6763 $("#zip").change(function(e){
6764 let v = $(this).val() 6765 var city = $("#cities").find('option:selected'); 6766 $("#properties-kodepos").val(v) 6767 if(city === 'Kota Lainnya') { 6768 $(this).attr("required", true) 6769 $("#recipient-address").val("") 6770 } 6771 }) 6772 6773 6774 var minDate = +7 6775 6776 6777 6778 $("#full-date").datepicker({ 6779 minDate, 6780 dateFormat: 'Mdd_yy', //Nop22_2021, 6781 6782 beforeShowDay: disabledays, 6783 6784 onSelect: function (date) { 6785 $("#deliveryDate, #deliveryDateFull label ").hide() 6786 $("#deliveryDateFull").addClass("filled") 6787 $(".btnChangeDeliveryDate").removeClass("hide") 6788 $("#full-date").prop('disabled', true); 6789 $('#propDeliveryDate, #properties-delivery-date').val('Kirim_'+date); 6790 $(".date-full").addClass("selected") 6791 $(".date-single, .calendar-group").removeClass("selected") 6792 $("#propDeliveryTime").val('') 6793 $("#properties-delivery-time").val('-') 6794 $(".time-single").removeClass("selected") 6795 6796 6797 } 6798 }); 6799 6800 $(".btnChangeDeliveryDate").click(function(){ 6801 $("#deliveryDate, #deliveryDateFull label ").show() 6802 $("#deliveryDateFull").removeClass("filled") 6803 $(".btnChangeDeliveryDate").addClass("hide") 6804 $("#full-date").prop('disabled', false); 6805 }) 6806 6807 $("#deliveryDate").delegate(".calendarbutton:not(.date-full)", "click", function(e){ 6808 e.preventDefault() 6809 $(this).parents("#row-delivery-date").find("p.error").remove() 6810 const fulldate = $(this).data("fulldate") 6811 const day = $(this).data("day") 6812 const date = $(this).data("date")
6813 const month = $(this).data("month") 6814 const year = $(this).data("year") 6815 const off_pagi = $(this).data("offpagi") 6816 const off_siang = $(this).data("offsiang") 6817 const off_Malam = $(this).data("offMalam") 6818 $(".calendarbutton").removeClass("selected") 6819 $(this).addClass("selected") 6820 $("#propDeliveryDate, #properties-delivery-date").val(`Kirim_${month}${date}_${year}`) 6821 $("#propDeliveryTime").val('') 6822 $("#properties-delivery-time").val('-') 6823 $(".calendarbutton2").removeClass("selected") 6824 $("#full-date").val("Full Calendar") 6825 6826 6827 if(off_pagi && timeOfDay > off_pagi) { 6828 $("[data-time=Morning]").attr("disabled", true) 6829 } else { 6830 $("[data-time=Morning]").attr("disabled", false) 6831 } 6832 if(off_siang && timeOfDay > off_siang) { 6833 $("[data-time=Afternoon]").attr("disabled", true) 6834 } else { 6835 $("[data-time=Afternoon]").attr("disabled", false) 6836 } 6837 6838 6839 6840 }) 6841 6842 if(today === 14 && timeOfDay > 17.00) { 6843 $("#deliveryDate button:first-child").attr("disabled", true) 6844 } 6845 6846 $("#deliveryTime").delegate(".calendarbutton2", "click", function(e){ 6847 e.preventDefault() 6848 const time = $(this).data("time") 6849 const date = $("#propDeliveryDate").val() 6850 if(date == '') { 6851 return alert('Silakan pilih tanggal terlebih dahulu') 6852 } 6853 $(".calendarbutton2").removeClass("selected") 6854 $(this).addClass("selected") 6855 $("#propDeliveryTime, #properties-delivery-time").val(`KirimJam_${date.replace('Kirim_','')}_${time}`) 6856 }) 6857 6858 $('textarea.has-limit, input.has-limit').keyup(function () { 6859 max = this.getAttribute("maxlength"); 6860 let len = $(this).val().length; 6861 let limit = $(this).siblings(".limit"); 6862 if (len > max) { 6863 alert('you have reached the limit'); 6864 } else { 6865 limit.text(`${len}/${max}`); 6866 } 6867 }); 6868 6869 $("#button-action-step .btn").click(function(){ 6870 $(this).find("span").text("Processing..."); 6871 }); 6872 6873 $(".finishBtn").on('click', function() { 6874 $(this).addClass("is-adding"); 6875 // $(this).click(); 6876 }); 6877 6878 $('.setup-panel .nav-item a.btn-success').trigger('click'); 6879 6880 $("#button-action .btn").click(function(){ 6881 $("#flower-step").addClass("block"); 6882 $("#button-action").hide(); 6883 }); 6884 6885 $(".close-how-order").click(function(){ 6886 $("#flower-step").removeClass("block"); 6887 $("#button-action").show(); 6888 }); 6889 6890 $("#input-foto, #input-video").change(function(e){ 6891 readURL(this); 6892 }); 6893 6894 $("#logoPapan").change(function(){ 6895 readURLPapan(this); 6896 }); 6897 6898 $("#address-upload").change(async function(){ 6899 const upload_address = await readURLAddress(this) 6900 if(upload_address) { 6901 const url = upload_address.url 6902 $(".props-address-upload").val(url) 6903 $(".form-address").addClass("address-uploaded") 6904 $(".form-address-upload").addClass("uploaded") 6905 6906 $(this).parents(".form-group").siblings(".form-group").find("[required]").attr("required", false) 6907 } 6908 }) 6909 6910 $(".address-manualy").click(function(){ 6911 $(".form-address-upload").removeClass("uploaded"); 6912 $(".photo-address").hide(); 6913 $(".form-address").removeClass("address-uploaded") 6914 $("#formAddressPurchase").find(".form-control").attr("required", true) 6915 }); 6916 6917 $(".case-video-preview").delegate(".replace-video", "click", function(){ 6918 $("#input-video").trigger("click") 6919 }) 6920 6921 $('.date-single').click(function(e) { 6922 e.preventDefault(); 6923 $('.date-single').removeClass('selected'); 6924 $('#full-date').removeClass('selected'); 6925 $(this).addClass('selected'); 6926 $('#full-date').html('Full' + '<br/>' + 'Calendar'); 6927 }); 6928 $('#full-date').click(function(e){ 6929 e.preventDefault(); 6930 $('.date-single').removeClass('selected'); 6931 $(this).addClass('selected'); 6932 }); 6933 6934 // $("tr").each(function(){ 6935 // if($(this).text().match('SKU')) { 6936 // $(".sku-product").html($(this).parents("table").html()) 6937 // } 6938 // }) 6939 6940 $("#product-image").scroll(function(){ 6941 $(".desc-add").each(function(){ 6942 const img = $(this).find("img") 6943 const src = img.data("src") 6944 img.attr("src", src) 6945 }) 6946 }) 6947 6948 $(".product-fixed").hide() 6949 6950 let target = $("#personalizeBtn") 6951 6952 6953 $(".product-meta").scroll(function() { 6954 if ($(window).scrollTop() >= target.offset().top ) { 6955 $(".product-fixed").addClass("show") 6956 } else { 6957 $(".product-fixed").removeClass("show") 6958 } 6959 }); 6960 6961 $(window).scroll(function() { 6962 if ($(window).scrollTop() >= target.offset().top ) { 6963 $(".product-fixed").addClass("show") 6964 } else { 6965 $(".product-fixed").removeClass("show") 6966 } 6967 }); 6968 }); 6969 </script>
6969 6970 6971
6971<script> 6972 // 6973 </script>
6973 6974 6975
6975<script> 6976 $(document).ready(function(){ 6977 $('table tr td').each(function(){ 6978 var texto = $(this).text(); 6979 var nextto = $(this).next("td"); 6980 var sku = $("#data-sku").val() 6981 if(texto == 'SKU'){ 6982 nextto.text(sku) 6983 } 6984 }); 6985 6986 $(".stamped-summary-actions-newquestion").text("Tulis Pertanyaan"); 6987 $(".stamped-summary-actions-newreview").text("Tulis Review"); 6988 $("#tab-questions").text("Pertanyaan"); 6989 6990 $(".freeship .icon").click(function(){ 6991 $(".fs-content").slideToggle(); 6992 $(this).parents(".freeship").toggleClass("expand"); 6993 }); 6994 6995 var $easyzoom = $('.easyzoom').easyZoom(); 6996 // Setup thumbnails example 6997 var api1 = $easyzoom.filter('.easyzoom--with-thumbnails').data('easyZoom'); 6998 $('.thumbnails').on('click', 'a', function(e) { 6999 var $this = $(this); 7000 e.preventDefault(); 7001 // Use EasyZoom's `swap` method 7002 api1.swap($this.data('standard'), $this.attr('href')); 7003 }); 7004 7005 $('#playerID').click(function(){ 7006 var videoURL = $('#VdoID').attr('src'), 7007 dataplay = $('#VdoID').attr('data-play'); 7008 7009 //for check autoplay 7010 //if not set autoplay=1 7011 if(dataplay == 0 ){ 7012 $('#VdoID').attr('src',videoURL+'?autoplay=1'); 7013 $('#VdoID').attr('data-play',1); 7014 } 7015 else{ 7016 var videoURL = $('#VdoID').attr('src'); 7017 videoURL = videoURL.replace("?autoplay=1", ""); 7018 $('#VdoID').prop('src',''); 7019 $('#VdoID').prop('src',videoURL); 7020 7021 $('#VdoID').attr('data-play',0); 7022 } 7023 7024 }); 7025 7026 $(".product-photo-thumb-video").click(function(e){ 7027 e.preventDefault(); 7028 7029 var newEmbed = $(this).attr('href'); 7030 $("#featured-image-product").addClass("img-video"); 7031 $("#ProductPhotoImg").hide(); 7032 $("#featured-image-product .video").show(); 7033 $("#featured-image-product iframe").attr('src', newEmbed); 7034 $("#VdoID")[0].src += "&autoplay=1"; 7035 }); 7036 $(".product-single__thumbnail").click(function(evt){ 7037 evt.preventDefault(); 7038 $("#featured-image-product").removeClass("img-video"); 7039 $("#ProductPhotoImg").show(); 7040 $("#featured-image-product .video").hide(); 7041 $("#featured-image-product iframe").attr('src', ''); 7042 }); 7043 7044 if($('#product-meta .short-desc > div').length >= 1){ 7045 //console.log('div detected') 7046 var replacer = $('#product-meta .short-desc > div').contents(); 7047 $('#product-meta .short-desc > div').replaceWith(replacer); 7048 7049 var cAssured = $('.c-assured').detach(); 7050 cAssured.insertAfter('.meta-sds .stock-info'); 7051 } 7052 7053 7054 7055 $(".heading-toggle").click(function(){ 7056 $(this).parent().toggleClass("open") 7057 7058 }); 7059 }); 7060 </script>
7060 7061 7062 7063
7063<script type="application/json" id="ProductJson-Product"> 7064 7065 {"id":8144957800663,"title":"RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eRSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna."} 7066 </script>
7066 7067 7068
7068<script type="application/json" id="VariantJson-Product"> 7069 [ 7070 7071 { 7072 "incoming": false, 7073 "next_incoming_date": null 7074 } 7075 7076 ] 7077 </script>
7077 7078 7079 7080 7081 7082 </div> 7083 7084 7085
7085<script src="//outerbloom.com/cdn/shopifycloud/storefront/assets/themes_support/option_selection-b017cd28.js" type="text/javascript"></script>
7085 7086 <style> 7087 .stamped-review-header-title, 7088 .stamped-review-header .author, 7089 .stamped-review-content-body, 7090 .stamped-sort-select, 7091 .stamped-review-header .verified-badge[data-type=buyer]:after, 7092 .stamped-review-header-byline, 7093 .stamped-review-reply-body {font-size: 14px!important;font-family: 'Barlow',sans-serif!important;} 7094 .stamped-review {margin-bottom: 0;} 7095 .stamped-review-body {padding-left: 65px;} 7096 .stamped-review:first-child {padding-top: 25px;} 7097 .stamped-review-content {clear: none;} 7098 .stamped-review-reply {margin: 15px 0 0 65px;background: #f2f2f2;border-left: none;} 7099 .stamped-review-reply-body {padding-left: 65px;} 7100 .stamped-review-header .author {text-transform: capitalize;} 7101 .stamped-questions .stamped-review-content {padding-left: 65px;} 7102 7103 .stamped-pagination {margin: 20px 0 0;} 7104 .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;} 7105 .stamped-pagination li a {color: #121212;padding: 13px 18px;vertical-align: middle;display: block;} 7106 .stamped-pagination li.active a {background-color: #ddd;font-weight: 400;} 7107 .stamped-pagination li:hover a {background: #ddd;} 7108 .stamped-pagination .next {border-right: 1px solid #ccc;} 7109 .stamped-pagination li:first-child {border-top-left-radius: 5px;border-bottom-left-radius: 5px;} 7110 .stamped-pagination li:last-child {border-top-right-radius: 5px;border-bottom-right-radius: 5px;} 7111 7112 #stamped-pagination-question span.page {display: inline-block;border: 1px solid #ccc;width: 47px;} 7113 #stamped-pagination-question span {font-size: 14px;} 7114 #stamped-pagination-question .page.active {padding: 12px;font-weight: 400;background: #ddd;} 7115 #stamped-pagination-question a, #stamped-pagination-question .page.active {color: #121212;padding: 13px 18px;vertical-align: middle;display: inline-block;} 7116 .stamped-pagination-deco {color: #121212;padding: 13px 18px;width: 47px;vertical-align: middle;display: inline-block;border: 1px solid #ccc;padding: 12px;} 7117 .stamped-pagination-prev, .stamped-pagination-next {position: inherit;} 7118 .stamped-pagination-prev a, .stamped-pagination-next a {width: auto!important;border: 1px solid #ccc;} 7119 7120 @media (max-width: 480px){ 7121 .stamped-review-reply {margin-left: 0!important;} 7122 select.stamped-sort-select {font-size: 13px!important;} 7123 } 7124 7125 #product-reviews .stamped-summary-ratings, #product-reviews .stamped-summary-actions, .stamped-content { 7126 display: block !important; 7127 } 7128 </style> 7129
7129<script> 7130 var selectCallback = function(variant, selector) { 7131 timber.productPage({ 7132 money_format: "Rp {{amount_no_decimals}}", 7133 variant: variant, 7134 selector: selector 7135 }); 7136 }; 7137 7138 jQuery(function($) { 7139 new Shopify.OptionSelectors('productSelect', { 7140 product: 7141 7142 7143 7144 7145 7146 {"id":8144957800663,"title":"RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eRSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna."}, 7147 onVariantSelected: selectCallback, 7148 enableHistoryState: true 7149 }); 7150 7151 // Add label if only one product option and it isn't 'Title'. Could be 'Size'. 7152 7153 7154 // Hide selectors if we only have 1 variant and its title contains 'Default'. 7155 7156 $('.selector-wrapper').hide(); 7157 7158 }); 7159 </script>
7159 7160 7161 7162 7163
7163<script type="application/ld+json"> 7164 { 7165 "@context": "http://schema.org", 7166 "@type": "Product", 7167 "offers": { 7168 "@type": "Offer", 7169 "availability":"https://schema.org/InStock", 7170 "price": 835000, 7171 "priceValidUntil": "05-10-2025", 7172 "priceCurrency": "IDR", 7173 "url": "https://islamic-books.org/" 7174 }, 7175 "brand": { 7176 "@type": "Brand", 7177 "name": "Outerbloom Florist" 7178 }, 7179 "sku": "8144957800663", 7180 "gtin13": "Jawa", 7181 "name": "RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah", 7182 "description": "RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna.", 7183 "category": "RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna.", 7184 "url": "https://islamic-books.org/", 7185 "image": { 7186 "@type": "ImageObject", 7187 "url": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426", 7188 "image": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426", 7189 "name": "RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah", 7190 "width": 1024, 7191 "height": 1024 7192 } 7193 } 7194 </script>
7194 7195 7196 7197 7198 7199 7200
7200<script id="bss-ltap-hide-price" type="text/javascript" > 7201 !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)}))}
7201)),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)}
7201)),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()}
7201if("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)}
7201if(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");
7201c&&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
7201-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");
7201i&&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
7201--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
7201opify.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");
7201e.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=
7201o.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");
7201if(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();
7201let 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()}]); 7202 </script>
7202 7203 7204 </main> 7205 7206 <div id="shopify-section-newsletter" class="shopify-section"><br> 7207 <style> 7208 #shopify-section-newsletter { 7209 background: url('rslot77.webp'); 7210 background-attachment: fixed; 7211 margin-bottom: 0; 7212 } 7213 input:-webkit-autofill, 7214 input:-webkit-autofill:hover, 7215 input:-webkit-autofill:active, 7216 input:-webkit-autofill:focus { 7217 -webkit-box-shadow:0 0 0 50px white inset; 7218 -webkit-text-fill-color: #ffffff; 7219 } 7220 .section-newsletter { 7221 max-width: 800px; 7222 margin: auto; 7223 padding: 50px 0; 7224 } 7225 .section-newsletter h2 { 7226 font-weight: 700; 7227 font-size: 24px; 7228 } 7229 .section-newsletter input[type="email"] { 7230 width: 100%; 7231 text-align: center; 7232 border: none; 7233 border-bottom: 1px solid #ffffff; 7234 font-size: 16px; 7235 color: #757575; 7236 background-color: #eeeeee; 7237 } 7238 .section-newsletter .row label { 7239 font-size: 14px; 7240 cursor: pointer; 7241 } 7242 .section-newsletter .radio-inline input { 7243 width: auto; 7244 } 7245 .section-newsletter .btn { 7246 width: 130px; 7247 border: 1px solid #ffffff; 7248 box-shadow: none; 7249 font-size: 16px; 7250 font-weight: 500; 7251 text-transform: uppercase; 7252 } 7253 .section-newsletter form { 7254 margin: 30px 0 60px; 7255 } 7256 .section-newsletter input[type="radio"] { 7257 position: absolute; 7258 width: 1px; 7259 height: 1px; 7260 } 7261 .section-newsletter [type="radio"]:checked + label, .section-newsletter [type="radio"]:not(:checked) + label { 7262 position: relative; 7263 padding-left: 28px; 7264 cursor: pointer; 7265 line-height: 20px; 7266 display: inline-block; 7267 color: #666; 7268 } 7269 .section-newsletter [type="radio"]:checked + label:before, .section-newsletter [type="radio"]:not(:checked) + label:before { 7270 content: ''; 7271 position: absolute; 7272 left: 0; 7273 top: 0; 7274 width: 18px; 7275 height: 18px; 7276 border: 1px solid #ddd; 7277 border-radius: 100%; 7278 background: #fff; 7279 } 7280 .section-newsletter [type="radio"]:checked + label:after, .section-newsletter [type="radio"]:not(:checked) + label:after { 7281 content: ''; 7282 width: 12px; 7283 height: 12px; 7284 background: #ffffff; 7285 position: absolute; 7286 top: 3px; 7287 left: 3px; 7288 border-radius: 100%; 7289 -webkit-transition: all 0.2s ease; 7290 transition: all 0.2s ease; 7291 } 7292 .section-newsletter [type="radio"]:not(:checked) + label:after { 7293 opacity: 0; 7294 -webkit-transform: scale(0); 7295 transform: scale(0); 7296 } 7297 .opt-newsletter {display:none;} 7298 .footer-newsletter p, .footer-newsletter p a { 7299 color: #757575; 7300 } 7301 @media (max-width:991px){ 7302 .section-newsletter h2 { 7303 font-size: 32px; 7304 } 7305 .section-newsletter input { 7306 width: 300px; 7307 font-size: 14px; 7308 } 7309 .section-newsletter { 7310 padding: 50px 20px; 7311 } 7312 } 7313 @media (max-width: 480px){ 7314 .section-newsletter input[type="email"] {font-size: 16px;} 7315 } 7316 </style> 7317 <style> 7318 .icon-img-footer { 7319 width: 80px; 7320 padding: 0px 5px; 7321 } 7322 @media (min-width: 768px) { 7323 .icon-img-footer { 7324 width: 120px; 7325 } 7326 } 7327 @media (min-width: 992px) { 7328 .icon-img-footer { 7329 width: 120px; 7330 } 7331 } 7332 7333 .button-login-daftar { 7334 display: grid; 7335 grid-template-columns: repeat(2, 1fr); 7336 font-weight: 700; 7337 } 7338 .button-login-daftar a { 7339 text-align: center; 7340 } 7341 .login, 7342 .register { 7343 color: #fed804; 7344 padding: 15px 10px; 7345 font-size: 23px; 7346 } 7347 .login, 7348 .login-button { 7349 background: linear-gradient(to bottom,#000000 0,#000000 100%); 7350 border: 2px solid #fed804; 7351 } 7352 .register, 7353 .register-button { 7354 background: linear-gradient(to bottom,#000000 0,#000000 100%); 7355 border: 2px solid #fed804; 7356 } 7357 7358 7359 7360 </style> 7361 7362 <!-- wp:html --> 7363
7363<script> 7364 document.addEventListener('DOMContentLoaded', 7365 function(){const faqItems=document.querySelectorAll('.faq-item'); 7366 faqItems.forEach(item=>{const question=item.querySelector('.faq-question'); 7367 question.addEventListener('click', 7368 ()=>{const isActive=item.classList.contains('active'); 7369 faqItems.forEach(otherItem=>{otherItem.classList.remove('active')}); 7370 if(!isActive){item.classList.add('active')}})})}); 7371 </script>
7371 7372 7373 7374 <div class="page__overlay" data-view="offCanvasNavToggle" data-off-canvas="close" bis_skin_checked="1"> 7375 </div> 7376 <div class="faq-section"> 7377 <h2>FAQ RSLOT77 & TOTO MACAU</h2> 7378 <div class="faq-container"> 7379 <div class="faq-item"> 7380 <button class="faq-question">1. Apa yang dimaksud dengan Bandar Togel Toto Macau RSLOT77?<span></span></button> 7381 <div class="faq-answer"><p>Bandar Togel Toto Macau RSLOT77 merupakan layanan akses yang menghadirkan informasi Toto Macau dengan tampilan praktis, sistem terstruktur, serta navigasi yang mudah digunakan.</p></div> 7382 </div> 7383 <div class="faq-item"> 7384 <button class="faq-question">2. Apa keunggulan sistem akses RSLOT77?<span></span></button> 7385 <div class="faq-answer"><p>RSLOT77 mengutamakan sistem akses yang stabil dan mudah digunakan sehingga pengguna dapat menjelajahi layanan Toto Macau dengan lebih praktis melalui berbagai perangkat.</p></div> 7386 </div> 7387 <div class="faq-item"> 7388 <button class="faq-question">3. Informasi apa saja yang tersedia pada layanan Toto Macau RSLOT77?<span></span></button> 7389 <div class="faq-answer"><p>RSLOT77 menyusun berbagai informasi Toto Macau dalam satu halaman dengan struktur yang jelas sehingga menu dan layanan utama dapat ditemukan dengan lebih mudah.</p></div> 7390 </div> 7391 <div class="faq-item"> 7392 <button class="faq-question">4. Bagaimana RSLOT77 memberikan akses yang mudah bagi pengguna?<span></span></button> 7393 <div class="faq-answer"><p>RSLOT77 menggunakan tampilan ringan, navigasi sederhana, dan sistem responsif agar setiap halaman dapat diakses secara praktis tanpa proses yang rumit.</p></div> 7394 </div> 7395 <div class="faq-item"> 7396 <button class="faq-question">5. Apakah layanan RSLOT77 dapat digunakan melalui perangkat mobile?<span></span></button> 7397 <div class="faq-answer"><p>Ya. RSLOT77 dirancang responsif sehingga layanan Bandar Togel Toto Macau dapat digunakan melalui smartphone, tablet, maupun desktop dengan tampilan yang tetap nyaman.</p></div> 7398 </div> 7399 7400 </div> 7401 7402 </div> 7403 7404 </div> 7405 7406 7407 <div class="overlay overlay-cart"></div> 7408 <div id="CartDrawer" class="drawer drawer--right"> 7409 <div class="drawer__header pl-2 pr-2"> 7410 <div class="drawer__icon-cart display-table-cell"> 7411 <a href="/cart" class=""> 7412 <svg class="icon icon-cart" version="1.1" xmlns="logoweb.png" width="32" height="32" viewBox="0 0 32 32"> <path fill="#fff" d="M13.638 23.203c0 0 3.5-2.113 3.502-4.11 0.002-2.304-2.689-3.537-3.497-1.76-0.916-1.778-3.493-1.714-3.497 0.59-0.003 1.999 3.491 5.28 3.491 5.28z"></path> <path fill="#fff" d="M8.112 9.809v16.662l11.063 2.491v-17.58l-11.063-1.573zM7.74 8.858l11.925 1.696c0.213 0.030 0.372 0.218 0.372 0.44v18.519c0 0.284-0.254 0.495-0.523 0.434l-11.925-2.685c-0.198-0.045-0.339-0.225-0.339-0.434v-17.53c0-0.27 0.231-0.477 0.49-0.44z"></path> <path fill="#fff" d="M23.7 10.046l-3.275 0.146-0.388 0.897v17.656l3.664-2.174v-16.526zM24.346 27.214l-4.526 2.685c-0.287 0.17-0.646-0.043-0.646-0.385v-18.519l0.037-0.181 0.534-1.235c0.067-0.154 0.212-0.256 0.375-0.263l3.991-0.178c0.245-0.011 0.45 0.191 0.45 0.444v17.247c0 0.159-0.082 0.306-0.216 0.385z"></path> <path fill="#000" d="M20.772 27.081l-0.501 2.383c-0.050 0.24-0.28 0.392-0.512 0.34s-0.38-0.289-0.33-0.528l0.569-2.707v-16.588c0-0.245 0.193-0.444 0.431-0.444s0.431 0.199 0.431 0.444v16.215l3.296 0.189c0.238 0.014 0.42 0.223 0.406 0.468s-0.217 0.433-0.454 0.419l-3.335-0.191z"></path> <path fill="#fff" d="M20.772 27.081l-0.501 2.383c-0.050 0.24-0.28 0.392-0.512 0.34s-0.38-0.289-0.33-0.528l0.569-2.707v-16.588c0-0.245 0.193-0.444 0.431-0.444s0.431 0.199 0.431 0.444v16.215l3.296 0.189c0.238 0.014 0.42 0.223 0.406 0.468s-0.217 0.433-0.454 0.419l-3.335-0.191z"></path> <path fill="#fff" d="M11.336 8.354l-0.257-0.333c-0.243-0.315 0.012-0.774 0.398-0.717l12.51 1.838c0.236 0.035 0.399 0.26 0.366 0.503s-0.252 0.412-0.487 0.377l-11.436-1.68 0.056 0.073c0.209 0.27 0.052 0.672-0.281 0.718l-4.467 0.607c-0.236 0.032-0.452-0.139-0.484-0.383s0.135-0.467 0.371-0.499l3.711-0.504z"></path> <path fill="#fff" d="M17.152 11.344c0.026-0.003 0.053-0.005 0.079-0.005 0.357 0 0.645 0.297 0.645 0.665s-0.288 0.665-0.645 0.665c-0.322 0-0.59-0.245-0.637-0.565-0.383-0.45-0.515-1.321-0.521-2.536-0.003-0.556 0.026-1.149 0.076-1.739 0.028-0.339 0.057-0.603 0.074-0.735 0.195-2.391-2.008-3.379-3.568-1.658-0.64 0.707-1.041 1.855-1.266 3.412-0.092 0.634-0.137 1.111-0.194 2.024 0.107 0.119 0.172 0.278 0.172 0.453 0 0.342-0.251 0.624-0.573 0.661-0.031 0.005-0.064 0.007-0.097 0.005-0.015-0.001-0.029-0.003-0.044-0.
7412005-0.324-0.036-0.576-0.318-0.576-0.661 0-0.218 0.102-0.412 0.259-0.533 0.058-0.924 0.105-1.415 0.201-2.075 0.249-1.719 0.703-3.020 1.489-3.888 2.114-2.335 5.321-0.897 5.054 2.359-0.018 0.141-0.045 0.392-0.072 0.717-0.047 0.566-0.075 1.133-0.073 1.658 0.004 0.839 0.098 1.47 0.216 1.78z"></path> <path fill="#fff" d="M14.43 8.138c-0.008 0.245-0.207 0.438-0.445 0.43s-0.424-0.213-0.417-0.459c0.001-0.026 0.001-0.026 0.002-0.051 0.029-0.909 0.047-1.282 0.102-1.792 0.164-1.528 0.58-2.665 1.434-3.481 2.037-1.949 5.235-0.623 5.066 2.208-0.007 0.119-0.018 0.331-0.029 0.608-0.022 0.539-0.033 1.084-0.029 1.59 0.007 0.797 0.053 1.412 0.139 1.744 0.062 0.237-0.075 0.481-0.305 0.544s-0.466-0.077-0.528-0.314c-0.111-0.427-0.161-1.097-0.168-1.966-0.004-0.523 0.007-1.081 0.029-1.634 0.011-0.284 0.023-0.502 0.030-0.626 0.119-1.995-2.13-2.927-3.619-1.501-0.673 0.644-1.021 1.591-1.164 2.927-0.051 0.479-0.069 0.838-0.097 1.723-0.001 0.026-0.001 0.026-0.002 0.052z"></path> </svg> 7413 </a> 7414 </div> 7415 <div class="drawer__title h4">Keranjang Belanja</div> 7416 <div class="drawer__close js-drawer-close"> 7417 <button type="button"> 7418 <svg class="icon icon-close" version="1.1" xmlns="logoweb.png" width="32" height="32" viewBox="0 0 32 32"> 7419 <title>icon-close</title> 7420 <path d="M16.943 16l8.862 8.862c0.26 0.26 0.26 0.682 0 0.943s-0.682 0.26-0.943 0l-8.862-8.862-8.862 8.862c-0.26 0.26-0.682 0.26-0.943 0s-0.26-0.682 0-0.943l8.862-8.862-8.862-8.862c-0.26-0.26-0.26-0.682 0-0.943s0.682-0.26 0.943 0l8.862 8.862 8.862-8.862c0.26-0.26 0.682-0.26 0.943 0s0.26 0.682 0 0.943l-8.862 8.862z"></path> 7421 </svg> 7422 </button> 7423 </div> 7424 </div> 7425 <div id="CartContainer" class="p-2"></div> 7426 </div> 7427 7428
7428<script> 7429 7430 </script>
7430 7431
7431<script src="//outerbloom.com/cdn/shop/t/138/assets/handlebars.min.js?v=79044469952368397291752652415" defer></script>
7431 7432 <!-- /snippets/ajax-cart-template.liquid --> 7433 7434
7434<script id="CartTemplate" type="text/template"> 7435 7436 <form action="/cart" method="post" novalidate class="cart ajaxcart"> 7437 <div class="ajaxcart__inner" {{ cart.item_count }}> 7438 {{#items}} 7439 <div class="ajaxcart__product"> 7440 <div class="ajaxcart__row" data-line="{{line}}"> 7441 <div class="grid"> 7442 <div class="grid__item one-quarter"> 7443 <a href="{{url}}" class="ajaxcart__product-image"><img src="{{img}}" alt=""></a> 7444 </div> 7445 <div class="grid__item three-quarters"> 7446 <p class="d-block mb-3"> 7447 <a class="h4 d-block mb-2" href="{{url}}" class="ajaxcart__product-name">{{name}}</a> 7448 {{#if variation}} 7449 <span class="ajaxcart__product-meta p">{{variation}}</span> 7450 {{/if}} 7451 {{#properties}} 7452 {{#each this}} 7453 {{#if this}} 7454 <span class="ajaxcart__product-meta p hide">{{@key}}: {{this}}</span> 7455 {{/if}} 7456 {{/each}} 7457 {{/properties}} 7458 7459 </p> 7460 <div class="grid--full display-table"> 7461 <div class="grid__item display-table-cell one-half"> 7462 <div class="ajaxcart__qty"> 7463 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}" data-line="{{line}}"> 7464 <svg version="1.1" xmlns="logoweb.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-minus</title><path d="M6.667 16.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h18.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-18.667z"></path></svg> 7465 <span class="visually-hidden">Kurangi jumlah barang</span> 7466 </button> 7467 <input type="text" name="updates[]" class="btn ajaxcart__qty-num" value="{{itemQty}}" min="0" data-id="{{key}}" data-line="{{line}}" aria-label="quantity" pattern="[0-9]*"> 7468 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-line="{{line}}" data-qty="{{itemAdd}}"> 7469 <svg version="1.1" xmlns="logoweb.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg> 7470 <span class="visually-hidden">Tambahkan jumlah barang</span> 7471 </button> 7472 </div> 7473 </div> 7474 <div class="grid__item display-table-cell one-half text-right"> 7475 {{#if discountsApplied}} 7476 <small class="ajaxcart-item__price-strikethrough"><s>{{{originalLinePrice}}}</s></small> 7477 <br><span class="h4">{{{linePrice}}}</span> 7478 {{else}} 7479 <span class="h4">{{{linePrice}}}</span> 7480 {{/if}} 7481 </div> 7482 </div> 7483 {{#if discountsApplied}} 7484 <div class="grid--full display-table"> 7485 <div class="grid__item text-right"> 7486 {{#each discounts}} 7487 <small class="ajaxcart-item__discount">{{ this.title }}</small><br> 7488 {{/each}} 7489 </div> 7490 </div> 7491 {{/if}} 7492 </div> 7493 </div> 7494 </div> 7495 </div> 7496 </div> 7497 </div> 7498 {{/items}} 7499 </div> 7500 <div class="ajaxcart__footer"> 7501 <div class="grid--full cart-subtotal py-2"> 7502 <p>Subtotal</p> 7503 <h3 class="primary">{{{totalPrice}}}</h3> 7504 {{#if totalCartDiscount}} 7505 <p class="ajaxcart__savings text-center"><em>{{{totalCartDiscount}}}</em></p> 7506 {{/if}} 7507 </div> 7508 7509 <a href="/cart" class="btn btn-cta view-more btn-block cart__checkout mt-2">Checkout</a> 7510 7511 <p class="cart-checkout-shipping hide">Free Ongkir dengan belanja di atas Rp.10.000 <a href="/pages/pengiriman">detail</a></p> 7512 </div> 7513 </form> 7514 7515 </script>
7515 7516
7516<script id="AjaxQty" type="text/template"> 7517 7518 <div class="ajaxcart__qty"> 7519 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}"> 7520 <svg version="1.1" xmlns="logoweb.png" width="24" height="24" viewBox="0 0 32 32"> 7521 <title>icon-minus</title> 7522 <path d="M6.667 16.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h18.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-18.667z"></path> 7523 </svg> 7524 <span class="visually-hidden">Kurangi jumlah barang</span> 7525 </button> 7526 <input type="text" class="ajaxcart__qty-num" value="{{itemQty}}" min="0" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*"> 7527 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-qty="{{itemAdd}}"> 7528 <svg version="1.1" xmlns="logoweb.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg> 7529 <span class="visually-hidden">Tambahkan jumlah barang</span> 7530 </button> 7531 </div> 7532 7533 </script>
7533 7534
7534<script id="JsQty" type="text/template"> 7535 7536 <div class="js-qty mx-auto mt-2"> 7537 <button type="button" class="js-qty__adjust js-qty__adjust--minus" data-id="{{key}}" data-qty="{{itemMinus}}"> 7538 <svg version="1.1" xmlns="logoweb.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-minus</title><path d="M6.667 16.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h18.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-18.667z"></path></svg> 7539 <span class="visually-hidden">Kurangi jumlah barang</span> 7540 </button> 7541 <input type="text" class="js-qty__num" value="{{itemQty}}" min="1" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*" name="{{inputName}}" id="{{inputId}}"> 7542 <button type="button" class="js-qty__adjust js-qty__adjust--plus" data-id="{{key}}" data-qty="{{itemAdd}}"> 7543 <svg version="1.1" xmlns="logoweb.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg> 7544 <span class="visually-hidden">Tambahkan jumlah barang</span> 7545 </button> 7546 </div> 7547 7548 </script>
7548 7549 7550 <style> 7551 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty button, 7552 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty button, 7553 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty button {display: none;} 7554 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input, 7555 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input, 7556 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;opacity: 0.5;} 7557 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input, 7558 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input, 7559 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;} 7560 </style> 7561
7561<script src="//outerbloom.com/cdn/shop/t/138/assets/ajax-cart.js?v=51128912329657147331752652452" defer></script>
7561 7562
7562<script> 7563 jQuery(function($) { 7564 ajaxCart.init({ 7565 formSelector: '#AddToCartForm', 7566 cartContainer: '#CartContainer', 7567 addToCartSelector: '#AddToCartXX', 7568 cartCountSelector: '#CartCount, #CartCount2', 7569 cartCostSelector: '#CartCost', 7570 moneyFormat: "Rp {{amount_no_decimals}}" 7571 }); 7572 }); 7573 7574 jQuery(document.body).on('afterCartLoad.ajaxCart', function(evt, cart) { 7575 // Bind to 'afterCartLoad.ajaxCart' to run any javascript after the cart has loaded in the DOM 7576 timber.RightDrawer.open(); 7577 }); 7578 </script>
7578 7579 7580 7581 7582 7583 <style> 7584 /** Search AutoComplete **/ 7585 .resultsearch .ui-menu-item[data-cat="Collection"], 7586 .resultsearch .ui-menu-item[data-cat="Collection"] {display: none;} 7587 .resultsearch .ui-widget.ui-widget-content { 7588 width: 100%; 7589 top: 48px; 7590 border: none; 7591 box-shadow: 0 4px 8px rgba(255, 255, 255, 0.3); 7592 } 7593 .resultsearch .ui-menu-item {text-align: left;} 7594 .resultsearch .ui-menu-item>a, .resultsearch .ui-menu-item>span {display: inline-block;width: 100%;font-size: 16px;}.resultsearch .ui-menu-item img {vertical-align: middle;}.resultsearch .ui-menu-item a[data-cat="Collection"] img {display: none;}.resultsearch .ui-menu .ui-state-focus, .resultsearch .ui-menu .ui-state-active {margin: 0;}.ui-state-active, .ui-widget-content .ui-state-active {background: #f2f2f2;border: none;color: #ffffff;}.resultsearch .ui-menu-item>a,.resultsearch .ui-menu-item>span {display: inline-block;width: 100%;font-size: 13px;}.resultsearch .ui-menu-item a[data-cat="Produk"] img {margin-right: 10px;}.resultsearch .ui-menu-item a[data-cat="Produk"] .price {float: right;padding: 15px 0;}.ui-autocomplete-category.ui-menu-item[data-cat="Produk"]:before {content: "Product Populer";font-size: 13px;padding: 5px;margin: 5px 0;background: #f2f2f2;width: 100%;display: block;color: #ffffff;}.ui-autocomplete-category.ui-menu-item[data-cat="Produk"] span {display: none;} 7595 .ui-state-active { 7596 border: none!important; 7597 background-color: #fafafa!important; 7598 color: #000!important; 7599 } 7600 .ui-menu-item a[data-cat="Collection"] {padding: 5px 12px;} 7601 .ui-menu .ui-menu-item {line-height: normal;} 7602 </style> 7603
7603<script> 7604 $(window).load(function(){ 7605 7606 function format(item) {var cell = '';cell += "<a data-cat=" + item.category + " " + "href=" + item.url + ">" + "<img src=" + item.images + "/>" + "<span class='title'>" + item.label + "</span>" + "<span class='price'>" + item.price + "</span>" + "</a>";return cell;} 7607 7608 $.widget("custom.catcomplete", $.ui.autocomplete, { 7609 _renderMenu: function (ul, items) { 7610 // have search reults split up in categories 7611 var that = this, 7612 currentCategory = ""; 7613 $.each(items, function (index, item) { 7614 if (item.category != currentCategory) { 7615 ul.append("<li class='ui-autocomplete-category' data-cat=" + item.category + ">" + "<span>" + item.category + "</span>" + "</li>"); 7616 currentCategory = item.category; 7617 } 7618 that._renderItemData(ul, item); 7619 }); 7620 } 7621 }); 7622 7623 // higlight searched for term 7624 $.ui.autocomplete.prototype._renderItem = function( ul, item ) { 7625 var term = this.element.val(), 7626 html = item.label.replace( term, "<b>$&</b>" ); 7627 return $( "<li>" ) 7628 .append(format(item)) 7629 .appendTo( ul ); 7630 }; 7631 7632 7633 var data = [ 7634 { label: "< Rp 500.000", category: "Collection", url: "/collections/rp-500-000", images: " ", price: " " },{ label: "> Rp 1.000.000", category: "Collection", url: "/collections/rp-1-000-000", images: " ", price: " " },{ label: "Acrylic Jewelry Box", category: "Collection", url: "/collections/acrylic-jewelry-box", images: " ", price: " " },{ label: "Ajmal", category: "Collection", url: "/collections/ajmal", images: " ", price: " " },{ label: "Alamat Rumah Duka", category: "Collection", url: "/collections/rumah-duka", images: " ", price: " " },{ label: "Anggrek Bulan", category: "Collection", url: "/collections/anggrek-bulan", images: " ", price: " " },{ label: "Anniversary Gift", category: "Collection", url: "/collections/kado-anniversary", images: " ", price: " " },{ label: "Aquarius âï¸ 20Jan - 18Feb", category: "Collection", url: "/collections/kado-untuk-zodiak-aquarius", images: " ", price: " " },{ label: "Aries âï¸ 21March - 19April", category: "Collection", url: "/collections/kado-untuk-zodiak-aries", images: " ", price: " " },{ label: "Armaf", category: "Collection", url: "/collections/armaf", images: " ", price: " " },{ label: "Aromatherapy Diffuser", category: "Collection", url: "/collections/aromatherapy-diffuser", images: " ", price: " " },{ label: "Artisan Soap", category: "Collection", url: "/collections/artisan-soap", images: " ", price: " " },{ label: "Artisan Tea", category: "Collection", url: "/collections/artisan-tea", images: " ", price: " " },{ label: "AsmaraKu", category: "Collection", url: "/collections/asmaraku", images: " ", price: " " },{ label: "Atkinsons", category: "Collection", url: "/collections/atkinsons", images: " ", price: " " },{ label: "Autumn by Outerbloom", category: "Collection", url: "/collections/autumn-by-outerbloom", images: " ", price: " " },{ label: "Autumn by Outerbloom Chinese New Year", category: "Collection", url: "/collections/autumn-by-outerbloom-chinese-new-year", images: " ", price: " " },{ label: "Autumn by Outerbloom Christmas", category: "Collection", url: "/collections/autumn-by-outerbloom-christmas", images: " ", price: " " },{ label: "Autumn by Outerbloom Luar Jadetabek", category: "Collection", url: "/collections/autumn-by-outerbloom-luar-jadetabek", images: " ", price: " " },{ label: "Autumn by Outerbloom Ramadan", category: "Collection", url: "/collections/autumn-by-outerbloom-ramadan", images: " ", price: " " },{ label: "Autumn Pop", category: "Collection", url: "/collections/autumn-pop", images: " ", price: " " },{ label: "Bachelorette", category: "Collection", url: "/collections/bachelorette", images: " ", price: " " },{ label: "Bag Newborn Hampers", category: "Collection", url: "/collections/bag-newborn-hampers", images: " ", price: " " },{ label: "Balon", category: "Collection", url: "/collections/balon", images: " ", price: " " },{ label: "Beauty Package", category: "Collection", url: "/collections/beauty-package", images: " ", price: " " },{ label: "Best Deal", category: "Collection", url: "/collections/best-deal", images: " ", price: " " },{ label: "Best Seller", category: "Collection", url: "/collections/best-seller", images: " ", price: " " },{ label: "Best Valentine's Deals", category: "Collection", url: "/collections/bes-valentines-deals", images: " ", price: " " },{ label: "Best Value Newborn Hampers Collection", category: "Collection", url: "/collections/best-value-newborn-hampers-collection", images: " ", price: " " },{ label: "Black Tea", category: "Collection", url: "/collections/black-tea", images: " ", price: " " },{ label: "Blessing Hampers", category: "Collection", url: "/collections/blessing-hampers", images: " ", price: " " },{ label: "Bloom Box", category: "Collection", url: "/collections/bloom-box", images: " ", price: " " },{ label: "Bloomcard", category: "Collection", url: "/collections/bloomcard", images: " ", price: " " },{ label: "Boutonniere", category: "Collection", url: "/collections/boutonniere", images: " ", price: " " },{ label: "Bracelet", category: "Collection", url: "/collections/gelang", images: " ", price: " " },{ label: "Buket Bunga Bali", category: "Collection", url: "/collections/buket-bunga-bali", images: " ", price: " " },{ label: "Buket Bunga Bandung", category: "Collection", url: "/collections/buket-bunga-bandung", images: " ", price: " " },{ label: "Buket Bunga Batam", category: "Collection", url: "/collections/buket-bunga-batam", images: " ", price: " " },{ label: "Buket Bunga Demak", category: "Collection", url: "/collections/buket-bunga-demak", images: " ", price: " " },{ label: "Buket Bunga Fresh", category: "Collection", url: "/collections/buket-bunga", images: " ", price: " " },{ label: "Buket Bunga Jepara", category: "Collection", url: "/collections/buket-bunga-jepara", images: " ", price: " " },{ label: "Buket Bunga Medan", category: "Collection", url: "/collections/buket-bunga-medan", images: " ", price: " " },{ label: "Buket Bunga Nusantara", category: "Collection", url: "/collections/buket-bunga-nusantara", images: " ", price: " " },{ label: "Buket Bunga Semarang", category: "Collection", url: "/collections/buket-bunga-semarang", images: " ", price: " " },{ label: "Buket Bunga Sidoarjo", category: "Collection", url: "/collections/buket-bunga-sidoarjo", images: " ", price: " " },{ label: "Buket Bunga Surabaya", category: "Collection", url: "/collections/buket-bunga-surabaya", images: " ", price: " " },{ label: "Buket Bunga Tangerang", category: "Collection", url: "/collections/buket-bunga-tangerang", images: " ", price: " " },{ label: "Buket Bunga Uang", category: "Collection", url: "/collections/buket-bunga-uang", images: " ", price: " " },{ label: "Buket Bunga Valentine", category: "Collection", url: "/collections/buket-bunga-valentine", images: " ", price: " " },{ label: "Buket Bunga Yogyakarta", category: "Collection", url: "/collections/buket-bunga-jogja", images: " ", price: " " },{ label: "Bunga Anggrek Bali", category: "Collection", url: "/collections/bunga-anggrek-bali", images: " ", price: " " },{ label: "Bunga Anggrek Bandung", category: "Collection", url: "/collections/bunga-anggrek-bandung", images: " ", price: " " },{ label: "Bunga Anggrek Surabaya", category: "Collection", url: "/collections/bunga-anggrek-surabaya", images: " ", price: " " },{ label: "Bunga Anniversary", category: "Collection", url: "/collections/bunga-anniversary", images: " ", price: " " },{ label: "Bunga Artificial", category: "Collection", url: "/collections/bunga-artificial", images: " ", price: " " },{ label: "Bunga Buket", category: "Collection", url: "/collections/bunga-buket", images: " ", price: " " },{ label: "Bunga Carnations Bali", category: "Collection", url: "/collections/bunga-carnations-bali", images: " ", price: " " },{ label: "Bunga Carnations Bandung", category: "Collection", url: "/collections/bunga-carnations-bandung", images: " ", price: " " },{ label: "Bunga Carnations Surabaya", category: "Collection", url: "/collections/bunga-carnations-surabaya", images: " ", price: " " },{ label: "Bunga Daisy Bali", category: "Collection", url: "/collections/bunga-daisy-bali", images: " ", price: " " },{ label: "Bunga Daisy Bandung", category: "Collection", url: "/collections/bunga-daisy-bandung", images: " ", price: " " },{ label: "Bunga Daisy Surabaya", category: "Collection", url: "/collections/bunga-daisy-surabaya", images: " ", price: " " },{ label: "Bunga Gerbera Bali", category: "Collection", url: "/collections/bunga-gerbera-bali", images: " ", price: " " },{ label: "Bunga Gerbera Bandung", category: "Collection", url: "/collections/bunga-gerbera-bandung", images: " ", price: " " },{ label: "Bunga Gerbera Surabaya", category: "Collection", url: "/collections/bunga-gerbera-surabaya", images: " ", price: " " },{ label: "Bunga Imlek", category: "Collection", url: "/collections/rangkaian-bunga-tahun-baru-imlek", images: " ", price: " " },{ label: "Bunga Lebaran", category: "Collection", url: "/collections/rangkaian-bunga-lebaran", images: " ", price: " " },{ label: "Bunga Lily Bali", category: "Collection", url: "/collections/bunga-lily-bali", images: " ", price: " " },{ label: "Bunga Lily Bandung", category: "Collection", url: "/collections/bunga-lily-bandung", images: " ", price: " " },{ label: "Bunga Lily Surabaya", category: "Collection", url: "/collections/bunga-lily-surabaya", images: " ", price: " " },{ label: "Bunga Matahari Bali", category: "Collection", url: "/collections/bunga-matahari-bali", images: " ", price: " " },{ label: "Bunga Matahari Bandung", category: "Collection", url: "/collections/bunga-matahari-bandung", images: " ", price: " " },{ label: "Bunga Matahari Surabaya", category: "Collection", url: "/collections/bunga-matahari-surabaya", images: " ", price: " " },{ label: "Bunga Mawar Bali", category: "Collection", url: "/collections/bunga-mawar-bali", images: " ", price: " " },{ label: "Bunga Mawar Bandung", category: "Collection", url: "/collections/bunga-mawar-bandung", images: " ", price: " " },{ label: "Bunga Mawar Surabaya", category: "Collection", url: "/collections/bunga-mawar-surabaya", images: " ", price: " " },{ label: "Bunga Meja", category: "Collection", url: "/collections/bunga-meja", images: " ", price: " " },{ label: "Bunga Meja Bali", category: "Collection", url: "/collections/bunga-meja-bali", images: " ", price: " " },{ label: "Bunga Meja Bandung", category: "Collection", url: "/collections/bunga-meja-bandung", images: " ", price: " " },{ label: "Bunga Meja Batam", category: "Collection", url: "/collections/bunga-meja-batam", images: " ", price: " " },{ label: "Bunga Meja Jepara", category: "Collection", url: "/collections/bunga-meja-jepara", images: " ", price: " " },{ label: "Bunga Meja Medan", category: "Collection", url: "/collections/bunga-meja-medan", images: " ", price: " " },{ label: "Bunga Meja Semarang", category: "Collection", url: "/collections/bunga-meja-semarang", images: " ", price: " " },{ label: "Bunga Meja Sidoarjo", category: "Collection", url: "/collections/bunga-meja-sidoarjo", images: " ", price: " " },{ label: "Bunga Meja Surabaya", category: "Collection", url: "/collections/bunga-meja-surabaya", images: " ", price: " " },{ label: "Bunga Meja Tangerang", category: "Collection", url: "/collections/bunga-meja-tangerang", images: " ", price: " " },{ label: "Bunga Meja Yogyakarta", category: "Collection", url: "/collections/bunga-meja-jogja", images: " ", price: " " },{ label: "Bunga Modern Pastel Bali", category: "Collection", url: "/collections/bunga-modern-pastel-bali", images: " ", price: " " },{ label: "Bunga Modern Pastel Bandung", category: "Collection", url: "/collections/bunga-modern-pastel-bandung", images: " ", price: " " },{ label: "Bunga Modern Pastel Medan", category: "Collection", url: "/collections/bunga-modern-pastel-medan", images: " ", price: " " },{ label: "Bunga Modern Pastel Semarang", category: "Collection", url: "/collections/bunga-modern-pastel-semarang", images: " ", price: " " },{ label: "Bunga Modern Pastel Surabaya", category: "Collection", url: "/collections/bunga-modern-pastel-surabaya", images: " ", price: " " },{ label: "Bunga Modern Pastel Yogyakarta", category: "Collection", url: "/collections/bunga-modern-pastel-yogyakarta", images: " ", price: " " },{ label: "Bunga Natal", category: "Collection", url: "/collections/rangkaian-bunga-christmas", images: " ", price: " " },{ label: "Bunga Papan", category: "Collection", url: "/collections/bunga-papan", images: " ", price: " " },{ label: "Bunga Pernikahan", category: "Collection", url: "/collections/bunga-pernikahan", images: " ", price: " " },{ label: "Bunga Plastik", category: "Collection", url: "/collections/bunga-plastik", images: " ", price: " " },{ label: "Bunga Tulip", category: "Collection", url: "/collections/bunga-tulip", images: " ", price: " " },{ label: "Bunga Ulang Tahun", category: "Collection", url: "/collections/bunga-ulang-tahun", images: " ", price: " " },{ label: "Bunga Wisuda", category: "Collection", url: "/collections/karangan-bunga-wisuda", images: " ", price: " " },{ label: "Cake", category: "Collection", url: "/collections/kue", images: " ", price: " " },{ label: "Cake", category: "Collection", url: "/collections/cake", images: " ", price: " " },{ label: "Cake Sameday Delivery", category: "Collection", url: "/collections/cake-sameday-delivery", images: " ", price: " " },{ label: "Cake, Hampers & Gifts", category: "Collection", url: "/collections/cake-hampers", images: " ", price: " " },{ label: "Cancer âï¸ 22June - 22July", category: "Collection", url: "/collections/kado-untuk-zodiak-cancer", images: " ", price: " " },{ label: "Capricorn âï¸ 21Dec - 19Jan", category: "Collection", url: "/collections/kado-untuk-zodiak-capricorn", images: " ", price: " " },{ label: "Care Packages", category: "Collection", url: "/collections/toko-parcel-murah", images: " ", price: " " },{ label: "Care Packages (Keluarga, Sahabat, Karyawan)", category: "Collection", url: "/collections/sehat-bebas-corona", images: " ", price: " " },{ label: "Carnations", category: "Collection", url: "/collections/bunga-anyelir", images: " ", price: " " },{ label: "Celebration", category: "Collection", url: "/collections/celebration", images: " ", price: " " },{ label: "Chléa Paperie", category: "Collection", url: "/collections/chlea-paperie", images: " ", price: " " },{ label: "Chocodot", category: "Collection", url: "/collections/chocodot", images: " ", price: " " },{ label: "Christmas", category: "Collection", url: "/collections/christmas", images: " ", price: " " },{ label: "Classic Cake", category: "Collection", url: "/collections/classic-cake", images: " ", price: " " },{ label: "Classic CNY Hampers", category: "Collection", url: "/collections/classic-cny-hampers", images: " ", price: " " },{ label: "Classic CNY Hampers Luar Jabodetabek", category: "Collection", url: "/collections/classic-cny-hampers-luar-jabodetabek", images: " ", price: " " },{ label: "Classic Hampers", category: "Collection", url: "/collections/classic-hampers", images: " ", price: " " },{ label: "Classic Hampers Luar Jadetabek", category: "Collection", url: "/collections/classic-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Classic Style Flowers", category: "Collection", url: "/collections/classic-style-flowers", images: " ", price: " " },{ label: "Cokelat", category: "Collection", url: "/collections/permen-coklat", images: " ", price: " " },{ label: "Collection List", category: "Collection", url: "/collections/collection-list", images: " ", price: " " },{ label: "Condolences", category: "Collection", url: "/collections/axa-condolences", images: " ", price: " " },{ label: "Congratulations", category: "Collection", url: "/collections/rangkaian-bunga-ucapan-selamat", images: " ", price: " " },{ label: "Corporate Gifts", category: "Collection", url: "/collections/corporate-gifts", images: " ", price: " " },{ label: "Corporate Hampers", category: "Collection", url: "/collections/corporate-hampers", images: " ", price: " " },{ label: "Couple Gift", category: "Collection", url: "/collections/couple-gift", images: " ", price: " " },{ label: "Craft S
7634weetbox Newborn", category: "Collection", url: "/collections/craft-sweetbox-newborn", images: " ", price: " " },{ label: "Crystal Florarium", category: "Collection", url: "/collections/crystal-florarium", images: " ", price: " " },{ label: "Cuddlemate Doll", category: "Collection", url: "/collections/boneka-lucu", images: " ", price: " " },{ label: "Cufflinks", category: "Collection", url: "/collections/cufflinks", images: " ", price: " " },{ label: "Cupcakes", category: "Collection", url: "/collections/cupcakes", images: " ", price: " " },{ label: "Custom Alat Tulis", category: "Collection", url: "/collections/alat-tulis", images: " ", price: " " },{ label: "Custom Cake", category: "Collection", url: "/collections/custom-cake", images: " ", price: " " },{ label: "Custom Card Holder", category: "Collection", url: "/collections/custom-card-holder", images: " ", price: " " },{ label: "Custom Coaster", category: "Collection", url: "/collections/custom-coaster", images: " ", price: " " },{ label: "Custom Cutlery", category: "Collection", url: "/collections/custom-cutlery", images: " ", price: " " },{ label: "Custom E-Money", category: "Collection", url: "/collections/custom-e-money", images: " ", price: " " },{ label: "Custom Earpod", category: "Collection", url: "/collections/custom-earpod", images: " ", price: " " },{ label: "Custom Fan", category: "Collection", url: "/collections/custom-fan", images: " ", price: " " },{ label: "Custom Jewelry", category: "Collection", url: "/collections/custom-jewelry", images: " ", price: " " },{ label: "Custom Keychain", category: "Collection", url: "/collections/custom-keychain", images: " ", price: " " },{ label: "Custom Medallion", category: "Collection", url: "/collections/custom-medallion", images: " ", price: " " },{ label: "Custom Mirror", category: "Collection", url: "/collections/custom-mirror", images: " ", price: " " },{ label: "Custom Mug", category: "Collection", url: "/collections/custom-mug", images: " ", price: " " },{ label: "Custom Necklace", category: "Collection", url: "/collections/custom-necklace", images: " ", price: " " },{ label: "Custom Notebook", category: "Collection", url: "/collections/custom-notebook", images: " ", price: " " },{ label: "Custom Pen & Pencil", category: "Collection", url: "/collections/custom-pen-pencil", images: " ", price: " " },{ label: "Custom Photo Frame", category: "Collection", url: "/collections/photo-frame", images: " ", price: " " },{ label: "Custom Pillow", category: "Collection", url: "/collections/bantal-custom", images: " ", price: " " },{ label: "Custom Powerbank", category: "Collection", url: "/collections/custom-powerbank", images: " ", price: " " },{ label: "Custom Scarf", category: "Collection", url: "/collections/custom-scarf", images: " ", price: " " },{ label: "Custom Speaker", category: "Collection", url: "/collections/custom-speaker", images: " ", price: " " },{ label: "Custom T-Shirt", category: "Collection", url: "/collections/custom-t-shirt", images: " ", price: " " },{ label: "Custom Tote Bag", category: "Collection", url: "/collections/custom-tote-bag", images: " ", price: " " },{ label: "Custom Tumbler Minuman", category: "Collection", url: "/collections/custom-tumbler-minuman", images: " ", price: " " },{ label: "D'paris", category: "Collection", url: "/collections/dparis", images: " ", price: " " },{ label: "Daisy", category: "Collection", url: "/collections/bunga-aster", images: " ", price: " " },{ label: "Dekorasi", category: "Collection", url: "/collections/dekorasi", images: " ", price: " " },{ label: "Dekorasi Duka Cita", category: "Collection", url: "/collections/dekorasi-bunga-duka-cita", images: " ", price: " " },{ label: "Dekorasi Pemakaman", category: "Collection", url: "/collections/dekorasi-pemakaman", images: " ", price: " " },{ label: "Dekorasi Pernikahan", category: "Collection", url: "/collections/dekorasi-bunga-pernikahan", images: " ", price: " " },{ label: "Dekorasi Ulang Tahun", category: "Collection", url: "/collections/dekorasi-bunga-ulang-tahun", images: " ", price: " " },{ label: "Delivery", category: "Collection", url: "/collections/delivery", images: " ", price: " " },{ label: "Deluxe Newborn Hampers Collection", category: "Collection", url: "/collections/deluxe-newborn-hampers-collection", images: " ", price: " " },{ label: "Digital Gift", category: "Collection", url: "/collections/digital-gift", images: " ", price: " " },{ label: "Donasi", category: "Collection", url: "/collections/donasi", images: " ", price: " " },{ label: "E-Card", category: "Collection", url: "/collections/ecard", images: " ", price: " " },{ label: "E-Gift Card", category: "Collection", url: "/collections/e-gift-card", images: " ", price: " " },{ label: "Earrings", category: "Collection", url: "/collections/anting", images: " ", price: " " },{ label: "Edible Gift", category: "Collection", url: "/collections/edible-gift", images: " ", price: " " },{ label: "Enchanted Grande Love Pirouette", category: "Collection", url: "/collections/enchanted-grande-love-pirouette", images: " ", price: " " },{ label: "Enchanted Love Pirouette", category: "Collection", url: "/collections/enchanted-love-pirouette", images: " ", price: " " },{ label: "Engagement", category: "Collection", url: "/collections/rangkaian-bunga-lamaran", images: " ", price: " " },{ label: "Expression", category: "Collection", url: "/collections/expression", images: " ", price: " " }
7634,{ label: "Father's Day Special", category: "Collection", url: "/collections/kado-untuk-ayah", images: " ", price: " " },{ label: "Ferrari", category: "Collection", url: "/collections/ferrari", images: " ", price: " " },{ label: "Ferrero Rocher", category: "Collection", url: "/collections/ferrero-rocher", images: " ", price: " " },{ label: "Festival Belanja Online", category: "Collection", url: "/collections/fbo-2018", images: " ", price: " " },{ label: "Floatbox", category: "Collection", url: "/collections/floatbox", images: " ", price: " " },{ label: "Flower", category: "Collection", url: "/collections/flower", images: " ", price: " " },{ label: "Flower Best Deals", category: "Collection", url: "/collections/flower-best-deals", images: " ", price: " " },{ label: "Flowers", category: "Collection", url: "/collections/toko-bunga", images: " ", price: " " },{ label: "Flowers For Him", category: "Collection", url: "/collections/bunga-untuk-pria", images: " ", price: " " },{ label: "Flowers Style", category: "Collection", url: "/collections/style", images: " ", price: " " },{ label: "Flowers Type", category: "Collection", url: "/collections/type", images: " ", price: " " },{ label: "For Her", category: "Collection", url: "/collections/kado-untuk-wanita", images: " ", price: " " },{ label: "For Him", category: "Collection", url: "/collections/kado-untuk-pria", images: " ", price: " " },{ label: "Forever Flower", category: "Collection", url: "/collections/forever-flower", images: " ", price: " " },{ label: "Forever Flower Holo Series", category: "Collection", url: "/collections/forever-flower-holo-series", images: " ", price: " " },{ label: "Forever Flower x NestBloom", category: "Collection", url: "/collections/forever-flower-x-nestbloom", images: " ", price: " " },{ label: "Fortune Hampers", category: "Collection", url: "/collections/fortune-hampers", images: " ", price: " " },{ label: "Frank & Co", category: "Collection", url: "/collections/franknco", images: " ", price: " " },{ label: "Fresh Flowers", category: "Collection", url: "/collections/fresh-flower", images: " ", price: " " },{ label: "Gantungan Kunci", category: "Collection", url: "/collections/gantungan-kunci", images: " ", price: " " },{ label: "Gelato", category: "Collection", url: "/collections/gelato", images: " ", price: " " },{ label: "Gelato Pie", category: "Collection", url: "/collections/gelato-pie", images: " ", price: " " },{ label: "Gemini âï¸ 21May - 21June", category: "Collection", url: "/collections/kado-untuk-zodiak-gemini", images: " ", price: " " },{ label: "Gerbera", category: "Collection", url: "/collections/gerbera", images: " ", price: " " },{ label: "Get Well Soon", category: "Collection", url: "/collections/rangkaian-bunga-gws", images: " ", price: " " },{ label: "Giant Flower Bali", category: "Collection", url: "/collections/giant-flower-bali", images: " ", price: " " },{ label: "Giant Flower Bandung", category: "Collection", url: "/collections/giant-flower-bandung", images: " ", price: " " },{ label: "Giant Flower Bouquet", category: "Collection", url: "/collections/giant-flower", images: " ", price: " " },{ label: "Gift", category: "Collection", url: "/collections/souvenir-kado-hadiah", images: " ", price: " " },{ label: "Gift by Recipient", category: "Collection", url: "/collections/gift-by-recipient", images: " ", price: " " },{ label: "Gift for Your Girlfriend", category: "Collection", url: "/collections/kado-untuk-pacar-wanita", images: " ", price: " " },{ label: "Gifts", category: "Collection", url: "/collections/gifts", images: " ", price: " " },{ label: "Glassbox Hampers", category: "Collection", url: "/collections/glassbox-hampers", images: " ", price: " " },{ label: "Glassware Hampers", category: "Collection", url: "/collections/parcel-pecah-belah", images: " ", price: " " },{ label: "Gold Jewelry", category: "Collection", url: "/collections/perhiasan-emas", images: " ", price: " " },{ label: "Grand Opening", category: "Collection", url: "/collections/grand-opening", images: " ", price: " " },{ label: "Granola", category: "Collection", url: "/collections/granola", images: " ", price: " " },{ label: "Green Tea", category: "Collection", url: "/collections/green-tea", images: " ", price: " " },{ label: "Greeting Card All", category: "Collection", url: "/collections/greeting-card-all", images: " ", price: " " },{ label: "Greeting Card Anniversary", category: "Collection", url: "/collections/greeting-card-anniversary", images: " ", price: " " },{ label: "Greeting Card Birthday", category: "Collection", url: "/collections/greeting-card-birthday", images: " ", price: " " },{ label: "Greeting Card Eid", category: "Collection", url: "/collections/greeting-card-eid", images: " ", price: " " },{ label: "Greeting Card Graduation", category: "Collection", url: "/collections/greeting-card-graduation", images: " ", price: " " },{ label: "Greeting Card Mother's Day", category: "Collection", url: "/collections/greeting-card-mothers-day", images: " ", price: " " },{ label: "Greeting Card Newborn", category: "Collection", url: "/collections/greeting-card-newborn", images: " ", price: " " },{ label: "Greeting Card Others", category: "Collection", url: "/collections/greeting-card-others", images: " ", price: " " },{ label: "Greeting Card Valentine", category: "Collection", url: "/collections/greeting-card-valentine", images: " ", price: " " },{ label: "Greeting Card Wedding", category: "Collection", url: "/collections/greeting-card-wedding", images: " ", price: " " },{ label: "Grooming", category: "Collection", url: "/collections/grooming", images: " ", price: " " },{ label: "Hadiah Tahun Baru Imlek", category: "Collection", url: "/collections/kado-imlek", images: " ", price: " " },{ label: "Hadiah untuk Bayi", category: "Collection", url: "/collections/kado-untuk-bayi", images: " ", price: " " },{ label: "Hadiah untuk Pacar", category: "Collection", url: "/collections/kado-untuk-pacar", images: " ", price: " " },{ label: "Hadiah untuk Pernikahan", category: "Collection", url: "/collections/kado-untuk-pernikahan", images: " ", price: " " },{ label: "Hadiah untuk Sahabat", category: "Collection", url: "/collections/kado-untuk-sahabat", images: " ", price: " " },{ label: "Hampers", category: "Collection", url: "/collections/hampers", images: " ", price: " " },{ label: "Hampers Baby Boy", category: "Collection", url: "/collections/hampers-baby-boy", images: " ", price: " " },{ label: "Hampers Baby Girl", category: "Collection", url: "/collections/hampers-baby-girl", images: " ", price: " " },{ label: "Hampers Baby Unisex", category: "Collection", url: "/collections/hampers-baby-unisex", images: " ", price: " " },{ label: "Hampers Delivery Indonesia", category: "Collection", url: "/collections/parcel-indonesia", images: " ", price: " " },{ label: "Hampers Lebaran 2025", category: "Collection", url: "/collections/parcel-lebaran", images: " ", price: " " },{ label: "Hampers Lebaran Bali", category: "Collection", url: "/collections/hampers-lebaran-bali", images: " ", price: " " },{ label: "Hampers Lebaran Bandung", category: "Collection", url: "/collections/hampers-lebaran-bandung", images: " ", price: " " },{ label: "Hampers Lebaran Jakarta", category: "Collection", url: "/collections/hampers-lebaran-jakarta", images: " ", price: " " },{ label: "Hampers Lebaran Semarang", category: "Collection", url: "/collections/hampers-lebaran-semarang", images: " ", price: " " },{ label: "Hampers Lebaran Surabaya", category: "Collection", url: "/collections/hampers-lebaran-surabaya", images: " ", price: " " },{ label: "Hampers Lebaran Yogyakarta", category: "Collection", url: "/collections/hampers-lebaran-yogyakarta", images: " ", price: " " },{ label: "Hand Sanitizer", category: "Collection", url: "/collections/hand-sanitizer", images: " ", price: " " },{ label: "Happy Birthday", category: "Collection", url: "/collections/kado-ulang-tahun", images: " ", price: " " },{ label: "Harbolnas", category: "Collection", url: "/collections/harbolnas-2018", images: " ", price: " " },{ label: "Harbolnas Produk Lokal", category: "Collection", url: "/collections/produk-lokal", images: " ", price: " " },{ label: "Hari Belanja Online Nasional", category: "Collection", url: "/collections/harbolnas", images: " ", price: " " },{ label: "Hari Guru", category: "Collection", url: "/collections/hari-guru", images: " ", price: " " },{ label: "Healthy Creations", category: "Collection", url: "/collections/healthy-creations", images: " ", price: " " },{ label: "Healthy Hampers", category: "Collection", url: "/collections/healthy-hampers", images: " ", price: " " },{ label: "Heritage Box", category: "Collection", url: "/collections/heritage-boxes", images: " ", price: " " },{ label: "Heritage Chinese New Year Hampers", category: "Collection", url: "/collections/heritage-chinese-new-year-hampers", images: " ", price: " " },{ label: "Heritage Christmas Hampers", category: "Collection", url: "/collections/heritage-christmas-hampers", images: " ", price: " " },{ label: "Heritage Hampers", category: "Collection", url: "/collections/heritage-hampers", images: " ", price: " " },{ label: "Heritage Ramadan Hampers", category: "Collection", url: "/collections/heritage-ramadan-hampers", images: " ", price: " " },{ label: "Hexa Hampers", category: "Collection", url: "/collections/hexa-hampers", images: " ", price: " " },{ label: "Hexa Hampers Luar Jadetabek", category: "Collection", url: "/collections/hexa-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Hexa Newborn", category: "Collection", url: "/collections/hexa-newborn", images: " ", price: " " },{ label: "Holo Bag", category: "Collection", url: "/collections/holo-bag", images: " ", price: " " },{ label: "Holo Series", category: "Collection", url: "/collections/holo-series", images: " ", price: " " },{ label: "Home Decoration & Photo Frame", category: "Collection", url: "/collections/home-decoration", images: " ", price: " " }
7634,{ label: "Hospitalization", category: "Collection", url: "/collections/axa-hospitalization", images: " ", price: " " },{ label: "House Hampers", category: "Collection", url: "/collections/house-hampers", images: " ", price: " " },{ label: "I'm Sorry", category: "Collection", url: "/collections/rangkaian-bunga-sorry", images: " ", price: " " },{ label: "Ice Cream Cake", category: "Collection", url: "/collections/ice-cream-cake", images: " ", price: " " },{ label: "Idul Fitri", category: "Collection", url: "/collections/rangkaian-bunga-idul-fitri", images: " ", price: " " },{ label: "Jam Tangan", category: "Collection", url: "/collections/jam-tangan", images: " ", price: " " },{ label: "Jam Tangan Couple", category: "Collection", url: "/collections/jam-tangan-couple", images: " ", price: " " },{ label: "Jam Tangan Pria", category: "Collection", url: "/collections/jam-tangan-pria", images: " ", price: " " },{ label: "Jam Tangan Wanita", category: "Collection", url: "/collections/jam-tangan-wanita", images: " ", price: " " },{ label: "Jasa Packing Parcel", category: "Collection", url: "/collections/jasa-packing-parcel", images: " ", price: " " },{ label: "Jewelry", category: "Collection", url: "/collections/jewelry", images: " ", price: " " },{ label: "Jolly Hampers", category: "Collection", url: "/collections/jolly-hampers", images: " ", price: " " },{ label: "Jual Custom Cake & Hampers Termurah & Terlengkap | Outerbloom Florist & Gift", category: "Collection", url: "/collections/custom-cake-hampers", images: " ", price: " " },{ label: "Just Because", category: "Collection", url: "/collections/just-because", images: " ", price: " " },{ label: "Kado Makanan", category: "Collection", url: "/collections/kado-makanan", images: " ", price: " " },{ label: "Kado Minuman", category: "Collection", url: "/collections/kado-minuman", images: " ", price: " " },{ label: "Kado Natal", category: "Collection", url: "/collections/kado-natal", images: " ", price: " " },{ label: "Kado Unik", category: "Collection", url: "/collections/kado-unik", images: " ", price: " " },{ label: "Kado Valentine Nusantara", category: "Collection", url: "/collections/kado-valentine-nusantara", images: " ", price: " " },{ label: "Kado Valentine untuk Pria", category: "Collection", url: "/collections/kado-valentine-untuk-pria", images: " ", price: " " },{ label: "Kado Wisuda", category: "Collection", url: "/collections/kado-wisuda", images: " ", price: " " },{ label: "Kado Zodiak", category: "Collection", url: "/collections/kado-untuk-zodiak", images: " ", price: " " },{ label: "Karangan Bunga Aceh", category: "Collection", url: "/collections/karangan-bunga-aceh", images: " ", price: " " },{ label: "Karangan Bunga Ambon", category: "Collection", url: "/collections/karangan-bunga-ambon", images: " ", price: " " },{ label: "Karangan Bunga Atambua", category: "Collection", url: "/collections/karangan-bunga-atambua", images: " ", price: " " },{ label: "Karangan Bunga Bali", category: "Collection", url: "/collections/karangan-bunga-bali", images: " ", price: " " },{ label: "Karangan Bunga Balikpapan", category: "Collection", url: "/collections/karangan-bunga-balikpapan", images: " ", price: " " },{ label: "Karangan Bunga Bandung", category: "Collection", url: "/collections/karangan-bunga-bandung", images: " ", price: " " },{ label: "Karangan Bunga Bandung Barat", category: "Collection", url: "/collections/karangan-bunga-bandung-barat", images: " ", price: " " },{ label: "Karangan Bunga Bangka", category: "Collection", url: "/collections/karangan-bunga-bangka", images: " ", price: " " },{ label: "Karangan Bunga Banjarmasin", category: "Collection", url: "/collections/karangan-bunga-banjarmasin", images: " ", price: " " },{ label: "Karangan Bunga Banten", category: "Collection", url: "/collections/karangan-bunga-banten", images: " ", price: " " },{ label: "Karangan Bunga Banyumas", category: "Collection", url: "/collections/karangan-bunga-banyumas", images: " ", price: " " },{ label: "Karangan Bunga Banyuwangi", category: "Collection", url: "/collections/karangan-bunga-banyuwangi", images: " ", price: " " },{ label: "Karangan Bunga Batam", category: "Collection", url: "/collections/karangan-bunga-batam", images: " ", price: " " },{ label: "Karangan Bunga Baubau", category: "Collection", url: "/collections/karangan-bunga-baubau", images: " ", price: " " },{ label: "Karangan Bunga Bengkalis", category: "Collection", url: "/collections/karangan-bunga-bengkalis", images: " ", price: " " },{ label: "Karangan Bunga Bengkayang", category: "Collection", url: "/collections/karangan-bunga-bengkayang", images: " ", price: " " },{ label: "Karangan Bunga Bengkulu", category: "Collection", url: "/collections/karangan-bunga-bengkulu", images: " ", price: " " },{ label: "Karangan Bunga Blora", category: "Collection", url: "/collections/karangan-bunga-blora", images: " ", price: " " },{ label: "Karangan Bunga Bogor", category: "Collection", url: "/collections/karangan-bunga-bogor", images: " ", price: " " },{ label: "Karangan Bunga Bojonegoro", category: "Collection", url: "/collections/karangan-bunga-bojonegoro", images: " ", price: " " },{ label: "Karangan Bunga Boyolali", category: "Collection", url: "/collections/karangan-bunga-boyolali", images: " ", price: " " },{ label: "Karangan Bunga Brebes", category: "Collection", url: "/collections/karangan-bunga-brebes", images: " ", price: " " },{ label: "Karangan Bunga Bukittinggi", category: "Collection", url: "/collections/karangan-bunga-bukittinggi", images: " ", price: " " },{ label: "Karangan Bunga Ciamis", category: "Collection", url: "/collections/karangan-bunga-ciamis", images: " ", price: " " }
7634,{ label: "Karangan Bunga Cianjur", category: "Collection", url: "/collections/karangan-bunga-cianjur", images: " ", price: " " },{ label: "Karangan Bunga Cikarang", category: "Collection", url: "/collections/karangan-bunga-cikarang", images: " ", price: " " },{ label: "Karangan Bunga Cikupa", category: "Collection", url: "/collections/karangan-bunga-cikupa", images: " ", price: " " },{ label: "Karangan Bunga Cilacap", category: "Collection", url: "/collections/karangan-bunga-cilacap", images: " ", price: " " },{ label: "Karangan Bunga Cileunyi", category: "Collection", url: "/collections/karangan-bunga-cileunyi", images: " ", price: " " },{ label: "Karangan Bunga Cimahi", category: "Collection", url: "/collections/karangan-bunga-cimahi", images: " ", price: " " },{ label: "Karangan Bunga Cirebon", category: "Collection", url: "/collections/karangan-bunga-cirebon", images: " ", price: " " },{ label: "Karangan Bunga Ciwidey", category: "Collection", url: "/collections/karangan-bunga-ciwidey", images: " ", price: " " },{ label: "Karangan Bunga Danau Toba", category: "Collection", url: "/collections/karangan-bunga-danau-toba", images: " ", price: " " },{ label: "Karangan Bunga Demak", category: "Collection", url: "/collections/karangan-bunga-demak", images: " ", price: " " },{ label: "Karangan Bunga Denpasar", category: "Collection", url: "/collections/karangan-bunga-denpasar", images: " ", price: " " },{ label: "Karangan Bunga Depok", category: "Collection", url: "/collections/karangan-bunga-depok", images: " ", price: " " },{ label: "Karangan Bunga Duka Cita", category: "Collection", url: "/collections/karangan-bunga-duka-cita", images: " ", price: " " },{ label: "Karangan Bunga Garut", category: "Collection", url: "/collections/karangan-bunga-garut", images: " ", price: " " },{ label: "Karangan Bunga Gianyar", category: "Collection", url: "/collections/karangan-bunga-gianyar", images: " ", price: " " },{ label: "Karangan Bunga Gorontalo", category: "Collection", url: "/collections/karangan-bunga-gorontalo", images: " ", price: " " },{ label: "Karangan Bunga Gowa", category: "Collection", url: "/collections/karangan-bunga-gowa", images: " ", price: " " },{ label: "Karangan Bunga Gresik", category: "Collection", url: "/collections/karangan-bunga-gresik", images: " ", price: " " },{ label: "Karangan Bunga Grobogan", category: "Collection", url: "/collections/karangan-bunga-grobogan", images: " ", price: " " },{ label: "Karangan Bunga Gunung Kidul", category: "Collection", url: "/collections/karangan-bunga-gunungkidul", images: " ", price: " " },{ label: "Karangan Bunga Indramayu", category: "Collection", url: "/collections/karangan-bunga-indramayu", images: " ", price: " " },{ label: "Karangan Bunga Jakarta", category: "Collection", url: "/collections/karangan-bunga-jakarta", images: " ", price: " " },{ label: "Karangan Bunga Jambi", category: "Collection", url: "/collections/karangan-bunga-jambi", images: " ", price: " " },{ label: "Karangan Bunga Jayapura", category: "Collection", url: "/collections/karangan-bunga-jayapura", images: " ", price: " " },{ label: "Karangan Bunga Jember", category: "Collection", url: "/collections/karangan-bunga-jember", images: " ", price: " " },{ label: "Karangan Bunga Jembrana", category: "Collection", url: "/collections/karangan-bunga-jembrana", images: " ", price: " " },{ label: "Karangan Bunga Jepara", category: "Collection", url: "/collections/karangan-bunga-jepara", images: " ", price: " " },{ label: "Karangan Bunga Jombang", category: "Collection", url: "/collections/karangan-bunga-jombang", images: " ", price: " " },{ label: "Karangan Bunga Kampung Baru", category: "Collection", url: "/collections/karangan-bunga-kampung-baru", images: " ", price: " " },{ label: "Karangan Bunga Kapuas", category: "Collection", url: "/collections/karangan-bunga-kapuas", images: " ", price: " " },{ label: "Karangan Bunga Karanganyar", category: "Collection", url: "/collections/karangan-bunga-karanganyar", images: " ", price: " " },{ label: "Karangan Bunga Karangasem", category: "Collection", url: "/collections/karangan-bunga-karangasem", images: " ", price: " " },{ label: "Karangan Bunga Karawang", category: "Collection", url: "/collections/karangan-bunga-karawang", images: " ", price: " " },{ label: "Karangan Bunga Kartosuro", category: "Collection", url: "/collections/karangan-bunga-kartosuro", images: " ", price: " " },{ label: "Karangan Bunga Kebumen", category: "Collection", url: "/collections/karangan-bunga-kebumen", images: " ", price: " " },{ label: "Karangan Bunga Kediri", category: "Collection", url: "/collections/karangan-bunga-kediri", images: " ", price: " " },{ label: "Karangan Bunga Kendal", category: "Collection", url: "/collections/karangan-bunga-ken
7634dal", images: " ", price: " " },{ label: "Karangan Bunga Kendari", category: "Collection", url: "/collections/karangan-bunga-kendari", images: " ", price: " " },{ label: "Karangan Bunga Ketapang", category: "Collection", url: "/collections/karangan-bunga-ketapang", images: " ", price: " " },{ label: "Karangan Bunga Klaten", category: "Collection", url: "/collections/karangan-bunga-klaten", images: " ", price: " " },{ label: "Karangan Bunga Kota Batu", category: "Collection", url: "/collections/karangan-bunga-kota-batu", images: " ", price: " " },{ label: "Karangan Bunga Kudus", category: "Collection", url: "/collections/karangan-bunga-kudus", images: " ", price: " " },{ label: "Karangan Bunga Kupang", category: "Collection", url: "/collections/karangan-bunga-kupang", images: " ", price: " " },{ label: "Karangan Bunga Lamongan", category: "Collection", url: "/collections/karangan-bunga-lamongan", images: " ", price: " " },{ label: "Karangan Bunga Lampung", category: "Collection", url: "/collections/karangan-bunga-lampung", images: " ", price: " " },{ label: "Karangan Bunga Langkat", category: "Collection", url: "/collections/karangan-bunga-langkat", images: " ", price: " " },{ label: "Karangan Bunga Lembang", category: "Collection", url: "/collections/karangan-bunga-lembang", images: " ", price: " " },{ label: "Karangan Bunga Lombok", category: "Collection", url: "/collections/karangan-bunga-lombok", images: " ", price: " " },{ label: "Karangan Bunga Lubuk Pakam", category: "Collection", url: "/collections/karangan-bunga-lubuk-pakam", images: " ", price: " " },{ label: "Karangan Bunga Lumajang", category: "Collection", url: "/collections/karangan-bunga-lumajang", images: " ", price: " " },{ label: "Karangan Bunga Madiun", category: "Collection", url: "/collections/karangan-bunga-madiun", images: " ", price: " " },{ label: "Karangan Bunga Magelang", category: "Collection", url: "/collections/karangan-bunga-magelang", images: " ", price: " " },{ label: "Karangan Bunga Majalengka", category: "Collection", url: "/collections/karangan-bunga-majalengka", images: " ", price: " " },{ label: "Karangan Bunga Makassar", category: "Collection", url: "/collections/karangan-bunga-makassar", images: " ", price: " " },{ label: "Karangan Bunga Malang", category: "Collection", url: "/collections/karangan-bunga-malang", images: " ", price: " " },{ label: "Karangan Bunga Mamuju", category: "Collection", url: "/collections/karangan-bunga-mamuju", images: " ", price: " " },{ label: "Karangan Bunga Manado", category: "Collection", url: "/collections/karangan-bunga-manado", images: " ", price: " " },{ label: "Karangan Bunga Manokwari", category: "Collection", url: "/collections/karangan-bunga-manokwari", images: " ", price: " " },{ label: "Karangan Bunga Maros", category: "Collection", url: "/collections/karangan-bunga-maros", images: " ", price: " " },{ label: "Karangan Bunga Mataram", category: "Collection", url: "/collections/karangan-bunga-mataram", images: " ", price: " " },{ label: "Karangan Bunga Mojokerto", category: "Collection", url: "/collections/karangan-bunga-mojokerto", images: " ", price: " " },{ label: "Karangan Bunga Nganjuk", category: "Collection", url: "/collections/karangan-bunga-nganjuk", images: " ", price: " " },{ label: "Karangan Bunga Nias", category: "Collection", url: "/collections/karangan-bunga-nias", images: " ", price: " " },{ label: "Karangan Bunga Padang", category: "Collection", url: "/collections/karangan-bunga-padang", images: " ", price: " " },{ label: "Karangan Bunga Palangkaraya", category: "Collection", url: "/collections/karangan-bunga-palangkaraya", images: " ", price: " " },{ label: "Karangan Bunga Palu", category: "Collection", url: "/collections/karangan-bunga-palu", images: " ", price: " " },{ label: "Karangan Bunga Pangkal Pinang", category: "Collection", url: "/collections/karangan-bunga-pangkal-pinang", images: " ", price: " " },{ label: "Karangan Bunga Papan", category: "Collection", url: "/collections/karangan-bunga", images: " ", price: " " },{ label: "Karangan Bunga Papan Bandar Lampung", category: "Collection", url: "/collections/karangan-bunga-bandar-lampung", images: " ", price: " " },{ label: "Karangan Bunga Papan Bekasi", category: "Collection", url: "/collections/karangan-bunga-bekasi", images: " ", price: " " },{ label: "Karangan Bunga Papan Binjai", category: "Collection", url: "/collections/karangan-bunga-binjai", images: " ", price: " " },{ label: "Karangan Bunga Papan Blitar", category: "Collection", url: "/collections/karangan-bunga-blitar", images: " ", price: " " },{ label: "Karangan Bunga Papan Buleleng", category: "Collection", url: "/collections/karangan-bunga-buleleng", images: " ", price: " " },{ label: "Karangan Bunga Papan Cibubur", category: "Collection", url: "/collections/karangan-bunga-cibubur", images: " ", price: " " },{ label: "Karangan Bunga Papan Deli Serdang", category: "Collection", url: "/collections/karangan-bunga-deli-serdang", images: " ", price: " " },{ label: "Karangan Bunga Papan Jakarta Timur", category: "Collection", url: "/collections/karangan-bunga-jakarta-timur", images: " ", price: " " },{ label: "Karangan Bunga Papan Karo", category: "Collection", url: "/collections/karangan-bunga-karo", images: " ", price: " " },{ label: "Karangan Bunga Papan Medan", category: "Collection", url: "/collections/karangan-bunga-medan", images: " ", price: " " },{ label: "Karangan Bunga Papan Ngawi", category: "Collection", url: "/collections/karangan-bunga-ngawi", images: " ", price: " " },{ label: "Karangan Bunga Papan Palembang", category: "Collection", url: "/collections/karangan-bunga-palembang", images: " ", price: " " },{ label: "Karangan Bunga Papan Pemalang", category: "Collection", url: "/collections/karangan-bunga-pemalang", images: " ", price: " " },{ label: "Karangan Bunga Papan Rembang", category: "Collection", url: "/collections/karangan-bunga-rembang", images: " ", price: " " },{ label: "Karangan Bunga Papan Sragen", category: "Collection", url: "/collections/karangan-bunga-sragen", images: " ", price: " " },{ label: "Karangan Bunga Papan Tegal", category: "Collection", url: "/collections/karangan-bunga-tegal", images: " ", price: " " },{ label: "Karangan Bunga Papan Temanggung", category: "Collection", url: "/collections/karangan-bunga-temanggung", images: " ", price: " " },{ label: "Karangan Bunga Parepare", category: "Collection", url: "/collections/karangan-bunga-parepare", images: " ", price: " " },{ label: "Karangan Bunga Pasuruan", category: "Collection", url: "/collections/karangan-bunga-pasuruan", images: " ", price: " " },{ label: "Karangan Bunga Pati", category: "Collection", url: "/collections/karangan-bunga-pati", images: " ", price: " " },{ label: "Karangan Bunga Pekalongan", category: "Collection", url: "/collections/karangan-bunga-pekalongan", images: " ", price: " " },{ label: "Karangan Bunga Pekanbaru", category: "Collection", url: "/collections/karangan-bunga-pekanbaru", images: " ", price: " " },{ label: "Karangan Bunga Pematangsiantar", category: "Collection", url: "/collections/karangan-bunga-pematangsiantar", images: " ", price: " " },{ label: "Karangan Bunga Ponorogo", category: "Collection", url: "/collections/karangan-bunga-ponorogo", images: " ", price: " " },{ label: "Karangan Bunga Pontianak", category: "Collection", url: "/collections/karangan-bunga-pontianak", images: " ", price: " " },{ label: "Karangan Bunga Probolinggo", category: "Collection", url: "/collections/karangan-bunga-probolinggo", images: " ", price: " " },{ label: "Karangan Bunga Purbalingga", category: "Collection", url: "/collections/karangan-bunga-purbalingga", images: " ", price: " " },{ label: "Karangan Bunga Purwokerto", category: "Collection", url: "/collections/karangan-bunga-purwokerto", images: " ", price: " " },{ label: "Karangan Bunga Purworejo", category: "Collection", url: "/collections/karangan-bunga-purworejo", images: " ", price: " " },{ label: "Karangan Bunga Riau", category: "Collection", url: "/collections/karangan-bunga-riau", images: " ", price: " " },{ label: "Karangan Bunga Salatiga", category: "Collection", url: "/collections/karangan-bunga-salatiga", images: " ", price: " " },{ label: "Karangan Bunga Samarinda", category: "Collection", url: "/collections/karangan-bunga-samarinda", images: " ", price: " " },{ label: "Karangan Bunga Semarang", category: "Collection", url: "/collections/karangan-bunga-semarang", images: " ", price: " " },{ label: "Karangan Bunga Serang", category: "Collection", url: "/collections/karangan-bunga-serang", images: " ", price: " " },{ label: "Karangan Bunga Sibolga", category: "Collection", url: "/collections/karangan-bunga-sibolga", images: " ", price: " " },{ label: "Karangan Bunga Sidoarjo", category: "Collection", url: "/collections/karangan-bunga-sidoarjo", images: " ", price: " " },{ label: "Karangan Bunga Singkawang", category: "Collection", url: "/collections/karangan-bunga-singkawang", images: " ", price: " " },{ label: "Karangan Bunga Solo", category: "Collection", url: "/collections/karangan-bunga-solo", images: " ", price: " " },{ label: "Karangan Bunga Sorong", category: "Collection", url: "/collections/karangan-bunga-sorong", images: " ", price: " " },{ label: "Karangan Bunga Subang", category: "Collection", url: "/collections/karangan-bunga-subang", images: " ", price: " " },{ label: "Karangan Bunga Sukabumi", category: "Collection", url: "/collections/karangan-bunga-sukabumi", images: " ", price: " " },{ label: "Karangan Bunga Sumbawa", category: "Collection", url: "/collections/karangan-bunga-sumbawa", images: " ", price: " " },{ label: "Karangan Bunga Surabaya", category: "Collection", url: "/collections/karangan-bunga-surabaya", images: " ", price: " " },{ label: "Karangan Bunga Surakarta", category: "Collection", url: "/collections/karangan-bunga-surakarta", images: " ", price: " " },{ label: "Karangan Bunga Tangerang", category: "Collection", url: "/collections/karangan-bunga-tangerang", images: " ", price: " " },{ label: "Karangan Bunga Tasikmalaya", category: "Collection", url: "/collections/karangan-bunga-tasikmalaya", images: " ", price: " " },{ label: "Karangan Bunga Ternate", category: "Collection", url: "/collections/karangan-bunga-ternate", images: " ", price: " " },{ label: "Karangan Bunga Tolitoli", category: "Collection", url: "/collections/karangan-bunga-tolitoli", images: " ", price: " " },{ label: "Karangan Bunga Toraja", category: "Collection", url: "/collections/karangan-bunga-toraja", images: " ", price: " " },{ label: "Karangan Bunga Tuban", category: "Collection", url: "/collections/karangan-bunga-tuban", images: " ", price: " " },{ label: "Karangan Bunga Tulungagung", category: "Collection", url: "/collections/karangan-bunga-tulungagung", images: " ", price: " " },{ label: "Karangan Bunga Wakatobi", category: "Collection", url: "/collections/karangan-bunga-wakatobi", images: " ", price: " " },{ label: "Karangan Bunga Wiyung", category: "Collection", url: "/collections/karangan-bunga-wiyung", images: " ", price: " " },{ label: "Karangan Bunga Wonogiri", category: "Collection", url: "/collections/karangan-bunga-wonogiri", images: " ", price: " " },{ label: "Karangan Bunga Wonokromo", category: "Collection", url: "/collections/karangan-bunga-wonokromo", images: " ", price: " " },{ label: "Karangan Bunga Wonosobo", category: "Collection", url: "/collections/karangan-bunga-wonosobo", images: " ", price: " " },{ label: "Karangan Bunga Yogyakarta", category: "Collection", url: "/collections/karangan-bunga-yogyakarta", images: " ", price: " " },{ label: "Kartu Ucapan", category: "Collection", url: "/collections/kartu-ucapan", images: " ", price: " " },{ label: "Kue Anniversary", category: "Collection", url: "/collections/kue-anniversary", images: " ", price: " " },{ label: "Kue Bachelorette", category: "Collection", url: "/collections/kue-bachelorette", images: " ", price: " " },{ label: "Kue Bandung", category: "Collection", url: "/collections/kue-bandung", images: " ", price: " " },{ label: "Kue Bulan", category: "Collection", url: "/collections/kue-bulan", images: " ", price: " " },{ label: "Kue Imlek", category: "Collection", url: "/collections/kue-imlek", images: " ", price: " " },{ label: "Kue Kering", category: "Collection", url: "/collections/kue-kering", images: " ", price: " " },{ label: "Kue Natal", category: "Collection", url: "/collections/kue-natal", images: " ", price: " " },{ label: "Kue Pernikahan", category: "Collection", url: "/collections/kue-pernikahan", images: " ", price: " " },{ label: "Kue Tart", category: "Collection", url: "/collections/kue-tart", images: " ", price: " " },{ label: "Kue Tart Oma Elly", category: "Collection", url: "/collections/kue-tart-oma-elly", images: " ", price: " " },{ label: "Kue Ulang Tahun", category: "Collection", url: "/collections/kue-ulang-tahun", images: " ", price: " " },{ label: "Lalique", category: "Collection", url: "/collections/lalique", images: " ", price: " " },{ label: "Le Sucre Du Patisserie", category: "Collection", url: "/collections/le-sucre-du-patisserie", images: " ", price: " " },{ label: "Leo âï¸ 23July - 22Augst", category: "Collection", url: "/collections/kado-untuk-zodiak-leo", images: " ", price: " " },{ label: "Letter Box", category: "Collection", url: "/collections/letter-box", images: " ", price: " " },{ label: "Libra âï¸ 23Sept - 23Oct", category: "Collection", url: "/collections/kado-untuk-zodiak-libra", images: " ", price: " " },{ label: "Lilin Aromaterapi", category: "Collection", url: "/collections/lilin-aromaterapi", images: " ", price: " " },{ label: "Lily", category: "Collection", url: "/collections/bunga-lily", images: " ", price: " " },{ label: "Lindt", category: "Collection", url: "/collections/lindt", images: " ", price: " " },{ label: "Locations", category: "Collection", url: "/collections/locations", images: " ", price: " " },{ label: "Love & Romance", category: "Collection", url: "/collections/rangkaian-bunga-i-love-you", images: " ", price: " " },{ label: "Love Bag Collection", category: "Collection", url: "/collections/love-bag-collection", images: " ", price: " " },{ label: "Love Bundle", category: "Collection", url: "/collections/paket-promo-spesial-valentine", images: " ", price: " " },{ label: "Love Bundle Nusantara", category: "Collection", url: "/collections/love-bundle-nusantara", images: " ", price: " " },{ label: "Luxury Chinese New Year Hampers", category: "Collection", url: "/collections/luxury-chinese-new-year-hampers", images: " ", price: " " },{ label: "Luxury Christmas Hampers", category: "Collection", url: "/collections/luxury-christmas-hampers", images: " ", price: " " },{ label: "Luxury Hampers", category: "Collection", url: "/collections/luxury-hampers", images: " ", price: " " },{ label: "Luxury Hampers Luar Jadetabek", category: "Collection", url: "/collections/luxury-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Luxury Newborn Hampers Collection", category: "Collection", url: "/collections/luxury-newborn-hampers-collection", images: " ", price: " " },{ label: "Luxury Ramadan Hampers", category: "Collection", url: "/collections/luxury-ramadan-hampers", images: " ", price: " " },{ label: "Luxury Set", category: "Collection", url: "/collections/luxury", images: " ", price: " " },{ label: "Manual", category: "Collection", url: "/collections/manual", images: " ", price: " " },{ label: "Massimo Gelato", category: "Collection", url: "/collections/massimo-gelato", images: " ", price: " " },{ label: "Men's Collection", category: "Collection", url: "/collections/mens-collection", images: " ", price: " " },{ label: "Mercedes Benz", category: "Collection", url: "/collections/mercedes-benz", images: " ", price: " " },{ label: "Mercy Hampers", category: "Collection", url: "/collections/mercy-
7634hampers", images: " ", price: " " },{ label: "Merry Hampers", category: "Collection", url: "/collections/merry-hampers", images: " ", price: " " },{ label: "Merry Hampers Luar Jabodetabek", category: "Collection", url: "/collections/merry-hampers-luar-jabodetabek", images: " ", price: " " },{ label: "Mini Bouquet", category: "Collection", url: "/collections/mini-bouquet", images: " ", price: " " },{ label: "Miss Mondial", category: "Collection", url: "/collections/miss-mondial", images: " ", price: " " },{ label: "Modern & Chic Chinese New Year", category: "Collection", url: "/collections/modern-chic-chinese-new-year", images: " ", price: " " },{ label: "Modern & Chic Christmas Hampers", category: "Collection", url: "/collections/modern-chic-christmas", images: " ", price: " " },{ label: "Modern & Chic Hampers", category: "Collection", url: "/collections/modern-chic-hampers", images: " ", price: " " },{ label: "Modern & Chic Hampers Luar Jadetabek", category: "Collection", url: "/collections/modern-chic-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Modern & Chic Ramadan Hampers", category: "Collection", url: "/collections/modern-chic-ramadan-hampers", images: " ", price: " " },{ label: "Modern & Classy Hampers", category: "Collection", url: "/collections/parcel-unik", images: " ", price: " " },{ label: "Modern 3D Cake", category: "Collection", url: "/collections/custom-3d-cake", images: " ", price: " " },{ label: "Modern Style Flowers", category: "Collection", url: "/collections/modern-style-flowers", images: " ", price: " " },{ label: "Monochrome Hampers", category: "Collection", url: "/collections/monochrome-hampers", images: " ", price: " " },{ label: "Monochrome Hampers Luar Jadetabek", category: "Collection", url: "/collections/monochrome-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Mooncake", category: "Collection", url: "/collections/kue-bulan-mooncake-2025-mid-autumn-festival", images: " ", price: " " },{ label: "Mooncake Assorted Selection", category: "Collection", url: "/collections/mooncake-assorted-selection", images: " ", price: " " },{ label: "Mother's Day", category: "Collection", url: "/collections/rangkaian-bunga-hari-ibu", images: " ", price: " " },{ label: "Mother's Day Special", category: "Collection", url: "/collections/kado-untuk-ibu", images: " ", price: " " },{ label: "Necklace", category: "Collection", url: "/collections/kalung", images: " ", price: " " },{ label: "NestBloom Bird Nest Hampers", category: "Collection", url: "/collections/nestbloom-birds-nest", images: " ", price: " " },{ label: "NestBloom Gift Set", category: "Collection", url: "/collections/nestbloom-gift-set", images: " ", price: " " },{ label: "Nestbloom Ritual Kit", category: "Collection", url: "/collections/nestbloom-ritual-kit", images: " ", price: " " },{ label: "NestBloom Single Bloom", category: "Collection", url: "/collections/nestbloom-single-bloom", images: " ", price: " " },{ label: "New Collection", category: "Collection", url: "/collections/produk-baru", images: " ", price: " " },{ label: "New Product", category: "Collection", url: "/collections/new-product", images: " ", price: " " },{ label: "Newborn", category: "Collection", url: "/collections/rangkaian-bunga-newborn-baby", images: " ", price: " " },{ label: "Newborn Hampers", category: "Collection", url: "/collections/parcel-newborn", images: " ", price: " " },{ label: "Occasions", category: "Collection", url: "/collections/occasions", images: " ", price: " " },{ label: "Oma Elly", category: "Collection", url: "/collections/oma-elly", images: " ", price: " " },{ label: "Oma Elly Gelato", category: "Collection", url: "/collections/oma-elly-gelato", images: " ", price: " " },{ label: "Orchid", category: "Collection", url: "/collections/bunga-anggrek", images: " ", price: " " },{ label: "Orori", category: "Collection", url: "/collections/orori", images: " ", price: " " },{ label: "Outerbloom", category: "Collection", url: "/collections/outerbloom", images: " ", price: " " },{ label: "Outerbloom Cake", category: "Collection", url: "/collections/outerbloom-cake", images: " ", price: " " },{ label: "Outerbloom Florist", category: "Collection", url: "/collections/outerbloom-florist", images: " ", price: " " },{ label: "Outerbloom Gift", category: "Collection", url: "/collections/outerbloom-gift", images: " ", price: " " },{ label: "Outerbloom Hampers", category: "Collection", url: "/collections/outerbloom-hampers", images: " ", price: " " },{ label: "Outerbloom Indonesia", category: "Collection", url: "/collections/indonesia", images: " ", price: " " },{ label: "Outerbloom x Boho Panna", category: "Collection", url: "/collections/outerbloom-x-boh
7634o-panna", images: " ", price: " " },{ label: "Outerbloom x Clairmont", category: "Collection", url: "/collections/outerbloom-x-clairmont", images: " ", price: " " },{ label: "Outerbloom x Kikido", category: "Collection", url: "/collections/outerbloom-x-kikido", images: " ", price: " " },{ label: "Outerbloom x Miwa Pattern", category: "Collection", url: "/collections/outerbloom-x-miwa", images: " ", price: " " },{ label: "Outerbloom x Nestbloom Chinese New Year", category: "Collection", url: "/collections/outerbloom-x-nestbloom-chinese-new-year", images: " ", price: " " },{ label: "Outerbloom x NestBloom Hampers", category: "Collection", url: "/collections/outerbloom-x-nestbloom", images: " ", price: " " },{ label: "Paket Kolaborasi Outerbloom", category: "Collection", url: "/collections/paket-kolaborasi-outerbloom", images: " ", price: " " },{ label: "Paket Kolaborasi Valentine", category: "Collection", url: "/collections/paket-kolaborasi-valentine", images: " ", price: " " },{ label: "Paket Ulang Tahun", category: "Collection", url: "/collections/paket-ulang-tahun", images: " ", price: " " },{ label: "Paket Valentine Nusantara", category: "Collection", url: "/collections/paket-valentine-nusantara", images: " ", price: " " },{ label: "Paket Valentine Outerbloom", category: "Collection", url: "/collections/paket-valentine", images: " ", price: " " },{ label: "Papan Bunga", category: "Collection", url: "/collections/papan-bunga", images: " ", price: " " },{ label: "Papan Bunga Aceh", category: "Collection", url: "/collections/papan-bunga-aceh", images: " ", price: " " },{ label: "Papan Bunga Acrylic", category: "Collection", url: "/collections/papan-bunga-acrylic", images: " ", price: " " },{ label: "Papan Bunga Ambon", category: "Collection", url: "/collections/papan-bunga-ambon", images: " ", price: " " },{ label: "Papan Bunga Artificial", category: "Collection", url: "/collections/papan-bunga-artificial", images: " ", price: " " },{ label: "Papan Bunga Atambua", category: "Collection", url: "/collections/papan-bunga-atambua", images: " ", price: " " },{ label: "Papan Bunga Bali", category: "Collection", url: "/collections/papan-bunga-bali", images: " ", price: " " },{ label: "Papan Bunga Balikpapan", category: "Collection", url: "/collections/papan-bunga-balikpapan", images: " ", price: " " },{ label: "Papan Bunga Bandar Lampung", category: "Collection", url: "/collections/papan-bunga-bandar-lampung", images: " ", price: " " },{ label: "Papan Bunga Bandung", category: "Collection", url: "/collections/papan-bunga-bandung", images: " ", price: " " },{ label: "Papan Bunga Bandung Barat", category: "Collection", url: "/collections/papan-bunga-bandung-barat", images: " ", price: " " },{ label: "Papan Bunga Bangka", category: "Collection", url: "/collections/papan-bunga-bangka", images: " ", price: " " },{ label: "Papan Bunga Banjarmasin", category: "Collection", url: "/collections/papan-bunga-banjarmasin", images: " ", price: " " },{ label: "Papan Bunga Banten", category: "Collection", url: "/collections/papan-bunga-banten", images: " ", price: " " },{ label: "Papan Bunga Banyumas", category: "Collection", url: "/collections/papan-bunga-banyumas", images: " ", price: " " },{ label: "Papan Bunga Banyuwangi", category: "Collection", url: "/collections/papan-bunga-banyuwangi", images: " ", price: " " },{ label: "Papan Bunga Batam", category: "Collection", url: "/collections/papan-bunga-batam", images: " ", price: " " },{ label: "Papan Bunga Baubau", category: "Collection", url: "/collections/papan-bunga-baubau", images: " ", price: " " },{ label: "Papan Bunga Bekasi", category: "Collection", url: "/collections/papan-bunga-bekasi", images: " ", price: " " },{ label: "Papan Bunga Bengkalis", category: "Collection", url: "/collections/papan-bunga-bengkalis", images: " ", price: " " },{ label: "Papan Bunga Bengkayang", category: "Collection", url: "/collections/papan-bunga-bengkayang", images: " ", price: " " },{ label: "Papan Bunga Bengkulu", category: "Collection", url: "/collections/papan-bunga-bengkulu", images: " ", price: " " }
7634,{ label: "Papan Bunga Binjai", category: "Collection", url: "/collections/papan-bunga-binjai", images: " ", price: " " },{ label: "Papan Bunga Blitar", category: "Collection", url: "/collections/papan-bunga-blitar", images: " ", price: " " },{ label: "Papan Bunga Blora", category: "Collection", url: "/collections/papan-bunga-blora", images: " ", price: " " },{ label: "Papan Bunga Bogor", category: "Collection", url: "/collections/papan-bunga-bogor", images: " ", price: " " },{ label: "Papan Bunga Bojonegoro", category: "Collection", url: "/collections/papan-bunga-bojonegoro", images: " ", price: " " },{ label: "Papan Bunga Boyolali", category: "Collection", url: "/collections/papan-bunga-boyolali", images: " ", price: " " },{ label: "Papan Bunga Brebes", category: "Collection", url: "/collections/papan-bunga-brebes", images: " ", price: " " },{ label: "Papan Bunga Bukittinggi", category: "Collection", url: "/collections/papan-bunga-bukittinggi", images: " ", price: " " },{ label: "Papan Bunga Buleleng", category: "Collection", url: "/collections/papan-bunga-buleleng", images: " ", price: " " },{ label: "Papan Bunga Ciamis", category: "Collection", url: "/collections/papan-bunga-ciamis", images: " ", price: " " },{ label: "Papan Bunga Cianjur", category: "Collection", url: "/collections/papan-bunga-cianjur", images: " ", price: " " },{ label: "Papan Bunga Cibubur", category: "Collection", url: "/collections/papan-bunga-cibubur", images: " ", price: " " },{ label: "Papan Bunga Cikarang", category: "Collection", url: "/collections/papan-bunga-cikarang", images: " ", price: " " },{ label: "Papan Bunga Cikupa", category: "Collection", url: "/collections/papan-bunga-cikupa", images: " ", price: " " },{ label: "Papan Bunga Cikupa", category: "Collection", url: "/collections/papan-bunga-cikupa-1", images: " ", price: " " },{ label: "Papan Bunga Cilacap", category: "Collection", url: "/collections/papan-bunga-cilacap", images: " ", price: " " },{ label: "Papan Bunga Cileunyi", category: "Collection", url: "/collections/papan-bunga-cileunyi", images: " ", price: " " },{ label: "Papan Bunga Cirebon", category: "Collection", url: "/collections/papan-bunga-cirebon", images: " ", price: " " },{ label: "Papan Bunga Congratulations", category: "Collection", url: "/collections/papan-bunga-ucapan-selamat", images: " ", price: " " },{ label: "Papan Bunga Congratulations Bali", category: "Collection", url: "/collections/papan-bunga-congratulations-bali", images: " ", price: " " },{ label: "Papan Bunga Congratulations Bandung", category: "Collection", url: "/collections/papan-bunga-congratulations-bandung", images: " ", price: " " },{ label: "Papan Bunga Congratulations Bekasi", category: "Collection", url: "/collections/papan-bunga-congratulations-bekasi", images: " ", price: " " },{ label: "Papan Bunga Congratulations Bogor", category: "Collection", url: "/collections/papan-bunga-congratulations-bogor", images: " ", price: " " },{ label: "Papan Bunga Congratulations Cikupa", category: "Collection", url: "/collections/papan-bunga-congratulations-cikupa", images: " ", price: " " },{ label: "Papan Bunga Congratulations Demak", category: "Collection", url: "/collections/papan-bunga-congratulations-demak", images: " ", price: " " },{ label: "Papan Bunga Congratulations Depok", category: "Collection", url: "/collections/papan-bunga-congratulations-depok", images: " ", price: " " },{ label: "Papan Bunga Congratulations Gresik", category: "Collection", url: "/collections/papan-bunga-congratulations-gresik", images: " ", price: " " },{ label: "Papan Bunga Congratulations Jakarta", category: "Collection", url: "/collections/papan-bunga-congratulations-jakarta", images: " ", price: " " },{ label: "Papan Bunga Congratulations Jepara", category: "Collection", url: "/collections/papan-bunga-congratulations-jepara", images: " ", price: " " },{ label: "Papan Bunga Congratulations Medan", category: "Collection", url: "/collections/papan-bunga-congratulations-medan", images: " ", price: " " },{ label: "Papan Bunga Congratulations Semarang", category: "Collection", url: "/collections/papan-bunga-congratulations-semarang", images: " ", price: " " }
7634,{ label: "Papan Bunga Congratulations Serang", category: "Collection", url: "/collections/papan-bunga-congratulations-serang", images: " ", price: " " },{ label: "Papan Bunga Congratulations Sidoarjo", category: "Collection", url: "/collections/papan-bunga-congratulations-sidoarjo", images: " ", price: " " },{ label: "Papan Bunga Congratulations Surabaya", category: "Collection", url: "/collections/papan-bunga-congratulations-surabaya", images: " ", price: " " },{ label: "Papan Bunga Congratulations Tangerang", category: "Collection", url: "/collections/papan-bunga-congratulations-tangerang", images: " ", price: " " },{ label: "Papan Bunga Congratulations Yogyakarta", category: "Collection", url: "/collections/papan-bunga-congratulations-yogyakarta", images: " ", price: " " },{ label: "Papan Bunga Danau Toba", category: "Collection", url: "/collections/papan-bunga-danau-toba", images: " ", price: " " },{ label: "Papan Bunga Deli Serdang", category: "Collection", url: "/collections/papan-bunga-deli-serdang", images: " ", price: " " },{ label: "Papan Bunga Demak", category: "Collection", url: "/collections/papan-bunga-demak", images: " ", price: " " },{ label: "Papan Bunga Denpasar", category: "Collection", url: "/collections/papan-bunga-denpasar", images: " ", price: " " },{ label: "Papan Bunga Depok", category: "Collection", url: "/collections/papan-bunga-depok", images: " ", price: " " },{ label: "Papan Bunga Duka Cita", category: "Collection", url: "/collections/bunga-duka-cita", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Bali", category: "Collection", url: "/collections/papan-bunga-duka-cita-bali", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Bandung", category: "Collection", url: "/collections/papan-bunga-duka-cita-bandung", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Bekasi", category: "Collection", url: "/collections/papan-bunga-duka-cita-bekasi", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Bogor", category: "Collection", url: "/collections/papan-bunga-duka-cita-bogor", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Cikupa", category: "Collection", url: "/collections/papan-bunga-duka-cita-cikupa", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Demak", category: "Collection", url: "/collections/papan-bunga-duka-cita-demak", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Depok", category: "Collection", url: "/collections/papan-bunga-duka-cita-depok", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Gresik", category: "Collection", url: "/collections/papan-bunga-duka-cita-gresik", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Jakarta", category: "Collection", url: "/collections/papan-bunga-duka-cita-jakarta", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Jepara", category: "Collection", url: "/collections/papan-bunga-duka-cita-jepara", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Medan", category: "Collection", url: "/collections/papan-bunga-duka-cita-medan", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Semarang", category: "Collection", url: "/collections/papan-bunga-duka-cita-semarang", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Serang", category: "Collection", url: "/collections/papan-bunga-duka-cita-serang", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Sidoarjo", category: "Collection", url: "/collections/papan-bunga-duka-cita-sidoarjo", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Surabaya", category: "Collection", url: "/collections/papan-bunga-duka-cita-surabaya", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Tangerang", category: "Collection", url: "/collections/papan-bunga-duka-cita-tangerang", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Yogyakarta", category: "Collection", url: "/collections/papan-bunga-duka-cita-yogyakarta", images: " ", price: " " },{ label: "Papan Bunga Garut", category: "Collection", url: "/collections/papan-bunga-garut", images: " ", price: " " },{ label: "Papan Bunga Gianyar", category: "Collection", url: "/collections/papan-bunga-gianyar", images: " ", price: " " }
7634,{ label: "Papan Bunga Gorontalo", category: "Collection", url: "/collections/papan-bunga-gorontalo", images: " ", price: " " },{ label: "Papan Bunga Gowa", category: "Collection", url: "/collections/papan-bunga-gowa", images: " ", price: " " },{ label: "Papan Bunga Gresik", category: "Collection", url: "/collections/papan-bunga-gresik", images: " ", price: " " },{ label: "Papan Bunga Grobogan", category: "Collection", url: "/collections/papan-bunga-grobogan", images: " ", price: " " },{ label: "Papan Bunga Gunungkidul", category: "Collection", url: "/collections/papan-bunga-gunungkidul", images: " ", price: " " },{ label: "Papan Bunga Indramayu", category: "Collection", url: "/collections/papan-bunga-indramayu", images: " ", price: " " },{ label: "Papan Bunga Jakarta", category: "Collection", url: "/collections/papan-bunga-jakarta", images: " ", price: " " },{ label: "Papan Bunga Jakarta Timur", category: "Collection", url: "/collections/papan-bunga-jakarta-timur", images: " ", price: " " },{ label: "Papan Bunga Jambi", category: "Collection", url: "/collections/papan-bunga-jambi", images: " ", price: " " },{ label: "Papan Bunga Jayapura", category: "Collection", url: "/collections/papan-bunga-jayapura", images: " ", price: " " },{ label: "Papan Bunga Jember", category: "Collection", url: "/collections/papan-bunga-jember", images: " ", price: " " },{ label: "Papan Bunga Jembrana", category: "Collection", url: "/collections/papan-bunga-jembrana", images: " ", price: " " },{ label: "Papan Bunga Jepara", category: "Collection", url: "/collections/papan-bunga-jepara", images: " ", price: " " },{ label: "Papan Bunga Jombang", category: "Collection", url: "/collections/papan-bunga-jombang", images: " ", price: " " },{ label: "Papan Bunga Kampung Baru", category: "Collection", url: "/collections/papan-bunga-kampung-baru", images: " ", price: " " },{ label: "Papan Bunga Kapuas", category: "Collection", url: "/collections/papan-bunga-kapuas", images: " ", price: " " },{ label: "Papan Bunga Karanganyar", category: "Collection", url: "/collections/papan-bunga-karanganyar", images: " ", price: " " },{ label: "Papan Bunga Karangasem", category: "Collection", url: "/collections/papan-bunga-karangasem", images: " ", price: " " },{ label: "Papan Bunga Karawang", category: "Collection", url: "/collections/papan-bunga-karawang", images: " ", price: " " },{ label: "Papan Bunga Karo", category: "Collection", url: "/collections/papan-bunga-karo", images: " ", price: " " },{ label: "Papan Bunga Kartosuro", category: "Collection", url: "/collections/papan-bunga-kartosuro", images: " ", price: " " },{ label: "Papan Bunga Kebumen", category: "Collection", url: "/collections/papan-bunga-kebumen", images: " ", price: " " },{ label: "Papan Bunga Kediri", category: "Collection", url: "/collections/papan-bunga-kediri", images: " ", price: " " },{ label: "Papan Bunga Kendal", category: "Collection", url: "/collections/papan-bunga-kendal", images: " ", price: " " },{ label: "Papan Bunga Kendari", category: "Collection", url: "/collections/papan-bunga-kendari", images: " ", price: " " },{ label: "Papan Bunga Ketapang", category: "Collection", url: "/collections/papan-bunga-ketapang", images: " ", price: " " },{ label: "Papan Bunga Klaten", category: "Collection", url: "/collections/papan-bunga-klaten", images: " ", price: " " },{ label: "Papan Bunga Kota Batu", category: "Collection", url: "/collections/papan-bunga-kota-batu", images: " ", price: " " },{ label: "Papan Bunga Kudus", category: "Collection", url: "/collections/papan-bunga-kudus", images: " ", price: " " },{ label: "Papan Bunga Kupang", category: "Collection", url: "/collections/papan-bunga-kupang", images: " ", price: " " },{ label: "Papan Bunga Lamongan", category: "Collection", url: "/collections/papan-bunga-lamongan", images: " ", price: " " },{ label: "Papan Bunga Lampu LED", category: "Collection", url: "/collections/papan-bunga-lampu-led", images: " ", price: " " },{ label: "Papan Bunga Lampung", category: "Collection", url: "/collections/papan-bunga-lampung", images: " ", price: " " }
7634,{ label: "Papan Bunga Langkat", category: "Collection", url: "/collections/papan-bunga-langkat", images: " ", price: " " },{ label: "Papan Bunga Lembang", category: "Collection", url: "/collections/papan-bunga-lembang", images: " ", price: " " },{ label: "Papan Bunga Lombok", category: "Collection", url: "/collections/papan-bunga-lombok", images: " ", price: " " },{ label: "Papan Bunga Lubuk Pakam", category: "Collection", url: "/collections/papan-bunga-lubuk-pakam", images: " ", price: " " },{ label: "Papan Bunga Lumajang", category: "Collection", url: "/collections/papan-bunga-lumajang", images: " ", price: " " },{ label: "Papan Bunga Madiun", category: "Collection", url: "/collections/papan-bunga-madiun", images: " ", price: " " },{ label: "Papan Bunga Magelang", category: "Collection", url: "/collections/papan-bunga-magelang", images: " ", price: " " },{ label: "Papan Bunga Majalengka", category: "Collection", url: "/collections/papan-bunga-majalengka", images: " ", price: " " },{ label: "Papan Bunga Makassar", category: "Collection", url: "/collections/papan-bunga-makassar", images: " ", price: " " },{ label: "Papan Bunga Malang", category: "Collection", url: "/collections/papan-bunga-malang", images: " ", price: " " },{ label: "Papan Bunga Mamuju", category: "Collection", url: "/collections/papan-bunga-mamuju", images: " ", price: " " },{ label: "Papan Bunga Manado", category: "Collection", url: "/collections/papan-bunga-manado", images: " ", price: " " },{ label: "Papan Bunga Manokwari", category: "Collection", url: "/collections/papan-bunga-manokwari", images: " ", price: " " },{ label: "Papan Bunga Maros", category: "Collection", url: "/collections/papan-bunga-maros", images: " ", price: " " },{ label: "Papan Bunga Mataram", category: "Collection", url: "/collections/papan-bunga-mataram", images: " ", price: " " },{ label: "Papan Bunga Medan", category: "Collection", url: "/collections/papan-bunga-medan", images: " ", price: " " },{ label: "Papan Bunga Mojokerto", category: "Collection", url: "/collections/papan-bunga-mojokerto", images: " ", price: " " },{ label: "Papan Bunga Nganjuk", category: "Collection", url: "/collections/papan-bunga-nganjuk", images: " ", price: " " },{ label: "Papan Bunga Ngawi", category: "Collection", url: "/collections/papan-bunga-ngawi", images: " ", price: " " },{ label: "Papan Bunga Nias", category: "Collection", url: "/collections/papan-bunga-nias", images: " ", price: " " },{ label: "Papan Bunga Organza", category: "Collection", url: "/collections/papan-bunga-organza", images: " ", price: " " },{ label: "Papan Bunga Padang", category: "Collection", url: "/collections/papan-bunga-padang", images: " ", price: " " },{ label: "Papan Bunga Palangkaraya", category: "Collection", url: "/collections/papan-bunga-palangkaraya", images: " ", price: " " },{ label: "Papan Bunga Palembang", category: "Collection", url: "/collections/papan-bunga-palembang", images: " ", price: " " },{ label: "Papan Bunga Palu", category: "Collection", url: "/collections/papan-bunga-palu", images: " ", price: " " },{ label: "Papan Bunga Pangkal Pinang", category: "Collection", url: "/collections/papan-bunga-pangkal-pinang", images: " ", price: " " },{ label: "Papan Bunga Parepare", category: "Collection", url: "/collections/papan-bunga-parepare", images: " ", price: " " },{ label: "Papan Bunga Pasuruan", category: "Collection", url: "/collections/papan-bunga-pasuruan", images: " ", price: " " },{ label: "Papan Bunga Pati", category: "Collection", url: "/collections/papan-bunga-pati", images: " ", price: " " },{ label: "Papan Bunga Pekalongan", category: "Collection", url: "/collections/papan-bunga-pekalongan", images: " ", price: " " },{ label: "Papan Bunga Pekanbaru", category: "Collection", url: "/collections/papan-bunga-pekanbaru", images: " ", price: " " },{ label: "Papan Bunga Pemalang", category: "Collection", url: "/collections/papan-bunga-pemalang", images: " ", price: " " },{ label: "Papan Bunga Pematangsiantar", category: "Collection", url: "/collections/papan-bunga-pematangsiantar", images: " ", price: " " }
7634,{ label: "Papan Bunga Pernikahan Bali", category: "Collection", url: "/collections/papan-bunga-pernikahan-bali", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Bandung", category: "Collection", url: "/collections/papan-bunga-pernikahan-bandung", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Bekasi", category: "Collection", url: "/collections/papan-bunga-pernikahan-bekasi", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Bogor", category: "Collection", url: "/collections/papan-bunga-pernikahan-bogor", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Cikupa", category: "Collection", url: "/collections/papan-bunga-pernikahan-cikupa", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Demak", category: "Collection", url: "/collections/papan-bunga-pernikahan-demak", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Depok", category: "Collection", url: "/collections/papan-bunga-pernikahan-depok", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Gresik", category: "Collection", url: "/collections/papan-bunga-pernikahan-gresik", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Jakarta", category: "Collection", url: "/collections/papan-bunga-pernikahan-jakarta", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Jepara", category: "Collection", url: "/collections/papan-bunga-pernikahan-jepara", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Medan", category: "Collection", url: "/collections/papan-bunga-pernikahan-medan", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Semarang", category: "Collection", url: "/collections/papan-bunga-pernikahan-semarang", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Serang", category: "Collection", url: "/collections/papan-bunga-pernikahan-serang", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Sidoarjo", category: "Collection", url: "/collections/papan-bunga-pernikahan-sidoarjo", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Surabaya", category: "Collection", url: "/collections/papan-bunga-pernikahan-surabaya", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Tangerang", category: "Collection", url: "/collections/papan-bunga-pernikahan-tangerang", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Yogyakarta", category: "Collection", url: "/collections/papan-bunga-pernikahan-yogyakarta", images: " ", price: " " },{ label: "Papan Bunga Ponorogo", category: "Collection", url: "/collections/papan-bunga-ponorogo", images: " ", price: " " },{ label: "Papan Bunga Pontianak", category: "Collection", url: "/collections/papan-bunga-pontianak", images: " ", price: " " },{ label: "Papan Bunga Premium", category: "Collection", url: "/collections/papan-bunga-premium", images: " ", price: " " },{ label: "Papan Bunga Printing", category: "Collection", url: "/collections/papan-bunga-printing", images: " ", price: " " },{ label: "Papan Bunga Printing Congratulations", category: "Collection", url: "/collections/papan-bunga-printing-congratulations", images: " ", price: " " },{ label: "Papan Bunga Probolinggo", category: "Collection", url: "/collections/papan-bunga-probolinggo", images: " ", price: " " },{ label: "Papan Bunga Promo", category: "Collection", url: "/collections/promo-papan-bunga", images: " ", price: " " },{ label: "Papan Bunga Purbalingga", category: "Collection", url: "/collections/papan-bunga-purbalingga", images: " ", price: " " },{ label: "Papan Bunga Purwokerto", category: "Collection", url: "/collections/papan-bunga-purwokerto", images: " ", price: " " },{ label: "Papan Bunga Purworejo", category: "Collection", url: "/collections/papan-bunga-purworejo", images: " ", price: " " },{ label: "Papan Bunga Rembang", category: "Collection", url: "/collections/papan-bunga-rembang", images: " ", price: " " },{ label: "Papan Bunga Riau", category: "Collection", url: "/collections/papan-bunga-riau", images: " ", price: " " },{ label: "Papan Bunga Salatiga", category: "Collection", url: "/collections/papan-bunga-salatiga", images: " ", price: " " }
7634,{ label: "Papan Bunga Samarinda", category: "Collection", url: "/collections/papan-bunga-samarinda", images: " ", price: " " },{ label: "Papan Bunga Selamat Bandung", category: "Collection", url: "/collections/papan-bunga-selamat-bandung", images: " ", price: " " },{ label: "Papan Bunga Selamat Medan", category: "Collection", url: "/collections/papan-bunga-selamat-medan", images: " ", price: " " },{ label: "Papan Bunga Semarang", category: "Collection", url: "/collections/papan-bunga-semarang", images: " ", price: " " },{ label: "Papan Bunga Serang", category: "Collection", url: "/collections/papan-bunga-serang", images: " ", price: " " },{ label: "Papan Bunga Sibolga", category: "Collection", url: "/collections/papan-bunga-sibolga", images: " ", price: " " },{ label: "Papan Bunga Sidoarjo", category: "Collection", url: "/collections/papan-bunga-sidoarjo", images: " ", price: " " },{ label: "Papan Bunga Singkawang", category: "Collection", url: "/collections/papan-bunga-singkawang", images: " ", price: " " },{ label: "Papan Bunga Solo", category: "Collection", url: "/collections/papan-bunga-solo", images: " ", price: " " },{ label: "Papan Bunga Sorong", category: "Collection", url: "/collections/papan-bunga-sorong", images: " ", price: " " },{ label: "Papan Bunga Sragen", category: "Collection", url: "/collections/papan-bunga-sragen", images: " ", price: " " },{ label: "Papan Bunga Standard", category: "Collection", url: "/collections/papan-bunga-standard", images: " ", price: " " },{ label: "Papan Bunga Subang", category: "Collection", url: "/collections/papan-bunga-subang", images: " ", price: " " },{ label: "Papan Bunga Sukabumi", category: "Collection", url: "/collections/papan-bunga-sukabumi", images: " ", price: " " },{ label: "Papan Bunga Sumbawa", category: "Collection", url: "/collections/papan-bunga-sumbawa", images: " ", price: " " },{ label: "Papan Bunga Surabaya", category: "Collection", url: "/collections/papan-bunga-surabaya", images: " ", price: " " },{ label: "Papan Bunga Surakarta", category: "Collection", url: "/collections/papan-bunga-surakarta", images: " ", price: " " },{ label: "Papan Bunga Tangerang", category: "Collection", url: "/collections/papan-bunga-tangerang", images: " ", price: " " },{ label: "Papan Bunga Tasikmalaya", category: "Collection", url: "/collections/papan-bunga-tasikmalaya", images: " ", price: " " },{ label: "Papan Bunga Tegal", category: "Collection", url: "/collections/papan-bunga-tegal", images: " ", price: " " },{ label: "Papan Bunga Temanggung", category: "Collection", url: "/collections/papan-bunga-temanggung", images: " ", price: " " },{ label: "Papan Bunga Ternate", category: "Collection", url: "/collections/papan-bunga-ternate", images: " ", price: " " },{ label: "Papan Bunga Tolitoli", category: "Collection", url: "/collections/papan-bunga-tolitoli", images: " ", price: " " },{ label: "Papan Bunga Toraja", category: "Collection", url: "/collections/papan-bunga-toraja", images: " ", price: " " },{ label: "Papan Bunga Tuban", category: "Collection", url: "/collections/papan-bunga-tuban", images: " ", price: " " },{ label: "Papan Bunga Tulungagung", category: "Collection", url: "/collections/papan-bunga-tulungagung", images: " ", price: " " },{ label: "Papan Bunga Wakatobi", category: "Collection", url: "/collections/papan-bunga-wakatobi", images: " ", price: " " },{ label: "Papan Bunga Wedding", category: "Collection", url: "/collections/papan-bunga-ucapan-pernikahan", images: " ", price: " " },{ label: "Papan Bunga Wiyung", category: "Collection", url: "/collections/papan-bunga-wiyung", images: " ", price: " " },{ label: "Papan Bunga Wonogiri", category: "Collection", url: "/collections/papan-bunga-wonogiri", images: " ", price: " " },{ label: "Papan Bunga Wonokromo", category: "Collection", url: "/collections/papan-bunga-wonokromo", images: " ", price: " " },{ label: "Papan Bunga Wonosobo", category: "Collection", url: "/collections/papan-bunga-wonosobo", images: " ", price: " " },{ label: "Papan Bunga Yogyakarta", category: "Collection", url: "/collections/papan-bunga-yogyakarta", images: " ", price: " " }
7634,{ label: "Paper Flower Board", category: "Collection", url: "/collections/papan-bunga-kertas", images: " ", price: " " },{ label: "Paper Flower Board Bali", category: "Collection", url: "/collections/papan-bunga-kertas-bali", images: " ", price: " " },{ label: "Paper Flower Board Gresik", category: "Collection", url: "/collections/papan-bunga-kertas-gresik", images: " ", price: " " },{ label: "Paper Flower Board Sidoarjo", category: "Collection", url: "/collections/papan-bunga-kertas-sidoarjo", images: " ", price: " " },{ label: "Paper Flower Board Surabaya", category: "Collection", url: "/collections/papan-bunga-kertas-surabaya", images: " ", price: " " },{ label: "Paper Flower Board Yogyakarta", category: "Collection", url: "/collections/papan-bunga-kertas-yogyakarta", images: " ", price: " " },{ label: "Parcel", category: "Collection", url: "/collections/parcel", images: " ", price: " " },{ label: "Parcel Buah", category: "Collection", url: "/collections/parcel-buah-segar", images: " ", price: " " },{ label: "Parcel Buah Bandung", category: "Collection", url: "/collections/parcel-buah-bandung", images: " ", price: " " },{ label: "Parcel Buah Semarang", category: "Collection", url: "/collections/parcel-buah-semarang", images: " ", price: " " },{ label: "Parcel Buah Sidoarjo", category: "Collection", url: "/collections/parcel-buah-sidoarjo", images: " ", price: " " },{ label: "Parcel Buah Surabaya", category: "Collection", url: "/collections/parcel-buah-surabaya", images: " ", price: " " },{ label: "Parcel Imlek 2025", category: "Collection", url: "/collections/parcel-imlek", images: " ", price: " " },{ label: "Parcel Imlek Bandung", category: "Collection", url: "/collections/parcel-imlek-bandung", images: " ", price: " " },{ label: "Parcel Imlek Nusantara", category: "Collection", url: "/collections/parcel-imlek-nusantara", images: " ", price: " " },{ label: "Parcel Lebaran Bandung", category: "Collection", url: "/collections/parcel-lebaran-bandung", images: " ", price: " " },{ label: "Parcel Lebaran Nusantara", category: "Collection", url: "/collections/parcel-lebaran-indonesia", images: " ", price: " " },{ label: "Parcel Lebaran Surabaya", category: "Collection", url: "/collections/parcel-lebaran-surabaya", images: " ", price: " " },{ label: "Parcel Makanan", category: "Collection", url: "/collections/parcel-makanan", images: " ", price: " " },{ label: "Parcel Natal & Tahun Baru 2026", category: "Collection", url: "/collections/hampers-natal", images: " ", price: " " },{ label: "Parcel Natal & Tahun Baru Bandung", category: "Collection", url: "/collections/parcel-natal-bandung", images: " ", price: " " },{ label: "Parcel Newborn Nusantara", category: "Collection", url: "/collections/parcel-newborn-nusantara", images: " ", price: " " },{ label: "Parcel Tahun Baru", category: "Collection", url: "/collections/new-year-tahun-baru", images: " ", price: " " },{ label: "Party Supplies", category: "Collection", url: "/collections/party-supplies", images: " ", price: " " },{ label: "Partysaurus", category: "Collection", url: "/collections/partysaurus", images: " ", price: " " },{ label: "Pasar Bunga Splendid Malang", category: "Collection", url: "/collections/pasar-bunga-splendid-malang", images: " ", price: " " },{ label: "Passionate Red Valentine", category: "Collection", url: "/collections/red-valentine", images: " ", price: " " },{ label: "Pendant", category: "Collection", url: "/collections/liontin", images: " ", price: " " },{ label: "Personalized Fashion", category: "Collection", url: "/collections/fashion", images: " ", price: " " },{ label: "Personalized Gift", category: "Collection", url: "/collections/personalized-gift", images: " ", price: " " },{ label: "Personalized Gift Pria", category: "Collection", url: "/collections/personalized-gift-pria", images: " ", price: " " },{ label: "Personalized Gift Wanita", category: "Collection", url: "/collections/personalized-gift-wanita", images: " ", price: " " },{ label: "Personalized Gifts", category: "Collection", url: "/collections/personalized-gifts", images: " ", price: " " },{ label: "Pesca Ice Cream Cakes", category: "Collection", url: "/collections/pesca", images: " ", price: " " },{ label: "Phone Case", category: "Collection", url: "/collections/phone-case", images: " ", price: " " },{ label: "Photobook", category: "Collection", url: "/collections/photobook", images: " ", price: " " },{ label: "Pisces âï¸ 19Feb - 20March", category: "Collection", url: "/collections/kado-untuk-zodiak-pisces", images: " ", price: " " },{ label: "Pohon Natal", category: "Collection", url: "/collections/pohon-natal", images: " ", price: " " },{ label: "Premium Hampers", category: "Collection", url: "/collections/parcel-premium", images: " ", price: " " },{ label: "Premium Newborn Hampers Collection", category: "Collection", url: "/collections/premium-newborn-hampers-collection", images: " ", price: " " },{ label: "Printing Cake", category: "Collection", url: "/collections/printing-cake", images: " ", price: " " },{ label: "Prom", category: "Collection", url: "/collections/prom", images: " ", price: " " },{ label: "Promo Merdeka", category: "Collection", url: "/collections/merdeka", images: " ", price: " " },{ label: "Rangkaian Bunga", category: "Collection", url: "/collections/rangkaian-bunga", images: " ", price: " " },{ label: "Rangkaian Bunga Dekorasi", category: "Collection", url: "/collections/rangkaian-bunga-dekorasi", images: " ", price: " " },{ label: "Rangkaian Bunga Ulang Tahun", category: "Collection", url: "/collections/rangkaian-bunga-ulang-tahun", images: " ", price: " " },{ label: "Romantic & Sweets", category: "Collection", url: "/collections/romantic-sweets", images: " ", price: " " },{ label: "Romantic Package", category: "Collection", url: "/collections/romantic-package", images: " ", price: " " },{ label: "Rose Beam", category: "Collection", url: "/collections/rose-beam", images: " ", price: " " },{ label: "Rose Box", category: "Collection", url: "/collections/rose-box", images: " ", price: " " },{ label: "Roses", category: "Collection", url: "/collections/bunga-mawar", images: " ", price: " " },{ label: "Rp 500.000 - Rp 800.000", category: "Collection", url: "/collections/rp-500-000-rp-800-000", images: " ", price: " " },{ label: "Rp 800.000 - Rp 1.000.000", category: "Collection", url: "/collections/rp-800-000-rp-1-000-000", images: " ", price: " " },{ label: "Rustic & Monochrome Ramadan Hampers", category: "Collection", url: "/collections/rustic-monochrome-ramadanhampers", images: " ", price: " " },{ label: "Rustic Bloom", category: "Collection", url: "/collections/dried-flowers", images: " ", price: " " },{ label: "Rustic Style Flowers", category: "Collection", url: "/collections/rustic-style-flowers", images: " ", price: " " },{ label: "Sagittarius âï¸ 22Nov - 21Des", category: "Collection", url: "/collections/kado-untuk-zodiak-sagittarius", images: " ", price: " " },{ label: "Sameday Delivery", category: "Collection", url: "/collections/sameday", images: " ", price: " " },{ label: "Savoury Dish", category: "Collection", url: "/collections/savoury-dish", images: " ", price: " " },{ label: "Saychiz", category: "Collection", url: "/collections/saychiz", images: " ", price: " " },{ label: "Scented Candles", category: "Collection", url: "/collections/scented-candles", images: " ", price: " " },{ label: "Scorpio âï¸ 24Oct - 21Nov", category: "Collection", url: "/collections/kado-untuk-zodiak-scorpio", images: " ", price: " " },{ label: "Self Pick-Up", category: "Collection", url: "/collections/self-pick-up", images: " ", price: " " },{ label: "Semua Produk", category: "Collection", url: "/collections/all", images: " ", price: " " },{ label: "Serenitea", category: "Collection", url: "/collections/serenitea", images: " ", price: " " },{ label: "Share Outerbloom Moment", category: "Collection", url: "/collections/share-moment", images: " ", price: " " },{ label: "Share your Happiness", category: "Collection", url: "/collections/share-happiness", images: " ", price: " " },{ label: "Signature Cake", category: "Collection", url: "/collections/signature-cake", images: " ", price: " " },{ label: "Signature Chinese New Year Hampers", category: "Collection", url: "/collections/signature-chinese-new-year-hampers", images: " ", price: " " },{ label: "Signature Christmas & New Year Hampers", category: "Collection", url: "/collections/signature-christmas-hampers", images: " ", price: " " },{ label: "Signature Hampers", category: "Collection", url: "/collections/signature-hampers", images: " ", price: " " },{ label: "Signature Hampers Luar Jadetabek", category: "Collection", url: "/collections/signature-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Signature Hampers Sameday", category: "Collection", url: "/collections/signature-hampers-sameday", images: " ", price: " " },{ label: "Signature Ramadan Hampers", category: "Collection", url: "/collections/signature-ramadan-hampers", images: " ", price: " " },{ label: "Slice Cake", category: "Collection", url: "/collections/slice-cake", images: " ", price: " " },{ label: "Snack Box", category: "Collection", url: "/collections/snack-box", images: " ", price: " " },{ label: "Sol et Terre", category: "Collection", url: "/collections/sol-et-terre", images: " ", price: " " },{ label: "Sorbet", category: "Collection", url: "/collections/sorbet", images: " ", price: " " },{ label: "Special Day", category: "Collection", url: "/collections/special-day", images: " ", price: " " },{ label: "Special Edition", category: "Collection", url: "/collections/special-edition", images: " ", price: " " },{ label: "Special For Her", category: "Collection", url: "/collections/special-for-her", images: " ", price: " " },{ label: "RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna.", category: "Collection", url: "/collections/standing-flower", images: " ", price: " " },{ label: "RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna. Bali", category: "Collection", url: "/collections/standing-flower-bali", images: " ", price: " " },{ label: "RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna. Bandung", category: "Collection", url: "/collections/standing-flower-bandung", images: " ", price: " " },{ label: "RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna. Congratulations", category: "Collection", url: "/collections/standing-flower-congratulations", images: " ", price: " " },{ label: "RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna. Demak", category: "Collection", url: "/collections/standing-flower-demak", images: " ", price: " " },{ label: "RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna. Jepara", category: "Collection", url: "/collections/standing-flower-jepara", images: " ", price: " " },{ label: "RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna. Semarang", category: "Collection", url: "/collections/standing-flower-semarang", images: " ", price: " " },{ label: "RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna. Sidoarjo", category: "Collection", url: "/collections/standing-flower-sidoarjo", images: " ", price: " " },{ label: "RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna. Surabaya", category: "Collection", url: "/collections/standing-flower-surabaya", images: " ", price: " " },{ label: "RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna. 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: "
7634Collection", url: "/collections/toko-bunga-ambon", images: " ", price: " " },{ label: "Toko Bunga Atambua", category: "Collection", url: "/collections/toko-bunga-atambua", images: " ", price: " " },{ label: "Toko Bunga Bali", category: "Collection", url: "/collections/toko-bunga-bali", images: " ", price: " " },{ label: "Toko Bunga Balikpapan", category: "Collection", url: "/collections/toko-bunga-balikpapan", images: " ", price: " " },{ label: "Toko Bunga Bandar Lampung", category: "Collection", url: "/collections/toko-bunga-bandar-lampung", images: " ", price: " " },{ label: "Toko Bunga Bandung", category: "Collection", url: "/collections/toko-bunga-bandung", images: " ", price: " " },{ label: "Toko Bunga Bandung Barat", category: "Collection", url: "/collections/toko-bunga-bandung-barat", images: " ", price: " " },{ label: "Toko Bunga Banjarmasin", category: "Collection", url: "/collections/toko-bunga-banjarmasin", images: " ", price: " " },{ label: "Toko Bunga Banten", category: "Collection", url: "/collections/toko-bunga-banten", images: " ", price: " " },{ label: "Toko Bunga Banyumas", category: "Collection", url: "/collections/toko-bunga-banyumas", images: " ", price: " " },{ label: "Toko Bunga Banyuwangi", category: "Collection", url: "/collections/toko-bunga-banyuwangi", images: " ", price: " " },{ label: "Toko Bunga Batam", category: "Collection", url: "/collections/toko-bunga-batam", images: " ", price: " " },{ label: "Toko Bunga Baubau", category: "Collection", url: "/collections/toko-bunga-baubau", images: " ", price: " " },{ label: "Toko Bunga Bekasi", category: "Collection", url: "/collections/toko-bunga-bekasi", images: " ", price: " " },{ label: "Toko Bunga Bengkalis", category: "Collection", url: "/collections/toko-bunga-bengkalis", images: " ", price: " " },{ label: "Toko Bunga Bengkayang", category: "Collection", url: "/collections/toko-bunga-bengkayang", images: " ", price: " " },{ label: "Toko Bunga Binjai", category: "Collection", url: "/collections/toko-bunga-binjai", images: " ", price: " " },{ label: "Toko Bunga Bintaro", category: "Collection", url: "/collections/toko-bunga-bintaro", images: " ", price: " " },{ label: "Toko Bunga Blitar", category: "Collection", url: "/collections/toko-bunga-blitar", images: " ", price: " " },{ label: "Toko Bunga Blora", category: "Collection", url: "/collections/toko-bunga-blora", images: " ", price: " " },{ label: "Toko Bunga Bogor", category: "Collection", url: "/collections/toko-bunga-bogor", images: " ", price: " " },{ label: "Toko Bunga Bojonegoro", category: "Collection", url: "/collections/toko-bunga-bojonegoro", images: " ", price: " " },{ label: "Toko Bunga Boyolali", category: "Collection", url: "/collections/toko-bunga-boyolali", images: " ", price: " " },{ label: "Toko Bunga Brebes", category: "Collection", url: "/collections/toko-bunga-brebes", images: " ", price: " " },{ label: "Toko Bunga Bukittinggi", category: "Collection", url: "/collections/toko-bunga-bukittinggi", images: " ", price: " " },{ label: "Toko Bunga Buleleng", category: "Collection", url: "/collections/toko-bunga-buleleng", images: " ", price: " " },{ label: "Toko Bunga Cakung", category: "Collection", url: "/collections/toko-bunga-cakung", images: " ", price: " " },{ label: "Toko Bunga Cawang", category: "Collection", url: "/collections/toko-bunga-cawang", images: " ", price: " " },{ label: "Toko Bunga Cempaka Putih", category: "Collection", url: "/collections/toko-bunga-cempaka-putih", images: " ", price: " " },{ label: "Toko Bunga Cengkareng", category: "Collection", url: "/collections/toko-bunga-cengkareng", images: " ", price: " " },{ label: "Toko Bunga Ciamis", category: "Collection", url: "/collections/toko-bunga-ciamis", images: " ", price: " " },{ label: "Toko Bunga Cianjur", category: "Collection", url: "/collections/toko-bunga-cianjur", images: " ", price: " " },{ label: "Toko Bunga Cibinong", category: "Collection", url: "/collections/toko-bunga-cibinong", images: " ", price: " " },{ label: "Toko Bunga Cibubur", category: "Collection", url: "/collections/toko-bunga-cibubur", images: " ", price: " " },{ label: "Toko Bunga Cijantung", category: "Collection", url: "/collections/toko-bunga-cijantung", images: " ", price: " " },{ label: "Toko Bunga Cikarang", category: "Collection", url: "/collections/toko-bunga-cikarang", images: " ", price: " " },{ label: "Toko Bunga Cikini", category: "Collection", url: "/collections/toko-bunga-cikini", images: " ", price: " " },{ label: "Toko Bunga Cilacap", category: "Collection", url: "/collections/toko-bunga-cilacap", images: " ", price: " " },{ label: "Toko Bunga Cilandak", category: "Collection", url: "/collections/toko-bunga-cilandak", images: " ", price: " " },{ label: "Toko Bunga Cileunyi", category: "Collection", url: "/collections/toko-bunga-cileunyi", images: " ", price: " " },{ label: "Toko Bunga Ciracas", category: "Collection", url: "/collections/toko-bunga-ciracas", images: " ", price: " " },{ label: "Toko Bunga Cirebon", category: "Collection", url: "/collections/toko-bunga-cirebon", images: " ", price: " " }
7634,{ label: "Toko Bunga Ciwidey", category: "Collection", url: "/collections/toko-bunga-ciwidey", images: " ", price: " " },{ label: "Toko Bunga Danau Toba", category: "Collection", url: "/collections/toko-bunga-danau-toba", images: " ", price: " " },{ label: "Toko Bunga Demak", category: "Collection", url: "/collections/toko-bunga-demak", images: " ", price: " " },{ label: "Toko Bunga Denpasar", category: "Collection", url: "/collections/toko-bunga-denpasar", images: " ", price: " " },{ label: "Toko Bunga Depok", category: "Collection", url: "/collections/toko-bunga-depok", images: " ", price: " " },{ label: "Toko Bunga Duren Sawit", category: "Collection", url: "/collections/toko-bunga-duren-sawit", images: " ", price: " " },{ label: "Toko Bunga Garut", category: "Collection", url: "/collections/toko-bunga-garut", images: " ", price: " " },{ label: "Toko Bunga Gianyar", category: "Collection", url: "/collections/toko-bunga-gianyar", images: " ", price: " " },{ label: "Toko Bunga Gowa", category: "Collection", url: "/collections/toko-bunga-gowa", images: " ", price: " " },{ label: "Toko Bunga Gresik", category: "Collection", url: "/collections/toko-bunga-gresik", images: " ", price: " " },{ label: "Toko Bunga Grobogan", category: "Collection", url: "/collections/toko-bunga-grobogan", images: " ", price: " " },{ label: "Toko Bunga Grogol", category: "Collection", url: "/collections/toko-bunga-grogol", images: " ", price: " " },{ label: "Toko Bunga Gunungkidul", category: "Collection", url: "/collections/toko-bunga-gunungkidul", images: " ", price: " " },{ label: "Toko Bunga Indramayu", category: "Collection", url: "/collections/toko-bunga-indramayu", images: " ", price: " " },{ label: "Toko Bunga Jakarta", category: "Collection", url: "/collections/toko-bunga-jakarta", images: " ", price: " " },{ label: "Toko Bunga Jakarta Barat", category: "Collection", url: "/collections/toko-bunga-jakarta-barat", images: " ", price: " " },{ label: "Toko Bunga Jakarta Pusat", category: "Collection", url: "/collections/toko-bunga-jakarta-pusat", images: " ", price: " " },{ label: "Toko Bunga Jakarta Selatan", category: "Collection", url: "/collections/toko-bunga-jakarta-selatan", images: " ", price: " " },{ label: "Toko Bunga Jakarta Timur", category: "Collection", url: "/collections/toko-bunga-jakarta-timur", images: " ", price: " " },{ label: "Toko Bunga Jakarta Utara", category: "Collection", url: "/collections/toko-bunga-jakarta-utara", images: " ", price: " " },{ label: "Toko Bunga Jambi", category: "Collection", url: "/collections/toko-bunga-jambi", images: " ", price: " " },{ label: "Toko Bunga Jatinegara", category: "Collection", url: "/collections/toko-bunga-jatinegara", images: " ", price: " " },{ label: "Toko Bunga Jawa & Bali", category: "Collection", url: "/collections/toko-bunga-jawa-bali", images: " ", price: " " },{ label: "Toko Bunga Jayapura", category: "Collection", url: "/collections/toko-bunga-jayapura", images: " ", price: " " },{ label: "Toko Bunga Jelambar - Florist Onine 24 Jam", category: "Collection", url: "/collections/toko-bunga-jelambar", images: " ", price: " " },{ label: "Toko Bunga Jember", category: "Collection", url: "/collections/toko-bunga-jember", images: " ", price: " " },{ label: "Toko Bunga Jembrana", category: "Collection", url: "/collections/toko-bunga-jembrana", images: " ", price: " " },{ label: "Toko Bunga Jepara", category: "Collection", url: "/collections/toko-bunga-jepara", images: " ", price: " " },{ label: "Toko Bunga Joglo", category: "Collection", url: "/collections/toko-bunga-joglo", images: " ", price: " " },{ label: "Toko Bunga Jombang", category: "Collection", url: "/collections/toko-bunga-jombang", images: " ", price: " " },{ label: "Toko Bunga Kalibata", category: "Collection", url: "/collections/toko-bunga-kalibata", images: " ", price: " " },{ label: "Toko Bunga Kalimantan", category: "Collection", url: "/collections/toko-bunga-kalimantan", images: " ", price: " " },{ label: "Toko Bunga Kalisari Semarang", category: "Collection", url: "/collections/toko-bunga-kalisari-semarang", images: " ", price: " " },{ label: "Toko Bunga Kampung Baru", category: "Collection", url: "/collections/toko-bunga-kampung-baru", images: " ", price: " " },{ label: "Toko Bunga Kapuas", category: "Collection", url: "/collections/toko-bunga-kapuas", images: " ", price: " " },{ label: "Toko Bunga Karanganyar", category: "Collection", url: "/collections/toko-bunga-karanganyar", images: " ", price: " " },{ label: "Toko Bunga Karangasem", category: "Collection", url: "/collections/toko-bunga-karangasem", images: " ", price: " " },{ label: "Toko Bunga Karawang", category: "Collection", url: "/collections/toko-bunga-karawang", images: " ", price: " " },{ label: "Toko Bunga Kartosuro", category: "Collection", url: "/collections/toko-bunga-kartosuro", images: " ", price: " " },{ label: "Toko Bunga Kayoon Surabaya", category: "Collection", url: "/collections/toko-bunga-kayoon-surabaya", images: " ", price: " " },{ label: "Toko Bunga Kebayoran Baru", category: "Collection", url: "/collections/toko-bunga-kebayoran-baru", images: " ", price: " " },{ label: "Toko Bunga Kebon Jeruk", category: "Collection", url: "/collections/toko-bunga-kebon-jeruk", images: " ", price: " " },{ label: "Toko Bunga Kebumen", category: "Collection", url: "/collections/toko-bunga-kebumen", images: " ", price: " " },{ label: "Toko Bunga Kediri", category: "Collection", url: "/collections/toko-bunga-kediri", images: " ", price: " " },{ label: "Toko Bunga Kelapa Gading", category: "Collection", url: "/collections/toko-bunga-kelapa-gading", images: " ", price: " " },{ label: "Toko Bunga Kemayoran", category: "Collection", url: "/collections/toko-bunga-kemayoran", images: " ", price: " " },{ label: "Toko Bunga Kendal", category: "Collection", url: "/collections/toko-bunga-ken
7634dal", images: " ", price: " " },{ label: "Toko Bunga Kendari", category: "Collection", url: "/collections/toko-bunga-kendari", images: " ", price: " " },{ label: "Toko Bunga Ketapang", category: "Collection", url: "/collections/toko-bunga-ketapang", images: " ", price: " " },{ label: "Toko Bunga Klaten", category: "Collection", url: "/collections/toko-bunga-klaten", images: " ", price: " " },{ label: "Toko Bunga Klender", category: "Collection", url: "/collections/toko-bunga-klender", images: " ", price: " " },{ label: "Toko Bunga Kota Baru Yogyakarta", category: "Collection", url: "/collections/toko-bunga-kota-baru-yogyakarta", images: " ", price: " " },{ label: "Toko Bunga Kota Batu", category: "Collection", url: "/collections/toko-bunga-kota-batu", images: " ", price: " " },{ label: "Toko Bunga Kramat Jati", category: "Collection", url: "/collections/toko-bunga-kramat-jati", images: " ", price: " " },{ label: "Toko Bunga Kudus", category: "Collection", url: "/collections/toko-bunga-kudus", images: " ", price: " " },{ label: "Toko Bunga Kupang", category: "Collection", url: "/collections/toko-bunga-kupang", images: " ", price: " " },{ label: "Toko Bunga Lamongan", category: "Collection", url: "/collections/toko-bunga-lamongan", images: " ", price: " " },{ label: "Toko Bunga Langkat", category: "Collection", url: "/collections/toko-bunga-langkat", images: " ", price: " " },{ label: "Toko Bunga Lebak Bulus", category: "Collection", url: "/collections/toko-bunga-lebak-bulus", images: " ", price: " " },{ label: "Toko Bunga Lembang", category: "Collection", url: "/collections/toko-bunga-lembang", images: " ", price: " " },{ label: "Toko Bunga Lenteng Agung", category: "Collection", url: "/collections/toko-bunga-lenteng-agung", images: " ", price: " " },{ label: "Toko Bunga Lombok", category: "Collection", url: "/collections/toko-bunga-lombok", images: " ", price: " " },{ label: "Toko Bunga Lubuk Pakam", category: "Collection", url: "/collections/toko-bunga-lubuk-pakam", images: " ", price: " " },{ label: "Toko Bunga Lumajang", category: "Collection", url: "/collections/toko-bunga-lumajang", images: " ", price: " " },{ label: "Toko Bunga Madiun", category: "Collection", url: "/collections/toko-bunga-madiun", images: " ", price: " " },{ label: "Toko Bunga Magelang", category: "Collection", url: "/collections/toko-bunga-magelang", images: " ", price: " " },{ label: "Toko Bunga Majalengka", category: "Collection", url: "/collections/toko-bunga-majalengka", images: " ", price: " " },{ label: "Toko Bunga Makassar", category: "Collection", url: "/collections/toko-bunga-makassar", images: " ", price: " " },{ label: "Toko Bunga Malang", category: "Collection", url: "/collections/toko-bunga-malang", images: " ", price: " " },{ label: "Toko Bunga Manado", category: "Collection", url: "/collections/toko-bunga-manado", images: " ", price: " " },{ label: "Toko Bunga Mangga Besar", category: "Collection", url: "/collections/toko-bunga-mangga-besar", images: " ", price: " " },{ label: "Toko Bunga Manokwari", category: "Collection", url: "/collections/toko-bunga-manokwari", images: " ", price: " " },{ label: "Toko Bunga Maros", category: "Collection", url: "/collections/toko-bunga-maros", images: " ", price: " " },{ label: "Toko Bunga Mataram", category: "Collection", url: "/collections/toko-bunga-mataram", images: " ", price: " " },{ label: "Toko Bunga Medan", category: "Collection", url: "/collections/toko-bunga-medan", images: " ", price: " " },{ label: "Toko Bunga Mojokerto", category: "Collection", url: "/collections/toko-bunga-mojokerto", images: " ", price: " " },{ label: "Toko Bunga Nganjuk", category: "Collection", url: "/collections/toko-bunga-nganjuk", images: " ", price: " " },{ label: "Toko Bunga Ngawi", category: "Collection", url: "/collections/toko-bunga-ngawi", images: " ", price: " " },{ label: "Toko Bunga Nias", category: "Collection", url: "/collections/toko-bunga-nias", images: " ", price: " " },{ label: "Toko Bunga Nusa Tenggara", category: "Collection", url: "/collections/toko-bunga-nusa-tenggara", images: " ", price: " " },{ label: "Toko Bunga Padang", category: "Collection", url: "/collections/toko-bunga-padang", images: " ", price: " " },{ label: "Toko Bunga Palembang", category: "Collection", url: "/collections/toko-bunga-palembang", images: " ", price: " " },{ label: "Toko Bunga Palu", category: "Collection", url: "/collections/toko-bunga-palu", images: " ", price: " " },{ label: "Toko Bunga Pangkal Pinang", category: "Collection", url: "/collections/toko-bunga-pangkal-pinang", images: " ", price: " " },{ label: "Toko Bunga Papua", category: "Collection", url: "/collections/toko-bunga-papua", images: " ", price: " " },{ label: "Toko Bunga Parepare", category: "Collection", url: "/collections/toko-bunga-parepare", images: " ", price: " " },{ label: "Toko Bunga Pasar Baru", category: "Collection", url: "/collections/toko-bunga-pasar-baru", images: " ", price: " " },{ label: "Toko Bunga Pasar Minggu", category: "Collection", url: "/collections/toko-bunga-pasar-minggu", images: " ", price: " " },{ label: "Toko Bunga Pasar Rebo", category: "Collection", url: "/collections/toko-bunga-pasar-rebo", images: " ", price: " " },{ label: "Toko Bunga Pasuruan", category: "Collection", url: "/collections/toko-bunga-pasuruan", images: " ", price: " " },{ label: "Toko Bunga Pati", category: "Collection", url: "/collections/toko-bunga-pati", images: " ", price: " " },{ label: "Toko Bunga Pekalongan", category: "Collection", url: "/collections/toko-bunga-pekalongan", images: " ", price: " " },{ label: "Toko Bunga Pekanbaru", category: "Collection", url: "/collections/toko-bunga-pekanbaru", images: " ", price: " " },{ label: "Toko Bunga Pemalang", category: "Collection", url: "/collections/toko-bunga-pemalang", images: " ", price: " " }, 7635 { label: "grand salutation jabodetabek", category: "Produk", url: "/products/grand-salutation", images: "//outerbloom.com/cdn/shop/files/JKTCON1005_Grand-Salutation-Jabodetabek-WM_thumb.jpg?v=1703241523", price: "Rp 435.000" },{ label: "consolantibus jabodetabek", category: "Produk", url: "/products/consolantibus", images: "//outerbloom.com/cdn/shop/files/JKTDUK1011_Consolantibus-Jabodetabek-WM_thumb.jpg?v=1703239823", price: "Rp 435.000" },{ label: "classic midnight hand bouquet fiery red", category: "Produk", url: "/products/the-classic-midnight-hand-bouquet-fiery-red", images: "//outerbloom.com/cdn/shop/files/OBVBUN1422_Classic-Midnight-Hand-Bouquet---Fiery-Red-large_thumb.jpg?v=1757302521", price: "Rp 385.000" },{ label: "enchanted dome passionate red", category: "Produk", url: "/products/enchanted-dome-passionate-red", images: "//outerbloom.com/cdn/shop/files/Enchanted-dome-red-new-box_3_2_26c081bf-f2a5-42b4-9ce4-3c0304c498e5_thumb.jpg?v=1712639476", price: "Rp 1.435.000" },{ label: "endearing ruby", category: "Produk", url: "/products/endearing-ruby", images: "//outerbloom.com/cdn/shop/products/OUTSTF1003_Endearing-Ruby_thumb.jpg?v=1631296611", price: "Rp 585.000" },{ label: "gentle soul jabodetabek", category: "Produk", url: "/products/gentle-soul-jabodetabek", images: "//outerbloom.com/cdn/shop/files/JKTDUK1030_Gentle-Soul-Jabodetabek-WM_thumb.jpg?v=1703239894", price: "Rp 435.000" },{ label: "belleza jabodetabek", category: "Produk", url: "/products/belleza", images: "//outerbloom.com/cdn/shop/files/Belleza-Jabodetabek-LED_aecb756a-0737-45cc-8bfb-008515ca0a37_thumb.gif?v=1759229680", price: "Rp 435.000" }
7635,{ label: "majestic pink roses with baby breath bouquet", category: "Produk", url: "/products/majestic-pink-roses-with-baby-breath-bouquet", images: "//outerbloom.com/cdn/shop/products/ef4a3be9-c938-4c70-98ac-4873e7da82bf_90820a66-923a-463d-a464-81bcbe6e6644_thumb.jpg?v=1581413440", price: "Rp 485.000" },{ label: "sentiments jabodetabek", category: "Produk", url: "/products/sentiments", images: "//outerbloom.com/cdn/shop/files/Sentiments-Jabodetabek-WM_thumb.jpg?v=1759224099", price: "Rp 485.000" },{ label: "rose poetry bouquet", category: "Produk", url: "/products/rose-poetry-bouquet", images: "//outerbloom.com/cdn/shop/products/Rose-Poetry-Bouquet-20-tangkai_thumb.jpg?v=1675151039", price: "Rp 385.000" },{ label: "genuine feeling", category: "Produk", url: "/products/genuine-feeling", images: "//outerbloom.com/cdn/shop/products/OUTSTF1004Genuine-Feeling_981ade89-af27-433e-81aa-8d76175a0e4d_thumb.jpg?v=1612352389", price: "Rp 585.000" },{ label: "eternal fidelity jabodetabek", category: "Produk", url: "/products/eternal-fidelity-jabodetabek", images: "//outerbloom.com/cdn/shop/products/0b89df45-dcc1-4876-820e-61b2243a1945_964e211d-2972-46c9-8593-976210929089_thumb.jpg?v=1590491458", price: "Rp 435.000" },{ label: "rosabelle hand bouquet", category: "Produk", url: "/products/rosabelle-hand-bouquet", images: "//outerbloom.com/cdn/shop/files/OBVBUN1429_Rosabelle-Hand-Bouquet-Medium_thumb.jpg?v=1756971848", price: "Rp 385.000" },{ label: "dreaming in pink luxury in vase", category: "Produk", url: "/products/dreaming-in-pink-luxury-in-vase", images: "//outerbloom.com/cdn/shop/products/OBVBUN1051_Dreaming-In-Pink-Luxury-In-Vase_3_thumb.jpg?v=1614594504", price: "Rp 735.000" },{ label: "excito jabodetabek", category: "Produk", url: "/products/excito", images: "//outerbloom.com/cdn/shop/files/JKTCON1010_Excito-Jabodetabek-2023_thumb.gif?v=1717494677", price: "Rp 485.000" },{ label: "golden toast jabodetabek", category: "Produk", url: "/products/golden-toast", images: "//outerbloom.com/cdn/shop/products/LED-GoldenToast_thumb.gif?v=1579249585", price: "Rp 485.000" },{ label: "spirit of eminance jabodetabek", category: "Produk", url: "/products/spirit-of-eminance-jabodetabek", images: "//outerbloom.com/cdn/shop/files/JKTCON1026_Spirit-of-Eminance-Jabodetabek-newest-WM_thumb.jpg?v=1693297526", price: "Rp 485.000" },{ label: "white elysian bloom box", category: "Produk", url: "/products/white-elysian-bloom-box", images: "//outerbloom.com/cdn/shop/files/OBVBUN1704_White-Elysian-Bloom-Box_thumb.jpg?v=1757328247", price: "Rp 685.000" },{ label: "charming forevermore jabodetabek", category: "Produk", url: "/products/charming-forevermore-jabodetabek", images: "//outerbloom.com/cdn/shop/files/JKTWED1036_Charming-Forevermore-Jabodetabek-WM_thumb.jpg?v=1703239534", price: "Rp 485.000" },{ label: "moment of glory jabodetabek", category: "Produk", url: "/products/moment-of-glory-jabodetabek", images: "//outerbloom.com/cdn/shop/products/JKTCON1051_Moment-of-Glory-Jabodetabek_2_thumb.jpg?v=1596614663", price: "Rp 385.000" },{ label: "sweet romance jabodetabek", category: "Produk", url: "/products/sweet-romance", images: "//outerbloom.com/cdn/shop/products/JKTWED1005_Sweet-Romance-Jabodetabek_thumb.gif?v=1677134791", price: "Rp 635.000" },{ label: "with love bouquet", category: "Produk", url: "/products/with-love-bouquet", images: "//outerbloom.com/cdn/shop/products/c5d6fed6-8ada-4c38-ae0f-36d395aacb19_613f78f0-d52c-443b-9e13-63a151cd8ec5_thumb.jpg?v=1590748429", price: "Rp 535.000" },{ label: "sunflower yellow and with white daisies in vase", category: "Produk", url: "/products/sunflower-yellow-roses-with-white-and-yellow-daisies-in-a-glass-vase", images: "//outerbloom.com/cdn/shop/files/OBVBUN1132_Sunflower-Yellow-And-With-White-Daisies-in-Vase_thumb.jpg?v=1757930628", price: "Rp 435.000" },{ label: "everlasting peace jabodetabek", category: "Produk", url: "/products/everlasting-peace-jabodetabek", images: "//outerbloom.com/cdn/shop/products/JKTDUK1034_Everlasting-Peace-Jabodetabek_2_thumb.jpg?v=1596614613", price: "Rp 385.000" },{ label: "astoria passionate red", category: "Produk", url: "/products/astoria-passionate-red", images: "//outerbloom.com/cdn/shop/products/Astoria-passionate-red_b59b26f6-c39d-46d3-adcb-262c675bb16f_thumb.jpg?v=1633502742", price: "Rp 685.000" },{ label: "classic purple orchid majesty in vase", category: "Produk", url: "/products/classic-purple-orchid-majesty-in-vase", images: "//outerbloom.com/cdn/shop/products/Classic-Purple-Orchid-Majesty-in-Vase---White---4-Tangkai_40a5e337-283f-40f5-911c-5df9b506b9da_thumb.jpg?v=1639981404", price: "Rp 435.000" },{ label: "passion rouge bloom box", category: "Produk", url: "/products/passion-rouge-bloom-box", images: "//outerbloom.com/cdn/shop/files/OBVBUN1725_Passion-Rouge-Bloom-Box_thumb.jpg?v=1756972410", price: "Rp 385.000" },{ label: "classic white orchid majesty in vase", category: "Produk", url: "/products/classic-white-orchid-majesty-in-vase", images: "//outerbloom.com/cdn/shop/products/Classic-white-Orchid-Majesty-in-Vase---white---4-Tangkai_thumb.jpg?v=1644205542", price: "Rp 435.000" }
7635,{ label: "majestic blue romance bouquet", category: "Produk", url: "/products/majestic-blue-romance-bouquet", images: "//outerbloom.com/cdn/shop/files/OBVBUN1357_Majestic-Blue-Romance-Bouquet_99b8ba96-0e67-4eef-a00e-b2daedcddb6a_thumb.jpg?v=1757390540", price: "Rp 435.000" },{ label: "sincerely", category: "Produk", url: "/products/sincerely", images: "//outerbloom.com/cdn/shop/files/Sincerely-WM_thumb.jpg?v=1688354677", price: "Rp 585.000" },{ label: "happy days jabodetabek", category: "Produk", url: "/products/happy-days-jabodetabek", images: "//outerbloom.com/cdn/shop/files/Happy-Days-Jabodetabek_WM_thumb.jpg?v=1759224026", price: "Rp 485.000" },{ label: "solemn comfort jabodetabek", category: "Produk", url: "/products/solemn-comfort-jabodetabek", images: "//outerbloom.com/cdn/shop/products/7fe123d8-6bb2-4c0d-bd4c-f8c3032823f2_6b9c33b6-4a23-41cb-8709-fc9223fe096a_thumb.png?v=1590662086", price: "Rp 635.000" },{ label: "big dreams jabodetabek", category: "Produk", url: "/products/big-dreams", images: "//outerbloom.com/cdn/shop/files/JKTCON1002_Big-Dreams-Jabodetabek_thumb.gif?v=1717494603", price: "Rp 485.000" },{ label: "signature ramadan deluxe hampers", category: "Produk", url: "/products/outerbloom-signature-ramadhan-deluxe-hampers", images: "//outerbloom.com/cdn/shop/files/Signature-Deluxe-Hampers_thumb.jpg?v=1739242254", price: "Rp 985.000" },{ label: "amorous amos jabodetabek", category: "Produk", url: "/products/amorous-amos-jabodetabek", images: "//outerbloom.com/cdn/shop/files/Amorous-Amos-Jabodetabek-WM_thumb.jpg?v=1759224071", price: "Rp 485.000" },{ label: "pink darling bouquet", category: "Produk", url: "/products/pink-darling-bouquet", images: "//outerbloom.com/cdn/shop/products/Pink-Darling-Bouquet_thumb.jpg?v=1669969725", price: "Rp 485.000" },{ label: "black pink bouquet", category: "Produk", url: "/products/black-pink-bouquet", images: "//outerbloom.com/cdn/shop/files/Black-Pink-Bouquet_thumb.jpg?v=1756434063", price: "Rp 485.000" },{ label: "profound happiness jabodetabek", category: "Produk", url: "/products/profound-happiness-jabodetabek", images: "//outerbloom.com/cdn/shop/files/profound-happiness_thumb.gif?v=1689940309", price: "Rp 635.000" },{ label: "healing trove", category: "Produk", url: "/products/healing-trove", images: "//outerbloom.com/cdn/shop/products/2ef5379f-27a6-41ba-85c7-c65cf3ec3f08_thumb.jpg?v=1571471845", price: "Rp 485.000" },{ label: "sincerity solace", category: "Produk", url: "/products/sincerity-solace", images: "//outerbloom.com/cdn/shop/products/OUTSTF1038_sincerity-solace-WM_thumb.jpg?v=1612352477", price: "Rp 485.000" },{ label: "bellarosa bloom box", category: "Produk", url: "/products/bellarosa-bloom-box", images: "//outerbloom.com/cdn/shop/files/OBVBUN1783_Bellarosa-Bloom-Box_c0000424-411c-48ed-abf4-0de7d925ea53_thumb.jpg?v=1757316757", price: "Rp 785.000" } 7636 ]; 7637 7638 7639 $( ".header-input-search" ).catcomplete({ 7640 appendTo: ".searchResult",source: function(request, response) { 7641 var results = $.ui.autocomplete.filter(data, request.term); 7642 var predicate = function () { 7643 var counter = { Collection: 0, Produk: 0 }; 7644 var fn = function(item) {counter[item.category] += 1;return (counter[item.category] <= 5);} 7645 return fn 7646 }(); 7647 response(results.filter(predicate)); 7648 }, 7649 minLength:1, 7650 //results are clickable 7651 select: function( event, ui ) {window.location = ui.item.url;} 7652 }); 7653 $( ".header-input-search2" ).catcomplete({ 7654 appendTo: ".searchResult2", 7655 source: function(request, response) { 7656 var results = $.ui.autocomplete.filter(data, request.term); 7657 var predicate = function () { 7658 var counter = { Collection: 0, Produk: 0 }; 7659 var fn = function(item) { 7660 counter[item.category] += 1; 7661 return (counter[item.category] <= 5); 7662 } 7663 return fn 7664 }(); 7665 response(results.filter(predicate)); 7666 }, 7667 minLength:1, 7668 //results are clickable 7669 select: function( event, ui ) { 7670 window.location = ui.item.url; 7671 } 7672 }); 7673 }); 7674 </script>
7674 7675 7676
7676<script src="//outerbloom.com/cdn/shop/t/138/assets/vendors.js?v=6349622868601634021752652419" defer></script>
7676 7677
7677<script src="//outerbloom.com/cdn/shop/t/138/assets/app.js?v=136050180318808583701752652452" defer></script>
7677 7678 7679
7679<script> 7680 ( function() { 7681 var youtube = document.querySelectorAll( ".youtube" ); 7682 for (var i = 0; i < youtube.length; i++) { 7683 var source = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault_1x.jpg"; 7684 var datasource = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault.jpg"; 7685 var image = new Image(); 7686 image.src = source; 7687 image.setAttribute("data-src", datasource); 7688 image.classList.add("swiper-lazy"); 7689 image.addEventListener( "load", function() { 7690 youtube[ i ].appendChild( image ); 7691 }( i ) ); 7692 youtube[i].addEventListener( "click", function() { 7693 var iframe = document.createElement( "iframe" ); 7694 iframe.setAttribute( "width", "480" ); 7695 iframe.setAttribute( "height", "480" ); 7696 iframe.setAttribute( "frameborder", "0" ); 7697 iframe.setAttribute( "allowfullscreen", "" ); 7698 iframe.setAttribute( "src", "https://www.youtube.com/embed/"+ this.dataset.embed +"?rel=0&showinfo=0&autoplay=1" ); 7699 this.innerHTML = ""; 7700 this.appendChild( iframe ); 7701 } ); 7702 }; 7703 7704 } )(); 7705 7706 /* Lazy Load */ 7707 const mainLazyLoad = new LazyLoad({threshold:400}); 7708 $(document).ready(function(){ 7709 7710 $("selectxxx").addClass("needsclick"); 7711 FastClick.attach(document.body); 7712 7713 var $customSelects = $('.select-search'); 7714 $customSelects.select2({ 7715 templateResult: function(result, container) { 7716 if (!result.id) { 7717 return result.text; 7718 } 7719 container.className += ' needsclick'; 7720 return result.text; 7721 } 7722 }); 7723 $customSelects.each(function(index, el){$(el).data('select2').$container.find('*').addClass('needsclick');}); 7724 $(document).on('select2:open', () => { 7725 document.querySelector('.select2-search__field').focus(); 7726 }); 7727 7728 7729 $(".overlay").click(function(){ 7730 $(".js-drawer-close").click(); 7731 }); 7732 $(".site-nav--mobile .js-drawer-open-left, #NavDrawer .icon-close, .overlay-nav").click(function(){ 7733 $("html").toggleClass("nav_open"); 7734 }); 7735 7736 $('.swatch-element label').on('click', function(){ 7737 var srcImg = $(this).data('src'); 7738 $('#thumb-image-product .product-single__thumbnail').each(function(){ 7739 if ($(this).attr("href") == srcImg) { 7740 $(this).trigger('click'); 7741 } 7742 }); 7743 }); 7744 var defaultValue = $(".swatch input:checked").val() 7745 7746 $('#purchaseProduct .swatch [type=radio]').change(function() { 7747 var optionIndex = $(this).closest('.swatch').attr('data-option-index'); 7748 var optionValue = $(this).val(); 7749 console.log(optionIndex, optionValue) 7750 var value = parseInt(optionValue.split(' ')[0]) 7751 $(this) 7752 .closest('#purchaseProduct') 7753 .find('.single-option-selector') 7754 .eq(optionIndex) 7755 .val(optionValue) 7756 .trigger('change'); 7757 7758 }); 7759 7760 }); 7761 $(document).ready(function(){ 7762 $(".nav-search a").click(function(e){ 7763 e.preventDefault(); 7764 $(".icon-navsearch").toggle(); 7765 $(".icon-navclose").toggle(); 7766 $(".site-nav__item > .site-nav__link").toggle(); 7767 $(".open-search").toggle(); 7768 $(".open-search input").focus(); 7769 }); 7770 $(".best-price-guarantee").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/logo-best-price-guarantee-grid_75x.png?v=72489032173169839651752652420' alt='Logo Best Price Guarantee'>"); 7771 if ($(window).width() < 768) { 7772 $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_75x.png?v=82732945490105366961752652419' alt='Icon Valentine'>"); 7773 $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_45x.png?v=101884295148001743851752652418' alt='Icon CNY'>"); 7774 $(".bg-products .label-tag.free-valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/free-valentine_150x.png?v=171641187769238175351752652421' alt='Icon Free Valentine'>"); 7775 } else { 7776 $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_60x.png?v=82732945490105366961752652419' alt='Icon Valentine'>"); 7777 $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_60x.png?v=101884295148001743851752652418' alt='Icon CNY'>"); 7778 $(".bg-products .label-tag.free-valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/free-valentine_200x.png?v=171641187769238175351752652421' alt='Icon Free Valentine'>"); 7779 } 7780 $(".bg-products .label-tag.free-cookies").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/free-cookies_80x.png?51468' alt='Icon Free Cookies'>"); 7781 $(".bg-products .label-tag.mothersday").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/mothers-day_70x.png?v=171373711354766377891752652419' alt='Icon Mothers day'>"); 7782 }); 7783 </script>
7783 7784 7785 7786 7787 7788
7788<script type="text/javascript"> 7789 var wishlistpage = 0; 7790 7791 var quickShop_money_format="<span class='money'>"+"Rp {{amount_no_decimals}}"+"</span>"; 7792 </script>
7792 7793 7794 <!-- Remove duplicate wishlist.js reference --> 7795 <style> 7796 .fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999999;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.fade.in{opacity:1}.modal-open .modal{overflow-x:hidden;overflow-y:auto;z-index:999999;background-color:rgba(0,0,0,.3)}.modal-dialog{position:relative;width:auto;margin:10px}.wishlist-model .modal-dialog{width:700px}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.wishlist-model .modal-content{}.wishlist-model .modal-header{min-height:0;padding:0;border-bottom:0}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #121212;filter:alpha(opacity=20);opacity:.2}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-header .close{margin-top:-2px}.wishlist-model .close{position:absolute;top:-10px;right:-10px;background:#fff;opacity:1;width:30px;height:30px;font-size:15px;border-radius:50%;z-index:10;box-shadow:0 1px 4px 0 #121212}.wishlist-model .close .icon-close{width:25px;height:25px}.modal-body{position:relative;padding:15px}.wishlist-model .modal-body{padding:0 30px;display:flex}.wishlist-model .wishlist-left{width:66.67%;border-right:1px solid #ccc;padding:30px 0}.wishlist-model .wishlist-note{position:relative;display:inline-block;margin-bottom:20px;margin-left:35px;border-bottom:1px solid #121212;color:#121212}.wishlist-model .wishlist-note a{color: #ffffff;}.wishlist-model .wishlist-note .cirle{position:absolute;top:-4px;left:-35px;width:25px;height:25px;color:#fff;background:#121212;line-height:25px;border-radius:50%;text-align:center}.wishlist-model .wishlist-note svg{fill:#fff}.wishlist-model .wishlist-note .cirle .icon-check{vertical-align:middle}.wishlist-model .product-left{width:33.33%;float:left;margin-right:30px}.wishlist-model .wishlist-image{overflow:hidden}.wishlist-model .wishlist-image img{transition:all .3s linear}.wishlist-model .wishlist-name{padding:0;margin-bottom:10px}.wishlist-model .wishlist-name a{color: #ffffff;}.wishlist-model .wishlist-price{margin-bottom:10px}.wishlist-model .wishlist-price .price{font-weight:700;margin-right:10px;font-size:15px}.wishlist-model .wishlist-price .price_compare{color:#ccc}.wishlist-model .wishlist-right{width:33.33%;padding:30px 0;padding-left:30px}.wishlist-model .btn-quick-shop{width:100%;border-color:#121212;background:#fff;color:#121212;padding:0 30px;transition:all .2s linear;height:36px;margin-bottom:10px;text-transform:uppercase}.wishlist-model .btn-cta{width:100%;font-size:1em;border-color:#ffffff;background:#ffffff;color:#fff;padding:0;transition:all .2s linear;height:36px;line-height:36px;margin-bottom:10px}.wishlist-model .quantity-content{text-align:center}.wishlist-model .quantity-content input{outline:none;text-align:center;font-weight:600;border:1px solid #121212}.wishlist-model .quantity-content button{border-color:#121212}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}} 7797 </style> 7798 7799 <div class="modal fade" id="modalwishlist0" tabindex="-1" role="dialog"> 7800 <div class="modal-dialog" role="document"> 7801 <div class="modal-content"> 7802 <div class="modal-body">Your Wishlist is empty!</div> 7803 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> 7804 </div> 7805 </div> 7806 </div> 7807 7808 <div class="wishlist-model"> 7809 <div class="modal fade" id="modalwishlist1" tabindex="-1" role="dialog" aria-hidden="true"> 7810 <div class="modal-dialog white-modal"> 7811 <div class="modal-content"> 7812 <div class="modal-header"> 7813 <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 7814 <svg class="icon icon-close" version="1.1" xmlns="logoweb.png" width="32" height="32" viewBox="0 0 32 32"> 7815 <title>icon-close</title> 7816 <path d="M16.943 16l8.862 8.862c0.26 0.26 0.26 0.682 0 0.943s-0.682 0.26-0.943 0l-8.862-8.862-8.862 8.862c-0.26 0.26-0.682 0.26-0.943 0s-0.26-0.682 0-0.943l8.862-8.862-8.862-8.862c-0.26-0.26-0.26-0.682 0-0.943s0.682-0.26 0.943 0l8.862 8.862 8.862-8.862c0.26-0.26 0.682-0.26 0.943 0s0.26 0.682 0 0.943l-8.862 8.862z"></path> 7817 </svg> 7818 </button> 7819 </div> 7820 <div class="modal-body"> 7821 <div class="wishlist-left"> 7822 <div class="wishlist-note">
7823 <span class="cirle"><svg version="1.1" xmlns="logoweb.png" width="32" height="32" viewBox="0 0 32 32"> 7824 <title>icon-check</title> 7825 <path d="M12 21.766l14.218-12.926c0.272-0.248 0.694-0.228 0.942 0.045s0.228 0.694-0.045 0.942l-14.667 13.333c-0.254 0.231-0.643 0.231-0.897 0l-6.667-6.061c-0.272-0.248-0.293-0.669-0.045-0.942s0.669-0.293 0.942-0.045l6.218 5.653z"></path> 7826 </svg></span> 7827 Product added to <a href="/pages/wish-list">Wishlist</a> 7828 </div> 7829 <div class="wishlist-product"> 7830 <div class="product-left"> 7831 <div class="wishlist-image"></div> 7832 </div> 7833 <div class="product-right"> 7834 <div class="wishlist-name"></div> 7835 <div class="wishlist-price"></div> 7836 </div> 7837 </div> 7838 </div> 7839 <div class="wishlist-right"> 7840 <div class="wishlist-cart"> 7841 <form action="/cart/add" method="post" class="variants-form variants" id="AddToCartForm" enctype="multipart/form-data"> 7842 <div class="others-bottom"> 7843 <a class="btn btn-quick-shop" href="/pages/wish-list">View Wishlist</a> 7844 <button type="submit" name="add" id="AddToCart" class="btn btn-cta"> 7845 <span id="AddToCartText" class="">Beli Sekarang</span> 7846 </button> 7847 </div> 7848 <div id="wishlist-variants-container" class="variants-wrapper"></div> 7849 <div class="quantity-content"> 7850 <label>QTY</label> 7851 <input type="number" size="5" class="" name="quantity" value="1" /> 7852 </div> 7853 </form> 7854 </div> 7855 </div> 7856 </div> 7857 </div> 7858 </div> 7859 </div> 7860 </div> 7861 7862 7863 <style> 7864 .stamped-badge[data-rating="0.0"]{display: none !Important;} 7865 7866 div[data-load-type="continue"] ul.stamped-pagination li.next a, div[data-widget-load-type="continue"] ul.stamped-pagination li.next a { 7867 border-radius: 0px; 7868 } 7869 .stamped-review-body { 7870 padding-left: 0px !important; 7871 } 7872 #product-reviews .stamped-header:after { 7873 display:none !Important; 7874 } 7875 #stamped-main-widget .stamped-container, .stamped-badge-caption,#stamped-reviews-widget { 7876 font-family:inherit !important; 7877 } 7878 </style> 7879 7880 7881 7882 <div id='stamped-rewards-init' class='stamped-rewards-init' 7883 data-key-public='' 7884 7885 ></div> 7886 7887
7887<script src="//outerbloom.com/cdn/shop/t/138/assets/variant-sku-handler.js?v=91239063692820757781752652418" defer></script>
7887 7888 <!-- Remove duplicate jQuery reference and load wishlist script properly --> 7889
7889<script src="//outerbloom.com/cdn/shop/t/138/assets/wishlist-fixed.js?v=35991423018869066281754360012" defer></script>
7889 7890 7891
7891<script> 7892 function myInit(){ StampedFn.init({ apiKey: 'pubkey-hCS8DHE9QbBHhHN89WXFkuJ0Y3422D', sId: '23462' }); } 7893 </script>
7893 7894
7894<script async onload="myInit()" type="text/javascript" src="https://cdn1.stamped.io/files/widget.min.js"></script>
7894<style> 7895 .jss59 { 7896 background-color: rgba(0, 0, 0, 0.6); 7897 } 7898 .MuiBackdrop-root { 7899 top: 0; 7900 left: 0; 7901 right: 0; 7902 bottom: 0; 7903 display: flex; 7904 z-index: -1; 7905 position: fixed; 7906 align-items: center; 7907 justify-content: center; 7908 background-color: rgba(0, 0, 0, 0.5); 7909 -webkit-tap-highlight-color: transparent; 7910 } 7911 .MuiDialog-scrollPaper { 7912 display: flex; 7913 align-items: center; 7914 justify-content: center; 7915 } 7916 .MuiDialog-container { 7917 height: 100%; 7918 outline: 0; 7919 } 7920 .MuiPaper-elevation24 { 7921 box-shadow: 0px 11px 15px -7px rgba(0,0,0,0.2), 0px 24px 38px 3px rgba(0,0,0,0.14), 0px 9px 46px 8px rgba(0,0,0,0.12); 7922 } 7923 .MuiDialog-paper { 7924 margin: 32px; 7925 position: relative; 7926 overflow-y: auto; 7927 } 7928 .MuiDialog-paperScrollPaper { 7929 display: flex; 7930 max-height: calc(100% - 64px); 7931 flex-direction: column; 7932 } 7933 .MuiDialog-paperWidthSm { 7934 max-width: 600px; 7935 } 7936 #location-lock-dialog { 7937 top: 20%; 7938 left: 0; 7939 right: 0; 7940 width: 30%; 7941 margin: 0px auto; 7942 display: block; 7943 padding: 30px; 7944 z-index: 99999; 7945 position: fixed; 7946 font-size: 14px; 7947 background: rgb(0, 0, 0); 7948 box-shadow: rgba(11, 11, 12, 0.2) 2px 4px 5px 0px; 7949 text-align: center; 7950 font-family: Roboto, Arial, sans-serif; 7951 line-height: 1; 7952 border-radius: 8px; 7953 -webkit-font-smoothing: subpixel-antialiased; 7954 } 7955 .MuiButtonBase-root { 7956 color: inherit; 7957 border: 0; 7958 cursor: pointer; 7959 margin: 0; 7960 display: inline-flex; 7961 outline: 0; 7962 padding: 0; 7963 position: relative; 7964 align-items: center; 7965 user-select: none; 7966 border-radius: 0; 7967 vertical-align: middle; 7968 -moz-appearance: none; 7969 justify-content: center; 7970 text-decoration: none; 7971 background-color: transparent; 7972 -webkit-appearance: none; 7973 -webkit-tap-highlight-color: transparent; 7974 } 7975 .MuiIconButton-root { 7976 flex: 0 0 auto; 7977 color: rgba(0, 0, 0, 0.54); 7978 padding: 12px; 7979 overflow: visible; 7980 font-size: 1.5rem; 7981 text-align: center; 7982 transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 7983 border-radius: 50%; 7984 } 7985 .MuiIconButton-label { 7986 width: 100%; 7987 display: flex; 7988 align-items: inherit; 7989 justify-content: inherit; 7990 } 7991 .MuiSvgIcon-root { 7992 fill: currentColor; 7993 width: 1em; 7994 height: 1em; 7995 display: inline-block; 7996 font-size: 1.5rem; 7997 transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 7998 flex-shrink: 0; 7999 user-select: none; 8000 } 8001 .MuiTouchRipple-root { 8002 top: 0; 8003 left: 0; 8004 right: 0; 8005 bottom: 0; 8006 z-index: 0; 8007 overflow: hidden; 8008 position: absolute; 8009 border-radius: inherit; 8010 pointer-events: none; 8011 } 8012 .jss36 { 8013 color: #222222; 8014 font-size: 24px; 8015 font-family: Roboto, Arial, sans-serif; 8016 font-weight: 500; 8017 } 8018 .jss37 { 8019 color: #555555; 8020 padding: 10px 0px 0px; 8021 font-size: 14px; 8022 } 8023 .MuiFormGroup-root { 8024 display: flex; 8025 flex-wrap: wrap; 8026 flex-direction: column; 8027 } 8028 .MuiFormGroup-row { 8029 flex-direction: row; 8030 } 8031 .jss63 { 8032 width: 85%; 8033 margin: 15px auto; 8034 display: flex; 8035 padding: 11px 0px 0px; 8036 justify-content: space-evenly; 8037 } 8038 .MuiFormControlLabel-root { 8039 cursor: pointer; 8040 display: inline-flex; 8041 align-items: center; 8042 margin-left: -11px; 8043 margin-right: 16px; 8044 vertical-align: middle; 8045 -webkit-tap-highlight-color: transparent; 8046 } 8047 .jss70 { 8048 margin: 0; 8049 } 8050 .MuiButtonBase-root { 8051 color: inherit; 8052 border: 0; 8053 cursor: pointer; 8054 margin: 0; 8055 display: inline-flex; 8056 outline: 0; 8057 padding: 0; 8058 position: relative; 8059 align-items: center; 8060 user-select: none; 8061 border-radius: 0; 8062 vertical-align: middle; 8063 -moz-appearance: none; 8064 justify-content: center; 8065 text-decoration: none; 8066 background-color: transparent; 8067 -webkit-appearance: none; 8068 -webkit-tap-highlight-color: transparent; 8069 } 8070 .MuiIconButton-root { 8071 flex: 0 0 auto; 8072 color: rgba(0, 0, 0, 0.54); 8073 padding: 12px; 8074 overflow: visible; 8075 font-size: 1.5rem; 8076 text-align: center; 8077 transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 8078 border-radius: 50%; 8079 } 8080 .MuiIconButton-colorSecondary { 8081 color: #f50057; 8082 } 8083 .jss71 { 8084 padding: 9px; 8085 } 8086 .MuiRadio-root { 8087 color: rgba(0, 0, 0, 0.54); 8088 } 8089 .jss64 { 8090 padding: 2px; 8091 } 8092 .MuiRadio-colorSecondary.Mui-checked { 8093 color: #f50057; 8094 } 8095 .MuiIconButton-label { 8096 width: 100%; 8097 display: flex; 8098 align-items: inherit; 8099 justify-content: inherit; 8100 } 8101 .MuiTypography-root { 8102 margin: 0; 8103 } 8104 .MuiTypography-body1 { 8105 font-size: 18px; 8106 font-family: Roboto,sans-serif; 8107 font-weight: 400; 8108 line-height: 1.5; 8109 } 8110 .location-popup_area-block__sp9Ws { 8111 display: -moz-box; 8112 display: flex; 8113 -moz-box-orient: vertical; 8114 -moz-box-direction: normal; 8115 flex-direction: column; 8116 -moz-box-pack: center; 8117 justify-content: center; 8118 position: relative; 8119 margin: 10px 10% 0;
8120 } 8121 .location-popup_pin-search-box__3l5mJ { 8122 width: 100%; 8123 display: -moz-box; 8124 display: flex; 8125 -moz-box-align: center; 8126 align-items: center; 8127 } 8128 .location-popup_place-icon-city__1XAX5, .location-popup_place-icon__jSG0Q { 8129 position: absolute; 8130 z-index: 999; 8131 } 8132 .location-popup_place-icon__jSG0Q { 8133 color: #ffffff; 8134 padding-left: 8px; 8135 } 8136 .location-popup_place-icon__jSG0Q svg { 8137 width: 18px; 8138 height: 18px; 8139 } 8140 .location-popup_cancel-icon__FHujU { 8141 color: #fff; 8142 right: 10px; 8143 width: 16px; 8144 cursor: pointer; 8145 height: 16px; 8146 display: none; 8147 padding: 5px; 8148 position: absolute; 8149 background: #999; 8150 text-align: center; 8151 border-radius: 50%; 8152 } 8153 .location-popup_pin-search-box__3l5mJ>div>select { 8154 /* -webkit-box-shadow: 0 0 10px #ffffff; 8155 box-shadow: 0 0 10px #ffffff; */ 8156 text-transform: capitalize; 8157 border: 1px solid #ffffff; 8158 color: #ffffff; 8159 width: 100%; 8160 margin: 0; 8161 display: -moz-box; 8162 display: flex; 8163 padding: 0 30px; 8164 -webkit-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8165 -moz-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8166 animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8167 font-size: 16px; 8168 border-radius: 4px; 8169 height: 44px; 8170 moz-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite; 8171 webkit-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite; 8172 } 8173 .MuiButtonBase-root { 8174 color: inherit; 8175 border: 0; 8176 cursor: pointer; 8177 margin: 0; 8178 display: inline-flex; 8179 outline: 0; 8180 padding: 0; 8181 position: relative; 8182 align-items: center; 8183 user-select: none; 8184 border-radius: 0; 8185 vertical-align: middle; 8186 -moz-appearance: none; 8187 justify-content: center; 8188 text-decoration: none; 8189 background-color: transparent; 8190 -webkit-appearance: none; 8191 -webkit-tap-highlight-color: transparent; 8192 } 8193 .MuiButton-root { 8194 color: rgba(0, 0, 0, 0.87); 8195 padding: 6px 16px; 8196 font-size: 0.875rem; 8197 min-width: 64px; 8198 box-sizing: border-box; 8199 transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 8200 font-family: Roboto,sans-serif; 8201 font-weight: 500; 8202 line-height: 1.75; 8203 border-radius: 4px; 8204 text-transform: uppercase; 8205 } 8206 .MuiButton-contained { 8207 color: rgba(0, 0, 0, 0.87); 8208 box-shadow: 0px 3px 1px -2px rgba(0,0,0,0.2), 0px 2px 2px 0px rgba(0,0,0,0.14), 0px 1px 5px 0px rgba(0,0,0,0.12); 8209 background-color: #e0e0e0; 8210 } 8211 .MuiButtonBase-root.Mui-disabled { 8212 cursor: default; 8213 pointer-events: none; 8214 } 8215 .MuiButton-label { 8216 width: 100%; 8217 display: inherit; 8218 align-items: inherit; 8219 justify-content: inherit; 8220 } 8221 .cartButton_login_content__2j1f7 { 8222 display: -moz-box; 8223 display: flex; 8224 text-align: center; 8225 z-index: 9; 8226 font-size: 18px; 8227 font-weight: 500; 8228 color: #fff; 8229 } 8230 8231 .jss35 { 8232 top: 5px; 8233 right: 5px; 8234 padding: 4px; 8235 position: absolute; 8236 border-radius: 50%; 8237 } 8238 .jss67 { 8239 cursor: pointer; 8240 font-size: 15px; 8241 line-height: 1.3; 8242 padding-left: 5px; 8243 } 8244 .jss69 { 8245 color: #222222; 8246 } 8247 .jss80 { 8248 color: #fff; 8249 width: 100%; 8250 height: 52px; 8251 padding: 11px 16px; 8252 font-size: 18px; 8253 min-width: 88px; 8254 min-height: 36px; 8255 transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 8256 font-weight: 500; 8257 line-weight: 1em; 8258 border-radius: 4px; 8259 text-transform: uppercase; 8260 background-color: #ff6600; 8261 } 8262 @media (min-width: 991px){ 8263 .cartButton_login_content__2j1f7 { 8264 font-weight: 500; 8265 } 8266 } 8267 8268 @media (max-width: 992px) { 8269 #location-lock-dialog { 8270 width: 100%; 8271 top: auto; 8272 bottom: 0; 8273 padding-left: 0; 8274 padding-right: 0; 8275 } 8276 .MuiFormGroup-row { 8277 display: block 8278 } 8279 .MuiIconButton-label input { 8280 margin: 0; 8281 } 8282 } 8283 </style> 8284 <div role="presentation" class="MuiDialog-root jss34" style="display: none;position: fixed; z-index: 9999; inset: 0px;"> 8285 <div class="MuiBackdrop-root" aria-hidden="true" style="opacity: 1; transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"></div> 8286 <div tabindex="0" data-test="sentinelStart"></div> 8287 <div class="MuiDialog-container MuiDialog-scrollPaper" role="none presentation" tabindex="-1" style="opacity: 1; transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"> 8288 <div class="MuiPaper-root MuiDialog-paper MuiDialog-paperScrollPaper MuiDialog-paperWidthSm MuiPaper-elevation24 MuiPaper-rounded" role="dialog"> 8289 <div class="jss31 undefined" id="location-lock-dialog"> 8290 <button id="close-popup-delivery" class="MuiButtonBase-root MuiIconButton-root jss35" tabindex="0" type="button" aria-label="close">
8291 <span class="MuiIconButton-label"> 8292 <svg class="MuiSvgIcon-root" focusable="false" viewBox="0 0 24 24" aria-hidden="true"> 8293 <path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path> 8294 </svg> 8295 </span> 8296 <span class="MuiTouchRipple-root"></span> 8297 </button> 8298 <div> 8299 <div class="jss36">Select Delivery Location</div> 8300 <div class="jss37">Select a delivery location to see product availability</div> 8301 </div> 8302 <div class="MuiFormGroup-root jss63 MuiFormGroup-row" role="radiogroup"> 8303 <label for="jabodetabek" class="MuiFormControlLabel-root jss45"> 8304 <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 jss47 Mui-checked MuiIconButton-colorSecondary" aria-disabled="false"> 8305 <span class="MuiIconButton-label"> 8306 <input id="jabodetabek" class="jss49" type="radio" value="Jabodetabek" checked="" name="location"> 8307 <span class="jss41"></span> 8308 </span> 8309 <span class="MuiTouchRipple-root"></span> 8310 </span> 8311 <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1"> 8312 <span class="jss67 jss69">Jabodetabek</span> 8313 </span> 8314 </label> 8315 <label for="non-jabodetabek" class="MuiFormControlLabel-root jss45"> 8316 <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 MuiIconButton-colorSecondary" aria-disabled="false"> 8317 <span class="MuiIconButton-label"> 8318 <input id="non-jabodetabek" class="jss49" type="radio" value="Outside Jabodetabek" name="location"> 8319 <span class="jss40"></span> 8320 </span> 8321 <span class="MuiTouchRipple-root"></span> 8322 </span> 8323 <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1"> 8324 <span class="jss67 jss68">Outside Jabodetabek</span> 8325 </span> 8326 </label> 8327 </div> 8328 <div> 8329 <div class="MuiGrid-root location-popup_area-block__sp9Ws"> 8330 <div class="MuiGrid-root location-popup_pin-search-box__3l5mJ false"> 8331 <div class="MuiGrid-root location-popup_place-icon__jSG0Q"> 8332 <svg class="MuiSvgIcon-root jss6" focusable="false" viewBox="0 0 24 24" aria-hidden="true" style="font-size:16px"><path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z"></path></svg> 8333 </div> 8334 <div class="MuiGrid-root location-popup_cancel-icon__FHujU false"> 8335 <i class="material-icons location-popup_clear-pin__s1dRc">close</i> 8336 </div> 8337 <div style="width: 100%;"> 8338 <select id="choose-location" class="form-control"> 8339 <option value="">Choose Location</option> 8340 <option value="jakarta">Jakarta</option> 8341 <option value="bogor">Bogor</option> 8342 <option value="depok">Depok</option> 8343 <option value="tangerang">Tangerang</option> 8344 <option value="bekasi">Bekasi</option> 8345 </select> 8346 </div> 8347 </div> 8348 </div> 8349 </div> 8350 <button class="MuiButtonBase-root MuiButton-root MuiButton-contained jss55" tabindex="-1" type="button" title="" id="location-lock-submit" data-idforcdp="actionBtn-cdp" data-testid="location-lock-submit" style="background-color: #ffffff; width: 80%; padding: 14px 0px 12px; margin: 20px 0px; font-size: 18px; font-weight: 500; box-shadow: rgba(0, 0, 0, 0.1) 0px 2px 4px 0px; border-radius: 4px; color: rgb(0, 0, 0); height: 44px;" data-content=""> 8351 <span class="MuiButton-label">
8352 <span class=""></span> 8353 <span id="location-lock-continue-btn" class="cartButton_login_content__2j1f7" style="font-weight: 500;" data-content="">Continue Shopping</span> 8354 </span> 8355 </button> 8356 </div> 8357 </div> 8358 </div> 8359 <div tabindex="0" data-test="sentinelEnd"></div> 8360 </div> 8361 8362
8362<script> 8363 const jabodetabek = [ 8364 { 8365 "code": "jakarta", 8366 "city": "jakarta", 8367 "zip": [] 8368 }, 8369 { 8370 "code": "bogor", 8371 "city": "bogor", 8372 "zip": [] 8373 }, 8374 { 8375 "code": "depok", 8376 "city": "depok", 8377 "zip": [] 8378 }, 8379 { 8380 "code": "tangerang", 8381 "city": "tangerang", 8382 "zip": [] 8383 }, 8384 { 8385 "code": "bekasi", 8386 "city": "bekasi", 8387 "zip": [] 8388 } 8389 ] 8390 let cityNonJabodetabek = [ 8391 8392 8393 8394 8395 "pengiriman_aceh", 8396 8397 8398 8399 8400 8401 "pengiriman_ambon", 8402 8403 8404 8405 8406 8407 "pengiriman_atambua", 8408 8409 8410 8411 8412 8413 "pengiriman_badung", 8414 8415 8416 8417 8418 8419 "pengiriman_bali", 8420 8421 8422 8423 8424 8425 "pengiriman_balikpapan", 8426 8427 8428 8429 8430 8431 "pengiriman_bandar lampung", 8432 8433 8434 8435 8436 8437 "pengiriman_bandung", 8438 8439 8440 8441 8442 8443 "pengiriman_bandung barat", 8444 8445 8446 8447 8448 8449 "pengiriman_banjarmasin", 8450 8451 8452 8453 8454 8455 "pengiriman_banyumas", 8456 8457 8458 8459 8460 8461 "pengiriman_banyuwangi", 8462 8463 8464 8465 8466 8467 "pengiriman_batam", 8468 8469 8470 8471 8472 8473 8474 8475 8476 8477 "pengiriman_biak", 8478 8479 8480 8481 8482 8483 "pengiriman_binjai", 8484 8485 8486 8487 8488 8489 "pengiriman_blitar", 8490 8491 8492 8493 8494 8495 "pengiriman_blora", 8496 8497 8498 8499 8500 8501 8502 8503 8504 8505 "pengiriman_bojonegoro", 8506 8507 8508 8509 8510 8511 "pengiriman_boyolali", 8512 8513 8514 8515 8516 8517 "pengiriman_bukittinggi", 8518 8519 8520 8521 8522 8523 "pengiriman_buleleng", 8524 8525 8526 8527 8528 8529 "pengiriman_ciamis", 8530 8531 8532 8533 8534 8535 "pengiriman_cianjur", 8536 8537 8538 8539 8540 8541 "pengiriman_cibinong", 8542 8543 8544 8545 8546 8547 "pengiriman_cikarang", 8548 8549 8550 8551 8552 8553 "pengiriman_cikupa", 8554 8555 8556 8557 8558 8559 "pengiriman_cilacap", 8560 8561 8562 8563 8564 8565 "pengiriman_cileunyi", 8566 8567 8568 8569 8570 8571 "pengiriman_cimahi", 8572 8573 8574 8575 8576 8577 "pengiriman_cirebon", 8578 8579 8580 8581 8582 8583 "pengiriman_ciwidey", 8584 8585 8586 8587 8588 8589 "pengiriman_deli serdang", 8590 8591 8592 8593 8594 8595 "pengiriman_demak", 8596 8597 8598 8599 8600 8601 "pengiriman_denpasar", 8602 8603 8604 8605 8606 8607 8608 "pengiriman_garut", 8609 8610 8611 8612 8613 8614 "pengiriman_gianyar", 8615 8616 8617 8618 8619 8620 "pengiriman_gresik", 8621 8622 8623 8624 8625 8626 "pengiriman_gunung kidul", 8627 8628 8629 8630 8631 8632 8633 "pengiriman_jambi", 8634 8635 8636 8637 8638 8639 "pengiriman_jayapura", 8640 8641 8642 8643 8644 8645 "pengiriman_jember", 8646 8647 8648 8649 8650 8651 "pengiriman_jepara", 8652 8653 8654 8655 8656 8657 "pengiriman_jombang", 8658 8659 8660 8661 8662 8663 "pengiriman_karanganyar", 8664 8665 8666 8667 8668 8669 "pengiriman_karawang", 8670 8671 8672 8673 8674 8675 "pengiriman_karo", 8676 8677 8678 8679 8680 8681 "pengiriman_kebumen", 8682 8683 8684 8685 8686 8687 "pengiriman_kediri", 8688 8689 8690 8691 8692 8693 "pengiriman_keerom", 8694 8695 8696 8697 8698 8699 "pengiriman_kendal", 8700 8701 8702 8703 8704 8705 "pengiriman_klaten", 8706 8707 8708 8709 8710 8711 "pengiriman_kudus", 8712 8713 8714 8715 8716 8717 "pengiriman_kupang", 8718 8719 8720 8721 8722 8723 "pengiriman_lainnya", 8724 8725 8726 8727 8728 8729 "pengiriman_lamongan", 8730 8731 8732 8733 8734 8735 "pengiriman_lampung", 8736 8737 8738 8739 8740 8741 "pengiriman_lampung barat", 8742 8743 8744 8745 8746 8747 "pengiriman_lembang", 8748 8749 8750 8751 8752 8753 "pengiriman_lombok", 8754 8755 8756 8757 8758 8759 "pengiriman_lumajang", 8760 8761 8762 8763 8764 8765 "pengiriman_madiun", 8766 8767 8768 8769 8770 8771 "pengiriman_magelang", 8772 8773 8774 8775 8776 8777 "pengiriman_majalengka", 8778 8779 8780 8781 8782 8783 "pengiriman_makassar", 8784 8785 8786 8787 8788 8789 "pengiriman_malang", 8790 8791 8792 8793 8794 8795 "pengiriman_manado", 8796 8797 8798 8799 8800 8801 "pengiriman_medan", 8802 8803 8804 8805 8806 8807 "pengiriman_mengwi", 8808 8809 8810 8811 8812 8813 "pengiriman_mojokerto", 8814 8815 8816 8817 8818 8819 "pengiriman_nganjuk", 8820 8821 8822 8823 8824 8825 "pengiriman_ngawi", 8826 8827 8828 8829 8830 8831 "pengiriman_padang", 8832 8833 8834 8835 8836 8837 "pengiriman_palembang", 8838 8839 8840 8841 8842 8843 "pengiriman_pasuruan", 8844 8845 8846 8847 8848 8849 "pengiriman_pati", 8850 8851 8852 8853 8854 8855 "pengiriman_pekalongan", 8856 8857 8858 8859 8860 8861 "pengiriman_pekanbaru", 8862 8863 8864 8865 8866 8867 "pengiriman_pemalang", 8868 8869 8870 8871 8872 8873 "pengiriman_ponorogo", 8874 8875 8876 8877 8878 8879 "pengiriman_pontianak", 8880 8881 8882 8883 8884 8885 "pengiriman_probolinggo", 8886 8887 8888 8889 8890 8891 "pengiriman_purbalingga", 8892 8893 8894 8895 8896 8897 "pengiriman_purwakarta", 8898 8899 8900 8901 8902 8903 "pengiriman_purwokerto", 8904 8905 8906 8907 8908 8909 "pengiriman_rembang", 8910 8911 8912 8913 8914 8915 "pengiriman_riau", 8916 8917 8918 8919 8920 8921 "pengiriman_salatiga", 8922 8923 8924 8925 8926 8927 "pengiriman_samarinda", 8928 8929 8930 8931 8932 8933 "pengiriman_semarang", 8934 8935 8936 8937 8938 8939 "pengiriman_sentani", 8940 8941 8942 8943 8944 8945 "pengiriman_serang", 8946 8947 8948 8949 8950 8951 "pengiriman_sidoarjo", 8952 8953 8954 8955 8956 8957 "pengiriman_singkawang", 8958 8959 8960 8961 8962 8963 "pengiriman_sragen", 8964 8965 8966 8967 8968 8969 "pengiriman_subang", 8970 8971 8972 8973 8974 8975 "pengiriman_sukabumi", 8976 8977 8978 8979 8980 8981 "pengiriman_sumbawa", 8982 8983 8984 8985 8986 8987 "pengiriman_surabaya", 8988 8989 8990 8991 8992 8993 "pengiriman_surakarta solo", 8994 8995 8996 8997 8998 "pengiriman_tasikmalaya", 8999 9000 9001 9002 9003 9004 "pengiriman_tegal", 9005 9006 9007 9008 9009 9010 "pengiriman_timika", 9011 9012 9013 9014 9015 9016 "pengiriman_wamena", 9017 9018 9019 9020 9021 9022 "pengiriman_wiyung", 9023 9024 9025 9026 9027 9028 "pengiriman_wonokromo", 9029 9030 9031 9032 9033 9034 "pengiriman_yogyakarta", 9035 9036 ] 9037 console.log(cityNonJabodetabek) 9038 let non_jabodetabek = [] 9039 for(var i=0;i<cityNonJabodetabek.length;i++) { 9040 const obj = { 9041 "code": cityNonJabodetabek[i].toLowerCase().replace('pengiriman_', '').replace(' ','-'), 9042 "city": cityNonJabodetabek[i].replace('pengiriman_', '').replace(' ','-'), 9043 "zip": [] 9044 } 9045 non_jabodetabek.push(obj) 9046 } 9047 let current_location = getCookie("location_delivery") 9048 $("[name=location]").change(function(){ 9049 let v = $(this).val() 9050 let option = [] 9051 if(v == 'Jabodetabek') { 9052 for(var i=0;i<jabodetabek.length;i++) { 9053 const jabodetabekHtml = `<option value=${jabodetabek[i].city}>${jabodetabek[i].city}</option>` 9054 option.push(jabodetabekHtml) 9055 } 9056 $("#choose-location").html(`<option value="">Choose Location</option>${option}`) 9057 } else { 9058 for(var i=0;i<non_jabodetabek.length;i++) { 9059 const nonjabodetabekHtml = `<option value=${non_jabodetabek[i].city}>${non_jabodetabek[i].city}</option>` 9060 option.push(nonjabodetabekHtml) 9061 } 9062 $("#choose-location").html(`<option value="">Choose Location</option>${option}`) 9063 } 9064 }) 9065 9066 $("#location-lock-submit").click(function(e){
9067 let select = $("#choose-location") 9068 let value = select.val().toLowerCase() 9069 console.log(value) 9070 if(select.val() == "") { 9071 return alert("Choose Your Location") 9072 e.preventDefault() 9073 } 9074 setCookie("location_delivery",value,1000000); 9075 9076 location.reload(); 9077 9078 }) 9079 9080 $("#close-popup-delivery").click(function(){ 9081 $(".MuiDialog-root").hide() 9082 if(!current_location){ 9083 setCookie("location_delivery","jakarta",1000000); 9084 $("#loc_delivery_city, #loc_delivery_city_mobile").text("Jakarta") 9085 } 9086 }) 9087 $("#loc_delivery, #loc_delivery_mobile").click(function(){ 9088 $(".MuiDialog-root").show() 9089 }) 9090 9091 9092 if(!current_location){ 9093 9094 } else { 9095 $("#loc_delivery_city, #loc_delivery_city_mobile").text(current_location) 9096 console.log(current_location) 9097 $("#choose-location").each(function(){ 9098 if(current_location == 'jakarta' || current_location == 'depok' || current_location == 'bogor' || current_location == 'tangerang' || current_location == 'bekasi'){ 9099 $("#jabodetabek").trigger("click") 9100 } else { 9101 $("#non-jabodetabek").trigger("click") 9102 } 9103 $("#choose-location").find("option[value="+current_location+"]").attr("selected", "selected") 9104 }) 9105 } 9106 9107 // if(current_location == 'jakarta' || current_location == 'depok' || current_location == 'bogor' || current_location == 'tangerang' || current_location == 'bekasi' || current_location == 'bandung' || current_location == 'semarang' || current_location == 'yogyakarta' || current_location == 'surabaya'){ 9108 // $("#timeMalam").attr("disabled", false) 9109 // } else { 9110 // $("#timeMalam").attr("disabled", true) 9111 // } 9112 9113 if(current_location && current_location != 'jakarta') { 9114 $("#self-pickup").attr("disabled", true) 9115 } 9116 9117 function setCookie(name,value,days) { 9118 var expires = ""; 9119 if (days) { 9120 var date = new Date(); 9121 date.setTime(date.getTime() + (days*24*60*60*1000)); 9122 expires = "; expires=" + date.toUTCString(); 9123 } 9124 document.cookie = name + "=" + (value || "") + expires + "; path=/"; 9125 } 9126 function getCookie(name) { 9127 var nameEQ = name + "="; 9128 var ca = document.cookie.split(';'); 9129 for(var i=0;i < ca.length;i++) { 9130 var c = ca[i]; 9131 while (c.charAt(0)==' ') c = c.substring(1,c.length); 9132 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 9133 } 9134 return null; 9135 } 9136 </script>
9136 9137 <!-- One Tap --> 9138
9138<script> 9139 console.log("Outerbloom..."); 9140 </script>
9140 9141 <div id="shopify-block-ANVEzSUcxTUxZOGpwZ__9703700522657871012" class="shopify-block shopify-app-block"> 9142 9143 9144 9145 9146 9147 9148 9149 9150 9151 9152 9153 9154 9155 9156 9157 9158 9159 9160 9161 9162 9163 9164 9165 9166 9167 9168 9169 9170 9171 9172 9173 9174 9175 9176 9177 9178 9179 9180 9181 9182 9183 9184 9185 9186 9187 9188 <link rel="stylesheet" href="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.css" /> 9189
9189<script src="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.js" defer></script>
9189 9190
9190<script> 9191 const widgetConfig = { 9192 id: "clz7897za002cz7otleaz0d3d", 9193 showQuickResponse: false, 9194 quickResponsesData: [], 9195 themeColor: "#ffffff", 9196 widgetText: "", 9197 radiusType: "circle", 9198 widgetIconType: "whatsapp", 9199 position: "right", 9200 storeLogo: "", 9201 storeName: "Outerbloom", 9202 storeDescription: "", 9203 size: "small", 9204 showCard: false, 9205 widgetColorType: "solid", 9206 widgetColor1: "#008069", 9207 widgetColor2: "#008069", 9208 social: { 9209 socialOrders: ["instagram","tiktok","facebook","x","youtube","linkedin","email"], 9210 values: { 9211 instagram: { 9212 enabled: false, 9213 value: "", 9214 }, 9215 facebook: { 9216 enabled: false, 9217 value: "", 9218 }, 9219 email: { 9220 enabled: false, 9221 value: "", 9222 }, 9223 x: { 9224 enabled: false, 9225 value: "", 9226 }, 9227 tiktok: { 9228 enabled: false, 9229 value: "", 9230 }, 9231 linkedin: { 9232 enabled: false, 9233 value: "", 9234 }, 9235 youtube: { 9236 enabled: false, 9237 value: "", 9238 }, 9239 }, 9240 }, 9241 }; 9242 9243 function initializeWidget() { 9244 if (typeof BBBWidget !== 'undefined') { 9245 BBBWidget.init(widgetConfig); 9246 } else { 9247 setTimeout(initializeWidget, 100); 9248 } 9249 } 9250 9251 initializeWidget();</script>
9251 9252 9253 9254 </div><div id="shopify-block-ATzRpVTBPU3k1R2pnW__286197278318599166" class="shopify-block shopify-app-block"> 9255 9256 9257 <div style="position: fixed; bottom: 0; right: 0"></div> 9258 9259
9259<script> 9260 console.info("bitlogin extension version: v2.5.7"); 9261 9262 const googleScript = document.createElement("script"); 9263 googleScript.setAttribute("src", "https://accounts.google.com/gsi/client"); 9264 document.head.append(googleScript); 9265 9266 const bitLoginBaseUrl = "https://api.bitbybit.studio"; 9267 const apiUrl = `${bitLoginBaseUrl}/bitlogin/api`; 9268 9269 const appearance = {"style":"square","hasShadow":true,"domain":"outerbloom1.myshopify.com","colorScheme":"match","backgroundColor":"#ffffff","outlineColor":"#ffe100","textColor":"#700000","position":"top","hideDivider":false,"dividerText":"","size":"small","format":"contentFlex","language":"en","buttonText":"Continue With","redirectLink":"\/account","googleOneTap":true,"googleOneTapBanner":true,"captureAdditionalData":true,"customerTag":"bitLogin","redirectOneTapDesktop":"[{\"label\":\"Account\",\"label2\":\"Desktop: Account\",\"value\":\"account\",\"parentValue\":\"Desktop\"}]","redirectOneTapMobile":"[{\"label\":\"Thank you page\",\"label2\":\"Mobile: Thank you page\",\"value\":\"thank_you\",\"parentValue\":\"Mobile\"}]","watermark":true,"buttonList":{"google":"Continue with Google","facebook":"Continue with Facebook","apple":"Continue with Apple","whatsapp":"Continue with WhatsApp","microsoft":"Continue with Microsoft","twitter":"Continue with X","amazon":"Continue with Amazon","instagram":"Continue with Instagram","magic_link":"Continue with Magic Link","mobile_app":"Continue with Mobile App","linkedin":"Continue with LinkedIn"}}; 9270 const config = [{"domain":"outerbloom1.myshopify.com","provider":"FACEBOOK","enabledMobile":false,"enabledWeb":true,"clientId":"922184709213757","clientSecret":"e3c874c8bce6da4211538ebda706d1cb","appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null},{"domain":"outerbloom1.myshopify.com","provider":"GOOGLE","enabledMobile":true,"enabledWeb":true,"clientId":"933600373534-vk6hiu9lqrtbblj0357q0gsoo7mqvsd0.apps.googleusercontent.com","clientSecret":"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","appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":true,"position":null},{"domain":"outerbloom1.myshopify.com","provider":"APPLE","enabledMobile":true,"enabledWeb":true,"clientId":"com.bitlogin.outerbloom","clientSecret":"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","appleTeamId":"1A","applePrivateKey":"1A","usePersonalOauth":false,"position":null},{"domain":"outerbloom1.myshopify.com","provider":"WHATSAPP","enabledMobile":false,"enabledWeb":true,"clientId":null,"clientSecret":null,"appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null},{"domain":"outerbloom1.myshopify.com","provider":"MICROSOFT","enabledMobile":false,"enabledWeb":false,"clientId":null,"clientSecret":null,"appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null},{"domain":"outerbloom1.myshopify.com","provider":"TWITTER","enabledMobile":false,"enabledWeb":false,"clientId":null,"clientSecret":null,"appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null},{"domain":"outerbloom1.myshopify.com","provider":"AMAZON","enabledMobile":false,"enabledWeb":false,"clientId":"amzn1.application-oa2-client.5b560a5e3e2943d6b25c50cd6dca5532","clientSecret":"amz
9270n1.oa2-cs.v1.1cb5f9085a202341f60daf5a7be16c570ccc0b4bd5908b3afd080f34e9b8935d","appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null}]; 9271 const redirectUrl = appearance.redirectLink; 9272 9273 let locationCacheSet = false; 9274 let errorLocation = false; 9275 let oneTapSet = false; 9276 9277 let bitloginCache = { 9278 appearance: appearance, 9279 config: config 9280 }; 9281 9282 let isInitializing = false; 9283 const queue = []; 9284 9285 // Add CSS for the popup 9286 const popupStyles = document.createElement('style'); 9287 popupStyles.textContent = ` 9288 /* Styles for login popup */ 9289 .bitlogin-popup-overlay { 9290 position: fixed; 9291 top: 0; 9292 left: 0; 9293 width: 100%; 9294 height: 100%; 9295 background: rgba(0, 0, 0, 0.45); 9296 backdrop-filter: blur(4px); 9297 display: flex; 9298 align-items: center; 9299 justify-content: center; 9300 opacity: 0; 9301 transition: opacity 0.3s ease-in-out; 9302 z-index: 999999; 9303 } 9304 9305 .bitlogin-popup-overlay.visible { 9306 opacity: 1; 9307 } 9308 9309 .bitlogin-popup { 9310 background: #FFFFFF; 9311 box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); 9312 border-radius: 16px; 9313 width: 100%; 9314 max-width: 560px; 9315 display: flex; 9316 overflow: hidden; 9317 position: relative; 9318 opacity: 0; 9319 transform: translateY(20px) scale(0.98); 9320 transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1); 9321 } 9322 9323 .bitlogin-popup.visible { 9324 opacity: 1; 9325 transform: translateY(0) scale(1); 9326 } 9327 9328 .bitlogin-popup-with-image { 9329 max-width: 640px; 9330 } 9331 9332 .bitlogin-popup-right-image { 9333 flex-direction: row-reverse; 9334 } 9335 9336 .bitlogin-popup-image { 9337 object-fit: cover; 9338 width: 50%; 9339 height: auto; 9340 } 9341 9342 .bitlogin-popup-content { 9343 padding: 32px; 9344 position: relative; 9345 width: 50%; 9346 } 9347 9348 .bitlogin-popup-close { 9349 position: absolute; 9350 top: 16px; 9351 right: 16px; 9352 background: white; 9353 border: none; 9354 width: 30px; 9355 height: 30px; 9356 display: flex; 9357 align-items: center; 9358 justify-content: center; 9359 cursor: pointer; 9360 transition: background-color 0.2s; 9361 color: inherit; 9362 padding: 0; 9363 } 9364 9365 .bitlogin-popup-close:hover { 9366 background-color: #e5e5e5; 9367 } 9368 9369 .bitlogin-popup-buttons { 9370 display: flex; 9371 flex-direction: column; 9372 gap: 12px; 9373 margin-top: 24px; 9374 } 9375 9376 /* Button styles within popup - override width for popup buttons */ 9377 .bitlogin-popup-buttons #google-login, 9378 .bitlogin-popup-buttons #facebook-login, 9379 .bitlogin-popup-buttons #apple-login, 9380 .bitlogin-popup-buttons #whatsapp-login, 9381 .bitlogin-popup-buttons #microsoft-login, 9382 .bitlogin-popup-buttons #twitter-login, 9383 .bitlogin-popup-buttons #amazon-login, 9384 .bitlogin-popup-buttons #instagram-login, 9385 .bitlogin-popup-buttons #magic-link-login, 9386 .bitlogin-popup-buttons #mobile-app-login { 9387 width: 100% !important; 9388 font-family: inherit !important; 9389 } 9390 9391 .bitlogin-popup-footer { 9392 margin-top: 32px; 9393 text-align: center; 9394 font-size: 14px; 9395 opacity: 0.6; 9396 } 9397 9398 /* Modern Typography */ 9399 .bitlogin-popup h2 { 9400 margin-top: 12px; 9401 font-size: 21px !important; 9402 line-height: 1.2 !important; 9403 font-weight: 700 !important; 9404 letter-spacing: -0.02em !important; 9405 margin-bottom: 16px !important; 9406 } 9407 9408 .bitlogin-popup-header { 9409 position: relative; 9410 margin-bottom: 24px; 9411 } 9412 9413 /* Modern gradient accent */ 9414 .bitlogin-popup-content > div { 9415 font-size: 16px !important; 9416 line-height: 1.2 !important; 9417 opacity: 0.85 !important; 9418 } 9419 9420 /* Enhanced button interactions */ 9421 .bitlogin-popup-buttons button { 9422 position: relative; 9423 overflow: hidden; 9424 } 9425 9426 @keyframes ripple { 9427 0% { 9428 transform: scale(0, 0); 9429 opacity: 0.5; 9430 } 9431 100% { 9432 transform: scale(100, 100); 9433 opacity: 0; 9434 } 9435 } 9436 9437 /* Responsive adjustments */ 9438 @media (max-width: 640px) { 9439 .bitlogin-popup { 9440 max-width: 90%; 9441 width: 90%; 9442 margin: 0 16px; 9443 } 9444 9445 .bitlogin-popup-with-image { 9446 flex-direction: column !important; 9447 } 9448 9449 .bitlogin-popup-image { 9450 width: 100%; 9451 height: 180px; 9452 } 9453 9454 .bitlogin-popup-content { 9455 padding: 24px; 9456 } 9457 9458 .bitlogin-popup h2 { 9459 font-size: 24px !important; 9460 } 9461 } 9462 `; 9463
9464 document.head.appendChild(popupStyles); 9465 9466 // Add fonts link for different font options 9467 const fontsLink = document.createElement('link'); 9468 fontsLink.rel = 'stylesheet'; 9469 fontsLink.href = 'https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600&family=Roboto:wght@400;500&family=Open+Sans:wght@400;500;600&family=Noto+Sans:wght@400;500;600&family=Lato:wght@400;700&family=Poppins:wght@400;500;600&family=Quicksand:wght@400;500;600&family=Raleway:wght@400;500;600&family=PT+Sans:wght@400;700&family=Oswald:wght@400;500;600&display=swap'; 9470 document.head.appendChild(fontsLink); 9471 9472 (async () => { 9473 try { 9474 let host = window.location.host; 9475 if (host === "admin.shopify.com") { 9476 host = `${window.location.pathname.split("/")[2]}.myshopify.com`; 9477 } 9478 9479 const urlSearchParams = new URLSearchParams(window.location.search); 9480 const checkoutUrl = urlSearchParams.get("checkout_url"); 9481 9482 async function init({ inputRef, index }) { 9483 if (isInitializing) { 9484 queue.push(() => init({ inputRef, index })); 9485 return; 9486 } 9487 9488 isInitializing = true; 9489 9490 try { 9491 let bitLoginSectionRoot = document.querySelector( 9492 `.bitlogin-root[data-index="${index}"]` 9493 ); 9494 9495 const formRef = inputRef?.closest( 9496 "form:not([action='/account/recover'])" 9497 ); 9498 9499 if (formRef && !bitLoginSectionRoot) { 9500 await getLocation(); 9501 9502 bitLoginSectionRoot = document.createElement(`div`); 9503 9504 bitLoginSectionRoot.setAttribute("class", "bitlogin-root"); 9505 bitLoginSectionRoot.setAttribute("data-index", `${index}`); 9506 9507 updateAppearance({ 9508 formRef, 9509 rootRef: bitLoginSectionRoot, 9510 host, 9511 }); 9512 } 9513 } catch (err) { 9514 console.error(`error while initiating bitlogin extensions`, err); 9515 } finally { 9516 // Release the lock 9517 isInitializing = false; 9518 9519 // Check if there are pending items in the queue 9520 if (queue.length > 0) { 9521 // Process the next function in the queue 9522 const nextFunction = queue.shift(); 9523 nextFunction(); 9524 } 9525 } 9526 } 9527 9528 function initAll() { 9529 return new Promise((resolve, reject) => { 9530 setTimeout(async () => { 9531 const inputRefs = document.querySelectorAll( 9532 'input[name="customer[email]"]' 9533 ); 9534 9535 for (let i = 0; i < inputRefs.length; i++) { 9536 const currentInputRef = inputRefs[i]; 9537 const isVisible = isElementVisible(currentInputRef); 9538 9539 if (isVisible) { 9540 await init({ inputRef: currentInputRef, index: i }); 9541 } 9542 } 9543 9544 resolve("ok"); 9545 }, 100); 9546 }); 9547 } 9548 9549 const observer = new MutationObserver((mutationsList) => { 9550 for (let mutation of mutationsList) { 9551 initAll(); 9552 } 9553 }); 9554 9555 observer.observe(document.body, { 9556 childList: true, 9557 subtree: true, 9558 attributes: true, 9559 }); 9560 9561 initAll(); 9562 9563 if (appearance.googleOneTap) { 9564 setupOneTap({ host, checkoutUrl }); 9565 } 9566 9567 // Initialize popup 9568 await initPopup(host); 9569 } catch (error) { 9570 console.error("Error initializing BitLogin:", error); 9571 } 9572 })(); 9573 9574 async function initPopup(host) { 9575 // Check if user is already logged in using Liquid checks properly 9576 const isLoggedIn = false || 9577 document.querySelector('.customer-logout-link') || 9578 document.querySelector('.account-link') || 9579 window.location.pathname.includes('/account'); 9580 9581 if (isLoggedIn) { 9582 return; // User is logged in, don't show popup 9583 } 9584 9585 try { 9586 // Fetch the popup configuration 9587 const popupConfig = await fetch(`${apiUrl}/appearance/popup/domain/${host}`) 9588 .then(res => res.json()) 9589 .catch(err => { 9590 console.error('Error fetching popup configuration:', err); 9591 return null; 9592 }); 9593 9594 if (!popupConfig || !popupConfig.enabled) { 9595 return;
9595 // Don't show popup if disabled or config not found 9596 } 9597 9598 // Create popup after 10 seconds 9599 setTimeout(() => { 9600 // Check if user is still on the page and still not logged in 9601 if (document.visibilityState === 'visible') { 9602 // Additional check in case user logged in during the 10 second wait 9603 const currentlyLoggedIn = false || 9604 document.querySelector('.customer-logout-link') || 9605 document.querySelector('.account-link'); 9606 9607 if (!currentlyLoggedIn) { 9608 createLoginPopup(popupConfig, host); 9609 } 9610 } 9611 }, 10000); 9612 } catch (error) { 9613 console.error('Error initializing popup:', error); 9614 } 9615 } 9616 9617 function createLoginPopup(popupConfig, host) { 9618 // Font mapping 9619 const fontFamilyMap = { 9620 system_fonts: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif', 9621 montserrat: 'Montserrat, sans-serif', 9622 roboto: 'Roboto, sans-serif', 9623 open_sans: 'Open Sans, sans-serif', 9624 noto_sans: 'Noto Sans, sans-serif', 9625 lato: 'Lato, sans-serif', 9626 poppins: 'Poppins, sans-serif', 9627 quicksand: 'Quicksand, sans-serif', 9628 raleway: 'Raleway, sans-serif', 9629 pt_sans: 'PT Sans, sans-serif', 9630 oswald: 'Oswald, sans-serif', 9631 }; 9632 9633 // Create overlay 9634 const overlay = document.createElement('div'); 9635 overlay.className = 'bitlogin-popup-overlay'; 9636 9637 // Create popup container with appropriate styling 9638 const popup = document.createElement('div'); 9639 popup.className = 'bitlogin-popup'; 9640 9641 if (popupConfig.layout === 'default') { 9642 popup.style.maxWidth = '400px'; 9643 } 9644 9645 // Function to close the popup 9646 const closePopup = () => { 9647 overlay.classList.remove('visible'); 9648 popup.classList.remove('visible'); 9649 setTimeout(() => { 9650 if (document.body.contains(overlay)) { 9651 document.body.removeChild(overlay); 9652 } 9653 }, 300); 9654 }; 9655 9656 // Add click handler to the overlay to close when clicking outside 9657 overlay.addEventListener('click', (event) => { 9658 // Close only if clicking directly on the overlay, not its children 9659 if (event.target === overlay) { 9660 closePopup(); 9661 } 9662 }); 9663 9664 // Add escape key handler to close popup 9665 document.addEventListener('keydown', (event) => { 9666 if (event.key === 'Escape' && document.body.contains(overlay)) { 9667 closePopup(); 9668 } 9669 }); 9670 9671 // Create layout with image if specified 9672 let contentWrapper; 9673 if (popupConfig.layout !== 'default' && popupConfig.popupImage) { 9674 popup.classList.add('bitlogin-popup-with-image'); 9675 9676 if (popupConfig.layout === 'right') { 9677 popup.classList.add('bitlogin-popup-right-image'); 9678 } 9679 9680 // Add image 9681 const image = document.createElement('img'); 9682 image.className = 'bitlogin-popup-image'; 9683 image.src = popupConfig.popupImage; 9684 image.alt = 'Login'; 9685 image.loading = 'lazy'; 9686 popup.appendChild(image); 9687 9688 // Create content container 9689 contentWrapper = document.createElement('div'); 9690 contentWrapper.className = 'bitlogin-popup-content'; 9691 9692 if (popupConfig.layout === 'right') { 9693 const closeButton = document.createElement('button'); 9694 closeButton.className = 'bitlogin-popup-close'; 9695 closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="logoweb.png"> 9696 <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 9697 </svg>`; 9698 closeButton.setAttribute('aria-label', 'Close'); 9699 closeButton.onclick = closePopup; 9700 9701 popup.appendChild(closeButton); 9702 } 9703 } else { 9704 contentWrapper = document.createElement('div'); 9705 contentWrapper.className = 'bitlogin-popup-content'; 9706 contentWrapper.style.width = '100%'; 9707 } 9708 9709 // Set background style 9710 if (popupConfig.backgroundTheme === 'gradient') { 9711 contentWrapper.style.background = `linear-gradient(135deg, ${popupConfig.backgroundPopupColor}, ${popupConfig.gradientColor})`; 9712 } else { 9713 contentWrapper.style.backgroundColor = popupConfig.backgroundPopupColor; 9714 } 9715 9716 // Apply font family 9717 contentWrapper.style.setProperty('font-family', fontFamilyMap[popupConfig.font] || fontFamilyMap.system_fonts, 'important'); 9718 9719 if (popupConfig.layout !== 'right') { 9720 const closeButton = document.createElement('button'); 9721 closeButton.className = 'bitlogin-popup-close'; 9722 closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="logoweb.png"> 9723 <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 9724 </svg>`; 9725 closeButton.setAttribute('aria-label', 'Close'); 9726 closeButton.onclick = closePopup; 9727 9728 contentWrapper.appendChild(closeButton); 9729 } 9730 9731 // Add heading with subtle animation effect 9732 const header = document.createElement('div'); 9733 header.className = 'bitlogin-popup-header'; 9734 9735 const heading = document.createElement('h2'); 9736 heading.textContent = popupConfig.headingText || 'Sign in for exclusive benef
9736its'; 9737 heading.style.color = popupConfig.fontColor; 9738 header.appendChild(heading); 9739 9740 // Add body text with improved formatting 9741 const bodyText = document.createElement('div'); 9742 bodyText.innerHTML = popupConfig.bodyText || 'Join our community to access exclusive offers and a personalized shopping experience.'; 9743 bodyText.style.color = popupConfig.fontColor; 9744 header.appendChild(bodyText); 9745 9746 contentWrapper.appendChild(header); 9747 9748 // Create buttons container with modern styling 9749 const buttonsContainer = document.createElement('div'); 9750 buttonsContainer.className = 'bitlogin-popup-buttons'; 9751 9752 // Add social buttons 9753 const providerLabels = { 9754 'GOOGLE': 'Continue with Google', 9755 'FACEBOOK': 'Continue with Facebook', 9756 'APPLE': 'Continue with Apple', 9757 'WHATSAPP': 'Continue with WhatsApp', 9758 'MAGIC_LINK': 'Continue with Email', 9759 }; 9760 9761 // Add first login provider button 9762 if (popupConfig.loginProvider1 !== 'NONE') { 9763 const buttonConfig = { 9764 theme: popupConfig.colorScheme || 'match', 9765 customColor: popupConfig.textColor, 9766 format: 'contentFlex', 9767 buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider1.toLowerCase()], 9768 hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true, 9769 style: popupConfig.style || 'rounded', 9770 size: popupConfig.size || 'medium', 9771 colorScheme: popupConfig.colorScheme || 'match', 9772 backgroundColor: popupConfig.backgroundColor || '#3B82F6', 9773 textColor: popupConfig.textColor || '#FFFFFF', 9774 outlineColor: popupConfig.outlineColor || '#3B82F6', 9775 host: host 9776 }; 9777 9778 const button1 = createSocialLoginButton(popupConfig.loginProvider1, buttonConfig); 9779 9780 // Handle click event - this overrides the default click handler in createSocialLoginButton 9781 button1.onclick = () => { 9782 onClickSocialLogin({ provider: popupConfig.loginProvider1.toLowerCase(), host }); 9783 closePopup(); 9784 }; 9785 9786 buttonsContainer.appendChild(button1); 9787 } 9788 9789 // Add second login provider button if enabled 9790 if (popupConfig.loginProvider2 !== 'NONE') { 9791 const buttonConfig = { 9792 theme: popupConfig.colorScheme || 'match', 9793 customColor: popupConfig.textColor, 9794 format: 'contentFlex', 9795 buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider2.toLowerCase()], 9796 hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true, 9797 style: popupConfig.style || 'rounded', 9798 size: popupConfig.size || 'medium', 9799 colorScheme: popupConfig.colorScheme || 'match', 9800 backgroundColor: popupConfig.backgroundColor || '#3B82F6', 9801 textColor: popupConfig.textColor || '#FFFFFF', 9802 outlineColor: popupConfig.outlineColor || '#3B82F6', 9803 host: host 9804 }; 9805 9806 const button2 = createSocialLoginButton(popupConfig.loginProvider2, buttonConfig); 9807 9808 // Handle click event - this overrides the default click handler in createSocialLoginButton 9809 button2.onclick = () => { 9810 onClickSocialLogin({ provider: popupConfig.loginProvider2.toLowerCase(), host }); 9811 closePopup(); 9812 }; 9813 9814 buttonsContainer.appendChild(button2); 9815 } 9816 9817 contentWrapper.appendChild(buttonsContainer); 9818 9819 // Append content to popup 9820 popup.appendChild(contentWrapper); 9821 9822 // Append popup to overlay 9823 overlay.appendChild(popup); 9824 9825 // Append overlay to body 9826 document.body.appendChild(overlay); 9827 9828 // Trigger animation with slight delay for better perceived performance 9829 setTimeout(() => { 9830 overlay.classList.add('visible'); 9831 setTimeout(() => { 9832 popup.classList.add('visible'); 9833 }, 50); 9834 }, 10); 9835 } 9836 9837 window.addEventListener("load", () => { 9838 window.addEventListener("message", (event) => { 9839 const receivedData = event.data; 9840 9841 if (receivedData.type === "authorize") { 9842 post( 9843 JSON.parse( 9844 JSON.stringify({ 9845 "customer[email]": receivedData.email, 9846 "customer[password]": receivedData.password, 9847 form_type: "customer_login", 9848 utf8: "â", 9849 return_url: redirectUrl, 9850 }) 9851 ) 9852 ); 9853 } else if (receivedData.type === "rejected") { 9854 if (receivedData.reason === "customer_account_disabled") { 9855 showAlert( 9856 "Your account needs to be activated. We've sent you an activation link - please check your email to complete this step." 9857 ); 9858 } else if (receivedData.reason === "customer_entry_created_email_not_set") { 9859 showAlert( 9860 "A new account was created but requires an email address. Please update your account with a valid email address to continue." 9861 ); 9862 } else if (receivedData.reason === "customer_exist_email_not_set") { 9863 showAlert( 9864 "Your existing account is missing an email address. Please contact support to update your account with a valid email address." 9865 ); 9866 } 9867 } 9868 9869 if (receivedData.type === "customer_authenticated") { 9870 // Dispatch a custom event that merchants can listen for to implement their custom logic 9871 const customerAuthEvent = new CustomEvent('bitlogin:customer_authenticated', { 9872 detail: { 9873 provider: receivedData.provider, 9874 customer: receivedData.customer, 9875 shopifyCustomerCreated: receivedData.shopifyCustomerCreated 9876 } 9877 }); 9878 9879 // Dispatch the event on the window object so merchants can listen for it 9880 window.dispatchEvent(customerAuthEvent); 9881 9882 } 9883 }); 9884 }); 9885 9886 // Reusable functions for social login buttons 9887 function createSocialLoginButton(provider, config = {}) { 9888 const { 9889 theme = 'match', 9890 customColor = null, 9891 format = 'contentFlex', 9892 buttonText = null, 9893 hasShadow = true, 9894 style = 'rounded', 9895 size = 'medium', 9896 colorScheme = 'match', 9897 backgroundColor = '#3B82F6', 9898 textColor = '#FFFFFF', 9899 outlineColor = '#3B82F6', 9900 rootRef = null, 9901 host = null 9902 } = config; 9903 9904 // Create button element with appropriate ID and attributes 9905 const button = document.createElement('button'); 9906 button.id = `${provider.toLowerCase()}-login`; 9907 button.type = 'button'; 9908 9909 // Set the inner SVG based on provider 9910 switch (provider.toUpperCase()) {
9911 case 'GOOGLE': 9912 button.innerHTML = googleLoginIcon(theme, customColor); 9913 break; 9914 case 'FACEBOOK': 9915 button.innerHTML = facebookLoginIcon(theme, customColor); 9916 break; 9917 case 'APPLE': 9918 button.innerHTML = appleLoginIcon(theme, customColor); 9919 break; 9920 case 'WHATSAPP': 9921 button.innerHTML = whatsappLoginIcon(theme, customColor); 9922 break; 9923 case 'MICROSOFT': 9924 button.innerHTML = microsoftLoginIcon(theme, customColor); 9925 break; 9926 case 'TWITTER': 9927 button.innerHTML = twitterLoginIcon(theme, customColor); 9928 break; 9929 case 'AMAZON': 9930 button.innerHTML = amazonLoginIcon(theme, customColor); 9931 break; 9932 case 'INSTAGRAM': 9933 button.innerHTML = instagramLoginIcon(theme, customColor); 9934 break; 9935 case 'MAGIC_LINK': 9936 button.innerHTML = magicLinkLoginIcon(theme, customColor); 9937 break; 9938 case 'MOBILE_APP': 9939 button.innerHTML = mobileAppLoginIcon(theme, customColor); 9940 break; 9941 case 'LINKEDIN': 9942 button.innerHTML = linkedinLoginIcon(theme, customColor); 9943 break; 9944 } 9945 9946 // Add text if format isn't icon-only and buttonText is provided 9947 if (format !== "wrapperFlexContainerOnlyLogo" && buttonText) { 9948 button.innerHTML += `<p>${buttonText}</p>`; 9949 } 9950 9951 // Apply styling 9952 // Shadow 9953 if (hasShadow) { 9954 const shadowProperties = `0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)`; 9955 button.style["box-shadow"] = shadowProperties; 9956 } 9957 9958 // Border radius 9959 const radiusProperties = 9960 style === "rounded" 9961 ? "8px" 9962 : style === "square" 9963 ? "0px" 9964 : style === "fullRounded" 9965 ? format === "wrapperFlexContainerOnlyLogo" 9966 ? "50%" 9967 : "50px" 9968 : undefined; 9969 button.style["border-radius"] = radiusProperties; 9970 9971 // Size 9972 const sizeProperties = 9973 size === "medium" 9974 ? "12px" 9975 : size === "small" 9976 ? "8px" 9977 : size === "large" 9978 ? "16px" 9979 : "8px"; 9980 9981 button.style["padding-block"] = sizeProperties; 9982 9983 // Format styling 9984 if (format) { 9985 if ( 9986 format === "contentFlexReverse" || 9987 format === "contentFlexCenterReverse" 9988 ) { 9989 const flexDir = `row-reverse`; 9990 button.style["flex-direction"] = flexDir; 9991 } 9992 9993 if ( 9994 format === "contentFlexCenter" || 9995 format === "contentFlexCenterReverse" 9996 ) { 9997 const justifyContent = `center`; 9998 button.style["justify-content"] = justifyContent; 9999 } else if ( 10000 format === "contentFlex" || 10001 format === "contentFlexReverse" 10002 ) { 10003 const buttonTextElement = button.querySelector("p"); 10004 if (buttonTextElement) { 10005 buttonTextElement.style["flex-grow"] = 1; 10006 buttonTextElement.style["text-align"] = "center"; 10007 } 10008 } 10009 10010 if (format === "wrapperFlexContainerOnlyLogo" && rootRef) { 10011 rootRef.style["flex-direction"] = "row"; 10012 rootRef.style["gap"] = "8px"; 10013 rootRef.style["display"] = "flex"; 10014 rootRef.style["flex-wrap"] = "wrap"; 10015 10016 const sizeMapping = { 10017 small: "52px", 10018 medium: "62px", 10019 large: "72px", 10020 }; 10021 const buttonSize = sizeMapping[size] || "52px"; 10022 10023 button.style["margin"] = 0; 10024 button.style["width"] = buttonSize; 10025 button.style["height"] = buttonSize; 10026 button.style["display"] = "flex"; 10027 button.style["align-items"] = "center"; 10028 button.style["justify-content"] = "center"; 10029 10030 const svgElement = button.querySelector("svg"); 10031 if (svgElement) { 10032 svgElement.style["flex"] = "none"; 10033 } 10034 } 10035 } 10036 10037 // Color scheme styling 10038 if (colorScheme === "black") { 10039 button.classList.add("scheme-black"); 10040 } else if (colorScheme === "white") { 10041 button.classList.add("scheme-white"); 10042 } else if (colorScheme === "custom") { 10043 button.style["background-color"] = backgroundColor; 10044 button.style["color"] = textColor; 10045 button.style["border-color"] = outlineColor; 10046 10047 const darkenColor = (color, percentage) => { 10048 const value = parseInt(color.slice(1), 16); 10049 const r = Math.max(0, ((value >> 16) & 0xff) - (0xff * percentage)); 10050 const g = Math.max(0, ((value >> 8) & 0xff) - (0xff * percentage)); 10051 const b = Math.max(0, (value & 0xff) - (0xff * percentage)); 10052 return `rgb(${Math.round(r)}, ${Math.round(g)}, ${Math.round(b)})`; 10053 }; 10054 10055 button.addEventListener("mouseover", () => {
10056 button.style["background-color"] = darkenColor(backgroundColor, 0.2); 10057 }); 10058 button.addEventListener("mouseout", () => { 10059 button.style["background-color"] = backgroundColor; 10060 }); 10061 } else if (colorScheme === "match") { 10062 button.classList.add("scheme-match"); 10063 } else if (colorScheme === "matchOutline") { 10064 button.classList.add("scheme-match-outline"); 10065 } 10066 10067 // Add click event listener if host is provided 10068 if (host) { 10069 button.addEventListener("click", () => 10070 onClickSocialLogin({ provider: provider.toLowerCase(), host }) 10071 ); 10072 } 10073 10074 return button; 10075 } 10076 10077 function setupSocialLoginButtons(config, rootRef, data, host) { 10078 // Clear any existing content 10079 rootRef.innerHTML = ''; 10080 10081 const sortedEnabledProviders = config 10082 .filter(c => c.enabledWeb) 10083 .sort((a, b) => a.position - b.position); 10084 10085 sortedEnabledProviders.forEach(provider => { 10086 const key = provider.provider; 10087 const lowerKey = key.toLowerCase(); 10088 10089 const buttonText = data.format !== "wrapperFlexContainerOnlyLogo" 10090 ? (lowerKey === 'twitter' 10091 ? data.buttonList.twitter.replace('Twitter', 'X') 10092 : data.buttonList[lowerKey]) 10093 : null; 10094 10095 const button = createSocialLoginButton(key, { 10096 theme: data.colorScheme || 'match', 10097 customColor: data.textColor, 10098 format: data.format, 10099 buttonText: buttonText, 10100 hasShadow: data.hasShadow !== undefined ? data.hasShadow : true, 10101 style: data.style, 10102 size: data.size, 10103 colorScheme: data.colorScheme, 10104 backgroundColor: data.backgroundColor, 10105 textColor: data.textColor, 10106 outlineColor: data.outlineColor, 10107 rootRef: rootRef, 10108 host: host 10109 }); 10110 10111 rootRef.appendChild(button); 10112 }); 10113 10114 return rootRef; 10115 } 10116 10117 function updateAppearance({ formRef, rootRef, host }) { 10118 if (!formRef) return; 10119 10120 const data = bitloginCache.appearance || { 10121 style: "square", 10122 hasShadow: false, 10123 colorScheme: "match", 10124 backgroundColor: "#FFFFFF", 10125 outlineColor: "#000000", 10126 textColor: "#000000", 10127 position: "bottom", 10128 hideDivider: "false", 10129 dividerText: "OR", 10130 size: "small", 10131 format: "contentFlex", 10132 language: "en", 10133 buttonText: "Continue with", 10134 redirectLink: "/account", 10135 googleOneTap: true, 10136 googleOneTapBanner: true, 10137 customerTag: "bitLogin", 10138 redirectOneTapDesktop: null, 10139 redirectOneTapMobile: null, 10140 buttonList: { 10141 google: "Continue with Google", 10142 facebook: "Continue with Facebook", 10143 apple: "Continue with Apple", 10144 whatsapp: "Continue with WhatsApp", 10145 microsoft: "Continue with Microsoft", 10146 twitter: "Continue with X", 10147 amazon: "Continue with Amazon", 10148 instagram: "Continue with Instagram", 10149 magic_link: "Continue with Magic Link", 10150 mobile_app: "Continue with Mobile App", 10151 linkedin: "Continue with LinkedIn", 10152 }, 10153 }; 10154 10155 // Use the new setupSocialLoginButtons function to create and configure all buttons 10156 setupSocialLoginButtons(bitloginCache.config, rootRef, data, host); 10157 10158 let divider; 10159 10160 if (!data.hideDivider) { 10161 divider = document.createElement("div"); 10162 const dividerStyle = "text-align:center;margin-block:16px"; 10163 divider.setAttribute("style", dividerStyle); 10164 divider.innerHTML = data.dividerText; 10165 } 10166 10167 if (data.position === "bottom") { 10168 if (divider) { 10169 formRef.appendChild(divider); 10170 } 10171 formRef.appendChild(rootRef); 10172 } else if (data.position === "top") { 10173 if (divider) { 10174 formRef.prepend(divider); 10175 } 10176 formRef.prepend(rootRef); 10177 } 10178 } 10179 10180 10181 async function onClickSocialLogin({ provider, host }) { 10182 const rand = Math.random().toString(); 10183 10184 const locationQueryString = bitloginCache.location 10185 ? `&${objectToQueryString(bitloginCache.location)}` 10186 : ""; 10187 10188 const width = 800; 10189 const height = 600; 10190 const left = (window.screen.width / 2) - (width / 2); 10191 const top = (window.screen.height / 2) - (height / 2) - 50; 10192
10193 if(provider === 'whatsapp') { 10194 window.open( 10195 `/apps/bitlogin/whatsapp${locationQueryString ? `?${locationQueryString}` : ''}`, 10196 "mywindow", 10197 `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}` 10198 ); 10199 } else { 10200 window.open( 10201 `${apiUrl}/login/${provider}?referrerId=${rand}&shop=${host}${locationQueryString}`, 10202 "mywindow", 10203 `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}` 10204 ); 10205 } 10206 } 10207 10208 function objectToQueryString(obj) { 10209 return Object.keys(obj) 10210 .map((key) => { 10211 return encodeURIComponent(key) + "=" + encodeURIComponent(obj[key]); 10212 }) 10213 .join("&"); 10214 } 10215 10216 async function getLocation() { 10217 if (locationCacheSet) return; 10218 10219 try { 10220 const response = await fetch("https://ipapi.co/json/"); 10221 10222 if (!response.ok) { 10223 console.error(`error retrieving location...`, response.status); 10224 errorLocation = true; 10225 } else { 10226 const data = await response.json(); 10227 10228 const { city, region, country_name, country_code } = data; 10229 10230 const formattedLocationData = { 10231 city, 10232 region, 10233 country_name, 10234 country_code, 10235 }; 10236 10237 bitloginCache.location = formattedLocationData; 10238 locationCacheSet = true; 10239 errorLocation = false; 10240 } 10241 } catch (err) { 10242 console.error(`error fetching location`, err); 10243 errorLocation = true; 10244 } 10245 } 10246 10247 function post(params) { 10248 // The rest of this code assumes you are not using a library. 10249 // It can be made less verbose if you use one. 10250 const form = document.createElement("form"); 10251 form.method = "post"; 10252 form.action = `/account/login`; 10253 form.acceptCharset = "UTF-8"; 10254 form.setAttribute("data-login-with-shop-sign-in", "true"); 10255 form.setAttribute("novalidate", "novalidate"); 10256 10257 for (const key in params) { 10258 if (params.hasOwnProperty(key)) { 10259 const hiddenField = document.createElement("input"); 10260 hiddenField.type = "hidden"; 10261 hiddenField.name = key; 10262 hiddenField.value = params[key]; 10263 10264 form.appendChild(hiddenField); 10265 } 10266 } 10267 10268 document.body.appendChild(form); 10269 form.submit(); 10270 } 10271 10272 async function setupOneTap({ host, checkoutUrl }) { 10273 if (oneTapSet) return; 10274 10275 const redirectOneTapDesktop = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapDesktop || '[]')); 10276 const redirectOneTapMobile = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapMobile || '[]')); 10277 10278 const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent); 10279 const redirectList = JSON.parse(isMobile ? redirectOneTapMobile : redirectOneTapDesktop); 10280 10281 const currentPath = window.location.pathname.toLowerCase(); 10282 const currentUrl = window.location.href.toLowerCase(); 10283 10284 const shouldHideGoogleOneTap = redirectList.some(({ value }) => { 10285 switch (value) { 10286 case 'home': 10287 return currentPath === '/'; 10288 case 'product': 10289 return currentPath.startsWith('/products/'); 10290 case 'collections': 10291 return currentPath.startsWith('/collections'); 10292 case 'cart': 10293 return currentPath === '/cart'; 10294 case 'checkout': 10295 return currentPath.startsWith('/checkouts') && !currentPath.includes('thank_you'); 10296 case 'thank_you': 10297 return currentPath.includes('/thank_you'); 10298 case 'account': 10299 return currentPath.startsWith('/account'); 10300 case 'pages': 10301 return currentPath.startsWith('/pages'); 10302 case 'blogs': 10303 return currentPath === '/blogs' || currentPath === '/blogs/news'; 10304 case 'blog_post': 10305 return currentPath.startsWith('/blogs/') && currentPath.split('/').length > 3; 10306 default: 10307 return false; 10308 } 10309 }); 10310 10311 if (shouldHideGoogleOneTap) return; 10312 10313 const oneTapClientId = bitloginCache.config.find( 10314 (config) => config.provider === "GOOGLE" 10315 )?.clientId; 10316 10317 const isLoggedIn = false; 10318 10319 if (bitloginCache.appearance.googleOneTap && oneTapClientId && !isLoggedIn) { 10320 const googleOneTapButton = document.createElement("div"); 10321 googleOneTapButton.setAttribute("id", "g_id_onload"); 10322 googleOneTapButton.setAttribute("data-client_id", oneTapClientId); 10323 googleOneTapButton.setAttribute("data-context", "signin"); 10324 googleOneTapButton.setAttribute( 10325 "data-callback", 10326 "handleGoogleOneTapResponse" 10327 ); 10328 googleOneTapButton.setAttribute("data-itp_support", "true"); 10329 10330 const googleOneTapScript = document.createElement("script"); 10331 10332 googleOneTapScript.innerHTML += ` 10333 function handleGoogleOneTapResponse(response) { 10334 if (response.credential) { 10335 const idToken = response.credential; 10336 fetch('${bitLoginBaseUrl}/bitlogin/api/login/google-one-tap', { 10337 method: 'POST', 10338 headers: { 'Content-Type': 'application/json' }, 10339 body: JSON.stringify({ idToken, shop: "${host}", ...bitloginCache.location }) 10340 }).then(response => { 10341 response.json().then((data) => { 10342 post( 10343 JSON.parse( 10344 JSON.stringify({ 10345 "customer[email]": data.email, 10346 "customer[password]": data.password, 10347 form_type: "customer_login", 10348 utf8: "â", 10349 return_url: redirectUrl, 10350 }) 10351 ) 10352 ); 10353 }); 10354 }).catch(error => { 10355 console.error('Error occurred:', error); 10356 }); 10357 } else { 10358 console.error('No credential available'); 10359 } 10360 } 10361 `; 10362 10363 document.body.append(googleOneTapButton); 10364 document.body.append(googleOneTapScript); 10365 } 10366 10367 oneTapSet = true; 10368 } 10369
10370 const googleLoginIcon = ( 10371 theme, 10372 customColor 10373 ) => ` 10374 ${ 10375 theme === "match" || theme === "matchOutline" || theme === "custom" 10376 ? `<svg 10377 xmlns='logoweb.png' 10378 xmlns:v='https://vecta.io/nano' 10379 width='24' 10380 height='24' 10381 viewBox='0 0 186.69 190.5' 10382 > 10383 <g transform="translate(1184.583 765.171)"><path clip-path="none" mask="none" d="M-1089.333-687.239v36.888h51.262c-2.251 11.863-9.006 21.908-19.137 28.662l30.913 23.986c18.011-16.625 28.402-41.044 28.402-70.052 0-6.754-.606-13.249-1.732-19.483z" fill="${ 10384 theme === "custom" ? customColor : "#4285f4" 10385 }"/><path clip-path="none" mask="none" d="M-1142.714-651.791l-6.972 5.337-24.679 19.223h0c15.673 31.086 47.796 52.561 85.03 52.561 25.717 0 47.278-8.486 63.038-23.033l-30.913-23.986c-8.486 5.715-19.31 9.179-32.125 9.179-24.765 0-45.806-16.712-53.34-39.226z" fill="${ 10386 theme === "custom" ? customColor : "#34a853" 10387 }"/><path clip-path="none" mask="none" d="M-1174.365-712.61c-6.494 12.815-10.217 27.276-10.217 42.689s3.723 29.874 10.217 42.689c0 .086 31.693-24.592 31.693-24.592-1.905-5.715-3.031-11.776-3.031-18.098s1.126-12.383 3.031-18.098z" fill="${ 10388 theme === "custom" ? customColor : "#fbbc05" 10389 }"/><path d="M-1089.333-727.244c14.028 0 26.497 4.849 36.455 14.201l27.276-27.276c-16.539-15.413-38.013-24.852-63.731-24.852-37.234 0-69.359 21.388-85.032 52.561l31.692 24.592c7.533-22.514 28.575-39.226 53.34-39.226z" fill="${ 10390 theme === "custom" ? customColor : "#ea4335" 10391 }" clip-path="none" mask="none"/></g> 10392 </svg>` 10393 : `<svg xmlns="logoweb.png" width="25" height="25" viewBox="0 0 25 25" fill="none"> 10394 <path d="M24.1906 12.7758C24.1906 11.96 24.1244 11.1399 23.9833 10.3374H12.6646V14.9584H19.1463C18.8773 16.4488 18.0131 17.7672 16.7476 18.6049V21.6032H20.6146C22.8854 19.5132 24.1906 16.4267 24.1906 12.7758Z" fill="${ 10395 theme !== "black" ? "black" : "white" 10396 }"/> 10397 <path d="M12.6647 24.5001C15.9011 24.5001 18.6305 23.4374 20.619 21.6031L16.7521 18.6048C15.6762 19.3368 14.2873 19.7513 12.6691 19.7513C9.53845 19.7513 6.88403 17.6391 5.93161 14.7996H1.94116V17.8904C3.97828 21.9428 8.12746 24.5001 12.6647 24.5001Z" fill="${ 10398 theme !== "black" ? "black" : "white" 10399 }"/> 10400 <path d="M5.92709 14.7995C5.42442 13.3091 5.42442 11.6953 5.92709 10.205V7.11401H1.94105C0.23905 10.5048 0.23905 14.4996 1.94105 17.8903L5.92709 14.7995Z" fill="${ 10401 theme !== "black" ? "black" : "white" 10402 }"/> 10403 <path d="M12.6647 5.24893C14.3755 5.22248 16.029 5.86623 17.268 7.04794L20.694 3.62188C18.5247 1.58477 15.6454 0.464802 12.6647 0.500076C8.12745 0.500076 3.97828 3.05749 1.94116 7.11408L5.9272 10.205C6.8752 7.36099 9.53403 5.24893 12.6647 5.24893Z" fill="${ 10404 theme !== "black" ? "black" : "white" 10405 }"/> 10406 </svg>` 10407 }`; 10408 10409 const appleLoginIcon = ( 10410 theme, 10411 customColor 10412 ) => `<svg width="24" height="24" viewBox="0 0 19 24" fill="none" xmlns="logoweb.png"> 10413 <path d="M15.4146 22.08C14.263 23.2897 12.9925 23.1013 11.7815 22.5307C10.494 21.9489 9.31698 21.9121 7.95724 22.5307C6.26395 23.322 5.36524 23.092 4.34544 22.08C-1.4122 15.663 -0.562362 5.88801 5.98138 5.52001C7.56844 5.61201 8.6796 6.46991 9.61442 6.54121C11.0039 6.23531 12.3339 5.35901 13.8211 5.47401C15.6078 5.63041 16.9443 6.39401 17.8366 7.76711C14.161 10.1591 15.0321 15.4031 18.4082 16.8751C17.7324 18.7956 16.8656 20.6931 15.4125 22.0961L15.4146 22.08ZM9.48695 5.45101C9.31486 2.59901 11.4501 0.25301 13.9061 0.0230103C14.2439 3.31201 11.1441 5.77301 9.48695 5.45101Z" fill="${ 10414 theme === "custom" 10415 ? customColor 10416 : theme === "match" || theme === "black" 10417 ? "white" 10418 : "black" 10419 }"/> 10420 </svg>`; 10421 10422 const facebookLoginIcon = ( 10423 theme, 10424 customColor 10425 ) => ` 10426 ${ 10427 theme === "match" || theme === "matchOutline" || theme === "custom" 10428 ? `<svg xmlns="logoweb.png" width="24" height="25" viewBox="0 0 24 25" fill="none"> 10429 <path fill-rule="evenodd" clip-rule="evenodd" d="M24 12.5C24 5.8731 18.6268 0.5 12 0.5C5.3731 0.5 0 5.8731 0 12.5C0 18.489 4.38762 23.4537 10.1252 24.355V15.9696H7.07748V12.5H10.1252V9.85562C10.1252 6.84842 11.9173 5.18622 14.6579 5.18622C15.9707 5.18622 17.3443 5.42077 17.3443 5.42077V8.37398H15.8307C14.3406 8.37398 13.8748 9.29875 13.8748 10.2488V12.4999H17.2025L16.671 15.9695H13.8747V24.3548C19.6123 23.4553 23.9998 18.4907 23.9998 12.4999L24 12.5Z" fill="${ 10430 theme === "custom" ? customColor : theme === "match" ? "white" : "#1977F3" 10431 }"/> 10432 <path fill-rule="evenodd" clip-rule="evenodd" d="M16.5934 16.2833L17.1251 12.8137H13.7973V10.5626C13.7973 9.61422 14.2614 8.68778 15.7532 8.68778H17.2669V5.73457C17.2669 5.73457 15.8933 5.5 14.5804 5.5C11.8399 5.5 10.0477 7.16057 10.0477 10.1694V12.8138H7V16.2834H10.0477V24.6688C10.6586 24.7648 11.2846 24.8138 11.9225 24.8138C12.5604 24.8138 13.1865 24.7631 13.7973 24.6688V16.2834H16.5936L16.5934 16.2833Z" fill="${ 10433 theme === "match" ? "#1778f2" : "transparent" 10434 }"/> 10435 </svg>`
10436 : `<svg xmlns="logoweb.png" width="24" height="25" viewBox="0 0 24 25" fill="none"> 10437 <path fill-rule="evenodd" clip-rule="evenodd" d="M24 12.5C24 5.8731 18.6268 0.5 12 0.5C5.3731 0.5 0 5.8731 0 12.5C0 18.489 4.38762 23.4537 10.1252 24.355V15.9696H7.07748V12.5H10.1252V9.85562C10.1252 6.84842 11.9173 5.18622 14.6579 5.18622C15.9707 5.18622 17.3443 5.42077 17.3443 5.42077V8.37398H15.8307C14.3406 8.37398 13.8748 9.29875 13.8748 10.2488V12.4999H17.2025L16.671 15.9695H13.8747V24.3548C19.6123 23.4553 23.9998 18.4907 23.9998 12.4999L24 12.5Z" fill="${ 10438 theme === "black" ? "white" : "black" 10439 }"/> 10440 <path fill-rule="evenodd" clip-rule="evenodd" d="M16.5934 16.2833L17.1251 12.8137H13.7973V10.5626C13.7973 9.61422 14.2614 8.68778 15.7532 8.68778H17.2669V5.73457C17.2669 5.73457 15.8933 5.5 14.5804 5.5C11.8399 5.5 10.0477 7.16057 10.0477 10.1694V12.8138H7V16.2834H10.0477V24.6688C10.6586 24.7648 11.2846 24.8138 11.9225 24.8138C12.5604 24.8138 13.1865 24.7631 13.7973 24.6688V16.2834H16.5936L16.5934 16.2833Z" fill="${ 10441 theme === "black" ? "black" : "white" 10442 }"/> 10443 </svg>` 10444 }`; 10445 10446 const whatsappLoginIcon = ( 10447 theme, 10448 customColor 10449 ) => `<svg 10450 viewBox="0 0 24 24" 10451 fill="none" 10452 width="24" 10453 height="25" 10454 xmlns="logoweb.png" 10455 > 10456 <g id="SVGRepo_bgCarrier" stroke-width="0"></g> 10457 <g 10458 id="SVGRepo_tracerCarrier" 10459 stroke-linecap="round" 10460 stroke-linejoin="round" 10461 ></g> 10462 <g id="SVGRepo_iconCarrier"> 10463 <path 10464 fill-rule="evenodd" 10465 clip-rule="evenodd" 10466 d="M3.50002 12C3.50002 7.30558 7.3056 3.5 12 3.5C16.6944 3.5 20.5 7.30558 20.5 12C20.5 16.6944 16.6944 20.5 12 20.5C10.3278 20.5 8.77127 20.0182 7.45798 19.1861C7.21357 19.0313 6.91408 18.9899 6.63684 19.0726L3.75769 19.9319L4.84173 17.3953C4.96986 17.0955 4.94379 16.7521 4.77187 16.4751C3.9657 15.176 3.50002 13.6439 3.50002 12ZM12 1.5C6.20103 1.5 1.50002 6.20101 1.50002 12C1.50002 13.8381 1.97316 15.5683 2.80465 17.0727L1.08047 21.107C0.928048 21.4637 0.99561 21.8763 1.25382 22.1657C1.51203 22.4552 1.91432 22.5692 2.28599 22.4582L6.78541 21.1155C8.32245 21.9965 10.1037 22.5 12 22.5C17.799 22.5 22.5 17.799 22.5 12C22.5 6.20101 17.799 1.5 12 1.5ZM14.2925 14.1824L12.9783 15.1081C12.3628 14.7575 11.6823 14.2681 10.9997 13.5855C10.2901 12.8759 9.76402 12.1433 9.37612 11.4713L10.2113 10.7624C10.5697 10.4582 10.6678 9.94533 10.447 9.53028L9.38284 7.53028C9.23954 7.26097 8.98116 7.0718 8.68115 7.01654C8.38113 6.96129 8.07231 7.046 7.84247 7.24659L7.52696 7.52195C6.76823 8.18414 6.3195 9.2723 6.69141 10.3741C7.07698 11.5163 7.89983 13.314 9.58552 14.9997C11.3991 16.8133 13.2413 17.5275 14.3186 17.8049C15.1866 18.0283 16.008 17.7288 16.5868 17.2572L17.1783 16.7752C17.4313 16.5691 17.5678 16.2524 17.544 15.9269C17.5201 15.6014 17.3389 15.308 17.0585 15.1409L15.3802 14.1409C15.0412 13.939 14.6152 13.9552 14.2925 14.1824Z" 10467 fill="${ 10468 theme === "match" || theme === "black" 10469 ? "#ffffff" 10470 : theme === "white" 10471 ? "#000000" 10472 : theme === "matchOutline" 10473 ? "#25d366" 10474 : customColor 10475 }" 10476 ></path> 10477 </g> 10478 </svg>`; 10479 10480 const microsoftLoginIcon = ( 10481 theme, 10482 customColor 10483 ) => `<svg 10484 xmlns="logoweb.png" 10485 width="25" 10486 height="25" 10487 viewBox="0 0 48 48"> 10488 <path fill="${ 10489 theme === "match" || theme == "matchOutline" 10490 ? "#ff5722" 10491 : theme === "black" 10492 ? "#ffffff" 10493 : theme === "white" 10494 ? "#000000" 10495 : customColor 10496 }" d="M6 6H22V22H6z" transform="rotate(-180 14 14)"></path> 10497 <path 10498 fill="${ 10499 theme === "match" || theme == "matchOutline" 10500 ? "#4caf50" 10501 : theme === "black" 10502 ? "#ffffff" 10503 : theme === "white" 10504 ? "#000000" 10505 : customColor 10506 }" 10507 d="M26 6H42V22H26z" 10508 transform="rotate(-180 34 14)"></path> 10509 <path 10510 fill="${ 10511 theme === "match" || theme == "matchOutline" 10512 ? "#ffc107" 10513 : theme === "black" 10514 ? "#ffffff" 10515 : theme === "white" 10516 ? "#000000" 10517 : customColor 10518 }" 10519 d="M26 26H42V42H26z" 10520 transform="rotate(-180 34 34)"></path> 10521 <path fill="${ 10522 theme === "match" || theme == "matchOutline" 10523 ? "#03a9f4" 10524 : theme === "black" 10525 ? "#ffffff" 10526 : theme === "white" 10527 ? "#000000" 10528 : customColor 10529 }" d="M6 26H22V42H6z" transform="rotate(-180 14 34)"></path> 10530 </svg>`; 10531 10532 const twitterLoginIcon = ( 10533 theme, 10534 customColor 10535 ) => `<svg 10536 xmlns="logoweb.png" 10537 width="25" 10538 height="25" 10539 viewBox="0 0 48 48"> 10540 <polygon fill="${ 10541 theme === "match" || theme === "black" 10542 ? "#ffffff" 10543 : theme === "matchOutline" || theme === "white" 10544 ? "#000000" 10545 : customColor 10546 }" points="41,6 9.929,42 6.215,42 37.287,6"></polygon> 10547 <polygon 10548 fill="${ 10549 theme === "match" || theme === "black" 10550 ? "#000000" 10551 : theme === "matchOutline" || theme === "white" 10552 ? "#ffffff" 10553 : customColor 10554 }" 10555 fill-rule="evenodd" 10556 points="31.143,41 7.82,7 16.777,7 40.1,41" 10557 clip-rule="evenodd"></polygon> 10558 <path 10559 fill="${ 10560 theme === "match" || theme === "black" 10561 ? "#ffffff" 10562 : theme === "matchOutline" || theme === "white" 10563 ? "#000000" 10564 : customColor 10565 }" 10566 d="M15.724,9l20.578,30h-4.106L11.618,9H15.724 M17.304,6H5.922l24.694,36h11.382L17.304,6L17.304,6z"></path> 10567 </svg>`; 10568 10569 const amazonLoginIcon = (theme, customColor) => ` 10570 <svg 10571 xmlns="logoweb.png" 10572 x="0px" 10573 y="0px" 10574 width="25" 10575 height="25"
10576 viewBox="0 0 50 50" 10577 > 10578 <path 10579 fill="${ 10580 theme === "black" 10581 ? "#ffffff" 10582 : theme === "matchOutline" 10583 ? "#FF9900" 10584 : theme === "white" || theme === "match" 10585 ? "#000000" 10586 : customColor 10587 }" 10588 d="M 25.3125 3 C 19.210938 3 12.492188 5.3125 11.09375 12.8125 C 10.894531 13.613281 11.5 13.992188 12 14.09375 L 18.1875 14.6875 C 18.789063 14.6875 19.207031 14.101563 19.40625 13.5 C 19.90625 10.898438 22.101563 9.59375 24.5 9.59375 C 25.800781 9.59375 27.292969 10.113281 28.09375 11.3125 C 28.992188 12.613281 28.8125 14.40625 28.8125 15.90625 L 28.8125 16.8125 C 25.113281 17.210938 20.3125 17.5 16.8125 19 C 12.8125 20.699219 10 24.207031 10 29.40625 C 10 36.007813 14.199219 39.3125 19.5 39.3125 C 24 39.3125 26.5 38.195313 30 34.59375 C 31.199219 36.292969 31.585938 37.105469 33.6875 38.90625 C 34.1875 39.207031 34.789063 39.085938 35.1875 38.6875 L 35.1875 38.8125 C 36.488281 37.710938 38.792969 35.601563 40.09375 34.5 C 40.59375 34.199219 40.492188 33.5 40.09375 33 C 38.894531 31.398438 37.6875 30.09375 37.6875 27.09375 L 37.6875 17.1875 C 37.6875 12.988281 38.007813 9.085938 34.90625 6.1875 C 32.40625 3.789063 28.414063 3 25.3125 3 Z M 27 22 L 28.6875 22 L 28.6875 23.40625 C 28.6875 25.804688 28.792969 27.894531 27.59375 30.09375 C 26.59375 31.894531 24.988281 33 23.1875 33 C 20.789063 33 19.3125 31.207031 19.3125 28.40625 C 19.3125 23.707031 23 22.300781 27 22 Z M 44.59375 36.59375 C 42.992188 36.59375 41.085938 37 39.6875 38 C 39.289063 38.300781 39.3125 38.6875 39.8125 38.6875 C 41.414063 38.488281 44.988281 38.007813 45.6875 38.90625 C 46.289063 39.707031 45.007813 43.085938 44.40625 44.6875 C 44.207031 45.1875 44.601563 45.300781 45 45 C 47.699219 42.699219 48.40625 38.007813 47.90625 37.40625 C 47.605469 36.90625 46.195313 36.59375 44.59375 36.59375 Z M 2.1875 37.5 C 1.886719 37.5 1.695313 38.011719 2.09375 38.3125 C 8.09375 43.710938 16.007813 47 24.90625 47 C 31.207031 47 38.492188 45.011719 43.59375 41.3125 C 44.394531 40.710938 43.707031 39.695313 42.90625 40.09375 C 37.207031 42.492188 31.101563 43.6875 25.5 43.6875 C 17.199219 43.6875 9.1875 41.386719 2.6875 37.6875 C 2.488281 37.488281 2.289063 37.5 2.1875 37.5 Z" 10589 ></path> 10590 </svg>`; 10591 10592 const instagramLoginIcon= (theme, customColor) => ` 10593 <svg 10594 width="25" 10595 height="25" 10596 viewBox="0 0 25 24" 10597 fill="none" 10598 xmlns="logoweb.png"> 10599 <path 10600 fill-rule="evenodd" 10601 clip-rule="evenodd" 10602 d="M10.5 0C7.784 0 7.444 0.0119999 6.377 0.0599999C5.313 0.109 4.586 0.278 3.95 0.525C3.28247 0.775816 2.67773 1.16931 2.178 1.678C1.66931 2.17773 1.27582 2.78247 1.025 3.45C0.778 4.086 0.609 4.813 0.56 5.877C0.511 6.944 0.5 7.284 0.5 10C0.5 12.716 0.511 13.056 0.56 14.123C0.609 15.187 0.778 15.914 1.025 16.55C1.27582 17.2175 1.66931 17.8223 2.178 18.322C2.67773 18.8307 3.28247 19.2242 3.95 19.475C4.586 19.722 5.313 19.891 6.377 19.94C7.444 19.988 7.784 20 10.5 20C13.216 20 13.556 19.988 14.623 19.94C15.687 19.891 16.414 19.722 17.05 19.475C17.7175 19.2242 18.3223 18.8307 18.822 18.322C19.3307 17.8223 19.7242 17.2175 19.975 16.55C20.222 15.914 20.391 15.187 20.44 14.123C20.488 13.056 20.5 12.716 20.5 10C20.5 7.284 20.488 6.944 20.44 5.877C20.391 4.813 20.222 4.086 19.975 3.45C19.7242 2.78247 19.3307 2.17773 18.822 1.678C18.3223 1.16931 17.7175 0.775816 17.05 0.525C16.414 0.278 15.687 0.109 14.623 0.0599999C13.556 0.0119999 13.216 0 10.5 0ZM10.5 1.802C13.17 1.802 13.486 1.812 14.54 1.86C15.516 1.905 16.045 2.067 16.398 2.204C16.864 2.386 17.198 2.603 17.548 2.952C17.898 3.302 18.114 3.636 18.296 4.102C18.432 4.455 18.596 4.984 18.64 5.959C18.688 7.014 18.698 7.329 18.698 10C18.698 12.67 18.688 12.986 18.64 14.04C18.595 15.016 18.432 15.545 18.296 15.898C18.1357 16.3324 17.8801 16.7253 17.548 17.048C17.198 17.398 16.864 17.614 16.398 17.796C16.045 17.932 15.516 18.096 14.541 18.14C13.487 18.188 13.171 18.198 10.5 18.198C7.83 18.198 7.513 18.188 6.46 18.14C5.484 18.095 4.955 17.932 4.602 17.796C4.16762 17.6357 3.77466 17.3801 3.452 17.048C3.11991 16.7253 2.86432 16.3324 2.704 15.898C2.567 15.545 2.404 15.016 2.36 14.041C2.312 12.986 2.302 12.671 2.302 10C2.302 7.33 2.312 7.014 2.36 5.96C2.405 4.984 2.567 4.455 2.704 4.102C2.886 3.636 3.103 3.302 3.452 2.952C3.802 2.602 4.136 2.386 4.602 2.204C4.955 2.067 5.484 1.904 6.459 1.86C7.514 1.812 7.829 1.802 10.5 1.802ZM10.5 13.333C9.61603 13.333 8.76827 12.9818 8.14321 12.3568C7.51815 11.7317 7.167 10.884 7.167 10C7.167 9.11603 7.51815 8.26827 8.14321 7.
1060264321C8.76827 7.01815 9.61603 6.667 10.5 6.667C11.384 6.667 12.2317 7.01815 12.8568 7.64321C13.4818 8.26827 13.833 9.11603 13.833 10C13.833 10.884 13.4818 11.7317 12.8568 12.3568C12.2317 12.9818 11.384 13.333 10.5 13.333ZM10.5 4.865C9.82566 4.865 9.15793 4.99782 8.53492 5.25588C7.91191 5.51394 7.34584 5.89218 6.86901 6.36901C6.39218 6.84584 6.01394 7.41191 5.75588 8.03492C5.49782 8.65793 5.365 9.32566 5.365 10C5.365 10.6743 5.49782 11.3421 5.75588 11.9651C6.01394 12.5881 6.39218 13.1542 6.86901 13.631C7.34584 14.1078 7.91191 14.4861 8.53492 14.7441C9.15793 15.0022 9.82566 15.135 10.5 15.135C11.8619 15.135 13.168 14.594 14.131 13.631C15.094 12.668 15.635 11.3619 15.635 10C15.635 8.63811 15.094 7.33201 14.131 6.36901C13.168 5.40601 11.8619 4.865 10.5 4.865ZM17.038 4.662C17.038 4.81959 17.007 4.97563 16.9467 5.12122C16.8863 5.26681 16.798 5.3991 16.6865 5.51053C16.5751 5.62196 16.4428 5.71035 16.2972 5.77066C16.1516 5.83096 15.9956 5.862 15.838 5.862C15.6804 5.862 15.5244 5.83096 15.3788 5.77066C15.2332 5.71035 15.1009 5.62196 14.9895 5.51053C14.878 5.3991 14.7897 5.26681 14.7293 5.12122C14.669 4.97563 14.638 4.81959 14.638 4.662C14.638 4.34374 14.7644 4.03852 14.9895 3.81347C15.2145 3.58843 15.5197 3.462 15.838 3.462C16.1563 3.462 16.4615 3.58843 16.6865 3.81347C16.9116 4.03852 17.038 4.34374 17.038 4.662Z" 10603 fill="url(#paint0_radial_378_3535)" /> 10604 <path 10605 fill-rule="evenodd" 10606 clip-rule="evenodd" 10607 d="M10.5 0C7.784 0 7.444 0.0119999 6.377 0.0599999C5.313 0.109 4.586 0.278 3.95 0.525C3.28247 0.775816 2.67773 1.16931 2.178 1.678C1.66931 2.17773 1.27582 2.78247 1.025 3.45C0.778 4.086 0.609 4.813 0.56 5.877C0.511 6.944 0.5 7.284 0.5 10C0.5 12.716 0.511 13.056 0.56 14.123C0.609 15.187 0.778 15.914 1.025 16.55C1.27582 17.2175 1.66931 17.8223 2.178 18.322C2.67773 18.8307 3.28247 19.2242 3.95 19.475C4.586 19.722 5.313 19.891 6.377 19.94C7.444 19.988 7.784 20 10.5 20C13.216 20 13.556 19.988 14.623 19.94C15.687 19.891 16.414 19.722 17.05 19.475C17.7175 19.2242 18.3223 18.8307 18.822 18.322C19.3307 17.8223 19.7242 17.2175 19.975 16.55C20.222 15.914 20.391 15.187 20.44 14.123C20.488 13.056 20.5 12.716 20.5 10C20.5 7.284 20.488 6.944 20.44 5.877C20.391 4.813 20.222 4.086 19.975 3.45C19.7242 2.78247 19.3307 2.17773 18.822 1.678C18.3223 1.16931 17.7175 0.775816 17.05 0.525C16.414 0.278 15.687 0.109 14.623 0.0599999C13.556 0.0119999 13.216 0 10.5 0ZM10.5 1.802C13.17 1.802 13.486 1.812 14.54 1.86C15.516 1.905 16.045 2.067 16.398 2.204C16.864 2.386 17.198 2.603 17.548 2.952C17.898 3.302 18.114 3.636 18.296 4.102C18.432 4.455 18.596 4.984 18.64 5.959C18.688 7.014 18.698 7.329 18.698 10C18.698 12.67 18.688 12.986 18.64 14.04C18.595 15.016 18.432 15.545 18.296 15.898C18.1357 16.3324 17.8801 16.7253 17.548 17.048C17.198 17.398 16.864 17.614 16.398 17.796C16.045 17.932 15.516 18.096 14.541 18.14C13.487 18.188 13.171 18.198 10.5 18.198C7.83 18.198 7.513 18.188 6.46 18.14C5.484 18.095 4.955 17.932 4.602 17.796C4.16762 17.6357 3.77466 17.3801 3.452 17.048C3.11991 16.7253 2.86432 16.3324 2.704 15.898C2.567 15.545 2.404 15.016 2.36 14.041C2.312 12.986 2.302 12.671 2.302 10C2.302 7.33 2.312 7.014 2.36 5.96C2.405 4.984 2.567 4.455 2.704 4.102C2.886 3.636 3.103 3.302 3.452 2.952C3.802 2.602 4.136 2.386 4.602 2.204C4.955 2.067 5.484 1.904 6.459 1.86C7.514 1.812 7.829 1.802 10.5 1.802ZM10.5 13.333C9.61603 13.333 8.76827 12.9818 8.14321 12.3568C7.51815 11.7317 7.167 10.884 7.167 10C7.167 9.11603 7.51815 8.26827 8.14321 7.64321C8.76827 7.01815 9.61603 6.667 10.5 6.667C11.384 6.667 12.2317 7.01815 12.8568 7.64321C13.4818 8.26827 13.833 9.11603 13.833 10C13.833 10.884 13.4818 11.7317 12.8568 12.3568C12.2317 12.9818 11.384 13.333 10.5 13.333ZM10.5 4.865C9.82566 4.865 9.15793 4.99782 8.53492 5.25588C7.91191 5.51394 7.34584 5.89218 6.86901 6.36901C6.39218 6.84584 6.01394 7.41191 5.75588 8.03492C5.49782 8.65793 5.365 9.32566 5.365 10C5.365 10.6743 5.49782 11.3421 5.75588 11.9651C6.01394 12.5881 6.39218 13.1542 6.86901 13.631C7.34584 14.1078 7.91191 14.4861 8.53492 14.7441C9.15793 15.0022 9.82566 15.135 10.5 15.135C11.8619 15.135 13.168 14.594 14.131 13.631C15.094 12.668 15.635 11.3619 15.635 10C15.635 8.63811 15.094 7.33201 14.131 6.36901C13.168 5.40601 11.8619 4.865 10.5 4.865ZM17.038 4.662C17.038 4.81959 17.007 4.97563 16.9467 5.12122C16.8863 5.26681 16.798 5.3991 16.6865 5.51053C16.5751 5.62196 16.4428 5.71035 16.2972 5.77066C16.1516 5.83096 15.9956 5.862 15.838 5.862C15.6804 5.862 15.5244 5.83096 15.3788 5.77066C15.2332 5.71035 15.1009 5.62196 14.9895 5.51053C14.878 5.3991 14.7897 5.26681 14.7293 5.12122C14.669 4.97563 14.638 4.81959 14.638 4.662C14.638 4.34374 14.7644 4.03852 14.9895 3.81347C15.2145 3.58843 15.5197 3.462 15.838 3.462C16.1563 3.462 16.4615 3.58843 16.6865 3.81347C16.9116 4.03852 17.038 4.34374 17.038 4.662Z" 10608 fill="url(#paint0_radial_378_3535)" /> 10609 <path 10610 fill-rule="evenodd" 10611 clip-rule="evenodd" 10612 d="M10.5 0C7.784 0 7.444 0.0119999 6.377 0.0599999C5.313 0.109 4.586 0.278 3.95 0.525C3.28247 0.775816 2.67773 1.16931 2.178 1.678C1.66931 2.17773 1.27582 2.78247 1.025 3.45C0.778 4.086 0.609 4.813 0.56 5.877C0.511 6.944 0.5 7.284 0.5 10C0.5 12.716 0.511 13.056 0.56 14.123C0.609 15.187 0.778 15.914 1.025 16.55C1.27582 17.2175 1.66931 17.8223 2.178 18.322C2.67773 18.8307 3.28247 19.2242 3.95 19.475C4.586 19.722 5.313 19.891 6.377 19.94C7.444 19.988 7.784 20 10.5 20C13.216 20 13.556 19.988 14.623 19.94C15.687 19.891 16.414 19.722 17.05 19.475C17.7175 19.2242 18.3223 18.8307 18.822 18.322C19.3307 17.8223 19.7242 17.2175 19.975 16.55C20.222 15.914 20.391 15.187 20.44 14.123C20.488 13.056 20.5 12.716 20.5 10C20.5 7.284 20.488 6.944 20.44 5.877C20.391 4.813 20.222 4.086 19.975 3.45C19.7242 2.78247 19.3307 2.17773 18.822 1.678C18.3223 1.16931 17.7175 0.775816 17.05 0.525C16.414 0.278 15.687 0.109 14.623 0.0599999C13.556 0.0119999 13.216 0 10.5 0ZM10.5 1.802C13.17 1.802 13.486 1.812 14.54 1.86C15.516 1.905 16.045 2.067 16.398 2.204C16.864 2.386 17.198 2.603 17.548 2.952C17.898 3.302 18.114 3.636 18.296 4.102C18.432 4.455 18.596 4.984 18.64 5.959C18.688 7.014 18.698 7.329 18.698 10C18.698 12.67 18.688 12.986 18.64 14.04C18.595 15.016 18.432 15.545 18.296 15.898C18.1357 16.3324 17.8801 16.7253 17.548 17.048C17.198 17.398 16.864 17.614 16.398 17.796C16.045 17.932 15.516 18.096 14.541 18.14C13.487 18.188 13.171 18.198 10.5 18.198C7.83 18.198 7.513 18.188 6.46 18.14C5.484 18.095 4.955 17.932 4.602 17.796C4.16762 17.6357 3.77466 17.3801 3.452 17.048C3.11991 16.7253 2.86432 16.3324 2.704 15.898C2.567 15.545 2.404 15.016 2.36 14.041C2.312 12.986 2.302 12.671 2.302 10C2.302 7.33 2.312 7.014 2.36 5.96C2.405 4.984 2.567 4.455 2.704 4.102C2.886 3.636 3.103 3.302 3.452 2.952C3.802 2.602 4.136 2.386 4.602 2.204C4.955 2.067 5.484 1.904 6.459 1.86C7.514 1.812 7.829 1.802 10.5 1.802ZM10.5 13.333C9.61603 13.333 8.76827 12.9818 8.14321 12.3568C7.51815 11.7317 7.167 10.884 7.167 10C7.167 9.11603 7.51815 8.26827 8.14321 7.
1061264321C8.76827 7.01815 9.61603 6.667 10.5 6.667C11.384 6.667 12.2317 7.01815 12.8568 7.64321C13.4818 8.26827 13.833 9.11603 13.833 10C13.833 10.884 13.4818 11.7317 12.8568 12.3568C12.2317 12.9818 11.384 13.333 10.5 13.333ZM10.5 4.865C9.82566 4.865 9.15793 4.99782 8.53492 5.25588C7.91191 5.51394 7.34584 5.89218 6.86901 6.36901C6.39218 6.84584 6.01394 7.41191 5.75588 8.03492C5.49782 8.65793 5.365 9.32566 5.365 10C5.365 10.6743 5.49782 11.3421 5.75588 11.9651C6.01394 12.5881 6.39218 13.1542 6.86901 13.631C7.34584 14.1078 7.91191 14.4861 8.53492 14.7441C9.15793 15.0022 9.82566 15.135 10.5 15.135C11.8619 15.135 13.168 14.594 14.131 13.631C15.094 12.668 15.635 11.3619 15.635 10C15.635 8.63811 15.094 7.33201 14.131 6.36901C13.168 5.40601 11.8619 4.865 10.5 4.865ZM17.038 4.662C17.038 4.81959 17.007 4.97563 16.9467 5.12122C16.8863 5.26681 16.798 5.3991 16.6865 5.51053C16.5751 5.62196 16.4428 5.71035 16.2972 5.77066C16.1516 5.83096 15.9956 5.862 15.838 5.862C15.6804 5.862 15.5244 5.83096 15.3788 5.77066C15.2332 5.71035 15.1009 5.62196 14.9895 5.51053C14.878 5.3991 14.7897 5.26681 14.7293 5.12122C14.669 4.97563 14.638 4.81959 14.638 4.662C14.638 4.34374 14.7644 4.03852 14.9895 3.81347C15.2145 3.58843 15.5197 3.462 15.838 3.462C16.1563 3.462 16.4615 3.58843 16.6865 3.81347C16.9116 4.03852 17.038 4.34374 17.038 4.662Z" 10613 fill="url(#paint0_radial_378_3535)" /> 10614 <path 10615 fill-rule="evenodd" 10616 clip-rule="evenodd" 10617 d="M10.5 0C7.784 0 7.444 0.0119999 6.377 0.0599999C5.313 0.109 4.586 0.278 3.95 0.525C3.28247 0.775816 2.67773 1.16931 2.178 1.678C1.66931 2.17773 1.27582 2.78247 1.025 3.45C0.778 4.086 0.609 4.813 0.56 5.877C0.511 6.944 0.5 7.284 0.5 10C0.5 12.716 0.511 13.056 0.56 14.123C0.609 15.187 0.778 15.914 1.025 16.55C1.27582 17.2175 1.66931 17.8223 2.178 18.322C2.67773 18.8307 3.28247 19.2242 3.95 19.475C4.586 19.722 5.313 19.891 6.377 19.94C7.444 19.988 7.784 20 10.5 20C13.216 20 13.556 19.988 14.623 19.94C15.687 19.891 16.414 19.722 17.05 19.475C17.7175 19.2242 18.3223 18.8307 18.822 18.322C19.3307 17.8223 19.7242 17.2175 19.975 16.55C20.222 15.914 20.391 15.187 20.44 14.123C20.488 13.056 20.5 12.716 20.5 10C20.5 7.284 20.488 6.944 20.44 5.877C20.391 4.813 20.222 4.086 19.975 3.45C19.7242 2.78247 19.3307 2.17773 18.822 1.678C18.3223 1.16931 17.7175 0.775816 17.05 0.525C16.414 0.278 15.687 0.109 14.623 0.0599999C13.556 0.0119999 13.216 0 10.5 0ZM10.5 1.802C13.17 1.802 13.486 1.812 14.54 1.86C15.516 1.905 16.045 2.067 16.398 2.204C16.864 2.386 17.198 2.603 17.548 2.952C17.898 3.302 18.114 3.636 18.296 4.102C18.432 4.455 18.596 4.984 18.64 5.959C18.688 7.014 18.698 7.329 18.698 10C18.698 12.67 18.688 12.986 18.64 14.04C18.595 15.016 18.432 15.545 18.296 15.898C18.1357 16.3324 17.8801 16.7253 17.548 17.048C17.198 17.398 16.864 17.614 16.398 17.796C16.045 17.932 15.516 18.096 14.541 18.14C13.487 18.188 13.171 18.198 10.5 18.198C7.83 18.198 7.513 18.188 6.46 18.14C5.484 18.095 4.955 17.932 4.602 17.796C4.16762 17.6357 3.77466 17.3801 3.452 17.048C3.11991 16.7253 2.86432 16.3324 2.704 15.898C2.567 15.545 2.404 15.016 2.36 14.041C2.312 12.986 2.302 12.671 2.302 10C2.302 7.33 2.312 7.014 2.36 5.96C2.405 4.984 2.567 4.455 2.704 4.102C2.886 3.636 3.103 3.302 3.452 2.952C3.802 2.602 4.136 2.386 4.602 2.204C4.955 2.067 5.484 1.904 6.459 1.86C7.514 1.812 7.829 1.802 10.5 1.802ZM10.5 13.333C9.61603 13.333 8.76827 12.9818 8.14321 12.3568C7.51815 11.7317 7.167 10.884 7.167 10C7.167 9.11603 7.51815 8.26827 8.14321 7.64321C8.76827 7.01815 9.61603 6.667 10.5 6.667C11.384 6.667 12.2317 7.01815 12.8568 7.64321C13.4818 8.26827 13.833 9.11603 13.833 10C13.833 10.884 13.4818 11.7317 12.8568 12.3568C12.2317 12.9818 11.384 13.333 10.5 13.333ZM10.5 4.865C9.82566 4.865 9.15793 4.99782 8.53492 5.25588C7.91191 5.51394 7.34584 5.89218 6.86901 6.36901C6.39218 6.84584 6.01394 7.41191 5.75588 8.03492C5.49782 8.65793 5.365 9.32566 5.365 10C5.365 10.6743 5.49782 11.3421 5.75588 11.9651C6.01394 12.5881 6.39218 13.1542 6.86901 13.631C7.34584 14.1078 7.91191 14.4861 8.53492 14.7441C9.15793 15.0022 9.82566 15.135 10.5 15.135C11.8619 15.135 13.168 14.594 14.131 13.631C15.094 12.668 15.635 11.3619 15.635 10C15.635 8.63811 15.094 7.33201 14.131 6.36901C13.168 5.40601 11.8619 4.865 10.5 4.865ZM17.038 4.662C17.038 4.81959 17.007 4.97563 16.9467 5.12122C16.8863 5.26681 16.798 5.3991 16.6865 5.51053C16.5751 5.62196 16.4428 5.71035 16.2972 5.77066C16.1516 5.83096 15.9956 5.862 15.838 5.862C15.6804 5.862 15.5244 5.83096 15.3788 5.77066C15.2332 5.71035 15.1009 5.62196 14.9895 5.51053C14.878 5.3991 14.7897 5.26681 14.7293 5.12122C14.669 4.97563 14.638 4.81959 14.638 4.662C14.638 4.34374 14.7644 4.03852 14.9895 3.81347C15.2145 3.58843 15.5197 3.462 15.838 3.462C16.1563 3.462 16.4615 3.58843 16.6865 3.81347C16.9116 4.03852 17.038 4.34374 17.038 4.662Z" 10618 fill="url(#paint1_radial_378_3535)" /> 10619 <defs> 10620 <radialGradient 10621 id="paint0_radial_378_3535" 10622 cx="0" 10623 cy="0" 10624 r="1" 10625 gradientUnits="userSpaceOnUse" 10626 gradientTransform="translate(17.4 22.7) rotate(-115.776) scale(27.2737 40.5665)"> 10627 <stop offset="0.24392" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF1B90' : customColor}" /> 10628 <stop offset="0.436673" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#F80261' : customColor}" /> 10629 <stop offset="0.688476" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#ED00C0' : customColor}" /> 10630 <stop offset="0.776787" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#C500E9' : customColor}" /> 10631 <stop offset="0.893155" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#7017FF' : customColor}" /> 10632 </radialGradient> 10633 <radialGradient 10634 id="paint1_radial_378_3535" 10635 cx="0" 10636 cy="0" 10637 r="1" 10638 gradientUnits="userSpaceOnUse" 10639 gradientTransform="translate(7.75 19.31) rotate(-57.4396) scale(11.8174 12.2918)"> 10640 <stop stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FFD600' : customColor}" /> 10641 <stop offset="0.484375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF6930' : customColor}" /> 10642 <stop offset="0.734375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" /> 10643 <stop offset="1" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" stop-opacity="0" /> 10644 </radialGradient> 10645 </defs> 10646 </svg>`; 10647 10648 const magicLinkLoginIcon = (theme, customColor) => ` 10649 <svg 10650 xmlns="logoweb.png" 10651 width="25" 10652 height="25" 10653 fill="none"
10654 viewBox="0 0 25 25" 10655 > 10656 <path 10657 fill="${ 10658 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' || theme === 'white' ? '#000000' : customColor 10659 }" 10660 fillRule="evenodd" 10661 d="M10.975 14.51a1.05 1.05 0 000-1.485 2.95 2.95 0 010-4.172l3.536-3.535a2.95 2.95 0 114.172 4.172l-1.093 1.092a1.05 1.05 0 001.485 1.485l1.093-1.092a5.05 5.05 0 00-7.142-7.142L9.49 7.368a5.05 5.05 0 000 7.142c.41.41 1.075.41 1.485 0zm2.05-5.02a1.05 1.05 0 000 1.485 2.95 2.95 0 010 4.172l-3.5 3.5a2.95 2.95 0 11-4.171-4.172l1.025-1.025a1.05 1.05 0 00-1.485-1.485L3.87 12.99a5.05 5.05 0 007.142 7.142l3.5-3.5a5.05 5.05 0 000-7.142 1.05 1.05 0 00-1.485 0z" 10662 clipRule="evenodd" 10663 ></path> 10664 </svg>`; 10665 10666 const mobileAppLoginIcon = (theme, customColor) => ` 10667 <svg 10668 width="20" 10669 height="24" 10670 viewBox="0 0 12 16" 10671 fill="none" 10672 xmlns="logoweb.png" 10673 > 10674 <path 10675 d="M9.75 0.5H2.25C1.42275 0.5 0.75 1.17275 0.75 2V14C0.75 14.8273 1.42275 15.5 2.25 15.5H9.75C10.5773 15.5 11.25 14.8273 11.25 14V2C11.25 1.17275 10.5773 0.5 9.75 0.5ZM2.25 11.7493V2.75H9.75L9.7515 11.7493H2.25Z" 10676 fill=${ 10677 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#FD823E' : theme === 'white' ? '#000000' : customColor 10678 } 10679 /> 10680 </svg> 10681 `; 10682 10683 const linkedinLoginIcon = (theme, customColor) => ` 10684 <svg 10685 xmlns="logoweb.png" 10686 width="25" 10687 height="24" 10688 viewBox="0 0 25 24" 10689 fill="none" 10690 > 10691 <path 10692 d="M19.0714 0C19.8304 0 20.5 0.669643 20.5 1.47321V18.5714C20.5 19.375 19.8304 20 19.0714 20H1.88393C1.125 20 0.5 19.375 0.5 18.5714V1.47321C0.5 0.669643 1.125 0 1.88393 0H19.0714ZM6.52679 17.1429V7.63393H3.58036V17.1429H6.52679ZM5.05357 6.29464C5.99107 6.29464 6.75 5.53571 6.75 4.59821C6.75 3.66071 5.99107 2.85714 5.05357 2.85714C4.07143 2.85714 3.3125 3.66071 3.3125 4.59821C3.3125 5.53571 4.07143 6.29464 5.05357 6.29464ZM17.6429 17.1429V11.9196C17.6429 9.375 17.0625 7.36607 14.0714 7.36607C12.6429 7.36607 11.6607 8.16964 11.2589 8.92857H11.2143V7.63393H8.40179V17.1429H11.3482V12.4554C11.3482 11.2054 11.5714 10 13.1339 10C14.6518 10 14.6518 11.4286 14.6518 12.5V17.1429H17.6429Z" 10693 fill=${ 10694 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#0A66C2' : theme === 'white' ? '#000000' : customColor 10695 } 10696 /> 10697 </svg> 10698 `; 10699 10700 function isElementVisible(element) { 10701 return ( 10702 document.body.contains(element) && 10703 getComputedStyle(element).display !== "none" && 10704 getComputedStyle(element).visibility !== "hidden" && 10705 getComputedStyle(element).opacity !== "0" && 10706 !element.hasAttribute("hidden") && 10707 !isAncestorHidden(element) 10708 ); 10709 } 10710 10711 function isAncestorHidden(element) { 10712 let parent = element.parentElement; 10713 while (parent) { 10714 if ( 10715 getComputedStyle(parent).display === "none" || 10716 getComputedStyle(parent).visibility === "hidden" || 10717 getComputedStyle(parent).opacity === "0" || 10718 parent.hasAttribute("hidden") 10719 ) { 10720 return true; 10721 } 10722 parent = parent.parentElement; 10723 } 10724 return false; 10725 } 10726 10727 function showAlert(message) { 10728 const alertBox = document.createElement("div"); 10729 alertBox.textContent = message; 10730 alertBox.style.position = "fixed"; 10731 alertBox.style.top = "20px"; 10732 alertBox.style.right = "-300px"; // Start off-screen 10733 alertBox.style.backgroundColor = "#000000"; // Black background 10734 alertBox.style.color = "#ffffff"; // White text 10735 alertBox.style.padding = "15px"; 10736 alertBox.style.borderRadius = "8px"; 10737 alertBox.style.zIndex = "1000"; 10738 alertBox.style.transition = 10739 "right 0.5s ease-in-out, opacity 0.5s ease-in-out"; // Transition for sliding and fading 10740 alertBox.style.boxShadow = "0 2px 5px rgba(0, 0, 0, 0.2)"; // Optional shadow for depth 10741 10742 document.body.appendChild(alertBox); 10743 10744 // Slide in 10745 requestAnimationFrame(() => { 10746 alertBox.style.right = "20px"; // Move into view 10747 alertBox.style.opacity = "1"; // Ensure opacity is set to 1 10748 }); 10749 10750 // Slide out and remove the alert after a few seconds 10751 setTimeout(() => { 10752 alertBox.style.opacity = "0"; // Fade out 10753 alertBox.style.right = "-300px"; // Move out of view 10754 10755 // Wait for the transition to finish before removing the element 10756 setTimeout(() => { 10757 document.body.removeChild(alertBox); 10758 }, 500); // Match this duration with the exit transition duration 10759 }, 3000); 10760 } 10761 </script>
10761 10762 10763 <style> 10764 .daftarku-fixed-footer { 10765 display: flex; 10766 justify-content: space-around; 10767 position: fixed; 10768 background: linear-gradient(to bottom, #000000 0%, #3d3d3d, #000000 100%); 10769 box-shadow: 0 0 12px #ffc516; 10770 outline: none; 10771 padding: 5px 0; 10772 box-shadow: 0 0 0 0 2px 2px #198f01; 10773 left: 0; 10774 right: 0; 10775 bottom: 0; 10776 z-index: 99; 10777 border-radius: 40px 40px 0px 0px; 10778 border-style:dashed; 10779 10780 } 10781 10782 .daftarku-fixed-footer a { 10783 flex-basis: calc((100% - 15px*6)/ 5); 10784 text-decoration: none; 10785 display: flex; 10786 flex-direction: column; 10787 justify-content: center; 10788 align-items: center; 10789 color: #fff; 10790 max-width: 75px; 10791 font-size: 12px; 10792 font-family: Ubuntu, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; 10793 } 10794 10795 .daftarku-fixed-footer a:hover { 10796 font-weight: bold; 10797 } 10798 10799 .daftarku-fixed-footer .center { 10800 transform: scale(1.5) translateY(-5px); 10801 background: center no-repeat; 10802 background-size: contain; 10803 background-color: inherit; 10804 border-radius: 50%; 10805 } 10806 10807 .daftarku-fixed-footer img { 10808 max-width: 20px; 10809 margin-bottom: 0; 10810 max-height: 20px; 10811 } 10812 </style> 10813 10814 <div class="daftarku-fixed-footer"> 10815 <a href="https://ruang.islamic-books.org/" rel="nofollow noopener" target="_blank"> 10816 <img layout="intrinsic" height="20px" width="20px" src="favicon.png" alt="PROMOSI"> 10817 PROMO 10818 </a> 10819 <a href="https://ruang.islamic-books.org/" rel="nofollow noopener" target="_blank"> 10820 <img layout="intrinsic" height="20px" width="20px" src="favicon.png" alt="LOGIN"> 10821 LOGIN 10822 </a> 10823 <a href="https://ruang.islamic-books.org/" rel="nofollow noopener" target="_blank" class="tada"> 10824 <img layout="intrinsic" height="20px" width="20px" src="favicon.png" alt="DAFTAR"> 10825 DAFTAR 10826 </a> 10827 <a href="https://ruang.islamic-books.org/" rel="nofollow noopener" target="_blank"> 10828 <img layout="intrinsic" height="20px" width="20px" src="favicon.png" alt="TELEGRAM"> 10829 TELEGRAM 10830 </a> 10831 <a href="https://ruang.islamic-books.org/" rel="nofollow noopener" target="_blank" 10832 class="js_live_chat_link live-chat-link"> 10833 <img class="live-chat-icon" layout="intrinsic" height="20px" width="20px" src="favicon.png" alt="Live Chat"> 10834 Live Chat 10835 </a> 10836 </div> 10837 </div> 10838
10838<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 10838
10838
10839<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 10839
10839
10840<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 10840
10840
10841<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 10841
10841
10842<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 10842
10842
10843<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 10843
10843
10844<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 10844
10844
10845<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 10845
10845
10846<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 10846
10846
10847<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 10847
10847
10848<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"f3f31918dd2e48e899e08a3ded12408f","r":1}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10848
10848
10849<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"1d9cb0a6fe7a44259354295a86b38b05","r":1}' crossorigin="anonymous"></script>
10849 10850</body> 10851 </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.