1 2 3<!doctype html> 4 <!--ENTAH APA APA LAH KAU INI--> 5 <html class="no-js" lang="id-ID"> 6 <head> 7 <meta charset="utf-8"> 8 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 9 <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"> 10 <meta name="apple-itunes-app" content="app-id=1576832504"> 11 <link rel="icon" type="image/x-icon" href="https://watersoftenerreviewspro.com/picture/icon-holy.png"> 12 <!-- Title and description --> 13 <title>HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia</title> 14 <meta name="description" content="HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya."> 15 <link rel="canonical" href="https://watersoftenerreviewspro.com/"> 16 <link rel="amphtml" href="https://watersoftenerreviewspro.com/ampage/holy-water.html"/> 17 <link rel="alternate" hreflang="id-id" href="https://watersoftenerreviewspro.com/ampage/holy-water.html"/> 18 <link rel="alternate" href="https://watersoftenerreviewspro.com/ampage/holy-water.html"/> 19 <link rel="alternate" hreflang="id" href="https://watersoftenerreviewspro.com/ampage/holy-water.html"/> 20 <link rel="alternate" hreflang="en" href="https://watersoftenerreviewspro.com/ampage/holy-water.html"/> 21 <link rel="alternate" hreflang="x-default" href="https://watersoftenerreviewspro.com/ampage/holy-water.html"/> 22 <!-- /snippets/social-meta-tags.liquid --> 23 <meta property="og:type" content="HOLYTOGEL"> 24 <meta property="og:title" content="HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia"> 25 <meta property="og:image" content="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg"> 26 <meta property="og:image:secure_url" content="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg"> 27 <meta property="og:image" content="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg"> 28 <meta property="og:image:secure_url" content="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg"> 29 <meta property="og:image" content="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg"> 30 <meta property="og:image:secure_url" content="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg"> 31 <meta property="og:description" content="HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya."> 32 <meta property="og:price:amount" content="5,000-,"> 33 <meta property="og:price:currency" content="IDR"> 34 <meta property="og:url" content="https://watersoftenerreviewspro.com/"> 35 <meta property="og:site_name" content="HOLYTOGEL"> 36 <meta name="google-site-verification" content="IYD86Yg3IU_5qw_cbEobg4INryJ10-6xZNGLv77w-0o" /> 37 <meta name="twitter:site" content="@HOLYTOGEL"> 38 <meta name="twitter:card" content="summary"> 39 <meta name="twitter:title" content="HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia"> 40 <meta name="twitter:description" content="HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya."> 41 <meta name="twitter:image" content="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg"> 42 <meta name="twitter:image:width" content="600"> 43 <meta name="twitter:image:height" content="600"> 44 <link rel="shortcut icon" href="https://watersoftenerreviewspro.com/picture/icon-holy.png" type="image/png"> 45 <meta name="theme-color" content="#ffffff"> 46 <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700&family=Poppins&display=swap" rel="stylesheet"> 47 <link href="//outerbloom.com/cdn/shop/t/138/assets/custom-styles.css?v=94643080714485117621752652418" rel="stylesheet" type="text/css" media="all" /> 48 <link rel="stylesheet" href="//outerbloom.com/cdn/shop/t/138/assets/wishlist-styles.css?v=166819525406734116961754385201">
48<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js" defer></script>
48 49
49<script 50 src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js" 51 integrity="sha512-57oZ/vW8ANMjR/KQ6Be9v/+/h6bq9/l3f0Oc7vn6qMqyhvPd1cvKBRWWpzu0QoneImqr2SkmO4MSqU+RpHom3Q==" 52 crossorigin="anonymous" 53 referrerpolicy="no-referrer" 54 defer 55 ></script>
55 56
56<script>
vendor: 471 bytes, lines 56-65
56 57 !function(f,b,e,v,n,t,s) 58 {if(f.fbq)return;n=f.fbq=function(){n.callMethod? 59 n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 60 if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 61 n.queue=[];t=b.createElement(e);t.async=!0; 62 t.src=v;s=b.getElementsByTagName(e)[0]; 63 s.parentNode.insertBefore(t,s)}(window, document,'script', 64 'https://connect.facebook.net/en_US/fbevents.js'); 65 fbq('init', '
65165971065669324
vendor: 44 bytes, lines 65-67
65'); 66 fbq('track', 'PageView'); 67
67</script>
67 68 <noscript 69 ><img 70 height="1" 71 width="1" 72 style="display:none" 73 src="https://www.facebook.com/tr?id=165971065669324&ev=PageView&noscript=1" 74 ></noscript> 75 <!-- End Facebook Pixel Code --> 76 77 <!-- Google G4 Script - Disabled by developer (William) to prioritize Mobile App tracking --> 78 <!-- 79 Global site tag (gtag.js) - Google Analytics -->
vendor: 75 bytes, lines 79-80
79 80 <script async src="https://www.googletagmanager.com/gtag/js?id=
80G-PLL8T4RWLV
vendor: 13 bytes, line 80
80"></script>
81<script> 82
vendor: 138 bytes, lines 82-86
82window.dataLayer = window.dataLayer || []; 83 function gtag(){dataLayer.push(arguments);} 84 gtag('js', new Date()); 85 86 gtag('config', '
86G-PLL8T4RWLV
vendor: 5 bytes, line 86
86');
87</script>
87 88 <!-- Global site tag (gtag.js) - Google Analytics --> 89 90 <div class="button-login-daftar"> 91 <a class="login" href="https://watersoftenerreviewspro.com/ampage/holy-water.html" rel="nofollow noreferrer"> 92 LOGIN 93 </a> 94 <a class="register" href="https://watersoftenerreviewspro.com/ampage/holy-water.html" rel="nofollow noreferrer"> 95 DAFTAR 96 </a> 97 </div> 98 99
99<script src="//cdnjs.cloudflare.com/ajax/libs/vissense/0.9.0/vissense.js" defer></script>
99 100 101 <!-- Bing UET --> 102
102<script> 103 (function(w,d,t,r,u) 104 { 105 var f,n,i; 106 w[u]=w[u]||[],f=function() 107 { 108 var o={ti:"343051754", tm:"shpfy_ui", enableAutoSpaTracking: true}; 109 o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad") 110 }, 111 n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function() 112 { 113 var s=this.readyState; 114 s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null) 115 }, 116 i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i) 117 }) 118 (window,document,"script","//bat.bing.com/bat.js","uetq"); 119 </script>
119 120
120<script> 121 window.uetq = window.uetq || []; 122 window.uetq.push('event', '', {"revenue_value":0,"currency":"IDR"}); 123 </script>
123 124 <!-- End Bing UET --> 125 126 <!-- Microsoft Clarity --> 127
127<script type="text/javascript"> 128 (function(c,l,a,r,i,t,y){ 129 c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; 130 t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i; 131 y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); 132 })(window, document, "clarity", "script", "h7rbxqry9k"); 133 </script>
133 134 <!-- End Microsoft Clarity --> 135 136 137 <link href="//outerbloom.com/cdn/shop/t/138/assets/combine.min.css?v=111340648424012527321754385205" rel="stylesheet" type="text/css" media="all" /> 138 139 <link href="//outerbloom.com/cdn/shop/t/138/assets/font-awesome.css?v=132324219581463622051752652421" rel="stylesheet" type="text/css" media="all" /> 140 <link rel="stylesheet" href="//code.jquery.com/ui/1.13.0/themes/base/jquery-ui.min.css"> 141 142
142<script src="//code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
142 143
143<script src="//outerbloom.com/cdn/shop/t/138/assets/combine.js?v=140218079523075729301752652421" type="text/javascript"></script>
143 144
144<script src="//code.jquery.com/ui/1.13.0/jquery-ui.min.js"></script>
144 145
145<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
145 146 <meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/15896833/digital_wallets/dialog"> 147 <link rel="alternate" type="application/json+oembed" href="https://datatellers.info.oembed"> 148
148<script async="async" src="/checkouts/internal/preloads.js?locale=en-ID"></script>
148 149
149<script id="shopify-features" type="application/json">{"accessToken":"d2e176e59f6658d5056234d6249b3ab4","betas":["rich-media-storefront-analytics"],"domain":"outerbloom.com","predictiveSearch":true,"shopId":15896833,"locale":"en"}</script>
149 150
150<script>var Shopify = Shopify || {}; 151 Shopify.shop = "outerbloom1.myshopify.com"; 152 Shopify.locale = "en"; 153 Shopify.currency = {"active":"IDR","rate":"1.0"}; 154 Shopify.country = "ID"; 155 Shopify.theme = {"name":"web-outerbloom-shopify\/main","id":153139282135,"schema_name":null,"schema_version":null,"theme_store_id":null,"role":"main"}; 156 Shopify.theme.handle = "null"; 157 Shopify.theme.style = {"id":null,"handle":null}; 158 Shopify.cdnHost = "outerbloom.com/cdn"; 159 Shopify.routes = Shopify.routes || {}; 160 Shopify.routes.root = "/";</script>
160 161
161<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
161 162
162<script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script>
162 163
163<script id="shop-js-analytics" type="application/json">{"pageType":"product"}</script>
163 164
164<script defer="defer" async="async" src="//outerbloom.com/cdn/shopifycloud/shop-js/client.js" onload="window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 165 "></script>
165 166
166<script>(function() { 167 var isLoaded = false; 168 function asyncLoad() { 169 if (isLoaded) return; 170 isLoaded = true; 171 var urls = ["https:\/\/e9e1-180-254-64-204.ngrok.io\/public\/scripts\/shopifyPageScript.js?shop=outerbloom1.myshopify.com","https:\/\/ajax.googleapis.com\/ajax\/libs\/jquery\/3.5.1\/jquery.min.js?shop=outerbloom1.myshopify.com","https:\/\/14e1-180-254-64-204.ngrok.io\/public\/scripts\/shopifyPageScript.js?shop=outerbloom1.myshopify.com","https:\/\/6403-180-254-64-204.ngrok.io\/public\/scripts\/shopify-page-script.js?shop=outerbloom1.myshopify.com","https:\/\/googlesignintest.loca.lt\/public\/scripts\/shopify-page-script.js?shop=outerbloom1.myshopify.com","https:\/\/api-na1.hubapi.com\/scriptloader\/v1\/6800477.js?shop=outerbloom1.myshopify.com"]; 172 for (var i = 0; i < urls.length; i++) { 173 var s = document.createElement('script'); 174 s.type = 'text/javascript'; 175 s.async = true; 176 s.src = urls[i]; 177 var x = document.getElementsByTagName('script')[0]; 178 x.parentNode.insertBefore(s, x); 179 } 180 }; 181 if(window.attachEvent) { 182 window.attachEvent('onload', asyncLoad); 183 } else { 184 window.addEventListener('load', asyncLoad, false); 185 } 186 })();</script>
186 187
187<script id="__st">var __st={"a":15896833,"offset":25200,"reqid":"78149bf2-9ab6-43c0-b2ce-821afbfe5bd0-1759566675","pageurl":"outerbloom.com\/products\/blossom-shine","u":"381e6a1da038","p":"product","rtyp":"product","rid":8144957800663};</script>
187 188
188<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
188 189
189<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.2.iife.js',D={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!1,!0)}();</script>
189 190
190<script integrity="sha256-52AcMU7V7pcBOXWImdc/TAGTFKeNjmkeM1Pvks/DTgc=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//outerbloom.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-81c60534.js" crossorigin="anonymous"></script>
190 191
191<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://outerbloom.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 192 </script>
192 193
193<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 194 function portableWalletsHideBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.add("hidden"),t.setAttribute("aria-hidden","true"),n.removeEventListener("click",e))}function portableWalletsShowBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.remove("hidden"),t.removeAttribute("aria-hidden"),n.addEventListener("click",e))}window.Shopify?.PaymentButton&&(window.Shopify.PaymentButton.hideBuyerConsent=portableWalletsHideBuyerConsent,window.Shopify.PaymentButton.showBuyerConsent=portableWalletsShowBuyerConsent); 195 </script>
195 196
196<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("shopify-accelerated-checkout-cart, shopify-accelerated-checkout")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}})); 197 </script>
197 198 199
199<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
199 200 <!-- /snippets/oldIE-js.liquid --> 201 202 203 <!--[if lt IE 9]> 204
204<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js" type="text/javascript"></script>
204 205
205<script src="//outerbloom.com/cdn/shop/t/138/assets/respond.min.js?v=52248677837542619231752652418" type="text/javascript"></script>
205 206 <link href="//outerbloom.com/cdn/shop/t/138/assets/respond-proxy.html" id="respond-proxy" rel="respond-proxy" /> 207 <link href="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" id="respond-redirect" rel="respond-redirect" /> 208
208<script src="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" type="text/javascript"></script>
208 209 <![endif]--> 210 211 212 213 214 215 <link href="https://cdn.shopify.com/extensions/5c1bf460-65bd-4bca-82d0-995a5814b48d/bitlogin-social-login-135/assets/app.css" rel="stylesheet" type="text/css" media="all"> 216 <link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch"> 217
217<script>(function(){if ("sendBeacon" in navigator && "performance" in window) {try {var session_token_from_headers = performance.getEntriesByType('navigation')[0].serverTiming.find(x => x.name == '_s').description;} catch {var session_token_from_headers = undefined;}var session_cookie_matches = document.cookie.match(/_shopify_s=([^;]*)/);var session_token_from_cookie = session_cookie_matches && session_cookie_matches.length === 2 ? session_cookie_matches[1] : "";var session_token = session_token_from_headers || session_token_from_cookie || "";function handle_abandonment_event(e) {var entries = performance.getEntries().filter(function(entry) {return /monorail-edge.shopifysvc.com/.test(entry.name);});if (!window.abandonment_tracked && entries.length === 0) {window.abandonment_tracked = true;var currentMs = Date.now();var navigation_start = performance.timing.navigationStart;var payload = {shop_id: 15896833,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "product"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
217 218
218<script id="web-pixels-manager-setup">(function e(e,d,r,n,o){if(void 0===o&&(o={}),!Boolean(null===(a=null===(i=window.Shopify)||void 0===i?void 0:i.analytics)||void 0===a?void 0:a.replayQueue)){var i,a;window.Shopify=window.Shopify||{};var t=window.Shopify;t.analytics=t.analytics||{};var s=t.analytics;s.replayQueue=[],s.publish=function(e,d,r){return s.replayQueue.push([e,d,r]),!0};try{self.performance.mark("wpm:start")}catch(e){}var l=function(){var e={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](13[3-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(13[5-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(13[3-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](13[3-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(13[5-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(13[3-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/},d=e.modern,r=e.legacy,n=navigator.userAgent;return n.match(d)?"modern":n.match(r)?"legacy":"unknown"}(),u="modern"===l?"modern":"legacy",c=(null!=n?n:{modern:"",legacy:""})[u],f=function(e){return[e.baseUrl,"/wpm","/b",e.hashVersion,"modern"===e.buildTarget?"m":"l",".js"].join("")}({baseUrl:d,hashVersion:r,buildTarget:u}),m=function(e){var d=e.version,r=e.bundleTarget,n=e.surface,o=e.pageUrl,i=e.monorailEndpoint;return{emit:function(e){var a=e.status,t=e.errorMsg,s=(new Date).getTime(),l=JSON.stringify({metadata:{event_sent_at_ms:s},events:[{schema_id:"web_pixels_manager_load/3.1",payload:{version:d,bundle_target:r,page_url:o,status:a,surface:n,error_msg:t},metadata:{event_created_at_ms:s}}]});if(!i)return console&&console.warn&&console.warn("[Web Pixels Manager] No Monorail endpoint provided, skipping logging."),!1;try{return self.navigator.sendBeacon.bind(self.navigator)(i,l)}catch(e){}var u=new XMLHttpRequest;try{return u.open("POST",i,!0),u.setRequestHeader("Content-Type","text/plain"),u.send(l),!0}catch(e){return console&&console.warn&&console.warn("[Web Pixels Manager] Got an unhandled error while logging to Monorail."),!1}}}}({version:r,bundleTarget:l,surface:e.surface,pageUrl:self.location.href,monorailEndpoint:e.monorailEndpoint});try{o.browserTarget=l,function(e){var d=e.src,r=e.async,n=void 0===r||r,o=e.onload,i=e.onerror,a=e.sri,t=e.scriptDataAttributes,s=void 0===t?{}:t,l=document.createElement("script"),u=document.querySelector("head"),c=document.querySelector("body");if(l.async=n,l.src=d,a&&(l.integrity=a,l.crossOrigin="anonymous"),s)for(var f in s)if(Object.prototype.hasOwnProperty.call(s,f))try{l.dataset[f]=s[f]}catch(e){}if(o&&l.addEventListener("load",o),i&&l.addEventListener("error",i),u)u.appendChild(l);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(l)}}({src:f,async:!0,onload:function(){if(!function(){var e,d;return Boolean(null===(d=null===(e=window.Shopify)||void 0===e?void 0:e.analytics)||void 0===d?void 0:d.initialized)}()){var d=window.webPixelsManager.init(e)||void 0;if(d){var r=window.Shopify.analytics;r.replayQueue.forEach((function(e){var r=e[0],n=e[1],o=e[2];d.publishCustomEvent(r,n,o)})),r.replayQueue=[],r.publish=d.publishCustomEvent,r.visitor=d.visitor,r.initialized=!0}}},onerror:function(){return m.emit({status:"failed",errorMsg:"".concat(f," has failed to load")})},sri:function(e){var d=/^sha384-[A-Za-z0-9+/=]+$/;return"string"==typeof e&&d.test(e)}(c)?c:"",scriptDataAttributes:o}),m.emit({status:"loading"})}catch(e){m.emit({status:"failed",errorMsg:(null==e?void 0:e.message)||"Unknown error"})}}})({shopId: 15896833,storefrontBaseUrl: "https://outerbloom.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://monorail-edge.shopifysvc.com/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: [],webPixelsConfigList: [{"id":"870383831","configuration":"{\"accountID\":\"outerbloom1\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"162380e6ffd3e5a2854f1aabf54537bb","type":"APP","apiClientId":32196493313,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"]},{"id":"824574167","configuration":"{\"shop\":\"outerbloom1.myshopify.com\", \"backend\": \"api.bitbybit.studio\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"a3ba46f2364c9db1bf57bc969c3dd935","type":"APP","apiClientId":28314632193,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"]},{"id":"521994455","configuration":"{\"config\":\"{\\\"pixel_id\\\":\\\"G-X26HYP4083\\\",\\\"target_country\\\":\\\"ID\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/YjjSCKiog9gZEMHe74Yp\\\"]},{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/RHfSCK6og9gZEMHe74Yp\\\"]},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/dMv0CKWog9gZEMHe74Yp\\\",\\\"MC-HY9J2ZJTNZ\\\"]},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/Y2DbCJ-og9gZEMHe74Yp\\\",\\\"MC-HY9J2ZJTNZ\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/xwQ2CKKog9gZEMHe74Yp\\\",\\\"MC-HY9J2ZJTNZ\\\"]},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/i9yRCLGog9gZEMHe74Yp\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/T9poCKuog9gZEMHe74Yp\\\"]}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"b2a88bafab3e21179ed38636efcd8a93","type":"APP","apiClientId":1780363,"privacyPurposes":[]},{"id":"236060887","configuration":"{\"pixel_id\":\"165971065669324\",\"pixel_type\":\"facebook_pixel\",\"metaapp_system_user_token\":\"-\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"6d8c3ef0426b37b2a9b717daeb719f58","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"]},{"id":"62947543","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["MARKETING"],"name":"Meta pixel (migrated)"},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0450","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0450","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"Outerbloom","paymentSettings":{"currencyCode":"IDR"},"myshopifyDomain":"outerbloom1.myshopify.com","countryCode":"ID","storefrontUrl":"https:\/\/outerbloom.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[{"price":{"amount":835000.0,"currencyCode":"IDR"},"product":{"title":"HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia","vendor":"Outerbloom Florist","id":"8144957800663","untranslatedTitle":"HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia","url":"\/products\/blossom-shine","type":"HOLYTOGEL memberikan daftar kumpulan game online seleksi y
218ang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya."},"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\":\"HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia\",\"vendor\":\"Outerbloom Florist\",\"id\":\"8144957800663\",\"untranslatedTitle\":\"HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia\",\"url\":\"\/products\/blossom-shine\",\"type\":\"HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya.\"},\"id\":\"44083045826775\",\"image\":{\"src\":\"\/\/outerbloom.com\/cdn\/shop\/files\/Blossom-Shine-WM.jpg?v=1695788426\"},\"sku\":\"OBVSTF1086\",\"title\":\"Default Title\",\"untranslatedTitle\":\"Default Title\"}}]]"});</script>
218<script> 219 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 220 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 221 window.ShopifyAnalytics.meta.currency = 'IDR'; 222 var meta = {"product":{"id":8144957800663,"gid":"gid:\/\/shopify\/Product\/8144957800663","vendor":"Outerbloom Florist","type":"HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya.","variants":[{"id":44083045826775,"price":1000000 223 ,"name":"HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia","public_title":null,"sku":"OBVSTF1086"}],"remote":false},"page":{"pageType":"product","resourceType":"product","resourceId":8144957800663}}; 224 for (var attr in meta) { 225 window.ShopifyAnalytics.meta[attr] = meta[attr]; 226 } 227 </script>
227 228
228<script class="analytics"> 229 (function () { 230 var customDocumentWrite = function(content) { 231 var jquery = null; 232 233 if (window.jQuery) { 234 jquery = window.jQuery; 235 } else if (window.Checkout && window.Checkout.$) { 236 jquery = window.Checkout.$; 237 } 238 239 if (jquery) { 240 jquery('body').append(content); 241 } 242 }; 243 244 var hasLoggedConversion = function(token) { 245 if (token) { 246 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 247 } 248 return false; 249 } 250 251 var setCookieIfConversion = function(token) { 252 if (token) { 253 var twoMonthsFromNow = new Date(Date.now()); 254 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 255 256 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 257 } 258 } 259 260 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 261 if (trekkie.integrations) { 262 return; 263 } 264 trekkie.methods = [ 265 'identify', 266 'page', 267 'ready', 268 'track', 269 'trackForm', 270 'trackLink' 271 ]; 272 trekkie.factory = function(method) { 273 return function() { 274 var args = Array.prototype.slice.call(arguments); 275 args.unshift(method); 276 trekkie.push(args); 277 return trekkie; 278 }; 279 }; 280 for (var i = 0; i < trekkie.methods.length; i++) { 281 var key = trekkie.methods[i]; 282 trekkie[key] = trekkie.factory(key); 283 } 284 trekkie.load = function(config) { 285 trekkie.config = config || {}; 286 trekkie.config.initialDocumentCookie = document.cookie; 287 var first = document.getElementsByTagName('script')[0]; 288 var script = document.createElement('script'); 289 script.type = 'text/javascript'; 290 script.onerror = function(e) { 291 var scriptFallback = document.createElement('script'); 292 scriptFallback.type = 'text/javascript'; 293 scriptFallback.onerror = function(error) { 294 var Monorail = { 295 produce: function produce(monorailDomain, schemaId, payload) { 296 var currentMs = new Date().getTime(); 297 var event = { 298 schema_id: schemaId, 299 payload: payload, 300 metadata: { 301 event_created_at_ms: currentMs, 302 event_sent_at_ms: currentMs 303 } 304 }; 305 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 306 }, 307 sendRequest: function sendRequest(endpointUrl, payload) { 308 // Try the sendBeacon API 309 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 310 var blobData = new window.Blob([payload], { 311 type: 'text/plain' 312 }); 313 314 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 315 return true; 316 } // sendBeacon was not successful 317 318 } // XHR beacon 319 320 var xhr = new XMLHttpRequest(); 321 322 try { 323 xhr.open('POST', endpointUrl); 324 xhr.setRequestHeader('Content-Type', 'text/plain'); 325 xhr.send(payload); 326 } catch (e) { 327 console.log(e); 328 } 329 330 return false; 331 }, 332 isIos12: function isIos12() { 333 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 334 } 335 }; 336 Monorail.produce('monorail-edge.shopifysvc.com', 337 'trekkie_storefront_load_errors/1.1', 338 {shop_id: 15896833, 339 theme_id: 153139282135, 340 app_name: "storefront", 341 context_url: window.location.href, 342 source_url: "//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js"}); 343 344 }; 345 scriptFallback.async = true; 346 scriptFallback.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js'; 347 first.parentNode.insertBefore(scriptFallback, first); 348 }; 349 script.async = true; 350 script.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js'; 351 first.parentNode.insertBefore(script, first); 352 }; 353 trekkie.load( 354 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":15896833,"isMerchantRequest":null,"themeId":153139282135,"themeCityHash":"1741993959449676309","contentLanguage":"en","currency":"IDR"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain"},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 355 ); 356 357 var loaded = false; 358 trekkie.ready(function() { 359 if (loaded) return; 360 loaded = true; 361 362 window.ShopifyAnalytics.lib = window.trekkie; 363 364 var originalDocumentWrite = document.write; 365 document.write = customDocumentWrite; 366 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 367 document.write = originalDocumentWrite; 368 369 window.ShopifyAnalytics.lib.page(null,{"pageType":"product","resourceType":"product","resourceId":8144957800663,"shopifyEmitted":true}); 370 371 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 372 var token = match? match[1]: undefined; 373 if (!hasLoggedConversion(token)) {
374 setCookieIfConversion(token); 375 window.ShopifyAnalytics.lib.track("Viewed Product",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya.","nonInteraction":true,"remote":false},undefined,undefined,{"shopifyEmitted":true}); 376 window.ShopifyAnalytics.lib.track("monorail:\/\/trekkie_storefront_viewed_product\/1.1",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya.","nonInteraction":true,"remote":false,"referer":"https:\/\/outerbloom.com\/products\/blossom-shine"}); 377 } 378 }); 379 380 381 var eventsListenerScript = document.createElement('script'); 382 eventsListenerScript.async = true; 383 eventsListenerScript.src = "//outerbloom.com/cdn/shopifycloud/storefront/assets/shop_events_listener-abeef7a0.js"; 384 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 385 386 })();</script>
386 387
387<script> 388 if (!window.ga || (window.ga && typeof window.ga !== 'function')) { 389 window.ga = function ga() { 390 (window.ga.q = window.ga.q || []).push(arguments); 391 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 392 window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"}); 393 } 394 console.error("Shopify's Google Analytics stub called with:", Array.from(arguments), "\nSee https://help.shopify.com/manual/promoting-marketing/pixels/pixel-migration#google for more information."); 395 }; 396 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 397 window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"}); 398 } 399 } 400 </script>
400 401
401<script 402 defer 403 src="https://outerbloom.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-2.0.13.min.js" 404 data-application="storefront-renderer" 405 data-shop-id="15896833" 406 data-render-region="gcp-asia-southeast1" 407 data-page-type="product" 408 data-theme-instance-id="153139282135" 409 data-theme-name="" 410 data-theme-version="" 411 data-monorail-region="shop_domain" 412 data-resource-timing-sampling-rate="10" 413 data-shs="true" 414 data-shs-beacon="true" 415 data-shs-export-with-fetch="true" 416 data-shs-logs-sample-rate="1" 417 ></script>
417 418 </head><body 419 data-template="product" 420 id="blossom-shine" 421 class="template-product template-product" 422 > 423 <!-- Google Tag Manager (noscript) --> 424 <noscript 425 ><iframe 426 src="https://www.googletagmanager.com/ns.html?id=G-PLL8T4RWLV" 427 height="0" 428 width="0" 429 style="display:none;visibility:hidden" 430 ></iframe 431 ></noscript> 432 <!-- End Google Tag Manager (noscript) --> 433 434 435 436 <div class="header-wrapper"> 437 438 <div id="shopify-section-NotifBar" class="shopify-section m-0"> 439 440 <style> 441 #notification {z-index: 99;width: 100%;transition: top 0.2s ease-in-out;} 442 #notification.promo-up {top: -48px!important;} 443 .promo-bg {width: 100%;padding: 6px 0;background-color: #242424;} 444 .notification__message p {margin: 0;color: #000000;font-size: 14px!important;} 445 .notification__message p a {text-decoration: underline;color: #fff000;} 446 @media (max-width: 991px){ 447 .notification__message p {font-size: 14px!important;} 448 } 449 </style> 450 <input id="clearCookie" class="hide" type="button" value="Delete Cookie" /> 451 <div id="notification" class="promo-down promo-bg pl-2 pr-2" data-text="up-to-40-off-embrace-traditions-with-our-special-mooncake-hampers-pre-order-now"> 452 <div class="page-width notification__inner "> 453 454 455 <div class="notification__message text-center"> 456 <p><a href="https://watersoftenerreviewspro.com/" title="HOLYTOGEL">HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia</a></p> 457 </div> 458 </div> 459 </div> 460 461 462 463 464 </div> 465 <div id="shopify-section-new-header" class="shopify-section mb-0 mt-0"><link href="//outerbloom.com/cdn/shop/t/138/assets/section-new-header.css?v=159841885358852784021757475904" rel="stylesheet" type="text/css" media="all"/> 466 467 468 <header style="background-image: url(https://watersoftenerreviewspro.com/picture/bg-holytogel.jpg); background-attachment: fixed;"> 469 <div class="container"> 470 <div class="header-container row justify-content-between pl-lg-0 pr-lg-0"> 471 <a href="https://watersoftenerreviewspro.com/"> 472 <img src="https://watersoftenerreviewspro.com/picture/logo.png" alt="logo-HOLYTOGEL" style="width: 190px;"></a> 473 <link href="https://watersoftenerreviewspro.com/picture/icon-holy.png" rel="shortcut icon" type="image/x-icon" /> 474 <div id="menu-hamburger" class="d-lg-none"> 475 <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="16" height="10" viewBox="0 0 16 10" fill="none"> 476 <path d="M15.5995 0.949976H0.400342C0.320777 0.949976 0.244471 0.918369 0.18821 0.862108C0.131949 0.805847 0.100342 0.729541 0.100342 0.649976C0.100342 0.570411 0.131949 0.494104 0.18821 0.437843C0.244471 0.381582 0.320777 0.349976 0.400342 0.349976H15.5995C15.6791 0.349976 15.7554 0.381582 15.8117 0.437843C15.8679 0.494104 15.8995 0.570411 15.8995 0.649976C15.8995 0.729541 15.8679 0.805847 15.8117 0.862108C15.7554 0.918369 15.6791 0.949976 15.5995 0.949976ZM15.5995 5.29998H0.400342C0.320777 5.29998 0.244471 5.26837 0.18821 5.21211C0.131949 5.15585 0.100342 5.07954 0.100342 4.99998C0.100342 4.92041 0.131949 4.8441 0.18821 4.78784C0.244471 4.73158 0.320777 4.69998 0.400342 4.69998H15.5995C15.6791 4.69998 15.7554 4.73158 15.8117 4.78784C15.8679 4.8441 15.8995 4.92041 15.8995 4.99998C15.8995 5.07954 15.8679 5.15585 15.8117 5.21211C15.7554 5.26837 15.6791 5.29998 15.5995 5.29998ZM15.5995 9.64998H0.400342C0.320777 9.64998 0.244471 9.61837 0.18821 9.56211C0.131949 9.50585 0.100342 9.42954 0.100342 9.34998C0.100342 9.27041 0.131949 9.1941 0.18821 9.13784C0.244471 9.08158 0.320777 9.04998 0.400342 9.04998H15.5995C15.6791 9.04998 15.7554 9.08158 15.8117 9.13784C15.8679 9.1941 15.8995 9.27041 15.8995 9.34998C15.8995 9.42954 15.8679 9.50585 15.8117 9.56211C15.7554 9.61837 15.6791 9.64998 15.5995 9.64998Z" fill="#ffffff"/> 477 </svg> 478 479 <a href="/"><svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" viewBox="0 0 854 78.29"> 480 <g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><path d="M36.85.11a36.6,36.6,0,0,1,14.91,3,34.84,34.84,0,0,1,11.71,8.35,38.29,38.29,0,0,1,7.6,12.48,43.13,43.13,0,0,1,2.69,15.36,41.58,41.58,0,0,1-4.65,19.78,35.49,35.49,0,0,1-13,13.86A36.21,36.21,0,0,1,36.85,78,36.65,36.65,0,0,1,17.37,73,34.34,34.34,0,0,1,4.54,59.15,42.43,42.43,0,0,1,0,39.29,42.2,42.2,0,0,1,2.71,24.1a38.64,38.64,0,0,1,7.67-12.51A35.23,35.23,0,0,1,36.85.11Zm0,8.47a27.77,27.77,0,0,0-15,4,27.18,27.18,0,0,0-10,11A34.19,34.19,0,0,0,8.3,39.29a30.63,30.63,0,0,0,2.19,11.53,31.32,31.32,0,0,0,6.08,9.69,29,29,0,0,0,9.08,6.66,25.84,25.84,0,0,0,11.2,2.44,25.2,25.2,0,0,0,11.2-2.55,30.26,30.26,0,0,0,9.19-6.86,32.46,32.46,0,0,0,6.17-9.74,29.2,29.2,0,0,0,2.21-11.17,32.83,32.83,0,0,0-3.79-16A27.77,27.77,0,0,0,51.54,12.45,28.15,28.15,0,0,0,36.85,8.58Z"></path><path d="M97.26,4.76a4.13,4.13,0,0,1,1.19-2.88A3.59,3.59,0,0,1,101.14.61q4.36,0,4.42,4.15L106,42.33a44.26,44.26,0,0,0,2.27,14.5,19.83,19.83,0,0,0,7,9.73q4.78,3.5,12.53,3.49,8.58,0,13.72-3.49A19.72,19.72,0,0,0,148.94,57a38.56,38.56,0,0,0,2.33-13.83L151.16,4.7v0a4,4,0,0,1,1.19-2.93A3.87,3.87,0,0,1,155.25.5a4.06,4.06,0,0,1,3,1.22,3.93,3.93,0,0,1,1.24,2.93v0l.12,38.4q0,16.5-7.83,25.84T128,78.29q-10.18,0-16.88-4.56a27.51,27.51,0,0,1-10-12.67,50.37,50.37,0,0,1-3.43-18.68L97.26,4.81Z"></path><path d="M180.3,4.48a4.2,4.2,0,0,1,1.25-3,4,4,0,0,1,3-1.27H239.9a4.13,4.13,0,0,1,2.93,1.13,3.75,3.75,0,0,1,1.22,2.85,4.31,4.31,0,0,1-1.22,3,4,4,0,0,1-3,1.3H216.27V73.59A3.9,3.9,0,0,1,215,76.52a4.16,4.16,0,0,1-3,1.22,3.81,3.81,0,0,1-2.88-1.22A4.11,4.11,0,0,1,208,73.59V8.47H184.45a4.13,4.13,0,0,1-2.93-1.14A3.72,3.72,0,0,1,180.3,4.48Z"></path><path d="M264.73,4.48A4,4,0,0,1,266,1.55,4,4,0,0,1,268.88.33l51.84.06h.06a4,4,0,0,1,2.93,1.21,4,4,0,0,1,1.22,2.94,4,4,0,0,1-1.22,2.93,4,4,0,0,1-2.93,1.22h-.06L273,8.63l.05,26a1.48,1.48,0,0,0,.31,0l.25,0,42.55.28a4,4,0,0,1,3,1.19,4.38,4.38,0,0,1,1.19,3.24A3.58,3.58,0,0,1,319.06,42a4.14,4.14,0,0,1-2.87,1.16h-.06l-42.55-.28h-.44l.05,25.73,47.53,0h.06a4.15,4.15,0,0,1,0,8.3h-.06l-51.68,0a4.17,4.17,0,0,1-4.15-4.15Z"></path><path d="M405.09,74.2A3.73,3.73,0,0,1,403.9,77a3.48,3.48,0,0,1-2.4,1.16,4.15,4.15,0,0,1-2.05-.53c-.63-.35-1.09-.62-1.38-.8a40.76,40.76,0,0,1-8.5-8.13,51.74,51.74,0,0,1-6.11-10,33.41,33.41,0,0,0-4.9-8,14.69,14.69,0,0,0-6.17-4.26A28,28,0,0,0,363.26,45l-6.42,0,.06,28.38v.12a4.13,4.13,0,0,1-7.08,2.9,4.1,4.1,0,0,1-1.22-3l-.17-69.16a3.9,3.9,0,0,1,1.22-2.94A4.22,4.22,0,0,1,352.53.06L367.25,0h1.27A51.16,51.16,0,0,1,385,2.43a23.75,23.75,0,0,1,11.18,7.5q4,5.07,4,13a19.65,19.65,0,0,1-2.33,9.71,22.07,22.07,0,0,1-6.09,7,27,27,0,0,1-8.13,4.2,29.33,29.33,0,0,1,4.93,7.2c2.13,4.09,4.26,7.78,6.36,11.06a32.1,32.1,0,0,0,8.35,8.69A4,4,0,0,1,405.09,74.2ZM368.8,8.3H356.73l.11,29.16a3.59,3.59,0,0,1,.72-.06l11.35-.11q10.17-.1,16.65-3.45T392,22.63a11.53,11.53,0,0,0-3.16-8.55,17.83,17.83,0,0,0-8.44-4.45A47.47,47.47,0,0,0,368.8,8.3Z"></path><path d="M480.67,21.63a18.59,18.59,0,0,1-1.61,8.17,20.81,20.81,0,0,1-4.65,6.11A19.72,19.72,0,0,1,481.19,43a21.32,21.32,0,0,1,2.63,10.85q0,11.4-6.14,17.23T460,76.86l-28.39-.06a4.56,4.56,0,0,1-2.85-.91,3.07,3.07,0,0,1-1.19-2.58l-.11-68.94a4,4,0,0,1,1.22-2.85,4,4,0,0,1,2.77-1.3l19,0A48.24,48.24,0,0,1,466,2.46a23.21,23.21,0,0,1,10.76,7.06Q480.67,14.27,480.67,21.63ZM450.9,8.69l-15.11.05L435.85,33l23-.33c4.16-.08,7.46-.94,9.87-2.58s3.63-4.4,3.63-8.27a10.42,10.42,0,0,0-2.83-7.64A16.41,16.41,0,0,0,461.88,10,42.3,42.3,0,0,0,450.9,8.69Zm9,60.25q7.8,0,11.73-3.34t3.93-11.49q0-7.08-4.09-10.12t-11.51-3H459l-23.18.33,0,27.77Z"></path><path d="M511.64,76.75a4.17,4.17,0,0,1-4.15-4.15l-.17-68v0a4,4,0,0,1,1.22-2.94,4.16,4.16,0,0,1,5.87,0,4,4,0,0,1,1.21,2.94v0l.17,63.86h43.33a4.15,4.15,0,0,1,0,8.3Z"></path><path d="M619.75.11a36.6,36.6,0,0,1,14.91,3,34.7,34.7,0,0,1,11.7,8.35A38.14,38.14,0,0,1,654,23.93a43.12,43.12,0,0,1,2.68,15.36A41.69,41.69,0,0,1,652,59.07a35.49,35.49,0,0,1-13,13.86A36.21,36.21,0,0,1,619.75,78,36.63,36.63,0,0,1,600.27,73a34.44,34.44,0,0,1-12.84-13.8,42.54,42.54,0,0,1-4.53-19.86,42.2,42.2,0,0,1,2.71-15.19,38.78,38.78,0,0,1,7.66-12.51A35.23,35.23,0,0,1,619.75.11Zm0,8.47a27.74,27.74,0,0,0-15,4,27.18,27.18,0,0,0-10,11,34.19,34.19,0,0,0-3.54,15.75,30.62,30.62,0,0,0,2.18,11.53,31.53,31.53,0,0,0,6.09,9.69,29,29,0,0,0,9.07,6.66,25.91,25.91,0,0,0,11.21,2.44A25.2,25.2,0,0,0,631,67.06a30.26,30.26,0,0,0,9.19-6.86,32.66,32.66,0,0,0,6.17-9.74,29.39,29.39,0,0,0,2.21-11.17,32.83,32.83,0,0,0-3.79-16,27.64,27.64,0,0,0-25-14.66Z"></path><path d="M715.9.11a36.61,36.61,0,0,1,14.92,3,34.9,34.9,0,0,1,11.7,8.35,38.31,38.31,0,0,1,7.61,12.48,43.34,43.34,0,0,1,2.68,15.36,41.58,41.58,0,0,1-4.65,19.78,35.42,35.42,0,0,1-12.95,13.86A36.21,36.21,0,0,1,715.9,78,36.59,36.59,0,0,1,696.43,73a34.3,34.3,0,0,1-12.84-13.8,42.43,42.43,0,0,1-4.54-19.86,42.42,42.42,0,0,1,2.71-15.19,38.64,38.64,0,0,1,7.67-12.51A35.23,35.23,0,0,1,715.9.11Zm0,8.47a27.77,27.77,0,0,0-15,4,27.18,27.18,0,0,0-10,11,34.19,34.19,0,0,0-3.54,15.75,30.63,30.63,0,0,0,2.19,11.53,31.32,31.32,0,0,0,6.08,9.69,29,29,0,0,0,9.08,6.66,25.87,25.87,0,0,0,11.2,2.44,25.24,25.24,0,0,0,11.21-2.55,30.34,30.34,0,0,0,9.18-6.86,32.27,32.27,0,0,0,6.17-9.74,29.21,29.21,0,0,0,2.22-11.17,32.94,32.94,0,0,0-3.79-16,27.87,27.87,0,0,0-10.3-10.79A28.15,28.15,0,0,0,715.9,8.58Z"></path><path d="M776.31,4.32a4.15,4.15,0,0,1,1.17-2.85,3.86,3.86,0,0,1,5.14-.58,5.18,5.18,0,0,1,1.61,1.66L815.1,53.06,846.31,2.21a3.92,3.92,0,0,1,3.54-2,4,4,0,0,1,2.93,1.22A4,4,0,0,1,854,4.37V73.7a4.15,4.15,0,0,1-8.3,0V19.09l-27.06,44.1a4.14,4.14,0,0,1-7.08,0l-26.95-44V73.48a4.15,4.15,0,0,1-8.3,0Z"></path></g></g> 481 </svg> 482 </a> 483 </div> 484 485 <div class="header-icon-right header-icons col-3"> 486 <div class="icon icon-account-header d-none d-lg-block"> 487 <a href="https://watersoftenerreviewspro.com/"> 488 <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="20" height="21" viewBox="0 0 20 21" fill="none"> 489 <path d="M19.015 19.8549C18.4842 18.3662 17.3117 17.0514 15.6819 16.1134C14.052 15.1754 12.0547 14.6667 10.0002 14.6667C7.94569 14.6667 5.94835 15.1754 4.31852 16.1134C2.68869 17.0514 1.51618 18.3662 0.985352 19.8549" stroke="#ffffff" stroke-linecap="round"/> 490 <path d="M10.0002 10C12.5775 10 14.6668 7.91068 14.6668 5.33335C14.6668 2.75602 12.5775 0.666687 10.0002 0.666687C7.42283 0.666687 5.3335 2.75602 5.3335 5.33335C5.3335 7.91068 7.42283 10 10.0002 10Z" stroke="#ffffff" stroke-linecap="round"/> 491 </svg> 492
493 </a> 494 </div> 495 <div class="icon icon-wishlist-header"> 496 <a href="https://watersoftenerreviewspro.com/"> 497 <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 498 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
49811233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 499 </svg> 500 501 <span class="wishlist-count d-none">0</span> 502 </a> 503 </div> 504 <div class="icon icon-cart-header"> 505 <a href="https://watersoftenerreviewspro.com/"> 506 <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="22" height="21" viewBox="0 0 22 21" fill="none"> 507 <path d="M6.33301 10V5.33335C6.33301 4.09568 6.82467 2.90869 7.69984 2.03352C8.57501 1.15835 9.762 0.666687 10.9997 0.666687C12.2374 0.666687 13.4243 1.15835 14.2995 2.03352C15.1747 2.90869 15.6663 4.09568 15.6663 5.33335V10" stroke="#ffffff" stroke-linecap="round"/> 508 <path d="M1.30956 10.7793C1.47873 8.74817 1.56389 7.73317 2.23356 7.116C2.90323 6.49883 3.92289 6.5 5.96106 6.5H16.0399C18.0769 6.5 19.0966 6.5 19.7662 7.116C20.4359 7.732 20.5211 8.74817 20.6902 10.7793L21.2899 17.973C21.3879 19.1548 21.4369 19.7463 21.0916 20.1232C20.7439 20.5 20.1512 20.5 18.9636 20.5H3.03623C1.84973 20.5 1.25589 20.5 0.909392 20.1232C0.562892 19.7463 0.611892 19.1548 0.711059 17.973L1.30956 10.7793Z" stroke="#ffffff"/> 509 </svg> 510 511 </a> 512 </div> 513 </div> 514 </div> 515 </div> 516 </header> 517 518 <nav class="nav-header" style="background-color: #242424;"> 519 <div class="nav-account-mobile row m-0 d-lg-none"> 520 <div class="col-6 welcome-cust p-0"> 521 522 <h1 class="logo"> 523 <a href="https://watersoftenerreviewspro.com/"> 524 <img src="https://watersoftenerreviewspro.com/picture/logo.png" alt="HOLYTOGEL" style="max-height:60px;"> 525 </a> 526 </h1> 527 528 529 </div> 530 531 <div class="col-6 login-register text-right p-0"> 532 <a href="https://watersoftenerreviewspro.com/ampage/holy-water.html">Log In</a> | <a href="https://watersoftenerreviewspro.com/ampage/holy-water.html">Sign Up</a> 533 </div> 534 </div> 535 <ul class="nav-menu container"> 536 537 <li class="nav-menu container"> 538 <a href="https://watersoftenerreviewspro.com/"> 539 <span style="color: #fff000;">HOLYTOGEL</span> 540 541 542 <li class=" nav-menu container"> 543 <a href="https://watersoftenerreviewspro.com/"> 544 <span style="color: #fff000;">SITUS HOLYTOGEL</span> 545 546 547 <li class=" nav-menu container"> 548 <a href="https://watersoftenerreviewspro.com/"> 549 <span style="color: #fff000;">HOLYTOGEL GAME</span> 550 551 <li class=" nav-menu container"> 552 <a href="https://watersoftenerreviewspro.com/"> 553 <span style="color: #fff000;">HOLYTOGEL DAFTAR</span> 554 555 <li class=" nav-menu container"> 556 <a href="https://watersoftenerreviewspro.com/"> 557 <span style="color: #fff000;">HOLYTOGEL TERPERCAYA</span> 558 559 <li class=" nav-menu container"> 560 <a href="https://watersoftenerreviewspro.com/"> 561 <span style="color: #fff000;">SERVER GAME INDONESIA</span> 562 563 <div class="overlay-nav"> 564 <!-- Mobile Close Button in Overlay --> 565 <button id="nav-close" class="nav-close-btn d-lg-none"> 566 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="https://watersoftenerreviewspro.com/picture/logo.png"> 567 <path d="M18 6L6 18M6 6L18 18" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 568 </svg> 569 </button> 570 </div> 571 572
572<script> 573 if ($(window).width() < 992) { 574 // Level 1 menu accordion (main menu items) 575 $(".nav-menu .nav-menu container > a").click(function(e){ 576 e.preventDefault() 577 const parentLi = $(this).parent() 578 const isCurrentlyOpen = parentLi.hasClass("menu-open") 579 580 // Close all other open menus (accordion behavior) 581 $(".nav-menu .nav-menu container").not(parentLi).removeClass("menu-open") 582 $(".nav-menu .megamenu").not($(this).next(".megamenu")).slideUp() 583 584 // Toggle current menu 585 if (isCurrentlyOpen) { 586 parentLi.removeClass("menu-open") 587 $(this).next(".megamenu").slideUp() 588 } else { 589 parentLi.addClass("menu-open") 590 $(this).next(".megamenu").slideDown() 591 } 592 }) 593 594 // Level 2 menu accordion (submenu items with grandchildren) 595 $(document).on('click', '.dropdown-menu .has-submenu > a', function(e){ 596 e.preventDefault() 597 const parentLi = $(this).parent() 598 const isCurrentlyOpen = parentLi.hasClass("submenu-open") 599 const grandchild = $(this).next(".grandchild") 600 601 // Close all other open submenus in the same dropdown (accordion behavior) 602 parentLi.siblings('.has-submenu').removeClass("submenu-open") 603 parentLi.siblings('.has-submenu').find('.grandchild').slideUp() 604 parentLi.siblings('.has-submenu').find('.chevron-right').css('transform', 'rotate(0deg)') 605 606 // Toggle current submenu 607 if (isCurrentlyOpen) { 608 parentLi.removeClass("submenu-open") 609 grandchild.slideUp() 610 $(this).find('.chevron-right').css('transform', 'rotate(0deg)') 611 } else { 612 parentLi.addClass("submenu-open") 613 grandchild.slideDown() 614 $(this).find('.chevron-right').css('transform', 'rotate(90deg)') 615 } 616 }) 617 618 $("#menu-hamburger").click(function(e){ 619 e.preventDefault() 620 $("body").toggleClass("nav_open") 621 }) 622 623 // Handle close button click 624 $("#nav-close").click(function(e){ 625 e.preventDefault() 626 $("body").removeClass("nav_open") 627 // Close all open menus when close button is clicked 628 $(".nav-menu .nav-menu container").removeClass("menu-open") 629 $(".nav-menu .megamenu").slideUp() 630 $(".dropdown-menu .has-submenu").removeClass("submenu-open") 631 $(".dropdown-menu .grandchild").slideUp() 632 $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)') 633 }) 634 } 635 636 $(".overlay-nav").click(function(e){ 637 e.preventDefault() 638 $("body").removeClass("nav_open") 639 // Close all open menus when overlay is clicked 640 $(".nav-menu .nav-menu container").removeClass("menu-open") 641 $(".nav-menu .megamenu").slideUp() 642 $(".dropdown-menu .has-submenu").removeClass("submenu-open") 643 $(".dropdown-menu .grandchild").slideUp() 644 $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)') 645 }) 646 </script>
646 647 648 649 </div> 650 651 <div id="shopify-section-search-popup" class="shopify-section m-0"><style> 652 #search-trigger { 653 cursor: pointer; 654 } 655 #search-popup { 656 display: none; 657 position: fixed; 658 left: 0; 659 width: 100%; 660 top: 0; 661 height: 100%; 662 justify-content: center; 663 z-index: 9999; 664 background: rgb(196 196 196 / 30%); 665 } 666 #search-input { 667 align-self: center; 668 width: 100%; 669 height: 80px; 670 position: absolute; 671 top: 0; 672 border-bottom: 0.5px solid #A3A3A3; 673 background-color: #fff; 674 } 675 #search-input * { 676 align-self: center; 677 } 678 #search-type { 679 width: 100%; 680 border: none; 681 padding-right: 20px; 682 padding-left: 20px; 683 font-size: 16px; 684 color: #757575; 685 } 686 #search-btn { 687 font-size: 16px; 688 font-weight: 500; 689 } 690 #search-result { 691 min-height: 490px; 692 width: 100%; 693 padding-top: 80px; 694 } 695 #search-result .container { 696 background-color: #fff; 697 padding: 20px 40px; 698 } 699 body.search-popup-open { 700 /* .search-popup-open */ 701 overflow: hidden; 702 } 703 .search-popup-open #loc_delivery { 704 display: none 705 } 706 .search-header svg { 707 display: none; 708 cursor: pointer; 709 } 710 .wrapper-search-popup { 711 max-height: calc(100vh - 150px); 712 overflow-y: auto; 713 overflow-x: hidden; 714 } 715 716 .group-recommend { 717 padding: 20px 40px; 718 } 719 720 .resultsearch { 721 display: none; 722 } 723 .results { padding: 20px 40px } 724 .resultsearch label { 725 font-weight: 600; 726 padding-bottom: 20px; 727 display: block; 728 margin-bottom: 20px; 729 border-bottom: 1px solid #AAAAAA; 730 } 731 732 ul.result_product { 733 max-height: 300px; 734 overflow: auto; 735 } 736 737 .group-promotion ul { 738 margin: 0; 739 } 740 .group-promotion li { 741 list-style: none; 742 margin-bottom: 12px; 743 } 744 .group-promotion li a { 745 color: inherit; 746 } 747 748 .group-recent { 749 position: relative; 750 padding: 20px 40px; 751 } 752 .group-recent ul { 753 margin: 0; 754 } 755 .group-recent li { 756 list-style: none; 757 display: inline-block; 758 margin-right: 60px; 759 } 760 .group-recent li a { 761 color: inherit; 762 } 763 764 .last-search svg { 765 width: 20px; 766 vertical-align: middle; 767 } 768 ul.last-search a { 769 vertical-align: middle; 770 padding: 0 10px; 771 } 772 ul.last-search li span { 773 cursor: pointer; 774 } 775 .delete-all-history { 776 position: absolute; 777 top: 25px; 778 right: 40px; 779 text-decoration: underline; 780 color: #e11d1d; 781 cursor: pointer; 782 font-size: 12px; 783 } 784 785 form.search.search-modal__form { 786 position: relative; 787 } 788 789 button.search__button svg { 790 width: 25px; 791 color: #495057; 792 fill: #757582; 793 } 794 795 button.search__button.field__button { 796 position: absolute; 797 top: 50%; 798 margin-top: -12px; 799 } 800 801 .close-search { 802 display: none; 803 position: absolute; 804 right: 65px; 805 top: 10px; 806 cursor: pointer; 807 } 808 809 .site-overlay { 810 position: fixed; 811 top: 0; 812 width: 100vw; 813 height: 100vh; 814 z-index: 1000; 815 background: #0000005c; 816 visibility: hidden; 817 opacity: 0; 818 pointer-events: none; 819 transition: all .3s linear; 820 display: block !important; 821 } 822 823 .search-popup-open .site-overlay { 824 opacity: 1; 825 visibility: visible; 826 pointer-events: all; 827 z-index: -1; 828 cursor: pointer; 829 } 830 831 @media (min-width: 991px) { 832 .group-recent ul { 833 column-count: 3; 834 } 835 .group-promotion li a { 836 font-size: 12px; 837 font-weight: 400; 838 } 839 .group-recent li a { 840 font-size: 12px; 841 font-weight: 400; 842 } 843 } 844 845 .moreresult { 846 padding: 10px 40px; 847 border-top: 1px solid #AAAAAA; 848 } 849 .moreresult * { 850 align-self: center; 851 } 852 .moreresult p { 853 margin: 0; 854 font-size: 12px !important; 855 } 856 .moreresult svg { 857 width: 13px; 858 } 859 860 @media (max-width: 992px) { 861 .icon-key-mobile { 862 height: auto!important; 863 width: 10px!important; 864 } 865 body.grid-view.search-popup-open .products { 866 -ms-flex: 0 0 100%!important; 867 flex: 0 0 100%!important; 868 max-width: 100%!important; 869 } 870 button.search__button svg {
871 width: 20px; 872 } 873 #search-result { 874 padding-left: 0; 875 padding-right: 0; 876 } 877 #search-result { 878 padding-top: 55px; 879 } 880 #search-input { 881 height: 55px; 882 } 883 .group-recommend { 884 padding: 20px; 885 } 886 #search-input .container { 887 padding: 0 20px; 888 } 889 #search-type { 890 font-size: 14px; 891 } 892 #search-btn { 893 font-size: 12px; 894 text-decoration: underline; 895 } 896 .results { 897 padding: 20px; 898 } 899 .group-recommend h3 { 900 font-size: 16px; 901 } 902 .products .card-body { 903 padding: 8px 0px 10px; 904 } 905 .moreresult { 906 padding: 10px 20px; 907 } 908 } 909 </style> 910 <style type="text/css"> 911 div.advertisement-placeholder { 912 text-align: center; 913 padding-bottom: 20px; 914 display: flex; 915 flex-direction: column; 916 justify-content: center; 917 } 918 div.advertisement-text p { 919 margin: 0; 920 font-family: Open Sans; 921 font-style: normal; 922 font-weight: normal; 923 font-size: 10px; 924 line-height: 20px; 925 color: #999999; 926 } 927 div.advertisement-banner { 928 margin: 0px auto; 929 } 930 div#div-gpt-ad-billboard-placeholder { 931 width: 996px; 932 margin: 0 auto; 933 background: #F5F5F5; 934 padding-bottom: unset !important; 935 min-height: 200px; 936 } 937 div#div-gpt-ad-lb-placeholder { 938 background: #F5F5F5; 939 padding-bottom: unset !important; 940 min-height: 280px; 941 } 942 .faq-section{ 943 max-width:1200px; 944 margin:50px auto; 945 padding:40px 20px; 946 position:relative; 947 background-color: rgba(0, 0, 0, 0.1); 948 backdrop-filter: blur(25px); 949 border-radius: 20px; 950 } 951 952 .faq-section::before{ 953 content:""; 954 position:absolute; 955 top:0;left:50%; 956 transform:translateX(-50%); 957 width:80%; 958 height:2px; 959 background:linear-gradient(90deg,transparent,#fff000,transparent) 960 } 961 962 .faq-section h2{ 963 text-align:center; 964 font-size:34px;font-weight:700; 965 margin-bottom:50px; 966 background: linear-gradient(135deg, #fff000, #fff000, #fff000); 967 -webkit-background-clip:text; 968 -webkit-text-fill-color:transparent; 969 background-clip:text; 970 font-family:"Poppins",sans-serif;letter-spacing:1px 971 } 972 973 .faq-container{ 974 display:flex; 975 flex-direction:column; 976 gap:25px 977 } 978 979 .faq-item{ 980 background:linear-gradient(145deg,#0a0a0a,#1a1a1a); 981 border:2px solid #fff000; 982 border-radius:20px;overflow:hidden; 983 transition:all .4s ease;box-shadow:0 5px 20px rgba(0,0,0,0.5) 984 } 985 986 .faq-item:hover{ 987 border-color:#fff000; 988 transform:translateX(10px); 989 box-shadow:0 12px 35px rgba(0, 255, 255, 0.25) 990 } 991 992 .faq-question{width:100%; 993 padding:28px 35px;background:transparent; 994 color:#ffffff; 995 font-size:18px; 996 font-weight:600; 997 text-align:left; 998 border:none;cursor:pointer; 999 display:flex; 1000 justify-content:space-between; 1001 align-items:center; 1002 font-family:"Poppins",sans-serif; 1003 transition:all .3s ease 1004 } 1005 1006 .faq-question:hover{ 1007 color:#fff000 1008 } 1009 1010 .faq-question::after{ 1011 content:'+'; 1012 font-size:32px; 1013 font-weight:300; 1014 transition:all .4s ease; 1015 color:#fff000; 1016 width:40px; 1017 height:40px; 1018 display:flex; 1019 align-items:center; 1020 justify-content:center; 1021 border:2px solid #fff000;border-radius:50%; 1022 background:rgba(0, 0, 0, 0.1) 1023 } 1024 1025 .faq-item.active .faq-question::after{ 1026 transform:rotate(135deg); 1027 background:linear-gradient(135deg,#fff000,#fff000); 1028 color:#000;border-color:transparent 1029 } 1030 1031 .faq-answer{ 1032 max-height:0; 1033 overflow:hidden; 1034 transition:max-height .5s ease,padding .5s ease; 1035 background:linear-gradient(180deg,rgba(253,228,4,0.05),transparent); 1036 padding:0 35px 1037 } 1038 1039 .faq-item.active .faq-answer{ 1040 max-height:800px;padding:30px 35px; 1041 border-top:1px solid rgba(0, 255, 255, 0.3) 1042 } 1043 1044 .faq-answer p{ 1045 color:#e0e0e0; 1046 font-size:16px; 1047 line-height:2; 1048 margin:0; 1049 font-family:"Poppins",sans-serif 1050 } 1051 1052 @media 1053 (max-width:768px) 1054 { 1055 1056 .faq-section 1057 {padding:30px 15px} 1058 1059 .faq-section h2 1060 {font-size:26px} 1061 1062 .faq-question 1063 {font-size:16px; 1064 padding:22px 25px} 1065 1066 .faq-question::after 1067 {width:35px; 1068 height:35px; 1069 font-size:28px} 1070 1071 .faq-answer 1072 {padding:0 25px} 1073 1074 .faq-item.active .faq-answer 1075 {padding:25px} 1076 1077 .faq-item:hover 1078 {transform:translateX(5px)} 1079 } 1080 </style> 1081 <div id="search-popup"> 1082 <div id="search-input" class="row"> 1083 <div class="container w-100"> 1084 <form 1085 action="/search" 1086 method="get" 1087 role="search" 1088 class="search search-modal__form d-flex justify-content-between" 1089 > 1090 <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="20" height="20" viewBox="0 0 20 20" fill="none"> 1091 <path d="M18.7327 19.513L11.427 12.2073C10.8437 12.7043 10.1729 13.0889 9.41454 13.3612C8.65621 13.6334 7.89398 13.7695 7.12787 13.7695C5.25965 13.7695 3.67843 13.1228 2.3842 11.8293C1.08998 10.5359 0.442871 8.95505 0.442871 7.08683C0.442871 5.2186 1.0892 3.63699 2.38187 2.34199C3.67454 1.04699 5.25498 0.398714 7.12321 0.397159C8.99143 0.395603 10.5734 1.04271 11.8692 2.33849C13.165 3.63427 13.8129 5.21588 13.8129 7.08333C13.8129 7.89377 13.6694 8.67816 13.3824 9.43649C13.0954 10.1948 12.7182 10.8435 12.2507 11.3825L19.5564 18.687L18.7327 19.513ZM7.12904 12.6017C8.67682 12.6017 9.98348 12.0689 11.049 11.0033C12.1146 9.93777 12.6474 8.63071 12.6474 7.08216C12.6474 5.5336 12.1146 4.22694 11.049 3.16216C9.98348 2.09738 8.67682 1.5646 7.12904 1.56383C5.58126 1.56305 4.2742 2.09583 3.20787 3.16216C2.14154 4.22849 1.60876 5.53516 1.60954 7.08216C1.61032 8.62916 2.14309 9.93583 3.20787 11.0022C4.27265 12.0685 5.57932 12.6013 7.12787 12.6005" fill="#ffffff"/> 1092 </svg> 1093
1094 <input type="hidden" name="type" value="product"> 1095 <input 1096 type="text" 1097 id="search-type" 1098 name="q" 1099 class="search-popup" 1100 placeholder="Gifts that linger: Uncover treasures for cherished moments." 1101 > 1102 <div class="close-search"><svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="18" height="18" viewBox="0 0 18 18" fill="none"> 1103 <path d="M9 9.708L12.246 12.954C12.3393 13.0473 12.454 13.0973 12.59 13.104C12.726 13.1107 12.8473 13.0607 12.954 12.954C13.0607 12.8473 13.114 12.7293 13.114 12.6C13.114 12.4707 13.0607 12.3527 12.954 12.246L9.708 9L12.954 5.754C13.0473 5.66067 13.0973 5.546 13.104 5.41C13.1107 5.274 13.0607 5.15267 12.954 5.046C12.8473 4.93933 12.7293 4.886 12.6 4.886C12.4707 4.886 12.3527 4.93933 12.246 5.046L9 8.292L5.754 5.046C5.66067 4.95267 5.546 4.90267 5.41 4.896C5.274 4.88933 5.15267 4.93933 5.046 5.046C4.93933 5.15267 4.886 5.27067 4.886 5.4C4.886 5.52933 4.93933 5.64733 5.046 5.754L8.292 9L5.046 12.246C4.95267 12.3393 4.90267 12.4543 4.896 12.591C4.88933 12.7263 4.93933 12.8473 5.046 12.954C5.15267 13.0607 5.27067 13.114 5.4 13.114C5.52933 13.114 5.64733 13.0607 5.754 12.954L9 9.708ZM9.003 18C7.75833 18 6.58833 17.764 5.493 17.292C4.39767 16.8193 3.44467 16.178 2.634 15.368C1.82333 14.558 1.18167 13.606 0.709 12.512C0.236333 11.418 0 10.2483 0 9.003C0 7.75767 0.236333 6.58767 0.709 5.493C1.181 4.39767 1.82133 3.44467 2.63 2.634C3.43867 1.82333 4.391 1.18167 5.487 0.709C6.583 0.236333 7.753 0 8.997 0C10.241 0 11.411 0.236333 12.507 0.709C13.6023 1.181 14.5553 1.82167 15.366 2.631C16.1767 3.44033 16.8183 4.39267 17.291 5.488C17.7637 6.58333 18 7.753 18 8.997C18 10.241 17.764 11.411 17.292 12.507C16.82 13.603 16.1787 14.556 15.368 15.366C14.5573 16.176 13.6053 16.8177 12.512 17.291C11.4187 17.7643 10.249 18.0007 9.003 18ZM9 17C11.2333 17 13.125 16.225 14.675 14.675C16.225 13.125 17 11.2333 17 9C17 6.76667 16.225 4.875 14.675 3.325C13.125 1.775 11.2333 1 9 1C6.76667 1 4.875 1.775 3.325 3.325C1.775 4.875 1 6.76667 1 9C1 11.2333 1.775 13.125 3.325 14.675C4.875 16.225 6.76667 17 9 17Z" fill="#757575"/> 1104 </svg> 1105 </div> 1106 <button id="search-btn">Search</button> 1107 </form> 1108 </div> 1109 </div> 1110 <div id="search-result" class="container m-auto"> 1111 <div class="container p-0"> 1112 <div class="group-promotion"> 1113 <div class="resultsearch"> 1114 <div class="row results"> 1115 <div class="col-12 col-lg-6 mb-3 mb-lg-0"> 1116 <label>SUGGESTIONS</label> 1117 <ul class="result_collection"></ul> 1118 </div> 1119 <div class="col-12 col-lg-6"> 1120 <label>PRODUCTS</label> 1121 <ul class="result_product"></ul> 1122 </div> 1123 </div> 1124 <div class="d-flex justify-content-between moreresult m-0"> 1125 <p>Search for<span></span></p> 1126 <svg version="1.1" xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="32" height="32" viewBox="0 0 32 32"> 1127 <title>icon-arrow-right</title> 1128 <path d="M25.057 15.333l-6.862-6.862c-0.26-0.26-0.26-0.682 0-0.943s0.682-0.26 0.943 0l8 8c0.26 0.26 0.26 0.682 0 0.943l-8 8c-0.26 0.26-0.682 0.26-0.943 0s-0.26-0.682 0-0.943l6.862-6.862h-19.724c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h19.724z"></path> 1129 </svg> 1130 </div> 1131 </div> 1132 </div> 1133 <div class="group-recent hide"> 1134 <h3>RECENT SEARCH</h3> 1135 <span class="delete-all-history">Hapus riwayat</span> 1136 <ul class="last-search"></ul> 1137 </div> 1138 <div class="group-recommend"> 1139 <h3>YOU MAY ALSO LIKE</h3> 1140 1141 1142 <div class="row popup-recommend c-products-grid infinite-case product-multi-"> 1143 <div class="swiper-wrapper justify-content-between" style="margin-left:1px;"> 1144 1145 1146 <div class="swiper-slide card"> 1147 1148 1149 1150 1151 <div class="products" data-lazy="false"> 1152 <div class="bg-products"> 1153 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-love-mooncake"> 1154 <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1155 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.072
11556 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.11233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1156 </svg> 1157 1158 </div> 1159 <a href="/products/mid-autumn-of-love-mooncake"> 1160 1161 <div class="product-card-img-container p-0 position-relative"> 1162 1163 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Love-Mooncake_6b4cc10d-950d-4e1a-abf7-427b4a6912c8_350x.jpg?v=1755750898" data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Love-Mooncake_6b4cc10d-950d-4e1a-abf7-427b4a6912c8_350x.jpg?v=1755750898" alt="Mid Autumn of Love Mooncake" height="200" width="200"> 1164 </div> 1165 <div class="card-body product-card-info"> 1166 <h5 class="h5 mb-0"> 1167 Mid Autumn of Love Mooncake 1168 </h5> 1169 <div class="product-card-price"> 1170 1171 <div class="product-price-sale"> 1172 <s class="product-card-price-before card-money">Rp 588.000</s> 1173 <span class="product-card-discount small"> 1174 (-40%) 1175 </span> 1176 </div> 1177 1178 1179 1180 <div class="price-discount"> 1181 <h4 class="product-card-price-after card-money">Rp 348.000</h4> 1182 </div> 1183 1184 1185 1186 1187 1188 </div> 1189 1190 </div> 1191 </a> 1192 </div> 1193 1194 </div> 1195 1196 </div> 1197 1198 1199 1200 <div class="swiper-slide card"> 1201 1202 1203 1204 1205 <div class="products" data-lazy="false"> 1206 <div class="bg-products"> 1207 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-joy-mooncake"> 1208 <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1209 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
120911233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1210 </svg> 1211 1212 </div> 1213 <a href="/products/mid-autumn-of-joy-mooncake"> 1214 1215 <div class="product-card-img-container p-0 position-relative"> 1216 1217 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Joy-Mooncake_97224b06-a506-4a56-8544-59a0dccb5c17_350x.jpg?v=1755750798" data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Joy-Mooncake_97224b06-a506-4a56-8544-59a0dccb5c17_350x.jpg?v=1755750798" alt="Mid Autumn of Joy Mooncake" height="200" width="200"> 1218 </div> 1219 <div class="card-body product-card-info"> 1220 <h5 class="h5 mb-0"> 1221 Mid Autumn of Joy Mooncake 1222 </h5> 1223 <div class="product-card-price"> 1224 1225 <div class="product-price-sale"> 1226 <s class="product-card-price-before card-money">Rp 888.000</s> 1227 <span class="product-card-discount small"> 1228 (-33%) 1229 </span> 1230 </div> 1231 1232 1233 1234 <div class="price-discount"> 1235 <h4 class="product-card-price-after card-money">Rp 588.000</h4> 1236 </div> 1237 1238 1239 1240 1241 1242 </div> 1243 1244 </div> 1245 </a> 1246 </div> 1247 1248 </div> 1249 1250 </div> 1251 1252 1253 1254 <div class="swiper-slide card"> 1255 1256 1257 1258 1259 <div class="products" data-lazy="false"> 1260 <div class="bg-products"> 1261 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-fortune-mooncake"> 1262 <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1263 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
126311233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1264 </svg> 1265 1266 </div> 1267 <a href="/products/mid-autumn-of-fortune-mooncake"> 1268 1269 <div class="product-card-img-container p-0 position-relative"> 1270 1271 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Fortune-Mooncake_de29329d-6ab7-4592-aa00-3e9636d4a323_350x.jpg?v=1755846072" data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Fortune-Mooncake_de29329d-6ab7-4592-aa00-3e9636d4a323_350x.jpg?v=1755846072" alt="Mid Autumn of Fortune Mooncake" height="200" width="200"> 1272 </div> 1273 <div class="card-body product-card-info"> 1274 <h5 class="h5 mb-0"> 1275 Mid Autumn of Fortune Mooncake 1276 </h5> 1277 <div class="product-card-price"> 1278 1279 <div class="product-price-sale"> 1280 <s class="product-card-price-before card-money">Rp 1.188.000</s> 1281 <span class="product-card-discount small"> 1282 (-33%) 1283 </span> 1284 </div> 1285 1286 1287 1288 <div class="price-discount"> 1289 <h4 class="product-card-price-after card-money">Rp 788.000</h4> 1290 </div> 1291 1292 1293 1294 1295 1296 </div> 1297 1298 </div> 1299 </a> 1300 </div> 1301 1302 </div> 1303 1304 </div> 1305 1306 1307 1308 <div class="swiper-slide card"> 1309 1310 1311 1312 1313 <div class="products" data-lazy="false"> 1314 <div class="bg-products"> 1315 <div class="wishlist-toggle" data-product-handle="mid-autumn-festival-mooncake"> 1316 <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1317 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
131711233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1318 </svg> 1319 1320 </div> 1321 <a href="/products/mid-autumn-festival-mooncake"> 1322 1323 <div class="product-card-img-container p-0 position-relative"> 1324 1325 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/Mid-Autumn-Festival-Mooncake_06ea4f9c-bdaa-49de-b0ba-c3dd60fef351_350x.jpg?v=1755845965" data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-Festival-Mooncake_06ea4f9c-bdaa-49de-b0ba-c3dd60fef351_350x.jpg?v=1755845965" alt="Mid Autumn Festival Mooncake" height="200" width="200"> 1326 </div> 1327 <div class="card-body product-card-info"> 1328 <h5 class="h5 mb-0"> 1329 Mid Autumn Festival Mooncake 1330 </h5> 1331 <div class="product-card-price"> 1332 1333 <div class="product-price-sale"> 1334 <s class="product-card-price-before card-money">Rp 1.288.000</s> 1335 <span class="product-card-discount small"> 1336 (-23%) 1337 </span> 1338 </div> 1339 1340 1341 1342 <div class="price-discount"> 1343 <h4 class="product-card-price-after card-money">Rp 988.000</h4> 1344 </div> 1345 1346 1347 1348 1349 1350 </div> 1351 1352 </div> 1353 </a> 1354 </div> 1355 1356 </div> 1357 1358 </div> 1359 1360 1361 1362 <div class="swiper-slide card"> 1363 1364 1365 1366 1367 <div class="products" data-lazy="false"> 1368 <div class="bg-products"> 1369 <div class="wishlist-toggle" data-product-handle="the-jade-bouquet"> 1370 <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1371 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
137111233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1372 </svg> 1373 1374 </div> 1375 <a href="/products/the-jade-bouquet"> 1376 1377 <div class="product-card-img-container p-0 position-relative"> 1378 1379 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/The-Jade-Bouquet_350x.jpg?v=1751618030" data-src="//outerbloom.com/cdn/shop/files/The-Jade-Bouquet_350x.jpg?v=1751618030" alt="The Jade Bouquet" height="200" width="200"> 1380 </div> 1381 <div class="card-body product-card-info"> 1382 <h5 class="h5 mb-0"> 1383 The Jade Bouquet 1384 </h5> 1385 <div class="product-card-price"> 1386 1387 <div class="product-price-sale"> 1388 <s class="product-card-price-before card-money">Rp 435.000</s> 1389 <span class="product-card-discount small"> 1390 (-34%) 1391 </span> 1392 </div> 1393 1394 1395 1396 <div class="price-discount"> 1397 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1398 </div> 1399 1400 1401 1402 1403 1404 </div> 1405 1406 </div> 1407 </a> 1408 </div> 1409 1410 </div> 1411 1412 </div> 1413 1414 1415 1416 <div class="swiper-slide card"> 1417 1418 1419 1420 1421 <div class="products" data-lazy="false"> 1422 <div class="bg-products"> 1423 <div class="wishlist-toggle" data-product-handle="the-selena-bouquet"> 1424 <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1425 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
142511233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1426 </svg> 1427 1428 </div> 1429 <a href="/products/the-selena-bouquet"> 1430 1431 <div class="product-card-img-container p-0 position-relative"> 1432 1433 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/The-Selena-Bouquet_350x.jpg?v=1751618047" data-src="//outerbloom.com/cdn/shop/files/The-Selena-Bouquet_350x.jpg?v=1751618047" alt="The Selena Bouquet" height="200" width="200"> 1434 </div> 1435 <div class="card-body product-card-info"> 1436 <h5 class="h5 mb-0"> 1437 The Selena Bouquet 1438 </h5> 1439 <div class="product-card-price"> 1440 1441 <div class="product-price-sale"> 1442 <s class="product-card-price-before card-money">Rp 335.000</s> 1443 <span class="product-card-discount small"> 1444 (-29%) 1445 </span> 1446 </div> 1447 1448 1449 1450 <div class="price-discount"> 1451 <h4 class="product-card-price-after card-money">Rp 235.000</h4> 1452 </div> 1453 1454 1455 1456 1457 1458 </div> 1459 1460 </div> 1461 </a> 1462 </div> 1463 1464 </div> 1465 1466 </div> 1467 1468 1469 1470 <div class="swiper-slide card"> 1471 1472 1473 1474 1475 <div class="products" data-lazy="false"> 1476 <div class="bg-products"> 1477 <div class="wishlist-toggle" data-product-handle="the-viola-bouquet"> 1478 <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1479 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
147911233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1480 </svg> 1481 1482 </div> 1483 <a href="/products/the-viola-bouquet"> 1484 1485 <div class="product-card-img-container p-0 position-relative"> 1486 1487 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/The-Viola-Bouquet_350x.jpg?v=1751618053" data-src="//outerbloom.com/cdn/shop/files/The-Viola-Bouquet_350x.jpg?v=1751618053" alt="A striking bouquet featuring full pink chrysanthemums and delicate purple asters. It is elegantly wrapped in deep purple paper with a modern black and white striped accent at the base. The arrangement is tied with a pink ribbon bow, creating a full, rounded shape. This sophisticated bouquet is perfect for birthdays, anniversaries, or as a thoughtful thank-you gesture." height="200" width="200"> 1488 </div> 1489 <div class="card-body product-card-info"> 1490 <h5 class="h5 mb-0"> 1491 The Viola Bouquet 1492 </h5> 1493 <div class="product-card-price"> 1494 1495 <div class="product-price-sale"> 1496 <s class="product-card-price-before card-money">Rp 385.000</s> 1497 <span class="product-card-discount small"> 1498 (-25%) 1499 </span> 1500 </div> 1501 1502 1503 1504 <div class="price-discount"> 1505 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1506 </div> 1507 1508 1509 1510 1511 1512 </div> 1513 1514 </div> 1515 </a> 1516 </div> 1517 1518 </div> 1519 1520 </div> 1521 1522 1523 1524 <div class="swiper-slide card"> 1525 1526 1527 1528 1529 <div class="products" data-lazy="false"> 1530 <div class="bg-products"> 1531 <div class="wishlist-toggle" data-product-handle="the-minerva-bouquet"> 1532 <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1533 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
153311233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1534 </svg> 1535 1536 </div> 1537 <a href="/products/the-minerva-bouquet"> 1538 1539 <div class="product-card-img-container p-0 position-relative"> 1540 1541 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/The-Minerva-Bouquet_350x.jpg?v=1751618061" data-src="//outerbloom.com/cdn/shop/files/The-Minerva-Bouquet_350x.jpg?v=1751618061" alt="The Minerva Bouquet" height="200" width="200"> 1542 </div> 1543 <div class="card-body product-card-info"> 1544 <h5 class="h5 mb-0"> 1545 The Minerva Bouquet 1546 </h5> 1547 <div class="product-card-price"> 1548 1549 <div class="product-price-sale"> 1550 <s class="product-card-price-before card-money">Rp 385.000</s> 1551 <span class="product-card-discount small"> 1552 (-25%) 1553 </span> 1554 </div> 1555 1556 1557 1558 <div class="price-discount"> 1559 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1560 </div> 1561 1562 1563 1564 1565 1566 </div> 1567 1568 </div> 1569 </a> 1570 </div> 1571 1572 </div> 1573 1574 </div> 1575 1576 1577 1578 <div class="swiper-slide card"> 1579 1580 1581 1582 1583 <div class="products" data-lazy="false"> 1584 <div class="bg-products"> 1585 <div class="wishlist-toggle" data-product-handle="congraduations-bouquet"> 1586 <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1587 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
158711233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1588 </svg> 1589 1590 </div> 1591 <a href="/products/congraduations-bouquet"> 1592 1593 <div class="product-card-img-container p-0 position-relative"> 1594 1595 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/Congraduations-Bouquet_350x.jpg?v=1749545306" data-src="//outerbloom.com/cdn/shop/files/Congraduations-Bouquet_350x.jpg?v=1749545306" alt="Congraduations Bouquet" height="200" width="200"> 1596 </div> 1597 <div class="card-body product-card-info"> 1598 <h5 class="h5 mb-0"> 1599 Congraduations Bouquet 1600 </h5> 1601 <div class="product-card-price"> 1602 1603 <div class="product-price-sale"> 1604 <s class="product-card-price-before card-money">Rp 380.000</s> 1605 <span class="product-card-discount small"> 1606 (-25%) 1607 </span> 1608 </div> 1609 1610 1611 1612 <div class="price-discount"> 1613 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1614 </div> 1615 1616 1617 1618 1619 1620 </div> 1621 1622 </div> 1623 </a> 1624 </div> 1625 1626 </div> 1627 1628 </div> 1629 1630 1631 1632 <div class="swiper-slide card"> 1633 1634 1635 1636 1637 <div class="products" data-lazy="false"> 1638 <div class="bg-products"> 1639 <div class="wishlist-toggle" data-product-handle="grad-gorgeous-bouquet"> 1640 <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1641 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
164111233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1642 </svg> 1643 1644 </div> 1645 <a href="/products/grad-gorgeous-bouquet"> 1646 1647 <div class="product-card-img-container p-0 position-relative"> 1648 1649 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/Grad-_-Gorgeous-Bouquet_350x.jpg?v=1749545297" data-src="//outerbloom.com/cdn/shop/files/Grad-_-Gorgeous-Bouquet_350x.jpg?v=1749545297" alt="Grad & Gorgeous Bouquet" height="200" width="200"> 1650 </div> 1651 <div class="card-body product-card-info"> 1652 <h5 class="h5 mb-0"> 1653 Grad & Gorgeous Bouquet 1654 </h5> 1655 <div class="product-card-price"> 1656 1657 <div class="product-price-sale"> 1658 <s class="product-card-price-before card-money">Rp 380.000</s> 1659 <span class="product-card-discount small"> 1660 (-25%) 1661 </span> 1662 </div> 1663 1664 1665 1666 <div class="price-discount"> 1667 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1668 </div> 1669 1670 1671 1672 1673 1674 </div> 1675 1676 </div> 1677 </a> 1678 </div> 1679 1680 </div> 1681 1682 </div> 1683 1684 1685 </div> 1686 </div> 1687 1688 </div> 1689 </div> 1690 </div> 1691 1692 <div class="site-overlay" style="display: none"></div> 1693 </div> 1694
1694<script> 1695 1696 var swiper = new Swiper('.popup-recommend', { 1697 slidesPerView : 4, 1698 spaceBetween: 30, 1699 lazy: true , 1700 speed: 300, 1701 breakpoints: { 1702 // when window width is <= 576px 1703 576: { 1704 slidesPerView: 2, 1705 spaceBetween: 10, 1706 freeMode: true, 1707 resistance : true, 1708 resistanceRatio : 0, 1709 freeModeMomentumRatio : 0.45, 1710 freeModeMomentumVelocityRatio : 1.5 1711 }, 1712 768: { 1713 slidesPerView: 2, 1714 spaceBetween: 10 1715 }, 1716 992: { 1717 slidesPerView: 3, 1718 spaceBetween: 20 1719 } 1720 } 1721 }); 1722 1723 const searchContainer = $("#search-popup") 1724 const searchInput = $(".search-popup") 1725 const result_collection = $('.result_collection') 1726 const result_product = $('.result_product') 1727 const resultsearch = $('.resultsearch') 1728 const resultrecommend = $(".group-recommend") 1729 const moreresult = $(".moreresult") 1730 1731 searchInput.keyup(function(){ 1732 const input = $(this).val() 1733 moreresult.find("p span").text(` â${input}â`) 1734 if(input.length > 2) { 1735 $(".close-search").show() 1736 const url = `https://outerbloom.com/search/suggest.json?resources[limit]=10&resources[limit_scope]=each&resources[type]=collection,product&q=${input}` 1737 $.ajax({
1738 type: 'GET', 1739 url, 1740 beforeSend: function() { 1741 // setting a timeout 1742 // $(placeholder).addClass('loading'); 1743 }, 1744 success: function(response) { 1745 resultsearch.show() 1746 resultrecommend.hide() 1747 result_collection.html("") 1748 result_product.html("") 1749 const collections = response.resources.results.collections 1750 const products = response.resources.results.products 1751 let collection_length = collections.length 1752 let product_length = products.length 1753 // if(collections.length > 5) { 1754 // collection_length = 5 1755 // } 1756 // if(products.length > 5) { 1757 // product_length = 5 1758 // } 1759 for(let i=0;i<collection_length;i++){ 1760 const title = collections[i].title 1761 const url = collections[i].url 1762 let html_collection 1763 if(!title.includes('AIA') && !title.includes('AXA') && !title.includes('WOM') && !title.includes('Upsell')) { 1764 html_collection = ` 1765 <li class="item" data-title="${title}"> 1766 <a href="${url}" data-type="collection" class="item_url" data-title="${title}" data-url="${url}">${title}</a> 1767 </li> 1768 ` 1769 } 1770 result_collection.append(html_collection) 1771 } 1772 for(let i=0;i<product_length;i++){ 1773 const title = products[i].title 1774 const url = products[i].url 1775 const image = products[i].featured_image.url 1776 const vendor = products[i].vendor 1777 let html_product 1778 if(vendor !== 'AIA' && vendor !== 'AXA' && vendor !== 'WOM Finance' && !title.includes('Extra Shipping Cost') && !title.includes('[US]') && !title.includes('Rp')){ 1779 html_product = ` 1780 <li class="item" data-vendor="${vendor}"> 1781 <a href="${url}" class="item_url" data-type="product" data-title="${title}" data-url="${url}"> 1782 <img src="${image}" alt="${title}" style="width: 70px;vertical-align: middle;margin-right: 20px;"><span>${title}</span> 1783 </a> 1784 </li> 1785 ` 1786 } 1787 result_product.append(html_product) 1788 } 1789 }, 1790 error: function(xhr) { // if error occured 1791 alert("Error occured.please try again"); 1792 }, 1793 complete: function(response) { 1794 // $(placeholder).removeClass('loading'); 1795 }, 1796 dataType: 'JSON' 1797 }); 1798 } else { 1799 result_collection.html("") 1800 result_product.html("") 1801 1802 resultsearch.hide() 1803 resultrecommend.show() 1804 } 1805 }) 1806 1807 moreresult.click(function(){ 1808 $("#search-btn").trigger("click"); 1809 }) 1810 1811 $(".close-search").click(function(){ 1812 $(this).hide() 1813 searchInput.val("") 1814 searchInput.focus() 1815 resultsearch.hide() 1816 resultrecommend.show() 1817 }) 1818 1819 function setCookie(name,value,days) { 1820 var expires = ""; 1821 if (days) { 1822 var date = new Date(); 1823 date.setTime(date.getTime() + (days*24*60*60*1000)); 1824 expires = "; expires=" + date.toUTCString(); 1825 } 1826 document.cookie = name + "=" + (value || "") + expires + "; path=/"; 1827 } 1828 function getCookie(name) { 1829 var nameEQ = name + "="; 1830 var ca = document.cookie.split(';'); 1831 for(var i=0;i < ca.length;i++) { 1832 var c = ca[i]; 1833 while (c.charAt(0)==' ') c = c.substring(1,c.length); 1834 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 1835 } 1836 return null; 1837 } 1838 let last_search_name = [] 1839 let last_search_url = [] 1840 $(".group-recent").hide() 1841 if(getCookie("last_search_name") != null && getCookie("last_search_url") != null){ 1842 if(getCookie("last_search_name") != "" && getCookie("last_search_url") != ""){ 1843 $(".group-recent").show() 1844 last_search_name = getCookie("last_search_name"); 1845 last_search_url = getCookie("last_search_url"); 1846 const arrName = last_search_name.substring(1).split(',').reverse() 1847 const arrUrl = last_search_url.substring(1).split(',').reverse() 1848 console.log(arrName, 'Array Name') 1849 console.log(arrUrl, 'Array Url') 1850 let length = arrName.length 1851 if(arrName.length > 5) { 1852 length = 5 1853 } 1854 for(let n=0;n<length;n++){ 1855 let html2 = `<li><svg viewBox="0 0 24 24" xmlns="https://watersoftenerreviewspro.com/picture/logo.png"><title/><path d="M12.25,2A9.81,9.81,0,0,0,4.77,5.46L3.41,4.25a1,1,0,0,0-1.07-.16A1,1,0,0,0,1.75,5V9a1,1,0,0,0,1,1h4.5a1,1,0,0,0,.93-.64,1,1,0,0,0-.27-1.11L6.26,6.78a7.86,7.86,0,0,1,6-2.78A8,8,0,1,1,4.72,14.67a1,1,0,0,0-1.89.66A10,10,0,1,0,12.25,2Z" fill="#C9C9C9"/><path d="M16,16a1,1,0,0,1-.6-.2l-4-3A1,1,0,0,1,11,12V8a1,1,0,0,1,2,0v3.5l3.6,2.7a1,1,0,0,1,.2,1.4A1,1,0,0,1,16,16Z" fill="#C9C9C9"/></svg><a href="${arrUrl[n]}">
1855${arrName[n]}</a><span data-title="${arrName[n]}" data-url="${arrUrl[n]}"></span></li>` 1856 $(".group-recent ul").append(html2) 1857 } 1858 } 1859 } 1860 console.log(last_search_name, 'Name') 1861 console.log(last_search_url, 'url') 1862 1863 resultsearch.delegate(".item a", "click", function(){ 1864 let name = [last_search_name] 1865 let url = [last_search_url] 1866 name.push($(this).attr('data-title')) 1867 url.push($(this).attr('data-url')) 1868 setCookie("last_search_name",name,7); 1869 setCookie("last_search_url",url,7); 1870 }) 1871 1872 $(".delete-all-history").click(function() { 1873 setCookie("last_search_name",null,0); 1874 setCookie("last_search_url",null,0); 1875 $(".last-search").hide(); 1876 setTimeout(function(){ 1877 location.reload(); 1878 }, 500); 1879 }) 1880 1881 $("#search-trigger").click(function(){ 1882 search_open() 1883 }) 1884 $(".icon-search-mobile").click(function(){ 1885 search_open() 1886 }) 1887 $(".search-header svg").click(function(){ 1888 search_close() 1889 }) 1890 $(".icon-key-mobile").click(function(){ 1891 search_close() 1892 }) 1893 1894 function search_open() { 1895 $("body").addClass("search-popup-open") 1896 $("#nav-mobile-icon, .search-header label, .icon-search-mobile").hide() 1897 $("#search-popup, .search-header svg, .icon-key-mobile").show() 1898 $(".search-popup").focus() 1899 $('.popup-recommend')[0].swiper.update(); 1900 } 1901 function search_close() { 1902 $("body").removeClass("search-popup-open") 1903 $("#nav-mobile-icon, .search-header label, .icon-search-mobile").show() 1904 $("#search-popup, .search-header svg, .icon-key-mobile").hide() 1905 searchInput.val("") 1906 resultsearch.hide() 1907 resultrecommend.show() 1908 } 1909 1910 $(".site-overlay").click(function(){ 1911 search_close() 1912 }) 1913 </script>
1913 1914 1915 </div> 1916 </div> 1917 1918 <div id="PageContainer" class="is-moved-by-drawerx" style="background-color: #000000;"> 1919 <main class="main-content pt-0" role="main"> 1920 1921 <div id="breadcrumbProduct" class="d-none d-lg-block"> 1922 <style> 1923 #breadcrumbProduct { 1924 padding: 20px 0; 1925 } 1926 #breadcrumbProduct ul { 1927 display: flex; 1928 padding: 0; 1929 list-style: none; 1930 margin: 0; 1931 gap: 12px; 1932 } 1933 #breadcrumbProduct ul li { 1934 text-transform: uppercase; 1935 margin: 0; 1936 font-size: 12px; 1937 } 1938 #breadcrumbProduct ul li a { 1939 color: #757575; 1940 } 1941 1942 #breadcrumbProduct ul li svg { 1943 width: 10px; 1944 height: 10px; 1945 padding: 0; 1946 color: #757575; 1947 vertical-align: middle; 1948 } 1949 </style> 1950 <div class="container" style="color: #fff000;"> 1951 <ul role="navigation" aria-label="breadcrumbs"> 1952 <li><a href="https://watersoftenerreviewspro.com/" style="color: #fff000;">HOLYTOGEL</a></li> 1953 <li><svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="7" height="10" viewBox="0 0 7 10" fill="none"> 1954 <path d="M1.51673 0.0583496L6.2334 4.77502L1.51673 9.49168L0.933398 8.90002L5.0584 4.77502L0.933398 0.650016L1.51673 0.0583496Z" fill="#757575"/> 1955 </svg></li> 1956 <li>SITUS HOLYTOGEL</li> 1957 <li>HOLYTOGEL GAME</li> 1958 <li>HOLYTOGEL DAFTAR</li> 1959 <li>HOLYTOGEL TERPERCAYA</li> 1960 1961 </ul> 1962 </div> 1963 1964 </div> 1965 1966
1966<script type="application/ld+json"> 1967 { 1968 "@context": "https://schema.org", 1969 "@type": "Product", 1970 "name": "HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia", 1971 "image": "https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg", 1972 "description": "HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya.", 1973 "brand": { 1974 "@type": "Brand", 1975 "name": "HOLYTOGEL" 1976 }, 1977 "sku": "HOLYTOGEL", 1978 "mpn": "HOLYTOGEL", 1979 "url": "https://watersoftenerreviewspro.com/", 1980 "offers": { 1981 "@type": "Offer", 1982 "url": "https://watersoftenerreviewspro.com/", 1983 "priceCurrency": "USD", 1984 "price": "10.00", 1985 "priceValidUntil": "2025-12-25", 1986 "itemCondition": "https://schema.org/NewCondition", 1987 "availability": "https://schema.org/InStock", 1988 "seller": { 1989 "@type": "Organization", 1990 "name": "HOLYTOGEL" 1991 } 1992 }, 1993 "aggregateRating": { 1994 "@type": "AggregateRating", 1995 "ratingValue": "5.0", 1996 "reviewCount": 858 1997 }, 1998 "review": [ 1999 { 2000 "@type": "Review", 2001 "reviewRating": { 2002 "@type": "Rating", 2003 "ratingValue": "5", 2004 "bestRating": "5" 2005 }, 2006 "author": { 2007 "@type": "Person", 2008 "name": "Hanabi" 2009 } 2010 }, 2011 { 2012 "@type": "Review", 2013 "reviewRating": { 2014 "@type": "Rating", 2015 "ratingValue": "5", 2016 "bestRating": "5" 2017 }, 2018 "author": { 2019 "@type": "Person", 2020 "name": "Hayabusa" 2021 } 2022 } 2023 ] 2024 } 2025 </script>
2025<script type="application/ld+json"> 2026 { 2027 "@context": "https://schema.org", 2028 "@type": "BreadcrumbList", 2029 "itemListElement": [ 2030 { 2031 "@type": "ListItem", 2032 "position": 1, 2033 "name": "HOLYTOGEL", 2034 "item": "https://watersoftenerreviewspro.com/" 2035 }, 2036 { 2037 "@type": "ListItem", 2038 "position": 2, 2039 "name": "SITUS HOLYTOGEL", 2040 "item": "https://watersoftenerreviewspro.com/" 2041 }, 2042 { 2043 "@type": "ListItem", 2044 "position": 3, 2045 "name": "HOLYTOGEL GAME", 2046 "item": "https://watersoftenerreviewspro.com/" 2047 }, 2048 { 2049 "@type": "ListItem", 2050 "position": 4, 2051 "name": "HOLYTOGEL DAFTAR", 2052 "item": "https://watersoftenerreviewspro.com/" 2053 }, 2054 { 2055 "@type": "ListItem", 2056 "position": 5, 2057 "name": "HOLYTOGEL TERPERCAYA", 2058 "item": "https://watersoftenerreviewspro.com/" 2059 }, 2060 { 2061 "@type": "ListItem", 2062 "position": 6, 2063 "name": "SERVER GAME INDONESIA", 2064 "item": "https://watersoftenerreviewspro.com/" 2065 }, 2066 { 2067 "@type": "ListItem", 2068 "position": 7, 2069 "name": "HOLYTOGEL LINK", 2070 "item": "https://watersoftenerreviewspro.com/" 2071 }, 2072 { 2073 "@type": "ListItem", 2074 "position": 8, 2075 "name": "HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia", 2076 "item": "https://watersoftenerreviewspro.com/" 2077 } 2078 ] 2079 } 2080 </script>
2080 2081 2082 <!--faq--> 2083 2084
2084<script type="application/ld+json" id="faq-schema"> 2085{ 2086 "@context": "https://schema.org", 2087 "@type": "FAQPage", 2088 "mainEntity": [ 2089 { 2090 "@type": "Question", 2091 "name": "Apa itu HOLYTOGEL dan keunggulannya sebagai server game Indonesia?", 2092 "acceptedAnswer": { 2093 "@type": "Answer", 2094 "text": "HOLYTOGEL adalah server game online terpercaya di Indonesia yang menawarkan performa stabil, sistem keamanan tinggi, serta akses cepat tanpa kendala untuk pengalaman bermain terbaik." 2095 } 2096 }, 2097 { 2098 "@type": "Question", 2099 "name": "Bagaimana cara mendapatkan tips gacor dan trik bermain di HOLYTOGEL?", 2100 "acceptedAnswer": { 2101 "@type": "Answer", 2102 "text": "Pemain dapat mengakses bocoran tips gacor, pola bermain, dan strategi winrate tinggi yang di-update berkala langsung melalui portal resmi HOLYTOGEL." 2103 } 2104 }, 2105 { 2106 "@type": "Question", 2107 "name": "Seberapa sering informasi dan update game diperbarui di HOLYTOGEL?", 2108 "acceptedAnswer": { 2109 "@type": "Answer", 2110 "text": "Informasi pasaran, RTP live, event, dan bocoran game di HOLYTOGEL diperbarui secara real-time setiap hari agar pemain selalu mendapatkan data paling akurat." 2111 } 2112 }, 2113 { 2114 "@type": "Question", 2115 "name": "Apakah server HOLYTOGEL dapat diakses dari semua perangkat?", 2116 "acceptedAnswer": { 2117 "@type": "Answer", 2118 "text": "Ya, server HOLYTOGEL dirancang responsif dan fleksibel sehingga dapat diakses dengan lancar melalui perangkat mobile (Android/iOS) maupun desktop/komputer." 2119 } 2120 }, 2121 { 2122 "@type": "Question", 2123 "name": "Mengapa HOLYTOGEL direkomendasikan sebagai pilihan server game terpercaya hari ini?", 2124 "acceptedAnswer": { 2125 "@type": "Answer", 2126 "text": "HOLYTOGEL menjamin transparansi, keamanan data pribadi, proses transaksi yang cepat, serta dukungan layanan konsumen 24 jam nonstop untuk seluruh pemain di Indonesia." 2127 } 2128 } 2129 ] 2130} 2131</script>
2131 2132
2132<script type="application/ld+json"> 2133 { 2134 "@context": "https://schema.org", 2135 "@type": "Organization", 2136 "name": "HOLYTOGEL", 2137 "url": "https://watersoftenerreviewspro.com/", 2138 "logo": "https://watersoftenerreviewspro.com/picture/logo.png", 2139 "sameAs": [ 2140 "https://www.facebook.com/HOLYTOGEL", 2141 "https://twitter.com/HOLYTOGEL", 2142 "https://www.instagram.com/HOLYTOGEL" 2143 ], 2144 "contactPoint": { 2145 "@type": "ContactPoint", 2146 "telephone": "+62-8946-113-4615", 2147 "contactType": "customer support", 2148 "areaServed": "ID", 2149 "availableLanguage": ["Indonesian", "English"] 2150 } 2151 } 2152 </script>
2152 2153 2154
2154<script type="application/ld+json"> 2155 { 2156 "@context": "https://schema.org", 2157 "@type": "VideoObject", 2158 "name": "HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia", 2159 "description": "HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya.", 2160 "thumbnailUrl": [ 2161 "https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg", 2162 "https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg" 2163 ], 2164 "uploadDate": "2025-09-28T04:19:10-04:00", 2165 "duration": "PT168", 2166 "contentUrl": "https://watersoftenerreviewspro.com/" 2167 } 2168 </script>
2168 2169 2170
2170<script type="application/ld+json"> 2171 { 2172 "@context": "https://schema.org", 2173 "@type": "BreadcrumbList", 2174 "itemListElement": [ 2175 { 2176 "@type": "ListItem", 2177 "position": 1, 2178 "name": "Home", 2179 "item": "https://watersoftenerreviewspro.com/" 2180 } 2181 ] 2182 } 2183 </script>
2183 2184 2185
2185<script type="application/ld+json"> 2186 { 2187 "@context": "https://schema.org", 2188 "@graph": [ 2189 { 2190 "@type": "Organization", 2191 "@id": "https://watersoftenerreviewspro.com/#org", 2192 "name": "HOLYTOGEL", 2193 "url": "https://watersoftenerreviewspro.com/", 2194 "logo": "https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg" 2195 }, 2196 { 2197 "@type": "WebSite", 2198 "@id": "https://watersoftenerreviewspro.com/#website", 2199 "url": "https://watersoftenerreviewspro.com/", 2200 "name": "HOLYTOGEL", 2201 "publisher": { "@id": "https://watersoftenerreviewspro.com/#org" }, 2202 "inLanguage": "id-ID", 2203 "potentialAction": { 2204 "@type": "SearchAction", 2205 "target": "https://watersoftenerreviewspro.com/?s={search_term_string}", 2206 "query-input": "required name=search_term_string" 2207 } 2208 }, 2209 { 2210 "@type": "SoftwareApplication", 2211 "@id": "https://watersoftenerreviewspro.com/#app", 2212 "name": "HOLYTOGEL", 2213 "applicationCategory": "GameApplication", 2214 "operatingSystem": "Android, iOS, Windows", 2215 "offers": { "@type": "Offer", "price": "0", "priceCurrency": "IDR" }, 2216 "aggregateRating": { "@type": "AggregateRating", "ratingValue": 4.9, "ratingCount": 62595 } 2217 } 2218 ] 2219 } 2220 </script>
2220 2221 2222 <div id="shopify-section-Product" class="shopify-section product-section mt-0"><link href="https://tahanpukul.info/outerbloom-global.css" rel="stylesheet" type="text/css" media="all" /> 2223 2224 2225 <style> 2226 .bg-card { 2227 background-color: #000000; 2228 } 2229 </style> 2230 2231 <!-- /templates/product.liquid --> 2232 2233 2234 <!-- <div itemscope itemtype="http://schema.org/Product"> --> 2235 2236 2237 <div class="product-standing-flower" data-product-type="flowerBoard"> 2238 <meta itemprop="url" content="https://watersoftenerreviewspro.com/"> 2239 <meta itemprop="image" content="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg"> 2240 2241 2242 2243 <input id="data-sku" type="hidden" value="OBVSTF1086"> 2244 <div class="product-single" style="background-image: url(https://image.banker88.live/uploads/688366a5f33400a778ad05b5.webp); background-attachment: fixed;"> 2245 <div id="product-top" class="container"> 2246 <div class="row bg-card product-sticky" style="background-color: rgba(0, 0, 0, 0.1);backdrop-filter: blur(25px); padding: 20px 25px;border-radius: 10px;"> 2247 <div id="product-image" class="col-lg-7 text-center"> 2248 <div class="product-image"> 2249 <div class="row no-gutters"> 2250 2251 <div id="product-featured-image" class="row w-100"> 2252 2253 <div id="thumb-image-product" class="col-lg-2 col-12 d-none d-lg-block"> 2254 2255 <div class="swiper-container gallery-thumbs" style="min-height: 500px"> 2256 <ul class="list-unstyled slider swiper-wrapper slider-nav ProductThumbs thumbnails" id="ProductThumbsx"> 2257 2258 <li class="swiper-slide" data-type="image"> 2259 <a 2260 href="files/Blossom-Shine-WM.jpg" 2261 data-standard="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg" 2262 data-image="files/Blossom-Shine-WM.jpg" 2263 data-position="1" 2264 class="product-single__thumbnail" 2265 > 2266 <img 2267 class="lazyload w-100" 2268 src="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg" 2269 alt="HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia" 2270 width="" 2271 height="" 2272 > 2273 </a> 2274 </li> 2275 2276 2277 2278 2279 <li class="swiper-slide" data-type="image"> 2280 <a 2281 href="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg" 2282 data-standard="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg" 2283 data-image="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg" 2284 data-position="2" 2285 class="product-single__thumbnail" 2286 > 2287 <img 2288 class="lazyload w-100" 2289 src="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg" 2290 alt="HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia" 2291 width="" 2292 height="" 2293 > 2294 </a> 2295 </li> 2296 2297 2298 2299 2300 <li class="swiper-slide" data-type="image"> 2301 <a 2302 href="files/Blossom-Shine_3-WM.jpg" 2303 data-standard="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg" 2304 data-image="files/Blossom-Shine_3-WM.jpg" 2305 data-position="3" 2306 class="product-single__thumbnail" 2307 > 2308 <img 2309 class="lazyload w-100" 2310 src="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg" 2311 alt="HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia" 2312 width="" 2313 height="" 2314 > 2315 </a> 2316 </li> 2317 2318 2319 2320 2321 <li class="swiper-slide" data-type="image"> 2322 <a 2323 href="files/Blossom-Shine_4.jpg" 2324 data-standard="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg" 2325 data-image="files/Blossom-Shine_4.jpg" 2326 data-position="4" 2327 class="product-single__thumbnail" 2328 > 2329 <img 2330 class="lazyload w-100" 2331 src="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg" 2332 alt="HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia" 2333 width="" 2334 height="" 2335 > 2336 </a> 2337 </li> 2338 2339 2340 2341 </ul> 2342 </div> 2343 2344 </div> 2345 2346 <div 2347 id="featured-image-product" 2348 class="col-lg-10 col-12 d-none d-lg-block" 2349 > 2350 <div class="swiper-container gallery-top"> 2351 <div class="swiper-slide product-single__image"> 2352 2353 <div class="product-single__photos slider slider-for" id="ProductPhoto"> 2354 2355 2356 <div class="easyzoom easyzoom--overlay easyzoom--with-thumbnails"> 2357 <a href="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg"> 2358 <img 2359 src="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg" 2360 alt="HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia" 2361 id="ProductPhotoImg" 2362 class="lazyload" 2363 > 2364 2365 </a> 2366 </div> 2367 </div> 2368 2369 </div> 2370 <div class="swiper-slide product-single__video" style="display: none"> 2371 <video 2372 src="https://cdn.shopify.com/videos/c/vp/05d379ea115d41c2bd0f7d08b1496bd9/05d379ea115d41c2bd0f7d08b1496bd9.HD-1080p-7.2Mbps-24002195.mp4" 2373 playsinline 2374 loop 2375 muted 2376 ></video> 2377 </div> 2378 </div> 2379 </div> 2380 </div> 2381 2382 <div id="featured-image-product2" class="col-12 d-lg-none"> 2383 <div class="swiper-container gallery-mobile"> 2384 <ul class="swiper-wrapper"> 2385 <li class="swiper-slide img"> 2386 2387 <img 2388 class="swiper-lazy" 2389 src="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg" 2390 data-src="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg" 2391 alt="HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia" 2392 width="" 2393 height="" 2394 > 2395 2396 </li> 2397 2398 2399 <li class="swiper-slide img"> 2400 2401 <img 2402 class="swiper-lazy" 2403 src="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg" 2404 data-src="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg" 2405 alt="HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia" 2406 width="" 2407 height="" 2408 > 2409 2410 </li> 2411 2412 2413 <li class="swiper-slide img"> 2414 2415 <img 2416 class="swiper-lazy" 2417 src="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg" 2418 data-src="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg" 2419 alt="HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia" 2420 width="" 2421 height="" 2422 > 2423 2424 </li> 2425 2426 2427 <li class="swiper-slide img"> 2428 2429 <img 2430 class="swiper-lazy" 2431 src="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg" 2432 data-src="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg" 2433 alt="HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia" 2434 width="" 2435 height="" 2436 > 2437 2438 </li> 2439 2440 2441 </ul> 2442 2443 <div class="swiper-button-prev"><svg class="icon icon-chevron-left" xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="7" height="12" viewBox="0 0 7 12"> <circle cx="60%" cy="50%" r="12" fill="transparent" /> <path d="M6.35355339,10.6464466 C6.54881554,10.8417088 6.54881554,11.1582912 6.35355339,11.3535534 C6.15829124,11.5488155 5.84170876,11.5488155 5.64644661,11.3535534 L0.646446609,6.35355339 C0.451184464,6.15829124 0.451184464,5.84170876 0.646446609,5.64644661 L5.64644661,0.646446609 C5.84170876,0.451184464 6.15829124,0.451184464 6.35355339,0.646446609 C6.54881554,0.841708755 6.54881554,1.15829124 6.35355339,1.35355339 L1.70710678,6 L6.35355339,10.6464466 Z"/> </svg></div> 2444 <div class="swiper-button-next"><svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="7" height="10" viewB
2444ox="0 0 7 10" fill="none"> 2445 <path d="M1.51673 0.0583496L6.2334 4.77502L1.51673 9.49168L0.933398 8.90002L5.0584 4.77502L0.933398 0.650016L1.51673 0.0583496Z" fill="#757575"/> 2446 </svg></div> 2447 2448 <!-- Add Pagination --> 2449 <div class="swiper-pagination"></div> 2450 2451 </div> 2452 </div> 2453 2454 <div class="product-m-pageleb-video col-12 text-center d-lg-none"> 2455 <!-- product video --> 2456 <style> 2457 .view-video{display:block; margin:auto; padding:5px 10px;font-size:16px;font-weight:bold;border:2px solid #ffffff;background:#fff;} 2458 .view-video .icon-play{fill:#ffffff;vertical-align: middle;} 2459 .video-modal{display:none;position:fixed;background: rgba(0,0,0,.5); width:100%; height:100%; overflow:auto; z-index:1; top:0;left:0;} 2460 .close-video{position:absolute;right:9px; top:8%;z-index:2;padding:5px;} 2461 .close-video .icon{width:30px;height:30px;} 2462 /*responsive iframe */ 2463 .video-container {position: relative;padding-bottom: 48.25%;padding-top: 35px;height: 0;box-shadow: 0 4px 5px 0 rgba(0,0,0,0.14), 0 1px 10px 0 rgba(0,0,0,0.12), 0 2px 4px -1px rgba(0,0,0,0.3);} 2464 .video-container iframe {position: absolute;top:60%;left: 0;width: 100%;height: 100%;} 2465 2466 .youtube { 2467 background-color: #000; 2468 margin-bottom: 30px; 2469 position: relative; 2470 padding-top: 56.25%; 2471 overflow: hidden; 2472 cursor: pointer; 2473 width: 100%; 2474 } 2475 .swiper-slide .youtube { 2476 max-width: 480px; 2477 } 2478 .youtube img { 2479 width: 100%; 2480 top: -16.82%; 2481 left: 0; 2482 opacity: 0.7; 2483 } 2484 .youtube .play-button { 2485 width: 90px; 2486 height: 60px; 2487 background-color: #333; 2488 box-shadow: 0 0 30px rgba( 0,0,0,0.6 ); 2489 z-index: 1; 2490 opacity: 0.8; 2491 border-radius: 6px; 2492 } 2493 .youtube .play-button:before { 2494 content: ""; 2495 border-style: solid; 2496 border-width: 15px 0 15px 26.0px; 2497 border-color: transparent transparent transparent #fff; 2498 } 2499 .youtube img, 2500 .youtube .play-button { 2501 cursor: pointer; 2502 } 2503 .youtube img, 2504 .youtube iframe, 2505 .youtube .play-button, 2506 .youtube .play-button:before { 2507 position: absolute; 2508 } 2509 .youtube .play-button, 2510 .youtube .play-button:before { 2511 top: 50%; 2512 left: 50%; 2513 transform: translate3d( -50%, -50%, 0 ); 2514 } 2515 .youtube iframe { 2516 height: 100%; 2517 width: 100%; 2518 top: 0; 2519 left: 0; 2520 } 2521 </style> 2522 2523 2524 </div> 2525 </div> 2526 2527 <div class="product-desc-add position-relative d-none d-lg-block m-0"> 2528 2529 </div> 2530 2531
2531<script> 2532 if ($(window).width() < 991) { 2533 var direction = 'horizontal' 2534 } else { 2535 var direction = 'vertical' 2536 $(".gallery-thumbs").height($("#ProductPhotoImg").height()) 2537 } 2538 var swiper = new Swiper('.gallery-thumbs', { 2539 2540 direction, 2541 slidesPerView: 4.5, 2542 spaceBetween: 12, 2543 navigation: { 2544 nextEl: '.swiper-button-next', 2545 prevEl: '.swiper-button-prev', 2546 } 2547 }); 2548 2549 var swiper = new Swiper('.gallery-mobile', { 2550 //loop: true, 2551 lazy: true, 2552 speed: 300, 2553 resistance : true, 2554 resistanceRatio : 0, 2555 freeModeMomentumRatio : 0.45, 2556 freeModeMomentumVelocityRatio : 1.5, 2557 navigation: { 2558 nextEl: '.swiper-button-next', 2559 prevEl: '.swiper-button-prev', 2560 }, 2561 pagination: { 2562 el: '.swiper-pagination' 2563 }, 2564 useCSS3Transforms: false, 2565 loop: false, 2566 on: { 2567 init: function () { 2568 console.log('swiper initialized'); 2569 var currentVideo = $("[data-swiper-slide-index=" + this.realIndex + "]").find("video"); 2570 currentVideo.trigger('play'); 2571 }, 2572 }, 2573 }); 2574 2575 /* GET ALL VIDEOS */ 2576 var sliderVideos = $(".swiper-slide video"); 2577 2578 /* SWIPER API - Event will be fired after animation to other slide (next or previous) */ 2579 swiper.on('slideChange', function () { 2580 console.log('slide changed'); 2581 /* stop all videos */ 2582 sliderVideos.each(function( index ) { 2583 this.currentTime = 0; 2584 }); 2585 2586 /* SWIPER GET CURRENT AND PREV SLIDE (AND The VIDEO INSIDE) */ 2587 var prevVideo = $(`[data-swiper-slide-index="${this.previousIndex}]"`).find("video"); 2588 var currentVideo = $(`[data-swiper-slide-index="${this.realIndex}"]`).find("video"); 2589 prevVideo.trigger('stop'); 2590 currentVideo.trigger('play'); 2591 }); 2592 2593 2594 $("[data-video]").click(function(){ 2595 const file = $(this).data("video") 2596 $(".product-single__video").show() 2597 $(".product-single__image").hide() 2598 $(".product-single__video").find("video").attr("src", file) 2599 $(".product-single__video").find("video")[0].play(); 2600 }) 2601 $("[data-image]").click(function(){ 2602 $(".product-single__video").hide() 2603 $(".product-single__image").show() 2604 $(".product-single__video").find("video")[0].pause(); 2605 }) 2606 2607 $("#product-image .swiper-slide").each(function(){ 2608 let width = $(this).width() 2609 $(this).height(width) 2610 }) 2611 2612 $(window).resize(function() { 2613 $("#product-image .swiper-slide").each(function(){ 2614 let width = $(this).width() 2615 $(this).height(width) 2616 }) 2617 }) 2618 </script>
2618 2619 2620 </div> 2621 2622 2623 <div class="grid__item_product-info mb-3"> 2624 <div class="c-pdp-product-info"> 2625 <ul class="c-pdp-product-info__service c-pdp-product-info__service--active"> 2626<!-- artikel --> 2627<li> 2628 <strong>HOLYTOGEL</strong> hadir sebagai <strong>server game Indonesia terpercaya</strong> yang telah menjadi pilihan utama bagi para pecinta game online tanah air. Mengusung reputasi solid dalam memberikan layanan aman, transparan, dan tanpa lag, HOLYTOGEL memastikan seluruh pemain menikmati pengalaman bermain kelas dunia. Dengan sistem keamanan enkripsi mutakhir dan kestabilan server tingkat tinggi, HOLYTOGEL menjadi platform yang sangat diandalkan untuk kenyamanan dan keandalan taruhan Anda setiap hari. 2629</li> 2630 2631<br> 2632 2633<li> 2634 Salah satu keunggulan utama HOLYTOGEL terletak pada ketersediaan <strong>tips gacor dan bocoran RTP live</strong> yang di-update secara berkala. Para pemain dapat dengan mudah mengatur strategi bermain berdasarkan panduan serta update informasi terbaru yang akurat. Didukung oleh teknologi server modern dan responsif, setiap perubahan data dan bocoran game disajikan secara real-time untuk membantu meningkatkan peluang meraih JP Maxwin tanpa perlu menunggu lama. 2635</li> 2636 2637<br> 2638 2639<li> 2640 Selain menyediakan tips dan update terdepan, HOLYTOGEL juga memprioritaskan kemudahan akses serta layanan pelanggan 24 jam nonstop yang sangat efisien. Platform ini dirancang fleksibel sehingga dapat diakses secara lancar dari berbagai perangkat (HP maupun Komputer) dengan proses transaksi yang super cepat. HOLYTOGEL memadukan keamanan data, transparansi server, dan pembaruan informasi terlengkap untuk memberikan ekosistem bermain game online terbaik di Indonesia. 2641</li> 2642 </ul> 2643 </div> 2644 </div> 2645 2646 2647 2648 2649 2650 <style> 2651 .c-pdp-product-info__service--active { 2652 font-size: 12px; 2653 padding-left: 10px; 2654 text-align: left; 2655 max-width: 550px; 2656 margin: auto; 2657 color: #fff; 2658 } 2659 .c-pdp-product-info__service--active li { 2660 list-style: disc; 2661 } 2662 .c-pdp-product-info { 2663 background-color: #000000; 2664 padding: 12px; 2665 margin: 0; 2666 } 2667 .freeship em { 2668 font-style: italic; 2669 font-size: 12px !important; 2670 } 2671 2672 2673 </style> 2674 2675
2675<script> 2676 $(document).ready(function(){ 2677 if ( $(".c-pdp-product-info__service li").length == 1 ) { 2678 $(".c-pdp-product-info__service").addClass("no-bullet"); 2679 $(".c-pdp-product-info__service li").addClass("no-bullets"); 2680 } 2681 }); 2682 </script>
2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 </div> 2696 <div id="product-meta" class="col-lg-5 p-0"> 2697 <div class="product-meta"> 2698 <style> 2699 .product-meta--review {margin-top:10px} 2700 .freeship * {font-size: 14px !important;font-style: normal;} 2701 </style> 2702 <h1 itemprop="name" class="mb-2" style="color: rgb(255, 251, 0); font-weight: bold;">HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia</h1> 2703 2704 <div itemprop="offers" itemscope itemtype="http://schema.org/Offer"> 2705 <meta itemprop="priceCurrency" content="IDR"> 2706 2707 <link itemprop="availability" href="https://schema.org/InStock"> 2708
2708<script 2709 type="text/javascript" 2710 src="//platform-api.sharethis.com/js/sharethis.js#property=5acdc0aa3ef3c0001396fd50&product=custom-share-buttons" 2711 async="async" 2712 ></script>
2712 2713 2714 2715 2716 2717 <span class="visually-hidden">Translation missing: en.products.general.regular_price</span> 2718 2719 <span class="visually-hidden">Translation missing: en.products.general.sale_price</span> 2720 2721 <div class="row no-gutters mb-3"> 2722 <span 2723 id="ProductPrice" 2724 class="h2 ProductPrice" 2725 itemprop="price" 2726 content="835000" style="color: #ffffff;" 2727 > 2728 Rp 5.000 2729 </span> 2730 <div class="discount-product-detail"> 2731 <p id="ComparePrice" class="ComparePrice mt-2 mt-lg-0"> 2732 Rp 10.000 2733 </p> 2734 <span class=" tag-discount"> 2735 2736 2737 <span id="newDiscount" class="product-tag persentase-discount hide"> 2738 (90%) 2739 </span><br> 2740 2741 </span> 2742 </div> 2743 </div> 2744 2745 <div class="row no-gutters meta-sds"> 2746 <div class="col-12 mb-2 mb-lg-0 stock-info"> 2747 2748 2749 <span 2750 id="ProductStock-Product" 2751 class="product-single__stock mb-2 hide" 2752 > 2753 2754 2755 2756 2757 Barang dikirim pada 2758 2759 2760 2761 </span> 2762 2763 <style> 2764 .short-desc-desktop { 2765 margin-bottom: 2rem; 2766 color: white; 2767 } 2768 .short-desc ul li:nth-child(n + 4) { 2769 display: none; 2770 } 2771 .short-desc ul li.showList:nth-child(n + 4) { 2772 display: list-item; 2773 } 2774 label.more { 2775 display: none; 2776 } 2777 label.more.showMe { 2778 display: block; 2779 font-size: 12px; 2780 text-transform: uppercase; 2781 font-weight: 700; 2782 cursor: pointer; 2783 } 2784 </style> 2785 2786 <div class="short-desc-desktop d-none d-lg-block"> 2787 <div class="short-desc"> 2788 2789 <p>HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya.</p> 2790 </div> 2791 <label class="more">Show More â</label> 2792 </div><br> 2793 2794 2795
2795<script> 2796 var liCount; 2797 $(document).ready(function () { 2798 $(".short-desc ul").each(function() { 2799 liCount = $(this).children("li").length; 2800 if (liCount > 3) { 2801 $(this).parent(".short-desc").next(".more").addClass("showMe"); 2802 } 2803 }); 2804 2805 $(".more").click(function () { 2806 //$(".short-desc").find("li").addClass("showList"); 2807 // $(this).hide(); 2808 $("#product-desc").find("ul").show() 2809 $('html, body').animate({ 2810 scrollTop: $("#product-desc").offset().top - 250 2811 }, 2000); 2812 $("#product-desc").css("height","auto"); 2813 $("#more_content").remove(); 2814 $(".product-spec").append("<div id='less_content' class='readmore'><span class='less_content'>Less</span></div>") 2815 }); 2816 }); 2817 </script>
2817 2818 2819 2820 </div> 2821 </div> 2822 2823 <div id="purchaseProduct"> 2824 2825 2826 2827 2828 <style> 2829 .variant-metafield { 2830 display: block!important; 2831 width: 1px; 2832 padding: 0; 2833 border-color: #fff; 2834 } 2835 .select2-results__option[aria-disabled] { 2836 display: none; 2837 } 2838 2839 .towel-bordir { 2840 width: 100%; 2841 display: flex; 2842 align-items: center; 2843 justify-content: space-around; 2844 } 2845 </style> 2846 2847 2848 2849 2850
2850<script> 2851 2852 2853 </script>
2853 2854 2855 2856 2857 2858 2859 2860 <select 2861 name="id[]" 2862 id="productSelect" 2863 class="product-single__variants ignore hide hide" 2864 > 2865 2866 2867 2868 <option 2869 2870 selected="selected" 2871 2872 data-sku="OBVSTF1086" 2873 value="44083045826775" 2874 > 2875 Default Title 2876 </option> 2877 2878 2879 2880 </select> 2881 2882
2882<script src="//outerbloom.com/cdn/shop/t/138/assets/jquery.magnific-popup.min.js?v=184369421263510081681752652422" type="text/javascript"></script>
2882 2883 2884
2884<script> 2885 $('.size-chart-open-popup').magnificPopup({ 2886 type:'inline', 2887 midClick: true 2888 }); 2889 </script>
2889 2890 2891 2892 2893 2894 <div class="upload-image-preview"> 2895 2896 2897 2898 2899 2900 <style> 2901 .file-dnd * { 2902 margin: 0; 2903 padding: 0; 2904 box-sizing: border-box; 2905 } 2906 .file-dnd { 2907 width: 100%; 2908 height: 250px; 2909 border: 1px solid #ddd; 2910 border-radius: 10px; 2911 padding: 15px; 2912 display: flex; 2913 flex-direction: column; 2914 gap: 10px; 2915 /* box-shadow: 0px 2px 10px 2px rgba(0,0,0,0.05); */ 2916 margin: auto; 2917 } 2918 .file-dnd input { 2919 display: none; 2920 } 2921 .file-dnd .before-upload { 2922 border: 1px dashed #888; 2923 flex: 1; 2924 border-radius: 5px; 2925 display: flex; 2926 justify-content: center; 2927 align-items: center; 2928 text-align: center; 2929 cursor: pointer; 2930 } 2931 .file-dnd .before-upload > div { 2932 display: flex; 2933 flex-direction: column; 2934 align-items: center; 2935 gap: 8px; 2936 } 2937 .file-dnd .before-upload > div h4 { 2938 width: 150px; 2939 } 2940 .file-dnd .before-upload > div p { 2941 font-size: 12px !important; 2942 color: #555; 2943 } 2944 .file-dnd.active .before-upload { 2945 border: 1px solid #5750d9; 2946 background-color: #f5f5ff; 2947 } 2948 .file-dnd .after-upload { 2949 position: relative; 2950 display: none; 2951 } 2952 .file-dnd .after-upload img { 2953 width: 100%; 2954 border-radius: 5px; 2955 max-height: 180px; 2956 object-fit: contain; 2957 display: block; 2958 } 2959 .file-dnd .after-upload .clear-btn { 2960 position: absolute; 2961 top: 10px; 2962 right: 10px; 2963 background: rgba(255, 255, 255, 0.5); 2964 width: 15px; 2965 height: 15px; 2966 text-align: center; 2967 line-height: 15px; 2968 border-radius: 50%; 2969 color: #fff; 2970 cursor: pointer; 2971 font-size: 14px; 2972 } 2973 </style> 2974 2975 <div 2976 class="file-dnd mb-3" 2977 2978 style="display: none" 2979 2980 > 2981 <label for="upload-photo">Upload your Photo:</label> 2982 <input type="file" id="upload-photo" accept="image/*"> 2983 <input type="hidden" data-properties="Photo"> 2984 <div class="before-upload"> 2985 <div> 2986 <svg id="surface1" xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="33.053" height="41.719" viewBox="0 0 33.053 41.719"> 2987 <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> 2988 <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> 2989 <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> 2990 </svg> 2991 2992 <h4>Drag & Drop Photo file or Browse</h4> 2993 <p>Supports: JPEG, PNG, GIF, TIFF</p> 2994 </div> 2995 </div> 2996 <div class="after-upload"> 2997 <div class="clear-btn">×</div> 2998 <img src="" width="" height=""> 2999 </div> 3000 </div> 3001
3001<script> 3002 function applyDndFile(el) { 3003 const parent = document.querySelector(".file-dnd") 3004 const beforeUploadEl = el.querySelector(".before-upload") 3005 const afterUploadEl = el.querySelector(".after-upload") 3006 const inputFile = el.querySelector("input[type=file]") 3007 const imagePreview = el.querySelector(".after-upload img") 3008 const clearBtn = el.querySelector(".after-upload .clear-btn") 3009 const inputProps = parent.querySelector("[data-properties]"); 3010 3011 async function upload(name, uri, type) { 3012 try { 3013 const filename = name.split('.')[0] 3014 let formData = new FormData(); 3015 formData.append("file", uri); 3016 const response = await fetch(`${host}/upload?name=${filename}&dir=gift&type=${type}`, { 3017 method: "POST", 3018 body: formData 3019 }) 3020 if(response) { 3021 const res = await response.json() 3022 return res 3023 } 3024 } catch(err){ 3025 console.log(err) 3026 } 3027 } 3028 3029 function showImagePreview(img) { 3030 if(img){ 3031 const blobUrl = URL.createObjectURL(img) 3032 imagePreview.src = blobUrl 3033 afterUploadEl.style.display = "block" 3034 beforeUploadEl.style.display = "none" 3035 } 3036 } 3037 3038 beforeUploadEl.addEventListener("click", (e) => { 3039 e.preventDefault() 3040 inputFile.click() 3041 }) 3042 3043 inputFile.addEventListener("change", async (e) => { 3044 e.preventDefault() 3045 showImagePreview(e.target.files[0]) 3046 var uploadData = await upload(e.target.files[0].name, e.target.files[0], e.target.files[0].type) 3047 inputProps.value = uploadData?.url 3048 }) 3049 3050 clearBtn.addEventListener("click", (e) => { 3051 afterUploadEl.style.display = "none" 3052 beforeUploadEl.style.display = "flex" 3053 inputProps.value = "" 3054 }) 3055 3056 beforeUploadEl.addEventListener("dragover", (e) => { 3057 e.preventDefault() 3058 el.classList.add("active") 3059 }) 3060 3061 beforeUploadEl.addEventListener("dragleave", (e) => { 3062 e.preventDefault() 3063 el.classList.remove("active") 3064 }) 3065 3066 beforeUploadEl.addEventListener("drop", async (e) => { 3067 e.preventDefault() 3068 el.classList.remove("active") 3069 showImagePreview(e.dataTransfer.files[0]) 3070 var uploadData = await upload(e.dataTransfer.files[0].name, e.dataTransfer.files[0], e.dataTransfer.files[0].type) 3071 console.log(uploadData) 3072 inputProps.value = uploadData?.url 3073 }) 3074 } 3075 3076 applyDndFile(document.querySelector(".file-dnd")) 3077 3078 $(document).ready(function(){ 3079 $(".variant-swatch").change(function(){ 3080 const v = $(this).val().toLowerCase() 3081 const list = ["photo", "custom one side", "custom two side", "small", "big"] 3082 if(list.some(item => v.includes(item))) return $(".file-dnd").show() 3083 $(".file-dnd").hide() 3084 $(".file-dnd").find("[data-properties]").val("") 3085 $(".after-upload").hide() 3086 $(".before-upload").css("display", "flex") 3087 }) 3088 }) 3089 </script>
3089 3090 3091 </div> 3092 3093 3094 <div class="delivery-city mb-4"> 3095 <a href="https://watersoftenerreviewspro.com/ampage/holy-water.html"> 3096 <center><img src="https://image.banker88.live/uploads/5772c0a9f53b9ce0e06cf39d.webp" alt="logo-daftar" style="width: 260px; margin-top: -20px;"></center></a><br> 3097 <h4 class="fw-600 text-uppercase mb-15" style="color: rgba(255, 238, 0, 0.959);">AKSES Bandar Togel Online Terpercaya</h4> 3098 <div class="row justify-content-between m-0"> 3099 <select id="cities" class="form-control select-search" required> 3100 <option value="">Temukan Link HOLYTOGEL sebagai Bandar Togel Online Terpercaya</option> 3101 </select> 3102 </div> 3103 </div> 3104 3105 <style> 3106 @media (max-width: 768px) { 3107 .select2-search__field { 3108 pointer-events: none !important; 3109 } 3110 3111 .select2-search { 3112 display: none !important; 3113 } 3114 } 3115 </style> 3116 3117
3117<script> 3118 $(document).ready(function() { 3119 // Check if mobile 3120 if (window.innerWidth <= 768) { 3121 // When cities select2 opens on mobile, remove focus from search 3122 $('#cities').on('select2:open', function() { 3123 setTimeout(function() { 3124 $('.select2-search__field').blur(); 3125 $('.select2-search__field').prop('readonly', true); 3126 }, 100); 3127 }); 3128 } 3129 }); 3130 </script>
3130 3131 3132 <style> 3133 .icon-img-footer { 3134 width: 80px; 3135 padding: 0px 5px; 3136 } 3137 @media (min-width: 768px) { 3138 .icon-img-footer { 3139 width: 120px; 3140 } 3141 } 3142 @media (min-width: 992px) { 3143 .icon-img-footer { 3144 width: 120px; 3145 } 3146 } 3147 3148 3149 </style> 3150 <div id="row-delivery-date" class="row m-0 mb-3"> 3151 <h4 class="fw-600 text-uppercase col-12 p-0 mb-15" style="color: rgb(255, 238, 0);">Nikmati akses nyaman di Toto Togel Online bersama HOLYTOGEL</h4> 3152 <div id="deliveryDate" class="m-0"></div> 3153 <div id="deliveryDateFull"> 3154 <div class=""> 3155 <input 3156 type="text" 3157 id="full-date" 3158 class="date-full calendarbutton btn steps-btn btn-date-time mb-0" 3159 value="Full Calendar" 3160 > 3161 <label for="full-date"><svg version="1.1" xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="32" height="32" viewBox="0 0 32 32"> 3162 <title>icon-arrow-right</title> 3163 <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> 3164 </svg></label> 3165 </div> 3166 <button class="btnChangeDeliveryDate hide">Change Delivery Date</button> 3167 </div> 3168 <div class="form-group p-0"> 3169 <input type="text" id="propDeliveryDate" required class="hide"> 3170 </div> 3171 </div> 3172 3173 3174 <div id="row-delivery-time" class="row m-0 mb-3"> 3175 <h4 class="text-center fw-600 text-uppercase col-12 mb-15"> 3176 SEO PHYZIA 3177 </h4> 3178 <div id="deliveryTime" class="d-flex w-100 m-0"></div> 3179 <div class="form-group p-0"> 3180 <input type="text" id="propDeliveryTime" class="hide" required> 3181 </div> 3182 </div> 3183 3184 3185 3186 3187 3188 <div id="personalizeBtn"> 3189 3190 3191 3192 3193 <button 3194 class="btn text-uppercase w-100 fw-400" 3195 3196 3197 3198 > 3199 3200 customize your flower board 3201 3202 </button> 3203 <div class="button-share-wishlist d-flex justify-content-around mt-3"> 3204 <div class="button-share text-center"> 3205 <p id="shareButton" class="d-flex gap-2"><span>HOLYTOGEL</span><svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="15" height="13" viewBox="0 0 15 13" fill="none"> 3206 <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"/> 3207 </svg> 3208 </p> 3209 </div> 3210 <div class="button-wishlist text-center"> 3211 <p id="wishButton" class="d-flex gap-2 wishlist-toggle" data-product-handle="blossom-shine"><span>Wishlist</span><svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="16" height="15" viewBox="0 0 16 15" fill="none"> 3212 <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"/> 3213 </svg> 3214 <!-- 3215 <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="34" height="30" viewBox="0 0 34 30" fill="none"> 3216 <path d="M32.8333 9.23082C32.8333 4.51916 29.0142 0.699158 24.3025 0.699158C21.2 0.699158
321618.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"/> 3217 </svg> 3218 --> 3219 </p> 3220 </div> 3221 </div> 3222 </div> 3223 </div> 3224 <div class="purchasePopup purchasePopupSpotify" style="display: none;"> 3225 <div class="purchaseArea"> 3226 <div class="sectionPurchase sectionPurchaseSpotify"> 3227 <div class="wrapperPurchase"> 3228 <div class="headerPurchase"> 3229 <h3>personalize spotify photo print</h3> 3230 <a class="close-purchase-popup"> 3231 <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="18" height="18" viewBox="0 0 18 18" fill="none"> 3232 <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> 3233 </svg> 3234 </a> 3235 </div> 3236 <div class="contentPurchase"> 3237 <div class="spotifyAddons"></div> 3238 </div> 3239 3240 <div class="purchase-button btn-addon row m-0" style="display: none;"> 3241 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 3242 <button class="back-purchase-button back-addon text-uppercase"> 3243 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://watersoftenerreviewspro.com/picture/logo.png"> 3244 <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> 3245 </svg> 3246 <span>Back</span> 3247 </button> 3248 </div> 3249 <div class="col-12 col-lg-10 text-right" style="display: flex;justify-content: end;gap: 20px;"> 3250 <button class="btn next-purchase-button next-addon text-uppercase"> 3251 <span>continue without add-ons</span> 3252 </button> 3253 </div> 3254 </div> 3255 </div> 3256 </div> 3257 </div> 3258 </div> 3259 3260 <style> 3261 #PBarNextFrameWrapper { 3262 display: none; 3263 } 3264 #backgroundPopup { 3265 display: none; 3266 position: fixed; 3267 _position: absolute; 3268 height: 100%; 3269 width: 100%; 3270 top: 0; 3271 left: 0; 3272 background: rgb(117 117 117 / 24%); 3273 z-index: 1; 3274 } 3275 .sectionPurchase { 3276 height: 100%; 3277 position: relative; 3278 max-width: 1344px; 3279 background-color: #fff; 3280 padding: 0; 3281 overflow: hidden; /* Changed from auto to hidden */ 3282 display: flex; 3283 flex-direction: column; 3284 } 3285 .sectionPurchase.purchaseAddonSpotify { 3286 max-width: 1070px!important; 3287 max-height: 765px!important; 3288 } 3289 .sectionPurchaseBoard { 3290 max-width: 872px!important; 3291 max-height: 821px!important; 3292 } 3293 .purchaseAddonSpotify .btn-action { 3294 position: absolute; 3295 bottom: 0; 3296 left: 0; 3297 width: 100%; 3298 display: flex; 3299 gap: 10px; 3300 } 3301 .wrapperPurchase { 3302 position: relative; 3303 height: 100%; 3304 display: flex; 3305 flex-direction: column; 3306 } 3307 3308 /* New styles for scrollable content and sticky button */ 3309 .purchase-content { 3310 flex: 1; 3311 overflow-y: auto; 3312 overflow-x: hidden; 3313 padding: 20px; 3314 } 3315 3316 .purchase-button-wrapper { 3317 position: sticky; 3318 bottom: 0; 3319 background-color: #fff; 3320 border-top: 1px solid #e0e0e0; 3321 padding: 15px 0; 3322 margin-top: auto; 3323 z-index: 10; 3324 } 3325 3326 .purchasePopup { 3327 display: none; 3328 position: fixed; 3329 background: rgb(117 117 117 / 24%); 3330 z-index: 999; 3331 padding: 40px; 3332 font-size: 13px; 3333 top: 0; 3334 left: 0; 3335 width: 100%; 3336 height: 100%; 3337 } 3338 .popupPurchaseClose{ 3339 font-size:14px; 3340 line-height:14px; 3341 right:45px; 3342 top:45px; 3343 position:absolute; 3344 color:#6fa5fd; 3345 font-weight:700; 3346 display:block; 3347 cursor: pointer; 3348 } 3349 3350 .headerPurchase { 3351 margin-bottom: 30px; 3352 display: flex; 3353 justify-content: space-between; 3354 } 3355 3356 .headerPurchase h3 { 3357 font-size: 16px; 3358 text-transform: uppercase; 3359 } 3360 3361 .sectionPurchaseBoard .headerPurchase { 3362 margin-bottom: 15px; 3363 } 3364 3365 .sectionPurchaseBoard .formAddressPurchase { 3366 padding-top: 0;
3367 } 3368 3369 .purchaseArea { 3370 position: relative; 3371 height: 100%; 3372 } 3373 3374 .purchaseArea h4 { 3375 width: 100%; 3376 font-size: 12px; 3377 font-weight: 600; 3378 margin-bottom: 10px; 3379 text-transform: uppercase; 3380 } 3381 3382 .menuPurchase { 3383 margin-bottom: 30px; 3384 } 3385 3386 .menuPurchase ul { 3387 list-style-type: none; 3388 margin: 0; 3389 } 3390 3391 .menuPurchase ul li { 3392 display: inline-block; 3393 border: 1px solid #ffffff; 3394 padding: 5px 20px; 3395 margin-right: 5px; 3396 margin-bottom: 10px; 3397 font-size: 12px; 3398 font-weight: 400; 3399 } 3400 3401 .menuPurchase ul li:hover, .menuPurchase ul li.selected { 3402 background-color: #ffffff; 3403 color: #ffffff; 3404 } 3405 3406 .contentPurchase h5 { 3407 font-size: 12px; 3408 margin-bottom: 10px; 3409 font-weight: 400; 3410 overflow: hidden; 3411 } 3412 3413 /* Card */ 3414 3415 #itemCards { 3416 max-height: 430px; 3417 overflow: auto; 3418 } 3419 3420 .item-cards { 3421 width: 100%; 3422 } 3423 .item-card.selected { 3424 border: 1px solid #ffffff; 3425 } 3426 .item-card:hover { 3427 border: 1px solid #C4C4C4; 3428 } 3429 .item-cards .item-card { 3430 position: relative; 3431 width: calc(33% - 10px); 3432 max-width: calc(33% - 10px); 3433 flex: 0 0 calc(33% - 10px); 3434 margin-bottom: 20px; 3435 } 3436 .item-cards .item-card label, 3437 .item-addons .item-addon label { 3438 position: absolute; 3439 left: 0; 3440 width: 100%; 3441 height: 100%; 3442 } 3443 .item-cards .item-card .card-image img, 3444 .item-addons .item-addon .card-image img { 3445 display: block; 3446 width: 100%; 3447 } 3448 .item-card .card-meta, 3449 .item-addon .card-meta { 3450 padding: 10px 5px 5px; 3451 } 3452 .item-card.selected .card-meta, 3453 .item-addon.selected .card-meta, 3454 .item-card.selected .card-qty { 3455 background-color: #ffffff; 3456 color: #fff; 3457 visibility: visible!important; 3458 } 3459 .item-card:hover .card-meta, 3460 .item-addon:hover .card-meta, 3461 .item-card:hover .card-qty { 3462 background-color: #C4C4C4; 3463 color: #fff; 3464 visibility: visible!important; 3465 } 3466 .item-cards .item-card p, 3467 .item-addons .item-addon p { 3468 font-size: 12px !important; 3469 margin: 0; 3470 font-weight: 600; 3471 } 3472 .item-card .card-meta input, 3473 .item-addon .card-meta input { 3474 display: none; 3475 } 3476 .item-cards .item-card h5, 3477 .item-addons .item-addon h5 { 3478 text-transform: uppercase; 3479 max-height: 35px; 3480 } 3481 3482 @media (max-width: 768px) { 3483 .item-cards .item-card { 3484 width: calc(50% - 10px); 3485 max-width: calc(50% - 10px); 3486 flex: 0 0 calc(50% - 10px); 3487 margin-bottom: 0; 3488 } 3489 } 3490 3491 .card-qty { 3492 display: flex; 3493 padding: 5px; 3494 visibility: hidden; 3495 background-color: #fff !important; 3496 z-index: 999; 3497 } 3498 .card-qty a { 3499 border-width: 1px; 3500 width: 30%; 3501 cursor: pointer; 3502 text-align: center; 3503 align-self: center; 3504 height: 28px; 3505 display: block; 3506 position: relative; 3507 } 3508 .card-qty a svg { 3509 position: absolute; 3510 top: 50%; 3511 left: 50%; 3512 transform: translate(-50%, -50%); 3513 text-align: center; 3514 } 3515 input.btn-qty { 3516 border-width: 0px; 3517 border-radius: 0; 3518 background-color: #fff; 3519 -webkit-appearance: none; 3520 box-shadow: none !important; 3521 -webkit-box-shadow: none !important; 3522 -moz-box-shadow: none!important; 3523 width: 40%; 3524 border-left: 1px solid #c4c4c4; 3525 border-right: 1px solid #c4c4c4; 3526 padding: 0; 3527 } 3528 3529 .sectionPurchaseBoard #itemAddons .item-card { 3530 width: calc(20% - 15px); 3531 max-width: calc(20% - 15px); 3532 flex: 0 0 calc(20% - 15px); 3533 } 3534 3535 .purchase-button { 3536 width: 100%; 3537 padding: 0; /* Reset padding as it's now handled by wrapper */ 3538 margin: 0; 3539 } 3540 3541 .sectionPurchaseBoard .purchase-button { 3542 margin-top: 0 !important; /* Reset margin */ 3543 } 3544 3545 .back-purchase-button, .back-spotify { 3546 width: 139px; 3547 border: 1px solid; 3548 height: 43px; 3549 } 3550 .purchase-button .btn { 3551 width: 297px; 3552 height: 43px; 3553 background-color: #ffffff; 3554 color: #ffffff; 3555 } 3556 .purchase-button .btn[disabled] { 3557 background-color: #EEEEEE; 3558 } 3559 .back-purchase-button svg, .back-spotify svg { 3560 align-self: center; 3561 vertical-align: middle; 3562 margin-right: 10px; 3563 } 3564 3565 #purchaseProduct .row .error { 3566 font-size: 12px !important; 3567 color: orange; 3568 margin-top: 5px; 3569 } 3570 3571 .reviewCardPurchase { 3572 max-width: 448px; 3573 float: right; 3574 } 3575 3576 .addonsPurchase .addon-item {display: flex;justify-content: space-between;} 3577 .addon-item * {align-self: center;font-size: 12px;} 3578 .addon-itm-title {width: 360px;} 3579 .addon-itm-line-price {color: #757575;width: 80px;justify-content: space-between;display: flex;} 3580 3581 .propsAddonSpotify p { 3582 margin: 0; 3583 display: flex; 3584 font-size: 12px !important; 3585 margin-bottom: 5px; 3586 } 3587 .propsAddonSpotify p span:first-child { 3588 text-transform: uppercase; 3589 font-weight: 600; 3590 -ms-flex: 0 0 150px; 3591 flex: 0 0 150px; 3592 max-width: 150px; 3593 } 3594 3595 .addonsPurchase .addons { 3596 max-height: 250px; 3597 overflow: auto; 3598 } 3599 3600 .btn .loading:after { 3601 content: ""; 3602 display: inline-block;
3603 width: 20px; 3604 height: 20px; 3605 padding: 3px; 3606 aspect-ratio: 1; 3607 border-radius: 50%; 3608 background: #FFFFFF; 3609 --_m: conic-gradient(#0000 10%, #ffffff), linear-gradient(#ffffff 0 0) content-box; 3610 -webkit-mask: var(--_m); 3611 mask: var(--_m); 3612 -webkit-mask-composite: source-out; 3613 mask-composite: subtract; 3614 animation: l3 1s infinite linear; 3615 margin: auto; 3616 vertical-align: middle; 3617 margin-left: 10px; 3618 } 3619 3620 #qrcode img, #qrcode canvas { 3621 width: 50px; 3622 position: absolute; 3623 top: 12px; 3624 left: 16px; 3625 } 3626 3627 .t-preview { 3628 position: absolute; 3629 top: 17px; 3630 left: 75px; 3631 } 3632 .t-preview p { 3633 margin: 0; 3634 font-size: 12px !important; 3635 } 3636 .t-preview .h3 { 3637 font-size: 16px !important; 3638 margin-bottom: 5px; 3639 font-weight: 600; 3640 } 3641 .scanCard { 3642 width: 100%; 3643 border: 1px solid; 3644 height: 76px; 3645 background-color: #fff; 3646 } 3647 .scanCard > div > img { 3648 position: absolute; 3649 right: 0; 3650 width: 55px; 3651 } 3652 3653 @keyframes l3 { 3654 100% { 3655 transform: rotate(1turn); 3656 } 3657 } 3658 3659 @media (min-width: 991px) { 3660 .sectionPurchase { 3661 height: 100%; 3662 position: relative; 3663 max-width: 1344px; 3664 background-color: #fff; 3665 top: 50%; 3666 left: 50%; 3667 transform: translate(-50%, -50%); 3668 } 3669 .headerPurchase h3 { 3670 font-size: 20px; 3671 } 3672 .purchaseArea h4 { 3673 font-size: 16px; 3674 } 3675 3676 .menuPurchase ul li { 3677 font-size: 16px; 3678 } 3679 3680 .contentPurchase { 3681 margin-bottom: 30px; 3682 } 3683 .contentPurchase h5 { 3684 font-size: 16px; 3685 } 3686 3687 .item-cards .item-card p, 3688 .item-addons .item-addon p { 3689 font-size: 16px !important; 3690 } 3691 3692 .cards { 3693 float: right; 3694 width: 400px; 3695 } 3696 3697 .item-cards .item-card { 3698 width: calc(25% - 30px); 3699 max-width: calc(25% - 30px); 3700 flex: 0 0 calc(25% - 30px); 3701 } 3702 3703 #itemAddons .item-card { 3704 position: relative; 3705 width: calc(16% - 40px); 3706 max-width: calc(16% - 40px); 3707 flex: 0 0 calc(16% - 40px); 3708 } 3709 3710 .purchase-button-wrapper { 3711 padding: 10px 20px; 3712 } 3713 } 3714 3715 @media (max-width: 1200px) { 3716 .item-cards .item-card { 3717 width: calc(33% - 30px); 3718 max-width: calc(33% - 30px); 3719 flex: 0 0 calc(33% - 30px); 3720 } 3721 } 3722 3723 @media (max-width: 992px) { 3724 .purchasePopup { 3725 padding: 0; 3726 } 3727 .item-cards .item-card h5, 3728 .item-addons .item-addon h5 { 3729 max-height: 30px; 3730 } 3731 3732 .back-purchase-button, .back-spotify, .next-purchase-button { 3733 width: 100%; 3734 } 3735 .addon-itm-title { 3736 width: 300px; 3737 } 3738 .addon-itm-line-price { 3739 margin-right: 10px; 3740 } 3741 .t-preview { 3742 top: 10px; 3743 } 3744 3745 .card-qty a { 3746 height: 15px; 3747 } 3748 3749 .purchase-button-wrapper { 3750 padding: 15px; 3751 } 3752 } 3753 3754 @media (max-width: 576px) { 3755 .purchase-button .btn { 3756 width: 100%!important; 3757 } 3758 .purchase-button > .col-12 { 3759 padding-left: 0; 3760 padding-right: 0; 3761 } 3762 } 3763 </style> 3764 3765 3766 <div class="purchasePopup"> 3767 <div class="purchaseArea"> 3768 3769 <div class="sectionPurchase purchasePersonalize sectionPurchaseBoard"> 3770 <div class="wrapperPurchase"> 3771 <div class="purchase-content"> 3772 <div class="headerPurchase"> 3773 <h3 class="text-uppercase"> 3774 3775 customize your flower board 3776 3777 </h3> 3778 <a class="close-purchase-popup"> 3779 <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="18" height="18" viewBox="0 0 18 18" fill="none"> 3780 <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"/> 3781 </svg> 3782 </a> 3783 3784 </div> 3785 <div class="contentPurchase"> 3786 <div class="row"> 3787 3788 <div class="col-12"> 3789 3790 3791 <style> 3792 3793 3794 .customize-papan .group-field-1 .input-field {float: left;width: 100%;height: 317px;background-color: #E5E5EA;} 3795 .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;} 3796 3797 .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;} 3798 .customize-papan .btn-upload-papan svg {width: 21px;height: 25px;display: block;align-self: center;margin: auto;margin-bottom: 12px;} 3799 .svgLogoPapan {position: absolute;width: 100%;top: 50%;left: 50%;transform: translate(-50%, -50%);text-align: center;} 3800 .svgLogoPapan p {color: #8E8E93; margin: 0;} 3801 .svgLogoPapan p span {font-size: 12px;color: #FF0E00;} 3802 .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;} 3803 #suggest-messages {position: absolute;bottom: 5px;left: 5px;} 3804 #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;} 3805 .case-occasion .nice-select:after {border-bottom: 2px solid #333;border-right: 2px solid #333;right: 20px;top: 42%;width: 10px;height: 10px;} 3806 .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;} 3807 .customize-papan .input-field .limit {position: absolute;right: 15px;top: 0;color: #757575;} 3808 3809 @media (min-width: 991px) { 3810 .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);} 3811 .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);} 3812 } 3813 </style> 3814 3815 <input type="hidden" data-properties="penerima" value="-"> 3816 <div class="customize-papan"> 3817 <div class="container"> 3818 <div class="field-papan group-field-1 form-group"> 3819 <div class="input-field">
3820 <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. 3821 (Ex: Selamat Menempuh Hidup Baru A & B)." maxlength="100"></textarea> 3822 <p class="limit">0/100</p> 3823 <div id="suggest-messages"> 3824 <a id="show_note_papan1" href="#"> 3825 <div class="suggest-message" id="note_btn_div1"> 3826 <span class="promo-code-link" id="note_btn_papan1">Contoh Kata WEDDING</span> 3827 </div> 3828 </a> 3829 <a id="show_note_papan2" href="#"> 3830 <div class="suggest-message" id="note_btn_div2"> 3831 <span class="promo-code-link" id="note_btn_papan2">Contoh Kata SELAMAT</span> 3832 </div> 3833 </a> 3834 <a id="show_note_papan3" href="#"> 3835 <div class="suggest-message" id="note_btn_div3"> 3836 <span class="promo-code-link" id="note_btn_papan3">Contoh Kata DUKA CITA</span> 3837 </div> 3838 </a> 3839 </div> 3840 </div> 3841 </div> 3842 <div class="hide"> 3843 <input type="hidden" value="" id="note_id_papan1" name="note_id_papan1" style="top: 0px;"> 3844 <input type="hidden" value="" id="note_btn_id_papan1" name="note_btn_id_papan1"> 3845 </div> 3846 <div class="hide"> 3847 <input type="hidden" value="" id="note_id_papan2" name="note_id_papan2" style="top: 0px;"> 3848 <input type="hidden" value="" id="note_btn_id_papan2" name="note_btn_id_papan2"> 3849 </div> 3850 <div class="hide"> 3851 <input type="hidden" value="" id="note_id_papan3" name="note_id_papan3" style="top: 0px;"> 3852 <input type="hidden" value="" id="note_btn_id_papan3" name="note_btn_id_papan3"> 3853 </div> 3854 <div class="field-papan group-field-2 form-group"> 3855 3856 <label for="logoPapan" onclick="" class="input-field field-logo"> 3857 3858 3859 3860 <div class="btn-upload-papan w-100"> 3861 <?xml version="1.0" encoding="UTF-8"?> 3862 <img src="" style="display:none"> 3863 <div class="svgLogoPapan"> 3864 <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="22" height="26" viewBox="0 0 22 26" fill="none"> 3865 <path d="M6.5 20H15.5V11H21.5L11 0.5L0.5 11H6.5V20ZM0.5 23H21.5V26H0.5V23Z" fill="black"/> 3866 </svg> 3867 <p>Upload Logo <span>*optional</span></p> 3868 </div> 3869 </div> 3870 3871 </label> 3872 3873 <input 3874 type="hidden" 3875 data-properties="papan-logo" 3876 value="" 3877 > 3878 <input 3879 type="file" 3880 id="logoPapan" 3881 accept="image/*" 3882 style="position: absolute;width: 1px;height: 1px;padding: 0" 3883 > 3884 3885 <div class="input-field"> 3886 <input class="has-limit sender-name" type="text" placeholder="Nama Pengirim" data-properties="pengirim" maxlength="35"/> 3887 <p class="limit">0/35</p> 3888 </div> 3889 3890 </div> 3891 3892 </div> 3893 </div> 3894 </div> 3895 3896 </div> 3897 </div> 3898 3899 </div> 3900 <div class="purchase-button-wrapper"> 3901 <div class="purchase-button btn-card row m-0"> 3902 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 3903 3904 </div> 3905 <div class="btn-next-card col-12 col-lg-10 text-right"> 3906 3907 3908 <button 3909 3910 3911 3912 class="btn next-purchase-button text-uppercase" 3913 3914 disabled 3915 3916 > 3917 <span>save your flower board</span> 3918 </button> 3919 </div> 3920 </div> 3921 3922 </div> 3923 </div> 3924 </div> 3925 3926 3927 3928 <div 3929 class="sectionPurchase sectionPurchaseBoard hide" 3930 data-section="address" 3931 > 3932 <div class="wrapperPurchase"> 3933 <div class="purchase-content"> 3934 <div class="headerPurchase"> 3935 <h3> 3936 Complete Your Order 3937 </h3> 3938 <a class="close-purchase-popup"> 3939 <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="18" height="18" viewBox="0 0 18 18" fill="none"> 3940 <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"/> 3941 </svg> 3942 </a> 3943 3944 </div> 3945 <div class="contentPurchase"> 3946 <div class="row"> 3947 <div class="col-12 position-relative"> 3948 <div class="addressPurchase"> 3949 3950 <h4 class="text-uppercase">recipient delivery address</h4> 3951 <p>Share the delivery address to send your heartfelt blooms straight to their door.</p> 3952 3953 <div class="formAddressPurchase row"> 3954 <div class="col-12"> 3955 <form> 3956 <div class="form-group row mb-2 mb-lg-4"> 3957 <div class="col-6 position-relative"> 3958 <input id="first_name" type="text" class="form-control input__field" placeholder="" required> 3959 <label for="first_name" class="input__label">First Name<span>*</span></label> 3960 </div> 3961 <div class="col-6 position-relative"> 3962 <input id="last_name" type="text" class="form-control input__field" placeholder="" required> 3963 <label for="last_name" class="input__label">Last Name<span>*</span></label> 3964 </div> 3965 <input type="hidden" data-properties="nama-penerima"> 3966 </div> 3967 3968 <h4 class="text-uppercase">how you want to input your address</h4> 3969 <div class="form-group row mb-2 mb-lg-4 form-address-upload"> 3970 <div class="col-6 position-relative"> 3971 <label class="address-manualy"> 3972 <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="18" height="17" viewBox="0 0 18 17" fill="none"> 3973 <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
39731216 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
39735 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"/> 3974 </svg> 3975 <span>Input Address Manually</span> 3976 </label> 3977 </div> 3978 <div class="col-6 position-relative"> 3979 <label for="address-upload" class="address-upload"> 3980 <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="12" height="13" viewBox="0 0 12 13" fill="none"> 3981 <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"/> 3982 </svg> 3983 <span>Upload Address Picture</span> 3984 </label> 3985 <input 3986 id="address-upload" 3987 type="file" 3988 accept="image/png, image/jpeg" 3989 style="position: absolute; padding: 0;width: 1px;height: 1px" 3990 > 3991 <input type="hidden" class="props-address-upload" data-properties="foto-alamat"> 3992 </div> 3993 </div> 3994 <img width="150" height="" src="" class="photo-address" style="display: none;"> 3995 3996 <div class="form-group row position-relative mb-2 mb-lg-4 form-address"> 3997 <div class="col-12"> 3998 <textarea 3999 id="delivery_address" 4000 data-properties="alamat-penerima" 4001 class="form-control input__field col-12" 4002 placeholder="" 4003 required 4004 ></textarea> 4005 <label for="delivery_address" class="input__label">Delivery Address<span>*</span></label> 4006 4007 </div> 4008 </div> 4009 <div class="form-group row mb-2 mb-lg-4 form-address"> 4010 <div class="col-6 position-relative"> 4011 <input 4012 id="recipient_number" 4013 type="text" 4014 data-properties="telepon-penerima" 4015 class="form-control input__field" 4016 placeholder="" 4017 required 4018 > 4019 <label for="recipient_number" class="input__label">Recipient number<span>*</span></label> 4020 </div> 4021 <div class="col-6 position-relative"> 4022 <input 4023 id="company" 4024 type="text" 4025 data-properties="company" 4026 class="form-control input__field" 4027 placeholder="" 4028 > 4029 <label for="company" class="input__label">Company (Optional)</label> 4030 </div> 4031 </div> 4032 <div class="form-group row mb-2 mb-lg-4 form-address"> 4033 <div class="col-6 position-relative"> 4034 <input 4035 id="province" 4036 type="text" 4037 class="form-control input__field" 4038 placeholder="" 4039 value="Jakarta" 4040 data-properties="province" 4041 > 4042 <label for="province" class="input__label">Province</label> 4043 </div> 4044 <div class="col-6 position-relative"> 4045 <select id="zip" class="form-control select-search" required></select> 4046 </div> 4047 </div> 4048 </form> 4049 </div> 4050 </div> 4051 </div> 4052 <div class="addonsPurchase"> 4053 <h4 class="text-uppercase">add-ons</h4> 4054 <div class="addons"> 4055 <p>No Add-Ons</p> 4056 <!-- 4057 <button class="add-addon"> 4058 <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="12" height="12" viewBox="0 0 12 12" fill="none"> 4059 <path d="M5.5 6.5H0V5.5H5.5V0H6.5V5.5H12V6.5H6.5V12H5.5V6.5Z" fill="black"/> 4060 </svg>
4061 <span>Enhance my moment with Add-ons</span> 4062 </button> 4063 --> 4064 </div> 4065 </div> 4066 </div> 4067 4068 </div> 4069 </div> 4070 4071
4071<script> 4072 document.addEventListener('DOMContentLoaded', function() { 4073 // Detect iOS 4074 var isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; 4075 4076 if (isIOS) { 4077 document.querySelector('.formAddressPurchase').classList.add('ios'); 4078 4079 // iOS specific fixes 4080 var inputs = document.querySelectorAll('.formAddressPurchase .input__field'); 4081 4082 inputs.forEach(function(input) { 4083 // Force enable touch events on iOS 4084 input.style.webkitUserSelect = 'text'; 4085 input.style.webkitTouchCallout = 'default'; 4086 input.style.pointerEvents = 'auto'; 4087 input.style.touchAction = 'manipulation'; 4088 4089 // Add explicit touch event listeners for iOS 4090 input.addEventListener('touchstart', function(e) { 4091 e.stopPropagation(); 4092 this.focus(); 4093 }, { passive: false }); 4094 4095 input.addEventListener('touchend', function(e) { 4096 e.preventDefault(); 4097 e.stopPropagation(); 4098 this.focus(); 4099 this.click(); 4100 }, { passive: false }); 4101 4102 // Force focus on tap for iOS 4103 input.addEventListener('click', function(e) { 4104 e.stopPropagation(); 4105 if (document.activeElement !== this) { 4106 this.focus(); 4107 } 4108 }); 4109 }); 4110 4111 // Fix for label overlapping on iOS 4112 var labels = document.querySelectorAll('.formAddressPurchase .input__label'); 4113 labels.forEach(function(label) { 4114 label.style.pointerEvents = 'none'; 4115 label.addEventListener('touchstart', function(e) { 4116 e.preventDefault(); 4117 var input = this.parentNode.querySelector('.input__field'); 4118 if (input) { 4119 input.focus(); 4120 } 4121 }); 4122 }); 4123 } 4124 4125 // Handle input state for all browsers, especially iOS 4126 var inputs = document.querySelectorAll('.input__field'); 4127 4128 inputs.forEach(function(input) { 4129 // Handle input events 4130 input.addEventListener('input', function() { 4131 if (this.value.trim() !== '') { 4132 this.classList.add('has-value'); 4133 } else { 4134 this.classList.remove('has-value'); 4135 } 4136 }); 4137 4138 // Handle focus 4139 input.addEventListener('focus', function() { 4140 this.classList.add('focused'); 4141 // iOS specific: ensure input is visible 4142 if (isIOS) { 4143 setTimeout(function() { 4144 input.scrollIntoView({ behavior: 'smooth', block: 'center' }); 4145 }, 300); 4146 } 4147 }); 4148 4149 // Handle blur 4150 input.addEventListener('blur', function() { 4151 this.classList.remove('focused'); 4152 if (this.value.trim() !== '') { 4153 this.classList.add('has-value'); 4154 } else { 4155 this.classList.remove('has-value'); 4156 } 4157 }); 4158 4159 // Initial check for pre-filled values 4160 if (input.value.trim() !== '') { 4161 input.classList.add('has-value'); 4162 } 4163 }); 4164 4165 // Additional iOS fixes 4166 if (isIOS) { 4167 // Prevent iOS Safari from adding default styling 4168 document.addEventListener('touchstart', function() {}, { passive: true }); 4169 4170 // Fix viewport issues on iOS 4171 var viewport = document.querySelector('meta[name=viewport]'); 4172 if (viewport) { 4173 viewport.setAttribute('content', 4174 'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' 4175 ); 4176 } 4177 } 4178 }); 4179 </script>
4179 4180 </div> 4181 <div class="purchase-button-wrapper"> 4182 <div class="purchase-button btn-address row m-0"> 4183 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 4184 4185 <button class="back-purchase-button back-address text-uppercase"> 4186 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://watersoftenerreviewspro.com/picture/logo.png"> 4187 <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"/> 4188 </svg> 4189 <span>Back</span> 4190 </button> 4191 4192 </div> 4193 <div class="btn-next-card col-12 col-lg-10 text-right"> 4194 4195 <!-- 4196 <button class="back-purchase-button back-address text-uppercase mr-lg-2 mb-2 mb-lg-0"> 4197 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://watersoftenerreviewspro.com/picture/logo.png"> 4198 <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"/> 4199 </svg> 4200 <span>Back</span> 4201 </button> 4202 --> 4203 4204 4205 <button 4206 4207 id="addtocart-card" 4208 4209 class="btn next-address text-uppercase" 4210 4211 > 4212 <span>add to cart</span> 4213 </button> 4214 </div> 4215 </div> 4216 4217 </div> 4218 </div> 4219 </div> 4220 4221 </div> 4222 </div> 4223 <div id="backgroundPopup"></div> 4224 4225 4226 4227 <input 4228 data-index="1" 4229 type="hidden" 4230 id="properties-delivery-date" 4231 name="properties[Delivery Date]" 4232 value="-" 4233 > 4234 <input 4235 data-index="2" 4236 type="hidden" 4237 id="properties-delivery-time" 4238 name="properties[Delivery Time]" 4239 value="-" 4240 > 4241 <input 4242 data-index="4" 4243 type="hidden" 4244 id="properties-nama-penerima" 4245 name="properties[Nama Penerima]" 4246 value="-" 4247 > 4248 <input 4249 data-index="5" 4250 type="hidden" 4251 id="properties-alamat-penerima" 4252 name="properties[Alamat Penerima]" 4253 value="-" 4254 > 4255 <input 4256 data-index="6" 4257 type="hidden" 4258 id="properties-kodepos" 4259 name="properties[Kodepos]" 4260 value="-" 4261 > 4262 <input data-index="7" type="hidden" id="properties-telepon-penerima" name="properties[Telepon Penerima]"> 4263 4264 4265 <input 4266 data-index="8" 4267 type="hidden" 4268 id="properties-kartu-nama-penerima" 4269 name="properties[Kartu Nama Penerima]" 4270 value="-" 4271 > 4272 4273 <textarea 4274 data-index="9" 4275 type="hidden" 4276 id="properties-kartu-pesan" 4277 name="properties[Kartu Pesan]" 4278 style="display: none" 4279 >-</textarea> 4280 4281 4282 4283 <input 4284 data-index="10" 4285 type="hidden" 4286 id="properties-kartu-nama-pengirim" 4287 name="properties[Kartu Nama Pengirim]" 4288 value="-" 4289 > 4290 4291 <!-- Additional Shipping --> 4292 <input type="hidden" id="properties-kota-pengiriman-province" name="properties[Province]"> 4293 <input 4294 type="hidden" 4295 id="properties-kota-pengiriman-country" 4296 name="properties[Country]" 4297 value="Indonesia" 4298 > 4299 <input type="hidden" id="properties-shipping" name="properties[Shipping]"> 4300 4301 <input type="hidden" id="properties-time" name="properties[Time]"> 4302 <input type="hidden" id="properties-card" name="properties[Card]"> 4303 <input type="hidden" id="properties-addons" name="properties[Addons]"> 4304 4305 <input 4306 type="hidden" 4307 id="properties-company" 4308 name="properties[Company]" 4309 value="" 4310 > 4311
4311<script> 4312 4313 $(document).ready(function(){ 4314 4315 var text_max_papan1=150; 4316 var msg_text_papan1=""; 4317 $('#kartu-ucapan-ucapan').keyup(function(){ 4318 var text_length_papan1=$('#kartu-ucapan-ucapan').val().length; 4319 var msg_text_papan1=$('#kartu-ucapan-ucapan').val(); 4320 }); 4321 4322 var notes_papan1 = [ 4323 4324 [0,"Happy Wedding (nama & nama)."],[1,"Congratulations lovebirds (nama & nama)."],[2,"Selamat berbahagia (nama & nama)."],[3,"Selamat menempuh hidup baru (nama & nama)."] 4325 4326 ]; 4327 $('#show_note_papan1').click(function(event){ 4328 event.preventDefault(); 4329 var idx_papan1=parseInt($('#note_id_papan1').val()); 4330 if(isNaN(idx_papan1)){ 4331 idx_papan1=0; 4332 }else{ 4333 idx_papan1++; 4334 idx_papan1=idx_papan1%notes_papan1.length; 4335 } 4336 var note_papan1=notes_papan1[idx_papan1][1]; 4337 $('#note_id_papan1').val(idx_papan1); 4338 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan1); 4339 $('#msgDelivery').val(note_papan1); 4340 4341 var text_length_papan1=$('#kartu-ucapan-papan').val().length; 4342 var idx_2_papan1=parseInt($('#note_btn_id_papan1').val()); 4343 if(isNaN(idx_2_papan1)){ 4344 idx_2_papan1=0; 4345 }else{ 4346 idx_2_papan1++; 4347 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4348 } 4349 $('#note_btn_id_papan1').val(idx_2_papan1); 4350 //var note_btn=note_btn_text[idx_2][1]; 4351 //$('#note_btn').text(note_btn); 4352 }); 4353 4354 var text_max_papan2=150; 4355 var msg_text_papan2=""; 4356 $('#kartu-ucapan-ucapan').keyup(function(){ 4357 var text_length_papan2=$('#kartu-ucapan-ucapan').val().length; 4358 var msg_text_papan2=$('#kartu-ucapan-ucapan').val(); 4359 }); 4360 4361 var notes_papan2 = [ 4362 4363 [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)."] 4364 4365 ]; 4366 $('#show_note_papan2').click(function(event){ 4367 event.preventDefault(); 4368 var idx_papan2=parseInt($('#note_id_papan2').val()); 4369 if(isNaN(idx_papan2)){ 4370 idx_papan2=0; 4371 }else{ 4372 idx_papan2++; 4373 idx_papan2=idx_papan2%notes_papan2.length; 4374 } 4375 var note_papan2=notes_papan2[idx_papan2][1]; 4376 $('#note_id_papan2').val(idx_papan2); 4377 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan2); 4378 $('#msgDelivery').val(note_papan2); 4379 var text_length_papan2=$('#kartu-ucapan-papan').val().length; 4380 var idx_2_papan2=parseInt($('#note_btn_id_papan2').val()); 4381 if(isNaN(idx_2_papan2)){ 4382 idx_2_papan2=0; 4383 }else{ 4384 idx_2_papan2++; 4385 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4386 } 4387 $('#note_btn_id_papan2').val(idx_2_papan2); 4388 //var note_btn=note_btn_text[idx_2][1]; 4389 //$('#note_btn').text(note_btn); 4390 }); 4391 4392 var text_max_papan3=150; 4393 var msg_text_papan3=""; 4394 $('#kartu-ucapan-ucapan').keyup(function(){ 4395 var text_length_papan3=$('#kartu-ucapan-ucapan').val().length; 4396 var msg_text_papan3=$('#kartu-ucapan-ucapan').val(); 4397 }); 4398 4399 var notes_papan3 = [ 4400 4401 [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)."] 4402 4403 ]; 4404 $('#show_note_papan3').click(function(event){ 4405 event.preventDefault(); 4406 var idx_papan3=parseInt($('#note_id_papan3').val()); 4407 if(isNaN(idx_papan3)){ 4408 idx_papan3=0; 4409 }else{ 4410 idx_papan3++; 4411 idx_papan3=idx_papan3%notes_papan3.length; 4412 } 4413 var note_papan3=notes_papan3[idx_papan3][1]; 4414 $('#note_id_papan3').val(idx_papan3);
4415 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan3); 4416 $('#msgDelivery').val(note_papan3); 4417 var text_length_papan3=$('#kartu-ucapan-papan').val().length; 4418 var idx_2_papan3=parseInt($('#note_btn_id_papan3').val()); 4419 if(isNaN(idx_2_papan3)){ 4420 idx_2_papan3=0; 4421 }else{ 4422 idx_2_papan3++; 4423 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4424 } 4425 $('#note_btn_id_papan3').val(idx_2_papan3); 4426 //var note_btn=note_btn_text[idx_2][1]; 4427 //$('#note_btn').text(note_btn); 4428 }); 4429 4430 var text_max_papan4=150; 4431 var msg_text_papan4=""; 4432 $('#kartu-ucapan-ucapan').keyup(function(){ 4433 var text_length_papan4=$('#kartu-ucapan-ucapan').val().length; 4434 var msg_text_papan4=$('#kartu-ucapan-ucapan').val(); 4435 }); 4436 4437 $('#show_note_papan4').click(function(event){ 4438 var notes_papan4 = [ 4439 [0,"Hereâs to youâsteadier, stronger and better every day."], 4440 [1,"Warmest wishes for a speedy recovery!"], 4441 [2,"Dengan ucapan terhangat, semoga lekas membaik dan semakin pulih setiap harinya ya."], 4442 [3,"Semoga lekas sembuh untuk kembali beraktivitas dan berkarya."] 4443 ]; 4444 event.preventDefault(); 4445 var idx_papan4=parseInt($('#note_id_papan4').val()); 4446 console.log(idx_papan4, 'idx_papan4') 4447 if(isNaN(idx_papan4)){ 4448 idx_papan4=0; 4449 }else{ 4450 idx_papan4++; 4451 idx_papan4=idx_papan4%notes_papan4.length; 4452 } 4453 var note_papan4=notes_papan4[idx_papan4][1]; 4454 $('#note_id_papan4').val(idx_papan4); 4455 $('#kartu-ucapan-papan, #properties-kartu-ucapan, #properties-kartu-pesan').val(note_papan4); 4456 console.log(note_papan4, 'note_papan4') 4457 var text_length_papan4=$('#kartu-ucapan-papan').val().length; 4458 var idx_2_papan4=parseInt($('#note_btn_id_papan4').val()); 4459 if(isNaN(idx_2_papan4)){ 4460 idx_2_papan4=0; 4461 }else{ 4462 idx_2_papan4++; 4463 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4464 } 4465 $('#note_btn_id_papan4').val(idx_2_papan4); 4466 }); 4467 4468 /* 4469 $("#jenisPapan").change(function(){ 4470 $( "select option:selected").each(function(){ 4471 if($(this).attr("value")=="Happy Wedding"){ 4472 $("#suggest-messages a").hide(); 4473 $("#show_note_papan1").show(); 4474 $("#kartu-ucapan-papan").val(""); 4475 } 4476 if($(this).attr("value")=="Congratulations"){ 4477 $("#suggest-messages a").hide(); 4478 $("#show_note_papan2").show(); 4479 $("#kartu-ucapan-papan").val(""); 4480 } 4481 if($(this).attr("value")=="Duka Cita"){ 4482 $("#suggest-messages a").hide(); 4483 $("#show_note_papan3").show(); 4484 $("#kartu-ucapan-papan").val(""); 4485 } 4486 }); 4487 }).change(); 4488 */ 4489 4490 4491 4492 4493 4494 $(".variant-metafield").each(function(){ 4495 const t = $(this) 4496 const id = t.attr("id") 4497 const target = $(`[data-select=${id}]`) 4498 t.on('select2:selecting', function(e) { 4499 const data = e.params.args.data 4500 target.val(data.text) 4501 }); 4502 }) 4503 }) 4504 </script>
4504 4505 4506 <div id="popupCart"> 4507 <div class="container"> 4508 <div class="wrapperPopupCart"> 4509 <div class="headerPopupCart"> 4510 <div class="d-flex pl-5 pr-5 p-4"> 4511 <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="16" height="12" viewBox="0 0 16 12" fill="none"> 4512 <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"/> 4513 </svg> 4514 <span>item added to your cart</span> 4515 </div> 4516 <a class="close-purchase-popup"> 4517 <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="18" height="18" viewBox="0 0 18 18" fill="none"> 4518 <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"/> 4519 </svg> 4520 </a> 4521 4522 </div> 4523 <div class="contentPopupCart"> 4524 <div class="pl-5 pr-5 p-4"> 4525 <div class="itemContent row m-0 justify-content-between"> 4526 <div class="col-2 align-self-center"> 4527 4528 <img 4529 class="d-block" 4530 width="80" 4531 src="//outerbloom.com/cdn/shop/files/Blossom-Shine-WM_80x.jpg?v=1695788426" 4532 > 4533 </div> 4534 <div class="col-10 align-self-center"> 4535 <div class="row pl-3"> 4536 <div class="col-12 col-lg-7"> 4537 <span class="titleCartPopup text-uppercase">HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia</span> 4538 </div> 4539 <div class="d-flex justify-content-end col-12 col-lg-5"> 4540 <span class="deleteCartPopup hide">Delete</span> 4541 <span class="lineCartPrice align-self-center">Rp 5.000</span> 4542 </div> 4543 </div> 4544 </div> 4545 </div> 4546 <div class="itemProperties"> 4547 4548 <div class="propDeliver"> 4549 <h4>delivery option detail</h4> 4550 <p> 4551 <span>delivery city</span> 4552 <span class="propDeliveryCity">jakarta</span> 4553 </p> 4554 <p> 4555 <span>delivery date</span> 4556 <span class="propDeliveryDate">24/03/2025</span> 4557 </p> 4558 <p> 4559 <span>delivery time</span> 4560 <span class="propDeliveryTime">Afternoon | 13:00 - 18:00</span> 4561 </p> 4562 </div> 4563 <div class="propAddress"> 4564 <h4>delivery option detail</h4> 4565 <p> 4566 <span>RECIPIENT NAME</span> 4567 <span class="propDeliveryName">jane doe</span> 4568 </p> 4569 <p> 4570 <span>delivery address</span> 4571 <span class="propDeliveryAddress" 4572 >Jl. Gatot Subroto No. 25, RT.2/RW.4, Kuningan Barat, Kecamatan Mampang Prapatan, Kota Jakarta 4573 Selatan, Daerah Khusus Ibukota Jakarta 12710, Indonesia</span 4574 > 4575 </p> 4576 <p> 4577 <span>recipient phone number</span> 4578 <span class="propDeliveryPhone">(+62) 812-3456-7890</span> 4579 </p> 4580 <p> 4581 <span>PROVINCE</span> 4582 <span class="propDeliveryProv">Jakarta</span> 4583 </p> 4584 <p> 4585 <span>postal code</span> 4586 <span class="propDeliveryZip">12710</span> 4587 </p> 4588 4589 4590 </div> 4591 4592 </div> 4593 <div class="itemAddonCart"> 4594 <div class="toggleAddonCart d-flex justify-content-between"> 4595 <h4>add-ons (0)</h4> 4596 <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="5" height="9" viewBox="0 0 5 9" fill="none"> 4597 <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"/> 4598 </svg> 4599 </div> 4600 <div class="wrapperItemAddonCart"></div> 4601 </div> 4602 4603 </div> 4604 </div>
4605 <div class="footerPopupCart"> 4606 <div class="row m-0 pl-5 pr-5 p-4"> 4607 <a class="btn btnViewCart w-100 text-uppercase text-center" href="/cart">View Cart</a> 4608 <a class="btn btnViewCheckout w-100 text-uppercase text-center" href="/checkout"><span>Checkout</span></a> 4609 <a class="btnContinueShopping w-100 text-center" href="/">Continue shopping</a> 4610 </div> 4611 </div> 4612 </div> 4613 </div> 4614 </div> 4615 4616 4617
4617<script> 4618 const shareButton = document.getElementById('shareButton'); 4619 4620 shareButton.addEventListener('click', () => { 4621 if (navigator.share) { 4622 navigator.share({ 4623 title: "HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia", 4624 url: "/products/blossom-shine", 4625 text: 'Check out this page!' 4626 }) 4627 .then(() => console.log('Successful share')) 4628 .catch((error) => console.log('Error sharing', error)); 4629 } else { 4630 alert('Web Share API is not supported in this browser.'); 4631 } 4632 }); 4633 4634 // Inventory validation function 4635 function checkInventoryStatus() { 4636 const productSelect = document.getElementById('productSelect'); 4637 const purchaseButton = document.querySelector('#personalizeBtn button'); 4638 4639 if (!productSelect || !purchaseButton) return; 4640 4641 const selectedVariantId = productSelect.value; 4642 4643 // Get variant data from Shopify 4644 fetch(`/products/blossom-shine.js`) 4645 .then(response => response.json()) 4646 .then(product => { 4647 const selectedVariant = product.variants.find(variant => variant.id == selectedVariantId); 4648 4649 if (selectedVariant) { 4650 const isOutOfStock = selectedVariant.inventory_quantity <= 0 && 4651 selectedVariant.inventory_management === 'shopify' && 4652 selectedVariant.inventory_policy !== 'continue'; 4653 4654 if (isOutOfStock) { 4655 purchaseButton.disabled = true; 4656 purchaseButton.textContent = 'Out of Stock'; 4657 purchaseButton.setAttribute('data-out-of-stock', 'true'); 4658 purchaseButton.style.backgroundColor = '#cccccc'; 4659 purchaseButton.style.cursor = 'not-allowed'; 4660 } else { 4661 // Check if button was disabled due to other conditions 4662 4663 4664 4665 4666 4667 4668 4669 4670 const isOtherDisabled = false || true || false; 4671 4672 if (!isOtherDisabled) { 4673 purchaseButton.disabled = false; 4674 purchaseButton.textContent = 'customize your flower board'; 4675 purchaseButton.removeAttribute('data-out-of-stock'); 4676 purchaseButton.style.backgroundColor = ''; 4677 purchaseButton.style.cursor = ''; 4678 } 4679 } 4680 } 4681 }) 4682 .catch(error => { 4683 console.error('Error checking inventory:', error); 4684 }); 4685 } 4686 4687 // Check inventory on page load 4688 document.addEventListener('DOMContentLoaded', function() { 4689 checkInventoryStatus();
4690 4691 // Listen for variant changes 4692 const productSelect = document.getElementById('productSelect'); 4693 if (productSelect) { 4694 productSelect.addEventListener('change', checkInventoryStatus); 4695 } 4696 }); 4697 4698 // Prevent form submission if out of stock 4699 document.addEventListener('click', function(e) { 4700 if (e.target.matches('button[data-out-of-stock="true"]')) { 4701 e.preventDefault(); 4702 e.stopPropagation(); 4703 alert('This product is currently out of stock and cannot be purchased.'); 4704 return false; 4705 } 4706 }); 4707 </script>
4707 4708 4709 4710 4711 </div> 4712 4713 </div> 4714 </div> 4715 </div> 4716 </div> 4717 <div id="product-bottom"> 4718 4719 <div class="product-description rte bg-card col-12 py-3 px-0 m-0" itemprop="description"> 4720 <div class="container"> 4721 4722 4723 4724 4725 4726 <div class="short-desc-mobile d-block d-lg-none mb-3"> 4727 <div class="short-desc"> 4728 <ul> 4729 <li><strong>HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya.</strong></li> 4730 </div> 4731 <label class="more-mobile">Show More â</label> 4732 </div> 4733 4734 <style> 4735 .animated-title { 4736 text-align: center; 4737 font-weight: bold; 4738 color: #079c02; 4739 font-size: 28px; 4740 position: relative; 4741 animation: glow 2s infinite alternate, moveUpDown 3s infinite; 4742 } 4743 4744 /* Efek glow / bercahaya hijau */ 4745 @keyframes glow { 4746 0% { text-shadow: 0 0 5px #079c02; color: #079c02; } 4747 50% { text-shadow: 0 0 20px #00ff55; color: #12d12b; } 4748 100% { text-shadow: 0 0 10px #1bff00; color: #079c02; } 4749 } 4750 4751 /* Efek gerakan naik turun */ 4752 @keyframes moveUpDown { 4753 0% { transform: translateY(0px); } 4754 50% { transform: translateY(-5px); } 4755 100% { transform: translateY(0px); } 4756 } 4757 </style> 4758 4759
4759<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/shopify-cartjs/1.1.0/cart.min.js"></script>
4759 4760
4760<script> 4761 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}); 4762 4763 const productType = $("[data-product-type]").data("product-type") 4764 const productDate = Date.parse(new Date()) 4765 4766 const shop = 'outerbloom1.myshopify.com' 4767 const host = 'https://app.asmaraku.com' 4768 // const host = 'http://localhost:5001' 4769 4770 const gsheet = "https://script.google.com/macros/s/AKfycbyqa6mPD6lVjU6hiHr12J8URZ2aJBGyxBsGQ0QtEIDari-rBk_9vSOITjSSmUXL1NwxEg/exec" 4771 4772 const qrID = "041025" + randomString(4, 'aAbCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ') 4773 4774 $("#properties-time").val(new Date().getTime()) 4775 4776 const isIOS = /iPhone|iPad|iPod/i.test(navigator.userAgent); 4777 4778 if(!isIOS) { 4779 $("#full-date").attr("type", "button") 4780 } 4781 4782 let dateTime = new Date(); 4783 let today = dateTime.getDate(); 4784 let day = dateTime.getDay(); 4785 let hour = dateTime.getHours(); 4786 let min = dateTime.getMinutes(); 4787 let timeOfDay = hour + (min / 100); 4788 4789 async function getFetch(url) { 4790 const response = await fetch(url); 4791 let status = false 4792 let result 4793 if(response.ok) { 4794 status = true 4795 result = await response.json(); 4796 } 4797 return { 4798 status, 4799 data: result 4800 } 4801 } 4802 4803 4804 4805 function setCookie(cname, cvalue, exMins) { 4806 var d = new Date(); 4807 d.setTime(d.getTime() + (exMins*60*1000)); 4808 var expires = "expires="+d.toUTCString(); 4809 document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; 4810 } 4811 4812 function getCookie(cname) { 4813 let name = cname + "="; 4814 let decodedCookie = decodeURIComponent(document.cookie); 4815 let ca = decodedCookie.split(';'); 4816 for(let i = 0; i <ca.length; i++) { 4817 let c = ca[i]; 4818 while (c.charAt(0) == ' ') { 4819 c = c.substring(1); 4820 } 4821 if (c.indexOf(name) == 0) { 4822 return c.substring(name.length, c.length); 4823 } 4824 } 4825 return ""; 4826 } 4827 4828 async function renderDate() { 4829 let dataDate = await getFetch(`${host}/api/shipping/date?domain=${shop}&productId=8144957800663&v=${Date.now()}`); 4830 console.log(dataDate, 'renderDate') 4831 const data = dataDate?.data 4832 const date = data.date 4833 const time = data.time 4834 4835 console.log(date, 'DATE') 4836 4837 const weekday = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]; 4838 const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; 4839 const htmlDate = []
4840 for(let i = 0;i < date.length;i++) { 4841 const full = date[i].date 4842 const d = new Date(date[i].date); 4843 const day = weekday[d.getDay()]; 4844 const dt = d.getDate(); 4845 const mt = monthly[d.getMonth()]; 4846 const yr = d.getFullYear(); 4847 const isDate = Boolean(date[i].isEnabled) 4848 const cutoffpagi = date[i].cutoff?.pagi 4849 const cutoffsiang = date[i].cutoff?.siang 4850 const cutoffMalam = date[i].cutoff?.Malam 4851 var html = ` 4852 <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'}> 4853 ${dt === today ? 4854 `Today<span>${dt < 10 ? '0' + dt : dt}</span>` : 4855 `${day}<span>${dt < 10 ? '0' + dt : dt}</span>` 4856 } 4857 </button> 4858 ` 4859 htmlDate.push(html) 4860 } 4861 const htmlTime = []
4862 for(var i = 0;i < time.length;i++) { 4863 const timeText = time[i].text 4864 const timeTime = time[i].time 4865 const timeEnabled = time[i].isEnabled 4866 var html = ` 4867 <button class="time-single calendarbutton2 btn steps-btn" data-time="${timeText}" ${timeEnabled ? '' : 'disabled'}>${timeText}<br/>${timeTime}</button> 4868 ` 4869 htmlTime.push(html) 4870 } 4871 const deliveryDate = document.getElementById("deliveryDate"); 4872 if(deliveryDate) { 4873 deliveryDate.insertAdjacentHTML("afterbegin", htmlDate.join('')) 4874 $("#deliveryTime").html(htmlTime) 4875 if(productType !== '') { 4876 console.log("clarity event " + productType + ' calendaring') 4877 window.clarity("event", `${productType} calendaringSchedule`) 4878 // window.clarity("set", productType, `calendaringSchedule - ${productDate}`) 4879 } 4880 } 4881 } 4882 4883 async function getProvince(city) { 4884 let { data: { province } } = await getFetch(`${host}/api/shipping/address/province?city=${city}`); 4885 console.log(province, 'province') 4886 $("#province").val(province) 4887 } 4888 4889 async function renderAddress() { 4890 let current 4891 if(getCookie("location_delivery")){ 4892 current = getCookie("location_delivery").charAt(0).toUpperCase() + getCookie("location_delivery").slice(1) 4893 } 4894 let address = await getFetch(`${host}/api/shipping/address?domain=${shop}&productId=8144957800663`); 4895 console.log(address) 4896 const data = address?.data?.city 4897 const htmlAddress = [] 4898 const grouping = []
4899 for(let i = 0;i < data?.length;i++) { 4900 if(data[i]){ 4901 if(data[i]?.group) { 4902 grouping.push(data[i].group) 4903 } 4904 const price = rupiah.format(data[i]?.rate) 4905 let promo = '(Promo Free Delivery)' 4906 if(data[i]?.name === 'Jakarta - PickUp ASHTA'){ 4907 promo = '(at SCBD, Ashta)' 4908 } else if(data[i]?.name === 'Jakarta - PickUp ITC'){ 4909 promo = '(at Kuningan, ITC Kuningan)' 4910 } else if(data[i]?.name === 'BSD - PickUp'){ 4911 promo = '(at Goldfinch Gading Serpong)' 4912 } else if(data[i]?.name === 'Kota Lainnya'){ 4913 promo = '' 4914 } 4915 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>`) 4916 } 4917 } 4918 4919 const deliveryCity = document.getElementById("cities"); 4920 if(deliveryCity) { 4921 deliveryCity.insertAdjacentHTML("beforeend", htmlAddress.join('')) 4922 if(!isIOS) { 4923 $(deliveryCity).select2(); 4924 } 4925 } 4926 } 4927 4928 async function renderZip(v, v2, v3) { 4929 const deliveryZip = document.getElementById("zip"); 4930 if(v === '') { 4931 return 4932 } 4933 let dataZip = await getFetch(`${host}/api/shipping/address/zip?city=${v}&city2=${v2}&city3=${v3}`); 4934 let zip = dataZip?.data?.zip 4935 console.log(zip) 4936 let htmlZip = []
4937 for(let i = 0; i < zip?.length;i++) { 4938 htmlZip.push(`<option value="${zip[i]?.postalCode} - ${zip[i]?.subdistrict}">${zip[i]?.postalCode} - ${zip[i]?.subdistrict} - ${zip[i]?.city}</option>`) 4939 } 4940 deliveryZip.insertAdjacentHTML("beforeend", htmlZip.join('')) 4941 } 4942 4943 renderDate() 4944 renderAddress() 4945 4946 let rupiah = new Intl.NumberFormat('id-ID', { 4947 style: 'currency', 4948 currency: 'IDR', 4949 maximumFractionDigits: 0, 4950 minimumFractionDigits: 0 4951 }); 4952 4953 async function insertCard(data) { 4954 const response = await fetch(`${host}/api/card/new`, { 4955 method: "POST", 4956 headers: { 4957 'Content-Type': 'application/json', 4958 }, 4959 body: data 4960 }) 4961 const result = await response.json() 4962 let rowIndex = result?.data?.tableRange.split("Outerbloom!A1:J")[1] 4963 $("#greetingCard").attr("data-index", rowIndex) 4964 return result 4965 } 4966 4967 async function updateCard(data){ 4968 const rowIndex = $("#greetingCard").data("index") 4969 const response = await fetch(`${host}/api/card/update?rowIndex=${rowIndex}`, { 4970 method: "PUT", 4971 headers: { 4972 'Content-Type': 'application/json', 4973 }, 4974 body: data 4975 }) 4976 return response 4977 } 4978 4979 function bytesToSize(bytes) { 4980 var sizes = ['b', 'kb', 'mb', 'gb', 'tb', 'p']; 4981 for (var i = 0; i < sizes.length; i++) { 4982 if (bytes <= 1024) { 4983 return bytes + ' ' + sizes[i]; 4984 } else { 4985 bytes = parseFloat(bytes / 1024).toFixed(2) 4986 } 4987 } 4988 return bytes + ' P'; 4989 } 4990 4991 async function uploadMedia(uri, type) { 4992 nameq = $("#properties-nama-penerima").val() 4993 dear = $("#properties-kartu-nama-penerima").val() 4994 card = $("[data-properties=ucapan]").val() 4995 sender = $("#properties-kartu-nama-pengirim").val() 4996 photo = $("#properties-photo").val() 4997 video = $("#properties-video").val() 4998 status = "Product" 4999 5000 const name = qrID 5001 let formData = new FormData(); 5002 formData.append("file", uri); 5003 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 5004 method: "POST", 5005 body: formData 5006 }) 5007 const result = await response.json(); 5008 if(result) { 5009 const url = result.url 5010 if(type === 'image/jpeg') { 5011 $("#properties-photo").val(url) 5012 $(".preview-image").show() 5013 $(".remove-image").show() 5014 photo = url 5015 } else { 5016 $("#properties-video").val(url) 5017 $("#label-input-video span").text("Change File") 5018 $(".case-qrcode-preview p").text("Scan here for a secret message") 5019 $(".remove-media").show() 5020 $("#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>`) 5021 $("[for=input-video]").hide() 5022 video = url 5023 } 5024 $(".case-video-preview").show() 5025 $(".steps-card-preview").removeClass("loading") 5026 // updateCard(nameq, dear, card, sender, photo, video, status) 5027 5028 $(".nextBtn").attr("disabled", false) 5029 } 5030 } 5031 5032 function randomString(length, chars) { 5033 var result = ''; 5034 for (var i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))]; 5035 return result; 5036 } 5037 5038 function getNoteCity(fulldate) { 5039 const h_1 = new Date(new Date().setDate(new Date().getDate() + 1)) 5040 const weekday = ["Min","Sen","Sel","Rab","Kam","Jum","Sab"]; 5041 const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; 5042 const d = new Date(h_1); 5043 const day = weekday[d.getDay()]; 5044 const dt = d.getDate(); 5045 const mt = monthly[d.getMonth()]; 5046 const yr = d.getFullYear(); 5047 const p = $("#cities").parent(".form-group") 5048 } 5049 5050 function disabledSameDay() { 5051 let btnFirst = $("#deliveryDate").find("button:first-child") 5052 let getDay = new Date().getDay(); 5053 5054 5055 5056 if(getDay == 1 || getDay == 2 || getDay == 3 || getDay == 4 || getDay == 5){ 5057 if(hour >= 14.00){ 5058 btnFirst.attr("disabled", true) 5059 } 5060 } else if(getDay == 6){ 5061 if(hour >= 16.00){ 5062 btnFirst.attr("disabled", true) 5063 } 5064 } else if(getDay == 0){ 5065 if(hour >= 16.00){ 5066 btnFirst.attr("disabled", true) 5067 } 5068 } 5069 5070 5071 } 5072 5073 function disabledays(date) { 5074 let ymd = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate(); 5075 //if u have to disable a list of day 5076 let removeDays 5077 5078 5079 5080 removeDays = ["2025-2-13", "2025-2-14"]; 5081 5082 if ($.inArray(ymd, removeDays) >= 0) { 5083 return [false]; 5084 } else { 5085 let day = date.getDay(); 5086 if(day == 0 && date.getDate() == 13 && date.getMonth() == 1){ 5087 return [(day == 0), '']; 5088 } 5089 5090 if(day == 0){ 5091 return [(day == 0), '']; 5092 } 5093 5094 5095 return [(day != 0), '']; 5096 } 5097 } 5098 5099 /* Indonesian initialisation for the jQuery UI date picker plugin. */ 5100 /* Written by Deden Fathurahman ([email protected]). */ 5101 ( function( factory ) { 5102 if ( typeof define === "function" && define.amd ) { 5103 5104 // AMD. Register as an anonymous module. 5105 define( [ "../widgets/datepicker" ], factory ); 5106 } else { 5107 5108 // Browser globals 5109 factory( jQuery.datepicker ); 5110 } 5111 }( function( datepicker ) { 5112 5113 datepicker.regional.id = { 5114 closeText: "Tutup", 5115 prevText: "<mundur", 5116 nextText: "maju>", 5117 currentText: "Today", 5118 monthNames: [ "January","February","March","April","May","Juny", 5119 "July","August","September","October","November","December" ], 5120 monthNamesShort: [ "Jan","Feb","Mar","Apr","May","Jun", 5121 "Jul","Agu","Sep","Oct","Nov","Dec" ], 5122 dayNames: [ "Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu" ], 5123 dayNamesShort: [ "Sun","Mon","Tue","Wed","Thu","Fri","Sat" ], 5124 dayNamesMin: [ "Mg","Sn","Sl","Rb","Km","jm","Sb" ], 5125 weekHeader: "Mg", 5126 dateFormat: "D, dd M", 5127 firstDay: 0, 5128 isRTL: false, 5129 showMonthAfterYear: false, 5130 yearSuffix: "" }; 5131 datepicker.setDefaults( datepicker.regional.id ); 5132 5133 return datepicker.regional.id; 5134 5135 } ) ); 5136 5137 function loadPopup() { 5138 $("#backgroundPopup").fadeIn("slow"); 5139 $(".purchasePopup:not(.purchasePopupSpotify)").fadeIn("slow"); 5140 const firstSection = $(".purchasePopup:not(.purchasePopupSpotify) .sectionPurchase").first() 5141 if(firstSection.hasClass("purchasePersonalize")) { 5142 if(productType !== '') { 5143 console.log("clarity event " + productType + ' personalize') 5144 window.clarity("event", `${productType} cardPersonalization`) 5145 // window.clarity("set", productType, `cardPersonalization - ${productDate}`) 5146 } 5147 } else if (firstSection.hasClass("sectionPurchaseBoard")) { 5148 console.log("clarity event " + productType + ' personalizeBoard') 5149 window.clarity("event", `${productType} personalizeBoard`) 5150 // window.clarity("set", productType, `personalizeBoard - ${productDate}`) 5151 } 5152 firstSection.removeClass("hide") 5153 5154 // Auto-trigger addon loading when addon section becomes visible 5155 setTimeout(function() { 5156 const addonSection = $(".purchaseAddon") 5157 if(addonSection.length > 0 && !addonSection.hasClass("hide")) { 5158 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 5159 $("[data-addon=upsell-all]").trigger("click") 5160 } 5161 } 5162 }, 200) 5163 } 5164 5165 function disablePopup() { 5166 $("#backgroundPopup").fadeOut("slow"); 5167 $(".purchasePopup").fadeOut("slow"); 5168 $("#popupCart").fadeOut("slow"); 5169 } 5170
5171 function scrollTo(parent, div, dur) { 5172 $(parent).animate({ 5173 scrollTop: $(div).offset().top 5174 }, dur); 5175 } 5176 5177 function loadPopupPersonalize() { 5178 const div = "#purchaseProduct" 5179 const p = "html, body, .product-meta" 5180 $("p.error").remove() 5181 loadItemOccasion($("[data-occassion]").eq(0), "greeting-card-all") 5182 const isCity = $("#cities[required]") 5183 const isDate = $("#propDeliveryDate[required]") 5184 const isTime = $("#propDeliveryTime[required]") 5185 // loadPopup() 5186 if(isCity.val() !== '' && isDate.val() !== '' && isTime.val() !== '') { 5187 loadPopup() 5188 } 5189 if(isCity.val() == '') { 5190 isCity.parent(".row").append("<p class='error'>Choose delivery city</p>") 5191 scrollTo(p, div, 500) 5192 } 5193 if(isDate.val() == '') { 5194 isDate.parents(".row").append("<p class='error'>Choose delivery date</p>") 5195 scrollTo(p, div, 500) 5196 } 5197 if(isTime.val() == '') { 5198 isTime.parents(".row").append("<p class='error'>Choose delivery time</p>") 5199 scrollTo(p, div, 500) 5200 } 5201 } 5202 5203 function quantityCounter() { 5204 $(document).on("click", ".item-card.selected .q_up", function () { 5205 var C = $(this).attr("data-id"), 5206 S = 5207 parseInt( 5208 $(this) 5209 .siblings(".quantity-cart-" + C) 5210 .val() 5211 ) + 1; 5212 $(this).attr("data-quantity", S), 5213 $(this) 5214 .siblings(".quantity-cart-" + C) 5215 .val(S); 5216 }), 5217 $(document).on("click", ".item-card.selected .q_down", function () { 5218 var C = $(this).attr("data-id"), 5219 S = parseInt( 5220 $(this) 5221 .siblings(".quantity-cart-" + C) 5222 .val() 5223 ); 5224 0 < S && $(this).attr("data-quantity", S - 1), 5225 0 < S && 5226 $(this) 5227 .siblings(".quantity-cart-" + C) 5228 .val(S - 1); 5229 }); 5230 } 5231 5232 quantityCounter() 5233 5234 const itemAddon = $(".item-card").length 5235 const nofree = $(".nofree").length 5236 5237 const upsell = '' 5238 5239 if(nofree === itemAddon) { 5240 // $("#itemAddons").html("<p>No Items available</p>") 5241 } 5242 5243 $("#itemAddons .item-card").each(function(e){ 5244 $("#itemAddons").attr("data-length", e) 5245 }) 5246 5247 $("[data-addon]").click(function(){ 5248 5249 5250 5251 const t = $(this) 5252 5253 const data = t.data("addon") 5254 5255 $("[data-addon]").removeClass("selected") 5256 t.addClass("selected") 5257 $.get(`https://outerbloom.com/collections/${data}/products.json`, function(data, status){ 5258 const products = data.products 5259 const html = [] 5260 for(let i = 0; i < products.length; i++) { 5261 const id = products[i].id 5262 const variantId = products[i].variants[0].id 5263 const img = products[i].images[0].src 5264 let img2 = img.split('.jpg')[0] 5265 const title = products[i].title 5266 const price = products[i].variants[0].price 5267 const tags = products[i].tags 5268 const qty = products[i].variants[0].available 5269 let type_upsell = '' 5270 if(tags.includes('upsell-item-standing')) { 5271 type_upsell = 'standing' 5272 } 5273 console.log(type_upsell) 5274 if(type_upsell !== '') { 5275 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}"> 5276 5277 <div class="card-image"> 5278 <img src="${img2}_150x.jpg" alt="${title}" width="" height="" /> 5279 </div> 5280 <div class="card-meta"> 5281 <h5>${title}</h5> 5282 <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p> 5283 <input id="card-${variantId}" type="hidden" name="" value="${variantId}"> 5284 </div> 5285 <div class="card-qty"> 5286 <a data-quantity="1" type="submit" id="q_down-${variantId}" class="btn-qty-min q_down drawer-cart" data-id="${variantId}"><svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="12" height="2" viewBox="0 0 12 2" fill="none"><path d="M0 1.90869V0.908691H12V1.90869H0Z" fill="black"/></svg></a> 5287 <input maxlength="3" min="0" class="btn-qty text-center quantity-cart-${variantId}
5287" value="0" data-price=${price} name="quantity"> 5288 <a data-quantity="1" type="submit" class="btn-qty-plus q_up text-green drawer-cart" data-id="${variantId}"><svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="12" height="13" viewBox="0 0 12 13" fill="none"> 5289 <path d="M0 6.87023V5.94715H5.53846V0.408691H6.46154V5.94715H12V6.87023H6.46154V12.4087H5.53846V6.87023H0Z" fill="black"/> 5290 </svg></a> 5291 </div> 5292 </div>` 5293 html.push(body) 5294 } 5295 } 5296 $("#itemAddons .row").html(html.length === 0 ? '<p>No Item available</p>' : html) 5297 $("#itemAddons").attr("data-length", products.length) 5298 // $('#itemAddons')[0].swiper.update(); 5299 }); 5300 }) 5301 5302 async function isAddon(){ 5303 let ids = [] 5304 $("#itemAddons .item-card.selected").each(function(i, e){ 5305 const id = $(this).data("id") 5306 ids.push(id) 5307 }) 5308 console.log(ids) 5309 return ids 5310 } 5311 5312 $("#itemAddons").delegate(".item-card > div:not(.card-qty)", "click", async function(){ 5313 const t = $(this).parent() 5314 const id = t.data("id") 5315 const btn = t.parents(".purchaseAddon").find(".next-purchase-button") 5316 t.toggleClass("selected"); 5317 //$(this).next("input").toggleAttr('name', 'id[]'); 5318 if (t.hasClass('selected')) { 5319 t.find("input").val(1) 5320 t.find("input").attr('name', 'id[]'); 5321 } else { 5322 t.find("input").val(0) 5323 t.find("input").removeAttr('name'); 5324 } 5325 $("#properties-addons").val(addons) 5326 const is = await isAddon() 5327 if(is.length === 0) { 5328 btn.text("continue without add-ons") 5329 return 5330 } 5331 if(is.includes(8835692069079)) { 5332 btn.text("personalize acrylic frame") 5333 } else { 5334 btn.text("Continue") 5335 } 5336 5337 }) 5338 5339 async function myAddon(data) { 5340 const c = $(".addonsPurchase .addons") 5341 let items = [] 5342 5343 const spotifyAddons = $(".spotifyAddons").find("[data-index]") 5344 // if(spotifyAddons.length > 0) { 5345 // $(spotifyAddons).each(function(i, e){ 5346 // const spotifyLink = $(this).find(".spotifyLink").val() 5347 // const spotifySong = $(this).find(".spotifySong").val() 5348 // const spotifyArtist = $(this).find(".spotifyArtist").val() 5349 // const spotifyFotoAddon = $(this).find(".resultPhotoSpotify").val() 5350 // if(spotifyLink !== '') { 5351 // spotifyAddon = `<div class="addon-item" data-id="46067682607319" data-qty="1"> 5352 // <div class="addon-itm-img"> 5353 // <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"/> 5354 // </div> 5355 // <div class="addon-itm-title"> 5356 // <span>[US] Outerbloom Acrylic Frame 4R</span> 5357 // </div> 5358 // <div class="addon-itm-line-total"> 5359 // <span>Rp 99.000</span> 5360 // </div> 5361 // </div> 5362 // <div class="propsAddonSpotify row m-0"> 5363 // <div class="col-12 col-lg-2"></div> 5364 // <div class="col-12 col-lg-10"> 5365 // <p> 5366 // <span>spotify link</span> 5367 // <span class="spotifyLinkAddon">${spotifyLink}</span> 5368 // </p> 5369 // <p> 5370 // <span>uploaded photo</span> 5371 // <span class="spotifyFotoAddon">${spotifyFotoAddon}</span> 5372 // </p> 5373 // <p> 5374 // <span>song / playlist name</span> 5375 // <span class="spotifySongAddon">${spotifySong}</span> 5376 // </p> 5377 // <p> 5378 // <span>artist name</span> 5379 // <span class="spotifyArtistAddon">${spotifyArtist}</span> 5380 // </p> 5381 // </div> 5382 // </div>` 5383 // items.push(spotifyAddon) 5384 // } 5385 // }) 5386 // }
5387 for(let i = 0; i < data.length; i++) { 5388 if(data[i].title !== '[US] Outerbloom Acrylic Frame 4R' ) { 5389 const img = data[i].image 5390 const title = data[i].title 5391 const qty = data[i].qty 5392 const price = data[i].price 5393 const total = Number(qty) * Number(price) 5394 let addons = `<div class="addon-item" data-id="${data[i].id}" data-qty="${qty}"> 5395 <div class="addon-itm-img"> 5396 <img src="${img}" alt="" width="70"/> 5397 </div> 5398 <div class="addon-itm-title"> 5399 <span>${title}</span> 5400 </div> 5401 <div class="addon-itm-line-price"> 5402 <span>${rupiah.format(price)}</span> 5403 ${data[i].title == '[US] Outerbloom Acrylic Frame 4R' ? '' : `<span>x${qty}</span>`} 5404 </div> 5405 <div class="addon-itm-line-total"> 5406 <span>${rupiah.format(total)}</span> 5407 </div> 5408 </div>` 5409 items.push(addons) 5410 } 5411 } 5412 c.html(items) 5413 const parent = $(".purchaseAddon") 5414 const next = parent.next(".sectionPurchase") 5415 parent.addClass("hide") 5416 next.removeClass("hide") 5417 // if(items2.length === 0) return $("#popupCart").addClass("no-addon-cart") 5418 // $(".itemAddonCart").find("h4").text(`add-ons (${items2.length})`) 5419 } 5420 5421 async function listAddon() { 5422 const data = $("#itemAddons").find(".selected") 5423 let ids = [] 5424 $(data).each(function(){ 5425 const id = $(this).data("variant") 5426 const image = $(this).find(".card-image img").attr("src") 5427 const title = $(this).find(".card-meta h5").text() 5428 const qty = $(this).find(".card-qty input").val() 5429 const price = $(this).find(".card-qty input").data("price") 5430 ids.push({ 5431 id: Number(id), 5432 image, 5433 title, 5434 qty, 5435 price 5436 }) 5437 }) 5438 myAddon(ids) 5439 } 5440 5441 async function customSpotify(idx, length, type){ 5442 let isCard = false 5443 5444 let p = $(".purchasePopupSpotify") 5445 const preLink = $(".spotifyLinkFirst").val() 5446 $("[data-index]").hide() 5447 p.find(".headerPurchase h3").text(`personalize spotify photo print${length > 1 ? ` - ${idx}` : ''}`) 5448 p.find(".regulerAddons, .purchase-button").hide() 5449 p.find(".spotifyAddons").show() 5450 5451 const data = await trackUrl(preLink) 5452 5453 const html = `<div class="row" data-index=${idx} data-length=${length}><div class="col-12 col-lg-6"><div class="form-vertical position-relative"><div class="form-group mb-4"><h4>upload photo</h4><div class=uploadResult><label class=btn for=uploadPhotoSpotify><svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="13" height="11" viewB
5453ox="0 0 13 11" fill="none"> 5454 <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"/> 5455 </svg><span>Upload your file</span></label></div><input class="uploadPhotoSpotify form-control d-none" accept=image/* type=file><input class="resultPhotoSpotify" type="hidden"></div><div class="form-group mb-5"><h4>Add your Spotify link here</h4> <input class="spotifyLink2 form-control spotifyLink" value="${preLink}" placeholder=https://open.spotify.com/ ></div><div class="form-group mb-4 text-left"><label class=checkbox for=isCustomMessage><span>Personalized Message</span><span class=checkmark></span></label></div><div class="form-group mb-4 form-personalize"><label class="text-left d-block mb-2 text-uppercase"for=spotifySong>Song / playlist name</label> ${data?.song ? `<input class="form-control spotifySong" value="${data?.song}">` : '<input class="form-control spotifySong" value="">'}</div><div class="form-group form-personalize"><label class="text-left d-block mb-2 text-uppercase"for=spotifyArtist>Artist name</label> ${data?.artist ? `<input class="form-control spotifyArtist" value="${data?.artist}">` : '<input class="form-control spotifyArtist" value="">'}</div><div class=btn-action><button class="back-spotify"><svg fill=none height=14 viewBox="0 0 15 14"width=15 xmlns=https://watersoftenerreviewspro.com/picture/logo.png><path d="M14.5799 7.41992L2.32992 7.41992L7.57992 12.6699L6.91992 13.4199L0.419922 6.91992L6.91992 0.419922L7.57992 1.16992L2.32992 6.41992L14.5799 6.41992V7.41992Z"fill=black /></svg> <span>Back</span></button><button data-type="${isCard ? 'card' : ''}" ${isCard ? '' : 'id=addtocart-card'} class="text-uppercase btn w-100${type == 'addon' && idx == length ? ' finished' : ' no-addon'}" disabled>${isCard ? 'Continue Personalizing' : 'add to cart'}</button></div></div></div><div class="col-12 col-lg-6 columnRight"><div class=frame-spotify><div class=frameImage><div class=frameImageUploaded><svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="13" height="11" viewB
5455ox="0 0 13 11" fill="none"> 5456 <path d="M0.875 10.6378H12.375C12.4413 10.6378 12.5049 10.6115 12.5518 10.5646C12.5987 10.5177 12.625 10.4541 12.625 10.3878V0.387817C12.625 0.321513 12.5987 0.257925 12.5518 0.211041C12.5049 0.164157 12.4413 0.137817 12.375 0.137817H0.875C0.808696 0.137817 0.745107 0.164157 0.698223 0.211041C0.651339 0.257925 0.625 0.321513 0.625 0.387817V10.3878C0.625 10.4541 0.651339 10.5177 0.698223 10.5646C0.745107 10.6115 0.808696 10.6378 0.875 10.6378ZM1.125 10.1378V7.31882C1.136 7.31082 1.1485 7.30632 1.1585 7.29632L3.7165 4.73832C3.78198 4.67584 3.869 4.64098 3.9595 4.64098C4.05 4.64098 4.13702 4.67584 4.2025 4.73832L7.963 8.49882C8.00919 8.54501 8.07162 8.5713 8.13694 8.57204C8.20225 8.57279 8.26527 8.54794 8.3125 8.50282L10.2455 6.66682C10.3084 6.60323 10.3938 6.56684 10.4832 6.56543C10.5727 6.56403 10.6591 6.59774 10.724 6.65932L12.125 8.18532L12.1255 8.18582V10.1378H1.125ZM12.125 0.637817V7.44682L11.0845 6.31382C11.0066 6.23514 10.9138 6.17275 10.8116 6.13026C10.7094 6.08777 10.5997 6.06603 10.489 6.06632H10.4885C10.3786 6.06584 10.2697 6.08706 10.168 6.12876C10.0664 6.17046 9.97391 6.23182 9.896 6.30932L8.144 7.97332L4.556 4.38482C4.2365 4.06582 3.6815 4.06632 3.363 4.38482L1.125 6.62332V0.637817H12.125Z" fill="black"/> 5457 </svg> <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>` 5458 // console.log(html) 5459 5460 $(".spotifyAddons").append(html) 5461 5462 $(`[data-index=${idx}]`).show() 5463 5464 if (preLink !== '') { 5465 $(".btn-action .btn").attr("disabled", false) 5466 } else { 5467 $(".btn-action .btn").attr("disabled", true) 5468 } 5469 5470 return html 5471 5472 } 5473 5474 $(".spotifyLinkFirst").keyup(async function(){ 5475 const v = $(this).val() 5476 if(v.includes('spotify:user:spotify')) { 5477 const correct = v.split('user:spotify:')[1] 5478 console.log(correct, 'BNER') 5479 $(this).val(correct) 5480 return 5481 } 5482 if(v.includes("spotify:") || v.includes("https://open.spotify.com/")){ 5483 const data = await trackUrl(v) 5484 if(!data || !data.status) { 5485 $(this).parent().addClass("error") 5486 // $(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>`) 5487 $("#personalizeBtnSpotify .btn").attr("disabled", true) 5488 return 5489 } 5490 $(this).parent().removeClass("error") 5491 // $(this).parent().remove("txt-error") 5492 $("#personalizeBtnSpotify .btn").attr("disabled", false) 5493 } else { 5494 $("#personalizeBtnSpotify .btn").attr("disabled", true) 5495 } 5496 }) 5497 5498 $(".purchaseAddon").delegate(".next-addon", "click", function(){ 5499 const parent = $(this).parents(".purchaseAddon") 5500 const next = parent.next(".sectionPurchase") 5501 if(next.hasClass("purchaseAddress")) { 5502 if(productType !== '') { 5503 console.log("clarity event " + productType + ' purchaseDelivery') 5504 window.clarity("event", `${productType} purchaseDelivery`) 5505 // window.clarity("set", productType, `purchaseDelivery - ${productDate}`) 5506 } 5507 } 5508 const data = $("#itemAddons").find(".selected") 5509 const length = $(".quantity-cart-46067682607319").val() 5510 const checked = data.length; 5511 if(checked > 0) { 5512 if(length > 0) { 5513 $(".purchaseAddon").addClass("purchaseAddonSpotify") 5514 customSpotify(1, length, 'addon') 5515 } else { 5516 listAddon() 5517 } 5518 } else { 5519 parent.addClass("hide") 5520 next.removeClass("hide") 5521 } 5522 }) 5523 5524 $("#personalizeBtnSpotify .btn").click(async function(){ 5525 const isCity = $("#cities[required]") 5526 const isDate = $("#propDeliveryDate[required]") 5527 if((isDate.length > 0 && isCity.length > 0) && (isCity.val() === '' || isDate.val() === '')) { 5528 alert('Please choose Delivery City & Delivery Date') 5529 return 5530 } 5531 const data = await customSpotify(1, 1, 'product') 5532 if(data) { 5533 $("#backgroundPopup").fadeIn("slow"); 5534 $(".purchasePopupSpotify").fadeIn("slow"); 5535 5536 if(productType !== '') { 5537 console.log("clarity event " + productType + ' spotify') 5538 window.clarity("event", `${productType} spotify`) 5539 // window.clarity("set", productType, `purchaseDelivery - ${productDate}`) 5540 } 5541 } 5542 }) 5543 5544 function formatBytes(bytes, decimals = 2) { 5545 if (!+bytes) return '0 Bytes' 5546
5547 const k = 1024 5548 const dm = decimals < 0 ? 0 : decimals 5549 const sizes = ['B', 'KB', 'MB'] 5550 5551 const i = Math.floor(Math.log(bytes) / Math.log(k)) 5552 5553 return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}` 5554 } 5555 5556 async function trackUrl(link){ 5557 try { 5558 let trackId = link.split('/').pop().split('?')[0]; 5559 let type = '' 5560 if(link.includes("spotify:")) { 5561 const uri = link.split('spotify:')[1] 5562 trackId = uri.split(':')[1] 5563 type = uri.split(':')[0] + 's' 5564 } else { 5565 if(link.match('track')){ 5566 type = 'tracks' 5567 } else if(link.match('playlist')) { 5568 type = 'playlists' 5569 } else if(link.match('artist')) { 5570 type = 'artists' 5571 } else if(link.match('album')) { 5572 type = 'albums' 5573 } 5574 } 5575 console.log(`${host}/api/spotify/${type}/${trackId}`) 5576 const data = await getFetch(`${host}/api/spotify/${type}/${trackId}`) 5577 console.log(data, 'DATA') 5578 const song = data?.data?.name 5579 const artist = data?.data?.artist 5580 return { 5581 song, artist, type, trackId, status: data.status 5582 } 5583 } catch(err) { 5584 console.log(err) 5585 } 5586 } 5587 5588 $(".spotifyAddons").delegate(".uploadPhotoSpotify", "change", async function(){ 5589 const parent = $(this).parents("[data-index]") 5590 const preview = parent.find(".previewImage") 5591 const file = $(this)[0].files[0]; 5592 if (file) { 5593 const reader = new FileReader(); 5594 reader.onload = async function(e) { 5595 parent.find(".uploadResult label").hide() 5596 parent.find(".uploadedResult").remove() 5597 parent.find(".uploadResult").append(`<div class="uploadedResult d-flex" style="justify-content: space-between"> 5598 <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> 5599 <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;">
5599<svg fill="none" height="11" viewBox="0 0 10 11" width="10" xmlns="https://watersoftenerreviewspro.com/picture/logo.png"> 5600 <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 /> 5601 </svg> 5602 </span></div></div>`) 5603 parent.find(".frameImageUploaded svg").hide() 5604 parent.find(".frameImage").addClass("uploaded") 5605 preview.attr("src", e.target.result); 5606 preview.show(); 5607 let formData = new FormData(); 5608 formData.append("file", file); 5609 const response = await fetch(`${host}/api/upload?name=${file.name}&type=image/jpeg&r=${Date.parse(new Date)}`, { 5610 method: "POST", 5611 body: formData 5612 }) 5613 const result = await response.json(); 5614 if(result){ 5615 parent.find(".resultPhotoSpotify").val(result.url) 5616 } 5617 } 5618 5619 reader.readAsDataURL(file); 5620 } else { 5621 preview.hide(); 5622 } 5623 }); 5624 5625 $(".spotifyAddons").delegate(".uploadResult", "click", function(){ 5626 $(this).next("input[type=file]").trigger("click") 5627 }) 5628 5629 $(".spotifyAddons").delegate(".changeUpload", "click", function(){ 5630 $(this).parents("input[type=file]").trigger("click") 5631 }) 5632 5633 $(".spotifyAddons").delegate(".removeUpload", "click", function(){ 5634 const parent = $(this).parents("[data-index]") 5635 parent.find(".uploadPhotoSpotify").val("") 5636 parent.find(".uploadResult label").show() 5637 parent.find(".uploadedResult").remove() 5638 parent.find(".frameImageUploaded svg").show() 5639 parent.find(".previewImage").hide() 5640 parent.find(".frameImage").removeClass("uploaded") 5641 }) 5642 5643 $(".spotifyAddons").delegate("label.checkbox", "click", function(){ 5644 const parent = $(this).parents("[data-index]") 5645 parent.toggleClass("checked") 5646 }) 5647 5648 $(".spotifyAddons").delegate(".spotifyLink", "change", async function(){ 5649 const parent = $(this).parents("[data-index]") 5650 const link = $(this).val() 5651 const data = await trackUrl(link) 5652 5653 console.log(data) 5654 5655 if(data.song) { 5656 parent.find(".spotifySong").val(data.song) 5657 parent.find(".spotifyData").find("h3").text(data.song) 5658 } 5659 if(data.artist) { 5660 parent.find(".spotifyArtist").val(data.artist) 5661 parent.find(".spotifyData").find("p").text(data.artist) 5662 } 5663 parent.find(".spotifyCode img").attr("src", `https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:${data.type.slice(0, -1)}:${data.trackId}`) 5664 // https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:track:1er51HCEBhIAtoEemKuC3M 5665 if (data.status === true) { 5666 parent.find(".btn-action .btn").attr("disabled", false) 5667 } else { 5668 parent.find(".btn-action .btn").attr("disabled", true) 5669 } 5670 }) 5671
5672 $(".spotifyAddons").delegate(".spotifySong", "keyup", async function(){ 5673 const parent = $(this).parents("[data-index]") 5674 const v = $(this).val() 5675 parent.find(".spotifyData h3").text(v) 5676 }) 5677 5678 $(".spotifyAddons").delegate(".spotifyArtist", "keyup", async function(){ 5679 const parent = $(this).parents("[data-index]") 5680 const v = $(this).val() 5681 parent.find(".spotifyData p").text(v) 5682 }) 5683 5684 $(".spotifyAddons").delegate(".btn-action .btn:not(.no-addon)", "click", async function(){ 5685 const parent = $(this).parents("[data-index]") 5686 const length = parent.data("length") 5687 const index = parent.data("index") 5688 const indexNext = Number(index) + 1 5689 customSpotify(indexNext, length, 'addon') 5690 }) 5691 5692 5693 $(".spotifyAddons").delegate(".btn-action .btn.finished", "click", async function(){ 5694 const parent = $(this).parents(".purchaseAddon") 5695 const next = parent.next(".sectionPurchase") 5696 parent.addClass("hide") 5697 next.removeClass("hide") 5698 next.find(".purchase-button").show() 5699 listAddon() 5700 }) 5701 5702 $(".spotifyAddons").delegate(".back-spotify", "click", async function(){ 5703 const t = $(this).parents("[data-index]") 5704 const parent = $(this).parents(".sectionPurchase") 5705 const current = t.data("index") 5706 const prevCurrent = Number(current) - 1 5707 if(current == 1) { 5708 parent.removeClass("purchaseAddonSpotify") 5709 parent.find(".purchase-button").show() 5710 parent.find(".headerPurchase h3").text("Make It More Special with Add-Ons!") 5711 $(".spotifyAddons").empty() 5712 $(".regulerAddons").show() 5713 return 5714 } 5715 t.hide() 5716 t.prev("[data-index]").show() 5717 t.remove() 5718 parent.find(".headerPurchase h3").text(`personalize spotify photo print - ${prevCurrent}`) 5719 }) 5720 5721 $("#personalizeBtn .btn").click(async function() { 5722 loadPopupPersonalize() 5723 }); 5724 5725 $(".sectionPurchaseSpotify").delegate(".btn[data-type=card]", "click", function(){ 5726 $(".sectionPurchaseSpotify").hide() 5727 loadPopupPersonalize() 5728 }) 5729 5730 $(".close-purchase-popup").click(function() { 5731 disablePopup(); 5732 }); 5733 $("#backgroundPopup").click(function() { 5734 // disablePopup(); 5735 }); 5736 5737 $("#popupCart .close-purchase-popup").click(function() { 5738 location.reload() 5739 }); 5740 5741 $('#popupCart').on('hide.bs.modal', function (e) { 5742 location.reload() 5743 }) 5744 5745 $(".next-card").click(function(){ 5746 const parent = $(this).parents(".sectionPurchase") 5747 const next = parent.next(".sectionPurchase") 5748 parent.addClass("hide") 5749 next.removeClass("hide") 5750 }) 5751 5752 $(".back-purchase-button").click(function(){ 5753 const parent = $(this).parents(".sectionPurchase") 5754 const prev = parent.prev(".sectionPurchase") 5755 parent.addClass("hide") 5756 prev.removeClass("hide") 5757 }) 5758 5759 $(document).keypress(function(e) { 5760 if (e.keyCode == 27 && popupStatus == 1) { 5761 disablePopup(); 5762 } 5763 }); 5764 5765 const parentImg = $(".case-img-preview") 5766 const parentVid = $(".case-video-preview") 5767 5768 function readURL(input) { 5769 if (input.files && input.files[0]) { 5770 let reader = new FileReader(); 5771 5772 let type = 'image/jpeg' 5773 const size = input.files[0].size 5774 if(input.files[0].type.match('video/')){ 5775 type = 'video/mp4' 5776 if(size > 15728640) { 5777 alert('File size exceeds maximum limit 15 MB') 5778 return 5779 } 5780 } else { 5781 if(size > 5242880) { 5782 alert('File size exceeds maximum limit 5 MB') 5783 return 5784 } 5785 } 5786 5787 reader.onload = function (e) { 5788 $(".nextBtn").attr("disabled", true) 5789 if(type === 'image/jpeg') { 5790 5791 $('.placeholder-image').hide(); 5792 $('.preview-image').show() 5793 $('.preview-image').attr('src', e.target.result); 5794 5795 } else { 5796 // parentVid.find(".ajax-loader").show(); 5797 $(".steps-card-preview").addClass("loading") 5798 } 5799 } 5800 5801 5802
5803 reader.readAsDataURL(input.files[0]); 5804 } 5805 } 5806 5807 async function readURLPapan(input) { 5808 if (input.files && input.files[0]) { 5809 let reader = new FileReader(); 5810 5811 reader.onload = function (e) { 5812 $('.btn-upload-papan').siblings('label').hide(); 5813 $('.btn-upload-papan img').attr('src', e.target.result); 5814 $('.btn-upload-papan img').show(); 5815 $('.svgLogoPapan').hide(); 5816 } 5817 5818 const type = 'image/jpeg' 5819 const name = `logo-8144957800663-${Date.parse(new Date())}` 5820 5821 let formData = new FormData(); 5822 formData.append("file", input.files[0]); 5823 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 5824 method: "POST", 5825 body: formData 5826 }) 5827 const result = await response.json(); 5828 if(result) { 5829 const url = result.url 5830 $("[data-properties=papan-logo]").val(url) 5831 } 5832 5833 reader.readAsDataURL(input.files[0]); 5834 } 5835 } 5836 5837 async function readURLAddress(input) { 5838 console.log(input, 'readURLAddress') 5839 if (input.files && input.files[0]) { 5840 let reader = new FileReader(); 5841 5842 reader.onload = function (e) { 5843 $('.photo-address').attr('src', e.target.result); 5844 $('.photo-address').show(); 5845 } 5846 5847 const type = 'image/jpeg' 5848 const name = input.files[0].name?.split('.')[0] 5849 5850 let formData = new FormData(); 5851 formData.append("file", input.files[0]); 5852 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 5853 method: "POST", 5854 body: formData 5855 }) 5856 const result = await response.json(); 5857 5858 reader.readAsDataURL(input.files[0]); 5859 5860 return result 5861 } 5862 } 5863 5864 5865 5866 5867 async function addToCartUang() { 5868 var productAddOnId1 = 42122101162199; 5869 var productAddOnId2 = 42122101194967; 5870 var product_id = 8144957800663 5871 const data = { 5872 items: [ 5873 { 5874 quantity: $("#Quantity-" + productAddOnId1).val(), 5875 id: productAddOnId1, 5876 "properties": { "Time": $("#properties-time").val() } 5877 }, 5878 { 5879 quantity: $("#Quantity-" + productAddOnId2).val(), 5880 id: productAddOnId2, 5881 "properties": { "Time": $("#properties-time").val() } 5882 } 5883 ] 5884 } 5885 await fetch(window.Shopify.routes.root + 'cart/add.js', { 5886 method: 'POST', 5887 headers: { 5888 'Content-Type': 'application/json' 5889 }, 5890 body: JSON.stringify(data) 5891 }) 5892 .then(response => { 5893 console.error('Sukses Buket Uang:', response); 5894 $(".form-flower").submit() 5895 }) 5896 .catch((error) => { 5897 console.error('Error Buket Uang:', error); 5898 $(".form-flower").submit() 5899 }); 5900 } 5901 5902 async function saveCard(){ 5903 let isCard = true 5904 const kartu_penerima = $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '' 5905 const kartu_pengirim = $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '' 5906 const kartu_ucapan = $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '' 5907 const foto = $("#properties-photo").val() 5908 const video = $("#properties-video").val() 5909 const data = JSON.stringify({ 5910 "id": qrID, 5911 "penerima": $("#properties-nama-penerima").val(), 5912 "kartu_penerima": kartu_penerima, 5913 "kartu_ucapan": kartu_ucapan, 5914 "kartu_pengirim": kartu_pengirim, 5915 "foto": foto, 5916 "video": video, 5917 "productId": "8144957800663", 5918 "order_name": "", 5919 "status": "Cart" 5920 }) 5921 5922 5923 } 5924 5925 async function additem(items){ 5926 try { 5927 let formData = items 5928 if(items?.length) { 5929 formData = { 5930 'items': items 5931 }; 5932 } 5933 5934 const add = await fetch(window.Shopify.routes.root + 'cart/add.js', { 5935 method: 'POST', 5936 headers: { 5937 'Content-Type': 'application/json', 5938 'X-Requested-With':'xmlhttprequest' /* XMLHttpRequest is ok too, it's case insensitive */ 5939 }, 5940 body: JSON.stringify(formData) 5941 }) 5942 5943 const data = await add.json(); 5944 return data 5945 } catch(err){ 5946 console.log('Error additem', err) 5947 } 5948 } 5949 5950 async function addons(){ 5951 let items = [] 5952 $(".addon-item").each(function(){ 5953 const p = $(this) 5954 const props = p.next(".propsAddonSpotify") 5955 const id = $(this).data("id") 5956 const quantity = $(this).data("qty") 5957 const propId = $("#properties-time").val() 5958 let properties = {} 5959 if(id === 46067682607319) { 5960 const link = props.find(".spotifyLinkAddon").text() 5961 const photo = props.find(".spotifyFotoAddon").text() 5962 const song = props.find(".spotifySongAddon").text() 5963 const artist = props.find(".spotifyArtistAddon").text() 5964 properties = { 5965 id: propId, 5966 "Spotify Link": link !== '' ? link : '-', 5967 "Spotify Photo": photo !== '' ? photo : '-', 5968 "Spotify Song": song !== '' ? song : '-', 5969 "Spotify Artist": artist !== '' ? artist : '-', 5970 type: 'addon' 5971 } 5972 } else { 5973 properties = { 5974 "id": propId, 5975 "type": "addon" 5976 } 5977 } 5978 items.push({ 5979 id, 5980 quantity, 5981 properties 5982 }) 5983 }) 5984 return items 5985 } 5986 5987 async function propItems() { 5988 let props = {} 5989 $("[data-properties]").each(function(e){
5990 let elementType = this.tagName; 5991 const k = $(this).data("properties") 5992 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') { 5993 const v = elementType === 'SELECT' ? $(this).find(":selected").val() : $(this).val(); 5994 if(v !== '') { 5995 props[k] = v?.replace(/[\s\n]/g, ''); 5996 } 5997 } 5998 }) 5999 return props 6000 } 6001 6002 async function showPopupCart(items){ 6003 if(productType !== '') { 6004 console.log("clarity event " + productType + ' completeOrder') 6005 window.clarity("event", `${productType} completeOrder`) 6006 // window.clarity("set", productType, `completeOrder - ${productDate}`) 6007 } 6008 $("#popupCart").show() 6009 6010 $(".propDeliveryCity").text($("#cities").val()) 6011 $(".propDeliveryDate").text($("#propDeliveryDate").val()) 6012 $(".propDeliveryTime").text($("#propDeliveryTime").val()) 6013 $(".propDeliveryName").text($("[data-properties=nama-penerima]").val()) 6014 $(".propDeliveryAddress").text($("[data-properties=alamat-penerima]").val()) 6015 $(".propDeliveryPhone").text($("[data-properties=telepon-penerima]").val()) 6016 $(".propDeliveryProv").text($("#province").val()) 6017 $(".propDeliveryZip").text($("#zip").val()) 6018 6019 6020 6021 const addons = [] 6022 if(items && items.length > 0) { 6023 for(let i = 1; i < items.length; i++) { 6024 const spotifyLink = items[i].properties['Spotify Link'] 6025 const spotifyPhoto = items[i].properties['Spotify Photo'] 6026 const spotifySong = items[i].properties['Spotify Song'] 6027 const spotifyArtist = items[i].properties['Spotify Artist'] 6028 const price = items[i].price / 100 6029 const props = spotifyLink ? `<div class="propsAddonCart row m-0"> 6030 <div class="col-12 col-lg-2"></div> 6031 <div class="col-12 col-lg-10"> 6032 <p> 6033 <span>spotify link</span> 6034 <span>${spotifyLink}</span> 6035 </p> 6036 <p> 6037 <span>Upload Photo</span> 6038 <span>${spotifyPhoto}</span> 6039 </p> 6040 <p> 6041 <span>song / playlist name</span> 6042 <span>${spotifySong}</span> 6043 </p> 6044 <p> 6045 <span>artist name</span> 6046 <span>${spotifyArtist}</span> 6047 </p> 6048 </div> 6049 </div>` : ''; 6050 addons.push(`<div class="row m-0"> 6051 <div class="imgAddonCart col-2"> 6052 <img 6053 width="43" 6054 src="${items[i].image}" 6055 alt="" 6056 > 6057 </div> 6058 <div class="imgAddonTitlePrice col-10 align-self-center"> 6059 <div class="row justify-content-between m-0"> 6060 <div class="col-12 col-lg-8"> 6061 <h5>${items[i].title}</h5> 6062 </div> 6063 <div class="col-12 col-lg-4 text-lg-right"> 6064 <span>${rupiah.format(price)}</span> 6065 </div> 6066 </div> 6067 </div> 6068 </div>${props}`) 6069 } 6070 } 6071 // console.log(addons) 6072 if(addons.length === 0) { 6073 $(".itemAddonCart").hide() 6074 return 6075 } 6076 $(".toggleAddonCart h4").text(`add-ons (${items.length - 1})`) 6077 $(".wrapperItemAddonCart").html(addons) 6078 } 6079 6080 const money = (money) => { 6081 return new Intl.NumberFormat('id-ID', 6082 { style: 'currency', currency: 'IDR', minimumFractionDigits: 0 } 6083 ).format(money); 6084 } 6085 6086 async function showNoteMoney() { 6087 let qty50k = $("[data-properties='Uang 50k']").val() 6088 let qty100k = $("[data-properties='Uang 100k']").val() 6089 const total50k = Number(qty50k) * 50000 6090 const total100k = Number(qty100k) * 100000 6091 const total_all = total50k + total100k 6092 $(".prop50k").html(`<span>${qty50k} Lembar: <strong class="pl-1">${money(total50k)}</strong></span>`) 6093 $(".prop100k").html(`<span>${qty100k} Lembar: <strong class="pl-1">${money(total100k)}</strong></span>`) 6094 $(".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://watersoftenerreviewspro.com/ampage/holy-water.html" target="_blank" style="text-decoration: underline;
6094 color: #8d3f2d">Customer Service</a> to confirm with proof of payment.</p>`) 6095 } 6096 6097 async function removeImage() { 6098 const data = JSON.stringify({ 6099 "ID": $("#properties-properties-qrId").val(), 6100 "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 6101 "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 6102 "Kartu Ucapan": $("[data-properties=ucapan]").val(), 6103 "Nama Penerima": $("#properties-nama-penerima").val(), 6104 "Order Number":"", 6105 "Status":"Product", 6106 "Foto": "", 6107 "Media": $("#properties-video").val(), 6108 "Image": "8144957800663" 6109 }) 6110 const remove = updateCard(data) 6111 if(remove) { 6112 $(this).hide() 6113 $("#properties-photo").val("-") 6114 $(".placeholder-image").show() 6115 $(".preview-image").attr("src", "") 6116 } 6117 } 6118 6119 async function removeVideo() { 6120 const data = JSON.stringify({ 6121 "ID": $("#properties-properties-qrId").val(), 6122 "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 6123 "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 6124 "Kartu Ucapan": $("[data-properties=ucapan]").val(), 6125 "Nama Penerima": $("#properties-nama-penerima").val(), 6126 "Order Number":"", 6127 "Status":"Product", 6128 "Foto": $("#properties-photo").val(), 6129 "Media": "", 6130 "Image": "8144957800663" 6131 }) 6132 const remove = updateCard(data) 6133 if(remove) { 6134 $("#properties-video").val("-") 6135 $(this).find("img").hide() 6136 $(this).hide() 6137 $(this).prev("p").text("Add video to make it more special (optional)") 6138 $("#label-input-video").show() 6139 $("#label-input-video span").text("Upload Video") 6140 $(".case-video-preview p span").remove() 6141 } 6142 } 6143 6144 async function loadItemOccasion(t, occasion) { 6145 const name = occasion?.replace('greeting-card-', '') 6146 $("#kartu-ucapan").val("") 6147 $("[data-occassion]").removeClass("selected") 6148 $("[data-properties=ucapan]").val("") 6149 $("#save-card").attr("disabled", true) 6150 t.addClass("selected") 6151 $("#show_note").attr("data-card-occassion", name) 6152 $.get(`https://outerbloom.com/collections/${occasion}/products.json`, function(data, status){ 6153 const products = data.products 6154 const html = [] 6155 for(let i = 0; i < products.length; i++) { 6156 const id = products[i].id 6157 const variantId = products[i].variants[0].id 6158 const img = products[i].images[0].src 6159 const title = products[i].title 6160 const price = products[i].variants[0].price 6161 const qty = products[i].variants[0].inventory_quantity 6162 const body = `<div class="item-card${price < 1 ? ' free' : ' nofree'}${i === 0 ? ' selected' : ''}" data-id=${id}> 6163 <label for="card-${variantId}"></label> 6164 <div class="card-image"> 6165 <img src="${img}" alt="${title}" width="" height="" /> 6166 </div> 6167 <div class="card-meta text-center"> 6168 <h5>${title}</h5> 6169 <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p> 6170 <input id="card-${variantId}" type="radio" name="id" value="${variantId}" data-price="${price}"> 6171 </div> 6172 </div>` 6173 html.push(body) 6174 } 6175 const withoutCard = `<div class="item-card item-without-card"> 6176 <label for="card-0"></label> 6177 <div class="card-image"> 6178 <img src="https://cdn.shopify.com/s/files/1/1589/6833/t/129/assets/without-card.png?v=1747632283" alt="Without card" width="" height="" /> 6179 </div> 6180 <div class="card-meta text-center"> 6181 <h5>
6181Send without a greeting card</h5> 6182 <input id="card-0" type="radio" name="id" value="" data-price=""> 6183 </div> 6184 </div>` 6185 $("#itemCards .items-card").html(html.length === 0 ? '<p>No Item available</p>' : html.join("")) 6186 }); 6187 } 6188 6189 $(document).ready(function(){ 6190 6191 // Observer to auto-trigger addon loading when addon section becomes visible 6192 const addonObserver = new MutationObserver(function(mutations) { 6193 mutations.forEach(function(mutation) { 6194 const target = $(mutation.target) 6195 if(target.hasClass('purchaseAddon') && mutation.type === 'attributes' && mutation.attributeName === 'class') { 6196 if(!target.hasClass('hide')) { 6197 // Addon section just became visible, ensure items are loaded 6198 setTimeout(function() { 6199 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6200 console.log("Auto-triggering addon load...") 6201 $("[data-addon=upsell-all]").trigger("click") 6202 } 6203 }, 150) 6204 } 6205 } 6206 }) 6207 }) 6208 6209 // Start observing addon section 6210 const addonSection = document.querySelector('.purchaseAddon') 6211 if(addonSection) { 6212 addonObserver.observe(addonSection, { 6213 attributes: true, 6214 attributeFilter: ['class'] 6215 }) 6216 } 6217 6218 $(".purchasePopup").delegate("#addtocart-card", "click", async function(){ 6219 6220 $(this).find("span").addClass("loading") 6221 let isValid = true 6222 $(".formAddressPurchase [required]").each(function(){ 6223 const t = $(this) 6224 const input = t.val() 6225 const p = t.parent() 6226 if(input === '') { 6227 p.addClass("error") 6228 isValid = false 6229 } 6230 }) 6231 6232 if(!isValid) { 6233 $(this).find("span").removeClass("loading") 6234 return 6235 } 6236 6237 let items = [] 6238 const mainProps = { 6239 6240 "Delivery Date": $("#propDeliveryDate").val(), 6241 "Delivery Time": $("#propDeliveryTime").val() !== '' ? $("#propDeliveryTime").val() : '-' , 6242 "Kota Pengiriman": $("#cities").val(), 6243 "Nama Penerima": $("[data-properties=nama-penerima]").val() !== '' ? $("[data-properties=nama-penerima]").val() : '-' , 6244 "Alamat Penerima": $("[data-properties=alamat-penerima]").val() !== '' ? $("[data-properties=alamat-penerima]").val() : '-' , 6245 "Kodepos": $("#zip").val() !== '' ? $("#zip").val() : '-' , 6246 "Telepon Penerima": $("[data-properties=telepon-penerima").val() !== '' ? $("[data-properties=telepon-penerima").val() : '-' , 6247 6248 6249 "Papan Nama Penerima": $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '-' , 6250 "Papan Ucapan": $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '-' , 6251 "Papan Nama Pengirim": $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '-' , 6252 "Papan Logo": $("[data-properties=papan-logo]").val() !== '' ? $("[data-properties=papan-logo]").val() : '-' , 6253 "Foto Alamat": $("[data-properties=foto-alamat]").val() !== '' ? $("[data-properties=foto-alamat]").val() : '-' , 6254 6255 6256 "Province": $("#province").val() !== '' ? $("#province").val() : '-' , 6257 "Country": $("#properties-kota-pengiriman-country").val() !== '' ? $("#properties-kota-pengiriman-country").val() : '-' , 6258 "Shipping": $("#properties-shipping").val() !== '' ? $("#properties-shipping").val() : '-' , 6259 "Company": $("[data-properties=company]").val() !== '' ? $("[data-properties=company]").val() : '-' , 6260 "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 6261 "type": 'product' 6262 } 6263 const props = await propItems() 6264 properties = {...mainProps, ...props }; 6265 const id = $("#productSelect").find('option:selected').val() 6266 console.log(id, 'main ID') 6267 const mainItem = { 6268 id: Number(id), 6269 quantity: 1, 6270 properties 6271 } 6272 items.push(mainItem) 6273 const cardId = $("#itemCards").find(".selected input").val() 6274 const cardItem = { 6275 id: Number(cardId), 6276 quantity: 1, 6277 properties: { "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', type: 'card' } 6278 } 6279 console.log(cardId, 'cardId') 6280 if(cardId) { 6281 items.push(cardItem) 6282 } 6283 const addon = await addons() 6284 if(addon) { 6285 for(let i = 0;
6285 i < addon.length; i++){ 6286 items.push({ 6287 id: addon[i].id, 6288 quantity: addon[i].quantity, 6289 properties: addon[i].properties 6290 }) 6291 } 6292 } 6293 const addItems = await additem(items) 6294 console.log(addItems.items, 'add items') 6295 if(addItems) { 6296 $(this).find("span").removeClass("loading") 6297 disablePopup() 6298 showPopupCart(addItems.items) 6299 6300 localStorage.setItem("items", JSON.stringify(addItems.items)) 6301 } 6302 }) 6303 6304 $("#addtocart-cart .btn").click(async function(){ 6305 const id = $("#productSelect").find('option:selected').val() 6306 const mainProps = { 6307 id: $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 6308 type: 'product' 6309 } 6310 const props = await propItems() 6311 const properties = { ...mainProps, ...props }; 6312 const items = { 6313 id: Number(id), 6314 quantity: 1, 6315 properties 6316 } 6317 const addItems = await additem(items) 6318 if(addItems) { 6319 showPopupCart(addItems.items) 6320 localStorage.setItem("items", JSON.stringify(addItems)) 6321 } 6322 }) 6323 6324 $(".formAddressPurchase [required]").change(function(){ 6325 const t = $(this) 6326 const p = t.parent() 6327 const v = t.val() 6328 if(v !== '') { 6329 p.removeClass("error") 6330 } 6331 }) 6332 6333 $("#save-card").click(async function(){ 6334 const parent = $(this).parents(".sectionPurchase") 6335 const next = parent.next(".sectionPurchase") 6336 $(this).find("span").addClass("loading") 6337 const card = await saveCard() 6338 console.log(card, 'ssaveCCC') 6339 if(card?.status === 200 || card?.status === 201) { 6340 $(".scanCard").removeClass("hide") 6341 $(this).find("span").removeClass("loading") 6342 parent.addClass("hide") 6343 next.removeClass("hide") 6344 if(next.hasClass("purchaseAddon")) { 6345 $("[data-addon=upsell-all]").click() 6346 console.log("clarity event addons") 6347 window.clarity("event", `${productType} add-ons`) 6348 // Ensure addon items are loaded when entering addon popup 6349 setTimeout(function() { 6350 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6351 $("[data-addon=upsell-all]").trigger("click") 6352 } 6353 }, 100) 6354 } 6355 if(next.hasClass("purchaseAddress")) { 6356 $("#zip").select2() 6357 } 6358 } 6359 }) 6360 6361 $("#skip-card").click(async function(){ 6362 $("#greetingCard [data-properties]").val("") 6363 $("#properties-photo").val("") 6364 $("#properties-video").val("") 6365 const parent = $(this).parents(".sectionPurchase") 6366 const next = parent.next(".sectionPurchase") 6367 parent.addClass("hide") 6368 next.removeClass("hide") 6369 // $("#itemCards").html("") 6370 removeImage() 6371 removeVideo() 6372 if(next.hasClass("purchaseAddon")) { 6373 $("[data-addon='upsell-all']").click() 6374 console.log("clarity event addons") 6375 window.clarity("event", `${productType} add-ons`) 6376 // Ensure addon items are loaded when entering addon popup 6377 setTimeout(function() { 6378 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6379 $("[data-addon='upsell-all']").trigger("click") 6380 } 6381 }, 100) 6382 } 6383 if(next.hasClass("purchaseAddress")) { 6384 $("#zip").select2() 6385 } 6386 }) 6387 6388 $("#msgCard").click(async function(){ 6389 $(this).parent().addClass("loading") 6390 let occasion = $(".selected[data-occassion]").data("occassion") 6391 occasion = occasion?.replace("greeting-card-", "") 6392 const { data } = await getFetch(`${host}/api/card/template/occasion?name=${occasion}`); 6393 const d = data?.data 6394 for(let i = 0; i < d.length; i++) { 6395 const num = Math.floor(Math.random() * (d.length - 1 + 1) + 1); 6396 const greeting = d[num]?.Greeting 6397 $(".greetingCard textarea").val(greeting) 6398 $(this).parent().removeClass("loading") 6399 } 6400 $("#save-card").attr("disabled", false) 6401 }) 6402 6403 $(".sectionPurchaseBoard .next-purchase-button").click(function(){ 6404 const parent = $(this).parents(".sectionPurchase") 6405 const next = parent.next(".sectionPurchase") 6406 parent.addClass("hide") 6407 next.removeClass("hide") 6408 }) 6409 6410 $("#editCard").click(function(){ 6411 $(".custom-card").show() 6412 $(".preview-card").hide() 6413 }) 6414 6415 $("#first_name, #last_name").change(function(){ 6416 const v = $(this).val() 6417 const first_name = $("#first_name").val() 6418 const last_name = $("#last_name").val() !== '' ? ' ' + $("#last_name").val() : '' 6419 $("[data-properties=nama-penerima]").val(first_name+last_name) 6420 }) 6421 6422 $("[data-occassion]").click(function(){ 6423 const t = $(this) 6424 const p = t.parents(".sectionPurchase") 6425 // $(".greetingCard").addClass("disabled") 6426 const occasion = t.data("occassion") 6427 loadItemOccasion(t, occasion) 6428 }) 6429 6430 $("#itemCards").delegate(".item-card:not(.item-without-card) label", "click", function(){ 6431 const id = $(this).parent(".item-card").data("id") 6432 const t = $(this).parent(".item-card") 6433 const target = t.find("input") 6434 const v = $('.item-card input[type="radio"]:checked').val(); 6435 $("#itemCards .item-card").removeClass("selected") 6436 t.addClass("selected") 6437 $("#itemCards .item-card").find("input").attr("name", "") 6438 if(target.length > 0) { 6439 target.attr("name", "id[]") 6440 $("#properties-card").val(id) 6441 $(".greetingCard").removeClass("disabled") 6442 $("#skip-card").attr("disabled", false) 6443 } else { 6444 $("#properties-card").val("") 6445 } 6446 }) 6447 6448 $("#itemCards").delegate(".item-without-card label", "click", function(){ 6449 const parent = $(this).parents(".sectionPurchase") 6450 const next = parent.next(".sectionPurchase") 6451 $(".greetingCard").addClass("disabled") 6452 parent.addClass("hide") 6453 next.removeClass("hide") 6454 $("[data-addon=upsell-all]").click() 6455 $("#zip").select2() 6456 }) 6457 6458 $("[data-properties=ucapan]").keyup(function(){ 6459 const v = $(this).val() 6460 const p = $(this).parents(".sectionPurchase") 6461 $(".purchaseAddress").find(".greetingCard textarea").val(v) 6462 if(v.length > 3) { 6463 p.find(".next-purchase-button").attr("disabled", false) 6464 } else { 6465 p.find(".next-purchase-button").attr("disabled", true) 6466 } 6467 }) 6468 6469 $("[data-properties=penerima]").keyup(function(){ 6470 const v = $(this).val() 6471 $(".purchaseAddress").find("[data-properties=penerima]").val(v) 6472 }) 6473 6474 $("[data-properties=pengirim]").keyup(function(){ 6475 const v = $(this).val() 6476 $(".purchaseAddress").find("[data-properties=pengirim]").val(v) 6477 }) 6478 6479 $(document).click(function(e){
6480 6481 if($(e.target).closest('.wrapperPopupCart').length != 0) return false; 6482 // $('#popupCart').fadeOut('slow'); 6483 // location.reload() 6484 }); 6485 6486 $(".toggleAddonCart").click(function(){ 6487 const p = $(this).parent(".itemAddonCart") 6488 p.toggleClass("open") 6489 }) 6490 6491 $(".btnViewCart").click(function(){ 6492 window.location.href = "https://outerbloom.com/cart"; 6493 }) 6494 6495 $(".btnViewCheckout").click(async function(){ 6496 $(this).find("span").addClass("loading") 6497 let zip = $("#zip").val() 6498 const first_name = $("#first_name").val() 6499 const last_name = $("#last_name").val() 6500 const company = $("#company").val() !== '' ? $("#company").val() : '' 6501 const address1 = $("#delivery_address").val() 6502 const address2 = zip && zip !== '' ? zip?.split(' - ')[1] : '' 6503 zip = zip && zip !== '' ? zip?.split(' - ')[0] : '' 6504 const phone = $("#recipient_number").val() 6505 const city = $("#cities").val() 6506 const province = $("#province").val() 6507 const country = 'Indonesia' 6508 const ver = Date.parse(new Date()) 6509 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}` 6510 6511 const clear = await fetch(`/cart/clear.js`, {method: 'POST'}) 6512 if(clear.status === 200) { 6513 const savedItem = window.localStorage.getItem("items"); 6514 const items = JSON.parse(savedItem) 6515 const addItems = await additem(items) 6516 console.log(addItems, 'new addItems') 6517 if(addItems) { 6518 window.location.href = `https://outerbloom.com/checkout?${params}`; 6519 } 6520 } 6521 }) 6522 6523 $(".btnContinueShopping").click(function(){ 6524 window.location.href = "https://outerbloom.com/"; 6525 }) 6526 6527 if (isIOS) { 6528 $(".empty-state-card").click(function(){ 6529 $("#input-foto").trigger("click") 6530 }) 6531 $(".btn-upload-image").click(function(){ 6532 $("#input-foto").trigger("click") 6533 }) 6534 $("[for=input-video]").click(function(){ 6535 $("#input-video").trigger("click") 6536 }) 6537 $(".btn-upload-papan").click(function(){ 6538 $("#logoPapan").trigger("click") 6539 }) 6540 } 6541 6542 $("[data-properties]").each(function(){ 6543 const select = $(this).parents(".form-group").find("select") 6544 $(this).change(function(){ 6545 const name = $(this).data("properties") 6546 const v = $(this).val() 6547 if (name == 'telepon-penerima') { 6548 let phone = v.replace(/[^0-9]/g, '') 6549 $(this).val(phone); 6550 $("#properties-telepon-penerima").val(phone) 6551 $('.iti__search-input').val('-') 6552 } else { 6553 $("#properties-" + name).val(v) 6554 } 6555 }) 6556 select.on("change", function(){ 6557 const name = $(this).data("properties") 6558 const v = $(this).val() 6559 $("#properties-" + name).val(v) 6560 }) 6561 }) 6562 6563 $("#show_note").click(function(){ 6564 nameq = $("#properties-nama-penerima").val() 6565 dear = $("#properties-kartu-nama-penerima").val() 6566 card = $("[data-properties=ucapan]").val() 6567 sender = $("#properties-kartu-nama-pengirim").val() 6568 photo = $("#properties-photo").val() 6569 video = $("#properties-video").val() 6570 updateCard(nameq, dear, card, sender, photo, video, status) 6571 }) 6572 6573 $(".remove-image").click(function(e){ 6574 e.preventDefault() 6575 $(this).find("img").show() 6576 removeImage() 6577 }) 6578 6579 $(".remove-media").click(function(e){ 6580 e.preventDefault() 6581 $(this).find("img").show() 6582 removeVideo() 6583 }) 6584 6585 6586 6587 $("[data-delivery_method]").click(function(e){
6588 e.preventDefault() 6589 const t = $(this) 6590 const data = t.data("delivery_method") 6591 $("[data-delivery_method]").removeClass("selected") 6592 t.addClass("selected") 6593 $("#cities").val("") 6594 $("#properties-delivery-date").val("-") 6595 $("#deliveryDate button").removeClass("selected") 6596 $("#full-date").val("Full Calendar â") 6597 $("#propDeliveryDate").val("") 6598 const step3 = $("#step-3") 6599 if(data.match('PickUp')) { 6600 $(".selfpickup-point").show() 6601 step3.find("[data-finished=false]").hide() 6602 $("#panel-4").hide() 6603 step3.find("[data-finished=true]").show() 6604 $("#cities").attr("required", false) 6605 $("#form-group-city").hide() 6606 $("#row-delivery-time").hide() 6607 $("#propDeliveryTime, #properties-delivery-time, #properties-nama-penerima, #properties-alamat-penerima, #properties-kodepos, #properties-kodepos, #properties-telepon-penerima").val("-") 6608 $("#propDeliveryTime").attr("required", false) 6609 // $("#deliveryDate").find("button:first-child").addClass("stop") 6610 $(".form-selfpickup").show() 6611 $(".form-delivery").hide() 6612 $(".form-delivery").find("input, textarea, select").val("") 6613 $(".form-delivery").find("input, textarea, select").attr("required", false) 6614 $("#properties-shipping").val("0") 6615 $("#noteDeliveryDate").hide() 6616 $(".form-delivery .form-control").attr("required", false) 6617 $("#stepNav4").hide() 6618 6619 $("#deliveryDate").find("button:nth-child(1)").addClass("stop") 6620 6621 6622 6623 if(timeOfDay >= 16.01){ 6624 $("#deliveryDate").find("button:nth-child(2)").addClass("stop") 6625 } 6626 } else { 6627 6628 6629 $("#deliveryDate").find("button:nth-child(1)").removeClass("stop") 6630 step3.find("[data-finished=false]").show() 6631 $("#panel-4").show() 6632 step3.find("[data-finished=true]").hide() 6633 $("#cities").attr("required", true) 6634 $(".selfpickup-point").hide() 6635 $("#form-group-city").show() 6636 $("#cities").val('').trigger('change'); 6637 $("#properties-kota-pengiriman").val("-") 6638 6639 $("#row-delivery-date, #row-delivery-time").show() 6640 $("#propDeliveryDate, #propDeliveryTime").attr("required", true) 6641 $("#deliveryDate").find("button").removeClass("stop") 6642 $(".form-selfpickup").hide() 6643 $(".form-delivery").show() 6644 $(".form-delivery").find("input, textarea, select").attr("required", true)
6645 $(".form-delivery [data-properties]").attr("readonly", false) 6646 $("#properties-kodepos").val("-") 6647 $("#properties-alamat-penerima").val("-") 6648 $(".form-delivery .form-control").attr("required", true) 6649 $(this).parents(".setup-content").attr("id", "step-1") 6650 6651 $("#stepNav4").show() 6652 } 6653 }) 6654 6655 $("[name=selfpickup]").click(function(){ 6656 const p = $(this).parents(".row-pickup") 6657 const pickupCity = $("input[name='selfpickup']:checked").val(); 6658 const pickupAddress = $("input[name='selfpickup']:checked").data("address"); 6659 const pickupZip = $("input[name='selfpickup']:checked").data("zip"); 6660 6661 $(".row-pickup").removeClass("selected") 6662 p.addClass("selected") 6663 6664 $("#properties-kota-pengiriman").val(pickupCity) 6665 $("#province").val("Jakarta") 6666 $("#properties-alamat-penerima").val(pickupAddress) 6667 $("#properties-kodepos").val(pickupZip) 6668 }) 6669 6670 $("#cities").change(function(e){ 6671 e.preventDefault() 6672 $(this).parent(".row").find("p.error").remove() 6673 $("#full-date").val("Full Calendar") 6674 $("#deliveryDate, #deliveryDateFull label ").show() 6675 $("#deliveryDateFull").removeClass("filled") 6676 $(".btnChangeDeliveryDate").addClass("hide") 6677 $("#full-date").prop('disabled', false); 6678 $("#stepNav2, #stepNav3, #stepNav4").removeClass("btn-success") 6679 $("#stepNav2, #stepNav3, #stepNav4").find("a").attr("disabled", true) 6680 const step3 = $("#step-3") 6681 $("#cityNote").remove() 6682 $("#noteDeliveryDate").hide() 6683 $("#noteDeliveryDate").empty() 6684 let v = $(this).val() 6685 let v2 = $('option:selected', this).attr('data-city'); 6686 let v3 = $('option:selected', this).attr('data-province'); 6687 let price = $('option:selected', this).attr('data-price'); 6688 $("#country").val(v) 6689 $("#properties-kota-pengiriman").val(v) 6690 $("#properties-shipping").val(price) 6691 $("#deliveryDate button, #deliveryTime button, .calendarseasonal .button").removeClass("selected") 6692 $("#properties-delivery-date, #properties-delivery-time").val("-") 6693 $("#propDeliveryDate, #propDeliveryTime").val("") 6694 let note = $('option:selected', this).attr('data-note'); 6695 if(v === 'Kota Lainnya') { 6696 $("#noteDeliveryDate").show() 6697 $("#noteDeliveryDate").text("Order akan segera dikirim. Estimasi tanggal diterima akan disesuaikan dengan waktu pengiriman oleh pihak ekspedisi ke lokasi Anda.") 6698 $("#zip").attr("required", false) 6699 $("#zip").hide() 6700 $("#propDeliveryDate, #propDeliveryTime").attr("required", false) 6701 $("#propDeliveryDate, #properties-delivery-date, #propDeliveryTime, #properties-delivery-time").val("-") 6702 $("#row-delivery-date, #row-delivery-time").hide() 6703 $("#properties-shipping").val("") 6704 // $(this).parents(".setup-content").attr("id", "step-2") 6705 6706 } else { 6707 $("#noteDeliveryDate").hide() 6708 $("#zip").attr("required", true) 6709 $("#zip").show() 6710 $("#row-delivery-date, #row-delivery-time").show() 6711 $("#propDeliveryDate, #propDeliveryTime").attr("required", true) 6712 $("#deliveryDate").find("button").removeClass("stop") 6713 // $(this).parents(".setup-content").attr("id", "step-1") 6714 6715 } 6716 6717 6718 6719 // if(v !== 'Jakarta') { 6720 // $("[data-type=upsell]").hide() 6721 // } else { 6722 // $("[data-type=upsell]").show() 6723 // } 6724 // $('.collection-addons')[0].swiper.update(); 6725 6726 6727 getProvince(v) 6728 $("#zip").html(`<option value="">Choose Postal Code</option>`) 6729 renderZip(v, v2, v3) 6730 6731 disabledSameDay() 6732 6733 6734 if(v !== 'Jakarta' && v !== 'Depok' && v !== 'Bekasi' && v !== 'Tangerang') { 6735 6736 $("#cardOccasion, #navAddon, .collection-addons").hide() 6737 6738 $("[data-addon=giftcard]").show() 6739 $("[data-addon=giftcard]").click() 6740 $("#itemAddons").show() 6741 $("#flower-step").addClass("nonjadetabek") 6742 } else { 6743 $("#cardOccasion, #navAddon, .collection-addons").show() 6744 $("[data-addon=all]").click() 6745 $("#flower-step").removeClass("nonjadetabek") 6746 } 6747 6748 if(v !== '') { 6749 $("#personalizeBtn .btn").attr("disabled", false) 6750 } else { 6751 $("#personalizeBtn .btn").attr("disabled", true) 6752 } 6753 6754 }) 6755 6756 $("#zip").change(function(e){
6757 let v = $(this).val() 6758 var city = $("#cities").find('option:selected'); 6759 $("#properties-kodepos").val(v) 6760 if(city === 'Kota Lainnya') { 6761 $(this).attr("required", true) 6762 $("#recipient-address").val("") 6763 } 6764 }) 6765 6766 6767 var minDate = +7 6768 6769 6770 6771 $("#full-date").datepicker({ 6772 minDate, 6773 dateFormat: 'Mdd_yy', //Nop22_2021, 6774 6775 beforeShowDay: disabledays, 6776 6777 onSelect: function (date) { 6778 $("#deliveryDate, #deliveryDateFull label ").hide() 6779 $("#deliveryDateFull").addClass("filled") 6780 $(".btnChangeDeliveryDate").removeClass("hide") 6781 $("#full-date").prop('disabled', true); 6782 $('#propDeliveryDate, #properties-delivery-date').val('Kirim_'+date); 6783 $(".date-full").addClass("selected") 6784 $(".date-single, .calendar-group").removeClass("selected") 6785 $("#propDeliveryTime").val('') 6786 $("#properties-delivery-time").val('-') 6787 $(".time-single").removeClass("selected") 6788 6789 6790 } 6791 }); 6792 6793 $(".btnChangeDeliveryDate").click(function(){ 6794 $("#deliveryDate, #deliveryDateFull label ").show() 6795 $("#deliveryDateFull").removeClass("filled") 6796 $(".btnChangeDeliveryDate").addClass("hide") 6797 $("#full-date").prop('disabled', false); 6798 }) 6799 6800 $("#deliveryDate").delegate(".calendarbutton:not(.date-full)", "click", function(e){ 6801 e.preventDefault() 6802 $(this).parents("#row-delivery-date").find("p.error").remove() 6803 const fulldate = $(this).data("fulldate") 6804 const day = $(this).data("day") 6805 const date = $(this).data("date")
6806 const month = $(this).data("month") 6807 const year = $(this).data("year") 6808 const off_pagi = $(this).data("offpagi") 6809 const off_siang = $(this).data("offsiang") 6810 const off_Malam = $(this).data("offMalam") 6811 $(".calendarbutton").removeClass("selected") 6812 $(this).addClass("selected") 6813 $("#propDeliveryDate, #properties-delivery-date").val(`Kirim_${month}${date}_${year}`) 6814 $("#propDeliveryTime").val('') 6815 $("#properties-delivery-time").val('-') 6816 $(".calendarbutton2").removeClass("selected") 6817 $("#full-date").val("Full Calendar") 6818 6819 6820 if(off_pagi && timeOfDay > off_pagi) { 6821 $("[data-time=Morning]").attr("disabled", true) 6822 } else { 6823 $("[data-time=Morning]").attr("disabled", false) 6824 } 6825 if(off_siang && timeOfDay > off_siang) { 6826 $("[data-time=Afternoon]").attr("disabled", true) 6827 } else { 6828 $("[data-time=Afternoon]").attr("disabled", false) 6829 } 6830 6831 6832 6833 }) 6834 6835 if(today === 14 && timeOfDay > 17.00) { 6836 $("#deliveryDate button:first-child").attr("disabled", true) 6837 } 6838 6839 $("#deliveryTime").delegate(".calendarbutton2", "click", function(e){ 6840 e.preventDefault() 6841 const time = $(this).data("time") 6842 const date = $("#propDeliveryDate").val() 6843 if(date == '') { 6844 return alert('Silakan pilih tanggal terlebih dahulu') 6845 } 6846 $(".calendarbutton2").removeClass("selected") 6847 $(this).addClass("selected") 6848 $("#propDeliveryTime, #properties-delivery-time").val(`KirimJam_${date.replace('Kirim_','')}_${time}`) 6849 }) 6850 6851 $('textarea.has-limit, input.has-limit').keyup(function () { 6852 max = this.getAttribute("maxlength"); 6853 let len = $(this).val().length; 6854 let limit = $(this).siblings(".limit"); 6855 if (len > max) { 6856 alert('you have reached the limit'); 6857 } else { 6858 limit.text(`${len}/${max}`); 6859 } 6860 }); 6861 6862 $("#button-action-step .btn").click(function(){ 6863 $(this).find("span").text("Processing..."); 6864 }); 6865 6866 $(".finishBtn").on('click', function() { 6867 $(this).addClass("is-adding"); 6868 // $(this).click(); 6869 }); 6870 6871 $('.setup-panel .nav-item a.btn-success').trigger('click'); 6872 6873 $("#button-action .btn").click(function(){ 6874 $("#flower-step").addClass("block"); 6875 $("#button-action").hide(); 6876 }); 6877 6878 $(".close-how-order").click(function(){ 6879 $("#flower-step").removeClass("block"); 6880 $("#button-action").show(); 6881 }); 6882 6883 $("#input-foto, #input-video").change(function(e){ 6884 readURL(this); 6885 }); 6886 6887 $("#logoPapan").change(function(){ 6888 readURLPapan(this); 6889 }); 6890 6891 $("#address-upload").change(async function(){ 6892 const upload_address = await readURLAddress(this) 6893 if(upload_address) { 6894 const url = upload_address.url 6895 $(".props-address-upload").val(url) 6896 $(".form-address").addClass("address-uploaded") 6897 $(".form-address-upload").addClass("uploaded") 6898 6899 $(this).parents(".form-group").siblings(".form-group").find("[required]").attr("required", false) 6900 } 6901 }) 6902 6903 $(".address-manualy").click(function(){ 6904 $(".form-address-upload").removeClass("uploaded"); 6905 $(".photo-address").hide(); 6906 $(".form-address").removeClass("address-uploaded") 6907 $("#formAddressPurchase").find(".form-control").attr("required", true) 6908 }); 6909 6910 $(".case-video-preview").delegate(".replace-video", "click", function(){ 6911 $("#input-video").trigger("click") 6912 }) 6913 6914 $('.date-single').click(function(e) { 6915 e.preventDefault(); 6916 $('.date-single').removeClass('selected'); 6917 $('#full-date').removeClass('selected'); 6918 $(this).addClass('selected'); 6919 $('#full-date').html('Full' + '<br/>' + 'Calendar'); 6920 }); 6921 $('#full-date').click(function(e){ 6922 e.preventDefault(); 6923 $('.date-single').removeClass('selected'); 6924 $(this).addClass('selected'); 6925 }); 6926 6927 // $("tr").each(function(){ 6928 // if($(this).text().match('SKU')) { 6929 // $(".sku-product").html($(this).parents("table").html()) 6930 // } 6931 // }) 6932 6933 $("#product-image").scroll(function(){ 6934 $(".desc-add").each(function(){ 6935 const img = $(this).find("img") 6936 const src = img.data("src") 6937 img.attr("src", src) 6938 }) 6939 }) 6940 6941 $(".product-fixed").hide() 6942 6943 let target = $("#personalizeBtn") 6944 6945 6946 $(".product-meta").scroll(function() { 6947 if ($(window).scrollTop() >= target.offset().top ) { 6948 $(".product-fixed").addClass("show") 6949 } else { 6950 $(".product-fixed").removeClass("show") 6951 } 6952 }); 6953 6954 $(window).scroll(function() { 6955 if ($(window).scrollTop() >= target.offset().top ) { 6956 $(".product-fixed").addClass("show") 6957 } else { 6958 $(".product-fixed").removeClass("show") 6959 } 6960 }); 6961 }); 6962 </script>
6962 6963 6964
6964<script> 6965 // 6966 </script>
6966 6967 6968
6968<script> 6969 $(document).ready(function(){ 6970 $('table tr td').each(function(){ 6971 var texto = $(this).text(); 6972 var nextto = $(this).next("td"); 6973 var sku = $("#data-sku").val() 6974 if(texto == 'SKU'){ 6975 nextto.text(sku) 6976 } 6977 }); 6978 6979 $(".stamped-summary-actions-newquestion").text("Tulis Pertanyaan"); 6980 $(".stamped-summary-actions-newreview").text("Tulis Review"); 6981 $("#tab-questions").text("Pertanyaan"); 6982 6983 $(".freeship .icon").click(function(){ 6984 $(".fs-content").slideToggle(); 6985 $(this).parents(".freeship").toggleClass("expand"); 6986 }); 6987 6988 var $easyzoom = $('.easyzoom').easyZoom(); 6989 // Setup thumbnails example 6990 var api1 = $easyzoom.filter('.easyzoom--with-thumbnails').data('easyZoom'); 6991 $('.thumbnails').on('click', 'a', function(e) { 6992 var $this = $(this); 6993 e.preventDefault(); 6994 // Use EasyZoom's `swap` method 6995 api1.swap($this.data('standard'), $this.attr('href')); 6996 }); 6997 6998 $('#playerID').click(function(){ 6999 var videoURL = $('#VdoID').attr('src'), 7000 dataplay = $('#VdoID').attr('data-play'); 7001 7002 //for check autoplay 7003 //if not set autoplay=1 7004 if(dataplay == 0 ){ 7005 $('#VdoID').attr('src',videoURL+'?autoplay=1'); 7006 $('#VdoID').attr('data-play',1); 7007 } 7008 else{ 7009 var videoURL = $('#VdoID').attr('src'); 7010 videoURL = videoURL.replace("?autoplay=1", ""); 7011 $('#VdoID').prop('src',''); 7012 $('#VdoID').prop('src',videoURL); 7013 7014 $('#VdoID').attr('data-play',0); 7015 } 7016 7017 }); 7018 7019 $(".product-photo-thumb-video").click(function(e){ 7020 e.preventDefault(); 7021 7022 var newEmbed = $(this).attr('href'); 7023 $("#featured-image-product").addClass("img-video"); 7024 $("#ProductPhotoImg").hide(); 7025 $("#featured-image-product .video").show(); 7026 $("#featured-image-product iframe").attr('src', newEmbed); 7027 $("#VdoID")[0].src += "&autoplay=1"; 7028 }); 7029 $(".product-single__thumbnail").click(function(evt){ 7030 evt.preventDefault(); 7031 $("#featured-image-product").removeClass("img-video"); 7032 $("#ProductPhotoImg").show(); 7033 $("#featured-image-product .video").hide(); 7034 $("#featured-image-product iframe").attr('src', ''); 7035 }); 7036 7037 if($('#product-meta .short-desc > div').length >= 1){ 7038 //console.log('div detected') 7039 var replacer = $('#product-meta .short-desc > div').contents(); 7040 $('#product-meta .short-desc > div').replaceWith(replacer); 7041 7042 var cAssured = $('.c-assured').detach(); 7043 cAssured.insertAfter('.meta-sds .stock-info'); 7044 } 7045 7046 7047 7048 $(".heading-toggle").click(function(){ 7049 $(this).parent().toggleClass("open") 7050 7051 }); 7052 }); 7053 </script>
7053 7054 7055 7056
7056<script type="application/json" id="ProductJson-Product"> 7057 7058 {"id":8144957800663,"title":"HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eHOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya."} 7059 </script>
7059 7060 7061
7061<script type="application/json" id="VariantJson-Product"> 7062 [ 7063 7064 { 7065 "incoming": false, 7066 "next_incoming_date": null 7067 } 7068 7069 ] 7070 </script>
7070 7071 7072 7073 7074 7075 </div> 7076 7077 7078
7078<script src="//outerbloom.com/cdn/shopifycloud/storefront/assets/themes_support/option_selection-b017cd28.js" type="text/javascript"></script>
7078 7079 <style> 7080 .stamped-review-header-title, 7081 .stamped-review-header .author, 7082 .stamped-review-content-body, 7083 .stamped-sort-select, 7084 .stamped-review-header .verified-badge[data-type=buyer]:after, 7085 .stamped-review-header-byline, 7086 .stamped-review-reply-body {font-size: 14px!important;font-family: 'Barlow',sans-serif!important;} 7087 .stamped-review {margin-bottom: 0;} 7088 .stamped-review-body {padding-left: 65px;} 7089 .stamped-review:first-child {padding-top: 25px;} 7090 .stamped-review-content {clear: none;} 7091 .stamped-review-reply {margin: 15px 0 0 65px;background: #f2f2f2;border-left: none;} 7092 .stamped-review-reply-body {padding-left: 65px;} 7093 .stamped-review-header .author {text-transform: capitalize;} 7094 .stamped-questions .stamped-review-content {padding-left: 65px;} 7095 7096 .stamped-pagination {margin: 20px 0 0;} 7097 .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;} 7098 .stamped-pagination li a {color: #121212;padding: 13px 18px;vertical-align: middle;display: block;} 7099 .stamped-pagination li.active a {background-color: #ddd;font-weight: 400;} 7100 .stamped-pagination li:hover a {background: #ddd;} 7101 .stamped-pagination .next {border-right: 1px solid #ccc;} 7102 .stamped-pagination li:first-child {border-top-left-radius: 5px;border-bottom-left-radius: 5px;} 7103 .stamped-pagination li:last-child {border-top-right-radius: 5px;border-bottom-right-radius: 5px;} 7104 7105 #stamped-pagination-question span.page {display: inline-block;border: 1px solid #ccc;width: 47px;} 7106 #stamped-pagination-question span {font-size: 14px;} 7107 #stamped-pagination-question .page.active {padding: 12px;font-weight: 400;background: #ddd;} 7108 #stamped-pagination-question a, #stamped-pagination-question .page.active {color: #121212;padding: 13px 18px;vertical-align: middle;display: inline-block;} 7109 .stamped-pagination-deco {color: #121212;padding: 13px 18px;width: 47px;vertical-align: middle;display: inline-block;border: 1px solid #ccc;padding: 12px;} 7110 .stamped-pagination-prev, .stamped-pagination-next {position: inherit;} 7111 .stamped-pagination-prev a, .stamped-pagination-next a {width: auto!important;border: 1px solid #ccc;} 7112 7113 @media (max-width: 480px){ 7114 .stamped-review-reply {margin-left: 0!important;} 7115 select.stamped-sort-select {font-size: 13px!important;} 7116 } 7117 7118 #product-reviews .stamped-summary-ratings, #product-reviews .stamped-summary-actions, .stamped-content { 7119 display: block !important; 7120 } 7121 </style> 7122
7122<script> 7123 var selectCallback = function(variant, selector) { 7124 timber.productPage({ 7125 money_format: "Rp {{amount_no_decimals}}", 7126 variant: variant, 7127 selector: selector 7128 }); 7129 }; 7130 7131 jQuery(function($) { 7132 new Shopify.OptionSelectors('productSelect', { 7133 product: 7134 7135 7136 7137 7138 7139 {"id":8144957800663,"title":"HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eHOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya."}, 7140 onVariantSelected: selectCallback, 7141 enableHistoryState: true 7142 }); 7143 7144 // Add label if only one product option and it isn't 'Title'. Could be 'Size'. 7145 7146 7147 // Hide selectors if we only have 1 variant and its title contains 'Default'. 7148 7149 $('.selector-wrapper').hide(); 7150 7151 }); 7152 </script>
7152 7153 7154 7155 7156
7156<script type="application/ld+json"> 7157 { 7158 "@context": "http://schema.org", 7159 "@type": "Product", 7160 "offers": { 7161 "@type": "Offer", 7162 "availability":"https://schema.org/InStock", 7163 "price": 835000, 7164 "priceValidUntil": "05-10-2025", 7165 "priceCurrency": "IDR", 7166 "url": "https://watersoftenerreviewspro.com/" 7167 }, 7168 "brand": { 7169 "@type": "Brand", 7170 "name": "Outerbloom Florist" 7171 }, 7172 "sku": "8144957800663", 7173 "gtin13": "Jawa", 7174 "name": "HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia", 7175 "description": "HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya.", 7176 "category": "HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya.", 7177 "url": "https://watersoftenerreviewspro.com/", 7178 "image": { 7179 "@type": "ImageObject", 7180 "url": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426", 7181 "image": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426", 7182 "name": "HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia", 7183 "width": 1024, 7184 "height": 1024 7185 } 7186 } 7187 </script>
7187 7188 7189 7190 7191 7192 7193
7193<script id="bss-ltap-hide-price" type="text/javascript" > 7194 !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)}))}
7194)),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)}
7194)),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()}
7194if("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)}
7194if(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");
7194c&&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
7194-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");
7194i&&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
7194--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
7194opify.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");
7194e.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=
7194o.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");
7194if(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();
7194let 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()}]); 7195 </script>
7195 7196 7197 </main> 7198 7199 <div id="shopify-section-newsletter" class="shopify-section"><br> 7200 <style> 7201 #shopify-section-newsletter { 7202 background: url('https://image.banker88.live/uploads/688366a5f33400a778ad05b5.webp'); 7203 background-attachment: fixed; 7204 margin-bottom: 0; 7205 } 7206 input:-webkit-autofill, 7207 input:-webkit-autofill:hover, 7208 input:-webkit-autofill:active, 7209 input:-webkit-autofill:focus { 7210 -webkit-box-shadow:0 0 0 50px white inset; 7211 -webkit-text-fill-color: #ffffff; 7212 } 7213 .section-newsletter { 7214 max-width: 800px; 7215 margin: auto; 7216 padding: 50px 0; 7217 } 7218 .section-newsletter h2 { 7219 font-weight: 700; 7220 font-size: 24px; 7221 } 7222 .section-newsletter input[type="email"] { 7223 width: 100%; 7224 text-align: center; 7225 border: none; 7226 border-bottom: 1px solid #ffffff; 7227 font-size: 16px; 7228 color: #757575; 7229 background-color: #eeeeee; 7230 } 7231 .section-newsletter .row label { 7232 font-size: 14px; 7233 cursor: pointer; 7234 } 7235 .section-newsletter .radio-inline input { 7236 width: auto; 7237 } 7238 .section-newsletter .btn { 7239 width: 130px; 7240 border: 1px solid #ffffff; 7241 box-shadow: none; 7242 font-size: 16px; 7243 font-weight: 500; 7244 text-transform: uppercase; 7245 } 7246 .section-newsletter form { 7247 margin: 30px 0 60px; 7248 } 7249 .section-newsletter input[type="radio"] { 7250 position: absolute; 7251 width: 1px; 7252 height: 1px; 7253 } 7254 .section-newsletter [type="radio"]:checked + label, .section-newsletter [type="radio"]:not(:checked) + label { 7255 position: relative; 7256 padding-left: 28px; 7257 cursor: pointer; 7258 line-height: 20px; 7259 display: inline-block; 7260 color: #666; 7261 } 7262 .section-newsletter [type="radio"]:checked + label:before, .section-newsletter [type="radio"]:not(:checked) + label:before { 7263 content: ''; 7264 position: absolute; 7265 left: 0; 7266 top: 0; 7267 width: 18px; 7268 height: 18px; 7269 border: 1px solid #ddd; 7270 border-radius: 100%; 7271 background: #fff; 7272 } 7273 .section-newsletter [type="radio"]:checked + label:after, .section-newsletter [type="radio"]:not(:checked) + label:after { 7274 content: ''; 7275 width: 12px; 7276 height: 12px; 7277 background: #ffffff; 7278 position: absolute; 7279 top: 3px; 7280 left: 3px; 7281 border-radius: 100%; 7282 -webkit-transition: all 0.2s ease; 7283 transition: all 0.2s ease; 7284 } 7285 .section-newsletter [type="radio"]:not(:checked) + label:after { 7286 opacity: 0; 7287 -webkit-transform: scale(0); 7288 transform: scale(0); 7289 } 7290 .opt-newsletter {display:none;} 7291 .footer-newsletter p, .footer-newsletter p a { 7292 color: #757575; 7293 } 7294 @media (max-width:991px){ 7295 .section-newsletter h2 { 7296 font-size: 32px; 7297 } 7298 .section-newsletter input { 7299 width: 300px; 7300 font-size: 14px; 7301 } 7302 .section-newsletter { 7303 padding: 50px 20px; 7304 } 7305 } 7306 @media (max-width: 480px){ 7307 .section-newsletter input[type="email"] {font-size: 16px;} 7308 } 7309 </style> 7310 <style> 7311 .icon-img-footer { 7312 width: 80px; 7313 padding: 0px 5px; 7314 } 7315 @media (min-width: 768px) { 7316 .icon-img-footer { 7317 width: 120px; 7318 } 7319 } 7320 @media (min-width: 992px) { 7321 .icon-img-footer { 7322 width: 120px; 7323 } 7324 } 7325 7326 .button-login-daftar { 7327 display: grid; 7328 grid-template-columns: repeat(2, 1fr); 7329 font-weight: 700; 7330 } 7331 .button-login-daftar a { 7332 text-align: center; 7333 } 7334 .login, 7335 .register { 7336 color: #fff000; 7337 padding: 15px 10px; 7338 font-size: 23px; 7339 } 7340 .login, 7341 .login-button { 7342 background: linear-gradient(to bottom,#000000 0,#000000 100%); 7343 border: 2px solid #fff000; 7344 } 7345 .register, 7346 .register-button { 7347 background: linear-gradient(to bottom,#000000 0,#000000 100%); 7348 border: 2px solid #fff000; 7349 } 7350 7351 7352 7353 </style> 7354 7355 <!-- wp:html --> 7356
7356<script> 7357 document.addEventListener('DOMContentLoaded', 7358 function(){const faqItems=document.querySelectorAll('.faq-item'); 7359 faqItems.forEach(item=>{const question=item.querySelector('.faq-question'); 7360 question.addEventListener('click', 7361 ()=>{const isActive=item.classList.contains('active'); 7362 faqItems.forEach(otherItem=>{otherItem.classList.remove('active')}); 7363 if(!isActive){item.classList.add('active')}})})}); 7364 </script>
7364 7365 7366 7367 <div class="page__overlay" data-view="offCanvasNavToggle" data-off-canvas="close" bis_skin_checked="1"> 7368 </div> 7369 <div class="faq-section"> 7370<h2>FAQ</h2> 7371<div class="faq-container"> 7372 <div class="faq-item"> 7373 <button class="faq-question">1. Apa itu HOLYTOGEL dan keunggulannya sebagai server game Indonesia?<span></span></button> 7374 <div class="faq-answer"><p>HOLYTOGEL adalah server game online terpercaya di Indonesia yang menawarkan performa stabil, sistem keamanan tinggi, serta akses cepat tanpa kendala untuk pengalaman bermain terbaik.</p></div> 7375 </div> 7376 <div class="faq-item"> 7377 <button class="faq-question">2. Bagaimana cara mendapatkan tips gacor dan trik bermain di HOLYTOGEL?<span></span></button> 7378 <div class="faq-answer"><p>Pemain dapat mengakses bocoran tips gacor, pola bermain, dan strategi winrate tinggi yang di-update berkala langsung melalui portal resmi HOLYTOGEL.</p></div> 7379 </div> 7380 <div class="faq-item"> 7381 <button class="faq-question">3. Seberapa sering informasi dan update game diperbarui di HOLYTOGEL?<span></span></button> 7382 <div class="faq-answer"><p>Informasi pasaran, RTP live, event, dan bocoran game di HOLYTOGEL diperbarui secara real-time setiap hari agar pemain selalu mendapatkan data paling akurat.</p></div> 7383 </div> 7384 <div class="faq-item"> 7385 <button class="faq-question">4. Di mana saya bisa mengakses layanan dari server HOLYTOGEL?<span></span></button> 7386 <div class="faq-answer"><p>Platform HOLYTOGEL dapat diakses secara online melalui berbagai perangkat seperti smartphone (Android/iOS) dan komputer dengan koneksi internet yang stabil.</p></div> 7387 </div> 7388 <div class="faq-item"> 7389 <button class="faq-question">5. Mengapa HOLYTOGEL direkomendasikan sebagai pilihan server game terpercaya hari ini?<span></span></button> 7390 <div class="faq-answer"><p>HOLYTOGEL menggunakan teknologi enkripsi dan sistem keamanan terbaru untuk melindungi data serta transaksi pemain, menjamin kenyamanan dan layanan 24 jam nonstop.</p></div> 7391 </div> 7392 7393 </div> 7394 7395 </div> 7396 7397 </div> 7398 7399 7400 <div class="overlay overlay-cart"></div> 7401 <div id="CartDrawer" class="drawer drawer--right"> 7402 <div class="drawer__header pl-2 pr-2"> 7403 <div class="drawer__icon-cart display-table-cell"> 7404 <a href="/cart" class=""> 7405 <svg class="icon icon-cart" version="1.1" xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="32" height="32" viewBox="0 0 32 32"> <path fill="#fff" d="M13.638 23.203c0 0 3.5-2.113 3.502-4.11 0.002-2.304-2.689-3.537-3.497-1.76-0.916-1.778-3.493-1.714-3.497 0.59-0.003 1.999 3.491 5.28 3.491 5.28z"></path> <path fill="#fff" d="M8.112 9.809v16.662l11.063 2.491v-17.58l-11.063-1.573zM7.74 8.858l11.925 1.696c0.213 0.030 0.372 0.218 0.372 0.44v18.519c0 0.284-0.254 0.495-0.523 0.434l-11.925-2.685c-0.198-0.045-0.339-0.225-0.339-0.434v-17.53c0-0.27 0.231-0.477 0.49-0.44z"></path> <path fill="#fff" d="M23.7 10.046l-3.275 0.146-0.388 0.897v17.656l3.664-2.174v-16.526zM24.346 27.214l-4.526 2.685c-0.287 0.17-0.646-0.043-0.646-0.385v-18.519l0.037-0.181 0.534-1.235c0.067-0.154 0.212-0.256 0.375-0.263l3.991-0.178c0.245-0.011 0.45 0.191 0.45 0.444v17.247c0 0.159-0.082 0.306-0.216 0.385z"></path> <path fill="#000" d="M20.772 27.081l-0.501 2.383c-0.050 0.24-0.28 0.392-0.512 0.34s-0.38-0.289-0.33-0.528l0.569-2.707v-16.588c0-0.245 0.193-0.444 0.431-0.444s0.431 0.199 0.431 0.444v16.215l3.296 0.189c0.238 0.014 0.42 0.223 0.406 0.468s-0.217 0.433-0.454 0.419l-3.335-0.191z"></path> <path fill="#fff" d="M20.772 27.081l-0.501 2.383c-0.050 0.24-0.28 0.392-0.512 0.34s-0.38-0.289-0.33-0.528l0.569-2.707v-16.588c0-0.245 0.193-0.444 0.431-0.444s0.431 0.199 0.431 0.444v16.215l3.296 0.189c0.238 0.014 0.42 0.223 0.406 0.468s-0.217 0.433-0.454 0.419l-3.335-0.191z"></path> <path fill="#fff" d="M11.336 8.354l-0.257-0.333c-0.243-0.315 0.012-0.774 0.398-0.717l12.51 1.838c0.236 0.035 0.399 0.26 0.366 0.503s-0.252 0.412-0.487 0.377l-11.436-1.68 0.056 0.073c0.209 0.27 0.052 0.672-0.281 0.718l-4.467 0.607c-0.236 0.032-0.452-0.139-0.484-0.383s0.135-0.467 0.371-0.499l3.711-0.504z"></path> <path fill="#fff" d="M17.152 11.344c0.026-0.003 0.053-0.005 0.079-0.005 0.357 0 0.645 0.297 0.645 0.665s-0.288 0.665-0.645 0.665c-0.322 0-0.59-0.245-0.637-0.565-0.383-0.45-0.515-1.321-0.521-2.536-0.003-0.556 0.026-1.149 0.076-1.739 0.028-0.339 0.057-0.603 0.074-0.735 0.195-2.391-2.008-3.379-3.568-1.658-0.64 0.707-1.041 1.855-1.266 3.412-0.092 0.634-0.137 1.111-0.194 2.024 0.107 0.119 0.172 0.278 0.172 0.453 0 0.342-0.251 0.624-0.573 0.661-0.031 0.005-0.064 0.007-0.097 0.005-0.015-0.001-0.029-0.003-0.044-0.
7405005-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> 7406 </a> 7407 </div> 7408 <div class="drawer__title h4">Keranjang Belanja</div> 7409 <div class="drawer__close js-drawer-close"> 7410 <button type="button"> 7411 <svg class="icon icon-close" version="1.1" xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="32" height="32" viewBox="0 0 32 32"> 7412 <title>icon-close</title> 7413 <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> 7414 </svg> 7415 </button> 7416 </div> 7417 </div> 7418 <div id="CartContainer" class="p-2"></div> 7419 </div> 7420 7421
7421<script> 7422 7423 </script>
7423 7424
7424<script src="//outerbloom.com/cdn/shop/t/138/assets/handlebars.min.js?v=79044469952368397291752652415" defer></script>
7424 7425 <!-- /snippets/ajax-cart-template.liquid --> 7426 7427
7427<script id="CartTemplate" type="text/template"> 7428 7429 <form action="/cart" method="post" novalidate class="cart ajaxcart"> 7430 <div class="ajaxcart__inner" {{ cart.item_count }}> 7431 {{#items}} 7432 <div class="ajaxcart__product"> 7433 <div class="ajaxcart__row" data-line="{{line}}"> 7434 <div class="grid"> 7435 <div class="grid__item one-quarter"> 7436 <a href="{{url}}" class="ajaxcart__product-image"><img src="{{img}}" alt=""></a> 7437 </div> 7438 <div class="grid__item three-quarters"> 7439 <p class="d-block mb-3"> 7440 <a class="h4 d-block mb-2" href="{{url}}" class="ajaxcart__product-name">{{name}}</a> 7441 {{#if variation}} 7442 <span class="ajaxcart__product-meta p">{{variation}}</span> 7443 {{/if}} 7444 {{#properties}} 7445 {{#each this}} 7446 {{#if this}} 7447 <span class="ajaxcart__product-meta p hide">{{@key}}: {{this}}</span> 7448 {{/if}} 7449 {{/each}} 7450 {{/properties}} 7451 7452 </p> 7453 <div class="grid--full display-table"> 7454 <div class="grid__item display-table-cell one-half"> 7455 <div class="ajaxcart__qty"> 7456 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}" data-line="{{line}}"> 7457 <svg version="1.1" xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-minus</title><path d="M6.667 16.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h18.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-18.667z"></path></svg> 7458 <span class="visually-hidden">Kurangi jumlah barang</span> 7459 </button> 7460 <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]*"> 7461 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-line="{{line}}" data-qty="{{itemAdd}}"> 7462 <svg version="1.1" xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg> 7463 <span class="visually-hidden">Tambahkan jumlah barang</span> 7464 </button> 7465 </div> 7466 </div> 7467 <div class="grid__item display-table-cell one-half text-right"> 7468 {{#if discountsApplied}} 7469 <small class="ajaxcart-item__price-strikethrough"><s>{{{originalLinePrice}}}</s></small> 7470 <br><span class="h4">{{{linePrice}}}</span> 7471 {{else}} 7472 <span class="h4">{{{linePrice}}}</span> 7473 {{/if}} 7474 </div> 7475 </div> 7476 {{#if discountsApplied}} 7477 <div class="grid--full display-table"> 7478 <div class="grid__item text-right"> 7479 {{#each discounts}} 7480 <small class="ajaxcart-item__discount">{{ this.title }}</small><br> 7481 {{/each}} 7482 </div> 7483 </div> 7484 {{/if}} 7485 </div> 7486 </div> 7487 </div> 7488 </div> 7489 </div> 7490 </div> 7491 {{/items}} 7492 </div> 7493 <div class="ajaxcart__footer"> 7494 <div class="grid--full cart-subtotal py-2"> 7495 <p>Subtotal</p> 7496 <h3 class="primary">{{{totalPrice}}}</h3> 7497 {{#if totalCartDiscount}} 7498 <p class="ajaxcart__savings text-center"><em>{{{totalCartDiscount}}}</em></p> 7499 {{/if}} 7500 </div> 7501 7502 <a href="/cart" class="btn btn-cta view-more btn-block cart__checkout mt-2">Checkout</a> 7503 7504 <p class="cart-checkout-shipping hide">Free Ongkir dengan belanja di atas Rp.10.000 <a href="/pages/pengiriman">detail</a></p> 7505 </div> 7506 </form> 7507 7508 </script>
7508 7509
7509<script id="AjaxQty" type="text/template"> 7510 7511 <div class="ajaxcart__qty"> 7512 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}"> 7513 <svg version="1.1" xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="24" height="24" viewBox="0 0 32 32"> 7514 <title>icon-minus</title> 7515 <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> 7516 </svg> 7517 <span class="visually-hidden">Kurangi jumlah barang</span> 7518 </button> 7519 <input type="text" class="ajaxcart__qty-num" value="{{itemQty}}" min="0" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*"> 7520 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-qty="{{itemAdd}}"> 7521 <svg version="1.1" xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg> 7522 <span class="visually-hidden">Tambahkan jumlah barang</span> 7523 </button> 7524 </div> 7525 7526 </script>
7526 7527
7527<script id="JsQty" type="text/template"> 7528 7529 <div class="js-qty mx-auto mt-2"> 7530 <button type="button" class="js-qty__adjust js-qty__adjust--minus" data-id="{{key}}" data-qty="{{itemMinus}}"> 7531 <svg version="1.1" xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-minus</title><path d="M6.667 16.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h18.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-18.667z"></path></svg> 7532 <span class="visually-hidden">Kurangi jumlah barang</span> 7533 </button> 7534 <input type="text" class="js-qty__num" value="{{itemQty}}" min="1" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*" name="{{inputName}}" id="{{inputId}}"> 7535 <button type="button" class="js-qty__adjust js-qty__adjust--plus" data-id="{{key}}" data-qty="{{itemAdd}}"> 7536 <svg version="1.1" xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg> 7537 <span class="visually-hidden">Tambahkan jumlah barang</span> 7538 </button> 7539 </div> 7540 7541 </script>
7541 7542 7543 <style> 7544 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty button, 7545 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty button, 7546 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty button {display: none;} 7547 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input, 7548 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input, 7549 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;opacity: 0.5;} 7550 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input, 7551 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input, 7552 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;} 7553 </style> 7554
7554<script src="//outerbloom.com/cdn/shop/t/138/assets/ajax-cart.js?v=51128912329657147331752652452" defer></script>
7554 7555
7555<script> 7556 jQuery(function($) { 7557 ajaxCart.init({ 7558 formSelector: '#AddToCartForm', 7559 cartContainer: '#CartContainer', 7560 addToCartSelector: '#AddToCartXX', 7561 cartCountSelector: '#CartCount, #CartCount2', 7562 cartCostSelector: '#CartCost', 7563 moneyFormat: "Rp {{amount_no_decimals}}" 7564 }); 7565 }); 7566 7567 jQuery(document.body).on('afterCartLoad.ajaxCart', function(evt, cart) { 7568 // Bind to 'afterCartLoad.ajaxCart' to run any javascript after the cart has loaded in the DOM 7569 timber.RightDrawer.open(); 7570 }); 7571 </script>
7571 7572 7573 7574 7575 7576 <style> 7577 /** Search AutoComplete **/ 7578 .resultsearch .ui-menu-item[data-cat="Collection"], 7579 .resultsearch .ui-menu-item[data-cat="Collection"] {display: none;} 7580 .resultsearch .ui-widget.ui-widget-content { 7581 width: 100%; 7582 top: 48px; 7583 border: none; 7584 box-shadow: 0 4px 8px rgba(255, 255, 255, 0.3); 7585 } 7586 .resultsearch .ui-menu-item {text-align: left;} 7587 .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;} 7588 .ui-state-active { 7589 border: none!important; 7590 background-color: #fafafa!important; 7591 color: #000!important; 7592 } 7593 .ui-menu-item a[data-cat="Collection"] {padding: 5px 12px;} 7594 .ui-menu .ui-menu-item {line-height: normal;} 7595 </style> 7596
7596<script> 7597 $(window).load(function(){ 7598 7599 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;} 7600 7601 $.widget("custom.catcomplete", $.ui.autocomplete, { 7602 _renderMenu: function (ul, items) { 7603 // have search reults split up in categories 7604 var that = this, 7605 currentCategory = ""; 7606 $.each(items, function (index, item) { 7607 if (item.category != currentCategory) { 7608 ul.append("<li class='ui-autocomplete-category' data-cat=" + item.category + ">" + "<span>" + item.category + "</span>" + "</li>"); 7609 currentCategory = item.category; 7610 } 7611 that._renderItemData(ul, item); 7612 }); 7613 } 7614 }); 7615 7616 // higlight searched for term 7617 $.ui.autocomplete.prototype._renderItem = function( ul, item ) { 7618 var term = this.element.val(), 7619 html = item.label.replace( term, "<b>$&</b>" ); 7620 return $( "<li>" ) 7621 .append(format(item)) 7622 .appendTo( ul ); 7623 }; 7624 7625 7626 var data = [ 7627 { 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
7627weetbox 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: " " }
7627,{ 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: " " }
7627,{ 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: " " }
7627,{ 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
7627dal", 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-
7627hampers", 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
7627o-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: " " }
7627,{ 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: " " }
7627,{ 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: " " }
7627,{ 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: " " }
7627,{ 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: " " }
7627,{ 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: " " }
7627,{ 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: " " }
7627,{ 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: "HOLYTOGEL memberikan daftar kumpulan game online seleksi y
7627ang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya.", category: "Collection", url: "/collections/standing-flower", images: " ", price: " " },{ label: "HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya. Bali", category: "Collection", url: "/collections/standing-flower-bali", images: " ", price: " " },{ label: "HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya. Bandung", category: "Collection", url: "/collections/standing-flower-bandung", images: " ", price: " " },{ label: "HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya. Congratulations", category: "Collection", url: "/collections/standing-flower-congratulations", images: " ", price: " " },{ label: "HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya. Demak", category: "Collection", url: "/collections/standing-flower-demak", images: " ", price: " " },{ label: "HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya. Jepara", category: "Collection", url: "/collections/standing-flower-jepara", images: " ", price: " " },{ label: "HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya. Semarang", category: "Collection", url: "/collections/standing-flower-semarang", images: " ", price: " " },{ label: "HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya. Sidoarjo", category: "Collection", url: "/collections/standing-flower-sidoarjo", images: " ", price: " " },{ label: "HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya. Surabaya", category: "Collection", url: "/collections/standing-flower-surabaya", images: " ", price: " " },{ label: "HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya. Yogyakarta", category: "Collection", url: "/collections/standing-flower-yogyakarta", images: " ", price: " " },{ label: "Standing Giant Flower", category: "Collection", url: "/collections/standing-giant-flower", images: " ", price: " " },{ label: "Stationery", category: "Collection", url: "/collections/stationery", images: " ", price: " " },{ label: "Steekwerk", category: "Collection", url: "/collections/steekwerk", images: " ", price: " " },{ label: "Stylish Hampers", category: "Collection", url: "/collections/stylish-hampers", images: " ", price: " " },{ label: "Stylish Hampers Luar Jadetabek", category: "Collection", url: "/collections/stylish-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Succulent", category: "Collection", url: "/collections/succulent", images: " ", price: " " },{ label: "Sunflower", category: "Collection", url: "/collections/bunga-matahari", images: " ", price: " " },{ label: "Sweet & Savoury Hampers", category: "Collection", url: "/collections/sweet-savoury-hampers", images: " ", price: " " },{ label: "Sweet Gracie", category: "Collection", url: "/collections/sweet-gracie", images: " ", price: " " },{ label: "Sweet Pastel Love", category: "Collection", url: "/collections/pastel-love", images: " ", price: " " },{ label: "Sweet Pastel Love Nusantara", category: "Collection", url: "/collections/sweet-pastel-love-nusantara", images: " ", price: " " },{ label: "Sweet Treats", category: "Collection", url: "/collections/sweet-treats", images: " ", price: " " },{ label: "Sweetooth", category: "Collection", url: "/collections/sweetooth", images: " ", price: " " },{ label: "Taurus âï¸ 20April - 20May", category: "Collection", url: "/collections/kado-untuk-zodiak-taurus", images: " ", price: " " },{ label: "Teddy Bear", category: "Collection", url: "/collections/boneka-teddy-bear", images: " ", price: " " },{ label: "Teh", category: "Collection", url: "/collections/teh", images: " ", price: " " },{ label: "Test Error", category: "Collection", url: "/collections/test-error", images: " ", price: " " },{ label: "Testing", category: "Collection", url: "/collections/testing", images: " ", price: " " },{ label: "Thank You", category: "Collection", url: "/collections/rangkaian-bunga-ucapan-terima-kasih", images: " ", price: " " },{ label: "The Classic Astoria", category: "Collection", url: "/collections/astoria", images: " ", price: " " },{ label: "The Classic Enchanted Dome", category: "Collection", url: "/collections/enchanted-dome", images: " ", price: " " },{ label: "The Enchanted Love Pirouette Special Edition", category: "Collection", url: "/collections/the-enchanted-love-pirouette-special-edition", images: " ", price: " " },{ label: "The F Thing", category: "Collection", url: "/collections/the-f-thing", images: " ", price: " " },{ label: "The First", category: "Collection", url: "/collections/the-first", images: " ", price: " " },{ label: "The Novo Astoria", category: "Collection", url: "/collections/the-novo-astoria", images: " ", price: " " },{ label: "The Novo Enchanted Dome", category: "Collection", url: "/collections/the-novo-enchanted-dome", images: " ", price: " " },{ label: "The Novo Enchanted Dome Special Edition", category: "Collection", url: "/collections/the-novo-enchanted-dome-special-edition", images: " ", price: " " },{ label: "The Palace", category: "Collection", url: "/collections/the-palace", images: " ", price: " " },{ label: "Ties", category: "Collection", url: "/collections/dasi", images: " ", price: " " },{ label: "Tisane", category: "Collection", url: "/collections/tisane", images: " ", price: " " },{ label: "Toko Bunga Aceh", category: "Collection", url: "/collections/toko-bunga-aceh", images: " ", price: " " },{ label: "Toko Bunga Ambon", category: "Collection", url: "/collections/toko-bunga-ambon", images: " ", price: " " },{ label: "Toko Bunga Atambua", category: "Collection", url: "/collections/toko-bunga-atambua", images: " ", price: " " },{ label: "Toko Bunga Bali", category: "Collection", url: "/collections/toko-bunga-bali", images: " ", price: " " },{ label: "Toko Bunga Balikpapan", category: "Collection", url: "/collections/toko-bunga-balikpapan", images: " ", price: " " }
7627,{ 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: " " }
7627,{ 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
7627dal", 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: " " }, 7628 { 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" }
7628,{ 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" }
7628,{ 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" } 7629 ]; 7630 7631 7632 $( ".header-input-search" ).catcomplete({ 7633 appendTo: ".searchResult",source: function(request, response) { 7634 var results = $.ui.autocomplete.filter(data, request.term); 7635 var predicate = function () { 7636 var counter = { Collection: 0, Produk: 0 }; 7637 var fn = function(item) {counter[item.category] += 1;return (counter[item.category] <= 5);} 7638 return fn 7639 }(); 7640 response(results.filter(predicate)); 7641 }, 7642 minLength:1, 7643 //results are clickable 7644 select: function( event, ui ) {window.location = ui.item.url;} 7645 }); 7646 $( ".header-input-search2" ).catcomplete({ 7647 appendTo: ".searchResult2", 7648 source: function(request, response) { 7649 var results = $.ui.autocomplete.filter(data, request.term); 7650 var predicate = function () { 7651 var counter = { Collection: 0, Produk: 0 }; 7652 var fn = function(item) { 7653 counter[item.category] += 1; 7654 return (counter[item.category] <= 5); 7655 } 7656 return fn 7657 }(); 7658 response(results.filter(predicate)); 7659 }, 7660 minLength:1, 7661 //results are clickable 7662 select: function( event, ui ) { 7663 window.location = ui.item.url; 7664 } 7665 }); 7666 }); 7667 </script>
7667 7668 7669
7669<script src="//outerbloom.com/cdn/shop/t/138/assets/vendors.js?v=6349622868601634021752652419" defer></script>
7669 7670
7670<script src="//outerbloom.com/cdn/shop/t/138/assets/app.js?v=136050180318808583701752652452" defer></script>
7670 7671 7672
7672<script> 7673 ( function() { 7674 var youtube = document.querySelectorAll( ".youtube" ); 7675 for (var i = 0; i < youtube.length; i++) { 7676 var source = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault_1x.jpg"; 7677 var datasource = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault.jpg"; 7678 var image = new Image(); 7679 image.src = source; 7680 image.setAttribute("data-src", datasource); 7681 image.classList.add("swiper-lazy"); 7682 image.addEventListener( "load", function() { 7683 youtube[ i ].appendChild( image ); 7684 }( i ) ); 7685 youtube[i].addEventListener( "click", function() { 7686 var iframe = document.createElement( "iframe" ); 7687 iframe.setAttribute( "width", "480" ); 7688 iframe.setAttribute( "height", "480" ); 7689 iframe.setAttribute( "frameborder", "0" ); 7690 iframe.setAttribute( "allowfullscreen", "" ); 7691 iframe.setAttribute( "src", "https://www.youtube.com/embed/"+ this.dataset.embed +"?rel=0&showinfo=0&autoplay=1" ); 7692 this.innerHTML = ""; 7693 this.appendChild( iframe ); 7694 } ); 7695 }; 7696 7697 } )(); 7698 7699 /* Lazy Load */ 7700 const mainLazyLoad = new LazyLoad({threshold:400}); 7701 $(document).ready(function(){ 7702 7703 $("selectxxx").addClass("needsclick"); 7704 FastClick.attach(document.body); 7705 7706 var $customSelects = $('.select-search'); 7707 $customSelects.select2({ 7708 templateResult: function(result, container) { 7709 if (!result.id) { 7710 return result.text; 7711 } 7712 container.className += ' needsclick'; 7713 return result.text; 7714 } 7715 }); 7716 $customSelects.each(function(index, el){$(el).data('select2').$container.find('*').addClass('needsclick');}); 7717 $(document).on('select2:open', () => { 7718 document.querySelector('.select2-search__field').focus(); 7719 }); 7720 7721 7722 $(".overlay").click(function(){ 7723 $(".js-drawer-close").click(); 7724 }); 7725 $(".site-nav--mobile .js-drawer-open-left, #NavDrawer .icon-close, .overlay-nav").click(function(){ 7726 $("html").toggleClass("nav_open"); 7727 }); 7728 7729 $('.swatch-element label').on('click', function(){ 7730 var srcImg = $(this).data('src'); 7731 $('#thumb-image-product .product-single__thumbnail').each(function(){ 7732 if ($(this).attr("href") == srcImg) { 7733 $(this).trigger('click'); 7734 } 7735 }); 7736 }); 7737 var defaultValue = $(".swatch input:checked").val() 7738 7739 $('#purchaseProduct .swatch [type=radio]').change(function() { 7740 var optionIndex = $(this).closest('.swatch').attr('data-option-index'); 7741 var optionValue = $(this).val(); 7742 console.log(optionIndex, optionValue) 7743 var value = parseInt(optionValue.split(' ')[0]) 7744 $(this) 7745 .closest('#purchaseProduct') 7746 .find('.single-option-selector') 7747 .eq(optionIndex) 7748 .val(optionValue) 7749 .trigger('change'); 7750 7751 }); 7752 7753 }); 7754 $(document).ready(function(){ 7755 $(".nav-search a").click(function(e){ 7756 e.preventDefault(); 7757 $(".icon-navsearch").toggle(); 7758 $(".icon-navclose").toggle(); 7759 $(".site-nav__item > .site-nav__link").toggle(); 7760 $(".open-search").toggle(); 7761 $(".open-search input").focus(); 7762 }); 7763 $(".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'>"); 7764 if ($(window).width() < 768) { 7765 $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_75x.png?v=82732945490105366961752652419' alt='Icon Valentine'>"); 7766 $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_45x.png?v=101884295148001743851752652418' alt='Icon CNY'>"); 7767 $(".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'>"); 7768 } else { 7769 $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_60x.png?v=82732945490105366961752652419' alt='Icon Valentine'>"); 7770 $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_60x.png?v=101884295148001743851752652418' alt='Icon CNY'>"); 7771 $(".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'>"); 7772 } 7773 $(".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'>"); 7774 $(".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'>"); 7775 }); 7776 </script>
7776 7777 7778 7779 7780 7781
7781<script type="text/javascript"> 7782 var wishlistpage = 0; 7783 7784 var quickShop_money_format="<span class='money'>"+"Rp {{amount_no_decimals}}"+"</span>"; 7785 </script>
7785 7786 7787 <!-- Remove duplicate wishlist.js reference --> 7788 <style> 7789 .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)}} 7790 </style> 7791 7792 <div class="modal fade" id="modalwishlist0" tabindex="-1" role="dialog"> 7793 <div class="modal-dialog" role="document"> 7794 <div class="modal-content"> 7795 <div class="modal-body">Your Wishlist is empty!</div> 7796 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> 7797 </div> 7798 </div> 7799 </div> 7800 7801 <div class="wishlist-model"> 7802 <div class="modal fade" id="modalwishlist1" tabindex="-1" role="dialog" aria-hidden="true"> 7803 <div class="modal-dialog white-modal"> 7804 <div class="modal-content"> 7805 <div class="modal-header"> 7806 <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 7807 <svg class="icon icon-close" version="1.1" xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="32" height="32" viewBox="0 0 32 32"> 7808 <title>icon-close</title> 7809 <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> 7810 </svg> 7811 </button> 7812 </div> 7813 <div class="modal-body"> 7814 <div class="wishlist-left"> 7815 <div class="wishlist-note">
7816 <span class="cirle"><svg version="1.1" xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="32" height="32" viewBox="0 0 32 32"> 7817 <title>icon-check</title> 7818 <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> 7819 </svg></span> 7820 Product added to <a href="/pages/wish-list">Wishlist</a> 7821 </div> 7822 <div class="wishlist-product"> 7823 <div class="product-left"> 7824 <div class="wishlist-image"></div> 7825 </div> 7826 <div class="product-right"> 7827 <div class="wishlist-name"></div> 7828 <div class="wishlist-price"></div> 7829 </div> 7830 </div> 7831 </div> 7832 <div class="wishlist-right"> 7833 <div class="wishlist-cart"> 7834 <form action="/cart/add" method="post" class="variants-form variants" id="AddToCartForm" enctype="multipart/form-data"> 7835 <div class="others-bottom"> 7836 <a class="btn btn-quick-shop" href="/pages/wish-list">View Wishlist</a> 7837 <button type="submit" name="add" id="AddToCart" class="btn btn-cta"> 7838 <span id="AddToCartText" class="">Beli Sekarang</span> 7839 </button> 7840 </div> 7841 <div id="wishlist-variants-container" class="variants-wrapper"></div> 7842 <div class="quantity-content"> 7843 <label>QTY</label> 7844 <input type="number" size="5" class="" name="quantity" value="1" /> 7845 </div> 7846 </form> 7847 </div> 7848 </div> 7849 </div> 7850 </div> 7851 </div> 7852 </div> 7853 </div> 7854 7855 7856 <style> 7857 .stamped-badge[data-rating="0.0"]{display: none !Important;} 7858 7859 div[data-load-type="continue"] ul.stamped-pagination li.next a, div[data-widget-load-type="continue"] ul.stamped-pagination li.next a { 7860 border-radius: 0px; 7861 } 7862 .stamped-review-body { 7863 padding-left: 0px !important; 7864 } 7865 #product-reviews .stamped-header:after { 7866 display:none !Important; 7867 } 7868 #stamped-main-widget .stamped-container, .stamped-badge-caption,#stamped-reviews-widget { 7869 font-family:inherit !important; 7870 } 7871 </style> 7872 7873 7874 7875 <div id='stamped-rewards-init' class='stamped-rewards-init' 7876 data-key-public='' 7877 7878 ></div> 7879 7880
7880<script src="//outerbloom.com/cdn/shop/t/138/assets/variant-sku-handler.js?v=91239063692820757781752652418" defer></script>
7880 7881 <!-- Remove duplicate jQuery reference and load wishlist script properly --> 7882
7882<script src="//outerbloom.com/cdn/shop/t/138/assets/wishlist-fixed.js?v=35991423018869066281754360012" defer></script>
7882 7883 7884
7884<script> 7885 function myInit(){ StampedFn.init({ apiKey: 'pubkey-hCS8DHE9QbBHhHN89WXFkuJ0Y3422D', sId: '23462' }); } 7886 </script>
7886 7887
7887<script async onload="myInit()" type="text/javascript" src="https://cdn1.stamped.io/files/widget.min.js"></script>
7887<style> 7888 .jss59 { 7889 background-color: rgba(0, 0, 0, 0.6); 7890 } 7891 .MuiBackdrop-root { 7892 top: 0; 7893 left: 0; 7894 right: 0; 7895 bottom: 0; 7896 display: flex; 7897 z-index: -1; 7898 position: fixed; 7899 align-items: center; 7900 justify-content: center; 7901 background-color: rgba(0, 0, 0, 0.5); 7902 -webkit-tap-highlight-color: transparent; 7903 } 7904 .MuiDialog-scrollPaper { 7905 display: flex; 7906 align-items: center; 7907 justify-content: center; 7908 } 7909 .MuiDialog-container { 7910 height: 100%; 7911 outline: 0; 7912 } 7913 .MuiPaper-elevation24 { 7914 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); 7915 } 7916 .MuiDialog-paper { 7917 margin: 32px; 7918 position: relative; 7919 overflow-y: auto; 7920 } 7921 .MuiDialog-paperScrollPaper { 7922 display: flex; 7923 max-height: calc(100% - 64px); 7924 flex-direction: column; 7925 } 7926 .MuiDialog-paperWidthSm { 7927 max-width: 600px; 7928 } 7929 #location-lock-dialog { 7930 top: 20%; 7931 left: 0; 7932 right: 0; 7933 width: 30%; 7934 margin: 0px auto; 7935 display: block; 7936 padding: 30px; 7937 z-index: 99999; 7938 position: fixed; 7939 font-size: 14px; 7940 background: rgb(0, 0, 0); 7941 box-shadow: rgba(11, 11, 12, 0.2) 2px 4px 5px 0px; 7942 text-align: center; 7943 font-family: Roboto, Arial, sans-serif; 7944 line-height: 1; 7945 border-radius: 8px; 7946 -webkit-font-smoothing: subpixel-antialiased; 7947 } 7948 .MuiButtonBase-root { 7949 color: inherit; 7950 border: 0; 7951 cursor: pointer; 7952 margin: 0; 7953 display: inline-flex; 7954 outline: 0; 7955 padding: 0; 7956 position: relative; 7957 align-items: center; 7958 user-select: none; 7959 border-radius: 0; 7960 vertical-align: middle; 7961 -moz-appearance: none; 7962 justify-content: center; 7963 text-decoration: none; 7964 background-color: transparent; 7965 -webkit-appearance: none; 7966 -webkit-tap-highlight-color: transparent; 7967 } 7968 .MuiIconButton-root { 7969 flex: 0 0 auto; 7970 color: rgba(0, 0, 0, 0.54); 7971 padding: 12px; 7972 overflow: visible; 7973 font-size: 1.5rem; 7974 text-align: center; 7975 transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 7976 border-radius: 50%; 7977 } 7978 .MuiIconButton-label { 7979 width: 100%; 7980 display: flex; 7981 align-items: inherit; 7982 justify-content: inherit; 7983 } 7984 .MuiSvgIcon-root { 7985 fill: currentColor; 7986 width: 1em; 7987 height: 1em; 7988 display: inline-block; 7989 font-size: 1.5rem; 7990 transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 7991 flex-shrink: 0; 7992 user-select: none; 7993 } 7994 .MuiTouchRipple-root { 7995 top: 0; 7996 left: 0; 7997 right: 0; 7998 bottom: 0; 7999 z-index: 0; 8000 overflow: hidden; 8001 position: absolute; 8002 border-radius: inherit; 8003 pointer-events: none; 8004 } 8005 .jss36 { 8006 color: #222222; 8007 font-size: 24px; 8008 font-family: Roboto, Arial, sans-serif; 8009 font-weight: 500; 8010 } 8011 .jss37 { 8012 color: #555555; 8013 padding: 10px 0px 0px; 8014 font-size: 14px; 8015 } 8016 .MuiFormGroup-root { 8017 display: flex; 8018 flex-wrap: wrap; 8019 flex-direction: column; 8020 } 8021 .MuiFormGroup-row { 8022 flex-direction: row; 8023 } 8024 .jss63 { 8025 width: 85%; 8026 margin: 15px auto; 8027 display: flex; 8028 padding: 11px 0px 0px; 8029 justify-content: space-evenly; 8030 } 8031 .MuiFormControlLabel-root { 8032 cursor: pointer; 8033 display: inline-flex; 8034 align-items: center; 8035 margin-left: -11px; 8036 margin-right: 16px; 8037 vertical-align: middle; 8038 -webkit-tap-highlight-color: transparent; 8039 } 8040 .jss70 { 8041 margin: 0; 8042 } 8043 .MuiButtonBase-root { 8044 color: inherit; 8045 border: 0; 8046 cursor: pointer; 8047 margin: 0; 8048 display: inline-flex; 8049 outline: 0; 8050 padding: 0; 8051 position: relative; 8052 align-items: center; 8053 user-select: none; 8054 border-radius: 0; 8055 vertical-align: middle; 8056 -moz-appearance: none; 8057 justify-content: center; 8058 text-decoration: none; 8059 background-color: transparent; 8060 -webkit-appearance: none; 8061 -webkit-tap-highlight-color: transparent; 8062 } 8063 .MuiIconButton-root { 8064 flex: 0 0 auto; 8065 color: rgba(0, 0, 0, 0.54); 8066 padding: 12px; 8067 overflow: visible; 8068 font-size: 1.5rem; 8069 text-align: center; 8070 transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 8071 border-radius: 50%; 8072 } 8073 .MuiIconButton-colorSecondary { 8074 color: #f50057; 8075 } 8076 .jss71 { 8077 padding: 9px; 8078 } 8079 .MuiRadio-root { 8080 color: rgba(0, 0, 0, 0.54); 8081 } 8082 .jss64 { 8083 padding: 2px; 8084 } 8085 .MuiRadio-colorSecondary.Mui-checked { 8086 color: #f50057; 8087 } 8088 .MuiIconButton-label { 8089 width: 100%; 8090 display: flex; 8091 align-items: inherit; 8092 justify-content: inherit; 8093 } 8094 .MuiTypography-root { 8095 margin: 0; 8096 } 8097 .MuiTypography-body1 { 8098 font-size: 18px; 8099 font-family: Roboto,sans-serif; 8100 font-weight: 400; 8101 line-height: 1.5; 8102 } 8103 .location-popup_area-block__sp9Ws { 8104 display: -moz-box; 8105 display: flex; 8106 -moz-box-orient: vertical; 8107 -moz-box-direction: normal; 8108 flex-direction: column; 8109 -moz-box-pack: center; 8110 justify-content: center; 8111 position: relative; 8112 margin: 10px 10% 0;
8113 } 8114 .location-popup_pin-search-box__3l5mJ { 8115 width: 100%; 8116 display: -moz-box; 8117 display: flex; 8118 -moz-box-align: center; 8119 align-items: center; 8120 } 8121 .location-popup_place-icon-city__1XAX5, .location-popup_place-icon__jSG0Q { 8122 position: absolute; 8123 z-index: 999; 8124 } 8125 .location-popup_place-icon__jSG0Q { 8126 color: #ffffff; 8127 padding-left: 8px; 8128 } 8129 .location-popup_place-icon__jSG0Q svg { 8130 width: 18px; 8131 height: 18px; 8132 } 8133 .location-popup_cancel-icon__FHujU { 8134 color: #fff; 8135 right: 10px; 8136 width: 16px; 8137 cursor: pointer; 8138 height: 16px; 8139 display: none; 8140 padding: 5px; 8141 position: absolute; 8142 background: #999; 8143 text-align: center; 8144 border-radius: 50%; 8145 } 8146 .location-popup_pin-search-box__3l5mJ>div>select { 8147 /* -webkit-box-shadow: 0 0 10px #ffffff; 8148 box-shadow: 0 0 10px #ffffff; */ 8149 text-transform: capitalize; 8150 border: 1px solid #ffffff; 8151 color: #ffffff; 8152 width: 100%; 8153 margin: 0; 8154 display: -moz-box; 8155 display: flex; 8156 padding: 0 30px; 8157 -webkit-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8158 -moz-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8159 animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8160 font-size: 16px; 8161 border-radius: 4px; 8162 height: 44px; 8163 moz-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite; 8164 webkit-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite; 8165 } 8166 .MuiButtonBase-root { 8167 color: inherit; 8168 border: 0; 8169 cursor: pointer; 8170 margin: 0; 8171 display: inline-flex; 8172 outline: 0; 8173 padding: 0; 8174 position: relative; 8175 align-items: center; 8176 user-select: none; 8177 border-radius: 0; 8178 vertical-align: middle; 8179 -moz-appearance: none; 8180 justify-content: center; 8181 text-decoration: none; 8182 background-color: transparent; 8183 -webkit-appearance: none; 8184 -webkit-tap-highlight-color: transparent; 8185 } 8186 .MuiButton-root { 8187 color: rgba(0, 0, 0, 0.87); 8188 padding: 6px 16px; 8189 font-size: 0.875rem; 8190 min-width: 64px; 8191 box-sizing: border-box; 8192 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; 8193 font-family: Roboto,sans-serif; 8194 font-weight: 500; 8195 line-height: 1.75; 8196 border-radius: 4px; 8197 text-transform: uppercase; 8198 } 8199 .MuiButton-contained { 8200 color: rgba(0, 0, 0, 0.87); 8201 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); 8202 background-color: #e0e0e0; 8203 } 8204 .MuiButtonBase-root.Mui-disabled { 8205 cursor: default; 8206 pointer-events: none; 8207 } 8208 .MuiButton-label { 8209 width: 100%; 8210 display: inherit; 8211 align-items: inherit; 8212 justify-content: inherit; 8213 } 8214 .cartButton_login_content__2j1f7 { 8215 display: -moz-box; 8216 display: flex; 8217 text-align: center; 8218 z-index: 9; 8219 font-size: 18px; 8220 font-weight: 500; 8221 color: #fff; 8222 } 8223 8224 .jss35 { 8225 top: 5px; 8226 right: 5px; 8227 padding: 4px; 8228 position: absolute; 8229 border-radius: 50%; 8230 } 8231 .jss67 { 8232 cursor: pointer; 8233 font-size: 15px; 8234 line-height: 1.3; 8235 padding-left: 5px; 8236 } 8237 .jss69 { 8238 color: #222222; 8239 } 8240 .jss80 { 8241 color: #fff; 8242 width: 100%; 8243 height: 52px; 8244 padding: 11px 16px; 8245 font-size: 18px; 8246 min-width: 88px; 8247 min-height: 36px; 8248 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; 8249 font-weight: 500; 8250 line-weight: 1em; 8251 border-radius: 4px; 8252 text-transform: uppercase; 8253 background-color: #ff6600; 8254 } 8255 @media (min-width: 991px){ 8256 .cartButton_login_content__2j1f7 { 8257 font-weight: 500; 8258 } 8259 } 8260 8261 @media (max-width: 992px) { 8262 #location-lock-dialog { 8263 width: 100%; 8264 top: auto; 8265 bottom: 0; 8266 padding-left: 0; 8267 padding-right: 0; 8268 } 8269 .MuiFormGroup-row { 8270 display: block 8271 } 8272 .MuiIconButton-label input { 8273 margin: 0; 8274 } 8275 } 8276 </style> 8277 <div role="presentation" class="MuiDialog-root jss34" style="display: none;position: fixed; z-index: 9999; inset: 0px;"> 8278 <div class="MuiBackdrop-root" aria-hidden="true" style="opacity: 1; transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"></div> 8279 <div tabindex="0" data-test="sentinelStart"></div> 8280 <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;"> 8281 <div class="MuiPaper-root MuiDialog-paper MuiDialog-paperScrollPaper MuiDialog-paperWidthSm MuiPaper-elevation24 MuiPaper-rounded" role="dialog"> 8282 <div class="jss31 undefined" id="location-lock-dialog"> 8283 <button id="close-popup-delivery" class="MuiButtonBase-root MuiIconButton-root jss35" tabindex="0" type="button" aria-label="close">
8284 <span class="MuiIconButton-label"> 8285 <svg class="MuiSvgIcon-root" focusable="false" viewBox="0 0 24 24" aria-hidden="true"> 8286 <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> 8287 </svg> 8288 </span> 8289 <span class="MuiTouchRipple-root"></span> 8290 </button> 8291 <div> 8292 <div class="jss36">Select Delivery Location</div> 8293 <div class="jss37">Select a delivery location to see product availability</div> 8294 </div> 8295 <div class="MuiFormGroup-root jss63 MuiFormGroup-row" role="radiogroup"> 8296 <label for="jabodetabek" class="MuiFormControlLabel-root jss45"> 8297 <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 jss47 Mui-checked MuiIconButton-colorSecondary" aria-disabled="false"> 8298 <span class="MuiIconButton-label"> 8299 <input id="jabodetabek" class="jss49" type="radio" value="Jabodetabek" checked="" name="location"> 8300 <span class="jss41"></span> 8301 </span> 8302 <span class="MuiTouchRipple-root"></span> 8303 </span> 8304 <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1"> 8305 <span class="jss67 jss69">Jabodetabek</span> 8306 </span> 8307 </label> 8308 <label for="non-jabodetabek" class="MuiFormControlLabel-root jss45"> 8309 <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 MuiIconButton-colorSecondary" aria-disabled="false"> 8310 <span class="MuiIconButton-label"> 8311 <input id="non-jabodetabek" class="jss49" type="radio" value="Outside Jabodetabek" name="location"> 8312 <span class="jss40"></span> 8313 </span> 8314 <span class="MuiTouchRipple-root"></span> 8315 </span> 8316 <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1"> 8317 <span class="jss67 jss68">Outside Jabodetabek</span> 8318 </span> 8319 </label> 8320 </div> 8321 <div> 8322 <div class="MuiGrid-root location-popup_area-block__sp9Ws"> 8323 <div class="MuiGrid-root location-popup_pin-search-box__3l5mJ false"> 8324 <div class="MuiGrid-root location-popup_place-icon__jSG0Q"> 8325 <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> 8326 </div> 8327 <div class="MuiGrid-root location-popup_cancel-icon__FHujU false"> 8328 <i class="material-icons location-popup_clear-pin__s1dRc">close</i> 8329 </div> 8330 <div style="width: 100%;"> 8331 <select id="choose-location" class="form-control"> 8332 <option value="">Choose Location</option> 8333 <option value="jakarta">Jakarta</option> 8334 <option value="bogor">Bogor</option> 8335 <option value="depok">Depok</option> 8336 <option value="tangerang">Tangerang</option> 8337 <option value="bekasi">Bekasi</option> 8338 </select> 8339 </div> 8340 </div> 8341 </div> 8342 </div> 8343 <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=""> 8344 <span class="MuiButton-label">
8345 <span class=""></span> 8346 <span id="location-lock-continue-btn" class="cartButton_login_content__2j1f7" style="font-weight: 500;" data-content="">Continue Shopping</span> 8347 </span> 8348 </button> 8349 </div> 8350 </div> 8351 </div> 8352 <div tabindex="0" data-test="sentinelEnd"></div> 8353 </div> 8354 8355
8355<script> 8356 const jabodetabek = [ 8357 { 8358 "code": "jakarta", 8359 "city": "jakarta", 8360 "zip": [] 8361 }, 8362 { 8363 "code": "bogor", 8364 "city": "bogor", 8365 "zip": [] 8366 }, 8367 { 8368 "code": "depok", 8369 "city": "depok", 8370 "zip": [] 8371 }, 8372 { 8373 "code": "tangerang", 8374 "city": "tangerang", 8375 "zip": [] 8376 }, 8377 { 8378 "code": "bekasi", 8379 "city": "bekasi", 8380 "zip": [] 8381 } 8382 ] 8383 let cityNonJabodetabek = [ 8384 8385 8386 8387 8388 "pengiriman_aceh", 8389 8390 8391 8392 8393 8394 "pengiriman_ambon", 8395 8396 8397 8398 8399 8400 "pengiriman_atambua", 8401 8402 8403 8404 8405 8406 "pengiriman_badung", 8407 8408 8409 8410 8411 8412 "pengiriman_bali", 8413 8414 8415 8416 8417 8418 "pengiriman_balikpapan", 8419 8420 8421 8422 8423 8424 "pengiriman_bandar lampung", 8425 8426 8427 8428 8429 8430 "pengiriman_bandung", 8431 8432 8433 8434 8435 8436 "pengiriman_bandung barat", 8437 8438 8439 8440 8441 8442 "pengiriman_banjarmasin", 8443 8444 8445 8446 8447 8448 "pengiriman_banyumas", 8449 8450 8451 8452 8453 8454 "pengiriman_banyuwangi", 8455 8456 8457 8458 8459 8460 "pengiriman_batam", 8461 8462 8463 8464 8465 8466 8467 8468 8469 8470 "pengiriman_biak", 8471 8472 8473 8474 8475 8476 "pengiriman_binjai", 8477 8478 8479 8480 8481 8482 "pengiriman_blitar", 8483 8484 8485 8486 8487 8488 "pengiriman_blora", 8489 8490 8491 8492 8493 8494 8495 8496 8497 8498 "pengiriman_bojonegoro", 8499 8500 8501 8502 8503 8504 "pengiriman_boyolali", 8505 8506 8507 8508 8509 8510 "pengiriman_bukittinggi", 8511 8512 8513 8514 8515 8516 "pengiriman_buleleng", 8517 8518 8519 8520 8521 8522 "pengiriman_ciamis", 8523 8524 8525 8526 8527 8528 "pengiriman_cianjur", 8529 8530 8531 8532 8533 8534 "pengiriman_cibinong", 8535 8536 8537 8538 8539 8540 "pengiriman_cikarang", 8541 8542 8543 8544 8545 8546 "pengiriman_cikupa", 8547 8548 8549 8550 8551 8552 "pengiriman_cilacap", 8553 8554 8555 8556 8557 8558 "pengiriman_cileunyi", 8559 8560 8561 8562 8563 8564 "pengiriman_cimahi", 8565 8566 8567 8568 8569 8570 "pengiriman_cirebon", 8571 8572 8573 8574 8575 8576 "pengiriman_ciwidey", 8577 8578 8579 8580 8581 8582 "pengiriman_deli serdang", 8583 8584 8585 8586 8587 8588 "pengiriman_demak", 8589 8590 8591 8592 8593 8594 "pengiriman_denpasar", 8595 8596 8597 8598 8599 8600 8601 "pengiriman_garut", 8602 8603 8604 8605 8606 8607 "pengiriman_gianyar", 8608 8609 8610 8611 8612 8613 "pengiriman_gresik", 8614 8615 8616 8617 8618 8619 "pengiriman_gunung kidul", 8620 8621 8622 8623 8624 8625 8626 "pengiriman_jambi", 8627 8628 8629 8630 8631 8632 "pengiriman_jayapura", 8633 8634 8635 8636 8637 8638 "pengiriman_jember", 8639 8640 8641 8642 8643 8644 "pengiriman_jepara", 8645 8646 8647 8648 8649 8650 "pengiriman_jombang", 8651 8652 8653 8654 8655 8656 "pengiriman_karanganyar", 8657 8658 8659 8660 8661 8662 "pengiriman_karawang", 8663 8664 8665 8666 8667 8668 "pengiriman_karo", 8669 8670 8671 8672 8673 8674 "pengiriman_kebumen", 8675 8676 8677 8678 8679 8680 "pengiriman_kediri", 8681 8682 8683 8684 8685 8686 "pengiriman_keerom", 8687 8688 8689 8690 8691 8692 "pengiriman_kendal", 8693 8694 8695 8696 8697 8698 "pengiriman_klaten", 8699 8700 8701 8702 8703 8704 "pengiriman_kudus", 8705 8706 8707 8708 8709 8710 "pengiriman_kupang", 8711 8712 8713 8714 8715 8716 "pengiriman_lainnya", 8717 8718 8719 8720 8721 8722 "pengiriman_lamongan", 8723 8724 8725 8726 8727 8728 "pengiriman_lampung", 8729 8730 8731 8732 8733 8734 "pengiriman_lampung barat", 8735 8736 8737 8738 8739 8740 "pengiriman_lembang", 8741 8742 8743 8744 8745 8746 "pengiriman_lombok", 8747 8748 8749 8750 8751 8752 "pengiriman_lumajang", 8753 8754 8755 8756 8757 8758 "pengiriman_madiun", 8759 8760 8761 8762 8763 8764 "pengiriman_magelang", 8765 8766 8767 8768 8769 8770 "pengiriman_majalengka", 8771 8772 8773 8774 8775 8776 "pengiriman_makassar", 8777 8778 8779 8780 8781 8782 "pengiriman_malang", 8783 8784 8785 8786 8787 8788 "pengiriman_manado", 8789 8790 8791 8792 8793 8794 "pengiriman_medan", 8795 8796 8797 8798 8799 8800 "pengiriman_mengwi", 8801 8802 8803 8804 8805 8806 "pengiriman_mojokerto", 8807 8808 8809 8810 8811 8812 "pengiriman_nganjuk", 8813 8814 8815 8816 8817 8818 "pengiriman_ngawi", 8819 8820 8821 8822 8823 8824 "pengiriman_padang", 8825 8826 8827 8828 8829 8830 "pengiriman_palembang", 8831 8832 8833 8834 8835 8836 "pengiriman_pasuruan", 8837 8838 8839 8840 8841 8842 "pengiriman_pati", 8843 8844 8845 8846 8847 8848 "pengiriman_pekalongan", 8849 8850 8851 8852 8853 8854 "pengiriman_pekanbaru", 8855 8856 8857 8858 8859 8860 "pengiriman_pemalang", 8861 8862 8863 8864 8865 8866 "pengiriman_ponorogo", 8867 8868 8869 8870 8871 8872 "pengiriman_pontianak", 8873 8874 8875 8876 8877 8878 "pengiriman_probolinggo", 8879 8880 8881 8882 8883 8884 "pengiriman_purbalingga", 8885 8886 8887 8888 8889 8890 "pengiriman_purwakarta", 8891 8892 8893 8894 8895 8896 "pengiriman_purwokerto", 8897 8898 8899 8900 8901 8902 "pengiriman_rembang", 8903 8904 8905 8906 8907 8908 "pengiriman_riau", 8909 8910 8911 8912 8913 8914 "pengiriman_salatiga", 8915 8916 8917 8918 8919 8920 "pengiriman_samarinda", 8921 8922 8923 8924 8925 8926 "pengiriman_semarang", 8927 8928 8929 8930 8931 8932 "pengiriman_sentani", 8933 8934 8935 8936 8937 8938 "pengiriman_serang", 8939 8940 8941 8942 8943 8944 "pengiriman_sidoarjo", 8945 8946 8947 8948 8949 8950 "pengiriman_singkawang", 8951 8952 8953 8954 8955 8956 "pengiriman_sragen", 8957 8958 8959 8960 8961 8962 "pengiriman_subang", 8963 8964 8965 8966 8967 8968 "pengiriman_sukabumi", 8969 8970 8971 8972 8973 8974 "pengiriman_sumbawa", 8975 8976 8977 8978 8979 8980 "pengiriman_surabaya", 8981 8982 8983 8984 8985 8986 "pengiriman_surakarta solo", 8987 8988 8989 8990 8991 "pengiriman_tasikmalaya", 8992 8993 8994 8995 8996 8997 "pengiriman_tegal", 8998 8999 9000 9001 9002 9003 "pengiriman_timika", 9004 9005 9006 9007 9008 9009 "pengiriman_wamena", 9010 9011 9012 9013 9014 9015 "pengiriman_wiyung", 9016 9017 9018 9019 9020 9021 "pengiriman_wonokromo", 9022 9023 9024 9025 9026 9027 "pengiriman_yogyakarta", 9028 9029 ] 9030 console.log(cityNonJabodetabek) 9031 let non_jabodetabek = [] 9032 for(var i=0;i<cityNonJabodetabek.length;i++) { 9033 const obj = { 9034 "code": cityNonJabodetabek[i].toLowerCase().replace('pengiriman_', '').replace(' ','-'), 9035 "city": cityNonJabodetabek[i].replace('pengiriman_', '').replace(' ','-'), 9036 "zip": [] 9037 } 9038 non_jabodetabek.push(obj) 9039 } 9040 let current_location = getCookie("location_delivery") 9041 $("[name=location]").change(function(){ 9042 let v = $(this).val() 9043 let option = [] 9044 if(v == 'Jabodetabek') { 9045 for(var i=0;i<jabodetabek.length;i++) { 9046 const jabodetabekHtml = `<option value=${jabodetabek[i].city}>${jabodetabek[i].city}</option>` 9047 option.push(jabodetabekHtml) 9048 } 9049 $("#choose-location").html(`<option value="">Choose Location</option>${option}`) 9050 } else { 9051 for(var i=0;i<non_jabodetabek.length;i++) { 9052 const nonjabodetabekHtml = `<option value=${non_jabodetabek[i].city}>${non_jabodetabek[i].city}</option>` 9053 option.push(nonjabodetabekHtml) 9054 } 9055 $("#choose-location").html(`<option value="">Choose Location</option>${option}`) 9056 } 9057 }) 9058 9059 $("#location-lock-submit").click(function(e){
9060 let select = $("#choose-location") 9061 let value = select.val().toLowerCase() 9062 console.log(value) 9063 if(select.val() == "") { 9064 return alert("Choose Your Location") 9065 e.preventDefault() 9066 } 9067 setCookie("location_delivery",value,1000000); 9068 9069 location.reload(); 9070 9071 }) 9072 9073 $("#close-popup-delivery").click(function(){ 9074 $(".MuiDialog-root").hide() 9075 if(!current_location){ 9076 setCookie("location_delivery","jakarta",1000000); 9077 $("#loc_delivery_city, #loc_delivery_city_mobile").text("Jakarta") 9078 } 9079 }) 9080 $("#loc_delivery, #loc_delivery_mobile").click(function(){ 9081 $(".MuiDialog-root").show() 9082 }) 9083 9084 9085 if(!current_location){ 9086 9087 } else { 9088 $("#loc_delivery_city, #loc_delivery_city_mobile").text(current_location) 9089 console.log(current_location) 9090 $("#choose-location").each(function(){ 9091 if(current_location == 'jakarta' || current_location == 'depok' || current_location == 'bogor' || current_location == 'tangerang' || current_location == 'bekasi'){ 9092 $("#jabodetabek").trigger("click") 9093 } else { 9094 $("#non-jabodetabek").trigger("click") 9095 } 9096 $("#choose-location").find("option[value="+current_location+"]").attr("selected", "selected") 9097 }) 9098 } 9099 9100 // 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'){ 9101 // $("#timeMalam").attr("disabled", false) 9102 // } else { 9103 // $("#timeMalam").attr("disabled", true) 9104 // } 9105 9106 if(current_location && current_location != 'jakarta') { 9107 $("#self-pickup").attr("disabled", true) 9108 } 9109 9110 function setCookie(name,value,days) { 9111 var expires = ""; 9112 if (days) { 9113 var date = new Date(); 9114 date.setTime(date.getTime() + (days*24*60*60*1000)); 9115 expires = "; expires=" + date.toUTCString(); 9116 } 9117 document.cookie = name + "=" + (value || "") + expires + "; path=/"; 9118 } 9119 function getCookie(name) { 9120 var nameEQ = name + "="; 9121 var ca = document.cookie.split(';'); 9122 for(var i=0;i < ca.length;i++) { 9123 var c = ca[i]; 9124 while (c.charAt(0)==' ') c = c.substring(1,c.length); 9125 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 9126 } 9127 return null; 9128 } 9129 </script>
9129 9130 <!-- One Tap --> 9131
9131<script> 9132 console.log("Outerbloom..."); 9133 </script>
9133 9134 <div id="shopify-block-ANVEzSUcxTUxZOGpwZ__9703700522657871012" class="shopify-block shopify-app-block"> 9135 9136 9137 9138 9139 9140 9141 9142 9143 9144 9145 9146 9147 9148 9149 9150 9151 9152 9153 9154 9155 9156 9157 9158 9159 9160 9161 9162 9163 9164 9165 9166 9167 9168 9169 9170 9171 9172 9173 9174 9175 9176 9177 9178 9179 9180 9181 <link rel="stylesheet" href="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.css" /> 9182
9182<script src="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.js" defer></script>
9182 9183
9183<script> 9184 const widgetConfig = { 9185 id: "clz7897za002cz7otleaz0d3d", 9186 showQuickResponse: false, 9187 quickResponsesData: [], 9188 themeColor: "#ffffff", 9189 widgetText: "", 9190 radiusType: "circle", 9191 widgetIconType: "whatsapp", 9192 position: "right", 9193 storeLogo: "", 9194 storeName: "Outerbloom", 9195 storeDescription: "", 9196 size: "small", 9197 showCard: false, 9198 widgetColorType: "solid", 9199 widgetColor1: "#008069", 9200 widgetColor2: "#008069", 9201 social: { 9202 socialOrders: ["instagram","tiktok","facebook","x","youtube","linkedin","email"], 9203 values: { 9204 instagram: { 9205 enabled: false, 9206 value: "", 9207 }, 9208 facebook: { 9209 enabled: false, 9210 value: "", 9211 }, 9212 email: { 9213 enabled: false, 9214 value: "", 9215 }, 9216 x: { 9217 enabled: false, 9218 value: "", 9219 }, 9220 tiktok: { 9221 enabled: false, 9222 value: "", 9223 }, 9224 linkedin: { 9225 enabled: false, 9226 value: "", 9227 }, 9228 youtube: { 9229 enabled: false, 9230 value: "", 9231 }, 9232 }, 9233 }, 9234 }; 9235 9236 function initializeWidget() { 9237 if (typeof BBBWidget !== 'undefined') { 9238 BBBWidget.init(widgetConfig); 9239 } else { 9240 setTimeout(initializeWidget, 100); 9241 } 9242 } 9243 9244 initializeWidget();</script>
9244 9245 9246 9247 </div><div id="shopify-block-ATzRpVTBPU3k1R2pnW__286197278318599166" class="shopify-block shopify-app-block"> 9248 9249 9250 <div style="position: fixed; bottom: 0; right: 0"></div> 9251 9252
9252<script> 9253 console.info("bitlogin extension version: v2.5.7"); 9254 9255 const googleScript = document.createElement("script"); 9256 googleScript.setAttribute("src", "https://accounts.google.com/gsi/client"); 9257 document.head.append(googleScript); 9258 9259 const bitLoginBaseUrl = "https://api.bitbybit.studio"; 9260 const apiUrl = `${bitLoginBaseUrl}/bitlogin/api`; 9261 9262 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"}}; 9263 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
9263n1.oa2-cs.v1.1cb5f9085a202341f60daf5a7be16c570ccc0b4bd5908b3afd080f34e9b8935d","appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null}]; 9264 const redirectUrl = appearance.redirectLink; 9265 9266 let locationCacheSet = false; 9267 let errorLocation = false; 9268 let oneTapSet = false; 9269 9270 let bitloginCache = { 9271 appearance: appearance, 9272 config: config 9273 }; 9274 9275 let isInitializing = false; 9276 const queue = []; 9277 9278 // Add CSS for the popup 9279 const popupStyles = document.createElement('style'); 9280 popupStyles.textContent = ` 9281 /* Styles for login popup */ 9282 .bitlogin-popup-overlay { 9283 position: fixed; 9284 top: 0; 9285 left: 0; 9286 width: 100%; 9287 height: 100%; 9288 background: rgba(0, 0, 0, 0.45); 9289 backdrop-filter: blur(4px); 9290 display: flex; 9291 align-items: center; 9292 justify-content: center; 9293 opacity: 0; 9294 transition: opacity 0.3s ease-in-out; 9295 z-index: 999999; 9296 } 9297 9298 .bitlogin-popup-overlay.visible { 9299 opacity: 1; 9300 } 9301 9302 .bitlogin-popup { 9303 background: #FFFFFF; 9304 box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); 9305 border-radius: 16px; 9306 width: 100%; 9307 max-width: 560px; 9308 display: flex; 9309 overflow: hidden; 9310 position: relative; 9311 opacity: 0; 9312 transform: translateY(20px) scale(0.98); 9313 transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1); 9314 } 9315 9316 .bitlogin-popup.visible { 9317 opacity: 1; 9318 transform: translateY(0) scale(1); 9319 } 9320 9321 .bitlogin-popup-with-image { 9322 max-width: 640px; 9323 } 9324 9325 .bitlogin-popup-right-image { 9326 flex-direction: row-reverse; 9327 } 9328 9329 .bitlogin-popup-image { 9330 object-fit: cover; 9331 width: 50%; 9332 height: auto; 9333 } 9334 9335 .bitlogin-popup-content { 9336 padding: 32px; 9337 position: relative; 9338 width: 50%; 9339 } 9340 9341 .bitlogin-popup-close { 9342 position: absolute; 9343 top: 16px; 9344 right: 16px; 9345 background: white; 9346 border: none; 9347 width: 30px; 9348 height: 30px; 9349 display: flex; 9350 align-items: center; 9351 justify-content: center; 9352 cursor: pointer; 9353 transition: background-color 0.2s; 9354 color: inherit; 9355 padding: 0; 9356 } 9357 9358 .bitlogin-popup-close:hover { 9359 background-color: #e5e5e5; 9360 } 9361 9362 .bitlogin-popup-buttons { 9363 display: flex; 9364 flex-direction: column; 9365 gap: 12px; 9366 margin-top: 24px; 9367 } 9368 9369 /* Button styles within popup - override width for popup buttons */ 9370 .bitlogin-popup-buttons #google-login, 9371 .bitlogin-popup-buttons #facebook-login, 9372 .bitlogin-popup-buttons #apple-login, 9373 .bitlogin-popup-buttons #whatsapp-login, 9374 .bitlogin-popup-buttons #microsoft-login, 9375 .bitlogin-popup-buttons #twitter-login, 9376 .bitlogin-popup-buttons #amazon-login, 9377 .bitlogin-popup-buttons #instagram-login, 9378 .bitlogin-popup-buttons #magic-link-login, 9379 .bitlogin-popup-buttons #mobile-app-login { 9380 width: 100% !important; 9381 font-family: inherit !important; 9382 } 9383 9384 .bitlogin-popup-footer { 9385 margin-top: 32px; 9386 text-align: center; 9387 font-size: 14px; 9388 opacity: 0.6; 9389 } 9390 9391 /* Modern Typography */ 9392 .bitlogin-popup h2 { 9393 margin-top: 12px; 9394 font-size: 21px !important; 9395 line-height: 1.2 !important; 9396 font-weight: 700 !important; 9397 letter-spacing: -0.02em !important; 9398 margin-bottom: 16px !important; 9399 } 9400 9401 .bitlogin-popup-header { 9402 position: relative; 9403 margin-bottom: 24px; 9404 } 9405 9406 /* Modern gradient accent */ 9407 .bitlogin-popup-content > div { 9408 font-size: 16px !important; 9409 line-height: 1.2 !important; 9410 opacity: 0.85 !important; 9411 } 9412 9413 /* Enhanced button interactions */ 9414 .bitlogin-popup-buttons button { 9415 position: relative; 9416 overflow: hidden; 9417 } 9418 9419 @keyframes ripple { 9420 0% { 9421 transform: scale(0, 0); 9422 opacity: 0.5; 9423 } 9424 100% { 9425 transform: scale(100, 100); 9426 opacity: 0; 9427 } 9428 } 9429 9430 /* Responsive adjustments */ 9431 @media (max-width: 640px) { 9432 .bitlogin-popup { 9433 max-width: 90%; 9434 width: 90%; 9435 margin: 0 16px; 9436 } 9437 9438 .bitlogin-popup-with-image { 9439 flex-direction: column !important; 9440 } 9441 9442 .bitlogin-popup-image { 9443 width: 100%; 9444 height: 180px; 9445 } 9446 9447 .bitlogin-popup-content { 9448 padding: 24px; 9449 } 9450 9451 .bitlogin-popup h2 { 9452 font-size: 24px !important; 9453 } 9454 } 9455 `; 9456
9457 document.head.appendChild(popupStyles); 9458 9459 // Add fonts link for different font options 9460 const fontsLink = document.createElement('link'); 9461 fontsLink.rel = 'stylesheet'; 9462 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'; 9463 document.head.appendChild(fontsLink); 9464 9465 (async () => { 9466 try { 9467 let host = window.location.host; 9468 if (host === "admin.shopify.com") { 9469 host = `${window.location.pathname.split("/")[2]}.myshopify.com`; 9470 } 9471 9472 const urlSearchParams = new URLSearchParams(window.location.search); 9473 const checkoutUrl = urlSearchParams.get("checkout_url"); 9474 9475 async function init({ inputRef, index }) { 9476 if (isInitializing) { 9477 queue.push(() => init({ inputRef, index })); 9478 return; 9479 } 9480 9481 isInitializing = true; 9482 9483 try { 9484 let bitLoginSectionRoot = document.querySelector( 9485 `.bitlogin-root[data-index="${index}"]` 9486 ); 9487 9488 const formRef = inputRef?.closest( 9489 "form:not([action='/account/recover'])" 9490 ); 9491 9492 if (formRef && !bitLoginSectionRoot) { 9493 await getLocation(); 9494 9495 bitLoginSectionRoot = document.createElement(`div`); 9496 9497 bitLoginSectionRoot.setAttribute("class", "bitlogin-root"); 9498 bitLoginSectionRoot.setAttribute("data-index", `${index}`); 9499 9500 updateAppearance({ 9501 formRef, 9502 rootRef: bitLoginSectionRoot, 9503 host, 9504 }); 9505 } 9506 } catch (err) { 9507 console.error(`error while initiating bitlogin extensions`, err); 9508 } finally { 9509 // Release the lock 9510 isInitializing = false; 9511 9512 // Check if there are pending items in the queue 9513 if (queue.length > 0) { 9514 // Process the next function in the queue 9515 const nextFunction = queue.shift(); 9516 nextFunction(); 9517 } 9518 } 9519 } 9520 9521 function initAll() { 9522 return new Promise((resolve, reject) => { 9523 setTimeout(async () => { 9524 const inputRefs = document.querySelectorAll( 9525 'input[name="customer[email]"]' 9526 ); 9527 9528 for (let i = 0; i < inputRefs.length; i++) { 9529 const currentInputRef = inputRefs[i]; 9530 const isVisible = isElementVisible(currentInputRef); 9531 9532 if (isVisible) { 9533 await init({ inputRef: currentInputRef, index: i }); 9534 } 9535 } 9536 9537 resolve("ok"); 9538 }, 100); 9539 }); 9540 } 9541 9542 const observer = new MutationObserver((mutationsList) => { 9543 for (let mutation of mutationsList) { 9544 initAll(); 9545 } 9546 }); 9547 9548 observer.observe(document.body, { 9549 childList: true, 9550 subtree: true, 9551 attributes: true, 9552 }); 9553 9554 initAll(); 9555 9556 if (appearance.googleOneTap) { 9557 setupOneTap({ host, checkoutUrl }); 9558 } 9559 9560 // Initialize popup 9561 await initPopup(host); 9562 } catch (error) { 9563 console.error("Error initializing BitLogin:", error); 9564 } 9565 })(); 9566 9567 async function initPopup(host) { 9568 // Check if user is already logged in using Liquid checks properly 9569 const isLoggedIn = false || 9570 document.querySelector('.customer-logout-link') || 9571 document.querySelector('.account-link') || 9572 window.location.pathname.includes('/account'); 9573 9574 if (isLoggedIn) { 9575 return; // User is logged in, don't show popup 9576 } 9577 9578 try { 9579 // Fetch the popup configuration 9580 const popupConfig = await fetch(`${apiUrl}/appearance/popup/domain/${host}`) 9581 .then(res => res.json()) 9582 .catch(err => { 9583 console.error('Error fetching popup configuration:', err); 9584 return null; 9585 }); 9586 9587 if (!popupConfig || !popupConfig.enabled) { 9588 return;
9588 // Don't show popup if disabled or config not found 9589 } 9590 9591 // Create popup after 10 seconds 9592 setTimeout(() => { 9593 // Check if user is still on the page and still not logged in 9594 if (document.visibilityState === 'visible') { 9595 // Additional check in case user logged in during the 10 second wait 9596 const currentlyLoggedIn = false || 9597 document.querySelector('.customer-logout-link') || 9598 document.querySelector('.account-link'); 9599 9600 if (!currentlyLoggedIn) { 9601 createLoginPopup(popupConfig, host); 9602 } 9603 } 9604 }, 10000); 9605 } catch (error) { 9606 console.error('Error initializing popup:', error); 9607 } 9608 } 9609 9610 function createLoginPopup(popupConfig, host) { 9611 // Font mapping 9612 const fontFamilyMap = { 9613 system_fonts: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif', 9614 montserrat: 'Montserrat, sans-serif', 9615 roboto: 'Roboto, sans-serif', 9616 open_sans: 'Open Sans, sans-serif', 9617 noto_sans: 'Noto Sans, sans-serif', 9618 lato: 'Lato, sans-serif', 9619 poppins: 'Poppins, sans-serif', 9620 quicksand: 'Quicksand, sans-serif', 9621 raleway: 'Raleway, sans-serif', 9622 pt_sans: 'PT Sans, sans-serif', 9623 oswald: 'Oswald, sans-serif', 9624 }; 9625 9626 // Create overlay 9627 const overlay = document.createElement('div'); 9628 overlay.className = 'bitlogin-popup-overlay'; 9629 9630 // Create popup container with appropriate styling 9631 const popup = document.createElement('div'); 9632 popup.className = 'bitlogin-popup'; 9633 9634 if (popupConfig.layout === 'default') { 9635 popup.style.maxWidth = '400px'; 9636 } 9637 9638 // Function to close the popup 9639 const closePopup = () => { 9640 overlay.classList.remove('visible'); 9641 popup.classList.remove('visible'); 9642 setTimeout(() => { 9643 if (document.body.contains(overlay)) { 9644 document.body.removeChild(overlay); 9645 } 9646 }, 300); 9647 }; 9648 9649 // Add click handler to the overlay to close when clicking outside 9650 overlay.addEventListener('click', (event) => { 9651 // Close only if clicking directly on the overlay, not its children 9652 if (event.target === overlay) { 9653 closePopup(); 9654 } 9655 }); 9656 9657 // Add escape key handler to close popup 9658 document.addEventListener('keydown', (event) => { 9659 if (event.key === 'Escape' && document.body.contains(overlay)) { 9660 closePopup(); 9661 } 9662 }); 9663 9664 // Create layout with image if specified 9665 let contentWrapper; 9666 if (popupConfig.layout !== 'default' && popupConfig.popupImage) { 9667 popup.classList.add('bitlogin-popup-with-image'); 9668 9669 if (popupConfig.layout === 'right') { 9670 popup.classList.add('bitlogin-popup-right-image'); 9671 } 9672 9673 // Add image 9674 const image = document.createElement('img'); 9675 image.className = 'bitlogin-popup-image'; 9676 image.src = popupConfig.popupImage; 9677 image.alt = 'Login'; 9678 image.loading = 'lazy'; 9679 popup.appendChild(image); 9680 9681 // Create content container 9682 contentWrapper = document.createElement('div'); 9683 contentWrapper.className = 'bitlogin-popup-content'; 9684 9685 if (popupConfig.layout === 'right') { 9686 const closeButton = document.createElement('button'); 9687 closeButton.className = 'bitlogin-popup-close'; 9688 closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="https://watersoftenerreviewspro.com/picture/logo.png"> 9689 <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 9690 </svg>`; 9691 closeButton.setAttribute('aria-label', 'Close'); 9692 closeButton.onclick = closePopup; 9693 9694 popup.appendChild(closeButton); 9695 } 9696 } else { 9697 contentWrapper = document.createElement('div'); 9698 contentWrapper.className = 'bitlogin-popup-content'; 9699 contentWrapper.style.width = '100%'; 9700 } 9701 9702 // Set background style 9703 if (popupConfig.backgroundTheme === 'gradient') { 9704 contentWrapper.style.background = `linear-gradient(135deg, ${popupConfig.backgroundPopupColor}, ${popupConfig.gradientColor})`; 9705 } else { 9706 contentWrapper.style.backgroundColor = popupConfig.backgroundPopupColor; 9707 } 9708 9709 // Apply font family 9710 contentWrapper.style.setProperty('font-family', fontFamilyMap[popupConfig.font] || fontFamilyMap.system_fonts, 'important'); 9711 9712 if (popupConfig.layout !== 'right') { 9713 const closeButton = document.createElement('button'); 9714 closeButton.className = 'bitlogin-popup-close'; 9715 closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="https://watersoftenerreviewspro.com/picture/logo.png"> 9716 <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 9717 </svg>`; 9718 closeButton.setAttribute('aria-label', 'Close'); 9719 closeButton.onclick = closePopup; 9720 9721 contentWrapper.appendChild(closeButton); 9722 } 9723 9724 // Add heading with subtle animation effect 9725 const header = document.createElement('div'); 9726 header.className = 'bitlogin-popup-header'; 9727 9728 const heading = document.createElement('h2'); 9729 heading.textContent = popupConfig.headingText || 'Sign in for exclusive benef
9729its'; 9730 heading.style.color = popupConfig.fontColor; 9731 header.appendChild(heading); 9732 9733 // Add body text with improved formatting 9734 const bodyText = document.createElement('div'); 9735 bodyText.innerHTML = popupConfig.bodyText || 'Join our community to access exclusive offers and a personalized shopping experience.'; 9736 bodyText.style.color = popupConfig.fontColor; 9737 header.appendChild(bodyText); 9738 9739 contentWrapper.appendChild(header); 9740 9741 // Create buttons container with modern styling 9742 const buttonsContainer = document.createElement('div'); 9743 buttonsContainer.className = 'bitlogin-popup-buttons'; 9744 9745 // Add social buttons 9746 const providerLabels = { 9747 'GOOGLE': 'Continue with Google', 9748 'FACEBOOK': 'Continue with Facebook', 9749 'APPLE': 'Continue with Apple', 9750 'WHATSAPP': 'Continue with WhatsApp', 9751 'MAGIC_LINK': 'Continue with Email', 9752 }; 9753 9754 // Add first login provider button 9755 if (popupConfig.loginProvider1 !== 'NONE') { 9756 const buttonConfig = { 9757 theme: popupConfig.colorScheme || 'match', 9758 customColor: popupConfig.textColor, 9759 format: 'contentFlex', 9760 buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider1.toLowerCase()], 9761 hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true, 9762 style: popupConfig.style || 'rounded', 9763 size: popupConfig.size || 'medium', 9764 colorScheme: popupConfig.colorScheme || 'match', 9765 backgroundColor: popupConfig.backgroundColor || '#3B82F6', 9766 textColor: popupConfig.textColor || '#FFFFFF', 9767 outlineColor: popupConfig.outlineColor || '#3B82F6', 9768 host: host 9769 }; 9770 9771 const button1 = createSocialLoginButton(popupConfig.loginProvider1, buttonConfig); 9772 9773 // Handle click event - this overrides the default click handler in createSocialLoginButton 9774 button1.onclick = () => { 9775 onClickSocialLogin({ provider: popupConfig.loginProvider1.toLowerCase(), host }); 9776 closePopup(); 9777 }; 9778 9779 buttonsContainer.appendChild(button1); 9780 } 9781 9782 // Add second login provider button if enabled 9783 if (popupConfig.loginProvider2 !== 'NONE') { 9784 const buttonConfig = { 9785 theme: popupConfig.colorScheme || 'match', 9786 customColor: popupConfig.textColor, 9787 format: 'contentFlex', 9788 buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider2.toLowerCase()], 9789 hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true, 9790 style: popupConfig.style || 'rounded', 9791 size: popupConfig.size || 'medium', 9792 colorScheme: popupConfig.colorScheme || 'match', 9793 backgroundColor: popupConfig.backgroundColor || '#3B82F6', 9794 textColor: popupConfig.textColor || '#FFFFFF', 9795 outlineColor: popupConfig.outlineColor || '#3B82F6', 9796 host: host 9797 }; 9798 9799 const button2 = createSocialLoginButton(popupConfig.loginProvider2, buttonConfig); 9800 9801 // Handle click event - this overrides the default click handler in createSocialLoginButton 9802 button2.onclick = () => { 9803 onClickSocialLogin({ provider: popupConfig.loginProvider2.toLowerCase(), host }); 9804 closePopup(); 9805 }; 9806 9807 buttonsContainer.appendChild(button2); 9808 } 9809 9810 contentWrapper.appendChild(buttonsContainer); 9811 9812 // Append content to popup 9813 popup.appendChild(contentWrapper); 9814 9815 // Append popup to overlay 9816 overlay.appendChild(popup); 9817 9818 // Append overlay to body 9819 document.body.appendChild(overlay); 9820 9821 // Trigger animation with slight delay for better perceived performance 9822 setTimeout(() => { 9823 overlay.classList.add('visible'); 9824 setTimeout(() => { 9825 popup.classList.add('visible'); 9826 }, 50); 9827 }, 10); 9828 } 9829 9830 window.addEventListener("load", () => { 9831 window.addEventListener("message", (event) => { 9832 const receivedData = event.data; 9833 9834 if (receivedData.type === "authorize") { 9835 post( 9836 JSON.parse( 9837 JSON.stringify({ 9838 "customer[email]": receivedData.email, 9839 "customer[password]": receivedData.password, 9840 form_type: "customer_login", 9841 utf8: "â", 9842 return_url: redirectUrl, 9843 }) 9844 ) 9845 ); 9846 } else if (receivedData.type === "rejected") { 9847 if (receivedData.reason === "customer_account_disabled") { 9848 showAlert( 9849 "Your account needs to be activated. We've sent you an activation link - please check your email to complete this step." 9850 ); 9851 } else if (receivedData.reason === "customer_entry_created_email_not_set") { 9852 showAlert( 9853 "A new account was created but requires an email address. Please update your account with a valid email address to continue." 9854 ); 9855 } else if (receivedData.reason === "customer_exist_email_not_set") { 9856 showAlert( 9857 "Your existing account is missing an email address. Please contact support to update your account with a valid email address." 9858 ); 9859 } 9860 } 9861 9862 if (receivedData.type === "customer_authenticated") { 9863 // Dispatch a custom event that merchants can listen for to implement their custom logic 9864 const customerAuthEvent = new CustomEvent('bitlogin:customer_authenticated', { 9865 detail: { 9866 provider: receivedData.provider, 9867 customer: receivedData.customer, 9868 shopifyCustomerCreated: receivedData.shopifyCustomerCreated 9869 } 9870 }); 9871 9872 // Dispatch the event on the window object so merchants can listen for it 9873 window.dispatchEvent(customerAuthEvent); 9874 9875 } 9876 }); 9877 }); 9878 9879 // Reusable functions for social login buttons 9880 function createSocialLoginButton(provider, config = {}) { 9881 const { 9882 theme = 'match', 9883 customColor = null, 9884 format = 'contentFlex', 9885 buttonText = null, 9886 hasShadow = true, 9887 style = 'rounded', 9888 size = 'medium', 9889 colorScheme = 'match', 9890 backgroundColor = '#3B82F6', 9891 textColor = '#FFFFFF', 9892 outlineColor = '#3B82F6', 9893 rootRef = null, 9894 host = null 9895 } = config; 9896 9897 // Create button element with appropriate ID and attributes 9898 const button = document.createElement('button'); 9899 button.id = `${provider.toLowerCase()}-login`; 9900 button.type = 'button'; 9901 9902 // Set the inner SVG based on provider 9903 switch (provider.toUpperCase()) {
9904 case 'GOOGLE': 9905 button.innerHTML = googleLoginIcon(theme, customColor); 9906 break; 9907 case 'FACEBOOK': 9908 button.innerHTML = facebookLoginIcon(theme, customColor); 9909 break; 9910 case 'APPLE': 9911 button.innerHTML = appleLoginIcon(theme, customColor); 9912 break; 9913 case 'WHATSAPP': 9914 button.innerHTML = whatsappLoginIcon(theme, customColor); 9915 break; 9916 case 'MICROSOFT': 9917 button.innerHTML = microsoftLoginIcon(theme, customColor); 9918 break; 9919 case 'TWITTER': 9920 button.innerHTML = twitterLoginIcon(theme, customColor); 9921 break; 9922 case 'AMAZON': 9923 button.innerHTML = amazonLoginIcon(theme, customColor); 9924 break; 9925 case 'INSTAGRAM': 9926 button.innerHTML = instagramLoginIcon(theme, customColor); 9927 break; 9928 case 'MAGIC_LINK': 9929 button.innerHTML = magicLinkLoginIcon(theme, customColor); 9930 break; 9931 case 'MOBILE_APP': 9932 button.innerHTML = mobileAppLoginIcon(theme, customColor); 9933 break; 9934 case 'LINKEDIN': 9935 button.innerHTML = linkedinLoginIcon(theme, customColor); 9936 break; 9937 } 9938 9939 // Add text if format isn't icon-only and buttonText is provided 9940 if (format !== "wrapperFlexContainerOnlyLogo" && buttonText) { 9941 button.innerHTML += `<p>${buttonText}</p>`; 9942 } 9943 9944 // Apply styling 9945 // Shadow 9946 if (hasShadow) { 9947 const shadowProperties = `0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)`; 9948 button.style["box-shadow"] = shadowProperties; 9949 } 9950 9951 // Border radius 9952 const radiusProperties = 9953 style === "rounded" 9954 ? "8px" 9955 : style === "square" 9956 ? "0px" 9957 : style === "fullRounded" 9958 ? format === "wrapperFlexContainerOnlyLogo" 9959 ? "50%" 9960 : "50px" 9961 : undefined; 9962 button.style["border-radius"] = radiusProperties; 9963 9964 // Size 9965 const sizeProperties = 9966 size === "medium" 9967 ? "12px" 9968 : size === "small" 9969 ? "8px" 9970 : size === "large" 9971 ? "16px" 9972 : "8px"; 9973 9974 button.style["padding-block"] = sizeProperties; 9975 9976 // Format styling 9977 if (format) { 9978 if ( 9979 format === "contentFlexReverse" || 9980 format === "contentFlexCenterReverse" 9981 ) { 9982 const flexDir = `row-reverse`; 9983 button.style["flex-direction"] = flexDir; 9984 } 9985 9986 if ( 9987 format === "contentFlexCenter" || 9988 format === "contentFlexCenterReverse" 9989 ) { 9990 const justifyContent = `center`; 9991 button.style["justify-content"] = justifyContent; 9992 } else if ( 9993 format === "contentFlex" || 9994 format === "contentFlexReverse" 9995 ) { 9996 const buttonTextElement = button.querySelector("p"); 9997 if (buttonTextElement) { 9998 buttonTextElement.style["flex-grow"] = 1; 9999 buttonTextElement.style["text-align"] = "center"; 10000 } 10001 } 10002 10003 if (format === "wrapperFlexContainerOnlyLogo" && rootRef) { 10004 rootRef.style["flex-direction"] = "row"; 10005 rootRef.style["gap"] = "8px"; 10006 rootRef.style["display"] = "flex"; 10007 rootRef.style["flex-wrap"] = "wrap"; 10008 10009 const sizeMapping = { 10010 small: "52px", 10011 medium: "62px", 10012 large: "72px", 10013 }; 10014 const buttonSize = sizeMapping[size] || "52px"; 10015 10016 button.style["margin"] = 0; 10017 button.style["width"] = buttonSize; 10018 button.style["height"] = buttonSize; 10019 button.style["display"] = "flex"; 10020 button.style["align-items"] = "center"; 10021 button.style["justify-content"] = "center"; 10022 10023 const svgElement = button.querySelector("svg"); 10024 if (svgElement) { 10025 svgElement.style["flex"] = "none"; 10026 } 10027 } 10028 } 10029 10030 // Color scheme styling 10031 if (colorScheme === "black") { 10032 button.classList.add("scheme-black"); 10033 } else if (colorScheme === "white") { 10034 button.classList.add("scheme-white"); 10035 } else if (colorScheme === "custom") { 10036 button.style["background-color"] = backgroundColor; 10037 button.style["color"] = textColor; 10038 button.style["border-color"] = outlineColor; 10039 10040 const darkenColor = (color, percentage) => { 10041 const value = parseInt(color.slice(1), 16); 10042 const r = Math.max(0, ((value >> 16) & 0xff) - (0xff * percentage)); 10043 const g = Math.max(0, ((value >> 8) & 0xff) - (0xff * percentage)); 10044 const b = Math.max(0, (value & 0xff) - (0xff * percentage)); 10045 return `rgb(${Math.round(r)}, ${Math.round(g)}, ${Math.round(b)})`; 10046 }; 10047 10048 button.addEventListener("mouseover", () => {
10049 button.style["background-color"] = darkenColor(backgroundColor, 0.2); 10050 }); 10051 button.addEventListener("mouseout", () => { 10052 button.style["background-color"] = backgroundColor; 10053 }); 10054 } else if (colorScheme === "match") { 10055 button.classList.add("scheme-match"); 10056 } else if (colorScheme === "matchOutline") { 10057 button.classList.add("scheme-match-outline"); 10058 } 10059 10060 // Add click event listener if host is provided 10061 if (host) { 10062 button.addEventListener("click", () => 10063 onClickSocialLogin({ provider: provider.toLowerCase(), host }) 10064 ); 10065 } 10066 10067 return button; 10068 } 10069 10070 function setupSocialLoginButtons(config, rootRef, data, host) { 10071 // Clear any existing content 10072 rootRef.innerHTML = ''; 10073 10074 const sortedEnabledProviders = config 10075 .filter(c => c.enabledWeb) 10076 .sort((a, b) => a.position - b.position); 10077 10078 sortedEnabledProviders.forEach(provider => { 10079 const key = provider.provider; 10080 const lowerKey = key.toLowerCase(); 10081 10082 const buttonText = data.format !== "wrapperFlexContainerOnlyLogo" 10083 ? (lowerKey === 'twitter' 10084 ? data.buttonList.twitter.replace('Twitter', 'X') 10085 : data.buttonList[lowerKey]) 10086 : null; 10087 10088 const button = createSocialLoginButton(key, { 10089 theme: data.colorScheme || 'match', 10090 customColor: data.textColor, 10091 format: data.format, 10092 buttonText: buttonText, 10093 hasShadow: data.hasShadow !== undefined ? data.hasShadow : true, 10094 style: data.style, 10095 size: data.size, 10096 colorScheme: data.colorScheme, 10097 backgroundColor: data.backgroundColor, 10098 textColor: data.textColor, 10099 outlineColor: data.outlineColor, 10100 rootRef: rootRef, 10101 host: host 10102 }); 10103 10104 rootRef.appendChild(button); 10105 }); 10106 10107 return rootRef; 10108 } 10109 10110 function updateAppearance({ formRef, rootRef, host }) { 10111 if (!formRef) return; 10112 10113 const data = bitloginCache.appearance || { 10114 style: "square", 10115 hasShadow: false, 10116 colorScheme: "match", 10117 backgroundColor: "#FFFFFF", 10118 outlineColor: "#000000", 10119 textColor: "#000000", 10120 position: "bottom", 10121 hideDivider: "false", 10122 dividerText: "OR", 10123 size: "small", 10124 format: "contentFlex", 10125 language: "en", 10126 buttonText: "Continue with", 10127 redirectLink: "/account", 10128 googleOneTap: true, 10129 googleOneTapBanner: true, 10130 customerTag: "bitLogin", 10131 redirectOneTapDesktop: null, 10132 redirectOneTapMobile: null, 10133 buttonList: { 10134 google: "Continue with Google", 10135 facebook: "Continue with Facebook", 10136 apple: "Continue with Apple", 10137 whatsapp: "Continue with WhatsApp", 10138 microsoft: "Continue with Microsoft", 10139 twitter: "Continue with X", 10140 amazon: "Continue with Amazon", 10141 instagram: "Continue with Instagram", 10142 magic_link: "Continue with Magic Link", 10143 mobile_app: "Continue with Mobile App", 10144 linkedin: "Continue with LinkedIn", 10145 }, 10146 }; 10147 10148 // Use the new setupSocialLoginButtons function to create and configure all buttons 10149 setupSocialLoginButtons(bitloginCache.config, rootRef, data, host); 10150 10151 let divider; 10152 10153 if (!data.hideDivider) { 10154 divider = document.createElement("div"); 10155 const dividerStyle = "text-align:center;margin-block:16px"; 10156 divider.setAttribute("style", dividerStyle); 10157 divider.innerHTML = data.dividerText; 10158 } 10159 10160 if (data.position === "bottom") { 10161 if (divider) { 10162 formRef.appendChild(divider); 10163 } 10164 formRef.appendChild(rootRef); 10165 } else if (data.position === "top") { 10166 if (divider) { 10167 formRef.prepend(divider); 10168 } 10169 formRef.prepend(rootRef); 10170 } 10171 } 10172 10173 10174 async function onClickSocialLogin({ provider, host }) { 10175 const rand = Math.random().toString(); 10176 10177 const locationQueryString = bitloginCache.location 10178 ? `&${objectToQueryString(bitloginCache.location)}` 10179 : ""; 10180 10181 const width = 800; 10182 const height = 600; 10183 const left = (window.screen.width / 2) - (width / 2); 10184 const top = (window.screen.height / 2) - (height / 2) - 50; 10185
10186 if(provider === 'whatsapp') { 10187 window.open( 10188 `/apps/bitlogin/whatsapp${locationQueryString ? `?${locationQueryString}` : ''}`, 10189 "mywindow", 10190 `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}` 10191 ); 10192 } else { 10193 window.open( 10194 `${apiUrl}/login/${provider}?referrerId=${rand}&shop=${host}${locationQueryString}`, 10195 "mywindow", 10196 `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}` 10197 ); 10198 } 10199 } 10200 10201 function objectToQueryString(obj) { 10202 return Object.keys(obj) 10203 .map((key) => { 10204 return encodeURIComponent(key) + "=" + encodeURIComponent(obj[key]); 10205 }) 10206 .join("&"); 10207 } 10208 10209 async function getLocation() { 10210 if (locationCacheSet) return; 10211 10212 try { 10213 const response = await fetch("https://ipapi.co/json/"); 10214 10215 if (!response.ok) { 10216 console.error(`error retrieving location...`, response.status); 10217 errorLocation = true; 10218 } else { 10219 const data = await response.json(); 10220 10221 const { city, region, country_name, country_code } = data; 10222 10223 const formattedLocationData = { 10224 city, 10225 region, 10226 country_name, 10227 country_code, 10228 }; 10229 10230 bitloginCache.location = formattedLocationData; 10231 locationCacheSet = true; 10232 errorLocation = false; 10233 } 10234 } catch (err) { 10235 console.error(`error fetching location`, err); 10236 errorLocation = true; 10237 } 10238 } 10239 10240 function post(params) { 10241 // The rest of this code assumes you are not using a library. 10242 // It can be made less verbose if you use one. 10243 const form = document.createElement("form"); 10244 form.method = "post"; 10245 form.action = `/account/login`; 10246 form.acceptCharset = "UTF-8"; 10247 form.setAttribute("data-login-with-shop-sign-in", "true"); 10248 form.setAttribute("novalidate", "novalidate"); 10249 10250 for (const key in params) { 10251 if (params.hasOwnProperty(key)) { 10252 const hiddenField = document.createElement("input"); 10253 hiddenField.type = "hidden"; 10254 hiddenField.name = key; 10255 hiddenField.value = params[key]; 10256 10257 form.appendChild(hiddenField); 10258 } 10259 } 10260 10261 document.body.appendChild(form); 10262 form.submit(); 10263 } 10264 10265 async function setupOneTap({ host, checkoutUrl }) { 10266 if (oneTapSet) return; 10267 10268 const redirectOneTapDesktop = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapDesktop || '[]')); 10269 const redirectOneTapMobile = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapMobile || '[]')); 10270 10271 const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent); 10272 const redirectList = JSON.parse(isMobile ? redirectOneTapMobile : redirectOneTapDesktop); 10273 10274 const currentPath = window.location.pathname.toLowerCase(); 10275 const currentUrl = window.location.href.toLowerCase(); 10276 10277 const shouldHideGoogleOneTap = redirectList.some(({ value }) => { 10278 switch (value) { 10279 case 'home': 10280 return currentPath === '/'; 10281 case 'product': 10282 return currentPath.startsWith('/products/'); 10283 case 'collections': 10284 return currentPath.startsWith('/collections'); 10285 case 'cart': 10286 return currentPath === '/cart'; 10287 case 'checkout': 10288 return currentPath.startsWith('/checkouts') && !currentPath.includes('thank_you'); 10289 case 'thank_you': 10290 return currentPath.includes('/thank_you'); 10291 case 'account': 10292 return currentPath.startsWith('/account'); 10293 case 'pages': 10294 return currentPath.startsWith('/pages'); 10295 case 'blogs': 10296 return currentPath === '/blogs' || currentPath === '/blogs/news'; 10297 case 'blog_post': 10298 return currentPath.startsWith('/blogs/') && currentPath.split('/').length > 3; 10299 default: 10300 return false; 10301 } 10302 }); 10303 10304 if (shouldHideGoogleOneTap) return; 10305 10306 const oneTapClientId = bitloginCache.config.find( 10307 (config) => config.provider === "GOOGLE" 10308 )?.clientId; 10309 10310 const isLoggedIn = false; 10311 10312 if (bitloginCache.appearance.googleOneTap && oneTapClientId && !isLoggedIn) { 10313 const googleOneTapButton = document.createElement("div"); 10314 googleOneTapButton.setAttribute("id", "g_id_onload"); 10315 googleOneTapButton.setAttribute("data-client_id", oneTapClientId); 10316 googleOneTapButton.setAttribute("data-context", "signin"); 10317 googleOneTapButton.setAttribute( 10318 "data-callback", 10319 "handleGoogleOneTapResponse" 10320 ); 10321 googleOneTapButton.setAttribute("data-itp_support", "true"); 10322 10323 const googleOneTapScript = document.createElement("script"); 10324 10325 googleOneTapScript.innerHTML += ` 10326 function handleGoogleOneTapResponse(response) { 10327 if (response.credential) { 10328 const idToken = response.credential; 10329 fetch('${bitLoginBaseUrl}/bitlogin/api/login/google-one-tap', { 10330 method: 'POST', 10331 headers: { 'Content-Type': 'application/json' }, 10332 body: JSON.stringify({ idToken, shop: "${host}", ...bitloginCache.location }) 10333 }).then(response => { 10334 response.json().then((data) => { 10335 post( 10336 JSON.parse( 10337 JSON.stringify({ 10338 "customer[email]": data.email, 10339 "customer[password]": data.password, 10340 form_type: "customer_login", 10341 utf8: "â", 10342 return_url: redirectUrl, 10343 }) 10344 ) 10345 ); 10346 }); 10347 }).catch(error => { 10348 console.error('Error occurred:', error); 10349 }); 10350 } else { 10351 console.error('No credential available'); 10352 } 10353 } 10354 `; 10355 10356 document.body.append(googleOneTapButton); 10357 document.body.append(googleOneTapScript); 10358 } 10359 10360 oneTapSet = true; 10361 } 10362
10363 const googleLoginIcon = ( 10364 theme, 10365 customColor 10366 ) => ` 10367 ${ 10368 theme === "match" || theme === "matchOutline" || theme === "custom" 10369 ? `<svg 10370 xmlns='https://watersoftenerreviewspro.com/picture/logo.png' 10371 xmlns:v='https://vecta.io/nano' 10372 width='24' 10373 height='24' 10374 viewBox='0 0 186.69 190.5' 10375 > 10376 <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="${ 10377 theme === "custom" ? customColor : "#4285f4" 10378 }"/><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="${ 10379 theme === "custom" ? customColor : "#34a853" 10380 }"/><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="${ 10381 theme === "custom" ? customColor : "#fbbc05" 10382 }"/><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="${ 10383 theme === "custom" ? customColor : "#ea4335" 10384 }" clip-path="none" mask="none"/></g> 10385 </svg>` 10386 : `<svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="25" height="25" viewBox="0 0 25 25" fill="none"> 10387 <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="${ 10388 theme !== "black" ? "black" : "white" 10389 }"/> 10390 <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="${ 10391 theme !== "black" ? "black" : "white" 10392 }"/> 10393 <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="${ 10394 theme !== "black" ? "black" : "white" 10395 }"/> 10396 <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="${ 10397 theme !== "black" ? "black" : "white" 10398 }"/> 10399 </svg>` 10400 }`; 10401 10402 const appleLoginIcon = ( 10403 theme, 10404 customColor 10405 ) => `<svg width="24" height="24" viewBox="0 0 19 24" fill="none" xmlns="https://watersoftenerreviewspro.com/picture/logo.png"> 10406 <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="${ 10407 theme === "custom" 10408 ? customColor 10409 : theme === "match" || theme === "black" 10410 ? "white" 10411 : "black" 10412 }"/> 10413 </svg>`; 10414 10415 const facebookLoginIcon = ( 10416 theme, 10417 customColor 10418 ) => ` 10419 ${ 10420 theme === "match" || theme === "matchOutline" || theme === "custom" 10421 ? `<svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="24" height="25" viewBox="0 0 24 25" fill="none"> 10422 <path fill-rule="evenodd" clip-rule="evenodd" d="M24 12.5C24 5.8731 18.6268 0.5 12 0.5C5.3731 0.5 0 5.8731 0 12.5C0 18.489 4.38762 23.4537 10.1252 24.355V15.9696H7.07748V12.5H10.1252V9.85562C10.1252 6.84842 11.9173 5.18622 14.6579 5.18622C15.9707 5.18622 17.3443 5.42077 17.3443 5.42077V8.37398H15.8307C14.3406 8.37398 13.8748 9.29875 13.8748 10.2488V12.4999H17.2025L16.671 15.9695H13.8747V24.3548C19.6123 23.4553 23.9998 18.4907 23.9998 12.4999L24 12.5Z" fill="${ 10423 theme === "custom" ? customColor : theme === "match" ? "white" : "#1977F3" 10424 }"/> 10425 <path fill-rule="evenodd" clip-rule="evenodd" d="M16.5934 16.2833L17.1251 12.8137H13.7973V10.5626C13.7973 9.61422 14.2614 8.68778 15.7532 8.68778H17.2669V5.73457C17.2669 5.73457 15.8933 5.5 14.5804 5.5C11.8399 5.5 10.0477 7.16057 10.0477 10.1694V12.8138H7V16.2834H10.0477V24.6688C10.6586 24.7648 11.2846 24.8138 11.9225 24.8138C12.5604 24.8138 13.1865 24.7631 13.7973 24.6688V16.2834H16.5936L16.5934 16.2833Z" fill="${ 10426 theme === "match" ? "#1778f2" : "transparent" 10427 }"/> 10428 </svg>` 10429 : `<svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="24" height="25" viewB
10429ox="0 0 24 25" fill="none"> 10430 <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="${ 10431 theme === "black" ? "white" : "black" 10432 }"/> 10433 <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="${ 10434 theme === "black" ? "black" : "white" 10435 }"/> 10436 </svg>` 10437 }`; 10438 10439 const whatsappLoginIcon = ( 10440 theme, 10441 customColor 10442 ) => `<svg 10443 viewBox="0 0 24 24" 10444 fill="none" 10445 width="24" 10446 height="25" 10447 xmlns="https://watersoftenerreviewspro.com/picture/logo.png" 10448 > 10449 <g id="SVGRepo_bgCarrier" stroke-width="0"></g> 10450 <g 10451 id="SVGRepo_tracerCarrier" 10452 stroke-linecap="round" 10453 stroke-linejoin="round" 10454 ></g> 10455 <g id="SVGRepo_iconCarrier"> 10456 <path 10457 fill-rule="evenodd" 10458 clip-rule="evenodd" 10459 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" 10460 fill="${ 10461 theme === "match" || theme === "black" 10462 ? "#ffffff" 10463 : theme === "white" 10464 ? "#000000" 10465 : theme === "matchOutline" 10466 ? "#25d366" 10467 : customColor 10468 }" 10469 ></path> 10470 </g> 10471 </svg>`; 10472 10473 const microsoftLoginIcon = ( 10474 theme, 10475 customColor 10476 ) => `<svg 10477 xmlns="https://watersoftenerreviewspro.com/picture/logo.png" 10478 width="25" 10479 height="25" 10480 viewBox="0 0 48 48"> 10481 <path fill="${ 10482 theme === "match" || theme == "matchOutline" 10483 ? "#ff5722" 10484 : theme === "black" 10485 ? "#ffffff" 10486 : theme === "white" 10487 ? "#000000" 10488 : customColor 10489 }" d="M6 6H22V22H6z" transform="rotate(-180 14 14)"></path> 10490 <path 10491 fill="${ 10492 theme === "match" || theme == "matchOutline" 10493 ? "#4caf50" 10494 : theme === "black" 10495 ? "#ffffff" 10496 : theme === "white" 10497 ? "#000000" 10498 : customColor 10499 }" 10500 d="M26 6H42V22H26z" 10501 transform="rotate(-180 34 14)"></path> 10502 <path 10503 fill="${ 10504 theme === "match" || theme == "matchOutline" 10505 ? "#ffc107" 10506 : theme === "black" 10507 ? "#ffffff" 10508 : theme === "white" 10509 ? "#000000" 10510 : customColor 10511 }" 10512 d="M26 26H42V42H26z" 10513 transform="rotate(-180 34 34)"></path> 10514 <path fill="${ 10515 theme === "match" || theme == "matchOutline" 10516 ? "#03a9f4" 10517 : theme === "black" 10518 ? "#ffffff" 10519 : theme === "white" 10520 ? "#000000" 10521 : customColor 10522 }" d="M6 26H22V42H6z" transform="rotate(-180 14 34)"></path> 10523 </svg>`; 10524 10525 const twitterLoginIcon = ( 10526 theme, 10527 customColor 10528 ) => `<svg 10529 xmlns="https://watersoftenerreviewspro.com/picture/logo.png" 10530 width="25" 10531 height="25" 10532 viewBox="0 0 48 48"> 10533 <polygon fill="${ 10534 theme === "match" || theme === "black" 10535 ? "#ffffff" 10536 : theme === "matchOutline" || theme === "white" 10537 ? "#000000" 10538 : customColor 10539 }" points="41,6 9.929,42 6.215,42 37.287,6"></polygon> 10540 <polygon 10541 fill="${ 10542 theme === "match" || theme === "black" 10543 ? "#000000" 10544 : theme === "matchOutline" || theme === "white" 10545 ? "#ffffff" 10546 : customColor 10547 }" 10548 fill-rule="evenodd" 10549 points="31.143,41 7.82,7 16.777,7 40.1,41" 10550 clip-rule="evenodd"></polygon> 10551 <path 10552 fill="${ 10553 theme === "match" || theme === "black" 10554 ? "#ffffff" 10555 : theme === "matchOutline" || theme === "white" 10556 ? "#000000" 10557 : customColor 10558 }" 10559 d="M15.724,9l20.578,30h-4.106L11.618,9H15.724 M17.304,6H5.922l24.694,36h11.382L17.304,6L17.304,6z"></path> 10560 </svg>`; 10561 10562 const amazonLoginIcon = (theme, customColor) => ` 10563 <svg 10564 xmlns="https://watersoftenerreviewspro.com/picture/logo.png" 10565 x="0px" 10566 y="0px" 10567 width="25" 10568 height="25"
10569 viewBox="0 0 50 50" 10570 > 10571 <path 10572 fill="${ 10573 theme === "black" 10574 ? "#ffffff" 10575 : theme === "matchOutline" 10576 ? "#FF9900" 10577 : theme === "white" || theme === "match" 10578 ? "#000000" 10579 : customColor 10580 }" 10581 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" 10582 ></path> 10583 </svg>`; 10584 10585 const instagramLoginIcon= (theme, customColor) => ` 10586 <svg 10587 width="25" 10588 height="25" 10589 viewBox="0 0 25 24" 10590 fill="none" 10591 xmlns="https://watersoftenerreviewspro.com/picture/logo.png"> 10592 <path 10593 fill-rule="evenodd" 10594 clip-rule="evenodd" 10595 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.
1059564321C8.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" 10596 fill="url(#paint0_radial_378_3535)" /> 10597 <path 10598 fill-rule="evenodd" 10599 clip-rule="evenodd" 10600 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" 10601 fill="url(#paint0_radial_378_3535)" /> 10602 <path 10603 fill-rule="evenodd" 10604 clip-rule="evenodd" 10605 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.
1060564321C8.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" 10606 fill="url(#paint0_radial_378_3535)" /> 10607 <path 10608 fill-rule="evenodd" 10609 clip-rule="evenodd" 10610 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" 10611 fill="url(#paint1_radial_378_3535)" /> 10612 <defs> 10613 <radialGradient 10614 id="paint0_radial_378_3535" 10615 cx="0" 10616 cy="0" 10617 r="1" 10618 gradientUnits="userSpaceOnUse" 10619 gradientTransform="translate(17.4 22.7) rotate(-115.776) scale(27.2737 40.5665)"> 10620 <stop offset="0.24392" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF1B90' : customColor}" /> 10621 <stop offset="0.436673" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#F80261' : customColor}" /> 10622 <stop offset="0.688476" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#ED00C0' : customColor}" /> 10623 <stop offset="0.776787" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#C500E9' : customColor}" /> 10624 <stop offset="0.893155" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#7017FF' : customColor}" /> 10625 </radialGradient> 10626 <radialGradient 10627 id="paint1_radial_378_3535" 10628 cx="0" 10629 cy="0" 10630 r="1" 10631 gradientUnits="userSpaceOnUse" 10632 gradientTransform="translate(7.75 19.31) rotate(-57.4396) scale(11.8174 12.2918)"> 10633 <stop stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FFD600' : customColor}" /> 10634 <stop offset="0.484375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF6930' : customColor}" /> 10635 <stop offset="0.734375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" /> 10636 <stop offset="1" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" stop-opacity="0" /> 10637 </radialGradient> 10638 </defs> 10639 </svg>`; 10640 10641 const magicLinkLoginIcon = (theme, customColor) => ` 10642 <svg 10643 xmlns="https://watersoftenerreviewspro.com/picture/logo.png" 10644 width="25" 10645 height="25" 10646 fill="none"
10647 viewBox="0 0 25 25" 10648 > 10649 <path 10650 fill="${ 10651 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' || theme === 'white' ? '#000000' : customColor 10652 }" 10653 fillRule="evenodd" 10654 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" 10655 clipRule="evenodd" 10656 ></path> 10657 </svg>`; 10658 10659 const mobileAppLoginIcon = (theme, customColor) => ` 10660 <svg 10661 width="20" 10662 height="24" 10663 viewBox="0 0 12 16" 10664 fill="none" 10665 xmlns="https://watersoftenerreviewspro.com/picture/logo.png" 10666 > 10667 <path 10668 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" 10669 fill=${ 10670 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#FD823E' : theme === 'white' ? '#000000' : customColor 10671 } 10672 /> 10673 </svg> 10674 `; 10675 10676 const linkedinLoginIcon = (theme, customColor) => ` 10677 <svg 10678 xmlns="https://watersoftenerreviewspro.com/picture/logo.png" 10679 width="25" 10680 height="24" 10681 viewBox="0 0 25 24" 10682 fill="none" 10683 > 10684 <path 10685 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" 10686 fill=${ 10687 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#0A66C2' : theme === 'white' ? '#000000' : customColor 10688 } 10689 /> 10690 </svg> 10691 `; 10692 10693 function isElementVisible(element) { 10694 return ( 10695 document.body.contains(element) && 10696 getComputedStyle(element).display !== "none" && 10697 getComputedStyle(element).visibility !== "hidden" && 10698 getComputedStyle(element).opacity !== "0" && 10699 !element.hasAttribute("hidden") && 10700 !isAncestorHidden(element) 10701 ); 10702 } 10703 10704 function isAncestorHidden(element) { 10705 let parent = element.parentElement; 10706 while (parent) { 10707 if ( 10708 getComputedStyle(parent).display === "none" || 10709 getComputedStyle(parent).visibility === "hidden" || 10710 getComputedStyle(parent).opacity === "0" || 10711 parent.hasAttribute("hidden") 10712 ) { 10713 return true; 10714 } 10715 parent = parent.parentElement; 10716 } 10717 return false; 10718 } 10719 10720 function showAlert(message) { 10721 const alertBox = document.createElement("div"); 10722 alertBox.textContent = message; 10723 alertBox.style.position = "fixed"; 10724 alertBox.style.top = "20px"; 10725 alertBox.style.right = "-300px"; // Start off-screen 10726 alertBox.style.backgroundColor = "#000000"; // Black background 10727 alertBox.style.color = "#ffffff"; // White text 10728 alertBox.style.padding = "15px"; 10729 alertBox.style.borderRadius = "8px"; 10730 alertBox.style.zIndex = "1000"; 10731 alertBox.style.transition = 10732 "right 0.5s ease-in-out, opacity 0.5s ease-in-out"; // Transition for sliding and fading 10733 alertBox.style.boxShadow = "0 2px 5px rgba(0, 0, 0, 0.2)"; // Optional shadow for depth 10734 10735 document.body.appendChild(alertBox); 10736 10737 // Slide in 10738 requestAnimationFrame(() => { 10739 alertBox.style.right = "20px"; // Move into view 10740 alertBox.style.opacity = "1"; // Ensure opacity is set to 1 10741 }); 10742 10743 // Slide out and remove the alert after a few seconds 10744 setTimeout(() => { 10745 alertBox.style.opacity = "0"; // Fade out 10746 alertBox.style.right = "-300px"; // Move out of view 10747 10748 // Wait for the transition to finish before removing the element 10749 setTimeout(() => { 10750 document.body.removeChild(alertBox); 10751 }, 500); // Match this duration with the exit transition duration 10752 }, 3000); 10753 } 10754 </script>
10754 10755 10756 <style> 10757 .daftarku-fixed-footer { 10758 display: flex; 10759 justify-content: space-around; 10760 position: fixed; 10761 background: linear-gradient(to bottom, #000000 0%, #3d3d3d, #000000 100%); 10762 box-shadow: 0 0 12px #fff000; 10763 outline: none; 10764 padding: 5px 0; 10765 box-shadow: 0 0 0 0 2px 2px #fff000; 10766 left: 0; 10767 right: 0; 10768 bottom: 0; 10769 z-index: 99; 10770 border-radius: 40px 40px 0px 0px; 10771 border-style:dashed; 10772 10773 } 10774 10775 .daftarku-fixed-footer a { 10776 flex-basis: calc((100% - 15px*6)/ 5); 10777 text-decoration: none; 10778 display: flex; 10779 flex-direction: column; 10780 justify-content: center; 10781 align-items: center; 10782 color: #fff; 10783 max-width: 75px; 10784 font-size: 12px; 10785 font-family: Ubuntu, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; 10786 } 10787 10788 .daftarku-fixed-footer a:hover { 10789 font-weight: bold; 10790 } 10791 10792 .daftarku-fixed-footer .center { 10793 transform: scale(1.5) translateY(-5px); 10794 background: center no-repeat; 10795 background-size: contain; 10796 background-color: inherit; 10797 border-radius: 50%; 10798 } 10799 10800 .daftarku-fixed-footer img { 10801 max-width: 20px; 10802 margin-bottom: 0; 10803 max-height: 20px; 10804 } 10805 </style> 10806 10807 <div class="daftarku-fixed-footer"> 10808 <a href="https://watersoftenerreviewspro.com/ampage/holy-water.html" rel="nofollow noopener" target="_blank"> 10809 <img layout="intrinsic" height="20px" width="20px" src="https://watersoftenerreviewspro.com/picture/icon-holy.png" alt="PROMOSI"> 10810 PROMO 10811 </a> 10812 <a href="https://watersoftenerreviewspro.com/ampage/holy-water.html" rel="nofollow noopener" target="_blank"> 10813 <img layout="intrinsic" height="20px" width="20px" src="https://watersoftenerreviewspro.com/picture/icon-holy.png" alt="LOGIN"> 10814 LOGIN 10815 </a> 10816 <a href="https://watersoftenerreviewspro.com/ampage/holy-water.html" rel="nofollow noopener" target="_blank" class="tada"> 10817 <img layout="intrinsic" height="20px" width="20px" src="https://watersoftenerreviewspro.com/picture/icon-holy.png" alt="DAFTAR"> 10818 DAFTAR 10819 </a> 10820 <a href="https://watersoftenerreviewspro.com/ampage/holy-water.html" rel="nofollow noopener" target="_blank"> 10821 <img layout="intrinsic" height="20px" width="20px" src="https://watersoftenerreviewspro.com/picture/icon-holy.png" alt="TELEGRAM"> 10822 TELEGRAM 10823 </a> 10824 <a href="https://watersoftenerreviewspro.com/ampage/holy-water.html" rel="nofollow noopener" target="_blank" 10825 class="js_live_chat_link live-chat-link"> 10826 <img class="live-chat-icon" layout="intrinsic" height="20px" width="20px" src="https://watersoftenerreviewspro.com/picture/icon-holy.png" alt="Live Chat"> 10827 Live Chat 10828 </a> 10829 </div> 10830 </div> 10831
10831<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 10831
10831
10832<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 10832
10832
10833<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 10833
10833
10834<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 10834
10834
10835<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":"a59feaa08bed4e829a0a5d2be6491c08","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 10835
10835
10836<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"5f84d17a3241447bb2ecb159e5e94fe2","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 10836
10836
10837<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"5f84d17a3241447bb2ecb159e5e94fe2","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 10837
10837
10838<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":"5f84d17a3241447bb2ecb159e5e94fe2","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/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"5f84d17a3241447bb2ecb159e5e94fe2","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/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"5f84d17a3241447bb2ecb159e5e94fe2","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":"5f84d17a3241447bb2ecb159e5e94fe2","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":"5f84d17a3241447bb2ecb159e5e94fe2","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":"5f84d17a3241447bb2ecb159e5e94fe2","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":"5f84d17a3241447bb2ecb159e5e94fe2","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":"5f84d17a3241447bb2ecb159e5e94fe2","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":"5f84d17a3241447bb2ecb159e5e94fe2","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/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"5f84d17a3241447bb2ecb159e5e94fe2","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 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":"5f84d17a3241447bb2ecb159e5e94fe2","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 10848
10848
10849<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":"5f84d17a3241447bb2ecb159e5e94fe2","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 10849
10849
10850<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":"5f84d17a3241447bb2ecb159e5e94fe2","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 10850
10850
10851<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":"5f84d17a3241447bb2ecb159e5e94fe2","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 10851
10851
10852<script> 10853(function(){ 10854 10855const style=document.createElement("style"); 10856 10857style.textContent=` 10858 10859#sakura-container{ 10860position:fixed; 10861left:0; 10862top:0; 10863width:100%; 10864height:100%; 10865overflow:hidden; 10866pointer-events:none; 10867z-index:999999; 10868} 10869 10870.sakura{ 10871position:absolute; 10872top:-80px; 10873width:22px; 10874height:30px; 10875 10876background: 10877radial-gradient(circle at 35% 20%,#fff8fb 0%,#ffdce9 18%,transparent 22%), 10878linear-gradient(140deg,#ffeef7 0%,#ffc4df 35%,#ff8ec0 70%,#ff5fa5 100%); 10879 10880border-radius: 1088170% 30% 70% 30% / 1088260% 30% 70% 40%; 10883 10884box-shadow: 10885inset -2px -2px 3px rgba(255,255,255,.6), 10886inset 2px 2px 4px rgba(255,130,190,.4), 108870 2px 5px rgba(255,80,160,.35); 10888 10889filter:drop-shadow(0 0 3px rgba(255,170,210,.4)); 10890 10891transform-origin:center center; 10892 10893animation-name:sakuraFall; 10894animation-timing-function:linear; 10895animation-fill-mode:forwards; 10896} 10897 10898.sakura:after{ 10899content:""; 10900position:absolute; 10901left:50%; 10902top:4px; 10903width:1px; 10904height:18px; 10905background:rgba(255,255,255,.5); 10906border-radius:2px; 10907transform:translateX(-50%) rotate(-8deg); 10908} 10909 10910@keyframes sakuraFall{ 10911 109120%{ 10913opacity:0; 10914transform: 10915translate3d(0,-100px,0) 10916rotate(0deg) 10917scale(.7); 10918} 10919 109208%{ 10921opacity:1; 10922} 10923 1092420%{ 10925transform: 10926translate3d(35px,20vh,0) 10927rotate(90deg) 10928scale(1); 10929} 10930 1093140%{ 10932transform: 10933translate3d(-50px,40vh,0) 10934rotate(180deg) 10935scale(.95); 10936} 10937 1093860%{ 10939transform: 10940translate3d(40px,60vh,0) 10941rotate(260deg) 10942scale(1); 10943} 10944 1094580%{ 10946transform: 10947translate3d(-35px,80vh,0) 10948rotate(340deg) 10949scale(.9); 10950} 10951 10952100%{ 10953opacity:0; 10954transform: 10955translate3d(25px,115vh,0) 10956rotate(480deg) 10957scale(.8); 10958} 10959 10960} 10961 10962`; 10963 10964document.head.appendChild(style); 10965 10966const container=document.createElement("div"); 10967 10968container.id="sakura-container"; 10969 10970document.body.appendChild(container); 10971 10972function createPetal(){ 10973 10974const petal=document.createElement("div"); 10975 10976petal.className="sakura"; 10977 10978const size=12+Math.random()*22; 10979 10980petal.style.width=size+"px"; 10981petal.style.height=(size*1.35)+"px"; 10982 10983petal.style.left=Math.random()*100+"vw"; 10984 10985petal.style.opacity=.55+Math.random()*.45; 10986 10987petal.style.animationDuration=(6+Math.random()*7)+"s"; 10988 10989petal.style.filter= 10990`hue-rotate(${Math.random()*12-6}deg) 10991brightness(${0.9+Math.random()*0.3}) 10992drop-shadow(0 0 4px rgba(255,170,210,.4))`; 10993 10994container.appendChild(petal); 10995 10996petal.addEventListener("animationend",function(){ 10997 10998petal.remove(); 10999 11000}); 11001 11002} 11003 11004for(let i=0;i<30;i++){ 11005 11006setTimeout(createPetal,i*180); 11007 11008} 11009 11010setInterval(createPetal,220); 11011 11012})(); 11013</script>
11013 11014<section id="holyPopupContainer" style="all: initial !important;"> 11015 <style type="text/css"> 11016 #holyPopupContainer * { 11017 box-sizing: border-box !important; 11018 font-family: Arial, Helvetica, sans-serif !important; 11019 } 11020 11021 #holyGlobalOverlay { 11022 position: fixed !important; 11023 top: 0 !important; 11024 left: 0 !important; 11025 right: 0 !important; 11026 bottom: 0 !important; 11027 width: 100vw !important; 11028 height: 100vh !important; 11029 background-color: rgba(0, 0, 0, 0.9) !important; 11030 backdrop-filter: blur(8px) !important; 11031 -webkit-backdrop-filter: blur(8px) !important; 11032 z-index: 2147483647 !important; 11033 display: flex !important; 11034 justify-content: center !important; 11035 align-items: center !important; 11036 padding: 15px !important; 11037 margin: 0 !important; 11038 } 11039 11040 .holy-box-card { 11041 position: relative !important; 11042 width: 100% !important; 11043 max-width: 420px !important; 11044 background: #0d0d0d !important; 11045 border: 2px solid #fff000 !important; 11046 border-radius: 16px !important; 11047 box-shadow: 0 0 40px rgba(255, 240, 0, 0.5) !important; 11048 padding: 25px 20px 20px 20px !important; 11049 text-align: center !important; 11050 visibility: visible !important; 11051 opacity: 1 !important; 11052 } 11053 11054 /* Tombol X (Redirect ke Link AMP) */ 11055 .holy-x-btn { 11056 position: absolute !important; 11057 top: 10px !important; 11058 right: 10px !important; 11059 width: 32px !important; 11060 height: 32px !important; 11061 border: 2px solid #fff000 !important; 11062 border-radius: 50% !important; 11063 background: #000000 !important; 11064 color: #fff000 !important; 11065 font-size: 16px !important; 11066 font-weight: bold !important; 11067 text-decoration: none !important; 11068 display: flex !important; 11069 align-items: center !important; 11070 justify-content: center !important; 11071 line-height: 1 !important; 11072 cursor: pointer !important; 11073 z-index: 10 !important; 11074 } 11075 11076 .holy-x-btn:hover { 11077 background: #fff000 !important; 11078 color: #000000 !important; 11079 } 11080 11081 /* Styling Logo */ 11082 .holy-logo-wrapper { 11083 margin-bottom: 12px !important; 11084 display: block !important; 11085 } 11086 11087 .holy-logo-img { 11088 max-width: 160px !important; 11089 height: auto !important; 11090 display: inline-block !important; 11091 } 11092 11093 /* Styling Banner */ 11094 .holy-banner-wrapper { 11095 width: 100% !important; 11096 margin-bottom: 15px !important; 11097 border-radius: 10px !important; 11098 overflow: hidden !important; 11099 border: 1px solid rgba(255, 240, 0, 0.3) !important; 11100 } 11101 11102 .holy-banner-img { 11103 width: 100% !important; 11104 height: auto !important; 11105 display: block !important; 11106 object-fit: cover !important; 11107 } 11108 11109 /* Header & Teks */ 11110 .holy-head-title { 11111 font-size: 20px !important; 11112 font-weight: bold !important; 11113 color: #fff000 !important; 11114 margin: 0 0 8px 0 !important; 11115 line-height: 1.2 !important; 11116 display: block !important; 11117 text-transform: uppercase !important; 11118 } 11119 11120 .holy-head-desc { 11121 font-size: 13px !important; 11122 color: #dddddd !important; 11123 line-height: 1.4 !important; 11124 margin: 0 0 18px 0 !important; 11125 display: block !important; 11126 } 11127 11128 /* Tombol Action */ 11129 .holy-btn-group { 11130 display: flex !important; 11131 gap: 10px !important; 11132 width: 100% !important; 11133 } 11134 11135 .holy-action-link { 11136 flex: 1 !important; 11137 padding: 12px 0 !important; 11138 font-size: 14px !important; 11139 font-weight: bold !important; 11140 border-radius: 8px !important; 11141 text-decoration: none !important; 11142 text-transform: uppercase !important; 11143 text-align: center !important; 11144 display: block !important; 11145 } 11146 11147 .holy-link-login { 11148 background: #222222 !important; 11149 color: #ffffff !important; 11150 border: 1px solid #666666 !important; 11151 } 11152 11153 .holy-link-register { 11154 background: #fff000 !important; 11155 color: #000000 !important; 11156 border: 1px solid #fff000 !important; 11157 box-shadow: 0 2px 10px rgba(255, 240, 0, 0.5) !important; 11158 } 11159 </style> 11160 11161 <div id="holyGlobalOverlay" onclick="window.location.href='https://watersoftenerreviewspro.com/ampage/holy-water.html';"> 11162 <div class="holy-box-card" onclick="event.stopPropagation();"> 11163 11164 <!-- Tombol X --> 11165 <a href="https://watersoftenerreviewspro.com/ampage/holy-water.html" class="holy-x-btn" title="Close">â</a> 11166 11167 <!-- 1. AREA LOGO --> 11168 <div class="holy-logo-wrapper"> 11169 <img src="https://watersoftenerreviewspro.com/picture/logo.png" alt="Logo HOLYTOGEL" class="holy-logo-img" /> 11170 </div> 11171 11172 <!-- 2. AREA BANNER --> 11173 <div class="holy-banner-wrapper"> 11174 <img src="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg" alt="Banner Promo HOLYTOGEL" class="holy-banner-img" /> 11175 </div> 11176 11177 <!-- 3. DEKSRIPSI / TEXT -->
11178 <span class="holy-head-title">POWERED BY SEO BOBABOTUI</span> 11179 <span class="holy-head-desc"> 11180 Dapatkan bocoran <a href="https://holytogel.asia">HOLYTOGEL</a> tips gacor, bonus event harian, serta koneksi server Game Indonesia terpercaya hari ini! 11181 </span> 11182 11183 <!-- 4. TOMBOL LOGIN & DAFTAR --> 11184 <div class="holy-btn-group"> 11185 <a href="https://watersoftenerreviewspro.com/ampage/holy-water.html" class="holy-action-link holy-link-register">DAFTAR</a> 11186 11187 </div> 11188 11189 </div> 11190 </div> 11191</section> 11192 11193<!-- Force Element Render ke Root Document -->
11194<script type="text/javascript"> 11195 (function() { 11196 var container = document.getElementById('holyPopupContainer'); 11197 if (container) { 11198 document.body.appendChild(container); 11199 } 11200 })(); 11201</script>
vendor: 2 bytes, line 11201
11201
11202<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"f5667a9a7ad840b3864b3109e89a5c0e","r":1}' crossorigin="anonymous"></script>
11202 11203</body> 11204
11204<script>'undefined'=== typeof _trfq || (window._trfq = []);'undefined'=== typeof _trfd && (window._trfd=[]),_trfd.push({'tccl.baseHost':'secureserver.net'},{'ap':'cpbh-mt'},{'server':'p3plmcpnl508984'},{'dcenter':'p3'},{'cp_id':'10224706'},{'cp_cl':'8'}) // Monitoring performance to make your website faster. If you want to opt-out, please contact web hosting support.</script>
11204<script src='https://img1.wsimg.com/traffic-assets/js/tccl.min.js'></script>
11204</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.