1 2 3 <!doctype html> 4 <html class="no-js"> 5 <head> 6 <meta charset="utf-8"> 7 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 8 <meta name="google-site-verification" content="suMTVQXKoXsVUpM-h-ctgFPN-gvVdO0yw64dUVbDxtg" /> 9 <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"> 10 <meta name="apple-itunes-app" content="app-id=1576832504"> 11 <link rel="icon" type="image/x-icon" href="https://cdn.datavip.cloud/Favicon/Bagus33.png"> 12 <title>BAGUS33 | Official Snoogle Store: Bingkai Foto USG Kehamilan & Momen Keluarga Bergaransi Resmi</title> 13 <meta name="description" content="Bersama BAGUS33, temukan bingkai foto akrilik eksklusif bergaransi resmi di Official Snoogle Store untuk mengabadikan momen berharga USG kehamilan serta kenangan indah keluarga Anda dengan tampilan yang elegan."> 14 <meta name="keywords" content="bagus33, bagus 33, bagus33 bagus33, bagus33 daftar, bagus33 link, bingkai foto, foto usg, usg kehamilan, momen keluarga, foto keluarga" /> 15 <link rel="canonical" href="https://snooglestore.com/"> 16 <link rel="amphtml" href="https://snooglestore.com/bingkai-foto/"/> 17 <link rel="alternate" hreflang="id-id" href="https://snooglestore.com/bingkai-foto/"/> 18 <link rel="alternate" href="https://snooglestore.com/bingkai-foto/"/> 19 <link rel="alternate" hreflang="id" href="https://snooglestore.com/bingkai-foto/"/> 20 <link rel="alternate" hreflang="en" href="https://snooglestore.com/bingkai-foto/"/> 21 <link rel="alternate" hreflang="x-default" href="https://snooglestore.com/bingkai-foto/"/> 22 <meta property="og:type" content="product"> 23 <meta property="og:title" content="BAGUS33 | Official Snoogle Store: Bingkai Foto USG Kehamilan & Momen Keluarga Bergaransi Resmi"> 24 <meta property="og:image" content="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp"> 25 <meta property="og:image:secure_url" content="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp"> 26 <meta property="og:image" content="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp"> 27 <meta property="og:image:secure_url" content="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp"> 28 <meta property="og:image" content="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp"> 29 <meta property="og:image:secure_url" content="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp"> 30 <meta property="og:description" content="Bersama BAGUS33, temukan bingkai foto akrilik eksklusif bergaransi resmi di Official Snoogle Store untuk mengabadikan momen berharga USG kehamilan serta kenangan indah keluarga Anda dengan tampilan yang elegan."> 31 <meta property="og:price:amount" content="5,000-,"> 32 <meta property="og:price:currency" content="IDR"> 33 <meta property="og:url" content="https://snooglestore.com/"> 34 <meta property="og:site_name" content="BAGUS33"> 35 <meta name="twitter:site" content="@BAGUS33"> 36 <meta name="twitter:card" content="summary"> 37 <meta name="twitter:title" content="BAGUS33 | Official Snoogle Store: Bingkai Foto USG Kehamilan & Momen Keluarga Bergaransi Resmi"> 38 <meta name="twitter:description" content="Bersama BAGUS33, temukan bingkai foto akrilik eksklusif bergaransi resmi di Official Snoogle Store untuk mengabadikan momen berharga USG kehamilan serta kenangan indah keluarga Anda dengan tampilan yang elegan."> 39 <meta name="twitter:image" content="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp"> 40 <meta name="twitter:image:width" content="600"> 41 <meta name="twitter:image:height" content="600"> 42 <link rel="shortcut icon" href="https://cdn.datavip.cloud/Favicon/Bagus33.png" type="image/png"> 43 <meta name="theme-color" content="#ffffff"> 44 <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700&family=Poppins&display=swap" rel="stylesheet"> 45 <link href="https://outerbloom.com/cdn/shop/t/138/assets/custom-styles.css?v=94643080714485117621752652418" rel="stylesheet" type="text/css" media="all" /> 46 <link rel="stylesheet" href="https://outerbloom.com/cdn/shop/t/138/assets/wishlist-styles.css?v=166819525406734116961754385201">
46<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js" defer></script>
46 47
47<script 48 src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js" 49 integrity="sha512-57oZ/vW8ANMjR/KQ6Be9v/+/h6bq9/l3f0Oc7vn6qMqyhvPd1cvKBRWWpzu0QoneImqr2SkmO4MSqU+RpHom3Q==" 50 crossorigin="anonymous" 51 referrerpolicy="no-referrer" 52 defer 53 ></script>
53 54
54<script src="https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js" async="async"></script>
54 55
55<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/select2.min.js" defer></script>
55 56 57 <div class="button-login-daftar"> 58 <a class="login" href="https://snooglestore.com/bingkai-foto/" rel="nofollow noreferrer" style="color: white;"> 59 LOGIN 60 </a> 61 <a class="register" href="https://snooglestore.com/bingkai-foto/" rel="nofollow noreferrer" style="color: white;"> 62 DAFTAR 63 </a> 64 </div> 65 66
66<script src="//cdnjs.cloudflare.com/ajax/libs/vissense/0.9.0/vissense.js" defer></script>
66 67 68 <link href="https://outerbloom.com/cdn/shop/t/138/assets/combine.min.css?v=111340648424012527321754385205" rel="stylesheet" type="text/css" media="all" /> 69 70 <link href="https://outerbloom.com/cdn/shop/t/138/assets/font-awesome.css?v=132324219581463622051752652421" rel="stylesheet" type="text/css" media="all" /> 71 <link rel="stylesheet" href="//code.jquery.com/ui/1.13.0/themes/base/jquery-ui.min.css"> 72 73
73<script src="//code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
73 74
74<script src="https://outerbloom.com/cdn/shop/t/138/assets/combine.js?v=140218079523075729301752652421" type="text/javascript"></script>
74 75
75<script src="//code.jquery.com/ui/1.13.0/jquery-ui.min.js"></script>
75 76
76<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
76 77 <meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/15896833/digital_wallets/dialog"> 78 <link rel="alternate" type="application/json+oembed" href="https://snooglestore.com/.oembed"> 79
79<script async="async" src="/checkouts/internal/preloads.js?locale=en-ID"></script>
79 80
80<script id="shopify-features" type="application/json">{"accessToken":"d2e176e59f6658d5056234d6249b3ab4","betas":["rich-media-storefront-analytics"],"domain":"outerbloom.com","predictiveSearch":true,"shopId":15896833,"locale":"en"}</script>
80 81
81<script>var Shopify = Shopify || {}; 82 Shopify.shop = "outerbloom1.myshopify.com"; 83 Shopify.locale = "en"; 84 Shopify.currency = {"active":"IDR","rate":"1.0"}; 85 Shopify.country = "ID"; 86 Shopify.theme = {"name":"web-outerbloom-shopify\/main","id":153139282135,"schema_name":null,"schema_version":null,"theme_store_id":null,"role":"main"}; 87 Shopify.theme.handle = "null"; 88 Shopify.theme.style = {"id":null,"handle":null}; 89 Shopify.cdnHost = "outerbloom.com/cdn"; 90 Shopify.routes = Shopify.routes || {}; 91 Shopify.routes.root = "/";</script>
91 92
92<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
92 93
93<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>
93 94
94<script id="shop-js-analytics" type="application/json">{"pageType":"product"}</script>
94 95
95<script defer="defer" async="async" src="//outerbloom.com/cdn/shopifycloud/shop-js/client.js" onload="window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 96 "></script>
96 97
97<script>(function() { 98 var isLoaded = false; 99 function asyncLoad() { 100 if (isLoaded) return; 101 isLoaded = true; 102 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"]; 103 for (var i = 0; i < urls.length; i++) { 104 var s = document.createElement('script'); 105 s.type = 'text/javascript'; 106 s.async = true; 107 s.src = urls[i]; 108 var x = document.getElementsByTagName('script')[0]; 109 x.parentNode.insertBefore(s, x); 110 } 111 }; 112 if(window.attachEvent) { 113 window.attachEvent('onload', asyncLoad); 114 } else { 115 window.addEventListener('load', asyncLoad, false); 116 } 117 })();</script>
117 118
118<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":9979127912352};</script>
118 119
119<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
119 120
120<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>
120 121
121<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>
121 122
122<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)}}; 123 </script>
123 124
124<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 125 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); 126 </script>
126 127
127<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})}})); 128 </script>
128 129 130
130<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
130 131 <!-- /snippets/oldIE-js.liquid --> 132 133 134 <!--[if lt IE 9]> 135
135<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js" type="text/javascript"></script>
135 136
136<script src="https://outerbloom.com/cdn/shop/t/138/assets/respond.min.js?v=52248677837542619231752652418" type="text/javascript"></script>
136 137 <link href="https://outerbloom.com/cdn/shop/t/138/assets/respond-proxy.html" id="respond-proxy" rel="respond-proxy" /> 138 <link href="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" id="respond-redirect" rel="respond-redirect" /> 139
139<script src="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" type="text/javascript"></script>
139 140 <![endif]--> 141 142 143 144 145 146 <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"> 147 <link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch"> 148
148<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>
148 149
149<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":"BAGUS33 | Official Snoogle Store: Bingkai Foto USG Kehamilan & Momen Keluarga Bergaransi Resmi","vendor":"Outerbloom Florist","id":"9979127912352","untranslatedTitle":"BAGUS33 | Official Snoogle Store: Bingkai Foto USG Kehamilan & Momen Keluarga Bergaransi Resmi","url":"\/products\/blossom-shine","type":"Bersama BAGUS33, temukan bingkai foto akrilik eksklusif bergaransi resmi di Official Snoogle Store untuk mengabadikan momen berharga USG kehamilan serta kenangan indah keluarga Anda dengan tampilan yang elegan."},"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\":\"BAGUS33 | Official Snoogle Store: Bingkai Foto USG Kehamilan & Momen Keluarga Bergaransi Resmi\",\"vendor\":\"Outerbloom Florist\",\"id\":\"9979127912352\",\"untranslatedTitle\":\"BAGUS33 | Official Snoogle Store: Bingkai Foto USG Kehamilan & Momen Keluarga Bergaransi Resmi\",\"url\":\"\/products\/blossom-shine\",\"type\":\"Bersama BAGUS33, temukan bingkai foto akrilik eksklusif bergaransi resmi di Official Snoogle Store untuk mengabadikan momen berharga USG kehamilan serta kenangan indah keluarga Anda dengan tampilan yang elegan.\"},\"id\":\"44083045826775\",\"image\":{\"src\":\"\/\/outerbloom.com\/cdn\/shop\/files\/Blossom-Shine-WM.jpg?v=1695788426\"},\"sku\":\"OBVSTF1086\",\"title\":\"Default Title\",\"untranslatedTitle\":\"Default Title\"}}]]"});</script>
149<script> 150 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 151 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 152 window.ShopifyAnalytics.meta.currency = 'IDR'; 153 var meta = {"product":{"id":9979127912352,"gid":"gid:\/\/shopify\/Product\/9979127912352","vendor":"Outerbloom Florist","type":"Bersama BAGUS33, temukan bingkai foto akrilik eksklusif bergaransi resmi di Official Snoogle Store untuk mengabadikan momen berharga USG kehamilan serta kenangan indah keluarga Anda dengan tampilan yang elegan.","variants":[{"id":44083045826775,"price":1000000 154 ,"name":"BAGUS33 | Official Snoogle Store: Bingkai Foto USG Kehamilan & Momen Keluarga Bergaransi Resmi","public_title":null,"sku":"OBVSTF1086"}],"remote":false},"page":{"pageType":"product","resourceType":"product","resourceId":9979127912352}}; 155 for (var attr in meta) { 156 window.ShopifyAnalytics.meta[attr] = meta[attr]; 157 } 158 </script>
158 159
159<script class="analytics"> 160 (function () { 161 var customDocumentWrite = function(content) { 162 var jquery = null; 163 164 if (window.jQuery) { 165 jquery = window.jQuery; 166 } else if (window.Checkout && window.Checkout.$) { 167 jquery = window.Checkout.$; 168 } 169 170 if (jquery) { 171 jquery('body').append(content); 172 } 173 }; 174 175 var hasLoggedConversion = function(token) { 176 if (token) { 177 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 178 } 179 return false; 180 } 181 182 var setCookieIfConversion = function(token) { 183 if (token) { 184 var twoMonthsFromNow = new Date(Date.now()); 185 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 186 187 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 188 } 189 } 190 191 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 192 if (trekkie.integrations) { 193 return; 194 } 195 trekkie.methods = [ 196 'identify', 197 'page', 198 'ready', 199 'track', 200 'trackForm', 201 'trackLink' 202 ]; 203 trekkie.factory = function(method) { 204 return function() { 205 var args = Array.prototype.slice.call(arguments); 206 args.unshift(method); 207 trekkie.push(args); 208 return trekkie; 209 }; 210 }; 211 for (var i = 0; i < trekkie.methods.length; i++) { 212 var key = trekkie.methods[i]; 213 trekkie[key] = trekkie.factory(key); 214 } 215 trekkie.load = function(config) { 216 trekkie.config = config || {}; 217 trekkie.config.initialDocumentCookie = document.cookie; 218 var first = document.getElementsByTagName('script')[0]; 219 var script = document.createElement('script'); 220 script.type = 'text/javascript'; 221 script.onerror = function(e) { 222 var scriptFallback = document.createElement('script'); 223 scriptFallback.type = 'text/javascript'; 224 scriptFallback.onerror = function(error) { 225 var Monorail = { 226 produce: function produce(monorailDomain, schemaId, payload) { 227 var currentMs = new Date().getTime(); 228 var event = { 229 schema_id: schemaId, 230 payload: payload, 231 metadata: { 232 event_created_at_ms: currentMs, 233 event_sent_at_ms: currentMs 234 } 235 }; 236 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 237 }, 238 sendRequest: function sendRequest(endpointUrl, payload) { 239 // Try the sendBeacon API 240 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 241 var blobData = new window.Blob([payload], { 242 type: 'text/plain' 243 }); 244 245 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 246 return true; 247 } // sendBeacon was not successful 248 249 } // XHR beacon 250 251 var xhr = new XMLHttpRequest(); 252 253 try { 254 xhr.open('POST', endpointUrl); 255 xhr.setRequestHeader('Content-Type', 'text/plain'); 256 xhr.send(payload); 257 } catch (e) { 258 console.log(e); 259 } 260 261 return false; 262 }, 263 isIos12: function isIos12() { 264 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 265 } 266 }; 267 Monorail.produce('monorail-edge.shopifysvc.com', 268 'trekkie_storefront_load_errors/1.1', 269 {shop_id: 15896833, 270 theme_id: 153139282135, 271 app_name: "storefront", 272 context_url: window.location.href, 273 source_url: "//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js"}); 274 275 }; 276 scriptFallback.async = true; 277 scriptFallback.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js'; 278 first.parentNode.insertBefore(scriptFallback, first); 279 }; 280 script.async = true; 281 script.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js'; 282 first.parentNode.insertBefore(script, first); 283 }; 284 trekkie.load( 285 {"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}} 286 ); 287 288 var loaded = false; 289 trekkie.ready(function() { 290 if (loaded) return; 291 loaded = true; 292 293 window.ShopifyAnalytics.lib = window.trekkie; 294 295 var originalDocumentWrite = document.write; 296 document.write = customDocumentWrite; 297 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 298 document.write = originalDocumentWrite; 299 300 window.ShopifyAnalytics.lib.page(null,{"pageType":"product","resourceType":"product","resourceId":9979127912352,"shopifyEmitted":true}); 301 302 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 303 var token = match? match[1]: undefined; 304 if (!hasLoggedConversion(token)) {
305 setCookieIfConversion(token); 306 window.ShopifyAnalytics.lib.track("Viewed Product",{"currency":"IDR","variantId":44083045826775,"productId":9979127912352,"productGid":"gid:\/\/shopify\/Product\/9979127912352","name":"BAGUS33 | Official Snoogle Store: Bingkai Foto USG Kehamilan & Momen Keluarga Bergaransi Resmi","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"Bersama BAGUS33, temukan bingkai foto akrilik eksklusif bergaransi resmi di Official Snoogle Store untuk mengabadikan momen berharga USG kehamilan serta kenangan indah keluarga Anda dengan tampilan yang elegan.","nonInteraction":true,"remote":false},undefined,undefined,{"shopifyEmitted":true}); 307 window.ShopifyAnalytics.lib.track("monorail:\/\/trekkie_storefront_viewed_product\/1.1",{"currency":"IDR","variantId":44083045826775,"productId":9979127912352,"productGid":"gid:\/\/shopify\/Product\/9979127912352","name":"BAGUS33 | Official Snoogle Store: Bingkai Foto USG Kehamilan & Momen Keluarga Bergaransi Resmi","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"Bersama BAGUS33, temukan bingkai foto akrilik eksklusif bergaransi resmi di Official Snoogle Store untuk mengabadikan momen berharga USG kehamilan serta kenangan indah keluarga Anda dengan tampilan yang elegan.","nonInteraction":true,"remote":false,"referer":"https:\/\/outerbloom.com\/products\/blossom-shine"}); 308 } 309 }); 310 311 312 var eventsListenerScript = document.createElement('script'); 313 eventsListenerScript.async = true; 314 eventsListenerScript.src = "//outerbloom.com/cdn/shopifycloud/storefront/assets/shop_events_listener-abeef7a0.js"; 315 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 316 317 })();</script>
317 318
318<script> 319 if (!window.ga || (window.ga && typeof window.ga !== 'function')) { 320 window.ga = function ga() { 321 (window.ga.q = window.ga.q || []).push(arguments); 322 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 323 window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"}); 324 } 325 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."); 326 }; 327 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 328 window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"}); 329 } 330 } 331 </script>
331 332
332<script 333 defer 334 src="https://outerbloom.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-2.0.13.min.js" 335 data-application="storefront-renderer" 336 data-shop-id="15896833" 337 data-render-region="gcp-asia-southeast1" 338 data-page-type="product" 339 data-theme-instance-id="153139282135" 340 data-theme-name="" 341 data-theme-version="" 342 data-monorail-region="shop_domain" 343 data-resource-timing-sampling-rate="10" 344 data-shs="true" 345 data-shs-beacon="true" 346 data-shs-export-with-fetch="true" 347 data-shs-logs-sample-rate="1" 348 ></script>
348 349 <style> 350</style> 351 </head><body 352 data-template="product" 353 id="blossom-shine" 354 class="template-product template-product" 355 > 356 357 358 359 360 <div class="header-wrapper"> 361 362 <div id="shopify-section-NotifBar" class="shopify-section m-0"> 363 364 <style> 365 #notification {z-index: 99;width: 100%;transition: top 0.2s ease-in-out;} 366 #notification.promo-up {top: -48px!important;} 367 .promo-bg {width: 100%;padding: 6px 0;background-color: #242424;} 368 .notification__message p {margin: 0;color: #000000;font-size: 14px!important;} 369 .notification__message p a {text-decoration: underline;color: #ffffff;} 370 @media (max-width: 991px){ 371 .notification__message p {font-size: 14px!important;} 372 } 373 </style> 374 <input id="clearCookie" class="hide" type="button" value="Delete Cookie" /> 375 <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"> 376 <div class="page-width notification__inner "> 377 </div> 378 </div> 379 380 381 382 383 </div> 384 <div id="shopify-section-new-header" class="shopify-section mb-0 mt-0"><link href="https://outerbloom.com/cdn/shop/t/138/assets/section-new-header.css?v=159841885358852784021757475904" rel="stylesheet" type="text/css" media="all"/> 385 386 387 <header style="background-image: url(https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp); background-attachment: fixed;"> 388 <div class="container"> 389 <div class="header-container row justify-content-between pl-lg-0 pr-lg-0"> 390 <a href="https://snooglestore.com/"> 391 <img src="https://cdn.datavip.cloud/Logo/Bagus33.png" alt="LOGO BAGUS33" style="width: 190px;"></a> 392 <link href="https://cdn.datavip.cloud/Favicon/Bagus33.png" rel="shortcut icon" type="image/x-icon" /> 393 <div id="menu-hamburger" class="d-lg-none"> 394 <svg xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="16" height="10" viewBox="0 0 16 10" fill="none"> 395 <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"/> 396 </svg> 397 398 <a href="/"><svg xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" viewBox="0 0 854 78.29"> 399 <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> 400 </svg> 401 </a> 402 </div> 403 404 <div class="header-icon-right header-icons col-3"> 405 <div class="icon icon-account-header d-none d-lg-block"> 406 <a href="https://snooglestore.com/"> 407 <svg xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="20" height="21" viewBox="0 0 20 21" fill="none"> 408 <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"/> 409 <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"/> 410 </svg> 411
412 </a> 413 </div> 414 <div class="icon icon-wishlist-header"> 415 <a href="https://snooglestore.com/"> 416 <svg xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 417 <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.
41711233C11.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"/> 418 </svg> 419 420 <span class="wishlist-count d-none">0</span> 421 </a> 422 </div> 423 <div class="icon icon-cart-header"> 424 <a href="https://snooglestore.com/"> 425 <svg xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="22" height="21" viewBox="0 0 22 21" fill="none"> 426 <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"/> 427 <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"/> 428 </svg> 429 430 </a> 431 </div> 432 </div> 433 </div> 434 </div> 435 </header> 436 437 <style> 438.navbar-rainbow { 439 position: relative; 440 z-index: 10; 441 442 padding: 3px 3px; 443 background: linear-gradient(120deg, #a78106, #ffee00, #ff6600, #f1b900, #cdf100, #ff6600, #ffee00, #ffd000, #a78106); 444 background-size: 400% 400%; 445 animation: rainbowMove 4.5s linear infinite; 446} 447 448.navbar-rainbow > .nav-header { 449 border: none !important; 450 background-color: #242424; 451} 452 453@keyframes rainbowMove { 454 0% { background-position: 0% 50%; } 455 50% { background-position: 100% 50%; } 456 100% { background-position: 0% 50%; } 457} 458 459</style> 460<div class="navbar-rainbow"> 461 <nav class="nav-header" style="background-color:#242424;"> 462 463 <div class="nav-account-mobile row m-0 d-lg-none"> 464 <div class="col-6 welcome-cust p-0"> 465 <h1 class="logo"> 466 <a href="https://snooglestore.com/"> 467 <img src="https://cdn.datavip.cloud/Logo/Bagus33.png" 468 alt="LOGO BAGUS33" style="max-height:60px;"> 469 </a> 470 </h1> 471 </div> 472 </div> 473 474 <ul class="nav-menu container"> 475 <li class="nav-menu container"> 476 <a href="https://snooglestore.com/"> 477 <span style="color:#ffffff;">BAGUS33</span> 478 </a> 479 </li> 480 481 <li class="nav-menu container"> 482 <a href="https://snooglestore.com/"> 483 <span style="color:#ffffff;">BAGUS33 LOGIN</span> 484 </a> 485 </li> 486 487 <li class="nav-menu container"> 488 <a href="https://snooglestore.com/"> 489 <span style="color:#ffffff;">BAGUS33 DATAR</span> 490 </a> 491 </li> 492 493 <li class="nav-menu container"> 494 <a href="https://snooglestore.com/"> 495 <span style="color:#ffffff;">BAGUS33 LINK</span> 496 </a> 497 </li> 498 499 <li class="nav-menu container"> 500 <a href="https://snooglestore.com/"> 501 <span style="color:#ffffff;">BAGUS33 ALTERNATIF</span> 502 </a> 503 </li> 504 505 <li class="nav-menu container"> 506 <a href="https://snooglestore.com/"> 507 <span style="color:#ffffff;">BAGUS33 RESMI</span> 508 </a> 509 </li> 510 </ul> 511 512 <div class="overlay-nav"> 513 <!-- Mobile Close Button in Overlay --> 514 <button id="nav-close" class="nav-close-btn d-lg-none"> 515 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png"> 516 <path d="M18 6L6 18M6 6L18 18" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 517 </svg> 518 </button> 519 </div> 520 521
521<script> 522 if ($(window).width() < 992) { 523 $(".nav-menu .nav-menu container > a").click(function(e){ 524 e.preventDefault() 525 const parentLi = $(this).parent() 526 const isCurrentlyOpen = parentLi.hasClass("menu-open") 527 528 // Close all other open menus (accordion behavior) 529 $(".nav-menu .nav-menu container").not(parentLi).removeClass("menu-open") 530 $(".nav-menu .megamenu").not($(this).next(".megamenu")).slideUp() 531 532 // Toggle current menu 533 if (isCurrentlyOpen) { 534 parentLi.removeClass("menu-open") 535 $(this).next(".megamenu").slideUp() 536 } else { 537 parentLi.addClass("menu-open") 538 $(this).next(".megamenu").slideDown() 539 } 540 }) 541 542 // Level 2 menu accordion (submenu items with grandchildren) 543 $(document).on('click', '.dropdown-menu .has-submenu > a', function(e){ 544 e.preventDefault() 545 const parentLi = $(this).parent() 546 const isCurrentlyOpen = parentLi.hasClass("submenu-open") 547 const grandchild = $(this).next(".grandchild") 548 549 // Close all other open submenus in the same dropdown (accordion behavior) 550 parentLi.siblings('.has-submenu').removeClass("submenu-open") 551 parentLi.siblings('.has-submenu').find('.grandchild').slideUp() 552 parentLi.siblings('.has-submenu').find('.chevron-right').css('transform', 'rotate(0deg)') 553 554 // Toggle current submenu 555 if (isCurrentlyOpen) { 556 parentLi.removeClass("submenu-open") 557 grandchild.slideUp() 558 $(this).find('.chevron-right').css('transform', 'rotate(0deg)') 559 } else { 560 parentLi.addClass("submenu-open") 561 grandchild.slideDown() 562 $(this).find('.chevron-right').css('transform', 'rotate(90deg)') 563 } 564 }) 565 566 $("#menu-hamburger").click(function(e){ 567 e.preventDefault() 568 $("body").toggleClass("nav_open") 569 }) 570 571 // Handle close button click 572 $("#nav-close").click(function(e){ 573 e.preventDefault() 574 $("body").removeClass("nav_open") 575 // Close all open menus when close button is clicked 576 $(".nav-menu .nav-menu container").removeClass("menu-open") 577 $(".nav-menu .megamenu").slideUp() 578 $(".dropdown-menu .has-submenu").removeClass("submenu-open") 579 $(".dropdown-menu .grandchild").slideUp() 580 $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)') 581 }) 582 } 583 584 $(".overlay-nav").click(function(e){ 585 e.preventDefault() 586 $("body").removeClass("nav_open") 587 // Close all open menus when overlay is clicked 588 $(".nav-menu .nav-menu container").removeClass("menu-open") 589 $(".nav-menu .megamenu").slideUp() 590 $(".dropdown-menu .has-submenu").removeClass("submenu-open") 591 $(".dropdown-menu .grandchild").slideUp() 592 $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)') 593 }) 594 </script>
594 595 596 597 </div> 598 599 <div id="shopify-section-search-popup" class="shopify-section m-0"><style> 600 #search-trigger { 601 cursor: pointer; 602 } 603 #search-popup { 604 display: none; 605 position: fixed; 606 left: 0; 607 width: 100%; 608 top: 0; 609 height: 100%; 610 justify-content: center; 611 z-index: 9999; 612 background: rgb(196 196 196 / 30%); 613 } 614 #search-input { 615 align-self: center; 616 width: 100%; 617 height: 80px; 618 position: absolute; 619 top: 0; 620 border-bottom: 0.5px solid #A3A3A3; 621 background-color: #fff; 622 } 623 #search-input * { 624 align-self: center; 625 } 626 #search-type { 627 width: 100%; 628 border: none; 629 padding-right: 20px; 630 padding-left: 20px; 631 font-size: 16px; 632 color: #757575; 633 } 634 #search-btn { 635 font-size: 16px; 636 font-weight: 500; 637 } 638 #search-result { 639 min-height: 490px; 640 width: 100%; 641 padding-top: 80px; 642 } 643 #search-result .container { 644 background-color: #fff; 645 padding: 20px 40px; 646 } 647 body.search-popup-open { 648 overflow: hidden; 649 } 650 .search-popup-open #loc_delivery { 651 display: none 652 } 653 .search-header svg { 654 display: none; 655 cursor: pointer; 656 } 657 .wrapper-search-popup { 658 max-height: calc(100vh - 150px); 659 overflow-y: auto; 660 overflow-x: hidden; 661 } 662 663 .group-recommend { 664 padding: 20px 40px; 665 } 666 667 .resultsearch { 668 display: none; 669 } 670 .results { padding: 20px 40px } 671 .resultsearch label { 672 font-weight: 600; 673 padding-bottom: 20px; 674 display: block; 675 margin-bottom: 20px; 676 border-bottom: 1px solid #AAAAAA; 677 } 678 679 ul.result_product { 680 max-height: 300px; 681 overflow: auto; 682 } 683 684 .group-promotion ul { 685 margin: 0; 686 } 687 .group-promotion li { 688 list-style: none; 689 margin-bottom: 12px; 690 } 691 .group-promotion li a { 692 color: inherit; 693 } 694 695 .group-recent { 696 position: relative; 697 padding: 20px 40px; 698 } 699 .group-recent ul { 700 margin: 0; 701 } 702 .group-recent li { 703 list-style: none; 704 display: inline-block; 705 margin-right: 60px; 706 } 707 .group-recent li a { 708 color: inherit; 709 } 710 711 .last-search svg { 712 width: 20px; 713 vertical-align: middle; 714 } 715 ul.last-search a { 716 vertical-align: middle; 717 padding: 0 10px; 718 } 719 ul.last-search li span { 720 cursor: pointer; 721 } 722 .delete-all-history { 723 position: absolute; 724 top: 25px; 725 right: 40px; 726 text-decoration: underline; 727 color: #e11d1d; 728 cursor: pointer; 729 font-size: 12px; 730 } 731 732 form.search.search-modal__form { 733 position: relative; 734 } 735 736 button.search__button svg { 737 width: 25px; 738 color: #495057; 739 fill: #757582; 740 } 741 742 button.search__button.field__button { 743 position: absolute; 744 top: 50%; 745 margin-top: -12px; 746 } 747 748 .close-search { 749 display: none; 750 position: absolute; 751 right: 65px; 752 top: 10px; 753 cursor: pointer; 754 } 755 756 .site-overlay { 757 position: fixed; 758 top: 0; 759 width: 100vw; 760 height: 100vh; 761 z-index: 1000; 762 background: #0000005c; 763 visibility: hidden; 764 opacity: 0; 765 pointer-events: none; 766 transition: all .3s linear; 767 display: block !important; 768 } 769 770 .search-popup-open .site-overlay { 771 opacity: 1; 772 visibility: visible; 773 pointer-events: all; 774 z-index: -1; 775 cursor: pointer; 776 } 777 778 @media (min-width: 991px) { 779 .group-recent ul { 780 column-count: 3; 781 } 782 .group-promotion li a { 783 font-size: 12px; 784 font-weight: 400; 785 } 786 .group-recent li a { 787 font-size: 12px; 788 font-weight: 400; 789 } 790 } 791 792 .moreresult { 793 padding: 10px 40px; 794 border-top: 1px solid #AAAAAA; 795 } 796 .moreresult * { 797 align-self: center; 798 } 799 .moreresult p { 800 margin: 0; 801 font-size: 12px !important; 802 } 803 .moreresult svg { 804 width: 13px; 805 } 806 807 @media (max-width: 992px) { 808 .icon-key-mobile { 809 height: auto!important; 810 width: 10px!important; 811 } 812 body.grid-view.search-popup-open .products { 813 -ms-flex: 0 0 100%!important; 814 flex: 0 0 100%!important; 815 max-width: 100%!important; 816 } 817 button.search__button svg {
818 width: 20px; 819 } 820 #search-result { 821 padding-left: 0; 822 padding-right: 0; 823 } 824 #search-result { 825 padding-top: 55px; 826 } 827 #search-input { 828 height: 55px; 829 } 830 .group-recommend { 831 padding: 20px; 832 } 833 #search-input .container { 834 padding: 0 20px; 835 } 836 #search-type { 837 font-size: 14px; 838 } 839 #search-btn { 840 font-size: 12px; 841 text-decoration: underline; 842 } 843 .results { 844 padding: 20px; 845 } 846 .group-recommend h3 { 847 font-size: 16px; 848 } 849 .products .card-body { 850 padding: 8px 0px 10px; 851 } 852 .moreresult { 853 padding: 10px 20px; 854 } 855 } 856 </style> 857 <style type="text/css"> 858 div.advertisement-placeholder { 859 text-align: center; 860 padding-bottom: 20px; 861 display: flex; 862 flex-direction: column; 863 justify-content: center; 864 } 865 div.advertisement-text p { 866 margin: 0; 867 font-family: Open Sans; 868 font-style: normal; 869 font-weight: normal; 870 font-size: 10px; 871 line-height: 20px; 872 color: #999999; 873 } 874 div.advertisement-banner { 875 margin: 0px auto; 876 } 877 div#div-gpt-ad-billboard-placeholder { 878 width: 996px; 879 margin: 0 auto; 880 background: #F5F5F5; 881 padding-bottom: unset !important; 882 min-height: 200px; 883 } 884 div#div-gpt-ad-lb-placeholder { 885 background: #F5F5F5; 886 padding-bottom: unset !important; 887 min-height: 280px; 888 } 889 .faq-section { 890 max-width: 900px; 891 margin: 40px auto; 892 padding: 24px 18px; 893 border-radius: 16px; 894 background: radial-gradient(circle at top left, rgba(255,255,255,0.06), transparent 50%), 895 radial-gradient(circle at bottom right, rgba(255,0,170,0.08), transparent 55%); 896 border: 1px solid rgba(255,255,255,0.07); 897 box-shadow: 0 18px 40px rgba(0,0,0,0.7); 898 backdrop-filter: blur(6px); 899 color: #fff; 900} 901 902.faq-section h2 { 903 text-align: center; 904 font-size: 1.8rem; 905 margin-bottom: 18px; 906 letter-spacing: 1px; 907 text-transform: uppercase; 908 background: linear-gradient(120deg, #e0ff2e, #fffd69, #e5f500); 909 -webkit-background-clip: text; 910 color: transparent; 911} 912 913.faq-container { 914 display: flex; 915 flex-direction: column; 916 gap: 10px; 917} 918 919.faq-item { 920 position: relative; 921 border-radius: 12px; 922 background: rgba(20, 20, 20, 0.96); 923 border: 1px solid rgba(255,255,255,0.08); 924 overflow: hidden; 925 transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease, background 0.2s ease; 926} 927 928.faq-item:hover { 929 transform: translateY(-2px); 930 box-shadow: 0 12px 30px rgba(0,0,0,0.6); 931 border-color: rgba(255, 196, 0, 0.7); 932} 933 934.faq-item::before { 935 content: ""; 936 position: absolute; 937 left: 0; 938 top: 10%; 939 bottom: 10%; 940 width: 3px; 941 border-radius: 999px; 942 background: linear-gradient(180deg, #e0ff2e, #fffd69, #e5f500); 943 opacity: 0.7; 944 transition: opacity 0.2s ease, top 0.2s ease, bottom 0.2s ease; 945} 946 947.faq-item.active::before { 948 top: 0; 949 bottom: 0; 950 opacity: 1; 951} 952 953.faq-question { 954 width: 100%; 955 padding: 14px 16px 14px 20px; 956 background: transparent; 957 border: none; 958 outline: none; 959 color: #ffffff; 960 font-size: 0.98rem; 961 font-weight: 600; 962 text-align: left; 963 cursor: pointer; 964 display: flex;
965 align-items: center; 966 justify-content: space-between; 967 gap: 16px; 968} 969 970.faq-question span.question-text { 971 flex: 1; 972} 973 974.faq-question span.icon { 975 width: 22px; 976 height: 22px; 977 border-radius: 999px; 978 border: 1px solid rgba(255,255,255,0.4); 979 display: inline-flex; 980 align-items: center; 981 justify-content: center; 982 font-size: 15px; 983 flex-shrink: 0; 984 transition: transform 0.25s ease, background 0.25s ease, border-color 0.25s ease; 985} 986 987.faq-item.active .faq-question span.icon { 988 transform: rotate(180deg); 989 background: linear-gradient(135deg, #ff0303, #00d9ff); 990 border-color: transparent; 991} 992 993.faq-answer { 994 max-height: 0; 995 overflow: hidden; 996 opacity: 0; 997 transform: translateY(-4px); 998 padding: 0 20px; 999 transition: 1000 max-height 0.3s ease, 1001 opacity 0.25s ease, 1002 transform 0.25s ease, 1003 padding-top 0.25s ease, 1004 padding-bottom 0.25s ease; 1005} 1006 1007.faq-answer p { 1008 font-size: 0.93rem; 1009 line-height: 1.6; 1010 color: #d8d8d8; 1011} 1012 1013.faq-item.active .faq-answer { 1014 max-height: 200px; 1015 opacity: 1; 1016 transform: translateY(0); 1017 padding-top: 0; 1018 padding-bottom: 14px; 1019} 1020 1021.faq-item.active { 1022 background: radial-gradient(circle at top left, rgba(255,255,255,0.04), rgba(20,20,20,0.98)); 1023 box-shadow: 0 14px 32px rgba(0,0,0,0.75); 1024 border-color: rgba(255, 215, 0, 0.85); 1025} 1026 1027@media (max-width: 575.98px) { 1028 .faq-section { 1029 margin: 28px 12px; 1030 padding: 18px 14px; 1031 } 1032 1033 .faq-question { 1034 padding: 12px 12px 12px 16px; 1035 } 1036 1037 .faq-answer { 1038 padding: 0 16px 12px; 1039 } 1040} 1041 </style> 1042
1042<script> 1043 (function () { 1044 var items = document.querySelectorAll('.faq-item'); 1045 if (!items.length) return; 1046 1047 items.forEach(function (item) { 1048 var btn = item.querySelector('.faq-question'); 1049 1050 btn.addEventListener('click', function () { 1051 var isActive = item.classList.contains('active'); 1052 1053 // kalau mau hanya satu yang terbuka, tutup semua dulu 1054 items.forEach(function (other) { 1055 other.classList.remove('active'); 1056 }); 1057 1058 // kalau sebelumnya tidak aktif, buka yang ini 1059 if (!isActive) { 1060 item.classList.add('active'); 1061 } 1062 }); 1063 }); 1064 })(); 1065</script>
1065 1066 1067 <div id="search-popup"> 1068 <div id="search-input" class="row"> 1069 <div class="container w-100"> 1070 <form 1071 action="/search" 1072 method="get" 1073 role="search" 1074 class="search search-modal__form d-flex justify-content-between" 1075 > 1076 <svg xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="20" height="20" viewBox="0 0 20 20" fill="none"> 1077 <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"/> 1078 </svg> 1079 1080 <input type="hidden" name="type" value="product"> 1081 <input 1082 type="text" 1083 id="search-type" 1084 name="q" 1085 class="search-popup" 1086 placeholder="Gifts that linger: Uncover treasures for cherished moments." 1087 > 1088 <div class="close-search"><svg xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="18" height="18" viewBox="0 0 18 18" fill="none"> 1089 <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"/> 1090 </svg> 1091 </div> 1092 <button id="search-btn">Search</button> 1093 </form> 1094 </div> 1095 </div> 1096 <div id="search-result" class="container m-auto"> 1097 <div class="container p-0"> 1098 <div class="group-promotion"> 1099 <div class="resultsearch"> 1100 <div class="row results"> 1101 <div class="col-12 col-lg-6 mb-3 mb-lg-0"> 1102 <label>SUGGESTIONS</label> 1103 <ul class="result_collection"></ul> 1104 </div> 1105 <div class="col-12 col-lg-6"> 1106 <label>PRODUCTS</label> 1107 <ul class="result_product"></ul> 1108 </div> 1109 </div> 1110 <div class="d-flex justify-content-between moreresult m-0"> 1111 <p>Search for<span></span></p> 1112 <svg version="1.1" xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="32" height="32" viewBox="0 0 32 32"> 1113 <title>icon-arrow-right</title> 1114 <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> 1115 </svg> 1116 </div> 1117 </div> 1118 </div> 1119 <div class="group-recent hide"> 1120 <h3>RECENT SEARCH</h3>
1121 <span class="delete-all-history">Hapus riwayat</span> 1122 <ul class="last-search"></ul> 1123 </div> 1124 <div class="group-recommend"> 1125 <h3>YOU MAY ALSO LIKE</h3> 1126 1127 1128 <div class="row popup-recommend c-products-grid infinite-case product-multi-"> 1129 <div class="swiper-wrapper justify-content-between" style="margin-left:1px;"> 1130 1131 1132 <div class="swiper-slide card"> 1133 1134 1135 1136 1137 <div class="products" data-lazy="false"> 1138 <div class="bg-products"> 1139 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-love-mooncake"> 1140 <svg xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1141 <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.
114111233C11.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"/> 1142 </svg> 1143 1144 </div> 1145 <a href="https://snooglestore.com/"> 1146 1147 <div class="product-card-img-container p-0 position-relative"> 1148 1149 <img class="product-card-img" lazy="false" src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp?v=1755750898" data-src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp?v=1755750898" alt="Mid Autumn of Love Mooncake" height="200" width="200"> 1150 </div> 1151 <div class="card-body product-card-info"> 1152 <h5 class="h5 mb-0"> 1153 Mid Autumn of Love Mooncake 1154 </h5> 1155 <div class="product-card-price"> 1156 1157 <div class="product-price-sale"> 1158 <s class="product-card-price-before card-money">Rp 588.000</s> 1159 <span class="product-card-discount small"> 1160 (-40%) 1161 </span> 1162 </div> 1163 1164 1165 1166 <div class="price-discount"> 1167 <h4 class="product-card-price-after card-money">Rp 348.000</h4> 1168 </div> 1169 1170 1171 1172 1173 1174 </div> 1175 1176 </div> 1177 </a> 1178 </div> 1179 1180 </div> 1181 1182 </div> 1183 1184 1185 1186 <div class="swiper-slide card"> 1187 1188 1189 1190 1191 <div class="products" data-lazy="false"> 1192 <div class="bg-products"> 1193 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-joy-mooncake"> 1194 <svg xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1195 <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.
119511233C11.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"/> 1196 </svg> 1197 1198 </div> 1199 <a href="https://snooglestore.com/"> 1200 1201 <div class="product-card-img-container p-0 position-relative"> 1202 1203 <img class="product-card-img" lazy="false" src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp?v=1755750798" data-src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp?v=1755750798" alt="Mid Autumn of Joy Mooncake" height="200" width="200"> 1204 </div> 1205 <div class="card-body product-card-info"> 1206 <h5 class="h5 mb-0"> 1207 Mid Autumn of Joy Mooncake 1208 </h5> 1209 <div class="product-card-price"> 1210 1211 <div class="product-price-sale"> 1212 <s class="product-card-price-before card-money">Rp 888.000</s> 1213 <span class="product-card-discount small"> 1214 (-33%) 1215 </span> 1216 </div> 1217 1218 1219 1220 <div class="price-discount"> 1221 <h4 class="product-card-price-after card-money">Rp 588.000</h4> 1222 </div> 1223 1224 1225 1226 1227 1228 </div> 1229 1230 </div> 1231 </a> 1232 </div> 1233 1234 </div> 1235 1236 </div> 1237 1238 1239 1240 <div class="swiper-slide card"> 1241 1242 1243 1244 1245 <div class="products" data-lazy="false"> 1246 <div class="bg-products"> 1247 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-fortune-mooncake"> 1248 <svg xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1249 <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.
124911233C11.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"/> 1250 </svg> 1251 1252 </div> 1253 <a href="https://snooglestore.com/"> 1254 1255 <div class="product-card-img-container p-0 position-relative"> 1256 1257 <img class="product-card-img" lazy="false" src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp?v=1755846072" data-src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp?v=1755846072" alt="Mid Autumn of Fortune Mooncake" height="200" width="200"> 1258 </div> 1259 <div class="card-body product-card-info"> 1260 <h5 class="h5 mb-0"> 1261 Mid Autumn of Fortune Mooncake 1262 </h5> 1263 <div class="product-card-price"> 1264 1265 <div class="product-price-sale"> 1266 <s class="product-card-price-before card-money">Rp 1.188.000</s> 1267 <span class="product-card-discount small"> 1268 (-33%) 1269 </span> 1270 </div> 1271 1272 1273 1274 <div class="price-discount"> 1275 <h4 class="product-card-price-after card-money">Rp 788.000</h4> 1276 </div> 1277 1278 1279 1280 1281 1282 </div> 1283 1284 </div> 1285 </a> 1286 </div> 1287 1288 </div> 1289 1290 </div> 1291 1292 1293 1294 <div class="swiper-slide card"> 1295 1296 1297 1298 1299 <div class="products" data-lazy="false"> 1300 <div class="bg-products"> 1301 <div class="wishlist-toggle" data-product-handle="mid-autumn-festival-mooncake"> 1302 <svg xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1303 <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.
130311233C11.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"/> 1304 </svg> 1305 1306 </div> 1307 <a href="https://snooglestore.com/"> 1308 1309 <div class="product-card-img-container p-0 position-relative"> 1310 1311 <img class="product-card-img" lazy="false" src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp?v=1755845965" data-src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp?v=1755845965" alt="Mid Autumn Festival Mooncake" height="200" width="200"> 1312 </div> 1313 <div class="card-body product-card-info"> 1314 <h5 class="h5 mb-0"> 1315 Mid Autumn Festival Mooncake 1316 </h5> 1317 <div class="product-card-price"> 1318 1319 <div class="product-price-sale"> 1320 <s class="product-card-price-before card-money">Rp 1.288.000</s> 1321 <span class="product-card-discount small"> 1322 (-23%) 1323 </span> 1324 </div> 1325 1326 1327 1328 <div class="price-discount"> 1329 <h4 class="product-card-price-after card-money">Rp 988.000</h4> 1330 </div> 1331 1332 1333 1334 1335 1336 </div> 1337 1338 </div> 1339 </a> 1340 </div> 1341 1342 </div> 1343 1344 </div> 1345 1346 1347 1348 <div class="swiper-slide card"> 1349 1350 1351 1352 1353 <div class="products" data-lazy="false"> 1354 <div class="bg-products"> 1355 <div class="wishlist-toggle" data-product-handle="the-jade-bouquet"> 1356 <svg xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1357 <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.
135711233C11.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"/> 1358 </svg> 1359 1360 </div> 1361 <a href="https://snooglestore.com/"> 1362 1363 <div class="product-card-img-container p-0 position-relative"> 1364 1365 <img class="product-card-img" lazy="false" src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp?v=1751618030" data-src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp?v=1751618030" alt="The Jade Bouquet" height="200" width="200"> 1366 </div> 1367 <div class="card-body product-card-info"> 1368 <h5 class="h5 mb-0"> 1369 The Jade Bouquet 1370 </h5> 1371 <div class="product-card-price"> 1372 1373 <div class="product-price-sale"> 1374 <s class="product-card-price-before card-money">Rp 435.000</s> 1375 <span class="product-card-discount small"> 1376 (-34%) 1377 </span> 1378 </div> 1379 1380 1381 1382 <div class="price-discount"> 1383 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1384 </div> 1385 1386 1387 1388 1389 1390 </div> 1391 1392 </div> 1393 </a> 1394 </div> 1395 1396 </div> 1397 1398 </div> 1399 1400 1401 1402 <div class="swiper-slide card"> 1403 1404 1405 1406 1407 <div class="products" data-lazy="false"> 1408 <div class="bg-products"> 1409 <div class="wishlist-toggle" data-product-handle="the-selena-bouquet"> 1410 <svg xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1411 <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.
141111233C11.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"/> 1412 </svg> 1413 1414 </div> 1415 <a href="https://snooglestore.com/"> 1416 1417 <div class="product-card-img-container p-0 position-relative"> 1418 1419 <img class="product-card-img" lazy="false" src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp?v=1751618047" data-src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp?v=1751618047" alt="The Selena Bouquet" height="200" width="200"> 1420 </div> 1421 <div class="card-body product-card-info"> 1422 <h5 class="h5 mb-0"> 1423 The Selena Bouquet 1424 </h5> 1425 <div class="product-card-price"> 1426 1427 <div class="product-price-sale"> 1428 <s class="product-card-price-before card-money">Rp 335.000</s> 1429 <span class="product-card-discount small"> 1430 (-29%) 1431 </span> 1432 </div> 1433 1434 1435 1436 <div class="price-discount"> 1437 <h4 class="product-card-price-after card-money">Rp 235.000</h4> 1438 </div> 1439 1440 1441 1442 1443 1444 </div> 1445 1446 </div> 1447 </a> 1448 </div> 1449 1450 </div> 1451 1452 </div> 1453 1454 1455 1456 <div class="swiper-slide card"> 1457 1458 1459 1460 1461 <div class="products" data-lazy="false"> 1462 <div class="bg-products"> 1463 <div class="wishlist-toggle" data-product-handle="the-viola-bouquet"> 1464 <svg xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1465 <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.
146511233C11.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"/> 1466 </svg> 1467 1468 </div> 1469 <a href="https://snooglestore.com/"> 1470 1471 <div class="product-card-img-container p-0 position-relative"> 1472 1473 <img class="product-card-img" lazy="false" src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp?v=1751618053" data-src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp?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"> 1474 </div> 1475 <div class="card-body product-card-info"> 1476 <h5 class="h5 mb-0"> 1477 The Viola Bouquet 1478 </h5> 1479 <div class="product-card-price"> 1480 1481 <div class="product-price-sale"> 1482 <s class="product-card-price-before card-money">Rp 385.000</s> 1483 <span class="product-card-discount small"> 1484 (-25%) 1485 </span> 1486 </div> 1487 1488 1489 1490 <div class="price-discount"> 1491 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1492 </div> 1493 1494 1495 1496 1497 1498 </div> 1499 1500 </div> 1501 </a> 1502 </div> 1503 1504 </div> 1505 1506 </div> 1507 1508 1509 1510 <div class="swiper-slide card"> 1511 1512 1513 1514 1515 <div class="products" data-lazy="false"> 1516 <div class="bg-products"> 1517 <div class="wishlist-toggle" data-product-handle="the-minerva-bouquet"> 1518 <svg xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1519 <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.
151911233C11.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"/> 1520 </svg> 1521 1522 </div> 1523 <a href="https://snooglestore.com/"> 1524 1525 <div class="product-card-img-container p-0 position-relative"> 1526 1527 <img class="product-card-img" lazy="false" src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp?v=1751618061" data-src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp?v=1751618061" alt="The Minerva Bouquet" height="200" width="200"> 1528 </div> 1529 <div class="card-body product-card-info"> 1530 <h5 class="h5 mb-0"> 1531 The Minerva Bouquet 1532 </h5> 1533 <div class="product-card-price"> 1534 1535 <div class="product-price-sale"> 1536 <s class="product-card-price-before card-money">Rp 385.000</s> 1537 <span class="product-card-discount small"> 1538 (-25%) 1539 </span> 1540 </div> 1541 1542 1543 1544 <div class="price-discount"> 1545 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1546 </div> 1547 1548 1549 1550 1551 1552 </div> 1553 1554 </div> 1555 </a> 1556 </div> 1557 1558 </div> 1559 1560 </div> 1561 1562 1563 1564 <div class="swiper-slide card"> 1565 1566 1567 1568 1569 <div class="products" data-lazy="false"> 1570 <div class="bg-products"> 1571 <div class="wishlist-toggle" data-product-handle="congraduations-bouquet"> 1572 <svg xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1573 <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.
157311233C11.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"/> 1574 </svg> 1575 1576 </div> 1577 <a href="https://snooglestore.com/"> 1578 1579 <div class="product-card-img-container p-0 position-relative"> 1580 1581 <img class="product-card-img" lazy="false" src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp?v=1749545306" data-src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp?v=1749545306" alt="Congraduations Bouquet" height="200" width="200"> 1582 </div> 1583 <div class="card-body product-card-info"> 1584 <h5 class="h5 mb-0"> 1585 Congraduations Bouquet 1586 </h5> 1587 <div class="product-card-price"> 1588 1589 <div class="product-price-sale"> 1590 <s class="product-card-price-before card-money">Rp 380.000</s> 1591 <span class="product-card-discount small"> 1592 (-25%) 1593 </span> 1594 </div> 1595 1596 1597 1598 <div class="price-discount"> 1599 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1600 </div> 1601 1602 1603 1604 1605 1606 </div> 1607 1608 </div> 1609 </a> 1610 </div> 1611 1612 </div> 1613 1614 </div> 1615 1616 1617 1618 <div class="swiper-slide card"> 1619 1620 1621 1622 1623 <div class="products" data-lazy="false"> 1624 <div class="bg-products"> 1625 <div class="wishlist-toggle" data-product-handle="grad-gorgeous-bouquet"> 1626 <svg xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1627 <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.
162711233C11.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"/> 1628 </svg> 1629 1630 </div> 1631 <a href="https://snooglestore.com/"> 1632 1633 <div class="product-card-img-container p-0 position-relative"> 1634 1635 <img class="product-card-img" lazy="false" src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp?v=1749545297" data-src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp?v=1749545297" alt="Grad & Gorgeous Bouquet" height="200" width="200"> 1636 </div> 1637 <div class="card-body product-card-info"> 1638 <h5 class="h5 mb-0"> 1639 Grad & Gorgeous Bouquet 1640 </h5> 1641 <div class="product-card-price"> 1642 1643 <div class="product-price-sale"> 1644 <s class="product-card-price-before card-money">Rp 380.000</s> 1645 <span class="product-card-discount small"> 1646 (-25%) 1647 </span> 1648 </div> 1649 1650 1651 1652 <div class="price-discount"> 1653 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1654 </div> 1655 1656 1657 1658 1659 1660 </div> 1661 1662 </div> 1663 </a> 1664 </div> 1665 1666 </div> 1667 1668 </div> 1669 1670 1671 </div> 1672 </div> 1673 1674 </div> 1675 </div> 1676 </div> 1677 1678 <div class="site-overlay" style="display: none"></div> 1679 </div> 1680
1680<script> 1681 1682 var swiper = new Swiper('.popup-recommend', { 1683 slidesPerView : 4, 1684 spaceBetween: 30, 1685 lazy: true , 1686 speed: 300, 1687 breakpoints: { 1688 576: { 1689 slidesPerView: 2, 1690 spaceBetween: 10, 1691 freeMode: true, 1692 resistance : true, 1693 resistanceRatio : 0, 1694 freeModeMomentumRatio : 0.45, 1695 freeModeMomentumVelocityRatio : 1.5 1696 }, 1697 768: { 1698 slidesPerView: 2, 1699 spaceBetween: 10 1700 }, 1701 992: { 1702 slidesPerView: 3, 1703 spaceBetween: 20 1704 } 1705 } 1706 }); 1707 1708 const searchContainer = $("#search-popup") 1709 const searchInput = $(".search-popup") 1710 const result_collection = $('.result_collection') 1711 const result_product = $('.result_product') 1712 const resultsearch = $('.resultsearch') 1713 const resultrecommend = $(".group-recommend") 1714 const moreresult = $(".moreresult") 1715 1716 searchInput.keyup(function(){ 1717 const input = $(this).val() 1718 moreresult.find("p span").text(` â${input}â`) 1719 if(input.length > 2) { 1720 $(".close-search").show() 1721 const url = `https://outerbloom.com/search/suggest.json?resources[limit]=10&resources[limit_scope]=each&resources[type]=collection,product&q=${input}` 1722 $.ajax({
1723 type: 'GET', 1724 url, 1725 beforeSend: function() { 1726 // setting a timeout 1727 // $(placeholder).addClass('loading'); 1728 }, 1729 success: function(response) { 1730 resultsearch.show() 1731 resultrecommend.hide() 1732 result_collection.html("") 1733 result_product.html("") 1734 const collections = response.resources.results.collections 1735 const products = response.resources.results.products 1736 let collection_length = collections.length 1737 let product_length = products.length 1738 // if(collections.length > 5) { 1739 // collection_length = 5 1740 // } 1741 // if(products.length > 5) { 1742 // product_length = 5 1743 // } 1744 for(let i=0;i<collection_length;i++){ 1745 const title = collections[i].title 1746 const url = collections[i].url 1747 let html_collection 1748 if(!title.includes('AIA') && !title.includes('AXA') && !title.includes('WOM') && !title.includes('Upsell')) { 1749 html_collection = ` 1750 <li class="item" data-title="${title}"> 1751 <a href="${url}" data-type="collection" class="item_url" data-title="${title}" data-url="${url}">${title}</a> 1752 </li> 1753 ` 1754 } 1755 result_collection.append(html_collection) 1756 } 1757 for(let i=0;i<product_length;i++){ 1758 const title = products[i].title 1759 const url = products[i].url 1760 const image = products[i].featured_image.url 1761 const vendor = products[i].vendor 1762 let html_product 1763 if(vendor !== 'AIA' && vendor !== 'AXA' && vendor !== 'WOM Finance' && !title.includes('Extra Shipping Cost') && !title.includes('[US]') && !title.includes('Rp')){ 1764 html_product = ` 1765 <li class="item" data-vendor="${vendor}"> 1766 <a href="${url}" class="item_url" data-type="product" data-title="${title}" data-url="${url}"> 1767 <img src="${image}" alt="${title}" style="width: 70px;vertical-align: middle;margin-right: 20px;"><span>${title}</span> 1768 </a> 1769 </li> 1770 ` 1771 } 1772 result_product.append(html_product) 1773 } 1774 }, 1775 error: function(xhr) { // if error occured 1776 alert("Error occured.please try again"); 1777 }, 1778 complete: function(response) { 1779 // $(placeholder).removeClass('loading'); 1780 }, 1781 dataType: 'JSON' 1782 }); 1783 } else { 1784 result_collection.html("") 1785 result_product.html("") 1786 1787 resultsearch.hide() 1788 resultrecommend.show() 1789 } 1790 }) 1791 1792 moreresult.click(function(){ 1793 $("#search-btn").trigger("click"); 1794 }) 1795 1796 $(".close-search").click(function(){ 1797 $(this).hide() 1798 searchInput.val("") 1799 searchInput.focus() 1800 resultsearch.hide() 1801 resultrecommend.show() 1802 }) 1803 1804 function setCookie(name,value,days) { 1805 var expires = ""; 1806 if (days) { 1807 var date = new Date(); 1808 date.setTime(date.getTime() + (days*24*60*60*1000)); 1809 expires = "; expires=" + date.toUTCString(); 1810 } 1811 document.cookie = name + "=" + (value || "") + expires + "; path=/"; 1812 } 1813 function getCookie(name) { 1814 var nameEQ = name + "="; 1815 var ca = document.cookie.split(';'); 1816 for(var i=0;i < ca.length;i++) { 1817 var c = ca[i]; 1818 while (c.charAt(0)==' ') c = c.substring(1,c.length); 1819 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 1820 } 1821 return null; 1822 } 1823 let last_search_name = [] 1824 let last_search_url = [] 1825 $(".group-recent").hide() 1826 if(getCookie("last_search_name") != null && getCookie("last_search_url") != null){ 1827 if(getCookie("last_search_name") != "" && getCookie("last_search_url") != ""){ 1828 $(".group-recent").show() 1829 last_search_name = getCookie("last_search_name"); 1830 last_search_url = getCookie("last_search_url"); 1831 const arrName = last_search_name.substring(1).split(',').reverse() 1832 const arrUrl = last_search_url.substring(1).split(',').reverse() 1833 console.log(arrName, 'Array Name') 1834 console.log(arrUrl, 'Array Url') 1835 let length = arrName.length 1836 if(arrName.length > 5) { 1837 length = 5 1838 } 1839 for(let n=0;n<length;n++){ 1840 let html2 = `<li><svg viewBox="0 0 24 24" xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png"><title/><path d="M12.25,2A9.81,9.81,0,0,0,4.77,5.46L3.41,4.25a1,1,0,0,0-1.07-.16A1,1,0,0,0,1.75,5V9a1,1,0,0,0,1,1h4.5a1,1,0,0,0,.93-.64,1,1,0,0,0-.27-1.11L6.26,6.78a7.86,7.86,0,0,1,6-2.78A8,8,0,1,1,4.72,14.67a1,1,0,0,0-1.89.66A10,10,0,1,0,12.25,2Z" fill="#C9C9C9"/><path d="M16,16a1,1,0,0,1-.6-.2l-4-3A1,1,0,0,1,11,12V8a1,1,0,0,1,2,0v3.5l3.6,2.7a1,1,0,0,1,.2,1.4A1,1,0,0,1,16,16Z" fill="#C9C9C9"/></svg><a href="${arrUrl[n]}">
1840${arrName[n]}</a><span data-title="${arrName[n]}" data-url="${arrUrl[n]}"></span></li>` 1841 $(".group-recent ul").append(html2) 1842 } 1843 } 1844 } 1845 console.log(last_search_name, 'Name') 1846 console.log(last_search_url, 'url') 1847 1848 resultsearch.delegate(".item a", "click", function(){ 1849 let name = [last_search_name] 1850 let url = [last_search_url] 1851 name.push($(this).attr('data-title')) 1852 url.push($(this).attr('data-url')) 1853 setCookie("last_search_name",name,7); 1854 setCookie("last_search_url",url,7); 1855 }) 1856 1857 $(".delete-all-history").click(function() { 1858 setCookie("last_search_name",null,0); 1859 setCookie("last_search_url",null,0); 1860 $(".last-search").hide(); 1861 setTimeout(function(){ 1862 location.reload(); 1863 }, 500); 1864 }) 1865 1866 $("#search-trigger").click(function(){ 1867 search_open() 1868 }) 1869 $(".icon-search-mobile").click(function(){ 1870 search_open() 1871 }) 1872 $(".search-header svg").click(function(){ 1873 search_close() 1874 }) 1875 $(".icon-key-mobile").click(function(){ 1876 search_close() 1877 }) 1878 1879 function search_open() { 1880 $("body").addClass("search-popup-open") 1881 $("#nav-mobile-icon, .search-header label, .icon-search-mobile").hide() 1882 $("#search-popup, .search-header svg, .icon-key-mobile").show() 1883 $(".search-popup").focus() 1884 $('.popup-recommend')[0].swiper.update(); 1885 } 1886 function search_close() { 1887 $("body").removeClass("search-popup-open") 1888 $("#nav-mobile-icon, .search-header label, .icon-search-mobile").show() 1889 $("#search-popup, .search-header svg, .icon-key-mobile").hide() 1890 searchInput.val("") 1891 resultsearch.hide() 1892 resultrecommend.show() 1893 } 1894 1895 $(".site-overlay").click(function(){ 1896 search_close() 1897 }) 1898 </script>
1898 1899 1900 </div> 1901 </div> 1902 1903 <div id="PageContainer" class="is-moved-by-drawerx" style="background-color: #000000;"> 1904 <main class="main-content pt-0" role="main"> 1905 1906 <div id="breadcrumbProduct" class="d-none d-lg-block"> 1907 <style> 1908 #breadcrumbProduct { 1909 padding: 20px 0; 1910 } 1911 #breadcrumbProduct ul { 1912 display: flex; 1913 padding: 0; 1914 list-style: none; 1915 margin: 0; 1916 gap: 12px; 1917 } 1918 #breadcrumbProduct ul li { 1919 text-transform: uppercase; 1920 margin: 0; 1921 font-size: 12px; 1922 } 1923 #breadcrumbProduct ul li a { 1924 color: #757575; 1925 } 1926 1927 #breadcrumbProduct ul li svg { 1928 width: 10px; 1929 height: 10px; 1930 padding: 0; 1931 color: #757575; 1932 vertical-align: middle; 1933 } 1934 </style> 1935 <style> 1936 .mini-navigasi-bagus{ 1937 display:flex; 1938 flex-wrap:wrap; 1939 justify-content:center; 1940 gap:20px; 1941 padding:12px; 1942 border-radius:14px; 1943} 1944 1945.mini-navigasi-bagus a{ 1946 padding:8px 16px; 1947 font-size:13px; 1948 font-weight:700; 1949 color:#fff; 1950 text-decoration:none; 1951 border-radius:999px; 1952 background:linear-gradient(to bottom, #f1a200 0%, #8d6000 50%, #764b00 100%); 1953 box-shadow: 1954 inset 0 0 6px rgb(255, 208, 0), 1955 0 4px 8px rgba(255, 230, 0, 0.45); 1956 transition:.25s ease; 1957 white-space:nowrap; 1958} 1959 1960.mini-navigasi-bagus a:hover{ 1961 background:linear-gradient(to bottom, #f1a200 0%, #8d6000 50%, #764b00 100%); 1962 transform:translateY(-2px) scale(1.05); 1963 box-shadow:0 0 14px rgba(255, 217, 0, 0.75); 1964} 1965 1966@media(max-width:600px){ 1967 .mini-navigasi-bagus{ 1968 justify-content:flex-start; 1969 overflow-x:auto; 1970 flex-wrap:nowrap; 1971 scrollbar-width:none; 1972 } 1973 .mini-navigasi-bagus::-webkit-scrollbar{display:none;} 1974} 1975</style> 1976<div class="mini-navigasi-bagus"> <a href="https://snooglestore.com/">BAGUS33</a> <a href="https://snooglestore.com/">SNOOGLE STORE</a> <a href="https://snooglestore.com/">BINGKAI FOTO USG</a> <a href="https://snooglestore.com/">BINGKAI FOTO AKRILIK</a> <a href="https://snooglestore.com/">FOTO KEHAMILAN</a> <a href="https://snooglestore.com/">MOMEN KELUARGA</a> <a href="https://snooglestore.com/">KENANGAN KELUARGA</a> <a href="https://snooglestore.com/">GARANSI RESMI</a> </div> 1977 1978
1978<script type="application/ld+json"> 1979 { 1980 "@context": "https://schema.org", 1981 "@type": "Product", 1982 "name": "BAGUS33 | Official Snoogle Store: Bingkai Foto USG Kehamilan & Momen Keluarga Bergaransi Resmi", 1983 "image": "https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp", 1984 "description": "Bersama BAGUS33, temukan bingkai foto akrilik eksklusif bergaransi resmi di Official Snoogle Store untuk mengabadikan momen berharga USG kehamilan serta kenangan indah keluarga Anda dengan tampilan yang elegan.", 1985 "brand": { 1986 "@type": "Brand", 1987 "name": "BAGUS33" 1988 }, 1989 "sku": "BAGUS33-RESMI", 1990 "mpn": "SITUS-BAGUS33-TERPERCAYA", 1991 "url": "https://snooglestore.com/", 1992 "offers": { 1993 "@type": "Offer", 1994 "url": "https://snooglestore.com/", 1995 "priceCurrency": "USD", 1996 "price": "10.00", 1997 "priceValidUntil": "2026-03-21", 1998 "itemCondition": "https://schema.org/NewCondition", 1999 "availability": "https://schema.org/InStock", 2000 "seller": { 2001 "@type": "Organization", 2002 "name": "BAGUS33" 2003 } 2004 }, 2005 "aggregateRating": { 2006 "@type": "AggregateRating", 2007 "ratingValue": "5.0", 2008 "reviewCount": 66541 2009 }, 2010 "review": [ 2011 { 2012 "@type": "Review", 2013 "reviewRating": { 2014 "@type": "Rating", 2015 "ratingValue": "5", 2016 "bestRating": "5" 2017 }, 2018 "author": { 2019 "@type": "Person", 2020 "name": "Marwati" 2021 } 2022 }, 2023 { 2024 "@type": "Review", 2025 "reviewRating": { 2026 "@type": "Rating", 2027 "ratingValue": "5", 2028 "bestRating": "5" 2029 }, 2030 "author": { 2031 "@type": "Person", 2032 "name": "Sinta" 2033 } 2034 } 2035 ] 2036 } 2037 </script>
2037 2038
2038<script type="application/ld+json"> 2039 { 2040 "@context": "https://schema.org", 2041 "@type": "BreadcrumbList", 2042 "itemListElement": [ 2043 { 2044 "@type": "ListItem", 2045 "position": 1, 2046 "name": "BAGUS33", 2047 "item": "https://snooglestore.com/" 2048 }, 2049 { 2050 "@type": "ListItem", 2051 "position": 2, 2052 "name": "BAGUS 33", 2053 "item": "https://snooglestore.com/" 2054 }, 2055 { 2056 "@type": "ListItem", 2057 "position": 3, 2058 "name": "BAGUS33 LOGIN", 2059 "item": "https://snooglestore.com/" 2060 }, 2061 { 2062 "@type": "ListItem", 2063 "position": 4, 2064 "name": "BAGUS33 DAFTAR", 2065 "item": "https://snooglestore.com/" 2066 }, 2067 { 2068 "@type": "ListItem", 2069 "position": 5, 2070 "name": "BAGUS33 LINK", 2071 "item": "https://snooglestore.com/" 2072 }, 2073 { 2074 "@type": "ListItem", 2075 "position": 6, 2076 "name": "BINGKAI FOTO", 2077 "item": "https://snooglestore.com/" 2078 }, 2079 { 2080 "@type": "ListItem", 2081 "position": 7, 2082 "name": "FOTO USG", 2083 "item": "https://snooglestore.com/" 2084 }, 2085 { 2086 "@type": "ListItem", 2087 "position": 8, 2088 "name": "FOTO KELUARGA", 2089 "item": "https://snooglestore.com/" 2090 } 2091 ] 2092 } 2093 </script>
2093 2094
2094<script type="application/ld+json"> 2095{ 2096 "@context": "https://schema.org", 2097 "@type": "FAQPage", 2098 "mainEntity": [ 2099 { 2100 "@type": "Question", 2101 "name": "Apa itu BAGUS33 dan produk unggulan apa yang ditawarkan oleh Official Snoogle Store?", 2102 "acceptedAnswer": { 2103 "@type": "Answer", 2104 "text": "BAGUS33 | Official Snoogle Store adalah penyedia resmi bingkai foto eksklusif yang dirancang khusus untuk mengabadikan momen berharga keluarga, seperti foto USG kehamilan, bayi baru lahir, hingga kenangan keluarga indah lainnya dengan jaminan garansi resmi." 2105 } 2106 }, 2107 { 2108 "@type": "Question", 2109 "name": "Mengapa bingkai foto USG kehamilan dari BAGUS33 menjadi pilihan favorit para ibu hamil?", 2110 "acceptedAnswer": { 2111 "@type": "Answer", 2112 "text": "Bingkai foto BAGUS33 dibuat menggunakan material premium berkualitas tinggi, tahan lama, anti-jamur, serta memiliki desain estetis yang elegan untuk melindungi cetakan USG tetap aman dan tidak pudar sepanjang masa." 2113 } 2114 }, 2115 { 2116 "@type": "Question", 2117 "name": "Apakah pembelian produk bingkai di BAGUS33 dilengkapi dengan garansi resmi?", 2118 "acceptedAnswer": { 2119 "@type": "Answer", 2120 "text": "Ya, seluruh produk bingkai foto kenangan keluarga di Official Snoogle Store dilengkapi dengan Garansi Resmi untuk menjamin kualitas material, kerapian pengerjaan, serta keamanan pengiriman hingga sampai di tangan Anda." 2121 } 2122 }, 2123 { 2124 "@type": "Question", 2125 "name": "Apakah saya bisa memesan bingkai foto USG kustom sebagai kado atau hadiah baby shower?", 2126 "acceptedAnswer": { 2127 "@type": "Answer", 2128 "text": "Sangat bisa! Bingkai foto BAGUS33 dirancang khusus agar cocok dijadikan kado penuh makna untuk momen kehamilan, baby shower, kelahiran, maupun hadiah spesial anniversary keluarga." 2129 } 2130 }, 2131 { 2132 "@type": "Question", 2133 "name": "Bagaimana cara mudah memesan bingkai foto USG dan momen keluarga di BAGUS33?", 2134 "acceptedAnswer": { 2135 "@type": "Answer", 2136 "text": "Anda dapat dengan mudah mengunjungi toko online resmi BAGUS33 | Official Snoogle Store, memilih desain bingkai favorit, mengunggah foto USG atau keluarga Anda, dan tim kami akan memprosesnya dengan rapi dan aman." 2137 } 2138 } 2139 ] 2140} 2141</script>
2141 2142
2142<script type="application/ld+json"> 2143 { 2144 "@context": "https://schema.org", 2145 "@type": "Organization", 2146 "name": "BAGUS33", 2147 "url": "https://snooglestore.com/", 2148 "logo": "https://cdn.datavip.cloud/Logo/Bagus33.png", 2149 "sameAs": [ 2150 "https://www.facebook.com/officialbagus33", 2151 "https://twitter.com/officialbagus33", 2152 "https://www.instagram.com/officialbagus33" 2153 ], 2154 "contactPoint": { 2155 "@type": "ContactPoint", 2156 "telephone": "+62-8946-113-4615", 2157 "contactType": "customer support", 2158 "areaServed": "ID", 2159 "availableLanguage": ["Indonesian", "English"] 2160 } 2161 } 2162 </script>
2162 2163 2164
2164<script type="application/ld+json"> 2165 { 2166 "@context": "https://schema.org", 2167 "@type": "VideoObject", 2168 "name": "BAGUS33 | Official Snoogle Store: Bingkai Foto USG Kehamilan & Momen Keluarga Bergaransi Resmi", 2169 "description": "Bersama BAGUS33, temukan bingkai foto akrilik eksklusif bergaransi resmi di Official Snoogle Store untuk mengabadikan momen berharga USG kehamilan serta kenangan indah keluarga Anda dengan tampilan yang elegan.", 2170 "thumbnailUrl": [ 2171 "https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp", 2172 "https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp" 2173 ], 2174 "uploadDate": "2026-01-02T04:19:10-04:00", 2175 "duration": "PT168", 2176 "contentUrl": "https://snooglestore.com/" 2177 } 2178 </script>
2178 2179 2180
2180<script type="application/ld+json"> 2181 { 2182 "@context": "https://schema.org", 2183 "@graph": [ 2184 { 2185 "@type": "Organization", 2186 "@id": "https://snooglestore.com/#org", 2187 "name": "BAGUS33", 2188 "url": "https://snooglestore.com/", 2189 "logo": "https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp" 2190 }, 2191 { 2192 "@type": "WebSite", 2193 "@id": "https://snooglestore.com/#website", 2194 "url": "https://snooglestore.com/", 2195 "name": "BAGUS33", 2196 "publisher": { "@id": "https://snooglestore.com/#org" }, 2197 "inLanguage": "id-ID", 2198 "potentialAction": { 2199 "@type": "SearchAction", 2200 "target": "https://snooglestore.com/?s={search_term_string}", 2201 "query-input": "required name=search_term_string" 2202 } 2203 }, 2204 { 2205 "@type": "SoftwareApplication", 2206 "@id": "https://snooglestore.com/#app", 2207 "name": "BAGUS33", 2208 "applicationCategory": "GameApplication", 2209 "operatingSystem": "Android, iOS, Windows", 2210 "offers": { "@type": "Offer", "price": "0", "priceCurrency": "IDR" }, 2211 "aggregateRating": { "@type": "AggregateRating", "ratingValue": 4.9, "ratingCount": 62595 } 2212 } 2213 ] 2214 } 2215 </script>
2215 2216 2217 <div id="shopify-section-Product" class="shopify-section product-section mt-0"> 2218<link href="https://asset-jko.b-cdn.net/footer-warna.css" rel="stylesheet" type="text/css" media="all" /> 2219 2220 2221 <style> 2222 .bg-card { 2223 background-color: #000000; 2224 } 2225 </style> 2226 2227 <!-- /templates/product.liquid --> 2228 2229 2230 <!-- <div itemscope itemtype="http://schema.org/Product"> --> 2231 2232 2233 <div class="product-standing-flower" data-product-type="flowerBoard"> 2234 <meta itemprop="url" content="https://snooglestore.com/"> 2235 <meta itemprop="image" content="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp"> 2236 2237 2238 2239 <input id="data-sku" type="hidden" value="OBVSTF1086"> 2240 <div class="product-single" style="background-image: url(https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp); background-attachment: fixed;"> 2241 <div id="product-top" class="container"> 2242 <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;"> 2243 <div id="product-image" class="col-lg-7 text-center"> 2244 <div class="product-image"> 2245 <div class="row no-gutters"> 2246 2247 <div id="product-featured-image" class="row w-100"> 2248 2249 <div id="thumb-image-product" class="col-lg-2 col-12 d-none d-lg-block"> 2250 2251 <div class="swiper-container gallery-thumbs" style="min-height: 500px"> 2252 <ul class="list-unstyled slider swiper-wrapper slider-nav ProductThumbs thumbnails" id="ProductThumbsx"> 2253 2254 <li class="swiper-slide" data-type="image"> 2255 <a 2256 href="https://snooglestore.com/" 2257 data-standard="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp" 2258 data-image="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp" 2259 data-position="1" 2260 class="product-single__thumbnail" 2261 > 2262 <img 2263 class="lazyload w-100" 2264 src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp" 2265 alt="BAGUS33 | Official Snoogle Store: Bingkai Foto USG Kehamilan & Momen Keluarga Bergaransi Resmi" 2266 width="" 2267 height="" 2268 > 2269 </a> 2270 </li> 2271 2272 2273 2274 2275 <li class="swiper-slide" data-type="image"> 2276 <a 2277 href="https://snooglestore.com/" 2278 data-standard="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp" 2279 data-image="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp" 2280 data-position="2" 2281 class="product-single__thumbnail" 2282 > 2283 <img 2284 class="lazyload w-100" 2285 src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp" 2286 alt="BAGUS33 | Official Snoogle Store: Bingkai Foto USG Kehamilan & Momen Keluarga Bergaransi Resmi" 2287 width="" 2288 height="" 2289 > 2290 </a> 2291 </li> 2292 2293 2294 2295 2296 <li class="swiper-slide" data-type="image"> 2297 <a 2298 href="https://snooglestore.com/" 2299 data-standard="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp" 2300 data-image="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp" 2301 data-position="3" 2302 class="product-single__thumbnail" 2303 > 2304 <img 2305 class="lazyload w-100" 2306 src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp" 2307 alt="BAGUS33 | Official Snoogle Store: Bingkai Foto USG Kehamilan & Momen Keluarga Bergaransi Resmi" 2308 width="" 2309 height="" 2310 > 2311 </a> 2312 </li> 2313 2314 2315 2316 2317 <li class="swiper-slide" data-type="image"> 2318 <a 2319 href="https://snooglestore.com/" 2320 data-standard="https://cdn.bannervip.cloud/Banner-B
2320agus33/BS1.webp" 2321 data-image="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp" 2322 data-position="4" 2323 class="product-single__thumbnail" 2324 > 2325 <img 2326 class="lazyload w-100" 2327 src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp" 2328 alt="BAGUS33 | Official Snoogle Store: Bingkai Foto USG Kehamilan & Momen Keluarga Bergaransi Resmi" 2329 width="" 2330 height="" 2331 > 2332 </a> 2333 </li> 2334 2335 2336 2337 </ul> 2338 </div> 2339 2340 </div> 2341 2342 <div 2343 id="featured-image-product" 2344 class="col-lg-10 col-12 d-none d-lg-block" 2345 > 2346 <div class="swiper-container gallery-top"> 2347 <div class="swiper-slide product-single__image"> 2348 2349 <div class="product-single__photos slider slider-for" id="ProductPhoto"> 2350 2351 2352 <div class="easyzoom easyzoom--overlay easyzoom--with-thumbnails"> 2353 <a href="https://snooglestore.com/"> 2354 <img 2355 src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp" 2356 alt="BAGUS33 | Official Snoogle Store: Bingkai Foto USG Kehamilan & Momen Keluarga Bergaransi Resmi" 2357 id="ProductPhotoImg" 2358 class="lazyload" 2359 > 2360 2361 </a> 2362 </div> 2363 </div> 2364 2365 </div> 2366 <div class="swiper-slide product-single__video" style="display: none"> 2367 <video 2368 src="https://cdn.shopify.com/videos/c/vp/05d379ea115d41c2bd0f7d08b1496bd9/05d379ea115d41c2bd0f7d08b1496bd9.HD-1080p-7.2Mbps-24002195.mp4" 2369 playsinline 2370 loop 2371 muted 2372 ></video> 2373 </div> 2374 </div> 2375 </div> 2376 </div> 2377 2378 <div id="featured-image-product2" class="col-12 d-lg-none"> 2379 <div class="swiper-container gallery-mobile"> 2380 <ul class="swiper-wrapper"> 2381 <li class="swiper-slide img"> 2382 2383 <img 2384 class="swiper-lazy" 2385 src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp" 2386 data-src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp" 2387 alt="BAGUS33 | Official Snoogle Store: Bingkai Foto USG Kehamilan & Momen Keluarga Bergaransi Resmi" 2388 width="" 2389 height="" 2390 > 2391 2392 </li> 2393 2394 2395 <li class="swiper-slide img"> 2396 2397 <img 2398 class="swiper-lazy" 2399 src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp" 2400 data-src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp" 2401 alt="BAGUS33 | Official Snoogle Store: Bingkai Foto USG Kehamilan & Momen Keluarga Bergaransi Resmi" 2402 width="" 2403 height="" 2404 > 2405 2406 </li> 2407 2408 2409 <li class="swiper-slide img"> 2410 2411 <img 2412 class="swiper-lazy" 2413 src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp" 2414 data-src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp" 2415 alt="BAGUS33 | Official Snoogle Store: Bingkai Foto USG Kehamilan & Momen Keluarga Bergaransi Resmi" 2416 width="" 2417 height="" 2418 > 2419 2420 </li> 2421 2422 2423 <li class="swiper-slide img"> 2424 2425 <img 2426 class="swiper-lazy" 2427 src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp" 2428 data-src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp" 2429 alt="BAGUS33 | Official Snoogle Store: Bingkai Foto USG Kehamilan & Momen Keluarga Bergaransi Resmi" 2430 width="" 2431 height="" 2432 > 2433 2434 </li> 2435 2436 2437 </ul> 2438 2439 <div class="swiper-button-prev"><svg class="icon icon-chevron-left" xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="7" height="12" viewBox="0 0 7 12"> <circle cx="60%" cy="50%" r="12" fill="transparent" /> <path d="M6.35355339,10.6464466 C6.54881554,10.8417088 6.54881554,11.1582912 6.35355339,11.3535534 C6.15829124,11.5488155 5.84170876,11.5488155 5.64644661,11.3535534 L0.646446609,6.35355339 C0.451184464,6.15829124 0.451184464,5.84170876 0.646446609,5.64644661 L5.64644661,0.646446609 C5.84170876,0.451184464 6.15829124,0.451184464 6.35355339,0.646446609 C6.54881554,0.841708755 6.54881554,1.15829124 6.35355339,1.35355339 L1.70710678,6 L6.35355339,10.6464466 Z"/> </svg></div> 2440 <div class="swiper-button-next"><svg xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="7" height="10" viewB
2440ox="0 0 7 10" fill="none"> 2441 <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"/> 2442 </svg></div> 2443 2444 <!-- Add Pagination --> 2445 <div class="swiper-pagination"></div> 2446 2447 </div> 2448 </div> 2449 2450 <div class="product-m-pageleb-video col-12 text-center d-lg-none"> 2451 <!-- product video --> 2452 <style> 2453 .view-video{display:block; margin:auto; padding:5px 10px;font-size:16px;font-weight:bold;border:2px solid #ffffff;background:#fff;} 2454 .view-video .icon-play{fill:#ffffff;vertical-align: middle;} 2455 .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;} 2456 .close-video{position:absolute;right:9px; top:8%;z-index:2;padding:5px;} 2457 .close-video .icon{width:30px;height:30px;} 2458 /*responsive iframe */ 2459 .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);} 2460 .video-container iframe {position: absolute;top:60%;left: 0;width: 100%;height: 100%;} 2461 2462 .youtube { 2463 background-color: #000; 2464 margin-bottom: 30px; 2465 position: relative; 2466 padding-top: 56.25%; 2467 overflow: hidden; 2468 cursor: pointer; 2469 width: 100%; 2470 } 2471 .swiper-slide .youtube { 2472 max-width: 480px; 2473 } 2474 .youtube img { 2475 width: 100%; 2476 top: -16.82%; 2477 left: 0; 2478 opacity: 0.7; 2479 } 2480 .youtube .play-button { 2481 width: 90px; 2482 height: 60px; 2483 background-color: #333; 2484 box-shadow: 0 0 30px rgba( 0,0,0,0.6 ); 2485 z-index: 1; 2486 opacity: 0.8; 2487 border-radius: 6px; 2488 } 2489 .youtube .play-button:before { 2490 content: ""; 2491 border-style: solid; 2492 border-width: 15px 0 15px 26.0px; 2493 border-color: transparent transparent transparent #fff; 2494 } 2495 .youtube img, 2496 .youtube .play-button { 2497 cursor: pointer; 2498 } 2499 .youtube img, 2500 .youtube iframe, 2501 .youtube .play-button, 2502 .youtube .play-button:before { 2503 position: absolute; 2504 } 2505 .youtube .play-button, 2506 .youtube .play-button:before { 2507 top: 50%; 2508 left: 50%; 2509 transform: translate3d( -50%, -50%, 0 ); 2510 } 2511 .youtube iframe { 2512 height: 100%; 2513 width: 100%; 2514 top: 0; 2515 left: 0; 2516 } 2517 </style> 2518 2519 2520 </div> 2521 </div> 2522 2523 <div class="product-desc-add position-relative d-none d-lg-block m-0"> 2524 2525 </div> 2526 2527
2527<script> 2528 if ($(window).width() < 991) { 2529 var direction = 'horizontal' 2530 } else { 2531 var direction = 'vertical' 2532 $(".gallery-thumbs").height($("#ProductPhotoImg").height()) 2533 } 2534 var swiper = new Swiper('.gallery-thumbs', { 2535 2536 direction, 2537 slidesPerView: 4.5, 2538 spaceBetween: 12, 2539 navigation: { 2540 nextEl: '.swiper-button-next', 2541 prevEl: '.swiper-button-prev', 2542 } 2543 }); 2544 2545 var swiper = new Swiper('.gallery-mobile', { 2546 lazy: true, 2547 speed: 300, 2548 resistance : true, 2549 resistanceRatio : 0, 2550 freeModeMomentumRatio : 0.45, 2551 freeModeMomentumVelocityRatio : 1.5, 2552 navigation: { 2553 nextEl: '.swiper-button-next', 2554 prevEl: '.swiper-button-prev', 2555 }, 2556 pagination: { 2557 el: '.swiper-pagination' 2558 }, 2559 useCSS3Transforms: false, 2560 loop: false, 2561 on: { 2562 init: function () { 2563 console.log('swiper initialized'); 2564 var currentVideo = $("[data-swiper-slide-index=" + this.realIndex + "]").find("video"); 2565 currentVideo.trigger('play'); 2566 }, 2567 }, 2568 }); 2569 2570 var sliderVideos = $(".swiper-slide video"); 2571 2572 swiper.on('slideChange', function () { 2573 console.log('slide changed'); 2574 sliderVideos.each(function( index ) { 2575 this.currentTime = 0; 2576 }); 2577 2578 var prevVideo = $(`[data-swiper-slide-index="${this.previousIndex}]"`).find("video"); 2579 var currentVideo = $(`[data-swiper-slide-index="${this.realIndex}"]`).find("video"); 2580 prevVideo.trigger('stop'); 2581 currentVideo.trigger('play'); 2582 }); 2583 2584 2585 $("[data-video]").click(function(){ 2586 const file = $(this).data("video") 2587 $(".product-single__video").show() 2588 $(".product-single__image").hide() 2589 $(".product-single__video").find("video").attr("src", file) 2590 $(".product-single__video").find("video")[0].play(); 2591 }) 2592 $("[data-image]").click(function(){ 2593 $(".product-single__video").hide() 2594 $(".product-single__image").show() 2595 $(".product-single__video").find("video")[0].pause(); 2596 }) 2597 2598 $("#product-image .swiper-slide").each(function(){ 2599 let width = $(this).width() 2600 $(this).height(width) 2601 }) 2602 2603 $(window).resize(function() { 2604 $("#product-image .swiper-slide").each(function(){ 2605 let width = $(this).width() 2606 $(this).height(width) 2607 }) 2608 }) 2609 </script>
2609 2610 2611 </div> 2612 2613 2614 <div class="grid__item_product-info mb-3"> 2615 <div class="c-pdp-product-info"> 2616 <ul class="c-pdp-product-info__service c-pdp-product-info__service--active"> 2617 2618 <li>Bersama BAGUS33, temukan bingkai foto akrilik eksklusif bergaransi resmi di Official Snoogle Store untuk mengabadikan momen berharga USG kehamilan serta kenangan indah keluarga Anda dengan tampilan yang elegan.</li> 2619 2620 2621 2622 2623 </ul> 2624 </div> 2625 </div> 2626 2627 2628<section class="pasaran-section-pro"> <div class="pasaran-header-pro"> <div class="pasaran-left"> <span class="pasaran-live-dot"></span> <span class="pasaran-title-pro">BAGUS33 ⢠OFFICIAL SNOOGLE STORE</span> </div> <span class="pasaran-tag-pro">Bingkai Akrilik ⢠Foto USG ⢠Momen Keluarga</span> </div> 2629 2630<div class="pasaran-marquee-pro"> <div class="pasaran-track-pro"> 2631 2632 <!-- ITEM 1 --> 2633 <div class="pasaran-item-pro hot"> 2634 <img src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp" alt="Bingkai Foto USG BAGUS33"> 2635 <div class="pasaran-text-pro"> 2636 <span class="pasaran-name-pro">BINGKAI FOTO USG</span> 2637 </div> 2638 <span class="badge-hot">POPULER</span> 2639 </div> 2640 2641 <!-- ITEM 2 --> 2642 <div class="pasaran-item-pro"> 2643 <img src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp" alt="Official Snoogle Store"> 2644 <div class="pasaran-text-pro"> 2645 <span class="pasaran-name-pro">OFFICIAL SNOOGLE STORE</span> 2646 </div> 2647 </div> 2648 2649 <!-- ITEM 3 --> 2650 <div class="pasaran-item-pro"> 2651 <img src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp" alt="Bingkai Foto Akrilik"> 2652 <div class="pasaran-text-pro"> 2653 <span class="pasaran-name-pro">BINGKAI FOTO AKRILIK</span> 2654 </div> 2655 </div> 2656 2657 <!-- ITEM 4 --> 2658 <div class="pasaran-item-pro"> 2659 <img src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp" alt="Foto Kehamilan"> 2660 <div class="pasaran-text-pro"> 2661 <span class="pasaran-name-pro">FOTO KEHAMILAN</span> 2662 </div> 2663 </div> 2664 2665 <!-- ITEM 5 --> 2666 <div class="pasaran-item-pro"> 2667 <img src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp" alt="Momen Keluarga"> 2668 <div class="pasaran-text-pro"> 2669 <span class="pasaran-name-pro">MOMEN KELUARGA</span> 2670 </div> 2671 </div> 2672 2673 <!-- ITEM 6 --> 2674 <div class="pasaran-item-pro"> 2675 <img src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp" alt="Kenangan Keluarga"> 2676 <div class="pasaran-text-pro"> 2677 <span class="pasaran-name-pro">KENANGAN KELUARGA</span> 2678 </div> 2679 </div> 2680 2681 <!-- ITEM 7 --> 2682 <div class="pasaran-item-pro"> 2683 <img src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp" alt="Garansi Resmi"> 2684 <div class="pasaran-text-pro"> 2685 <span class="pasaran-name-pro">GARANSI RESMI</span> 2686 </div> 2687 </div> 2688 2689 <!-- DUPLIKASI UNTUK LOOP --> 2690 <div class="pasaran-item-pro hot"> 2691 <img src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp" alt="Bingkai Foto USG BAGUS33"> 2692 <div class="pasaran-text-pro"> 2693 <span class="pasaran-name-pro">BINGKAI FOTO USG</span> 2694 </div> 2695 <span class="badge-hot">POPULER</span> 2696 </div> 2697 2698</div> 2699 2700</div> </section> 2701<style> 2702.pasaran-section-pro{ 2703 max-width:1000px; 2704 margin:30px auto; 2705 padding:18px 20px 22px; 2706 border-radius:18px; 2707 background: 2708 linear-gradient(180deg,rgba(255,0,0,.08),transparent 40%), 2709 rgba(5,5,10,.85); 2710 backdrop-filter: blur(6px); 2711 border:1px solid rgba(255,255,255,.08); 2712 box-shadow:0 25px 50px rgba(0,0,0,.9); 2713 color:#fff; 2714} 2715 2716.pasaran-header-pro{ 2717 display:flex; 2718 justify-content:space-between; 2719 align-items:center; 2720 margin-bottom:14px; 2721} 2722 2723.pasaran-left{ 2724 display:flex; 2725 align-items:center; 2726 gap:10px; 2727} 2728 2729.pasaran-live-dot{ 2730 width:10px; 2731 height:10px; 2732 border-radius:50%; 2733 background:#ff0033; 2734 box-shadow:0 0 12px #ff0033; 2735 animation:pulseLive 1.5s infinite; 2736} 2737 2738@keyframes pulseLive{ 2739 0%,100%{transform:scale(1);} 2740 50%{transform:scale(1.4);} 2741} 2742 2743.pasaran-title-pro{ 2744 font-weight:800; 2745 letter-spacing:.12em; 2746 font-size:1rem; 2747 color:#ffd166; 2748} 2749 2750.pasaran-tag-pro{ 2751 font-size:.75rem; 2752 padding:5px 12px; 2753 border-radius:999px; 2754 background:rgba(0,0,0,.5); 2755 border:1px solid rgba(255,255,255,.2); 2756} 2757 2758.pasaran-marquee-pro{ 2759 overflow:hidden; 2760 position:relative; 2761} 2762 2763.pasaran-track-pro{ 2764 display:flex; 2765 gap:14px; 2766 animation:scrollRTP 14s linear infinite; 2767} 2768 2769.pasaran-marquee-pro:hover .pasaran-track-pro{ 2770 animation-play-state:paused; 2771} 2772 2773.pasaran-item-pro{ 2774 position:relative; 2775 display:flex; 2776 align-items:center; 2777 gap:12px; 2778 padding:10px 16px; 2779 border-radius:999px; 2780 min-width:220px; 2781 background:rgba(0,0,0,.65); 2782 border:1px solid rgba(255,255,255,.1); 2783 box-shadow:0 10px 22px rgba(0,0,0,.7); 2784 transition:.25s ease; 2785} 2786 2787.pasaran-item-pro:hover{ 2788 transform:translateY(-3px) scale(1.04); 2789 box-shadow:0 18px 35px rgba(0,0,0,.9); 2790} 2791 2792/* RTP TINGGI */ 2793.pasaran-item-pro.hot{ 2794 border-color:#ff0033; 2795 box-shadow:0 0 18px rgba(255,0,0,.8); 2796} 2797 2798/* LOGO */ 2799.pasaran-item-pro img{ 2800 width:46px; 2801 height:46px; 2802 border-radius:50%; 2803 background:#111; 2804} 2805 2806/* TEXT */ 2807.pasaran-text-pro{ 2808 display:flex; 2809 flex-direction:column; 2810} 2811 2812.pasaran-name-pro{ 2813 font-weight:700; 2814 font-size:.9rem; 2815} 2816 2817.pasaran-value-pro{ 2818 font-size:.8rem; 2819 color:#ffd166; 2820} 2821 2822/* BADGE HOT */ 2823.badge-hot{ 2824 position:absolute; 2825 top:-6px; 2826 right:-6px; 2827 font-size:10px; 2828 font-weight:900; 2829 padding:3px 8px; 2830 border-radius:999px; 2831 background:linear-gradient(135deg,#ff0033,#ff6a00); 2832 color:#fff; 2833 box-shadow:0 0 12px rgba(255,80,0,.9); 2834} 2835 2836/* SCROLL */ 2837@keyframes scrollRTP{ 2838 0%{transform:translateX(0);} 2839 100%{transform:translateX(-50%);} 2840} 2841 2842/* MOBILE */ 2843@media(max-width:768px){ 2844 .pasaran-item-pro{ 2845 min-width:190px; 2846 padding:8px 14px; 2847 } 2848 .pasaran-item-pro img{ 2849 width:40px; 2850 height:40px; 2851 } 2852} 2853</style> 2854 2855 2856 <style> 2857 .c-pdp-product-info__service--active { 2858 font-size: 12px; 2859 padding-left: 10px; 2860 text-align: left; 2861 max-width: 550px; 2862 margin: auto; 2863 } 2864 .c-pdp-product-info__service--active li { 2865 list-style: disc; 2866 } 2867 .c-pdp-product-info { 2868 background-color: #f5f5f5; 2869 padding: 12px; 2870 margin: 0; 2871 } 2872 .freeship em { 2873 font-style: italic; 2874 font-size: 12px !important; 2875 } 2876 2877 2878 </style> 2879 2880
2880<script> 2881 $(document).ready(function(){ 2882 if ( $(".c-pdp-product-info__service li").length == 1 ) { 2883 $(".c-pdp-product-info__service").addClass("no-bullet"); 2884 $(".c-pdp-product-info__service li").addClass("no-bullets"); 2885 } 2886 }); 2887 </script>
2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 </div> 2901 <div id="product-meta" class="col-lg-5 p-0"> 2902 <div class="product-meta"> 2903 <style> 2904 .product-meta--review {margin-top:10px} 2905 .freeship * {font-size: 14px !important;font-style: normal;} 2906 </style> 2907 <h1 itemprop="name" class="mb-2" style="color: rgb(255, 238, 0); font-weight: bold;">BAGUS33 | Official Snoogle Store: Bingkai Foto USG Kehamilan & Momen Keluarga Bergaransi Resmi</h1> 2908 2909 <div itemprop="offers" itemscope itemtype="http://schema.org/Offer"> 2910 <meta itemprop="priceCurrency" content="IDR"> 2911 2912 <link itemprop="availability" href="https://schema.org/InStock"> 2913
2913<script 2914 type="text/javascript" 2915 src="//platform-api.sharethis.com/js/sharethis.js#property=5acdc0aa3ef3c0001396fd50&product=custom-share-buttons" 2916 async="async" 2917 ></script>
2917 2918 2919 2920 2921 2922 <span class="visually-hidden">Translation missing: en.products.general.regular_price</span> 2923 2924 <span class="visually-hidden">Translation missing: en.products.general.sale_price</span> 2925 2926 <div class="row no-gutters mb-3"> 2927 <span 2928 id="ProductPrice" 2929 class="h2 ProductPrice" 2930 itemprop="price" 2931 content="835000" style="color: #ffffff;" 2932 > 2933 Rp 10.000 2934 </span> 2935 2936 </span> 2937 </div> 2938 </div> 2939 2940 <div class="row no-gutters meta-sds"> 2941 <div class="col-12 mb-2 mb-lg-0 stock-info"> 2942 2943 2944 <span 2945 id="ProductStock-Product" 2946 class="product-single__stock mb-2 hide" 2947 > 2948 2949 2950 2951 2952 Barang dikirim pada 2953 2954 2955 2956 </span> 2957 2958 <style> 2959 .short-desc-desktop { 2960 margin-bottom: 2rem; 2961 color: white; 2962 } 2963 .short-desc ul li:nth-child(n + 4) { 2964 display: none; 2965 } 2966 .short-desc ul li.showList:nth-child(n + 4) { 2967 display: list-item; 2968 } 2969 label.more { 2970 display: none; 2971 } 2972 label.more.showMe { 2973 display: block; 2974 font-size: 12px; 2975 text-transform: uppercase; 2976 font-weight: 700; 2977 cursor: pointer; 2978 } 2979 </style> 2980 2981 <div class="short-desc-desktop d-none d-lg-block"> 2982 <div class="short-desc"> 2983 2984 <p style="text-align: justify;">Bersama BAGUS33, temukan bingkai foto akrilik eksklusif bergaransi resmi di Official Snoogle Store untuk mengabadikan momen berharga USG kehamilan serta kenangan indah keluarga Anda dengan tampilan yang elegan.</p> 2985 </div> 2986 <label class="more">Show More â</label> 2987 </div><br> 2988 2989 2990
2990<script> 2991 var liCount; 2992 $(document).ready(function () { 2993 $(".short-desc ul").each(function() { 2994 liCount = $(this).children("li").length; 2995 if (liCount > 3) { 2996 $(this).parent(".short-desc").next(".more").addClass("showMe"); 2997 } 2998 }); 2999 3000 $(".more").click(function () { 3001 $("#product-desc").find("ul").show() 3002 $('html, body').animate({ 3003 scrollTop: $("#product-desc").offset().top - 250 3004 }, 2000); 3005 $("#product-desc").css("height","auto"); 3006 $("#more_content").remove(); 3007 $(".product-spec").append("<div id='less_content' class='readmore'><span class='less_content'>Less</span></div>") 3008 }); 3009 }); 3010 </script>
3010 3011 3012 3013 </div> 3014 </div> 3015 3016 <div id="purchaseProduct"> 3017 3018 3019 3020 3021 <style> 3022 .variant-metafield { 3023 display: block!important; 3024 width: 1px; 3025 padding: 0; 3026 border-color: #fff; 3027 } 3028 .select2-results__option[aria-disabled] { 3029 display: none; 3030 } 3031 3032 .towel-bordir { 3033 width: 100%; 3034 display: flex; 3035 align-items: center; 3036 justify-content: space-around; 3037 } 3038 </style> 3039 3040 3041 3042 3043
3043<script> 3044 3045 3046 </script>
3046 3047 3048 3049 3050 3051 3052 3053 <select 3054 name="id[]" 3055 id="productSelect" 3056 class="product-single__variants ignore hide hide" 3057 > 3058 3059 3060 3061 <option 3062 3063 selected="selected" 3064 3065 data-sku="OBVSTF1086" 3066 value="44083045826775" 3067 > 3068 Default Title 3069 </option> 3070 3071 3072 3073 </select> 3074 3075
3075<script src="https://outerbloom.com/cdn/shop/t/138/assets/jquery.magnific-popup.min.js?v=184369421263510081681752652422" type="text/javascript"></script>
3075 3076 3077
3077<script> 3078 $('.size-chart-open-popup').magnificPopup({ 3079 type:'inline', 3080 midClick: true 3081 }); 3082 </script>
3082 3083 3084 3085 3086 3087 <div class="upload-image-preview"> 3088 3089 3090 3091 3092 3093 <style> 3094 .file-dnd * { 3095 margin: 0; 3096 padding: 0; 3097 box-sizing: border-box; 3098 } 3099 .file-dnd { 3100 width: 100%; 3101 height: 250px; 3102 border: 1px solid #ddd; 3103 border-radius: 10px; 3104 padding: 15px; 3105 display: flex; 3106 flex-direction: column; 3107 gap: 10px; 3108 margin: auto; 3109 } 3110 .file-dnd input { 3111 display: none; 3112 } 3113 .file-dnd .before-upload { 3114 border: 1px dashed #888; 3115 flex: 1; 3116 border-radius: 5px; 3117 display: flex; 3118 justify-content: center; 3119 align-items: center; 3120 text-align: center; 3121 cursor: pointer; 3122 } 3123 .file-dnd .before-upload > div { 3124 display: flex; 3125 flex-direction: column; 3126 align-items: center; 3127 gap: 8px; 3128 } 3129 .file-dnd .before-upload > div h4 { 3130 width: 150px; 3131 } 3132 .file-dnd .before-upload > div p { 3133 font-size: 12px !important; 3134 color: #555; 3135 } 3136 .file-dnd.active .before-upload { 3137 border: 1px solid #5750d9; 3138 background-color: #f5f5ff; 3139 } 3140 .file-dnd .after-upload { 3141 position: relative; 3142 display: none; 3143 } 3144 .file-dnd .after-upload img { 3145 width: 100%; 3146 border-radius: 5px; 3147 max-height: 180px; 3148 object-fit: contain; 3149 display: block; 3150 } 3151 .file-dnd .after-upload .clear-btn { 3152 position: absolute; 3153 top: 10px; 3154 right: 10px; 3155 background: rgba(0, 0, 0, 0.5); 3156 width: 15px; 3157 height: 15px; 3158 text-align: center; 3159 line-height: 15px; 3160 border-radius: 50%; 3161 color: #fff; 3162 cursor: pointer; 3163 font-size: 14px; 3164 } 3165 </style> 3166 3167 <div 3168 class="file-dnd mb-3" 3169 3170 style="display: none" 3171 3172 > 3173 <label for="upload-photo">Upload your Photo:</label> 3174 <input type="file" id="upload-photo" accept="image/*"> 3175 <input type="hidden" data-properties="Photo"> 3176 <div class="before-upload"> 3177 <div> 3178 <svg id="surface1" xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="33.053" height="41.719" viewBox="0 0 33.053 41.719"> 3179 <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> 3180 <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> 3181 <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> 3182 </svg> 3183 3184 <h4>Drag & Drop Photo file or Browse</h4> 3185 <p>Supports: JPEG, PNG, GIF, TIFF</p> 3186 </div> 3187 </div> 3188 <div class="after-upload"> 3189 <div class="clear-btn">×</div> 3190 <img src="" width="" height=""> 3191 </div> 3192 </div> 3193
3193<script> 3194 function applyDndFile(el) { 3195 const parent = document.querySelector(".file-dnd") 3196 const beforeUploadEl = el.querySelector(".before-upload") 3197 const afterUploadEl = el.querySelector(".after-upload") 3198 const inputFile = el.querySelector("input[type=file]") 3199 const imagePreview = el.querySelector(".after-upload img") 3200 const clearBtn = el.querySelector(".after-upload .clear-btn") 3201 const inputProps = parent.querySelector("[data-properties]"); 3202 3203 async function upload(name, uri, type) { 3204 try { 3205 const filename = name.split('.')[0] 3206 let formData = new FormData(); 3207 formData.append("file", uri); 3208 const response = await fetch(`${host}/upload?name=${filename}&dir=gift&type=${type}`, { 3209 method: "POST", 3210 body: formData 3211 }) 3212 if(response) { 3213 const res = await response.json() 3214 return res 3215 } 3216 } catch(err){ 3217 console.log(err) 3218 } 3219 } 3220 3221 function showImagePreview(img) { 3222 if(img){ 3223 const blobUrl = URL.createObjectURL(img) 3224 imagePreview.src = blobUrl 3225 afterUploadEl.style.display = "block" 3226 beforeUploadEl.style.display = "none" 3227 } 3228 } 3229 3230 beforeUploadEl.addEventListener("click", (e) => { 3231 e.preventDefault() 3232 inputFile.click() 3233 }) 3234 3235 inputFile.addEventListener("change", async (e) => { 3236 e.preventDefault() 3237 showImagePreview(e.target.files[0]) 3238 var uploadData = await upload(e.target.files[0].name, e.target.files[0], e.target.files[0].type) 3239 inputProps.value = uploadData?.url 3240 }) 3241 3242 clearBtn.addEventListener("click", (e) => { 3243 afterUploadEl.style.display = "none" 3244 beforeUploadEl.style.display = "flex" 3245 inputProps.value = "" 3246 }) 3247 3248 beforeUploadEl.addEventListener("dragover", (e) => { 3249 e.preventDefault() 3250 el.classList.add("active") 3251 }) 3252 3253 beforeUploadEl.addEventListener("dragleave", (e) => { 3254 e.preventDefault() 3255 el.classList.remove("active") 3256 }) 3257 3258 beforeUploadEl.addEventListener("drop", async (e) => { 3259 e.preventDefault() 3260 el.classList.remove("active") 3261 showImagePreview(e.dataTransfer.files[0]) 3262 var uploadData = await upload(e.dataTransfer.files[0].name, e.dataTransfer.files[0], e.dataTransfer.files[0].type) 3263 console.log(uploadData) 3264 inputProps.value = uploadData?.url 3265 }) 3266 } 3267 3268 applyDndFile(document.querySelector(".file-dnd")) 3269 3270 $(document).ready(function(){ 3271 $(".variant-swatch").change(function(){ 3272 const v = $(this).val().toLowerCase() 3273 const list = ["photo", "custom one side", "custom two side", "small", "big"] 3274 if(list.some(item => v.includes(item))) return $(".file-dnd").show() 3275 $(".file-dnd").hide() 3276 $(".file-dnd").find("[data-properties]").val("") 3277 $(".after-upload").hide() 3278 $(".before-upload").css("display", "flex") 3279 }) 3280 }) 3281 </script>
3281 3282 3283 </div> 3284 3285 3286 <div class="delivery-city mb-4"> 3287 <a href="https://snooglestore.com/bingkai-foto/"> 3288 <center><img src="https://cdn.datavip.cloud/Logo/Bagus33.png" alt="logo-daftar" style="width: 260px; margin-top: -20px;"></center></a><br> 3289 <h4 class="fw-600 text-uppercase mb-15" style="color: rgb(255, 255, 255);">SEKARANG SUDAH WAKTUNYA DAFTAR AKUN BARU DI BAGUS33!</h4> 3290 <div class="row justify-content-between m-0"> 3291 <select id="cities" class="form-control select-search" required> 3292 <option value="">Bingkai Foto USG Kehamilan & Momen Keluarga</option> 3293 </select> 3294 </div> 3295 </div> 3296 3297 <style> 3298 @media (max-width: 768px) { 3299 .select2-search__field { 3300 pointer-events: none !important; 3301 } 3302 3303 .select2-search { 3304 display: none !important; 3305 } 3306 } 3307 </style> 3308 3309
3309<script> 3310 $(document).ready(function() { 3311 if (window.innerWidth <= 768) { 3312 $('#cities').on('select2:open', function() { 3313 setTimeout(function() { 3314 $('.select2-search__field').blur(); 3315 $('.select2-search__field').prop('readonly', true); 3316 }, 100); 3317 }); 3318 } 3319 }); 3320 </script>
3320 3321 3322 <style> 3323 .icon-img-footer { 3324 width: 80px; 3325 padding: 0px 5px; 3326 } 3327 @media (min-width: 768px) { 3328 .icon-img-footer { 3329 width: 120px; 3330 } 3331 } 3332 @media (min-width: 992px) { 3333 .icon-img-footer { 3334 width: 120px; 3335 } 3336 } 3337 3338 3339 </style> 3340 3341 3342 <div id="row-delivery-time" class="row m-0 mb-3"> 3343 <h4 class="text-center fw-600 text-uppercase col-12 mb-15"> 3344 SEO IY 3345 </h4> 3346 <div id="deliveryTime" class="d-flex w-100 m-0"></div> 3347 <div class="form-group p-0"> 3348 <input type="text" id="propDeliveryTime" class="hide" required> 3349 </div> 3350 </div> 3351 3352 3353 3354 3355 3356 <div id="personalizeBtn"> 3357 3358 3359 3360 3361 <a href="https://snooglestore.com/bingkai-foto/"> <button class="btn text-uppercase w-100 fw-400"> 3362 3363 LINK ALTERNATIF BAGUS33 3364 3365 </button></a> 3366 <div class="button-share-wishlist d-flex justify-content-around mt-3"> 3367 <div class="button-share text-center"> 3368 <p id="shareButton" class="d-flex gap-2"><span>BINGKAT FOTO</span><svg xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="15" height="13" viewBox="0 0 15 13" fill="none"> 3369 <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"/> 3370 </svg> 3371 </p> 3372 </div> 3373 <div class="button-wishlist text-center"> 3374 <p id="wishButton" class="d-flex gap-2 wishlist-toggle" data-product-handle="blossom-shine"><span>FOTO USG</span><svg xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="16" height="15" viewBox="0 0 16 15" fill="none"> 3375 <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"/> 3376 </svg> 3377 <!-- 3378 <svg xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="34" height="30" viewBox="0 0 34 30" fill="none"> 3379 <path d="M32.8333 9.23082C32.8333 4.51916 29.0142 0.699158 24.3025 0.699158C21.2 0.699158 18.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"/> 3380 </svg> 3381 --> 3382 </p> 3383 </div> 3384 </div> 3385 </div> 3386 </div> 3387 <div class="purchasePopup purchasePopupSpotify" style="display: none;"> 3388 <div class="purchaseArea"> 3389 <div class="sectionPurchase sectionPurchaseSpotify"> 3390 <div class="wrapperPurchase"> 3391 <div class="headerPurchase"> 3392 <h3>personalize spotify photo print</h3> 3393 <a class="close-purchase-popup"> 3394 <svg xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="18" height="18" viewBox="0 0 18 18" fill="none"> 3395 <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> 3396 </svg> 3397 </a> 3398 </div> 3399 <div class="contentPurchase"> 3400 <div class="spotifyAddons"></div> 3401 </div> 3402 3403 <div class="purchase-button btn-addon row m-0" style="display: none;"> 3404 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 3405 <button class="back-purchase-button back-addon text-uppercase"> 3406 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png"> 3407 <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> 3408 </svg>
3409 <span>Back</span> 3410 </button> 3411 </div> 3412 <div class="col-12 col-lg-10 text-right" style="display: flex;justify-content: end;gap: 20px;"> 3413 <button class="btn next-purchase-button next-addon text-uppercase"> 3414 <span>continue without add-ons</span> 3415 </button> 3416 </div> 3417 </div> 3418 </div> 3419 </div> 3420 </div> 3421 </div> 3422 3423 <style> 3424 #PBarNextFrameWrapper { 3425 display: none; 3426 } 3427 #backgroundPopup { 3428 display: none; 3429 position: fixed; 3430 _position: absolute; 3431 height: 100%; 3432 width: 100%; 3433 top: 0; 3434 left: 0; 3435 background: rgb(117 117 117 / 24%); 3436 z-index: 1; 3437 } 3438 .sectionPurchase { 3439 height: 100%; 3440 position: relative; 3441 max-width: 1344px; 3442 background-color: #fff; 3443 padding: 0; 3444 overflow: hidden; 3445 display: flex; 3446 flex-direction: column; 3447 } 3448 .sectionPurchase.purchaseAddonSpotify { 3449 max-width: 1070px!important; 3450 max-height: 765px!important; 3451 } 3452 .sectionPurchaseBoard { 3453 max-width: 872px!important; 3454 max-height: 821px!important; 3455 } 3456 .purchaseAddonSpotify .btn-action { 3457 position: absolute; 3458 bottom: 0; 3459 left: 0; 3460 width: 100%; 3461 display: flex; 3462 gap: 10px; 3463 } 3464 .wrapperPurchase { 3465 position: relative; 3466 height: 100%; 3467 display: flex; 3468 flex-direction: column; 3469 } 3470 3471 /* New styles for scrollable content and sticky button */ 3472 .purchase-content { 3473 flex: 1; 3474 overflow-y: auto; 3475 overflow-x: hidden; 3476 padding: 20px; 3477 } 3478 3479 .purchase-button-wrapper { 3480 position: sticky; 3481 bottom: 0; 3482 background-color: #fff; 3483 border-top: 1px solid #e0e0e0; 3484 padding: 15px 0; 3485 margin-top: auto; 3486 z-index: 10; 3487 } 3488 3489 .purchasePopup { 3490 display: none; 3491 position: fixed; 3492 background: rgb(117 117 117 / 24%); 3493 z-index: 999; 3494 padding: 40px; 3495 font-size: 13px; 3496 top: 0; 3497 left: 0; 3498 width: 100%; 3499 height: 100%; 3500 } 3501 .popupPurchaseClose{ 3502 font-size:14px; 3503 line-height:14px; 3504 right:45px; 3505 top:45px; 3506 position:absolute; 3507 color:#6fa5fd; 3508 font-weight:700; 3509 display:block; 3510 cursor: pointer; 3511 } 3512 3513 .headerPurchase { 3514 margin-bottom: 30px; 3515 display: flex; 3516 justify-content: space-between; 3517 } 3518 3519 .headerPurchase h3 { 3520 font-size: 16px; 3521 text-transform: uppercase; 3522 } 3523 3524 .sectionPurchaseBoard .headerPurchase { 3525 margin-bottom: 15px; 3526 } 3527 3528 .sectionPurchaseBoard .formAddressPurchase { 3529 padding-top: 0; 3530 } 3531 3532 .purchaseArea { 3533 position: relative; 3534 height: 100%; 3535 } 3536 3537 .purchaseArea h4 { 3538 width: 100%; 3539 font-size: 12px; 3540 font-weight: 600; 3541 margin-bottom: 10px; 3542 text-transform: uppercase; 3543 } 3544 3545 .menuPurchase { 3546 margin-bottom: 30px; 3547 } 3548 3549 .menuPurchase ul { 3550 list-style-type: none; 3551 margin: 0; 3552 } 3553 3554 .menuPurchase ul li { 3555 display: inline-block; 3556 border: 1px solid #ffffff; 3557 padding: 5px 20px; 3558 margin-right: 5px; 3559 margin-bottom: 10px; 3560 font-size: 12px; 3561 font-weight: 400; 3562 } 3563 3564 .menuPurchase ul li:hover, .menuPurchase ul li.selected { 3565 background-color: #ffffff; 3566 color: #ffffff; 3567 } 3568 3569 .contentPurchase h5 { 3570 font-size: 12px; 3571 margin-bottom: 10px; 3572 font-weight: 400; 3573 overflow: hidden; 3574 } 3575 3576 /* Card */ 3577 3578 #itemCards { 3579 max-height: 430px; 3580 overflow: auto; 3581 } 3582 3583 .item-cards { 3584 width: 100%; 3585 } 3586 .item-card.selected { 3587 border: 1px solid #ffffff; 3588 } 3589 .item-card:hover { 3590 border: 1px solid #C4C4C4; 3591 } 3592 .item-cards .item-card { 3593 position: relative; 3594 width: calc(33% - 10px); 3595 max-width: calc(33% - 10px); 3596 flex: 0 0 calc(33% - 10px); 3597 margin-bottom: 20px; 3598 } 3599 .item-cards .item-card label, 3600 .item-addons .item-addon label { 3601 position: absolute; 3602 left: 0; 3603 width: 100%; 3604 height: 100%; 3605 } 3606 .item-cards .item-card .card-image img, 3607 .item-addons .item-addon .card-image img { 3608 display: block; 3609 width: 100%; 3610 } 3611 .item-card .card-meta, 3612 .item-addon .card-meta { 3613 padding: 10px 5px 5px; 3614 } 3615 .item-card.selected .card-meta, 3616 .item-addon.selected .card-meta, 3617 .item-card.selected .card-qty { 3618 background-color: #ffffff; 3619 color: #fff; 3620 visibility: visible!important; 3621 } 3622 .item-card:hover .card-meta, 3623 .item-addon:hover .card-meta, 3624 .item-card:hover .card-qty { 3625 background-color: #C4C4C4; 3626 color: #fff; 3627 visibility: visible!important; 3628 } 3629 .item-cards .item-card p, 3630 .item-addons .item-addon p { 3631 font-size: 12px !important; 3632 margin: 0; 3633 font-weight: 600; 3634 } 3635 .item-card .card-meta input, 3636 .item-addon .card-meta input { 3637 display: none; 3638 } 3639 .item-cards .item-card h5, 3640 .item-addons .item-addon h5 { 3641 text-transform: uppercase; 3642 max-height: 35px; 3643 } 3644 3645 @media (max-width: 768px) { 3646 .item-cards .item-card {
3647 width: calc(50% - 10px); 3648 max-width: calc(50% - 10px); 3649 flex: 0 0 calc(50% - 10px); 3650 margin-bottom: 0; 3651 } 3652 } 3653 3654 .card-qty { 3655 display: flex; 3656 padding: 5px; 3657 visibility: hidden; 3658 background-color: #fff !important; 3659 z-index: 999; 3660 } 3661 .card-qty a { 3662 border-width: 1px; 3663 width: 30%; 3664 cursor: pointer; 3665 text-align: center; 3666 align-self: center; 3667 height: 28px; 3668 display: block; 3669 position: relative; 3670 } 3671 .card-qty a svg { 3672 position: absolute; 3673 top: 50%; 3674 left: 50%; 3675 transform: translate(-50%, -50%); 3676 text-align: center; 3677 } 3678 input.btn-qty { 3679 border-width: 0px; 3680 border-radius: 0; 3681 background-color: #fff; 3682 -webkit-appearance: none; 3683 box-shadow: none !important; 3684 -webkit-box-shadow: none !important; 3685 -moz-box-shadow: none!important; 3686 width: 40%; 3687 border-left: 1px solid #c4c4c4; 3688 border-right: 1px solid #c4c4c4; 3689 padding: 0; 3690 } 3691 3692 .sectionPurchaseBoard #itemAddons .item-card { 3693 width: calc(20% - 15px); 3694 max-width: calc(20% - 15px); 3695 flex: 0 0 calc(20% - 15px); 3696 } 3697 3698 .purchase-button { 3699 width: 100%; 3700 padding: 0; 3701 margin: 0; 3702 } 3703 3704 .sectionPurchaseBoard .purchase-button { 3705 margin-top: 0 !important; 3706 } 3707 3708 .back-purchase-button, .back-spotify { 3709 width: 139px; 3710 border: 1px solid; 3711 height: 43px; 3712 } 3713 .purchase-button .btn { 3714 width: 297px; 3715 height: 43px; 3716 background-color: #ffffff; 3717 color: #ffffff; 3718 } 3719 .purchase-button .btn[disabled] { 3720 background-color: #EEEEEE; 3721 } 3722 .back-purchase-button svg, .back-spotify svg { 3723 align-self: center; 3724 vertical-align: middle; 3725 margin-right: 10px; 3726 } 3727 3728 #purchaseProduct .row .error { 3729 font-size: 12px !important; 3730 color: orange; 3731 margin-top: 5px; 3732 } 3733 3734 .reviewCardPurchase { 3735 max-width: 448px; 3736 float: right; 3737 } 3738 3739 .addonsPurchase .addon-item {display: flex;justify-content: space-between;} 3740 .addon-item * {align-self: center;font-size: 12px;} 3741 .addon-itm-title {width: 360px;} 3742 .addon-itm-line-price {color: #757575;width: 80px;justify-content: space-between;display: flex;} 3743 3744 .propsAddonSpotify p { 3745 margin: 0; 3746 display: flex; 3747 font-size: 12px !important; 3748 margin-bottom: 5px; 3749 } 3750 .propsAddonSpotify p span:first-child { 3751 text-transform: uppercase; 3752 font-weight: 600; 3753 -ms-flex: 0 0 150px; 3754 flex: 0 0 150px; 3755 max-width: 150px; 3756 } 3757 3758 .addonsPurchase .addons { 3759 max-height: 250px; 3760 overflow: auto; 3761 } 3762 3763 .btn .loading:after { 3764 content: ""; 3765 display: inline-block; 3766 width: 20px; 3767 height: 20px; 3768 padding: 3px; 3769 aspect-ratio: 1; 3770 border-radius: 50%; 3771 background: #FFFFFF; 3772 --_m: conic-gradient(#0000 10%, #ffffff), linear-gradient(#ffffff 0 0) content-box; 3773 -webkit-mask: var(--_m); 3774 mask: var(--_m); 3775 -webkit-mask-composite: source-out; 3776 mask-composite: subtract; 3777 animation: l3 1s infinite linear; 3778 margin: auto; 3779 vertical-align: middle; 3780 margin-left: 10px; 3781 } 3782 3783 #qrcode img, #qrcode canvas { 3784 width: 50px; 3785 position: absolute; 3786 top: 12px; 3787 left: 16px; 3788 } 3789 3790 .t-preview { 3791 position: absolute; 3792 top: 17px; 3793 left: 75px; 3794 } 3795 .t-preview p { 3796 margin: 0; 3797 font-size: 12px !important; 3798 } 3799 .t-preview .h3 { 3800 font-size: 16px !important; 3801 margin-bottom: 5px; 3802 font-weight: 600; 3803 } 3804 .scanCard { 3805 width: 100%; 3806 border: 1px solid; 3807 height: 76px; 3808 background-color: #fff; 3809 } 3810 .scanCard > div > img { 3811 position: absolute; 3812 right: 0; 3813 width: 55px; 3814 } 3815 3816 @keyframes l3 { 3817 100% { 3818 transform: rotate(1turn); 3819 } 3820 } 3821 3822 @media (min-width: 991px) { 3823 .sectionPurchase { 3824 height: 100%; 3825 position: relative; 3826 max-width: 1344px;
3827 background-color: #fff; 3828 top: 50%; 3829 left: 50%; 3830 transform: translate(-50%, -50%); 3831 } 3832 .headerPurchase h3 { 3833 font-size: 20px; 3834 } 3835 .purchaseArea h4 { 3836 font-size: 16px; 3837 } 3838 3839 .menuPurchase ul li { 3840 font-size: 16px; 3841 } 3842 3843 .contentPurchase { 3844 margin-bottom: 30px; 3845 } 3846 .contentPurchase h5 { 3847 font-size: 16px; 3848 } 3849 3850 .item-cards .item-card p, 3851 .item-addons .item-addon p { 3852 font-size: 16px !important; 3853 } 3854 3855 .cards { 3856 float: right; 3857 width: 400px; 3858 } 3859 3860 .item-cards .item-card { 3861 width: calc(25% - 30px); 3862 max-width: calc(25% - 30px); 3863 flex: 0 0 calc(25% - 30px); 3864 } 3865 3866 #itemAddons .item-card { 3867 position: relative; 3868 width: calc(16% - 40px); 3869 max-width: calc(16% - 40px); 3870 flex: 0 0 calc(16% - 40px); 3871 } 3872 3873 .purchase-button-wrapper { 3874 padding: 10px 20px; 3875 } 3876 } 3877 3878 @media (max-width: 1200px) { 3879 .item-cards .item-card { 3880 width: calc(33% - 30px); 3881 max-width: calc(33% - 30px); 3882 flex: 0 0 calc(33% - 30px); 3883 } 3884 } 3885 3886 @media (max-width: 992px) { 3887 .purchasePopup { 3888 padding: 0; 3889 } 3890 .item-cards .item-card h5, 3891 .item-addons .item-addon h5 { 3892 max-height: 30px; 3893 } 3894 3895 .back-purchase-button, .back-spotify, .next-purchase-button { 3896 width: 100%; 3897 } 3898 .addon-itm-title { 3899 width: 300px; 3900 } 3901 .addon-itm-line-price { 3902 margin-right: 10px; 3903 } 3904 .t-preview { 3905 top: 10px; 3906 } 3907 3908 .card-qty a { 3909 height: 15px; 3910 } 3911 3912 .purchase-button-wrapper { 3913 padding: 15px; 3914 } 3915 } 3916 3917 @media (max-width: 576px) { 3918 .purchase-button .btn { 3919 width: 100%!important; 3920 } 3921 .purchase-button > .col-12 { 3922 padding-left: 0; 3923 padding-right: 0; 3924 } 3925 } 3926 </style> 3927 3928 3929 <div class="purchasePopup"> 3930 <div class="purchaseArea"> 3931 3932 <div class="sectionPurchase purchasePersonalize sectionPurchaseBoard"> 3933 <div class="wrapperPurchase"> 3934 <div class="purchase-content"> 3935 <div class="headerPurchase"> 3936 <h3 class="text-uppercase"> 3937 3938 customize your flower board 3939 3940 </h3> 3941 <a class="close-purchase-popup"> 3942 <svg xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" 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 3951 <div class="col-12"> 3952 3953 3954 <style> 3955 3956 3957 .customize-papan .group-field-1 .input-field {float: left;width: 100%;height: 317px;background-color: #E5E5EA;} 3958 .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;} 3959 3960 .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;} 3961 .customize-papan .btn-upload-papan svg {width: 21px;height: 25px;display: block;align-self: center;margin: auto;margin-bottom: 12px;} 3962 .svgLogoPapan {position: absolute;width: 100%;top: 50%;left: 50%;transform: translate(-50%, -50%);text-align: center;} 3963 .svgLogoPapan p {color: #8E8E93; margin: 0;} 3964 .svgLogoPapan p span {font-size: 12px;color: #FF0E00;} 3965 .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;} 3966 #suggest-messages {position: absolute;bottom: 5px;left: 5px;} 3967 #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;} 3968 .case-occasion .nice-select:after {border-bottom: 2px solid #333;border-right: 2px solid #333;right: 20px;top: 42%;width: 10px;height: 10px;} 3969 .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;} 3970 .customize-papan .input-field .limit {position: absolute;right: 15px;top: 0;color: #757575;} 3971 3972 @media (min-width: 991px) { 3973 .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);} 3974 .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);} 3975 } 3976 </style> 3977 3978 <input type="hidden" data-properties="penerima" value="-"> 3979 <div class="customize-papan"> 3980 <div class="container"> 3981 <div class="field-papan group-field-1 form-group"> 3982 <div class="input-field">
3983 <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. 3984 (Ex: Selamat Menempuh Hidup Baru A & B)." maxlength="100"></textarea> 3985 <p class="limit">0/100</p> 3986 <div id="suggest-messages"> 3987 <a id="show_note_papan1" href="https://snooglestore.com/"> 3988 <div class="suggest-message" id="note_btn_div1"> 3989 <span class="promo-code-link" id="note_btn_papan1">Contoh Kata WEDDING</span> 3990 </div> 3991 </a> 3992 <a id="show_note_papan2" href="https://snooglestore.com/"> 3993 <div class="suggest-message" id="note_btn_div2"> 3994 <span class="promo-code-link" id="note_btn_papan2">Contoh Kata SELAMAT</span> 3995 </div> 3996 </a> 3997 <a id="show_note_papan3" href="https://snooglestore.com/"> 3998 <div class="suggest-message" id="note_btn_div3"> 3999 <span class="promo-code-link" id="note_btn_papan3">Contoh Kata DUKA CITA</span> 4000 </div> 4001 </a> 4002 </div> 4003 </div> 4004 </div> 4005 <div class="hide"> 4006 <input type="hidden" value="" id="note_id_papan1" name="note_id_papan1" style="top: 0px;"> 4007 <input type="hidden" value="" id="note_btn_id_papan1" name="note_btn_id_papan1"> 4008 </div> 4009 <div class="hide"> 4010 <input type="hidden" value="" id="note_id_papan2" name="note_id_papan2" style="top: 0px;"> 4011 <input type="hidden" value="" id="note_btn_id_papan2" name="note_btn_id_papan2"> 4012 </div> 4013 <div class="hide"> 4014 <input type="hidden" value="" id="note_id_papan3" name="note_id_papan3" style="top: 0px;"> 4015 <input type="hidden" value="" id="note_btn_id_papan3" name="note_btn_id_papan3"> 4016 </div> 4017 <div class="field-papan group-field-2 form-group"> 4018 4019 <label for="logoPapan" onclick="" class="input-field field-logo"> 4020 4021 4022 4023 <div class="btn-upload-papan w-100"> 4024 <?xml version="1.0" encoding="UTF-8"?> 4025 <img src="" style="display:none"> 4026 <div class="svgLogoPapan"> 4027 <svg xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="22" height="26" viewBox="0 0 22 26" fill="none"> 4028 <path d="M6.5 20H15.5V11H21.5L11 0.5L0.5 11H6.5V20ZM0.5 23H21.5V26H0.5V23Z" fill="black"/> 4029 </svg> 4030 <p>Upload Logo <span>*optional</span></p> 4031 </div> 4032 </div> 4033 4034 </label> 4035 4036 <input 4037 type="hidden" 4038 data-properties="papan-logo" 4039 value="" 4040 > 4041 <input 4042 type="file" 4043 id="logoPapan" 4044 accept="image/*" 4045 style="position: absolute;width: 1px;height: 1px;padding: 0" 4046 > 4047 4048 <div class="input-field"> 4049 <input class="has-limit sender-name" type="text" placeholder="Nama Pengirim" data-properties="pengirim" maxlength="35"/> 4050 <p class="limit">0/35</p> 4051 </div> 4052 4053 </div> 4054 4055 </div> 4056 </div> 4057 </div> 4058 4059 </div> 4060 </div> 4061 4062 </div> 4063 <div class="purchase-button-wrapper"> 4064 <div class="purchase-button btn-card row m-0"> 4065 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 4066 4067 </div> 4068 <div class="btn-next-card col-12 col-lg-10 text-right"> 4069 4070 4071 <button 4072 4073 4074 4075 class="btn next-purchase-button text-uppercase" 4076 4077 disabled 4078 4079 > 4080 <span>save your flower board</span> 4081 </button> 4082 </div> 4083 </div> 4084 4085 </div> 4086 </div> 4087 </div> 4088 4089 4090 4091 <div 4092 class="sectionPurchase sectionPurchaseBoard hide" 4093 data-section="address" 4094 > 4095 <div class="wrapperPurchase"> 4096 <div class="purchase-content"> 4097 <div class="headerPurchase"> 4098 <h3> 4099 Complete Your Order 4100 </h3> 4101 <a class="close-purchase-popup"> 4102 <svg xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="18" height="18" viewBox="0 0 18 18" fill="none"> 4103 <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"/> 4104 </svg> 4105 </a> 4106 4107 </div> 4108 <div class="contentPurchase"> 4109 <div class="row"> 4110 <div class="col-12 position-relative"> 4111 <div class="addressPurchase"> 4112 4113 <h4 class="text-uppercase">recipient delivery address</h4> 4114 <p>Share the delivery address to send your heartfelt blooms straight to their door.</p> 4115 4116 <div class="formAddressPurchase row"> 4117 <div class="col-12"> 4118 <form> 4119 <div class="form-group row mb-2 mb-lg-4"> 4120 <div class="col-6 position-relative"> 4121 <input id="first_name" type="text" class="form-control input__field" placeholder="" required> 4122 <label for="first_name" class="input__label">First Name<span>*</span></label> 4123 </div> 4124 <div class="col-6 position-relative"> 4125 <input id="last_name" type="text" class="form-control input__field" placeholder="" required> 4126 <label for="last_name" class="input__label">Last Name<span>*</span></label> 4127 </div> 4128 <input type="hidden" data-properties="nama-penerima"> 4129 </div> 4130 4131 <h4 class="text-uppercase">how you want to input your address</h4> 4132 <div class="form-group row mb-2 mb-lg-4 form-address-upload"> 4133 <div class="col-6 position-relative"> 4134 <label class="address-manualy"> 4135 <svg xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="18" height="17" viewBox="0 0 18 17" fill="none"> 4136 <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
41361216 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
41365 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"/> 4137 </svg> 4138 <span>Input Address Manually</span> 4139 </label> 4140 </div> 4141 <div class="col-6 position-relative"> 4142 <label for="address-upload" class="address-upload"> 4143 <svg xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="12" height="13" viewBox="0 0 12 13" fill="none"> 4144 <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"/> 4145 </svg> 4146 <span>Upload Address Picture</span> 4147 </label> 4148 <input 4149 id="address-upload" 4150 type="file" 4151 accept="image/png, image/jpeg" 4152 style="position: absolute; padding: 0;width: 1px;height: 1px" 4153 > 4154 <input type="hidden" class="props-address-upload" data-properties="foto-alamat"> 4155 </div> 4156 </div> 4157 <img width="150" height="" src="" class="photo-address" style="display: none;"> 4158 4159 <div class="form-group row position-relative mb-2 mb-lg-4 form-address"> 4160 <div class="col-12"> 4161 <textarea 4162 id="delivery_address" 4163 data-properties="alamat-penerima" 4164 class="form-control input__field col-12" 4165 placeholder="" 4166 required 4167 ></textarea> 4168 <label for="delivery_address" class="input__label">Delivery Address<span>*</span></label> 4169 4170 </div> 4171 </div> 4172 <div class="form-group row mb-2 mb-lg-4 form-address"> 4173 <div class="col-6 position-relative"> 4174 <input 4175 id="recipient_number" 4176 type="text" 4177 data-properties="telepon-penerima" 4178 class="form-control input__field" 4179 placeholder="" 4180 required 4181 > 4182 <label for="recipient_number" class="input__label">Recipient number<span>*</span></label> 4183 </div> 4184 <div class="col-6 position-relative"> 4185 <input 4186 id="company" 4187 type="text" 4188 data-properties="company" 4189 class="form-control input__field" 4190 placeholder="" 4191 > 4192 <label for="company" class="input__label">Company (Optional)</label> 4193 </div> 4194 </div> 4195 <div class="form-group row mb-2 mb-lg-4 form-address"> 4196 <div class="col-6 position-relative"> 4197 <input 4198 id="province" 4199 type="text" 4200 class="form-control input__field" 4201 placeholder="" 4202 value="Jakarta" 4203 data-properties="province" 4204 > 4205 <label for="province" class="input__label">Province</label> 4206 </div> 4207 <div class="col-6 position-relative"> 4208 <select id="zip" class="form-control select-search" required></select> 4209 </div> 4210 </div> 4211 </form> 4212 </div> 4213 </div> 4214 </div> 4215 <div class="addonsPurchase"> 4216 <h4 class="text-uppercase">add-ons</h4> 4217 <div class="addons"> 4218 <p>No Add-Ons</p> 4219 <!-- 4220 <button class="add-addon"> 4221 <svg xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="12" height="12" viewBox="0 0 12 12" fill="none"> 4222 <path d="M5.5 6.5H0V5.5H5.5V0H6.5V5.5H12V6.5H6.5V12H5.5V6.5Z" fill="black"/> 4223 </svg>
4224 <span>Enhance my moment with Add-ons</span> 4225 </button> 4226 --> 4227 </div> 4228 </div> 4229 </div> 4230 4231 </div> 4232 </div> 4233 4234
4234<script> 4235 document.addEventListener('DOMContentLoaded', function() { 4236 // Detect iOS 4237 var isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; 4238 4239 if (isIOS) { 4240 document.querySelector('.formAddressPurchase').classList.add('ios'); 4241 4242 // iOS specific fixes 4243 var inputs = document.querySelectorAll('.formAddressPurchase .input__field'); 4244 4245 inputs.forEach(function(input) { 4246 // Force enable touch events on iOS 4247 input.style.webkitUserSelect = 'text'; 4248 input.style.webkitTouchCallout = 'default'; 4249 input.style.pointerEvents = 'auto'; 4250 input.style.touchAction = 'manipulation'; 4251 4252 // Add explicit touch event listeners for iOS 4253 input.addEventListener('touchstart', function(e) { 4254 e.stopPropagation(); 4255 this.focus(); 4256 }, { passive: false }); 4257 4258 input.addEventListener('touchend', function(e) { 4259 e.preventDefault(); 4260 e.stopPropagation(); 4261 this.focus(); 4262 this.click(); 4263 }, { passive: false }); 4264 4265 // Force focus on tap for iOS 4266 input.addEventListener('click', function(e) { 4267 e.stopPropagation(); 4268 if (document.activeElement !== this) { 4269 this.focus(); 4270 } 4271 }); 4272 }); 4273 4274 // Fix for label overlapping on iOS 4275 var labels = document.querySelectorAll('.formAddressPurchase .input__label'); 4276 labels.forEach(function(label) { 4277 label.style.pointerEvents = 'none'; 4278 label.addEventListener('touchstart', function(e) { 4279 e.preventDefault(); 4280 var input = this.parentNode.querySelector('.input__field'); 4281 if (input) { 4282 input.focus(); 4283 } 4284 }); 4285 }); 4286 } 4287 4288 // Handle input state for all browsers, especially iOS 4289 var inputs = document.querySelectorAll('.input__field'); 4290 4291 inputs.forEach(function(input) { 4292 // Handle input events 4293 input.addEventListener('input', function() { 4294 if (this.value.trim() !== '') { 4295 this.classList.add('has-value'); 4296 } else { 4297 this.classList.remove('has-value'); 4298 } 4299 }); 4300 4301 // Handle focus 4302 input.addEventListener('focus', function() { 4303 this.classList.add('focused'); 4304 // iOS specific: ensure input is visible 4305 if (isIOS) { 4306 setTimeout(function() { 4307 input.scrollIntoView({ behavior: 'smooth', block: 'center' }); 4308 }, 300); 4309 } 4310 }); 4311 4312 // Handle blur 4313 input.addEventListener('blur', function() { 4314 this.classList.remove('focused'); 4315 if (this.value.trim() !== '') { 4316 this.classList.add('has-value'); 4317 } else { 4318 this.classList.remove('has-value'); 4319 } 4320 }); 4321 4322 // Initial check for pre-filled values 4323 if (input.value.trim() !== '') { 4324 input.classList.add('has-value'); 4325 } 4326 }); 4327 4328 // Additional iOS fixes 4329 if (isIOS) { 4330 // Prevent iOS Safari from adding default styling 4331 document.addEventListener('touchstart', function() {}, { passive: true }); 4332 4333 // Fix viewport issues on iOS 4334 var viewport = document.querySelector('meta[name=viewport]'); 4335 if (viewport) { 4336 viewport.setAttribute('content', 4337 'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' 4338 ); 4339 } 4340 } 4341 }); 4342 </script>
4342 4343 </div> 4344 <div class="purchase-button-wrapper"> 4345 <div class="purchase-button btn-address row m-0"> 4346 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 4347 4348 <button class="back-purchase-button back-address text-uppercase"> 4349 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png"> 4350 <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"/> 4351 </svg> 4352 <span>Back</span> 4353 </button> 4354 4355 </div> 4356 <div class="btn-next-card col-12 col-lg-10 text-right"> 4357 4358 <!-- 4359 <button class="back-purchase-button back-address text-uppercase mr-lg-2 mb-2 mb-lg-0"> 4360 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png"> 4361 <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"/> 4362 </svg> 4363 <span>Back</span> 4364 </button> 4365 --> 4366 4367 4368 <button 4369 4370 id="addtocart-card" 4371 4372 class="btn next-address text-uppercase" 4373 4374 > 4375 <span>add to cart</span> 4376 </button> 4377 </div> 4378 </div> 4379 4380 </div> 4381 </div> 4382 </div> 4383 4384 </div> 4385 </div> 4386 <div id="backgroundPopup"></div> 4387 4388 4389 4390 <input 4391 data-index="1" 4392 type="hidden" 4393 id="properties-delivery-date" 4394 name="properties[Delivery Date]" 4395 value="-" 4396 > 4397 <input 4398 data-index="2" 4399 type="hidden" 4400 id="properties-delivery-time" 4401 name="properties[Delivery Time]" 4402 value="-" 4403 > 4404 <input 4405 data-index="4" 4406 type="hidden" 4407 id="properties-nama-penerima" 4408 name="properties[Nama Penerima]" 4409 value="-" 4410 > 4411 <input 4412 data-index="5" 4413 type="hidden" 4414 id="properties-alamat-penerima" 4415 name="properties[Alamat Penerima]" 4416 value="-" 4417 > 4418 <input 4419 data-index="6" 4420 type="hidden" 4421 id="properties-kodepos" 4422 name="properties[Kodepos]" 4423 value="-" 4424 > 4425 <input data-index="7" type="hidden" id="properties-telepon-penerima" name="properties[Telepon Penerima]"> 4426 4427 4428 <input 4429 data-index="8" 4430 type="hidden" 4431 id="properties-kartu-nama-penerima" 4432 name="properties[Kartu Nama Penerima]" 4433 value="-" 4434 > 4435 4436 <textarea 4437 data-index="9" 4438 type="hidden" 4439 id="properties-kartu-pesan" 4440 name="properties[Kartu Pesan]" 4441 style="display: none" 4442 >-</textarea> 4443 4444 4445 4446 <input 4447 data-index="10" 4448 type="hidden" 4449 id="properties-kartu-nama-pengirim" 4450 name="properties[Kartu Nama Pengirim]" 4451 value="-" 4452 > 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 <!-- Additional Shipping --> 4472 <input type="hidden" id="properties-kota-pengiriman-province" name="properties[Province]"> 4473 <input 4474 type="hidden" 4475 id="properties-kota-pengiriman-country" 4476 name="properties[Country]" 4477 value="Indonesia" 4478 > 4479 <input type="hidden" id="properties-shipping" name="properties[Shipping]"> 4480 4481 <input type="hidden" id="properties-time" name="properties[Time]"> 4482 <input type="hidden" id="properties-card" name="properties[Card]"> 4483 <input type="hidden" id="properties-addons" name="properties[Addons]"> 4484 4485 <input 4486 type="hidden" 4487 id="properties-company" 4488 name="properties[Company]" 4489 value="" 4490 > 4491
4491<script> 4492 4493 $(document).ready(function(){ 4494 4495 var text_max_papan1=150; 4496 var msg_text_papan1=""; 4497 $('#kartu-ucapan-ucapan').keyup(function(){ 4498 var text_length_papan1=$('#kartu-ucapan-ucapan').val().length; 4499 var msg_text_papan1=$('#kartu-ucapan-ucapan').val(); 4500 }); 4501 4502 var notes_papan1 = [ 4503 4504 [0,"Happy Wedding (nama & nama)."],[1,"Congratulations lovebirds (nama & nama)."],[2,"Selamat berbahagia (nama & nama)."],[3,"Selamat menempuh hidup baru (nama & nama)."] 4505 4506 ]; 4507 $('#show_note_papan1').click(function(event){ 4508 event.preventDefault(); 4509 var idx_papan1=parseInt($('#note_id_papan1').val()); 4510 if(isNaN(idx_papan1)){ 4511 idx_papan1=0; 4512 }else{ 4513 idx_papan1++; 4514 idx_papan1=idx_papan1%notes_papan1.length; 4515 } 4516 var note_papan1=notes_papan1[idx_papan1][1]; 4517 $('#note_id_papan1').val(idx_papan1); 4518 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan1); 4519 $('#msgDelivery').val(note_papan1); 4520 4521 var text_length_papan1=$('#kartu-ucapan-papan').val().length; 4522 var idx_2_papan1=parseInt($('#note_btn_id_papan1').val()); 4523 if(isNaN(idx_2_papan1)){ 4524 idx_2_papan1=0; 4525 }else{ 4526 idx_2_papan1++; 4527 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4528 } 4529 $('#note_btn_id_papan1').val(idx_2_papan1); 4530 //var note_btn=note_btn_text[idx_2][1]; 4531 //$('#note_btn').text(note_btn); 4532 }); 4533 4534 var text_max_papan2=150; 4535 var msg_text_papan2=""; 4536 $('#kartu-ucapan-ucapan').keyup(function(){ 4537 var text_length_papan2=$('#kartu-ucapan-ucapan').val().length; 4538 var msg_text_papan2=$('#kartu-ucapan-ucapan').val(); 4539 }); 4540 4541 var notes_papan2 = [ 4542 4543 [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)."] 4544 4545 ]; 4546 $('#show_note_papan2').click(function(event){ 4547 event.preventDefault(); 4548 var idx_papan2=parseInt($('#note_id_papan2').val()); 4549 if(isNaN(idx_papan2)){ 4550 idx_papan2=0; 4551 }else{ 4552 idx_papan2++; 4553 idx_papan2=idx_papan2%notes_papan2.length; 4554 } 4555 var note_papan2=notes_papan2[idx_papan2][1]; 4556 $('#note_id_papan2').val(idx_papan2); 4557 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan2); 4558 $('#msgDelivery').val(note_papan2); 4559 var text_length_papan2=$('#kartu-ucapan-papan').val().length; 4560 var idx_2_papan2=parseInt($('#note_btn_id_papan2').val()); 4561 if(isNaN(idx_2_papan2)){ 4562 idx_2_papan2=0; 4563 }else{ 4564 idx_2_papan2++; 4565 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4566 } 4567 $('#note_btn_id_papan2').val(idx_2_papan2); 4568 //var note_btn=note_btn_text[idx_2][1]; 4569 //$('#note_btn').text(note_btn); 4570 }); 4571 4572 var text_max_papan3=150; 4573 var msg_text_papan3=""; 4574 $('#kartu-ucapan-ucapan').keyup(function(){ 4575 var text_length_papan3=$('#kartu-ucapan-ucapan').val().length; 4576 var msg_text_papan3=$('#kartu-ucapan-ucapan').val(); 4577 }); 4578 4579 var notes_papan3 = [ 4580 4581 [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)."] 4582 4583 ]; 4584 $('#show_note_papan3').click(function(event){ 4585 event.preventDefault(); 4586 var idx_papan3=parseInt($('#note_id_papan3').val()); 4587 if(isNaN(idx_papan3)){ 4588 idx_papan3=0; 4589 }else{ 4590 idx_papan3++; 4591 idx_papan3=idx_papan3%notes_papan3.length; 4592 } 4593 var note_papan3=notes_papan3[idx_papan3][1]; 4594 $('#note_id_papan3').val(idx_papan3);
4595 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan3); 4596 $('#msgDelivery').val(note_papan3); 4597 var text_length_papan3=$('#kartu-ucapan-papan').val().length; 4598 var idx_2_papan3=parseInt($('#note_btn_id_papan3').val()); 4599 if(isNaN(idx_2_papan3)){ 4600 idx_2_papan3=0; 4601 }else{ 4602 idx_2_papan3++; 4603 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4604 } 4605 $('#note_btn_id_papan3').val(idx_2_papan3); 4606 //var note_btn=note_btn_text[idx_2][1]; 4607 //$('#note_btn').text(note_btn); 4608 }); 4609 4610 var text_max_papan4=150; 4611 var msg_text_papan4=""; 4612 $('#kartu-ucapan-ucapan').keyup(function(){ 4613 var text_length_papan4=$('#kartu-ucapan-ucapan').val().length; 4614 var msg_text_papan4=$('#kartu-ucapan-ucapan').val(); 4615 }); 4616 4617 $('#show_note_papan4').click(function(event){ 4618 var notes_papan4 = [ 4619 [0,"Hereâs to youâsteadier, stronger and better every day."], 4620 [1,"Warmest wishes for a speedy recovery!"], 4621 [2,"Dengan ucapan terhangat, semoga lekas membaik dan semakin pulih setiap harinya ya."], 4622 [3,"Semoga lekas sembuh untuk kembali beraktivitas dan berkarya."] 4623 ]; 4624 event.preventDefault(); 4625 var idx_papan4=parseInt($('#note_id_papan4').val()); 4626 console.log(idx_papan4, 'idx_papan4') 4627 if(isNaN(idx_papan4)){ 4628 idx_papan4=0; 4629 }else{ 4630 idx_papan4++; 4631 idx_papan4=idx_papan4%notes_papan4.length; 4632 } 4633 var note_papan4=notes_papan4[idx_papan4][1]; 4634 $('#note_id_papan4').val(idx_papan4); 4635 $('#kartu-ucapan-papan, #properties-kartu-ucapan, #properties-kartu-pesan').val(note_papan4); 4636 console.log(note_papan4, 'note_papan4') 4637 var text_length_papan4=$('#kartu-ucapan-papan').val().length; 4638 var idx_2_papan4=parseInt($('#note_btn_id_papan4').val()); 4639 if(isNaN(idx_2_papan4)){ 4640 idx_2_papan4=0; 4641 }else{ 4642 idx_2_papan4++; 4643 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4644 } 4645 $('#note_btn_id_papan4').val(idx_2_papan4); 4646 }); 4647 4648 /* 4649 $("#jenisPapan").change(function(){ 4650 $( "select option:selected").each(function(){ 4651 if($(this).attr("value")=="Happy Wedding"){ 4652 $("#suggest-messages a").hide(); 4653 $("#show_note_papan1").show(); 4654 $("#kartu-ucapan-papan").val(""); 4655 } 4656 if($(this).attr("value")=="Congratulations"){ 4657 $("#suggest-messages a").hide(); 4658 $("#show_note_papan2").show(); 4659 $("#kartu-ucapan-papan").val(""); 4660 } 4661 if($(this).attr("value")=="Duka Cita"){ 4662 $("#suggest-messages a").hide(); 4663 $("#show_note_papan3").show(); 4664 $("#kartu-ucapan-papan").val(""); 4665 } 4666 }); 4667 }).change(); 4668 */ 4669 4670 4671 4672 4673 4674 $(".variant-metafield").each(function(){ 4675 const t = $(this) 4676 const id = t.attr("id") 4677 const target = $(`[data-select=${id}]`) 4678 t.on('select2:selecting', function(e) { 4679 const data = e.params.args.data 4680 target.val(data.text) 4681 }); 4682 }) 4683 }) 4684 </script>
4684 4685
4685<script> 4686 const shareButton = document.getElementById('shareButton'); 4687 4688 shareButton.addEventListener('click', () => { 4689 if (navigator.share) { 4690 navigator.share({ 4691 title: "BAGUS33 | Official Snoogle Store: Bingkai Foto USG Kehamilan & Momen Keluarga Bergaransi Resmi", 4692 url: "/products/blossom-shine", 4693 text: 'Check out this page!' 4694 }) 4695 .then(() => console.log('Successful share')) 4696 .catch((error) => console.log('Error sharing', error)); 4697 } else { 4698 alert('Web Share API is not supported in this browser.'); 4699 } 4700 }); 4701 4702 // Inventory validation function 4703 function checkInventoryStatus() { 4704 const productSelect = document.getElementById('productSelect'); 4705 const purchaseButton = document.querySelector('#personalizeBtn button'); 4706 4707 if (!productSelect || !purchaseButton) return; 4708 4709 const selectedVariantId = productSelect.value; 4710 4711 // Get variant data from Shopify 4712 fetch(`/products/blossom-shine.js`) 4713 .then(response => response.json()) 4714 .then(product => { 4715 const selectedVariant = product.variants.find(variant => variant.id == selectedVariantId); 4716 4717 if (selectedVariant) { 4718 const isOutOfStock = selectedVariant.inventory_quantity <= 0 && 4719 selectedVariant.inventory_management === 'shopify' && 4720 selectedVariant.inventory_policy !== 'continue'; 4721 4722 if (isOutOfStock) { 4723 purchaseButton.disabled = true; 4724 purchaseButton.textContent = 'Out of Stock'; 4725 purchaseButton.setAttribute('data-out-of-stock', 'true'); 4726 purchaseButton.style.backgroundColor = '#cccccc'; 4727 purchaseButton.style.cursor = 'not-allowed'; 4728 } else { 4729 // Check if button was disabled due to other conditions 4730 4731 4732 4733 4734 4735 4736 4737 4738 const isOtherDisabled = false || true || false; 4739 4740 if (!isOtherDisabled) { 4741 purchaseButton.disabled = false; 4742 purchaseButton.textContent = 'customize your flower board'; 4743 purchaseButton.removeAttribute('data-out-of-stock'); 4744 purchaseButton.style.backgroundColor = ''; 4745 purchaseButton.style.cursor = ''; 4746 } 4747 } 4748 } 4749 }) 4750 .catch(error => { 4751 console.error('Error checking inventory:', error); 4752 }); 4753 } 4754 4755 // Check inventory on page load 4756 document.addEventListener('DOMContentLoaded', function() { 4757 checkInventoryStatus();
4758 4759 // Listen for variant changes 4760 const productSelect = document.getElementById('productSelect'); 4761 if (productSelect) { 4762 productSelect.addEventListener('change', checkInventoryStatus); 4763 } 4764 }); 4765 4766 // Prevent form submission if out of stock 4767 document.addEventListener('click', function(e) { 4768 if (e.target.matches('button[data-out-of-stock="true"]')) { 4769 e.preventDefault(); 4770 e.stopPropagation(); 4771 alert('This product is currently out of stock and cannot be purchased.'); 4772 return false; 4773 } 4774 }); 4775 </script>
4775 4776 4777 4778 4779 </div> 4780 4781 </div> 4782 </div> 4783 </div> 4784 </div> 4785 <div id="product-bottom"> 4786 4787 <div class="product-description rte bg-card col-12 py-3 px-0 m-0" itemprop="description"> 4788 <div class="container"> 4789 4790 4791 4792 4793 4794 <div class="short-desc-mobile d-block d-lg-none mb-3"> 4795 <div class="short-desc"> 4796 <ul> 4797 <li><strong>Bersama BAGUS33, temukan bingkai foto akrilik eksklusif bergaransi resmi di Official Snoogle Store untuk mengabadikan momen berharga USG kehamilan serta kenangan indah keluarga Anda dengan tampilan yang elegan.</strong></li> 4798 </div> 4799 <label class="more-mobile">Show More â</label> 4800 </div> 4801 4802 <style> 4803 .animated-title { 4804 text-align: center; 4805 font-weight: bold; 4806 color: #079c02; 4807 font-size: 28px; 4808 position: relative; 4809 animation: glow 2s infinite alternate, moveUpDown 3s infinite; 4810 } 4811 4812 @keyframes glow { 4813 0% { text-shadow: 0 0 5px #079c02; color: #079c02; } 4814 50% { text-shadow: 0 0 20px #00ff55; color: #12d12b; } 4815 100% { text-shadow: 0 0 10px #1bff00; color: #079c02; } 4816 } 4817 4818 /* Efek gerakan naik turun */ 4819 @keyframes moveUpDown { 4820 0% { transform: translateY(0px); } 4821 50% { transform: translateY(-5px); } 4822 100% { transform: translateY(0px); } 4823 } 4824 </style> 4825 4826
4826<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/shopify-cartjs/1.1.0/cart.min.js"></script>
4826 4827
4827<script> 4828 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}); 4829 4830 const productType = $("[data-product-type]").data("product-type") 4831 const productDate = Date.parse(new Date()) 4832 4833 const shop = 'outerbloom1.myshopify.com' 4834 const host = 'https://app.asmaraku.com' 4835 // const host = 'http://localhost:5001' 4836 4837 const gsheet = "https://script.google.com/macros/s/AKfycbyqa6mPD6lVjU6hiHr12J8URZ2aJBGyxBsGQ0QtEIDari-rBk_9vSOITjSSmUXL1NwxEg/exec" 4838 4839 const qrID = "041025" + randomString(4, 'aAbCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ') 4840 4841 $("#properties-time").val(new Date().getTime()) 4842 4843 const isIOS = /iPhone|iPad|iPod/i.test(navigator.userAgent); 4844 4845 if(!isIOS) { 4846 $("#full-date").attr("type", "button") 4847 } 4848 4849 let dateTime = new Date(); 4850 let today = dateTime.getDate(); 4851 let day = dateTime.getDay(); 4852 let hour = dateTime.getHours(); 4853 let min = dateTime.getMinutes(); 4854 let timeOfDay = hour + (min / 100); 4855 4856 async function getFetch(url) { 4857 const response = await fetch(url); 4858 let status = false 4859 let result 4860 if(response.ok) { 4861 status = true 4862 result = await response.json(); 4863 } 4864 return { 4865 status, 4866 data: result 4867 } 4868 } 4869 4870 4871 4872 function setCookie(cname, cvalue, exMins) { 4873 var d = new Date(); 4874 d.setTime(d.getTime() + (exMins*60*1000)); 4875 var expires = "expires="+d.toUTCString(); 4876 document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; 4877 } 4878 4879 function getCookie(cname) { 4880 let name = cname + "="; 4881 let decodedCookie = decodeURIComponent(document.cookie); 4882 let ca = decodedCookie.split(';'); 4883 for(let i = 0; i <ca.length; i++) { 4884 let c = ca[i]; 4885 while (c.charAt(0) == ' ') { 4886 c = c.substring(1); 4887 } 4888 if (c.indexOf(name) == 0) { 4889 return c.substring(name.length, c.length); 4890 } 4891 } 4892 return ""; 4893 } 4894 4895 async function renderDate() { 4896 let dataDate = await getFetch(`${host}/api/shipping/date?domain=${shop}&productId=9979127912352&v=${Date.now()}`); 4897 console.log(dataDate, 'renderDate') 4898 const data = dataDate?.data 4899 const date = data.date 4900 const time = data.time 4901 4902 console.log(date, 'DATE') 4903 4904 const weekday = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]; 4905 const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; 4906 const htmlDate = []
4907 for(let i = 0;i < date.length;i++) { 4908 const full = date[i].date 4909 const d = new Date(date[i].date); 4910 const day = weekday[d.getDay()]; 4911 const dt = d.getDate(); 4912 const mt = monthly[d.getMonth()]; 4913 const yr = d.getFullYear(); 4914 const isDate = Boolean(date[i].isEnabled) 4915 const cutoffpagi = date[i].cutoff?.pagi 4916 const cutoffsiang = date[i].cutoff?.siang 4917 const cutoffMalam = date[i].cutoff?.Malam 4918 var html = ` 4919 <button data-id="9979127912352" 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'}> 4920 ${dt === today ? 4921 `Today<span>${dt < 10 ? '0' + dt : dt}</span>` : 4922 `${day}<span>${dt < 10 ? '0' + dt : dt}</span>` 4923 } 4924 </button> 4925 ` 4926 htmlDate.push(html) 4927 } 4928 const htmlTime = []
4929 for(var i = 0;i < time.length;i++) { 4930 const timeText = time[i].text 4931 const timeTime = time[i].time 4932 const timeEnabled = time[i].isEnabled 4933 var html = ` 4934 <button class="time-single calendarbutton2 btn steps-btn" data-time="${timeText}" ${timeEnabled ? '' : 'disabled'}>${timeText}<br/>${timeTime}</button> 4935 ` 4936 htmlTime.push(html) 4937 } 4938 const deliveryDate = document.getElementById("deliveryDate"); 4939 if(deliveryDate) { 4940 deliveryDate.insertAdjacentHTML("afterbegin", htmlDate.join('')) 4941 $("#deliveryTime").html(htmlTime) 4942 if(productType !== '') { 4943 console.log("clarity event " + productType + ' calendaring') 4944 window.clarity("event", `${productType} calendaringSchedule`) 4945 // window.clarity("set", productType, `calendaringSchedule - ${productDate}`) 4946 } 4947 } 4948 } 4949 4950 async function getProvince(city) { 4951 let { data: { province } } = await getFetch(`${host}/api/shipping/address/province?city=${city}`); 4952 console.log(province, 'province') 4953 $("#province").val(province) 4954 } 4955 4956 async function renderAddress() { 4957 let current 4958 if(getCookie("location_delivery")){ 4959 current = getCookie("location_delivery").charAt(0).toUpperCase() + getCookie("location_delivery").slice(1) 4960 } 4961 let address = await getFetch(`${host}/api/shipping/address?domain=${shop}&productId=9979127912352`); 4962 console.log(address) 4963 const data = address?.data?.city 4964 const htmlAddress = [] 4965 const grouping = []
4966 for(let i = 0;i < data?.length;i++) { 4967 if(data[i]){ 4968 if(data[i]?.group) { 4969 grouping.push(data[i].group) 4970 } 4971 const price = rupiah.format(data[i]?.rate) 4972 let promo = '(Promo Free Delivery)' 4973 if(data[i]?.name === 'Jakarta - PickUp ASHTA'){ 4974 promo = '(at SCBD, Ashta)' 4975 } else if(data[i]?.name === 'Jakarta - PickUp ITC'){ 4976 promo = '(at Kuningan, ITC Kuningan)' 4977 } else if(data[i]?.name === 'BSD - PickUp'){ 4978 promo = '(at Goldfinch Gading Serpong)' 4979 } else if(data[i]?.name === 'Kota Lainnya'){ 4980 promo = '' 4981 } 4982 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>`) 4983 } 4984 } 4985 4986 const deliveryCity = document.getElementById("cities"); 4987 if(deliveryCity) { 4988 deliveryCity.insertAdjacentHTML("beforeend", htmlAddress.join('')) 4989 if(!isIOS) { 4990 $(deliveryCity).select2(); 4991 } 4992 } 4993 } 4994 4995 async function renderZip(v, v2, v3) { 4996 const deliveryZip = document.getElementById("zip"); 4997 if(v === '') { 4998 return 4999 } 5000 let dataZip = await getFetch(`${host}/api/shipping/address/zip?city=${v}&city2=${v2}&city3=${v3}`); 5001 let zip = dataZip?.data?.zip 5002 console.log(zip) 5003 let htmlZip = []
5004 for(let i = 0; i < zip?.length;i++) { 5005 htmlZip.push(`<option value="${zip[i]?.postalCode} - ${zip[i]?.subdistrict}">${zip[i]?.postalCode} - ${zip[i]?.subdistrict} - ${zip[i]?.city}</option>`) 5006 } 5007 deliveryZip.insertAdjacentHTML("beforeend", htmlZip.join('')) 5008 } 5009 5010 renderDate() 5011 renderAddress() 5012 5013 let rupiah = new Intl.NumberFormat('id-ID', { 5014 style: 'currency', 5015 currency: 'IDR', 5016 maximumFractionDigits: 0, 5017 minimumFractionDigits: 0 5018 }); 5019 5020 async function insertCard(data) { 5021 const response = await fetch(`${host}/api/card/new`, { 5022 method: "POST", 5023 headers: { 5024 'Content-Type': 'application/json', 5025 }, 5026 body: data 5027 }) 5028 const result = await response.json() 5029 let rowIndex = result?.data?.tableRange.split("Outerbloom!A1:J")[1] 5030 $("#greetingCard").attr("data-index", rowIndex) 5031 return result 5032 } 5033 5034 async function updateCard(data){ 5035 const rowIndex = $("#greetingCard").data("index") 5036 const response = await fetch(`${host}/api/card/update?rowIndex=${rowIndex}`, { 5037 method: "PUT", 5038 headers: { 5039 'Content-Type': 'application/json', 5040 }, 5041 body: data 5042 }) 5043 return response 5044 } 5045 5046 function bytesToSize(bytes) { 5047 var sizes = ['b', 'kb', 'mb', 'gb', 'tb', 'p']; 5048 for (var i = 0; i < sizes.length; i++) { 5049 if (bytes <= 1024) { 5050 return bytes + ' ' + sizes[i]; 5051 } else { 5052 bytes = parseFloat(bytes / 1024).toFixed(2) 5053 } 5054 } 5055 return bytes + ' P'; 5056 } 5057 5058 async function uploadMedia(uri, type) { 5059 nameq = $("#properties-nama-penerima").val() 5060 dear = $("#properties-kartu-nama-penerima").val() 5061 card = $("[data-properties=ucapan]").val() 5062 sender = $("#properties-kartu-nama-pengirim").val() 5063 photo = $("#properties-photo").val() 5064 video = $("#properties-video").val() 5065 status = "Product" 5066 5067 const name = qrID 5068 let formData = new FormData(); 5069 formData.append("file", uri); 5070 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 5071 method: "POST", 5072 body: formData 5073 }) 5074 const result = await response.json(); 5075 if(result) { 5076 const url = result.url 5077 if(type === 'image/jpeg') { 5078 $("#properties-photo").val(url) 5079 $(".preview-image").show() 5080 $(".remove-image").show() 5081 photo = url 5082 } else { 5083 $("#properties-video").val(url) 5084 $("#label-input-video span").text("Change File") 5085 $(".case-qrcode-preview p").text("Scan here for a secret message") 5086 $(".remove-media").show() 5087 $("#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>`) 5088 $("[for=input-video]").hide() 5089 video = url 5090 } 5091 $(".case-video-preview").show() 5092 $(".steps-card-preview").removeClass("loading") 5093 // updateCard(nameq, dear, card, sender, photo, video, status) 5094 5095 $(".nextBtn").attr("disabled", false) 5096 } 5097 } 5098 5099 function randomString(length, chars) { 5100 var result = ''; 5101 for (var i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))]; 5102 return result; 5103 } 5104 5105 function getNoteCity(fulldate) { 5106 const h_1 = new Date(new Date().setDate(new Date().getDate() + 1)) 5107 const weekday = ["Min","Sen","Sel","Rab","Kam","Jum","Sab"]; 5108 const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; 5109 const d = new Date(h_1); 5110 const day = weekday[d.getDay()]; 5111 const dt = d.getDate(); 5112 const mt = monthly[d.getMonth()]; 5113 const yr = d.getFullYear(); 5114 const p = $("#cities").parent(".form-group") 5115 } 5116 5117 function disabledSameDay() { 5118 let btnFirst = $("#deliveryDate").find("button:first-child") 5119 let getDay = new Date().getDay(); 5120 5121 5122 5123 if(getDay == 1 || getDay == 2 || getDay == 3 || getDay == 4 || getDay == 5){ 5124 if(hour >= 14.00){ 5125 btnFirst.attr("disabled", true) 5126 } 5127 } else if(getDay == 6){ 5128 if(hour >= 16.00){ 5129 btnFirst.attr("disabled", true) 5130 } 5131 } else if(getDay == 0){ 5132 if(hour >= 16.00){ 5133 btnFirst.attr("disabled", true) 5134 } 5135 } 5136 5137 5138 } 5139 5140 function disabledays(date) { 5141 let ymd = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate(); 5142 //if u have to disable a list of day 5143 let removeDays 5144 5145 5146 5147 removeDays = ["2025-2-13", "2025-2-14"]; 5148 5149 if ($.inArray(ymd, removeDays) >= 0) { 5150 return [false]; 5151 } else { 5152 let day = date.getDay(); 5153 if(day == 0 && date.getDate() == 13 && date.getMonth() == 1){ 5154 return [(day == 0), '']; 5155 } 5156 5157 if(day == 0){ 5158 return [(day == 0), '']; 5159 } 5160 5161 5162 return [(day != 0), '']; 5163 } 5164 } 5165 5166 /* Indonesian initialisation for the jQuery UI date picker plugin. */ 5167 /* Written by Deden Fathurahman ([email protected]). */ 5168 ( function( factory ) { 5169 if ( typeof define === "function" && define.amd ) { 5170 5171 // AMD. Register as an anonymous module. 5172 define( [ "../widgets/datepicker" ], factory ); 5173 } else { 5174 5175 // Browser globals 5176 factory( jQuery.datepicker ); 5177 } 5178 }( function( datepicker ) { 5179 5180 datepicker.regional.id = { 5181 closeText: "Tutup", 5182 prevText: "<mundur", 5183 nextText: "maju>", 5184 currentText: "Today", 5185 monthNames: [ "January","February","March","April","May","Juny", 5186 "July","August","September","October","November","December" ], 5187 monthNamesShort: [ "Jan","Feb","Mar","Apr","May","Jun", 5188 "Jul","Agu","Sep","Oct","Nov","Dec" ], 5189 dayNames: [ "Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu" ], 5190 dayNamesShort: [ "Sun","Mon","Tue","Wed","Thu","Fri","Sat" ], 5191 dayNamesMin: [ "Mg","Sn","Sl","Rb","Km","jm","Sb" ], 5192 weekHeader: "Mg", 5193 dateFormat: "D, dd M", 5194 firstDay: 0, 5195 isRTL: false, 5196 showMonthAfterYear: false, 5197 yearSuffix: "" }; 5198 datepicker.setDefaults( datepicker.regional.id ); 5199 5200 return datepicker.regional.id; 5201 5202 } ) ); 5203 5204 function loadPopup() { 5205 $("#backgroundPopup").fadeIn("slow"); 5206 $(".purchasePopup:not(.purchasePopupSpotify)").fadeIn("slow"); 5207 const firstSection = $(".purchasePopup:not(.purchasePopupSpotify) .sectionPurchase").first() 5208 if(firstSection.hasClass("purchasePersonalize")) { 5209 if(productType !== '') { 5210 console.log("clarity event " + productType + ' personalize') 5211 window.clarity("event", `${productType} cardPersonalization`) 5212 // window.clarity("set", productType, `cardPersonalization - ${productDate}`) 5213 } 5214 } else if (firstSection.hasClass("sectionPurchaseBoard")) { 5215 console.log("clarity event " + productType + ' personalizeBoard') 5216 window.clarity("event", `${productType} personalizeBoard`) 5217 // window.clarity("set", productType, `personalizeBoard - ${productDate}`) 5218 } 5219 firstSection.removeClass("hide") 5220 5221 // Auto-trigger addon loading when addon section becomes visible 5222 setTimeout(function() { 5223 const addonSection = $(".purchaseAddon") 5224 if(addonSection.length > 0 && !addonSection.hasClass("hide")) { 5225 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 5226 $("[data-addon=upsell-all]").trigger("click") 5227 } 5228 } 5229 }, 200) 5230 } 5231 5232 function disablePopup() { 5233 $("#backgroundPopup").fadeOut("slow"); 5234 $(".purchasePopup").fadeOut("slow"); 5235 $("#popupCart").fadeOut("slow"); 5236 } 5237
5238 function scrollTo(parent, div, dur) { 5239 $(parent).animate({ 5240 scrollTop: $(div).offset().top 5241 }, dur); 5242 } 5243 5244 function loadPopupPersonalize() { 5245 const div = "#purchaseProduct" 5246 const p = "html, body, .product-meta" 5247 $("p.error").remove() 5248 loadItemOccasion($("[data-occassion]").eq(0), "greeting-card-all") 5249 const isCity = $("#cities[required]") 5250 const isDate = $("#propDeliveryDate[required]") 5251 const isTime = $("#propDeliveryTime[required]") 5252 // loadPopup() 5253 if(isCity.val() !== '' && isDate.val() !== '' && isTime.val() !== '') { 5254 loadPopup() 5255 } 5256 if(isCity.val() == '') { 5257 isCity.parent(".row").append("<p class='error'>Choose delivery city</p>") 5258 scrollTo(p, div, 500) 5259 } 5260 if(isDate.val() == '') { 5261 isDate.parents(".row").append("<p class='error'>Choose delivery date</p>") 5262 scrollTo(p, div, 500) 5263 } 5264 if(isTime.val() == '') { 5265 isTime.parents(".row").append("<p class='error'>Choose delivery time</p>") 5266 scrollTo(p, div, 500) 5267 } 5268 } 5269 5270 function quantityCounter() { 5271 $(document).on("click", ".item-card.selected .q_up", function () { 5272 var C = $(this).attr("data-id"), 5273 S = 5274 parseInt( 5275 $(this) 5276 .siblings(".quantity-cart-" + C) 5277 .val() 5278 ) + 1; 5279 $(this).attr("data-quantity", S), 5280 $(this) 5281 .siblings(".quantity-cart-" + C) 5282 .val(S); 5283 }), 5284 $(document).on("click", ".item-card.selected .q_down", function () { 5285 var C = $(this).attr("data-id"), 5286 S = parseInt( 5287 $(this) 5288 .siblings(".quantity-cart-" + C) 5289 .val() 5290 ); 5291 0 < S && $(this).attr("data-quantity", S - 1), 5292 0 < S && 5293 $(this) 5294 .siblings(".quantity-cart-" + C) 5295 .val(S - 1); 5296 }); 5297 } 5298 5299 quantityCounter() 5300 5301 const itemAddon = $(".item-card").length 5302 const nofree = $(".nofree").length 5303 5304 const upsell = '' 5305 5306 if(nofree === itemAddon) { 5307 // $("#itemAddons").html("<p>No Items available</p>") 5308 } 5309 5310 $("#itemAddons .item-card").each(function(e){ 5311 $("#itemAddons").attr("data-length", e) 5312 }) 5313 5314 $("[data-addon]").click(function(){ 5315 5316 5317 5318 const t = $(this) 5319 5320 const data = t.data("addon") 5321 5322 $("[data-addon]").removeClass("selected") 5323 t.addClass("selected") 5324 $.get(`https://outerbloom.com/collections/${data}/products.json`, function(data, status){ 5325 const products = data.products 5326 const html = [] 5327 for(let i = 0; i < products.length; i++) { 5328 const id = products[i].id 5329 const variantId = products[i].variants[0].id 5330 const img = products[i].images[0].src 5331 let img2 = img.split('.jpg')[0] 5332 const title = products[i].title 5333 const price = products[i].variants[0].price 5334 const tags = products[i].tags 5335 const qty = products[i].variants[0].available 5336 let type_upsell = '' 5337 if(tags.includes('upsell-item-standing')) { 5338 type_upsell = 'standing' 5339 } 5340 console.log(type_upsell) 5341 if(type_upsell !== '') { 5342 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}"> 5343 5344 <div class="card-image"> 5345 <img src="${img2}_150x.jpg" alt="${title}" width="" height="" /> 5346 </div> 5347 <div class="card-meta"> 5348 <h5>${title}</h5> 5349 <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p> 5350 <input id="card-${variantId}" type="hidden" name="" value="${variantId}"> 5351 </div> 5352 <div class="card-qty"> 5353 <a data-quantity="1" type="submit" id="q_down-${variantId}" class="btn-qty-min q_down drawer-cart" data-id="${variantId}"><svg xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="12" height="2" viewBox="0 0 12 2" fill="none"><path d="M0 1.90869V0.908691H12V1.90869H0Z" fill="black"/></svg></a> 5354 <input maxlength="3" min="0" class="btn-qty text-center quantity-cart-${variantId}
5354" value="0" data-price=${price} name="quantity"> 5355 <a data-quantity="1" type="submit" class="btn-qty-plus q_up text-green drawer-cart" data-id="${variantId}"><svg xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="12" height="13" viewBox="0 0 12 13" fill="none"> 5356 <path d="M0 6.87023V5.94715H5.53846V0.408691H6.46154V5.94715H12V6.87023H6.46154V12.4087H5.53846V6.87023H0Z" fill="black"/> 5357 </svg></a> 5358 </div> 5359 </div>` 5360 html.push(body) 5361 } 5362 } 5363 $("#itemAddons .row").html(html.length === 0 ? '<p>No Item available</p>' : html) 5364 $("#itemAddons").attr("data-length", products.length) 5365 // $('#itemAddons')[0].swiper.update(); 5366 }); 5367 }) 5368 5369 async function isAddon(){ 5370 let ids = [] 5371 $("#itemAddons .item-card.selected").each(function(i, e){ 5372 const id = $(this).data("id") 5373 ids.push(id) 5374 }) 5375 console.log(ids) 5376 return ids 5377 } 5378 5379 $("#itemAddons").delegate(".item-card > div:not(.card-qty)", "click", async function(){ 5380 const t = $(this).parent() 5381 const id = t.data("id") 5382 const btn = t.parents(".purchaseAddon").find(".next-purchase-button") 5383 t.toggleClass("selected"); 5384 //$(this).next("input").toggleAttr('name', 'id[]'); 5385 if (t.hasClass('selected')) { 5386 t.find("input").val(1) 5387 t.find("input").attr('name', 'id[]'); 5388 } else { 5389 t.find("input").val(0) 5390 t.find("input").removeAttr('name'); 5391 } 5392 $("#properties-addons").val(addons) 5393 const is = await isAddon() 5394 if(is.length === 0) { 5395 btn.text("continue without add-ons") 5396 return 5397 } 5398 if(is.includes(8835692069079)) { 5399 btn.text("personalize acrylic frame") 5400 } else { 5401 btn.text("Continue") 5402 } 5403 5404 }) 5405 5406 async function myAddon(data) { 5407 const c = $(".addonsPurchase .addons") 5408 let items = [] 5409 5410 const spotifyAddons = $(".spotifyAddons").find("[data-index]") 5411 // if(spotifyAddons.length > 0) { 5412 // $(spotifyAddons).each(function(i, e){ 5413 // const spotifyLink = $(this).find(".spotifyLink").val() 5414 // const spotifySong = $(this).find(".spotifySong").val() 5415 // const spotifyArtist = $(this).find(".spotifyArtist").val() 5416 // const spotifyFotoAddon = $(this).find(".resultPhotoSpotify").val() 5417 // if(spotifyLink !== '') { 5418 // spotifyAddon = `<div class="addon-item" data-id="46067682607319" data-qty="1"> 5419 // <div class="addon-itm-img"> 5420 // <img src="https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp?v=1739160467" alt="" width="70"/> 5421 // </div> 5422 // <div class="addon-itm-title"> 5423 // <span>[US] Outerbloom Acrylic Frame 4R</span> 5424 // </div> 5425 // <div class="addon-itm-line-total"> 5426 // <span>Rp 99.000</span> 5427 // </div> 5428 // </div> 5429 // <div class="propsAddonSpotify row m-0"> 5430 // <div class="col-12 col-lg-2"></div> 5431 // <div class="col-12 col-lg-10"> 5432 // <p> 5433 // <span>spotify link</span> 5434 // <span class="spotifyLinkAddon">${spotifyLink}</span> 5435 // </p> 5436 // <p> 5437 // <span>uploaded photo</span> 5438 // <span class="spotifyFotoAddon">${spotifyFotoAddon}</span> 5439 // </p> 5440 // <p> 5441 // <span>song / playlist name</span> 5442 // <span class="spotifySongAddon">${spotifySong}</span> 5443 // </p> 5444 // <p> 5445 // <span>artist name</span> 5446 // <span class="spotifyArtistAddon">${spotifyArtist}</span> 5447 // </p> 5448 // </div> 5449 // </div>` 5450 // items.push(spotifyAddon) 5451 // } 5452 // }) 5453 // }
5454 for(let i = 0; i < data.length; i++) { 5455 if(data[i].title !== '[US] Outerbloom Acrylic Frame 4R' ) { 5456 const img = data[i].image 5457 const title = data[i].title 5458 const qty = data[i].qty 5459 const price = data[i].price 5460 const total = Number(qty) * Number(price) 5461 let addons = `<div class="addon-item" data-id="${data[i].id}" data-qty="${qty}"> 5462 <div class="addon-itm-img"> 5463 <img src="${img}" alt="" width="70"/> 5464 </div> 5465 <div class="addon-itm-title"> 5466 <span>${title}</span> 5467 </div> 5468 <div class="addon-itm-line-price"> 5469 <span>${rupiah.format(price)}</span> 5470 ${data[i].title == '[US] Outerbloom Acrylic Frame 4R' ? '' : `<span>x${qty}</span>`} 5471 </div> 5472 <div class="addon-itm-line-total"> 5473 <span>${rupiah.format(total)}</span> 5474 </div> 5475 </div>` 5476 items.push(addons) 5477 } 5478 } 5479 c.html(items) 5480 const parent = $(".purchaseAddon") 5481 const next = parent.next(".sectionPurchase") 5482 parent.addClass("hide") 5483 next.removeClass("hide") 5484 // if(items2.length === 0) return $("#popupCart").addClass("no-addon-cart") 5485 // $(".itemAddonCart").find("h4").text(`add-ons (${items2.length})`) 5486 } 5487 5488 async function listAddon() { 5489 const data = $("#itemAddons").find(".selected") 5490 let ids = [] 5491 $(data).each(function(){ 5492 const id = $(this).data("variant") 5493 const image = $(this).find(".card-image img").attr("src") 5494 const title = $(this).find(".card-meta h5").text() 5495 const qty = $(this).find(".card-qty input").val() 5496 const price = $(this).find(".card-qty input").data("price") 5497 ids.push({ 5498 id: Number(id), 5499 image, 5500 title, 5501 qty, 5502 price 5503 }) 5504 }) 5505 myAddon(ids) 5506 } 5507 5508 async function customSpotify(idx, length, type){ 5509 let isCard = false 5510 5511 let p = $(".purchasePopupSpotify") 5512 const preLink = $(".spotifyLinkFirst").val() 5513 $("[data-index]").hide() 5514 p.find(".headerPurchase h3").text(`personalize spotify photo print${length > 1 ? ` - ${idx}` : ''}`) 5515 p.find(".regulerAddons, .purchase-button").hide() 5516 p.find(".spotifyAddons").show() 5517 5518 const data = await trackUrl(preLink) 5519 5520 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://cdn.datavip.cloud/Logo/Bagus33.png" width="13" height="11" viewB
5520ox="0 0 13 11" fill="none"> 5521 <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"/> 5522 </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://cdn.datavip.cloud/Logo/Bagus33.png><path d="M14.5799 7.41992L2.32992 7.41992L7.57992 12.6699L6.91992 13.4199L0.419922 6.91992L6.91992 0.419922L7.57992 1.16992L2.32992 6.41992L14.5799 6.41992V7.41992Z"fill=black /></svg> <span>Back</span></button><button data-type="${isCard ? 'card' : ''}" ${isCard ? '' : 'id=addtocart-card'} class="text-uppercase btn w-100${type == 'addon' && idx == length ? ' finished' : ' no-addon'}" disabled>${isCard ? 'Continue Personalizing' : 'add to cart'}</button></div></div></div><div class="col-12 col-lg-6 columnRight"><div class=frame-spotify><div class=frameImage><div class=frameImageUploaded><svg xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="13" height="11" viewB
5522ox="0 0 13 11" fill="none"> 5523 <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"/> 5524 </svg> <img src="" class=previewImage style=display:none></div></div><div class=frameControl><div class=spotifyData>${data?.song ? `<h3>${data?.song}</h3>` : '<h3><h3>'}${data?.artist ? `<p>${data?.artist}</p>` : '<p></p>'}</div><img src="https://outerbloom.com/cdn/shop/t/138/assets/frame-spotify.png?v=138221849636560654691752652420"alt="spotify outerbloom" height=""width=100%><div class=spotifyCode><img src="https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:${data?.type.slice(0, -1)}:${data?.trackId}"alt=""></div></div></div></div></div>` 5525 // console.log(html) 5526 5527 $(".spotifyAddons").append(html) 5528 5529 $(`[data-index=${idx}]`).show() 5530 5531 if (preLink !== '') { 5532 $(".btn-action .btn").attr("disabled", false) 5533 } else { 5534 $(".btn-action .btn").attr("disabled", true) 5535 } 5536 5537 return html 5538 5539 } 5540 5541 $(".spotifyLinkFirst").keyup(async function(){ 5542 const v = $(this).val() 5543 if(v.includes('spotify:user:spotify')) { 5544 const correct = v.split('user:spotify:')[1] 5545 console.log(correct, 'BNER') 5546 $(this).val(correct) 5547 return 5548 } 5549 if(v.includes("spotify:") || v.includes("https://open.spotify.com/")){ 5550 const data = await trackUrl(v) 5551 if(!data || !data.status) { 5552 $(this).parent().addClass("error") 5553 // $(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>`) 5554 $("#personalizeBtnSpotify .btn").attr("disabled", true) 5555 return 5556 } 5557 $(this).parent().removeClass("error") 5558 // $(this).parent().remove("txt-error") 5559 $("#personalizeBtnSpotify .btn").attr("disabled", false) 5560 } else { 5561 $("#personalizeBtnSpotify .btn").attr("disabled", true) 5562 } 5563 }) 5564 5565 $(".purchaseAddon").delegate(".next-addon", "click", function(){ 5566 const parent = $(this).parents(".purchaseAddon") 5567 const next = parent.next(".sectionPurchase") 5568 if(next.hasClass("purchaseAddress")) { 5569 if(productType !== '') { 5570 console.log("clarity event " + productType + ' purchaseDelivery') 5571 window.clarity("event", `${productType} purchaseDelivery`) 5572 // window.clarity("set", productType, `purchaseDelivery - ${productDate}`) 5573 } 5574 } 5575 const data = $("#itemAddons").find(".selected") 5576 const length = $(".quantity-cart-46067682607319").val() 5577 const checked = data.length; 5578 if(checked > 0) { 5579 if(length > 0) { 5580 $(".purchaseAddon").addClass("purchaseAddonSpotify") 5581 customSpotify(1, length, 'addon') 5582 } else { 5583 listAddon() 5584 } 5585 } else { 5586 parent.addClass("hide") 5587 next.removeClass("hide") 5588 } 5589 }) 5590 5591 $("#personalizeBtnSpotify .btn").click(async function(){ 5592 const isCity = $("#cities[required]") 5593 const isDate = $("#propDeliveryDate[required]") 5594 if((isDate.length > 0 && isCity.length > 0) && (isCity.val() === '' || isDate.val() === '')) { 5595 alert('Please choose Delivery City & Delivery Date') 5596 return 5597 } 5598 const data = await customSpotify(1, 1, 'product') 5599 if(data) { 5600 $("#backgroundPopup").fadeIn("slow"); 5601 $(".purchasePopupSpotify").fadeIn("slow"); 5602 5603 if(productType !== '') { 5604 console.log("clarity event " + productType + ' spotify') 5605 window.clarity("event", `${productType} spotify`) 5606 // window.clarity("set", productType, `purchaseDelivery - ${productDate}`) 5607 } 5608 } 5609 }) 5610 5611 function formatBytes(bytes, decimals = 2) { 5612 if (!+bytes) return '0 Bytes' 5613
5614 const k = 1024 5615 const dm = decimals < 0 ? 0 : decimals 5616 const sizes = ['B', 'KB', 'MB'] 5617 5618 const i = Math.floor(Math.log(bytes) / Math.log(k)) 5619 5620 return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}` 5621 } 5622 5623 async function trackUrl(link){ 5624 try { 5625 let trackId = link.split('/').pop().split('?')[0]; 5626 let type = '' 5627 if(link.includes("spotify:")) { 5628 const uri = link.split('spotify:')[1] 5629 trackId = uri.split(':')[1] 5630 type = uri.split(':')[0] + 's' 5631 } else { 5632 if(link.match('track')){ 5633 type = 'tracks' 5634 } else if(link.match('playlist')) { 5635 type = 'playlists' 5636 } else if(link.match('artist')) { 5637 type = 'artists' 5638 } else if(link.match('album')) { 5639 type = 'albums' 5640 } 5641 } 5642 console.log(`${host}/api/spotify/${type}/${trackId}`) 5643 const data = await getFetch(`${host}/api/spotify/${type}/${trackId}`) 5644 console.log(data, 'DATA') 5645 const song = data?.data?.name 5646 const artist = data?.data?.artist 5647 return { 5648 song, artist, type, trackId, status: data.status 5649 } 5650 } catch(err) { 5651 console.log(err) 5652 } 5653 } 5654 5655 $(".spotifyAddons").delegate(".uploadPhotoSpotify", "change", async function(){ 5656 const parent = $(this).parents("[data-index]") 5657 const preview = parent.find(".previewImage") 5658 const file = $(this)[0].files[0]; 5659 if (file) { 5660 const reader = new FileReader(); 5661 reader.onload = async function(e) { 5662 parent.find(".uploadResult label").hide() 5663 parent.find(".uploadedResult").remove() 5664 parent.find(".uploadResult").append(`<div class="uploadedResult d-flex" style="justify-content: space-between"> 5665 <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> 5666 <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;">
5666<svg fill="none" height="11" viewBox="0 0 10 11" width="10" xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png"> 5667 <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 /> 5668 </svg> 5669 </span></div></div>`) 5670 parent.find(".frameImageUploaded svg").hide() 5671 parent.find(".frameImage").addClass("uploaded") 5672 preview.attr("src", e.target.result); 5673 preview.show(); 5674 let formData = new FormData(); 5675 formData.append("file", file); 5676 const response = await fetch(`${host}/api/upload?name=${file.name}&type=image/jpeg&r=${Date.parse(new Date)}`, { 5677 method: "POST", 5678 body: formData 5679 }) 5680 const result = await response.json(); 5681 if(result){ 5682 parent.find(".resultPhotoSpotify").val(result.url) 5683 } 5684 } 5685 5686 reader.readAsDataURL(file); 5687 } else { 5688 preview.hide(); 5689 } 5690 }); 5691 5692 $(".spotifyAddons").delegate(".uploadResult", "click", function(){ 5693 $(this).next("input[type=file]").trigger("click") 5694 }) 5695 5696 $(".spotifyAddons").delegate(".changeUpload", "click", function(){ 5697 $(this).parents("input[type=file]").trigger("click") 5698 }) 5699 5700 $(".spotifyAddons").delegate(".removeUpload", "click", function(){ 5701 const parent = $(this).parents("[data-index]") 5702 parent.find(".uploadPhotoSpotify").val("") 5703 parent.find(".uploadResult label").show() 5704 parent.find(".uploadedResult").remove() 5705 parent.find(".frameImageUploaded svg").show() 5706 parent.find(".previewImage").hide() 5707 parent.find(".frameImage").removeClass("uploaded") 5708 }) 5709 5710 $(".spotifyAddons").delegate("label.checkbox", "click", function(){ 5711 const parent = $(this).parents("[data-index]") 5712 parent.toggleClass("checked") 5713 }) 5714 5715 $(".spotifyAddons").delegate(".spotifyLink", "change", async function(){ 5716 const parent = $(this).parents("[data-index]") 5717 const link = $(this).val() 5718 const data = await trackUrl(link) 5719 5720 console.log(data) 5721 5722 if(data.song) { 5723 parent.find(".spotifySong").val(data.song) 5724 parent.find(".spotifyData").find("h3").text(data.song) 5725 } 5726 if(data.artist) { 5727 parent.find(".spotifyArtist").val(data.artist) 5728 parent.find(".spotifyData").find("p").text(data.artist) 5729 } 5730 parent.find(".spotifyCode img").attr("src", `https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:${data.type.slice(0, -1)}:${data.trackId}`) 5731 // https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:track:1er51HCEBhIAtoEemKuC3M 5732 if (data.status === true) { 5733 parent.find(".btn-action .btn").attr("disabled", false) 5734 } else { 5735 parent.find(".btn-action .btn").attr("disabled", true) 5736 } 5737 }) 5738
5739 $(".spotifyAddons").delegate(".spotifySong", "keyup", async function(){ 5740 const parent = $(this).parents("[data-index]") 5741 const v = $(this).val() 5742 parent.find(".spotifyData h3").text(v) 5743 }) 5744 5745 $(".spotifyAddons").delegate(".spotifyArtist", "keyup", async function(){ 5746 const parent = $(this).parents("[data-index]") 5747 const v = $(this).val() 5748 parent.find(".spotifyData p").text(v) 5749 }) 5750 5751 $(".spotifyAddons").delegate(".btn-action .btn:not(.no-addon)", "click", async function(){ 5752 const parent = $(this).parents("[data-index]") 5753 const length = parent.data("length") 5754 const index = parent.data("index") 5755 const indexNext = Number(index) + 1 5756 customSpotify(indexNext, length, 'addon') 5757 }) 5758 5759 5760 $(".spotifyAddons").delegate(".btn-action .btn.finished", "click", async function(){ 5761 const parent = $(this).parents(".purchaseAddon") 5762 const next = parent.next(".sectionPurchase") 5763 parent.addClass("hide") 5764 next.removeClass("hide") 5765 next.find(".purchase-button").show() 5766 listAddon() 5767 }) 5768 5769 $(".spotifyAddons").delegate(".back-spotify", "click", async function(){ 5770 const t = $(this).parents("[data-index]") 5771 const parent = $(this).parents(".sectionPurchase") 5772 const current = t.data("index") 5773 const prevCurrent = Number(current) - 1 5774 if(current == 1) { 5775 parent.removeClass("purchaseAddonSpotify") 5776 parent.find(".purchase-button").show() 5777 parent.find(".headerPurchase h3").text("Make It More Special with Add-Ons!") 5778 $(".spotifyAddons").empty() 5779 $(".regulerAddons").show() 5780 return 5781 } 5782 t.hide() 5783 t.prev("[data-index]").show() 5784 t.remove() 5785 parent.find(".headerPurchase h3").text(`personalize spotify photo print - ${prevCurrent}`) 5786 }) 5787 5788 $("#personalizeBtn .btn").click(async function() { 5789 loadPopupPersonalize() 5790 }); 5791 5792 $(".sectionPurchaseSpotify").delegate(".btn[data-type=card]", "click", function(){ 5793 $(".sectionPurchaseSpotify").hide() 5794 loadPopupPersonalize() 5795 }) 5796 5797 $(".close-purchase-popup").click(function() { 5798 disablePopup(); 5799 }); 5800 $("#backgroundPopup").click(function() { 5801 // disablePopup(); 5802 }); 5803 5804 $("#popupCart .close-purchase-popup").click(function() { 5805 location.reload() 5806 }); 5807 5808 $('#popupCart').on('hide.bs.modal', function (e) { 5809 location.reload() 5810 }) 5811 5812 $(".next-card").click(function(){ 5813 const parent = $(this).parents(".sectionPurchase") 5814 const next = parent.next(".sectionPurchase") 5815 parent.addClass("hide") 5816 next.removeClass("hide") 5817 }) 5818 5819 $(".back-purchase-button").click(function(){ 5820 const parent = $(this).parents(".sectionPurchase") 5821 const prev = parent.prev(".sectionPurchase") 5822 parent.addClass("hide") 5823 prev.removeClass("hide") 5824 }) 5825 5826 $(document).keypress(function(e) { 5827 if (e.keyCode == 27 && popupStatus == 1) { 5828 disablePopup(); 5829 } 5830 }); 5831 5832 const parentImg = $(".case-img-preview") 5833 const parentVid = $(".case-video-preview") 5834 5835 function readURL(input) { 5836 if (input.files && input.files[0]) { 5837 let reader = new FileReader(); 5838 5839 let type = 'image/jpeg' 5840 const size = input.files[0].size 5841 if(input.files[0].type.match('video/')){ 5842 type = 'video/mp4' 5843 if(size > 15728640) { 5844 alert('File size exceeds maximum limit 15 MB') 5845 return 5846 } 5847 } else { 5848 if(size > 5242880) { 5849 alert('File size exceeds maximum limit 5 MB') 5850 return 5851 } 5852 } 5853 5854 reader.onload = function (e) { 5855 $(".nextBtn").attr("disabled", true) 5856 if(type === 'image/jpeg') { 5857 5858 $('.placeholder-image').hide(); 5859 $('.preview-image').show() 5860 $('.preview-image').attr('src', e.target.result); 5861 5862 } else { 5863 // parentVid.find(".ajax-loader").show(); 5864 $(".steps-card-preview").addClass("loading") 5865 } 5866 } 5867 5868 5869
5870 reader.readAsDataURL(input.files[0]); 5871 } 5872 } 5873 5874 async function readURLPapan(input) { 5875 if (input.files && input.files[0]) { 5876 let reader = new FileReader(); 5877 5878 reader.onload = function (e) { 5879 $('.btn-upload-papan').siblings('label').hide(); 5880 $('.btn-upload-papan img').attr('src', e.target.result); 5881 $('.btn-upload-papan img').show(); 5882 $('.svgLogoPapan').hide(); 5883 } 5884 5885 const type = 'image/jpeg' 5886 const name = `logo-9979127912352-${Date.parse(new Date())}` 5887 5888 let formData = new FormData(); 5889 formData.append("file", input.files[0]); 5890 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 5891 method: "POST", 5892 body: formData 5893 }) 5894 const result = await response.json(); 5895 if(result) { 5896 const url = result.url 5897 $("[data-properties=papan-logo]").val(url) 5898 } 5899 5900 reader.readAsDataURL(input.files[0]); 5901 } 5902 } 5903 5904 async function readURLAddress(input) { 5905 console.log(input, 'readURLAddress') 5906 if (input.files && input.files[0]) { 5907 let reader = new FileReader(); 5908 5909 reader.onload = function (e) { 5910 $('.photo-address').attr('src', e.target.result); 5911 $('.photo-address').show(); 5912 } 5913 5914 const type = 'image/jpeg' 5915 const name = input.files[0].name?.split('.')[0] 5916 5917 let formData = new FormData(); 5918 formData.append("file", input.files[0]); 5919 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 5920 method: "POST", 5921 body: formData 5922 }) 5923 const result = await response.json(); 5924 5925 reader.readAsDataURL(input.files[0]); 5926 5927 return result 5928 } 5929 } 5930 5931 5932 5933 5934 async function addToCartUang() { 5935 var productAddOnId1 = 42122101162199; 5936 var productAddOnId2 = 42122101194967; 5937 var product_id = 9979127912352 5938 const data = { 5939 items: [ 5940 { 5941 quantity: $("#Quantity-" + productAddOnId1).val(), 5942 id: productAddOnId1, 5943 "properties": { "Time": $("#properties-time").val() } 5944 }, 5945 { 5946 quantity: $("#Quantity-" + productAddOnId2).val(), 5947 id: productAddOnId2, 5948 "properties": { "Time": $("#properties-time").val() } 5949 } 5950 ] 5951 } 5952 await fetch(window.Shopify.routes.root + 'cart/add.js', { 5953 method: 'POST', 5954 headers: { 5955 'Content-Type': 'application/json' 5956 }, 5957 body: JSON.stringify(data) 5958 }) 5959 .then(response => { 5960 console.error('Sukses Buket Uang:', response); 5961 $(".form-flower").submit() 5962 }) 5963 .catch((error) => { 5964 console.error('Error Buket Uang:', error); 5965 $(".form-flower").submit() 5966 }); 5967 } 5968 5969 async function saveCard(){ 5970 let isCard = true 5971 const kartu_penerima = $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '' 5972 const kartu_pengirim = $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '' 5973 const kartu_ucapan = $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '' 5974 const foto = $("#properties-photo").val() 5975 const video = $("#properties-video").val() 5976 const data = JSON.stringify({ 5977 "id": qrID, 5978 "penerima": $("#properties-nama-penerima").val(), 5979 "kartu_penerima": kartu_penerima, 5980 "kartu_ucapan": kartu_ucapan, 5981 "kartu_pengirim": kartu_pengirim, 5982 "foto": foto, 5983 "video": video, 5984 "productId": "9979127912352", 5985 "order_name": "", 5986 "status": "Cart" 5987 }) 5988 5989 5990 } 5991 5992 async function additem(items){ 5993 try { 5994 let formData = items 5995 if(items?.length) { 5996 formData = { 5997 'items': items 5998 }; 5999 } 6000 6001 const add = await fetch(window.Shopify.routes.root + 'cart/add.js', { 6002 method: 'POST', 6003 headers: { 6004 'Content-Type': 'application/json', 6005 'X-Requested-With':'xmlhttprequest' /* XMLHttpRequest is ok too, it's case insensitive */ 6006 }, 6007 body: JSON.stringify(formData) 6008 }) 6009 6010 const data = await add.json(); 6011 return data 6012 } catch(err){ 6013 console.log('Error additem', err) 6014 } 6015 } 6016 6017 async function addons(){ 6018 let items = [] 6019 $(".addon-item").each(function(){ 6020 const p = $(this) 6021 const props = p.next(".propsAddonSpotify") 6022 const id = $(this).data("id") 6023 const quantity = $(this).data("qty") 6024 const propId = $("#properties-time").val() 6025 let properties = {} 6026 if(id === 46067682607319) { 6027 const link = props.find(".spotifyLinkAddon").text() 6028 const photo = props.find(".spotifyFotoAddon").text() 6029 const song = props.find(".spotifySongAddon").text() 6030 const artist = props.find(".spotifyArtistAddon").text() 6031 properties = { 6032 id: propId, 6033 "Spotify Link": link !== '' ? link : '-', 6034 "Spotify Photo": photo !== '' ? photo : '-', 6035 "Spotify Song": song !== '' ? song : '-', 6036 "Spotify Artist": artist !== '' ? artist : '-', 6037 type: 'addon' 6038 } 6039 } else { 6040 properties = { 6041 "id": propId, 6042 "type": "addon" 6043 } 6044 } 6045 items.push({ 6046 id, 6047 quantity, 6048 properties 6049 }) 6050 }) 6051 return items 6052 } 6053 6054 async function propItems() { 6055 let props = {} 6056 $("[data-properties]").each(function(e){
6057 let elementType = this.tagName; 6058 const k = $(this).data("properties") 6059 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') { 6060 const v = elementType === 'SELECT' ? $(this).find(":selected").val() : $(this).val(); 6061 if(v !== '') { 6062 props[k] = v?.replace(/[\s\n]/g, ''); 6063 } 6064 } 6065 }) 6066 return props 6067 } 6068 6069 async function showPopupCart(items){ 6070 if(productType !== '') { 6071 console.log("clarity event " + productType + ' completeOrder') 6072 window.clarity("event", `${productType} completeOrder`) 6073 // window.clarity("set", productType, `completeOrder - ${productDate}`) 6074 } 6075 $("#popupCart").show() 6076 6077 $(".propDeliveryCity").text($("#cities").val()) 6078 $(".propDeliveryDate").text($("#propDeliveryDate").val()) 6079 $(".propDeliveryTime").text($("#propDeliveryTime").val()) 6080 $(".propDeliveryName").text($("[data-properties=nama-penerima]").val()) 6081 $(".propDeliveryAddress").text($("[data-properties=alamat-penerima]").val()) 6082 $(".propDeliveryPhone").text($("[data-properties=telepon-penerima]").val()) 6083 $(".propDeliveryProv").text($("#province").val()) 6084 $(".propDeliveryZip").text($("#zip").val()) 6085 6086 6087 6088 const addons = [] 6089 if(items && items.length > 0) { 6090 for(let i = 1; i < items.length; i++) { 6091 const spotifyLink = items[i].properties['Spotify Link'] 6092 const spotifyPhoto = items[i].properties['Spotify Photo'] 6093 const spotifySong = items[i].properties['Spotify Song'] 6094 const spotifyArtist = items[i].properties['Spotify Artist'] 6095 const price = items[i].price / 100 6096 const props = spotifyLink ? `<div class="propsAddonCart row m-0"> 6097 <div class="col-12 col-lg-2"></div> 6098 <div class="col-12 col-lg-10"> 6099 <p> 6100 <span>spotify link</span> 6101 <span>${spotifyLink}</span> 6102 </p> 6103 <p> 6104 <span>Upload Photo</span> 6105 <span>${spotifyPhoto}</span> 6106 </p> 6107 <p> 6108 <span>song / playlist name</span> 6109 <span>${spotifySong}</span> 6110 </p> 6111 <p> 6112 <span>artist name</span> 6113 <span>${spotifyArtist}</span> 6114 </p> 6115 </div> 6116 </div>` : ''; 6117 addons.push(`<div class="row m-0"> 6118 <div class="imgAddonCart col-2"> 6119 <img 6120 width="43" 6121 src="${items[i].image}" 6122 alt="" 6123 > 6124 </div> 6125 <div class="imgAddonTitlePrice col-10 align-self-center"> 6126 <div class="row justify-content-between m-0"> 6127 <div class="col-12 col-lg-8"> 6128 <h5>${items[i].title}</h5> 6129 </div> 6130 <div class="col-12 col-lg-4 text-lg-right"> 6131 <span>${rupiah.format(price)}</span> 6132 </div> 6133 </div> 6134 </div> 6135 </div>${props}`) 6136 } 6137 } 6138 // console.log(addons) 6139 if(addons.length === 0) { 6140 $(".itemAddonCart").hide() 6141 return 6142 } 6143 $(".toggleAddonCart h4").text(`add-ons (${items.length - 1})`) 6144 $(".wrapperItemAddonCart").html(addons) 6145 } 6146 6147 const money = (money) => { 6148 return new Intl.NumberFormat('id-ID', 6149 { style: 'currency', currency: 'IDR', minimumFractionDigits: 0 } 6150 ).format(money); 6151 } 6152 6153 async function showNoteMoney() { 6154 let qty50k = $("[data-properties='Uang 50k']").val() 6155 let qty100k = $("[data-properties='Uang 100k']").val() 6156 const total50k = Number(qty50k) * 50000 6157 const total100k = Number(qty100k) * 100000 6158 const total_all = total50k + total100k 6159 $(".prop50k").html(`<span>${qty50k} Lembar: <strong class="pl-1">${money(total50k)}</strong></span>`) 6160 $(".prop100k").html(`<span>${qty100k} Lembar: <strong class="pl-1">${money(total100k)}</strong></span>`) 6161 $(".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://snooglestore.com/bingkai-foto/" target="_blank" style="text-decoration: underline;
6161 color: #8d3f2d">Customer Service</a> to confirm with proof of payment.</p>`) 6162 } 6163 6164 async function removeImage() { 6165 const data = JSON.stringify({ 6166 "ID": $("#properties-properties-qrId").val(), 6167 "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 6168 "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 6169 "Kartu Ucapan": $("[data-properties=ucapan]").val(), 6170 "Nama Penerima": $("#properties-nama-penerima").val(), 6171 "Order Number":"", 6172 "Status":"Product", 6173 "Foto": "", 6174 "Media": $("#properties-video").val(), 6175 "Image": "9979127912352" 6176 }) 6177 const remove = updateCard(data) 6178 if(remove) { 6179 $(this).hide() 6180 $("#properties-photo").val("-") 6181 $(".placeholder-image").show() 6182 $(".preview-image").attr("src", "") 6183 } 6184 } 6185 6186 async function removeVideo() { 6187 const data = JSON.stringify({ 6188 "ID": $("#properties-properties-qrId").val(), 6189 "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 6190 "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 6191 "Kartu Ucapan": $("[data-properties=ucapan]").val(), 6192 "Nama Penerima": $("#properties-nama-penerima").val(), 6193 "Order Number":"", 6194 "Status":"Product", 6195 "Foto": $("#properties-photo").val(), 6196 "Media": "", 6197 "Image": "9979127912352" 6198 }) 6199 const remove = updateCard(data) 6200 if(remove) { 6201 $("#properties-video").val("-") 6202 $(this).find("img").hide() 6203 $(this).hide() 6204 $(this).prev("p").text("Add video to make it more special (optional)") 6205 $("#label-input-video").show() 6206 $("#label-input-video span").text("Upload Video") 6207 $(".case-video-preview p span").remove() 6208 } 6209 } 6210 6211 async function loadItemOccasion(t, occasion) { 6212 const name = occasion?.replace('greeting-card-', '') 6213 $("#kartu-ucapan").val("") 6214 $("[data-occassion]").removeClass("selected") 6215 $("[data-properties=ucapan]").val("") 6216 $("#save-card").attr("disabled", true) 6217 t.addClass("selected") 6218 $("#show_note").attr("data-card-occassion", name) 6219 $.get(`https://outerbloom.com/collections/${occasion}/products.json`, function(data, status){ 6220 const products = data.products 6221 const html = [] 6222 for(let i = 0; i < products.length; i++) { 6223 const id = products[i].id 6224 const variantId = products[i].variants[0].id 6225 const img = products[i].images[0].src 6226 const title = products[i].title 6227 const price = products[i].variants[0].price 6228 const qty = products[i].variants[0].inventory_quantity 6229 const body = `<div class="item-card${price < 1 ? ' free' : ' nofree'}${i === 0 ? ' selected' : ''}" data-id=${id}> 6230 <label for="card-${variantId}"></label> 6231 <div class="card-image"> 6232 <img src="${img}" alt="${title}" width="" height="" /> 6233 </div> 6234 <div class="card-meta text-center"> 6235 <h5>${title}</h5> 6236 <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p> 6237 <input id="card-${variantId}" type="radio" name="id" value="${variantId}" data-price="${price}"> 6238 </div> 6239 </div>` 6240 html.push(body) 6241 } 6242 const withoutCard = `<div class="item-card item-without-card"> 6243 <label for="card-0"></label> 6244 <div class="card-image"> 6245 <img src="https://cdn.shopify.com/s/files/1/1589/6833/t/129/assets/without-card.png?v=1747632283" alt="Without card" width="" height="" /> 6246 </div> 6247 <div class="card-meta text-center"> 6248 <h5>
6248Send without a greeting card</h5> 6249 <input id="card-0" type="radio" name="id" value="" data-price=""> 6250 </div> 6251 </div>` 6252 $("#itemCards .items-card").html(html.length === 0 ? '<p>No Item available</p>' : html.join("")) 6253 }); 6254 } 6255 6256 $(document).ready(function(){ 6257 6258 // Observer to auto-trigger addon loading when addon section becomes visible 6259 const addonObserver = new MutationObserver(function(mutations) { 6260 mutations.forEach(function(mutation) { 6261 const target = $(mutation.target) 6262 if(target.hasClass('purchaseAddon') && mutation.type === 'attributes' && mutation.attributeName === 'class') { 6263 if(!target.hasClass('hide')) { 6264 // Addon section just became visible, ensure items are loaded 6265 setTimeout(function() { 6266 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6267 console.log("Auto-triggering addon load...") 6268 $("[data-addon=upsell-all]").trigger("click") 6269 } 6270 }, 150) 6271 } 6272 } 6273 }) 6274 }) 6275 6276 // Start observing addon section 6277 const addonSection = document.querySelector('.purchaseAddon') 6278 if(addonSection) { 6279 addonObserver.observe(addonSection, { 6280 attributes: true, 6281 attributeFilter: ['class'] 6282 }) 6283 } 6284 6285 $(".purchasePopup").delegate("#addtocart-card", "click", async function(){ 6286 6287 $(this).find("span").addClass("loading") 6288 let isValid = true 6289 $(".formAddressPurchase [required]").each(function(){ 6290 const t = $(this) 6291 const input = t.val() 6292 const p = t.parent() 6293 if(input === '') { 6294 p.addClass("error") 6295 isValid = false 6296 } 6297 }) 6298 6299 if(!isValid) { 6300 $(this).find("span").removeClass("loading") 6301 return 6302 } 6303 6304 let items = [] 6305 const mainProps = { 6306 6307 "Delivery Date": $("#propDeliveryDate").val(), 6308 "Delivery Time": $("#propDeliveryTime").val() !== '' ? $("#propDeliveryTime").val() : '-' , 6309 "Kota Pengiriman": $("#cities").val(), 6310 "Nama Penerima": $("[data-properties=nama-penerima]").val() !== '' ? $("[data-properties=nama-penerima]").val() : '-' , 6311 "Alamat Penerima": $("[data-properties=alamat-penerima]").val() !== '' ? $("[data-properties=alamat-penerima]").val() : '-' , 6312 "Kodepos": $("#zip").val() !== '' ? $("#zip").val() : '-' , 6313 "Telepon Penerima": $("[data-properties=telepon-penerima").val() !== '' ? $("[data-properties=telepon-penerima").val() : '-' , 6314 6315 6316 "Papan Nama Penerima": $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '-' , 6317 "Papan Ucapan": $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '-' , 6318 "Papan Nama Pengirim": $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '-' , 6319 "Papan Logo": $("[data-properties=papan-logo]").val() !== '' ? $("[data-properties=papan-logo]").val() : '-' , 6320 "Foto Alamat": $("[data-properties=foto-alamat]").val() !== '' ? $("[data-properties=foto-alamat]").val() : '-' , 6321 6322 6323 "Province": $("#province").val() !== '' ? $("#province").val() : '-' , 6324 "Country": $("#properties-kota-pengiriman-country").val() !== '' ? $("#properties-kota-pengiriman-country").val() : '-' , 6325 "Shipping": $("#properties-shipping").val() !== '' ? $("#properties-shipping").val() : '-' , 6326 "Company": $("[data-properties=company]").val() !== '' ? $("[data-properties=company]").val() : '-' , 6327 "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 6328 "type": 'product' 6329 } 6330 const props = await propItems() 6331 properties = {...mainProps, ...props }; 6332 const id = $("#productSelect").find('option:selected').val() 6333 console.log(id, 'main ID') 6334 const mainItem = { 6335 id: Number(id), 6336 quantity: 1, 6337 properties 6338 } 6339 items.push(mainItem) 6340 const cardId = $("#itemCards").find(".selected input").val() 6341 const cardItem = { 6342 id: Number(cardId), 6343 quantity: 1, 6344 properties: { "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', type: 'card' } 6345 } 6346 console.log(cardId, 'cardId') 6347 if(cardId) { 6348 items.push(cardItem) 6349 } 6350 const addon = await addons() 6351 if(addon) { 6352 for(let i = 0;
6352 i < addon.length; i++){ 6353 items.push({ 6354 id: addon[i].id, 6355 quantity: addon[i].quantity, 6356 properties: addon[i].properties 6357 }) 6358 } 6359 } 6360 const addItems = await additem(items) 6361 console.log(addItems.items, 'add items') 6362 if(addItems) { 6363 $(this).find("span").removeClass("loading") 6364 disablePopup() 6365 showPopupCart(addItems.items) 6366 6367 localStorage.setItem("items", JSON.stringify(addItems.items)) 6368 } 6369 }) 6370 6371 $("#addtocart-cart .btn").click(async function(){ 6372 const id = $("#productSelect").find('option:selected').val() 6373 const mainProps = { 6374 id: $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 6375 type: 'product' 6376 } 6377 const props = await propItems() 6378 const properties = { ...mainProps, ...props }; 6379 const items = { 6380 id: Number(id), 6381 quantity: 1, 6382 properties 6383 } 6384 const addItems = await additem(items) 6385 if(addItems) { 6386 showPopupCart(addItems.items) 6387 localStorage.setItem("items", JSON.stringify(addItems)) 6388 } 6389 }) 6390 6391 $(".formAddressPurchase [required]").change(function(){ 6392 const t = $(this) 6393 const p = t.parent() 6394 const v = t.val() 6395 if(v !== '') { 6396 p.removeClass("error") 6397 } 6398 }) 6399 6400 $("#save-card").click(async function(){ 6401 const parent = $(this).parents(".sectionPurchase") 6402 const next = parent.next(".sectionPurchase") 6403 $(this).find("span").addClass("loading") 6404 const card = await saveCard() 6405 console.log(card, 'ssaveCCC') 6406 if(card?.status === 200 || card?.status === 201) { 6407 $(".scanCard").removeClass("hide") 6408 $(this).find("span").removeClass("loading") 6409 parent.addClass("hide") 6410 next.removeClass("hide") 6411 if(next.hasClass("purchaseAddon")) { 6412 $("[data-addon=upsell-all]").click() 6413 console.log("clarity event addons") 6414 window.clarity("event", `${productType} add-ons`) 6415 // Ensure addon items are loaded when entering addon popup 6416 setTimeout(function() { 6417 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6418 $("[data-addon=upsell-all]").trigger("click") 6419 } 6420 }, 100) 6421 } 6422 if(next.hasClass("purchaseAddress")) { 6423 $("#zip").select2() 6424 } 6425 } 6426 }) 6427 6428 $("#skip-card").click(async function(){ 6429 $("#greetingCard [data-properties]").val("") 6430 $("#properties-photo").val("") 6431 $("#properties-video").val("") 6432 const parent = $(this).parents(".sectionPurchase") 6433 const next = parent.next(".sectionPurchase") 6434 parent.addClass("hide") 6435 next.removeClass("hide") 6436 // $("#itemCards").html("") 6437 removeImage() 6438 removeVideo() 6439 if(next.hasClass("purchaseAddon")) { 6440 $("[data-addon='upsell-all']").click() 6441 console.log("clarity event addons") 6442 window.clarity("event", `${productType} add-ons`) 6443 // Ensure addon items are loaded when entering addon popup 6444 setTimeout(function() { 6445 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6446 $("[data-addon='upsell-all']").trigger("click") 6447 } 6448 }, 100) 6449 } 6450 if(next.hasClass("purchaseAddress")) { 6451 $("#zip").select2() 6452 } 6453 }) 6454 6455 $("#msgCard").click(async function(){ 6456 $(this).parent().addClass("loading") 6457 let occasion = $(".selected[data-occassion]").data("occassion") 6458 occasion = occasion?.replace("greeting-card-", "") 6459 const { data } = await getFetch(`${host}/api/card/template/occasion?name=${occasion}`); 6460 const d = data?.data 6461 for(let i = 0; i < d.length; i++) { 6462 const num = Math.floor(Math.random() * (d.length - 1 + 1) + 1); 6463 const greeting = d[num]?.Greeting 6464 $(".greetingCard textarea").val(greeting) 6465 $(this).parent().removeClass("loading") 6466 } 6467 $("#save-card").attr("disabled", false) 6468 }) 6469 6470 $(".sectionPurchaseBoard .next-purchase-button").click(function(){ 6471 const parent = $(this).parents(".sectionPurchase") 6472 const next = parent.next(".sectionPurchase") 6473 parent.addClass("hide") 6474 next.removeClass("hide") 6475 }) 6476 6477 $("#editCard").click(function(){ 6478 $(".custom-card").show() 6479 $(".preview-card").hide() 6480 }) 6481 6482 $("#first_name, #last_name").change(function(){ 6483 const v = $(this).val() 6484 const first_name = $("#first_name").val() 6485 const last_name = $("#last_name").val() !== '' ? ' ' + $("#last_name").val() : '' 6486 $("[data-properties=nama-penerima]").val(first_name+last_name) 6487 }) 6488 6489 $("[data-occassion]").click(function(){ 6490 const t = $(this) 6491 const p = t.parents(".sectionPurchase") 6492 // $(".greetingCard").addClass("disabled") 6493 const occasion = t.data("occassion") 6494 loadItemOccasion(t, occasion) 6495 }) 6496 6497 $("#itemCards").delegate(".item-card:not(.item-without-card) label", "click", function(){ 6498 const id = $(this).parent(".item-card").data("id") 6499 const t = $(this).parent(".item-card") 6500 const target = t.find("input") 6501 const v = $('.item-card input[type="radio"]:checked').val(); 6502 $("#itemCards .item-card").removeClass("selected") 6503 t.addClass("selected") 6504 $("#itemCards .item-card").find("input").attr("name", "") 6505 if(target.length > 0) { 6506 target.attr("name", "id[]") 6507 $("#properties-card").val(id) 6508 $(".greetingCard").removeClass("disabled") 6509 $("#skip-card").attr("disabled", false) 6510 } else { 6511 $("#properties-card").val("") 6512 } 6513 }) 6514 6515 $("#itemCards").delegate(".item-without-card label", "click", function(){ 6516 const parent = $(this).parents(".sectionPurchase") 6517 const next = parent.next(".sectionPurchase") 6518 $(".greetingCard").addClass("disabled") 6519 parent.addClass("hide") 6520 next.removeClass("hide") 6521 $("[data-addon=upsell-all]").click() 6522 $("#zip").select2() 6523 }) 6524 6525 $("[data-properties=ucapan]").keyup(function(){ 6526 const v = $(this).val() 6527 const p = $(this).parents(".sectionPurchase") 6528 $(".purchaseAddress").find(".greetingCard textarea").val(v) 6529 if(v.length > 3) { 6530 p.find(".next-purchase-button").attr("disabled", false) 6531 } else { 6532 p.find(".next-purchase-button").attr("disabled", true) 6533 } 6534 }) 6535 6536 $("[data-properties=penerima]").keyup(function(){ 6537 const v = $(this).val() 6538 $(".purchaseAddress").find("[data-properties=penerima]").val(v) 6539 }) 6540 6541 $("[data-properties=pengirim]").keyup(function(){ 6542 const v = $(this).val() 6543 $(".purchaseAddress").find("[data-properties=pengirim]").val(v) 6544 }) 6545 6546 $(document).click(function(e){
6547 6548 if($(e.target).closest('.wrapperPopupCart').length != 0) return false; 6549 // $('#popupCart').fadeOut('slow'); 6550 // location.reload() 6551 }); 6552 6553 $(".toggleAddonCart").click(function(){ 6554 const p = $(this).parent(".itemAddonCart") 6555 p.toggleClass("open") 6556 }) 6557 6558 $(".btnViewCart").click(function(){ 6559 window.location.href = "https://outerbloom.com/cart"; 6560 }) 6561 6562 $(".btnViewCheckout").click(async function(){ 6563 $(this).find("span").addClass("loading") 6564 let zip = $("#zip").val() 6565 const first_name = $("#first_name").val() 6566 const last_name = $("#last_name").val() 6567 const company = $("#company").val() !== '' ? $("#company").val() : '' 6568 const address1 = $("#delivery_address").val() 6569 const address2 = zip && zip !== '' ? zip?.split(' - ')[1] : '' 6570 zip = zip && zip !== '' ? zip?.split(' - ')[0] : '' 6571 const phone = $("#recipient_number").val() 6572 const city = $("#cities").val() 6573 const province = $("#province").val() 6574 const country = 'Indonesia' 6575 const ver = Date.parse(new Date()) 6576 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}` 6577 6578 const clear = await fetch(`/cart/clear.js`, {method: 'POST'}) 6579 if(clear.status === 200) { 6580 const savedItem = window.localStorage.getItem("items"); 6581 const items = JSON.parse(savedItem) 6582 const addItems = await additem(items) 6583 console.log(addItems, 'new addItems') 6584 if(addItems) { 6585 window.location.href = `https://outerbloom.com/checkout?${params}`; 6586 } 6587 } 6588 }) 6589 6590 $(".btnContinueShopping").click(function(){ 6591 window.location.href = "https://outerbloom.com/"; 6592 }) 6593 6594 if (isIOS) { 6595 $(".empty-state-card").click(function(){ 6596 $("#input-foto").trigger("click") 6597 }) 6598 $(".btn-upload-image").click(function(){ 6599 $("#input-foto").trigger("click") 6600 }) 6601 $("[for=input-video]").click(function(){ 6602 $("#input-video").trigger("click") 6603 }) 6604 $(".btn-upload-papan").click(function(){ 6605 $("#logoPapan").trigger("click") 6606 }) 6607 } 6608 6609 $("[data-properties]").each(function(){ 6610 const select = $(this).parents(".form-group").find("select") 6611 $(this).change(function(){ 6612 const name = $(this).data("properties") 6613 const v = $(this).val() 6614 if (name == 'telepon-penerima') { 6615 let phone = v.replace(/[^0-9]/g, '') 6616 $(this).val(phone); 6617 $("#properties-telepon-penerima").val(phone) 6618 $('.iti__search-input').val('-') 6619 } else { 6620 $("#properties-" + name).val(v) 6621 } 6622 }) 6623 select.on("change", function(){ 6624 const name = $(this).data("properties") 6625 const v = $(this).val() 6626 $("#properties-" + name).val(v) 6627 }) 6628 }) 6629 6630 $("#show_note").click(function(){ 6631 nameq = $("#properties-nama-penerima").val() 6632 dear = $("#properties-kartu-nama-penerima").val() 6633 card = $("[data-properties=ucapan]").val() 6634 sender = $("#properties-kartu-nama-pengirim").val() 6635 photo = $("#properties-photo").val() 6636 video = $("#properties-video").val() 6637 updateCard(nameq, dear, card, sender, photo, video, status) 6638 }) 6639 6640 $(".remove-image").click(function(e){ 6641 e.preventDefault() 6642 $(this).find("img").show() 6643 removeImage() 6644 }) 6645 6646 $(".remove-media").click(function(e){ 6647 e.preventDefault() 6648 $(this).find("img").show() 6649 removeVideo() 6650 }) 6651 6652 6653 6654 $("[data-delivery_method]").click(function(e){
6655 e.preventDefault() 6656 const t = $(this) 6657 const data = t.data("delivery_method") 6658 $("[data-delivery_method]").removeClass("selected") 6659 t.addClass("selected") 6660 $("#cities").val("") 6661 $("#properties-delivery-date").val("-") 6662 $("#deliveryDate button").removeClass("selected") 6663 $("#full-date").val("Full Calendar â") 6664 $("#propDeliveryDate").val("") 6665 const step3 = $("#step-3") 6666 if(data.match('PickUp')) { 6667 $(".selfpickup-point").show() 6668 step3.find("[data-finished=false]").hide() 6669 $("#panel-4").hide() 6670 step3.find("[data-finished=true]").show() 6671 $("#cities").attr("required", false) 6672 $("#form-group-city").hide() 6673 $("#row-delivery-time").hide() 6674 $("#propDeliveryTime, #properties-delivery-time, #properties-nama-penerima, #properties-alamat-penerima, #properties-kodepos, #properties-kodepos, #properties-telepon-penerima").val("-") 6675 $("#propDeliveryTime").attr("required", false) 6676 // $("#deliveryDate").find("button:first-child").addClass("stop") 6677 $(".form-selfpickup").show() 6678 $(".form-delivery").hide() 6679 $(".form-delivery").find("input, textarea, select").val("") 6680 $(".form-delivery").find("input, textarea, select").attr("required", false) 6681 $("#properties-shipping").val("0") 6682 $("#noteDeliveryDate").hide() 6683 $(".form-delivery .form-control").attr("required", false) 6684 $("#stepNav4").hide() 6685 6686 $("#deliveryDate").find("button:nth-child(1)").addClass("stop") 6687 6688 6689 6690 if(timeOfDay >= 16.01){ 6691 $("#deliveryDate").find("button:nth-child(2)").addClass("stop") 6692 } 6693 } else { 6694 6695 6696 $("#deliveryDate").find("button:nth-child(1)").removeClass("stop") 6697 step3.find("[data-finished=false]").show() 6698 $("#panel-4").show() 6699 step3.find("[data-finished=true]").hide() 6700 $("#cities").attr("required", true) 6701 $(".selfpickup-point").hide() 6702 $("#form-group-city").show() 6703 $("#cities").val('').trigger('change'); 6704 $("#properties-kota-pengiriman").val("-") 6705 6706 $("#row-delivery-date, #row-delivery-time").show() 6707 $("#propDeliveryDate, #propDeliveryTime").attr("required", true) 6708 $("#deliveryDate").find("button").removeClass("stop") 6709 $(".form-selfpickup").hide() 6710 $(".form-delivery").show() 6711 $(".form-delivery").find("input, textarea, select").attr("required", true)
6712 $(".form-delivery [data-properties]").attr("readonly", false) 6713 $("#properties-kodepos").val("-") 6714 $("#properties-alamat-penerima").val("-") 6715 $(".form-delivery .form-control").attr("required", true) 6716 $(this).parents(".setup-content").attr("id", "step-1") 6717 6718 $("#stepNav4").show() 6719 } 6720 }) 6721 6722 $("[name=selfpickup]").click(function(){ 6723 const p = $(this).parents(".row-pickup") 6724 const pickupCity = $("input[name='selfpickup']:checked").val(); 6725 const pickupAddress = $("input[name='selfpickup']:checked").data("address"); 6726 const pickupZip = $("input[name='selfpickup']:checked").data("zip"); 6727 6728 $(".row-pickup").removeClass("selected") 6729 p.addClass("selected") 6730 6731 $("#properties-kota-pengiriman").val(pickupCity) 6732 $("#province").val("Jakarta") 6733 $("#properties-alamat-penerima").val(pickupAddress) 6734 $("#properties-kodepos").val(pickupZip) 6735 }) 6736 6737 $("#cities").change(function(e){ 6738 e.preventDefault() 6739 $(this).parent(".row").find("p.error").remove() 6740 $("#full-date").val("Full Calendar") 6741 $("#deliveryDate, #deliveryDateFull label ").show() 6742 $("#deliveryDateFull").removeClass("filled") 6743 $(".btnChangeDeliveryDate").addClass("hide") 6744 $("#full-date").prop('disabled', false); 6745 $("#stepNav2, #stepNav3, #stepNav4").removeClass("btn-success") 6746 $("#stepNav2, #stepNav3, #stepNav4").find("a").attr("disabled", true) 6747 const step3 = $("#step-3") 6748 $("#cityNote").remove() 6749 $("#noteDeliveryDate").hide() 6750 $("#noteDeliveryDate").empty() 6751 let v = $(this).val() 6752 let v2 = $('option:selected', this).attr('data-city'); 6753 let v3 = $('option:selected', this).attr('data-province'); 6754 let price = $('option:selected', this).attr('data-price'); 6755 $("#country").val(v) 6756 $("#properties-kota-pengiriman").val(v) 6757 $("#properties-shipping").val(price) 6758 $("#deliveryDate button, #deliveryTime button, .calendarseasonal .button").removeClass("selected") 6759 $("#properties-delivery-date, #properties-delivery-time").val("-") 6760 $("#propDeliveryDate, #propDeliveryTime").val("") 6761 let note = $('option:selected', this).attr('data-note'); 6762 if(v === 'Kota Lainnya') { 6763 $("#noteDeliveryDate").show() 6764 $("#noteDeliveryDate").text("Order akan segera dikirim. Estimasi tanggal diterima akan disesuaikan dengan waktu pengiriman oleh pihak ekspedisi ke lokasi Anda.") 6765 $("#zip").attr("required", false) 6766 $("#zip").hide() 6767 $("#propDeliveryDate, #propDeliveryTime").attr("required", false) 6768 $("#propDeliveryDate, #properties-delivery-date, #propDeliveryTime, #properties-delivery-time").val("-") 6769 $("#row-delivery-date, #row-delivery-time").hide() 6770 $("#properties-shipping").val("") 6771 // $(this).parents(".setup-content").attr("id", "step-2") 6772 6773 } else { 6774 $("#noteDeliveryDate").hide() 6775 $("#zip").attr("required", true) 6776 $("#zip").show() 6777 $("#row-delivery-date, #row-delivery-time").show() 6778 $("#propDeliveryDate, #propDeliveryTime").attr("required", true) 6779 $("#deliveryDate").find("button").removeClass("stop") 6780 // $(this).parents(".setup-content").attr("id", "step-1") 6781 6782 } 6783 6784 6785 6786 // if(v !== 'Jakarta') { 6787 // $("[data-type=upsell]").hide() 6788 // } else { 6789 // $("[data-type=upsell]").show() 6790 // } 6791 // $('.collection-addons')[0].swiper.update(); 6792 6793 6794 getProvince(v) 6795 $("#zip").html(`<option value="">Choose Postal Code</option>`) 6796 renderZip(v, v2, v3) 6797 6798 disabledSameDay() 6799 6800 6801 if(v !== 'Jakarta' && v !== 'Depok' && v !== 'Bekasi' && v !== 'Tangerang') { 6802 6803 $("#cardOccasion, #navAddon, .collection-addons").hide() 6804 6805 $("[data-addon=giftcard]").show() 6806 $("[data-addon=giftcard]").click() 6807 $("#itemAddons").show() 6808 $("#flower-step").addClass("nonjadetabek") 6809 } else { 6810 $("#cardOccasion, #navAddon, .collection-addons").show() 6811 $("[data-addon=all]").click() 6812 $("#flower-step").removeClass("nonjadetabek") 6813 } 6814 6815 if(v !== '') { 6816 $("#personalizeBtn .btn").attr("disabled", false) 6817 } else { 6818 $("#personalizeBtn .btn").attr("disabled", true) 6819 } 6820 6821 }) 6822 6823 $("#zip").change(function(e){
6824 let v = $(this).val() 6825 var city = $("#cities").find('option:selected'); 6826 $("#properties-kodepos").val(v) 6827 if(city === 'Kota Lainnya') { 6828 $(this).attr("required", true) 6829 $("#recipient-address").val("") 6830 } 6831 }) 6832 6833 6834 var minDate = +7 6835 6836 6837 6838 $("#full-date").datepicker({ 6839 minDate, 6840 dateFormat: 'Mdd_yy', //Nop22_2021, 6841 6842 beforeShowDay: disabledays, 6843 6844 onSelect: function (date) { 6845 $("#deliveryDate, #deliveryDateFull label ").hide() 6846 $("#deliveryDateFull").addClass("filled") 6847 $(".btnChangeDeliveryDate").removeClass("hide") 6848 $("#full-date").prop('disabled', true); 6849 $('#propDeliveryDate, #properties-delivery-date').val('Kirim_'+date); 6850 $(".date-full").addClass("selected") 6851 $(".date-single, .calendar-group").removeClass("selected") 6852 $("#propDeliveryTime").val('') 6853 $("#properties-delivery-time").val('-') 6854 $(".time-single").removeClass("selected") 6855 6856 6857 } 6858 }); 6859 6860 $(".btnChangeDeliveryDate").click(function(){ 6861 $("#deliveryDate, #deliveryDateFull label ").show() 6862 $("#deliveryDateFull").removeClass("filled") 6863 $(".btnChangeDeliveryDate").addClass("hide") 6864 $("#full-date").prop('disabled', false); 6865 }) 6866 6867 $("#deliveryDate").delegate(".calendarbutton:not(.date-full)", "click", function(e){ 6868 e.preventDefault() 6869 $(this).parents("#row-delivery-date").find("p.error").remove() 6870 const fulldate = $(this).data("fulldate") 6871 const day = $(this).data("day") 6872 const date = $(this).data("date")
6873 const month = $(this).data("month") 6874 const year = $(this).data("year") 6875 const off_pagi = $(this).data("offpagi") 6876 const off_siang = $(this).data("offsiang") 6877 const off_Malam = $(this).data("offMalam") 6878 $(".calendarbutton").removeClass("selected") 6879 $(this).addClass("selected") 6880 $("#propDeliveryDate, #properties-delivery-date").val(`Kirim_${month}${date}_${year}`) 6881 $("#propDeliveryTime").val('') 6882 $("#properties-delivery-time").val('-') 6883 $(".calendarbutton2").removeClass("selected") 6884 $("#full-date").val("Full Calendar") 6885 6886 6887 if(off_pagi && timeOfDay > off_pagi) { 6888 $("[data-time=Morning]").attr("disabled", true) 6889 } else { 6890 $("[data-time=Morning]").attr("disabled", false) 6891 } 6892 if(off_siang && timeOfDay > off_siang) { 6893 $("[data-time=Afternoon]").attr("disabled", true) 6894 } else { 6895 $("[data-time=Afternoon]").attr("disabled", false) 6896 } 6897 6898 6899 6900 }) 6901 6902 if(today === 14 && timeOfDay > 17.00) { 6903 $("#deliveryDate button:first-child").attr("disabled", true) 6904 } 6905 6906 $("#deliveryTime").delegate(".calendarbutton2", "click", function(e){ 6907 e.preventDefault() 6908 const time = $(this).data("time") 6909 const date = $("#propDeliveryDate").val() 6910 if(date == '') { 6911 return alert('Silakan pilih tanggal terlebih dahulu') 6912 } 6913 $(".calendarbutton2").removeClass("selected") 6914 $(this).addClass("selected") 6915 $("#propDeliveryTime, #properties-delivery-time").val(`KirimJam_${date.replace('Kirim_','')}_${time}`) 6916 }) 6917 6918 $('textarea.has-limit, input.has-limit').keyup(function () { 6919 max = this.getAttribute("maxlength"); 6920 let len = $(this).val().length; 6921 let limit = $(this).siblings(".limit"); 6922 if (len > max) { 6923 alert('you have reached the limit'); 6924 } else { 6925 limit.text(`${len}/${max}`); 6926 } 6927 }); 6928 6929 $("#button-action-step .btn").click(function(){ 6930 $(this).find("span").text("Processing..."); 6931 }); 6932 6933 $(".finishBtn").on('click', function() { 6934 $(this).addClass("is-adding"); 6935 // $(this).click(); 6936 }); 6937 6938 $('.setup-panel .nav-item a.btn-success').trigger('click'); 6939 6940 $("#button-action .btn").click(function(){ 6941 $("#flower-step").addClass("block"); 6942 $("#button-action").hide(); 6943 }); 6944 6945 $(".close-how-order").click(function(){ 6946 $("#flower-step").removeClass("block"); 6947 $("#button-action").show(); 6948 }); 6949 6950 $("#input-foto, #input-video").change(function(e){ 6951 readURL(this); 6952 }); 6953 6954 $("#logoPapan").change(function(){ 6955 readURLPapan(this); 6956 }); 6957 6958 $("#address-upload").change(async function(){ 6959 const upload_address = await readURLAddress(this) 6960 if(upload_address) { 6961 const url = upload_address.url 6962 $(".props-address-upload").val(url) 6963 $(".form-address").addClass("address-uploaded") 6964 $(".form-address-upload").addClass("uploaded") 6965 6966 $(this).parents(".form-group").siblings(".form-group").find("[required]").attr("required", false) 6967 } 6968 }) 6969 6970 $(".address-manualy").click(function(){ 6971 $(".form-address-upload").removeClass("uploaded"); 6972 $(".photo-address").hide(); 6973 $(".form-address").removeClass("address-uploaded") 6974 $("#formAddressPurchase").find(".form-control").attr("required", true) 6975 }); 6976 6977 $(".case-video-preview").delegate(".replace-video", "click", function(){ 6978 $("#input-video").trigger("click") 6979 }) 6980 6981 $('.date-single').click(function(e) { 6982 e.preventDefault(); 6983 $('.date-single').removeClass('selected'); 6984 $('#full-date').removeClass('selected'); 6985 $(this).addClass('selected'); 6986 $('#full-date').html('Full' + '<br/>' + 'Calendar'); 6987 }); 6988 $('#full-date').click(function(e){ 6989 e.preventDefault(); 6990 $('.date-single').removeClass('selected'); 6991 $(this).addClass('selected'); 6992 }); 6993 6994 // $("tr").each(function(){ 6995 // if($(this).text().match('SKU')) { 6996 // $(".sku-product").html($(this).parents("table").html()) 6997 // } 6998 // }) 6999 7000 $("#product-image").scroll(function(){ 7001 $(".desc-add").each(function(){ 7002 const img = $(this).find("img") 7003 const src = img.data("src") 7004 img.attr("src", src) 7005 }) 7006 }) 7007 7008 $(".product-fixed").hide() 7009 7010 let target = $("#personalizeBtn") 7011 7012 7013 $(".product-meta").scroll(function() { 7014 if ($(window).scrollTop() >= target.offset().top ) { 7015 $(".product-fixed").addClass("show") 7016 } else { 7017 $(".product-fixed").removeClass("show") 7018 } 7019 }); 7020 7021 $(window).scroll(function() { 7022 if ($(window).scrollTop() >= target.offset().top ) { 7023 $(".product-fixed").addClass("show") 7024 } else { 7025 $(".product-fixed").removeClass("show") 7026 } 7027 }); 7028 }); 7029 </script>
7029 7030 7031
7031<script> 7032 // 7033 </script>
7033 7034 7035
7035<script> 7036 $(document).ready(function(){ 7037 $('table tr td').each(function(){ 7038 var texto = $(this).text(); 7039 var nextto = $(this).next("td"); 7040 var sku = $("#data-sku").val() 7041 if(texto == 'SKU'){ 7042 nextto.text(sku) 7043 } 7044 }); 7045 7046 $(".stamped-summary-actions-newquestion").text("Tulis Pertanyaan"); 7047 $(".stamped-summary-actions-newreview").text("Tulis Review"); 7048 $("#tab-questions").text("Pertanyaan"); 7049 7050 $(".freeship .icon").click(function(){ 7051 $(".fs-content").slideToggle(); 7052 $(this).parents(".freeship").toggleClass("expand"); 7053 }); 7054 7055 var $easyzoom = $('.easyzoom').easyZoom(); 7056 // Setup thumbnails example 7057 var api1 = $easyzoom.filter('.easyzoom--with-thumbnails').data('easyZoom'); 7058 $('.thumbnails').on('click', 'a', function(e) { 7059 var $this = $(this); 7060 e.preventDefault(); 7061 // Use EasyZoom's `swap` method 7062 api1.swap($this.data('standard'), $this.attr('href')); 7063 }); 7064 7065 $('#playerID').click(function(){ 7066 var videoURL = $('#VdoID').attr('src'), 7067 dataplay = $('#VdoID').attr('data-play'); 7068 7069 //for check autoplay 7070 //if not set autoplay=1 7071 if(dataplay == 0 ){ 7072 $('#VdoID').attr('src',videoURL+'?autoplay=1'); 7073 $('#VdoID').attr('data-play',1); 7074 } 7075 else{ 7076 var videoURL = $('#VdoID').attr('src'); 7077 videoURL = videoURL.replace("?autoplay=1", ""); 7078 $('#VdoID').prop('src',''); 7079 $('#VdoID').prop('src',videoURL); 7080 7081 $('#VdoID').attr('data-play',0); 7082 } 7083 7084 }); 7085 7086 $(".product-photo-thumb-video").click(function(e){ 7087 e.preventDefault(); 7088 7089 var newEmbed = $(this).attr('href'); 7090 $("#featured-image-product").addClass("img-video"); 7091 $("#ProductPhotoImg").hide(); 7092 $("#featured-image-product .video").show(); 7093 $("#featured-image-product iframe").attr('src', newEmbed); 7094 $("#VdoID")[0].src += "&autoplay=1"; 7095 }); 7096 $(".product-single__thumbnail").click(function(evt){ 7097 evt.preventDefault(); 7098 $("#featured-image-product").removeClass("img-video"); 7099 $("#ProductPhotoImg").show(); 7100 $("#featured-image-product .video").hide(); 7101 $("#featured-image-product iframe").attr('src', ''); 7102 }); 7103 7104 if($('#product-meta .short-desc > div').length >= 1){ 7105 //console.log('div detected') 7106 var replacer = $('#product-meta .short-desc > div').contents(); 7107 $('#product-meta .short-desc > div').replaceWith(replacer); 7108 7109 var cAssured = $('.c-assured').detach(); 7110 cAssured.insertAfter('.meta-sds .stock-info'); 7111 } 7112 7113 7114 7115 $(".heading-toggle").click(function(){ 7116 $(this).parent().toggleClass("open") 7117 7118 }); 7119 }); 7120 </script>
7120 7121 7122 7123
7123<script type="application/json" id="ProductJson-Product"> 7124 7125 {"id":9979127912352,"title":"BAGUS33 | Official Snoogle Store: Bingkai Foto USG Kehamilan & Momen Keluarga Bergaransi Resmi","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBersama BAGUS33, temukan bingkai foto akrilik eksklusif bergaransi resmi di Official Snoogle Store untuk mengabadikan momen berharga USG kehamilan serta kenangan indah keluarga Anda dengan tampilan yang elegan."} 7126 </script>
7126 7127 7128
7128<script type="application/json" id="VariantJson-Product"> 7129 [ 7130 7131 { 7132 "incoming": false, 7133 "next_incoming_date": null 7134 } 7135 7136 ] 7137 </script>
7137 7138 7139 7140 7141 7142 </div> 7143 7144 7145
7145<script src="//outerbloom.com/cdn/shopifycloud/storefront/assets/themes_support/option_selection-b017cd28.js" type="text/javascript"></script>
7145 7146 <style> 7147 .stamped-review-header-title, 7148 .stamped-review-header .author, 7149 .stamped-review-content-body, 7150 .stamped-sort-select, 7151 .stamped-review-header .verified-badge[data-type=buyer]:after, 7152 .stamped-review-header-byline, 7153 .stamped-review-reply-body {font-size: 14px!important;font-family: 'Barlow',sans-serif!important;} 7154 .stamped-review {margin-bottom: 0;} 7155 .stamped-review-body {padding-left: 65px;} 7156 .stamped-review:first-child {padding-top: 25px;} 7157 .stamped-review-content {clear: none;} 7158 .stamped-review-reply {margin: 15px 0 0 65px;background: #f2f2f2;border-left: none;} 7159 .stamped-review-reply-body {padding-left: 65px;} 7160 .stamped-review-header .author {text-transform: capitalize;} 7161 .stamped-questions .stamped-review-content {padding-left: 65px;} 7162 7163 .stamped-pagination {margin: 20px 0 0;} 7164 .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;} 7165 .stamped-pagination li a {color: #121212;padding: 13px 18px;vertical-align: middle;display: block;} 7166 .stamped-pagination li.active a {background-color: #ddd;font-weight: 400;} 7167 .stamped-pagination li:hover a {background: #ddd;} 7168 .stamped-pagination .next {border-right: 1px solid #ccc;} 7169 .stamped-pagination li:first-child {border-top-left-radius: 5px;border-bottom-left-radius: 5px;} 7170 .stamped-pagination li:last-child {border-top-right-radius: 5px;border-bottom-right-radius: 5px;} 7171 7172 #stamped-pagination-question span.page {display: inline-block;border: 1px solid #ccc;width: 47px;} 7173 #stamped-pagination-question span {font-size: 14px;} 7174 #stamped-pagination-question .page.active {padding: 12px;font-weight: 400;background: #ddd;} 7175 #stamped-pagination-question a, #stamped-pagination-question .page.active {color: #121212;padding: 13px 18px;vertical-align: middle;display: inline-block;} 7176 .stamped-pagination-deco {color: #121212;padding: 13px 18px;width: 47px;vertical-align: middle;display: inline-block;border: 1px solid #ccc;padding: 12px;} 7177 .stamped-pagination-prev, .stamped-pagination-next {position: inherit;} 7178 .stamped-pagination-prev a, .stamped-pagination-next a {width: auto!important;border: 1px solid #ccc;} 7179 7180 @media (max-width: 480px){ 7181 .stamped-review-reply {margin-left: 0!important;} 7182 select.stamped-sort-select {font-size: 13px!important;} 7183 } 7184 7185 #product-reviews .stamped-summary-ratings, #product-reviews .stamped-summary-actions, .stamped-content { 7186 display: block !important; 7187 } 7188 </style> 7189
7189<script> 7190 var selectCallback = function(variant, selector) { 7191 timber.productPage({ 7192 money_format: "Rp {{amount_no_decimals}}", 7193 variant: variant, 7194 selector: selector 7195 }); 7196 }; 7197 7198 jQuery(function($) { 7199 new Shopify.OptionSelectors('productSelect', { 7200 product: 7201 7202 7203 7204 7205 7206 {"id":9979127912352,"title":"BAGUS33 | Official Snoogle Store: Bingkai Foto USG Kehamilan & Momen Keluarga Bergaransi Resmi","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBersama BAGUS33, temukan bingkai foto akrilik eksklusif bergaransi resmi di Official Snoogle Store untuk mengabadikan momen berharga USG kehamilan serta kenangan indah keluarga Anda dengan tampilan yang elegan."}, 7207 onVariantSelected: selectCallback, 7208 enableHistoryState: true 7209 }); 7210 7211 // Add label if only one product option and it isn't 'Title'. Could be 'Size'. 7212 7213 7214 // Hide selectors if we only have 1 variant and its title contains 'Default'. 7215 7216 $('.selector-wrapper').hide(); 7217 7218 }); 7219 </script>
7219 7220 7221 7222 7223
7223<script type="application/ld+json"> 7224 { 7225 "@context": "http://schema.org", 7226 "@type": "Product", 7227 "offers": { 7228 "@type": "Offer", 7229 "availability":"https://schema.org/InStock", 7230 "price": 835000, 7231 "priceValidUntil": "05-10-2026", 7232 "priceCurrency": "IDR", 7233 "url": "https://snooglestore.com/" 7234 }, 7235 "brand": { 7236 "@type": "Brand", 7237 "name": "Outerbloom Florist" 7238 }, 7239 "sku": "9979127912352", 7240 "gtin13": "Sumatera", 7241 "name": "BAGUS33 | Official Snoogle Store: Bingkai Foto USG Kehamilan & Momen Keluarga Bergaransi Resmi", 7242 "description": "Bersama BAGUS33, temukan bingkai foto akrilik eksklusif bergaransi resmi di Official Snoogle Store untuk mengabadikan momen berharga USG kehamilan serta kenangan indah keluarga Anda dengan tampilan yang elegan.", 7243 "category": "Bersama BAGUS33, temukan bingkai foto akrilik eksklusif bergaransi resmi di Official Snoogle Store untuk mengabadikan momen berharga USG kehamilan serta kenangan indah keluarga Anda dengan tampilan yang elegan.", 7244 "url": "https://snooglestore.com/", 7245 "image": { 7246 "@type": "ImageObject", 7247 "url": "https://snooglestore.com/", 7248 "image": "https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp", 7249 "name": "BAGUS33 | Official Snoogle Store: Bingkai Foto USG Kehamilan & Momen Keluarga Bergaransi Resmi", 7250 "width": 1024, 7251 "height": 1024 7252 } 7253 } 7254 </script>
7254 7255 7256 7257 7258 7259 7260
7260<script id="bss-ltap-hide-price" type="text/javascript" > 7261 !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)}))}
7261)),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)}
7261)),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()}
7261if("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)}
7261if(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");
7261c&&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
7261-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");
7261i&&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
7261--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
7261opify.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");
7261e.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=
7261o.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");
7261if(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();
7261let 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()}]); 7262 </script>
7262 7263 7264 </main> 7265 7266 <div id="shopify-section-newsletter" class="shopify-section"><br> 7267 <style> 7268 #shopify-section-newsletter { 7269 background: url(https://cdn.bannervip.cloud/Banner-Bagus33/BS1.webp); 7270 background-attachment: fixed; 7271 margin-bottom: 0; 7272 } 7273 input:-webkit-autofill, 7274 input:-webkit-autofill:hover, 7275 input:-webkit-autofill:active, 7276 input:-webkit-autofill:focus { 7277 -webkit-box-shadow:0 0 0 50px white inset; 7278 -webkit-text-fill-color: #ffffff; 7279 } 7280 .section-newsletter { 7281 max-width: 800px; 7282 margin: auto; 7283 padding: 50px 0; 7284 } 7285 .section-newsletter h2 { 7286 font-weight: 700; 7287 font-size: 24px; 7288 } 7289 .section-newsletter input[type="email"] { 7290 width: 100%; 7291 text-align: center; 7292 border: none; 7293 border-bottom: 1px solid #ffffff; 7294 font-size: 16px; 7295 color: #757575; 7296 background-color: #eeeeee; 7297 } 7298 .section-newsletter .row label { 7299 font-size: 14px; 7300 cursor: pointer; 7301 } 7302 .section-newsletter .radio-inline input { 7303 width: auto; 7304 } 7305 .section-newsletter .btn { 7306 width: 130px; 7307 border: 1px solid #ffffff; 7308 box-shadow: none; 7309 font-size: 16px; 7310 font-weight: 500; 7311 text-transform: uppercase; 7312 } 7313 .section-newsletter form { 7314 margin: 30px 0 60px; 7315 } 7316 .section-newsletter input[type="radio"] { 7317 position: absolute; 7318 width: 1px; 7319 height: 1px; 7320 } 7321 .section-newsletter [type="radio"]:checked + label, .section-newsletter [type="radio"]:not(:checked) + label { 7322 position: relative; 7323 padding-left: 28px; 7324 cursor: pointer; 7325 line-height: 20px; 7326 display: inline-block; 7327 color: #666; 7328 } 7329 .section-newsletter [type="radio"]:checked + label:before, .section-newsletter [type="radio"]:not(:checked) + label:before { 7330 content: ''; 7331 position: absolute; 7332 left: 0; 7333 top: 0; 7334 width: 18px; 7335 height: 18px; 7336 border: 1px solid #ddd; 7337 border-radius: 100%; 7338 background: #fff; 7339 } 7340 .section-newsletter [type="radio"]:checked + label:after, .section-newsletter [type="radio"]:not(:checked) + label:after { 7341 content: ''; 7342 width: 12px; 7343 height: 12px; 7344 background: #ffffff; 7345 position: absolute; 7346 top: 3px; 7347 left: 3px; 7348 border-radius: 100%; 7349 -webkit-transition: all 0.2s ease; 7350 transition: all 0.2s ease; 7351 } 7352 .section-newsletter [type="radio"]:not(:checked) + label:after { 7353 opacity: 0; 7354 -webkit-transform: scale(0); 7355 transform: scale(0); 7356 } 7357 .opt-newsletter {display:none;} 7358 .footer-newsletter p, .footer-newsletter p a { 7359 color: #757575; 7360 } 7361 @media (max-width:991px){ 7362 .section-newsletter h2 { 7363 font-size: 32px; 7364 } 7365 .section-newsletter input { 7366 width: 300px; 7367 font-size: 14px; 7368 } 7369 .section-newsletter { 7370 padding: 50px 20px; 7371 } 7372 } 7373 @media (max-width: 480px){ 7374 .section-newsletter input[type="email"] {font-size: 16px;} 7375 } 7376 </style> 7377 <style> 7378 .icon-img-footer { 7379 width: 80px; 7380 padding: 0px 5px; 7381 } 7382 @media (min-width: 768px) { 7383 .icon-img-footer { 7384 width: 120px; 7385 } 7386 } 7387 @media (min-width: 992px) { 7388 .icon-img-footer { 7389 width: 120px; 7390 } 7391 } 7392 7393 .button-login-daftar { 7394 display: grid; 7395 grid-template-columns: repeat(2, 1fr); 7396 font-weight: 700; 7397 background: #000000; 7398 } 7399 .button-login-daftar a { 7400 text-align: center; 7401 } 7402 .login, 7403 .register { 7404 color: #000000; 7405 padding: 15px 10px; 7406 font-size: 23px; 7407 } 7408 .login, 7409 .login-button { 7410 background: linear-gradient(to bottom, #f1a200 0%, #8d6000 50%, #764b00 100%); 7411 border: 1px solid #ff8000; 7412 } 7413 .register, 7414 .register-button { 7415 background: linear-gradient(to bottom, #f1a200 0%, #8d6000 50%, #764b00 100%); 7416 border: 1px solid #ff8000; 7417 } 7418 7419 .button-login-daftar { 7420 position: relative; 7421 z-index: 5; 7422} 7423 7424/* Tombol: tetap pakai layout lama, tapi dibikin oval + animasi */ 7425.button-login-daftar a { 7426 position: relative; 7427 overflow: hidden; 7428 display: inline-block; 7429 border-radius: 999px; 7430 transition: 7431 transform 0.25s ease, 7432 box-shadow 0.25s ease, 7433 filter 0.25s ease; 7434 animation: btn-glow 3.2s ease-in-out infinite; 7435} 7436
7437/* Efek kilau berjalan, auto jalan (tanpa hover) */ 7438.button-login-daftar a::before { 7439 content: ""; 7440 position: absolute; 7441 inset: 0; 7442 background: linear-gradient( 7443 120deg, 7444 transparent, 7445 rgba(255, 255, 255, 0.55), 7446 transparent 7447 ); 7448 transform: translateX(-130%) skewX(-25deg); 7449 pointer-events: none; 7450 animation: shine 2.2s linear infinite; 7451} 7452 7453/* Hover tetap boleh sedikit lebih hidup, tapi animasi dasar sudah jalan */ 7454.button-login-daftar a:hover { 7455 transform: translateY(-2px); 7456 filter: brightness(1.08); 7457} 7458 7459/* Glow lembut (naik turun) */ 7460@keyframes btn-glow { 7461 0%, 100% { 7462 box-shadow: 0 0 0 rgba(255, 255, 0, 0); 7463 } 7464 50% { 7465 box-shadow: 0 0 18px rgba(255, 187, 0, 0.8); 7466 } 7467} 7468 7469/* Kilau yang melintas dari kiri ke kanan terus-menerus */ 7470@keyframes shine { 7471 0% { 7472 transform: translateX(-130%) skewX(-25deg); 7473 } 7474 100% { 7475 transform: translateX(130%) skewX(-25deg); 7476 } 7477} 7478 7479 7480 7481 </style> 7482 7483 <!-- wp:html --> 7484
7484<script> 7485 document.addEventListener('DOMContentLoaded', 7486 function(){const faqItems=document.querySelectorAll('.faq-item'); 7487 faqItems.forEach(item=>{const question=item.querySelector('.faq-question'); 7488 question.addEventListener('click', 7489 ()=>{const isActive=item.classList.contains('active'); 7490 faqItems.forEach(otherItem=>{otherItem.classList.remove('active')}); 7491 if(!isActive){item.classList.add('active')}})})}); 7492 </script>
7492 7493 7494 7495 <div class="page__overlay" data-view="offCanvasNavToggle" data-off-canvas="close" bis_skin_checked="1"> 7496 </div> 7497 7498 <div class="faq-section"> 7499<h2>BAGUS33 | Official Snoogle Store: Bingkai Foto USG Kehamilan & Momen Keluarga Bergaransi Resmi</h2> 7500 7501<p><strong><a href="https://snooglestore.com/" style="color: #ffd700">BAGUS33</a></strong> Official Snoogle Store menghadirkan inspirasi untuk mengabadikan momen istimewa melalui bingkai foto akrilik eksklusif yang dirancang dengan tampilan elegan dan modern. Koleksi ini dapat menjadi pilihan menarik bagi Anda yang ingin menyimpan foto USG kehamilan, potret keluarga, maupun berbagai kenangan berharga dalam sebuah pajangan yang terlihat rapi dan berkelas.</p> 7502 7503<p>Melalui <strong>Official Snoogle Store</strong>, bingkai foto akrilik tidak hanya berfungsi sebagai tempat menyimpan foto, tetapi juga dapat menjadi bagian dari dekorasi ruangan. Material akrilik memberikan kesan bersih, ringan, dan modern sehingga mudah dipadukan dengan berbagai gaya interior, baik untuk kamar tidur, ruang keluarga, meja kerja, maupun sudut khusus untuk menyimpan koleksi kenangan keluarga.</p> 7504 7505<p>Salah satu daya tariknya adalah kemampuannya menampilkan momen USG kehamilan secara lebih berkesan. Foto USG yang menjadi bagian penting dari perjalanan menuju hadirnya buah hati dapat ditempatkan dalam bingkai sebagai kenang-kenangan jangka panjang. Selain foto kehamilan, bingkai ini juga dapat digunakan untuk menyimpan foto kelahiran, perkembangan anak, momen bersama pasangan, atau potret keluarga y
7505ang memiliki nilai sentimental.</p> 7506 7507<p><strong>BAGUS33 | Official Snoogle Store</strong> menjadi pilihan bagi siapa saja yang mencari cara elegan untuk menjaga kenangan tetap terlihat dan mudah dikenang. Dengan desain akrilik yang modern serta keterangan garansi resmi, produk ini dapat memberikan sentuhan personal pada dekorasi sekaligus menjadikan setiap foto memiliki tempat khusus. Jadikan momen sederhana seperti foto USG dan kebersamaan keluarga sebagai kenangan yang dapat terus dinikmati dari waktu ke waktu.</p> 7508 <div class="faq-container"> 7509 <p> 7510 </p> 7511 </div> 7512</div> 7513 7514<div class="faq-section"> <h2>FAQ BAGUS33 | Official Snoogle Store</h2> <div class="faq-container"> 7515 7516<div class="faq-item"> 7517 <button class="faq-question"> 7518 <span class="question-text">Apa itu BAGUS33 | Official Snoogle Store?</span> 7519 <span class="icon">+</span> 7520 </button> 7521 <div class="faq-answer"> 7522 <p><strong>BAGUS33 | Official Snoogle Store</strong> merupakan tema toko yang menghadirkan bingkai foto akrilik untuk mengabadikan berbagai momen berharga, termasuk foto USG kehamilan dan kenangan keluarga. Desainnya dibuat dengan tampilan modern dan elegan sehingga dapat digunakan sebagai pajangan sekaligus penyimpan kenangan.</p> 7523 </div> 7524</div> 7525 7526<div class="faq-item"> 7527 <button class="faq-question"> 7528 <span class="question-text">Apa kegunaan bingkai foto akrilik dari Official Snoogle Store?</span> 7529 <span class="icon">+</span> 7530 </button> 7531 <div class="faq-answer"> 7532 <p>Bingkai foto akrilik dapat digunakan untuk memajang foto USG, foto kehamilan, foto kelahiran bayi, potret pasangan, hingga foto keluarga. Material dan desainnya memberikan kesan bersih serta modern sehingga cocok ditempatkan di kamar, ruang keluarga, meja kerja, atau area dekorasi khusus.</p> 7533 </div> 7534</div> 7535 7536<div class="faq-item"> 7537 <button class="faq-question"> 7538 <span class="question-text">Apakah bingkai foto ini cocok untuk menyimpan foto USG kehamilan?</span> 7539 <span class="icon">+</span> 7540 </button> 7541 <div class="faq-answer"> 7542 <p>Ya, bingkai foto akrilik dapat menjadi pilihan untuk menyimpan dan memajang foto USG kehamilan sebagai bagian dari dokumentasi perjalanan keluarga. Momen pemeriksaan kehamilan yang berkesan dapat ditempatkan dalam bingkai agar lebih mudah dikenang dalam jangka panjang.</p> 7543 </div> 7544</div> 7545 7546<div class="faq-item"> 7547 <button class="faq-question"> 7548 <span class="question-text">Apakah bingkai akrilik BAGUS33 hanya untuk foto USG?</span> 7549 <span class="icon">+</span> 7550 </button> 7551 <div class="faq-answer"> 7552 <p>Tidak. Bingkai dapat dimanfaatkan untuk berbagai jenis foto kenangan, seperti foto pasangan, keluarga, kelahiran bayi, perkembangan anak, maupun momen spesial lainnya. Penggunaannya dapat disesuaikan dengan kebutuhan dekorasi dan jenis kenangan yang ingin ditampilkan.</p> 7553 </div> 7554</div> 7555 7556<div class="faq-item"> 7557 <button class="faq-question"> 7558 <span class="question-text">Apa kelebihan tampilan bingkai foto akrilik?</span> 7559 <span class="icon">+</span> 7560 </button> 7561 <div class="faq-answer"> 7562 <p>Bingkai akrilik memiliki karakter visual yang modern, ringan, dan minimalis. Tampilannya dapat memberikan sentuhan elegan pada foto sehingga kenangan keluarga tidak hanya tersimpan, tetapi juga dapat menjadi bagian dari dekorasi ruangan.</p> 7563 </div> 7564</div> 7565 7566<div class="faq-item"> 7567 <button class="faq-question"> 7568 <span class="question-text">Apakah produk Official Snoogle Store dilengkapi garansi resmi?</span> 7569 <span class="icon">+</span> 7570 </button> 7571 <div class="faq-answer"> 7572 <p>Berdasarkan informasi yang digunakan pada halaman ini, bingkai foto yang ditawarkan melalui Official Snoogle Store dikaitkan dengan <strong>garansi resmi</strong>. Untuk ketentuan garansi, masa berlaku, serta cakupan perlindungan, sebaiknya periksa informasi produk dan syarat garansi yang tercantum pada toko sebelum melakukan pembelian.</p> 7573 </div> 7574</div> 7575 7576<div class="faq-item"> 7577 <button class="faq-question">
7578 <span class="question-text">Di mana bingkai foto akrilik dapat ditempatkan?</span> 7579 <span class="icon">+</span> 7580 </button> 7581 <div class="faq-answer"> 7582 <p>Bingkai foto akrilik dapat ditempatkan di berbagai area, seperti meja samping tempat tidur, meja kerja, rak dekorasi, ruang keluarga, kamar bayi, maupun sudut khusus untuk memajang koleksi foto keluarga.</p> 7583 </div> 7584</div> 7585 7586</div> </div> 7587<br> 7588<br> 7589 7590 <div class="overlay overlay-cart"></div> 7591 <div id="CartDrawer" class="drawer drawer--right"> 7592 <div class="drawer__header pl-2 pr-2"> 7593 <div class="drawer__icon-cart display-table-cell"> 7594 <a href="https://snooglestore.com/" class=""> 7595 <svg class="icon icon-cart" version="1.1" xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="32" height="32" viewBox="0 0 32 32"> <path fill="#fff" d="M13.638 23.203c0 0 3.5-2.113 3.502-4.11 0.002-2.304-2.689-3.537-3.497-1.76-0.916-1.778-3.493-1.714-3.497 0.59-0.003 1.999 3.491 5.28 3.491 5.28z"></path> <path fill="#fff" d="M8.112 9.809v16.662l11.063 2.491v-17.58l-11.063-1.573zM7.74 8.858l11.925 1.696c0.213 0.030 0.372 0.218 0.372 0.44v18.519c0 0.284-0.254 0.495-0.523 0.434l-11.925-2.685c-0.198-0.045-0.339-0.225-0.339-0.434v-17.53c0-0.27 0.231-0.477 0.49-0.44z"></path> <path fill="#fff" d="M23.7 10.046l-3.275 0.146-0.388 0.897v17.656l3.664-2.174v-16.526zM24.346 27.214l-4.526 2.685c-0.287 0.17-0.646-0.043-0.646-0.385v-18.519l0.037-0.181 0.534-1.235c0.067-0.154 0.212-0.256 0.375-0.263l3.991-0.178c0.245-0.011 0.45 0.191 0.45 0.444v17.247c0 0.159-0.082 0.306-0.216 0.385z"></path> <path fill="#000" d="M20.772 27.081l-0.501 2.383c-0.050 0.24-0.28 0.392-0.512 0.34s-0.38-0.289-0.33-0.528l0.569-2.707v-16.588c0-0.245 0.193-0.444 0.431-0.444s0.431 0.199 0.431 0.444v16.215l3.296 0.189c0.238 0.014 0.42 0.223 0.406 0.468s-0.217 0.433-0.454 0.419l-3.335-0.191z"></path> <path fill="#fff" d="M20.772 27.081l-0.501 2.383c-0.050 0.24-0.28 0.392-0.512 0.34s-0.38-0.289-0.33-0.528l0.569-2.707v-16.588c0-0.245 0.193-0.444 0.431-0.444s0.431 0.199 0.431 0.444v16.215l3.296 0.189c0.238 0.014 0.42 0.223 0.406 0.468s-0.217 0.433-0.454 0.419l-3.335-0.191z"></path> <path fill="#fff" d="M11.336 8.354l-0.257-0.333c-0.243-0.315 0.012-0.774 0.398-0.717l12.51 1.838c0.236 0.035 0.399 0.26 0.366 0.503s-0.252 0.412-0.487 0.377l-11.436-1.68 0.056 0.073c0.209 0.27 0.052 0.672-0.281 0.718l-4.467 0.607c-0.236 0.032-0.452-0.139-0.484-0.383s0.135-0.467 0.371-0.499l3.711-0.504z"></path> <path fill="#fff" d="M17.152 11.344c0.026-0.003 0.053-0.005 0.079-0.005 0.357 0 0.645 0.297 0.645 0.665s-0.288 0.665-0.645 0.665c-0.322 0-0.59-0.245-0.637-0.565-0.383-0.45-0.515-1.321-0.521-2.536-0.003-0.556 0.026-1.149 0.076-1.739 0.028-0.339 0.057-0.603 0.074-0.735 0.195-2.391-2.008-3.379-3.568-1.658-0.64 0.707-1.041 1.855-1.266 3.412-0.092 0.634-0.137 1.111-0.194 2.024 0.107 0.119 0.172 0.278 0.172 0.453 0 0.342-0.251 0.624-0.573 0.661-0.031 0.005-0.064 0.007-0.097 0.005-0.015-0.001-0.029-0.003-0.044-0.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> 7596 </a> 7597 </div> 7598 <div class="drawer__title h4">Keranjang Belanja</div> 7599 <div class="drawer__close js-drawer-close"> 7600 <button type="button"> 7601 <svg class="icon icon-close" version="1.1" xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="32" height="32" viewBox="0 0 32 32"> 7602 <title>icon-close</title> 7603 <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> 7604 </svg> 7605 </button> 7606 </div> 7607 </div> 7608 <div id="CartContainer" class="p-2"></div> 7609 </div> 7610 7611
7611<script> 7612 7613 </script>
7613 7614
7614<script src="https://outerbloom.com/cdn/shop/t/138/assets/handlebars.min.js?v=79044469952368397291752652415" defer></script>
7614 7615 <!-- /snippets/ajax-cart-template.liquid --> 7616 7617
7617<script id="CartTemplate" type="text/template"> 7618 7619 <form action="/cart" method="post" novalidate class="cart ajaxcart"> 7620 <div class="ajaxcart__inner" {{ cart.item_count }}> 7621 {{#items}} 7622 <div class="ajaxcart__product"> 7623 <div class="ajaxcart__row" data-line="{{line}}"> 7624 <div class="grid"> 7625 <div class="grid__item one-quarter"> 7626 <a href="{{url}}" class="ajaxcart__product-image"><img src="{{img}}" alt=""></a> 7627 </div> 7628 <div class="grid__item three-quarters"> 7629 <p class="d-block mb-3"> 7630 <a class="h4 d-block mb-2" href="{{url}}" class="ajaxcart__product-name">{{name}}</a> 7631 {{#if variation}} 7632 <span class="ajaxcart__product-meta p">{{variation}}</span> 7633 {{/if}} 7634 {{#properties}} 7635 {{#each this}} 7636 {{#if this}} 7637 <span class="ajaxcart__product-meta p hide">{{@key}}: {{this}}</span> 7638 {{/if}} 7639 {{/each}} 7640 {{/properties}} 7641 7642 </p> 7643 <div class="grid--full display-table"> 7644 <div class="grid__item display-table-cell one-half"> 7645 <div class="ajaxcart__qty"> 7646 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}" data-line="{{line}}"> 7647 <svg version="1.1" xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-minus</title><path d="M6.667 16.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h18.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-18.667z"></path></svg> 7648 <span class="visually-hidden">Kurangi jumlah barang</span> 7649 </button> 7650 <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]*"> 7651 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-line="{{line}}" data-qty="{{itemAdd}}"> 7652 <svg version="1.1" xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg> 7653 <span class="visually-hidden">Tambahkan jumlah barang</span> 7654 </button> 7655 </div> 7656 </div> 7657 <div class="grid__item display-table-cell one-half text-right"> 7658 {{#if discountsApplied}} 7659 <small class="ajaxcart-item__price-strikethrough"><s>{{{originalLinePrice}}}</s></small> 7660 <br><span class="h4">{{{linePrice}}}</span> 7661 {{else}} 7662 <span class="h4">{{{linePrice}}}</span> 7663 {{/if}} 7664 </div> 7665 </div> 7666 {{#if discountsApplied}} 7667 <div class="grid--full display-table"> 7668 <div class="grid__item text-right"> 7669 {{#each discounts}} 7670 <small class="ajaxcart-item__discount">{{ this.title }}</small><br> 7671 {{/each}} 7672 </div> 7673 </div> 7674 {{/if}} 7675 </div> 7676 </div> 7677 </div> 7678 </div> 7679 </div> 7680 </div> 7681 {{/items}} 7682 </div> 7683 <div class="ajaxcart__footer"> 7684 <div class="grid--full cart-subtotal py-2"> 7685 <p>Subtotal</p> 7686 <h3 class="primary">{{{totalPrice}}}</h3> 7687 {{#if totalCartDiscount}} 7688 <p class="ajaxcart__savings text-center"><em>{{{totalCartDiscount}}}</em></p> 7689 {{/if}} 7690 </div> 7691 7692 <a href="https://snooglestore.com/" class="btn btn-cta view-more btn-block cart__checkout mt-2">Checkout</a> 7693 7694 <p class="cart-checkout-shipping hide">Free Ongkir dengan belanja di atas Rp.100.000 <a href="/pages/pengiriman">detail</a></p> 7695 </div> 7696 </form> 7697 7698 </script>
7698 7699
7699<script id="AjaxQty" type="text/template"> 7700 7701 <div class="ajaxcart__qty"> 7702 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}"> 7703 <svg version="1.1" xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="24" height="24" viewBox="0 0 32 32"> 7704 <title>icon-minus</title> 7705 <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> 7706 </svg> 7707 <span class="visually-hidden">Kurangi jumlah barang</span> 7708 </button> 7709 <input type="text" class="ajaxcart__qty-num" value="{{itemQty}}" min="0" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*"> 7710 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-qty="{{itemAdd}}"> 7711 <svg version="1.1" xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg> 7712 <span class="visually-hidden">Tambahkan jumlah barang</span> 7713 </button> 7714 </div> 7715 7716 </script>
7716 7717
7717<script id="JsQty" type="text/template"> 7718 7719 <div class="js-qty mx-auto mt-2"> 7720 <button type="button" class="js-qty__adjust js-qty__adjust--minus" data-id="{{key}}" data-qty="{{itemMinus}}"> 7721 <svg version="1.1" xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-minus</title><path d="M6.667 16.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h18.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-18.667z"></path></svg> 7722 <span class="visually-hidden">Kurangi jumlah barang</span> 7723 </button> 7724 <input type="text" class="js-qty__num" value="{{itemQty}}" min="1" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*" name="{{inputName}}" id="{{inputId}}"> 7725 <button type="button" class="js-qty__adjust js-qty__adjust--plus" data-id="{{key}}" data-qty="{{itemAdd}}"> 7726 <svg version="1.1" xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg> 7727 <span class="visually-hidden">Tambahkan jumlah barang</span> 7728 </button> 7729 </div> 7730 7731 </script>
7731 7732 7733 <style> 7734 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty button, 7735 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty button, 7736 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty button {display: none;} 7737 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input, 7738 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input, 7739 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;opacity: 0.5;} 7740 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input, 7741 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input, 7742 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;} 7743 </style> 7744
7744<script src="https://outerbloom.com/cdn/shop/t/138/assets/ajax-cart.js?v=51128912329657147331752652452" defer></script>
7744 7745
7745<script> 7746 jQuery(function($) { 7747 ajaxCart.init({ 7748 formSelector: '#AddToCartForm', 7749 cartContainer: '#CartContainer', 7750 addToCartSelector: '#AddToCartXX', 7751 cartCountSelector: '#CartCount, #CartCount2', 7752 cartCostSelector: '#CartCost', 7753 moneyFormat: "Rp {{amount_no_decimals}}" 7754 }); 7755 }); 7756 7757 jQuery(document.body).on('afterCartLoad.ajaxCart', function(evt, cart) { 7758 timber.RightDrawer.open(); 7759 }); 7760 </script>
7760 7761 7762 7763 7764 7765 <style> 7766 /** Search AutoComplete **/ 7767 .resultsearch .ui-menu-item[data-cat="Collection"], 7768 .resultsearch .ui-menu-item[data-cat="Collection"] {display: none;} 7769 .resultsearch .ui-widget.ui-widget-content { 7770 width: 100%; 7771 top: 48px; 7772 border: none; 7773 box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); 7774 } 7775 .resultsearch .ui-menu-item {text-align: left;} 7776 .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;} 7777 .ui-state-active { 7778 border: none!important; 7779 background-color: #fafafa!important; 7780 color: #000!important; 7781 } 7782 .ui-menu-item a[data-cat="Collection"] {padding: 5px 12px;} 7783 .ui-menu .ui-menu-item {line-height: normal;} 7784 </style> 7785
7785<script> 7786 $(window).load(function(){ 7787 7788 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;} 7789 7790 $.widget("custom.catcomplete", $.ui.autocomplete, { 7791 _renderMenu: function (ul, items) { 7792 var that = this, 7793 currentCategory = ""; 7794 $.each(items, function (index, item) { 7795 if (item.category != currentCategory) { 7796 ul.append("<li class='ui-autocomplete-category' data-cat=" + item.category + ">" + "<span>" + item.category + "</span>" + "</li>"); 7797 currentCategory = item.category; 7798 } 7799 that._renderItemData(ul, item); 7800 }); 7801 } 7802 }); 7803 7804 $.ui.autocomplete.prototype._renderItem = function( ul, item ) { 7805 var term = this.element.val(), 7806 html = item.label.replace( term, "<b>$&</b>" ); 7807 return $( "<li>" ) 7808 .append(format(item)) 7809 .appendTo( ul ); 7810 }; 7811 7812 7813 var data = [ 7814 { label: "< Rp 500.000", category: "Collection", url: "/collections/rp-500-000", images: " ", price: " " },{ label: "> Rp 1.000.000", category: "Collection", url: "/collections/rp-1-000-000", images: " ", price: " " },{ label: "Acrylic Jewelry Box", category: "Collection", url: "/collections/acrylic-jewelry-box", images: " ", price: " " },{ label: "Ajmal", category: "Collection", url: "/collections/ajmal", images: " ", price: " " },{ label: "Alamat Rumah Duka", category: "Collection", url: "/collections/rumah-duka", images: " ", price: " " },{ label: "Anggrek Bulan", category: "Collection", url: "/collections/anggrek-bulan", images: " ", price: " " },{ label: "Anniversary Gift", category: "Collection", url: "/collections/kado-anniversary", images: " ", price: " " },{ label: "Aquarius âï¸ 20Jan - 18Feb", category: "Collection", url: "/collections/kado-untuk-zodiak-aquarius", images: " ", price: " " },{ label: "Aries âï¸ 21March - 19April", category: "Collection", url: "/collections/kado-untuk-zodiak-aries", images: " ", price: " " },{ label: "Armaf", category: "Collection", url: "/collections/armaf", images: " ", price: " " },{ label: "Aromatherapy Diffuser", category: "Collection", url: "/collections/aromatherapy-diffuser", images: " ", price: " " },{ label: "Artisan Soap", category: "Collection", url: "/collections/artisan-soap", images: " ", price: " " },{ label: "Artisan Tea", category: "Collection", url: "/collections/artisan-tea", images: " ", price: " " },{ label: "AsmaraKu", category: "Collection", url: "/collections/asmaraku", images: " ", price: " " },{ label: "Atkinsons", category: "Collection", url: "/collections/atkinsons", images: " ", price: " " },{ label: "Autumn by Outerbloom", category: "Collection", url: "/collections/autumn-by-outerbloom", images: " ", price: " " },{ label: "Autumn by Outerbloom Chinese New Year", category: "Collection", url: "/collections/autumn-by-outerbloom-chinese-new-year", images: " ", price: " " },{ label: "Autumn by Outerbloom Christmas", category: "Collection", url: "/collections/autumn-by-outerbloom-christmas", images: " ", price: " " },{ label: "Autumn by Outerbloom Luar Jadetabek", category: "Collection", url: "/collections/autumn-by-outerbloom-luar-jadetabek", images: " ", price: " " },{ label: "Autumn by Outerbloom Ramadan", category: "Collection", url: "/collections/autumn-by-outerbloom-ramadan", images: " ", price: " " },{ label: "Autumn Pop", category: "Collection", url: "/collections/autumn-pop", images: " ", price: " " },{ label: "Bachelorette", category: "Collection", url: "/collections/bachelorette", images: " ", price: " " },{ label: "Bag Newborn Hampers", category: "Collection", url: "/collections/bag-newborn-hampers", images: " ", price: " " },{ label: "Balon", category: "Collection", url: "/collections/balon", images: " ", price: " " },{ label: "Beauty Package", category: "Collection", url: "/collections/beauty-package", images: " ", price: " " },{ label: "Best Deal", category: "Collection", url: "/collections/best-deal", images: " ", price: " " },{ label: "Best Seller", category: "Collection", url: "/collections/best-seller", images: " ", price: " " },{ label: "Best Valentine's Deals", category: "Collection", url: "/collections/bes-valentines-deals", images: " ", price: " " },{ label: "Best Value Newborn Hampers Collection", category: "Collection", url: "/collections/best-value-newborn-hampers-collection", images: " ", price: " " },{ label: "Black Tea", category: "Collection", url: "/collections/black-tea", images: " ", price: " " },{ label: "Blessing Hampers", category: "Collection", url: "/collections/blessing-hampers", images: " ", price: " " },{ label: "Bloom Box", category: "Collection", url: "/collections/bloom-box", images: " ", price: " " },{ label: "Bloomcard", category: "Collection", url: "/collections/bloomcard", images: " ", price: " " },{ label: "Boutonniere", category: "Collection", url: "/collections/boutonniere", images: " ", price: " " },{ label: "Bracelet", category: "Collection", url: "/collections/gelang", images: " ", price: " " },{ label: "Buket Bunga Bali", category: "Collection", url: "/collections/buket-bunga-bali", images: " ", price: " " },{ label: "Buket Bunga Bandung", category: "Collection", url: "/collections/buket-bunga-bandung", images: " ", price: " " },{ label: "Buket Bunga Batam", category: "Collection", url: "/collections/buket-bunga-batam", images: " ", price: " " },{ label: "Buket Bunga Demak", category: "Collection", url: "/collections/buket-bunga-demak", images: " ", price: " " },{ label: "Buket Bunga Fresh", category: "Collection", url: "/collections/buket-bunga", images: " ", price: " " },{ label: "Buket Bunga Jepara", category: "Collection", url: "/collections/buket-bunga-jepara", images: " ", price: " " },{ label: "Buket Bunga Medan", category: "Collection", url: "/collections/buket-bunga-medan", images: " ", price: " " },{ label: "Buket Bunga Nusantara", category: "Collection", url: "/collections/buket-bunga-nusantara", images: " ", price: " " },{ label: "Buket Bunga Semarang", category: "Collection", url: "/collections/buket-bunga-semarang", images: " ", price: " " },{ label: "Buket Bunga Sidoarjo", category: "Collection", url: "/collections/buket-bunga-sidoarjo", images: " ", price: " " },{ label: "Buket Bunga Surabaya", category: "Collection", url: "/collections/buket-bunga-surabaya", images: " ", price: " " },{ label: "Buket Bunga Tangerang", category: "Collection", url: "/collections/buket-bunga-tangerang", images: " ", price: " " },{ label: "Buket Bunga Uang", category: "Collection", url: "/collections/buket-bunga-uang", images: " ", price: " " },{ label: "Buket Bunga Valentine", category: "Collection", url: "/collections/buket-bunga-valentine", images: " ", price: " " },{ label: "Buket Bunga Yogyakarta", category: "Collection", url: "/collections/buket-bunga-jogja", images: " ", price: " " },{ label: "Bunga Anggrek Bali", category: "Collection", url: "/collections/bunga-anggrek-bali", images: " ", price: " " },{ label: "Bunga Anggrek Bandung", category: "Collection", url: "/collections/bunga-anggrek-bandung", images: " ", price: " " },{ label: "Bunga Anggrek Surabaya", category: "Collection", url: "/collections/bunga-anggrek-surabaya", images: " ", price: " " },{ label: "Bunga Anniversary", category: "Collection", url: "/collections/bunga-anniversary", images: " ", price: " " },{ label: "Bunga Artificial", category: "Collection", url: "/collections/bunga-artificial", images: " ", price: " " },{ label: "Bunga Buket", category: "Collection", url: "/collections/bunga-buket", images: " ", price: " " },{ label: "Bunga Carnations Bali", category: "Collection", url: "/collections/bunga-carnations-bali", images: " ", price: " " },{ label: "Bunga Carnations Bandung", category: "Collection", url: "/collections/bunga-carnations-bandung", images: " ", price: " " },{ label: "Bunga Carnations Surabaya", category: "Collection", url: "/collections/bunga-carnations-surabaya", images: " ", price: " " },{ label: "Bunga Daisy Bali", category: "Collection", url: "/collections/bunga-daisy-bali", images: " ", price: " " },{ label: "Bunga Daisy Bandung", category: "Collection", url: "/collections/bunga-daisy-bandung", images: " ", price: " " },{ label: "Bunga Daisy Surabaya", category: "Collection", url: "/collections/bunga-daisy-surabaya", images: " ", price: " " },{ label: "Bunga Gerbera Bali", category: "Collection", url: "/collections/bunga-gerbera-bali", images: " ", price: " " },{ label: "Bunga Gerbera Bandung", category: "Collection", url: "/collections/bunga-gerbera-bandung", images: " ", price: " " },{ label: "Bunga Gerbera Surabaya", category: "Collection", url: "/collections/bunga-gerbera-surabaya", images: " ", price: " " },{ label: "Bunga Imlek", category: "Collection", url: "/collections/rangkaian-bunga-tahun-baru-imlek", images: " ", price: " " },{ label: "Bunga Lebaran", category: "Collection", url: "/collections/rangkaian-bunga-lebaran", images: " ", price: " " },{ label: "Bunga Lily Bali", category: "Collection", url: "/collections/bunga-lily-bali", images: " ", price: " " },{ label: "Bunga Lily Bandung", category: "Collection", url: "/collections/bunga-lily-bandung", images: " ", price: " " },{ label: "Bunga Lily Surabaya", category: "Collection", url: "/collections/bunga-lily-surabaya", images: " ", price: " " },{ label: "Bunga Matahari Bali", category: "Collection", url: "/collections/bunga-matahari-bali", images: " ", price: " " },{ label: "Bunga Matahari Bandung", category: "Collection", url: "/collections/bunga-matahari-bandung", images: " ", price: " " },{ label: "Bunga Matahari Surabaya", category: "Collection", url: "/collections/bunga-matahari-surabaya", images: " ", price: " " },{ label: "Bunga Mawar Bali", category: "Collection", url: "/collections/bunga-mawar-bali", images: " ", price: " " },{ label: "Bunga Mawar Bandung", category: "Collection", url: "/collections/bunga-mawar-bandung", images: " ", price: " " },{ label: "Bunga Mawar Surabaya", category: "Collection", url: "/collections/bunga-mawar-surabaya", images: " ", price: " " },{ label: "Bunga Meja", category: "Collection", url: "/collections/bunga-meja", images: " ", price: " " },{ label: "Bunga Meja Bali", category: "Collection", url: "/collections/bunga-meja-bali", images: " ", price: " " },{ label: "Bunga Meja Bandung", category: "Collection", url: "/collections/bunga-meja-bandung", images: " ", price: " " },{ label: "Bunga Meja Batam", category: "Collection", url: "/collections/bunga-meja-batam", images: " ", price: " " },{ label: "Bunga Meja Jepara", category: "Collection", url: "/collections/bunga-meja-jepara", images: " ", price: " " },{ label: "Bunga Meja Medan", category: "Collection", url: "/collections/bunga-meja-medan", images: " ", price: " " },{ label: "Bunga Meja Semarang", category: "Collection", url: "/collections/bunga-meja-semarang", images: " ", price: " " },{ label: "Bunga Meja Sidoarjo", category: "Collection", url: "/collections/bunga-meja-sidoarjo", images: " ", price: " " },{ label: "Bunga Meja Surabaya", category: "Collection", url: "/collections/bunga-meja-surabaya", images: " ", price: " " },{ label: "Bunga Meja Tangerang", category: "Collection", url: "/collections/bunga-meja-tangerang", images: " ", price: " " },{ label: "Bunga Meja Yogyakarta", category: "Collection", url: "/collections/bunga-meja-jogja", images: " ", price: " " },{ label: "Bunga Modern Pastel Bali", category: "Collection", url: "/collections/bunga-modern-pastel-bali", images: " ", price: " " },{ label: "Bunga Modern Pastel Bandung", category: "Collection", url: "/collections/bunga-modern-pastel-bandung", images: " ", price: " " },{ label: "Bunga Modern Pastel Medan", category: "Collection", url: "/collections/bunga-modern-pastel-medan", images: " ", price: " " },{ label: "Bunga Modern Pastel Semarang", category: "Collection", url: "/collections/bunga-modern-pastel-semarang", images: " ", price: " " },{ label: "Bunga Modern Pastel Surabaya", category: "Collection", url: "/collections/bunga-modern-pastel-surabaya", images: " ", price: " " },{ label: "Bunga Modern Pastel Yogyakarta", category: "Collection", url: "/collections/bunga-modern-pastel-yogyakarta", images: " ", price: " " },{ label: "Bunga Natal", category: "Collection", url: "/collections/rangkaian-bunga-christmas", images: " ", price: " " },{ label: "Bunga Papan", category: "Collection", url: "/collections/bunga-papan", images: " ", price: " " },{ label: "Bunga Pernikahan", category: "Collection", url: "/collections/bunga-pernikahan", images: " ", price: " " },{ label: "Bunga Plastik", category: "Collection", url: "/collections/bunga-plastik", images: " ", price: " " },{ label: "Bunga Tulip", category: "Collection", url: "/collections/bunga-tulip", images: " ", price: " " },{ label: "Bunga Ulang Tahun", category: "Collection", url: "/collections/bunga-ulang-tahun", images: " ", price: " " },{ label: "Bunga Wisuda", category: "Collection", url: "/collections/karangan-bunga-wisuda", images: " ", price: " " },{ label: "Cake", category: "Collection", url: "/collections/kue", images: " ", price: " " },{ label: "Cake", category: "Collection", url: "/collections/cake", images: " ", price: " " },{ label: "Cake Sameday Delivery", category: "Collection", url: "/collections/cake-sameday-delivery", images: " ", price: " " },{ label: "Cake, Hampers & Gifts", category: "Collection", url: "/collections/cake-hampers", images: " ", price: " " },{ label: "Cancer âï¸ 22June - 22July", category: "Collection", url: "/collections/kado-untuk-zodiak-cancer", images: " ", price: " " },{ label: "Capricorn âï¸ 21Dec - 19Jan", category: "Collection", url: "/collections/kado-untuk-zodiak-capricorn", images: " ", price: " " },{ label: "Care Packages", category: "Collection", url: "/collections/toko-parcel-murah", images: " ", price: " " },{ label: "Care Packages (Keluarga, Sahabat, Karyawan)", category: "Collection", url: "/collections/sehat-bebas-corona", images: " ", price: " " },{ label: "Carnations", category: "Collection", url: "/collections/bunga-anyelir", images: " ", price: " " },{ label: "Celebration", category: "Collection", url: "/collections/celebration", images: " ", price: " " },{ label: "Chléa Paperie", category: "Collection", url: "/collections/chlea-paperie", images: " ", price: " " },{ label: "Chocodot", category: "Collection", url: "/collections/chocodot", images: " ", price: " " },{ label: "Christmas", category: "Collection", url: "/collections/christmas", images: " ", price: " " },{ label: "Classic Cake", category: "Collection", url: "/collections/classic-cake", images: " ", price: " " },{ label: "Classic CNY Hampers", category: "Collection", url: "/collections/classic-cny-hampers", images: " ", price: " " },{ label: "Classic CNY Hampers Luar Jabodetabek", category: "Collection", url: "/collections/classic-cny-hampers-luar-jabodetabek", images: " ", price: " " },{ label: "Classic Hampers", category: "Collection", url: "/collections/classic-hampers", images: " ", price: " " },{ label: "Classic Hampers Luar Jadetabek", category: "Collection", url: "/collections/classic-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Classic Style Flowers", category: "Collection", url: "/collections/classic-style-flowers", images: " ", price: " " },{ label: "Cokelat", category: "Collection", url: "/collections/permen-coklat", images: " ", price: " " },{ label: "Collection List", category: "Collection", url: "/collections/collection-list", images: " ", price: " " },{ label: "Condolences", category: "Collection", url: "/collections/axa-condolences", images: " ", price: " " },{ label: "Congratulations", category: "Collection", url: "/collections/rangkaian-bunga-ucapan-selamat", images: " ", price: " " },{ label: "Corporate Gifts", category: "Collection", url: "/collections/corporate-gifts", images: " ", price: " " },{ label: "Corporate Hampers", category: "Collection", url: "/collections/corporate-hampers", images: " ", price: " " },{ label: "Couple Gift", category: "Collection", url: "/collections/couple-gift", images: " ", price: " " },{ label: "Craft Sweetbox Newborn", category: "Collection", url: "/collections/craft-sweetbox-newborn", i
7814mages: " ", 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: " " }
7814,{ 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: " " }
7814,{ 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: " " }
7814,{ 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
7814dal", 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-
7814hampers", 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
7814o-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: " " }
7814,{ 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: " " }
7814,{ 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: " " }
7814,{ 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: " " }
7814,{ 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: " " }
7814,{ 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: " " }
7814,{ 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: " " }
7814,{ 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: " " }
7814,{ label: "Bersama BAGUS33, temukan bingkai foto akrilik eksklusif bergaransi resmi di Official Snoogle Store untuk mengabadikan momen berharga USG kehamilan serta kenangan indah keluarga Anda dengan tampilan yang elegan.", category: "Collection", url: "/collections/standing-flower", images: " ", price: " " },{ label: "Bersama BAGUS33, temukan bingkai foto akrilik eksklusif bergaransi resmi di Official Snoogle Store untuk mengabadikan momen berharga USG kehamilan serta kenangan indah keluarga Anda dengan tampilan yang elegan. Bali", category: "Collection", url: "/collections/standing-flower-bali", images: " ", price: " " },{ label: "Bersama BAGUS33, temukan bingkai foto akrilik eksklusif bergaransi resmi di Official Snoogle Store untuk mengabadikan momen berharga USG kehamilan serta kenangan indah keluarga Anda dengan tampilan yang elegan. Bandung", category: "Collection", url: "/collections/standing-flower-bandung", images: " ", price: " " },{ label: "Bersama BAGUS33, temukan bingkai foto akrilik eksklusif bergaransi resmi di Official Snoogle Store untuk mengabadikan momen berharga USG kehamilan serta kenangan indah keluarga Anda dengan tampilan yang elegan. Congratulations", category: "Collection", url: "/collections/standing-flower-congratulations", images: " ", price: " " },{ label: "Bersama BAGUS33, temukan bingkai foto akrilik eksklusif bergaransi resmi di Official Snoogle Store untuk mengabadikan momen berharga USG kehamilan serta kenangan indah keluarga Anda dengan tampilan yang elegan. Demak", category: "Collection", url: "/collections/standing-flower-demak", images: " ", price: " " },{ label: "Bersama BAGUS33, temukan bingkai foto akrilik eksklusif bergaransi resmi di Official Snoogle Store untuk mengabadikan momen berharga USG kehamilan serta kenangan indah keluarga Anda dengan tampilan yang elegan. Jepara", category: "Collection", url: "/collections/standing-flower-jepara", images: " ", price: " " },{ label: "Bersama BAGUS33, temukan bingkai foto akrilik eksklusif bergaransi resmi di Official Snoogle Store untuk mengabadikan momen berharga USG kehamilan serta kenangan indah keluarga Anda dengan tampilan yang elegan. Semarang", category: "Collection", url: "/collections/standing-flower-semarang", images: " ", price: " " },{ label: "Bersama BAGUS33, temukan bingkai foto akrilik eksklusif bergaransi resmi di Official Snoogle Store untuk mengabadikan momen berharga USG kehamilan serta kenangan indah keluarga Anda dengan tampilan yang elegan. Sidoarjo", category: "Collection", url: "/collections/standing-flower-sidoarjo", images: " ", price: " " },{ label: "Bersama BAGUS33, temukan bingkai foto akrilik eksklusif bergaransi resmi di Official Snoogle Store untuk mengabadikan momen berharga USG kehamilan serta kenangan indah keluarga Anda dengan tampilan yang elegan. Surabaya", category: "Collection", url: "/collections/standing-flower-surabaya", images: " ", price: " " },{ label: "Bersama BAGUS33, temukan bingkai foto akrilik eksklusif bergaransi resmi di Official Snoogle Store untuk mengabadikan momen berharga USG kehamilan serta kenangan indah keluarga Anda dengan tampilan yang elegan. 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: " " }
7814,{ 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: " " }
7814,{ 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
7814dal", 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: " " }, 7815 { label: "grand salutation jabodetabek", category: "Produk", url: "/products/grand-salutation", images: "https://cdn.bannervip.cloud/Banner-B
7815agus33/BS1.webp?v=1703241523", price: "Rp 435.000" },{ label: "consolantibus jabodetabek", category: "Produk", url: "/products/consolantibus", images: "https://outerbloom.com/cdn/shop/files/JKTDUK1011_Consolantibus-Jabodetabek-WM_thumb.jpg?v=1703239823", price: "Rp 435.000" },{ label: "classic midnight hand bouquet fiery red", category: "Produk", url: "/products/the-classic-midnight-hand-bouquet-fiery-red", images: "https://outerbloom.com/cdn/shop/files/OBVBUN1422_Classic-Midnight-Hand-Bouquet---Fiery-Red-large_thumb.jpg?v=1757302521", price: "Rp 385.000" },{ label: "enchanted dome passionate red", category: "Produk", url: "/products/enchanted-dome-passionate-red", images: "https://outerbloom.com/cdn/shop/files/Enchanted-dome-red-new-box_3_2_26c081bf-f2a5-42b4-9ce4-3c0304c498e5_thumb.jpg?v=1712639476", price: "Rp 1.435.000" },{ label: "endearing ruby", category: "Produk", url: "/products/endearing-ruby", images: "https://outerbloom.com/cdn/shop/products/OUTSTF1003_Endearing-Ruby_thumb.jpg?v=1631296611", price: "Rp 585.000" },{ label: "gentle soul jabodetabek", category: "Produk", url: "/products/gentle-soul-jabodetabek", images: "https://outerbloom.com/cdn/shop/files/JKTDUK1030_Gentle-Soul-Jabodetabek-WM_thumb.jpg?v=1703239894", price: "Rp 435.000" },{ label: "belleza jabodetabek", category: "Produk", url: "/products/belleza", images: "https://outerbloom.com/cdn/shop/files/Belleza-Jabodetabek-LED_aecb756a-0737-45cc-8bfb-008515ca0a37_thumb.gif?v=1759229680", price: "Rp 435.000" },{ label: "majestic pink roses with baby breath bouquet", category: "Produk", url: "/products/majestic-pink-roses-with-baby-breath-bouquet", images: "https://outerbloom.com/cdn/shop/products/ef4a3be9-c938-4c70-98ac-4873e7da82bf_90820a66-923a-463d-a464-81bcbe6e6644_thumb.jpg?v=1581413440", price: "Rp 485.000" },{ label: "sentiments jabodetabek", category: "Produk", url: "/products/sentiments", images: "https://outerbloom.com/cdn/shop/files/Sentiments-Jabodetabek-WM_thumb.jpg?v=1759224099", price: "Rp 485.000" },{ label: "rose poetry bouquet", category: "Produk", url: "/products/rose-poetry-bouquet", images: "https://outerbloom.com/cdn/shop/products/Rose-Poetry-Bouquet-20-tangkai_thumb.jpg?v=1675151039", price: "Rp 385.000" },{ label: "genuine feeling", category: "Produk", url: "/products/genuine-feeling", images: "https://outerbloom.com/cdn/shop/products/OUTSTF1004Genuine-Feeling_981ade89-af27-433e-81aa-8d76175a0e4d_thumb.jpg?v=1612352389", price: "Rp 585.000" },{ label: "eternal fidelity jabodetabek", category: "Produk", url: "/products/eternal-fidelity-jabodetabek", images: "https://outerbloom.com/cdn/shop/products/0b89df45-dcc1-4876-820e-61b2243a1945_964e211d-2972-46c9-8593-976210929089_thumb.jpg?v=1590491458", price: "Rp 435.000" },{ label: "rosabelle hand bouquet", category: "Produk", url: "/products/rosabelle-hand-bouquet", images: "https://outerbloom.com/cdn/shop/files/OBVBUN1429_Rosabelle-Hand-Bouquet-Medium_thumb.jpg?v=1756971848", price: "Rp 385.000" },{ label: "dreaming in pink luxury in vase", category: "Produk", url: "/products/dreaming-in-pink-luxury-in-vase", images: "https://outerbloom.com/cdn/shop/products/OBVBUN1051_Dreaming-In-Pink-Luxury-In-Vase_3_thumb.jpg?v=1614594504", price: "Rp 735.000" },{ label: "excito jabodetabek", category: "Produk", url: "/products/excito", images: "https://outerbloom.com/cdn/shop/files/JKTCON1010_Excito-Jabodetabek-2023_thumb.gif?v=1717494677", price: "Rp 485.000" },{ label: "golden toast jabodetabek", category: "Produk", url: "/products/golden-toast", images: "https://outerbloom.com/cdn/shop/products/LED-GoldenToast_thumb.gif?v=1579249585", price: "Rp 485.000" },{ label: "spirit of eminance jabodetabek", category: "Produk", url: "/products/spirit-of-eminance-jabodetabek", images: "https://outerbloom.com/cdn/shop/files/JKTCON1026_Spirit-of-Eminance-Jabodetabek-newest-WM_thumb.jpg?v=1693297526", price: "Rp 485.000" },{ label: "white elysian bloom box", category: "Produk", url: "/products/white-elysian-bloom-box", images: "https://outerbloom.com/cdn/shop/files/OBVBUN1704_White-Elysian-Bloom-Box_thumb.jpg?v=1757328247", price: "Rp 685.000" },{ label: "charming forevermore jabodetabek", category: "Produk", url: "/products/charming-forevermore-jabodetabek", images: "https://outerbloom.com/cdn/shop/files/JKTWED1036_Charming-Forevermore-Jabodetabek-WM_thumb.jpg?v=1703239534", price: "Rp 485.000" },{ label: "moment of glory jabodetabek", category: "Produk", url: "/products/moment-of-glory-jabodetabek", images: "https://outerbloom.com/cdn/shop/products/JKTCON1051_Moment-of-Glory-Jabodetabek_2_thumb.jpg?v=1596614663", price: "Rp 385.000" },{ label: "sweet romance jabodetabek", category: "Produk", url: "/products/sweet-romance", images: "https://outerbloom.com/cdn/shop/products/JKTWED1005_Sweet-Romance-Jabodetabek_thumb.gif?v=1677134791", price: "Rp 635.000" }
7815,{ label: "with love bouquet", category: "Produk", url: "/products/with-love-bouquet", images: "https://outerbloom.com/cdn/shop/products/c5d6fed6-8ada-4c38-ae0f-36d395aacb19_613f78f0-d52c-443b-9e13-63a151cd8ec5_thumb.jpg?v=1590748429", price: "Rp 535.000" },{ label: "sunflower yellow and with white daisies in vase", category: "Produk", url: "/products/sunflower-yellow-roses-with-white-and-yellow-daisies-in-a-glass-vase", images: "https://outerbloom.com/cdn/shop/files/OBVBUN1132_Sunflower-Yellow-And-With-White-Daisies-in-Vase_thumb.jpg?v=1757930628", price: "Rp 435.000" },{ label: "everlasting peace jabodetabek", category: "Produk", url: "/products/everlasting-peace-jabodetabek", images: "https://outerbloom.com/cdn/shop/products/JKTDUK1034_Everlasting-Peace-Jabodetabek_2_thumb.jpg?v=1596614613", price: "Rp 385.000" },{ label: "astoria passionate red", category: "Produk", url: "/products/astoria-passionate-red", images: "https://outerbloom.com/cdn/shop/products/Astoria-passionate-red_b59b26f6-c39d-46d3-adcb-262c675bb16f_thumb.jpg?v=1633502742", price: "Rp 685.000" },{ label: "classic purple orchid majesty in vase", category: "Produk", url: "/products/classic-purple-orchid-majesty-in-vase", images: "https://outerbloom.com/cdn/shop/products/Classic-Purple-Orchid-Majesty-in-Vase---White---4-Tangkai_40a5e337-283f-40f5-911c-5df9b506b9da_thumb.jpg?v=1639981404", price: "Rp 435.000" },{ label: "passion rouge bloom box", category: "Produk", url: "/products/passion-rouge-bloom-box", images: "https://outerbloom.com/cdn/shop/files/OBVBUN1725_Passion-Rouge-Bloom-Box_thumb.jpg?v=1756972410", price: "Rp 385.000" },{ label: "classic white orchid majesty in vase", category: "Produk", url: "/products/classic-white-orchid-majesty-in-vase", images: "https://outerbloom.com/cdn/shop/products/Classic-white-Orchid-Majesty-in-Vase---white---4-Tangkai_thumb.jpg?v=1644205542", price: "Rp 435.000" },{ label: "majestic blue romance bouquet", category: "Produk", url: "/products/majestic-blue-romance-bouquet", images: "https://outerbloom.com/cdn/shop/files/OBVBUN1357_Majestic-Blue-Romance-Bouquet_99b8ba96-0e67-4eef-a00e-b2daedcddb6a_thumb.jpg?v=1757390540", price: "Rp 435.000" },{ label: "sincerely", category: "Produk", url: "/products/sincerely", images: "https://outerbloom.com/cdn/shop/files/Sincerely-WM_thumb.jpg?v=1688354677", price: "Rp 585.000" },{ label: "happy days jabodetabek", category: "Produk", url: "/products/happy-days-jabodetabek", images: "https://outerbloom.com/cdn/shop/files/Happy-Days-Jabodetabek_WM_thumb.jpg?v=1759224026", price: "Rp 485.000" },{ label: "solemn comfort jabodetabek", category: "Produk", url: "/products/solemn-comfort-jabodetabek", images: "https://outerbloom.com/cdn/shop/products/7fe123d8-6bb2-4c0d-bd4c-f8c3032823f2_6b9c33b6-4a23-41cb-8709-fc9223fe096a_thumb.png?v=1590662086", price: "Rp 635.000" },{ label: "big dreams jabodetabek", category: "Produk", url: "/products/big-dreams", images: "https://outerbloom.com/cdn/shop/files/JKTCON1002_Big-Dreams-Jabodetabek_thumb.gif?v=1717494603", price: "Rp 485.000" },{ label: "signature ramadan deluxe hampers", category: "Produk", url: "/products/outerbloom-signature-ramadhan-deluxe-hampers", images: "https://outerbloom.com/cdn/shop/files/Signature-Deluxe-Hampers_thumb.jpg?v=1739242254", price: "Rp 985.000" },{ label: "amorous amos jabodetabek", category: "Produk", url: "/products/amorous-amos-jabodetabek", images: "https://outerbloom.com/cdn/shop/files/Amorous-Amos-Jabodetabek-WM_thumb.jpg?v=1759224071", price: "Rp 485.000" },{ label: "pink darling bouquet", category: "Produk", url: "/products/pink-darling-bouquet", images: "https://outerbloom.com/cdn/shop/products/Pink-Darling-Bouquet_thumb.jpg?v=1669969725", price: "Rp 485.000" },{ label: "black pink bouquet", category: "Produk", url: "/products/black-pink-bouquet", images: "https://outerbloom.com/cdn/shop/files/Black-Pink-Bouquet_thumb.jpg?v=1756434063", price: "Rp 485.000" },{ label: "profound happiness jabodetabek", category: "Produk", url: "/products/profound-happiness-jabodetabek", images: "https://outerbloom.com/cdn/shop/files/profound-happiness_thumb.gif?v=1689940309", price: "Rp 635.000" },{ label: "healing trove", category: "Produk", url: "/products/healing-trove", images: "https://outerbloom.com/cdn/shop/products/2ef5379f-27a6-41ba-85c7-c65cf3ec3f08_thumb.jpg?v=1571471845", price: "Rp 485.000" }
7815,{ label: "sincerity solace", category: "Produk", url: "/products/sincerity-solace", images: "https://outerbloom.com/cdn/shop/products/OUTSTF1038_sincerity-solace-WM_thumb.jpg?v=1612352477", price: "Rp 485.000" },{ label: "bellarosa bloom box", category: "Produk", url: "/products/bellarosa-bloom-box", images: "https://outerbloom.com/cdn/shop/files/OBVBUN1783_Bellarosa-Bloom-Box_c0000424-411c-48ed-abf4-0de7d925ea53_thumb.jpg?v=1757316757", price: "Rp 785.000" } 7816 ]; 7817 7818 7819 $( ".header-input-search" ).catcomplete({ 7820 appendTo: ".searchResult",source: function(request, response) { 7821 var results = $.ui.autocomplete.filter(data, request.term); 7822 var predicate = function () { 7823 var counter = { Collection: 0, Produk: 0 }; 7824 var fn = function(item) {counter[item.category] += 1;return (counter[item.category] <= 5);} 7825 return fn 7826 }(); 7827 response(results.filter(predicate)); 7828 }, 7829 minLength:1, 7830 //results are clickable 7831 select: function( event, ui ) {window.location = ui.item.url;} 7832 }); 7833 $( ".header-input-search2" ).catcomplete({ 7834 appendTo: ".searchResult2", 7835 source: function(request, response) { 7836 var results = $.ui.autocomplete.filter(data, request.term); 7837 var predicate = function () { 7838 var counter = { Collection: 0, Produk: 0 }; 7839 var fn = function(item) { 7840 counter[item.category] += 1; 7841 return (counter[item.category] <= 5); 7842 } 7843 return fn 7844 }(); 7845 response(results.filter(predicate)); 7846 }, 7847 minLength:1, 7848 //results are clickable 7849 select: function( event, ui ) { 7850 window.location = ui.item.url; 7851 } 7852 }); 7853 }); 7854 </script>
7854 7855 7856
7856<script src="https://outerbloom.com/cdn/shop/t/138/assets/vendors.js?v=6349622868601634021752652419" defer></script>
7856 7857
7857<script src="https://outerbloom.com/cdn/shop/t/138/assets/app.js?v=136050180318808583701752652452" defer></script>
7857 7858 7859
7859<script> 7860 ( function() { 7861 var youtube = document.querySelectorAll( ".youtube" ); 7862 for (var i = 0; i < youtube.length; i++) { 7863 var source = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault_1x.jpg"; 7864 var datasource = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault.jpg"; 7865 var image = new Image(); 7866 image.src = source; 7867 image.setAttribute("data-src", datasource); 7868 image.classList.add("swiper-lazy"); 7869 image.addEventListener( "load", function() { 7870 youtube[ i ].appendChild( image ); 7871 }( i ) ); 7872 youtube[i].addEventListener( "click", function() { 7873 var iframe = document.createElement( "iframe" ); 7874 iframe.setAttribute( "width", "480" ); 7875 iframe.setAttribute( "height", "480" ); 7876 iframe.setAttribute( "frameborder", "0" ); 7877 iframe.setAttribute( "allowfullscreen", "" ); 7878 iframe.setAttribute( "src", "https://www.youtube.com/embed/"+ this.dataset.embed +"?rel=0&showinfo=0&autoplay=1" ); 7879 this.innerHTML = ""; 7880 this.appendChild( iframe ); 7881 } ); 7882 }; 7883 7884 } )(); 7885 7886 /* Lazy Load */ 7887 const mainLazyLoad = new LazyLoad({threshold:400}); 7888 $(document).ready(function(){ 7889 7890 $("selectxxx").addClass("needsclick"); 7891 FastClick.attach(document.body); 7892 7893 var $customSelects = $('.select-search'); 7894 $customSelects.select2({ 7895 templateResult: function(result, container) { 7896 if (!result.id) { 7897 return result.text; 7898 } 7899 container.className += ' needsclick'; 7900 return result.text; 7901 } 7902 }); 7903 $customSelects.each(function(index, el){$(el).data('select2').$container.find('*').addClass('needsclick');}); 7904 $(document).on('select2:open', () => { 7905 document.querySelector('.select2-search__field').focus(); 7906 }); 7907 7908 7909 $(".overlay").click(function(){ 7910 $(".js-drawer-close").click(); 7911 }); 7912 $(".site-nav--mobile .js-drawer-open-left, #NavDrawer .icon-close, .overlay-nav").click(function(){ 7913 $("html").toggleClass("nav_open"); 7914 }); 7915 7916 $('.swatch-element label').on('click', function(){ 7917 var srcImg = $(this).data('src'); 7918 $('#thumb-image-product .product-single__thumbnail').each(function(){ 7919 if ($(this).attr("href") == srcImg) { 7920 $(this).trigger('click'); 7921 } 7922 }); 7923 }); 7924 var defaultValue = $(".swatch input:checked").val() 7925 7926 $('#purchaseProduct .swatch [type=radio]').change(function() { 7927 var optionIndex = $(this).closest('.swatch').attr('data-option-index'); 7928 var optionValue = $(this).val(); 7929 console.log(optionIndex, optionValue) 7930 var value = parseInt(optionValue.split(' ')[0]) 7931 $(this) 7932 .closest('#purchaseProduct') 7933 .find('.single-option-selector') 7934 .eq(optionIndex) 7935 .val(optionValue) 7936 .trigger('change'); 7937 7938 }); 7939 7940 }); 7941 $(document).ready(function(){ 7942 $(".nav-search a").click(function(e){ 7943 e.preventDefault(); 7944 $(".icon-navsearch").toggle(); 7945 $(".icon-navclose").toggle(); 7946 $(".site-nav__item > .site-nav__link").toggle(); 7947 $(".open-search").toggle(); 7948 $(".open-search input").focus(); 7949 }); 7950 $(".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'>"); 7951 if ($(window).width() < 768) { 7952 $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_75x.png?v=82732945490105366961752652419' alt='Icon Valentine'>"); 7953 $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_45x.png?v=101884295148001743851752652418' alt='Icon CNY'>"); 7954 $(".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'>"); 7955 } else { 7956 $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_60x.png?v=82732945490105366961752652419' alt='Icon Valentine'>"); 7957 $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_60x.png?v=101884295148001743851752652418' alt='Icon CNY'>"); 7958 $(".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'>"); 7959 } 7960 $(".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'>"); 7961 $(".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'>"); 7962 }); 7963 </script>
7963 7964 7965 7966 7967 7968 7969 7970 7971
7971<script type="text/javascript"> 7972 var wishlistpage = 0; 7973 7974 var quickShop_money_format="<span class='money'>"+"Rp {{amount_no_decimals}}"+"</span>"; 7975 </script>
7975 7976 7977 <!-- Remove duplicate wishlist.js reference --> 7978 <style> 7979 .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)}} 7980 </style> 7981 7982 <div class="modal fade" id="modalwishlist0" tabindex="-1" role="dialog"> 7983 <div class="modal-dialog" role="document"> 7984 <div class="modal-content"> 7985 <div class="modal-body">Your Wishlist is empty!</div> 7986 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> 7987 </div> 7988 </div> 7989 </div> 7990 7991 <div class="wishlist-model"> 7992 <div class="modal fade" id="modalwishlist1" tabindex="-1" role="dialog" aria-hidden="true"> 7993 <div class="modal-dialog white-modal"> 7994 <div class="modal-content"> 7995 <div class="modal-header"> 7996 <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 7997 <svg class="icon icon-close" version="1.1" xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="32" height="32" viewBox="0 0 32 32"> 7998 <title>icon-close</title> 7999 <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> 8000 </svg> 8001 </button> 8002 </div> 8003 <div class="modal-body"> 8004 <div class="wishlist-left"> 8005 <div class="wishlist-note">
8006 <span class="cirle"><svg version="1.1" xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="32" height="32" viewBox="0 0 32 32"> 8007 <title>icon-check</title> 8008 <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> 8009 </svg></span> 8010 Product added to <a href="https://snooglestore.com/">Wishlist</a> 8011 </div> 8012 <div class="wishlist-product"> 8013 <div class="product-left"> 8014 <div class="wishlist-image"></div> 8015 </div> 8016 <div class="product-right"> 8017 <div class="wishlist-name"></div> 8018 <div class="wishlist-price"></div> 8019 </div> 8020 </div> 8021 </div> 8022 <div class="wishlist-right"> 8023 <div class="wishlist-cart"> 8024 <form action="/cart/add" method="post" class="variants-form variants" id="AddToCartForm" enctype="multipart/form-data"> 8025 <div class="others-bottom"> 8026 <a class="btn btn-quick-shop" href="https://snooglestore.com/">View Wishlist</a> 8027 <button type="submit" name="add" id="AddToCart" class="btn btn-cta"> 8028 <span id="AddToCartText" class="">Beli Sekarang</span> 8029 </button> 8030 </div> 8031 <div id="wishlist-variants-container" class="variants-wrapper"></div> 8032 <div class="quantity-content"> 8033 <label>QTY</label> 8034 <input type="number" size="5" class="" name="quantity" value="1" /> 8035 </div> 8036 </form> 8037 </div> 8038 </div> 8039 </div> 8040 </div> 8041 </div> 8042 </div> 8043 </div> 8044 8045 8046 <style> 8047 .stamped-badge[data-rating="0.0"]{display: none !Important;} 8048 8049 div[data-load-type="continue"] ul.stamped-pagination li.next a, div[data-widget-load-type="continue"] ul.stamped-pagination li.next a { 8050 border-radius: 0px; 8051 } 8052 .stamped-review-body { 8053 padding-left: 0px !important; 8054 } 8055 #product-reviews .stamped-header:after { 8056 display:none !Important; 8057 } 8058 #stamped-main-widget .stamped-container, .stamped-badge-caption,#stamped-reviews-widget { 8059 font-family:inherit !important; 8060 } 8061 </style> 8062 8063 8064 8065 <div id='stamped-rewards-init' class='stamped-rewards-init' 8066 data-key-public='' 8067 8068 ></div> 8069 8070
8070<script src="https://outerbloom.com/cdn/shop/t/138/assets/variant-sku-handler.js?v=91239063692820757781752652418" defer></script>
8070 8071 <!-- Remove duplicate jQuery reference and load wishlist script properly --> 8072
8072<script src="https://outerbloom.com/cdn/shop/t/138/assets/wishlist-fixed.js?v=35991423018869066281754360012" defer></script>
8072 8073 8074
8074<script> 8075 function myInit(){ StampedFn.init({ apiKey: 'pubkey-hCS8DHE9QbBHhHN89WXFkuJ0Y3422D', sId: '23462' }); } 8076 </script>
8076 8077
8077<script async onload="myInit()" type="text/javascript" src="https://cdn1.stamped.io/files/widget.min.js"></script>
8077<style> 8078 .jss59 { 8079 background-color: rgba(0, 0, 0, 0.6); 8080 } 8081 .MuiBackdrop-root { 8082 top: 0; 8083 left: 0; 8084 right: 0; 8085 bottom: 0; 8086 display: flex; 8087 z-index: -1; 8088 position: fixed; 8089 align-items: center; 8090 justify-content: center; 8091 background-color: rgba(0, 0, 0, 0.5); 8092 -webkit-tap-highlight-color: transparent; 8093 } 8094 .MuiDialog-scrollPaper { 8095 display: flex; 8096 align-items: center; 8097 justify-content: center; 8098 } 8099 .MuiDialog-container { 8100 height: 100%; 8101 outline: 0; 8102 } 8103 .MuiPaper-elevation24 { 8104 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); 8105 } 8106 .MuiDialog-paper { 8107 margin: 32px; 8108 position: relative; 8109 overflow-y: auto; 8110 } 8111 .MuiDialog-paperScrollPaper { 8112 display: flex; 8113 max-height: calc(100% - 64px); 8114 flex-direction: column; 8115 } 8116 .MuiDialog-paperWidthSm { 8117 max-width: 600px; 8118 } 8119 #location-lock-dialog { 8120 top: 20%; 8121 left: 0; 8122 right: 0; 8123 width: 30%; 8124 margin: 0px auto; 8125 display: block; 8126 padding: 30px; 8127 z-index: 99999; 8128 position: fixed; 8129 font-size: 14px; 8130 background: rgb(0, 0, 0); 8131 box-shadow: rgba(11, 11, 12, 0.2) 2px 4px 5px 0px; 8132 text-align: center; 8133 font-family: Roboto, Arial, sans-serif; 8134 line-height: 1; 8135 border-radius: 8px; 8136 -webkit-font-smoothing: subpixel-antialiased; 8137 } 8138 .MuiButtonBase-root { 8139 color: inherit; 8140 border: 0; 8141 cursor: pointer; 8142 margin: 0; 8143 display: inline-flex; 8144 outline: 0; 8145 padding: 0; 8146 position: relative; 8147 align-items: center; 8148 user-select: none; 8149 border-radius: 0; 8150 vertical-align: middle; 8151 -moz-appearance: none; 8152 justify-content: center; 8153 text-decoration: none; 8154 background-color: transparent; 8155 -webkit-appearance: none; 8156 -webkit-tap-highlight-color: transparent; 8157 } 8158 .MuiIconButton-root { 8159 flex: 0 0 auto; 8160 color: rgba(0, 0, 0, 0.54); 8161 padding: 12px; 8162 overflow: visible; 8163 font-size: 1.5rem; 8164 text-align: center; 8165 transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 8166 border-radius: 50%; 8167 } 8168 .MuiIconButton-label { 8169 width: 100%; 8170 display: flex; 8171 align-items: inherit; 8172 justify-content: inherit; 8173 } 8174 .MuiSvgIcon-root { 8175 fill: currentColor; 8176 width: 1em; 8177 height: 1em; 8178 display: inline-block; 8179 font-size: 1.5rem; 8180 transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 8181 flex-shrink: 0; 8182 user-select: none; 8183 } 8184 .MuiTouchRipple-root { 8185 top: 0; 8186 left: 0; 8187 right: 0; 8188 bottom: 0; 8189 z-index: 0; 8190 overflow: hidden; 8191 position: absolute; 8192 border-radius: inherit; 8193 pointer-events: none; 8194 } 8195 .jss36 { 8196 color: #222222; 8197 font-size: 24px; 8198 font-family: Roboto, Arial, sans-serif; 8199 font-weight: 500; 8200 } 8201 .jss37 { 8202 color: #555555; 8203 padding: 10px 0px 0px; 8204 font-size: 14px; 8205 } 8206 .MuiFormGroup-root { 8207 display: flex; 8208 flex-wrap: wrap; 8209 flex-direction: column; 8210 } 8211 .MuiFormGroup-row { 8212 flex-direction: row; 8213 } 8214 .jss63 { 8215 width: 85%; 8216 margin: 15px auto; 8217 display: flex; 8218 padding: 11px 0px 0px; 8219 justify-content: space-evenly; 8220 } 8221 .MuiFormControlLabel-root { 8222 cursor: pointer; 8223 display: inline-flex; 8224 align-items: center; 8225 margin-left: -11px; 8226 margin-right: 16px; 8227 vertical-align: middle; 8228 -webkit-tap-highlight-color: transparent; 8229 } 8230 .jss70 { 8231 margin: 0; 8232 } 8233 .MuiButtonBase-root { 8234 color: inherit; 8235 border: 0; 8236 cursor: pointer; 8237 margin: 0; 8238 display: inline-flex; 8239 outline: 0; 8240 padding: 0; 8241 position: relative; 8242 align-items: center; 8243 user-select: none; 8244 border-radius: 0; 8245 vertical-align: middle; 8246 -moz-appearance: none; 8247 justify-content: center; 8248 text-decoration: none; 8249 background-color: transparent; 8250 -webkit-appearance: none; 8251 -webkit-tap-highlight-color: transparent; 8252 } 8253 .MuiIconButton-root { 8254 flex: 0 0 auto; 8255 color: rgba(0, 0, 0, 0.54); 8256 padding: 12px; 8257 overflow: visible; 8258 font-size: 1.5rem; 8259 text-align: center; 8260 transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 8261 border-radius: 50%; 8262 } 8263 .MuiIconButton-colorSecondary { 8264 color: #f50057; 8265 } 8266 .jss71 { 8267 padding: 9px; 8268 } 8269 .MuiRadio-root { 8270 color: rgba(0, 0, 0, 0.54); 8271 } 8272 .jss64 { 8273 padding: 2px; 8274 } 8275 .MuiRadio-colorSecondary.Mui-checked { 8276 color: #f50057; 8277 } 8278 .MuiIconButton-label { 8279 width: 100%; 8280 display: flex; 8281 align-items: inherit; 8282 justify-content: inherit; 8283 } 8284 .MuiTypography-root { 8285 margin: 0; 8286 } 8287 .MuiTypography-body1 { 8288 font-size: 18px; 8289 font-family: Roboto,sans-serif; 8290 font-weight: 400; 8291 line-height: 1.5; 8292 } 8293 .location-popup_area-block__sp9Ws { 8294 display: -moz-box; 8295 display: flex; 8296 -moz-box-orient: vertical; 8297 -moz-box-direction: normal; 8298 flex-direction: column; 8299 -moz-box-pack: center; 8300 justify-content: center; 8301 position: relative; 8302 margin: 10px 10% 0;
8303 } 8304 .location-popup_pin-search-box__3l5mJ { 8305 width: 100%; 8306 display: -moz-box; 8307 display: flex; 8308 -moz-box-align: center; 8309 align-items: center; 8310 } 8311 .location-popup_place-icon-city__1XAX5, .location-popup_place-icon__jSG0Q { 8312 position: absolute; 8313 z-index: 999; 8314 } 8315 .location-popup_place-icon__jSG0Q { 8316 color: #ffffff; 8317 padding-left: 8px; 8318 } 8319 .location-popup_place-icon__jSG0Q svg { 8320 width: 18px; 8321 height: 18px; 8322 } 8323 .location-popup_cancel-icon__FHujU { 8324 color: #fff; 8325 right: 10px; 8326 width: 16px; 8327 cursor: pointer; 8328 height: 16px; 8329 display: none; 8330 padding: 5px; 8331 position: absolute; 8332 background: #999; 8333 text-align: center; 8334 border-radius: 50%; 8335 } 8336 .location-popup_pin-search-box__3l5mJ>div>select { 8337 text-transform: capitalize; 8338 border: 1px solid #ffffff; 8339 color: #ffffff; 8340 width: 100%; 8341 margin: 0; 8342 display: -moz-box; 8343 display: flex; 8344 padding: 0 30px; 8345 -webkit-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8346 -moz-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8347 animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8348 font-size: 16px; 8349 border-radius: 4px; 8350 height: 44px; 8351 moz-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite; 8352 webkit-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite; 8353 } 8354 .MuiButtonBase-root { 8355 color: inherit; 8356 border: 0; 8357 cursor: pointer; 8358 margin: 0; 8359 display: inline-flex; 8360 outline: 0; 8361 padding: 0; 8362 position: relative; 8363 align-items: center; 8364 user-select: none; 8365 border-radius: 0; 8366 vertical-align: middle; 8367 -moz-appearance: none; 8368 justify-content: center; 8369 text-decoration: none; 8370 background-color: transparent; 8371 -webkit-appearance: none; 8372 -webkit-tap-highlight-color: transparent; 8373 } 8374 .MuiButton-root { 8375 color: rgba(0, 0, 0, 0.87); 8376 padding: 6px 16px; 8377 font-size: 0.875rem; 8378 min-width: 64px; 8379 box-sizing: border-box; 8380 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; 8381 font-family: Roboto,sans-serif; 8382 font-weight: 500; 8383 line-height: 1.75; 8384 border-radius: 4px; 8385 text-transform: uppercase; 8386 } 8387 .MuiButton-contained { 8388 color: rgba(0, 0, 0, 0.87); 8389 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); 8390 background-color: #e0e0e0; 8391 } 8392 .MuiButtonBase-root.Mui-disabled { 8393 cursor: default; 8394 pointer-events: none; 8395 } 8396 .MuiButton-label { 8397 width: 100%; 8398 display: inherit; 8399 align-items: inherit; 8400 justify-content: inherit; 8401 } 8402 .cartButton_login_content__2j1f7 { 8403 display: -moz-box; 8404 display: flex; 8405 text-align: center; 8406 z-index: 9; 8407 font-size: 18px; 8408 font-weight: 500; 8409 color: #fff; 8410 } 8411 8412 .jss35 { 8413 top: 5px; 8414 right: 5px; 8415 padding: 4px; 8416 position: absolute; 8417 border-radius: 50%; 8418 } 8419 .jss67 { 8420 cursor: pointer; 8421 font-size: 15px; 8422 line-height: 1.3; 8423 padding-left: 5px; 8424 } 8425 .jss69 { 8426 color: #222222; 8427 } 8428 .jss80 { 8429 color: #fff; 8430 width: 100%; 8431 height: 52px; 8432 padding: 11px 16px; 8433 font-size: 18px; 8434 min-width: 88px; 8435 min-height: 36px; 8436 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; 8437 font-weight: 500; 8438 line-weight: 1em; 8439 border-radius: 4px; 8440 text-transform: uppercase; 8441 background-color: #E87325; 8442 } 8443 @media (min-width: 991px){ 8444 .cartButton_login_content__2j1f7 { 8445 font-weight: 500; 8446 } 8447 } 8448 8449 @media (max-width: 992px) { 8450 #location-lock-dialog { 8451 width: 100%; 8452 top: auto; 8453 bottom: 0; 8454 padding-left: 0; 8455 padding-right: 0; 8456 } 8457 .MuiFormGroup-row { 8458 display: block 8459 } 8460 .MuiIconButton-label input { 8461 margin: 0; 8462 } 8463 } 8464 </style> 8465 <div role="presentation" class="MuiDialog-root jss34" style="display: none;position: fixed; z-index: 9999; inset: 0px;"> 8466 <div class="MuiBackdrop-root" aria-hidden="true" style="opacity: 1; transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"></div> 8467 <div tabindex="0" data-test="sentinelStart"></div> 8468 <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;"> 8469 <div class="MuiPaper-root MuiDialog-paper MuiDialog-paperScrollPaper MuiDialog-paperWidthSm MuiPaper-elevation24 MuiPaper-rounded" role="dialog"> 8470 <div class="jss31 undefined" id="location-lock-dialog"> 8471 <button id="close-popup-delivery" class="MuiButtonBase-root MuiIconButton-root jss35" tabindex="0" type="button" aria-label="close">
8472 <span class="MuiIconButton-label"> 8473 <svg class="MuiSvgIcon-root" focusable="false" viewBox="0 0 24 24" aria-hidden="true"> 8474 <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> 8475 </svg> 8476 </span> 8477 <span class="MuiTouchRipple-root"></span> 8478 </button> 8479 <div> 8480 <div class="jss36">Select Delivery Location</div> 8481 <div class="jss37">Select a delivery location to see product availability</div> 8482 </div> 8483 <div class="MuiFormGroup-root jss63 MuiFormGroup-row" role="radiogroup"> 8484 <label for="jabodetabek" class="MuiFormControlLabel-root jss45"> 8485 <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 jss47 Mui-checked MuiIconButton-colorSecondary" aria-disabled="false"> 8486 <span class="MuiIconButton-label"> 8487 <input id="jabodetabek" class="jss49" type="radio" value="Jabodetabek" checked="" name="location"> 8488 <span class="jss41"></span> 8489 </span> 8490 <span class="MuiTouchRipple-root"></span> 8491 </span> 8492 <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1"> 8493 <span class="jss67 jss69">Jabodetabek</span> 8494 </span> 8495 </label> 8496 <label for="non-jabodetabek" class="MuiFormControlLabel-root jss45"> 8497 <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 MuiIconButton-colorSecondary" aria-disabled="false"> 8498 <span class="MuiIconButton-label"> 8499 <input id="non-jabodetabek" class="jss49" type="radio" value="Outside Jabodetabek" name="location"> 8500 <span class="jss40"></span> 8501 </span> 8502 <span class="MuiTouchRipple-root"></span> 8503 </span> 8504 <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1"> 8505 <span class="jss67 jss68">Outside Jabodetabek</span> 8506 </span> 8507 </label> 8508 </div> 8509 <div> 8510 <div class="MuiGrid-root location-popup_area-block__sp9Ws"> 8511 <div class="MuiGrid-root location-popup_pin-search-box__3l5mJ false"> 8512 <div class="MuiGrid-root location-popup_place-icon__jSG0Q"> 8513 <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> 8514 </div> 8515 <div class="MuiGrid-root location-popup_cancel-icon__FHujU false"> 8516 <i class="material-icons location-popup_clear-pin__s1dRc">close</i> 8517 </div> 8518 <div style="width: 100%;"> 8519 <select id="choose-location" class="form-control"> 8520 <option value="">Choose Location</option> 8521 <option value="jakarta">Jakarta</option> 8522 <option value="bogor">Bogor</option> 8523 <option value="depok">Depok</option> 8524 <option value="tangerang">Tangerang</option> 8525 <option value="bekasi">Bekasi</option> 8526 </select> 8527 </div> 8528 </div> 8529 </div> 8530 </div> 8531 <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=""> 8532 <span class="MuiButton-label">
8533 <span class=""></span> 8534 <span id="location-lock-continue-btn" class="cartButton_login_content__2j1f7" style="font-weight: 500;" data-content="">Continue Shopping</span> 8535 </span> 8536 </button> 8537 </div> 8538 </div> 8539 </div> 8540 <div tabindex="0" data-test="sentinelEnd"></div> 8541 </div> 8542 8543
8543<script> 8544 const jabodetabek = [ 8545 { 8546 "code": "jakarta", 8547 "city": "jakarta", 8548 "zip": [] 8549 }, 8550 { 8551 "code": "bogor", 8552 "city": "bogor", 8553 "zip": [] 8554 }, 8555 { 8556 "code": "depok", 8557 "city": "depok", 8558 "zip": [] 8559 }, 8560 { 8561 "code": "tangerang", 8562 "city": "tangerang", 8563 "zip": [] 8564 }, 8565 { 8566 "code": "bekasi", 8567 "city": "bekasi", 8568 "zip": [] 8569 } 8570 ] 8571 let cityNonJabodetabek = [ 8572 8573 "pengiriman_aceh", 8574 "pengiriman_ambon", 8575 "pengiriman_atambua", 8576 "pengiriman_badung", 8577 "pengiriman_bali", 8578 "pengiriman_balikpapan", 8579 "pengiriman_bandar lampung", 8580 "pengiriman_bandung", 8581 "pengiriman_bandung barat", 8582 "pengiriman_banjarmasin", 8583 "pengiriman_banyumas", 8584 8585 8586 8587 8588 8589 "pengiriman_banyuwangi", 8590 8591 8592 8593 8594 8595 "pengiriman_batam", 8596 8597 8598 8599 8600 8601 8602 8603 8604 8605 "pengiriman_biak", 8606 8607 8608 8609 8610 8611 "pengiriman_binjai", 8612 8613 8614 8615 8616 8617 "pengiriman_blitar", 8618 8619 8620 8621 8622 8623 "pengiriman_blora", 8624 8625 8626 8627 8628 8629 8630 8631 8632 8633 "pengiriman_bojonegoro", 8634 8635 8636 8637 8638 8639 "pengiriman_boyolali", 8640 8641 8642 8643 8644 8645 "pengiriman_bukittinggi", 8646 8647 8648 8649 8650 8651 "pengiriman_buleleng", 8652 8653 8654 8655 8656 8657 "pengiriman_ciamis", 8658 8659 8660 8661 8662 8663 "pengiriman_cianjur", 8664 8665 8666 8667 8668 8669 "pengiriman_cibinong", 8670 8671 8672 8673 8674 8675 "pengiriman_cikarang", 8676 8677 8678 8679 8680 8681 "pengiriman_cikupa", 8682 8683 8684 8685 8686 8687 "pengiriman_cilacap", 8688 8689 8690 8691 8692 8693 "pengiriman_cileunyi", 8694 8695 8696 8697 8698 8699 "pengiriman_cimahi", 8700 8701 8702 8703 8704 8705 "pengiriman_cirebon", 8706 8707 8708 8709 8710 8711 "pengiriman_ciwidey", 8712 8713 8714 8715 8716 8717 "pengiriman_deli serdang", 8718 8719 8720 8721 8722 8723 "pengiriman_demak", 8724 8725 8726 8727 8728 8729 "pengiriman_denpasar", 8730 8731 8732 8733 8734 8735 8736 8737 8738 8739 "pengiriman_garut", 8740 8741 8742 8743 8744 8745 "pengiriman_gianyar", 8746 8747 8748 8749 8750 8751 "pengiriman_gresik", 8752 8753 8754 8755 8756 8757 "pengiriman_gunung kidul", 8758 8759 8760 8761 8762 8763 8764 8765 8766 8767 "pengiriman_jambi", 8768 8769 8770 8771 8772 8773 "pengiriman_jayapura", 8774 8775 8776 8777 8778 8779 "pengiriman_jember", 8780 8781 8782 8783 8784 8785 "pengiriman_jepara", 8786 8787 8788 8789 8790 8791 "pengiriman_jombang", 8792 8793 8794 8795 8796 8797 "pengiriman_karanganyar", 8798 8799 8800 8801 8802 8803 "pengiriman_karawang", 8804 8805 8806 8807 8808 8809 "pengiriman_karo", 8810 8811 8812 8813 8814 8815 "pengiriman_kebumen", 8816 8817 8818 8819 8820 8821 "pengiriman_kediri", 8822 8823 8824 8825 8826 8827 "pengiriman_keerom", 8828 8829 8830 8831 8832 8833 "pengiriman_kendal", 8834 8835 8836 8837 8838 8839 "pengiriman_klaten", 8840 8841 8842 8843 8844 8845 8846 8847 8848 8849 "pengiriman_kudus", 8850 8851 8852 8853 8854 8855 "pengiriman_kupang", 8856 8857 8858 8859 8860 8861 "pengiriman_lainnya", 8862 8863 8864 8865 8866 8867 "pengiriman_lamongan", 8868 8869 8870 8871 8872 8873 "pengiriman_lampung", 8874 8875 8876 8877 8878 8879 "pengiriman_lampung barat", 8880 8881 8882 8883 8884 8885 "pengiriman_lembang", 8886 8887 8888 8889 8890 8891 "pengiriman_lombok", 8892 8893 8894 8895 8896 8897 "pengiriman_lumajang", 8898 8899 8900 8901 8902 8903 "pengiriman_madiun", 8904 8905 8906 8907 8908 8909 "pengiriman_magelang", 8910 8911 8912 8913 8914 8915 "pengiriman_majalengka", 8916 8917 8918 8919 8920 8921 "pengiriman_makassar", 8922 8923 8924 8925 8926 8927 "pengiriman_malang", 8928 8929 8930 8931 8932 8933 "pengiriman_manado", 8934 8935 8936 8937 8938 8939 "pengiriman_medan", 8940 8941 8942 8943 8944 8945 "pengiriman_mengwi", 8946 8947 8948 8949 8950 8951 "pengiriman_mojokerto", 8952 8953 8954 8955 8956 8957 "pengiriman_nganjuk", 8958 8959 8960 8961 8962 8963 "pengiriman_ngawi", 8964 8965 8966 8967 8968 8969 "pengiriman_padang", 8970 8971 8972 8973 8974 8975 "pengiriman_palembang", 8976 8977 8978 8979 8980 8981 "pengiriman_pasuruan", 8982 8983 8984 8985 8986 8987 "pengiriman_pati", 8988 8989 8990 8991 8992 8993 "pengiriman_pekalongan", 8994 8995 8996 8997 8998 8999 "pengiriman_pekanbaru", 9000 9001 9002 9003 9004 9005 "pengiriman_pemalang", 9006 9007 9008 9009 9010 9011 "pengiriman_ponorogo", 9012 9013 9014 9015 9016 9017 "pengiriman_pontianak", 9018 9019 9020 9021 9022 9023 "pengiriman_probolinggo", 9024 9025 9026 9027 9028 9029 "pengiriman_purbalingga", 9030 9031 9032 9033 9034 9035 "pengiriman_purwakarta", 9036 9037 9038 9039 9040 9041 "pengiriman_purwokerto", 9042 9043 9044 9045 9046 9047 "pengiriman_rembang", 9048 9049 9050 9051 9052 9053 "pengiriman_riau", 9054 9055 9056 9057 9058 9059 "pengiriman_salatiga", 9060 9061 9062 9063 9064 9065 "pengiriman_samarinda", 9066 9067 9068 9069 9070 9071 "pengiriman_semarang", 9072 9073 9074 9075 9076 9077 "pengiriman_sentani", 9078 9079 9080 9081 9082 9083 "pengiriman_serang", 9084 9085 9086 9087 9088 9089 "pengiriman_sidoarjo", 9090 9091 9092 9093 9094 9095 "pengiriman_singkawang", 9096 9097 9098 9099 9100 9101 "pengiriman_sragen", 9102 9103 9104 9105 9106 9107 "pengiriman_subang", 9108 9109 9110 9111 9112 9113 "pengiriman_sukabumi", 9114 9115 9116 9117 9118 9119 "pengiriman_sumbawa", 9120 9121 9122 9123 9124 9125 "pengiriman_surabaya", 9126 9127 9128 9129 9130 9131 "pengiriman_surakarta solo", 9132 9133 9134 9135 9136 9137 9138 9139 9140 9141 "pengiriman_tasikmalaya", 9142 9143 9144 9145 9146 9147 "pengiriman_tegal", 9148 9149 9150 9151 9152 9153 "pengiriman_timika", 9154 9155 9156 9157 9158 9159 "pengiriman_wamena", 9160 9161 9162 9163 9164 9165 "pengiriman_wiyung", 9166 9167 9168 9169 9170 9171 "pengiriman_wonokromo", 9172 9173 9174 9175 9176 9177 "pengiriman_yogyakarta", 9178 9179 ] 9180 console.log(cityNonJabodetabek) 9181 let non_jabodetabek = [] 9182 for(var i=0;i<cityNonJabodetabek.length;i++) { 9183 const obj = { 9184 "code": cityNonJabodetabek[i].toLowerCase().replace('pengiriman_', '').replace(' ','-'), 9185 "city": cityNonJabodetabek[i].replace('pengiriman_', '').replace(' ','-'), 9186 "zip": [] 9187 } 9188 non_jabodetabek.push(obj) 9189 } 9190 let current_location = getCookie("location_delivery") 9191 $("[name=location]").change(function(){ 9192 let v = $(this).val() 9193 let option = [] 9194 if(v == 'Jabodetabek') { 9195 for(var i=0;i<jabodetabek.length;i++) { 9196 const jabodetabekHtml = `<option value=${jabodetabek[i].city}>${jabodetabek[i].city}</option>` 9197 option.push(jabodetabekHtml) 9198 } 9199 $("#choose-location").html(`<option value="">Choose Location</option>${option}`) 9200 } else { 9201 for(var i=0;i<non_jabodetabek.length;i++) { 9202 const nonjabodetabekHtml = `<option value=${non_jabodetabek[i].city}>${non_jabodetabek[i].city}</option>` 9203 option.push(nonjabodetabekHtml) 9204 } 9205 $("#choose-location").html(`<option value="">Choose Location</option>${option}`) 9206 } 9207 }) 9208 9209 $("#location-lock-submit").click(function(e){
9210 let select = $("#choose-location") 9211 let value = select.val().toLowerCase() 9212 console.log(value) 9213 if(select.val() == "") { 9214 return alert("Choose Your Location") 9215 e.preventDefault() 9216 } 9217 setCookie("location_delivery",value,1000000); 9218 9219 location.reload(); 9220 9221 }) 9222 9223 $("#close-popup-delivery").click(function(){ 9224 $(".MuiDialog-root").hide() 9225 if(!current_location){ 9226 setCookie("location_delivery","jakarta",1000000); 9227 $("#loc_delivery_city, #loc_delivery_city_mobile").text("Jakarta") 9228 } 9229 }) 9230 $("#loc_delivery, #loc_delivery_mobile").click(function(){ 9231 $(".MuiDialog-root").show() 9232 }) 9233 9234 9235 if(!current_location){ 9236 9237 } else { 9238 $("#loc_delivery_city, #loc_delivery_city_mobile").text(current_location) 9239 console.log(current_location) 9240 $("#choose-location").each(function(){ 9241 if(current_location == 'jakarta' || current_location == 'depok' || current_location == 'bogor' || current_location == 'tangerang' || current_location == 'bekasi'){ 9242 $("#jabodetabek").trigger("click") 9243 } else { 9244 $("#non-jabodetabek").trigger("click") 9245 } 9246 $("#choose-location").find("option[value="+current_location+"]").attr("selected", "selected") 9247 }) 9248 } 9249 9250 // 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'){ 9251 // $("#timeMalam").attr("disabled", false) 9252 // } else { 9253 // $("#timeMalam").attr("disabled", true) 9254 // } 9255 9256 if(current_location && current_location != 'jakarta') { 9257 $("#self-pickup").attr("disabled", true) 9258 } 9259 9260 function setCookie(name,value,days) { 9261 var expires = ""; 9262 if (days) { 9263 var date = new Date(); 9264 date.setTime(date.getTime() + (days*24*60*60*1000)); 9265 expires = "; expires=" + date.toUTCString(); 9266 } 9267 document.cookie = name + "=" + (value || "") + expires + "; path=/"; 9268 } 9269 function getCookie(name) { 9270 var nameEQ = name + "="; 9271 var ca = document.cookie.split(';'); 9272 for(var i=0;i < ca.length;i++) { 9273 var c = ca[i]; 9274 while (c.charAt(0)==' ') c = c.substring(1,c.length); 9275 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 9276 } 9277 return null; 9278 } 9279 </script>
9279 9280 <!-- One Tap --> 9281
9281<script> 9282 console.log("Outerbloom..."); 9283 </script>
9283 9284 <div id="shopify-block-ANVEzSUcxTUxZOGpwZ__9703700522657871012" class="shopify-block shopify-app-block"> 9285 <link rel="stylesheet" href="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.css" /> 9286
9286<script src="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.js" defer></script>
9286 9287
9287<script> 9288 const widgetConfig = { 9289 id: "clz7897za002cz7otleaz0d3d", 9290 showQuickResponse: false, 9291 quickResponsesData: [], 9292 themeColor: "#ffffff", 9293 widgetText: "", 9294 radiusType: "circle", 9295 widgetIconType: "whatsapp", 9296 position: "right", 9297 storeLogo: "", 9298 storeName: "Outerbloom", 9299 storeDescription: "", 9300 size: "small", 9301 showCard: false, 9302 widgetColorType: "solid", 9303 widgetColor1: "#008069", 9304 widgetColor2: "#008069", 9305 social: { 9306 socialOrders: ["instagram","tiktok","facebook","x","youtube","linkedin","email"], 9307 values: { 9308 instagram: { 9309 enabled: false, 9310 value: "", 9311 }, 9312 facebook: { 9313 enabled: false, 9314 value: "", 9315 }, 9316 email: { 9317 enabled: false, 9318 value: "", 9319 }, 9320 x: { 9321 enabled: false, 9322 value: "", 9323 }, 9324 tiktok: { 9325 enabled: false, 9326 value: "", 9327 }, 9328 linkedin: { 9329 enabled: false, 9330 value: "", 9331 }, 9332 youtube: { 9333 enabled: false, 9334 value: "", 9335 }, 9336 }, 9337 }, 9338 }; 9339 9340 function initializeWidget() { 9341 if (typeof BBBWidget !== 'undefined') { 9342 BBBWidget.init(widgetConfig); 9343 } else { 9344 setTimeout(initializeWidget, 100); 9345 } 9346 } 9347 9348 initializeWidget();</script>
9348 9349 9350 9351 </div><div id="shopify-block-ATzRpVTBPU3k1R2pnW__286197278318599166" class="shopify-block shopify-app-block"> 9352 9353 9354 <div style="position: fixed; bottom: 0; right: 0"></div> 9355 9356
9356<script> 9357 console.info("bitlogin extension version: v2.5.7"); 9358 9359 const googleScript = document.createElement("script"); 9360 googleScript.setAttribute("src", "https://accounts.google.com/gsi/client"); 9361 document.head.append(googleScript); 9362 9363 const bitLoginBaseUrl = "https://api.bitbybit.studio"; 9364 const apiUrl = `${bitLoginBaseUrl}/bitlogin/api`; 9365 9366 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"}}; 9367 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
9367n1.oa2-cs.v1.1cb5f9085a202341f60daf5a7be16c570ccc0b4bd5908b3afd080f34e9b8935d","appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null}]; 9368 const redirectUrl = appearance.redirectLink; 9369 9370 let locationCacheSet = false; 9371 let errorLocation = false; 9372 let oneTapSet = false; 9373 9374 let bitloginCache = { 9375 appearance: appearance, 9376 config: config 9377 }; 9378 9379 let isInitializing = false; 9380 const queue = []; 9381 9382 // Add CSS for the popup 9383 const popupStyles = document.createElement('style'); 9384 popupStyles.textContent = ` 9385 /* Styles for login popup */ 9386 .bitlogin-popup-overlay { 9387 position: fixed; 9388 top: 0; 9389 left: 0; 9390 width: 100%; 9391 height: 100%; 9392 background: rgba(0, 0, 0, 0.45); 9393 backdrop-filter: blur(4px); 9394 display: flex; 9395 align-items: center; 9396 justify-content: center; 9397 opacity: 0; 9398 transition: opacity 0.3s ease-in-out; 9399 z-index: 999999; 9400 } 9401 9402 .bitlogin-popup-overlay.visible { 9403 opacity: 1; 9404 } 9405 9406 .bitlogin-popup { 9407 background: #FFFFFF; 9408 box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); 9409 border-radius: 16px; 9410 width: 100%; 9411 max-width: 560px; 9412 display: flex; 9413 overflow: hidden; 9414 position: relative; 9415 opacity: 0; 9416 transform: translateY(20px) scale(0.98); 9417 transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1); 9418 } 9419 9420 .bitlogin-popup.visible { 9421 opacity: 1; 9422 transform: translateY(0) scale(1); 9423 } 9424 9425 .bitlogin-popup-with-image { 9426 max-width: 640px; 9427 } 9428 9429 .bitlogin-popup-right-image { 9430 flex-direction: row-reverse; 9431 } 9432 9433 .bitlogin-popup-image { 9434 object-fit: cover; 9435 width: 50%; 9436 height: auto; 9437 } 9438 9439 .bitlogin-popup-content { 9440 padding: 32px; 9441 position: relative; 9442 width: 50%; 9443 } 9444 9445 .bitlogin-popup-close { 9446 position: absolute; 9447 top: 16px; 9448 right: 16px; 9449 background: white; 9450 border: none; 9451 width: 30px; 9452 height: 30px; 9453 display: flex; 9454 align-items: center; 9455 justify-content: center; 9456 cursor: pointer; 9457 transition: background-color 0.2s; 9458 color: inherit; 9459 padding: 0; 9460 } 9461 9462 .bitlogin-popup-close:hover { 9463 background-color: #e5e5e5; 9464 } 9465 9466 .bitlogin-popup-buttons { 9467 display: flex; 9468 flex-direction: column; 9469 gap: 12px; 9470 margin-top: 24px; 9471 } 9472 9473 /* Button styles within popup - override width for popup buttons */ 9474 .bitlogin-popup-buttons #google-login, 9475 .bitlogin-popup-buttons #facebook-login, 9476 .bitlogin-popup-buttons #apple-login, 9477 .bitlogin-popup-buttons #whatsapp-login, 9478 .bitlogin-popup-buttons #microsoft-login, 9479 .bitlogin-popup-buttons #twitter-login, 9480 .bitlogin-popup-buttons #amazon-login, 9481 .bitlogin-popup-buttons #instagram-login, 9482 .bitlogin-popup-buttons #magic-link-login, 9483 .bitlogin-popup-buttons #mobile-app-login { 9484 width: 100% !important; 9485 font-family: inherit !important; 9486 } 9487 9488 .bitlogin-popup-footer { 9489 margin-top: 32px; 9490 text-align: center; 9491 font-size: 14px; 9492 opacity: 0.6; 9493 } 9494 9495 /* Modern Typography */ 9496 .bitlogin-popup h2 { 9497 margin-top: 12px; 9498 font-size: 21px !important; 9499 line-height: 1.2 !important; 9500 font-weight: 700 !important; 9501 letter-spacing: -0.02em !important; 9502 margin-bottom: 16px !important; 9503 } 9504 9505 .bitlogin-popup-header { 9506 position: relative; 9507 margin-bottom: 24px; 9508 } 9509 9510 /* Modern gradient accent */ 9511 .bitlogin-popup-content > div { 9512 font-size: 16px !important; 9513 line-height: 1.2 !important; 9514 opacity: 0.85 !important; 9515 } 9516 9517 /* Enhanced button interactions */ 9518 .bitlogin-popup-buttons button { 9519 position: relative; 9520 overflow: hidden; 9521 } 9522 9523 @keyframes ripple { 9524 0% { 9525 transform: scale(0, 0); 9526 opacity: 0.5; 9527 } 9528 100% { 9529 transform: scale(100, 100); 9530 opacity: 0; 9531 } 9532 } 9533 9534 /* Responsive adjustments */ 9535 @media (max-width: 640px) { 9536 .bitlogin-popup { 9537 max-width: 90%; 9538 width: 90%; 9539 margin: 0 16px; 9540 } 9541 9542 .bitlogin-popup-with-image { 9543 flex-direction: column !important; 9544 } 9545 9546 .bitlogin-popup-image { 9547 width: 100%; 9548 height: 180px; 9549 } 9550 9551 .bitlogin-popup-content { 9552 padding: 24px; 9553 } 9554 9555 .bitlogin-popup h2 { 9556 font-size: 24px !important; 9557 } 9558 } 9559 `; 9560
9561 document.head.appendChild(popupStyles); 9562 9563 // Add fonts link for different font options 9564 const fontsLink = document.createElement('link'); 9565 fontsLink.rel = 'stylesheet'; 9566 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'; 9567 document.head.appendChild(fontsLink); 9568 9569 (async () => { 9570 try { 9571 let host = window.location.host; 9572 if (host === "admin.shopify.com") { 9573 host = `${window.location.pathname.split("/")[2]}.myshopify.com`; 9574 } 9575 9576 const urlSearchParams = new URLSearchParams(window.location.search); 9577 const checkoutUrl = urlSearchParams.get("checkout_url"); 9578 9579 async function init({ inputRef, index }) { 9580 if (isInitializing) { 9581 queue.push(() => init({ inputRef, index })); 9582 return; 9583 } 9584 9585 isInitializing = true; 9586 9587 try { 9588 let bitLoginSectionRoot = document.querySelector( 9589 `.bitlogin-root[data-index="${index}"]` 9590 ); 9591 9592 const formRef = inputRef?.closest( 9593 "form:not([action='/account/recover'])" 9594 ); 9595 9596 if (formRef && !bitLoginSectionRoot) { 9597 await getLocation(); 9598 9599 bitLoginSectionRoot = document.createElement(`div`); 9600 9601 bitLoginSectionRoot.setAttribute("class", "bitlogin-root"); 9602 bitLoginSectionRoot.setAttribute("data-index", `${index}`); 9603 9604 updateAppearance({ 9605 formRef, 9606 rootRef: bitLoginSectionRoot, 9607 host, 9608 }); 9609 } 9610 } catch (err) { 9611 console.error(`error while initiating bitlogin extensions`, err); 9612 } finally { 9613 // Release the lock 9614 isInitializing = false; 9615 9616 // Check if there are pending items in the queue 9617 if (queue.length > 0) { 9618 // Process the next function in the queue 9619 const nextFunction = queue.shift(); 9620 nextFunction(); 9621 } 9622 } 9623 } 9624 9625 function initAll() { 9626 return new Promise((resolve, reject) => { 9627 setTimeout(async () => { 9628 const inputRefs = document.querySelectorAll( 9629 'input[name="customer[email]"]' 9630 ); 9631 9632 for (let i = 0; i < inputRefs.length; i++) { 9633 const currentInputRef = inputRefs[i]; 9634 const isVisible = isElementVisible(currentInputRef); 9635 9636 if (isVisible) { 9637 await init({ inputRef: currentInputRef, index: i }); 9638 } 9639 } 9640 9641 resolve("ok"); 9642 }, 100); 9643 }); 9644 } 9645 9646 const observer = new MutationObserver((mutationsList) => { 9647 for (let mutation of mutationsList) { 9648 initAll(); 9649 } 9650 }); 9651 9652 observer.observe(document.body, { 9653 childList: true, 9654 subtree: true, 9655 attributes: true, 9656 }); 9657 9658 initAll(); 9659 9660 if (appearance.googleOneTap) { 9661 setupOneTap({ host, checkoutUrl }); 9662 } 9663 9664 // Initialize popup 9665 await initPopup(host); 9666 } catch (error) { 9667 console.error("Error initializing BitLogin:", error); 9668 } 9669 })(); 9670 9671 async function initPopup(host) { 9672 // Check if user is already logged in using Liquid checks properly 9673 const isLoggedIn = false || 9674 document.querySelector('.customer-logout-link') || 9675 document.querySelector('.account-link') || 9676 window.location.pathname.includes('/account'); 9677 9678 if (isLoggedIn) { 9679 return; // User is logged in, don't show popup 9680 } 9681 9682 try { 9683 // Fetch the popup configuration 9684 const popupConfig = await fetch(`${apiUrl}/appearance/popup/domain/${host}`) 9685 .then(res => res.json()) 9686 .catch(err => { 9687 console.error('Error fetching popup configuration:', err); 9688 return null; 9689 }); 9690 9691 if (!popupConfig || !popupConfig.enabled) { 9692 return;
9692 // Don't show popup if disabled or config not found 9693 } 9694 9695 // Create popup after 10 seconds 9696 setTimeout(() => { 9697 // Check if user is still on the page and still not logged in 9698 if (document.visibilityState === 'visible') { 9699 // Additional check in case user logged in during the 10 second wait 9700 const currentlyLoggedIn = false || 9701 document.querySelector('.customer-logout-link') || 9702 document.querySelector('.account-link'); 9703 9704 if (!currentlyLoggedIn) { 9705 createLoginPopup(popupConfig, host); 9706 } 9707 } 9708 }, 10000); 9709 } catch (error) { 9710 console.error('Error initializing popup:', error); 9711 } 9712 } 9713 9714 function createLoginPopup(popupConfig, host) { 9715 // Font mapping 9716 const fontFamilyMap = { 9717 system_fonts: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif', 9718 montserrat: 'Montserrat, sans-serif', 9719 roboto: 'Roboto, sans-serif', 9720 open_sans: 'Open Sans, sans-serif', 9721 noto_sans: 'Noto Sans, sans-serif', 9722 lato: 'Lato, sans-serif', 9723 poppins: 'Poppins, sans-serif', 9724 quicksand: 'Quicksand, sans-serif', 9725 raleway: 'Raleway, sans-serif', 9726 pt_sans: 'PT Sans, sans-serif', 9727 oswald: 'Oswald, sans-serif', 9728 }; 9729 9730 // Create overlay 9731 const overlay = document.createElement('div'); 9732 overlay.className = 'bitlogin-popup-overlay'; 9733 9734 // Create popup container with appropriate styling 9735 const popup = document.createElement('div'); 9736 popup.className = 'bitlogin-popup'; 9737 9738 if (popupConfig.layout === 'default') { 9739 popup.style.maxWidth = '400px'; 9740 } 9741 9742 // Function to close the popup 9743 const closePopup = () => { 9744 overlay.classList.remove('visible'); 9745 popup.classList.remove('visible'); 9746 setTimeout(() => { 9747 if (document.body.contains(overlay)) { 9748 document.body.removeChild(overlay); 9749 } 9750 }, 300); 9751 }; 9752 9753 // Add click handler to the overlay to close when clicking outside 9754 overlay.addEventListener('click', (event) => { 9755 // Close only if clicking directly on the overlay, not its children 9756 if (event.target === overlay) { 9757 closePopup(); 9758 } 9759 }); 9760 9761 // Add escape key handler to close popup 9762 document.addEventListener('keydown', (event) => { 9763 if (event.key === 'Escape' && document.body.contains(overlay)) { 9764 closePopup(); 9765 } 9766 }); 9767 9768 // Create layout with image if specified 9769 let contentWrapper; 9770 if (popupConfig.layout !== 'default' && popupConfig.popupImage) { 9771 popup.classList.add('bitlogin-popup-with-image'); 9772 9773 if (popupConfig.layout === 'right') { 9774 popup.classList.add('bitlogin-popup-right-image'); 9775 } 9776 9777 // Add image 9778 const image = document.createElement('img'); 9779 image.className = 'bitlogin-popup-image'; 9780 image.src = popupConfig.popupImage; 9781 image.alt = 'Login'; 9782 image.loading = 'lazy'; 9783 popup.appendChild(image); 9784 9785 // Create content container 9786 contentWrapper = document.createElement('div'); 9787 contentWrapper.className = 'bitlogin-popup-content'; 9788 9789 if (popupConfig.layout === 'right') { 9790 const closeButton = document.createElement('button'); 9791 closeButton.className = 'bitlogin-popup-close'; 9792 closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png"> 9793 <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 9794 </svg>`; 9795 closeButton.setAttribute('aria-label', 'Close'); 9796 closeButton.onclick = closePopup; 9797 9798 popup.appendChild(closeButton); 9799 } 9800 } else { 9801 contentWrapper = document.createElement('div'); 9802 contentWrapper.className = 'bitlogin-popup-content'; 9803 contentWrapper.style.width = '100%'; 9804 } 9805 9806 // Set background style 9807 if (popupConfig.backgroundTheme === 'gradient') { 9808 contentWrapper.style.background = `linear-gradient(135deg, ${popupConfig.backgroundPopupColor}, ${popupConfig.gradientColor})`; 9809 } else { 9810 contentWrapper.style.backgroundColor = popupConfig.backgroundPopupColor; 9811 } 9812 9813 // Apply font family 9814 contentWrapper.style.setProperty('font-family', fontFamilyMap[popupConfig.font] || fontFamilyMap.system_fonts, 'important'); 9815 9816 if (popupConfig.layout !== 'right') { 9817 const closeButton = document.createElement('button'); 9818 closeButton.className = 'bitlogin-popup-close'; 9819 closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png"> 9820 <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 9821 </svg>`; 9822 closeButton.setAttribute('aria-label', 'Close'); 9823 closeButton.onclick = closePopup; 9824 9825 contentWrapper.appendChild(closeButton); 9826 } 9827 9828 // Add heading with subtle animation effect 9829 const header = document.createElement('div'); 9830 header.className = 'bitlogin-popup-header'; 9831 9832 const heading = document.createElement('h2'); 9833 heading.textContent = popupConfig.headingText || 'Sign in for exclusive benef
9833its'; 9834 heading.style.color = popupConfig.fontColor; 9835 header.appendChild(heading); 9836 9837 // Add body text with improved formatting 9838 const bodyText = document.createElement('div'); 9839 bodyText.innerHTML = popupConfig.bodyText || 'Join our community to access exclusive offers and a personalized shopping experience.'; 9840 bodyText.style.color = popupConfig.fontColor; 9841 header.appendChild(bodyText); 9842 9843 contentWrapper.appendChild(header); 9844 9845 // Create buttons container with modern styling 9846 const buttonsContainer = document.createElement('div'); 9847 buttonsContainer.className = 'bitlogin-popup-buttons'; 9848 9849 // Add social buttons 9850 const providerLabels = { 9851 'GOOGLE': 'Continue with Google', 9852 'FACEBOOK': 'Continue with Facebook', 9853 'APPLE': 'Continue with Apple', 9854 'WHATSAPP': 'Continue with WhatsApp', 9855 'MAGIC_LINK': 'Continue with Email', 9856 }; 9857 9858 // Add first login provider button 9859 if (popupConfig.loginProvider1 !== 'NONE') { 9860 const buttonConfig = { 9861 theme: popupConfig.colorScheme || 'match', 9862 customColor: popupConfig.textColor, 9863 format: 'contentFlex', 9864 buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider1.toLowerCase()], 9865 hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true, 9866 style: popupConfig.style || 'rounded', 9867 size: popupConfig.size || 'medium', 9868 colorScheme: popupConfig.colorScheme || 'match', 9869 backgroundColor: popupConfig.backgroundColor || '#3B82F6', 9870 textColor: popupConfig.textColor || '#FFFFFF', 9871 outlineColor: popupConfig.outlineColor || '#3B82F6', 9872 host: host 9873 }; 9874 9875 const button1 = createSocialLoginButton(popupConfig.loginProvider1, buttonConfig); 9876 9877 // Handle click event - this overrides the default click handler in createSocialLoginButton 9878 button1.onclick = () => { 9879 onClickSocialLogin({ provider: popupConfig.loginProvider1.toLowerCase(), host }); 9880 closePopup(); 9881 }; 9882 9883 buttonsContainer.appendChild(button1); 9884 } 9885 9886 // Add second login provider button if enabled 9887 if (popupConfig.loginProvider2 !== 'NONE') { 9888 const buttonConfig = { 9889 theme: popupConfig.colorScheme || 'match', 9890 customColor: popupConfig.textColor, 9891 format: 'contentFlex', 9892 buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider2.toLowerCase()], 9893 hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true, 9894 style: popupConfig.style || 'rounded', 9895 size: popupConfig.size || 'medium', 9896 colorScheme: popupConfig.colorScheme || 'match', 9897 backgroundColor: popupConfig.backgroundColor || '#3B82F6', 9898 textColor: popupConfig.textColor || '#FFFFFF', 9899 outlineColor: popupConfig.outlineColor || '#3B82F6', 9900 host: host 9901 }; 9902 9903 const button2 = createSocialLoginButton(popupConfig.loginProvider2, buttonConfig); 9904 9905 // Handle click event - this overrides the default click handler in createSocialLoginButton 9906 button2.onclick = () => { 9907 onClickSocialLogin({ provider: popupConfig.loginProvider2.toLowerCase(), host }); 9908 closePopup(); 9909 }; 9910 9911 buttonsContainer.appendChild(button2); 9912 } 9913 9914 contentWrapper.appendChild(buttonsContainer); 9915 9916 // Append content to popup 9917 popup.appendChild(contentWrapper); 9918 9919 // Append popup to overlay 9920 overlay.appendChild(popup); 9921 9922 // Append overlay to body 9923 document.body.appendChild(overlay); 9924 9925 // Trigger animation with slight delay for better perceived performance 9926 setTimeout(() => { 9927 overlay.classList.add('visible'); 9928 setTimeout(() => { 9929 popup.classList.add('visible'); 9930 }, 50); 9931 }, 10); 9932 } 9933 9934 window.addEventListener("load", () => { 9935 window.addEventListener("message", (event) => { 9936 const receivedData = event.data; 9937 9938 if (receivedData.type === "authorize") { 9939 post( 9940 JSON.parse( 9941 JSON.stringify({ 9942 "customer[email]": receivedData.email, 9943 "customer[password]": receivedData.password, 9944 form_type: "customer_login", 9945 utf8: "â", 9946 return_url: redirectUrl, 9947 }) 9948 ) 9949 ); 9950 } else if (receivedData.type === "rejected") { 9951 if (receivedData.reason === "customer_account_disabled") { 9952 showAlert( 9953 "Your account needs to be activated. We've sent you an activation link - please check your email to complete this step." 9954 ); 9955 } else if (receivedData.reason === "customer_entry_created_email_not_set") { 9956 showAlert( 9957 "A new account was created but requires an email address. Please update your account with a valid email address to continue." 9958 ); 9959 } else if (receivedData.reason === "customer_exist_email_not_set") { 9960 showAlert( 9961 "Your existing account is missing an email address. Please contact support to update your account with a valid email address." 9962 ); 9963 } 9964 } 9965 9966 if (receivedData.type === "customer_authenticated") { 9967 // Dispatch a custom event that merchants can listen for to implement their custom logic 9968 const customerAuthEvent = new CustomEvent('bitlogin:customer_authenticated', { 9969 detail: { 9970 provider: receivedData.provider, 9971 customer: receivedData.customer, 9972 shopifyCustomerCreated: receivedData.shopifyCustomerCreated 9973 } 9974 }); 9975 9976 // Dispatch the event on the window object so merchants can listen for it 9977 window.dispatchEvent(customerAuthEvent); 9978 9979 } 9980 }); 9981 }); 9982 9983 // Reusable functions for social login buttons 9984 function createSocialLoginButton(provider, config = {}) { 9985 const { 9986 theme = 'match', 9987 customColor = null, 9988 format = 'contentFlex', 9989 buttonText = null, 9990 hasShadow = true, 9991 style = 'rounded', 9992 size = 'medium', 9993 colorScheme = 'match', 9994 backgroundColor = '#3B82F6', 9995 textColor = '#FFFFFF', 9996 outlineColor = '#3B82F6', 9997 rootRef = null, 9998 host = null 9999 } = config; 10000 10001 // Create button element with appropriate ID and attributes 10002 const button = document.createElement('button'); 10003 button.id = `${provider.toLowerCase()}-login`; 10004 button.type = 'button'; 10005 10006 // Set the inner SVG based on provider 10007 switch (provider.toUpperCase()) {
10008 case 'GOOGLE': 10009 button.innerHTML = googleLoginIcon(theme, customColor); 10010 break; 10011 case 'FACEBOOK': 10012 button.innerHTML = facebookLoginIcon(theme, customColor); 10013 break; 10014 case 'APPLE': 10015 button.innerHTML = appleLoginIcon(theme, customColor); 10016 break; 10017 case 'WHATSAPP': 10018 button.innerHTML = whatsappLoginIcon(theme, customColor); 10019 break; 10020 case 'MICROSOFT': 10021 button.innerHTML = microsoftLoginIcon(theme, customColor); 10022 break; 10023 case 'TWITTER': 10024 button.innerHTML = twitterLoginIcon(theme, customColor); 10025 break; 10026 case 'AMAZON': 10027 button.innerHTML = amazonLoginIcon(theme, customColor); 10028 break; 10029 case 'INSTAGRAM': 10030 button.innerHTML = instagramLoginIcon(theme, customColor); 10031 break; 10032 case 'MAGIC_LINK': 10033 button.innerHTML = magicLinkLoginIcon(theme, customColor); 10034 break; 10035 case 'MOBILE_APP': 10036 button.innerHTML = mobileAppLoginIcon(theme, customColor); 10037 break; 10038 case 'LINKEDIN': 10039 button.innerHTML = linkedinLoginIcon(theme, customColor); 10040 break; 10041 } 10042 10043 // Add text if format isn't icon-only and buttonText is provided 10044 if (format !== "wrapperFlexContainerOnlyLogo" && buttonText) { 10045 button.innerHTML += `<p>${buttonText}</p>`; 10046 } 10047 10048 // Apply styling 10049 // Shadow 10050 if (hasShadow) { 10051 const shadowProperties = `0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)`; 10052 button.style["box-shadow"] = shadowProperties; 10053 } 10054 10055 // Border radius 10056 const radiusProperties = 10057 style === "rounded" 10058 ? "8px" 10059 : style === "square" 10060 ? "0px" 10061 : style === "fullRounded" 10062 ? format === "wrapperFlexContainerOnlyLogo" 10063 ? "50%" 10064 : "50px" 10065 : undefined; 10066 button.style["border-radius"] = radiusProperties; 10067 10068 // Size 10069 const sizeProperties = 10070 size === "medium" 10071 ? "12px" 10072 : size === "small" 10073 ? "8px" 10074 : size === "large" 10075 ? "16px" 10076 : "8px"; 10077 10078 button.style["padding-block"] = sizeProperties; 10079 10080 // Format styling 10081 if (format) { 10082 if ( 10083 format === "contentFlexReverse" || 10084 format === "contentFlexCenterReverse" 10085 ) { 10086 const flexDir = `row-reverse`; 10087 button.style["flex-direction"] = flexDir; 10088 } 10089 10090 if ( 10091 format === "contentFlexCenter" || 10092 format === "contentFlexCenterReverse" 10093 ) { 10094 const justifyContent = `center`; 10095 button.style["justify-content"] = justifyContent; 10096 } else if ( 10097 format === "contentFlex" || 10098 format === "contentFlexReverse" 10099 ) { 10100 const buttonTextElement = button.querySelector("p"); 10101 if (buttonTextElement) { 10102 buttonTextElement.style["flex-grow"] = 1; 10103 buttonTextElement.style["text-align"] = "center"; 10104 } 10105 } 10106 10107 if (format === "wrapperFlexContainerOnlyLogo" && rootRef) { 10108 rootRef.style["flex-direction"] = "row"; 10109 rootRef.style["gap"] = "8px"; 10110 rootRef.style["display"] = "flex"; 10111 rootRef.style["flex-wrap"] = "wrap"; 10112 10113 const sizeMapping = { 10114 small: "52px", 10115 medium: "62px", 10116 large: "72px", 10117 }; 10118 const buttonSize = sizeMapping[size] || "52px"; 10119 10120 button.style["margin"] = 0; 10121 button.style["width"] = buttonSize; 10122 button.style["height"] = buttonSize; 10123 button.style["display"] = "flex"; 10124 button.style["align-items"] = "center"; 10125 button.style["justify-content"] = "center"; 10126 10127 const svgElement = button.querySelector("svg"); 10128 if (svgElement) { 10129 svgElement.style["flex"] = "none"; 10130 } 10131 } 10132 } 10133 10134 // Color scheme styling 10135 if (colorScheme === "black") { 10136 button.classList.add("scheme-black"); 10137 } else if (colorScheme === "white") { 10138 button.classList.add("scheme-white"); 10139 } else if (colorScheme === "custom") { 10140 button.style["background-color"] = backgroundColor; 10141 button.style["color"] = textColor; 10142 button.style["border-color"] = outlineColor; 10143 10144 const darkenColor = (color, percentage) => { 10145 const value = parseInt(color.slice(1), 16); 10146 const r = Math.max(0, ((value >> 16) & 0xff) - (0xff * percentage)); 10147 const g = Math.max(0, ((value >> 8) & 0xff) - (0xff * percentage)); 10148 const b = Math.max(0, (value & 0xff) - (0xff * percentage)); 10149 return `rgb(${Math.round(r)}, ${Math.round(g)}, ${Math.round(b)})`; 10150 }; 10151 10152 button.addEventListener("mouseover", () => {
10153 button.style["background-color"] = darkenColor(backgroundColor, 0.2); 10154 }); 10155 button.addEventListener("mouseout", () => { 10156 button.style["background-color"] = backgroundColor; 10157 }); 10158 } else if (colorScheme === "match") { 10159 button.classList.add("scheme-match"); 10160 } else if (colorScheme === "matchOutline") { 10161 button.classList.add("scheme-match-outline"); 10162 } 10163 10164 // Add click event listener if host is provided 10165 if (host) { 10166 button.addEventListener("click", () => 10167 onClickSocialLogin({ provider: provider.toLowerCase(), host }) 10168 ); 10169 } 10170 10171 return button; 10172 } 10173 10174 function setupSocialLoginButtons(config, rootRef, data, host) { 10175 // Clear any existing content 10176 rootRef.innerHTML = ''; 10177 10178 const sortedEnabledProviders = config 10179 .filter(c => c.enabledWeb) 10180 .sort((a, b) => a.position - b.position); 10181 10182 sortedEnabledProviders.forEach(provider => { 10183 const key = provider.provider; 10184 const lowerKey = key.toLowerCase(); 10185 10186 const buttonText = data.format !== "wrapperFlexContainerOnlyLogo" 10187 ? (lowerKey === 'twitter' 10188 ? data.buttonList.twitter.replace('Twitter', 'X') 10189 : data.buttonList[lowerKey]) 10190 : null; 10191 10192 const button = createSocialLoginButton(key, { 10193 theme: data.colorScheme || 'match', 10194 customColor: data.textColor, 10195 format: data.format, 10196 buttonText: buttonText, 10197 hasShadow: data.hasShadow !== undefined ? data.hasShadow : true, 10198 style: data.style, 10199 size: data.size, 10200 colorScheme: data.colorScheme, 10201 backgroundColor: data.backgroundColor, 10202 textColor: data.textColor, 10203 outlineColor: data.outlineColor, 10204 rootRef: rootRef, 10205 host: host 10206 }); 10207 10208 rootRef.appendChild(button); 10209 }); 10210 10211 return rootRef; 10212 } 10213 10214 function updateAppearance({ formRef, rootRef, host }) { 10215 if (!formRef) return; 10216 10217 const data = bitloginCache.appearance || { 10218 style: "square", 10219 hasShadow: false, 10220 colorScheme: "match", 10221 backgroundColor: "#FFFFFF", 10222 outlineColor: "#000000", 10223 textColor: "#000000", 10224 position: "bottom", 10225 hideDivider: "false", 10226 dividerText: "OR", 10227 size: "small", 10228 format: "contentFlex", 10229 language: "en", 10230 buttonText: "Continue with", 10231 redirectLink: "/account", 10232 googleOneTap: true, 10233 googleOneTapBanner: true, 10234 customerTag: "bitLogin", 10235 redirectOneTapDesktop: null, 10236 redirectOneTapMobile: null, 10237 buttonList: { 10238 google: "Continue with Google", 10239 facebook: "Continue with Facebook", 10240 apple: "Continue with Apple", 10241 whatsapp: "Continue with WhatsApp", 10242 microsoft: "Continue with Microsoft", 10243 twitter: "Continue with X", 10244 amazon: "Continue with Amazon", 10245 instagram: "Continue with Instagram", 10246 magic_link: "Continue with Magic Link", 10247 mobile_app: "Continue with Mobile App", 10248 linkedin: "Continue with LinkedIn", 10249 }, 10250 }; 10251 10252 // Use the new setupSocialLoginButtons function to create and configure all buttons 10253 setupSocialLoginButtons(bitloginCache.config, rootRef, data, host); 10254 10255 let divider; 10256 10257 if (!data.hideDivider) { 10258 divider = document.createElement("div"); 10259 const dividerStyle = "text-align:center;margin-block:16px"; 10260 divider.setAttribute("style", dividerStyle); 10261 divider.innerHTML = data.dividerText; 10262 } 10263 10264 if (data.position === "bottom") { 10265 if (divider) { 10266 formRef.appendChild(divider); 10267 } 10268 formRef.appendChild(rootRef); 10269 } else if (data.position === "top") { 10270 if (divider) { 10271 formRef.prepend(divider); 10272 } 10273 formRef.prepend(rootRef); 10274 } 10275 } 10276 10277 10278 async function onClickSocialLogin({ provider, host }) { 10279 const rand = Math.random().toString(); 10280 10281 const locationQueryString = bitloginCache.location 10282 ? `&${objectToQueryString(bitloginCache.location)}` 10283 : ""; 10284 10285 const width = 800; 10286 const height = 600; 10287 const left = (window.screen.width / 2) - (width / 2); 10288 const top = (window.screen.height / 2) - (height / 2) - 50; 10289
10290 if(provider === 'whatsapp') { 10291 window.open( 10292 `/apps/bitlogin/whatsapp${locationQueryString ? `?${locationQueryString}` : ''}`, 10293 "mywindow", 10294 `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}` 10295 ); 10296 } else { 10297 window.open( 10298 `${apiUrl}/login/${provider}?referrerId=${rand}&shop=${host}${locationQueryString}`, 10299 "mywindow", 10300 `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}` 10301 ); 10302 } 10303 } 10304 10305 function objectToQueryString(obj) { 10306 return Object.keys(obj) 10307 .map((key) => { 10308 return encodeURIComponent(key) + "=" + encodeURIComponent(obj[key]); 10309 }) 10310 .join("&"); 10311 } 10312 10313 async function getLocation() { 10314 if (locationCacheSet) return; 10315 10316 try { 10317 const response = await fetch("https://ipapi.co/json/"); 10318 10319 if (!response.ok) { 10320 console.error(`error retrieving location...`, response.status); 10321 errorLocation = true; 10322 } else { 10323 const data = await response.json(); 10324 10325 const { city, region, country_name, country_code } = data; 10326 10327 const formattedLocationData = { 10328 city, 10329 region, 10330 country_name, 10331 country_code, 10332 }; 10333 10334 bitloginCache.location = formattedLocationData; 10335 locationCacheSet = true; 10336 errorLocation = false; 10337 } 10338 } catch (err) { 10339 console.error(`error fetching location`, err); 10340 errorLocation = true; 10341 } 10342 } 10343 10344 function post(params) { 10345 // The rest of this code assumes you are not using a library. 10346 // It can be made less verbose if you use one. 10347 const form = document.createElement("form"); 10348 form.method = "post"; 10349 form.action = `/account/login`; 10350 form.acceptCharset = "UTF-8"; 10351 form.setAttribute("data-login-with-shop-sign-in", "true"); 10352 form.setAttribute("novalidate", "novalidate"); 10353 10354 for (const key in params) { 10355 if (params.hasOwnProperty(key)) { 10356 const hiddenField = document.createElement("input"); 10357 hiddenField.type = "hidden"; 10358 hiddenField.name = key; 10359 hiddenField.value = params[key]; 10360 10361 form.appendChild(hiddenField); 10362 } 10363 } 10364 10365 document.body.appendChild(form); 10366 form.submit(); 10367 } 10368 10369 async function setupOneTap({ host, checkoutUrl }) { 10370 if (oneTapSet) return; 10371 10372 const redirectOneTapDesktop = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapDesktop || '[]')); 10373 const redirectOneTapMobile = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapMobile || '[]')); 10374 10375 const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent); 10376 const redirectList = JSON.parse(isMobile ? redirectOneTapMobile : redirectOneTapDesktop); 10377 10378 const currentPath = window.location.pathname.toLowerCase(); 10379 const currentUrl = window.location.href.toLowerCase(); 10380 10381 const shouldHideGoogleOneTap = redirectList.some(({ value }) => { 10382 switch (value) { 10383 case 'home': 10384 return currentPath === '/'; 10385 case 'product': 10386 return currentPath.startsWith('/products/'); 10387 case 'collections': 10388 return currentPath.startsWith('/collections'); 10389 case 'cart': 10390 return currentPath === '/cart'; 10391 case 'checkout': 10392 return currentPath.startsWith('/checkouts') && !currentPath.includes('thank_you'); 10393 case 'thank_you': 10394 return currentPath.includes('/thank_you'); 10395 case 'account': 10396 return currentPath.startsWith('/account'); 10397 case 'pages': 10398 return currentPath.startsWith('/pages'); 10399 case 'blogs': 10400 return currentPath === '/blogs' || currentPath === '/blogs/news'; 10401 case 'blog_post': 10402 return currentPath.startsWith('/blogs/') && currentPath.split('/').length > 3; 10403 default: 10404 return false; 10405 } 10406 }); 10407 10408 if (shouldHideGoogleOneTap) return; 10409 10410 const oneTapClientId = bitloginCache.config.find( 10411 (config) => config.provider === "GOOGLE" 10412 )?.clientId; 10413 10414 const isLoggedIn = false; 10415 10416 if (bitloginCache.appearance.googleOneTap && oneTapClientId && !isLoggedIn) { 10417 const googleOneTapButton = document.createElement("div"); 10418 googleOneTapButton.setAttribute("id", "g_id_onload"); 10419 googleOneTapButton.setAttribute("data-client_id", oneTapClientId); 10420 googleOneTapButton.setAttribute("data-context", "signin"); 10421 googleOneTapButton.setAttribute( 10422 "data-callback", 10423 "handleGoogleOneTapResponse" 10424 ); 10425 googleOneTapButton.setAttribute("data-itp_support", "true"); 10426 10427 const googleOneTapScript = document.createElement("script"); 10428 10429 googleOneTapScript.innerHTML += ` 10430 function handleGoogleOneTapResponse(response) { 10431 if (response.credential) { 10432 const idToken = response.credential; 10433 fetch('${bitLoginBaseUrl}/bitlogin/api/login/google-one-tap', { 10434 method: 'POST', 10435 headers: { 'Content-Type': 'application/json' }, 10436 body: JSON.stringify({ idToken, shop: "${host}", ...bitloginCache.location }) 10437 }).then(response => { 10438 response.json().then((data) => { 10439 post( 10440 JSON.parse( 10441 JSON.stringify({ 10442 "customer[email]": data.email, 10443 "customer[password]": data.password, 10444 form_type: "customer_login", 10445 utf8: "â", 10446 return_url: redirectUrl, 10447 }) 10448 ) 10449 ); 10450 }); 10451 }).catch(error => { 10452 console.error('Error occurred:', error); 10453 }); 10454 } else { 10455 console.error('No credential available'); 10456 } 10457 } 10458 `; 10459 10460 document.body.append(googleOneTapButton); 10461 document.body.append(googleOneTapScript); 10462 } 10463 10464 oneTapSet = true; 10465 } 10466
10467 const googleLoginIcon = ( 10468 theme, 10469 customColor 10470 ) => ` 10471 ${ 10472 theme === "match" || theme === "matchOutline" || theme === "custom" 10473 ? `<svg 10474 xmlns='https://cdn.datavip.cloud/Logo/Bagus33.png' 10475 xmlns:v='https://vecta.io/nano' 10476 width='24' 10477 height='24' 10478 viewBox='0 0 186.69 190.5' 10479 > 10480 <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="${ 10481 theme === "custom" ? customColor : "#4285f4" 10482 }"/><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="${ 10483 theme === "custom" ? customColor : "#34a853" 10484 }"/><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="${ 10485 theme === "custom" ? customColor : "#fbbc05" 10486 }"/><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="${ 10487 theme === "custom" ? customColor : "#ea4335" 10488 }" clip-path="none" mask="none"/></g> 10489 </svg>` 10490 : `<svg xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="25" height="25" viewBox="0 0 25 25" fill="none"> 10491 <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="${ 10492 theme !== "black" ? "black" : "white" 10493 }"/> 10494 <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="${ 10495 theme !== "black" ? "black" : "white" 10496 }"/> 10497 <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="${ 10498 theme !== "black" ? "black" : "white" 10499 }"/> 10500 <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="${ 10501 theme !== "black" ? "black" : "white" 10502 }"/> 10503 </svg>` 10504 }`; 10505 10506 const appleLoginIcon = ( 10507 theme, 10508 customColor 10509 ) => `<svg width="24" height="24" viewBox="0 0 19 24" fill="none" xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png"> 10510 <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="${ 10511 theme === "custom" 10512 ? customColor 10513 : theme === "match" || theme === "black" 10514 ? "white" 10515 : "black" 10516 }"/> 10517 </svg>`; 10518 10519 const facebookLoginIcon = ( 10520 theme, 10521 customColor 10522 ) => ` 10523 ${ 10524 theme === "match" || theme === "matchOutline" || theme === "custom" 10525 ? `<svg xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="24" height="25" viewBox="0 0 24 25" fill="none"> 10526 <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="${ 10527 theme === "custom" ? customColor : theme === "match" ? "white" : "#1977F3" 10528 }"/> 10529 <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="${ 10530 theme === "match" ? "#1778f2" : "transparent" 10531 }"/> 10532 </svg>` 10533 : `<svg xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" width="24" height="25" viewB
10533ox="0 0 24 25" fill="none"> 10534 <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="${ 10535 theme === "black" ? "white" : "black" 10536 }"/> 10537 <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="${ 10538 theme === "black" ? "black" : "white" 10539 }"/> 10540 </svg>` 10541 }`; 10542 10543 const whatsappLoginIcon = ( 10544 theme, 10545 customColor 10546 ) => `<svg 10547 viewBox="0 0 24 24" 10548 fill="none" 10549 width="24" 10550 height="25" 10551 xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" 10552 > 10553 <g id="SVGRepo_bgCarrier" stroke-width="0"></g> 10554 <g 10555 id="SVGRepo_tracerCarrier" 10556 stroke-linecap="round" 10557 stroke-linejoin="round" 10558 ></g> 10559 <g id="SVGRepo_iconCarrier"> 10560 <path 10561 fill-rule="evenodd" 10562 clip-rule="evenodd" 10563 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" 10564 fill="${ 10565 theme === "match" || theme === "black" 10566 ? "#ffffff" 10567 : theme === "white" 10568 ? "#000000" 10569 : theme === "matchOutline" 10570 ? "#25d366" 10571 : customColor 10572 }" 10573 ></path> 10574 </g> 10575 </svg>`; 10576 10577 const microsoftLoginIcon = ( 10578 theme, 10579 customColor 10580 ) => `<svg 10581 xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" 10582 width="25" 10583 height="25" 10584 viewBox="0 0 48 48"> 10585 <path fill="${ 10586 theme === "match" || theme == "matchOutline" 10587 ? "#ff5722" 10588 : theme === "black" 10589 ? "#ffffff" 10590 : theme === "white" 10591 ? "#000000" 10592 : customColor 10593 }" d="M6 6H22V22H6z" transform="rotate(-180 14 14)"></path> 10594 <path 10595 fill="${ 10596 theme === "match" || theme == "matchOutline" 10597 ? "#4caf50" 10598 : theme === "black" 10599 ? "#ffffff" 10600 : theme === "white" 10601 ? "#000000" 10602 : customColor 10603 }" 10604 d="M26 6H42V22H26z" 10605 transform="rotate(-180 34 14)"></path> 10606 <path 10607 fill="${ 10608 theme === "match" || theme == "matchOutline" 10609 ? "#ffc107" 10610 : theme === "black" 10611 ? "#ffffff" 10612 : theme === "white" 10613 ? "#000000" 10614 : customColor 10615 }" 10616 d="M26 26H42V42H26z" 10617 transform="rotate(-180 34 34)"></path> 10618 <path fill="${ 10619 theme === "match" || theme == "matchOutline" 10620 ? "#03a9f4" 10621 : theme === "black" 10622 ? "#ffffff" 10623 : theme === "white" 10624 ? "#000000" 10625 : customColor 10626 }" d="M6 26H22V42H6z" transform="rotate(-180 14 34)"></path> 10627 </svg>`; 10628 10629 const twitterLoginIcon = ( 10630 theme, 10631 customColor 10632 ) => `<svg 10633 xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" 10634 width="25" 10635 height="25" 10636 viewBox="0 0 48 48"> 10637 <polygon fill="${ 10638 theme === "match" || theme === "black" 10639 ? "#ffffff" 10640 : theme === "matchOutline" || theme === "white" 10641 ? "#000000" 10642 : customColor 10643 }" points="41,6 9.929,42 6.215,42 37.287,6"></polygon> 10644 <polygon 10645 fill="${ 10646 theme === "match" || theme === "black" 10647 ? "#000000" 10648 : theme === "matchOutline" || theme === "white" 10649 ? "#ffffff" 10650 : customColor 10651 }" 10652 fill-rule="evenodd" 10653 points="31.143,41 7.82,7 16.777,7 40.1,41" 10654 clip-rule="evenodd"></polygon> 10655 <path 10656 fill="${ 10657 theme === "match" || theme === "black" 10658 ? "#ffffff" 10659 : theme === "matchOutline" || theme === "white" 10660 ? "#000000" 10661 : customColor 10662 }" 10663 d="M15.724,9l20.578,30h-4.106L11.618,9H15.724 M17.304,6H5.922l24.694,36h11.382L17.304,6L17.304,6z"></path> 10664 </svg>`; 10665 10666 const amazonLoginIcon = (theme, customColor) => ` 10667 <svg 10668 xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" 10669 x="0px" 10670 y="0px" 10671 width="25" 10672 height="25"
10673 viewBox="0 0 50 50" 10674 > 10675 <path 10676 fill="${ 10677 theme === "black" 10678 ? "#ffffff" 10679 : theme === "matchOutline" 10680 ? "#FF9900" 10681 : theme === "white" || theme === "match" 10682 ? "#000000" 10683 : customColor 10684 }" 10685 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" 10686 ></path> 10687 </svg>`; 10688 10689 const instagramLoginIcon= (theme, customColor) => ` 10690 <svg 10691 width="25" 10692 height="25" 10693 viewBox="0 0 25 24" 10694 fill="none" 10695 xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png"> 10696 <path 10697 fill-rule="evenodd" 10698 clip-rule="evenodd" 10699 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.
1069964321C8.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" 10700 fill="url(#paint0_radial_378_3535)" /> 10701 <path 10702 fill-rule="evenodd" 10703 clip-rule="evenodd" 10704 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" 10705 fill="url(#paint0_radial_378_3535)" /> 10706 <path 10707 fill-rule="evenodd" 10708 clip-rule="evenodd" 10709 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.
1070964321C8.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" 10710 fill="url(#paint0_radial_378_3535)" /> 10711 <path 10712 fill-rule="evenodd" 10713 clip-rule="evenodd" 10714 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" 10715 fill="url(#paint1_radial_378_3535)" /> 10716 <defs> 10717 <radialGradient 10718 id="paint0_radial_378_3535" 10719 cx="0" 10720 cy="0" 10721 r="1" 10722 gradientUnits="userSpaceOnUse" 10723 gradientTransform="translate(17.4 22.7) rotate(-115.776) scale(27.2737 40.5665)"> 10724 <stop offset="0.24392" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF1B90' : customColor}" /> 10725 <stop offset="0.436673" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#F80261' : customColor}" /> 10726 <stop offset="0.688476" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#ED00C0' : customColor}" /> 10727 <stop offset="0.776787" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#C500E9' : customColor}" /> 10728 <stop offset="0.893155" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#7017FF' : customColor}" /> 10729 </radialGradient> 10730 <radialGradient 10731 id="paint1_radial_378_3535" 10732 cx="0" 10733 cy="0" 10734 r="1" 10735 gradientUnits="userSpaceOnUse" 10736 gradientTransform="translate(7.75 19.31) rotate(-57.4396) scale(11.8174 12.2918)"> 10737 <stop stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FFD600' : customColor}" /> 10738 <stop offset="0.484375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF6930' : customColor}" /> 10739 <stop offset="0.734375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" /> 10740 <stop offset="1" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" stop-opacity="0" /> 10741 </radialGradient> 10742 </defs> 10743 </svg>`; 10744 10745 const magicLinkLoginIcon = (theme, customColor) => ` 10746 <svg 10747 xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" 10748 width="25" 10749 height="25" 10750 fill="none"
10751 viewBox="0 0 25 25" 10752 > 10753 <path 10754 fill="${ 10755 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' || theme === 'white' ? '#000000' : customColor 10756 }" 10757 fillRule="evenodd" 10758 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" 10759 clipRule="evenodd" 10760 ></path> 10761 </svg>`; 10762 10763 const mobileAppLoginIcon = (theme, customColor) => ` 10764 <svg 10765 width="20" 10766 height="24" 10767 viewBox="0 0 12 16" 10768 fill="none" 10769 xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" 10770 > 10771 <path 10772 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" 10773 fill=${ 10774 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#FD823E' : theme === 'white' ? '#000000' : customColor 10775 } 10776 /> 10777 </svg> 10778 `; 10779 10780 const linkedinLoginIcon = (theme, customColor) => ` 10781 <svg 10782 xmlns="https://cdn.datavip.cloud/Logo/Bagus33.png" 10783 width="25" 10784 height="24" 10785 viewBox="0 0 25 24" 10786 fill="none" 10787 > 10788 <path 10789 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" 10790 fill=${ 10791 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#0A66C2' : theme === 'white' ? '#000000' : customColor 10792 } 10793 /> 10794 </svg> 10795 `; 10796 10797 function isElementVisible(element) { 10798 return ( 10799 document.body.contains(element) && 10800 getComputedStyle(element).display !== "none" && 10801 getComputedStyle(element).visibility !== "hidden" && 10802 getComputedStyle(element).opacity !== "0" && 10803 !element.hasAttribute("hidden") && 10804 !isAncestorHidden(element) 10805 ); 10806 } 10807 10808 function isAncestorHidden(element) { 10809 let parent = element.parentElement; 10810 while (parent) { 10811 if ( 10812 getComputedStyle(parent).display === "none" || 10813 getComputedStyle(parent).visibility === "hidden" || 10814 getComputedStyle(parent).opacity === "0" || 10815 parent.hasAttribute("hidden") 10816 ) { 10817 return true; 10818 } 10819 parent = parent.parentElement; 10820 } 10821 return false; 10822 } 10823 10824 function showAlert(message) { 10825 const alertBox = document.createElement("div"); 10826 alertBox.textContent = message; 10827 alertBox.style.position = "fixed"; 10828 alertBox.style.top = "20px"; 10829 alertBox.style.right = "-300px"; 10830 alertBox.style.backgroundColor = "#000000"; 10831 alertBox.style.color = "#ffffff"; 10832 alertBox.style.padding = "15px"; 10833 alertBox.style.borderRadius = "8px"; 10834 alertBox.style.zIndex = "1000"; 10835 alertBox.style.transition = 10836 "right 0.5s ease-in-out, opacity 0.5s ease-in-out"; 10837 alertBox.style.boxShadow = "0 2px 5px rgba(0, 0, 0, 0.2)"; 10838 10839 document.body.appendChild(alertBox); 10840 10841 requestAnimationFrame(() => { 10842 alertBox.style.right = "20px"; 10843 alertBox.style.opacity = "1"; 10844 }); 10845 10846 setTimeout(() => { 10847 alertBox.style.opacity = "0"; 10848 alertBox.style.right = "-300px"; 10849 10850 setTimeout(() => { 10851 document.body.removeChild(alertBox); 10852 }, 500); 10853 }, 3000); 10854 } 10855 </script>
10855 10856 10857 <style> 10858.bagusku-fixed-footer{ 10859 position:fixed; 10860 left:0; 10861 right:0; 10862 bottom:0; 10863 z-index:999; 10864 display:flex; 10865 justify-content:space-around; 10866 align-items:center; 10867 padding:10px 0; 10868 background:linear-gradient(180deg,#000000,#2b0000); 10869 border-radius:28px 28px 0 0; 10870 box-shadow:0 -6px 20px rgba(0,0,0,.7),s 10871 0 0 18px rgba(255,0,0,.6); 10872 border-top:1px solid rgba(255,255,255,.15); 10873 backdrop-filter: blur(6px); 10874} 10875 10876.bagusku-fixed-footer a{ 10877 position:relative; 10878 flex:1; 10879 max-width:80px; 10880 text-decoration:none; 10881 display:flex; 10882 flex-direction:column; 10883 align-items:center; 10884 justify-content:center; 10885 color:#fff; 10886 font-size:12px; 10887 font-weight:700; 10888 font-family:Ubuntu,system-ui,sans-serif; 10889 transition:.25s ease; 10890} 10891 10892.bagusku-fixed-footer img{ 10893 width:22px; 10894 height:22px; 10895 margin-bottom:3px; 10896 filter:drop-shadow(0 0 6px rgba(255,255,255,.35)); 10897} 10898 10899.bagusku-fixed-footer a:hover{ 10900 transform:translateY(-3px) scale(1.08); 10901 color:#ffd166; 10902} 10903 10904.bagusku-fixed-footer .cta{ 10905 transform:scale(1.25) translateY(-6px); 10906} 10907.bagusku-fixed-footer .cta img{ 10908 width:26px; 10909 height:26px; 10910} 10911 10912.footer-badge{ 10913 position:absolute; 10914 top:-6px; 10915 right:-8px; 10916 padding:2px 7px; 10917 font-size:9px; 10918 font-weight:900; 10919 border-radius:999px; 10920 color:#fff; 10921 letter-spacing:.4px; 10922 box-shadow:0 0 12px rgba(0,0,0,.6); 10923 animation:badgePulse 2s infinite; 10924 pointer-events:none; 10925} 10926 10927.badge-hot{ 10928 background:linear-gradient(to bottom, #f10000 0%, #f10000 50%, #f10000 100%); 10929 box-shadow:0 0 14px rgb(255, 217, 0); 10930} 10931 10932.badge-new{ 10933 background:linear-gradient(135deg,#00e5ff,#3b82f6); 10934 box-shadow:0 0 14px rgba(0,160,255,.9); 10935} 10936 10937@keyframes badgePulse{ 10938 0%,100%{transform:scale(1);} 10939 50%{transform:scale(1.15);} 10940} 10941 10942/* MOBILE */ 10943@media(max-width:600px){ 10944 .bagusku-fixed-footer{ 10945 padding:8px 0; 10946 } 10947 .bagusku-fixed-footer a{ 10948 font-size:11px; 10949 } 10950} 10951 </style> 10952 10953<div class="bagusku-fixed-footer"> 10954 10955 <a href="https://snooglestore.com/bingkai-foto/" target="_blank" rel="nofollow noopener"> 10956 <span class="footer-badge badge-new">NEW</span> 10957 <img src="https://veldrive.com/tCXSD8JT/iconpromo-.webp" alt="PROMO"> 10958 PROMO 10959 </a> 10960 10961 <a href="https://snooglestore.com/bingkai-foto/" target="_blank" 10962 rel="nofollow noopener" class="cta"> 10963 <span class="footer-badge badge-hot">HOT</span> 10964 <img src="https://veldrive.com/tCXSD8JT/icondaftar-.webp" alt="DAFTAR"> 10965 DAFTAR 10966 </a> 10967 10968 <a href="https://snooglestore.com/bingkai-foto/" target="_blank" rel="nofollow noopener"> 10969 <img src="https://veldrive.com/tCXSD8JT/iconlink-1.webp" alt="LINK"> 10970 LINK 10971 </a> 10972 10973</div> 10974
10975<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":"b5656eaf8e4c496898f65ed11a23293e","r":1,"spa":2}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10975
10975
10976<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":"8f645cd45c8f4fc99f8e6cc7cb4e32da","r":1,"spa":2}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10976
10976
10977<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":"9b36c9f9e3d7423ebb56a9db07d4aef2","r":1,"spa":2}' crossorigin="anonymous"></script>
10977 10978</body> 10979 </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.