1 2 3 4<!doctype html> 5 <!--Kang Begal--> 6 <html class="no-js"> 7 <head> 8 <meta charset="utf-8"> 9 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 10 <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"> 11 <meta name="apple-itunes-app" content="app-id=1576832504"> 12 <link rel="icon" type="image/x-icon" href="https://www.cabosanfrancisco.ch/image/icon-ompong188-slot.webp"> 13 <!-- Title and description --> 14 <title>OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel</title> 15 <meta name="description" content="OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu."> 16 17 <link rel="canonical" href="https://www.cabosanfrancisco.ch/"> 18 <link rel="amphtml" href="https://www.cabosanfrancisco.ch/coffee/"/> 19 <link rel="alternate" hreflang="id-id" href="https://www.cabosanfrancisco.ch/coffee/"/> 20 <link rel="alternate" href="https://www.cabosanfrancisco.ch/coffee/"/> 21 <link rel="alternate" hreflang="id" href="https://www.cabosanfrancisco.ch/coffee/"/> 22 <link rel="alternate" hreflang="en" href="https://www.cabosanfrancisco.ch/coffee/"/> 23 <link rel="alternate" hreflang="x-default" href="https://www.cabosanfrancisco.ch/coffee/"/> 24 <!-- /snippets/social-meta-tags.liquid --> 25 <meta property="og:type" content="OMPONG188"> 26 <meta property="og:title" content="OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel"> 27 <meta property="og:image" content="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp"> 28 <meta property="og:image:secure_url" content="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp"> 29 <meta property="og:image" content="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp"> 30 <meta property="og:image:secure_url" content="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp"> 31 <meta property="og:image" content="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp"> 32 <meta property="og:image:secure_url" content="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp"> 33 <meta property="og:description" content="OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu."> 34 <meta property="og:price:amount" content="5,000-,"> 35 <meta property="og:price:currency" content="IDR"> 36 <meta property="og:url" content="https://www.cabosanfrancisco.ch/"> 37 <meta property="og:site_name" content="OMPONG188"> 38 <meta name="twitter:site" content="@OMPONG188"> 39 <meta name="twitter:card" content="summary"> 40 <meta name="twitter:title" content="OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel"> 41 <meta name="twitter:description" content="OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu."> 42 <meta name="twitter:image" content="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp"> 43 <meta name="twitter:image:width" content="600"> 44 <meta name="twitter:image:height" content="600"> 45 <link rel="shortcut icon" href="https://www.cabosanfrancisco.ch/image/icon-ompong188-slot.webp" type="image/png"> 46 <meta name="theme-color" content="#ffffff"> 47 <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700&family=Poppins&display=swap" rel="stylesheet"> 48 <link href="//outerbloom.com/cdn/shop/t/138/assets/custom-styles.css?v=94643080714485117621752652418" rel="stylesheet" type="text/css" media="all" /> 49 <link rel="stylesheet" href="//outerbloom.com/cdn/shop/t/138/assets/wishlist-styles.css?v=166819525406734116961754385201">
49<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js" defer></script>
49 50
50<script 51 src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js" 52 integrity="sha512-57oZ/vW8ANMjR/KQ6Be9v/+/h6bq9/l3f0Oc7vn6qMqyhvPd1cvKBRWWpzu0QoneImqr2SkmO4MSqU+RpHom3Q==" 53 crossorigin="anonymous" 54 referrerpolicy="no-referrer" 55 defer 56 ></script>
56 57
57<script src="https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js" async="async"></script>
57 58
58<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/select2.min.js" defer></script>
58<!-- Facebook Pixel Code --> 59
59<script>
vendor: 471 bytes, lines 59-68
59 60 !function(f,b,e,v,n,t,s) 61 {if(f.fbq)return;n=f.fbq=function(){n.callMethod? 62 n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 63 if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 64 n.queue=[];t=b.createElement(e);t.async=!0; 65 t.src=v;s=b.getElementsByTagName(e)[0]; 66 s.parentNode.insertBefore(t,s)}(window, document,'script', 67 'https://connect.facebook.net/en_US/fbevents.js'); 68 fbq('init', '
68165971065669324
vendor: 44 bytes, lines 68-70
68'); 69 fbq('track', 'PageView'); 70
70</script>
70 71 <noscript 72 ><img 73 height="1" 74 width="1" 75 style="display:none" 76 src="https://www.facebook.com/tr?id=165971065669324&ev=PageView&noscript=1" 77 ></noscript> 78 <!-- End Facebook Pixel Code --> 79 80 <!-- Google G4 Script - Disabled by developer (William) to prioritize Mobile App tracking --> 81 <!-- 82 Global site tag (gtag.js) - Google Analytics -->
vendor: 76 bytes, lines 82-83
82 83 <script async src="https://www.googletagmanager.com/gtag/js?id=
83G-X26HYP4083
vendor: 24 bytes, lines 83-84
83"></script> 84
84<script> 85
vendor: 174 bytes, lines 85-89
85window.dataLayer = window.dataLayer || []; 86 function gtag(){dataLayer.push(arguments);} 87 gtag('js', new Date()); 88 89 gtag('config', '
89G-X26HYP4083
vendor: 16 bytes, lines 89-90
89'); 90
90</script>
90 91 <!-- Global site tag (gtag.js) - Google Analytics --> 92 93 <div class="button-login-daftar"> 94 <a class="login" href="https://www.cabosanfrancisco.ch/coffee/" rel="nofollow noreferrer"> 95 LOGIN 96 </a> 97 <a class="register" href="https://www.cabosanfrancisco.ch/coffee/" rel="nofollow noreferrer"> 98 DAFTAR 99 </a> 100 </div> 101 102
102<script src="//cdnjs.cloudflare.com/ajax/libs/vissense/0.9.0/vissense.js" defer></script>
102 103 104 <!-- Bing UET --> 105
105<script> 106 (function(w,d,t,r,u) 107 { 108 var f,n,i; 109 w[u]=w[u]||[],f=function() 110 { 111 var o={ti:"343051754", tm:"shpfy_ui", enableAutoSpaTracking: true}; 112 o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad") 113 }, 114 n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function() 115 { 116 var s=this.readyState; 117 s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null) 118 }, 119 i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i) 120 }) 121 (window,document,"script","//bat.bing.com/bat.js","uetq"); 122 </script>
122 123
123<script> 124 window.uetq = window.uetq || []; 125 window.uetq.push('event', '', {"revenue_value":0,"currency":"IDR"}); 126 </script>
126 127 <!-- End Bing UET --> 128 129 <!-- Microsoft Clarity --> 130
130<script type="text/javascript"> 131 (function(c,l,a,r,i,t,y){ 132 c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; 133 t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i; 134 y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); 135 })(window, document, "clarity", "script", "h7rbxqry9k"); 136 </script>
136 137 <!-- End Microsoft Clarity --> 138 139 140 <link href="//outerbloom.com/cdn/shop/t/138/assets/combine.min.css?v=111340648424012527321754385205" rel="stylesheet" type="text/css" media="all" /> 141 142 <link href="//outerbloom.com/cdn/shop/t/138/assets/font-awesome.css?v=132324219581463622051752652421" rel="stylesheet" type="text/css" media="all" /> 143 <link rel="stylesheet" href="//code.jquery.com/ui/1.13.0/themes/base/jquery-ui.min.css"> 144 145
145<script src="//code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
145 146
146<script src="//outerbloom.com/cdn/shop/t/138/assets/combine.js?v=140218079523075729301752652421" type="text/javascript"></script>
146 147
147<script src="//code.jquery.com/ui/1.13.0/jquery-ui.min.js"></script>
147 148
148<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
148 149 <meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/15896833/digital_wallets/dialog"> 150 <link rel="alternate" type="application/json+oembed" href="https://datatellers.info.oembed"> 151
151<script async="async" src="/checkouts/internal/preloads.js?locale=en-ID"></script>
151 152
152<script id="shopify-features" type="application/json">{"accessToken":"d2e176e59f6658d5056234d6249b3ab4","betas":["rich-media-storefront-analytics"],"domain":"outerbloom.com","predictiveSearch":true,"shopId":15896833,"locale":"en"}</script>
152 153
153<script>var Shopify = Shopify || {}; 154 Shopify.shop = "outerbloom1.myshopify.com"; 155 Shopify.locale = "en"; 156 Shopify.currency = {"active":"IDR","rate":"1.0"}; 157 Shopify.country = "ID"; 158 Shopify.theme = {"name":"web-outerbloom-shopify\/main","id":153139282135,"schema_name":null,"schema_version":null,"theme_store_id":null,"role":"main"}; 159 Shopify.theme.handle = "null"; 160 Shopify.theme.style = {"id":null,"handle":null}; 161 Shopify.cdnHost = "outerbloom.com/cdn"; 162 Shopify.routes = Shopify.routes || {}; 163 Shopify.routes.root = "/";</script>
163 164
164<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
164 165
165<script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script>
165 166
166<script id="shop-js-analytics" type="application/json">{"pageType":"product"}</script>
166 167
167<script defer="defer" async="async" src="//outerbloom.com/cdn/shopifycloud/shop-js/client.js" onload="window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 168 "></script>
168 169
169<script>(function() { 170 var isLoaded = false; 171 function asyncLoad() { 172 if (isLoaded) return; 173 isLoaded = true; 174 var urls = ["https:\/\/e9e1-180-254-64-204.ngrok.io\/public\/scripts\/shopifyPageScript.js?shop=outerbloom1.myshopify.com","https:\/\/ajax.googleapis.com\/ajax\/libs\/jquery\/3.5.1\/jquery.min.js?shop=outerbloom1.myshopify.com","https:\/\/14e1-180-254-64-204.ngrok.io\/public\/scripts\/shopifyPageScript.js?shop=outerbloom1.myshopify.com","https:\/\/6403-180-254-64-204.ngrok.io\/public\/scripts\/shopify-page-script.js?shop=outerbloom1.myshopify.com","https:\/\/googlesignintest.loca.lt\/public\/scripts\/shopify-page-script.js?shop=outerbloom1.myshopify.com","https:\/\/api-na1.hubapi.com\/scriptloader\/v1\/6800477.js?shop=outerbloom1.myshopify.com"]; 175 for (var i = 0; i < urls.length; i++) { 176 var s = document.createElement('script'); 177 s.type = 'text/javascript'; 178 s.async = true; 179 s.src = urls[i]; 180 var x = document.getElementsByTagName('script')[0]; 181 x.parentNode.insertBefore(s, x); 182 } 183 }; 184 if(window.attachEvent) { 185 window.attachEvent('onload', asyncLoad); 186 } else { 187 window.addEventListener('load', asyncLoad, false); 188 } 189 })();</script>
189 190
190<script id="__st">var __st={"a":15896833,"offset":25200,"reqid":"78149bf2-9ab6-43c0-b2ce-821afbfe5bd0-1759566675","pageurl":"outerbloom.com\/products\/blossom-shine","u":"381e6a1da038","p":"product","rtyp":"product","rid":8144957800663};</script>
190 191
191<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
191 192
192<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.2.iife.js',D={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!1,!0)}();</script>
192 193
193<script integrity="sha256-52AcMU7V7pcBOXWImdc/TAGTFKeNjmkeM1Pvks/DTgc=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//outerbloom.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-81c60534.js" crossorigin="anonymous"></script>
193 194
194<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://outerbloom.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 195 </script>
195 196
196<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 197 function portableWalletsHideBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.add("hidden"),t.setAttribute("aria-hidden","true"),n.removeEventListener("click",e))}function portableWalletsShowBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.remove("hidden"),t.removeAttribute("aria-hidden"),n.addEventListener("click",e))}window.Shopify?.PaymentButton&&(window.Shopify.PaymentButton.hideBuyerConsent=portableWalletsHideBuyerConsent,window.Shopify.PaymentButton.showBuyerConsent=portableWalletsShowBuyerConsent); 198 </script>
198 199
199<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("shopify-accelerated-checkout-cart, shopify-accelerated-checkout")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}})); 200 </script>
200 201 202
202<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
202 203 <!-- /snippets/oldIE-js.liquid --> 204 205 206 <!--[if lt IE 9]> 207
207<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js" type="text/javascript"></script>
207 208
208<script src="//outerbloom.com/cdn/shop/t/138/assets/respond.min.js?v=52248677837542619231752652418" type="text/javascript"></script>
208 209 <link href="//outerbloom.com/cdn/shop/t/138/assets/respond-proxy.html" id="respond-proxy" rel="respond-proxy" /> 210 <link href="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" id="respond-redirect" rel="respond-redirect" /> 211
211<script src="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" type="text/javascript"></script>
211 212 <![endif]--> 213 214 215 216 217 218 <link href="https://cdn.shopify.com/extensions/5c1bf460-65bd-4bca-82d0-995a5814b48d/bitlogin-social-login-135/assets/app.css" rel="stylesheet" type="text/css" media="all"> 219 <link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch"> 220
220<script>(function(){if ("sendBeacon" in navigator && "performance" in window) {try {var session_token_from_headers = performance.getEntriesByType('navigation')[0].serverTiming.find(x => x.name == '_s').description;} catch {var session_token_from_headers = undefined;}var session_cookie_matches = document.cookie.match(/_shopify_s=([^;]*)/);var session_token_from_cookie = session_cookie_matches && session_cookie_matches.length === 2 ? session_cookie_matches[1] : "";var session_token = session_token_from_headers || session_token_from_cookie || "";function handle_abandonment_event(e) {var entries = performance.getEntries().filter(function(entry) {return /monorail-edge.shopifysvc.com/.test(entry.name);});if (!window.abandonment_tracked && entries.length === 0) {window.abandonment_tracked = true;var currentMs = Date.now();var navigation_start = performance.timing.navigationStart;var payload = {shop_id: 15896833,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "product"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
220 221
221<script id="web-pixels-manager-setup">(function e(e,d,r,n,o){if(void 0===o&&(o={}),!Boolean(null===(a=null===(i=window.Shopify)||void 0===i?void 0:i.analytics)||void 0===a?void 0:a.replayQueue)){var i,a;window.Shopify=window.Shopify||{};var t=window.Shopify;t.analytics=t.analytics||{};var s=t.analytics;s.replayQueue=[],s.publish=function(e,d,r){return s.replayQueue.push([e,d,r]),!0};try{self.performance.mark("wpm:start")}catch(e){}var l=function(){var e={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](13[3-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(13[5-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(13[3-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](13[3-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(13[5-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(13[3-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/},d=e.modern,r=e.legacy,n=navigator.userAgent;return n.match(d)?"modern":n.match(r)?"legacy":"unknown"}(),u="modern"===l?"modern":"legacy",c=(null!=n?n:{modern:"",legacy:""})[u],f=function(e){return[e.baseUrl,"/wpm","/b",e.hashVersion,"modern"===e.buildTarget?"m":"l",".js"].join("")}({baseUrl:d,hashVersion:r,buildTarget:u}),m=function(e){var d=e.version,r=e.bundleTarget,n=e.surface,o=e.pageUrl,i=e.monorailEndpoint;return{emit:function(e){var a=e.status,t=e.errorMsg,s=(new Date).getTime(),l=JSON.stringify({metadata:{event_sent_at_ms:s},events:[{schema_id:"web_pixels_manager_load/3.1",payload:{version:d,bundle_target:r,page_url:o,status:a,surface:n,error_msg:t},metadata:{event_created_at_ms:s}}]});if(!i)return console&&console.warn&&console.warn("[Web Pixels Manager] No Monorail endpoint provided, skipping logging."),!1;try{return self.navigator.sendBeacon.bind(self.navigator)(i,l)}catch(e){}var u=new XMLHttpRequest;try{return u.open("POST",i,!0),u.setRequestHeader("Content-Type","text/plain"),u.send(l),!0}catch(e){return console&&console.warn&&console.warn("[Web Pixels Manager] Got an unhandled error while logging to Monorail."),!1}}}}({version:r,bundleTarget:l,surface:e.surface,pageUrl:self.location.href,monorailEndpoint:e.monorailEndpoint});try{o.browserTarget=l,function(e){var d=e.src,r=e.async,n=void 0===r||r,o=e.onload,i=e.onerror,a=e.sri,t=e.scriptDataAttributes,s=void 0===t?{}:t,l=document.createElement("script"),u=document.querySelector("head"),c=document.querySelector("body");if(l.async=n,l.src=d,a&&(l.integrity=a,l.crossOrigin="anonymous"),s)for(var f in s)if(Object.prototype.hasOwnProperty.call(s,f))try{l.dataset[f]=s[f]}catch(e){}if(o&&l.addEventListener("load",o),i&&l.addEventListener("error",i),u)u.appendChild(l);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(l)}}({src:f,async:!0,onload:function(){if(!function(){var e,d;return Boolean(null===(d=null===(e=window.Shopify)||void 0===e?void 0:e.analytics)||void 0===d?void 0:d.initialized)}()){var d=window.webPixelsManager.init(e)||void 0;if(d){var r=window.Shopify.analytics;r.replayQueue.forEach((function(e){var r=e[0],n=e[1],o=e[2];d.publishCustomEvent(r,n,o)})),r.replayQueue=[],r.publish=d.publishCustomEvent,r.visitor=d.visitor,r.initialized=!0}}},onerror:function(){return m.emit({status:"failed",errorMsg:"".concat(f," has failed to load")})},sri:function(e){var d=/^sha384-[A-Za-z0-9+/=]+$/;return"string"==typeof e&&d.test(e)}(c)?c:"",scriptDataAttributes:o}),m.emit({status:"loading"})}catch(e){m.emit({status:"failed",errorMsg:(null==e?void 0:e.message)||"Unknown error"})}}})({shopId: 15896833,storefrontBaseUrl: "https://outerbloom.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://monorail-edge.shopifysvc.com/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: [],webPixelsConfigList: [{"id":"870383831","configuration":"{\"accountID\":\"outerbloom1\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"162380e6ffd3e5a2854f1aabf54537bb","type":"APP","apiClientId":32196493313,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"]},{"id":"824574167","configuration":"{\"shop\":\"outerbloom1.myshopify.com\", \"backend\": \"api.bitbybit.studio\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"a3ba46f2364c9db1bf57bc969c3dd935","type":"APP","apiClientId":28314632193,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"]},{"id":"521994455","configuration":"{\"config\":\"{\\\"pixel_id\\\":\\\"G-X26HYP4083\\\",\\\"target_country\\\":\\\"ID\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/YjjSCKiog9gZEMHe74Yp\\\"]},{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/RHfSCK6og9gZEMHe74Yp\\\"]},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/dMv0CKWog9gZEMHe74Yp\\\",\\\"MC-HY9J2ZJTNZ\\\"]},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/Y2DbCJ-og9gZEMHe74Yp\\\",\\\"MC-HY9J2ZJTNZ\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/xwQ2CKKog9gZEMHe74Yp\\\",\\\"MC-HY9J2ZJTNZ\\\"]},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/i9yRCLGog9gZEMHe74Yp\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/T9poCKuog9gZEMHe74Yp\\\"]}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"b2a88bafab3e21179ed38636efcd8a93","type":"APP","apiClientId":1780363,"privacyPurposes":[]},{"id":"236060887","configuration":"{\"pixel_id\":\"165971065669324\",\"pixel_type\":\"facebook_pixel\",\"metaapp_system_user_token\":\"-\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"6d8c3ef0426b37b2a9b717daeb719f58","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"]},{"id":"62947543","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["MARKETING"],"name":"Meta pixel (migrated)"},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0450","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0450","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"Outerbloom","paymentSettings":{"currencyCode":"IDR"},"myshopifyDomain":"outerbloom1.myshopify.com","countryCode":"ID","storefrontUrl":"https:\/\/outerbloom.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[{"price":{"amount":835000.0,"currencyCode":"IDR"},"product":{"title":"OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel","vendor":"Outerbloom Florist","id":"8144957800663","untranslatedTitle":"OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel","url":"\/products\/blossom-shine","type":"OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu."},"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\":\"OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel\",\"vendor\":\"Outerbloom Florist\",\"id\":\"8144957800663\",\"untranslatedTitle\":\"OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel\",\"url\":\"\/products\/blossom-shine\",\"type\":\"OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu.\"},\"id\":\"44083045826775\",\"image\":{\"src\":\"\/\/outerbloom.com\/cdn\/shop\/files\/Blossom-Shine-WM.jpg?v=1695788426\"},\"sku\":\"OBVSTF1086\",\"title\":\"Default Title\",\"untranslatedTitle\":\"Default Title\"}}]]"});</script>
221<script> 222 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 223 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 224 window.ShopifyAnalytics.meta.currency = 'IDR'; 225 var meta = {"product":{"id":8144957800663,"gid":"gid:\/\/shopify\/Product\/8144957800663","vendor":"Outerbloom Florist","type":"OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu.","variants":[{"id":44083045826775,"price":1000000 226 ,"name":"OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel","public_title":null,"sku":"OBVSTF1086"}],"remote":false},"page":{"pageType":"product","resourceType":"product","resourceId":8144957800663}}; 227 for (var attr in meta) { 228 window.ShopifyAnalytics.meta[attr] = meta[attr]; 229 } 230 </script>
230 231
231<script class="analytics"> 232 (function () { 233 var customDocumentWrite = function(content) { 234 var jquery = null; 235 236 if (window.jQuery) { 237 jquery = window.jQuery; 238 } else if (window.Checkout && window.Checkout.$) { 239 jquery = window.Checkout.$; 240 } 241 242 if (jquery) { 243 jquery('body').append(content); 244 } 245 }; 246 247 var hasLoggedConversion = function(token) { 248 if (token) { 249 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 250 } 251 return false; 252 } 253 254 var setCookieIfConversion = function(token) { 255 if (token) { 256 var twoMonthsFromNow = new Date(Date.now()); 257 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 258 259 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 260 } 261 } 262 263 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 264 if (trekkie.integrations) { 265 return; 266 } 267 trekkie.methods = [ 268 'identify', 269 'page', 270 'ready', 271 'track', 272 'trackForm', 273 'trackLink' 274 ]; 275 trekkie.factory = function(method) { 276 return function() { 277 var args = Array.prototype.slice.call(arguments); 278 args.unshift(method); 279 trekkie.push(args); 280 return trekkie; 281 }; 282 }; 283 for (var i = 0; i < trekkie.methods.length; i++) { 284 var key = trekkie.methods[i]; 285 trekkie[key] = trekkie.factory(key); 286 } 287 trekkie.load = function(config) { 288 trekkie.config = config || {}; 289 trekkie.config.initialDocumentCookie = document.cookie; 290 var first = document.getElementsByTagName('script')[0]; 291 var script = document.createElement('script'); 292 script.type = 'text/javascript'; 293 script.onerror = function(e) { 294 var scriptFallback = document.createElement('script'); 295 scriptFallback.type = 'text/javascript'; 296 scriptFallback.onerror = function(error) { 297 var Monorail = { 298 produce: function produce(monorailDomain, schemaId, payload) { 299 var currentMs = new Date().getTime(); 300 var event = { 301 schema_id: schemaId, 302 payload: payload, 303 metadata: { 304 event_created_at_ms: currentMs, 305 event_sent_at_ms: currentMs 306 } 307 }; 308 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 309 }, 310 sendRequest: function sendRequest(endpointUrl, payload) { 311 // Try the sendBeacon API 312 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 313 var blobData = new window.Blob([payload], { 314 type: 'text/plain' 315 }); 316 317 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 318 return true; 319 } // sendBeacon was not successful 320 321 } // XHR beacon 322 323 var xhr = new XMLHttpRequest(); 324 325 try { 326 xhr.open('POST', endpointUrl); 327 xhr.setRequestHeader('Content-Type', 'text/plain'); 328 xhr.send(payload); 329 } catch (e) { 330 console.log(e); 331 } 332 333 return false; 334 }, 335 isIos12: function isIos12() { 336 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 337 } 338 }; 339 Monorail.produce('monorail-edge.shopifysvc.com', 340 'trekkie_storefront_load_errors/1.1', 341 {shop_id: 15896833, 342 theme_id: 153139282135, 343 app_name: "storefront", 344 context_url: window.location.href, 345 source_url: "//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js"}); 346 347 }; 348 scriptFallback.async = true; 349 scriptFallback.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js'; 350 first.parentNode.insertBefore(scriptFallback, first); 351 }; 352 script.async = true; 353 script.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js'; 354 first.parentNode.insertBefore(script, first); 355 }; 356 trekkie.load( 357 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":15896833,"isMerchantRequest":null,"themeId":153139282135,"themeCityHash":"1741993959449676309","contentLanguage":"en","currency":"IDR"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain"},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 358 ); 359 360 var loaded = false; 361 trekkie.ready(function() { 362 if (loaded) return; 363 loaded = true; 364 365 window.ShopifyAnalytics.lib = window.trekkie; 366 367 var originalDocumentWrite = document.write; 368 document.write = customDocumentWrite; 369 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 370 document.write = originalDocumentWrite; 371 372 window.ShopifyAnalytics.lib.page(null,{"pageType":"product","resourceType":"product","resourceId":8144957800663,"shopifyEmitted":true}); 373 374 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 375 var token = match? match[1]: undefined; 376 if (!hasLoggedConversion(token)) {
377 setCookieIfConversion(token); 378 window.ShopifyAnalytics.lib.track("Viewed Product",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu.","nonInteraction":true,"remote":false},undefined,undefined,{"shopifyEmitted":true}); 379 window.ShopifyAnalytics.lib.track("monorail:\/\/trekkie_storefront_viewed_product\/1.1",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu.","nonInteraction":true,"remote":false,"referer":"https:\/\/outerbloom.com\/products\/blossom-shine"}); 380 } 381 }); 382 383 384 var eventsListenerScript = document.createElement('script'); 385 eventsListenerScript.async = true; 386 eventsListenerScript.src = "//outerbloom.com/cdn/shopifycloud/storefront/assets/shop_events_listener-abeef7a0.js"; 387 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 388 389 })();</script>
389 390
390<script> 391 if (!window.ga || (window.ga && typeof window.ga !== 'function')) { 392 window.ga = function ga() { 393 (window.ga.q = window.ga.q || []).push(arguments); 394 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 395 window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"}); 396 } 397 console.error("Shopify's Google Analytics stub called with:", Array.from(arguments), "\nSee https://help.shopify.com/manual/promoting-marketing/pixels/pixel-migration#google for more information."); 398 }; 399 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 400 window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"}); 401 } 402 } 403 </script>
403 404
404<script 405 defer 406 src="https://outerbloom.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-2.0.13.min.js" 407 data-application="storefront-renderer" 408 data-shop-id="15896833" 409 data-render-region="gcp-asia-southeast1" 410 data-page-type="product" 411 data-theme-instance-id="153139282135" 412 data-theme-name="" 413 data-theme-version="" 414 data-monorail-region="shop_domain" 415 data-resource-timing-sampling-rate="10" 416 data-shs="true" 417 data-shs-beacon="true" 418 data-shs-export-with-fetch="true" 419 data-shs-logs-sample-rate="1" 420 ></script>
420 421 422<style id="dark-purple-theme-override"> 423/* Visual theme override only: SEO/meta/content/links remain unchanged. */ 424:root{--purple-dark:#fff200;--purple:#196c09;--purple-mid:#850000;--purple-accent:#850000;--purple-light:#850000;} 425body{background-color:#16002b!important;} 426header{background-color:#fff200!important;background-blend-mode:multiply;} 427.nav-header,.promo-bg{background-color:#fff200!important;} 428.nav-menu a,.nav-menu span{color:#e9d5ff!important;} 429#notification{background-color:#fff200!important;} 430.notification__message p,.notification__message p a{color:#f3e8ff!important;} 431.faq-section{background-color:rgba(36,0,70,.78)!important;border:1px solid #850000!important;} 432.faq-section::before{background:linear-gradient(90deg,transparent,#850000,transparent)!important;} 433.faq-section h2{background:linear-gradient(135deg,#850000,#850000,#006e0f)!important;-webkit-background-clip:text!important;background-clip:text!important;} 434.faq-item{background:linear-gradient(145deg,#18002e,#2d0750)!important;border-color:#850000!important;} 435.faq-item:hover{border-color:#850000!important;box-shadow:0 12px 35px rgba(157,78,221,.28)!important;} 436.faq-question:hover,.faq-question::after{color:#850000!important;} 437.faq-question::after{border-color:#850000!important;} 438.faq-item.active .faq-question::after{background:linear-gradient(135deg,#850000,#850000)!important;color:#fff!important;} 439.faq-item.active .faq-answer{border-top-color:rgba(199,125,255,.35)!important;} 440.button-login-daftar .login,.button-login-daftar .register,.btn,.button,button[type="submit"]{background-color:#850000!important;border-color:#850000!important;color:#fff!important;} 441footer,.footer{background-color:#1b0033!important;} 442</style> 443</head><body 444 data-template="product" 445 id="blossom-shine" 446 class="template-product template-product" 447 > 448 <!-- Google Tag Manager (noscript) -->
vendor: 93 bytes, lines 448-451
448 449 <noscript 450 ><iframe 451 src="https://www.googletagmanager.com/ns.html?id=
451GTM-MF9VVZX
vendor: 135 bytes, lines 451-457
451" 452 height="0" 453 width="0" 454 style="display:none;visibility:hidden" 455 ></iframe 456 ></noscript> 457
457<!-- End Google Tag Manager (noscript) --> 458 459 460 461 <div class="header-wrapper"> 462 463 <div id="shopify-section-NotifBar" class="shopify-section m-0"> 464 465 <style> 466 #notification {z-index: 99;width: 100%;transition: top 0.2s ease-in-out;} 467 #notification.promo-up {top: -48px!important;} 468 .promo-bg {width: 100%;padding: 6px 0;background-color: #242424;} 469 .notification__message p {margin: 0;color: #000000;font-size: 14px!important;} 470 .notification__message p a {text-decoration: underline;color: #ffe100;} 471 @media (max-width: 991px){ 472 .notification__message p {font-size: 14px!important;} 473 } 474 </style> 475 <input id="clearCookie" class="hide" type="button" value="Delete Cookie" /> 476 <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"> 477 <div class="page-width notification__inner "> 478 479 480 <div class="notification__message text-center"> 481 <p><a href="https://www.cabosanfrancisco.ch/" title="OMPONG188">OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel</a></p> 482 </div> 483 </div> 484 </div> 485 486 487 488 489 </div> 490 <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"/> 491 492 493 <header style="background-image: url(https://www.cabosanfrancisco.ch/image/ompong188-qris.webp); background-attachment: fixed;"> 494 <div class="container"> 495 <div class="header-container row justify-content-between pl-lg-0 pr-lg-0"> 496 <a href="https://www.cabosanfrancisco.ch/"> 497 <img src="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" alt="logo-OMPONG188" style="width: 190px;"></a> 498 <link href="https://www.cabosanfrancisco.ch/image/icon-ompong188-slot.webp" rel="shortcut icon" type="image/x-icon" /> 499 <div id="menu-hamburger" class="d-lg-none"> 500 <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="16" height="10" viewBox="0 0 16 10" fill="none"> 501 <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"/> 502 </svg> 503 504 <a href="/"><svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" viewBox="0 0 854 78.29"> 505 <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> 506 </svg> 507 </a> 508 </div> 509 510 <div class="header-icon-right header-icons col-3"> 511 <div class="icon icon-account-header d-none d-lg-block"> 512 <a href="https://www.cabosanfrancisco.ch/"> 513 <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="20" height="21" viewBox="0 0 20 21" fill="none"> 514 <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"/> 515 <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"/> 516 </svg> 517
518 </a> 519 </div> 520 <div class="icon icon-wishlist-header"> 521 <a href="https://www.cabosanfrancisco.ch/"> 522 <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="24" height="21" viewBox="0 0 24 21" fill="none"> 523 <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.
52311233C11.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"/> 524 </svg> 525 526 <span class="wishlist-count d-none">0</span> 527 </a> 528 </div> 529 <div class="icon icon-cart-header"> 530 <a href="https://www.cabosanfrancisco.ch/"> 531 <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="22" height="21" viewBox="0 0 22 21" fill="none"> 532 <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"/> 533 <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"/> 534 </svg> 535 536 </a> 537 </div> 538 </div> 539 </div> 540 </div> 541 </header> 542 543 <nav class="nav-header" style="background-color: #242424;"> 544 <div class="nav-account-mobile row m-0 d-lg-none"> 545 <div class="col-6 welcome-cust p-0"> 546 547 <h1 class="logo"> 548 <a href="https://www.cabosanfrancisco.ch/"> 549 <img src="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" alt="OMPONG188" style="max-height:60px;"> 550 </a> 551 </h1> 552 553 554 </div> 555 556 <div class="col-6 login-register text-right p-0"> 557 <a href="https://www.cabosanfrancisco.ch/coffee/">Log In</a> | <a href="https://www.cabosanfrancisco.ch/coffee/">Sign Up</a> 558 </div> 559 </div> 560 <ul class="nav-menu container"> 561 562 <li class="nav-menu container"> 563 <a href="https://www.cabosanfrancisco.ch/"> 564 <span style="color: #ffe100;">OMPONG188</span> 565 566 567 <li class=" nav-menu container"> 568 <a href="https://www.cabosanfrancisco.ch/"> 569 <span style="color: #ffe100;">OMPONG188 LINK</span> 570 571 572 <li class=" nav-menu container"> 573 <a href="https://www.cabosanfrancisco.ch/"> 574 <span style="color: #ffe100;">LOGIN OMPONG188</span> 575 576 <li class=" nav-menu container"> 577 <a href="https://www.cabosanfrancisco.ch/"> 578 <span style="color: #ffe100;">OMPONG188 SITUS</span> 579 580 <li class=" nav-menu container"> 581 <a href="https://www.cabosanfrancisco.ch/"> 582 <span style="color: #ffe100;">ALTERNATIF OMPONG188</span> 583 584 <li class=" nav-menu container"> 585 <a href="https://www.cabosanfrancisco.ch/"> 586 <span style="color: #ffe100;">OMPONG188 SLOT</span> 587 588 <div class="overlay-nav"> 589 <!-- Mobile Close Button in Overlay --> 590 <button id="nav-close" class="nav-close-btn d-lg-none"> 591 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp"> 592 <path d="M18 6L6 18M6 6L18 18" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 593 </svg> 594 </button> 595 </div> 596 597
597<script> 598 if ($(window).width() < 992) { 599 // Level 1 menu accordion (main menu items) 600 $(".nav-menu .nav-menu container > a").click(function(e){ 601 e.preventDefault() 602 const parentLi = $(this).parent() 603 const isCurrentlyOpen = parentLi.hasClass("menu-open") 604 605 // Close all other open menus (accordion behavior) 606 $(".nav-menu .nav-menu container").not(parentLi).removeClass("menu-open") 607 $(".nav-menu .megamenu").not($(this).next(".megamenu")).slideUp() 608 609 // Toggle current menu 610 if (isCurrentlyOpen) { 611 parentLi.removeClass("menu-open") 612 $(this).next(".megamenu").slideUp() 613 } else { 614 parentLi.addClass("menu-open") 615 $(this).next(".megamenu").slideDown() 616 } 617 }) 618 619 // Level 2 menu accordion (submenu items with grandchildren) 620 $(document).on('click', '.dropdown-menu .has-submenu > a', function(e){ 621 e.preventDefault() 622 const parentLi = $(this).parent() 623 const isCurrentlyOpen = parentLi.hasClass("submenu-open") 624 const grandchild = $(this).next(".grandchild") 625 626 // Close all other open submenus in the same dropdown (accordion behavior) 627 parentLi.siblings('.has-submenu').removeClass("submenu-open") 628 parentLi.siblings('.has-submenu').find('.grandchild').slideUp() 629 parentLi.siblings('.has-submenu').find('.chevron-right').css('transform', 'rotate(0deg)') 630 631 // Toggle current submenu 632 if (isCurrentlyOpen) { 633 parentLi.removeClass("submenu-open") 634 grandchild.slideUp() 635 $(this).find('.chevron-right').css('transform', 'rotate(0deg)') 636 } else { 637 parentLi.addClass("submenu-open") 638 grandchild.slideDown() 639 $(this).find('.chevron-right').css('transform', 'rotate(90deg)') 640 } 641 }) 642 643 $("#menu-hamburger").click(function(e){ 644 e.preventDefault() 645 $("body").toggleClass("nav_open") 646 }) 647 648 // Handle close button click 649 $("#nav-close").click(function(e){ 650 e.preventDefault() 651 $("body").removeClass("nav_open") 652 // Close all open menus when close button is clicked 653 $(".nav-menu .nav-menu container").removeClass("menu-open") 654 $(".nav-menu .megamenu").slideUp() 655 $(".dropdown-menu .has-submenu").removeClass("submenu-open") 656 $(".dropdown-menu .grandchild").slideUp() 657 $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)') 658 }) 659 } 660 661 $(".overlay-nav").click(function(e){ 662 e.preventDefault() 663 $("body").removeClass("nav_open") 664 // Close all open menus when overlay is clicked 665 $(".nav-menu .nav-menu container").removeClass("menu-open") 666 $(".nav-menu .megamenu").slideUp() 667 $(".dropdown-menu .has-submenu").removeClass("submenu-open") 668 $(".dropdown-menu .grandchild").slideUp() 669 $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)') 670 }) 671 </script>
671 672 673 674 </div> 675 676 <div id="shopify-section-search-popup" class="shopify-section m-0"><style> 677 #search-trigger { 678 cursor: pointer; 679 } 680 #search-popup { 681 display: none; 682 position: fixed; 683 left: 0; 684 width: 100%; 685 top: 0; 686 height: 100%; 687 justify-content: center; 688 z-index: 9999; 689 background: rgb(196 196 196 / 30%); 690 } 691 #search-input { 692 align-self: center; 693 width: 100%; 694 height: 80px; 695 position: absolute; 696 top: 0; 697 border-bottom: 0.5px solid #A3A3A3; 698 background-color: #fff; 699 } 700 #search-input * { 701 align-self: center; 702 } 703 #search-type { 704 width: 100%; 705 border: none; 706 padding-right: 20px; 707 padding-left: 20px; 708 font-size: 16px; 709 color: #757575; 710 } 711 #search-btn { 712 font-size: 16px; 713 font-weight: 500; 714 } 715 #search-result { 716 min-height: 490px; 717 width: 100%; 718 padding-top: 80px; 719 } 720 #search-result .container { 721 background-color: #fff; 722 padding: 20px 40px; 723 } 724 body.search-popup-open { 725 /* .search-popup-open */ 726 overflow: hidden; 727 } 728 .search-popup-open #loc_delivery { 729 display: none 730 } 731 .search-header svg { 732 display: none; 733 cursor: pointer; 734 } 735 .wrapper-search-popup { 736 max-height: calc(100vh - 150px); 737 overflow-y: auto; 738 overflow-x: hidden; 739 } 740 741 .group-recommend { 742 padding: 20px 40px; 743 } 744 745 .resultsearch { 746 display: none; 747 } 748 .results { padding: 20px 40px } 749 .resultsearch label { 750 font-weight: 600; 751 padding-bottom: 20px; 752 display: block; 753 margin-bottom: 20px; 754 border-bottom: 1px solid #AAAAAA; 755 } 756 757 ul.result_product { 758 max-height: 300px; 759 overflow: auto; 760 } 761 762 .group-promotion ul { 763 margin: 0; 764 } 765 .group-promotion li { 766 list-style: none; 767 margin-bottom: 12px; 768 } 769 .group-promotion li a { 770 color: inherit; 771 } 772 773 .group-recent { 774 position: relative; 775 padding: 20px 40px; 776 } 777 .group-recent ul { 778 margin: 0; 779 } 780 .group-recent li { 781 list-style: none; 782 display: inline-block; 783 margin-right: 60px; 784 } 785 .group-recent li a { 786 color: inherit; 787 } 788 789 .last-search svg { 790 width: 20px; 791 vertical-align: middle; 792 } 793 ul.last-search a { 794 vertical-align: middle; 795 padding: 0 10px; 796 } 797 ul.last-search li span { 798 cursor: pointer; 799 } 800 .delete-all-history { 801 position: absolute; 802 top: 25px; 803 right: 40px; 804 text-decoration: underline; 805 color: #e11d1d; 806 cursor: pointer; 807 font-size: 12px; 808 } 809 810 form.search.search-modal__form { 811 position: relative; 812 } 813 814 button.search__button svg { 815 width: 25px; 816 color: #495057; 817 fill: #757582; 818 } 819 820 button.search__button.field__button { 821 position: absolute; 822 top: 50%; 823 margin-top: -12px; 824 } 825 826 .close-search { 827 display: none; 828 position: absolute; 829 right: 65px; 830 top: 10px; 831 cursor: pointer; 832 } 833 834 .site-overlay { 835 position: fixed; 836 top: 0; 837 width: 100vw; 838 height: 100vh; 839 z-index: 1000; 840 background: #0000005c; 841 visibility: hidden; 842 opacity: 0; 843 pointer-events: none; 844 transition: all .3s linear; 845 display: block !important; 846 } 847 848 .search-popup-open .site-overlay { 849 opacity: 1; 850 visibility: visible; 851 pointer-events: all; 852 z-index: -1; 853 cursor: pointer; 854 } 855 856 @media (min-width: 991px) { 857 .group-recent ul { 858 column-count: 3; 859 } 860 .group-promotion li a { 861 font-size: 12px; 862 font-weight: 400; 863 } 864 .group-recent li a { 865 font-size: 12px; 866 font-weight: 400; 867 } 868 } 869 870 .moreresult { 871 padding: 10px 40px; 872 border-top: 1px solid #AAAAAA; 873 } 874 .moreresult * { 875 align-self: center; 876 } 877 .moreresult p { 878 margin: 0; 879 font-size: 12px !important; 880 } 881 .moreresult svg { 882 width: 13px; 883 } 884 885 @media (max-width: 992px) { 886 .icon-key-mobile { 887 height: auto!important; 888 width: 10px!important; 889 } 890 body.grid-view.search-popup-open .products { 891 -ms-flex: 0 0 100%!important; 892 flex: 0 0 100%!important; 893 max-width: 100%!important; 894 } 895 button.search__button svg {
896 width: 20px; 897 } 898 #search-result { 899 padding-left: 0; 900 padding-right: 0; 901 } 902 #search-result { 903 padding-top: 55px; 904 } 905 #search-input { 906 height: 55px; 907 } 908 .group-recommend { 909 padding: 20px; 910 } 911 #search-input .container { 912 padding: 0 20px; 913 } 914 #search-type { 915 font-size: 14px; 916 } 917 #search-btn { 918 font-size: 12px; 919 text-decoration: underline; 920 } 921 .results { 922 padding: 20px; 923 } 924 .group-recommend h3 { 925 font-size: 16px; 926 } 927 .products .card-body { 928 padding: 8px 0px 10px; 929 } 930 .moreresult { 931 padding: 10px 20px; 932 } 933 } 934 </style> 935 <style type="text/css"> 936 div.advertisement-placeholder { 937 text-align: center; 938 padding-bottom: 20px; 939 display: flex; 940 flex-direction: column; 941 justify-content: center; 942 } 943 div.advertisement-text p { 944 margin: 0; 945 font-family: Open Sans; 946 font-style: normal; 947 font-weight: normal; 948 font-size: 10px; 949 line-height: 20px; 950 color: #999999; 951 } 952 div.advertisement-banner { 953 margin: 0px auto; 954 } 955 div#div-gpt-ad-billboard-placeholder { 956 width: 996px; 957 margin: 0 auto; 958 background: #F5F5F5; 959 padding-bottom: unset !important; 960 min-height: 200px; 961 } 962 div#div-gpt-ad-lb-placeholder { 963 background: #F5F5F5; 964 padding-bottom: unset !important; 965 min-height: 280px; 966 } 967 .faq-section{ 968 max-width:1200px; 969 margin:50px auto; 970 padding:40px 20px; 971 position:relative; 972 background-color: rgba(0, 0, 0, 0.1); 973 backdrop-filter: blur(25px); 974 border-radius: 20px; 975 } 976 977 .faq-section::before{ 978 content:""; 979 position:absolute; 980 top:0;left:50%; 981 transform:translateX(-50%); 982 width:80%; 983 height:2px; 984 background:linear-gradient(90deg,transparent,#ffe100,transparent) 985 } 986 987 .faq-section h2{ 988 text-align:center; 989 font-size:34px;font-weight:700; 990 margin-bottom:50px; 991 background: linear-gradient(135deg, #ffe100, #ffe100, #ffe100); 992 -webkit-background-clip:text; 993 -webkit-text-fill-color:transparent; 994 background-clip:text; 995 font-family:"Poppins",sans-serif;letter-spacing:1px 996 } 997 998 .faq-container{ 999 display:flex; 1000 flex-direction:column; 1001 gap:25px 1002 } 1003 1004 .faq-item{ 1005 background:linear-gradient(145deg,#0a0a0a,#1a1a1a); 1006 border:2px solid #ffe100; 1007 border-radius:20px;overflow:hidden; 1008 transition:all .4s ease;box-shadow:0 5px 20px rgba(0,0,0,0.5) 1009 } 1010 1011 .faq-item:hover{ 1012 border-color:#ffe100; 1013 transform:translateX(10px); 1014 box-shadow:0 12px 35px rgba(0, 191, 255, 0.25) 1015 } 1016 1017 .faq-question{width:100%; 1018 padding:28px 35px;background:transparent; 1019 color:#ffffff; 1020 font-size:18px; 1021 font-weight:600; 1022 text-align:left; 1023 border:none;cursor:pointer; 1024 display:flex; 1025 justify-content:space-between; 1026 align-items:center; 1027 font-family:"Poppins",sans-serif; 1028 transition:all .3s ease 1029 } 1030 1031 .faq-question:hover{ 1032 color:#ffe100 1033 } 1034 1035 .faq-question::after{ 1036 content:'+'; 1037 font-size:32px; 1038 font-weight:300; 1039 transition:all .4s ease; 1040 color:#ffe100; 1041 width:40px; 1042 height:40px; 1043 display:flex; 1044 align-items:center; 1045 justify-content:center; 1046 border:2px solid #ffe100;border-radius:50%; 1047 background:rgba(0, 0, 0, 0.1) 1048 } 1049 1050 .faq-item.active .faq-question::after{ 1051 transform:rotate(135deg); 1052 background:linear-gradient(135deg,#ffe100,#ffe100); 1053 color:#000;border-color:transparent 1054 } 1055 1056 .faq-answer{ 1057 max-height:0; 1058 overflow:hidden; 1059 transition:max-height .5s ease,padding .5s ease; 1060 background:linear-gradient(180deg,rgba(253,228,4,0.05),transparent); 1061 padding:0 35px 1062 } 1063 1064 .faq-item.active .faq-answer{ 1065 max-height:800px;padding:30px 35px; 1066 border-top:1px solid rgba(0, 191, 255, 0.3) 1067 } 1068 1069 .faq-answer p{ 1070 color:#e0e0e0; 1071 font-size:16px; 1072 line-height:2; 1073 margin:0; 1074 font-family:"Poppins",sans-serif 1075 } 1076 1077 @media 1078 (max-width:768px) 1079 { 1080 1081 .faq-section 1082 {padding:30px 15px} 1083 1084 .faq-section h2 1085 {font-size:26px} 1086 1087 .faq-question 1088 {font-size:16px; 1089 padding:22px 25px} 1090 1091 .faq-question::after 1092 {width:35px; 1093 height:35px; 1094 font-size:28px} 1095 1096 .faq-answer 1097 {padding:0 25px} 1098 1099 .faq-item.active .faq-answer 1100 {padding:25px} 1101 1102 .faq-item:hover 1103 {transform:translateX(5px)} 1104 } 1105 </style> 1106 <div id="search-popup"> 1107 <div id="search-input" class="row"> 1108 <div class="container w-100"> 1109 <form 1110 action="/search" 1111 method="get" 1112 role="search" 1113 class="search search-modal__form d-flex justify-content-between" 1114 > 1115 <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="20" height="20" viewBox="0 0 20 20" fill="none"> 1116 <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"/> 1117 </svg> 1118
1119 <input type="hidden" name="type" value="product"> 1120 <input 1121 type="text" 1122 id="search-type" 1123 name="q" 1124 class="search-popup" 1125 placeholder="Gifts that linger: Uncover treasures for cherished moments." 1126 > 1127 <div class="close-search"><svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="18" height="18" viewBox="0 0 18 18" fill="none"> 1128 <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"/> 1129 </svg> 1130 </div> 1131 <button id="search-btn">Search</button> 1132 </form> 1133 </div> 1134 </div> 1135 <div id="search-result" class="container m-auto"> 1136 <div class="container p-0"> 1137 <div class="group-promotion"> 1138 <div class="resultsearch"> 1139 <div class="row results"> 1140 <div class="col-12 col-lg-6 mb-3 mb-lg-0"> 1141 <label>SUGGESTIONS</label> 1142 <ul class="result_collection"></ul> 1143 </div> 1144 <div class="col-12 col-lg-6"> 1145 <label>PRODUCTS</label> 1146 <ul class="result_product"></ul> 1147 </div> 1148 </div> 1149 <div class="d-flex justify-content-between moreresult m-0"> 1150 <p>Search for<span></span></p> 1151 <svg version="1.1" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="32" height="32" viewBox="0 0 32 32"> 1152 <title>icon-arrow-right</title> 1153 <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> 1154 </svg> 1155 </div> 1156 </div> 1157 </div> 1158 <div class="group-recent hide"> 1159 <h3>RECENT SEARCH</h3> 1160 <span class="delete-all-history">Hapus riwayat</span> 1161 <ul class="last-search"></ul> 1162 </div> 1163 <div class="group-recommend"> 1164 <h3>YOU MAY ALSO LIKE</h3> 1165 1166 1167 <div class="row popup-recommend c-products-grid infinite-case product-multi-"> 1168 <div class="swiper-wrapper justify-content-between" style="margin-left:1px;"> 1169 1170 1171 <div class="swiper-slide card"> 1172 1173 1174 1175 1176 <div class="products" data-lazy="false"> 1177 <div class="bg-products"> 1178 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-love-mooncake"> 1179 <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1180 <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
11806 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"/> 1181 </svg> 1182 1183 </div> 1184 <a href="/products/mid-autumn-of-love-mooncake"> 1185 1186 <div class="product-card-img-container p-0 position-relative"> 1187 1188 <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"> 1189 </div> 1190 <div class="card-body product-card-info"> 1191 <h5 class="h5 mb-0"> 1192 Mid Autumn of Love Mooncake 1193 </h5> 1194 <div class="product-card-price"> 1195 1196 <div class="product-price-sale"> 1197 <s class="product-card-price-before card-money">Rp 588.000</s> 1198 <span class="product-card-discount small"> 1199 (-40%) 1200 </span> 1201 </div> 1202 1203 1204 1205 <div class="price-discount"> 1206 <h4 class="product-card-price-after card-money">Rp 348.000</h4> 1207 </div> 1208 1209 1210 1211 1212 1213 </div> 1214 1215 </div> 1216 </a> 1217 </div> 1218 1219 </div> 1220 1221 </div> 1222 1223 1224 1225 <div class="swiper-slide card"> 1226 1227 1228 1229 1230 <div class="products" data-lazy="false"> 1231 <div class="bg-products"> 1232 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-joy-mooncake"> 1233 <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1234 <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.
123411233C11.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"/> 1235 </svg> 1236 1237 </div> 1238 <a href="/products/mid-autumn-of-joy-mooncake"> 1239 1240 <div class="product-card-img-container p-0 position-relative"> 1241 1242 <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"> 1243 </div> 1244 <div class="card-body product-card-info"> 1245 <h5 class="h5 mb-0"> 1246 Mid Autumn of Joy Mooncake 1247 </h5> 1248 <div class="product-card-price"> 1249 1250 <div class="product-price-sale"> 1251 <s class="product-card-price-before card-money">Rp 888.000</s> 1252 <span class="product-card-discount small"> 1253 (-33%) 1254 </span> 1255 </div> 1256 1257 1258 1259 <div class="price-discount"> 1260 <h4 class="product-card-price-after card-money">Rp 588.000</h4> 1261 </div> 1262 1263 1264 1265 1266 1267 </div> 1268 1269 </div> 1270 </a> 1271 </div> 1272 1273 </div> 1274 1275 </div> 1276 1277 1278 1279 <div class="swiper-slide card"> 1280 1281 1282 1283 1284 <div class="products" data-lazy="false"> 1285 <div class="bg-products"> 1286 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-fortune-mooncake"> 1287 <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1288 <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.
128811233C11.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"/> 1289 </svg> 1290 1291 </div> 1292 <a href="/products/mid-autumn-of-fortune-mooncake"> 1293 1294 <div class="product-card-img-container p-0 position-relative"> 1295 1296 <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"> 1297 </div> 1298 <div class="card-body product-card-info"> 1299 <h5 class="h5 mb-0"> 1300 Mid Autumn of Fortune Mooncake 1301 </h5> 1302 <div class="product-card-price"> 1303 1304 <div class="product-price-sale"> 1305 <s class="product-card-price-before card-money">Rp 1.188.000</s> 1306 <span class="product-card-discount small"> 1307 (-33%) 1308 </span> 1309 </div> 1310 1311 1312 1313 <div class="price-discount"> 1314 <h4 class="product-card-price-after card-money">Rp 788.000</h4> 1315 </div> 1316 1317 1318 1319 1320 1321 </div> 1322 1323 </div> 1324 </a> 1325 </div> 1326 1327 </div> 1328 1329 </div> 1330 1331 1332 1333 <div class="swiper-slide card"> 1334 1335 1336 1337 1338 <div class="products" data-lazy="false"> 1339 <div class="bg-products"> 1340 <div class="wishlist-toggle" data-product-handle="mid-autumn-festival-mooncake"> 1341 <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1342 <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.
134211233C11.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"/> 1343 </svg> 1344 1345 </div> 1346 <a href="/products/mid-autumn-festival-mooncake"> 1347 1348 <div class="product-card-img-container p-0 position-relative"> 1349 1350 <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"> 1351 </div> 1352 <div class="card-body product-card-info"> 1353 <h5 class="h5 mb-0"> 1354 Mid Autumn Festival Mooncake 1355 </h5> 1356 <div class="product-card-price"> 1357 1358 <div class="product-price-sale"> 1359 <s class="product-card-price-before card-money">Rp 1.288.000</s> 1360 <span class="product-card-discount small"> 1361 (-23%) 1362 </span> 1363 </div> 1364 1365 1366 1367 <div class="price-discount"> 1368 <h4 class="product-card-price-after card-money">Rp 988.000</h4> 1369 </div> 1370 1371 1372 1373 1374 1375 </div> 1376 1377 </div> 1378 </a> 1379 </div> 1380 1381 </div> 1382 1383 </div> 1384 1385 1386 1387 <div class="swiper-slide card"> 1388 1389 1390 1391 1392 <div class="products" data-lazy="false"> 1393 <div class="bg-products"> 1394 <div class="wishlist-toggle" data-product-handle="the-jade-bouquet"> 1395 <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1396 <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.
139611233C11.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"/> 1397 </svg> 1398 1399 </div> 1400 <a href="/products/the-jade-bouquet"> 1401 1402 <div class="product-card-img-container p-0 position-relative"> 1403 1404 <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"> 1405 </div> 1406 <div class="card-body product-card-info"> 1407 <h5 class="h5 mb-0"> 1408 The Jade Bouquet 1409 </h5> 1410 <div class="product-card-price"> 1411 1412 <div class="product-price-sale"> 1413 <s class="product-card-price-before card-money">Rp 435.000</s> 1414 <span class="product-card-discount small"> 1415 (-34%) 1416 </span> 1417 </div> 1418 1419 1420 1421 <div class="price-discount"> 1422 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1423 </div> 1424 1425 1426 1427 1428 1429 </div> 1430 1431 </div> 1432 </a> 1433 </div> 1434 1435 </div> 1436 1437 </div> 1438 1439 1440 1441 <div class="swiper-slide card"> 1442 1443 1444 1445 1446 <div class="products" data-lazy="false"> 1447 <div class="bg-products"> 1448 <div class="wishlist-toggle" data-product-handle="the-selena-bouquet"> 1449 <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1450 <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.
145011233C11.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"/> 1451 </svg> 1452 1453 </div> 1454 <a href="/products/the-selena-bouquet"> 1455 1456 <div class="product-card-img-container p-0 position-relative"> 1457 1458 <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"> 1459 </div> 1460 <div class="card-body product-card-info"> 1461 <h5 class="h5 mb-0"> 1462 The Selena Bouquet 1463 </h5> 1464 <div class="product-card-price"> 1465 1466 <div class="product-price-sale"> 1467 <s class="product-card-price-before card-money">Rp 335.000</s> 1468 <span class="product-card-discount small"> 1469 (-29%) 1470 </span> 1471 </div> 1472 1473 1474 1475 <div class="price-discount"> 1476 <h4 class="product-card-price-after card-money">Rp 235.000</h4> 1477 </div> 1478 1479 1480 1481 1482 1483 </div> 1484 1485 </div> 1486 </a> 1487 </div> 1488 1489 </div> 1490 1491 </div> 1492 1493 1494 1495 <div class="swiper-slide card"> 1496 1497 1498 1499 1500 <div class="products" data-lazy="false"> 1501 <div class="bg-products"> 1502 <div class="wishlist-toggle" data-product-handle="the-viola-bouquet"> 1503 <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1504 <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.
150411233C11.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"/> 1505 </svg> 1506 1507 </div> 1508 <a href="/products/the-viola-bouquet"> 1509 1510 <div class="product-card-img-container p-0 position-relative"> 1511 1512 <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"> 1513 </div> 1514 <div class="card-body product-card-info"> 1515 <h5 class="h5 mb-0"> 1516 The Viola Bouquet 1517 </h5> 1518 <div class="product-card-price"> 1519 1520 <div class="product-price-sale"> 1521 <s class="product-card-price-before card-money">Rp 385.000</s> 1522 <span class="product-card-discount small"> 1523 (-25%) 1524 </span> 1525 </div> 1526 1527 1528 1529 <div class="price-discount"> 1530 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1531 </div> 1532 1533 1534 1535 1536 1537 </div> 1538 1539 </div> 1540 </a> 1541 </div> 1542 1543 </div> 1544 1545 </div> 1546 1547 1548 1549 <div class="swiper-slide card"> 1550 1551 1552 1553 1554 <div class="products" data-lazy="false"> 1555 <div class="bg-products"> 1556 <div class="wishlist-toggle" data-product-handle="the-minerva-bouquet"> 1557 <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1558 <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.
155811233C11.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"/> 1559 </svg> 1560 1561 </div> 1562 <a href="/products/the-minerva-bouquet"> 1563 1564 <div class="product-card-img-container p-0 position-relative"> 1565 1566 <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"> 1567 </div> 1568 <div class="card-body product-card-info"> 1569 <h5 class="h5 mb-0"> 1570 The Minerva Bouquet 1571 </h5> 1572 <div class="product-card-price"> 1573 1574 <div class="product-price-sale"> 1575 <s class="product-card-price-before card-money">Rp 385.000</s> 1576 <span class="product-card-discount small"> 1577 (-25%) 1578 </span> 1579 </div> 1580 1581 1582 1583 <div class="price-discount"> 1584 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1585 </div> 1586 1587 1588 1589 1590 1591 </div> 1592 1593 </div> 1594 </a> 1595 </div> 1596 1597 </div> 1598 1599 </div> 1600 1601 1602 1603 <div class="swiper-slide card"> 1604 1605 1606 1607 1608 <div class="products" data-lazy="false"> 1609 <div class="bg-products"> 1610 <div class="wishlist-toggle" data-product-handle="congraduations-bouquet"> 1611 <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1612 <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.
161211233C11.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"/> 1613 </svg> 1614 1615 </div> 1616 <a href="/products/congraduations-bouquet"> 1617 1618 <div class="product-card-img-container p-0 position-relative"> 1619 1620 <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"> 1621 </div> 1622 <div class="card-body product-card-info"> 1623 <h5 class="h5 mb-0"> 1624 Congraduations Bouquet 1625 </h5> 1626 <div class="product-card-price"> 1627 1628 <div class="product-price-sale"> 1629 <s class="product-card-price-before card-money">Rp 380.000</s> 1630 <span class="product-card-discount small"> 1631 (-25%) 1632 </span> 1633 </div> 1634 1635 1636 1637 <div class="price-discount"> 1638 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1639 </div> 1640 1641 1642 1643 1644 1645 </div> 1646 1647 </div> 1648 </a> 1649 </div> 1650 1651 </div> 1652 1653 </div> 1654 1655 1656 1657 <div class="swiper-slide card"> 1658 1659 1660 1661 1662 <div class="products" data-lazy="false"> 1663 <div class="bg-products"> 1664 <div class="wishlist-toggle" data-product-handle="grad-gorgeous-bouquet"> 1665 <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1666 <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.
166611233C11.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"/> 1667 </svg> 1668 1669 </div> 1670 <a href="/products/grad-gorgeous-bouquet"> 1671 1672 <div class="product-card-img-container p-0 position-relative"> 1673 1674 <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"> 1675 </div> 1676 <div class="card-body product-card-info"> 1677 <h5 class="h5 mb-0"> 1678 Grad & Gorgeous Bouquet 1679 </h5> 1680 <div class="product-card-price"> 1681 1682 <div class="product-price-sale"> 1683 <s class="product-card-price-before card-money">Rp 380.000</s> 1684 <span class="product-card-discount small"> 1685 (-25%) 1686 </span> 1687 </div> 1688 1689 1690 1691 <div class="price-discount"> 1692 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1693 </div> 1694 1695 1696 1697 1698 1699 </div> 1700 1701 </div> 1702 </a> 1703 </div> 1704 1705 </div> 1706 1707 </div> 1708 1709 1710 </div> 1711 </div> 1712 1713 </div> 1714 </div> 1715 </div> 1716 1717 <div class="site-overlay" style="display: none"></div> 1718 </div> 1719
1719<script> 1720 1721 var swiper = new Swiper('.popup-recommend', { 1722 slidesPerView : 4, 1723 spaceBetween: 30, 1724 lazy: true , 1725 speed: 300, 1726 breakpoints: { 1727 // when window width is <= 576px 1728 576: { 1729 slidesPerView: 2, 1730 spaceBetween: 10, 1731 freeMode: true, 1732 resistance : true, 1733 resistanceRatio : 0, 1734 freeModeMomentumRatio : 0.45, 1735 freeModeMomentumVelocityRatio : 1.5 1736 }, 1737 768: { 1738 slidesPerView: 2, 1739 spaceBetween: 10 1740 }, 1741 992: { 1742 slidesPerView: 3, 1743 spaceBetween: 20 1744 } 1745 } 1746 }); 1747 1748 const searchContainer = $("#search-popup") 1749 const searchInput = $(".search-popup") 1750 const result_collection = $('.result_collection') 1751 const result_product = $('.result_product') 1752 const resultsearch = $('.resultsearch') 1753 const resultrecommend = $(".group-recommend") 1754 const moreresult = $(".moreresult") 1755 1756 searchInput.keyup(function(){ 1757 const input = $(this).val() 1758 moreresult.find("p span").text(` â${input}â`) 1759 if(input.length > 2) { 1760 $(".close-search").show() 1761 const url = `https://outerbloom.com/search/suggest.json?resources[limit]=10&resources[limit_scope]=each&resources[type]=collection,product&q=${input}` 1762 $.ajax({
1763 type: 'GET', 1764 url, 1765 beforeSend: function() { 1766 // setting a timeout 1767 // $(placeholder).addClass('loading'); 1768 }, 1769 success: function(response) { 1770 resultsearch.show() 1771 resultrecommend.hide() 1772 result_collection.html("") 1773 result_product.html("") 1774 const collections = response.resources.results.collections 1775 const products = response.resources.results.products 1776 let collection_length = collections.length 1777 let product_length = products.length 1778 // if(collections.length > 5) { 1779 // collection_length = 5 1780 // } 1781 // if(products.length > 5) { 1782 // product_length = 5 1783 // } 1784 for(let i=0;i<collection_length;i++){ 1785 const title = collections[i].title 1786 const url = collections[i].url 1787 let html_collection 1788 if(!title.includes('AIA') && !title.includes('AXA') && !title.includes('WOM') && !title.includes('Upsell')) { 1789 html_collection = ` 1790 <li class="item" data-title="${title}"> 1791 <a href="${url}" data-type="collection" class="item_url" data-title="${title}" data-url="${url}">${title}</a> 1792 </li> 1793 ` 1794 } 1795 result_collection.append(html_collection) 1796 } 1797 for(let i=0;i<product_length;i++){ 1798 const title = products[i].title 1799 const url = products[i].url 1800 const image = products[i].featured_image.url 1801 const vendor = products[i].vendor 1802 let html_product 1803 if(vendor !== 'AIA' && vendor !== 'AXA' && vendor !== 'WOM Finance' && !title.includes('Extra Shipping Cost') && !title.includes('[US]') && !title.includes('Rp')){ 1804 html_product = ` 1805 <li class="item" data-vendor="${vendor}"> 1806 <a href="${url}" class="item_url" data-type="product" data-title="${title}" data-url="${url}"> 1807 <img src="${image}" alt="${title}" style="width: 70px;vertical-align: middle;margin-right: 20px;"><span>${title}</span> 1808 </a> 1809 </li> 1810 ` 1811 } 1812 result_product.append(html_product) 1813 } 1814 }, 1815 error: function(xhr) { // if error occured 1816 alert("Error occured.please try again"); 1817 }, 1818 complete: function(response) { 1819 // $(placeholder).removeClass('loading'); 1820 }, 1821 dataType: 'JSON' 1822 }); 1823 } else { 1824 result_collection.html("") 1825 result_product.html("") 1826 1827 resultsearch.hide() 1828 resultrecommend.show() 1829 } 1830 }) 1831 1832 moreresult.click(function(){ 1833 $("#search-btn").trigger("click"); 1834 }) 1835 1836 $(".close-search").click(function(){ 1837 $(this).hide() 1838 searchInput.val("") 1839 searchInput.focus() 1840 resultsearch.hide() 1841 resultrecommend.show() 1842 }) 1843 1844 function setCookie(name,value,days) { 1845 var expires = ""; 1846 if (days) { 1847 var date = new Date(); 1848 date.setTime(date.getTime() + (days*24*60*60*1000)); 1849 expires = "; expires=" + date.toUTCString(); 1850 } 1851 document.cookie = name + "=" + (value || "") + expires + "; path=/"; 1852 } 1853 function getCookie(name) { 1854 var nameEQ = name + "="; 1855 var ca = document.cookie.split(';'); 1856 for(var i=0;i < ca.length;i++) { 1857 var c = ca[i]; 1858 while (c.charAt(0)==' ') c = c.substring(1,c.length); 1859 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 1860 } 1861 return null; 1862 } 1863 let last_search_name = [] 1864 let last_search_url = [] 1865 $(".group-recent").hide() 1866 if(getCookie("last_search_name") != null && getCookie("last_search_url") != null){ 1867 if(getCookie("last_search_name") != "" && getCookie("last_search_url") != ""){ 1868 $(".group-recent").show() 1869 last_search_name = getCookie("last_search_name"); 1870 last_search_url = getCookie("last_search_url"); 1871 const arrName = last_search_name.substring(1).split(',').reverse() 1872 const arrUrl = last_search_url.substring(1).split(',').reverse() 1873 console.log(arrName, 'Array Name') 1874 console.log(arrUrl, 'Array Url') 1875 let length = arrName.length 1876 if(arrName.length > 5) { 1877 length = 5 1878 } 1879 for(let n=0;n<length;n++){ 1880 let html2 = `<li><svg viewBox="0 0 24 24" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp"><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]}">
1880${arrName[n]}</a><span data-title="${arrName[n]}" data-url="${arrUrl[n]}"></span></li>` 1881 $(".group-recent ul").append(html2) 1882 } 1883 } 1884 } 1885 console.log(last_search_name, 'Name') 1886 console.log(last_search_url, 'url') 1887 1888 resultsearch.delegate(".item a", "click", function(){ 1889 let name = [last_search_name] 1890 let url = [last_search_url] 1891 name.push($(this).attr('data-title')) 1892 url.push($(this).attr('data-url')) 1893 setCookie("last_search_name",name,7); 1894 setCookie("last_search_url",url,7); 1895 }) 1896 1897 $(".delete-all-history").click(function() { 1898 setCookie("last_search_name",null,0); 1899 setCookie("last_search_url",null,0); 1900 $(".last-search").hide(); 1901 setTimeout(function(){ 1902 location.reload(); 1903 }, 500); 1904 }) 1905 1906 $("#search-trigger").click(function(){ 1907 search_open() 1908 }) 1909 $(".icon-search-mobile").click(function(){ 1910 search_open() 1911 }) 1912 $(".search-header svg").click(function(){ 1913 search_close() 1914 }) 1915 $(".icon-key-mobile").click(function(){ 1916 search_close() 1917 }) 1918 1919 function search_open() { 1920 $("body").addClass("search-popup-open") 1921 $("#nav-mobile-icon, .search-header label, .icon-search-mobile").hide() 1922 $("#search-popup, .search-header svg, .icon-key-mobile").show() 1923 $(".search-popup").focus() 1924 $('.popup-recommend')[0].swiper.update(); 1925 } 1926 function search_close() { 1927 $("body").removeClass("search-popup-open") 1928 $("#nav-mobile-icon, .search-header label, .icon-search-mobile").show() 1929 $("#search-popup, .search-header svg, .icon-key-mobile").hide() 1930 searchInput.val("") 1931 resultsearch.hide() 1932 resultrecommend.show() 1933 } 1934 1935 $(".site-overlay").click(function(){ 1936 search_close() 1937 }) 1938 </script>
1938 1939 1940 </div> 1941 </div> 1942 1943 <div id="PageContainer" class="is-moved-by-drawerx" style="background-color: #000000;"> 1944 <main class="main-content pt-0" role="main"> 1945 1946 <div id="breadcrumbProduct" class="d-none d-lg-block"> 1947 <style> 1948 #breadcrumbProduct { 1949 padding: 20px 0; 1950 } 1951 #breadcrumbProduct ul { 1952 display: flex; 1953 padding: 0; 1954 list-style: none; 1955 margin: 0; 1956 gap: 12px; 1957 } 1958 #breadcrumbProduct ul li { 1959 text-transform: uppercase; 1960 margin: 0; 1961 font-size: 12px; 1962 } 1963 #breadcrumbProduct ul li a { 1964 color: #757575; 1965 } 1966 1967 #breadcrumbProduct ul li svg { 1968 width: 10px; 1969 height: 10px; 1970 padding: 0; 1971 color: #757575; 1972 vertical-align: middle; 1973 } 1974 </style> 1975 <div class="container" style="color: #ffe100;"> 1976 <ul role="navigation" aria-label="breadcrumbs"> 1977 <li><a href="https://www.cabosanfrancisco.ch/" style="color: #ffe100;">OMPONG188</a></li> 1978 <li><svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="7" height="10" viewBox="0 0 7 10" fill="none"> 1979 <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"/> 1980 </svg></li> 1981 <li>OMPONG188</li> 1982 <li>OMPONG188 SLOT</li> 1983 <li>OMPONG188 SITUS</li> 1984 <li>LOGIN OMPONG188</li> 1985 <li>LINK OMPONG188</li> 1986 1987 </ul> 1988 </div> 1989 1990 </div> 1991 1992
1992<script type="application/ld+json"> 1993 { 1994 "@context": "https://schema.org", 1995 "@type": "Product", 1996 "name": "OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel", 1997 "image": "https://www.cabosanfrancisco.ch/image/ompong188-qris.webp", 1998 "description": "OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu.", 1999 "brand": { 2000 "@type": "Brand", 2001 "name": "OMPONG188" 2002 }, 2003 "sku": "OMPONG188", 2004 "mpn": "OMPONG188", 2005 "url": "https://www.cabosanfrancisco.ch/", 2006 "offers": { 2007 "@type": "Offer", 2008 "url": "https://www.cabosanfrancisco.ch/", 2009 "priceCurrency": "USD", 2010 "price": "10.00", 2011 "priceValidUntil": "2025-12-25", 2012 "itemCondition": "https://schema.org/NewCondition", 2013 "availability": "https://schema.org/InStock", 2014 "seller": { 2015 "@type": "Organization", 2016 "name": "OMPONG188" 2017 } 2018 }, 2019 "aggregateRating": { 2020 "@type": "AggregateRating", 2021 "ratingValue": "5.0", 2022 "reviewCount": 858 2023 }, 2024 "review": [ 2025 { 2026 "@type": "Review", 2027 "reviewRating": { 2028 "@type": "Rating", 2029 "ratingValue": "5", 2030 "bestRating": "5" 2031 }, 2032 "author": { 2033 "@type": "Person", 2034 "name": "Gita" 2035 } 2036 }, 2037 { 2038 "@type": "Review", 2039 "reviewRating": { 2040 "@type": "Rating", 2041 "ratingValue": "5", 2042 "bestRating": "5" 2043 }, 2044 "author": { 2045 "@type": "Person", 2046 "name": "Iqmal" 2047 } 2048 } 2049 ] 2050 } 2051 </script>
2051<script type="application/ld+json"> 2052 { 2053 "@context": "https://schema.org", 2054 "@type": "BreadcrumbList", 2055 "itemListElement": [ 2056 { 2057 "@type": "ListItem", 2058 "position": 1, 2059 "name": "OMPONG188", 2060 "item": "https://www.cabosanfrancisco.ch/" 2061 }, 2062 { 2063 "@type": "ListItem", 2064 "position": 2, 2065 "name": "OMPONG188 LINK", 2066 "item": "https://www.cabosanfrancisco.ch/" 2067 }, 2068 { 2069 "@type": "ListItem", 2070 "position": 3, 2071 "name": "OMPONG188 LOGIN", 2072 "item": "https://www.cabosanfrancisco.ch/" 2073 }, 2074 { 2075 "@type": "ListItem", 2076 "position": 4, 2077 "name": "OMPONG188 SITUS", 2078 "item": "https://www.cabosanfrancisco.ch/" 2079 }, 2080 { 2081 "@type": "ListItem", 2082 "position": 5, 2083 "name": "OMPONG188 SLOT", 2084 "item": "https://www.cabosanfrancisco.ch/" 2085 }, 2086 { 2087 "@type": "ListItem", 2088 "position": 6, 2089 "name": "ALTERNATIF OMPONG188", 2090 "item": "https://www.cabosanfrancisco.ch/" 2091 }, 2092 { 2093 "@type": "ListItem", 2094 "position": 7, 2095 "name": "LINK OMPONG188 SLOT", 2096 "item": "https://www.cabosanfrancisco.ch/" 2097 }, 2098 { 2099 "@type": "ListItem", 2100 "position": 8, 2101 "name": "OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel", 2102 "item": "https://www.cabosanfrancisco.ch/" 2103 } 2104 ] 2105 } 2106 </script>
2106 2107 2108 <!--faq--> 2109 2110
2110<script type="application/ld+json" id="faq-schema"> 2111{ 2112 "@context": "https://schema.org", 2113 "@type": "FAQPage", 2114 "mainEntity": [ 2115 { 2116 "@type": "Question", 2117 "name": "1. Apa itu OMPONG188?", 2118 "acceptedAnswer": { 2119 "@type": "Answer", 2120 "text": "OMPONG188 merupakan situs hiburan game online kane yang menggabungkan pilihan permainan, akses lintas perangkat, login fleksibel, serta transaksi via QRIS dalam satu tampilan yang ringkas." 2121 } 2122 }, 2123 { 2124 "@type": "Question", 2125 "name": "2. Apa maksud login super fleksibel di OMPONG188?", 2126 "acceptedAnswer": { 2127 "@type": "Answer", 2128 "text": "Login super fleksibel menggambarkan alur masuk yang dibuat sederhana dan responsif. Pengguna dapat mengakses halaman melalui smartphone maupun desktop tanpa harus melewati navigasi yang terlalu panjang." 2129 } 2130 }, 2131 { 2132 "@type": "Question", 2133 "name": "3. Bagaimana transaksi via QRIS di OMPONG188?", 2134 "acceptedAnswer": { 2135 "@type": "Answer", 2136 "text": "QRIS memberikan alternatif transaksi digital melalui aplikasi pembayaran y
2136ang kompatibel. Pengguna tetap perlu memeriksa nominal, status transaksi, dan ketentuan yang ditampilkan sebelum mengonfirmasi pembayaran." 2137 } 2138 }, 2139 { 2140 "@type": "Question", 2141 "name": "4. Game seperti apa yang tersedia di OMPONG188?", 2142 "acceptedAnswer": { 2143 "@type": "Answer", 2144 "text": "OMPONG188 menghadirkan beragam permainan dengan tema, visual, fitur, serta mekanisme berbeda. Pengguna dapat menjelajahi katalog dan mengenali karakter setiap game untuk menemukan permainan sesuai preferensi." 2145 } 2146 }, 2147 { 2148 "@type": "Question", 2149 "name": "5. Apakah OMPONG188 nyaman diakses melalui HP?", 2150 "acceptedAnswer": { 2151 "@type": "Answer", 2152 "text": "Tampilan OMPONG188 dirancang responsif sehingga halaman login, menu transaksi, dan katalog permainan tetap mudah dijelajahi pada berbagai ukuran layar." 2153 } 2154 } 2155 ] 2156} 2157</script>
2157 2158
2158<script type="application/ld+json"> 2159 { 2160 "@context": "https://schema.org", 2161 "@type": "Organization", 2162 "name": "OMPONG188", 2163 "url": "https://www.cabosanfrancisco.ch/", 2164 "logo": "https://www.cabosanfrancisco.ch/image/logo-ompong188.webp", 2165 "sameAs": [ 2166 "https://www.facebook.com/OMPONG188", 2167 "https://twitter.com/OMPONG188", 2168 "https://www.instagram.com/OMPONG188" 2169 ], 2170 "contactPoint": { 2171 "@type": "ContactPoint", 2172 "telephone": "+62-8101-111-1111", 2173 "contactType": "customer support", 2174 "areaServed": "ID", 2175 "availableLanguage": ["Indonesian", "English"] 2176 } 2177 } 2178 </script>
2178 2179 2180
2180<script type="application/ld+json"> 2181 { 2182 "@context": "https://schema.org", 2183 "@type": "VideoObject", 2184 "name": "OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel", 2185 "description": "OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu.", 2186 "thumbnailUrl": [ 2187 "https://www.cabosanfrancisco.ch/image/ompong188-qris.webp", 2188 "https://www.cabosanfrancisco.ch/image/ompong188-qris.webp" 2189 ], 2190 "uploadDate": "2025-09-28T04:19:10-04:00", 2191 "duration": "PT168", 2192 "contentUrl": "https://www.cabosanfrancisco.ch/" 2193 } 2194 </script>
2194 2195 2196
2196<script type="application/ld+json"> 2197 { 2198 "@context": "https://schema.org", 2199 "@type": "BreadcrumbList", 2200 "itemListElement": [ 2201 { 2202 "@type": "ListItem", 2203 "position": 1, 2204 "name": "Home", 2205 "item": "https://www.cabosanfrancisco.ch/" 2206 } 2207 ] 2208 } 2209 </script>
2209 2210 2211
2211<script type="application/ld+json"> 2212 { 2213 "@context": "https://schema.org", 2214 "@graph": [ 2215 { 2216 "@type": "Organization", 2217 "@id": "https://www.cabosanfrancisco.ch/#org", 2218 "name": "OMPONG188", 2219 "url": "https://www.cabosanfrancisco.ch/", 2220 "logo": "https://www.cabosanfrancisco.ch/image/ompong188-qris.webp" 2221 }, 2222 { 2223 "@type": "WebSite", 2224 "@id": "https://www.cabosanfrancisco.ch/#website", 2225 "url": "https://www.cabosanfrancisco.ch/", 2226 "name": "OMPONG188", 2227 "publisher": { "@id": "https://www.cabosanfrancisco.ch/#org" }, 2228 "inLanguage": "id-ID", 2229 "potentialAction": { 2230 "@type": "SearchAction", 2231 "target": "https://www.cabosanfrancisco.ch/?s={search_term_string}", 2232 "query-input": "required name=search_term_string" 2233 } 2234 }, 2235 { 2236 "@type": "SoftwareApplication", 2237 "@id": "https://www.cabosanfrancisco.ch/#app", 2238 "name": "OMPONG188", 2239 "applicationCategory": "GameApplication", 2240 "operatingSystem": "Android, iOS, Windows", 2241 "offers": { "@type": "Offer", "price": "0", "priceCurrency": "IDR" }, 2242 "aggregateRating": { "@type": "AggregateRating", "ratingValue": 4.9, "ratingCount": 62595 } 2243 } 2244 ] 2245 } 2246 </script>
2246 2247 2248 <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" /> 2249 2250 2251 <style> 2252 .bg-card { 2253 background-color: #000000; 2254 } 2255 </style> 2256 2257 <!-- /templates/product.liquid --> 2258 2259 2260 <!-- <div itemscope itemtype="http://schema.org/Product"> --> 2261 2262 2263 <div class="product-standing-flower" data-product-type="flowerBoard"> 2264 <meta itemprop="url" content="https://www.cabosanfrancisco.ch/"> 2265 <meta itemprop="image" content="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp"> 2266 2267 2268 2269 <input id="data-sku" type="hidden" value="OBVSTF1086"> 2270 <div class="product-single" style="background-image: url(https://www.cabosanfrancisco.ch/image/ompong188-qris.webp); background-attachment: fixed;"> 2271 <div id="product-top" class="container"> 2272 <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;"> 2273 <div id="product-image" class="col-lg-7 text-center"> 2274 <div class="product-image"> 2275 <div class="row no-gutters"> 2276 2277 <div id="product-featured-image" class="row w-100"> 2278 2279 <div id="thumb-image-product" class="col-lg-2 col-12 d-none d-lg-block"> 2280 2281 <div class="swiper-container gallery-thumbs" style="min-height: 500px"> 2282 <ul class="list-unstyled slider swiper-wrapper slider-nav ProductThumbs thumbnails" id="ProductThumbsx"> 2283 2284 <li class="swiper-slide" data-type="image"> 2285 <a 2286 href="files/Blossom-Shine-WM.jpg" 2287 data-standard="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp" 2288 data-image="files/Blossom-Shine-WM.jpg" 2289 data-position="1" 2290 class="product-single__thumbnail" 2291 > 2292 <img 2293 class="lazyload w-100" 2294 src="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp" 2295 alt="OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel" 2296 width="" 2297 height="" 2298 > 2299 </a> 2300 </li> 2301 2302 2303 2304 2305 <li class="swiper-slide" data-type="image"> 2306 <a 2307 href="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp" 2308 data-standard="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp" 2309 data-image="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp" 2310 data-position="2" 2311 class="product-single__thumbnail" 2312 > 2313 <img 2314 class="lazyload w-100" 2315 src="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp" 2316 alt="OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel" 2317 width="" 2318 height="" 2319 > 2320 </a> 2321 </li> 2322 2323 2324 2325 2326 <li class="swiper-slide" data-type="image"> 2327 <a 2328 href="files/Blossom-Shine_3-WM.jpg" 2329 data-standard="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp" 2330 data-image="files/Blossom-Shine_3-WM.jpg" 2331 data-position="3" 2332 class="product-single__thumbnail" 2333 > 2334 <img 2335 class="lazyload w-100" 2336 src="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp" 2337 alt="OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel" 2338 width="" 2339 height="" 2340 > 2341 </a> 2342 </li> 2343 2344 2345 2346 2347 <li class="swiper-slide" data-type="image"> 2348 <a 2349 href="files/Blossom-Shine_4.jpg" 2350 data-standard="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp" 2351 data-image="files/Blossom-Shine_4.jpg" 2352 data-position="4" 2353 class="product-single__thumbnail" 2354 > 2355 <img 2356 class="lazyload w-100" 2357 src="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp" 2358 alt="OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel" 2359 width="" 2360 height="" 2361 > 2362 </a> 2363 </li> 2364 2365 2366 2367 </ul> 2368 </div> 2369 2370 </div> 2371 2372 <div 2373 id="featured-image-product" 2374 class="col-lg-10 col-12 d-none d-lg-block" 2375 > 2376 <div class="swiper-container gallery-top"> 2377 <div class="swiper-slide product-single__image"> 2378 2379 <div class="product-single__photos slider slider-for" id="ProductPhoto"> 2380 2381 2382 <div class="easyzoom easyzoom--overlay easyzoom--with-thumbnails"> 2383 <a href="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp"> 2384 <img 2385 src="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp" 2386 alt="OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel" 2387 id="ProductPhotoImg" 2388 class="lazyload" 2389 > 2390 2391 </a> 2392 </div> 2393 </div> 2394 2395 </div> 2396 <div class="swiper-slide product-single__video" style="display: none"> 2397 <video 2398 src="https://cdn.shopify.com/videos/c/vp/05d379ea115d41c2bd0f7d08b1496bd9/05d379ea115d41c2bd0f7d08b1496bd9.HD-1080p-7.2Mbps-24002195.mp4" 2399 playsinline 2400 loop 2401 muted 2402 ></video> 2403 </div> 2404 </div> 2405 </div> 2406 </div> 2407 2408 <div id="featured-image-product2" class="col-12 d-lg-none"> 2409 <div class="swiper-container gallery-mobile"> 2410 <ul class="swiper-wrapper"> 2411 <li class="swiper-slide img"> 2412 2413 <img 2414 class="swiper-lazy" 2415 src="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp" 2416 data-src="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp" 2417 alt="OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel" 2418 width="" 2419 height="" 2420 > 2421 2422 </li> 2423 2424 2425 <li class="swiper-slide img"> 2426 2427 <img 2428 class="swiper-lazy" 2429 src="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp" 2430 data-src="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp" 2431 alt="OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel" 2432 width="" 2433 height="" 2434 > 2435 2436 </li> 2437 2438 2439 <li class="swiper-slide img"> 2440 2441 <img 2442 class="swiper-lazy" 2443 src="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp" 2444 data-src="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp" 2445 alt="OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel" 2446 width="" 2447 height="" 2448 > 2449 2450 </li> 2451 2452 2453 <li class="swiper-slide img"> 2454 2455 <img 2456 class="swiper-lazy" 2457 src="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp" 2458 data-src="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp" 2459 alt="OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel" 2460 width="" 2461 height="" 2462 > 2463 2464 </li> 2465 2466 2467 </ul> 2468 2469 <div class="swiper-button-prev"><svg class="icon icon-chevron-left" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" 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> 2470 <div class="swiper-button-next"><svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="7" height="10" viewB
2470ox="0 0 7 10" fill="none"> 2471 <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"/> 2472 </svg></div> 2473 2474 <!-- Add Pagination --> 2475 <div class="swiper-pagination"></div> 2476 2477 </div> 2478 </div> 2479 2480 <div class="product-m-pageleb-video col-12 text-center d-lg-none"> 2481 <!-- product video --> 2482 <style> 2483 .view-video{display:block; margin:auto; padding:5px 10px;font-size:16px;font-weight:bold;border:2px solid #ffffff;background:#fff;} 2484 .view-video .icon-play{fill:#ffffff;vertical-align: middle;} 2485 .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;} 2486 .close-video{position:absolute;right:9px; top:8%;z-index:2;padding:5px;} 2487 .close-video .icon{width:30px;height:30px;} 2488 /*responsive iframe */ 2489 .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);} 2490 .video-container iframe {position: absolute;top:60%;left: 0;width: 100%;height: 100%;} 2491 2492 .youtube { 2493 background-color: #000; 2494 margin-bottom: 30px; 2495 position: relative; 2496 padding-top: 56.25%; 2497 overflow: hidden; 2498 cursor: pointer; 2499 width: 100%; 2500 } 2501 .swiper-slide .youtube { 2502 max-width: 480px; 2503 } 2504 .youtube img { 2505 width: 100%; 2506 top: -16.82%; 2507 left: 0; 2508 opacity: 0.7; 2509 } 2510 .youtube .play-button { 2511 width: 90px; 2512 height: 60px; 2513 background-color: #333; 2514 box-shadow: 0 0 30px rgba( 0,0,0,0.6 ); 2515 z-index: 1; 2516 opacity: 0.8; 2517 border-radius: 6px; 2518 } 2519 .youtube .play-button:before { 2520 content: ""; 2521 border-style: solid; 2522 border-width: 15px 0 15px 26.0px; 2523 border-color: transparent transparent transparent #fff; 2524 } 2525 .youtube img, 2526 .youtube .play-button { 2527 cursor: pointer; 2528 } 2529 .youtube img, 2530 .youtube iframe, 2531 .youtube .play-button, 2532 .youtube .play-button:before { 2533 position: absolute; 2534 } 2535 .youtube .play-button, 2536 .youtube .play-button:before { 2537 top: 50%; 2538 left: 50%; 2539 transform: translate3d( -50%, -50%, 0 ); 2540 } 2541 .youtube iframe { 2542 height: 100%; 2543 width: 100%; 2544 top: 0; 2545 left: 0; 2546 } 2547 </style> 2548 2549 2550 </div> 2551 </div> 2552 2553 <div class="product-desc-add position-relative d-none d-lg-block m-0"> 2554 2555 </div> 2556 2557
2557<script> 2558 if ($(window).width() < 991) { 2559 var direction = 'horizontal' 2560 } else { 2561 var direction = 'vertical' 2562 $(".gallery-thumbs").height($("#ProductPhotoImg").height()) 2563 } 2564 var swiper = new Swiper('.gallery-thumbs', { 2565 2566 direction, 2567 slidesPerView: 4.5, 2568 spaceBetween: 12, 2569 navigation: { 2570 nextEl: '.swiper-button-next', 2571 prevEl: '.swiper-button-prev', 2572 } 2573 }); 2574 2575 var swiper = new Swiper('.gallery-mobile', { 2576 //loop: true, 2577 lazy: true, 2578 speed: 300, 2579 resistance : true, 2580 resistanceRatio : 0, 2581 freeModeMomentumRatio : 0.45, 2582 freeModeMomentumVelocityRatio : 1.5, 2583 navigation: { 2584 nextEl: '.swiper-button-next', 2585 prevEl: '.swiper-button-prev', 2586 }, 2587 pagination: { 2588 el: '.swiper-pagination' 2589 }, 2590 useCSS3Transforms: false, 2591 loop: false, 2592 on: { 2593 init: function () { 2594 console.log('swiper initialized'); 2595 var currentVideo = $("[data-swiper-slide-index=" + this.realIndex + "]").find("video"); 2596 currentVideo.trigger('play'); 2597 }, 2598 }, 2599 }); 2600 2601 /* GET ALL VIDEOS */ 2602 var sliderVideos = $(".swiper-slide video"); 2603 2604 /* SWIPER API - Event will be fired after animation to other slide (next or previous) */ 2605 swiper.on('slideChange', function () { 2606 console.log('slide changed'); 2607 /* stop all videos */ 2608 sliderVideos.each(function( index ) { 2609 this.currentTime = 0; 2610 }); 2611 2612 /* SWIPER GET CURRENT AND PREV SLIDE (AND The VIDEO INSIDE) */ 2613 var prevVideo = $(`[data-swiper-slide-index="${this.previousIndex}]"`).find("video"); 2614 var currentVideo = $(`[data-swiper-slide-index="${this.realIndex}"]`).find("video"); 2615 prevVideo.trigger('stop'); 2616 currentVideo.trigger('play'); 2617 }); 2618 2619 2620 $("[data-video]").click(function(){ 2621 const file = $(this).data("video") 2622 $(".product-single__video").show() 2623 $(".product-single__image").hide() 2624 $(".product-single__video").find("video").attr("src", file) 2625 $(".product-single__video").find("video")[0].play(); 2626 }) 2627 $("[data-image]").click(function(){ 2628 $(".product-single__video").hide() 2629 $(".product-single__image").show() 2630 $(".product-single__video").find("video")[0].pause(); 2631 }) 2632 2633 $("#product-image .swiper-slide").each(function(){ 2634 let width = $(this).width() 2635 $(this).height(width) 2636 }) 2637 2638 $(window).resize(function() { 2639 $("#product-image .swiper-slide").each(function(){ 2640 let width = $(this).width() 2641 $(this).height(width) 2642 }) 2643 }) 2644 </script>
2644 2645 2646 </div> 2647 2648 2649 <div class="grid__item_product-info mb-3"> 2650 <div class="c-pdp-product-info"> 2651 <ul class="c-pdp-product-info__service c-pdp-product-info__service--active"> 2652 <!-- artikel --> 2653 <li> 2654 <p class="PDq2pG_selectionAnchorContainer" data-end="503" data-start="64"><a href="https://www.cabosanfrancisco.ch/">OMPONG188</a> hadir sebagai situs hiburan game online kane yang menggabungkan kemudahan akses dengan pengalaman penggunaan yang lebih fleksibel. Sistem login dibuat ringkas agar nyaman digunakan melalui berbagai perangkat, sementara transaksi via QRIS memberikan alternatif pembayaran digital yang praktis. Susunan menu yang sederhana turut membantu pengguna menemukan permainan maupun fitur utama tanpa melewati alur yang terasa panjang.</p> 2655 <p data-end="840" data-start="505">Konsep login super fleksibel OMPONG188 diperkuat dengan tampilan responsif dan pilihan permainan yang beragam dalam satu akses. Pengguna dapat menjelajahi game berdasarkan tema, karakter, maupun mekanisme yang disukai tanpa kesulitan berpindah menu. Dukungan sistem yang diperbarui secara berkala juga ditujukan untuk menjaga performa halaman tetap optimal. Perpaduan QRIS, navigasi ringan, dan akses lintas perangkat membuat OMPONG188 menjadi portal hiburan digital yang praktis untuk digunakan sehari-h
2655ari.</p> 2656 </ul> 2657 </div> 2658 </div> 2659 2660 2661 2662 2663 2664 <style> 2665 .c-pdp-product-info__service--active { 2666 font-size: 12px; 2667 padding-left: 10px; 2668 text-align: left; 2669 max-width: 550px; 2670 margin: auto; 2671 color: #fff; 2672 } 2673 .c-pdp-product-info__service--active li { 2674 list-style: disc; 2675 } 2676 .c-pdp-product-info { 2677 background-color: #000000; 2678 padding: 12px; 2679 margin: 0; 2680 } 2681 .freeship em { 2682 font-style: italic; 2683 font-size: 12px !important; 2684 } 2685 2686 2687 </style> 2688 2689
2689<script> 2690 $(document).ready(function(){ 2691 if ( $(".c-pdp-product-info__service li").length == 1 ) { 2692 $(".c-pdp-product-info__service").addClass("no-bullet"); 2693 $(".c-pdp-product-info__service li").addClass("no-bullets"); 2694 } 2695 }); 2696 </script>
2696 2697 2698 </div> 2699 <div id="product-meta" class="col-lg-5 p-0"> 2700 <div class="product-meta"> 2701 <style> 2702 .product-meta--review {margin-top:10px} 2703 .freeship * {font-size: 14px !important;font-style: normal;} 2704 </style> 2705 <h1 itemprop="name" class="mb-2" style="color: rgb(0, 191, 255); font-weight: bold;">OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel</h1> 2706 2707 <div itemprop="offers" itemscope itemtype="http://schema.org/Offer"> 2708 <meta itemprop="priceCurrency" content="IDR"> 2709 2710 <link itemprop="availability" href="https://schema.org/InStock"> 2711
2711<script 2712 type="text/javascript" 2713 src="//platform-api.sharethis.com/js/sharethis.js#property=5acdc0aa3ef3c0001396fd50&product=custom-share-buttons" 2714 async="async" 2715 ></script>
2715 2716 2717 2718 2719 2720 <span class="visually-hidden">Translation missing: en.products.general.regular_price</span> 2721 2722 <span class="visually-hidden">Translation missing: en.products.general.sale_price</span> 2723 2724 <div class="row no-gutters mb-3"> 2725 <span 2726 id="ProductPrice" 2727 class="h2 ProductPrice" 2728 itemprop="price" 2729 content="835000" style="color: #ffffff;" 2730 > 2731 Rp 5.000 2732 </span> 2733 <div class="discount-product-detail"> 2734 <p id="ComparePrice" class="ComparePrice mt-2 mt-lg-0"> 2735 Rp 10.000 2736 </p> 2737 <span class=" tag-discount"> 2738 2739 2740 <span id="newDiscount" class="product-tag persentase-discount hide"> 2741 (90%) 2742 </span><br> 2743 2744 </span> 2745 </div> 2746 </div> 2747 2748 <div class="row no-gutters meta-sds"> 2749 <div class="col-12 mb-2 mb-lg-0 stock-info"> 2750 2751 2752 <span 2753 id="ProductStock-Product" 2754 class="product-single__stock mb-2 hide" 2755 > 2756 2757 2758 2759 2760 Barang dikirim pada 2761 2762 2763 2764 </span> 2765 2766 <style> 2767 .short-desc-desktop { 2768 margin-bottom: 2rem; 2769 color: white; 2770 } 2771 .short-desc ul li:nth-child(n + 4) { 2772 display: none; 2773 } 2774 .short-desc ul li.showList:nth-child(n + 4) { 2775 display: list-item; 2776 } 2777 label.more { 2778 display: none; 2779 } 2780 label.more.showMe { 2781 display: block; 2782 font-size: 12px; 2783 text-transform: uppercase; 2784 font-weight: 700; 2785 cursor: pointer; 2786 } 2787 </style> 2788 2789 <div class="short-desc-desktop d-none d-lg-block"> 2790 <div class="short-desc"> 2791 2792 <p>OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu.</p> 2793 </div> 2794 <label class="more">Show More â</label> 2795 </div><br> 2796 2797 2798
2798<script> 2799 var liCount; 2800 $(document).ready(function () { 2801 $(".short-desc ul").each(function() { 2802 liCount = $(this).children("li").length; 2803 if (liCount > 3) { 2804 $(this).parent(".short-desc").next(".more").addClass("showMe"); 2805 } 2806 }); 2807 2808 $(".more").click(function () { 2809 //$(".short-desc").find("li").addClass("showList"); 2810 // $(this).hide(); 2811 $("#product-desc").find("ul").show() 2812 $('html, body').animate({ 2813 scrollTop: $("#product-desc").offset().top - 250 2814 }, 2000); 2815 $("#product-desc").css("height","auto"); 2816 $("#more_content").remove(); 2817 $(".product-spec").append("<div id='less_content' class='readmore'><span class='less_content'>Less</span></div>") 2818 }); 2819 }); 2820 </script>
2820 2821 2822 2823 </div> 2824 </div> 2825 2826 <div id="purchaseProduct"> 2827 2828 2829 2830 2831 <style> 2832 .variant-metafield { 2833 display: block!important; 2834 width: 1px; 2835 padding: 0; 2836 border-color: #fff; 2837 } 2838 .select2-results__option[aria-disabled] { 2839 display: none; 2840 } 2841 2842 .towel-bordir { 2843 width: 100%; 2844 display: flex; 2845 align-items: center; 2846 justify-content: space-around; 2847 } 2848 </style> 2849 2850 2851 2852 2853
2853<script> 2854 2855 2856 </script>
2856 2857 2858 2859 2860 2861 2862 2863 <select 2864 name="id[]" 2865 id="productSelect" 2866 class="product-single__variants ignore hide hide" 2867 > 2868 2869 2870 2871 <option 2872 2873 selected="selected" 2874 2875 data-sku="OBVSTF1086" 2876 value="44083045826775" 2877 > 2878 Default Title 2879 </option> 2880 2881 2882 2883 </select> 2884 2885
2885<script src="//outerbloom.com/cdn/shop/t/138/assets/jquery.magnific-popup.min.js?v=184369421263510081681752652422" type="text/javascript"></script>
2885 2886 2887
2887<script> 2888 $('.size-chart-open-popup').magnificPopup({ 2889 type:'inline', 2890 midClick: true 2891 }); 2892 </script>
2892 2893 2894 2895 2896 2897 <div class="upload-image-preview"> 2898 2899 2900 2901 2902 2903 <style> 2904 .file-dnd * { 2905 margin: 0; 2906 padding: 0; 2907 box-sizing: border-box; 2908 } 2909 .file-dnd { 2910 width: 100%; 2911 height: 250px; 2912 border: 1px solid #ddd; 2913 border-radius: 10px; 2914 padding: 15px; 2915 display: flex; 2916 flex-direction: column; 2917 gap: 10px; 2918 /* box-shadow: 0px 2px 10px 2px rgba(0,0,0,0.05); */ 2919 margin: auto; 2920 } 2921 .file-dnd input { 2922 display: none; 2923 } 2924 .file-dnd .before-upload { 2925 border: 1px dashed #888; 2926 flex: 1; 2927 border-radius: 5px; 2928 display: flex; 2929 justify-content: center; 2930 align-items: center; 2931 text-align: center; 2932 cursor: pointer; 2933 } 2934 .file-dnd .before-upload > div { 2935 display: flex; 2936 flex-direction: column; 2937 align-items: center; 2938 gap: 8px; 2939 } 2940 .file-dnd .before-upload > div h4 { 2941 width: 150px; 2942 } 2943 .file-dnd .before-upload > div p { 2944 font-size: 12px !important; 2945 color: #555; 2946 } 2947 .file-dnd.active .before-upload { 2948 border: 1px solid #5750d9; 2949 background-color: #f5f5ff; 2950 } 2951 .file-dnd .after-upload { 2952 position: relative; 2953 display: none; 2954 } 2955 .file-dnd .after-upload img { 2956 width: 100%; 2957 border-radius: 5px; 2958 max-height: 180px; 2959 object-fit: contain; 2960 display: block; 2961 } 2962 .file-dnd .after-upload .clear-btn { 2963 position: absolute; 2964 top: 10px; 2965 right: 10px; 2966 background: rgba(255, 255, 255, 0.5); 2967 width: 15px; 2968 height: 15px; 2969 text-align: center; 2970 line-height: 15px; 2971 border-radius: 50%; 2972 color: #fff; 2973 cursor: pointer; 2974 font-size: 14px; 2975 } 2976 </style> 2977 2978 <div 2979 class="file-dnd mb-3" 2980 2981 style="display: none" 2982 2983 > 2984 <label for="upload-photo">Upload your Photo:</label> 2985 <input type="file" id="upload-photo" accept="image/*"> 2986 <input type="hidden" data-properties="Photo"> 2987 <div class="before-upload"> 2988 <div> 2989 <svg id="surface1" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="33.053" height="41.719" viewBox="0 0 33.053 41.719"> 2990 <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> 2991 <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> 2992 <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> 2993 </svg> 2994 2995 <h4>Drag & Drop Photo file or Browse</h4> 2996 <p>Supports: JPEG, PNG, GIF, TIFF</p> 2997 </div> 2998 </div> 2999 <div class="after-upload"> 3000 <div class="clear-btn">×</div> 3001 <img src="" width="" height=""> 3002 </div> 3003 </div> 3004
3004<script> 3005 function applyDndFile(el) { 3006 const parent = document.querySelector(".file-dnd") 3007 const beforeUploadEl = el.querySelector(".before-upload") 3008 const afterUploadEl = el.querySelector(".after-upload") 3009 const inputFile = el.querySelector("input[type=file]") 3010 const imagePreview = el.querySelector(".after-upload img") 3011 const clearBtn = el.querySelector(".after-upload .clear-btn") 3012 const inputProps = parent.querySelector("[data-properties]"); 3013 3014 async function upload(name, uri, type) { 3015 try { 3016 const filename = name.split('.')[0] 3017 let formData = new FormData(); 3018 formData.append("file", uri); 3019 const response = await fetch(`${host}/upload?name=${filename}&dir=gift&type=${type}`, { 3020 method: "POST", 3021 body: formData 3022 }) 3023 if(response) { 3024 const res = await response.json() 3025 return res 3026 } 3027 } catch(err){ 3028 console.log(err) 3029 } 3030 } 3031 3032 function showImagePreview(img) { 3033 if(img){ 3034 const blobUrl = URL.createObjectURL(img) 3035 imagePreview.src = blobUrl 3036 afterUploadEl.style.display = "block" 3037 beforeUploadEl.style.display = "none" 3038 } 3039 } 3040 3041 beforeUploadEl.addEventListener("click", (e) => { 3042 e.preventDefault() 3043 inputFile.click() 3044 }) 3045 3046 inputFile.addEventListener("change", async (e) => { 3047 e.preventDefault() 3048 showImagePreview(e.target.files[0]) 3049 var uploadData = await upload(e.target.files[0].name, e.target.files[0], e.target.files[0].type) 3050 inputProps.value = uploadData?.url 3051 }) 3052 3053 clearBtn.addEventListener("click", (e) => { 3054 afterUploadEl.style.display = "none" 3055 beforeUploadEl.style.display = "flex" 3056 inputProps.value = "" 3057 }) 3058 3059 beforeUploadEl.addEventListener("dragover", (e) => { 3060 e.preventDefault() 3061 el.classList.add("active") 3062 }) 3063 3064 beforeUploadEl.addEventListener("dragleave", (e) => { 3065 e.preventDefault() 3066 el.classList.remove("active") 3067 }) 3068 3069 beforeUploadEl.addEventListener("drop", async (e) => { 3070 e.preventDefault() 3071 el.classList.remove("active") 3072 showImagePreview(e.dataTransfer.files[0]) 3073 var uploadData = await upload(e.dataTransfer.files[0].name, e.dataTransfer.files[0], e.dataTransfer.files[0].type) 3074 console.log(uploadData) 3075 inputProps.value = uploadData?.url 3076 }) 3077 } 3078 3079 applyDndFile(document.querySelector(".file-dnd")) 3080 3081 $(document).ready(function(){ 3082 $(".variant-swatch").change(function(){ 3083 const v = $(this).val().toLowerCase() 3084 const list = ["photo", "custom one side", "custom two side", "small", "big"] 3085 if(list.some(item => v.includes(item))) return $(".file-dnd").show() 3086 $(".file-dnd").hide() 3087 $(".file-dnd").find("[data-properties]").val("") 3088 $(".after-upload").hide() 3089 $(".before-upload").css("display", "flex") 3090 }) 3091 }) 3092 </script>
3092 3093 3094 </div> 3095 3096 3097 <div class="delivery-city mb-4"> 3098 <a href="https://www.cabosanfrancisco.ch/coffee/"> 3099 <center><img src="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" alt="logo-daftar" style="width: 260px; margin-top: -20px;"></center></a><br> 3100 <h4 class="fw-600 text-uppercase mb-15" style="color: rgb(0, 191, 255);">AKSES LINK RESMI OMPONG188 !</h4> 3101 <div class="row justify-content-between m-0"> 3102 <select id="cities" class="form-control select-search" required> 3103 <option value="">Gabung Sekarang Di OMPONG188 Nikmati Akses Tercepat Bersama Bandar ALTERNATIF OMPONG188</option> 3104 </select> 3105 </div> 3106 </div> 3107 3108 <style> 3109 @media (max-width: 768px) { 3110 .select2-search__field { 3111 pointer-events: none !important; 3112 } 3113 3114 .select2-search { 3115 display: none !important; 3116 } 3117 } 3118 </style> 3119 3120
3120<script> 3121 $(document).ready(function() { 3122 // Check if mobile 3123 if (window.innerWidth <= 768) { 3124 // When cities select2 opens on mobile, remove focus from search 3125 $('#cities').on('select2:open', function() { 3126 setTimeout(function() { 3127 $('.select2-search__field').blur(); 3128 $('.select2-search__field').prop('readonly', true); 3129 }, 100); 3130 }); 3131 } 3132 }); 3133 </script>
3133 3134 3135 <style> 3136 .icon-img-footer { 3137 width: 80px; 3138 padding: 0px 5px; 3139 } 3140 @media (min-width: 768px) { 3141 .icon-img-footer { 3142 width: 120px; 3143 } 3144 } 3145 @media (min-width: 992px) { 3146 .icon-img-footer { 3147 width: 120px; 3148 } 3149 } 3150 3151 3152 </style> 3153 <div id="row-delivery-date" class="row m-0 mb-3"> 3154 <h4 class="fw-600 text-uppercase col-12 p-0 mb-15" style="color: rgb(0, 191, 255);">Nikmati Akses Bermain ALTERNATIF OMPONG188 Bersama OMPONG188</h4> 3155 <div id="deliveryDate" class="m-0"></div> 3156 <div id="deliveryDateFull"> 3157 <div class=""> 3158 <input 3159 type="text" 3160 id="full-date" 3161 class="date-full calendarbutton btn steps-btn btn-date-time mb-0" 3162 value="Full Calendar" 3163 > 3164 <label for="full-date"><svg version="1.1" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="32" height="32" viewBox="0 0 32 32"> 3165 <title>icon-arrow-right</title> 3166 <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> 3167 </svg></label> 3168 </div> 3169 <button class="btnChangeDeliveryDate hide">Change Delivery Date</button> 3170 </div> 3171 <div class="form-group p-0"> 3172 <input type="text" id="propDeliveryDate" required class="hide"> 3173 </div> 3174 </div> 3175 3176 3177 <div id="row-delivery-time" class="row m-0 mb-3"> 3178 <h4 class="text-center fw-600 text-uppercase col-12 mb-15"> 3179 SEO RZKY 3180 </h4> 3181 <div id="deliveryTime" class="d-flex w-100 m-0"></div> 3182 <div class="form-group p-0"> 3183 <input type="text" id="propDeliveryTime" class="hide" required> 3184 </div> 3185 </div> 3186 3187 3188 3189 3190 3191 <div id="personalizeBtn"> 3192 3193 3194 3195 3196 <button 3197 class="btn text-uppercase w-100 fw-400" 3198 3199 3200 3201 > 3202 3203 customize your flower board 3204 3205 </button> 3206 <div class="button-share-wishlist d-flex justify-content-around mt-3"> 3207 <div class="button-share text-center"> 3208 <p id="shareButton" class="d-flex gap-2"><span>OMPONG188</span><svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="15" height="13" viewBox="0 0 15 13" fill="none"> 3209 <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"/> 3210 </svg> 3211 </p> 3212 </div> 3213 <div class="button-wishlist text-center"> 3214 <p id="wishButton" class="d-flex gap-2 wishlist-toggle" data-product-handle="blossom-shine"><span>Wishlist</span><svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="16" height="15" viewBox="0 0 16 15" fill="none"> 3215 <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"/> 3216 </svg> 3217 <!-- 3218 <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="34" height="30" viewBox="0 0 34 30" fill="none"> 3219 <path d="M32.8333 9.23082C32.8333 4.51916 29.0142 0.699158 24.3025 0.699158C21.2 0.699158
321918.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"/> 3220 </svg> 3221 --> 3222 </p> 3223 </div> 3224 </div> 3225 </div> 3226 </div> 3227 <div class="purchasePopup purchasePopupSpotify" style="display: none;"> 3228 <div class="purchaseArea"> 3229 <div class="sectionPurchase sectionPurchaseSpotify"> 3230 <div class="wrapperPurchase"> 3231 <div class="headerPurchase"> 3232 <h3>personalize spotify photo print</h3> 3233 <a class="close-purchase-popup"> 3234 <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="18" height="18" viewBox="0 0 18 18" fill="none"> 3235 <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> 3236 </svg> 3237 </a> 3238 </div> 3239 <div class="contentPurchase"> 3240 <div class="spotifyAddons"></div> 3241 </div> 3242 3243 <div class="purchase-button btn-addon row m-0" style="display: none;"> 3244 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 3245 <button class="back-purchase-button back-addon text-uppercase"> 3246 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp"> 3247 <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> 3248 </svg> 3249 <span>Back</span> 3250 </button> 3251 </div> 3252 <div class="col-12 col-lg-10 text-right" style="display: flex;justify-content: end;gap: 20px;"> 3253 <button class="btn next-purchase-button next-addon text-uppercase"> 3254 <span>continue without add-ons</span> 3255 </button> 3256 </div> 3257 </div> 3258 </div> 3259 </div> 3260 </div> 3261 </div> 3262 3263 <style> 3264 #PBarNextFrameWrapper { 3265 display: none; 3266 } 3267 #backgroundPopup { 3268 display: none; 3269 position: fixed; 3270 _position: absolute; 3271 height: 100%; 3272 width: 100%; 3273 top: 0; 3274 left: 0; 3275 background: rgb(117 117 117 / 24%); 3276 z-index: 1; 3277 } 3278 .sectionPurchase { 3279 height: 100%; 3280 position: relative; 3281 max-width: 1344px; 3282 background-color: #fff; 3283 padding: 0; 3284 overflow: hidden; /* Changed from auto to hidden */ 3285 display: flex; 3286 flex-direction: column; 3287 } 3288 .sectionPurchase.purchaseAddonSpotify { 3289 max-width: 1070px!important; 3290 max-height: 765px!important; 3291 } 3292 .sectionPurchaseBoard { 3293 max-width: 872px!important; 3294 max-height: 821px!important; 3295 } 3296 .purchaseAddonSpotify .btn-action { 3297 position: absolute; 3298 bottom: 0; 3299 left: 0; 3300 width: 100%; 3301 display: flex; 3302 gap: 10px; 3303 } 3304 .wrapperPurchase { 3305 position: relative; 3306 height: 100%; 3307 display: flex; 3308 flex-direction: column; 3309 } 3310 3311 /* New styles for scrollable content and sticky button */ 3312 .purchase-content { 3313 flex: 1; 3314 overflow-y: auto; 3315 overflow-x: hidden; 3316 padding: 20px; 3317 } 3318 3319 .purchase-button-wrapper { 3320 position: sticky; 3321 bottom: 0; 3322 background-color: #fff; 3323 border-top: 1px solid #e0e0e0; 3324 padding: 15px 0; 3325 margin-top: auto; 3326 z-index: 10; 3327 } 3328 3329 .purchasePopup { 3330 display: none; 3331 position: fixed; 3332 background: rgb(117 117 117 / 24%); 3333 z-index: 999; 3334 padding: 40px; 3335 font-size: 13px; 3336 top: 0; 3337 left: 0; 3338 width: 100%; 3339 height: 100%; 3340 } 3341 .popupPurchaseClose{ 3342 font-size:14px; 3343 line-height:14px; 3344 right:45px; 3345 top:45px; 3346 position:absolute; 3347 color:#6fa5fd; 3348 font-weight:700; 3349 display:block; 3350 cursor: pointer; 3351 } 3352 3353 .headerPurchase { 3354 margin-bottom: 30px; 3355 display: flex; 3356 justify-content: space-between; 3357 } 3358 3359 .headerPurchase h3 { 3360 font-size: 16px; 3361 text-transform: uppercase; 3362 } 3363 3364 .sectionPurchaseBoard .headerPurchase { 3365 margin-bottom: 15px; 3366 } 3367 3368 .sectionPurchaseBoard .formAddressPurchase { 3369 padding-top: 0;
3370 } 3371 3372 .purchaseArea { 3373 position: relative; 3374 height: 100%; 3375 } 3376 3377 .purchaseArea h4 { 3378 width: 100%; 3379 font-size: 12px; 3380 font-weight: 600; 3381 margin-bottom: 10px; 3382 text-transform: uppercase; 3383 } 3384 3385 .menuPurchase { 3386 margin-bottom: 30px; 3387 } 3388 3389 .menuPurchase ul { 3390 list-style-type: none; 3391 margin: 0; 3392 } 3393 3394 .menuPurchase ul li { 3395 display: inline-block; 3396 border: 1px solid #ffffff; 3397 padding: 5px 20px; 3398 margin-right: 5px; 3399 margin-bottom: 10px; 3400 font-size: 12px; 3401 font-weight: 400; 3402 } 3403 3404 .menuPurchase ul li:hover, .menuPurchase ul li.selected { 3405 background-color: #ffffff; 3406 color: #ffffff; 3407 } 3408 3409 .contentPurchase h5 { 3410 font-size: 12px; 3411 margin-bottom: 10px; 3412 font-weight: 400; 3413 overflow: hidden; 3414 } 3415 3416 /* Card */ 3417 3418 #itemCards { 3419 max-height: 430px; 3420 overflow: auto; 3421 } 3422 3423 .item-cards { 3424 width: 100%; 3425 } 3426 .item-card.selected { 3427 border: 1px solid #ffffff; 3428 } 3429 .item-card:hover { 3430 border: 1px solid #C4C4C4; 3431 } 3432 .item-cards .item-card { 3433 position: relative; 3434 width: calc(33% - 10px); 3435 max-width: calc(33% - 10px); 3436 flex: 0 0 calc(33% - 10px); 3437 margin-bottom: 20px; 3438 } 3439 .item-cards .item-card label, 3440 .item-addons .item-addon label { 3441 position: absolute; 3442 left: 0; 3443 width: 100%; 3444 height: 100%; 3445 } 3446 .item-cards .item-card .card-image img, 3447 .item-addons .item-addon .card-image img { 3448 display: block; 3449 width: 100%; 3450 } 3451 .item-card .card-meta, 3452 .item-addon .card-meta { 3453 padding: 10px 5px 5px; 3454 } 3455 .item-card.selected .card-meta, 3456 .item-addon.selected .card-meta, 3457 .item-card.selected .card-qty { 3458 background-color: #ffffff; 3459 color: #fff; 3460 visibility: visible!important; 3461 } 3462 .item-card:hover .card-meta, 3463 .item-addon:hover .card-meta, 3464 .item-card:hover .card-qty { 3465 background-color: #C4C4C4; 3466 color: #fff; 3467 visibility: visible!important; 3468 } 3469 .item-cards .item-card p, 3470 .item-addons .item-addon p { 3471 font-size: 12px !important; 3472 margin: 0; 3473 font-weight: 600; 3474 } 3475 .item-card .card-meta input, 3476 .item-addon .card-meta input { 3477 display: none; 3478 } 3479 .item-cards .item-card h5, 3480 .item-addons .item-addon h5 { 3481 text-transform: uppercase; 3482 max-height: 35px; 3483 } 3484 3485 @media (max-width: 768px) { 3486 .item-cards .item-card { 3487 width: calc(50% - 10px); 3488 max-width: calc(50% - 10px); 3489 flex: 0 0 calc(50% - 10px); 3490 margin-bottom: 0; 3491 } 3492 } 3493 3494 .card-qty { 3495 display: flex; 3496 padding: 5px; 3497 visibility: hidden; 3498 background-color: #fff !important; 3499 z-index: 999; 3500 } 3501 .card-qty a { 3502 border-width: 1px; 3503 width: 30%; 3504 cursor: pointer; 3505 text-align: center; 3506 align-self: center; 3507 height: 28px; 3508 display: block; 3509 position: relative; 3510 } 3511 .card-qty a svg { 3512 position: absolute; 3513 top: 50%; 3514 left: 50%; 3515 transform: translate(-50%, -50%); 3516 text-align: center; 3517 } 3518 input.btn-qty { 3519 border-width: 0px; 3520 border-radius: 0; 3521 background-color: #fff; 3522 -webkit-appearance: none; 3523 box-shadow: none !important; 3524 -webkit-box-shadow: none !important; 3525 -moz-box-shadow: none!important; 3526 width: 40%; 3527 border-left: 1px solid #c4c4c4; 3528 border-right: 1px solid #c4c4c4; 3529 padding: 0; 3530 } 3531 3532 .sectionPurchaseBoard #itemAddons .item-card { 3533 width: calc(20% - 15px); 3534 max-width: calc(20% - 15px); 3535 flex: 0 0 calc(20% - 15px); 3536 } 3537 3538 .purchase-button { 3539 width: 100%; 3540 padding: 0; /* Reset padding as it's now handled by wrapper */ 3541 margin: 0; 3542 } 3543 3544 .sectionPurchaseBoard .purchase-button { 3545 margin-top: 0 !important; /* Reset margin */ 3546 } 3547 3548 .back-purchase-button, .back-spotify { 3549 width: 139px; 3550 border: 1px solid; 3551 height: 43px; 3552 } 3553 .purchase-button .btn { 3554 width: 297px; 3555 height: 43px; 3556 background-color: #ffffff; 3557 color: #ffffff; 3558 } 3559 .purchase-button .btn[disabled] { 3560 background-color: #EEEEEE; 3561 } 3562 .back-purchase-button svg, .back-spotify svg { 3563 align-self: center; 3564 vertical-align: middle; 3565 margin-right: 10px; 3566 } 3567 3568 #purchaseProduct .row .error { 3569 font-size: 12px !important; 3570 color: orange; 3571 margin-top: 5px; 3572 } 3573 3574 .reviewCardPurchase { 3575 max-width: 448px; 3576 float: right; 3577 } 3578 3579 .addonsPurchase .addon-item {display: flex;justify-content: space-between;} 3580 .addon-item * {align-self: center;font-size: 12px;} 3581 .addon-itm-title {width: 360px;} 3582 .addon-itm-line-price {color: #757575;width: 80px;justify-content: space-between;display: flex;} 3583 3584 .propsAddonSpotify p { 3585 margin: 0; 3586 display: flex; 3587 font-size: 12px !important; 3588 margin-bottom: 5px; 3589 } 3590 .propsAddonSpotify p span:first-child { 3591 text-transform: uppercase; 3592 font-weight: 600; 3593 -ms-flex: 0 0 150px; 3594 flex: 0 0 150px; 3595 max-width: 150px; 3596 } 3597 3598 .addonsPurchase .addons { 3599 max-height: 250px; 3600 overflow: auto; 3601 } 3602 3603 .btn .loading:after { 3604 content: ""; 3605 display: inline-block;
3606 width: 20px; 3607 height: 20px; 3608 padding: 3px; 3609 aspect-ratio: 1; 3610 border-radius: 50%; 3611 background: #FFFFFF; 3612 --_m: conic-gradient(#0000 10%, #ffffff), linear-gradient(#ffffff 0 0) content-box; 3613 -webkit-mask: var(--_m); 3614 mask: var(--_m); 3615 -webkit-mask-composite: source-out; 3616 mask-composite: subtract; 3617 animation: l3 1s infinite linear; 3618 margin: auto; 3619 vertical-align: middle; 3620 margin-left: 10px; 3621 } 3622 3623 #qrcode img, #qrcode canvas { 3624 width: 50px; 3625 position: absolute; 3626 top: 12px; 3627 left: 16px; 3628 } 3629 3630 .t-preview { 3631 position: absolute; 3632 top: 17px; 3633 left: 75px; 3634 } 3635 .t-preview p { 3636 margin: 0; 3637 font-size: 12px !important; 3638 } 3639 .t-preview .h3 { 3640 font-size: 16px !important; 3641 margin-bottom: 5px; 3642 font-weight: 600; 3643 } 3644 .scanCard { 3645 width: 100%; 3646 border: 1px solid; 3647 height: 76px; 3648 background-color: #fff; 3649 } 3650 .scanCard > div > img { 3651 position: absolute; 3652 right: 0; 3653 width: 55px; 3654 } 3655 3656 @keyframes l3 { 3657 100% { 3658 transform: rotate(1turn); 3659 } 3660 } 3661 3662 @media (min-width: 991px) { 3663 .sectionPurchase { 3664 height: 100%; 3665 position: relative; 3666 max-width: 1344px; 3667 background-color: #fff; 3668 top: 50%; 3669 left: 50%; 3670 transform: translate(-50%, -50%); 3671 } 3672 .headerPurchase h3 { 3673 font-size: 20px; 3674 } 3675 .purchaseArea h4 { 3676 font-size: 16px; 3677 } 3678 3679 .menuPurchase ul li { 3680 font-size: 16px; 3681 } 3682 3683 .contentPurchase { 3684 margin-bottom: 30px; 3685 } 3686 .contentPurchase h5 { 3687 font-size: 16px; 3688 } 3689 3690 .item-cards .item-card p, 3691 .item-addons .item-addon p { 3692 font-size: 16px !important; 3693 } 3694 3695 .cards { 3696 float: right; 3697 width: 400px; 3698 } 3699 3700 .item-cards .item-card { 3701 width: calc(25% - 30px); 3702 max-width: calc(25% - 30px); 3703 flex: 0 0 calc(25% - 30px); 3704 } 3705 3706 #itemAddons .item-card { 3707 position: relative; 3708 width: calc(16% - 40px); 3709 max-width: calc(16% - 40px); 3710 flex: 0 0 calc(16% - 40px); 3711 } 3712 3713 .purchase-button-wrapper { 3714 padding: 10px 20px; 3715 } 3716 } 3717 3718 @media (max-width: 1200px) { 3719 .item-cards .item-card { 3720 width: calc(33% - 30px); 3721 max-width: calc(33% - 30px); 3722 flex: 0 0 calc(33% - 30px); 3723 } 3724 } 3725 3726 @media (max-width: 992px) { 3727 .purchasePopup { 3728 padding: 0; 3729 } 3730 .item-cards .item-card h5, 3731 .item-addons .item-addon h5 { 3732 max-height: 30px; 3733 } 3734 3735 .back-purchase-button, .back-spotify, .next-purchase-button { 3736 width: 100%; 3737 } 3738 .addon-itm-title { 3739 width: 300px; 3740 } 3741 .addon-itm-line-price { 3742 margin-right: 10px; 3743 } 3744 .t-preview { 3745 top: 10px; 3746 } 3747 3748 .card-qty a { 3749 height: 15px; 3750 } 3751 3752 .purchase-button-wrapper { 3753 padding: 15px; 3754 } 3755 } 3756 3757 @media (max-width: 576px) { 3758 .purchase-button .btn { 3759 width: 100%!important; 3760 } 3761 .purchase-button > .col-12 { 3762 padding-left: 0; 3763 padding-right: 0; 3764 } 3765 } 3766 </style> 3767 3768 3769 <div class="purchasePopup"> 3770 <div class="purchaseArea"> 3771 3772 <div class="sectionPurchase purchasePersonalize sectionPurchaseBoard"> 3773 <div class="wrapperPurchase"> 3774 <div class="purchase-content"> 3775 <div class="headerPurchase"> 3776 <h3 class="text-uppercase"> 3777 3778 customize your flower board 3779 3780 </h3> 3781 <a class="close-purchase-popup"> 3782 <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="18" height="18" viewBox="0 0 18 18" fill="none"> 3783 <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"/> 3784 </svg> 3785 </a> 3786 3787 </div> 3788 <div class="contentPurchase"> 3789 <div class="row"> 3790 3791 <div class="col-12"> 3792 3793 3794 <style> 3795 3796 3797 .customize-papan .group-field-1 .input-field {float: left;width: 100%;height: 317px;background-color: #E5E5EA;} 3798 .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;} 3799 3800 .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;} 3801 .customize-papan .btn-upload-papan svg {width: 21px;height: 25px;display: block;align-self: center;margin: auto;margin-bottom: 12px;} 3802 .svgLogoPapan {position: absolute;width: 100%;top: 50%;left: 50%;transform: translate(-50%, -50%);text-align: center;} 3803 .svgLogoPapan p {color: #8E8E93; margin: 0;} 3804 .svgLogoPapan p span {font-size: 12px;color: #FF0E00;} 3805 .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;} 3806 #suggest-messages {position: absolute;bottom: 5px;left: 5px;} 3807 #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;} 3808 .case-occasion .nice-select:after {border-bottom: 2px solid #333;border-right: 2px solid #333;right: 20px;top: 42%;width: 10px;height: 10px;} 3809 .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;} 3810 .customize-papan .input-field .limit {position: absolute;right: 15px;top: 0;color: #757575;} 3811 3812 @media (min-width: 991px) { 3813 .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);} 3814 .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);} 3815 } 3816 </style> 3817 3818 <input type="hidden" data-properties="penerima" value="-"> 3819 <div class="customize-papan"> 3820 <div class="container"> 3821 <div class="field-papan group-field-1 form-group"> 3822 <div class="input-field">
3823 <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. 3824 (Ex: Selamat Menempuh Hidup Baru A & B)." maxlength="100"></textarea> 3825 <p class="limit">0/100</p> 3826 <div id="suggest-messages"> 3827 <a id="show_note_papan1" href="#"> 3828 <div class="suggest-message" id="note_btn_div1"> 3829 <span class="promo-code-link" id="note_btn_papan1">Contoh Kata WEDDING</span> 3830 </div> 3831 </a> 3832 <a id="show_note_papan2" href="#"> 3833 <div class="suggest-message" id="note_btn_div2"> 3834 <span class="promo-code-link" id="note_btn_papan2">Contoh Kata SELAMAT</span> 3835 </div> 3836 </a> 3837 <a id="show_note_papan3" href="#"> 3838 <div class="suggest-message" id="note_btn_div3"> 3839 <span class="promo-code-link" id="note_btn_papan3">Contoh Kata DUKA CITA</span> 3840 </div> 3841 </a> 3842 </div> 3843 </div> 3844 </div> 3845 <div class="hide"> 3846 <input type="hidden" value="" id="note_id_papan1" name="note_id_papan1" style="top: 0px;"> 3847 <input type="hidden" value="" id="note_btn_id_papan1" name="note_btn_id_papan1"> 3848 </div> 3849 <div class="hide"> 3850 <input type="hidden" value="" id="note_id_papan2" name="note_id_papan2" style="top: 0px;"> 3851 <input type="hidden" value="" id="note_btn_id_papan2" name="note_btn_id_papan2"> 3852 </div> 3853 <div class="hide"> 3854 <input type="hidden" value="" id="note_id_papan3" name="note_id_papan3" style="top: 0px;"> 3855 <input type="hidden" value="" id="note_btn_id_papan3" name="note_btn_id_papan3"> 3856 </div> 3857 <div class="field-papan group-field-2 form-group"> 3858 3859 <label for="logoPapan" onclick="" class="input-field field-logo"> 3860 3861 3862 3863 <div class="btn-upload-papan w-100"> 3864 <?xml version="1.0" encoding="UTF-8"?> 3865 <img src="" style="display:none"> 3866 <div class="svgLogoPapan"> 3867 <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="22" height="26" viewBox="0 0 22 26" fill="none"> 3868 <path d="M6.5 20H15.5V11H21.5L11 0.5L0.5 11H6.5V20ZM0.5 23H21.5V26H0.5V23Z" fill="black"/> 3869 </svg> 3870 <p>Upload Logo <span>*optional</span></p> 3871 </div> 3872 </div> 3873 3874 </label> 3875 3876 <input 3877 type="hidden" 3878 data-properties="papan-logo" 3879 value="" 3880 > 3881 <input 3882 type="file" 3883 id="logoPapan" 3884 accept="image/*" 3885 style="position: absolute;width: 1px;height: 1px;padding: 0" 3886 > 3887 3888 <div class="input-field"> 3889 <input class="has-limit sender-name" type="text" placeholder="Nama Pengirim" data-properties="pengirim" maxlength="35"/> 3890 <p class="limit">0/35</p> 3891 </div> 3892 3893 </div> 3894 3895 </div> 3896 </div> 3897 </div> 3898 3899 </div> 3900 </div> 3901 3902 </div> 3903 <div class="purchase-button-wrapper"> 3904 <div class="purchase-button btn-card row m-0"> 3905 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 3906 3907 </div> 3908 <div class="btn-next-card col-12 col-lg-10 text-right"> 3909 3910 3911 <button 3912 3913 3914 3915 class="btn next-purchase-button text-uppercase" 3916 3917 disabled 3918 3919 > 3920 <span>save your flower board</span> 3921 </button> 3922 </div> 3923 </div> 3924 3925 </div> 3926 </div> 3927 </div> 3928 3929 3930 3931 <div 3932 class="sectionPurchase sectionPurchaseBoard hide" 3933 data-section="address" 3934 > 3935 <div class="wrapperPurchase"> 3936 <div class="purchase-content"> 3937 <div class="headerPurchase"> 3938 <h3> 3939 Complete Your Order 3940 </h3> 3941 <a class="close-purchase-popup"> 3942 <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="18" height="18" viewBox="0 0 18 18" fill="none"> 3943 <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"/> 3944 </svg> 3945 </a> 3946 3947 </div> 3948 <div class="contentPurchase"> 3949 <div class="row"> 3950 <div class="col-12 position-relative"> 3951 <div class="addressPurchase"> 3952 3953 <h4 class="text-uppercase">recipient delivery address</h4> 3954 <p>Share the delivery address to send your heartfelt blooms straight to their door.</p> 3955 3956 <div class="formAddressPurchase row"> 3957 <div class="col-12"> 3958 <form> 3959 <div class="form-group row mb-2 mb-lg-4"> 3960 <div class="col-6 position-relative"> 3961 <input id="first_name" type="text" class="form-control input__field" placeholder="" required> 3962 <label for="first_name" class="input__label">First Name<span>*</span></label> 3963 </div> 3964 <div class="col-6 position-relative"> 3965 <input id="last_name" type="text" class="form-control input__field" placeholder="" required> 3966 <label for="last_name" class="input__label">Last Name<span>*</span></label> 3967 </div> 3968 <input type="hidden" data-properties="nama-penerima"> 3969 </div> 3970 3971 <h4 class="text-uppercase">how you want to input your address</h4> 3972 <div class="form-group row mb-2 mb-lg-4 form-address-upload"> 3973 <div class="col-6 position-relative"> 3974 <label class="address-manualy"> 3975 <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="18" height="17" viewBox="0 0 18 17" fill="none"> 3976 <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
39761216 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
39765 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"/> 3977 </svg> 3978 <span>Input Address Manually</span> 3979 </label> 3980 </div> 3981 <div class="col-6 position-relative"> 3982 <label for="address-upload" class="address-upload"> 3983 <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="12" height="13" viewBox="0 0 12 13" fill="none"> 3984 <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"/> 3985 </svg> 3986 <span>Upload Address Picture</span> 3987 </label> 3988 <input 3989 id="address-upload" 3990 type="file" 3991 accept="image/png, image/jpeg" 3992 style="position: absolute; padding: 0;width: 1px;height: 1px" 3993 > 3994 <input type="hidden" class="props-address-upload" data-properties="foto-alamat"> 3995 </div> 3996 </div> 3997 <img width="150" height="" src="" class="photo-address" style="display: none;"> 3998 3999 <div class="form-group row position-relative mb-2 mb-lg-4 form-address"> 4000 <div class="col-12"> 4001 <textarea 4002 id="delivery_address" 4003 data-properties="alamat-penerima" 4004 class="form-control input__field col-12" 4005 placeholder="" 4006 required 4007 ></textarea> 4008 <label for="delivery_address" class="input__label">Delivery Address<span>*</span></label> 4009 4010 </div> 4011 </div> 4012 <div class="form-group row mb-2 mb-lg-4 form-address"> 4013 <div class="col-6 position-relative"> 4014 <input 4015 id="recipient_number" 4016 type="text" 4017 data-properties="telepon-penerima" 4018 class="form-control input__field" 4019 placeholder="" 4020 required 4021 > 4022 <label for="recipient_number" class="input__label">Recipient number<span>*</span></label> 4023 </div> 4024 <div class="col-6 position-relative"> 4025 <input 4026 id="company" 4027 type="text" 4028 data-properties="company" 4029 class="form-control input__field" 4030 placeholder="" 4031 > 4032 <label for="company" class="input__label">Company (Optional)</label> 4033 </div> 4034 </div> 4035 <div class="form-group row mb-2 mb-lg-4 form-address"> 4036 <div class="col-6 position-relative"> 4037 <input 4038 id="province" 4039 type="text" 4040 class="form-control input__field" 4041 placeholder="" 4042 value="Jakarta" 4043 data-properties="province" 4044 > 4045 <label for="province" class="input__label">Province</label> 4046 </div> 4047 <div class="col-6 position-relative"> 4048 <select id="zip" class="form-control select-search" required></select> 4049 </div> 4050 </div> 4051 </form> 4052 </div> 4053 </div> 4054 </div> 4055 <div class="addonsPurchase"> 4056 <h4 class="text-uppercase">add-ons</h4> 4057 <div class="addons"> 4058 <p>No Add-Ons</p> 4059 <!-- 4060 <button class="add-addon"> 4061 <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="12" height="12" viewBox="0 0 12 12" fill="none"> 4062 <path d="M5.5 6.5H0V5.5H5.5V0H6.5V5.5H12V6.5H6.5V12H5.5V6.5Z" fill="black"/> 4063 </svg>
4064 <span>Enhance my moment with Add-ons</span> 4065 </button> 4066 --> 4067 </div> 4068 </div> 4069 </div> 4070 4071 </div> 4072 </div> 4073 4074
4074<script> 4075 document.addEventListener('DOMContentLoaded', function() { 4076 // Detect iOS 4077 var isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; 4078 4079 if (isIOS) { 4080 document.querySelector('.formAddressPurchase').classList.add('ios'); 4081 4082 // iOS specific fixes 4083 var inputs = document.querySelectorAll('.formAddressPurchase .input__field'); 4084 4085 inputs.forEach(function(input) { 4086 // Force enable touch events on iOS 4087 input.style.webkitUserSelect = 'text'; 4088 input.style.webkitTouchCallout = 'default'; 4089 input.style.pointerEvents = 'auto'; 4090 input.style.touchAction = 'manipulation'; 4091 4092 // Add explicit touch event listeners for iOS 4093 input.addEventListener('touchstart', function(e) { 4094 e.stopPropagation(); 4095 this.focus(); 4096 }, { passive: false }); 4097 4098 input.addEventListener('touchend', function(e) { 4099 e.preventDefault(); 4100 e.stopPropagation(); 4101 this.focus(); 4102 this.click(); 4103 }, { passive: false }); 4104 4105 // Force focus on tap for iOS 4106 input.addEventListener('click', function(e) { 4107 e.stopPropagation(); 4108 if (document.activeElement !== this) { 4109 this.focus(); 4110 } 4111 }); 4112 }); 4113 4114 // Fix for label overlapping on iOS 4115 var labels = document.querySelectorAll('.formAddressPurchase .input__label'); 4116 labels.forEach(function(label) { 4117 label.style.pointerEvents = 'none'; 4118 label.addEventListener('touchstart', function(e) { 4119 e.preventDefault(); 4120 var input = this.parentNode.querySelector('.input__field'); 4121 if (input) { 4122 input.focus(); 4123 } 4124 }); 4125 }); 4126 } 4127 4128 // Handle input state for all browsers, especially iOS 4129 var inputs = document.querySelectorAll('.input__field'); 4130 4131 inputs.forEach(function(input) { 4132 // Handle input events 4133 input.addEventListener('input', function() { 4134 if (this.value.trim() !== '') { 4135 this.classList.add('has-value'); 4136 } else { 4137 this.classList.remove('has-value'); 4138 } 4139 }); 4140 4141 // Handle focus 4142 input.addEventListener('focus', function() { 4143 this.classList.add('focused'); 4144 // iOS specific: ensure input is visible 4145 if (isIOS) { 4146 setTimeout(function() { 4147 input.scrollIntoView({ behavior: 'smooth', block: 'center' }); 4148 }, 300); 4149 } 4150 }); 4151 4152 // Handle blur 4153 input.addEventListener('blur', function() { 4154 this.classList.remove('focused'); 4155 if (this.value.trim() !== '') { 4156 this.classList.add('has-value'); 4157 } else { 4158 this.classList.remove('has-value'); 4159 } 4160 }); 4161 4162 // Initial check for pre-filled values 4163 if (input.value.trim() !== '') { 4164 input.classList.add('has-value'); 4165 } 4166 }); 4167 4168 // Additional iOS fixes 4169 if (isIOS) { 4170 // Prevent iOS Safari from adding default styling 4171 document.addEventListener('touchstart', function() {}, { passive: true }); 4172 4173 // Fix viewport issues on iOS 4174 var viewport = document.querySelector('meta[name=viewport]'); 4175 if (viewport) { 4176 viewport.setAttribute('content', 4177 'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' 4178 ); 4179 } 4180 } 4181 }); 4182 </script>
4182 4183 </div> 4184 <div class="purchase-button-wrapper"> 4185 <div class="purchase-button btn-address row m-0"> 4186 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 4187 4188 <button class="back-purchase-button back-address text-uppercase"> 4189 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp"> 4190 <path d="M14.5799 7.41992L2.32992 7.41992L7.57992 12.6699L6.91992 13.4199L0.419922 6.91992L6.91992 0.419922L7.57992 1.16992L2.32992 6.41992L14.5799 6.41992V7.41992Z" fill="black"/> 4191 </svg> 4192 <span>Back</span> 4193 </button> 4194 4195 </div> 4196 <div class="btn-next-card col-12 col-lg-10 text-right"> 4197 4198 <!-- 4199 <button class="back-purchase-button back-address text-uppercase mr-lg-2 mb-2 mb-lg-0"> 4200 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp"> 4201 <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"/> 4202 </svg> 4203 <span>Back</span> 4204 </button> 4205 --> 4206 4207 4208 <button 4209 4210 id="addtocart-card" 4211 4212 class="btn next-address text-uppercase" 4213 4214 > 4215 <span>add to cart</span> 4216 </button> 4217 </div> 4218 </div> 4219 4220 </div> 4221 </div> 4222 </div> 4223 4224 </div> 4225 </div> 4226 <div id="backgroundPopup"></div> 4227 4228 4229 4230 <input 4231 data-index="1" 4232 type="hidden" 4233 id="properties-delivery-date" 4234 name="properties[Delivery Date]" 4235 value="-" 4236 > 4237 <input 4238 data-index="2" 4239 type="hidden" 4240 id="properties-delivery-time" 4241 name="properties[Delivery Time]" 4242 value="-" 4243 > 4244 <input 4245 data-index="4" 4246 type="hidden" 4247 id="properties-nama-penerima" 4248 name="properties[Nama Penerima]" 4249 value="-" 4250 > 4251 <input 4252 data-index="5" 4253 type="hidden" 4254 id="properties-alamat-penerima" 4255 name="properties[Alamat Penerima]" 4256 value="-" 4257 > 4258 <input 4259 data-index="6" 4260 type="hidden" 4261 id="properties-kodepos" 4262 name="properties[Kodepos]" 4263 value="-" 4264 > 4265 <input data-index="7" type="hidden" id="properties-telepon-penerima" name="properties[Telepon Penerima]"> 4266 4267 4268 <input 4269 data-index="8" 4270 type="hidden" 4271 id="properties-kartu-nama-penerima" 4272 name="properties[Kartu Nama Penerima]" 4273 value="-" 4274 > 4275 4276 <textarea 4277 data-index="9" 4278 type="hidden" 4279 id="properties-kartu-pesan" 4280 name="properties[Kartu Pesan]" 4281 style="display: none" 4282 >-</textarea> 4283 4284 4285 4286 <input 4287 data-index="10" 4288 type="hidden" 4289 id="properties-kartu-nama-pengirim" 4290 name="properties[Kartu Nama Pengirim]" 4291 value="-" 4292 > 4293 4294 <!-- Additional Shipping --> 4295 <input type="hidden" id="properties-kota-pengiriman-province" name="properties[Province]"> 4296 <input 4297 type="hidden" 4298 id="properties-kota-pengiriman-country" 4299 name="properties[Country]" 4300 value="Indonesia" 4301 > 4302 <input type="hidden" id="properties-shipping" name="properties[Shipping]"> 4303 4304 <input type="hidden" id="properties-time" name="properties[Time]"> 4305 <input type="hidden" id="properties-card" name="properties[Card]"> 4306 <input type="hidden" id="properties-addons" name="properties[Addons]"> 4307 4308 <input 4309 type="hidden" 4310 id="properties-company" 4311 name="properties[Company]" 4312 value="" 4313 > 4314
4314<script> 4315 4316 $(document).ready(function(){ 4317 4318 var text_max_papan1=150; 4319 var msg_text_papan1=""; 4320 $('#kartu-ucapan-ucapan').keyup(function(){ 4321 var text_length_papan1=$('#kartu-ucapan-ucapan').val().length; 4322 var msg_text_papan1=$('#kartu-ucapan-ucapan').val(); 4323 }); 4324 4325 var notes_papan1 = [ 4326 4327 [0,"Happy Wedding (nama & nama)."],[1,"Congratulations lovebirds (nama & nama)."],[2,"Selamat berbahagia (nama & nama)."],[3,"Selamat menempuh hidup baru (nama & nama)."] 4328 4329 ]; 4330 $('#show_note_papan1').click(function(event){ 4331 event.preventDefault(); 4332 var idx_papan1=parseInt($('#note_id_papan1').val()); 4333 if(isNaN(idx_papan1)){ 4334 idx_papan1=0; 4335 }else{ 4336 idx_papan1++; 4337 idx_papan1=idx_papan1%notes_papan1.length; 4338 } 4339 var note_papan1=notes_papan1[idx_papan1][1]; 4340 $('#note_id_papan1').val(idx_papan1); 4341 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan1); 4342 $('#msgDelivery').val(note_papan1); 4343 4344 var text_length_papan1=$('#kartu-ucapan-papan').val().length; 4345 var idx_2_papan1=parseInt($('#note_btn_id_papan1').val()); 4346 if(isNaN(idx_2_papan1)){ 4347 idx_2_papan1=0; 4348 }else{ 4349 idx_2_papan1++; 4350 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4351 } 4352 $('#note_btn_id_papan1').val(idx_2_papan1); 4353 //var note_btn=note_btn_text[idx_2][1]; 4354 //$('#note_btn').text(note_btn); 4355 }); 4356 4357 var text_max_papan2=150; 4358 var msg_text_papan2=""; 4359 $('#kartu-ucapan-ucapan').keyup(function(){ 4360 var text_length_papan2=$('#kartu-ucapan-ucapan').val().length; 4361 var msg_text_papan2=$('#kartu-ucapan-ucapan').val(); 4362 }); 4363 4364 var notes_papan2 = [ 4365 4366 [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)."] 4367 4368 ]; 4369 $('#show_note_papan2').click(function(event){ 4370 event.preventDefault(); 4371 var idx_papan2=parseInt($('#note_id_papan2').val()); 4372 if(isNaN(idx_papan2)){ 4373 idx_papan2=0; 4374 }else{ 4375 idx_papan2++; 4376 idx_papan2=idx_papan2%notes_papan2.length; 4377 } 4378 var note_papan2=notes_papan2[idx_papan2][1]; 4379 $('#note_id_papan2').val(idx_papan2); 4380 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan2); 4381 $('#msgDelivery').val(note_papan2); 4382 var text_length_papan2=$('#kartu-ucapan-papan').val().length; 4383 var idx_2_papan2=parseInt($('#note_btn_id_papan2').val()); 4384 if(isNaN(idx_2_papan2)){ 4385 idx_2_papan2=0; 4386 }else{ 4387 idx_2_papan2++; 4388 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4389 } 4390 $('#note_btn_id_papan2').val(idx_2_papan2); 4391 //var note_btn=note_btn_text[idx_2][1]; 4392 //$('#note_btn').text(note_btn); 4393 }); 4394 4395 var text_max_papan3=150; 4396 var msg_text_papan3=""; 4397 $('#kartu-ucapan-ucapan').keyup(function(){ 4398 var text_length_papan3=$('#kartu-ucapan-ucapan').val().length; 4399 var msg_text_papan3=$('#kartu-ucapan-ucapan').val(); 4400 }); 4401 4402 var notes_papan3 = [ 4403 4404 [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)."] 4405 4406 ]; 4407 $('#show_note_papan3').click(function(event){ 4408 event.preventDefault(); 4409 var idx_papan3=parseInt($('#note_id_papan3').val()); 4410 if(isNaN(idx_papan3)){ 4411 idx_papan3=0; 4412 }else{ 4413 idx_papan3++; 4414 idx_papan3=idx_papan3%notes_papan3.length; 4415 } 4416 var note_papan3=notes_papan3[idx_papan3][1]; 4417 $('#note_id_papan3').val(idx_papan3);
4418 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan3); 4419 $('#msgDelivery').val(note_papan3); 4420 var text_length_papan3=$('#kartu-ucapan-papan').val().length; 4421 var idx_2_papan3=parseInt($('#note_btn_id_papan3').val()); 4422 if(isNaN(idx_2_papan3)){ 4423 idx_2_papan3=0; 4424 }else{ 4425 idx_2_papan3++; 4426 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4427 } 4428 $('#note_btn_id_papan3').val(idx_2_papan3); 4429 //var note_btn=note_btn_text[idx_2][1]; 4430 //$('#note_btn').text(note_btn); 4431 }); 4432 4433 var text_max_papan4=150; 4434 var msg_text_papan4=""; 4435 $('#kartu-ucapan-ucapan').keyup(function(){ 4436 var text_length_papan4=$('#kartu-ucapan-ucapan').val().length; 4437 var msg_text_papan4=$('#kartu-ucapan-ucapan').val(); 4438 }); 4439 4440 $('#show_note_papan4').click(function(event){ 4441 var notes_papan4 = [ 4442 [0,"Hereâs to youâsteadier, stronger and better every day."], 4443 [1,"Warmest wishes for a speedy recovery!"], 4444 [2,"Dengan ucapan terhangat, semoga lekas membaik dan semakin pulih setiap harinya ya."], 4445 [3,"Semoga lekas sembuh untuk kembali beraktivitas dan berkarya."] 4446 ]; 4447 event.preventDefault(); 4448 var idx_papan4=parseInt($('#note_id_papan4').val()); 4449 console.log(idx_papan4, 'idx_papan4') 4450 if(isNaN(idx_papan4)){ 4451 idx_papan4=0; 4452 }else{ 4453 idx_papan4++; 4454 idx_papan4=idx_papan4%notes_papan4.length; 4455 } 4456 var note_papan4=notes_papan4[idx_papan4][1]; 4457 $('#note_id_papan4').val(idx_papan4); 4458 $('#kartu-ucapan-papan, #properties-kartu-ucapan, #properties-kartu-pesan').val(note_papan4); 4459 console.log(note_papan4, 'note_papan4') 4460 var text_length_papan4=$('#kartu-ucapan-papan').val().length; 4461 var idx_2_papan4=parseInt($('#note_btn_id_papan4').val()); 4462 if(isNaN(idx_2_papan4)){ 4463 idx_2_papan4=0; 4464 }else{ 4465 idx_2_papan4++; 4466 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4467 } 4468 $('#note_btn_id_papan4').val(idx_2_papan4); 4469 }); 4470 4471 /* 4472 $("#jenisPapan").change(function(){ 4473 $( "select option:selected").each(function(){ 4474 if($(this).attr("value")=="Happy Wedding"){ 4475 $("#suggest-messages a").hide(); 4476 $("#show_note_papan1").show(); 4477 $("#kartu-ucapan-papan").val(""); 4478 } 4479 if($(this).attr("value")=="Congratulations"){ 4480 $("#suggest-messages a").hide(); 4481 $("#show_note_papan2").show(); 4482 $("#kartu-ucapan-papan").val(""); 4483 } 4484 if($(this).attr("value")=="Duka Cita"){ 4485 $("#suggest-messages a").hide(); 4486 $("#show_note_papan3").show(); 4487 $("#kartu-ucapan-papan").val(""); 4488 } 4489 }); 4490 }).change(); 4491 */ 4492 4493 4494 4495 4496 4497 $(".variant-metafield").each(function(){ 4498 const t = $(this) 4499 const id = t.attr("id") 4500 const target = $(`[data-select=${id}]`) 4501 t.on('select2:selecting', function(e) { 4502 const data = e.params.args.data 4503 target.val(data.text) 4504 }); 4505 }) 4506 }) 4507 </script>
4507 4508 4509 <div id="popupCart"> 4510 <div class="container"> 4511 <div class="wrapperPopupCart"> 4512 <div class="headerPopupCart"> 4513 <div class="d-flex pl-5 pr-5 p-4"> 4514 <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="16" height="12" viewBox="0 0 16 12" fill="none"> 4515 <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"/> 4516 </svg> 4517 <span>item added to your cart</span> 4518 </div> 4519 <a class="close-purchase-popup"> 4520 <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="18" height="18" viewBox="0 0 18 18" fill="none"> 4521 <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"/> 4522 </svg> 4523 </a> 4524 4525 </div> 4526 <div class="contentPopupCart"> 4527 <div class="pl-5 pr-5 p-4"> 4528 <div class="itemContent row m-0 justify-content-between"> 4529 <div class="col-2 align-self-center"> 4530 4531 <img 4532 class="d-block" 4533 width="80" 4534 src="//outerbloom.com/cdn/shop/files/Blossom-Shine-WM_80x.jpg?v=1695788426" 4535 > 4536 </div> 4537 <div class="col-10 align-self-center"> 4538 <div class="row pl-3"> 4539 <div class="col-12 col-lg-7"> 4540 <span class="titleCartPopup text-uppercase">OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel</span> 4541 </div> 4542 <div class="d-flex justify-content-end col-12 col-lg-5"> 4543 <span class="deleteCartPopup hide">Delete</span> 4544 <span class="lineCartPrice align-self-center">Rp 5.000</span> 4545 </div> 4546 </div> 4547 </div> 4548 </div> 4549 <div class="itemProperties"> 4550 4551 <div class="propDeliver"> 4552 <h4>delivery option detail</h4> 4553 <p> 4554 <span>delivery city</span> 4555 <span class="propDeliveryCity">jakarta</span> 4556 </p> 4557 <p> 4558 <span>delivery date</span> 4559 <span class="propDeliveryDate">24/03/2025</span> 4560 </p> 4561 <p> 4562 <span>delivery time</span> 4563 <span class="propDeliveryTime">Afternoon | 13:00 - 18:00</span> 4564 </p> 4565 </div> 4566 <div class="propAddress"> 4567 <h4>delivery option detail</h4> 4568 <p> 4569 <span>RECIPIENT NAME</span> 4570 <span class="propDeliveryName">jane doe</span> 4571 </p> 4572 <p> 4573 <span>delivery address</span> 4574 <span class="propDeliveryAddress" 4575 >Jl. Gatot Subroto No. 25, RT.2/RW.4, Kuningan Barat, Kecamatan Mampang Prapatan, Kota Jakarta 4576 Selatan, Daerah Khusus Ibukota Jakarta 12710, Indonesia</span 4577 > 4578 </p> 4579 <p> 4580 <span>recipient phone number</span> 4581 <span class="propDeliveryPhone">(+62) 812-3456-7890</span> 4582 </p> 4583 <p> 4584 <span>PROVINCE</span> 4585 <span class="propDeliveryProv">Jakarta</span> 4586 </p> 4587 <p> 4588 <span>postal code</span> 4589 <span class="propDeliveryZip">12710</span> 4590 </p> 4591 4592 4593 </div> 4594 4595 </div> 4596 <div class="itemAddonCart"> 4597 <div class="toggleAddonCart d-flex justify-content-between"> 4598 <h4>add-ons (0)</h4> 4599 <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="5" height="9" viewBox="0 0 5 9" fill="none"> 4600 <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"/> 4601 </svg> 4602 </div> 4603 <div class="wrapperItemAddonCart"></div> 4604 </div> 4605 4606 </div> 4607 </div>
4608 <div class="footerPopupCart"> 4609 <div class="row m-0 pl-5 pr-5 p-4"> 4610 <a class="btn btnViewCart w-100 text-uppercase text-center" href="/cart">View Cart</a> 4611 <a class="btn btnViewCheckout w-100 text-uppercase text-center" href="/checkout"><span>Checkout</span></a> 4612 <a class="btnContinueShopping w-100 text-center" href="/">Continue shopping</a> 4613 </div> 4614 </div> 4615 </div> 4616 </div> 4617 </div> 4618 4619 4620
4620<script> 4621 const shareButton = document.getElementById('shareButton'); 4622 4623 shareButton.addEventListener('click', () => { 4624 if (navigator.share) { 4625 navigator.share({ 4626 title: "OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel", 4627 url: "/products/blossom-shine", 4628 text: 'Check out this page!' 4629 }) 4630 .then(() => console.log('Successful share')) 4631 .catch((error) => console.log('Error sharing', error)); 4632 } else { 4633 alert('Web Share API is not supported in this browser.'); 4634 } 4635 }); 4636 4637 // Inventory validation function 4638 function checkInventoryStatus() { 4639 const productSelect = document.getElementById('productSelect'); 4640 const purchaseButton = document.querySelector('#personalizeBtn button'); 4641 4642 if (!productSelect || !purchaseButton) return; 4643 4644 const selectedVariantId = productSelect.value; 4645 4646 // Get variant data from Shopify 4647 fetch(`/products/blossom-shine.js`) 4648 .then(response => response.json()) 4649 .then(product => { 4650 const selectedVariant = product.variants.find(variant => variant.id == selectedVariantId); 4651 4652 if (selectedVariant) { 4653 const isOutOfStock = selectedVariant.inventory_quantity <= 0 && 4654 selectedVariant.inventory_management === 'shopify' && 4655 selectedVariant.inventory_policy !== 'continue'; 4656 4657 if (isOutOfStock) { 4658 purchaseButton.disabled = true; 4659 purchaseButton.textContent = 'Out of Stock'; 4660 purchaseButton.setAttribute('data-out-of-stock', 'true'); 4661 purchaseButton.style.backgroundColor = '#cccccc'; 4662 purchaseButton.style.cursor = 'not-allowed'; 4663 } else { 4664 // Check if button was disabled due to other conditions 4665 4666 4667 4668 4669 4670 4671 4672 4673 const isOtherDisabled = false || true || false; 4674 4675 if (!isOtherDisabled) { 4676 purchaseButton.disabled = false; 4677 purchaseButton.textContent = 'customize your flower board'; 4678 purchaseButton.removeAttribute('data-out-of-stock'); 4679 purchaseButton.style.backgroundColor = ''; 4680 purchaseButton.style.cursor = ''; 4681 } 4682 } 4683 } 4684 }) 4685 .catch(error => { 4686 console.error('Error checking inventory:', error); 4687 }); 4688 } 4689 4690 // Check inventory on page load 4691 document.addEventListener('DOMContentLoaded', function() { 4692 checkInventoryStatus();
4693 4694 // Listen for variant changes 4695 const productSelect = document.getElementById('productSelect'); 4696 if (productSelect) { 4697 productSelect.addEventListener('change', checkInventoryStatus); 4698 } 4699 }); 4700 4701 // Prevent form submission if out of stock 4702 document.addEventListener('click', function(e) { 4703 if (e.target.matches('button[data-out-of-stock="true"]')) { 4704 e.preventDefault(); 4705 e.stopPropagation(); 4706 alert('This product is currently out of stock and cannot be purchased.'); 4707 return false; 4708 } 4709 }); 4710 </script>
4710 4711 4712 4713 4714 </div> 4715 4716 </div> 4717 </div> 4718 </div> 4719 </div> 4720 <div id="product-bottom"> 4721 4722 <div class="product-description rte bg-card col-12 py-3 px-0 m-0" itemprop="description"> 4723 <div class="container"> 4724 4725 4726 4727 4728 4729 <div class="short-desc-mobile d-block d-lg-none mb-3"> 4730 <div class="short-desc"> 4731 <ul> 4732 <li><strong>OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu.</strong></li> 4733 </div> 4734 <label class="more-mobile">Show More â</label> 4735 </div> 4736 4737 <style> 4738 .animated-title { 4739 text-align: center; 4740 font-weight: bold; 4741 color: #079c02; 4742 font-size: 28px; 4743 position: relative; 4744 animation: glow 2s infinite alternate, moveUpDown 3s infinite; 4745 } 4746 4747 /* Efek glow / bercahaya hijau */ 4748 @keyframes glow { 4749 0% { text-shadow: 0 0 5px #079c02; color: #079c02; } 4750 50% { text-shadow: 0 0 20px #00ff55; color: #12d12b; } 4751 100% { text-shadow: 0 0 10px #1bff00; color: #079c02; } 4752 } 4753 4754 /* Efek gerakan naik turun */ 4755 @keyframes moveUpDown { 4756 0% { transform: translateY(0px); } 4757 50% { transform: translateY(-5px); } 4758 100% { transform: translateY(0px); } 4759 } 4760 </style> 4761 4762
4762<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/shopify-cartjs/1.1.0/cart.min.js"></script>
4762 4763
4763<script> 4764 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}); 4765 4766 const productType = $("[data-product-type]").data("product-type") 4767 const productDate = Date.parse(new Date()) 4768 4769 const shop = 'outerbloom1.myshopify.com' 4770 const host = 'https://app.asmaraku.com' 4771 // const host = 'http://localhost:5001' 4772 4773 const gsheet = "https://script.google.com/macros/s/AKfycbyqa6mPD6lVjU6hiHr12J8URZ2aJBGyxBsGQ0QtEIDari-rBk_9vSOITjSSmUXL1NwxEg/exec" 4774 4775 const qrID = "041025" + randomString(4, 'aAbCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ') 4776 4777 $("#properties-time").val(new Date().getTime()) 4778 4779 const isIOS = /iPhone|iPad|iPod/i.test(navigator.userAgent); 4780 4781 if(!isIOS) { 4782 $("#full-date").attr("type", "button") 4783 } 4784 4785 let dateTime = new Date(); 4786 let today = dateTime.getDate(); 4787 let day = dateTime.getDay(); 4788 let hour = dateTime.getHours(); 4789 let min = dateTime.getMinutes(); 4790 let timeOfDay = hour + (min / 100); 4791 4792 async function getFetch(url) { 4793 const response = await fetch(url); 4794 let status = false 4795 let result 4796 if(response.ok) { 4797 status = true 4798 result = await response.json(); 4799 } 4800 return { 4801 status, 4802 data: result 4803 } 4804 } 4805 4806 4807 4808 function setCookie(cname, cvalue, exMins) { 4809 var d = new Date(); 4810 d.setTime(d.getTime() + (exMins*60*1000)); 4811 var expires = "expires="+d.toUTCString(); 4812 document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; 4813 } 4814 4815 function getCookie(cname) { 4816 let name = cname + "="; 4817 let decodedCookie = decodeURIComponent(document.cookie); 4818 let ca = decodedCookie.split(';'); 4819 for(let i = 0; i <ca.length; i++) { 4820 let c = ca[i]; 4821 while (c.charAt(0) == ' ') { 4822 c = c.substring(1); 4823 } 4824 if (c.indexOf(name) == 0) { 4825 return c.substring(name.length, c.length); 4826 } 4827 } 4828 return ""; 4829 } 4830 4831 async function renderDate() { 4832 let dataDate = await getFetch(`${host}/api/shipping/date?domain=${shop}&productId=8144957800663&v=${Date.now()}`); 4833 console.log(dataDate, 'renderDate') 4834 const data = dataDate?.data 4835 const date = data.date 4836 const time = data.time 4837 4838 console.log(date, 'DATE') 4839 4840 const weekday = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]; 4841 const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; 4842 const htmlDate = []
4843 for(let i = 0;i < date.length;i++) { 4844 const full = date[i].date 4845 const d = new Date(date[i].date); 4846 const day = weekday[d.getDay()]; 4847 const dt = d.getDate(); 4848 const mt = monthly[d.getMonth()]; 4849 const yr = d.getFullYear(); 4850 const isDate = Boolean(date[i].isEnabled) 4851 const cutoffpagi = date[i].cutoff?.pagi 4852 const cutoffsiang = date[i].cutoff?.siang 4853 const cutoffMalam = date[i].cutoff?.Malam 4854 var html = ` 4855 <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'}> 4856 ${dt === today ? 4857 `Today<span>${dt < 10 ? '0' + dt : dt}</span>` : 4858 `${day}<span>${dt < 10 ? '0' + dt : dt}</span>` 4859 } 4860 </button> 4861 ` 4862 htmlDate.push(html) 4863 } 4864 const htmlTime = []
4865 for(var i = 0;i < time.length;i++) { 4866 const timeText = time[i].text 4867 const timeTime = time[i].time 4868 const timeEnabled = time[i].isEnabled 4869 var html = ` 4870 <button class="time-single calendarbutton2 btn steps-btn" data-time="${timeText}" ${timeEnabled ? '' : 'disabled'}>${timeText}<br/>${timeTime}</button> 4871 ` 4872 htmlTime.push(html) 4873 } 4874 const deliveryDate = document.getElementById("deliveryDate"); 4875 if(deliveryDate) { 4876 deliveryDate.insertAdjacentHTML("afterbegin", htmlDate.join('')) 4877 $("#deliveryTime").html(htmlTime) 4878 if(productType !== '') { 4879 console.log("clarity event " + productType + ' calendaring') 4880 window.clarity("event", `${productType} calendaringSchedule`) 4881 // window.clarity("set", productType, `calendaringSchedule - ${productDate}`) 4882 } 4883 } 4884 } 4885 4886 async function getProvince(city) { 4887 let { data: { province } } = await getFetch(`${host}/api/shipping/address/province?city=${city}`); 4888 console.log(province, 'province') 4889 $("#province").val(province) 4890 } 4891 4892 async function renderAddress() { 4893 let current 4894 if(getCookie("location_delivery")){ 4895 current = getCookie("location_delivery").charAt(0).toUpperCase() + getCookie("location_delivery").slice(1) 4896 } 4897 let address = await getFetch(`${host}/api/shipping/address?domain=${shop}&productId=8144957800663`); 4898 console.log(address) 4899 const data = address?.data?.city 4900 const htmlAddress = [] 4901 const grouping = []
4902 for(let i = 0;i < data?.length;i++) { 4903 if(data[i]){ 4904 if(data[i]?.group) { 4905 grouping.push(data[i].group) 4906 } 4907 const price = rupiah.format(data[i]?.rate) 4908 let promo = '(Promo Free Delivery)' 4909 if(data[i]?.name === 'Jakarta - PickUp ASHTA'){ 4910 promo = '(at SCBD, Ashta)' 4911 } else if(data[i]?.name === 'Jakarta - PickUp ITC'){ 4912 promo = '(at Kuningan, ITC Kuningan)' 4913 } else if(data[i]?.name === 'BSD - PickUp'){ 4914 promo = '(at Goldfinch Gading Serpong)' 4915 } else if(data[i]?.name === 'Kota Lainnya'){ 4916 promo = '' 4917 } 4918 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>`) 4919 } 4920 } 4921 4922 const deliveryCity = document.getElementById("cities"); 4923 if(deliveryCity) { 4924 deliveryCity.insertAdjacentHTML("beforeend", htmlAddress.join('')) 4925 if(!isIOS) { 4926 $(deliveryCity).select2(); 4927 } 4928 } 4929 } 4930 4931 async function renderZip(v, v2, v3) { 4932 const deliveryZip = document.getElementById("zip"); 4933 if(v === '') { 4934 return 4935 } 4936 let dataZip = await getFetch(`${host}/api/shipping/address/zip?city=${v}&city2=${v2}&city3=${v3}`); 4937 let zip = dataZip?.data?.zip 4938 console.log(zip) 4939 let htmlZip = []
4940 for(let i = 0; i < zip?.length;i++) { 4941 htmlZip.push(`<option value="${zip[i]?.postalCode} - ${zip[i]?.subdistrict}">${zip[i]?.postalCode} - ${zip[i]?.subdistrict} - ${zip[i]?.city}</option>`) 4942 } 4943 deliveryZip.insertAdjacentHTML("beforeend", htmlZip.join('')) 4944 } 4945 4946 renderDate() 4947 renderAddress() 4948 4949 let rupiah = new Intl.NumberFormat('id-ID', { 4950 style: 'currency', 4951 currency: 'IDR', 4952 maximumFractionDigits: 0, 4953 minimumFractionDigits: 0 4954 }); 4955 4956 async function insertCard(data) { 4957 const response = await fetch(`${host}/api/card/new`, { 4958 method: "POST", 4959 headers: { 4960 'Content-Type': 'application/json', 4961 }, 4962 body: data 4963 }) 4964 const result = await response.json() 4965 let rowIndex = result?.data?.tableRange.split("Outerbloom!A1:J")[1] 4966 $("#greetingCard").attr("data-index", rowIndex) 4967 return result 4968 } 4969 4970 async function updateCard(data){ 4971 const rowIndex = $("#greetingCard").data("index") 4972 const response = await fetch(`${host}/api/card/update?rowIndex=${rowIndex}`, { 4973 method: "PUT", 4974 headers: { 4975 'Content-Type': 'application/json', 4976 }, 4977 body: data 4978 }) 4979 return response 4980 } 4981 4982 function bytesToSize(bytes) { 4983 var sizes = ['b', 'kb', 'mb', 'gb', 'tb', 'p']; 4984 for (var i = 0; i < sizes.length; i++) { 4985 if (bytes <= 1024) { 4986 return bytes + ' ' + sizes[i]; 4987 } else { 4988 bytes = parseFloat(bytes / 1024).toFixed(2) 4989 } 4990 } 4991 return bytes + ' P'; 4992 } 4993 4994 async function uploadMedia(uri, type) { 4995 nameq = $("#properties-nama-penerima").val() 4996 dear = $("#properties-kartu-nama-penerima").val() 4997 card = $("[data-properties=ucapan]").val() 4998 sender = $("#properties-kartu-nama-pengirim").val() 4999 photo = $("#properties-photo").val() 5000 video = $("#properties-video").val() 5001 status = "Product" 5002 5003 const name = qrID 5004 let formData = new FormData(); 5005 formData.append("file", uri); 5006 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 5007 method: "POST", 5008 body: formData 5009 }) 5010 const result = await response.json(); 5011 if(result) { 5012 const url = result.url 5013 if(type === 'image/jpeg') { 5014 $("#properties-photo").val(url) 5015 $(".preview-image").show() 5016 $(".remove-image").show() 5017 photo = url 5018 } else { 5019 $("#properties-video").val(url) 5020 $("#label-input-video span").text("Change File") 5021 $(".case-qrcode-preview p").text("Scan here for a secret message") 5022 $(".remove-media").show() 5023 $("#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>`) 5024 $("[for=input-video]").hide() 5025 video = url 5026 } 5027 $(".case-video-preview").show() 5028 $(".steps-card-preview").removeClass("loading") 5029 // updateCard(nameq, dear, card, sender, photo, video, status) 5030 5031 $(".nextBtn").attr("disabled", false) 5032 } 5033 } 5034 5035 function randomString(length, chars) { 5036 var result = ''; 5037 for (var i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))]; 5038 return result; 5039 } 5040 5041 function getNoteCity(fulldate) { 5042 const h_1 = new Date(new Date().setDate(new Date().getDate() + 1)) 5043 const weekday = ["Min","Sen","Sel","Rab","Kam","Jum","Sab"]; 5044 const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; 5045 const d = new Date(h_1); 5046 const day = weekday[d.getDay()]; 5047 const dt = d.getDate(); 5048 const mt = monthly[d.getMonth()]; 5049 const yr = d.getFullYear(); 5050 const p = $("#cities").parent(".form-group") 5051 } 5052 5053 function disabledSameDay() { 5054 let btnFirst = $("#deliveryDate").find("button:first-child") 5055 let getDay = new Date().getDay(); 5056 5057 5058 5059 if(getDay == 1 || getDay == 2 || getDay == 3 || getDay == 4 || getDay == 5){ 5060 if(hour >= 14.00){ 5061 btnFirst.attr("disabled", true) 5062 } 5063 } else if(getDay == 6){ 5064 if(hour >= 16.00){ 5065 btnFirst.attr("disabled", true) 5066 } 5067 } else if(getDay == 0){ 5068 if(hour >= 16.00){ 5069 btnFirst.attr("disabled", true) 5070 } 5071 } 5072 5073 5074 } 5075 5076 function disabledays(date) { 5077 let ymd = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate(); 5078 //if u have to disable a list of day 5079 let removeDays 5080 5081 5082 5083 removeDays = ["2025-2-13", "2025-2-14"]; 5084 5085 if ($.inArray(ymd, removeDays) >= 0) { 5086 return [false]; 5087 } else { 5088 let day = date.getDay(); 5089 if(day == 0 && date.getDate() == 13 && date.getMonth() == 1){ 5090 return [(day == 0), '']; 5091 } 5092 5093 if(day == 0){ 5094 return [(day == 0), '']; 5095 } 5096 5097 5098 return [(day != 0), '']; 5099 } 5100 } 5101 5102 /* Indonesian initialisation for the jQuery UI date picker plugin. */ 5103 /* Written by Deden Fathurahman ([email protected]). */ 5104 ( function( factory ) { 5105 if ( typeof define === "function" && define.amd ) { 5106 5107 // AMD. Register as an anonymous module. 5108 define( [ "../widgets/datepicker" ], factory ); 5109 } else { 5110 5111 // Browser globals 5112 factory( jQuery.datepicker ); 5113 } 5114 }( function( datepicker ) { 5115 5116 datepicker.regional.id = { 5117 closeText: "Tutup", 5118 prevText: "<mundur", 5119 nextText: "maju>", 5120 currentText: "Today", 5121 monthNames: [ "January","February","March","April","May","Juny", 5122 "July","August","September","October","November","December" ], 5123 monthNamesShort: [ "Jan","Feb","Mar","Apr","May","Jun", 5124 "Jul","Agu","Sep","Oct","Nov","Dec" ], 5125 dayNames: [ "Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu" ], 5126 dayNamesShort: [ "Sun","Mon","Tue","Wed","Thu","Fri","Sat" ], 5127 dayNamesMin: [ "Mg","Sn","Sl","Rb","Km","jm","Sb" ], 5128 weekHeader: "Mg", 5129 dateFormat: "D, dd M", 5130 firstDay: 0, 5131 isRTL: false, 5132 showMonthAfterYear: false, 5133 yearSuffix: "" }; 5134 datepicker.setDefaults( datepicker.regional.id ); 5135 5136 return datepicker.regional.id; 5137 5138 } ) ); 5139 5140 function loadPopup() { 5141 $("#backgroundPopup").fadeIn("slow"); 5142 $(".purchasePopup:not(.purchasePopupSpotify)").fadeIn("slow"); 5143 const firstSection = $(".purchasePopup:not(.purchasePopupSpotify) .sectionPurchase").first() 5144 if(firstSection.hasClass("purchasePersonalize")) { 5145 if(productType !== '') { 5146 console.log("clarity event " + productType + ' personalize') 5147 window.clarity("event", `${productType} cardPersonalization`) 5148 // window.clarity("set", productType, `cardPersonalization - ${productDate}`) 5149 } 5150 } else if (firstSection.hasClass("sectionPurchaseBoard")) { 5151 console.log("clarity event " + productType + ' personalizeBoard') 5152 window.clarity("event", `${productType} personalizeBoard`) 5153 // window.clarity("set", productType, `personalizeBoard - ${productDate}`) 5154 } 5155 firstSection.removeClass("hide") 5156 5157 // Auto-trigger addon loading when addon section becomes visible 5158 setTimeout(function() { 5159 const addonSection = $(".purchaseAddon") 5160 if(addonSection.length > 0 && !addonSection.hasClass("hide")) { 5161 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 5162 $("[data-addon=upsell-all]").trigger("click") 5163 } 5164 } 5165 }, 200) 5166 } 5167 5168 function disablePopup() { 5169 $("#backgroundPopup").fadeOut("slow"); 5170 $(".purchasePopup").fadeOut("slow"); 5171 $("#popupCart").fadeOut("slow"); 5172 } 5173
5174 function scrollTo(parent, div, dur) { 5175 $(parent).animate({ 5176 scrollTop: $(div).offset().top 5177 }, dur); 5178 } 5179 5180 function loadPopupPersonalize() { 5181 const div = "#purchaseProduct" 5182 const p = "html, body, .product-meta" 5183 $("p.error").remove() 5184 loadItemOccasion($("[data-occassion]").eq(0), "greeting-card-all") 5185 const isCity = $("#cities[required]") 5186 const isDate = $("#propDeliveryDate[required]") 5187 const isTime = $("#propDeliveryTime[required]") 5188 // loadPopup() 5189 if(isCity.val() !== '' && isDate.val() !== '' && isTime.val() !== '') { 5190 loadPopup() 5191 } 5192 if(isCity.val() == '') { 5193 isCity.parent(".row").append("<p class='error'>Choose delivery city</p>") 5194 scrollTo(p, div, 500) 5195 } 5196 if(isDate.val() == '') { 5197 isDate.parents(".row").append("<p class='error'>Choose delivery date</p>") 5198 scrollTo(p, div, 500) 5199 } 5200 if(isTime.val() == '') { 5201 isTime.parents(".row").append("<p class='error'>Choose delivery time</p>") 5202 scrollTo(p, div, 500) 5203 } 5204 } 5205 5206 function quantityCounter() { 5207 $(document).on("click", ".item-card.selected .q_up", function () { 5208 var C = $(this).attr("data-id"), 5209 S = 5210 parseInt( 5211 $(this) 5212 .siblings(".quantity-cart-" + C) 5213 .val() 5214 ) + 1; 5215 $(this).attr("data-quantity", S), 5216 $(this) 5217 .siblings(".quantity-cart-" + C) 5218 .val(S); 5219 }), 5220 $(document).on("click", ".item-card.selected .q_down", function () { 5221 var C = $(this).attr("data-id"), 5222 S = parseInt( 5223 $(this) 5224 .siblings(".quantity-cart-" + C) 5225 .val() 5226 ); 5227 0 < S && $(this).attr("data-quantity", S - 1), 5228 0 < S && 5229 $(this) 5230 .siblings(".quantity-cart-" + C) 5231 .val(S - 1); 5232 }); 5233 } 5234 5235 quantityCounter() 5236 5237 const itemAddon = $(".item-card").length 5238 const nofree = $(".nofree").length 5239 5240 const upsell = '' 5241 5242 if(nofree === itemAddon) { 5243 // $("#itemAddons").html("<p>No Items available</p>") 5244 } 5245 5246 $("#itemAddons .item-card").each(function(e){ 5247 $("#itemAddons").attr("data-length", e) 5248 }) 5249 5250 $("[data-addon]").click(function(){ 5251 5252 5253 5254 const t = $(this) 5255 5256 const data = t.data("addon") 5257 5258 $("[data-addon]").removeClass("selected") 5259 t.addClass("selected") 5260 $.get(`https://outerbloom.com/collections/${data}/products.json`, function(data, status){ 5261 const products = data.products 5262 const html = [] 5263 for(let i = 0; i < products.length; i++) { 5264 const id = products[i].id 5265 const variantId = products[i].variants[0].id 5266 const img = products[i].images[0].src 5267 let img2 = img.split('.jpg')[0] 5268 const title = products[i].title 5269 const price = products[i].variants[0].price 5270 const tags = products[i].tags 5271 const qty = products[i].variants[0].available 5272 let type_upsell = '' 5273 if(tags.includes('upsell-item-standing')) { 5274 type_upsell = 'standing' 5275 } 5276 console.log(type_upsell) 5277 if(type_upsell !== '') { 5278 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}"> 5279 5280 <div class="card-image"> 5281 <img src="${img2}_150x.jpg" alt="${title}" width="" height="" /> 5282 </div> 5283 <div class="card-meta"> 5284 <h5>${title}</h5> 5285 <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p> 5286 <input id="card-${variantId}" type="hidden" name="" value="${variantId}"> 5287 </div> 5288 <div class="card-qty"> 5289 <a data-quantity="1" type="submit" id="q_down-${variantId}" class="btn-qty-min q_down drawer-cart" data-id="${variantId}"><svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="12" height="2" viewBox="0 0 12 2" fill="none"><path d="M0 1.90869V0.908691H12V1.90869H0Z" fill="black"/></svg></a> 5290 <input maxlength="3" min="0" class="btn-qty text-center quantity-cart-${variantId}
5290" value="0" data-price=${price} name="quantity"> 5291 <a data-quantity="1" type="submit" class="btn-qty-plus q_up text-green drawer-cart" data-id="${variantId}"><svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="12" height="13" viewBox="0 0 12 13" fill="none"> 5292 <path d="M0 6.87023V5.94715H5.53846V0.408691H6.46154V5.94715H12V6.87023H6.46154V12.4087H5.53846V6.87023H0Z" fill="black"/> 5293 </svg></a> 5294 </div> 5295 </div>` 5296 html.push(body) 5297 } 5298 } 5299 $("#itemAddons .row").html(html.length === 0 ? '<p>No Item available</p>' : html) 5300 $("#itemAddons").attr("data-length", products.length) 5301 // $('#itemAddons')[0].swiper.update(); 5302 }); 5303 }) 5304 5305 async function isAddon(){ 5306 let ids = [] 5307 $("#itemAddons .item-card.selected").each(function(i, e){ 5308 const id = $(this).data("id") 5309 ids.push(id) 5310 }) 5311 console.log(ids) 5312 return ids 5313 } 5314 5315 $("#itemAddons").delegate(".item-card > div:not(.card-qty)", "click", async function(){ 5316 const t = $(this).parent() 5317 const id = t.data("id") 5318 const btn = t.parents(".purchaseAddon").find(".next-purchase-button") 5319 t.toggleClass("selected"); 5320 //$(this).next("input").toggleAttr('name', 'id[]'); 5321 if (t.hasClass('selected')) { 5322 t.find("input").val(1) 5323 t.find("input").attr('name', 'id[]'); 5324 } else { 5325 t.find("input").val(0) 5326 t.find("input").removeAttr('name'); 5327 } 5328 $("#properties-addons").val(addons) 5329 const is = await isAddon() 5330 if(is.length === 0) { 5331 btn.text("continue without add-ons") 5332 return 5333 } 5334 if(is.includes(8835692069079)) { 5335 btn.text("personalize acrylic frame") 5336 } else { 5337 btn.text("Continue") 5338 } 5339 5340 }) 5341 5342 async function myAddon(data) { 5343 const c = $(".addonsPurchase .addons") 5344 let items = [] 5345 5346 const spotifyAddons = $(".spotifyAddons").find("[data-index]") 5347 // if(spotifyAddons.length > 0) { 5348 // $(spotifyAddons).each(function(i, e){ 5349 // const spotifyLink = $(this).find(".spotifyLink").val() 5350 // const spotifySong = $(this).find(".spotifySong").val() 5351 // const spotifyArtist = $(this).find(".spotifyArtist").val() 5352 // const spotifyFotoAddon = $(this).find(".resultPhotoSpotify").val() 5353 // if(spotifyLink !== '') { 5354 // spotifyAddon = `<div class="addon-item" data-id="46067682607319" data-qty="1"> 5355 // <div class="addon-itm-img"> 5356 // <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"/> 5357 // </div> 5358 // <div class="addon-itm-title"> 5359 // <span>[US] Outerbloom Acrylic Frame 4R</span> 5360 // </div> 5361 // <div class="addon-itm-line-total"> 5362 // <span>Rp 99.000</span> 5363 // </div> 5364 // </div> 5365 // <div class="propsAddonSpotify row m-0"> 5366 // <div class="col-12 col-lg-2"></div> 5367 // <div class="col-12 col-lg-10"> 5368 // <p> 5369 // <span>spotify link</span> 5370 // <span class="spotifyLinkAddon">${spotifyLink}</span> 5371 // </p> 5372 // <p> 5373 // <span>uploaded photo</span> 5374 // <span class="spotifyFotoAddon">${spotifyFotoAddon}</span> 5375 // </p> 5376 // <p> 5377 // <span>song / playlist name</span> 5378 // <span class="spotifySongAddon">${spotifySong}</span> 5379 // </p> 5380 // <p> 5381 // <span>artist name</span> 5382 // <span class="spotifyArtistAddon">${spotifyArtist}</span> 5383 // </p> 5384 // </div> 5385 // </div>` 5386 // items.push(spotifyAddon) 5387 // } 5388 // }) 5389 // }
5390 for(let i = 0; i < data.length; i++) { 5391 if(data[i].title !== '[US] Outerbloom Acrylic Frame 4R' ) { 5392 const img = data[i].image 5393 const title = data[i].title 5394 const qty = data[i].qty 5395 const price = data[i].price 5396 const total = Number(qty) * Number(price) 5397 let addons = `<div class="addon-item" data-id="${data[i].id}" data-qty="${qty}"> 5398 <div class="addon-itm-img"> 5399 <img src="${img}" alt="" width="70"/> 5400 </div> 5401 <div class="addon-itm-title"> 5402 <span>${title}</span> 5403 </div> 5404 <div class="addon-itm-line-price"> 5405 <span>${rupiah.format(price)}</span> 5406 ${data[i].title == '[US] Outerbloom Acrylic Frame 4R' ? '' : `<span>x${qty}</span>`} 5407 </div> 5408 <div class="addon-itm-line-total"> 5409 <span>${rupiah.format(total)}</span> 5410 </div> 5411 </div>` 5412 items.push(addons) 5413 } 5414 } 5415 c.html(items) 5416 const parent = $(".purchaseAddon") 5417 const next = parent.next(".sectionPurchase") 5418 parent.addClass("hide") 5419 next.removeClass("hide") 5420 // if(items2.length === 0) return $("#popupCart").addClass("no-addon-cart") 5421 // $(".itemAddonCart").find("h4").text(`add-ons (${items2.length})`) 5422 } 5423 5424 async function listAddon() { 5425 const data = $("#itemAddons").find(".selected") 5426 let ids = [] 5427 $(data).each(function(){ 5428 const id = $(this).data("variant") 5429 const image = $(this).find(".card-image img").attr("src") 5430 const title = $(this).find(".card-meta h5").text() 5431 const qty = $(this).find(".card-qty input").val() 5432 const price = $(this).find(".card-qty input").data("price") 5433 ids.push({ 5434 id: Number(id), 5435 image, 5436 title, 5437 qty, 5438 price 5439 }) 5440 }) 5441 myAddon(ids) 5442 } 5443 5444 async function customSpotify(idx, length, type){ 5445 let isCard = false 5446 5447 let p = $(".purchasePopupSpotify") 5448 const preLink = $(".spotifyLinkFirst").val() 5449 $("[data-index]").hide() 5450 p.find(".headerPurchase h3").text(`personalize spotify photo print${length > 1 ? ` - ${idx}` : ''}`) 5451 p.find(".regulerAddons, .purchase-button").hide() 5452 p.find(".spotifyAddons").show() 5453 5454 const data = await trackUrl(preLink) 5455 5456 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://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="13" height="11" viewB
5456ox="0 0 13 11" fill="none"> 5457 <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"/> 5458 </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://www.cabosanfrancisco.ch/image/logo-ompong188.webp><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://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="13" height="11" viewB
5458ox="0 0 13 11" fill="none"> 5459 <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"/> 5460 </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>` 5461 // console.log(html) 5462 5463 $(".spotifyAddons").append(html) 5464 5465 $(`[data-index=${idx}]`).show() 5466 5467 if (preLink !== '') { 5468 $(".btn-action .btn").attr("disabled", false) 5469 } else { 5470 $(".btn-action .btn").attr("disabled", true) 5471 } 5472 5473 return html 5474 5475 } 5476 5477 $(".spotifyLinkFirst").keyup(async function(){ 5478 const v = $(this).val() 5479 if(v.includes('spotify:user:spotify')) { 5480 const correct = v.split('user:spotify:')[1] 5481 console.log(correct, 'BNER') 5482 $(this).val(correct) 5483 return 5484 } 5485 if(v.includes("spotify:") || v.includes("https://open.spotify.com/")){ 5486 const data = await trackUrl(v) 5487 if(!data || !data.status) { 5488 $(this).parent().addClass("error") 5489 // $(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>`) 5490 $("#personalizeBtnSpotify .btn").attr("disabled", true) 5491 return 5492 } 5493 $(this).parent().removeClass("error") 5494 // $(this).parent().remove("txt-error") 5495 $("#personalizeBtnSpotify .btn").attr("disabled", false) 5496 } else { 5497 $("#personalizeBtnSpotify .btn").attr("disabled", true) 5498 } 5499 }) 5500 5501 $(".purchaseAddon").delegate(".next-addon", "click", function(){ 5502 const parent = $(this).parents(".purchaseAddon") 5503 const next = parent.next(".sectionPurchase") 5504 if(next.hasClass("purchaseAddress")) { 5505 if(productType !== '') { 5506 console.log("clarity event " + productType + ' purchaseDelivery') 5507 window.clarity("event", `${productType} purchaseDelivery`) 5508 // window.clarity("set", productType, `purchaseDelivery - ${productDate}`) 5509 } 5510 } 5511 const data = $("#itemAddons").find(".selected") 5512 const length = $(".quantity-cart-46067682607319").val() 5513 const checked = data.length; 5514 if(checked > 0) { 5515 if(length > 0) { 5516 $(".purchaseAddon").addClass("purchaseAddonSpotify") 5517 customSpotify(1, length, 'addon') 5518 } else { 5519 listAddon() 5520 } 5521 } else { 5522 parent.addClass("hide") 5523 next.removeClass("hide") 5524 } 5525 }) 5526 5527 $("#personalizeBtnSpotify .btn").click(async function(){ 5528 const isCity = $("#cities[required]") 5529 const isDate = $("#propDeliveryDate[required]") 5530 if((isDate.length > 0 && isCity.length > 0) && (isCity.val() === '' || isDate.val() === '')) { 5531 alert('Please choose Delivery City & Delivery Date') 5532 return 5533 } 5534 const data = await customSpotify(1, 1, 'product') 5535 if(data) { 5536 $("#backgroundPopup").fadeIn("slow"); 5537 $(".purchasePopupSpotify").fadeIn("slow"); 5538 5539 if(productType !== '') { 5540 console.log("clarity event " + productType + ' spotify') 5541 window.clarity("event", `${productType} spotify`) 5542 // window.clarity("set", productType, `purchaseDelivery - ${productDate}`) 5543 } 5544 } 5545 }) 5546 5547 function formatBytes(bytes, decimals = 2) { 5548 if (!+bytes) return '0 Bytes' 5549
5550 const k = 1024 5551 const dm = decimals < 0 ? 0 : decimals 5552 const sizes = ['B', 'KB', 'MB'] 5553 5554 const i = Math.floor(Math.log(bytes) / Math.log(k)) 5555 5556 return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}` 5557 } 5558 5559 async function trackUrl(link){ 5560 try { 5561 let trackId = link.split('/').pop().split('?')[0]; 5562 let type = '' 5563 if(link.includes("spotify:")) { 5564 const uri = link.split('spotify:')[1] 5565 trackId = uri.split(':')[1] 5566 type = uri.split(':')[0] + 's' 5567 } else { 5568 if(link.match('track')){ 5569 type = 'tracks' 5570 } else if(link.match('playlist')) { 5571 type = 'playlists' 5572 } else if(link.match('artist')) { 5573 type = 'artists' 5574 } else if(link.match('album')) { 5575 type = 'albums' 5576 } 5577 } 5578 console.log(`${host}/api/spotify/${type}/${trackId}`) 5579 const data = await getFetch(`${host}/api/spotify/${type}/${trackId}`) 5580 console.log(data, 'DATA') 5581 const song = data?.data?.name 5582 const artist = data?.data?.artist 5583 return { 5584 song, artist, type, trackId, status: data.status 5585 } 5586 } catch(err) { 5587 console.log(err) 5588 } 5589 } 5590 5591 $(".spotifyAddons").delegate(".uploadPhotoSpotify", "change", async function(){ 5592 const parent = $(this).parents("[data-index]") 5593 const preview = parent.find(".previewImage") 5594 const file = $(this)[0].files[0]; 5595 if (file) { 5596 const reader = new FileReader(); 5597 reader.onload = async function(e) { 5598 parent.find(".uploadResult label").hide() 5599 parent.find(".uploadedResult").remove() 5600 parent.find(".uploadResult").append(`<div class="uploadedResult d-flex" style="justify-content: space-between"> 5601 <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> 5602 <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;">
5602<svg fill="none" height="11" viewBox="0 0 10 11" width="10" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp"> 5603 <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 /> 5604 </svg> 5605 </span></div></div>`) 5606 parent.find(".frameImageUploaded svg").hide() 5607 parent.find(".frameImage").addClass("uploaded") 5608 preview.attr("src", e.target.result); 5609 preview.show(); 5610 let formData = new FormData(); 5611 formData.append("file", file); 5612 const response = await fetch(`${host}/api/upload?name=${file.name}&type=image/jpeg&r=${Date.parse(new Date)}`, { 5613 method: "POST", 5614 body: formData 5615 }) 5616 const result = await response.json(); 5617 if(result){ 5618 parent.find(".resultPhotoSpotify").val(result.url) 5619 } 5620 } 5621 5622 reader.readAsDataURL(file); 5623 } else { 5624 preview.hide(); 5625 } 5626 }); 5627 5628 $(".spotifyAddons").delegate(".uploadResult", "click", function(){ 5629 $(this).next("input[type=file]").trigger("click") 5630 }) 5631 5632 $(".spotifyAddons").delegate(".changeUpload", "click", function(){ 5633 $(this).parents("input[type=file]").trigger("click") 5634 }) 5635 5636 $(".spotifyAddons").delegate(".removeUpload", "click", function(){ 5637 const parent = $(this).parents("[data-index]") 5638 parent.find(".uploadPhotoSpotify").val("") 5639 parent.find(".uploadResult label").show() 5640 parent.find(".uploadedResult").remove() 5641 parent.find(".frameImageUploaded svg").show() 5642 parent.find(".previewImage").hide() 5643 parent.find(".frameImage").removeClass("uploaded") 5644 }) 5645 5646 $(".spotifyAddons").delegate("label.checkbox", "click", function(){ 5647 const parent = $(this).parents("[data-index]") 5648 parent.toggleClass("checked") 5649 }) 5650 5651 $(".spotifyAddons").delegate(".spotifyLink", "change", async function(){ 5652 const parent = $(this).parents("[data-index]") 5653 const link = $(this).val() 5654 const data = await trackUrl(link) 5655 5656 console.log(data) 5657 5658 if(data.song) { 5659 parent.find(".spotifySong").val(data.song) 5660 parent.find(".spotifyData").find("h3").text(data.song) 5661 } 5662 if(data.artist) { 5663 parent.find(".spotifyArtist").val(data.artist) 5664 parent.find(".spotifyData").find("p").text(data.artist) 5665 } 5666 parent.find(".spotifyCode img").attr("src", `https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:${data.type.slice(0, -1)}:${data.trackId}`) 5667 // https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:track:1er51HCEBhIAtoEemKuC3M 5668 if (data.status === true) { 5669 parent.find(".btn-action .btn").attr("disabled", false) 5670 } else { 5671 parent.find(".btn-action .btn").attr("disabled", true) 5672 } 5673 }) 5674
5675 $(".spotifyAddons").delegate(".spotifySong", "keyup", async function(){ 5676 const parent = $(this).parents("[data-index]") 5677 const v = $(this).val() 5678 parent.find(".spotifyData h3").text(v) 5679 }) 5680 5681 $(".spotifyAddons").delegate(".spotifyArtist", "keyup", async function(){ 5682 const parent = $(this).parents("[data-index]") 5683 const v = $(this).val() 5684 parent.find(".spotifyData p").text(v) 5685 }) 5686 5687 $(".spotifyAddons").delegate(".btn-action .btn:not(.no-addon)", "click", async function(){ 5688 const parent = $(this).parents("[data-index]") 5689 const length = parent.data("length") 5690 const index = parent.data("index") 5691 const indexNext = Number(index) + 1 5692 customSpotify(indexNext, length, 'addon') 5693 }) 5694 5695 5696 $(".spotifyAddons").delegate(".btn-action .btn.finished", "click", async function(){ 5697 const parent = $(this).parents(".purchaseAddon") 5698 const next = parent.next(".sectionPurchase") 5699 parent.addClass("hide") 5700 next.removeClass("hide") 5701 next.find(".purchase-button").show() 5702 listAddon() 5703 }) 5704 5705 $(".spotifyAddons").delegate(".back-spotify", "click", async function(){ 5706 const t = $(this).parents("[data-index]") 5707 const parent = $(this).parents(".sectionPurchase") 5708 const current = t.data("index") 5709 const prevCurrent = Number(current) - 1 5710 if(current == 1) { 5711 parent.removeClass("purchaseAddonSpotify") 5712 parent.find(".purchase-button").show() 5713 parent.find(".headerPurchase h3").text("Make It More Special with Add-Ons!") 5714 $(".spotifyAddons").empty() 5715 $(".regulerAddons").show() 5716 return 5717 } 5718 t.hide() 5719 t.prev("[data-index]").show() 5720 t.remove() 5721 parent.find(".headerPurchase h3").text(`personalize spotify photo print - ${prevCurrent}`) 5722 }) 5723 5724 $("#personalizeBtn .btn").click(async function() { 5725 loadPopupPersonalize() 5726 }); 5727 5728 $(".sectionPurchaseSpotify").delegate(".btn[data-type=card]", "click", function(){ 5729 $(".sectionPurchaseSpotify").hide() 5730 loadPopupPersonalize() 5731 }) 5732 5733 $(".close-purchase-popup").click(function() { 5734 disablePopup(); 5735 }); 5736 $("#backgroundPopup").click(function() { 5737 // disablePopup(); 5738 }); 5739 5740 $("#popupCart .close-purchase-popup").click(function() { 5741 location.reload() 5742 }); 5743 5744 $('#popupCart').on('hide.bs.modal', function (e) { 5745 location.reload() 5746 }) 5747 5748 $(".next-card").click(function(){ 5749 const parent = $(this).parents(".sectionPurchase") 5750 const next = parent.next(".sectionPurchase") 5751 parent.addClass("hide") 5752 next.removeClass("hide") 5753 }) 5754 5755 $(".back-purchase-button").click(function(){ 5756 const parent = $(this).parents(".sectionPurchase") 5757 const prev = parent.prev(".sectionPurchase") 5758 parent.addClass("hide") 5759 prev.removeClass("hide") 5760 }) 5761 5762 $(document).keypress(function(e) { 5763 if (e.keyCode == 27 && popupStatus == 1) { 5764 disablePopup(); 5765 } 5766 }); 5767 5768 const parentImg = $(".case-img-preview") 5769 const parentVid = $(".case-video-preview") 5770 5771 function readURL(input) { 5772 if (input.files && input.files[0]) { 5773 let reader = new FileReader(); 5774 5775 let type = 'image/jpeg' 5776 const size = input.files[0].size 5777 if(input.files[0].type.match('video/')){ 5778 type = 'video/mp4' 5779 if(size > 15728640) { 5780 alert('File size exceeds maximum limit 15 MB') 5781 return 5782 } 5783 } else { 5784 if(size > 5242880) { 5785 alert('File size exceeds maximum limit 5 MB') 5786 return 5787 } 5788 } 5789 5790 reader.onload = function (e) { 5791 $(".nextBtn").attr("disabled", true) 5792 if(type === 'image/jpeg') { 5793 5794 $('.placeholder-image').hide(); 5795 $('.preview-image').show() 5796 $('.preview-image').attr('src', e.target.result); 5797 5798 } else { 5799 // parentVid.find(".ajax-loader").show(); 5800 $(".steps-card-preview").addClass("loading") 5801 } 5802 } 5803 5804 5805
5806 reader.readAsDataURL(input.files[0]); 5807 } 5808 } 5809 5810 async function readURLPapan(input) { 5811 if (input.files && input.files[0]) { 5812 let reader = new FileReader(); 5813 5814 reader.onload = function (e) { 5815 $('.btn-upload-papan').siblings('label').hide(); 5816 $('.btn-upload-papan img').attr('src', e.target.result); 5817 $('.btn-upload-papan img').show(); 5818 $('.svgLogoPapan').hide(); 5819 } 5820 5821 const type = 'image/jpeg' 5822 const name = `logo-8144957800663-${Date.parse(new Date())}` 5823 5824 let formData = new FormData(); 5825 formData.append("file", input.files[0]); 5826 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 5827 method: "POST", 5828 body: formData 5829 }) 5830 const result = await response.json(); 5831 if(result) { 5832 const url = result.url 5833 $("[data-properties=papan-logo]").val(url) 5834 } 5835 5836 reader.readAsDataURL(input.files[0]); 5837 } 5838 } 5839 5840 async function readURLAddress(input) { 5841 console.log(input, 'readURLAddress') 5842 if (input.files && input.files[0]) { 5843 let reader = new FileReader(); 5844 5845 reader.onload = function (e) { 5846 $('.photo-address').attr('src', e.target.result); 5847 $('.photo-address').show(); 5848 } 5849 5850 const type = 'image/jpeg' 5851 const name = input.files[0].name?.split('.')[0] 5852 5853 let formData = new FormData(); 5854 formData.append("file", input.files[0]); 5855 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 5856 method: "POST", 5857 body: formData 5858 }) 5859 const result = await response.json(); 5860 5861 reader.readAsDataURL(input.files[0]); 5862 5863 return result 5864 } 5865 } 5866 5867 5868 5869 5870 async function addToCartUang() { 5871 var productAddOnId1 = 42122101162199; 5872 var productAddOnId2 = 42122101194967; 5873 var product_id = 8144957800663 5874 const data = { 5875 items: [ 5876 { 5877 quantity: $("#Quantity-" + productAddOnId1).val(), 5878 id: productAddOnId1, 5879 "properties": { "Time": $("#properties-time").val() } 5880 }, 5881 { 5882 quantity: $("#Quantity-" + productAddOnId2).val(), 5883 id: productAddOnId2, 5884 "properties": { "Time": $("#properties-time").val() } 5885 } 5886 ] 5887 } 5888 await fetch(window.Shopify.routes.root + 'cart/add.js', { 5889 method: 'POST', 5890 headers: { 5891 'Content-Type': 'application/json' 5892 }, 5893 body: JSON.stringify(data) 5894 }) 5895 .then(response => { 5896 console.error('Sukses Buket Uang:', response); 5897 $(".form-flower").submit() 5898 }) 5899 .catch((error) => { 5900 console.error('Error Buket Uang:', error); 5901 $(".form-flower").submit() 5902 }); 5903 } 5904 5905 async function saveCard(){ 5906 let isCard = true 5907 const kartu_penerima = $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '' 5908 const kartu_pengirim = $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '' 5909 const kartu_ucapan = $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '' 5910 const foto = $("#properties-photo").val() 5911 const video = $("#properties-video").val() 5912 const data = JSON.stringify({ 5913 "id": qrID, 5914 "penerima": $("#properties-nama-penerima").val(), 5915 "kartu_penerima": kartu_penerima, 5916 "kartu_ucapan": kartu_ucapan, 5917 "kartu_pengirim": kartu_pengirim, 5918 "foto": foto, 5919 "video": video, 5920 "productId": "8144957800663", 5921 "order_name": "", 5922 "status": "Cart" 5923 }) 5924 5925 5926 } 5927 5928 async function additem(items){ 5929 try { 5930 let formData = items 5931 if(items?.length) { 5932 formData = { 5933 'items': items 5934 }; 5935 } 5936 5937 const add = await fetch(window.Shopify.routes.root + 'cart/add.js', { 5938 method: 'POST', 5939 headers: { 5940 'Content-Type': 'application/json', 5941 'X-Requested-With':'xmlhttprequest' /* XMLHttpRequest is ok too, it's case insensitive */ 5942 }, 5943 body: JSON.stringify(formData) 5944 }) 5945 5946 const data = await add.json(); 5947 return data 5948 } catch(err){ 5949 console.log('Error additem', err) 5950 } 5951 } 5952 5953 async function addons(){ 5954 let items = [] 5955 $(".addon-item").each(function(){ 5956 const p = $(this) 5957 const props = p.next(".propsAddonSpotify") 5958 const id = $(this).data("id") 5959 const quantity = $(this).data("qty") 5960 const propId = $("#properties-time").val() 5961 let properties = {} 5962 if(id === 46067682607319) { 5963 const link = props.find(".spotifyLinkAddon").text() 5964 const photo = props.find(".spotifyFotoAddon").text() 5965 const song = props.find(".spotifySongAddon").text() 5966 const artist = props.find(".spotifyArtistAddon").text() 5967 properties = { 5968 id: propId, 5969 "Spotify Link": link !== '' ? link : '-', 5970 "Spotify Photo": photo !== '' ? photo : '-', 5971 "Spotify Song": song !== '' ? song : '-', 5972 "Spotify Artist": artist !== '' ? artist : '-', 5973 type: 'addon' 5974 } 5975 } else { 5976 properties = { 5977 "id": propId, 5978 "type": "addon" 5979 } 5980 } 5981 items.push({ 5982 id, 5983 quantity, 5984 properties 5985 }) 5986 }) 5987 return items 5988 } 5989 5990 async function propItems() { 5991 let props = {} 5992 $("[data-properties]").each(function(e){
5993 let elementType = this.tagName; 5994 const k = $(this).data("properties") 5995 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') { 5996 const v = elementType === 'SELECT' ? $(this).find(":selected").val() : $(this).val(); 5997 if(v !== '') { 5998 props[k] = v?.replace(/[\s\n]/g, ''); 5999 } 6000 } 6001 }) 6002 return props 6003 } 6004 6005 async function showPopupCart(items){ 6006 if(productType !== '') { 6007 console.log("clarity event " + productType + ' completeOrder') 6008 window.clarity("event", `${productType} completeOrder`) 6009 // window.clarity("set", productType, `completeOrder - ${productDate}`) 6010 } 6011 $("#popupCart").show() 6012 6013 $(".propDeliveryCity").text($("#cities").val()) 6014 $(".propDeliveryDate").text($("#propDeliveryDate").val()) 6015 $(".propDeliveryTime").text($("#propDeliveryTime").val()) 6016 $(".propDeliveryName").text($("[data-properties=nama-penerima]").val()) 6017 $(".propDeliveryAddress").text($("[data-properties=alamat-penerima]").val()) 6018 $(".propDeliveryPhone").text($("[data-properties=telepon-penerima]").val()) 6019 $(".propDeliveryProv").text($("#province").val()) 6020 $(".propDeliveryZip").text($("#zip").val()) 6021 6022 6023 6024 const addons = [] 6025 if(items && items.length > 0) { 6026 for(let i = 1; i < items.length; i++) { 6027 const spotifyLink = items[i].properties['Spotify Link'] 6028 const spotifyPhoto = items[i].properties['Spotify Photo'] 6029 const spotifySong = items[i].properties['Spotify Song'] 6030 const spotifyArtist = items[i].properties['Spotify Artist'] 6031 const price = items[i].price / 100 6032 const props = spotifyLink ? `<div class="propsAddonCart row m-0"> 6033 <div class="col-12 col-lg-2"></div> 6034 <div class="col-12 col-lg-10"> 6035 <p> 6036 <span>spotify link</span> 6037 <span>${spotifyLink}</span> 6038 </p> 6039 <p> 6040 <span>Upload Photo</span> 6041 <span>${spotifyPhoto}</span> 6042 </p> 6043 <p> 6044 <span>song / playlist name</span> 6045 <span>${spotifySong}</span> 6046 </p> 6047 <p> 6048 <span>artist name</span> 6049 <span>${spotifyArtist}</span> 6050 </p> 6051 </div> 6052 </div>` : ''; 6053 addons.push(`<div class="row m-0"> 6054 <div class="imgAddonCart col-2"> 6055 <img 6056 width="43" 6057 src="${items[i].image}" 6058 alt="" 6059 > 6060 </div> 6061 <div class="imgAddonTitlePrice col-10 align-self-center"> 6062 <div class="row justify-content-between m-0"> 6063 <div class="col-12 col-lg-8"> 6064 <h5>${items[i].title}</h5> 6065 </div> 6066 <div class="col-12 col-lg-4 text-lg-right"> 6067 <span>${rupiah.format(price)}</span> 6068 </div> 6069 </div> 6070 </div> 6071 </div>${props}`) 6072 } 6073 } 6074 // console.log(addons) 6075 if(addons.length === 0) { 6076 $(".itemAddonCart").hide() 6077 return 6078 } 6079 $(".toggleAddonCart h4").text(`add-ons (${items.length - 1})`) 6080 $(".wrapperItemAddonCart").html(addons) 6081 } 6082 6083 const money = (money) => { 6084 return new Intl.NumberFormat('id-ID', 6085 { style: 'currency', currency: 'IDR', minimumFractionDigits: 0 } 6086 ).format(money); 6087 } 6088 6089 async function showNoteMoney() { 6090 let qty50k = $("[data-properties='Uang 50k']").val() 6091 let qty100k = $("[data-properties='Uang 100k']").val() 6092 const total50k = Number(qty50k) * 50000 6093 const total100k = Number(qty100k) * 100000 6094 const total_all = total50k + total100k 6095 $(".prop50k").html(`<span>${qty50k} Lembar: <strong class="pl-1">${money(total50k)}</strong></span>`) 6096 $(".prop100k").html(`<span>${qty100k} Lembar: <strong class="pl-1">${money(total100k)}</strong></span>`) 6097 $(".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://www.cabosanfrancisco.ch/coffee/" target="_blank" style="text-decoration: underline;
6097 color: #8d3f2d">Customer Service</a> to confirm with proof of payment.</p>`) 6098 } 6099 6100 async function removeImage() { 6101 const data = JSON.stringify({ 6102 "ID": $("#properties-properties-qrId").val(), 6103 "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 6104 "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 6105 "Kartu Ucapan": $("[data-properties=ucapan]").val(), 6106 "Nama Penerima": $("#properties-nama-penerima").val(), 6107 "Order Number":"", 6108 "Status":"Product", 6109 "Foto": "", 6110 "Media": $("#properties-video").val(), 6111 "Image": "8144957800663" 6112 }) 6113 const remove = updateCard(data) 6114 if(remove) { 6115 $(this).hide() 6116 $("#properties-photo").val("-") 6117 $(".placeholder-image").show() 6118 $(".preview-image").attr("src", "") 6119 } 6120 } 6121 6122 async function removeVideo() { 6123 const data = JSON.stringify({ 6124 "ID": $("#properties-properties-qrId").val(), 6125 "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 6126 "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 6127 "Kartu Ucapan": $("[data-properties=ucapan]").val(), 6128 "Nama Penerima": $("#properties-nama-penerima").val(), 6129 "Order Number":"", 6130 "Status":"Product", 6131 "Foto": $("#properties-photo").val(), 6132 "Media": "", 6133 "Image": "8144957800663" 6134 }) 6135 const remove = updateCard(data) 6136 if(remove) { 6137 $("#properties-video").val("-") 6138 $(this).find("img").hide() 6139 $(this).hide() 6140 $(this).prev("p").text("Add video to make it more special (optional)") 6141 $("#label-input-video").show() 6142 $("#label-input-video span").text("Upload Video") 6143 $(".case-video-preview p span").remove() 6144 } 6145 } 6146 6147 async function loadItemOccasion(t, occasion) { 6148 const name = occasion?.replace('greeting-card-', '') 6149 $("#kartu-ucapan").val("") 6150 $("[data-occassion]").removeClass("selected") 6151 $("[data-properties=ucapan]").val("") 6152 $("#save-card").attr("disabled", true) 6153 t.addClass("selected") 6154 $("#show_note").attr("data-card-occassion", name) 6155 $.get(`https://outerbloom.com/collections/${occasion}/products.json`, function(data, status){ 6156 const products = data.products 6157 const html = [] 6158 for(let i = 0; i < products.length; i++) { 6159 const id = products[i].id 6160 const variantId = products[i].variants[0].id 6161 const img = products[i].images[0].src 6162 const title = products[i].title 6163 const price = products[i].variants[0].price 6164 const qty = products[i].variants[0].inventory_quantity 6165 const body = `<div class="item-card${price < 1 ? ' free' : ' nofree'}${i === 0 ? ' selected' : ''}" data-id=${id}> 6166 <label for="card-${variantId}"></label> 6167 <div class="card-image"> 6168 <img src="${img}" alt="${title}" width="" height="" /> 6169 </div> 6170 <div class="card-meta text-center"> 6171 <h5>${title}</h5> 6172 <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p> 6173 <input id="card-${variantId}" type="radio" name="id" value="${variantId}" data-price="${price}"> 6174 </div> 6175 </div>` 6176 html.push(body) 6177 } 6178 const withoutCard = `<div class="item-card item-without-card"> 6179 <label for="card-0"></label> 6180 <div class="card-image"> 6181 <img src="https://cdn.shopify.com/s/files/1/1589/6833/t/129/assets/without-card.png?v=1747632283" alt="Without card" width="" height="" /> 6182 </div> 6183 <div class="card-meta text-center"> 6184 <h5>
6184Send without a greeting card</h5> 6185 <input id="card-0" type="radio" name="id" value="" data-price=""> 6186 </div> 6187 </div>` 6188 $("#itemCards .items-card").html(html.length === 0 ? '<p>No Item available</p>' : html.join("")) 6189 }); 6190 } 6191 6192 $(document).ready(function(){ 6193 6194 // Observer to auto-trigger addon loading when addon section becomes visible 6195 const addonObserver = new MutationObserver(function(mutations) { 6196 mutations.forEach(function(mutation) { 6197 const target = $(mutation.target) 6198 if(target.hasClass('purchaseAddon') && mutation.type === 'attributes' && mutation.attributeName === 'class') { 6199 if(!target.hasClass('hide')) { 6200 // Addon section just became visible, ensure items are loaded 6201 setTimeout(function() { 6202 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6203 console.log("Auto-triggering addon load...") 6204 $("[data-addon=upsell-all]").trigger("click") 6205 } 6206 }, 150) 6207 } 6208 } 6209 }) 6210 }) 6211 6212 // Start observing addon section 6213 const addonSection = document.querySelector('.purchaseAddon') 6214 if(addonSection) { 6215 addonObserver.observe(addonSection, { 6216 attributes: true, 6217 attributeFilter: ['class'] 6218 }) 6219 } 6220 6221 $(".purchasePopup").delegate("#addtocart-card", "click", async function(){ 6222 6223 $(this).find("span").addClass("loading") 6224 let isValid = true 6225 $(".formAddressPurchase [required]").each(function(){ 6226 const t = $(this) 6227 const input = t.val() 6228 const p = t.parent() 6229 if(input === '') { 6230 p.addClass("error") 6231 isValid = false 6232 } 6233 }) 6234 6235 if(!isValid) { 6236 $(this).find("span").removeClass("loading") 6237 return 6238 } 6239 6240 let items = [] 6241 const mainProps = { 6242 6243 "Delivery Date": $("#propDeliveryDate").val(), 6244 "Delivery Time": $("#propDeliveryTime").val() !== '' ? $("#propDeliveryTime").val() : '-' , 6245 "Kota Pengiriman": $("#cities").val(), 6246 "Nama Penerima": $("[data-properties=nama-penerima]").val() !== '' ? $("[data-properties=nama-penerima]").val() : '-' , 6247 "Alamat Penerima": $("[data-properties=alamat-penerima]").val() !== '' ? $("[data-properties=alamat-penerima]").val() : '-' , 6248 "Kodepos": $("#zip").val() !== '' ? $("#zip").val() : '-' , 6249 "Telepon Penerima": $("[data-properties=telepon-penerima").val() !== '' ? $("[data-properties=telepon-penerima").val() : '-' , 6250 6251 6252 "Papan Nama Penerima": $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '-' , 6253 "Papan Ucapan": $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '-' , 6254 "Papan Nama Pengirim": $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '-' , 6255 "Papan Logo": $("[data-properties=papan-logo]").val() !== '' ? $("[data-properties=papan-logo]").val() : '-' , 6256 "Foto Alamat": $("[data-properties=foto-alamat]").val() !== '' ? $("[data-properties=foto-alamat]").val() : '-' , 6257 6258 6259 "Province": $("#province").val() !== '' ? $("#province").val() : '-' , 6260 "Country": $("#properties-kota-pengiriman-country").val() !== '' ? $("#properties-kota-pengiriman-country").val() : '-' , 6261 "Shipping": $("#properties-shipping").val() !== '' ? $("#properties-shipping").val() : '-' , 6262 "Company": $("[data-properties=company]").val() !== '' ? $("[data-properties=company]").val() : '-' , 6263 "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 6264 "type": 'product' 6265 } 6266 const props = await propItems() 6267 properties = {...mainProps, ...props }; 6268 const id = $("#productSelect").find('option:selected').val() 6269 console.log(id, 'main ID') 6270 const mainItem = { 6271 id: Number(id), 6272 quantity: 1, 6273 properties 6274 } 6275 items.push(mainItem) 6276 const cardId = $("#itemCards").find(".selected input").val() 6277 const cardItem = { 6278 id: Number(cardId), 6279 quantity: 1, 6280 properties: { "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', type: 'card' } 6281 } 6282 console.log(cardId, 'cardId') 6283 if(cardId) { 6284 items.push(cardItem) 6285 } 6286 const addon = await addons() 6287 if(addon) { 6288 for(let i = 0;
6288 i < addon.length; i++){ 6289 items.push({ 6290 id: addon[i].id, 6291 quantity: addon[i].quantity, 6292 properties: addon[i].properties 6293 }) 6294 } 6295 } 6296 const addItems = await additem(items) 6297 console.log(addItems.items, 'add items') 6298 if(addItems) { 6299 $(this).find("span").removeClass("loading") 6300 disablePopup() 6301 showPopupCart(addItems.items) 6302 6303 localStorage.setItem("items", JSON.stringify(addItems.items)) 6304 } 6305 }) 6306 6307 $("#addtocart-cart .btn").click(async function(){ 6308 const id = $("#productSelect").find('option:selected').val() 6309 const mainProps = { 6310 id: $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 6311 type: 'product' 6312 } 6313 const props = await propItems() 6314 const properties = { ...mainProps, ...props }; 6315 const items = { 6316 id: Number(id), 6317 quantity: 1, 6318 properties 6319 } 6320 const addItems = await additem(items) 6321 if(addItems) { 6322 showPopupCart(addItems.items) 6323 localStorage.setItem("items", JSON.stringify(addItems)) 6324 } 6325 }) 6326 6327 $(".formAddressPurchase [required]").change(function(){ 6328 const t = $(this) 6329 const p = t.parent() 6330 const v = t.val() 6331 if(v !== '') { 6332 p.removeClass("error") 6333 } 6334 }) 6335 6336 $("#save-card").click(async function(){ 6337 const parent = $(this).parents(".sectionPurchase") 6338 const next = parent.next(".sectionPurchase") 6339 $(this).find("span").addClass("loading") 6340 const card = await saveCard() 6341 console.log(card, 'ssaveCCC') 6342 if(card?.status === 200 || card?.status === 201) { 6343 $(".scanCard").removeClass("hide") 6344 $(this).find("span").removeClass("loading") 6345 parent.addClass("hide") 6346 next.removeClass("hide") 6347 if(next.hasClass("purchaseAddon")) { 6348 $("[data-addon=upsell-all]").click() 6349 console.log("clarity event addons") 6350 window.clarity("event", `${productType} add-ons`) 6351 // Ensure addon items are loaded when entering addon popup 6352 setTimeout(function() { 6353 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6354 $("[data-addon=upsell-all]").trigger("click") 6355 } 6356 }, 100) 6357 } 6358 if(next.hasClass("purchaseAddress")) { 6359 $("#zip").select2() 6360 } 6361 } 6362 }) 6363 6364 $("#skip-card").click(async function(){ 6365 $("#greetingCard [data-properties]").val("") 6366 $("#properties-photo").val("") 6367 $("#properties-video").val("") 6368 const parent = $(this).parents(".sectionPurchase") 6369 const next = parent.next(".sectionPurchase") 6370 parent.addClass("hide") 6371 next.removeClass("hide") 6372 // $("#itemCards").html("") 6373 removeImage() 6374 removeVideo() 6375 if(next.hasClass("purchaseAddon")) { 6376 $("[data-addon='upsell-all']").click() 6377 console.log("clarity event addons") 6378 window.clarity("event", `${productType} add-ons`) 6379 // Ensure addon items are loaded when entering addon popup 6380 setTimeout(function() { 6381 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6382 $("[data-addon='upsell-all']").trigger("click") 6383 } 6384 }, 100) 6385 } 6386 if(next.hasClass("purchaseAddress")) { 6387 $("#zip").select2() 6388 } 6389 }) 6390 6391 $("#msgCard").click(async function(){ 6392 $(this).parent().addClass("loading") 6393 let occasion = $(".selected[data-occassion]").data("occassion") 6394 occasion = occasion?.replace("greeting-card-", "") 6395 const { data } = await getFetch(`${host}/api/card/template/occasion?name=${occasion}`); 6396 const d = data?.data 6397 for(let i = 0; i < d.length; i++) { 6398 const num = Math.floor(Math.random() * (d.length - 1 + 1) + 1); 6399 const greeting = d[num]?.Greeting 6400 $(".greetingCard textarea").val(greeting) 6401 $(this).parent().removeClass("loading") 6402 } 6403 $("#save-card").attr("disabled", false) 6404 }) 6405 6406 $(".sectionPurchaseBoard .next-purchase-button").click(function(){ 6407 const parent = $(this).parents(".sectionPurchase") 6408 const next = parent.next(".sectionPurchase") 6409 parent.addClass("hide") 6410 next.removeClass("hide") 6411 }) 6412 6413 $("#editCard").click(function(){ 6414 $(".custom-card").show() 6415 $(".preview-card").hide() 6416 }) 6417 6418 $("#first_name, #last_name").change(function(){ 6419 const v = $(this).val() 6420 const first_name = $("#first_name").val() 6421 const last_name = $("#last_name").val() !== '' ? ' ' + $("#last_name").val() : '' 6422 $("[data-properties=nama-penerima]").val(first_name+last_name) 6423 }) 6424 6425 $("[data-occassion]").click(function(){ 6426 const t = $(this) 6427 const p = t.parents(".sectionPurchase") 6428 // $(".greetingCard").addClass("disabled") 6429 const occasion = t.data("occassion") 6430 loadItemOccasion(t, occasion) 6431 }) 6432 6433 $("#itemCards").delegate(".item-card:not(.item-without-card) label", "click", function(){ 6434 const id = $(this).parent(".item-card").data("id") 6435 const t = $(this).parent(".item-card") 6436 const target = t.find("input") 6437 const v = $('.item-card input[type="radio"]:checked').val(); 6438 $("#itemCards .item-card").removeClass("selected") 6439 t.addClass("selected") 6440 $("#itemCards .item-card").find("input").attr("name", "") 6441 if(target.length > 0) { 6442 target.attr("name", "id[]") 6443 $("#properties-card").val(id) 6444 $(".greetingCard").removeClass("disabled") 6445 $("#skip-card").attr("disabled", false) 6446 } else { 6447 $("#properties-card").val("") 6448 } 6449 }) 6450 6451 $("#itemCards").delegate(".item-without-card label", "click", function(){ 6452 const parent = $(this).parents(".sectionPurchase") 6453 const next = parent.next(".sectionPurchase") 6454 $(".greetingCard").addClass("disabled") 6455 parent.addClass("hide") 6456 next.removeClass("hide") 6457 $("[data-addon=upsell-all]").click() 6458 $("#zip").select2() 6459 }) 6460 6461 $("[data-properties=ucapan]").keyup(function(){ 6462 const v = $(this).val() 6463 const p = $(this).parents(".sectionPurchase") 6464 $(".purchaseAddress").find(".greetingCard textarea").val(v) 6465 if(v.length > 3) { 6466 p.find(".next-purchase-button").attr("disabled", false) 6467 } else { 6468 p.find(".next-purchase-button").attr("disabled", true) 6469 } 6470 }) 6471 6472 $("[data-properties=penerima]").keyup(function(){ 6473 const v = $(this).val() 6474 $(".purchaseAddress").find("[data-properties=penerima]").val(v) 6475 }) 6476 6477 $("[data-properties=pengirim]").keyup(function(){ 6478 const v = $(this).val() 6479 $(".purchaseAddress").find("[data-properties=pengirim]").val(v) 6480 }) 6481 6482 $(document).click(function(e){
6483 6484 if($(e.target).closest('.wrapperPopupCart').length != 0) return false; 6485 // $('#popupCart').fadeOut('slow'); 6486 // location.reload() 6487 }); 6488 6489 $(".toggleAddonCart").click(function(){ 6490 const p = $(this).parent(".itemAddonCart") 6491 p.toggleClass("open") 6492 }) 6493 6494 $(".btnViewCart").click(function(){ 6495 window.location.href = "https://outerbloom.com/cart"; 6496 }) 6497 6498 $(".btnViewCheckout").click(async function(){ 6499 $(this).find("span").addClass("loading") 6500 let zip = $("#zip").val() 6501 const first_name = $("#first_name").val() 6502 const last_name = $("#last_name").val() 6503 const company = $("#company").val() !== '' ? $("#company").val() : '' 6504 const address1 = $("#delivery_address").val() 6505 const address2 = zip && zip !== '' ? zip?.split(' - ')[1] : '' 6506 zip = zip && zip !== '' ? zip?.split(' - ')[0] : '' 6507 const phone = $("#recipient_number").val() 6508 const city = $("#cities").val() 6509 const province = $("#province").val() 6510 const country = 'Indonesia' 6511 const ver = Date.parse(new Date()) 6512 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}` 6513 6514 const clear = await fetch(`/cart/clear.js`, {method: 'POST'}) 6515 if(clear.status === 200) { 6516 const savedItem = window.localStorage.getItem("items"); 6517 const items = JSON.parse(savedItem) 6518 const addItems = await additem(items) 6519 console.log(addItems, 'new addItems') 6520 if(addItems) { 6521 window.location.href = `https://outerbloom.com/checkout?${params}`; 6522 } 6523 } 6524 }) 6525 6526 $(".btnContinueShopping").click(function(){ 6527 window.location.href = "https://outerbloom.com/"; 6528 }) 6529 6530 if (isIOS) { 6531 $(".empty-state-card").click(function(){ 6532 $("#input-foto").trigger("click") 6533 }) 6534 $(".btn-upload-image").click(function(){ 6535 $("#input-foto").trigger("click") 6536 }) 6537 $("[for=input-video]").click(function(){ 6538 $("#input-video").trigger("click") 6539 }) 6540 $(".btn-upload-papan").click(function(){ 6541 $("#logoPapan").trigger("click") 6542 }) 6543 } 6544 6545 $("[data-properties]").each(function(){ 6546 const select = $(this).parents(".form-group").find("select") 6547 $(this).change(function(){ 6548 const name = $(this).data("properties") 6549 const v = $(this).val() 6550 if (name == 'telepon-penerima') { 6551 let phone = v.replace(/[^0-9]/g, '') 6552 $(this).val(phone); 6553 $("#properties-telepon-penerima").val(phone) 6554 $('.iti__search-input').val('-') 6555 } else { 6556 $("#properties-" + name).val(v) 6557 } 6558 }) 6559 select.on("change", function(){ 6560 const name = $(this).data("properties") 6561 const v = $(this).val() 6562 $("#properties-" + name).val(v) 6563 }) 6564 }) 6565 6566 $("#show_note").click(function(){ 6567 nameq = $("#properties-nama-penerima").val() 6568 dear = $("#properties-kartu-nama-penerima").val() 6569 card = $("[data-properties=ucapan]").val() 6570 sender = $("#properties-kartu-nama-pengirim").val() 6571 photo = $("#properties-photo").val() 6572 video = $("#properties-video").val() 6573 updateCard(nameq, dear, card, sender, photo, video, status) 6574 }) 6575 6576 $(".remove-image").click(function(e){ 6577 e.preventDefault() 6578 $(this).find("img").show() 6579 removeImage() 6580 }) 6581 6582 $(".remove-media").click(function(e){ 6583 e.preventDefault() 6584 $(this).find("img").show() 6585 removeVideo() 6586 }) 6587 6588 6589 6590 $("[data-delivery_method]").click(function(e){
6591 e.preventDefault() 6592 const t = $(this) 6593 const data = t.data("delivery_method") 6594 $("[data-delivery_method]").removeClass("selected") 6595 t.addClass("selected") 6596 $("#cities").val("") 6597 $("#properties-delivery-date").val("-") 6598 $("#deliveryDate button").removeClass("selected") 6599 $("#full-date").val("Full Calendar â") 6600 $("#propDeliveryDate").val("") 6601 const step3 = $("#step-3") 6602 if(data.match('PickUp')) { 6603 $(".selfpickup-point").show() 6604 step3.find("[data-finished=false]").hide() 6605 $("#panel-4").hide() 6606 step3.find("[data-finished=true]").show() 6607 $("#cities").attr("required", false) 6608 $("#form-group-city").hide() 6609 $("#row-delivery-time").hide() 6610 $("#propDeliveryTime, #properties-delivery-time, #properties-nama-penerima, #properties-alamat-penerima, #properties-kodepos, #properties-kodepos, #properties-telepon-penerima").val("-") 6611 $("#propDeliveryTime").attr("required", false) 6612 // $("#deliveryDate").find("button:first-child").addClass("stop") 6613 $(".form-selfpickup").show() 6614 $(".form-delivery").hide() 6615 $(".form-delivery").find("input, textarea, select").val("") 6616 $(".form-delivery").find("input, textarea, select").attr("required", false) 6617 $("#properties-shipping").val("0") 6618 $("#noteDeliveryDate").hide() 6619 $(".form-delivery .form-control").attr("required", false) 6620 $("#stepNav4").hide() 6621 6622 $("#deliveryDate").find("button:nth-child(1)").addClass("stop") 6623 6624 6625 6626 if(timeOfDay >= 16.01){ 6627 $("#deliveryDate").find("button:nth-child(2)").addClass("stop") 6628 } 6629 } else { 6630 6631 6632 $("#deliveryDate").find("button:nth-child(1)").removeClass("stop") 6633 step3.find("[data-finished=false]").show() 6634 $("#panel-4").show() 6635 step3.find("[data-finished=true]").hide() 6636 $("#cities").attr("required", true) 6637 $(".selfpickup-point").hide() 6638 $("#form-group-city").show() 6639 $("#cities").val('').trigger('change'); 6640 $("#properties-kota-pengiriman").val("-") 6641 6642 $("#row-delivery-date, #row-delivery-time").show() 6643 $("#propDeliveryDate, #propDeliveryTime").attr("required", true) 6644 $("#deliveryDate").find("button").removeClass("stop") 6645 $(".form-selfpickup").hide() 6646 $(".form-delivery").show() 6647 $(".form-delivery").find("input, textarea, select").attr("required", true)
6648 $(".form-delivery [data-properties]").attr("readonly", false) 6649 $("#properties-kodepos").val("-") 6650 $("#properties-alamat-penerima").val("-") 6651 $(".form-delivery .form-control").attr("required", true) 6652 $(this).parents(".setup-content").attr("id", "step-1") 6653 6654 $("#stepNav4").show() 6655 } 6656 }) 6657 6658 $("[name=selfpickup]").click(function(){ 6659 const p = $(this).parents(".row-pickup") 6660 const pickupCity = $("input[name='selfpickup']:checked").val(); 6661 const pickupAddress = $("input[name='selfpickup']:checked").data("address"); 6662 const pickupZip = $("input[name='selfpickup']:checked").data("zip"); 6663 6664 $(".row-pickup").removeClass("selected") 6665 p.addClass("selected") 6666 6667 $("#properties-kota-pengiriman").val(pickupCity) 6668 $("#province").val("Jakarta") 6669 $("#properties-alamat-penerima").val(pickupAddress) 6670 $("#properties-kodepos").val(pickupZip) 6671 }) 6672 6673 $("#cities").change(function(e){ 6674 e.preventDefault() 6675 $(this).parent(".row").find("p.error").remove() 6676 $("#full-date").val("Full Calendar") 6677 $("#deliveryDate, #deliveryDateFull label ").show() 6678 $("#deliveryDateFull").removeClass("filled") 6679 $(".btnChangeDeliveryDate").addClass("hide") 6680 $("#full-date").prop('disabled', false); 6681 $("#stepNav2, #stepNav3, #stepNav4").removeClass("btn-success") 6682 $("#stepNav2, #stepNav3, #stepNav4").find("a").attr("disabled", true) 6683 const step3 = $("#step-3") 6684 $("#cityNote").remove() 6685 $("#noteDeliveryDate").hide() 6686 $("#noteDeliveryDate").empty() 6687 let v = $(this).val() 6688 let v2 = $('option:selected', this).attr('data-city'); 6689 let v3 = $('option:selected', this).attr('data-province'); 6690 let price = $('option:selected', this).attr('data-price'); 6691 $("#country").val(v) 6692 $("#properties-kota-pengiriman").val(v) 6693 $("#properties-shipping").val(price) 6694 $("#deliveryDate button, #deliveryTime button, .calendarseasonal .button").removeClass("selected") 6695 $("#properties-delivery-date, #properties-delivery-time").val("-") 6696 $("#propDeliveryDate, #propDeliveryTime").val("") 6697 let note = $('option:selected', this).attr('data-note'); 6698 if(v === 'Kota Lainnya') { 6699 $("#noteDeliveryDate").show() 6700 $("#noteDeliveryDate").text("Order akan segera dikirim. Estimasi tanggal diterima akan disesuaikan dengan waktu pengiriman oleh pihak ekspedisi ke lokasi Anda.") 6701 $("#zip").attr("required", false) 6702 $("#zip").hide() 6703 $("#propDeliveryDate, #propDeliveryTime").attr("required", false) 6704 $("#propDeliveryDate, #properties-delivery-date, #propDeliveryTime, #properties-delivery-time").val("-") 6705 $("#row-delivery-date, #row-delivery-time").hide() 6706 $("#properties-shipping").val("") 6707 // $(this).parents(".setup-content").attr("id", "step-2") 6708 6709 } else { 6710 $("#noteDeliveryDate").hide() 6711 $("#zip").attr("required", true) 6712 $("#zip").show() 6713 $("#row-delivery-date, #row-delivery-time").show() 6714 $("#propDeliveryDate, #propDeliveryTime").attr("required", true) 6715 $("#deliveryDate").find("button").removeClass("stop") 6716 // $(this).parents(".setup-content").attr("id", "step-1") 6717 6718 } 6719 6720 6721 6722 // if(v !== 'Jakarta') { 6723 // $("[data-type=upsell]").hide() 6724 // } else { 6725 // $("[data-type=upsell]").show() 6726 // } 6727 // $('.collection-addons')[0].swiper.update(); 6728 6729 6730 getProvince(v) 6731 $("#zip").html(`<option value="">Choose Postal Code</option>`) 6732 renderZip(v, v2, v3) 6733 6734 disabledSameDay() 6735 6736 6737 if(v !== 'Jakarta' && v !== 'Depok' && v !== 'Bekasi' && v !== 'Tangerang') { 6738 6739 $("#cardOccasion, #navAddon, .collection-addons").hide() 6740 6741 $("[data-addon=giftcard]").show() 6742 $("[data-addon=giftcard]").click() 6743 $("#itemAddons").show() 6744 $("#flower-step").addClass("nonjadetabek") 6745 } else { 6746 $("#cardOccasion, #navAddon, .collection-addons").show() 6747 $("[data-addon=all]").click() 6748 $("#flower-step").removeClass("nonjadetabek") 6749 } 6750 6751 if(v !== '') { 6752 $("#personalizeBtn .btn").attr("disabled", false) 6753 } else { 6754 $("#personalizeBtn .btn").attr("disabled", true) 6755 } 6756 6757 }) 6758 6759 $("#zip").change(function(e){
6760 let v = $(this).val() 6761 var city = $("#cities").find('option:selected'); 6762 $("#properties-kodepos").val(v) 6763 if(city === 'Kota Lainnya') { 6764 $(this).attr("required", true) 6765 $("#recipient-address").val("") 6766 } 6767 }) 6768 6769 6770 var minDate = +7 6771 6772 6773 6774 $("#full-date").datepicker({ 6775 minDate, 6776 dateFormat: 'Mdd_yy', //Nop22_2021, 6777 6778 beforeShowDay: disabledays, 6779 6780 onSelect: function (date) { 6781 $("#deliveryDate, #deliveryDateFull label ").hide() 6782 $("#deliveryDateFull").addClass("filled") 6783 $(".btnChangeDeliveryDate").removeClass("hide") 6784 $("#full-date").prop('disabled', true); 6785 $('#propDeliveryDate, #properties-delivery-date').val('Kirim_'+date); 6786 $(".date-full").addClass("selected") 6787 $(".date-single, .calendar-group").removeClass("selected") 6788 $("#propDeliveryTime").val('') 6789 $("#properties-delivery-time").val('-') 6790 $(".time-single").removeClass("selected") 6791 6792 6793 } 6794 }); 6795 6796 $(".btnChangeDeliveryDate").click(function(){ 6797 $("#deliveryDate, #deliveryDateFull label ").show() 6798 $("#deliveryDateFull").removeClass("filled") 6799 $(".btnChangeDeliveryDate").addClass("hide") 6800 $("#full-date").prop('disabled', false); 6801 }) 6802 6803 $("#deliveryDate").delegate(".calendarbutton:not(.date-full)", "click", function(e){ 6804 e.preventDefault() 6805 $(this).parents("#row-delivery-date").find("p.error").remove() 6806 const fulldate = $(this).data("fulldate") 6807 const day = $(this).data("day") 6808 const date = $(this).data("date")
6809 const month = $(this).data("month") 6810 const year = $(this).data("year") 6811 const off_pagi = $(this).data("offpagi") 6812 const off_siang = $(this).data("offsiang") 6813 const off_Malam = $(this).data("offMalam") 6814 $(".calendarbutton").removeClass("selected") 6815 $(this).addClass("selected") 6816 $("#propDeliveryDate, #properties-delivery-date").val(`Kirim_${month}${date}_${year}`) 6817 $("#propDeliveryTime").val('') 6818 $("#properties-delivery-time").val('-') 6819 $(".calendarbutton2").removeClass("selected") 6820 $("#full-date").val("Full Calendar") 6821 6822 6823 if(off_pagi && timeOfDay > off_pagi) { 6824 $("[data-time=Morning]").attr("disabled", true) 6825 } else { 6826 $("[data-time=Morning]").attr("disabled", false) 6827 } 6828 if(off_siang && timeOfDay > off_siang) { 6829 $("[data-time=Afternoon]").attr("disabled", true) 6830 } else { 6831 $("[data-time=Afternoon]").attr("disabled", false) 6832 } 6833 6834 6835 6836 }) 6837 6838 if(today === 14 && timeOfDay > 17.00) { 6839 $("#deliveryDate button:first-child").attr("disabled", true) 6840 } 6841 6842 $("#deliveryTime").delegate(".calendarbutton2", "click", function(e){ 6843 e.preventDefault() 6844 const time = $(this).data("time") 6845 const date = $("#propDeliveryDate").val() 6846 if(date == '') { 6847 return alert('Silakan pilih tanggal terlebih dahulu') 6848 } 6849 $(".calendarbutton2").removeClass("selected") 6850 $(this).addClass("selected") 6851 $("#propDeliveryTime, #properties-delivery-time").val(`KirimJam_${date.replace('Kirim_','')}_${time}`) 6852 }) 6853 6854 $('textarea.has-limit, input.has-limit').keyup(function () { 6855 max = this.getAttribute("maxlength"); 6856 let len = $(this).val().length; 6857 let limit = $(this).siblings(".limit"); 6858 if (len > max) { 6859 alert('you have reached the limit'); 6860 } else { 6861 limit.text(`${len}/${max}`); 6862 } 6863 }); 6864 6865 $("#button-action-step .btn").click(function(){ 6866 $(this).find("span").text("Processing..."); 6867 }); 6868 6869 $(".finishBtn").on('click', function() { 6870 $(this).addClass("is-adding"); 6871 // $(this).click(); 6872 }); 6873 6874 $('.setup-panel .nav-item a.btn-success').trigger('click'); 6875 6876 $("#button-action .btn").click(function(){ 6877 $("#flower-step").addClass("block"); 6878 $("#button-action").hide(); 6879 }); 6880 6881 $(".close-how-order").click(function(){ 6882 $("#flower-step").removeClass("block"); 6883 $("#button-action").show(); 6884 }); 6885 6886 $("#input-foto, #input-video").change(function(e){ 6887 readURL(this); 6888 }); 6889 6890 $("#logoPapan").change(function(){ 6891 readURLPapan(this); 6892 }); 6893 6894 $("#address-upload").change(async function(){ 6895 const upload_address = await readURLAddress(this) 6896 if(upload_address) { 6897 const url = upload_address.url 6898 $(".props-address-upload").val(url) 6899 $(".form-address").addClass("address-uploaded") 6900 $(".form-address-upload").addClass("uploaded") 6901 6902 $(this).parents(".form-group").siblings(".form-group").find("[required]").attr("required", false) 6903 } 6904 }) 6905 6906 $(".address-manualy").click(function(){ 6907 $(".form-address-upload").removeClass("uploaded"); 6908 $(".photo-address").hide(); 6909 $(".form-address").removeClass("address-uploaded") 6910 $("#formAddressPurchase").find(".form-control").attr("required", true) 6911 }); 6912 6913 $(".case-video-preview").delegate(".replace-video", "click", function(){ 6914 $("#input-video").trigger("click") 6915 }) 6916 6917 $('.date-single').click(function(e) { 6918 e.preventDefault(); 6919 $('.date-single').removeClass('selected'); 6920 $('#full-date').removeClass('selected'); 6921 $(this).addClass('selected'); 6922 $('#full-date').html('Full' + '<br/>' + 'Calendar'); 6923 }); 6924 $('#full-date').click(function(e){ 6925 e.preventDefault(); 6926 $('.date-single').removeClass('selected'); 6927 $(this).addClass('selected'); 6928 }); 6929 6930 // $("tr").each(function(){ 6931 // if($(this).text().match('SKU')) { 6932 // $(".sku-product").html($(this).parents("table").html()) 6933 // } 6934 // }) 6935 6936 $("#product-image").scroll(function(){ 6937 $(".desc-add").each(function(){ 6938 const img = $(this).find("img") 6939 const src = img.data("src") 6940 img.attr("src", src) 6941 }) 6942 }) 6943 6944 $(".product-fixed").hide() 6945 6946 let target = $("#personalizeBtn") 6947 6948 6949 $(".product-meta").scroll(function() { 6950 if ($(window).scrollTop() >= target.offset().top ) { 6951 $(".product-fixed").addClass("show") 6952 } else { 6953 $(".product-fixed").removeClass("show") 6954 } 6955 }); 6956 6957 $(window).scroll(function() { 6958 if ($(window).scrollTop() >= target.offset().top ) { 6959 $(".product-fixed").addClass("show") 6960 } else { 6961 $(".product-fixed").removeClass("show") 6962 } 6963 }); 6964 }); 6965 </script>
6965 6966 6967
6967<script> 6968 // 6969 </script>
6969 6970 6971
6971<script> 6972 $(document).ready(function(){ 6973 $('table tr td').each(function(){ 6974 var texto = $(this).text(); 6975 var nextto = $(this).next("td"); 6976 var sku = $("#data-sku").val() 6977 if(texto == 'SKU'){ 6978 nextto.text(sku) 6979 } 6980 }); 6981 6982 $(".stamped-summary-actions-newquestion").text("Tulis Pertanyaan"); 6983 $(".stamped-summary-actions-newreview").text("Tulis Review"); 6984 $("#tab-questions").text("Pertanyaan"); 6985 6986 $(".freeship .icon").click(function(){ 6987 $(".fs-content").slideToggle(); 6988 $(this).parents(".freeship").toggleClass("expand"); 6989 }); 6990 6991 var $easyzoom = $('.easyzoom').easyZoom(); 6992 // Setup thumbnails example 6993 var api1 = $easyzoom.filter('.easyzoom--with-thumbnails').data('easyZoom'); 6994 $('.thumbnails').on('click', 'a', function(e) { 6995 var $this = $(this); 6996 e.preventDefault(); 6997 // Use EasyZoom's `swap` method 6998 api1.swap($this.data('standard'), $this.attr('href')); 6999 }); 7000 7001 $('#playerID').click(function(){ 7002 var videoURL = $('#VdoID').attr('src'), 7003 dataplay = $('#VdoID').attr('data-play'); 7004 7005 //for check autoplay 7006 //if not set autoplay=1 7007 if(dataplay == 0 ){ 7008 $('#VdoID').attr('src',videoURL+'?autoplay=1'); 7009 $('#VdoID').attr('data-play',1); 7010 } 7011 else{ 7012 var videoURL = $('#VdoID').attr('src'); 7013 videoURL = videoURL.replace("?autoplay=1", ""); 7014 $('#VdoID').prop('src',''); 7015 $('#VdoID').prop('src',videoURL); 7016 7017 $('#VdoID').attr('data-play',0); 7018 } 7019 7020 }); 7021 7022 $(".product-photo-thumb-video").click(function(e){ 7023 e.preventDefault(); 7024 7025 var newEmbed = $(this).attr('href'); 7026 $("#featured-image-product").addClass("img-video"); 7027 $("#ProductPhotoImg").hide(); 7028 $("#featured-image-product .video").show(); 7029 $("#featured-image-product iframe").attr('src', newEmbed); 7030 $("#VdoID")[0].src += "&autoplay=1"; 7031 }); 7032 $(".product-single__thumbnail").click(function(evt){ 7033 evt.preventDefault(); 7034 $("#featured-image-product").removeClass("img-video"); 7035 $("#ProductPhotoImg").show(); 7036 $("#featured-image-product .video").hide(); 7037 $("#featured-image-product iframe").attr('src', ''); 7038 }); 7039 7040 if($('#product-meta .short-desc > div').length >= 1){ 7041 //console.log('div detected') 7042 var replacer = $('#product-meta .short-desc > div').contents(); 7043 $('#product-meta .short-desc > div').replaceWith(replacer); 7044 7045 var cAssured = $('.c-assured').detach(); 7046 cAssured.insertAfter('.meta-sds .stock-info'); 7047 } 7048 7049 7050 7051 $(".heading-toggle").click(function(){ 7052 $(this).parent().toggleClass("open") 7053 7054 }); 7055 }); 7056 </script>
7056 7057 7058 7059
7059<script type="application/json" id="ProductJson-Product"> 7060 7061 {"id":8144957800663,"title":"OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eOMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu."} 7062 </script>
7062 7063 7064
7064<script type="application/json" id="VariantJson-Product"> 7065 [ 7066 7067 { 7068 "incoming": false, 7069 "next_incoming_date": null 7070 } 7071 7072 ] 7073 </script>
7073 7074 7075 7076 7077 7078 </div> 7079 7080 7081
7081<script src="//outerbloom.com/cdn/shopifycloud/storefront/assets/themes_support/option_selection-b017cd28.js" type="text/javascript"></script>
7081 7082 <style> 7083 .stamped-review-header-title, 7084 .stamped-review-header .author, 7085 .stamped-review-content-body, 7086 .stamped-sort-select, 7087 .stamped-review-header .verified-badge[data-type=buyer]:after, 7088 .stamped-review-header-byline, 7089 .stamped-review-reply-body {font-size: 14px!important;font-family: 'Barlow',sans-serif!important;} 7090 .stamped-review {margin-bottom: 0;} 7091 .stamped-review-body {padding-left: 65px;} 7092 .stamped-review:first-child {padding-top: 25px;} 7093 .stamped-review-content {clear: none;} 7094 .stamped-review-reply {margin: 15px 0 0 65px;background: #f2f2f2;border-left: none;} 7095 .stamped-review-reply-body {padding-left: 65px;} 7096 .stamped-review-header .author {text-transform: capitalize;} 7097 .stamped-questions .stamped-review-content {padding-left: 65px;} 7098 7099 .stamped-pagination {margin: 20px 0 0;} 7100 .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;} 7101 .stamped-pagination li a {color: #121212;padding: 13px 18px;vertical-align: middle;display: block;} 7102 .stamped-pagination li.active a {background-color: #ddd;font-weight: 400;} 7103 .stamped-pagination li:hover a {background: #ddd;} 7104 .stamped-pagination .next {border-right: 1px solid #ccc;} 7105 .stamped-pagination li:first-child {border-top-left-radius: 5px;border-bottom-left-radius: 5px;} 7106 .stamped-pagination li:last-child {border-top-right-radius: 5px;border-bottom-right-radius: 5px;} 7107 7108 #stamped-pagination-question span.page {display: inline-block;border: 1px solid #ccc;width: 47px;} 7109 #stamped-pagination-question span {font-size: 14px;} 7110 #stamped-pagination-question .page.active {padding: 12px;font-weight: 400;background: #ddd;} 7111 #stamped-pagination-question a, #stamped-pagination-question .page.active {color: #121212;padding: 13px 18px;vertical-align: middle;display: inline-block;} 7112 .stamped-pagination-deco {color: #121212;padding: 13px 18px;width: 47px;vertical-align: middle;display: inline-block;border: 1px solid #ccc;padding: 12px;} 7113 .stamped-pagination-prev, .stamped-pagination-next {position: inherit;} 7114 .stamped-pagination-prev a, .stamped-pagination-next a {width: auto!important;border: 1px solid #ccc;} 7115 7116 @media (max-width: 480px){ 7117 .stamped-review-reply {margin-left: 0!important;} 7118 select.stamped-sort-select {font-size: 13px!important;} 7119 } 7120 7121 #product-reviews .stamped-summary-ratings, #product-reviews .stamped-summary-actions, .stamped-content { 7122 display: block !important; 7123 } 7124 </style> 7125
7125<script> 7126 var selectCallback = function(variant, selector) { 7127 timber.productPage({ 7128 money_format: "Rp {{amount_no_decimals}}", 7129 variant: variant, 7130 selector: selector 7131 }); 7132 }; 7133 7134 jQuery(function($) { 7135 new Shopify.OptionSelectors('productSelect', { 7136 product: 7137 7138 7139 7140 7141 7142 7143 7144 {"id":8144957800663,"title":"OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eOMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu."}, 7145 onVariantSelected: selectCallback, 7146 enableHistoryState: true 7147 }); 7148 7149 // Add label if only one product option and it isn't 'Title'. Could be 'Size'. 7150 7151 7152 // Hide selectors if we only have 1 variant and its title contains 'Default'. 7153 7154 $('.selector-wrapper').hide(); 7155 7156 }); 7157 </script>
7157 7158 7159 7160 7161
7161<script type="application/ld+json"> 7162 { 7163 "@context": "http://schema.org", 7164 "@type": "Product", 7165 "offers": { 7166 "@type": "Offer", 7167 "availability":"https://schema.org/InStock", 7168 "price": 835000, 7169 "priceValidUntil": "05-10-2025", 7170 "priceCurrency": "IDR", 7171 "url": "https://www.cabosanfrancisco.ch/" 7172 }, 7173 "brand": { 7174 "@type": "Brand", 7175 "name": "Outerbloom Florist" 7176 }, 7177 "sku": "8144957800663", 7178 "gtin13": "Jawa", 7179 "name": "OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel", 7180 "description": "OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu.", 7181 "category": "OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu.", 7182 "url": "https://www.cabosanfrancisco.ch/", 7183 "image": { 7184 "@type": "ImageObject", 7185 "url": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426", 7186 "image": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426", 7187 "name": "OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel", 7188 "width": 1024, 7189 "height": 1024 7190 } 7191 } 7192 </script>
7192 7193 7194 7195 7196 7197 7198
7198<script id="bss-ltap-hide-price" type="text/javascript" > 7199 !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)}))}
7199)),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)}
7199)),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()}
7199if("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)}
7199if(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");
7199c&&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
7199-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");
7199i&&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
7199--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
7199opify.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");
7199e.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=
7199o.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");
7199if(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();
7199let 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()}]); 7200 </script>
7200 7201 7202 </main> 7203 7204 <div id="shopify-section-newsletter" class="shopify-section"><br> 7205 <style> 7206 #shopify-section-newsletter { 7207 background: url('https://www.cabosanfrancisco.ch/image/ompong188-qris.webp'); 7208 background-attachment: fixed; 7209 margin-bottom: 0; 7210 } 7211 input:-webkit-autofill, 7212 input:-webkit-autofill:hover, 7213 input:-webkit-autofill:active, 7214 input:-webkit-autofill:focus { 7215 -webkit-box-shadow:0 0 0 50px white inset; 7216 -webkit-text-fill-color: #ffffff; 7217 } 7218 .section-newsletter { 7219 max-width: 800px; 7220 margin: auto; 7221 padding: 50px 0; 7222 } 7223 .section-newsletter h2 { 7224 font-weight: 700; 7225 font-size: 24px; 7226 } 7227 .section-newsletter input[type="email"] { 7228 width: 100%; 7229 text-align: center; 7230 border: none; 7231 border-bottom: 1px solid #ffffff; 7232 font-size: 16px; 7233 color: #757575; 7234 background-color: #eeeeee; 7235 } 7236 .section-newsletter .row label { 7237 font-size: 14px; 7238 cursor: pointer; 7239 } 7240 .section-newsletter .radio-inline input { 7241 width: auto; 7242 } 7243 .section-newsletter .btn { 7244 width: 130px; 7245 border: 1px solid #ffffff; 7246 box-shadow: none; 7247 font-size: 16px; 7248 font-weight: 500; 7249 text-transform: uppercase; 7250 } 7251 .section-newsletter form { 7252 margin: 30px 0 60px; 7253 } 7254 .section-newsletter input[type="radio"] { 7255 position: absolute; 7256 width: 1px; 7257 height: 1px; 7258 } 7259 .section-newsletter [type="radio"]:checked + label, .section-newsletter [type="radio"]:not(:checked) + label { 7260 position: relative; 7261 padding-left: 28px; 7262 cursor: pointer; 7263 line-height: 20px; 7264 display: inline-block; 7265 color: #666; 7266 } 7267 .section-newsletter [type="radio"]:checked + label:before, .section-newsletter [type="radio"]:not(:checked) + label:before { 7268 content: ''; 7269 position: absolute; 7270 left: 0; 7271 top: 0; 7272 width: 18px; 7273 height: 18px; 7274 border: 1px solid #ddd; 7275 border-radius: 100%; 7276 background: #fff; 7277 } 7278 .section-newsletter [type="radio"]:checked + label:after, .section-newsletter [type="radio"]:not(:checked) + label:after { 7279 content: ''; 7280 width: 12px; 7281 height: 12px; 7282 background: #ffffff; 7283 position: absolute; 7284 top: 3px; 7285 left: 3px; 7286 border-radius: 100%; 7287 -webkit-transition: all 0.2s ease; 7288 transition: all 0.2s ease; 7289 } 7290 .section-newsletter [type="radio"]:not(:checked) + label:after { 7291 opacity: 0; 7292 -webkit-transform: scale(0); 7293 transform: scale(0); 7294 } 7295 .opt-newsletter {display:none;} 7296 .footer-newsletter p, .footer-newsletter p a { 7297 color: #757575; 7298 } 7299 @media (max-width:991px){ 7300 .section-newsletter h2 { 7301 font-size: 32px; 7302 } 7303 .section-newsletter input { 7304 width: 300px; 7305 font-size: 14px; 7306 } 7307 .section-newsletter { 7308 padding: 50px 20px; 7309 } 7310 } 7311 @media (max-width: 480px){ 7312 .section-newsletter input[type="email"] {font-size: 16px;} 7313 } 7314 </style> 7315 <style> 7316 .icon-img-footer { 7317 width: 80px; 7318 padding: 0px 5px; 7319 } 7320 @media (min-width: 768px) { 7321 .icon-img-footer { 7322 width: 120px; 7323 } 7324 } 7325 @media (min-width: 992px) { 7326 .icon-img-footer { 7327 width: 120px; 7328 } 7329 } 7330 7331 .button-login-daftar { 7332 display: grid; 7333 grid-template-columns: repeat(2, 1fr); 7334 font-weight: 700; 7335 } 7336 .button-login-daftar a { 7337 text-align: center; 7338 } 7339 .login, 7340 .register { 7341 color: #ffe100; 7342 padding: 15px 10px; 7343 font-size: 23px; 7344 } 7345 .login, 7346 .login-button { 7347 background: linear-gradient(to bottom,#000000 0,#000000 100%); 7348 border: 2px solid #ffe100; 7349 } 7350 .register, 7351 .register-button { 7352 background: linear-gradient(to bottom,#000000 0,#000000 100%); 7353 border: 2px solid #ffe100; 7354 } 7355 7356 7357 7358 </style> 7359 7360 <!-- wp:html --> 7361
7361<script> 7362 document.addEventListener('DOMContentLoaded', 7363 function(){const faqItems=document.querySelectorAll('.faq-item'); 7364 faqItems.forEach(item=>{const question=item.querySelector('.faq-question'); 7365 question.addEventListener('click', 7366 ()=>{const isActive=item.classList.contains('active'); 7367 faqItems.forEach(otherItem=>{otherItem.classList.remove('active')}); 7368 if(!isActive){item.classList.add('active')}})})}); 7369 </script>
7369 7370 7371 7372 <div class="page__overlay" data-view="offCanvasNavToggle" data-off-canvas="close" bis_skin_checked="1"> 7373 </div> 7374 <div class="faq-section"> 7375 <h2>FAQ TERBAIK OMPONG188</h2> 7376 <div class="faq-container"> 7377 <div class="faq-item"> 7378 <button class="faq-question">1. Apa itu OMPONG188?<span></span></button> 7379 <div class="faq-answer"><p>OMPONG188 merupakan situs hiburan game online kane yang menggabungkan pilihan permainan, akses lintas perangkat, login fleksibel, serta transaksi via QRIS dalam satu tampilan yang ringkas.</p></div> 7380 </div> 7381 <div class="faq-item"> 7382 <button class="faq-question">2. Apa maksud login super fleksibel di OMPONG188?<span></span></button> 7383 <div class="faq-answer"><p>Login super fleksibel menggambarkan alur masuk yang dibuat sederhana dan responsif. Pengguna dapat mengakses halaman melalui smartphone maupun desktop tanpa harus melewati navigasi yang terlalu panjang.<p></div> 7384 </div> 7385 <div class="faq-item"> 7386 <button class="faq-question">3. Bagaimana transaksi via QRIS di OMPONG188?<span></span></button> 7387 <div class="faq-answer"><p>QRIS memberikan alternatif transaksi digital melalui aplikasi pembayaran y
7387ang kompatibel. Pengguna tetap perlu memeriksa nominal, status transaksi, dan ketentuan yang ditampilkan sebelum mengonfirmasi pembayaran.</p></div> 7388 </div> 7389 <div class="faq-item"> 7390 <button class="faq-question">4. Game seperti apa yang tersedia di OMPONG188?<span></span></button> 7391 <div class="faq-answer"><p>OMPONG188 menghadirkan beragam permainan dengan tema, visual, fitur, serta mekanisme berbeda. Pengguna dapat menjelajahi katalog dan mengenali karakter setiap game untuk menemukan permainan sesuai preferensi.</p></div> 7392 </div> 7393 <div class="faq-item"> 7394 <button class="faq-question">5. Apakah OMPONG188 nyaman diakses melalui HP?<span></span></button> 7395 <div class="faq-answer"><p>Tampilan OMPONG188 dirancang responsif sehingga halaman login, menu transaksi, dan katalog permainan tetap mudah dijelajahi pada berbagai ukuran layar.</p></div> 7396 </div> 7397 7398 </div> 7399 7400 </div> 7401 7402 </div> 7403 7404 7405 <div class="overlay overlay-cart"></div> 7406 <div id="CartDrawer" class="drawer drawer--right"> 7407 <div class="drawer__header pl-2 pr-2"> 7408 <div class="drawer__icon-cart display-table-cell"> 7409 <a href="/cart" class=""> 7410 <svg class="icon icon-cart" version="1.1" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" 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.005-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> 7411 </a> 7412 </div> 7413 <div class="drawer__title h4">Keranjang Belanja</div> 7414 <div class="drawer__close js-drawer-close"> 7415 <button type="button"> 7416 <svg class="icon icon-close" version="1.1" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="32" height="32" viewBox="0 0 32 32"> 7417 <title>icon-close</title> 7418 <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> 7419 </svg> 7420 </button> 7421 </div> 7422 </div> 7423 <div id="CartContainer" class="p-2"></div> 7424 </div> 7425 7426
7426<script> 7427 7428 </script>
7428 7429
7429<script src="//outerbloom.com/cdn/shop/t/138/assets/handlebars.min.js?v=79044469952368397291752652415" defer></script>
7429 7430 <!-- /snippets/ajax-cart-template.liquid --> 7431 7432
7432<script id="CartTemplate" type="text/template"> 7433 7434 <form action="/cart" method="post" novalidate class="cart ajaxcart"> 7435 <div class="ajaxcart__inner" {{ cart.item_count }}> 7436 {{#items}} 7437 <div class="ajaxcart__product"> 7438 <div class="ajaxcart__row" data-line="{{line}}"> 7439 <div class="grid"> 7440 <div class="grid__item one-quarter"> 7441 <a href="{{url}}" class="ajaxcart__product-image"><img src="{{img}}" alt=""></a> 7442 </div> 7443 <div class="grid__item three-quarters"> 7444 <p class="d-block mb-3"> 7445 <a class="h4 d-block mb-2" href="{{url}}" class="ajaxcart__product-name">{{name}}</a> 7446 {{#if variation}} 7447 <span class="ajaxcart__product-meta p">{{variation}}</span> 7448 {{/if}} 7449 {{#properties}} 7450 {{#each this}} 7451 {{#if this}} 7452 <span class="ajaxcart__product-meta p hide">{{@key}}: {{this}}</span> 7453 {{/if}} 7454 {{/each}} 7455 {{/properties}} 7456 7457 </p> 7458 <div class="grid--full display-table"> 7459 <div class="grid__item display-table-cell one-half"> 7460 <div class="ajaxcart__qty"> 7461 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}" data-line="{{line}}"> 7462 <svg version="1.1" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" 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> 7463 <span class="visually-hidden">Kurangi jumlah barang</span> 7464 </button> 7465 <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]*"> 7466 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-line="{{line}}" data-qty="{{itemAdd}}"> 7467 <svg version="1.1" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" 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> 7468 <span class="visually-hidden">Tambahkan jumlah barang</span> 7469 </button> 7470 </div> 7471 </div> 7472 <div class="grid__item display-table-cell one-half text-right"> 7473 {{#if discountsApplied}} 7474 <small class="ajaxcart-item__price-strikethrough"><s>{{{originalLinePrice}}}</s></small> 7475 <br><span class="h4">{{{linePrice}}}</span> 7476 {{else}} 7477 <span class="h4">{{{linePrice}}}</span> 7478 {{/if}} 7479 </div> 7480 </div> 7481 {{#if discountsApplied}} 7482 <div class="grid--full display-table"> 7483 <div class="grid__item text-right"> 7484 {{#each discounts}} 7485 <small class="ajaxcart-item__discount">{{ this.title }}</small><br> 7486 {{/each}} 7487 </div> 7488 </div> 7489 {{/if}} 7490 </div> 7491 </div> 7492 </div> 7493 </div> 7494 </div> 7495 </div> 7496 {{/items}} 7497 </div> 7498 <div class="ajaxcart__footer"> 7499 <div class="grid--full cart-subtotal py-2"> 7500 <p>Subtotal</p> 7501 <h3 class="primary">{{{totalPrice}}}</h3> 7502 {{#if totalCartDiscount}} 7503 <p class="ajaxcart__savings text-center"><em>{{{totalCartDiscount}}}</em></p> 7504 {{/if}} 7505 </div> 7506 7507 <a href="/cart" class="btn btn-cta view-more btn-block cart__checkout mt-2">Checkout</a> 7508 7509 <p class="cart-checkout-shipping hide">Free Ongkir dengan belanja di atas Rp.10.000 <a href="/pages/pengiriman">detail</a></p> 7510 </div> 7511 </form> 7512 7513 </script>
7513 7514
7514<script id="AjaxQty" type="text/template"> 7515 7516 <div class="ajaxcart__qty"> 7517 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}"> 7518 <svg version="1.1" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="24" height="24" viewBox="0 0 32 32"> 7519 <title>icon-minus</title> 7520 <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> 7521 </svg> 7522 <span class="visually-hidden">Kurangi jumlah barang</span> 7523 </button> 7524 <input type="text" class="ajaxcart__qty-num" value="{{itemQty}}" min="0" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*"> 7525 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-qty="{{itemAdd}}"> 7526 <svg version="1.1" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" 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> 7527 <span class="visually-hidden">Tambahkan jumlah barang</span> 7528 </button> 7529 </div> 7530 7531 </script>
7531 7532
7532<script id="JsQty" type="text/template"> 7533 7534 <div class="js-qty mx-auto mt-2"> 7535 <button type="button" class="js-qty__adjust js-qty__adjust--minus" data-id="{{key}}" data-qty="{{itemMinus}}"> 7536 <svg version="1.1" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" 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> 7537 <span class="visually-hidden">Kurangi jumlah barang</span> 7538 </button> 7539 <input type="text" class="js-qty__num" value="{{itemQty}}" min="1" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*" name="{{inputName}}" id="{{inputId}}"> 7540 <button type="button" class="js-qty__adjust js-qty__adjust--plus" data-id="{{key}}" data-qty="{{itemAdd}}"> 7541 <svg version="1.1" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" 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> 7542 <span class="visually-hidden">Tambahkan jumlah barang</span> 7543 </button> 7544 </div> 7545 7546 </script>
7546 7547 7548 <style> 7549 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty button, 7550 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty button, 7551 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty button {display: none;} 7552 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input, 7553 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input, 7554 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;opacity: 0.5;} 7555 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input, 7556 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input, 7557 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;} 7558 </style> 7559
7559<script src="//outerbloom.com/cdn/shop/t/138/assets/ajax-cart.js?v=51128912329657147331752652452" defer></script>
7559 7560
7560<script> 7561 jQuery(function($) { 7562 ajaxCart.init({ 7563 formSelector: '#AddToCartForm', 7564 cartContainer: '#CartContainer', 7565 addToCartSelector: '#AddToCartXX', 7566 cartCountSelector: '#CartCount, #CartCount2', 7567 cartCostSelector: '#CartCost', 7568 moneyFormat: "Rp {{amount_no_decimals}}" 7569 }); 7570 }); 7571 7572 jQuery(document.body).on('afterCartLoad.ajaxCart', function(evt, cart) { 7573 // Bind to 'afterCartLoad.ajaxCart' to run any javascript after the cart has loaded in the DOM 7574 timber.RightDrawer.open(); 7575 }); 7576 </script>
7576 7577 7578 7579 7580 7581 <style> 7582 /** Search AutoComplete **/ 7583 .resultsearch .ui-menu-item[data-cat="Collection"], 7584 .resultsearch .ui-menu-item[data-cat="Collection"] {display: none;} 7585 .resultsearch .ui-widget.ui-widget-content { 7586 width: 100%; 7587 top: 48px; 7588 border: none; 7589 box-shadow: 0 4px 8px rgba(255, 255, 255, 0.3); 7590 } 7591 .resultsearch .ui-menu-item {text-align: left;} 7592 .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;} 7593 .ui-state-active { 7594 border: none!important; 7595 background-color: #fafafa!important; 7596 color: #000!important; 7597 } 7598 .ui-menu-item a[data-cat="Collection"] {padding: 5px 12px;} 7599 .ui-menu .ui-menu-item {line-height: normal;} 7600 </style> 7601
7601<script> 7602 $(window).load(function(){ 7603 7604 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;} 7605 7606 $.widget("custom.catcomplete", $.ui.autocomplete, { 7607 _renderMenu: function (ul, items) { 7608 // have search reults split up in categories 7609 var that = this, 7610 currentCategory = ""; 7611 $.each(items, function (index, item) { 7612 if (item.category != currentCategory) { 7613 ul.append("<li class='ui-autocomplete-category' data-cat=" + item.category + ">" + "<span>" + item.category + "</span>" + "</li>"); 7614 currentCategory = item.category; 7615 } 7616 that._renderItemData(ul, item); 7617 }); 7618 } 7619 }); 7620 7621 // higlight searched for term 7622 $.ui.autocomplete.prototype._renderItem = function( ul, item ) { 7623 var term = this.element.val(), 7624 html = item.label.replace( term, "<b>$&</b>" ); 7625 return $( "<li>" ) 7626 .append(format(item)) 7627 .appendTo( ul ); 7628 }; 7629 7630 7631 var data = [ 7632 { 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
7632weetbox 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: " " }
7632,{ 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: " " }
7632,{ 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: " " }
7632,{ 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
7632dal", 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-
7632hampers", 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
7632o-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: " " }
7632,{ 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: " " }
7632,{ 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: " " }
7632,{ 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: " " }
7632,{ 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: " " }
7632,{ 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: " " }
7632,{ 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: " " }
7632,{ 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: "OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu.", category: "Collection", url: "/collections/standing-flower", images: " ", price: " " },{ label: "OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu. Bali", category: "Collection", url: "/collections/standing-flower-bali", images: " ", price: " " },{ label: "OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu. Bandung", category: "Collection", url: "/collections/standing-flower-bandung", images: " ", price: " " },{ label: "OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu. C
7632ongratulations", category: "Collection", url: "/collections/standing-flower-congratulations", images: " ", price: " " },{ label: "OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu. Demak", category: "Collection", url: "/collections/standing-flower-demak", images: " ", price: " " },{ label: "OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu. Jepara", category: "Collection", url: "/collections/standing-flower-jepara", images: " ", price: " " },{ label: "OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu. Semarang", category: "Collection", url: "/collections/standing-flower-semarang", images: " ", price: " " },{ label: "OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu. Sidoarjo", category: "Collection", url: "/collections/standing-flower-sidoarjo", images: " ", price: " " },{ label: "OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu. Surabaya", category: "Collection", url: "/collections/standing-flower-surabaya", images: " ", price: " " },{ label: "OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu. 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: " " }
7632,{ 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: " " }
7632,{ 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
7632dal", 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: " " }, 7633 { 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" }
7633,{ 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" }
7633,{ 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" } 7634 ]; 7635 7636 7637 $( ".header-input-search" ).catcomplete({ 7638 appendTo: ".searchResult",source: function(request, response) { 7639 var results = $.ui.autocomplete.filter(data, request.term); 7640 var predicate = function () { 7641 var counter = { Collection: 0, Produk: 0 }; 7642 var fn = function(item) {counter[item.category] += 1;return (counter[item.category] <= 5);} 7643 return fn 7644 }(); 7645 response(results.filter(predicate)); 7646 }, 7647 minLength:1, 7648 //results are clickable 7649 select: function( event, ui ) {window.location = ui.item.url;} 7650 }); 7651 $( ".header-input-search2" ).catcomplete({ 7652 appendTo: ".searchResult2", 7653 source: function(request, response) { 7654 var results = $.ui.autocomplete.filter(data, request.term); 7655 var predicate = function () { 7656 var counter = { Collection: 0, Produk: 0 }; 7657 var fn = function(item) { 7658 counter[item.category] += 1; 7659 return (counter[item.category] <= 5); 7660 } 7661 return fn 7662 }(); 7663 response(results.filter(predicate)); 7664 }, 7665 minLength:1, 7666 //results are clickable 7667 select: function( event, ui ) { 7668 window.location = ui.item.url; 7669 } 7670 }); 7671 }); 7672 </script>
7672 7673 7674
7674<script src="//outerbloom.com/cdn/shop/t/138/assets/vendors.js?v=6349622868601634021752652419" defer></script>
7674 7675
7675<script src="//outerbloom.com/cdn/shop/t/138/assets/app.js?v=136050180318808583701752652452" defer></script>
7675 7676 7677
7677<script> 7678 ( function() { 7679 var youtube = document.querySelectorAll( ".youtube" ); 7680 for (var i = 0; i < youtube.length; i++) { 7681 var source = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault_1x.jpg"; 7682 var datasource = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault.jpg"; 7683 var image = new Image(); 7684 image.src = source; 7685 image.setAttribute("data-src", datasource); 7686 image.classList.add("swiper-lazy"); 7687 image.addEventListener( "load", function() { 7688 youtube[ i ].appendChild( image ); 7689 }( i ) ); 7690 youtube[i].addEventListener( "click", function() { 7691 var iframe = document.createElement( "iframe" ); 7692 iframe.setAttribute( "width", "480" ); 7693 iframe.setAttribute( "height", "480" ); 7694 iframe.setAttribute( "frameborder", "0" ); 7695 iframe.setAttribute( "allowfullscreen", "" ); 7696 iframe.setAttribute( "src", "https://www.youtube.com/embed/"+ this.dataset.embed +"?rel=0&showinfo=0&autoplay=1" ); 7697 this.innerHTML = ""; 7698 this.appendChild( iframe ); 7699 } ); 7700 }; 7701 7702 } )(); 7703 7704 /* Lazy Load */ 7705 const mainLazyLoad = new LazyLoad({threshold:400}); 7706 $(document).ready(function(){ 7707 7708 $("selectxxx").addClass("needsclick"); 7709 FastClick.attach(document.body); 7710 7711 var $customSelects = $('.select-search'); 7712 $customSelects.select2({ 7713 templateResult: function(result, container) { 7714 if (!result.id) { 7715 return result.text; 7716 } 7717 container.className += ' needsclick'; 7718 return result.text; 7719 } 7720 }); 7721 $customSelects.each(function(index, el){$(el).data('select2').$container.find('*').addClass('needsclick');}); 7722 $(document).on('select2:open', () => { 7723 document.querySelector('.select2-search__field').focus(); 7724 }); 7725 7726 7727 $(".overlay").click(function(){ 7728 $(".js-drawer-close").click(); 7729 }); 7730 $(".site-nav--mobile .js-drawer-open-left, #NavDrawer .icon-close, .overlay-nav").click(function(){ 7731 $("html").toggleClass("nav_open"); 7732 }); 7733 7734 $('.swatch-element label').on('click', function(){ 7735 var srcImg = $(this).data('src'); 7736 $('#thumb-image-product .product-single__thumbnail').each(function(){ 7737 if ($(this).attr("href") == srcImg) { 7738 $(this).trigger('click'); 7739 } 7740 }); 7741 }); 7742 var defaultValue = $(".swatch input:checked").val() 7743 7744 $('#purchaseProduct .swatch [type=radio]').change(function() { 7745 var optionIndex = $(this).closest('.swatch').attr('data-option-index'); 7746 var optionValue = $(this).val(); 7747 console.log(optionIndex, optionValue) 7748 var value = parseInt(optionValue.split(' ')[0]) 7749 $(this) 7750 .closest('#purchaseProduct') 7751 .find('.single-option-selector') 7752 .eq(optionIndex) 7753 .val(optionValue) 7754 .trigger('change'); 7755 7756 }); 7757 7758 }); 7759 $(document).ready(function(){ 7760 $(".nav-search a").click(function(e){ 7761 e.preventDefault(); 7762 $(".icon-navsearch").toggle(); 7763 $(".icon-navclose").toggle(); 7764 $(".site-nav__item > .site-nav__link").toggle(); 7765 $(".open-search").toggle(); 7766 $(".open-search input").focus(); 7767 }); 7768 $(".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'>"); 7769 if ($(window).width() < 768) { 7770 $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_75x.png?v=82732945490105366961752652419' alt='Icon Valentine'>"); 7771 $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_45x.png?v=101884295148001743851752652418' alt='Icon CNY'>"); 7772 $(".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'>"); 7773 } else { 7774 $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_60x.png?v=82732945490105366961752652419' alt='Icon Valentine'>"); 7775 $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_60x.png?v=101884295148001743851752652418' alt='Icon CNY'>"); 7776 $(".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'>"); 7777 } 7778 $(".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'>"); 7779 $(".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'>"); 7780 }); 7781 </script>
7781 7782 7783 7784 7785 7786
7786<script type="text/javascript"> 7787 var wishlistpage = 0; 7788 7789 var quickShop_money_format="<span class='money'>"+"Rp {{amount_no_decimals}}"+"</span>"; 7790 </script>
7790 7791 7792 <!-- Remove duplicate wishlist.js reference --> 7793 <style> 7794 .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)}} 7795 </style> 7796 7797 <div class="modal fade" id="modalwishlist0" tabindex="-1" role="dialog"> 7798 <div class="modal-dialog" role="document"> 7799 <div class="modal-content"> 7800 <div class="modal-body">Your Wishlist is empty!</div> 7801 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> 7802 </div> 7803 </div> 7804 </div> 7805 7806 <div class="wishlist-model"> 7807 <div class="modal fade" id="modalwishlist1" tabindex="-1" role="dialog" aria-hidden="true"> 7808 <div class="modal-dialog white-modal"> 7809 <div class="modal-content"> 7810 <div class="modal-header"> 7811 <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 7812 <svg class="icon icon-close" version="1.1" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="32" height="32" viewBox="0 0 32 32"> 7813 <title>icon-close</title> 7814 <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> 7815 </svg> 7816 </button> 7817 </div> 7818 <div class="modal-body"> 7819 <div class="wishlist-left"> 7820 <div class="wishlist-note">
7821 <span class="cirle"><svg version="1.1" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="32" height="32" viewBox="0 0 32 32"> 7822 <title>icon-check</title> 7823 <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> 7824 </svg></span> 7825 Product added to <a href="/pages/wish-list">Wishlist</a> 7826 </div> 7827 <div class="wishlist-product"> 7828 <div class="product-left"> 7829 <div class="wishlist-image"></div> 7830 </div> 7831 <div class="product-right"> 7832 <div class="wishlist-name"></div> 7833 <div class="wishlist-price"></div> 7834 </div> 7835 </div> 7836 </div> 7837 <div class="wishlist-right"> 7838 <div class="wishlist-cart"> 7839 <form action="/cart/add" method="post" class="variants-form variants" id="AddToCartForm" enctype="multipart/form-data"> 7840 <div class="others-bottom"> 7841 <a class="btn btn-quick-shop" href="/pages/wish-list">View Wishlist</a> 7842 <button type="submit" name="add" id="AddToCart" class="btn btn-cta"> 7843 <span id="AddToCartText" class="">Beli Sekarang</span> 7844 </button> 7845 </div> 7846 <div id="wishlist-variants-container" class="variants-wrapper"></div> 7847 <div class="quantity-content"> 7848 <label>QTY</label> 7849 <input type="number" size="5" class="" name="quantity" value="1" /> 7850 </div> 7851 </form> 7852 </div> 7853 </div> 7854 </div> 7855 </div> 7856 </div> 7857 </div> 7858 </div> 7859 7860 7861 <style> 7862 .stamped-badge[data-rating="0.0"]{display: none !Important;} 7863 7864 div[data-load-type="continue"] ul.stamped-pagination li.next a, div[data-widget-load-type="continue"] ul.stamped-pagination li.next a { 7865 border-radius: 0px; 7866 } 7867 .stamped-review-body { 7868 padding-left: 0px !important; 7869 } 7870 #product-reviews .stamped-header:after { 7871 display:none !Important; 7872 } 7873 #stamped-main-widget .stamped-container, .stamped-badge-caption,#stamped-reviews-widget { 7874 font-family:inherit !important; 7875 } 7876 </style> 7877 7878 7879 7880 <div id='stamped-rewards-init' class='stamped-rewards-init' 7881 data-key-public='' 7882 7883 ></div> 7884 7885
7885<script src="//outerbloom.com/cdn/shop/t/138/assets/variant-sku-handler.js?v=91239063692820757781752652418" defer></script>
7885 7886 <!-- Remove duplicate jQuery reference and load wishlist script properly --> 7887
7887<script src="//outerbloom.com/cdn/shop/t/138/assets/wishlist-fixed.js?v=35991423018869066281754360012" defer></script>
7887 7888 7889
7889<script> 7890 function myInit(){ StampedFn.init({ apiKey: 'pubkey-hCS8DHE9QbBHhHN89WXFkuJ0Y3422D', sId: '23462' }); } 7891 </script>
7891 7892
7892<script async onload="myInit()" type="text/javascript" src="https://cdn1.stamped.io/files/widget.min.js"></script>
7892<style> 7893 .jss59 { 7894 background-color: rgba(0, 0, 0, 0.6); 7895 } 7896 .MuiBackdrop-root { 7897 top: 0; 7898 left: 0; 7899 right: 0; 7900 bottom: 0; 7901 display: flex; 7902 z-index: -1; 7903 position: fixed; 7904 align-items: center; 7905 justify-content: center; 7906 background-color: rgba(0, 0, 0, 0.5); 7907 -webkit-tap-highlight-color: transparent; 7908 } 7909 .MuiDialog-scrollPaper { 7910 display: flex; 7911 align-items: center; 7912 justify-content: center; 7913 } 7914 .MuiDialog-container { 7915 height: 100%; 7916 outline: 0; 7917 } 7918 .MuiPaper-elevation24 { 7919 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); 7920 } 7921 .MuiDialog-paper { 7922 margin: 32px; 7923 position: relative; 7924 overflow-y: auto; 7925 } 7926 .MuiDialog-paperScrollPaper { 7927 display: flex; 7928 max-height: calc(100% - 64px); 7929 flex-direction: column; 7930 } 7931 .MuiDialog-paperWidthSm { 7932 max-width: 600px; 7933 } 7934 #location-lock-dialog { 7935 top: 20%; 7936 left: 0; 7937 right: 0; 7938 width: 30%; 7939 margin: 0px auto; 7940 display: block; 7941 padding: 30px; 7942 z-index: 99999; 7943 position: fixed; 7944 font-size: 14px; 7945 background: rgb(0, 0, 0); 7946 box-shadow: rgba(11, 11, 12, 0.2) 2px 4px 5px 0px; 7947 text-align: center; 7948 font-family: Roboto, Arial, sans-serif; 7949 line-height: 1; 7950 border-radius: 8px; 7951 -webkit-font-smoothing: subpixel-antialiased; 7952 } 7953 .MuiButtonBase-root { 7954 color: inherit; 7955 border: 0; 7956 cursor: pointer; 7957 margin: 0; 7958 display: inline-flex; 7959 outline: 0; 7960 padding: 0; 7961 position: relative; 7962 align-items: center; 7963 user-select: none; 7964 border-radius: 0; 7965 vertical-align: middle; 7966 -moz-appearance: none; 7967 justify-content: center; 7968 text-decoration: none; 7969 background-color: transparent; 7970 -webkit-appearance: none; 7971 -webkit-tap-highlight-color: transparent; 7972 } 7973 .MuiIconButton-root { 7974 flex: 0 0 auto; 7975 color: rgba(0, 0, 0, 0.54); 7976 padding: 12px; 7977 overflow: visible; 7978 font-size: 1.5rem; 7979 text-align: center; 7980 transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 7981 border-radius: 50%; 7982 } 7983 .MuiIconButton-label { 7984 width: 100%; 7985 display: flex; 7986 align-items: inherit; 7987 justify-content: inherit; 7988 } 7989 .MuiSvgIcon-root { 7990 fill: currentColor; 7991 width: 1em; 7992 height: 1em; 7993 display: inline-block; 7994 font-size: 1.5rem; 7995 transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 7996 flex-shrink: 0; 7997 user-select: none; 7998 } 7999 .MuiTouchRipple-root { 8000 top: 0; 8001 left: 0; 8002 right: 0; 8003 bottom: 0; 8004 z-index: 0; 8005 overflow: hidden; 8006 position: absolute; 8007 border-radius: inherit; 8008 pointer-events: none; 8009 } 8010 .jss36 { 8011 color: #222222; 8012 font-size: 24px; 8013 font-family: Roboto, Arial, sans-serif; 8014 font-weight: 500; 8015 } 8016 .jss37 { 8017 color: #555555; 8018 padding: 10px 0px 0px; 8019 font-size: 14px; 8020 } 8021 .MuiFormGroup-root { 8022 display: flex; 8023 flex-wrap: wrap; 8024 flex-direction: column; 8025 } 8026 .MuiFormGroup-row { 8027 flex-direction: row; 8028 } 8029 .jss63 { 8030 width: 85%; 8031 margin: 15px auto; 8032 display: flex; 8033 padding: 11px 0px 0px; 8034 justify-content: space-evenly; 8035 } 8036 .MuiFormControlLabel-root { 8037 cursor: pointer; 8038 display: inline-flex; 8039 align-items: center; 8040 margin-left: -11px; 8041 margin-right: 16px; 8042 vertical-align: middle; 8043 -webkit-tap-highlight-color: transparent; 8044 } 8045 .jss70 { 8046 margin: 0; 8047 } 8048 .MuiButtonBase-root { 8049 color: inherit; 8050 border: 0; 8051 cursor: pointer; 8052 margin: 0; 8053 display: inline-flex; 8054 outline: 0; 8055 padding: 0; 8056 position: relative; 8057 align-items: center; 8058 user-select: none; 8059 border-radius: 0; 8060 vertical-align: middle; 8061 -moz-appearance: none; 8062 justify-content: center; 8063 text-decoration: none; 8064 background-color: transparent; 8065 -webkit-appearance: none; 8066 -webkit-tap-highlight-color: transparent; 8067 } 8068 .MuiIconButton-root { 8069 flex: 0 0 auto; 8070 color: rgba(0, 0, 0, 0.54); 8071 padding: 12px; 8072 overflow: visible; 8073 font-size: 1.5rem; 8074 text-align: center; 8075 transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 8076 border-radius: 50%; 8077 } 8078 .MuiIconButton-colorSecondary { 8079 color: #f50057; 8080 } 8081 .jss71 { 8082 padding: 9px; 8083 } 8084 .MuiRadio-root { 8085 color: rgba(0, 0, 0, 0.54); 8086 } 8087 .jss64 { 8088 padding: 2px; 8089 } 8090 .MuiRadio-colorSecondary.Mui-checked { 8091 color: #f50057; 8092 } 8093 .MuiIconButton-label { 8094 width: 100%; 8095 display: flex; 8096 align-items: inherit; 8097 justify-content: inherit; 8098 } 8099 .MuiTypography-root { 8100 margin: 0; 8101 } 8102 .MuiTypography-body1 { 8103 font-size: 18px; 8104 font-family: Roboto,sans-serif; 8105 font-weight: 400; 8106 line-height: 1.5; 8107 } 8108 .location-popup_area-block__sp9Ws { 8109 display: -moz-box; 8110 display: flex; 8111 -moz-box-orient: vertical; 8112 -moz-box-direction: normal; 8113 flex-direction: column; 8114 -moz-box-pack: center; 8115 justify-content: center; 8116 position: relative; 8117 margin: 10px 10% 0;
8118 } 8119 .location-popup_pin-search-box__3l5mJ { 8120 width: 100%; 8121 display: -moz-box; 8122 display: flex; 8123 -moz-box-align: center; 8124 align-items: center; 8125 } 8126 .location-popup_place-icon-city__1XAX5, .location-popup_place-icon__jSG0Q { 8127 position: absolute; 8128 z-index: 999; 8129 } 8130 .location-popup_place-icon__jSG0Q { 8131 color: #ffffff; 8132 padding-left: 8px; 8133 } 8134 .location-popup_place-icon__jSG0Q svg { 8135 width: 18px; 8136 height: 18px; 8137 } 8138 .location-popup_cancel-icon__FHujU { 8139 color: #fff; 8140 right: 10px; 8141 width: 16px; 8142 cursor: pointer; 8143 height: 16px; 8144 display: none; 8145 padding: 5px; 8146 position: absolute; 8147 background: #999; 8148 text-align: center; 8149 border-radius: 50%; 8150 } 8151 .location-popup_pin-search-box__3l5mJ>div>select { 8152 /* -webkit-box-shadow: 0 0 10px #ffffff; 8153 box-shadow: 0 0 10px #ffffff; */ 8154 text-transform: capitalize; 8155 border: 1px solid #ffffff; 8156 color: #ffffff; 8157 width: 100%; 8158 margin: 0; 8159 display: -moz-box; 8160 display: flex; 8161 padding: 0 30px; 8162 -webkit-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8163 -moz-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8164 animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8165 font-size: 16px; 8166 border-radius: 4px; 8167 height: 44px; 8168 moz-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite; 8169 webkit-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite; 8170 } 8171 .MuiButtonBase-root { 8172 color: inherit; 8173 border: 0; 8174 cursor: pointer; 8175 margin: 0; 8176 display: inline-flex; 8177 outline: 0; 8178 padding: 0; 8179 position: relative; 8180 align-items: center; 8181 user-select: none; 8182 border-radius: 0; 8183 vertical-align: middle; 8184 -moz-appearance: none; 8185 justify-content: center; 8186 text-decoration: none; 8187 background-color: transparent; 8188 -webkit-appearance: none; 8189 -webkit-tap-highlight-color: transparent; 8190 } 8191 .MuiButton-root { 8192 color: rgba(0, 0, 0, 0.87); 8193 padding: 6px 16px; 8194 font-size: 0.875rem; 8195 min-width: 64px; 8196 box-sizing: border-box; 8197 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; 8198 font-family: Roboto,sans-serif; 8199 font-weight: 500; 8200 line-height: 1.75; 8201 border-radius: 4px; 8202 text-transform: uppercase; 8203 } 8204 .MuiButton-contained { 8205 color: rgba(0, 0, 0, 0.87); 8206 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); 8207 background-color: #e0e0e0; 8208 } 8209 .MuiButtonBase-root.Mui-disabled { 8210 cursor: default; 8211 pointer-events: none; 8212 } 8213 .MuiButton-label { 8214 width: 100%; 8215 display: inherit; 8216 align-items: inherit; 8217 justify-content: inherit; 8218 } 8219 .cartButton_login_content__2j1f7 { 8220 display: -moz-box; 8221 display: flex; 8222 text-align: center; 8223 z-index: 9; 8224 font-size: 18px; 8225 font-weight: 500; 8226 color: #fff; 8227 } 8228 8229 .jss35 { 8230 top: 5px; 8231 right: 5px; 8232 padding: 4px; 8233 position: absolute; 8234 border-radius: 50%; 8235 } 8236 .jss67 { 8237 cursor: pointer; 8238 font-size: 15px; 8239 line-height: 1.3; 8240 padding-left: 5px; 8241 } 8242 .jss69 { 8243 color: #222222; 8244 } 8245 .jss80 { 8246 color: #fff; 8247 width: 100%; 8248 height: 52px; 8249 padding: 11px 16px; 8250 font-size: 18px; 8251 min-width: 88px; 8252 min-height: 36px; 8253 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; 8254 font-weight: 500; 8255 line-weight: 1em; 8256 border-radius: 4px; 8257 text-transform: uppercase; 8258 background-color: #ff6600; 8259 } 8260 @media (min-width: 991px){ 8261 .cartButton_login_content__2j1f7 { 8262 font-weight: 500; 8263 } 8264 } 8265 8266 @media (max-width: 992px) { 8267 #location-lock-dialog { 8268 width: 100%; 8269 top: auto; 8270 bottom: 0; 8271 padding-left: 0; 8272 padding-right: 0; 8273 } 8274 .MuiFormGroup-row { 8275 display: block 8276 } 8277 .MuiIconButton-label input { 8278 margin: 0; 8279 } 8280 } 8281 </style> 8282 <div role="presentation" class="MuiDialog-root jss34" style="display: none;position: fixed; z-index: 9999; inset: 0px;"> 8283 <div class="MuiBackdrop-root" aria-hidden="true" style="opacity: 1; transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"></div> 8284 <div tabindex="0" data-test="sentinelStart"></div> 8285 <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;"> 8286 <div class="MuiPaper-root MuiDialog-paper MuiDialog-paperScrollPaper MuiDialog-paperWidthSm MuiPaper-elevation24 MuiPaper-rounded" role="dialog"> 8287 <div class="jss31 undefined" id="location-lock-dialog"> 8288 <button id="close-popup-delivery" class="MuiButtonBase-root MuiIconButton-root jss35" tabindex="0" type="button" aria-label="close">
8289 <span class="MuiIconButton-label"> 8290 <svg class="MuiSvgIcon-root" focusable="false" viewBox="0 0 24 24" aria-hidden="true"> 8291 <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> 8292 </svg> 8293 </span> 8294 <span class="MuiTouchRipple-root"></span> 8295 </button> 8296 <div> 8297 <div class="jss36">Select Delivery Location</div> 8298 <div class="jss37">Select a delivery location to see product availability</div> 8299 </div> 8300 <div class="MuiFormGroup-root jss63 MuiFormGroup-row" role="radiogroup"> 8301 <label for="jabodetabek" class="MuiFormControlLabel-root jss45"> 8302 <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 jss47 Mui-checked MuiIconButton-colorSecondary" aria-disabled="false"> 8303 <span class="MuiIconButton-label"> 8304 <input id="jabodetabek" class="jss49" type="radio" value="Jabodetabek" checked="" name="location"> 8305 <span class="jss41"></span> 8306 </span> 8307 <span class="MuiTouchRipple-root"></span> 8308 </span> 8309 <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1"> 8310 <span class="jss67 jss69">Jabodetabek</span> 8311 </span> 8312 </label> 8313 <label for="non-jabodetabek" class="MuiFormControlLabel-root jss45"> 8314 <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 MuiIconButton-colorSecondary" aria-disabled="false"> 8315 <span class="MuiIconButton-label"> 8316 <input id="non-jabodetabek" class="jss49" type="radio" value="Outside Jabodetabek" name="location"> 8317 <span class="jss40"></span> 8318 </span> 8319 <span class="MuiTouchRipple-root"></span> 8320 </span> 8321 <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1"> 8322 <span class="jss67 jss68">Outside Jabodetabek</span> 8323 </span> 8324 </label> 8325 </div> 8326 <div> 8327 <div class="MuiGrid-root location-popup_area-block__sp9Ws"> 8328 <div class="MuiGrid-root location-popup_pin-search-box__3l5mJ false"> 8329 <div class="MuiGrid-root location-popup_place-icon__jSG0Q"> 8330 <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> 8331 </div> 8332 <div class="MuiGrid-root location-popup_cancel-icon__FHujU false"> 8333 <i class="material-icons location-popup_clear-pin__s1dRc">close</i> 8334 </div> 8335 <div style="width: 100%;"> 8336 <select id="choose-location" class="form-control"> 8337 <option value="">Choose Location</option> 8338 <option value="jakarta">Jakarta</option> 8339 <option value="bogor">Bogor</option> 8340 <option value="depok">Depok</option> 8341 <option value="tangerang">Tangerang</option> 8342 <option value="bekasi">Bekasi</option> 8343 </select> 8344 </div> 8345 </div> 8346 </div> 8347 </div> 8348 <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=""> 8349 <span class="MuiButton-label">
8350 <span class=""></span> 8351 <span id="location-lock-continue-btn" class="cartButton_login_content__2j1f7" style="font-weight: 500;" data-content="">Continue Shopping</span> 8352 </span> 8353 </button> 8354 </div> 8355 </div> 8356 </div> 8357 <div tabindex="0" data-test="sentinelEnd"></div> 8358 </div> 8359 8360
8360<script> 8361 const jabodetabek = [ 8362 { 8363 "code": "jakarta", 8364 "city": "jakarta", 8365 "zip": [] 8366 }, 8367 { 8368 "code": "bogor", 8369 "city": "bogor", 8370 "zip": [] 8371 }, 8372 { 8373 "code": "depok", 8374 "city": "depok", 8375 "zip": [] 8376 }, 8377 { 8378 "code": "tangerang", 8379 "city": "tangerang", 8380 "zip": [] 8381 }, 8382 { 8383 "code": "bekasi", 8384 "city": "bekasi", 8385 "zip": [] 8386 } 8387 ] 8388 let cityNonJabodetabek = [ 8389 8390 8391 8392 8393 "pengiriman_aceh", 8394 8395 8396 8397 8398 8399 "pengiriman_ambon", 8400 8401 8402 8403 8404 8405 "pengiriman_atambua", 8406 8407 8408 8409 8410 8411 "pengiriman_badung", 8412 8413 8414 8415 8416 8417 "pengiriman_bali", 8418 8419 8420 8421 8422 8423 "pengiriman_balikpapan", 8424 8425 8426 8427 8428 8429 "pengiriman_bandar lampung", 8430 8431 8432 8433 8434 8435 "pengiriman_bandung", 8436 8437 8438 8439 8440 8441 "pengiriman_bandung barat", 8442 8443 8444 8445 8446 8447 "pengiriman_banjarmasin", 8448 8449 8450 8451 8452 8453 "pengiriman_banyumas", 8454 8455 8456 8457 8458 8459 "pengiriman_banyuwangi", 8460 8461 8462 8463 8464 8465 "pengiriman_batam", 8466 8467 8468 8469 8470 8471 8472 8473 8474 8475 "pengiriman_biak", 8476 8477 8478 8479 8480 8481 "pengiriman_binjai", 8482 8483 8484 8485 8486 8487 "pengiriman_blitar", 8488 8489 8490 8491 8492 8493 "pengiriman_blora", 8494 8495 8496 8497 8498 8499 8500 8501 8502 8503 "pengiriman_bojonegoro", 8504 8505 8506 8507 8508 8509 "pengiriman_boyolali", 8510 8511 8512 8513 8514 8515 "pengiriman_bukittinggi", 8516 8517 8518 8519 8520 8521 "pengiriman_buleleng", 8522 8523 8524 8525 8526 8527 "pengiriman_ciamis", 8528 8529 8530 8531 8532 8533 "pengiriman_cianjur", 8534 8535 8536 8537 8538 8539 "pengiriman_cibinong", 8540 8541 8542 8543 8544 8545 "pengiriman_cikarang", 8546 8547 8548 8549 8550 8551 "pengiriman_cikupa", 8552 8553 8554 8555 8556 8557 "pengiriman_cilacap", 8558 8559 8560 8561 8562 8563 "pengiriman_cileunyi", 8564 8565 8566 8567 8568 8569 "pengiriman_cimahi", 8570 8571 8572 8573 8574 8575 "pengiriman_cirebon", 8576 8577 8578 8579 8580 8581 "pengiriman_ciwidey", 8582 8583 8584 8585 8586 8587 "pengiriman_deli serdang", 8588 8589 8590 8591 8592 8593 "pengiriman_demak", 8594 8595 8596 8597 8598 8599 "pengiriman_denpasar", 8600 8601 8602 8603 8604 8605 8606 "pengiriman_garut", 8607 8608 8609 8610 8611 8612 "pengiriman_gianyar", 8613 8614 8615 8616 8617 8618 "pengiriman_gresik", 8619 8620 8621 8622 8623 8624 "pengiriman_gunung kidul", 8625 8626 8627 8628 8629 8630 8631 "pengiriman_jambi", 8632 8633 8634 8635 8636 8637 "pengiriman_jayapura", 8638 8639 8640 8641 8642 8643 "pengiriman_jember", 8644 8645 8646 8647 8648 8649 "pengiriman_jepara", 8650 8651 8652 8653 8654 8655 "pengiriman_jombang", 8656 8657 8658 8659 8660 8661 "pengiriman_karanganyar", 8662 8663 8664 8665 8666 8667 "pengiriman_karawang", 8668 8669 8670 8671 8672 8673 "pengiriman_karo", 8674 8675 8676 8677 8678 8679 "pengiriman_kebumen", 8680 8681 8682 8683 8684 8685 "pengiriman_kediri", 8686 8687 8688 8689 8690 8691 "pengiriman_keerom", 8692 8693 8694 8695 8696 8697 "pengiriman_kendal", 8698 8699 8700 8701 8702 8703 "pengiriman_klaten", 8704 8705 8706 8707 8708 8709 "pengiriman_kudus", 8710 8711 8712 8713 8714 8715 "pengiriman_kupang", 8716 8717 8718 8719 8720 8721 "pengiriman_lainnya", 8722 8723 8724 8725 8726 8727 "pengiriman_lamongan", 8728 8729 8730 8731 8732 8733 "pengiriman_lampung", 8734 8735 8736 8737 8738 8739 "pengiriman_lampung barat", 8740 8741 8742 8743 8744 8745 "pengiriman_lembang", 8746 8747 8748 8749 8750 8751 "pengiriman_lombok", 8752 8753 8754 8755 8756 8757 "pengiriman_lumajang", 8758 8759 8760 8761 8762 8763 "pengiriman_madiun", 8764 8765 8766 8767 8768 8769 "pengiriman_magelang", 8770 8771 8772 8773 8774 8775 "pengiriman_majalengka", 8776 8777 8778 8779 8780 8781 "pengiriman_makassar", 8782 8783 8784 8785 8786 8787 "pengiriman_malang", 8788 8789 8790 8791 8792 8793 "pengiriman_manado", 8794 8795 8796 8797 8798 8799 "pengiriman_medan", 8800 8801 8802 8803 8804 8805 "pengiriman_mengwi", 8806 8807 8808 8809 8810 8811 "pengiriman_mojokerto", 8812 8813 8814 8815 8816 8817 "pengiriman_nganjuk", 8818 8819 8820 8821 8822 8823 "pengiriman_ngawi", 8824 8825 8826 8827 8828 8829 "pengiriman_padang", 8830 8831 8832 8833 8834 8835 "pengiriman_palembang", 8836 8837 8838 8839 8840 8841 "pengiriman_pasuruan", 8842 8843 8844 8845 8846 8847 "pengiriman_pati", 8848 8849 8850 8851 8852 8853 "pengiriman_pekalongan", 8854 8855 8856 8857 8858 8859 "pengiriman_pekanbaru", 8860 8861 8862 8863 8864 8865 "pengiriman_pemalang", 8866 8867 8868 8869 8870 8871 "pengiriman_ponorogo", 8872 8873 8874 8875 8876 8877 "pengiriman_pontianak", 8878 8879 8880 8881 8882 8883 "pengiriman_probolinggo", 8884 8885 8886 8887 8888 8889 "pengiriman_purbalingga", 8890 8891 8892 8893 8894 8895 "pengiriman_purwakarta", 8896 8897 8898 8899 8900 8901 "pengiriman_purwokerto", 8902 8903 8904 8905 8906 8907 "pengiriman_rembang", 8908 8909 8910 8911 8912 8913 "pengiriman_riau", 8914 8915 8916 8917 8918 8919 "pengiriman_salatiga", 8920 8921 8922 8923 8924 8925 "pengiriman_samarinda", 8926 8927 8928 8929 8930 8931 "pengiriman_semarang", 8932 8933 8934 8935 8936 8937 "pengiriman_sentani", 8938 8939 8940 8941 8942 8943 "pengiriman_serang", 8944 8945 8946 8947 8948 8949 "pengiriman_sidoarjo", 8950 8951 8952 8953 8954 8955 "pengiriman_singkawang", 8956 8957 8958 8959 8960 8961 "pengiriman_sragen", 8962 8963 8964 8965 8966 8967 "pengiriman_subang", 8968 8969 8970 8971 8972 8973 "pengiriman_sukabumi", 8974 8975 8976 8977 8978 8979 "pengiriman_sumbawa", 8980 8981 8982 8983 8984 8985 "pengiriman_surabaya", 8986 8987 8988 8989 8990 8991 "pengiriman_surakarta solo", 8992 8993 8994 8995 8996 "pengiriman_tasikmalaya", 8997 8998 8999 9000 9001 9002 "pengiriman_tegal", 9003 9004 9005 9006 9007 9008 "pengiriman_timika", 9009 9010 9011 9012 9013 9014 "pengiriman_wamena", 9015 9016 9017 9018 9019 9020 "pengiriman_wiyung", 9021 9022 9023 9024 9025 9026 "pengiriman_wonokromo", 9027 9028 9029 9030 9031 9032 "pengiriman_yogyakarta", 9033 9034 ] 9035 console.log(cityNonJabodetabek) 9036 let non_jabodetabek = [] 9037 for(var i=0;i<cityNonJabodetabek.length;i++) { 9038 const obj = { 9039 "code": cityNonJabodetabek[i].toLowerCase().replace('pengiriman_', '').replace(' ','-'), 9040 "city": cityNonJabodetabek[i].replace('pengiriman_', '').replace(' ','-'), 9041 "zip": [] 9042 } 9043 non_jabodetabek.push(obj) 9044 } 9045 let current_location = getCookie("location_delivery") 9046 $("[name=location]").change(function(){ 9047 let v = $(this).val() 9048 let option = [] 9049 if(v == 'Jabodetabek') { 9050 for(var i=0;i<jabodetabek.length;i++) { 9051 const jabodetabekHtml = `<option value=${jabodetabek[i].city}>${jabodetabek[i].city}</option>` 9052 option.push(jabodetabekHtml) 9053 } 9054 $("#choose-location").html(`<option value="">Choose Location</option>${option}`) 9055 } else { 9056 for(var i=0;i<non_jabodetabek.length;i++) { 9057 const nonjabodetabekHtml = `<option value=${non_jabodetabek[i].city}>${non_jabodetabek[i].city}</option>` 9058 option.push(nonjabodetabekHtml) 9059 } 9060 $("#choose-location").html(`<option value="">Choose Location</option>${option}`) 9061 } 9062 }) 9063 9064 $("#location-lock-submit").click(function(e){
9065 let select = $("#choose-location") 9066 let value = select.val().toLowerCase() 9067 console.log(value) 9068 if(select.val() == "") { 9069 return alert("Choose Your Location") 9070 e.preventDefault() 9071 } 9072 setCookie("location_delivery",value,1000000); 9073 9074 location.reload(); 9075 9076 }) 9077 9078 $("#close-popup-delivery").click(function(){ 9079 $(".MuiDialog-root").hide() 9080 if(!current_location){ 9081 setCookie("location_delivery","jakarta",1000000); 9082 $("#loc_delivery_city, #loc_delivery_city_mobile").text("Jakarta") 9083 } 9084 }) 9085 $("#loc_delivery, #loc_delivery_mobile").click(function(){ 9086 $(".MuiDialog-root").show() 9087 }) 9088 9089 9090 if(!current_location){ 9091 9092 } else { 9093 $("#loc_delivery_city, #loc_delivery_city_mobile").text(current_location) 9094 console.log(current_location) 9095 $("#choose-location").each(function(){ 9096 if(current_location == 'jakarta' || current_location == 'depok' || current_location == 'bogor' || current_location == 'tangerang' || current_location == 'bekasi'){ 9097 $("#jabodetabek").trigger("click") 9098 } else { 9099 $("#non-jabodetabek").trigger("click") 9100 } 9101 $("#choose-location").find("option[value="+current_location+"]").attr("selected", "selected") 9102 }) 9103 } 9104 9105 // 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'){ 9106 // $("#timeMalam").attr("disabled", false) 9107 // } else { 9108 // $("#timeMalam").attr("disabled", true) 9109 // } 9110 9111 if(current_location && current_location != 'jakarta') { 9112 $("#self-pickup").attr("disabled", true) 9113 } 9114 9115 function setCookie(name,value,days) { 9116 var expires = ""; 9117 if (days) { 9118 var date = new Date(); 9119 date.setTime(date.getTime() + (days*24*60*60*1000)); 9120 expires = "; expires=" + date.toUTCString(); 9121 } 9122 document.cookie = name + "=" + (value || "") + expires + "; path=/"; 9123 } 9124 function getCookie(name) { 9125 var nameEQ = name + "="; 9126 var ca = document.cookie.split(';'); 9127 for(var i=0;i < ca.length;i++) { 9128 var c = ca[i]; 9129 while (c.charAt(0)==' ') c = c.substring(1,c.length); 9130 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 9131 } 9132 return null; 9133 } 9134 </script>
9134 9135 <!-- One Tap --> 9136
9136<script> 9137 console.log("Outerbloom..."); 9138 </script>
9138 9139 <div id="shopify-block-ANVEzSUcxTUxZOGpwZ__9703700522657871012" class="shopify-block shopify-app-block"> 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 9182 9183 9184 9185 9186 <link rel="stylesheet" href="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.css" /> 9187
9187<script src="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.js" defer></script>
9187 9188
9188<script> 9189 const widgetConfig = { 9190 id: "clz7897za002cz7otleaz0d3d", 9191 showQuickResponse: false, 9192 quickResponsesData: [], 9193 themeColor: "#ffffff", 9194 widgetText: "", 9195 radiusType: "circle", 9196 widgetIconType: "whatsapp", 9197 position: "right", 9198 storeLogo: "", 9199 storeName: "Outerbloom", 9200 storeDescription: "", 9201 size: "small", 9202 showCard: false, 9203 widgetColorType: "solid", 9204 widgetColor1: "#008069", 9205 widgetColor2: "#008069", 9206 social: { 9207 socialOrders: ["instagram","tiktok","facebook","x","youtube","linkedin","email"], 9208 values: { 9209 instagram: { 9210 enabled: false, 9211 value: "", 9212 }, 9213 facebook: { 9214 enabled: false, 9215 value: "", 9216 }, 9217 email: { 9218 enabled: false, 9219 value: "", 9220 }, 9221 x: { 9222 enabled: false, 9223 value: "", 9224 }, 9225 tiktok: { 9226 enabled: false, 9227 value: "", 9228 }, 9229 linkedin: { 9230 enabled: false, 9231 value: "", 9232 }, 9233 youtube: { 9234 enabled: false, 9235 value: "", 9236 }, 9237 }, 9238 }, 9239 }; 9240 9241 function initializeWidget() { 9242 if (typeof BBBWidget !== 'undefined') { 9243 BBBWidget.init(widgetConfig); 9244 } else { 9245 setTimeout(initializeWidget, 100); 9246 } 9247 } 9248 9249 initializeWidget();</script>
9249 9250 9251 9252 </div><div id="shopify-block-ATzRpVTBPU3k1R2pnW__286197278318599166" class="shopify-block shopify-app-block"> 9253 9254 9255 <div style="position: fixed; bottom: 0; right: 0"></div> 9256 9257
9257<script> 9258 console.info("bitlogin extension version: v2.5.7"); 9259 9260 const googleScript = document.createElement("script"); 9261 googleScript.setAttribute("src", "https://accounts.google.com/gsi/client"); 9262 document.head.append(googleScript); 9263 9264 const bitLoginBaseUrl = "https://api.bitbybit.studio"; 9265 const apiUrl = `${bitLoginBaseUrl}/bitlogin/api`; 9266 9267 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"}}; 9268 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
9268n1.oa2-cs.v1.1cb5f9085a202341f60daf5a7be16c570ccc0b4bd5908b3afd080f34e9b8935d","appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null}]; 9269 const redirectUrl = appearance.redirectLink; 9270 9271 let locationCacheSet = false; 9272 let errorLocation = false; 9273 let oneTapSet = false; 9274 9275 let bitloginCache = { 9276 appearance: appearance, 9277 config: config 9278 }; 9279 9280 let isInitializing = false; 9281 const queue = []; 9282 9283 // Add CSS for the popup 9284 const popupStyles = document.createElement('style'); 9285 popupStyles.textContent = ` 9286 /* Styles for login popup */ 9287 .bitlogin-popup-overlay { 9288 position: fixed; 9289 top: 0; 9290 left: 0; 9291 width: 100%; 9292 height: 100%; 9293 background: rgba(0, 0, 0, 0.45); 9294 backdrop-filter: blur(4px); 9295 display: flex; 9296 align-items: center; 9297 justify-content: center; 9298 opacity: 0; 9299 transition: opacity 0.3s ease-in-out; 9300 z-index: 999999; 9301 } 9302 9303 .bitlogin-popup-overlay.visible { 9304 opacity: 1; 9305 } 9306 9307 .bitlogin-popup { 9308 background: #FFFFFF; 9309 box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); 9310 border-radius: 16px; 9311 width: 100%; 9312 max-width: 560px; 9313 display: flex; 9314 overflow: hidden; 9315 position: relative; 9316 opacity: 0; 9317 transform: translateY(20px) scale(0.98); 9318 transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1); 9319 } 9320 9321 .bitlogin-popup.visible { 9322 opacity: 1; 9323 transform: translateY(0) scale(1); 9324 } 9325 9326 .bitlogin-popup-with-image { 9327 max-width: 640px; 9328 } 9329 9330 .bitlogin-popup-right-image { 9331 flex-direction: row-reverse; 9332 } 9333 9334 .bitlogin-popup-image { 9335 object-fit: cover; 9336 width: 50%; 9337 height: auto; 9338 } 9339 9340 .bitlogin-popup-content { 9341 padding: 32px; 9342 position: relative; 9343 width: 50%; 9344 } 9345 9346 .bitlogin-popup-close { 9347 position: absolute; 9348 top: 16px; 9349 right: 16px; 9350 background: white; 9351 border: none; 9352 width: 30px; 9353 height: 30px; 9354 display: flex; 9355 align-items: center; 9356 justify-content: center; 9357 cursor: pointer; 9358 transition: background-color 0.2s; 9359 color: inherit; 9360 padding: 0; 9361 } 9362 9363 .bitlogin-popup-close:hover { 9364 background-color: #e5e5e5; 9365 } 9366 9367 .bitlogin-popup-buttons { 9368 display: flex; 9369 flex-direction: column; 9370 gap: 12px; 9371 margin-top: 24px; 9372 } 9373 9374 /* Button styles within popup - override width for popup buttons */ 9375 .bitlogin-popup-buttons #google-login, 9376 .bitlogin-popup-buttons #facebook-login, 9377 .bitlogin-popup-buttons #apple-login, 9378 .bitlogin-popup-buttons #whatsapp-login, 9379 .bitlogin-popup-buttons #microsoft-login, 9380 .bitlogin-popup-buttons #twitter-login, 9381 .bitlogin-popup-buttons #amazon-login, 9382 .bitlogin-popup-buttons #instagram-login, 9383 .bitlogin-popup-buttons #magic-link-login, 9384 .bitlogin-popup-buttons #mobile-app-login { 9385 width: 100% !important; 9386 font-family: inherit !important; 9387 } 9388 9389 .bitlogin-popup-footer { 9390 margin-top: 32px; 9391 text-align: center; 9392 font-size: 14px; 9393 opacity: 0.6; 9394 } 9395 9396 /* Modern Typography */ 9397 .bitlogin-popup h2 { 9398 margin-top: 12px; 9399 font-size: 21px !important; 9400 line-height: 1.2 !important; 9401 font-weight: 700 !important; 9402 letter-spacing: -0.02em !important; 9403 margin-bottom: 16px !important; 9404 } 9405 9406 .bitlogin-popup-header { 9407 position: relative; 9408 margin-bottom: 24px; 9409 } 9410 9411 /* Modern gradient accent */ 9412 .bitlogin-popup-content > div { 9413 font-size: 16px !important; 9414 line-height: 1.2 !important; 9415 opacity: 0.85 !important; 9416 } 9417 9418 /* Enhanced button interactions */ 9419 .bitlogin-popup-buttons button { 9420 position: relative; 9421 overflow: hidden; 9422 } 9423 9424 @keyframes ripple { 9425 0% { 9426 transform: scale(0, 0); 9427 opacity: 0.5; 9428 } 9429 100% { 9430 transform: scale(100, 100); 9431 opacity: 0; 9432 } 9433 } 9434 9435 /* Responsive adjustments */ 9436 @media (max-width: 640px) { 9437 .bitlogin-popup { 9438 max-width: 90%; 9439 width: 90%; 9440 margin: 0 16px; 9441 } 9442 9443 .bitlogin-popup-with-image { 9444 flex-direction: column !important; 9445 } 9446 9447 .bitlogin-popup-image { 9448 width: 100%; 9449 height: 180px; 9450 } 9451 9452 .bitlogin-popup-content { 9453 padding: 24px; 9454 } 9455 9456 .bitlogin-popup h2 { 9457 font-size: 24px !important; 9458 } 9459 } 9460 `; 9461
9462 document.head.appendChild(popupStyles); 9463 9464 // Add fonts link for different font options 9465 const fontsLink = document.createElement('link'); 9466 fontsLink.rel = 'stylesheet'; 9467 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'; 9468 document.head.appendChild(fontsLink); 9469 9470 (async () => { 9471 try { 9472 let host = window.location.host; 9473 if (host === "admin.shopify.com") { 9474 host = `${window.location.pathname.split("/")[2]}.myshopify.com`; 9475 } 9476 9477 const urlSearchParams = new URLSearchParams(window.location.search); 9478 const checkoutUrl = urlSearchParams.get("checkout_url"); 9479 9480 async function init({ inputRef, index }) { 9481 if (isInitializing) { 9482 queue.push(() => init({ inputRef, index })); 9483 return; 9484 } 9485 9486 isInitializing = true; 9487 9488 try { 9489 let bitLoginSectionRoot = document.querySelector( 9490 `.bitlogin-root[data-index="${index}"]` 9491 ); 9492 9493 const formRef = inputRef?.closest( 9494 "form:not([action='/account/recover'])" 9495 ); 9496 9497 if (formRef && !bitLoginSectionRoot) { 9498 await getLocation(); 9499 9500 bitLoginSectionRoot = document.createElement(`div`); 9501 9502 bitLoginSectionRoot.setAttribute("class", "bitlogin-root"); 9503 bitLoginSectionRoot.setAttribute("data-index", `${index}`); 9504 9505 updateAppearance({ 9506 formRef, 9507 rootRef: bitLoginSectionRoot, 9508 host, 9509 }); 9510 } 9511 } catch (err) { 9512 console.error(`error while initiating bitlogin extensions`, err); 9513 } finally { 9514 // Release the lock 9515 isInitializing = false; 9516 9517 // Check if there are pending items in the queue 9518 if (queue.length > 0) { 9519 // Process the next function in the queue 9520 const nextFunction = queue.shift(); 9521 nextFunction(); 9522 } 9523 } 9524 } 9525 9526 function initAll() { 9527 return new Promise((resolve, reject) => { 9528 setTimeout(async () => { 9529 const inputRefs = document.querySelectorAll( 9530 'input[name="customer[email]"]' 9531 ); 9532 9533 for (let i = 0; i < inputRefs.length; i++) { 9534 const currentInputRef = inputRefs[i]; 9535 const isVisible = isElementVisible(currentInputRef); 9536 9537 if (isVisible) { 9538 await init({ inputRef: currentInputRef, index: i }); 9539 } 9540 } 9541 9542 resolve("ok"); 9543 }, 100); 9544 }); 9545 } 9546 9547 const observer = new MutationObserver((mutationsList) => { 9548 for (let mutation of mutationsList) { 9549 initAll(); 9550 } 9551 }); 9552 9553 observer.observe(document.body, { 9554 childList: true, 9555 subtree: true, 9556 attributes: true, 9557 }); 9558 9559 initAll(); 9560 9561 if (appearance.googleOneTap) { 9562 setupOneTap({ host, checkoutUrl }); 9563 } 9564 9565 // Initialize popup 9566 await initPopup(host); 9567 } catch (error) { 9568 console.error("Error initializing BitLogin:", error); 9569 } 9570 })(); 9571 9572 async function initPopup(host) { 9573 // Check if user is already logged in using Liquid checks properly 9574 const isLoggedIn = false || 9575 document.querySelector('.customer-logout-link') || 9576 document.querySelector('.account-link') || 9577 window.location.pathname.includes('/account'); 9578 9579 if (isLoggedIn) { 9580 return; // User is logged in, don't show popup 9581 } 9582 9583 try { 9584 // Fetch the popup configuration 9585 const popupConfig = await fetch(`${apiUrl}/appearance/popup/domain/${host}`) 9586 .then(res => res.json()) 9587 .catch(err => { 9588 console.error('Error fetching popup configuration:', err); 9589 return null; 9590 }); 9591 9592 if (!popupConfig || !popupConfig.enabled) { 9593 return;
9593 // Don't show popup if disabled or config not found 9594 } 9595 9596 // Create popup after 10 seconds 9597 setTimeout(() => { 9598 // Check if user is still on the page and still not logged in 9599 if (document.visibilityState === 'visible') { 9600 // Additional check in case user logged in during the 10 second wait 9601 const currentlyLoggedIn = false || 9602 document.querySelector('.customer-logout-link') || 9603 document.querySelector('.account-link'); 9604 9605 if (!currentlyLoggedIn) { 9606 createLoginPopup(popupConfig, host); 9607 } 9608 } 9609 }, 10000); 9610 } catch (error) { 9611 console.error('Error initializing popup:', error); 9612 } 9613 } 9614 9615 function createLoginPopup(popupConfig, host) { 9616 // Font mapping 9617 const fontFamilyMap = { 9618 system_fonts: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif', 9619 montserrat: 'Montserrat, sans-serif', 9620 roboto: 'Roboto, sans-serif', 9621 open_sans: 'Open Sans, sans-serif', 9622 noto_sans: 'Noto Sans, sans-serif', 9623 lato: 'Lato, sans-serif', 9624 poppins: 'Poppins, sans-serif', 9625 quicksand: 'Quicksand, sans-serif', 9626 raleway: 'Raleway, sans-serif', 9627 pt_sans: 'PT Sans, sans-serif', 9628 oswald: 'Oswald, sans-serif', 9629 }; 9630 9631 // Create overlay 9632 const overlay = document.createElement('div'); 9633 overlay.className = 'bitlogin-popup-overlay'; 9634 9635 // Create popup container with appropriate styling 9636 const popup = document.createElement('div'); 9637 popup.className = 'bitlogin-popup'; 9638 9639 if (popupConfig.layout === 'default') { 9640 popup.style.maxWidth = '400px'; 9641 } 9642 9643 // Function to close the popup 9644 const closePopup = () => { 9645 overlay.classList.remove('visible'); 9646 popup.classList.remove('visible'); 9647 setTimeout(() => { 9648 if (document.body.contains(overlay)) { 9649 document.body.removeChild(overlay); 9650 } 9651 }, 300); 9652 }; 9653 9654 // Add click handler to the overlay to close when clicking outside 9655 overlay.addEventListener('click', (event) => { 9656 // Close only if clicking directly on the overlay, not its children 9657 if (event.target === overlay) { 9658 closePopup(); 9659 } 9660 }); 9661 9662 // Add escape key handler to close popup 9663 document.addEventListener('keydown', (event) => { 9664 if (event.key === 'Escape' && document.body.contains(overlay)) { 9665 closePopup(); 9666 } 9667 }); 9668 9669 // Create layout with image if specified 9670 let contentWrapper; 9671 if (popupConfig.layout !== 'default' && popupConfig.popupImage) { 9672 popup.classList.add('bitlogin-popup-with-image'); 9673 9674 if (popupConfig.layout === 'right') { 9675 popup.classList.add('bitlogin-popup-right-image'); 9676 } 9677 9678 // Add image 9679 const image = document.createElement('img'); 9680 image.className = 'bitlogin-popup-image'; 9681 image.src = popupConfig.popupImage; 9682 image.alt = 'Login'; 9683 image.loading = 'lazy'; 9684 popup.appendChild(image); 9685 9686 // Create content container 9687 contentWrapper = document.createElement('div'); 9688 contentWrapper.className = 'bitlogin-popup-content'; 9689 9690 if (popupConfig.layout === 'right') { 9691 const closeButton = document.createElement('button'); 9692 closeButton.className = 'bitlogin-popup-close'; 9693 closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp"> 9694 <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 9695 </svg>`; 9696 closeButton.setAttribute('aria-label', 'Close'); 9697 closeButton.onclick = closePopup; 9698 9699 popup.appendChild(closeButton); 9700 } 9701 } else { 9702 contentWrapper = document.createElement('div'); 9703 contentWrapper.className = 'bitlogin-popup-content'; 9704 contentWrapper.style.width = '100%'; 9705 } 9706 9707 // Set background style 9708 if (popupConfig.backgroundTheme === 'gradient') { 9709 contentWrapper.style.background = `linear-gradient(135deg, ${popupConfig.backgroundPopupColor}, ${popupConfig.gradientColor})`; 9710 } else { 9711 contentWrapper.style.backgroundColor = popupConfig.backgroundPopupColor; 9712 } 9713 9714 // Apply font family 9715 contentWrapper.style.setProperty('font-family', fontFamilyMap[popupConfig.font] || fontFamilyMap.system_fonts, 'important'); 9716 9717 if (popupConfig.layout !== 'right') { 9718 const closeButton = document.createElement('button'); 9719 closeButton.className = 'bitlogin-popup-close'; 9720 closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp"> 9721 <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 9722 </svg>`; 9723 closeButton.setAttribute('aria-label', 'Close'); 9724 closeButton.onclick = closePopup; 9725 9726 contentWrapper.appendChild(closeButton); 9727 } 9728 9729 // Add heading with subtle animation effect 9730 const header = document.createElement('div'); 9731 header.className = 'bitlogin-popup-header'; 9732 9733 const heading = document.createElement('h2'); 9734 heading.textContent = popupConfig.headingText || 'Sign in for exclusive benef
9734its'; 9735 heading.style.color = popupConfig.fontColor; 9736 header.appendChild(heading); 9737 9738 // Add body text with improved formatting 9739 const bodyText = document.createElement('div'); 9740 bodyText.innerHTML = popupConfig.bodyText || 'Join our community to access exclusive offers and a personalized shopping experience.'; 9741 bodyText.style.color = popupConfig.fontColor; 9742 header.appendChild(bodyText); 9743 9744 contentWrapper.appendChild(header); 9745 9746 // Create buttons container with modern styling 9747 const buttonsContainer = document.createElement('div'); 9748 buttonsContainer.className = 'bitlogin-popup-buttons'; 9749 9750 // Add social buttons 9751 const providerLabels = { 9752 'GOOGLE': 'Continue with Google', 9753 'FACEBOOK': 'Continue with Facebook', 9754 'APPLE': 'Continue with Apple', 9755 'WHATSAPP': 'Continue with WhatsApp', 9756 'MAGIC_LINK': 'Continue with Email', 9757 }; 9758 9759 // Add first login provider button 9760 if (popupConfig.loginProvider1 !== 'NONE') { 9761 const buttonConfig = { 9762 theme: popupConfig.colorScheme || 'match', 9763 customColor: popupConfig.textColor, 9764 format: 'contentFlex', 9765 buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider1.toLowerCase()], 9766 hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true, 9767 style: popupConfig.style || 'rounded', 9768 size: popupConfig.size || 'medium', 9769 colorScheme: popupConfig.colorScheme || 'match', 9770 backgroundColor: popupConfig.backgroundColor || '#3B82F6', 9771 textColor: popupConfig.textColor || '#FFFFFF', 9772 outlineColor: popupConfig.outlineColor || '#3B82F6', 9773 host: host 9774 }; 9775 9776 const button1 = createSocialLoginButton(popupConfig.loginProvider1, buttonConfig); 9777 9778 // Handle click event - this overrides the default click handler in createSocialLoginButton 9779 button1.onclick = () => { 9780 onClickSocialLogin({ provider: popupConfig.loginProvider1.toLowerCase(), host }); 9781 closePopup(); 9782 }; 9783 9784 buttonsContainer.appendChild(button1); 9785 } 9786 9787 // Add second login provider button if enabled 9788 if (popupConfig.loginProvider2 !== 'NONE') { 9789 const buttonConfig = { 9790 theme: popupConfig.colorScheme || 'match', 9791 customColor: popupConfig.textColor, 9792 format: 'contentFlex', 9793 buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider2.toLowerCase()], 9794 hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true, 9795 style: popupConfig.style || 'rounded', 9796 size: popupConfig.size || 'medium', 9797 colorScheme: popupConfig.colorScheme || 'match', 9798 backgroundColor: popupConfig.backgroundColor || '#3B82F6', 9799 textColor: popupConfig.textColor || '#FFFFFF', 9800 outlineColor: popupConfig.outlineColor || '#3B82F6', 9801 host: host 9802 }; 9803 9804 const button2 = createSocialLoginButton(popupConfig.loginProvider2, buttonConfig); 9805 9806 // Handle click event - this overrides the default click handler in createSocialLoginButton 9807 button2.onclick = () => { 9808 onClickSocialLogin({ provider: popupConfig.loginProvider2.toLowerCase(), host }); 9809 closePopup(); 9810 }; 9811 9812 buttonsContainer.appendChild(button2); 9813 } 9814 9815 contentWrapper.appendChild(buttonsContainer); 9816 9817 // Append content to popup 9818 popup.appendChild(contentWrapper); 9819 9820 // Append popup to overlay 9821 overlay.appendChild(popup); 9822 9823 // Append overlay to body 9824 document.body.appendChild(overlay); 9825 9826 // Trigger animation with slight delay for better perceived performance 9827 setTimeout(() => { 9828 overlay.classList.add('visible'); 9829 setTimeout(() => { 9830 popup.classList.add('visible'); 9831 }, 50); 9832 }, 10); 9833 } 9834 9835 window.addEventListener("load", () => { 9836 window.addEventListener("message", (event) => { 9837 const receivedData = event.data; 9838 9839 if (receivedData.type === "authorize") { 9840 post( 9841 JSON.parse( 9842 JSON.stringify({ 9843 "customer[email]": receivedData.email, 9844 "customer[password]": receivedData.password, 9845 form_type: "customer_login", 9846 utf8: "â", 9847 return_url: redirectUrl, 9848 }) 9849 ) 9850 ); 9851 } else if (receivedData.type === "rejected") { 9852 if (receivedData.reason === "customer_account_disabled") { 9853 showAlert( 9854 "Your account needs to be activated. We've sent you an activation link - please check your email to complete this step." 9855 ); 9856 } else if (receivedData.reason === "customer_entry_created_email_not_set") { 9857 showAlert( 9858 "A new account was created but requires an email address. Please update your account with a valid email address to continue." 9859 ); 9860 } else if (receivedData.reason === "customer_exist_email_not_set") { 9861 showAlert( 9862 "Your existing account is missing an email address. Please contact support to update your account with a valid email address." 9863 ); 9864 } 9865 } 9866 9867 if (receivedData.type === "customer_authenticated") { 9868 // Dispatch a custom event that merchants can listen for to implement their custom logic 9869 const customerAuthEvent = new CustomEvent('bitlogin:customer_authenticated', { 9870 detail: { 9871 provider: receivedData.provider, 9872 customer: receivedData.customer, 9873 shopifyCustomerCreated: receivedData.shopifyCustomerCreated 9874 } 9875 }); 9876 9877 // Dispatch the event on the window object so merchants can listen for it 9878 window.dispatchEvent(customerAuthEvent); 9879 9880 } 9881 }); 9882 }); 9883 9884 // Reusable functions for social login buttons 9885 function createSocialLoginButton(provider, config = {}) { 9886 const { 9887 theme = 'match', 9888 customColor = null, 9889 format = 'contentFlex', 9890 buttonText = null, 9891 hasShadow = true, 9892 style = 'rounded', 9893 size = 'medium', 9894 colorScheme = 'match', 9895 backgroundColor = '#3B82F6', 9896 textColor = '#FFFFFF', 9897 outlineColor = '#3B82F6', 9898 rootRef = null, 9899 host = null 9900 } = config; 9901 9902 // Create button element with appropriate ID and attributes 9903 const button = document.createElement('button'); 9904 button.id = `${provider.toLowerCase()}-login`; 9905 button.type = 'button'; 9906 9907 // Set the inner SVG based on provider 9908 switch (provider.toUpperCase()) {
9909 case 'GOOGLE': 9910 button.innerHTML = googleLoginIcon(theme, customColor); 9911 break; 9912 case 'FACEBOOK': 9913 button.innerHTML = facebookLoginIcon(theme, customColor); 9914 break; 9915 case 'APPLE': 9916 button.innerHTML = appleLoginIcon(theme, customColor); 9917 break; 9918 case 'WHATSAPP': 9919 button.innerHTML = whatsappLoginIcon(theme, customColor); 9920 break; 9921 case 'MICROSOFT': 9922 button.innerHTML = microsoftLoginIcon(theme, customColor); 9923 break; 9924 case 'TWITTER': 9925 button.innerHTML = twitterLoginIcon(theme, customColor); 9926 break; 9927 case 'AMAZON': 9928 button.innerHTML = amazonLoginIcon(theme, customColor); 9929 break; 9930 case 'INSTAGRAM': 9931 button.innerHTML = instagramLoginIcon(theme, customColor); 9932 break; 9933 case 'MAGIC_LINK': 9934 button.innerHTML = magicLinkLoginIcon(theme, customColor); 9935 break; 9936 case 'MOBILE_APP': 9937 button.innerHTML = mobileAppLoginIcon(theme, customColor); 9938 break; 9939 case 'LINKEDIN': 9940 button.innerHTML = linkedinLoginIcon(theme, customColor); 9941 break; 9942 } 9943 9944 // Add text if format isn't icon-only and buttonText is provided 9945 if (format !== "wrapperFlexContainerOnlyLogo" && buttonText) { 9946 button.innerHTML += `<p>${buttonText}</p>`; 9947 } 9948 9949 // Apply styling 9950 // Shadow 9951 if (hasShadow) { 9952 const shadowProperties = `0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)`; 9953 button.style["box-shadow"] = shadowProperties; 9954 } 9955 9956 // Border radius 9957 const radiusProperties = 9958 style === "rounded" 9959 ? "8px" 9960 : style === "square" 9961 ? "0px" 9962 : style === "fullRounded" 9963 ? format === "wrapperFlexContainerOnlyLogo" 9964 ? "50%" 9965 : "50px" 9966 : undefined; 9967 button.style["border-radius"] = radiusProperties; 9968 9969 // Size 9970 const sizeProperties = 9971 size === "medium" 9972 ? "12px" 9973 : size === "small" 9974 ? "8px" 9975 : size === "large" 9976 ? "16px" 9977 : "8px"; 9978 9979 button.style["padding-block"] = sizeProperties; 9980 9981 // Format styling 9982 if (format) { 9983 if ( 9984 format === "contentFlexReverse" || 9985 format === "contentFlexCenterReverse" 9986 ) { 9987 const flexDir = `row-reverse`; 9988 button.style["flex-direction"] = flexDir; 9989 } 9990 9991 if ( 9992 format === "contentFlexCenter" || 9993 format === "contentFlexCenterReverse" 9994 ) { 9995 const justifyContent = `center`; 9996 button.style["justify-content"] = justifyContent; 9997 } else if ( 9998 format === "contentFlex" || 9999 format === "contentFlexReverse" 10000 ) { 10001 const buttonTextElement = button.querySelector("p"); 10002 if (buttonTextElement) { 10003 buttonTextElement.style["flex-grow"] = 1; 10004 buttonTextElement.style["text-align"] = "center"; 10005 } 10006 } 10007 10008 if (format === "wrapperFlexContainerOnlyLogo" && rootRef) { 10009 rootRef.style["flex-direction"] = "row"; 10010 rootRef.style["gap"] = "8px"; 10011 rootRef.style["display"] = "flex"; 10012 rootRef.style["flex-wrap"] = "wrap"; 10013 10014 const sizeMapping = { 10015 small: "52px", 10016 medium: "62px", 10017 large: "72px", 10018 }; 10019 const buttonSize = sizeMapping[size] || "52px"; 10020 10021 button.style["margin"] = 0; 10022 button.style["width"] = buttonSize; 10023 button.style["height"] = buttonSize; 10024 button.style["display"] = "flex"; 10025 button.style["align-items"] = "center"; 10026 button.style["justify-content"] = "center"; 10027 10028 const svgElement = button.querySelector("svg"); 10029 if (svgElement) { 10030 svgElement.style["flex"] = "none"; 10031 } 10032 } 10033 } 10034 10035 // Color scheme styling 10036 if (colorScheme === "black") { 10037 button.classList.add("scheme-black"); 10038 } else if (colorScheme === "white") { 10039 button.classList.add("scheme-white"); 10040 } else if (colorScheme === "custom") { 10041 button.style["background-color"] = backgroundColor; 10042 button.style["color"] = textColor; 10043 button.style["border-color"] = outlineColor; 10044 10045 const darkenColor = (color, percentage) => { 10046 const value = parseInt(color.slice(1), 16); 10047 const r = Math.max(0, ((value >> 16) & 0xff) - (0xff * percentage)); 10048 const g = Math.max(0, ((value >> 8) & 0xff) - (0xff * percentage)); 10049 const b = Math.max(0, (value & 0xff) - (0xff * percentage)); 10050 return `rgb(${Math.round(r)}, ${Math.round(g)}, ${Math.round(b)})`; 10051 }; 10052 10053 button.addEventListener("mouseover", () => {
10054 button.style["background-color"] = darkenColor(backgroundColor, 0.2); 10055 }); 10056 button.addEventListener("mouseout", () => { 10057 button.style["background-color"] = backgroundColor; 10058 }); 10059 } else if (colorScheme === "match") { 10060 button.classList.add("scheme-match"); 10061 } else if (colorScheme === "matchOutline") { 10062 button.classList.add("scheme-match-outline"); 10063 } 10064 10065 // Add click event listener if host is provided 10066 if (host) { 10067 button.addEventListener("click", () => 10068 onClickSocialLogin({ provider: provider.toLowerCase(), host }) 10069 ); 10070 } 10071 10072 return button; 10073 } 10074 10075 function setupSocialLoginButtons(config, rootRef, data, host) { 10076 // Clear any existing content 10077 rootRef.innerHTML = ''; 10078 10079 const sortedEnabledProviders = config 10080 .filter(c => c.enabledWeb) 10081 .sort((a, b) => a.position - b.position); 10082 10083 sortedEnabledProviders.forEach(provider => { 10084 const key = provider.provider; 10085 const lowerKey = key.toLowerCase(); 10086 10087 const buttonText = data.format !== "wrapperFlexContainerOnlyLogo" 10088 ? (lowerKey === 'twitter' 10089 ? data.buttonList.twitter.replace('Twitter', 'X') 10090 : data.buttonList[lowerKey]) 10091 : null; 10092 10093 const button = createSocialLoginButton(key, { 10094 theme: data.colorScheme || 'match', 10095 customColor: data.textColor, 10096 format: data.format, 10097 buttonText: buttonText, 10098 hasShadow: data.hasShadow !== undefined ? data.hasShadow : true, 10099 style: data.style, 10100 size: data.size, 10101 colorScheme: data.colorScheme, 10102 backgroundColor: data.backgroundColor, 10103 textColor: data.textColor, 10104 outlineColor: data.outlineColor, 10105 rootRef: rootRef, 10106 host: host 10107 }); 10108 10109 rootRef.appendChild(button); 10110 }); 10111 10112 return rootRef; 10113 } 10114 10115 function updateAppearance({ formRef, rootRef, host }) { 10116 if (!formRef) return; 10117 10118 const data = bitloginCache.appearance || { 10119 style: "square", 10120 hasShadow: false, 10121 colorScheme: "match", 10122 backgroundColor: "#FFFFFF", 10123 outlineColor: "#000000", 10124 textColor: "#000000", 10125 position: "bottom", 10126 hideDivider: "false", 10127 dividerText: "OR", 10128 size: "small", 10129 format: "contentFlex", 10130 language: "en", 10131 buttonText: "Continue with", 10132 redirectLink: "/account", 10133 googleOneTap: true, 10134 googleOneTapBanner: true, 10135 customerTag: "bitLogin", 10136 redirectOneTapDesktop: null, 10137 redirectOneTapMobile: null, 10138 buttonList: { 10139 google: "Continue with Google", 10140 facebook: "Continue with Facebook", 10141 apple: "Continue with Apple", 10142 whatsapp: "Continue with WhatsApp", 10143 microsoft: "Continue with Microsoft", 10144 twitter: "Continue with X", 10145 amazon: "Continue with Amazon", 10146 instagram: "Continue with Instagram", 10147 magic_link: "Continue with Magic Link", 10148 mobile_app: "Continue with Mobile App", 10149 linkedin: "Continue with LinkedIn", 10150 }, 10151 }; 10152 10153 // Use the new setupSocialLoginButtons function to create and configure all buttons 10154 setupSocialLoginButtons(bitloginCache.config, rootRef, data, host); 10155 10156 let divider; 10157 10158 if (!data.hideDivider) { 10159 divider = document.createElement("div"); 10160 const dividerStyle = "text-align:center;margin-block:16px"; 10161 divider.setAttribute("style", dividerStyle); 10162 divider.innerHTML = data.dividerText; 10163 } 10164 10165 if (data.position === "bottom") { 10166 if (divider) { 10167 formRef.appendChild(divider); 10168 } 10169 formRef.appendChild(rootRef); 10170 } else if (data.position === "top") { 10171 if (divider) { 10172 formRef.prepend(divider); 10173 } 10174 formRef.prepend(rootRef); 10175 } 10176 } 10177 10178 10179 async function onClickSocialLogin({ provider, host }) { 10180 const rand = Math.random().toString(); 10181 10182 const locationQueryString = bitloginCache.location 10183 ? `&${objectToQueryString(bitloginCache.location)}` 10184 : ""; 10185 10186 const width = 800; 10187 const height = 600; 10188 const left = (window.screen.width / 2) - (width / 2); 10189 const top = (window.screen.height / 2) - (height / 2) - 50; 10190
10191 if(provider === 'whatsapp') { 10192 window.open( 10193 `/apps/bitlogin/whatsapp${locationQueryString ? `?${locationQueryString}` : ''}`, 10194 "mywindow", 10195 `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}` 10196 ); 10197 } else { 10198 window.open( 10199 `${apiUrl}/login/${provider}?referrerId=${rand}&shop=${host}${locationQueryString}`, 10200 "mywindow", 10201 `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}` 10202 ); 10203 } 10204 } 10205 10206 function objectToQueryString(obj) { 10207 return Object.keys(obj) 10208 .map((key) => { 10209 return encodeURIComponent(key) + "=" + encodeURIComponent(obj[key]); 10210 }) 10211 .join("&"); 10212 } 10213 10214 async function getLocation() { 10215 if (locationCacheSet) return; 10216 10217 try { 10218 const response = await fetch("https://ipapi.co/json/"); 10219 10220 if (!response.ok) { 10221 console.error(`error retrieving location...`, response.status); 10222 errorLocation = true; 10223 } else { 10224 const data = await response.json(); 10225 10226 const { city, region, country_name, country_code } = data; 10227 10228 const formattedLocationData = { 10229 city, 10230 region, 10231 country_name, 10232 country_code, 10233 }; 10234 10235 bitloginCache.location = formattedLocationData; 10236 locationCacheSet = true; 10237 errorLocation = false; 10238 } 10239 } catch (err) { 10240 console.error(`error fetching location`, err); 10241 errorLocation = true; 10242 } 10243 } 10244 10245 function post(params) { 10246 // The rest of this code assumes you are not using a library. 10247 // It can be made less verbose if you use one. 10248 const form = document.createElement("form"); 10249 form.method = "post"; 10250 form.action = `/account/login`; 10251 form.acceptCharset = "UTF-8"; 10252 form.setAttribute("data-login-with-shop-sign-in", "true"); 10253 form.setAttribute("novalidate", "novalidate"); 10254 10255 for (const key in params) { 10256 if (params.hasOwnProperty(key)) { 10257 const hiddenField = document.createElement("input"); 10258 hiddenField.type = "hidden"; 10259 hiddenField.name = key; 10260 hiddenField.value = params[key]; 10261 10262 form.appendChild(hiddenField); 10263 } 10264 } 10265 10266 document.body.appendChild(form); 10267 form.submit(); 10268 } 10269 10270 async function setupOneTap({ host, checkoutUrl }) { 10271 if (oneTapSet) return; 10272 10273 const redirectOneTapDesktop = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapDesktop || '[]')); 10274 const redirectOneTapMobile = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapMobile || '[]')); 10275 10276 const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent); 10277 const redirectList = JSON.parse(isMobile ? redirectOneTapMobile : redirectOneTapDesktop); 10278 10279 const currentPath = window.location.pathname.toLowerCase(); 10280 const currentUrl = window.location.href.toLowerCase(); 10281 10282 const shouldHideGoogleOneTap = redirectList.some(({ value }) => { 10283 switch (value) { 10284 case 'home': 10285 return currentPath === '/'; 10286 case 'product': 10287 return currentPath.startsWith('/products/'); 10288 case 'collections': 10289 return currentPath.startsWith('/collections'); 10290 case 'cart': 10291 return currentPath === '/cart'; 10292 case 'checkout': 10293 return currentPath.startsWith('/checkouts') && !currentPath.includes('thank_you'); 10294 case 'thank_you': 10295 return currentPath.includes('/thank_you'); 10296 case 'account': 10297 return currentPath.startsWith('/account'); 10298 case 'pages': 10299 return currentPath.startsWith('/pages'); 10300 case 'blogs': 10301 return currentPath === '/blogs' || currentPath === '/blogs/news'; 10302 case 'blog_post': 10303 return currentPath.startsWith('/blogs/') && currentPath.split('/').length > 3; 10304 default: 10305 return false; 10306 } 10307 }); 10308 10309 if (shouldHideGoogleOneTap) return; 10310 10311 const oneTapClientId = bitloginCache.config.find( 10312 (config) => config.provider === "GOOGLE" 10313 )?.clientId; 10314 10315 const isLoggedIn = false; 10316 10317 if (bitloginCache.appearance.googleOneTap && oneTapClientId && !isLoggedIn) { 10318 const googleOneTapButton = document.createElement("div"); 10319 googleOneTapButton.setAttribute("id", "g_id_onload"); 10320 googleOneTapButton.setAttribute("data-client_id", oneTapClientId); 10321 googleOneTapButton.setAttribute("data-context", "signin"); 10322 googleOneTapButton.setAttribute( 10323 "data-callback", 10324 "handleGoogleOneTapResponse" 10325 ); 10326 googleOneTapButton.setAttribute("data-itp_support", "true"); 10327 10328 const googleOneTapScript = document.createElement("script"); 10329 10330 googleOneTapScript.innerHTML += ` 10331 function handleGoogleOneTapResponse(response) { 10332 if (response.credential) { 10333 const idToken = response.credential; 10334 fetch('${bitLoginBaseUrl}/bitlogin/api/login/google-one-tap', { 10335 method: 'POST', 10336 headers: { 'Content-Type': 'application/json' }, 10337 body: JSON.stringify({ idToken, shop: "${host}", ...bitloginCache.location }) 10338 }).then(response => { 10339 response.json().then((data) => { 10340 post( 10341 JSON.parse( 10342 JSON.stringify({ 10343 "customer[email]": data.email, 10344 "customer[password]": data.password, 10345 form_type: "customer_login", 10346 utf8: "â", 10347 return_url: redirectUrl, 10348 }) 10349 ) 10350 ); 10351 }); 10352 }).catch(error => { 10353 console.error('Error occurred:', error); 10354 }); 10355 } else { 10356 console.error('No credential available'); 10357 } 10358 } 10359 `; 10360 10361 document.body.append(googleOneTapButton); 10362 document.body.append(googleOneTapScript); 10363 } 10364 10365 oneTapSet = true; 10366 } 10367
10368 const googleLoginIcon = ( 10369 theme, 10370 customColor 10371 ) => ` 10372 ${ 10373 theme === "match" || theme === "matchOutline" || theme === "custom" 10374 ? `<svg 10375 xmlns='https://www.cabosanfrancisco.ch/image/logo-ompong188.webp' 10376 xmlns:v='https://vecta.io/nano' 10377 width='24' 10378 height='24' 10379 viewBox='0 0 186.69 190.5' 10380 > 10381 <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="${ 10382 theme === "custom" ? customColor : "#4285f4" 10383 }"/><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="${ 10384 theme === "custom" ? customColor : "#34a853" 10385 }"/><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="${ 10386 theme === "custom" ? customColor : "#fbbc05" 10387 }"/><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="${ 10388 theme === "custom" ? customColor : "#ea4335" 10389 }" clip-path="none" mask="none"/></g> 10390 </svg>` 10391 : `<svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="25" height="25" viewBox="0 0 25 25" fill="none"> 10392 <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="${ 10393 theme !== "black" ? "black" : "white" 10394 }"/> 10395 <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="${ 10396 theme !== "black" ? "black" : "white" 10397 }"/> 10398 <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="${ 10399 theme !== "black" ? "black" : "white" 10400 }"/> 10401 <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="${ 10402 theme !== "black" ? "black" : "white" 10403 }"/> 10404 </svg>` 10405 }`; 10406 10407 const appleLoginIcon = ( 10408 theme, 10409 customColor 10410 ) => `<svg width="24" height="24" viewBox="0 0 19 24" fill="none" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp"> 10411 <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="${ 10412 theme === "custom" 10413 ? customColor 10414 : theme === "match" || theme === "black" 10415 ? "white" 10416 : "black" 10417 }"/> 10418 </svg>`; 10419 10420 const facebookLoginIcon = ( 10421 theme, 10422 customColor 10423 ) => ` 10424 ${ 10425 theme === "match" || theme === "matchOutline" || theme === "custom" 10426 ? `<svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="24" height="25" viewB
10426ox="0 0 24 25" fill="none"> 10427 <path fill-rule="evenodd" clip-rule="evenodd" d="M24 12.5C24 5.8731 18.6268 0.5 12 0.5C5.3731 0.5 0 5.8731 0 12.5C0 18.489 4.38762 23.4537 10.1252 24.355V15.9696H7.07748V12.5H10.1252V9.85562C10.1252 6.84842 11.9173 5.18622 14.6579 5.18622C15.9707 5.18622 17.3443 5.42077 17.3443 5.42077V8.37398H15.8307C14.3406 8.37398 13.8748 9.29875 13.8748 10.2488V12.4999H17.2025L16.671 15.9695H13.8747V24.3548C19.6123 23.4553 23.9998 18.4907 23.9998 12.4999L24 12.5Z" fill="${ 10428 theme === "custom" ? customColor : theme === "match" ? "white" : "#1977F3" 10429 }"/> 10430 <path fill-rule="evenodd" clip-rule="evenodd" d="M16.5934 16.2833L17.1251 12.8137H13.7973V10.5626C13.7973 9.61422 14.2614 8.68778 15.7532 8.68778H17.2669V5.73457C17.2669 5.73457 15.8933 5.5 14.5804 5.5C11.8399 5.5 10.0477 7.16057 10.0477 10.1694V12.8138H7V16.2834H10.0477V24.6688C10.6586 24.7648 11.2846 24.8138 11.9225 24.8138C12.5604 24.8138 13.1865 24.7631 13.7973 24.6688V16.2834H16.5936L16.5934 16.2833Z" fill="${ 10431 theme === "match" ? "#1778f2" : "transparent" 10432 }"/> 10433 </svg>` 10434 : `<svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="24" height="25" viewBox="0 0 24 25" fill="none"> 10435 <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="${ 10436 theme === "black" ? "white" : "black" 10437 }"/> 10438 <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="${ 10439 theme === "black" ? "black" : "white" 10440 }"/> 10441 </svg>` 10442 }`; 10443 10444 const whatsappLoginIcon = ( 10445 theme, 10446 customColor 10447 ) => `<svg 10448 viewBox="0 0 24 24" 10449 fill="none" 10450 width="24" 10451 height="25" 10452 xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" 10453 > 10454 <g id="SVGRepo_bgCarrier" stroke-width="0"></g> 10455 <g 10456 id="SVGRepo_tracerCarrier" 10457 stroke-linecap="round" 10458 stroke-linejoin="round" 10459 ></g> 10460 <g id="SVGRepo_iconCarrier"> 10461 <path 10462 fill-rule="evenodd" 10463 clip-rule="evenodd" 10464 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" 10465 fill="${ 10466 theme === "match" || theme === "black" 10467 ? "#ffffff" 10468 : theme === "white" 10469 ? "#000000" 10470 : theme === "matchOutline" 10471 ? "#25d366" 10472 : customColor 10473 }" 10474 ></path> 10475 </g> 10476 </svg>`; 10477 10478 const microsoftLoginIcon = ( 10479 theme, 10480 customColor 10481 ) => `<svg 10482 xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" 10483 width="25" 10484 height="25" 10485 viewBox="0 0 48 48"> 10486 <path fill="${ 10487 theme === "match" || theme == "matchOutline" 10488 ? "#ff5722" 10489 : theme === "black" 10490 ? "#ffffff" 10491 : theme === "white" 10492 ? "#000000" 10493 : customColor 10494 }" d="M6 6H22V22H6z" transform="rotate(-180 14 14)"></path> 10495 <path 10496 fill="${ 10497 theme === "match" || theme == "matchOutline" 10498 ? "#4caf50" 10499 : theme === "black" 10500 ? "#ffffff" 10501 : theme === "white" 10502 ? "#000000" 10503 : customColor 10504 }" 10505 d="M26 6H42V22H26z" 10506 transform="rotate(-180 34 14)"></path> 10507 <path 10508 fill="${ 10509 theme === "match" || theme == "matchOutline" 10510 ? "#ffc107" 10511 : theme === "black" 10512 ? "#ffffff" 10513 : theme === "white" 10514 ? "#000000" 10515 : customColor 10516 }" 10517 d="M26 26H42V42H26z" 10518 transform="rotate(-180 34 34)"></path> 10519 <path fill="${ 10520 theme === "match" || theme == "matchOutline" 10521 ? "#03a9f4" 10522 : theme === "black" 10523 ? "#ffffff" 10524 : theme === "white" 10525 ? "#000000" 10526 : customColor 10527 }" d="M6 26H22V42H6z" transform="rotate(-180 14 34)"></path> 10528 </svg>`; 10529 10530 const twitterLoginIcon = ( 10531 theme, 10532 customColor 10533 ) => `<svg 10534 xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" 10535 width="25" 10536 height="25" 10537 viewBox="0 0 48 48"> 10538 <polygon fill="${ 10539 theme === "match" || theme === "black" 10540 ? "#ffffff" 10541 : theme === "matchOutline" || theme === "white" 10542 ? "#000000" 10543 : customColor 10544 }" points="41,6 9.929,42 6.215,42 37.287,6"></polygon> 10545 <polygon 10546 fill="${ 10547 theme === "match" || theme === "black" 10548 ? "#000000" 10549 : theme === "matchOutline" || theme === "white" 10550 ? "#ffffff" 10551 : customColor 10552 }" 10553 fill-rule="evenodd" 10554 points="31.143,41 7.82,7 16.777,7 40.1,41" 10555 clip-rule="evenodd"></polygon> 10556 <path 10557 fill="${ 10558 theme === "match" || theme === "black" 10559 ? "#ffffff" 10560 : theme === "matchOutline" || theme === "white" 10561 ? "#000000" 10562 : customColor 10563 }" 10564 d="M15.724,9l20.578,30h-4.106L11.618,9H15.724 M17.304,6H5.922l24.694,36h11.382L17.304,6L17.304,6z"></path> 10565 </svg>`; 10566 10567 const amazonLoginIcon = (theme, customColor) => ` 10568 <svg 10569 xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" 10570 x="0px" 10571 y="0px" 10572 width="25" 10573 height="25"
10574 viewBox="0 0 50 50" 10575 > 10576 <path 10577 fill="${ 10578 theme === "black" 10579 ? "#ffffff" 10580 : theme === "matchOutline" 10581 ? "#ffe100" 10582 : theme === "white" || theme === "match" 10583 ? "#000000" 10584 : customColor 10585 }" 10586 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" 10587 ></path> 10588 </svg>`; 10589 10590 const instagramLoginIcon= (theme, customColor) => ` 10591 <svg 10592 width="25" 10593 height="25" 10594 viewBox="0 0 25 24" 10595 fill="none" 10596 xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp"> 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.
1060064321C8.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.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" 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.
1061064321C8.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(#paint0_radial_378_3535)" /> 10612 <path 10613 fill-rule="evenodd" 10614 clip-rule="evenodd" 10615 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" 10616 fill="url(#paint1_radial_378_3535)" /> 10617 <defs> 10618 <radialGradient 10619 id="paint0_radial_378_3535" 10620 cx="0" 10621 cy="0" 10622 r="1" 10623 gradientUnits="userSpaceOnUse" 10624 gradientTransform="translate(17.4 22.7) rotate(-115.776) scale(27.2737 40.5665)"> 10625 <stop offset="0.24392" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF1B90' : customColor}" /> 10626 <stop offset="0.436673" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#F80261' : customColor}" /> 10627 <stop offset="0.688476" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#ED00C0' : customColor}" /> 10628 <stop offset="0.776787" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#C500E9' : customColor}" /> 10629 <stop offset="0.893155" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#7017FF' : customColor}" /> 10630 </radialGradient> 10631 <radialGradient 10632 id="paint1_radial_378_3535" 10633 cx="0" 10634 cy="0" 10635 r="1" 10636 gradientUnits="userSpaceOnUse" 10637 gradientTransform="translate(7.75 19.31) rotate(-57.4396) scale(11.8174 12.2918)"> 10638 <stop stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FFD600' : customColor}" /> 10639 <stop offset="0.484375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF6930' : customColor}" /> 10640 <stop offset="0.734375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" /> 10641 <stop offset="1" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" stop-opacity="0" /> 10642 </radialGradient> 10643 </defs> 10644 </svg>`; 10645 10646 const magicLinkLoginIcon = (theme, customColor) => ` 10647 <svg 10648 xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" 10649 width="25" 10650 height="25" 10651 fill="none"
10652 viewBox="0 0 25 25" 10653 > 10654 <path 10655 fill="${ 10656 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' || theme === 'white' ? '#000000' : customColor 10657 }" 10658 fillRule="evenodd" 10659 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" 10660 clipRule="evenodd" 10661 ></path> 10662 </svg>`; 10663 10664 const mobileAppLoginIcon = (theme, customColor) => ` 10665 <svg 10666 width="20" 10667 height="24" 10668 viewBox="0 0 12 16" 10669 fill="none" 10670 xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" 10671 > 10672 <path 10673 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" 10674 fill=${ 10675 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#FD823E' : theme === 'white' ? '#000000' : customColor 10676 } 10677 /> 10678 </svg> 10679 `; 10680 10681 const linkedinLoginIcon = (theme, customColor) => ` 10682 <svg 10683 xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" 10684 width="25" 10685 height="24" 10686 viewBox="0 0 25 24" 10687 fill="none" 10688 > 10689 <path 10690 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" 10691 fill=${ 10692 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#0A66C2' : theme === 'white' ? '#000000' : customColor 10693 } 10694 /> 10695 </svg> 10696 `; 10697 10698 function isElementVisible(element) { 10699 return ( 10700 document.body.contains(element) && 10701 getComputedStyle(element).display !== "none" && 10702 getComputedStyle(element).visibility !== "hidden" && 10703 getComputedStyle(element).opacity !== "0" && 10704 !element.hasAttribute("hidden") && 10705 !isAncestorHidden(element) 10706 ); 10707 } 10708 10709 function isAncestorHidden(element) { 10710 let parent = element.parentElement; 10711 while (parent) { 10712 if ( 10713 getComputedStyle(parent).display === "none" || 10714 getComputedStyle(parent).visibility === "hidden" || 10715 getComputedStyle(parent).opacity === "0" || 10716 parent.hasAttribute("hidden") 10717 ) { 10718 return true; 10719 } 10720 parent = parent.parentElement; 10721 } 10722 return false; 10723 } 10724 10725 function showAlert(message) { 10726 const alertBox = document.createElement("div"); 10727 alertBox.textContent = message; 10728 alertBox.style.position = "fixed"; 10729 alertBox.style.top = "20px"; 10730 alertBox.style.right = "-300px"; // Start off-screen 10731 alertBox.style.backgroundColor = "#000000"; // Black background 10732 alertBox.style.color = "#ffffff"; // White text 10733 alertBox.style.padding = "15px"; 10734 alertBox.style.borderRadius = "8px"; 10735 alertBox.style.zIndex = "1000"; 10736 alertBox.style.transition = 10737 "right 0.5s ease-in-out, opacity 0.5s ease-in-out"; // Transition for sliding and fading 10738 alertBox.style.boxShadow = "0 2px 5px rgba(0, 0, 0, 0.2)"; // Optional shadow for depth 10739 10740 document.body.appendChild(alertBox); 10741 10742 // Slide in 10743 requestAnimationFrame(() => { 10744 alertBox.style.right = "20px"; // Move into view 10745 alertBox.style.opacity = "1"; // Ensure opacity is set to 1 10746 }); 10747 10748 // Slide out and remove the alert after a few seconds 10749 setTimeout(() => { 10750 alertBox.style.opacity = "0"; // Fade out 10751 alertBox.style.right = "-300px"; // Move out of view 10752 10753 // Wait for the transition to finish before removing the element 10754 setTimeout(() => { 10755 document.body.removeChild(alertBox); 10756 }, 500); // Match this duration with the exit transition duration 10757 }, 3000); 10758 } 10759 </script>
10759 10760 10761 <style> 10762 .daftarku-fixed-footer { 10763 display: flex; 10764 justify-content: space-around; 10765 position: fixed; 10766 background: linear-gradient(to bottom, #000000 0%, #3d3d3d, #000000 100%); 10767 box-shadow: 0 0 12px #ffe100; 10768 outline: none; 10769 padding: 5px 0; 10770 box-shadow: 0 0 0 0 2px 2px #198f01; 10771 left: 0; 10772 right: 0; 10773 bottom: 0; 10774 z-index: 99; 10775 border-radius: 40px 40px 0px 0px; 10776 border-style:dashed; 10777 10778 } 10779 10780 .daftarku-fixed-footer a { 10781 flex-basis: calc((100% - 15px*6)/ 5); 10782 text-decoration: none; 10783 display: flex; 10784 flex-direction: column; 10785 justify-content: center; 10786 align-items: center; 10787 color: #fff; 10788 max-width: 75px; 10789 font-size: 12px; 10790 font-family: Ubuntu, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; 10791 } 10792 10793 .daftarku-fixed-footer a:hover { 10794 font-weight: bold; 10795 } 10796 10797 .daftarku-fixed-footer .center { 10798 transform: scale(1.5) translateY(-5px); 10799 background: center no-repeat; 10800 background-size: contain; 10801 background-color: inherit; 10802 border-radius: 50%; 10803 } 10804 10805 .daftarku-fixed-footer img { 10806 max-width: 20px; 10807 margin-bottom: 0; 10808 max-height: 20px; 10809 } 10810 </style> 10811 10812 <div class="daftarku-fixed-footer"> 10813 <a href="https://www.cabosanfrancisco.ch/coffee/" rel="nofollow noopener" target="_blank"> 10814 <img layout="intrinsic" height="20px" width="20px" src="https://www.cabosanfrancisco.ch/image/icon-ompong188-slot.webp" alt="PROMOSI"> 10815 PROMO 10816 </a> 10817 <a href="https://www.cabosanfrancisco.ch/coffee/" rel="nofollow noopener" target="_blank"> 10818 <img layout="intrinsic" height="20px" width="20px" src="https://www.cabosanfrancisco.ch/image/icon-ompong188-slot.webp" alt="LOGIN"> 10819 LOGIN 10820 </a> 10821 <a href="https://www.cabosanfrancisco.ch/coffee/" rel="nofollow noopener" target="_blank" class="tada"> 10822 <img layout="intrinsic" height="20px" width="20px" src="https://www.cabosanfrancisco.ch/image/icon-ompong188-slot.webp" alt="DAFTAR"> 10823 DAFTAR 10824 </a> 10825 <a href="https://www.cabosanfrancisco.ch/coffee/" rel="nofollow noopener" target="_blank"> 10826 <img layout="intrinsic" height="20px" width="20px" src="https://www.cabosanfrancisco.ch/image/icon-ompong188-slot.webp" alt="TELEGRAM"> 10827 TELEGRAM 10828 </a> 10829 <a href="https://www.cabosanfrancisco.ch/coffee/" rel="nofollow noopener" target="_blank" 10830 class="js_live_chat_link live-chat-link"> 10831 <img class="live-chat-icon" layout="intrinsic" height="20px" width="20px" src="https://www.cabosanfrancisco.ch/image/icon-ompong188-slot.webp" alt="Live Chat"> 10832 Live Chat 10833 </a> 10834 </div> 10835 </div>
10836<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"763fca75b50944bcaabe80d96cf62e10","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10836
10836
10837<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"0696dad484dd4377bd3c6657187c9a10","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10837
10837
10838<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"0696dad484dd4377bd3c6657187c9a10","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10838
10838
10839<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"0696dad484dd4377bd3c6657187c9a10","r":1}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10839
10839
10840<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"0696dad484dd4377bd3c6657187c9a10","r":1}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10840
10840
10841<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v3d52b47920f24c319d37e2661827c42b1787588026925" integrity="sha512-d9sL6GJLXn6fInD1+TVXhTcQOsmxeHfmHAvwGDIxp5TO+uo1fiWW7mHomMj4MLRlCsJDTqXzWLHJFFlPCEIj/A==" data-cf-beacon='{"version":"2024.11.0","token":"f383311b8fc14080b15d7552a35be826","r":1}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10841
10841
10842<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"f155a1ee62cf4a69aa5aa0d9896a1c1b","r":1,"spa":2}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10842
10842
10843<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"bf83155291f74a6a8120b3131b13f43e","r":1,"spa":2}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10843
10843
10844<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"bf83155291f74a6a8120b3131b13f43e","r":1,"spa":2}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10844
10844
10845<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"29a06b40e4e9489496f121880d3c2bba","r":1,"spa":2}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10845
10845
10846<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"abbc8864bba443078188f20d08a38859","r":1,"spa":2}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10846
10846
10847<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"3516b64f1bd74e0f9f4de3a7a4b1fd33","r":1,"spa":2}' crossorigin="anonymous"></script>
10847 10848</body> 10849 </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.