1 <!doctype html> 2 <html class="no-js"> 3 <head> 4 <meta charset="utf-8"> 5 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 6 <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"> 7 <meta name="apple-itunes-app" content="app-id=1576832504"> 8 <link rel="icon" type="image/x-icon" href="images/logo-jkt8.png"> 9 <title>JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru</title> 10 <meta name="description" content="JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan."> 11 <meta name="keywords" content="jkt8, slot online, situs slot, apk slot, situs slot, bandar slot, bandar slot online" /> 12 <link rel="canonical" href="https://librosalfaguarajuvenil.com/"> 13 <link rel="amphtml" href="https://amp-jkt8.pages.dev/"/> 14 <meta property="og:type" content="JKT8"> 15 <meta property="og:title" content="JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru"> 16 <meta property="og:image" content="images/jkt8.jpg"> 17 <meta property="og:image:secure_url" content="images/jkt8.jpg"> 18 <meta property="og:image" content="images/jkt8.jpg"> 19 <meta property="og:image:secure_url" content="images/jkt8.jpg"> 20 <meta property="og:image" content="images/jkt8.jpg"> 21 <meta property="og:image:secure_url" content="images/jkt8.jpg"> 22 <meta property="og:description" content="JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan."> 23 <meta property="og:price:amount" content="10,000-,"> 24 <meta property="og:price:currency" content="IDR"> 25 <meta property="og:url" content="https://librosalfaguarajuvenil.com/"> 26 <meta property="og:site_name" content="JKT8"> 27 <meta name="twitter:site" content="@JKT8"> 28 <meta name="twitter:card" content="summary"> 29 <meta name="twitter:title" content="JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru"> 30 <meta name="twitter:description" content="JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan."> 31 <meta name="twitter:image" content="images/jkt8.jpg"> 32 <meta name="twitter:image:width" content="600"> 33 <meta name="twitter:image:height" content="600"> 34 <meta name="google-site-verification" content="IA_MLfXjOoc7UD3FBhKWT1wizoMJkoeW2RyosQu-wOM" /> 35 <link rel="shortcut icon" href="images/logo-jkt8.png" type="image/png"> 36 <meta name="theme-color" content="#ffffff"> 37 <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700&family=Poppins&display=swap" rel="stylesheet"> 38 <link href="//outerbloom.com/cdn/shop/t/138/assets/custom-styles.css?v=94643080714485117621752652418" rel="stylesheet" type="text/css" media="all" /> 39 <link rel="stylesheet" href="//outerbloom.com/cdn/shop/t/138/assets/wishlist-styles.css?v=166819525406734116961754385201">
39<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js" defer></script>
39 40 <div class="button-login-daftar"> 41 <a class="login" href="https://amp-jkt8.pages.dev/" rel="nofollow noreferrer" style="color: white;"> 42 LOGIN 43 </a> 44 <a class="register" href="https://amp-jkt8.pages.dev/" rel="nofollow noreferrer" style="color: white;"> 45 DAFTAR 46 </a> 47 </div> 48 49
49<script src="//cdnjs.cloudflare.com/ajax/libs/vissense/0.9.0/vissense.js" defer></script>
49 50 51 <!-- Bing UET --> 52
52<script> 53 (function(w,d,t,r,u) 54 { 55 var f,n,i; 56 w[u]=w[u]||[],f=function() 57 { 58 var o={ti:"343051754", tm:"shpfy_ui", enableAutoSpaTracking: true}; 59 o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad") 60 }, 61 n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function() 62 { 63 var s=this.readyState; 64 s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null) 65 }, 66 i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i) 67 }) 68 (window,document,"script","//bat.bing.com/bat.js","uetq"); 69 </script>
69 70
70<script> 71 window.uetq = window.uetq || []; 72 window.uetq.push('event', '', {"revenue_value":0,"currency":"IDR"}); 73 </script>
73 74 <!-- End Bing UET --> 75 76 <!-- Microsoft Clarity --> 77
77<script type="text/javascript"> 78 (function(c,l,a,r,i,t,y){ 79 c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; 80 t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i; 81 y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); 82 })(window, document, "clarity", "script", "h7rbxqry9k"); 83 </script>
83 84 <!-- End Microsoft Clarity --> 85 86 87 <link href="//outerbloom.com/cdn/shop/t/138/assets/combine.min.css?v=111340648424012527321754385205" rel="stylesheet" type="text/css" media="all" /> 88 89 <link href="//outerbloom.com/cdn/shop/t/138/assets/font-awesome.css?v=132324219581463622051752652421" rel="stylesheet" type="text/css" media="all" /> 90 <link rel="stylesheet" href="//code.jquery.com/ui/1.13.0/themes/base/jquery-ui.min.css"> 91 92
92<script src="//code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
92 93
93<script src="//outerbloom.com/cdn/shop/t/138/assets/combine.js?v=140218079523075729301752652421" type="text/javascript"></script>
93 94
94<script src="//code.jquery.com/ui/1.13.0/jquery-ui.min.js"></script>
94 95
95<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
95 96 <meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/15896833/digital_wallets/dialog"> 97 <link rel="alternate" type="application/json+oembed" href="https://librosalfaguarajuvenil.com/.oembed"> 98
98<script async="async" src="/checkouts/internal/preloads.js?locale=en-ID"></script>
98 99
99<script id="shopify-features" type="application/json">{"accessToken":"d2e176e59f6658d5056234d6249b3ab4","betas":["rich-media-storefront-analytics"],"domain":"outerbloom.com","predictiveSearch":true,"shopId":15896833,"locale":"en"}</script>
99 100
100<script>var Shopify = Shopify || {}; 101 Shopify.shop = "outerbloom1.myshopify.com"; 102 Shopify.locale = "en"; 103 Shopify.currency = {"active":"IDR","rate":"1.0"}; 104 Shopify.country = "ID"; 105 Shopify.theme = {"name":"web-outerbloom-shopify\/main","id":153139282135,"schema_name":null,"schema_version":null,"theme_store_id":null,"role":"main"}; 106 Shopify.theme.handle = "null"; 107 Shopify.theme.style = {"id":null,"handle":null}; 108 Shopify.cdnHost = "outerbloom.com/cdn"; 109 Shopify.routes = Shopify.routes || {}; 110 Shopify.routes.root = "/";</script>
110 111
111<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
111 112
112<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>
112 113
113<script id="shop-js-analytics" type="application/json">{"pageType":"product"}</script>
113 114
114<script defer="defer" async="async" src="//outerbloom.com/cdn/shopifycloud/shop-js/client.js" onload="window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 115 "></script>
115 116
116<script>(function() { 117 var isLoaded = false; 118 function asyncLoad() { 119 if (isLoaded) return; 120 isLoaded = true; 121 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"]; 122 for (var i = 0; i < urls.length; i++) { 123 var s = document.createElement('script'); 124 s.type = 'text/javascript'; 125 s.async = true; 126 s.src = urls[i]; 127 var x = document.getElementsByTagName('script')[0]; 128 x.parentNode.insertBefore(s, x); 129 } 130 }; 131 if(window.attachEvent) { 132 window.attachEvent('onload', asyncLoad); 133 } else { 134 window.addEventListener('load', asyncLoad, false); 135 } 136 })();</script>
136 137
137<script id="__st">var __st={"a":15896833,"offset":25200,"reqid":"78149bf2-9ab6-43c0-b2ce-821afbfe5bd0-1759566675","pageurl":"outerbloom.com\/products\/blossom-shine","u":"381e6a1da038","p":"product","rtyp":"product","rid":8144957800663};</script>
137 138
138<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
138 139
139<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>
139 140
140<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>
140 141
141<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)}}; 142 </script>
142 143
143<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 144 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); 145 </script>
145 146
146<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})}})); 147 </script>
147 148 149
149<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
149 150 <!-- /snippets/oldIE-js.liquid --> 151 152 153 <!--[if lt IE 9]> 154
154<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js" type="text/javascript"></script>
154 155
155<script src="//outerbloom.com/cdn/shop/t/138/assets/respond.min.js?v=52248677837542619231752652418" type="text/javascript"></script>
155 156 <link href="//outerbloom.com/cdn/shop/t/138/assets/respond-proxy.html" id="respond-proxy" rel="respond-proxy" /> 157 <link href="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" id="respond-redirect" rel="respond-redirect" /> 158
158<script src="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" type="text/javascript"></script>
158 159 <![endif]--> 160 161 162 163 164 165 <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"> 166 <link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch"> 167
167<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>
167 168
168<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":"JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru","vendor":"Outerbloom Florist","id":"8144957800663","untranslatedTitle":"JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru","url":"\/products\/blossom-shine","type":"JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan."},"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\":\"JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru\",\"vendor\":\"Outerbloom Florist\",\"id\":\"8144957800663\",\"untranslatedTitle\":\"JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru\",\"url\":\"\/products\/blossom-shine\",\"type\":\"JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan.\"},\"id\":\"44083045826775\",\"image\":{\"src\":\"\/\/outerbloom.com\/cdn\/shop\/files\/Blossom-Shine-WM.jpg?v=1695788426\"},\"sku\":\"OBVSTF1086\",\"title\":\"Default Title\",\"untranslatedTitle\":\"Default Title\"}}]]"});</script>
168<script> 169 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 170 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 171 window.ShopifyAnalytics.meta.currency = 'IDR'; 172 var meta = {"product":{"id":8144957800663,"gid":"gid:\/\/shopify\/Product\/8144957800663","vendor":"Outerbloom Florist","type":"JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan.","variants":[{"id":44083045826775,"price":1000000 173 ,"name":"JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru","public_title":null,"sku":"OBVSTF1086"}],"remote":false},"page":{"pageType":"product","resourceType":"product","resourceId":8144957800663}}; 174 for (var attr in meta) { 175 window.ShopifyAnalytics.meta[attr] = meta[attr]; 176 } 177 </script>
177 178
178<script class="analytics"> 179 (function () { 180 var customDocumentWrite = function(content) { 181 var jquery = null; 182 183 if (window.jQuery) { 184 jquery = window.jQuery; 185 } else if (window.Checkout && window.Checkout.$) { 186 jquery = window.Checkout.$; 187 } 188 189 if (jquery) { 190 jquery('body').append(content); 191 } 192 }; 193 194 var hasLoggedConversion = function(token) { 195 if (token) { 196 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 197 } 198 return false; 199 } 200 201 var setCookieIfConversion = function(token) { 202 if (token) { 203 var twoMonthsFromNow = new Date(Date.now()); 204 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 205 206 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 207 } 208 } 209 210 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 211 if (trekkie.integrations) { 212 return; 213 } 214 trekkie.methods = [ 215 'identify', 216 'page', 217 'ready', 218 'track', 219 'trackForm', 220 'trackLink' 221 ]; 222 trekkie.factory = function(method) { 223 return function() { 224 var args = Array.prototype.slice.call(arguments); 225 args.unshift(method); 226 trekkie.push(args); 227 return trekkie; 228 }; 229 }; 230 for (var i = 0; i < trekkie.methods.length; i++) { 231 var key = trekkie.methods[i]; 232 trekkie[key] = trekkie.factory(key); 233 } 234 trekkie.load = function(config) { 235 trekkie.config = config || {}; 236 trekkie.config.initialDocumentCookie = document.cookie; 237 var first = document.getElementsByTagName('script')[0]; 238 var script = document.createElement('script'); 239 script.type = 'text/javascript'; 240 script.onerror = function(e) { 241 var scriptFallback = document.createElement('script'); 242 scriptFallback.type = 'text/javascript'; 243 scriptFallback.onerror = function(error) { 244 var Monorail = { 245 produce: function produce(monorailDomain, schemaId, payload) { 246 var currentMs = new Date().getTime(); 247 var event = { 248 schema_id: schemaId, 249 payload: payload, 250 metadata: { 251 event_created_at_ms: currentMs, 252 event_sent_at_ms: currentMs 253 } 254 }; 255 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 256 }, 257 sendRequest: function sendRequest(endpointUrl, payload) { 258 // Try the sendBeacon API 259 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 260 var blobData = new window.Blob([payload], { 261 type: 'text/plain' 262 }); 263 264 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 265 return true; 266 } // sendBeacon was not successful 267 268 } // XHR beacon 269 270 var xhr = new XMLHttpRequest(); 271 272 try { 273 xhr.open('POST', endpointUrl); 274 xhr.setRequestHeader('Content-Type', 'text/plain'); 275 xhr.send(payload); 276 } catch (e) { 277 console.log(e); 278 } 279 280 return false; 281 }, 282 isIos12: function isIos12() { 283 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 284 } 285 }; 286 Monorail.produce('monorail-edge.shopifysvc.com', 287 'trekkie_storefront_load_errors/1.1', 288 {shop_id: 15896833, 289 theme_id: 153139282135, 290 app_name: "storefront", 291 context_url: window.location.href, 292 source_url: "//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js"}); 293 294 }; 295 scriptFallback.async = true; 296 scriptFallback.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js'; 297 first.parentNode.insertBefore(scriptFallback, first); 298 }; 299 script.async = true; 300 script.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js'; 301 first.parentNode.insertBefore(script, first); 302 }; 303 trekkie.load( 304 {"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}} 305 ); 306 307 var loaded = false; 308 trekkie.ready(function() { 309 if (loaded) return; 310 loaded = true; 311 312 window.ShopifyAnalytics.lib = window.trekkie; 313 314 var originalDocumentWrite = document.write; 315 document.write = customDocumentWrite; 316 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 317 document.write = originalDocumentWrite; 318 319 window.ShopifyAnalytics.lib.page(null,{"pageType":"product","resourceType":"product","resourceId":8144957800663,"shopifyEmitted":true}); 320 321 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 322 var token = match? match[1]: undefined; 323 if (!hasLoggedConversion(token)) {
324 setCookieIfConversion(token); 325 window.ShopifyAnalytics.lib.track("Viewed Product",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan.","nonInteraction":true,"remote":false},undefined,undefined,{"shopifyEmitted":true}); 326 window.ShopifyAnalytics.lib.track("monorail:\/\/trekkie_storefront_viewed_product\/1.1",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan.","nonInteraction":true,"remote":false,"referer":"https:\/\/outerbloom.com\/products\/blossom-shine"}); 327 } 328 }); 329 330 331 var eventsListenerScript = document.createElement('script'); 332 eventsListenerScript.async = true; 333 eventsListenerScript.src = "//outerbloom.com/cdn/shopifycloud/storefront/assets/shop_events_listener-abeef7a0.js"; 334 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 335 336 })();</script>
336 337
337<script> 338 if (!window.ga || (window.ga && typeof window.ga !== 'function')) { 339 window.ga = function ga() { 340 (window.ga.q = window.ga.q || []).push(arguments); 341 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 342 window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"}); 343 } 344 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."); 345 }; 346 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 347 window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"}); 348 } 349 } 350 </script>
350 351
351<script 352 defer 353 src="https://outerbloom.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-2.0.13.min.js" 354 data-application="storefront-renderer" 355 data-shop-id="15896833" 356 data-render-region="gcp-asia-southeast1" 357 data-page-type="product" 358 data-theme-instance-id="153139282135" 359 data-theme-name="" 360 data-theme-version="" 361 data-monorail-region="shop_domain" 362 data-resource-timing-sampling-rate="10" 363 data-shs="true" 364 data-shs-beacon="true" 365 data-shs-export-with-fetch="true" 366 data-shs-logs-sample-rate="1" 367 ></script>
367 368 </head><body 369 data-template="product" 370 id="blossom-shine" 371 class="template-product template-product" 372 > 373 <!-- Google Tag Manager (noscript) -->
vendor: 93 bytes, lines 373-376
373 374 <noscript 375 ><iframe 376 src="https://www.googletagmanager.com/ns.html?id=
376GTM-MF9VVZX
vendor: 135 bytes, lines 376-382
376" 377 height="0" 378 width="0" 379 style="display:none;visibility:hidden" 380 ></iframe 381 ></noscript> 382
382<!-- End Google Tag Manager (noscript) --> 383 384 385 386 <div class="header-wrapper"> 387 388 <div id="shopify-section-NotifBar" class="shopify-section m-0"> 389 390 <style> 391 #notification {z-index: 99;width: 100%;transition: top 0.2s ease-in-out;} 392 #notification.promo-up {top: -48px!important;} 393 .promo-bg {width: 100%;padding: 6px 0;background-color: #242424;} 394 .notification__message p {margin: 0;color: #000000;font-size: 14px!important;} 395 .notification__message p a {text-decoration: underline;color: #ffffff;} 396 @media (max-width: 991px){ 397 .notification__message p {font-size: 14px!important;} 398 } 399 </style> 400 <input id="clearCookie" class="hide" type="button" value="Delete Cookie" /> 401 <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"> 402 <div class="page-width notification__inner "> 403 404 405 <div class="notification__message text-center"> 406 <p><a href="https://librosalfaguarajuvenil.com/" title="JKT8">JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru</a></p> 407 </div> 408 </div> 409 </div> 410 411 412 413 414 </div> 415 <div id="shopify-section-new-header" class="shopify-section mb-0 mt-0"><link href="//outerbloom.com/cdn/shop/t/138/assets/section-new-header.css?v=159841885358852784021757475904" rel="stylesheet" type="text/css" media="all"/> 416 417 418 <header style="background-image: url(https://res.cloudinary.com/dih0tpwae/image/upload/v1767518757/bg_gh1lsp.jpg); background-attachment: fixed;"> 419 <div class="container"> 420 <div class="header-container row justify-content-between pl-lg-0 pr-lg-0"> 421 <a href="https://librosalfaguarajuvenil.com/"> 422 <img src="images/logo-jkt8.png" alt="logo-JKT8" style="width: 190px;"></a> 423 <link href="images/logo-jkt8.png" rel="shortcut icon" type="image/x-icon" /> 424 <div id="menu-hamburger" class="d-lg-none"> 425 <svg xmlns="images/logo-jkt8.png" width="16" height="10" viewBox="0 0 16 10" fill="none"> 426 <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"/> 427 </svg> 428 429 <a href="/"><svg xmlns="images/logo-jkt8.png" viewBox="0 0 854 78.29"> 430 <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> 431 </svg> 432 </a> 433 </div> 434 435 <div class="header-icon-right header-icons col-3"> 436 <div class="icon icon-account-header d-none d-lg-block"> 437 <a href="https://librosalfaguarajuvenil.com/"> 438 <svg xmlns="images/logo-jkt8.png" width="20" height="21" viewBox="0 0 20 21" fill="none"> 439 <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"/> 440 <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"/> 441 </svg> 442
443 </a> 444 </div> 445 <div class="icon icon-wishlist-header"> 446 <a href="https://librosalfaguarajuvenil.com/"> 447 <svg xmlns="images/logo-jkt8.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 448 <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.
44811233C11.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"/> 449 </svg> 450 451 <span class="wishlist-count d-none">0</span> 452 </a> 453 </div> 454 <div class="icon icon-cart-header"> 455 <a href="https://librosalfaguarajuvenil.com/"> 456 <svg xmlns="images/logo-jkt8.png" width="22" height="21" viewBox="0 0 22 21" fill="none"> 457 <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"/> 458 <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"/> 459 </svg> 460 461 </a> 462 </div> 463 </div> 464 </div> 465 </div> 466 </header> 467 468 <nav class="nav-header" style="background-color: #242424;"> 469 <div class="nav-account-mobile row m-0 d-lg-none"> 470 <div class="col-6 welcome-cust p-0"> 471 472 <h1 class="logo"> 473 <a href="https://librosalfaguarajuvenil.com/"> 474 <img src="images/logo-jkt8.png" alt="JKT8" style="max-height:60px;"> 475 </a> 476 </h1> 477 478 479 </div> 480 481 <div class="col-6 login-register text-right p-0"> 482 <a href="https://amp-jkt8.pages.dev/">Log In</a> | <a href="https://amp-jkt8.pages.dev/">Sign Up</a> 483 </div> 484 </div> 485 <ul class="nav-menu container"> 486 487 <li class="nav-menu container"> 488 <a href="https://librosalfaguarajuvenil.com/"> 489 <span style="color: #ffffff;">JKT8</span> 490 491 492 <li class=" nav-menu container"> 493 <a href="https://librosalfaguarajuvenil.com/"> 494 <span style="color: #ffffff;">SLOT ONLINE</span> 495 496 497 <li class=" nav-menu container"> 498 <a href="https://librosalfaguarajuvenil.com/"> 499 <span style="color: #ffffff;">SLOT APK</span> 500 501 <li class=" nav-menu container"> 502 <a href="https://librosalfaguarajuvenil.com/"> 503 <span style="color: #ffffff;">SLOT GACOR</span> 504 505 <li class=" nav-menu container"> 506 <a href="https://librosalfaguarajuvenil.com/"> 507 <span style="color: #ffffff;">SITUS SLOT</span> 508 509 <li class=" nav-menu container"> 510 <a href="https://librosalfaguarajuvenil.com/"> 511 <span style="color: #ffffff;">BANDAR SLOT ONLINE</span> 512 513 <div class="overlay-nav"> 514 <!-- Mobile Close Button in Overlay --> 515 <button id="nav-close" class="nav-close-btn d-lg-none"> 516 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="images/logo-jkt8.png"> 517 <path d="M18 6L6 18M6 6L18 18" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 518 </svg> 519 </button> 520 </div> 521 522
522<script> 523 if ($(window).width() < 992) { 524 // Level 1 menu accordion (main menu items) 525 $(".nav-menu .nav-menu container > a").click(function(e){ 526 e.preventDefault() 527 const parentLi = $(this).parent() 528 const isCurrentlyOpen = parentLi.hasClass("menu-open") 529 530 // Close all other open menus (accordion behavior) 531 $(".nav-menu .nav-menu container").not(parentLi).removeClass("menu-open") 532 $(".nav-menu .megamenu").not($(this).next(".megamenu")).slideUp() 533 534 // Toggle current menu 535 if (isCurrentlyOpen) { 536 parentLi.removeClass("menu-open") 537 $(this).next(".megamenu").slideUp() 538 } else { 539 parentLi.addClass("menu-open") 540 $(this).next(".megamenu").slideDown() 541 } 542 }) 543 544 // Level 2 menu accordion (submenu items with grandchildren) 545 $(document).on('click', '.dropdown-menu .has-submenu > a', function(e){ 546 e.preventDefault() 547 const parentLi = $(this).parent() 548 const isCurrentlyOpen = parentLi.hasClass("submenu-open") 549 const grandchild = $(this).next(".grandchild") 550 551 // Close all other open submenus in the same dropdown (accordion behavior) 552 parentLi.siblings('.has-submenu').removeClass("submenu-open") 553 parentLi.siblings('.has-submenu').find('.grandchild').slideUp() 554 parentLi.siblings('.has-submenu').find('.chevron-right').css('transform', 'rotate(0deg)') 555 556 // Toggle current submenu 557 if (isCurrentlyOpen) { 558 parentLi.removeClass("submenu-open") 559 grandchild.slideUp() 560 $(this).find('.chevron-right').css('transform', 'rotate(0deg)') 561 } else { 562 parentLi.addClass("submenu-open") 563 grandchild.slideDown() 564 $(this).find('.chevron-right').css('transform', 'rotate(90deg)') 565 } 566 }) 567 568 $("#menu-hamburger").click(function(e){ 569 e.preventDefault() 570 $("body").toggleClass("nav_open") 571 }) 572 573 // Handle close button click 574 $("#nav-close").click(function(e){ 575 e.preventDefault() 576 $("body").removeClass("nav_open") 577 // Close all open menus when close button is clicked 578 $(".nav-menu .nav-menu container").removeClass("menu-open") 579 $(".nav-menu .megamenu").slideUp() 580 $(".dropdown-menu .has-submenu").removeClass("submenu-open") 581 $(".dropdown-menu .grandchild").slideUp() 582 $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)') 583 }) 584 } 585 586 $(".overlay-nav").click(function(e){ 587 e.preventDefault() 588 $("body").removeClass("nav_open") 589 // Close all open menus when overlay is clicked 590 $(".nav-menu .nav-menu container").removeClass("menu-open") 591 $(".nav-menu .megamenu").slideUp() 592 $(".dropdown-menu .has-submenu").removeClass("submenu-open") 593 $(".dropdown-menu .grandchild").slideUp() 594 $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)') 595 }) 596 </script>
596 597 598 599 </div> 600 601 <div id="shopify-section-search-popup" class="shopify-section m-0"><style> 602 #search-trigger { 603 cursor: pointer; 604 } 605 #search-popup { 606 display: none; 607 position: fixed; 608 left: 0; 609 width: 100%; 610 top: 0; 611 height: 100%; 612 justify-content: center; 613 z-index: 9999; 614 background: rgb(196 196 196 / 30%); 615 } 616 #search-input { 617 align-self: center; 618 width: 100%; 619 height: 80px; 620 position: absolute; 621 top: 0; 622 border-bottom: 0.5px solid #A3A3A3; 623 background-color: #fff; 624 } 625 #search-input * { 626 align-self: center; 627 } 628 #search-type { 629 width: 100%; 630 border: none; 631 padding-right: 20px; 632 padding-left: 20px; 633 font-size: 16px; 634 color: #757575; 635 } 636 #search-btn { 637 font-size: 16px; 638 font-weight: 500; 639 } 640 #search-result { 641 min-height: 490px; 642 width: 100%; 643 padding-top: 80px; 644 } 645 #search-result .container { 646 background-color: #fff; 647 padding: 20px 40px; 648 } 649 body.search-popup-open { 650 /* .search-popup-open */ 651 overflow: hidden; 652 } 653 .search-popup-open #loc_delivery { 654 display: none 655 } 656 .search-header svg { 657 display: none; 658 cursor: pointer; 659 } 660 .wrapper-search-popup { 661 max-height: calc(100vh - 150px); 662 overflow-y: auto; 663 overflow-x: hidden; 664 } 665 666 .group-recommend { 667 padding: 20px 40px; 668 } 669 670 .resultsearch { 671 display: none; 672 } 673 .results { padding: 20px 40px } 674 .resultsearch label { 675 font-weight: 600; 676 padding-bottom: 20px; 677 display: block; 678 margin-bottom: 20px; 679 border-bottom: 1px solid #AAAAAA; 680 } 681 682 ul.result_product { 683 max-height: 300px; 684 overflow: auto; 685 } 686 687 .group-promotion ul { 688 margin: 0; 689 } 690 .group-promotion li { 691 list-style: none; 692 margin-bottom: 12px; 693 } 694 .group-promotion li a { 695 color: inherit; 696 } 697 698 .group-recent { 699 position: relative; 700 padding: 20px 40px; 701 } 702 .group-recent ul { 703 margin: 0; 704 } 705 .group-recent li { 706 list-style: none; 707 display: inline-block; 708 margin-right: 60px; 709 } 710 .group-recent li a { 711 color: inherit; 712 } 713 714 .last-search svg { 715 width: 20px; 716 vertical-align: middle; 717 } 718 ul.last-search a { 719 vertical-align: middle; 720 padding: 0 10px; 721 } 722 ul.last-search li span { 723 cursor: pointer; 724 } 725 .delete-all-history { 726 position: absolute; 727 top: 25px; 728 right: 40px; 729 text-decoration: underline; 730 color: #e11d1d; 731 cursor: pointer; 732 font-size: 12px; 733 } 734 735 form.search.search-modal__form { 736 position: relative; 737 } 738 739 button.search__button svg { 740 width: 25px; 741 color: #495057; 742 fill: #757582; 743 } 744 745 button.search__button.field__button { 746 position: absolute; 747 top: 50%; 748 margin-top: -12px; 749 } 750 751 .close-search { 752 display: none; 753 position: absolute; 754 right: 65px; 755 top: 10px; 756 cursor: pointer; 757 } 758 759 .site-overlay { 760 position: fixed; 761 top: 0; 762 width: 100vw; 763 height: 100vh; 764 z-index: 1000; 765 background: #0000005c; 766 visibility: hidden; 767 opacity: 0; 768 pointer-events: none; 769 transition: all .3s linear; 770 display: block !important; 771 } 772 773 .search-popup-open .site-overlay { 774 opacity: 1; 775 visibility: visible; 776 pointer-events: all; 777 z-index: -1; 778 cursor: pointer; 779 } 780 781 @media (min-width: 991px) { 782 .group-recent ul { 783 column-count: 3; 784 } 785 .group-promotion li a { 786 font-size: 12px; 787 font-weight: 400; 788 } 789 .group-recent li a { 790 font-size: 12px; 791 font-weight: 400; 792 } 793 } 794 795 .moreresult { 796 padding: 10px 40px; 797 border-top: 1px solid #AAAAAA; 798 } 799 .moreresult * { 800 align-self: center; 801 } 802 .moreresult p { 803 margin: 0; 804 font-size: 12px !important; 805 } 806 .moreresult svg { 807 width: 13px; 808 } 809 810 @media (max-width: 992px) { 811 .icon-key-mobile { 812 height: auto!important; 813 width: 10px!important; 814 } 815 body.grid-view.search-popup-open .products { 816 -ms-flex: 0 0 100%!important; 817 flex: 0 0 100%!important; 818 max-width: 100%!important; 819 } 820 button.search__button svg {
821 width: 20px; 822 } 823 #search-result { 824 padding-left: 0; 825 padding-right: 0; 826 } 827 #search-result { 828 padding-top: 55px; 829 } 830 #search-input { 831 height: 55px; 832 } 833 .group-recommend { 834 padding: 20px; 835 } 836 #search-input .container { 837 padding: 0 20px; 838 } 839 #search-type { 840 font-size: 14px; 841 } 842 #search-btn { 843 font-size: 12px; 844 text-decoration: underline; 845 } 846 .results { 847 padding: 20px; 848 } 849 .group-recommend h3 { 850 font-size: 16px; 851 } 852 .products .card-body { 853 padding: 8px 0px 10px; 854 } 855 .moreresult { 856 padding: 10px 20px; 857 } 858 } 859 </style> 860 <style type="text/css"> 861 div.advertisement-placeholder { 862 text-align: center; 863 padding-bottom: 20px; 864 display: flex; 865 flex-direction: column; 866 justify-content: center; 867 } 868 div.advertisement-text p { 869 margin: 0; 870 font-family: Open Sans; 871 font-style: normal; 872 font-weight: normal; 873 font-size: 10px; 874 line-height: 20px; 875 color: #999999; 876 } 877 div.advertisement-banner { 878 margin: 0px auto; 879 } 880 div#div-gpt-ad-billboard-placeholder { 881 width: 996px; 882 margin: 0 auto; 883 background: #F5F5F5; 884 padding-bottom: unset !important; 885 min-height: 200px; 886 } 887 div#div-gpt-ad-lb-placeholder { 888 background: #F5F5F5; 889 padding-bottom: unset !important; 890 min-height: 280px; 891 } 892 .faq-section{ 893 max-width:1200px; 894 margin:50px auto; 895 padding:40px 20px; 896 position:relative; 897 background-color: rgba(0, 0, 0, 0.1); 898 backdrop-filter: blur(25px); 899 border-radius: 20px; 900 } 901 902 .faq-section::before{ 903 content:""; 904 position:absolute; 905 top:0;left:50%; 906 transform:translateX(-50%); 907 width:80%; 908 height:2px; 909 background:linear-gradient(90deg,transparent,#00eeff,transparent) 910 } 911 912 .faq-section h2{ 913 text-align:center; 914 font-size:34px;font-weight:700; 915 margin-bottom:50px; 916 background: linear-gradient(135deg, #00eeff, #00eeff, #00eeff); 917 -webkit-background-clip:text; 918 -webkit-text-fill-color:transparent; 919 background-clip:text; 920 font-family:"Poppins",sans-serif;letter-spacing:1px 921 } 922 923 .faq-container{ 924 display:flex; 925 flex-direction:column; 926 gap:25px 927 } 928 929 .faq-item{ 930 background:linear-gradient(145deg,#0a0a0a,#1a1a1a); 931 border:2px solid #00ccff; 932 border-radius:20px;overflow:hidden; 933 transition:all .4s ease;box-shadow:0 5px 20px rgba(0,0,0,0.5) 934 } 935 936 .faq-item:hover{ 937 border-color:#00ccff; 938 transform:translateX(10px); 939 box-shadow:0 12px 35px rgba(253, 4, 4, 0.25) 940 } 941 942 .faq-question{width:100%; 943 padding:28px 35px;background:transparent; 944 color:#ffffff; 945 font-size:18px; 946 font-weight:600; 947 text-align:left; 948 border:none;cursor:pointer; 949 display:flex; 950 justify-content:space-between; 951 align-items:center; 952 font-family:"Poppins",sans-serif; 953 transition:all .3s ease 954 } 955 956 .faq-question:hover{ 957 color:#00eeff 958 } 959 960 .faq-question::after{ 961 content:'+'; 962 font-size:32px; 963 font-weight:300; 964 transition:all .4s ease; 965 color:#00eeff; 966 width:40px; 967 height:40px; 968 display:flex; 969 align-items:center; 970 justify-content:center; 971 border:2px solid #00ccff;border-radius:50%; 972 background:rgba(0, 0, 0, 0.1) 973 } 974 975 .faq-item.active .faq-question::after{ 976 transform:rotate(135deg); 977 background:linear-gradient(135deg,#00ccff,#00ccff); 978 color:#000;border-color:transparent 979 } 980 981 .faq-answer{ 982 max-height:0; 983 overflow:hidden; 984 transition:max-height .5s ease,padding .5s ease; 985 background:linear-gradient(180deg,rgba(253,228,4,0.05),transparent); 986 padding:0 35px 987 } 988 989 .faq-item.active .faq-answer{ 990 max-height:800px;padding:30px 35px; 991 border-top:1px solid rgba(253, 4, 4, 0.3) 992 } 993 994 .faq-answer p{ 995 color:#e0e0e0; 996 font-size:16px; 997 line-height:2; 998 margin:0; 999 font-family:"Poppins",sans-serif 1000 } 1001 1002 @media 1003 (max-width:768px) 1004 { 1005 1006 .faq-section 1007 {padding:30px 15px} 1008 1009 .faq-section h2 1010 {font-size:26px} 1011 1012 .faq-question 1013 {font-size:16px; 1014 padding:22px 25px} 1015 1016 .faq-question::after 1017 {width:35px; 1018 height:35px; 1019 font-size:28px} 1020 1021 .faq-answer 1022 {padding:0 25px} 1023 1024 .faq-item.active .faq-answer 1025 {padding:25px} 1026 1027 .faq-item:hover 1028 {transform:translateX(5px)} 1029 } 1030 </style> 1031 <div id="search-popup"> 1032 <div id="search-input" class="row"> 1033 <div class="container w-100"> 1034 <form 1035 action="/search" 1036 method="get" 1037 role="search" 1038 class="search search-modal__form d-flex justify-content-between" 1039 > 1040 <svg xmlns="images/logo-jkt8.png" width="20" height="20" viewBox="0 0 20 20" fill="none"> 1041 <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"/> 1042 </svg> 1043
1044 <input type="hidden" name="type" value="product"> 1045 <input 1046 type="text" 1047 id="search-type" 1048 name="q" 1049 class="search-popup" 1050 placeholder="Gifts that linger: Uncover treasures for cherished moments." 1051 > 1052 <div class="close-search"><svg xmlns="images/logo-jkt8.png" width="18" height="18" viewBox="0 0 18 18" fill="none"> 1053 <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"/> 1054 </svg> 1055 </div> 1056 <button id="search-btn">Search</button> 1057 </form> 1058 </div> 1059 </div> 1060 <div id="search-result" class="container m-auto"> 1061 <div class="container p-0"> 1062 <div class="group-promotion"> 1063 <div class="resultsearch"> 1064 <div class="row results"> 1065 <div class="col-12 col-lg-6 mb-3 mb-lg-0"> 1066 <label>SUGGESTIONS</label> 1067 <ul class="result_collection"></ul> 1068 </div> 1069 <div class="col-12 col-lg-6"> 1070 <label>PRODUCTS</label> 1071 <ul class="result_product"></ul> 1072 </div> 1073 </div> 1074 <div class="d-flex justify-content-between moreresult m-0"> 1075 <p>Search for<span></span></p> 1076 <svg version="1.1" xmlns="images/logo-jkt8.png" width="32" height="32" viewBox="0 0 32 32"> 1077 <title>icon-arrow-right</title> 1078 <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> 1079 </svg> 1080 </div> 1081 </div> 1082 </div> 1083 <div class="group-recent hide"> 1084 <h3>RECENT SEARCH</h3> 1085 <span class="delete-all-history">Hapus riwayat</span> 1086 <ul class="last-search"></ul> 1087 </div> 1088 <div class="group-recommend"> 1089 <h3>YOU MAY ALSO LIKE</h3> 1090 1091 1092 <div class="row popup-recommend c-products-grid infinite-case product-multi-"> 1093 <div class="swiper-wrapper justify-content-between" style="margin-left:1px;"> 1094 1095 1096 <div class="swiper-slide card"> 1097 1098 1099 1100 1101 <div class="products" data-lazy="false"> 1102 <div class="bg-products"> 1103 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-love-mooncake"> 1104 <svg xmlns="images/logo-jkt8.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1105 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.072
11056 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.11233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1106 </svg> 1107 1108 </div> 1109 <a href="/products/mid-autumn-of-love-mooncake"> 1110 1111 <div class="product-card-img-container p-0 position-relative"> 1112 1113 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Love-Mooncake_6b4cc10d-950d-4e1a-abf7-427b4a6912c8_350x.jpg?v=1755750898" data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Love-Mooncake_6b4cc10d-950d-4e1a-abf7-427b4a6912c8_350x.jpg?v=1755750898" alt="Mid Autumn of Love Mooncake" height="200" width="200"> 1114 </div> 1115 <div class="card-body product-card-info"> 1116 <h5 class="h5 mb-0"> 1117 Mid Autumn of Love Mooncake 1118 </h5> 1119 <div class="product-card-price"> 1120 1121 <div class="product-price-sale"> 1122 <s class="product-card-price-before card-money">Rp 588.000</s> 1123 <span class="product-card-discount small"> 1124 (-40%) 1125 </span> 1126 </div> 1127 1128 1129 1130 <div class="price-discount"> 1131 <h4 class="product-card-price-after card-money">Rp 348.000</h4> 1132 </div> 1133 1134 1135 1136 1137 1138 </div> 1139 1140 </div> 1141 </a> 1142 </div> 1143 1144 </div> 1145 1146 </div> 1147 1148 1149 1150 <div class="swiper-slide card"> 1151 1152 1153 1154 1155 <div class="products" data-lazy="false"> 1156 <div class="bg-products"> 1157 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-joy-mooncake"> 1158 <svg xmlns="images/logo-jkt8.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1159 <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.
115911233C11.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"/> 1160 </svg> 1161 1162 </div> 1163 <a href="/products/mid-autumn-of-joy-mooncake"> 1164 1165 <div class="product-card-img-container p-0 position-relative"> 1166 1167 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Joy-Mooncake_97224b06-a506-4a56-8544-59a0dccb5c17_350x.jpg?v=1755750798" data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Joy-Mooncake_97224b06-a506-4a56-8544-59a0dccb5c17_350x.jpg?v=1755750798" alt="Mid Autumn of Joy Mooncake" height="200" width="200"> 1168 </div> 1169 <div class="card-body product-card-info"> 1170 <h5 class="h5 mb-0"> 1171 Mid Autumn of Joy Mooncake 1172 </h5> 1173 <div class="product-card-price"> 1174 1175 <div class="product-price-sale"> 1176 <s class="product-card-price-before card-money">Rp 888.000</s> 1177 <span class="product-card-discount small"> 1178 (-33%) 1179 </span> 1180 </div> 1181 1182 1183 1184 <div class="price-discount"> 1185 <h4 class="product-card-price-after card-money">Rp 588.000</h4> 1186 </div> 1187 1188 1189 1190 1191 1192 </div> 1193 1194 </div> 1195 </a> 1196 </div> 1197 1198 </div> 1199 1200 </div> 1201 1202 1203 1204 <div class="swiper-slide card"> 1205 1206 1207 1208 1209 <div class="products" data-lazy="false"> 1210 <div class="bg-products"> 1211 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-fortune-mooncake"> 1212 <svg xmlns="images/logo-jkt8.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1213 <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.
121311233C11.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"/> 1214 </svg> 1215 1216 </div> 1217 <a href="/products/mid-autumn-of-fortune-mooncake"> 1218 1219 <div class="product-card-img-container p-0 position-relative"> 1220 1221 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Fortune-Mooncake_de29329d-6ab7-4592-aa00-3e9636d4a323_350x.jpg?v=1755846072" data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Fortune-Mooncake_de29329d-6ab7-4592-aa00-3e9636d4a323_350x.jpg?v=1755846072" alt="Mid Autumn of Fortune Mooncake" height="200" width="200"> 1222 </div> 1223 <div class="card-body product-card-info"> 1224 <h5 class="h5 mb-0"> 1225 Mid Autumn of Fortune Mooncake 1226 </h5> 1227 <div class="product-card-price"> 1228 1229 <div class="product-price-sale"> 1230 <s class="product-card-price-before card-money">Rp 1.188.000</s> 1231 <span class="product-card-discount small"> 1232 (-33%) 1233 </span> 1234 </div> 1235 1236 1237 1238 <div class="price-discount"> 1239 <h4 class="product-card-price-after card-money">Rp 788.000</h4> 1240 </div> 1241 1242 1243 1244 1245 1246 </div> 1247 1248 </div> 1249 </a> 1250 </div> 1251 1252 </div> 1253 1254 </div> 1255 1256 1257 1258 <div class="swiper-slide card"> 1259 1260 1261 1262 1263 <div class="products" data-lazy="false"> 1264 <div class="bg-products"> 1265 <div class="wishlist-toggle" data-product-handle="mid-autumn-festival-mooncake"> 1266 <svg xmlns="images/logo-jkt8.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1267 <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.
126711233C11.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"/> 1268 </svg> 1269 1270 </div> 1271 <a href="/products/mid-autumn-festival-mooncake"> 1272 1273 <div class="product-card-img-container p-0 position-relative"> 1274 1275 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/Mid-Autumn-Festival-Mooncake_06ea4f9c-bdaa-49de-b0ba-c3dd60fef351_350x.jpg?v=1755845965" data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-Festival-Mooncake_06ea4f9c-bdaa-49de-b0ba-c3dd60fef351_350x.jpg?v=1755845965" alt="Mid Autumn Festival Mooncake" height="200" width="200"> 1276 </div> 1277 <div class="card-body product-card-info"> 1278 <h5 class="h5 mb-0"> 1279 Mid Autumn Festival Mooncake 1280 </h5> 1281 <div class="product-card-price"> 1282 1283 <div class="product-price-sale"> 1284 <s class="product-card-price-before card-money">Rp 1.288.000</s> 1285 <span class="product-card-discount small"> 1286 (-23%) 1287 </span> 1288 </div> 1289 1290 1291 1292 <div class="price-discount"> 1293 <h4 class="product-card-price-after card-money">Rp 988.000</h4> 1294 </div> 1295 1296 1297 1298 1299 1300 </div> 1301 1302 </div> 1303 </a> 1304 </div> 1305 1306 </div> 1307 1308 </div> 1309 1310 1311 1312 <div class="swiper-slide card"> 1313 1314 1315 1316 1317 <div class="products" data-lazy="false"> 1318 <div class="bg-products"> 1319 <div class="wishlist-toggle" data-product-handle="the-jade-bouquet"> 1320 <svg xmlns="images/logo-jkt8.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1321 <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.
132111233C11.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"/> 1322 </svg> 1323 1324 </div> 1325 <a href="/products/the-jade-bouquet"> 1326 1327 <div class="product-card-img-container p-0 position-relative"> 1328 1329 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/The-Jade-Bouquet_350x.jpg?v=1751618030" data-src="//outerbloom.com/cdn/shop/files/The-Jade-Bouquet_350x.jpg?v=1751618030" alt="The Jade Bouquet" height="200" width="200"> 1330 </div> 1331 <div class="card-body product-card-info"> 1332 <h5 class="h5 mb-0"> 1333 The Jade Bouquet 1334 </h5> 1335 <div class="product-card-price"> 1336 1337 <div class="product-price-sale"> 1338 <s class="product-card-price-before card-money">Rp 435.000</s> 1339 <span class="product-card-discount small"> 1340 (-34%) 1341 </span> 1342 </div> 1343 1344 1345 1346 <div class="price-discount"> 1347 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1348 </div> 1349 1350 1351 1352 1353 1354 </div> 1355 1356 </div> 1357 </a> 1358 </div> 1359 1360 </div> 1361 1362 </div> 1363 1364 1365 1366 <div class="swiper-slide card"> 1367 1368 1369 1370 1371 <div class="products" data-lazy="false"> 1372 <div class="bg-products"> 1373 <div class="wishlist-toggle" data-product-handle="the-selena-bouquet"> 1374 <svg xmlns="images/logo-jkt8.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1375 <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.
137511233C11.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"/> 1376 </svg> 1377 1378 </div> 1379 <a href="/products/the-selena-bouquet"> 1380 1381 <div class="product-card-img-container p-0 position-relative"> 1382 1383 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/The-Selena-Bouquet_350x.jpg?v=1751618047" data-src="//outerbloom.com/cdn/shop/files/The-Selena-Bouquet_350x.jpg?v=1751618047" alt="The Selena Bouquet" height="200" width="200"> 1384 </div> 1385 <div class="card-body product-card-info"> 1386 <h5 class="h5 mb-0"> 1387 The Selena Bouquet 1388 </h5> 1389 <div class="product-card-price"> 1390 1391 <div class="product-price-sale"> 1392 <s class="product-card-price-before card-money">Rp 335.000</s> 1393 <span class="product-card-discount small"> 1394 (-29%) 1395 </span> 1396 </div> 1397 1398 1399 1400 <div class="price-discount"> 1401 <h4 class="product-card-price-after card-money">Rp 235.000</h4> 1402 </div> 1403 1404 1405 1406 1407 1408 </div> 1409 1410 </div> 1411 </a> 1412 </div> 1413 1414 </div> 1415 1416 </div> 1417 1418 1419 1420 <div class="swiper-slide card"> 1421 1422 1423 1424 1425 <div class="products" data-lazy="false"> 1426 <div class="bg-products"> 1427 <div class="wishlist-toggle" data-product-handle="the-viola-bouquet"> 1428 <svg xmlns="images/logo-jkt8.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1429 <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.
142911233C11.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"/> 1430 </svg> 1431 1432 </div> 1433 <a href="/products/the-viola-bouquet"> 1434 1435 <div class="product-card-img-container p-0 position-relative"> 1436 1437 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/The-Viola-Bouquet_350x.jpg?v=1751618053" data-src="//outerbloom.com/cdn/shop/files/The-Viola-Bouquet_350x.jpg?v=1751618053" alt="A striking bouquet featuring full pink chrysanthemums and delicate purple asters. It is elegantly wrapped in deep purple paper with a modern black and white striped accent at the base. The arrangement is tied with a pink ribbon bow, creating a full, rounded shape. This sophisticated bouquet is perfect for birthdays, anniversaries, or as a thoughtful thank-you gesture." height="200" width="200"> 1438 </div> 1439 <div class="card-body product-card-info"> 1440 <h5 class="h5 mb-0"> 1441 The Viola Bouquet 1442 </h5> 1443 <div class="product-card-price"> 1444 1445 <div class="product-price-sale"> 1446 <s class="product-card-price-before card-money">Rp 385.000</s> 1447 <span class="product-card-discount small"> 1448 (-25%) 1449 </span> 1450 </div> 1451 1452 1453 1454 <div class="price-discount"> 1455 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1456 </div> 1457 1458 1459 1460 1461 1462 </div> 1463 1464 </div> 1465 </a> 1466 </div> 1467 1468 </div> 1469 1470 </div> 1471 1472 1473 1474 <div class="swiper-slide card"> 1475 1476 1477 1478 1479 <div class="products" data-lazy="false"> 1480 <div class="bg-products"> 1481 <div class="wishlist-toggle" data-product-handle="the-minerva-bouquet"> 1482 <svg xmlns="images/logo-jkt8.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1483 <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.
148311233C11.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"/> 1484 </svg> 1485 1486 </div> 1487 <a href="/products/the-minerva-bouquet"> 1488 1489 <div class="product-card-img-container p-0 position-relative"> 1490 1491 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/The-Minerva-Bouquet_350x.jpg?v=1751618061" data-src="//outerbloom.com/cdn/shop/files/The-Minerva-Bouquet_350x.jpg?v=1751618061" alt="The Minerva Bouquet" height="200" width="200"> 1492 </div> 1493 <div class="card-body product-card-info"> 1494 <h5 class="h5 mb-0"> 1495 The Minerva Bouquet 1496 </h5> 1497 <div class="product-card-price"> 1498 1499 <div class="product-price-sale"> 1500 <s class="product-card-price-before card-money">Rp 385.000</s> 1501 <span class="product-card-discount small"> 1502 (-25%) 1503 </span> 1504 </div> 1505 1506 1507 1508 <div class="price-discount"> 1509 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1510 </div> 1511 1512 1513 1514 1515 1516 </div> 1517 1518 </div> 1519 </a> 1520 </div> 1521 1522 </div> 1523 1524 </div> 1525 1526 1527 1528 <div class="swiper-slide card"> 1529 1530 1531 1532 1533 <div class="products" data-lazy="false"> 1534 <div class="bg-products"> 1535 <div class="wishlist-toggle" data-product-handle="congraduations-bouquet"> 1536 <svg xmlns="images/logo-jkt8.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1537 <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.
153711233C11.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"/> 1538 </svg> 1539 1540 </div> 1541 <a href="/products/congraduations-bouquet"> 1542 1543 <div class="product-card-img-container p-0 position-relative"> 1544 1545 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/Congraduations-Bouquet_350x.jpg?v=1749545306" data-src="//outerbloom.com/cdn/shop/files/Congraduations-Bouquet_350x.jpg?v=1749545306" alt="Congraduations Bouquet" height="200" width="200"> 1546 </div> 1547 <div class="card-body product-card-info"> 1548 <h5 class="h5 mb-0"> 1549 Congraduations Bouquet 1550 </h5> 1551 <div class="product-card-price"> 1552 1553 <div class="product-price-sale"> 1554 <s class="product-card-price-before card-money">Rp 380.000</s> 1555 <span class="product-card-discount small"> 1556 (-25%) 1557 </span> 1558 </div> 1559 1560 1561 1562 <div class="price-discount"> 1563 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1564 </div> 1565 1566 1567 1568 1569 1570 </div> 1571 1572 </div> 1573 </a> 1574 </div> 1575 1576 </div> 1577 1578 </div> 1579 1580 1581 1582 <div class="swiper-slide card"> 1583 1584 1585 1586 1587 <div class="products" data-lazy="false"> 1588 <div class="bg-products"> 1589 <div class="wishlist-toggle" data-product-handle="grad-gorgeous-bouquet"> 1590 <svg xmlns="images/logo-jkt8.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1591 <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.
159111233C11.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"/> 1592 </svg> 1593 1594 </div> 1595 <a href="/products/grad-gorgeous-bouquet"> 1596 1597 <div class="product-card-img-container p-0 position-relative"> 1598 1599 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/Grad-_-Gorgeous-Bouquet_350x.jpg?v=1749545297" data-src="//outerbloom.com/cdn/shop/files/Grad-_-Gorgeous-Bouquet_350x.jpg?v=1749545297" alt="Grad & Gorgeous Bouquet" height="200" width="200"> 1600 </div> 1601 <div class="card-body product-card-info"> 1602 <h5 class="h5 mb-0"> 1603 Grad & Gorgeous Bouquet 1604 </h5> 1605 <div class="product-card-price"> 1606 1607 <div class="product-price-sale"> 1608 <s class="product-card-price-before card-money">Rp 380.000</s> 1609 <span class="product-card-discount small"> 1610 (-25%) 1611 </span> 1612 </div> 1613 1614 1615 1616 <div class="price-discount"> 1617 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1618 </div> 1619 1620 1621 1622 1623 1624 </div> 1625 1626 </div> 1627 </a> 1628 </div> 1629 1630 </div> 1631 1632 </div> 1633 1634 1635 </div> 1636 </div> 1637 1638 </div> 1639 </div> 1640 </div> 1641 1642 <div class="site-overlay" style="display: none"></div> 1643 </div> 1644
1644<script> 1645 1646 var swiper = new Swiper('.popup-recommend', { 1647 slidesPerView : 4, 1648 spaceBetween: 30, 1649 lazy: true , 1650 speed: 300, 1651 breakpoints: { 1652 // when window width is <= 576px 1653 576: { 1654 slidesPerView: 2, 1655 spaceBetween: 10, 1656 freeMode: true, 1657 resistance : true, 1658 resistanceRatio : 0, 1659 freeModeMomentumRatio : 0.45, 1660 freeModeMomentumVelocityRatio : 1.5 1661 }, 1662 768: { 1663 slidesPerView: 2, 1664 spaceBetween: 10 1665 }, 1666 992: { 1667 slidesPerView: 3, 1668 spaceBetween: 20 1669 } 1670 } 1671 }); 1672 1673 const searchContainer = $("#search-popup") 1674 const searchInput = $(".search-popup") 1675 const result_collection = $('.result_collection') 1676 const result_product = $('.result_product') 1677 const resultsearch = $('.resultsearch') 1678 const resultrecommend = $(".group-recommend") 1679 const moreresult = $(".moreresult") 1680 1681 searchInput.keyup(function(){ 1682 const input = $(this).val() 1683 moreresult.find("p span").text(` â${input}â`) 1684 if(input.length > 2) { 1685 $(".close-search").show() 1686 const url = `https://outerbloom.com/search/suggest.json?resources[limit]=10&resources[limit_scope]=each&resources[type]=collection,product&q=${input}` 1687 $.ajax({
1688 type: 'GET', 1689 url, 1690 beforeSend: function() { 1691 // setting a timeout 1692 // $(placeholder).addClass('loading'); 1693 }, 1694 success: function(response) { 1695 resultsearch.show() 1696 resultrecommend.hide() 1697 result_collection.html("") 1698 result_product.html("") 1699 const collections = response.resources.results.collections 1700 const products = response.resources.results.products 1701 let collection_length = collections.length 1702 let product_length = products.length 1703 // if(collections.length > 5) { 1704 // collection_length = 5 1705 // } 1706 // if(products.length > 5) { 1707 // product_length = 5 1708 // } 1709 for(let i=0;i<collection_length;i++){ 1710 const title = collections[i].title 1711 const url = collections[i].url 1712 let html_collection 1713 if(!title.includes('AIA') && !title.includes('AXA') && !title.includes('WOM') && !title.includes('Upsell')) { 1714 html_collection = ` 1715 <li class="item" data-title="${title}"> 1716 <a href="${url}" data-type="collection" class="item_url" data-title="${title}" data-url="${url}">${title}</a> 1717 </li> 1718 ` 1719 } 1720 result_collection.append(html_collection) 1721 } 1722 for(let i=0;i<product_length;i++){ 1723 const title = products[i].title 1724 const url = products[i].url 1725 const image = products[i].featured_image.url 1726 const vendor = products[i].vendor 1727 let html_product 1728 if(vendor !== 'AIA' && vendor !== 'AXA' && vendor !== 'WOM Finance' && !title.includes('Extra Shipping Cost') && !title.includes('[US]') && !title.includes('Rp')){ 1729 html_product = ` 1730 <li class="item" data-vendor="${vendor}"> 1731 <a href="${url}" class="item_url" data-type="product" data-title="${title}" data-url="${url}"> 1732 <img src="${image}" alt="${title}" style="width: 70px;vertical-align: middle;margin-right: 20px;"><span>${title}</span> 1733 </a> 1734 </li> 1735 ` 1736 } 1737 result_product.append(html_product) 1738 } 1739 }, 1740 error: function(xhr) { // if error occured 1741 alert("Error occured.please try again"); 1742 }, 1743 complete: function(response) { 1744 // $(placeholder).removeClass('loading'); 1745 }, 1746 dataType: 'JSON' 1747 }); 1748 } else { 1749 result_collection.html("") 1750 result_product.html("") 1751 1752 resultsearch.hide() 1753 resultrecommend.show() 1754 } 1755 }) 1756 1757 moreresult.click(function(){ 1758 $("#search-btn").trigger("click"); 1759 }) 1760 1761 $(".close-search").click(function(){ 1762 $(this).hide() 1763 searchInput.val("") 1764 searchInput.focus() 1765 resultsearch.hide() 1766 resultrecommend.show() 1767 }) 1768 1769 function setCookie(name,value,days) { 1770 var expires = ""; 1771 if (days) { 1772 var date = new Date(); 1773 date.setTime(date.getTime() + (days*24*60*60*1000)); 1774 expires = "; expires=" + date.toUTCString(); 1775 } 1776 document.cookie = name + "=" + (value || "") + expires + "; path=/"; 1777 } 1778 function getCookie(name) { 1779 var nameEQ = name + "="; 1780 var ca = document.cookie.split(';'); 1781 for(var i=0;i < ca.length;i++) { 1782 var c = ca[i]; 1783 while (c.charAt(0)==' ') c = c.substring(1,c.length); 1784 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 1785 } 1786 return null; 1787 } 1788 let last_search_name = [] 1789 let last_search_url = [] 1790 $(".group-recent").hide() 1791 if(getCookie("last_search_name") != null && getCookie("last_search_url") != null){ 1792 if(getCookie("last_search_name") != "" && getCookie("last_search_url") != ""){ 1793 $(".group-recent").show() 1794 last_search_name = getCookie("last_search_name"); 1795 last_search_url = getCookie("last_search_url"); 1796 const arrName = last_search_name.substring(1).split(',').reverse() 1797 const arrUrl = last_search_url.substring(1).split(',').reverse() 1798 console.log(arrName, 'Array Name') 1799 console.log(arrUrl, 'Array Url') 1800 let length = arrName.length 1801 if(arrName.length > 5) { 1802 length = 5 1803 } 1804 for(let n=0;n<length;n++){ 1805 let html2 = `<li><svg viewBox="0 0 24 24" xmlns="images/logo-jkt8.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]}">
1805${arrName[n]}</a><span data-title="${arrName[n]}" data-url="${arrUrl[n]}"></span></li>` 1806 $(".group-recent ul").append(html2) 1807 } 1808 } 1809 } 1810 console.log(last_search_name, 'Name') 1811 console.log(last_search_url, 'url') 1812 1813 resultsearch.delegate(".item a", "click", function(){ 1814 let name = [last_search_name] 1815 let url = [last_search_url] 1816 name.push($(this).attr('data-title')) 1817 url.push($(this).attr('data-url')) 1818 setCookie("last_search_name",name,7); 1819 setCookie("last_search_url",url,7); 1820 }) 1821 1822 $(".delete-all-history").click(function() { 1823 setCookie("last_search_name",null,0); 1824 setCookie("last_search_url",null,0); 1825 $(".last-search").hide(); 1826 setTimeout(function(){ 1827 location.reload(); 1828 }, 500); 1829 }) 1830 1831 $("#search-trigger").click(function(){ 1832 search_open() 1833 }) 1834 $(".icon-search-mobile").click(function(){ 1835 search_open() 1836 }) 1837 $(".search-header svg").click(function(){ 1838 search_close() 1839 }) 1840 $(".icon-key-mobile").click(function(){ 1841 search_close() 1842 }) 1843 1844 function search_open() { 1845 $("body").addClass("search-popup-open") 1846 $("#nav-mobile-icon, .search-header label, .icon-search-mobile").hide() 1847 $("#search-popup, .search-header svg, .icon-key-mobile").show() 1848 $(".search-popup").focus() 1849 $('.popup-recommend')[0].swiper.update(); 1850 } 1851 function search_close() { 1852 $("body").removeClass("search-popup-open") 1853 $("#nav-mobile-icon, .search-header label, .icon-search-mobile").show() 1854 $("#search-popup, .search-header svg, .icon-key-mobile").hide() 1855 searchInput.val("") 1856 resultsearch.hide() 1857 resultrecommend.show() 1858 } 1859 1860 $(".site-overlay").click(function(){ 1861 search_close() 1862 }) 1863 </script>
1863 1864 1865 </div> 1866 </div> 1867 1868 <div id="PageContainer" class="is-moved-by-drawerx" style="background-color: #000000;"> 1869 <main class="main-content pt-0" role="main"> 1870 1871 <div id="breadcrumbProduct" class="d-none d-lg-block"> 1872 <style> 1873 #breadcrumbProduct { 1874 padding: 20px 0; 1875 } 1876 #breadcrumbProduct ul { 1877 display: flex; 1878 padding: 0; 1879 list-style: none; 1880 margin: 0; 1881 gap: 12px; 1882 } 1883 #breadcrumbProduct ul li { 1884 text-transform: uppercase; 1885 margin: 0; 1886 font-size: 12px; 1887 } 1888 #breadcrumbProduct ul li a { 1889 color: #757575; 1890 } 1891 1892 #breadcrumbProduct ul li svg { 1893 width: 10px; 1894 height: 10px; 1895 padding: 0; 1896 color: #757575; 1897 vertical-align: middle; 1898 } 1899 </style> 1900 <div class="container" style="color: #ffffff;"> 1901 <ul role="navigation" aria-label="breadcrumbs"> 1902 <li><a href="https://librosalfaguarajuvenil.com/" style="color: #ffffff;">JKT8</a></li> 1903 <li><svg xmlns="images/logo-jkt8.png" width="7" height="10" viewBox="0 0 7 10" fill="none"> 1904 <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"/> 1905 </svg></li> 1906 <li>BANDAR SLOT</li> 1907 <li>SLOT ONLINE</li> 1908 <li>BANDAR SLOT ONLINE</li> 1909 <li>JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru</li> 1910 1911 </ul> 1912 </div> 1913 1914 </div> 1915 1916
1916<script type="application/ld+json"> 1917 { 1918 "@context": "https://schema.org", 1919 "@type": "Product", 1920 "name": "JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru", 1921 "image": "images/jkt8.jpg", 1922 "description": "JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan.", 1923 "brand": { 1924 "@type": "Brand", 1925 "name": "JKT8" 1926 }, 1927 "sku": "JKT8", 1928 "mpn": "JKT8", 1929 "url": "https://librosalfaguarajuvenil.com/", 1930 "offers": { 1931 "@type": "Offer", 1932 "url": "https://librosalfaguarajuvenil.com/", 1933 "priceCurrency": "USD", 1934 "price": "10.00", 1935 "priceValidUntil": "2025-12-25", 1936 "itemCondition": "https://schema.org/NewCondition", 1937 "availability": "https://schema.org/InStock", 1938 "seller": { 1939 "@type": "Organization", 1940 "name": "JKT8" 1941 } 1942 }, 1943 "aggregateRating": { 1944 "@type": "AggregateRating", 1945 "ratingValue": "5.0", 1946 "reviewCount": 837 1947 }, 1948 "review": [ 1949 { 1950 "@type": "Review", 1951 "reviewRating": { 1952 "@type": "Rating", 1953 "ratingValue": "5", 1954 "bestRating": "5" 1955 }, 1956 "author": { 1957 "@type": "Person", 1958 "name": "juandi" 1959 } 1960 }, 1961 { 1962 "@type": "Review", 1963 "reviewRating": { 1964 "@type": "Rating", 1965 "ratingValue": "5", 1966 "bestRating": "5" 1967 }, 1968 "author": { 1969 "@type": "Person", 1970 "name": "situmorang" 1971 } 1972 } 1973 ] 1974 } 1975 </script>
1975<script type="application/ld+json"> 1976 { 1977 "@context": "https://schema.org", 1978 "@type": "BreadcrumbList", 1979 "itemListElement": [ 1980 { 1981 "@type": "ListItem", 1982 "position": 1, 1983 "name": "JKT8", 1984 "item": "https://librosalfaguarajuvenil.com/" 1985 }, 1986 { 1987 "@type": "ListItem", 1988 "position": 2, 1989 "name": "SLOT ONLINE", 1990 "item": "https://librosalfaguarajuvenil.com/" 1991 }, 1992 { 1993 "@type": "ListItem", 1994 "position": 3, 1995 "name": "SLOT GACOR", 1996 "item": "https://librosalfaguarajuvenil.com/" 1997 }, 1998 { 1999 "@type": "ListItem", 2000 "position": 4, 2001 "name": "BANDAR SLOT", 2002 "item": "https://librosalfaguarajuvenil.com/" 2003 }, 2004 { 2005 "@type": "ListItem", 2006 "position": 5, 2007 "name": "SITUS SLOT", 2008 "item": "https://librosalfaguarajuvenil.com/" 2009 }, 2010 { 2011 "@type": "ListItem", 2012 "position": 6, 2013 "name": "SLOT APK", 2014 "item": "https://librosalfaguarajuvenil.com/" 2015 }, 2016 { 2017 "@type": "ListItem", 2018 "position": 7, 2019 "name": "BANDAR SLOT ONLINE", 2020 "item": "https://librosalfaguarajuvenil.com/" 2021 }, 2022 { 2023 "@type": "ListItem", 2024 "position": 8, 2025 "name": "JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru", 2026 "item": "https://librosalfaguarajuvenil.com/" 2027 } 2028 ] 2029 } 2030 </script>
2030 2031 2032 <!--faq--> 2033 2034
2034<script type="application/ld+json" id="faq-schema"> 2035{ 2036 "@context": "https://schema.org", 2037 "@type": "FAQPage", 2038 "mainEntity": [ 2039 { 2040 "@type": "Question", 2041 "name": "Apa itu JKT8?", 2042 "acceptedAnswer": { 2043 "@type": "Answer", 2044 "text": "JKT8 merupakan platform bermain slot online terbaru yang pastinya menyediakan layanan slot deposit pulsa XL dan Telkomsel tanpa potongan selamanya dengan minimal deposit hanya 10k." 2045 } 2046 }, 2047 { 2048 "@type": "Question", 2049 "name": "Apakah JKT8 bisa diakses lewat situs dan aplikasi?", 2050 "acceptedAnswer": { 2051 "@type": "Answer", 2052 "text": "JKT8 menyediakan akses lewat situs resmi dan juga apk jkt8 untuk pengguna yang ingin pengalaman lebih praktis di HP." 2053 } 2054 }, 2055 { 2056 "@type": "Question", 2057 "name": "Apakah JKT8 APK aman digunakan?", 2058 "acceptedAnswer": { 2059 "@type": "Answer", 2060 "text": "JKT8 APK versi resmi menggunakan sistem keamanan yang sama dengan situs, sehingga data dan aktivitas login tetap terlindungi." 2061 } 2062 }, 2063 { 2064 "@type": "Question", 2065 "name": "Apakah JKT8 dapat diakses melalui semua perangkat?", 2066 "acceptedAnswer": { 2067 "@type": "Answer", 2068 "text": "Ya. Platform ini bisa diakses melalui smartphone Android, iOS, maupun PC/laptop menggunakan browser tanpa perlu aplikasi tambahan." 2069 } 2070 }, 2071 { 2072 "@type": "Question", 2073 "name": "Apakah JKT8 menyediakan layanan customer service?", 2074 "acceptedAnswer": { 2075 "@type": "Answer", 2076 "text": "Ya. Tersedia layanan customer service 24/7 melalui live chat atau kontak resmi untuk membantu dalam proses pendaftaran, deposit, maupun kendala teknis." 2077 } 2078 } 2079 ] 2080} 2081</script>
2081 2082
2082<script type="application/ld+json"> 2083 { 2084 "@context": "https://schema.org", 2085 "@type": "Organization", 2086 "name": "JKT8", 2087 "url": "https://librosalfaguarajuvenil.com/", 2088 "logo": "images/logo-jkt8.png", 2089 "sameAs": [ 2090 "https://www.facebook.com/jkt8", 2091 "https://twitter.com/jkt8", 2092 "https://www.instagram.com/jkt8" 2093 ], 2094 "contactPoint": { 2095 "@type": "ContactPoint", 2096 "telephone": "+62-812-1395-3519", 2097 "contactType": "customer support", 2098 "areaServed": "ID", 2099 "availableLanguage": ["Indonesian", "English"] 2100 } 2101 } 2102 </script>
2102 2103 2104
2104<script type="application/ld+json"> 2105 { 2106 "@context": "https://schema.org", 2107 "@type": "VideoObject", 2108 "name": "JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru", 2109 "description": "JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan.", 2110 "thumbnailUrl": [ 2111 "images/jkt8.jpg", 2112 "images/jkt8.jpg" 2113 ], 2114 "uploadDate": "2025-09-28T04:19:10-04:00", 2115 "duration": "PT168", 2116 "contentUrl": "https://librosalfaguarajuvenil.com/" 2117 } 2118 </script>
2118 2119 2120
2120<script type="application/ld+json"> 2121 { 2122 "@context": "https://schema.org", 2123 "@type": "BreadcrumbList", 2124 "itemListElement": [ 2125 { 2126 "@type": "ListItem", 2127 "position": 1, 2128 "name": "Home", 2129 "item": "https://librosalfaguarajuvenil.com/" 2130 } 2131 ] 2132 } 2133 </script>
2133 2134 2135
2135<script type="application/ld+json"> 2136 { 2137 "@context": "https://schema.org", 2138 "@graph": [ 2139 { 2140 "@type": "Organization", 2141 "@id": "https://librosalfaguarajuvenil.com/#org", 2142 "name": "JKT8", 2143 "url": "https://librosalfaguarajuvenil.com/", 2144 "logo": "images/jkt8.jpg" 2145 }, 2146 { 2147 "@type": "WebSite", 2148 "@id": "https://librosalfaguarajuvenil.com/#website", 2149 "url": "https://librosalfaguarajuvenil.com/", 2150 "name": "JKT8", 2151 "publisher": { "@id": "https://librosalfaguarajuvenil.com/#org" }, 2152 "inLanguage": "id-ID", 2153 "potentialAction": { 2154 "@type": "SearchAction", 2155 "target": "https://librosalfaguarajuvenil.com/?s={search_term_string}", 2156 "query-input": "required name=search_term_string" 2157 } 2158 }, 2159 { 2160 "@type": "SoftwareApplication", 2161 "@id": "https://librosalfaguarajuvenil.com/#app", 2162 "name": "JKT8", 2163 "applicationCategory": "GameApplication", 2164 "operatingSystem": "Android, iOS, Windows", 2165 "offers": { "@type": "Offer", "price": "0", "priceCurrency": "IDR" }, 2166 "aggregateRating": { "@type": "AggregateRating", "ratingValue": 4.9, "ratingCount": 61385 } 2167 } 2168 ] 2169 } 2170 </script>
2170 2171 2172 <div id="shopify-section-Product" class="shopify-section product-section mt-0"><link href="https://asset-jko.b-cdn.net/footer-warna.css" rel="stylesheet" type="text/css" media="all" /> 2173 2174 2175 <style> 2176 .bg-card { 2177 background-color: #000000; 2178 } 2179 </style> 2180 2181 <!-- /templates/product.liquid --> 2182 2183 2184 <!-- <div itemscope itemtype="http://schema.org/Product"> --> 2185 2186 2187 <div class="product-standing-flower" data-product-type="flowerBoard"> 2188 <meta itemprop="url" content="https://librosalfaguarajuvenil.com/"> 2189 <meta itemprop="image" content="images/jkt8.jpg"> 2190 2191 2192 2193 <input id="data-sku" type="hidden" value="OBVSTF1086"> 2194 <div class="product-single" style="background-image: url(https://res.cloudinary.com/dih0tpwae/image/upload/v1767518757/bg_gh1lsp.jpg); background-attachment: fixed;"> 2195 <div id="product-top" class="container"> 2196 <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;"> 2197 <div id="product-image" class="col-lg-7 text-center"> 2198 <div class="product-image"> 2199 <div class="row no-gutters"> 2200 2201 <div id="product-featured-image" class="row w-100"> 2202 2203 <div id="thumb-image-product" class="col-lg-2 col-12 d-none d-lg-block"> 2204 2205 <div class="swiper-container gallery-thumbs" style="min-height: 500px"> 2206 <ul class="list-unstyled slider swiper-wrapper slider-nav ProductThumbs thumbnails" id="ProductThumbsx"> 2207 2208 <li class="swiper-slide" data-type="image"> 2209 <a 2210 href="files/Blossom-Shine-WM.jpg" 2211 data-standard="images/jkt8.jpg" 2212 data-image="files/Blossom-Shine-WM.jpg" 2213 data-position="1" 2214 class="product-single__thumbnail" 2215 > 2216 <img 2217 class="lazyload w-100" 2218 src="images/jkt8.jpg" 2219 alt="JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru" 2220 width="" 2221 height="" 2222 > 2223 </a> 2224 </li> 2225 2226 2227 2228 2229 <li class="swiper-slide" data-type="image"> 2230 <a 2231 href="images/jkt8.jpg" 2232 data-standard="images/jkt8.jpg" 2233 data-image="images/jkt8.jpg" 2234 data-position="2" 2235 class="product-single__thumbnail" 2236 > 2237 <img 2238 class="lazyload w-100" 2239 src="images/jkt8.jpg" 2240 alt="JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru" 2241 width="" 2242 height="" 2243 > 2244 </a> 2245 </li> 2246 2247 2248 2249 2250 <li class="swiper-slide" data-type="image"> 2251 <a 2252 href="files/Blossom-Shine_3-WM.jpg" 2253 data-standard="images/jkt8.jpg" 2254 data-image="files/Blossom-Shine_3-WM.jpg" 2255 data-position="3" 2256 class="product-single__thumbnail" 2257 > 2258 <img 2259 class="lazyload w-100" 2260 src="images/jkt8.jpg" 2261 alt="JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru" 2262 width="" 2263 height="" 2264 > 2265 </a> 2266 </li> 2267 2268 2269 2270 2271 <li class="swiper-slide" data-type="image"> 2272 <a 2273 href="files/Blossom-Shine_4.jpg" 2274 data-standard="images/jkt8.jpg" 2275 data-image="files/Blossom-Shine_4.jpg" 2276 data-position="4" 2277 class="product-single__thumbnail" 2278 > 2279 <img 2280 class="lazyload w-100" 2281 src="images/jkt8.jpg" 2282 alt="JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru" 2283 width="" 2284 height="" 2285 > 2286 </a> 2287 </li> 2288 2289 2290 2291 </ul> 2292 </div> 2293 2294 </div> 2295 2296 <div 2297 id="featured-image-product" 2298 class="col-lg-10 col-12 d-none d-lg-block" 2299 > 2300 <div class="swiper-container gallery-top"> 2301 <div class="swiper-slide product-single__image"> 2302 2303 <div class="product-single__photos slider slider-for" id="ProductPhoto"> 2304 2305 2306 <div class="easyzoom easyzoom--overlay easyzoom--with-thumbnails"> 2307 <a href="images/jkt8.jpg"> 2308 <img 2309 src="images/jkt8.jpg" 2310 alt="JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru" 2311 id="ProductPhotoImg" 2312 class="lazyload" 2313 > 2314 2315 </a> 2316 </div> 2317 </div> 2318 2319 </div> 2320 <div class="swiper-slide product-single__video" style="display: none"> 2321 <video 2322 src="https://cdn.shopify.com/videos/c/vp/05d379ea115d41c2bd0f7d08b1496bd9/05d379ea115d41c2bd0f7d08b1496bd9.HD-1080p-7.2Mbps-24002195.mp4" 2323 playsinline 2324 loop 2325 muted 2326 ></video> 2327 </div> 2328 </div> 2329 </div> 2330 </div> 2331 2332 <div id="featured-image-product2" class="col-12 d-lg-none"> 2333 <div class="swiper-container gallery-mobile"> 2334 <ul class="swiper-wrapper"> 2335 <li class="swiper-slide img"> 2336 2337 <img 2338 class="swiper-lazy" 2339 src="images/jkt8.jpg" 2340 data-src="images/jkt8.jpg" 2341 alt="JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru" 2342 width="" 2343 height="" 2344 > 2345 2346 </li> 2347 2348 2349 <li class="swiper-slide img"> 2350 2351 <img 2352 class="swiper-lazy" 2353 src="images/jkt8.jpg" 2354 data-src="images/jkt8.jpg" 2355 alt="JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru" 2356 width="" 2357 height="" 2358 > 2359 2360 </li> 2361 2362 2363 <li class="swiper-slide img"> 2364 2365 <img 2366 class="swiper-lazy" 2367 src="images/jkt8.jpg" 2368 data-src="images/jkt8.jpg" 2369 alt="JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru" 2370 width="" 2371 height="" 2372 > 2373 2374 </li> 2375 2376 2377 <li class="swiper-slide img"> 2378 2379 <img 2380 class="swiper-lazy" 2381 src="images/jkt8.jpg" 2382 data-src="images/jkt8.jpg" 2383 alt="JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru" 2384 width="" 2385 height="" 2386 > 2387 2388 </li> 2389 2390 2391 </ul> 2392 2393 <div class="swiper-button-prev"><svg class="icon icon-chevron-left" xmlns="images/logo-jkt8.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> 2394 <div class="swiper-button-next">
2394<svg xmlns="images/logo-jkt8.png" width="7" height="10" viewBox="0 0 7 10" fill="none"> 2395 <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"/> 2396 </svg></div> 2397 2398 <!-- Add Pagination --> 2399 <div class="swiper-pagination"></div> 2400 2401 </div> 2402 </div> 2403 2404 <div class="product-m-pageleb-video col-12 text-center d-lg-none"> 2405 <!-- product video --> 2406 <style> 2407 .view-video{display:block; margin:auto; padding:5px 10px;font-size:16px;font-weight:bold;border:2px solid #ffffff;background:#fff;} 2408 .view-video .icon-play{fill:#ffffff;vertical-align: middle;} 2409 .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;} 2410 .close-video{position:absolute;right:9px; top:8%;z-index:2;padding:5px;} 2411 .close-video .icon{width:30px;height:30px;} 2412 /*responsive iframe */ 2413 .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);} 2414 .video-container iframe {position: absolute;top:60%;left: 0;width: 100%;height: 100%;} 2415 2416 .youtube { 2417 background-color: #000; 2418 margin-bottom: 30px; 2419 position: relative; 2420 padding-top: 56.25%; 2421 overflow: hidden; 2422 cursor: pointer; 2423 width: 100%; 2424 } 2425 .swiper-slide .youtube { 2426 max-width: 480px; 2427 } 2428 .youtube img { 2429 width: 100%; 2430 top: -16.82%; 2431 left: 0; 2432 opacity: 0.7; 2433 } 2434 .youtube .play-button { 2435 width: 90px; 2436 height: 60px; 2437 background-color: #333; 2438 box-shadow: 0 0 30px rgba( 0,0,0,0.6 ); 2439 z-index: 1; 2440 opacity: 0.8; 2441 border-radius: 6px; 2442 } 2443 .youtube .play-button:before { 2444 content: ""; 2445 border-style: solid; 2446 border-width: 15px 0 15px 26.0px; 2447 border-color: transparent transparent transparent #fff; 2448 } 2449 .youtube img, 2450 .youtube .play-button { 2451 cursor: pointer; 2452 } 2453 .youtube img, 2454 .youtube iframe, 2455 .youtube .play-button, 2456 .youtube .play-button:before { 2457 position: absolute; 2458 } 2459 .youtube .play-button, 2460 .youtube .play-button:before { 2461 top: 50%; 2462 left: 50%; 2463 transform: translate3d( -50%, -50%, 0 ); 2464 } 2465 .youtube iframe { 2466 height: 100%; 2467 width: 100%; 2468 top: 0; 2469 left: 0; 2470 } 2471 </style> 2472 2473 2474 </div> 2475 </div> 2476 2477 <div class="product-desc-add position-relative d-none d-lg-block m-0"> 2478 2479 </div> 2480 2481
2481<script> 2482 if ($(window).width() < 991) { 2483 var direction = 'horizontal' 2484 } else { 2485 var direction = 'vertical' 2486 $(".gallery-thumbs").height($("#ProductPhotoImg").height()) 2487 } 2488 var swiper = new Swiper('.gallery-thumbs', { 2489 2490 direction, 2491 slidesPerView: 4.5, 2492 spaceBetween: 12, 2493 navigation: { 2494 nextEl: '.swiper-button-next', 2495 prevEl: '.swiper-button-prev', 2496 } 2497 }); 2498 2499 var swiper = new Swiper('.gallery-mobile', { 2500 //loop: true, 2501 lazy: true, 2502 speed: 300, 2503 resistance : true, 2504 resistanceRatio : 0, 2505 freeModeMomentumRatio : 0.45, 2506 freeModeMomentumVelocityRatio : 1.5, 2507 navigation: { 2508 nextEl: '.swiper-button-next', 2509 prevEl: '.swiper-button-prev', 2510 }, 2511 pagination: { 2512 el: '.swiper-pagination' 2513 }, 2514 useCSS3Transforms: false, 2515 loop: false, 2516 on: { 2517 init: function () { 2518 console.log('swiper initialized'); 2519 var currentVideo = $("[data-swiper-slide-index=" + this.realIndex + "]").find("video"); 2520 currentVideo.trigger('play'); 2521 }, 2522 }, 2523 }); 2524 2525 /* GET ALL VIDEOS */ 2526 var sliderVideos = $(".swiper-slide video"); 2527 2528 /* SWIPER API - Event will be fired after animation to other slide (next or previous) */ 2529 swiper.on('slideChange', function () { 2530 console.log('slide changed'); 2531 /* stop all videos */ 2532 sliderVideos.each(function( index ) { 2533 this.currentTime = 0; 2534 }); 2535 2536 /* SWIPER GET CURRENT AND PREV SLIDE (AND The VIDEO INSIDE) */ 2537 var prevVideo = $(`[data-swiper-slide-index="${this.previousIndex}]"`).find("video"); 2538 var currentVideo = $(`[data-swiper-slide-index="${this.realIndex}"]`).find("video"); 2539 prevVideo.trigger('stop'); 2540 currentVideo.trigger('play'); 2541 }); 2542 2543 2544 $("[data-video]").click(function(){ 2545 const file = $(this).data("video") 2546 $(".product-single__video").show() 2547 $(".product-single__image").hide() 2548 $(".product-single__video").find("video").attr("src", file) 2549 $(".product-single__video").find("video")[0].play(); 2550 }) 2551 $("[data-image]").click(function(){ 2552 $(".product-single__video").hide() 2553 $(".product-single__image").show() 2554 $(".product-single__video").find("video")[0].pause(); 2555 }) 2556 2557 $("#product-image .swiper-slide").each(function(){ 2558 let width = $(this).width() 2559 $(this).height(width) 2560 }) 2561 2562 $(window).resize(function() { 2563 $("#product-image .swiper-slide").each(function(){ 2564 let width = $(this).width() 2565 $(this).height(width) 2566 }) 2567 }) 2568 </script>
2568 2569 2570 </div> 2571 2572 2573 <div class="grid__item_product-info mb-3"> 2574 <div class="c-pdp-product-info"> 2575 <ul class="c-pdp-product-info__service c-pdp-product-info__service--active"> 2576 <!-- artikel --> 2577 <li> 2578 JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan. 2579 </li> 2580 2581 2582 2583 2584 </ul> 2585 </div> 2586 </div> 2587 2588 2589 2590 2591 2592 <style> 2593 .c-pdp-product-info__service--active { 2594 font-size: 12px; 2595 padding-left: 10px; 2596 text-align: left; 2597 max-width: 550px; 2598 margin: auto; 2599 } 2600 .c-pdp-product-info__service--active li { 2601 list-style: disc; 2602 } 2603 .c-pdp-product-info { 2604 background-color: #f5f5f5; 2605 padding: 12px; 2606 margin: 0; 2607 } 2608 .freeship em { 2609 font-style: italic; 2610 font-size: 12px !important; 2611 } 2612 2613 2614 </style> 2615 2616
2616<script> 2617 $(document).ready(function(){ 2618 if ( $(".c-pdp-product-info__service li").length == 1 ) { 2619 $(".c-pdp-product-info__service").addClass("no-bullet"); 2620 $(".c-pdp-product-info__service li").addClass("no-bullets"); 2621 } 2622 }); 2623 </script>
2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 </div> 2637 <div id="product-meta" class="col-lg-5 p-0"> 2638 <div class="product-meta"> 2639 <style> 2640 .product-meta--review {margin-top:10px} 2641 .freeship * {font-size: 14px !important;font-style: normal;} 2642 </style> 2643 <h1 itemprop="name" class="mb-2" style="color: rgb(0, 217, 255); font-weight: bold;">JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru</h1> 2644 2645 <div itemprop="offers" itemscope itemtype="http://schema.org/Offer"> 2646 <meta itemprop="priceCurrency" content="IDR"> 2647 2648 <link itemprop="availability" href="https://schema.org/InStock"> 2649
2649<script 2650 type="text/javascript" 2651 src="//platform-api.sharethis.com/js/sharethis.js#property=5acdc0aa3ef3c0001396fd50&product=custom-share-buttons" 2652 async="async" 2653 ></script>
2653 2654 2655 2656 2657 2658 <span class="visually-hidden">Translation missing: en.products.general.regular_price</span> 2659 2660 <span class="visually-hidden">Translation missing: en.products.general.sale_price</span> 2661 2662 <div class="row no-gutters mb-3"> 2663 <span 2664 id="ProductPrice" 2665 class="h2 ProductPrice" 2666 itemprop="price" 2667 content="835000" style="color: #ffffff;" 2668 > 2669 Rp 10.000 2670 </span> 2671 <div class="discount-product-detail"> 2672 <p id="ComparePrice" class="ComparePrice mt-2 mt-lg-0"> 2673 Rp 100.000 2674 </p> 2675 <span class=" tag-discount"> 2676 2677 2678 <span id="newDiscount" class="product-tag persentase-discount hide"> 2679 (90%) 2680 </span><br> 2681 2682 </span> 2683 </div> 2684 </div> 2685 2686 <div class="row no-gutters meta-sds"> 2687 <div class="col-12 mb-2 mb-lg-0 stock-info"> 2688 2689 2690 <span 2691 id="ProductStock-Product" 2692 class="product-single__stock mb-2 hide" 2693 > 2694 2695 2696 2697 2698 Barang dikirim pada 2699 2700 2701 2702 </span> 2703 2704 <style> 2705 .short-desc-desktop { 2706 margin-bottom: 2rem; 2707 color: white; 2708 } 2709 .short-desc ul li:nth-child(n + 4) { 2710 display: none; 2711 } 2712 .short-desc ul li.showList:nth-child(n + 4) { 2713 display: list-item; 2714 } 2715 label.more { 2716 display: none; 2717 } 2718 label.more.showMe { 2719 display: block; 2720 font-size: 12px; 2721 text-transform: uppercase; 2722 font-weight: 700; 2723 cursor: pointer; 2724 } 2725 </style> 2726 2727 <div class="short-desc-desktop d-none d-lg-block"> 2728 <div class="short-desc"> 2729 2730 <p><a href="https://librosalfaguarajuvenil.com/" style="color: white;">JKT8</a> adalah apk slot gacor online terbaru 2026 yang menyediakan link login situs game slot online resmi. Dengan fitur rtp paling gacor dan banyak promo menarik.</p> 2731 <p>Kalau lo lagi cari situs slot gacor yang aman buat akses layanan resmi, jkt8 adalah pilihan yang paling tepat. Lewat situs resmi JKT8, lo bisa langsung login dan main tanpa perlu VPN yang sering bikin koneksi jadi lemot. Selain itu, JKT8 juga menyediakan opsi akses lewat JKT8 APK buat lo yang pengen pengalaman main lebih praktis di perangkat mobile.</p> 2732 <h2>Apa Itu JKT8?</h2> 2733 <p>JKT8 adalah platform game slot online resmi yang bisa diakses lewat situs maupun aplikasi. Buat lo yang mau langsung main tanpa ribet bisa langsung masuk ke situs JKT8 yang dapat diakses lewat browser. Sementara itu, buat lo yang pengen akses lebih cepat di HP, tersedia juga apk JKT8 sebagai alternatif.</p> 2734 <p>Baik lewat website maupun aplikasi, semua sistem sudah terhubung ke server utama. Proses login dibuat simpel, cepat, dan aman, jadi lo bisa langsung masuk dan menikmati berbagai pilihan permainan slot tanpa ribet.</p> 2735 <h3>Mengapa Banyak Pengguna Memilih JKT8?</h3> 2736 <ol> 2737 <li>Akses Situs & APK Lebih Cepat</li> 2738 <p>JKT8 dioptimalkan agar tetap cepat baik diakses lewat situs maupun aplikasi. Pengguna bisa memilih login lewat browser atau jkt8 apk sesuai kebutuhan, tanpa harus khawatir soal lag atau gangguan akses.</p> 2739 <li>Sistem Login Aman & Resmi</li> 2740 <p>Proses login JKT8 menggunakan sistem keamanan modern yang melindungi data akun pengguna. Selama lo mengakses lewat situs resmi atau apk jkt8 versi asli, keamanan dan privasi tetap terjaga dengan baik.</p> 2741 <li>Pilihan Game Slot Lengkap</li> 2742 <p>JKT8 menyediakan berbagai pilihan game slot dengan tampilan menarik dan sistem yang stabil. Baik dimainkan lewat situs atau aplikasi, pengalaman main tetap konsisten dan nyaman.</p> 2743 <li>Update Event & Promo Terpusat</li> 2744 <p>Semua info promo, event, dan update terbaru bisa diakses langsung lewat situs JKT8 maupun di dalam aplikasi. Jadi pengguna jkt8 slot gak ketinggalan info penting dan bisa selalu update.</p> 2745</ol> 2746<h3>Keunggulan Situs & APK JKT8</h3> 2747<ul> 2748 <li>Bisa diakses lewat browser tanpa instal</li> 2749 <li>
2749Tersedia JKT8 APK untuk pengguna mobile</li> 2750 <li>Proses login jkt8 cepat dan aman</li> 2751 <li>Dapat dimainkan di berbagai perangkat dan browser</li> 2752 <li>Update sistem dan fitur secara otomatis</li> 2753</ul> 2754 </div> 2755 <label class="more">Show More â</label> 2756 </div><br> 2757 2758 2759
2759<script> 2760 var liCount; 2761 $(document).ready(function () { 2762 $(".short-desc ul").each(function() { 2763 liCount = $(this).children("li").length; 2764 if (liCount > 3) { 2765 $(this).parent(".short-desc").next(".more").addClass("showMe"); 2766 } 2767 }); 2768 2769 $(".more").click(function () { 2770 //$(".short-desc").find("li").addClass("showList"); 2771 // $(this).hide(); 2772 $("#product-desc").find("ul").show() 2773 $('html, body').animate({ 2774 scrollTop: $("#product-desc").offset().top - 250 2775 }, 2000); 2776 $("#product-desc").css("height","auto"); 2777 $("#more_content").remove(); 2778 $(".product-spec").append("<div id='less_content' class='readmore'><span class='less_content'>Less</span></div>") 2779 }); 2780 }); 2781 </script>
2781 2782 2783 2784 </div> 2785 </div> 2786 2787 <div id="purchaseProduct"> 2788 2789 2790 2791 2792 <style> 2793 .variant-metafield { 2794 display: block!important; 2795 width: 1px; 2796 padding: 0; 2797 border-color: #fff; 2798 } 2799 .select2-results__option[aria-disabled] { 2800 display: none; 2801 } 2802 2803 .towel-bordir { 2804 width: 100%; 2805 display: flex; 2806 align-items: center; 2807 justify-content: space-around; 2808 } 2809 </style> 2810 2811 2812 2813 2814
2814<script> 2815 2816 2817 </script>
2817 2818 2819 2820 2821 2822 2823 2824 <select 2825 name="id[]" 2826 id="productSelect" 2827 class="product-single__variants ignore hide hide" 2828 > 2829 2830 2831 2832 <option 2833 2834 selected="selected" 2835 2836 data-sku="OBVSTF1086" 2837 value="44083045826775" 2838 > 2839 Default Title 2840 </option> 2841 2842 2843 2844 </select> 2845 2846
2846<script src="//outerbloom.com/cdn/shop/t/138/assets/jquery.magnific-popup.min.js?v=184369421263510081681752652422" type="text/javascript"></script>
2846 2847 2848
2848<script> 2849 $('.size-chart-open-popup').magnificPopup({ 2850 type:'inline', 2851 midClick: true 2852 }); 2853 </script>
2853 2854 2855 2856 2857 2858 <div class="upload-image-preview"> 2859 2860 2861 2862 2863 2864 <style> 2865 .file-dnd * { 2866 margin: 0; 2867 padding: 0; 2868 box-sizing: border-box; 2869 } 2870 .file-dnd { 2871 width: 100%; 2872 height: 250px; 2873 border: 1px solid #ddd; 2874 border-radius: 10px; 2875 padding: 15px; 2876 display: flex; 2877 flex-direction: column; 2878 gap: 10px; 2879 /* box-shadow: 0px 2px 10px 2px rgba(0,0,0,0.05); */ 2880 margin: auto; 2881 } 2882 .file-dnd input { 2883 display: none; 2884 } 2885 .file-dnd .before-upload { 2886 border: 1px dashed #888; 2887 flex: 1; 2888 border-radius: 5px; 2889 display: flex; 2890 justify-content: center; 2891 align-items: center; 2892 text-align: center; 2893 cursor: pointer; 2894 } 2895 .file-dnd .before-upload > div { 2896 display: flex; 2897 flex-direction: column; 2898 align-items: center; 2899 gap: 8px; 2900 } 2901 .file-dnd .before-upload > div h4 { 2902 width: 150px; 2903 } 2904 .file-dnd .before-upload > div p { 2905 font-size: 12px !important; 2906 color: #555; 2907 } 2908 .file-dnd.active .before-upload { 2909 border: 1px solid #5750d9; 2910 background-color: #f5f5ff; 2911 } 2912 .file-dnd .after-upload { 2913 position: relative; 2914 display: none; 2915 } 2916 .file-dnd .after-upload img { 2917 width: 100%; 2918 border-radius: 5px; 2919 max-height: 180px; 2920 object-fit: contain; 2921 display: block; 2922 } 2923 .file-dnd .after-upload .clear-btn { 2924 position: absolute; 2925 top: 10px; 2926 right: 10px; 2927 background: rgba(0, 0, 0, 0.5); 2928 width: 15px; 2929 height: 15px; 2930 text-align: center; 2931 line-height: 15px; 2932 border-radius: 50%; 2933 color: #fff; 2934 cursor: pointer; 2935 font-size: 14px; 2936 } 2937 </style> 2938 2939 <div 2940 class="file-dnd mb-3" 2941 2942 style="display: none" 2943 2944 > 2945 <label for="upload-photo">Upload your Photo:</label> 2946 <input type="file" id="upload-photo" accept="image/*"> 2947 <input type="hidden" data-properties="Photo"> 2948 <div class="before-upload"> 2949 <div> 2950 <svg id="surface1" xmlns="images/logo-jkt8.png" width="33.053" height="41.719" viewBox="0 0 33.053 41.719"> 2951 <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> 2952 <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> 2953 <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> 2954 </svg> 2955 2956 <h4>Drag & Drop Photo file or Browse</h4> 2957 <p>Supports: JPEG, PNG, GIF, TIFF</p> 2958 </div> 2959 </div> 2960 <div class="after-upload"> 2961 <div class="clear-btn">×</div> 2962 <img src="" width="" height=""> 2963 </div> 2964 </div> 2965
2965<script> 2966 function applyDndFile(el) { 2967 const parent = document.querySelector(".file-dnd") 2968 const beforeUploadEl = el.querySelector(".before-upload") 2969 const afterUploadEl = el.querySelector(".after-upload") 2970 const inputFile = el.querySelector("input[type=file]") 2971 const imagePreview = el.querySelector(".after-upload img") 2972 const clearBtn = el.querySelector(".after-upload .clear-btn") 2973 const inputProps = parent.querySelector("[data-properties]"); 2974 2975 async function upload(name, uri, type) { 2976 try { 2977 const filename = name.split('.')[0] 2978 let formData = new FormData(); 2979 formData.append("file", uri); 2980 const response = await fetch(`${host}/upload?name=${filename}&dir=gift&type=${type}`, { 2981 method: "POST", 2982 body: formData 2983 }) 2984 if(response) { 2985 const res = await response.json() 2986 return res 2987 } 2988 } catch(err){ 2989 console.log(err) 2990 } 2991 } 2992 2993 function showImagePreview(img) { 2994 if(img){ 2995 const blobUrl = URL.createObjectURL(img) 2996 imagePreview.src = blobUrl 2997 afterUploadEl.style.display = "block" 2998 beforeUploadEl.style.display = "none" 2999 } 3000 } 3001 3002 beforeUploadEl.addEventListener("click", (e) => { 3003 e.preventDefault() 3004 inputFile.click() 3005 }) 3006 3007 inputFile.addEventListener("change", async (e) => { 3008 e.preventDefault() 3009 showImagePreview(e.target.files[0]) 3010 var uploadData = await upload(e.target.files[0].name, e.target.files[0], e.target.files[0].type) 3011 inputProps.value = uploadData?.url 3012 }) 3013 3014 clearBtn.addEventListener("click", (e) => { 3015 afterUploadEl.style.display = "none" 3016 beforeUploadEl.style.display = "flex" 3017 inputProps.value = "" 3018 }) 3019 3020 beforeUploadEl.addEventListener("dragover", (e) => { 3021 e.preventDefault() 3022 el.classList.add("active") 3023 }) 3024 3025 beforeUploadEl.addEventListener("dragleave", (e) => { 3026 e.preventDefault() 3027 el.classList.remove("active") 3028 }) 3029 3030 beforeUploadEl.addEventListener("drop", async (e) => { 3031 e.preventDefault() 3032 el.classList.remove("active") 3033 showImagePreview(e.dataTransfer.files[0]) 3034 var uploadData = await upload(e.dataTransfer.files[0].name, e.dataTransfer.files[0], e.dataTransfer.files[0].type) 3035 console.log(uploadData) 3036 inputProps.value = uploadData?.url 3037 }) 3038 } 3039 3040 applyDndFile(document.querySelector(".file-dnd")) 3041 3042 $(document).ready(function(){ 3043 $(".variant-swatch").change(function(){ 3044 const v = $(this).val().toLowerCase() 3045 const list = ["photo", "custom one side", "custom two side", "small", "big"] 3046 if(list.some(item => v.includes(item))) return $(".file-dnd").show() 3047 $(".file-dnd").hide() 3048 $(".file-dnd").find("[data-properties]").val("") 3049 $(".after-upload").hide() 3050 $(".before-upload").css("display", "flex") 3051 }) 3052 }) 3053 </script>
3053 3054 3055 </div> 3056 3057 3058 <div class="delivery-city mb-4"> 3059 <a href="https://amp-jkt8.pages.dev/"> 3060 <center><img src="images/logo-jkt8.png" alt="logo-daftar" style="width: 260px; margin-top: -20px;"></center></a><br> 3061 <h4 class="fw-600 text-uppercase mb-15" style="color: rgb(67, 225, 236);">SEKARANG WAKTUNYA DAFTAR AKUN BARU DI JKT8!</h4> 3062 <div class="row justify-content-between m-0"> 3063 <select id="cities" class="form-control select-search" required> 3064 <option value="">Gabung dan dapatkan bonus deposit juga new member hanya di JKT8</option> 3065 </select> 3066 </div> 3067 </div> 3068 3069 <style> 3070 @media (max-width: 768px) { 3071 .select2-search__field { 3072 pointer-events: none !important; 3073 } 3074 3075 .select2-search { 3076 display: none !important; 3077 } 3078 } 3079 </style> 3080 3081
3081<script> 3082 $(document).ready(function() { 3083 // Check if mobile 3084 if (window.innerWidth <= 768) { 3085 // When cities select2 opens on mobile, remove focus from search 3086 $('#cities').on('select2:open', function() { 3087 setTimeout(function() { 3088 $('.select2-search__field').blur(); 3089 $('.select2-search__field').prop('readonly', true); 3090 }, 100); 3091 }); 3092 } 3093 }); 3094 </script>
3094 3095 3096 <style> 3097 .icon-img-footer { 3098 width: 80px; 3099 padding: 0px 5px; 3100 } 3101 @media (min-width: 768px) { 3102 .icon-img-footer { 3103 width: 120px; 3104 } 3105 } 3106 @media (min-width: 992px) { 3107 .icon-img-footer { 3108 width: 120px; 3109 } 3110 } 3111 3112 3113 </style> 3114 <div id="row-delivery-date" class="row m-0 mb-3"> 3115 <h4 class="fw-600 text-uppercase col-12 p-0 mb-15" style="color: rgb(67, 225, 236);">Ciptakan Kemenanganmu Dengan Putaran di Permainan Slot</h4> 3116 <div id="deliveryDate" class="m-0"></div> 3117 <div id="deliveryDateFull"> 3118 <div class=""> 3119 <input 3120 type="text" 3121 id="full-date" 3122 class="date-full calendarbutton btn steps-btn btn-date-time mb-0" 3123 value="Full Calendar" 3124 > 3125 <label for="full-date"><svg version="1.1" xmlns="images/logo-jkt8.png" width="32" height="32" viewBox="0 0 32 32"> 3126 <title>icon-arrow-right</title> 3127 <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> 3128 </svg></label> 3129 </div> 3130 <button class="btnChangeDeliveryDate hide">Change Delivery Date</button> 3131 </div> 3132 <div class="form-group p-0"> 3133 <input type="text" id="propDeliveryDate" required class="hide"> 3134 </div> 3135 </div> 3136 3137 3138 <div id="row-delivery-time" class="row m-0 mb-3"> 3139 <h4 class="text-center fw-600 text-uppercase col-12 mb-15"> 3140 SEO HahaHehe 3141 </h4> 3142 <div id="deliveryTime" class="d-flex w-100 m-0"></div> 3143 <div class="form-group p-0"> 3144 <input type="text" id="propDeliveryTime" class="hide" required> 3145 </div> 3146 </div> 3147 3148 3149 3150 3151 3152 <div id="personalizeBtn"> 3153 3154 3155 3156 3157 <button 3158 class="btn text-uppercase w-100 fw-400" 3159 3160 3161 3162 > 3163 3164 customize your flower board 3165 3166 </button> 3167 <div class="button-share-wishlist d-flex justify-content-around mt-3"> 3168 <div class="button-share text-center"> 3169 <p id="shareButton" class="d-flex gap-2"><span>JKT8</span><svg xmlns="images/logo-jkt8.png" width="15" height="13" viewBox="0 0 15 13" fill="none"> 3170 <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"/> 3171 </svg> 3172 </p> 3173 </div> 3174 <div class="button-wishlist text-center"> 3175 <p id="wishButton" class="d-flex gap-2 wishlist-toggle" data-product-handle="blossom-shine"><span>Wishlist</span><svg xmlns="images/logo-jkt8.png" width="16" height="15" viewBox="0 0 16 15" fill="none"> 3176 <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"/> 3177 </svg> 3178 <!-- 3179 <svg xmlns="images/logo-jkt8.png" width="34" height="30" viewBox="0 0 34 30" fill="none"> 3180 <path d="M32.8333 9.23082C32.8333 4.51916 29.0142 0.699158 24.3025 0.699158C21.2 0.699158
318018.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"/> 3181 </svg> 3182 --> 3183 </p> 3184 </div> 3185 </div> 3186 </div> 3187 </div> 3188 <div class="purchasePopup purchasePopupSpotify" style="display: none;"> 3189 <div class="purchaseArea"> 3190 <div class="sectionPurchase sectionPurchaseSpotify"> 3191 <div class="wrapperPurchase"> 3192 <div class="headerPurchase"> 3193 <h3>personalize spotify photo print</h3> 3194 <a class="close-purchase-popup"> 3195 <svg xmlns="images/logo-jkt8.png" width="18" height="18" viewBox="0 0 18 18" fill="none"> 3196 <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> 3197 </svg> 3198 </a> 3199 </div> 3200 <div class="contentPurchase"> 3201 <div class="spotifyAddons"></div> 3202 </div> 3203 3204 <div class="purchase-button btn-addon row m-0" style="display: none;"> 3205 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 3206 <button class="back-purchase-button back-addon text-uppercase"> 3207 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="images/logo-jkt8.png"> 3208 <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> 3209 </svg> 3210 <span>Back</span> 3211 </button> 3212 </div> 3213 <div class="col-12 col-lg-10 text-right" style="display: flex;justify-content: end;gap: 20px;"> 3214 <button class="btn next-purchase-button next-addon text-uppercase"> 3215 <span>continue without add-ons</span> 3216 </button> 3217 </div> 3218 </div> 3219 </div> 3220 </div> 3221 </div> 3222 </div> 3223 3224 <style> 3225 #PBarNextFrameWrapper { 3226 display: none; 3227 } 3228 #backgroundPopup { 3229 display: none; 3230 position: fixed; 3231 _position: absolute; 3232 height: 100%; 3233 width: 100%; 3234 top: 0; 3235 left: 0; 3236 background: rgb(117 117 117 / 24%); 3237 z-index: 1; 3238 } 3239 .sectionPurchase { 3240 height: 100%; 3241 position: relative; 3242 max-width: 1344px; 3243 background-color: #fff; 3244 padding: 0; 3245 overflow: hidden; /* Changed from auto to hidden */ 3246 display: flex; 3247 flex-direction: column; 3248 } 3249 .sectionPurchase.purchaseAddonSpotify { 3250 max-width: 1070px!important; 3251 max-height: 765px!important; 3252 } 3253 .sectionPurchaseBoard { 3254 max-width: 872px!important; 3255 max-height: 821px!important; 3256 } 3257 .purchaseAddonSpotify .btn-action { 3258 position: absolute; 3259 bottom: 0; 3260 left: 0; 3261 width: 100%; 3262 display: flex; 3263 gap: 10px; 3264 } 3265 .wrapperPurchase { 3266 position: relative; 3267 height: 100%; 3268 display: flex; 3269 flex-direction: column; 3270 } 3271 3272 /* New styles for scrollable content and sticky button */ 3273 .purchase-content { 3274 flex: 1; 3275 overflow-y: auto; 3276 overflow-x: hidden; 3277 padding: 20px; 3278 } 3279 3280 .purchase-button-wrapper { 3281 position: sticky; 3282 bottom: 0; 3283 background-color: #fff; 3284 border-top: 1px solid #e0e0e0; 3285 padding: 15px 0; 3286 margin-top: auto; 3287 z-index: 10; 3288 } 3289 3290 .purchasePopup { 3291 display: none; 3292 position: fixed; 3293 background: rgb(117 117 117 / 24%); 3294 z-index: 999; 3295 padding: 40px; 3296 font-size: 13px; 3297 top: 0; 3298 left: 0; 3299 width: 100%; 3300 height: 100%; 3301 } 3302 .popupPurchaseClose{ 3303 font-size:14px; 3304 line-height:14px; 3305 right:45px; 3306 top:45px; 3307 position:absolute; 3308 color:#6fa5fd; 3309 font-weight:700; 3310 display:block; 3311 cursor: pointer; 3312 } 3313 3314 .headerPurchase { 3315 margin-bottom: 30px; 3316 display: flex; 3317 justify-content: space-between; 3318 } 3319 3320 .headerPurchase h3 { 3321 font-size: 16px; 3322 text-transform: uppercase; 3323 } 3324 3325 .sectionPurchaseBoard .headerPurchase { 3326 margin-bottom: 15px; 3327 } 3328 3329 .sectionPurchaseBoard .formAddressPurchase { 3330 padding-top: 0;
3331 } 3332 3333 .purchaseArea { 3334 position: relative; 3335 height: 100%; 3336 } 3337 3338 .purchaseArea h4 { 3339 width: 100%; 3340 font-size: 12px; 3341 font-weight: 600; 3342 margin-bottom: 10px; 3343 text-transform: uppercase; 3344 } 3345 3346 .menuPurchase { 3347 margin-bottom: 30px; 3348 } 3349 3350 .menuPurchase ul { 3351 list-style-type: none; 3352 margin: 0; 3353 } 3354 3355 .menuPurchase ul li { 3356 display: inline-block; 3357 border: 1px solid #ffffff; 3358 padding: 5px 20px; 3359 margin-right: 5px; 3360 margin-bottom: 10px; 3361 font-size: 12px; 3362 font-weight: 400; 3363 } 3364 3365 .menuPurchase ul li:hover, .menuPurchase ul li.selected { 3366 background-color: #ffffff; 3367 color: #ffffff; 3368 } 3369 3370 .contentPurchase h5 { 3371 font-size: 12px; 3372 margin-bottom: 10px; 3373 font-weight: 400; 3374 overflow: hidden; 3375 } 3376 3377 /* Card */ 3378 3379 #itemCards { 3380 max-height: 430px; 3381 overflow: auto; 3382 } 3383 3384 .item-cards { 3385 width: 100%; 3386 } 3387 .item-card.selected { 3388 border: 1px solid #ffffff; 3389 } 3390 .item-card:hover { 3391 border: 1px solid #C4C4C4; 3392 } 3393 .item-cards .item-card { 3394 position: relative; 3395 width: calc(33% - 10px); 3396 max-width: calc(33% - 10px); 3397 flex: 0 0 calc(33% - 10px); 3398 margin-bottom: 20px; 3399 } 3400 .item-cards .item-card label, 3401 .item-addons .item-addon label { 3402 position: absolute; 3403 left: 0; 3404 width: 100%; 3405 height: 100%; 3406 } 3407 .item-cards .item-card .card-image img, 3408 .item-addons .item-addon .card-image img { 3409 display: block; 3410 width: 100%; 3411 } 3412 .item-card .card-meta, 3413 .item-addon .card-meta { 3414 padding: 10px 5px 5px; 3415 } 3416 .item-card.selected .card-meta, 3417 .item-addon.selected .card-meta, 3418 .item-card.selected .card-qty { 3419 background-color: #ffffff; 3420 color: #fff; 3421 visibility: visible!important; 3422 } 3423 .item-card:hover .card-meta, 3424 .item-addon:hover .card-meta, 3425 .item-card:hover .card-qty { 3426 background-color: #C4C4C4; 3427 color: #fff; 3428 visibility: visible!important; 3429 } 3430 .item-cards .item-card p, 3431 .item-addons .item-addon p { 3432 font-size: 12px !important; 3433 margin: 0; 3434 font-weight: 600; 3435 } 3436 .item-card .card-meta input, 3437 .item-addon .card-meta input { 3438 display: none; 3439 } 3440 .item-cards .item-card h5, 3441 .item-addons .item-addon h5 { 3442 text-transform: uppercase; 3443 max-height: 35px; 3444 } 3445 3446 @media (max-width: 768px) { 3447 .item-cards .item-card { 3448 width: calc(50% - 10px); 3449 max-width: calc(50% - 10px); 3450 flex: 0 0 calc(50% - 10px); 3451 margin-bottom: 0; 3452 } 3453 } 3454 3455 .card-qty { 3456 display: flex; 3457 padding: 5px; 3458 visibility: hidden; 3459 background-color: #fff !important; 3460 z-index: 999; 3461 } 3462 .card-qty a { 3463 border-width: 1px; 3464 width: 30%; 3465 cursor: pointer; 3466 text-align: center; 3467 align-self: center; 3468 height: 28px; 3469 display: block; 3470 position: relative; 3471 } 3472 .card-qty a svg { 3473 position: absolute; 3474 top: 50%; 3475 left: 50%; 3476 transform: translate(-50%, -50%); 3477 text-align: center; 3478 } 3479 input.btn-qty { 3480 border-width: 0px; 3481 border-radius: 0; 3482 background-color: #fff; 3483 -webkit-appearance: none; 3484 box-shadow: none !important; 3485 -webkit-box-shadow: none !important; 3486 -moz-box-shadow: none!important; 3487 width: 40%; 3488 border-left: 1px solid #c4c4c4; 3489 border-right: 1px solid #c4c4c4; 3490 padding: 0; 3491 } 3492 3493 .sectionPurchaseBoard #itemAddons .item-card { 3494 width: calc(20% - 15px); 3495 max-width: calc(20% - 15px); 3496 flex: 0 0 calc(20% - 15px); 3497 } 3498 3499 .purchase-button { 3500 width: 100%; 3501 padding: 0; /* Reset padding as it's now handled by wrapper */ 3502 margin: 0; 3503 } 3504 3505 .sectionPurchaseBoard .purchase-button { 3506 margin-top: 0 !important; /* Reset margin */ 3507 } 3508 3509 .back-purchase-button, .back-spotify { 3510 width: 139px; 3511 border: 1px solid; 3512 height: 43px; 3513 } 3514 .purchase-button .btn { 3515 width: 297px; 3516 height: 43px; 3517 background-color: #ffffff; 3518 color: #ffffff; 3519 } 3520 .purchase-button .btn[disabled] { 3521 background-color: #EEEEEE; 3522 } 3523 .back-purchase-button svg, .back-spotify svg { 3524 align-self: center; 3525 vertical-align: middle; 3526 margin-right: 10px; 3527 } 3528 3529 #purchaseProduct .row .error { 3530 font-size: 12px !important; 3531 color: rgb(0, 140, 255); 3532 margin-top: 5px; 3533 } 3534 3535 .reviewCardPurchase { 3536 max-width: 448px; 3537 float: right; 3538 } 3539 3540 .addonsPurchase .addon-item {display: flex;justify-content: space-between;} 3541 .addon-item * {align-self: center;font-size: 12px;} 3542 .addon-itm-title {width: 360px;} 3543 .addon-itm-line-price {color: #757575;width: 80px;justify-content: space-between;display: flex;} 3544 3545 .propsAddonSpotify p { 3546 margin: 0; 3547 display: flex; 3548 font-size: 12px !important; 3549 margin-bottom: 5px; 3550 } 3551 .propsAddonSpotify p span:first-child { 3552 text-transform: uppercase; 3553 font-weight: 600; 3554 -ms-flex: 0 0 150px; 3555 flex: 0 0 150px; 3556 max-width: 150px; 3557 } 3558 3559 .addonsPurchase .addons { 3560 max-height: 250px; 3561 overflow: auto; 3562 } 3563 3564 .btn .loading:after { 3565 content: ""; 3566 display: inline-block;
3567 width: 20px; 3568 height: 20px; 3569 padding: 3px; 3570 aspect-ratio: 1; 3571 border-radius: 50%; 3572 background: #FFFFFF; 3573 --_m: conic-gradient(#0000 10%, #ffffff), linear-gradient(#ffffff 0 0) content-box; 3574 -webkit-mask: var(--_m); 3575 mask: var(--_m); 3576 -webkit-mask-composite: source-out; 3577 mask-composite: subtract; 3578 animation: l3 1s infinite linear; 3579 margin: auto; 3580 vertical-align: middle; 3581 margin-left: 10px; 3582 } 3583 3584 #qrcode img, #qrcode canvas { 3585 width: 50px; 3586 position: absolute; 3587 top: 12px; 3588 left: 16px; 3589 } 3590 3591 .t-preview { 3592 position: absolute; 3593 top: 17px; 3594 left: 75px; 3595 } 3596 .t-preview p { 3597 margin: 0; 3598 font-size: 12px !important; 3599 } 3600 .t-preview .h3 { 3601 font-size: 16px !important; 3602 margin-bottom: 5px; 3603 font-weight: 600; 3604 } 3605 .scanCard { 3606 width: 100%; 3607 border: 1px solid; 3608 height: 76px; 3609 background-color: #fff; 3610 } 3611 .scanCard > div > img { 3612 position: absolute; 3613 right: 0; 3614 width: 55px; 3615 } 3616 3617 @keyframes l3 { 3618 100% { 3619 transform: rotate(1turn); 3620 } 3621 } 3622 3623 @media (min-width: 991px) { 3624 .sectionPurchase { 3625 height: 100%; 3626 position: relative; 3627 max-width: 1344px; 3628 background-color: #fff; 3629 top: 50%; 3630 left: 50%; 3631 transform: translate(-50%, -50%); 3632 } 3633 .headerPurchase h3 { 3634 font-size: 20px; 3635 } 3636 .purchaseArea h4 { 3637 font-size: 16px; 3638 } 3639 3640 .menuPurchase ul li { 3641 font-size: 16px; 3642 } 3643 3644 .contentPurchase { 3645 margin-bottom: 30px; 3646 } 3647 .contentPurchase h5 { 3648 font-size: 16px; 3649 } 3650 3651 .item-cards .item-card p, 3652 .item-addons .item-addon p { 3653 font-size: 16px !important; 3654 } 3655 3656 .cards { 3657 float: right; 3658 width: 400px; 3659 } 3660 3661 .item-cards .item-card { 3662 width: calc(25% - 30px); 3663 max-width: calc(25% - 30px); 3664 flex: 0 0 calc(25% - 30px); 3665 } 3666 3667 #itemAddons .item-card { 3668 position: relative; 3669 width: calc(16% - 40px); 3670 max-width: calc(16% - 40px); 3671 flex: 0 0 calc(16% - 40px); 3672 } 3673 3674 .purchase-button-wrapper { 3675 padding: 10px 20px; 3676 } 3677 } 3678 3679 @media (max-width: 1200px) { 3680 .item-cards .item-card { 3681 width: calc(33% - 30px); 3682 max-width: calc(33% - 30px); 3683 flex: 0 0 calc(33% - 30px); 3684 } 3685 } 3686 3687 @media (max-width: 992px) { 3688 .purchasePopup { 3689 padding: 0; 3690 } 3691 .item-cards .item-card h5, 3692 .item-addons .item-addon h5 { 3693 max-height: 30px; 3694 } 3695 3696 .back-purchase-button, .back-spotify, .next-purchase-button { 3697 width: 100%; 3698 } 3699 .addon-itm-title { 3700 width: 300px; 3701 } 3702 .addon-itm-line-price { 3703 margin-right: 10px; 3704 } 3705 .t-preview { 3706 top: 10px; 3707 } 3708 3709 .card-qty a { 3710 height: 15px; 3711 } 3712 3713 .purchase-button-wrapper { 3714 padding: 15px; 3715 } 3716 } 3717 3718 @media (max-width: 576px) { 3719 .purchase-button .btn { 3720 width: 100%!important; 3721 } 3722 .purchase-button > .col-12 { 3723 padding-left: 0; 3724 padding-right: 0; 3725 } 3726 } 3727 </style> 3728 3729 3730 <div class="purchasePopup"> 3731 <div class="purchaseArea"> 3732 3733 <div class="sectionPurchase purchasePersonalize sectionPurchaseBoard"> 3734 <div class="wrapperPurchase"> 3735 <div class="purchase-content"> 3736 <div class="headerPurchase"> 3737 <h3 class="text-uppercase"> 3738 3739 customize your flower board 3740 3741 </h3> 3742 <a class="close-purchase-popup"> 3743 <svg xmlns="images/logo-jkt8.png" width="18" height="18" viewBox="0 0 18 18" fill="none"> 3744 <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"/> 3745 </svg> 3746 </a> 3747 3748 </div> 3749 <div class="contentPurchase"> 3750 <div class="row"> 3751 3752 <div class="col-12"> 3753 3754 3755 <style> 3756 3757 3758 .customize-papan .group-field-1 .input-field {float: left;width: 100%;height: 317px;background-color: #E5E5EA;} 3759 .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;} 3760 3761 .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;} 3762 .customize-papan .btn-upload-papan svg {width: 21px;height: 25px;display: block;align-self: center;margin: auto;margin-bottom: 12px;} 3763 .svgLogoPapan {position: absolute;width: 100%;top: 50%;left: 50%;transform: translate(-50%, -50%);text-align: center;} 3764 .svgLogoPapan p {color: #8E8E93; margin: 0;} 3765 .svgLogoPapan p span {font-size: 12px;color: #FF0E00;} 3766 .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;} 3767 #suggest-messages {position: absolute;bottom: 5px;left: 5px;} 3768 #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;} 3769 .case-occasion .nice-select:after {border-bottom: 2px solid #333;border-right: 2px solid #333;right: 20px;top: 42%;width: 10px;height: 10px;} 3770 .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;} 3771 .customize-papan .input-field .limit {position: absolute;right: 15px;top: 0;color: #757575;} 3772 3773 @media (min-width: 991px) { 3774 .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);} 3775 .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);} 3776 } 3777 </style> 3778 3779 <input type="hidden" data-properties="penerima" value="-"> 3780 <div class="customize-papan"> 3781 <div class="container"> 3782 <div class="field-papan group-field-1 form-group"> 3783 <div class="input-field">
3784 <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. 3785 (Ex: Selamat Menempuh Hidup Baru A & B)." maxlength="100"></textarea> 3786 <p class="limit">0/100</p> 3787 <div id="suggest-messages"> 3788 <a id="show_note_papan1" href="#"> 3789 <div class="suggest-message" id="note_btn_div1"> 3790 <span class="promo-code-link" id="note_btn_papan1">Contoh Kata WEDDING</span> 3791 </div> 3792 </a> 3793 <a id="show_note_papan2" href="#"> 3794 <div class="suggest-message" id="note_btn_div2"> 3795 <span class="promo-code-link" id="note_btn_papan2">Contoh Kata SELAMAT</span> 3796 </div> 3797 </a> 3798 <a id="show_note_papan3" href="#"> 3799 <div class="suggest-message" id="note_btn_div3"> 3800 <span class="promo-code-link" id="note_btn_papan3">Contoh Kata DUKA CITA</span> 3801 </div> 3802 </a> 3803 </div> 3804 </div> 3805 </div> 3806 <div class="hide"> 3807 <input type="hidden" value="" id="note_id_papan1" name="note_id_papan1" style="top: 0px;"> 3808 <input type="hidden" value="" id="note_btn_id_papan1" name="note_btn_id_papan1"> 3809 </div> 3810 <div class="hide"> 3811 <input type="hidden" value="" id="note_id_papan2" name="note_id_papan2" style="top: 0px;"> 3812 <input type="hidden" value="" id="note_btn_id_papan2" name="note_btn_id_papan2"> 3813 </div> 3814 <div class="hide"> 3815 <input type="hidden" value="" id="note_id_papan3" name="note_id_papan3" style="top: 0px;"> 3816 <input type="hidden" value="" id="note_btn_id_papan3" name="note_btn_id_papan3"> 3817 </div> 3818 <div class="field-papan group-field-2 form-group"> 3819 3820 <label for="logoPapan" onclick="" class="input-field field-logo"> 3821 3822 3823 3824 <div class="btn-upload-papan w-100"> 3825 <?xml version="1.0" encoding="UTF-8"?> 3826 <img src="" style="display:none"> 3827 <div class="svgLogoPapan"> 3828 <svg xmlns="images/logo-jkt8.png" width="22" height="26" viewBox="0 0 22 26" fill="none"> 3829 <path d="M6.5 20H15.5V11H21.5L11 0.5L0.5 11H6.5V20ZM0.5 23H21.5V26H0.5V23Z" fill="black"/> 3830 </svg> 3831 <p>Upload Logo <span>*optional</span></p> 3832 </div> 3833 </div> 3834 3835 </label> 3836 3837 <input 3838 type="hidden" 3839 data-properties="papan-logo" 3840 value="" 3841 > 3842 <input 3843 type="file" 3844 id="logoPapan" 3845 accept="image/*" 3846 style="position: absolute;width: 1px;height: 1px;padding: 0" 3847 > 3848 3849 <div class="input-field"> 3850 <input class="has-limit sender-name" type="text" placeholder="Nama Pengirim" data-properties="pengirim" maxlength="35"/> 3851 <p class="limit">0/35</p> 3852 </div> 3853 3854 </div> 3855 3856 </div> 3857 </div> 3858 </div> 3859 3860 </div> 3861 </div> 3862 3863 </div> 3864 <div class="purchase-button-wrapper"> 3865 <div class="purchase-button btn-card row m-0"> 3866 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 3867 3868 </div> 3869 <div class="btn-next-card col-12 col-lg-10 text-right"> 3870 3871 3872 <button 3873 3874 3875 3876 class="btn next-purchase-button text-uppercase" 3877 3878 disabled 3879 3880 > 3881 <span>save your flower board</span> 3882 </button> 3883 </div> 3884 </div> 3885 3886 </div> 3887 </div> 3888 </div> 3889 3890 3891 3892 <div 3893 class="sectionPurchase sectionPurchaseBoard hide" 3894 data-section="address" 3895 > 3896 <div class="wrapperPurchase"> 3897 <div class="purchase-content"> 3898 <div class="headerPurchase"> 3899 <h3> 3900 Complete Your Order 3901 </h3> 3902 <a class="close-purchase-popup"> 3903 <svg xmlns="images/logo-jkt8.png" width="18" height="18" viewBox="0 0 18 18" fill="none"> 3904 <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"/> 3905 </svg> 3906 </a> 3907 3908 </div> 3909 <div class="contentPurchase"> 3910 <div class="row"> 3911 <div class="col-12 position-relative"> 3912 <div class="addressPurchase"> 3913 3914 <h4 class="text-uppercase">recipient delivery address</h4> 3915 <p>Share the delivery address to send your heartfelt blooms straight to their door.</p> 3916 3917 <div class="formAddressPurchase row"> 3918 <div class="col-12"> 3919 <form> 3920 <div class="form-group row mb-2 mb-lg-4"> 3921 <div class="col-6 position-relative"> 3922 <input id="first_name" type="text" class="form-control input__field" placeholder="" required> 3923 <label for="first_name" class="input__label">First Name<span>*</span></label> 3924 </div> 3925 <div class="col-6 position-relative"> 3926 <input id="last_name" type="text" class="form-control input__field" placeholder="" required> 3927 <label for="last_name" class="input__label">Last Name<span>*</span></label> 3928 </div> 3929 <input type="hidden" data-properties="nama-penerima"> 3930 </div> 3931 3932 <h4 class="text-uppercase">how you want to input your address</h4> 3933 <div class="form-group row mb-2 mb-lg-4 form-address-upload"> 3934 <div class="col-6 position-relative"> 3935 <label class="address-manualy"> 3936 <svg xmlns="images/logo-jkt8.png" width="18" height="17" viewBox="0 0 18 17" fill="none"> 3937 <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
39371216 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
39375 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"/> 3938 </svg> 3939 <span>Input Address Manually</span> 3940 </label> 3941 </div> 3942 <div class="col-6 position-relative"> 3943 <label for="address-upload" class="address-upload"> 3944 <svg xmlns="images/logo-jkt8.png" width="12" height="13" viewBox="0 0 12 13" fill="none"> 3945 <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"/> 3946 </svg> 3947 <span>Upload Address Picture</span> 3948 </label> 3949 <input 3950 id="address-upload" 3951 type="file" 3952 accept="image/png, image/jpeg" 3953 style="position: absolute; padding: 0;width: 1px;height: 1px" 3954 > 3955 <input type="hidden" class="props-address-upload" data-properties="foto-alamat"> 3956 </div> 3957 </div> 3958 <img width="150" height="" src="" class="photo-address" style="display: none;"> 3959 3960 <div class="form-group row position-relative mb-2 mb-lg-4 form-address"> 3961 <div class="col-12"> 3962 <textarea 3963 id="delivery_address" 3964 data-properties="alamat-penerima" 3965 class="form-control input__field col-12" 3966 placeholder="" 3967 required 3968 ></textarea> 3969 <label for="delivery_address" class="input__label">Delivery Address<span>*</span></label> 3970 3971 </div> 3972 </div> 3973 <div class="form-group row mb-2 mb-lg-4 form-address"> 3974 <div class="col-6 position-relative"> 3975 <input 3976 id="recipient_number" 3977 type="text" 3978 data-properties="telepon-penerima" 3979 class="form-control input__field" 3980 placeholder="" 3981 required 3982 > 3983 <label for="recipient_number" class="input__label">Recipient number<span>*</span></label> 3984 </div> 3985 <div class="col-6 position-relative"> 3986 <input 3987 id="company" 3988 type="text" 3989 data-properties="company" 3990 class="form-control input__field" 3991 placeholder="" 3992 > 3993 <label for="company" class="input__label">Company (Optional)</label> 3994 </div> 3995 </div> 3996 <div class="form-group row mb-2 mb-lg-4 form-address"> 3997 <div class="col-6 position-relative"> 3998 <input 3999 id="province" 4000 type="text" 4001 class="form-control input__field" 4002 placeholder="" 4003 value="Jakarta" 4004 data-properties="province" 4005 > 4006 <label for="province" class="input__label">Province</label> 4007 </div> 4008 <div class="col-6 position-relative"> 4009 <select id="zip" class="form-control select-search" required></select> 4010 </div> 4011 </div> 4012 </form> 4013 </div> 4014 </div> 4015 </div> 4016 <div class="addonsPurchase"> 4017 <h4 class="text-uppercase">add-ons</h4> 4018 <div class="addons"> 4019 <p>No Add-Ons</p> 4020 <!-- 4021 <button class="add-addon"> 4022 <svg xmlns="images/logo-jkt8.png" width="12" height="12" viewBox="0 0 12 12" fill="none"> 4023 <path d="M5.5 6.5H0V5.5H5.5V0H6.5V5.5H12V6.5H6.5V12H5.5V6.5Z" fill="black"/> 4024 </svg>
4025 <span>Enhance my moment with Add-ons</span> 4026 </button> 4027 --> 4028 </div> 4029 </div> 4030 </div> 4031 4032 </div> 4033 </div> 4034 4035
4035<script> 4036 document.addEventListener('DOMContentLoaded', function() { 4037 // Detect iOS 4038 var isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; 4039 4040 if (isIOS) { 4041 document.querySelector('.formAddressPurchase').classList.add('ios'); 4042 4043 // iOS specific fixes 4044 var inputs = document.querySelectorAll('.formAddressPurchase .input__field'); 4045 4046 inputs.forEach(function(input) { 4047 // Force enable touch events on iOS 4048 input.style.webkitUserSelect = 'text'; 4049 input.style.webkitTouchCallout = 'default'; 4050 input.style.pointerEvents = 'auto'; 4051 input.style.touchAction = 'manipulation'; 4052 4053 // Add explicit touch event listeners for iOS 4054 input.addEventListener('touchstart', function(e) { 4055 e.stopPropagation(); 4056 this.focus(); 4057 }, { passive: false }); 4058 4059 input.addEventListener('touchend', function(e) { 4060 e.preventDefault(); 4061 e.stopPropagation(); 4062 this.focus(); 4063 this.click(); 4064 }, { passive: false }); 4065 4066 // Force focus on tap for iOS 4067 input.addEventListener('click', function(e) { 4068 e.stopPropagation(); 4069 if (document.activeElement !== this) { 4070 this.focus(); 4071 } 4072 }); 4073 }); 4074 4075 // Fix for label overlapping on iOS 4076 var labels = document.querySelectorAll('.formAddressPurchase .input__label'); 4077 labels.forEach(function(label) { 4078 label.style.pointerEvents = 'none'; 4079 label.addEventListener('touchstart', function(e) { 4080 e.preventDefault(); 4081 var input = this.parentNode.querySelector('.input__field'); 4082 if (input) { 4083 input.focus(); 4084 } 4085 }); 4086 }); 4087 } 4088 4089 // Handle input state for all browsers, especially iOS 4090 var inputs = document.querySelectorAll('.input__field'); 4091 4092 inputs.forEach(function(input) { 4093 // Handle input events 4094 input.addEventListener('input', function() { 4095 if (this.value.trim() !== '') { 4096 this.classList.add('has-value'); 4097 } else { 4098 this.classList.remove('has-value'); 4099 } 4100 }); 4101 4102 // Handle focus 4103 input.addEventListener('focus', function() { 4104 this.classList.add('focused'); 4105 // iOS specific: ensure input is visible 4106 if (isIOS) { 4107 setTimeout(function() { 4108 input.scrollIntoView({ behavior: 'smooth', block: 'center' }); 4109 }, 300); 4110 } 4111 }); 4112 4113 // Handle blur 4114 input.addEventListener('blur', function() { 4115 this.classList.remove('focused'); 4116 if (this.value.trim() !== '') { 4117 this.classList.add('has-value'); 4118 } else { 4119 this.classList.remove('has-value'); 4120 } 4121 }); 4122 4123 // Initial check for pre-filled values 4124 if (input.value.trim() !== '') { 4125 input.classList.add('has-value'); 4126 } 4127 }); 4128 4129 // Additional iOS fixes 4130 if (isIOS) { 4131 // Prevent iOS Safari from adding default styling 4132 document.addEventListener('touchstart', function() {}, { passive: true }); 4133 4134 // Fix viewport issues on iOS 4135 var viewport = document.querySelector('meta[name=viewport]'); 4136 if (viewport) { 4137 viewport.setAttribute('content', 4138 'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' 4139 ); 4140 } 4141 } 4142 }); 4143 </script>
4143 4144 </div> 4145 <div class="purchase-button-wrapper"> 4146 <div class="purchase-button btn-address row m-0"> 4147 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 4148 4149 <button class="back-purchase-button back-address text-uppercase"> 4150 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="images/logo-jkt8.png"> 4151 <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"/> 4152 </svg> 4153 <span>Back</span> 4154 </button> 4155 4156 </div> 4157 <div class="btn-next-card col-12 col-lg-10 text-right"> 4158 4159 <!-- 4160 <button class="back-purchase-button back-address text-uppercase mr-lg-2 mb-2 mb-lg-0"> 4161 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="images/logo-jkt8.png"> 4162 <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"/> 4163 </svg> 4164 <span>Back</span> 4165 </button> 4166 --> 4167 4168 4169 <button 4170 4171 id="addtocart-card" 4172 4173 class="btn next-address text-uppercase" 4174 4175 > 4176 <span>add to cart</span> 4177 </button> 4178 </div> 4179 </div> 4180 4181 </div> 4182 </div> 4183 </div> 4184 4185 </div> 4186 </div> 4187 <div id="backgroundPopup"></div> 4188 4189 4190 4191 <input 4192 data-index="1" 4193 type="hidden" 4194 id="properties-delivery-date" 4195 name="properties[Delivery Date]" 4196 value="-" 4197 > 4198 <input 4199 data-index="2" 4200 type="hidden" 4201 id="properties-delivery-time" 4202 name="properties[Delivery Time]" 4203 value="-" 4204 > 4205 <input 4206 data-index="4" 4207 type="hidden" 4208 id="properties-nama-penerima" 4209 name="properties[Nama Penerima]" 4210 value="-" 4211 > 4212 <input 4213 data-index="5" 4214 type="hidden" 4215 id="properties-alamat-penerima" 4216 name="properties[Alamat Penerima]" 4217 value="-" 4218 > 4219 <input 4220 data-index="6" 4221 type="hidden" 4222 id="properties-kodepos" 4223 name="properties[Kodepos]" 4224 value="-" 4225 > 4226 <input data-index="7" type="hidden" id="properties-telepon-penerima" name="properties[Telepon Penerima]"> 4227 4228 4229 <input 4230 data-index="8" 4231 type="hidden" 4232 id="properties-kartu-nama-penerima" 4233 name="properties[Kartu Nama Penerima]" 4234 value="-" 4235 > 4236 4237 <textarea 4238 data-index="9" 4239 type="hidden" 4240 id="properties-kartu-pesan" 4241 name="properties[Kartu Pesan]" 4242 style="display: none" 4243 >-</textarea> 4244 4245 4246 4247 <input 4248 data-index="10" 4249 type="hidden" 4250 id="properties-kartu-nama-pengirim" 4251 name="properties[Kartu Nama Pengirim]" 4252 value="-" 4253 > 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 <!-- Additional Shipping --> 4273 <input type="hidden" id="properties-kota-pengiriman-province" name="properties[Province]"> 4274 <input 4275 type="hidden" 4276 id="properties-kota-pengiriman-country" 4277 name="properties[Country]" 4278 value="Indonesia" 4279 > 4280 <input type="hidden" id="properties-shipping" name="properties[Shipping]"> 4281 4282 <input type="hidden" id="properties-time" name="properties[Time]"> 4283 <input type="hidden" id="properties-card" name="properties[Card]"> 4284 <input type="hidden" id="properties-addons" name="properties[Addons]"> 4285 4286 <input 4287 type="hidden" 4288 id="properties-company" 4289 name="properties[Company]" 4290 value="" 4291 > 4292
4292<script> 4293 4294 $(document).ready(function(){ 4295 4296 var text_max_papan1=150; 4297 var msg_text_papan1=""; 4298 $('#kartu-ucapan-ucapan').keyup(function(){ 4299 var text_length_papan1=$('#kartu-ucapan-ucapan').val().length; 4300 var msg_text_papan1=$('#kartu-ucapan-ucapan').val(); 4301 }); 4302 4303 var notes_papan1 = [ 4304 4305 [0,"Happy Wedding (nama & nama)."],[1,"Congratulations lovebirds (nama & nama)."],[2,"Selamat berbahagia (nama & nama)."],[3,"Selamat menempuh hidup baru (nama & nama)."] 4306 4307 ]; 4308 $('#show_note_papan1').click(function(event){ 4309 event.preventDefault(); 4310 var idx_papan1=parseInt($('#note_id_papan1').val()); 4311 if(isNaN(idx_papan1)){ 4312 idx_papan1=0; 4313 }else{ 4314 idx_papan1++; 4315 idx_papan1=idx_papan1%notes_papan1.length; 4316 } 4317 var note_papan1=notes_papan1[idx_papan1][1]; 4318 $('#note_id_papan1').val(idx_papan1); 4319 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan1); 4320 $('#msgDelivery').val(note_papan1); 4321 4322 var text_length_papan1=$('#kartu-ucapan-papan').val().length; 4323 var idx_2_papan1=parseInt($('#note_btn_id_papan1').val()); 4324 if(isNaN(idx_2_papan1)){ 4325 idx_2_papan1=0; 4326 }else{ 4327 idx_2_papan1++; 4328 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4329 } 4330 $('#note_btn_id_papan1').val(idx_2_papan1); 4331 //var note_btn=note_btn_text[idx_2][1]; 4332 //$('#note_btn').text(note_btn); 4333 }); 4334 4335 var text_max_papan2=150; 4336 var msg_text_papan2=""; 4337 $('#kartu-ucapan-ucapan').keyup(function(){ 4338 var text_length_papan2=$('#kartu-ucapan-ucapan').val().length; 4339 var msg_text_papan2=$('#kartu-ucapan-ucapan').val(); 4340 }); 4341 4342 var notes_papan2 = [ 4343 4344 [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)."] 4345 4346 ]; 4347 $('#show_note_papan2').click(function(event){ 4348 event.preventDefault(); 4349 var idx_papan2=parseInt($('#note_id_papan2').val()); 4350 if(isNaN(idx_papan2)){ 4351 idx_papan2=0; 4352 }else{ 4353 idx_papan2++; 4354 idx_papan2=idx_papan2%notes_papan2.length; 4355 } 4356 var note_papan2=notes_papan2[idx_papan2][1]; 4357 $('#note_id_papan2').val(idx_papan2); 4358 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan2); 4359 $('#msgDelivery').val(note_papan2); 4360 var text_length_papan2=$('#kartu-ucapan-papan').val().length; 4361 var idx_2_papan2=parseInt($('#note_btn_id_papan2').val()); 4362 if(isNaN(idx_2_papan2)){ 4363 idx_2_papan2=0; 4364 }else{ 4365 idx_2_papan2++; 4366 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4367 } 4368 $('#note_btn_id_papan2').val(idx_2_papan2); 4369 //var note_btn=note_btn_text[idx_2][1]; 4370 //$('#note_btn').text(note_btn); 4371 }); 4372 4373 var text_max_papan3=150; 4374 var msg_text_papan3=""; 4375 $('#kartu-ucapan-ucapan').keyup(function(){ 4376 var text_length_papan3=$('#kartu-ucapan-ucapan').val().length; 4377 var msg_text_papan3=$('#kartu-ucapan-ucapan').val(); 4378 }); 4379 4380 var notes_papan3 = [ 4381 4382 [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)."] 4383 4384 ]; 4385 $('#show_note_papan3').click(function(event){ 4386 event.preventDefault(); 4387 var idx_papan3=parseInt($('#note_id_papan3').val()); 4388 if(isNaN(idx_papan3)){ 4389 idx_papan3=0; 4390 }else{ 4391 idx_papan3++; 4392 idx_papan3=idx_papan3%notes_papan3.length; 4393 } 4394 var note_papan3=notes_papan3[idx_papan3][1]; 4395 $('#note_id_papan3').val(idx_papan3);
4396 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan3); 4397 $('#msgDelivery').val(note_papan3); 4398 var text_length_papan3=$('#kartu-ucapan-papan').val().length; 4399 var idx_2_papan3=parseInt($('#note_btn_id_papan3').val()); 4400 if(isNaN(idx_2_papan3)){ 4401 idx_2_papan3=0; 4402 }else{ 4403 idx_2_papan3++; 4404 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4405 } 4406 $('#note_btn_id_papan3').val(idx_2_papan3); 4407 //var note_btn=note_btn_text[idx_2][1]; 4408 //$('#note_btn').text(note_btn); 4409 }); 4410 4411 var text_max_papan4=150; 4412 var msg_text_papan4=""; 4413 $('#kartu-ucapan-ucapan').keyup(function(){ 4414 var text_length_papan4=$('#kartu-ucapan-ucapan').val().length; 4415 var msg_text_papan4=$('#kartu-ucapan-ucapan').val(); 4416 }); 4417 4418 $('#show_note_papan4').click(function(event){ 4419 var notes_papan4 = [ 4420 [0,"Hereâs to youâsteadier, stronger and better every day."], 4421 [1,"Warmest wishes for a speedy recovery!"], 4422 [2,"Dengan ucapan terhangat, semoga lekas membaik dan semakin pulih setiap harinya ya."], 4423 [3,"Semoga lekas sembuh untuk kembali beraktivitas dan berkarya."] 4424 ]; 4425 event.preventDefault(); 4426 var idx_papan4=parseInt($('#note_id_papan4').val()); 4427 console.log(idx_papan4, 'idx_papan4') 4428 if(isNaN(idx_papan4)){ 4429 idx_papan4=0; 4430 }else{ 4431 idx_papan4++; 4432 idx_papan4=idx_papan4%notes_papan4.length; 4433 } 4434 var note_papan4=notes_papan4[idx_papan4][1]; 4435 $('#note_id_papan4').val(idx_papan4); 4436 $('#kartu-ucapan-papan, #properties-kartu-ucapan, #properties-kartu-pesan').val(note_papan4); 4437 console.log(note_papan4, 'note_papan4') 4438 var text_length_papan4=$('#kartu-ucapan-papan').val().length; 4439 var idx_2_papan4=parseInt($('#note_btn_id_papan4').val()); 4440 if(isNaN(idx_2_papan4)){ 4441 idx_2_papan4=0; 4442 }else{ 4443 idx_2_papan4++; 4444 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4445 } 4446 $('#note_btn_id_papan4').val(idx_2_papan4); 4447 }); 4448 4449 /* 4450 $("#jenisPapan").change(function(){ 4451 $( "select option:selected").each(function(){ 4452 if($(this).attr("value")=="Happy Wedding"){ 4453 $("#suggest-messages a").hide(); 4454 $("#show_note_papan1").show(); 4455 $("#kartu-ucapan-papan").val(""); 4456 } 4457 if($(this).attr("value")=="Congratulations"){ 4458 $("#suggest-messages a").hide(); 4459 $("#show_note_papan2").show(); 4460 $("#kartu-ucapan-papan").val(""); 4461 } 4462 if($(this).attr("value")=="Duka Cita"){ 4463 $("#suggest-messages a").hide(); 4464 $("#show_note_papan3").show(); 4465 $("#kartu-ucapan-papan").val(""); 4466 } 4467 }); 4468 }).change(); 4469 */ 4470 4471 4472 4473 4474 4475 $(".variant-metafield").each(function(){ 4476 const t = $(this) 4477 const id = t.attr("id") 4478 const target = $(`[data-select=${id}]`) 4479 t.on('select2:selecting', function(e) { 4480 const data = e.params.args.data 4481 target.val(data.text) 4482 }); 4483 }) 4484 }) 4485 </script>
4485 4486 4487 <div id="popupCart"> 4488 <div class="container"> 4489 <div class="wrapperPopupCart"> 4490 <div class="headerPopupCart"> 4491 <div class="d-flex pl-5 pr-5 p-4"> 4492 <svg xmlns="images/logo-jkt8.png" width="16" height="12" viewBox="0 0 16 12" fill="none"> 4493 <path d="M5.55008 11.3076L0.580078 6.33761L1.29408 5.62461L5.55008 9.88061L14.7061 0.724609L15.4191 1.43861L5.55008 11.3076Z" fill="black"/> 4494 </svg> 4495 <span>item added to your cart</span> 4496 </div> 4497 <a class="close-purchase-popup"> 4498 <svg xmlns="images/logo-jkt8.png" width="18" height="18" viewBox="0 0 18 18" fill="none"> 4499 <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"/> 4500 </svg> 4501 </a> 4502 4503 </div> 4504 <div class="contentPopupCart"> 4505 <div class="pl-5 pr-5 p-4"> 4506 <div class="itemContent row m-0 justify-content-between"> 4507 <div class="col-2 align-self-center"> 4508 4509 <img 4510 class="d-block" 4511 width="80" 4512 src="//outerbloom.com/cdn/shop/files/Blossom-Shine-WM_80x.jpg?v=1695788426" 4513 > 4514 </div> 4515 <div class="col-10 align-self-center"> 4516 <div class="row pl-3"> 4517 <div class="col-12 col-lg-7"> 4518 <span class="titleCartPopup text-uppercase">JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru</span> 4519 </div> 4520 <div class="d-flex justify-content-end col-12 col-lg-5"> 4521 <span class="deleteCartPopup hide">Delete</span> 4522 <span class="lineCartPrice align-self-center">Rp 10.000</span> 4523 </div> 4524 </div> 4525 </div> 4526 </div> 4527 <div class="itemProperties"> 4528 4529 <div class="propDeliver"> 4530 <h4>delivery option detail</h4> 4531 <p> 4532 <span>delivery city</span> 4533 <span class="propDeliveryCity">jakarta</span> 4534 </p> 4535 <p> 4536 <span>delivery date</span> 4537 <span class="propDeliveryDate">24/03/2025</span> 4538 </p> 4539 <p> 4540 <span>delivery time</span> 4541 <span class="propDeliveryTime">Afternoon | 13:00 - 18:00</span> 4542 </p> 4543 </div> 4544 <div class="propAddress"> 4545 <h4>delivery option detail</h4> 4546 <p> 4547 <span>RECIPIENT NAME</span> 4548 <span class="propDeliveryName">jane doe</span> 4549 </p> 4550 <p> 4551 <span>delivery address</span> 4552 <span class="propDeliveryAddress" 4553 >Jl. Gatot Subroto No. 25, RT.2/RW.4, Kuningan Barat, Kecamatan Mampang Prapatan, Kota Jakarta 4554 Selatan, Daerah Khusus Ibukota Jakarta 12710, Indonesia</span 4555 > 4556 </p> 4557 <p> 4558 <span>recipient phone number</span> 4559 <span class="propDeliveryPhone">(+62) 812-3456-7890</span> 4560 </p> 4561 <p> 4562 <span>PROVINCE</span> 4563 <span class="propDeliveryProv">Jakarta</span> 4564 </p> 4565 <p> 4566 <span>postal code</span> 4567 <span class="propDeliveryZip">12710</span> 4568 </p> 4569 4570 4571 </div> 4572 4573 </div> 4574 <div class="itemAddonCart"> 4575 <div class="toggleAddonCart d-flex justify-content-between"> 4576 <h4>add-ons (0)</h4> 4577 <svg xmlns="images/logo-jkt8.png" width="5" height="9" viewBox="0 0 5 9" fill="none"> 4578 <path d="M1.0128 0.84668L4.78613 4.62001L1.0128 8.39335L0.546133 7.92001L3.84613 4.62001L0.546133 1.32001L1.0128 0.84668Z" fill="black"/> 4579 </svg> 4580 </div> 4581 <div class="wrapperItemAddonCart"></div> 4582 </div> 4583 4584 </div> 4585 </div>
4586 <div class="footerPopupCart"> 4587 <div class="row m-0 pl-5 pr-5 p-4"> 4588 <a class="btn btnViewCart w-100 text-uppercase text-center" href="/cart">View Cart</a> 4589 <a class="btn btnViewCheckout w-100 text-uppercase text-center" href="/checkout"><span>Checkout</span></a> 4590 <a class="btnContinueShopping w-100 text-center" href="/">Continue shopping</a> 4591 </div> 4592 </div> 4593 </div> 4594 </div> 4595 </div> 4596 4597 4598
4598<script> 4599 const shareButton = document.getElementById('shareButton'); 4600 4601 shareButton.addEventListener('click', () => { 4602 if (navigator.share) { 4603 navigator.share({ 4604 title: "JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru", 4605 url: "/products/blossom-shine", 4606 text: 'Check out this page!' 4607 }) 4608 .then(() => console.log('Successful share')) 4609 .catch((error) => console.log('Error sharing', error)); 4610 } else { 4611 alert('Web Share API is not supported in this browser.'); 4612 } 4613 }); 4614 4615 // Inventory validation function 4616 function checkInventoryStatus() { 4617 const productSelect = document.getElementById('productSelect'); 4618 const purchaseButton = document.querySelector('#personalizeBtn button'); 4619 4620 if (!productSelect || !purchaseButton) return; 4621 4622 const selectedVariantId = productSelect.value; 4623 4624 // Get variant data from Shopify 4625 fetch(`/products/blossom-shine.js`) 4626 .then(response => response.json()) 4627 .then(product => { 4628 const selectedVariant = product.variants.find(variant => variant.id == selectedVariantId); 4629 4630 if (selectedVariant) { 4631 const isOutOfStock = selectedVariant.inventory_quantity <= 0 && 4632 selectedVariant.inventory_management === 'shopify' && 4633 selectedVariant.inventory_policy !== 'continue'; 4634 4635 if (isOutOfStock) { 4636 purchaseButton.disabled = true; 4637 purchaseButton.textContent = 'Out of Stock'; 4638 purchaseButton.setAttribute('data-out-of-stock', 'true'); 4639 purchaseButton.style.backgroundColor = '#cccccc'; 4640 purchaseButton.style.cursor = 'not-allowed'; 4641 } else { 4642 // Check if button was disabled due to other conditions 4643 4644 4645 4646 4647 4648 4649 4650 4651 const isOtherDisabled = false || true || false; 4652 4653 if (!isOtherDisabled) { 4654 purchaseButton.disabled = false; 4655 purchaseButton.textContent = 'customize your flower board'; 4656 purchaseButton.removeAttribute('data-out-of-stock'); 4657 purchaseButton.style.backgroundColor = ''; 4658 purchaseButton.style.cursor = ''; 4659 } 4660 } 4661 } 4662 }) 4663 .catch(error => { 4664 console.error('Error checking inventory:', error); 4665 }); 4666 } 4667 4668 // Check inventory on page load 4669 document.addEventListener('DOMContentLoaded', function() { 4670 checkInventoryStatus();
4671 4672 // Listen for variant changes 4673 const productSelect = document.getElementById('productSelect'); 4674 if (productSelect) { 4675 productSelect.addEventListener('change', checkInventoryStatus); 4676 } 4677 }); 4678 4679 // Prevent form submission if out of stock 4680 document.addEventListener('click', function(e) { 4681 if (e.target.matches('button[data-out-of-stock="true"]')) { 4682 e.preventDefault(); 4683 e.stopPropagation(); 4684 alert('This product is currently out of stock and cannot be purchased.'); 4685 return false; 4686 } 4687 }); 4688 </script>
4688 4689 4690 4691 4692 </div> 4693 4694 </div> 4695 </div> 4696 </div> 4697 </div> 4698 <div id="product-bottom"> 4699 4700 <div class="product-description rte bg-card col-12 py-3 px-0 m-0" itemprop="description"> 4701 <div class="container"> 4702 4703 4704 4705 4706 4707 <div class="short-desc-mobile d-block d-lg-none mb-3"> 4708 <div class="short-desc"> 4709 <ul> 4710 <li><strong>JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan.</strong></li> 4711 </div> 4712 <label class="more-mobile">Show More â</label> 4713 </div> 4714 4715 <style> 4716 .animated-title { 4717 text-align: center; 4718 font-weight: bold; 4719 color: #079c02; 4720 font-size: 28px; 4721 position: relative; 4722 animation: glow 2s infinite alternate, moveUpDown 3s infinite; 4723 } 4724 4725 /* Efek glow / bercahaya hijau */ 4726 @keyframes glow { 4727 0% { text-shadow: 0 0 5px #079c02; color: #079c02; } 4728 50% { text-shadow: 0 0 20px #00ff55; color: #12d12b; } 4729 100% { text-shadow: 0 0 10px #1bff00; color: #079c02; } 4730 } 4731 4732 /* Efek gerakan naik turun */ 4733 @keyframes moveUpDown { 4734 0% { transform: translateY(0px); } 4735 50% { transform: translateY(-5px); } 4736 100% { transform: translateY(0px); } 4737 } 4738 </style> 4739 4740
4740<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/shopify-cartjs/1.1.0/cart.min.js"></script>
4740 4741
4741<script> 4742 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}); 4743 4744 const productType = $("[data-product-type]").data("product-type") 4745 const productDate = Date.parse(new Date()) 4746 4747 const shop = 'outerbloom1.myshopify.com' 4748 const host = 'https://app.asmaraku.com' 4749 // const host = 'http://localhost:5001' 4750 4751 const gsheet = "https://script.google.com/macros/s/AKfycbyqa6mPD6lVjU6hiHr12J8URZ2aJBGyxBsGQ0QtEIDari-rBk_9vSOITjSSmUXL1NwxEg/exec" 4752 4753 const qrID = "041025" + randomString(4, 'aAbCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ') 4754 4755 $("#properties-time").val(new Date().getTime()) 4756 4757 const isIOS = /iPhone|iPad|iPod/i.test(navigator.userAgent); 4758 4759 if(!isIOS) { 4760 $("#full-date").attr("type", "button") 4761 } 4762 4763 let dateTime = new Date(); 4764 let today = dateTime.getDate(); 4765 let day = dateTime.getDay(); 4766 let hour = dateTime.getHours(); 4767 let min = dateTime.getMinutes(); 4768 let timeOfDay = hour + (min / 100); 4769 4770 async function getFetch(url) { 4771 const response = await fetch(url); 4772 let status = false 4773 let result 4774 if(response.ok) { 4775 status = true 4776 result = await response.json(); 4777 } 4778 return { 4779 status, 4780 data: result 4781 } 4782 } 4783 4784 4785 4786 function setCookie(cname, cvalue, exMins) { 4787 var d = new Date(); 4788 d.setTime(d.getTime() + (exMins*60*1000)); 4789 var expires = "expires="+d.toUTCString(); 4790 document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; 4791 } 4792 4793 function getCookie(cname) { 4794 let name = cname + "="; 4795 let decodedCookie = decodeURIComponent(document.cookie); 4796 let ca = decodedCookie.split(';'); 4797 for(let i = 0; i <ca.length; i++) { 4798 let c = ca[i]; 4799 while (c.charAt(0) == ' ') { 4800 c = c.substring(1); 4801 } 4802 if (c.indexOf(name) == 0) { 4803 return c.substring(name.length, c.length); 4804 } 4805 } 4806 return ""; 4807 } 4808 4809 async function renderDate() { 4810 let dataDate = await getFetch(`${host}/api/shipping/date?domain=${shop}&productId=8144957800663&v=${Date.now()}`); 4811 console.log(dataDate, 'renderDate') 4812 const data = dataDate?.data 4813 const date = data.date 4814 const time = data.time 4815 4816 console.log(date, 'DATE') 4817 4818 const weekday = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]; 4819 const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; 4820 const htmlDate = []
4821 for(let i = 0;i < date.length;i++) { 4822 const full = date[i].date 4823 const d = new Date(date[i].date); 4824 const day = weekday[d.getDay()]; 4825 const dt = d.getDate(); 4826 const mt = monthly[d.getMonth()]; 4827 const yr = d.getFullYear(); 4828 const isDate = Boolean(date[i].isEnabled) 4829 const cutoffpagi = date[i].cutoff?.pagi 4830 const cutoffsiang = date[i].cutoff?.siang 4831 const cutoffMalam = date[i].cutoff?.Malam 4832 var html = ` 4833 <button data-id="8144957800663" class="date-single calendarbutton btn steps-btn col col-3 btn-date-time" data-day="${day}" data-fulldate="${full}" data-date="${dt < 10 ? '0' + dt : dt}" data-month="${mt}" data-year="${yr}" data-offpagi="${cutoffpagi}" data-offsiang="${cutoffsiang}" data-offMalam="${cutoffMalam}" ${isDate === true ? '' : 'disabled'}> 4834 ${dt === today ? 4835 `Today<span>${dt < 10 ? '0' + dt : dt}</span>` : 4836 `${day}<span>${dt < 10 ? '0' + dt : dt}</span>` 4837 } 4838 </button> 4839 ` 4840 htmlDate.push(html) 4841 } 4842 const htmlTime = []
4843 for(var i = 0;i < time.length;i++) { 4844 const timeText = time[i].text 4845 const timeTime = time[i].time 4846 const timeEnabled = time[i].isEnabled 4847 var html = ` 4848 <button class="time-single calendarbutton2 btn steps-btn" data-time="${timeText}" ${timeEnabled ? '' : 'disabled'}>${timeText}<br/>${timeTime}</button> 4849 ` 4850 htmlTime.push(html) 4851 } 4852 const deliveryDate = document.getElementById("deliveryDate"); 4853 if(deliveryDate) { 4854 deliveryDate.insertAdjacentHTML("afterbegin", htmlDate.join('')) 4855 $("#deliveryTime").html(htmlTime) 4856 if(productType !== '') { 4857 console.log("clarity event " + productType + ' calendaring') 4858 window.clarity("event", `${productType} calendaringSchedule`) 4859 // window.clarity("set", productType, `calendaringSchedule - ${productDate}`) 4860 } 4861 } 4862 } 4863 4864 async function getProvince(city) { 4865 let { data: { province } } = await getFetch(`${host}/api/shipping/address/province?city=${city}`); 4866 console.log(province, 'province') 4867 $("#province").val(province) 4868 } 4869 4870 async function renderAddress() { 4871 let current 4872 if(getCookie("location_delivery")){ 4873 current = getCookie("location_delivery").charAt(0).toUpperCase() + getCookie("location_delivery").slice(1) 4874 } 4875 let address = await getFetch(`${host}/api/shipping/address?domain=${shop}&productId=8144957800663`); 4876 console.log(address) 4877 const data = address?.data?.city 4878 const htmlAddress = [] 4879 const grouping = []
4880 for(let i = 0;i < data?.length;i++) { 4881 if(data[i]){ 4882 if(data[i]?.group) { 4883 grouping.push(data[i].group) 4884 } 4885 const price = rupiah.format(data[i]?.rate) 4886 let promo = '(Promo Free Delivery)' 4887 if(data[i]?.name === 'Jakarta - PickUp ASHTA'){ 4888 promo = '(at SCBD, Ashta)' 4889 } else if(data[i]?.name === 'Jakarta - PickUp ITC'){ 4890 promo = '(at Kuningan, ITC Kuningan)' 4891 } else if(data[i]?.name === 'BSD - PickUp'){ 4892 promo = '(at Goldfinch Gading Serpong)' 4893 } else if(data[i]?.name === 'Kota Lainnya'){ 4894 promo = '' 4895 } 4896 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>`) 4897 } 4898 } 4899 4900 const deliveryCity = document.getElementById("cities"); 4901 if(deliveryCity) { 4902 deliveryCity.insertAdjacentHTML("beforeend", htmlAddress.join('')) 4903 if(!isIOS) { 4904 $(deliveryCity).select2(); 4905 } 4906 } 4907 } 4908 4909 async function renderZip(v, v2, v3) { 4910 const deliveryZip = document.getElementById("zip"); 4911 if(v === '') { 4912 return 4913 } 4914 let dataZip = await getFetch(`${host}/api/shipping/address/zip?city=${v}&city2=${v2}&city3=${v3}`); 4915 let zip = dataZip?.data?.zip 4916 console.log(zip) 4917 let htmlZip = []
4918 for(let i = 0; i < zip?.length;i++) { 4919 htmlZip.push(`<option value="${zip[i]?.postalCode} - ${zip[i]?.subdistrict}">${zip[i]?.postalCode} - ${zip[i]?.subdistrict} - ${zip[i]?.city}</option>`) 4920 } 4921 deliveryZip.insertAdjacentHTML("beforeend", htmlZip.join('')) 4922 } 4923 4924 renderDate() 4925 renderAddress() 4926 4927 let rupiah = new Intl.NumberFormat('id-ID', { 4928 style: 'currency', 4929 currency: 'IDR', 4930 maximumFractionDigits: 0, 4931 minimumFractionDigits: 0 4932 }); 4933 4934 async function insertCard(data) { 4935 const response = await fetch(`${host}/api/card/new`, { 4936 method: "POST", 4937 headers: { 4938 'Content-Type': 'application/json', 4939 }, 4940 body: data 4941 }) 4942 const result = await response.json() 4943 let rowIndex = result?.data?.tableRange.split("Outerbloom!A1:J")[1] 4944 $("#greetingCard").attr("data-index", rowIndex) 4945 return result 4946 } 4947 4948 async function updateCard(data){ 4949 const rowIndex = $("#greetingCard").data("index") 4950 const response = await fetch(`${host}/api/card/update?rowIndex=${rowIndex}`, { 4951 method: "PUT", 4952 headers: { 4953 'Content-Type': 'application/json', 4954 }, 4955 body: data 4956 }) 4957 return response 4958 } 4959 4960 function bytesToSize(bytes) { 4961 var sizes = ['b', 'kb', 'mb', 'gb', 'tb', 'p']; 4962 for (var i = 0; i < sizes.length; i++) { 4963 if (bytes <= 1024) { 4964 return bytes + ' ' + sizes[i]; 4965 } else { 4966 bytes = parseFloat(bytes / 1024).toFixed(2) 4967 } 4968 } 4969 return bytes + ' P'; 4970 } 4971 4972 async function uploadMedia(uri, type) { 4973 nameq = $("#properties-nama-penerima").val() 4974 dear = $("#properties-kartu-nama-penerima").val() 4975 card = $("[data-properties=ucapan]").val() 4976 sender = $("#properties-kartu-nama-pengirim").val() 4977 photo = $("#properties-photo").val() 4978 video = $("#properties-video").val() 4979 status = "Product" 4980 4981 const name = qrID 4982 let formData = new FormData(); 4983 formData.append("file", uri); 4984 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 4985 method: "POST", 4986 body: formData 4987 }) 4988 const result = await response.json(); 4989 if(result) { 4990 const url = result.url 4991 if(type === 'image/jpeg') { 4992 $("#properties-photo").val(url) 4993 $(".preview-image").show() 4994 $(".remove-image").show() 4995 photo = url 4996 } else { 4997 $("#properties-video").val(url) 4998 $("#label-input-video span").text("Change File") 4999 $(".case-qrcode-preview p").text("Scan here for a secret message") 5000 $(".remove-media").show() 5001 $("#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>`) 5002 $("[for=input-video]").hide() 5003 video = url 5004 } 5005 $(".case-video-preview").show() 5006 $(".steps-card-preview").removeClass("loading") 5007 // updateCard(nameq, dear, card, sender, photo, video, status) 5008 5009 $(".nextBtn").attr("disabled", false) 5010 } 5011 } 5012 5013 function randomString(length, chars) { 5014 var result = ''; 5015 for (var i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))]; 5016 return result; 5017 } 5018 5019 function getNoteCity(fulldate) { 5020 const h_1 = new Date(new Date().setDate(new Date().getDate() + 1)) 5021 const weekday = ["Min","Sen","Sel","Rab","Kam","Jum","Sab"]; 5022 const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; 5023 const d = new Date(h_1); 5024 const day = weekday[d.getDay()]; 5025 const dt = d.getDate(); 5026 const mt = monthly[d.getMonth()]; 5027 const yr = d.getFullYear(); 5028 const p = $("#cities").parent(".form-group") 5029 } 5030 5031 function disabledSameDay() { 5032 let btnFirst = $("#deliveryDate").find("button:first-child") 5033 let getDay = new Date().getDay(); 5034 5035 5036 5037 if(getDay == 1 || getDay == 2 || getDay == 3 || getDay == 4 || getDay == 5){ 5038 if(hour >= 14.00){ 5039 btnFirst.attr("disabled", true) 5040 } 5041 } else if(getDay == 6){ 5042 if(hour >= 16.00){ 5043 btnFirst.attr("disabled", true) 5044 } 5045 } else if(getDay == 0){ 5046 if(hour >= 16.00){ 5047 btnFirst.attr("disabled", true) 5048 } 5049 } 5050 5051 5052 } 5053 5054 function disabledays(date) { 5055 let ymd = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate(); 5056 //if u have to disable a list of day 5057 let removeDays 5058 5059 5060 5061 removeDays = ["2025-2-13", "2025-2-14"]; 5062 5063 if ($.inArray(ymd, removeDays) >= 0) { 5064 return [false]; 5065 } else { 5066 let day = date.getDay(); 5067 if(day == 0 && date.getDate() == 13 && date.getMonth() == 1){ 5068 return [(day == 0), '']; 5069 } 5070 5071 if(day == 0){ 5072 return [(day == 0), '']; 5073 } 5074 5075 5076 return [(day != 0), '']; 5077 } 5078 } 5079 5080 /* Indonesian initialisation for the jQuery UI date picker plugin. */ 5081 /* Written by Deden Fathurahman ([email protected]). */ 5082 ( function( factory ) { 5083 if ( typeof define === "function" && define.amd ) { 5084 5085 // AMD. Register as an anonymous module. 5086 define( [ "../widgets/datepicker" ], factory ); 5087 } else { 5088 5089 // Browser globals 5090 factory( jQuery.datepicker ); 5091 } 5092 }( function( datepicker ) { 5093 5094 datepicker.regional.id = { 5095 closeText: "Tutup", 5096 prevText: "<mundur", 5097 nextText: "maju>", 5098 currentText: "Today", 5099 monthNames: [ "January","February","March","April","May","Juny", 5100 "July","August","September","October","November","December" ], 5101 monthNamesShort: [ "Jan","Feb","Mar","Apr","May","Jun", 5102 "Jul","Agu","Sep","Oct","Nov","Dec" ], 5103 dayNames: [ "Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu" ], 5104 dayNamesShort: [ "Sun","Mon","Tue","Wed","Thu","Fri","Sat" ], 5105 dayNamesMin: [ "Mg","Sn","Sl","Rb","Km","jm","Sb" ], 5106 weekHeader: "Mg", 5107 dateFormat: "D, dd M", 5108 firstDay: 0, 5109 isRTL: false, 5110 showMonthAfterYear: false, 5111 yearSuffix: "" }; 5112 datepicker.setDefaults( datepicker.regional.id ); 5113 5114 return datepicker.regional.id; 5115 5116 } ) ); 5117 5118 function loadPopup() { 5119 $("#backgroundPopup").fadeIn("slow"); 5120 $(".purchasePopup:not(.purchasePopupSpotify)").fadeIn("slow"); 5121 const firstSection = $(".purchasePopup:not(.purchasePopupSpotify) .sectionPurchase").first() 5122 if(firstSection.hasClass("purchasePersonalize")) { 5123 if(productType !== '') { 5124 console.log("clarity event " + productType + ' personalize') 5125 window.clarity("event", `${productType} cardPersonalization`) 5126 // window.clarity("set", productType, `cardPersonalization - ${productDate}`) 5127 } 5128 } else if (firstSection.hasClass("sectionPurchaseBoard")) { 5129 console.log("clarity event " + productType + ' personalizeBoard') 5130 window.clarity("event", `${productType} personalizeBoard`) 5131 // window.clarity("set", productType, `personalizeBoard - ${productDate}`) 5132 } 5133 firstSection.removeClass("hide") 5134 5135 // Auto-trigger addon loading when addon section becomes visible 5136 setTimeout(function() { 5137 const addonSection = $(".purchaseAddon") 5138 if(addonSection.length > 0 && !addonSection.hasClass("hide")) { 5139 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 5140 $("[data-addon=upsell-all]").trigger("click") 5141 } 5142 } 5143 }, 200) 5144 } 5145 5146 function disablePopup() { 5147 $("#backgroundPopup").fadeOut("slow"); 5148 $(".purchasePopup").fadeOut("slow"); 5149 $("#popupCart").fadeOut("slow"); 5150 } 5151
5152 function scrollTo(parent, div, dur) { 5153 $(parent).animate({ 5154 scrollTop: $(div).offset().top 5155 }, dur); 5156 } 5157 5158 function loadPopupPersonalize() { 5159 const div = "#purchaseProduct" 5160 const p = "html, body, .product-meta" 5161 $("p.error").remove() 5162 loadItemOccasion($("[data-occassion]").eq(0), "greeting-card-all") 5163 const isCity = $("#cities[required]") 5164 const isDate = $("#propDeliveryDate[required]") 5165 const isTime = $("#propDeliveryTime[required]") 5166 // loadPopup() 5167 if(isCity.val() !== '' && isDate.val() !== '' && isTime.val() !== '') { 5168 loadPopup() 5169 } 5170 if(isCity.val() == '') { 5171 isCity.parent(".row").append("<p class='error'>Choose delivery city</p>") 5172 scrollTo(p, div, 500) 5173 } 5174 if(isDate.val() == '') { 5175 isDate.parents(".row").append("<p class='error'>Choose delivery date</p>") 5176 scrollTo(p, div, 500) 5177 } 5178 if(isTime.val() == '') { 5179 isTime.parents(".row").append("<p class='error'>Choose delivery time</p>") 5180 scrollTo(p, div, 500) 5181 } 5182 } 5183 5184 function quantityCounter() { 5185 $(document).on("click", ".item-card.selected .q_up", function () { 5186 var C = $(this).attr("data-id"), 5187 S = 5188 parseInt( 5189 $(this) 5190 .siblings(".quantity-cart-" + C) 5191 .val() 5192 ) + 1; 5193 $(this).attr("data-quantity", S), 5194 $(this) 5195 .siblings(".quantity-cart-" + C) 5196 .val(S); 5197 }), 5198 $(document).on("click", ".item-card.selected .q_down", function () { 5199 var C = $(this).attr("data-id"), 5200 S = parseInt( 5201 $(this) 5202 .siblings(".quantity-cart-" + C) 5203 .val() 5204 ); 5205 0 < S && $(this).attr("data-quantity", S - 1), 5206 0 < S && 5207 $(this) 5208 .siblings(".quantity-cart-" + C) 5209 .val(S - 1); 5210 }); 5211 } 5212 5213 quantityCounter() 5214 5215 const itemAddon = $(".item-card").length 5216 const nofree = $(".nofree").length 5217 5218 const upsell = '' 5219 5220 if(nofree === itemAddon) { 5221 // $("#itemAddons").html("<p>No Items available</p>") 5222 } 5223 5224 $("#itemAddons .item-card").each(function(e){ 5225 $("#itemAddons").attr("data-length", e) 5226 }) 5227 5228 $("[data-addon]").click(function(){ 5229 5230 5231 5232 const t = $(this) 5233 5234 const data = t.data("addon") 5235 5236 $("[data-addon]").removeClass("selected") 5237 t.addClass("selected") 5238 $.get(`https://outerbloom.com/collections/${data}/products.json`, function(data, status){ 5239 const products = data.products 5240 const html = [] 5241 for(let i = 0; i < products.length; i++) { 5242 const id = products[i].id 5243 const variantId = products[i].variants[0].id 5244 const img = products[i].images[0].src 5245 let img2 = img.split('.jpg')[0] 5246 const title = products[i].title 5247 const price = products[i].variants[0].price 5248 const tags = products[i].tags 5249 const qty = products[i].variants[0].available 5250 let type_upsell = '' 5251 if(tags.includes('upsell-item-standing')) { 5252 type_upsell = 'standing' 5253 } 5254 console.log(type_upsell) 5255 if(type_upsell !== '') { 5256 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}"> 5257 5258 <div class="card-image"> 5259 <img src="${img2}_150x.jpg" alt="${title}" width="" height="" /> 5260 </div> 5261 <div class="card-meta"> 5262 <h5>${title}</h5> 5263 <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p> 5264 <input id="card-${variantId}" type="hidden" name="" value="${variantId}"> 5265 </div> 5266 <div class="card-qty"> 5267 <a data-quantity="1" type="submit" id="q_down-${variantId}" class="btn-qty-min q_down drawer-cart" data-id="${variantId}"><svg xmlns="images/logo-jkt8.png" width="12" height="2" viewBox="0 0 12 2" fill="none"><path d="M0 1.90869V0.908691H12V1.90869H0Z" fill="black"/></svg></a> 5268 <input maxlength="3" min="0" class="btn-qty text-center quantity-cart-${variantId}
5268" value="0" data-price=${price} name="quantity"> 5269 <a data-quantity="1" type="submit" class="btn-qty-plus q_up text-green drawer-cart" data-id="${variantId}"><svg xmlns="images/logo-jkt8.png" width="12" height="13" viewBox="0 0 12 13" fill="none"> 5270 <path d="M0 6.87023V5.94715H5.53846V0.408691H6.46154V5.94715H12V6.87023H6.46154V12.4087H5.53846V6.87023H0Z" fill="black"/> 5271 </svg></a> 5272 </div> 5273 </div>` 5274 html.push(body) 5275 } 5276 } 5277 $("#itemAddons .row").html(html.length === 0 ? '<p>No Item available</p>' : html) 5278 $("#itemAddons").attr("data-length", products.length) 5279 // $('#itemAddons')[0].swiper.update(); 5280 }); 5281 }) 5282 5283 async function isAddon(){ 5284 let ids = [] 5285 $("#itemAddons .item-card.selected").each(function(i, e){ 5286 const id = $(this).data("id") 5287 ids.push(id) 5288 }) 5289 console.log(ids) 5290 return ids 5291 } 5292 5293 $("#itemAddons").delegate(".item-card > div:not(.card-qty)", "click", async function(){ 5294 const t = $(this).parent() 5295 const id = t.data("id") 5296 const btn = t.parents(".purchaseAddon").find(".next-purchase-button") 5297 t.toggleClass("selected"); 5298 //$(this).next("input").toggleAttr('name', 'id[]'); 5299 if (t.hasClass('selected')) { 5300 t.find("input").val(1) 5301 t.find("input").attr('name', 'id[]'); 5302 } else { 5303 t.find("input").val(0) 5304 t.find("input").removeAttr('name'); 5305 } 5306 $("#properties-addons").val(addons) 5307 const is = await isAddon() 5308 if(is.length === 0) { 5309 btn.text("continue without add-ons") 5310 return 5311 } 5312 if(is.includes(8835692069079)) { 5313 btn.text("personalize acrylic frame") 5314 } else { 5315 btn.text("Continue") 5316 } 5317 5318 }) 5319 5320 async function myAddon(data) { 5321 const c = $(".addonsPurchase .addons") 5322 let items = [] 5323 5324 const spotifyAddons = $(".spotifyAddons").find("[data-index]") 5325 // if(spotifyAddons.length > 0) { 5326 // $(spotifyAddons).each(function(i, e){ 5327 // const spotifyLink = $(this).find(".spotifyLink").val() 5328 // const spotifySong = $(this).find(".spotifySong").val() 5329 // const spotifyArtist = $(this).find(".spotifyArtist").val() 5330 // const spotifyFotoAddon = $(this).find(".resultPhotoSpotify").val() 5331 // if(spotifyLink !== '') { 5332 // spotifyAddon = `<div class="addon-item" data-id="46067682607319" data-qty="1"> 5333 // <div class="addon-itm-img"> 5334 // <img src="https://cdn.shopify.com/s/files/1/1589/6833/files/Acrylic-Frame_8c71027d-43b7-4322-a98f-d34ab0456397_100x.jpg?v=1739160467" alt="" width="70"/> 5335 // </div> 5336 // <div class="addon-itm-title"> 5337 // <span>[US] Outerbloom Acrylic Frame 4R</span> 5338 // </div> 5339 // <div class="addon-itm-line-total"> 5340 // <span>Rp 99.000</span> 5341 // </div> 5342 // </div> 5343 // <div class="propsAddonSpotify row m-0"> 5344 // <div class="col-12 col-lg-2"></div> 5345 // <div class="col-12 col-lg-10"> 5346 // <p> 5347 // <span>spotify link</span> 5348 // <span class="spotifyLinkAddon">${spotifyLink}</span> 5349 // </p> 5350 // <p> 5351 // <span>uploaded photo</span> 5352 // <span class="spotifyFotoAddon">${spotifyFotoAddon}</span> 5353 // </p> 5354 // <p> 5355 // <span>song / playlist name</span> 5356 // <span class="spotifySongAddon">${spotifySong}</span> 5357 // </p> 5358 // <p> 5359 // <span>artist name</span> 5360 // <span class="spotifyArtistAddon">${spotifyArtist}</span> 5361 // </p> 5362 // </div> 5363 // </div>` 5364 // items.push(spotifyAddon) 5365 // } 5366 // }) 5367 // }
5368 for(let i = 0; i < data.length; i++) { 5369 if(data[i].title !== '[US] Outerbloom Acrylic Frame 4R' ) { 5370 const img = data[i].image 5371 const title = data[i].title 5372 const qty = data[i].qty 5373 const price = data[i].price 5374 const total = Number(qty) * Number(price) 5375 let addons = `<div class="addon-item" data-id="${data[i].id}" data-qty="${qty}"> 5376 <div class="addon-itm-img"> 5377 <img src="${img}" alt="" width="70"/> 5378 </div> 5379 <div class="addon-itm-title"> 5380 <span>${title}</span> 5381 </div> 5382 <div class="addon-itm-line-price"> 5383 <span>${rupiah.format(price)}</span> 5384 ${data[i].title == '[US] Outerbloom Acrylic Frame 4R' ? '' : `<span>x${qty}</span>`} 5385 </div> 5386 <div class="addon-itm-line-total"> 5387 <span>${rupiah.format(total)}</span> 5388 </div> 5389 </div>` 5390 items.push(addons) 5391 } 5392 } 5393 c.html(items) 5394 const parent = $(".purchaseAddon") 5395 const next = parent.next(".sectionPurchase") 5396 parent.addClass("hide") 5397 next.removeClass("hide") 5398 // if(items2.length === 0) return $("#popupCart").addClass("no-addon-cart") 5399 // $(".itemAddonCart").find("h4").text(`add-ons (${items2.length})`) 5400 } 5401 5402 async function listAddon() { 5403 const data = $("#itemAddons").find(".selected") 5404 let ids = [] 5405 $(data).each(function(){ 5406 const id = $(this).data("variant") 5407 const image = $(this).find(".card-image img").attr("src") 5408 const title = $(this).find(".card-meta h5").text() 5409 const qty = $(this).find(".card-qty input").val() 5410 const price = $(this).find(".card-qty input").data("price") 5411 ids.push({ 5412 id: Number(id), 5413 image, 5414 title, 5415 qty, 5416 price 5417 }) 5418 }) 5419 myAddon(ids) 5420 } 5421 5422 async function customSpotify(idx, length, type){ 5423 let isCard = false 5424 5425 let p = $(".purchasePopupSpotify") 5426 const preLink = $(".spotifyLinkFirst").val() 5427 $("[data-index]").hide() 5428 p.find(".headerPurchase h3").text(`personalize spotify photo print${length > 1 ? ` - ${idx}` : ''}`) 5429 p.find(".regulerAddons, .purchase-button").hide() 5430 p.find(".spotifyAddons").show() 5431 5432 const data = await trackUrl(preLink) 5433 5434 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>
5434<svg xmlns="images/logo-jkt8.png" width="13" height="11" viewBox="0 0 13 11" fill="none"> 5435 <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"/> 5436 </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=images/logo-jkt8.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>
5436<svg xmlns="images/logo-jkt8.png" width="13" height="11" viewBox="0 0 13 11" fill="none"> 5437 <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"/> 5438 </svg> <img src="" class=previewImage style=display:none></div></div><div class=frameControl><div class=spotifyData>${data?.song ? `<h3>${data?.song}</h3>` : '<h3><h3>'}${data?.artist ? `<p>${data?.artist}</p>` : '<p></p>'}</div><img src="//outerbloom.com/cdn/shop/t/138/assets/frame-spotify.png?v=138221849636560654691752652420"alt="spotify outerbloom" height=""width=100%><div class=spotifyCode><img src="https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:${data?.type.slice(0, -1)}:${data?.trackId}"alt=""></div></div></div></div></div>` 5439 // console.log(html) 5440 5441 $(".spotifyAddons").append(html) 5442 5443 $(`[data-index=${idx}]`).show() 5444 5445 if (preLink !== '') { 5446 $(".btn-action .btn").attr("disabled", false) 5447 } else { 5448 $(".btn-action .btn").attr("disabled", true) 5449 } 5450 5451 return html 5452 5453 } 5454 5455 $(".spotifyLinkFirst").keyup(async function(){ 5456 const v = $(this).val() 5457 if(v.includes('spotify:user:spotify')) { 5458 const correct = v.split('user:spotify:')[1] 5459 console.log(correct, 'BNER') 5460 $(this).val(correct) 5461 return 5462 } 5463 if(v.includes("spotify:") || v.includes("https://open.spotify.com/")){ 5464 const data = await trackUrl(v) 5465 if(!data || !data.status) { 5466 $(this).parent().addClass("error") 5467 // $(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>`) 5468 $("#personalizeBtnSpotify .btn").attr("disabled", true) 5469 return 5470 } 5471 $(this).parent().removeClass("error") 5472 // $(this).parent().remove("txt-error") 5473 $("#personalizeBtnSpotify .btn").attr("disabled", false) 5474 } else { 5475 $("#personalizeBtnSpotify .btn").attr("disabled", true) 5476 } 5477 }) 5478 5479 $(".purchaseAddon").delegate(".next-addon", "click", function(){ 5480 const parent = $(this).parents(".purchaseAddon") 5481 const next = parent.next(".sectionPurchase") 5482 if(next.hasClass("purchaseAddress")) { 5483 if(productType !== '') { 5484 console.log("clarity event " + productType + ' purchaseDelivery') 5485 window.clarity("event", `${productType} purchaseDelivery`) 5486 // window.clarity("set", productType, `purchaseDelivery - ${productDate}`) 5487 } 5488 } 5489 const data = $("#itemAddons").find(".selected") 5490 const length = $(".quantity-cart-46067682607319").val() 5491 const checked = data.length; 5492 if(checked > 0) { 5493 if(length > 0) { 5494 $(".purchaseAddon").addClass("purchaseAddonSpotify") 5495 customSpotify(1, length, 'addon') 5496 } else { 5497 listAddon() 5498 } 5499 } else { 5500 parent.addClass("hide") 5501 next.removeClass("hide") 5502 } 5503 }) 5504 5505 $("#personalizeBtnSpotify .btn").click(async function(){ 5506 const isCity = $("#cities[required]") 5507 const isDate = $("#propDeliveryDate[required]") 5508 if((isDate.length > 0 && isCity.length > 0) && (isCity.val() === '' || isDate.val() === '')) { 5509 alert('Please choose Delivery City & Delivery Date') 5510 return 5511 } 5512 const data = await customSpotify(1, 1, 'product') 5513 if(data) { 5514 $("#backgroundPopup").fadeIn("slow"); 5515 $(".purchasePopupSpotify").fadeIn("slow"); 5516 5517 if(productType !== '') { 5518 console.log("clarity event " + productType + ' spotify') 5519 window.clarity("event", `${productType} spotify`) 5520 // window.clarity("set", productType, `purchaseDelivery - ${productDate}`) 5521 } 5522 } 5523 }) 5524 5525 function formatBytes(bytes, decimals = 2) { 5526 if (!+bytes) return '0 Bytes' 5527
5528 const k = 1024 5529 const dm = decimals < 0 ? 0 : decimals 5530 const sizes = ['B', 'KB', 'MB'] 5531 5532 const i = Math.floor(Math.log(bytes) / Math.log(k)) 5533 5534 return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}` 5535 } 5536 5537 async function trackUrl(link){ 5538 try { 5539 let trackId = link.split('/').pop().split('?')[0]; 5540 let type = '' 5541 if(link.includes("spotify:")) { 5542 const uri = link.split('spotify:')[1] 5543 trackId = uri.split(':')[1] 5544 type = uri.split(':')[0] + 's' 5545 } else { 5546 if(link.match('track')){ 5547 type = 'tracks' 5548 } else if(link.match('playlist')) { 5549 type = 'playlists' 5550 } else if(link.match('artist')) { 5551 type = 'artists' 5552 } else if(link.match('album')) { 5553 type = 'albums' 5554 } 5555 } 5556 console.log(`${host}/api/spotify/${type}/${trackId}`) 5557 const data = await getFetch(`${host}/api/spotify/${type}/${trackId}`) 5558 console.log(data, 'DATA') 5559 const song = data?.data?.name 5560 const artist = data?.data?.artist 5561 return { 5562 song, artist, type, trackId, status: data.status 5563 } 5564 } catch(err) { 5565 console.log(err) 5566 } 5567 } 5568 5569 $(".spotifyAddons").delegate(".uploadPhotoSpotify", "change", async function(){ 5570 const parent = $(this).parents("[data-index]") 5571 const preview = parent.find(".previewImage") 5572 const file = $(this)[0].files[0]; 5573 if (file) { 5574 const reader = new FileReader(); 5575 reader.onload = async function(e) { 5576 parent.find(".uploadResult label").hide() 5577 parent.find(".uploadedResult").remove() 5578 parent.find(".uploadResult").append(`<div class="uploadedResult d-flex" style="justify-content: space-between"> 5579 <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> 5580 <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;">
5580<svg fill="none" height="11" viewBox="0 0 10 11" width="10" xmlns="images/logo-jkt8.png"> 5581 <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 /> 5582 </svg> 5583 </span></div></div>`) 5584 parent.find(".frameImageUploaded svg").hide() 5585 parent.find(".frameImage").addClass("uploaded") 5586 preview.attr("src", e.target.result); 5587 preview.show(); 5588 let formData = new FormData(); 5589 formData.append("file", file); 5590 const response = await fetch(`${host}/api/upload?name=${file.name}&type=image/jpeg&r=${Date.parse(new Date)}`, { 5591 method: "POST", 5592 body: formData 5593 }) 5594 const result = await response.json(); 5595 if(result){ 5596 parent.find(".resultPhotoSpotify").val(result.url) 5597 } 5598 } 5599 5600 reader.readAsDataURL(file); 5601 } else { 5602 preview.hide(); 5603 } 5604 }); 5605 5606 $(".spotifyAddons").delegate(".uploadResult", "click", function(){ 5607 $(this).next("input[type=file]").trigger("click") 5608 }) 5609 5610 $(".spotifyAddons").delegate(".changeUpload", "click", function(){ 5611 $(this).parents("input[type=file]").trigger("click") 5612 }) 5613 5614 $(".spotifyAddons").delegate(".removeUpload", "click", function(){ 5615 const parent = $(this).parents("[data-index]") 5616 parent.find(".uploadPhotoSpotify").val("") 5617 parent.find(".uploadResult label").show() 5618 parent.find(".uploadedResult").remove() 5619 parent.find(".frameImageUploaded svg").show() 5620 parent.find(".previewImage").hide() 5621 parent.find(".frameImage").removeClass("uploaded") 5622 }) 5623 5624 $(".spotifyAddons").delegate("label.checkbox", "click", function(){ 5625 const parent = $(this).parents("[data-index]") 5626 parent.toggleClass("checked") 5627 }) 5628 5629 $(".spotifyAddons").delegate(".spotifyLink", "change", async function(){ 5630 const parent = $(this).parents("[data-index]") 5631 const link = $(this).val() 5632 const data = await trackUrl(link) 5633 5634 console.log(data) 5635 5636 if(data.song) { 5637 parent.find(".spotifySong").val(data.song) 5638 parent.find(".spotifyData").find("h3").text(data.song) 5639 } 5640 if(data.artist) { 5641 parent.find(".spotifyArtist").val(data.artist) 5642 parent.find(".spotifyData").find("p").text(data.artist) 5643 } 5644 parent.find(".spotifyCode img").attr("src", `https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:${data.type.slice(0, -1)}:${data.trackId}`) 5645 // https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:track:1er51HCEBhIAtoEemKuC3M 5646 if (data.status === true) { 5647 parent.find(".btn-action .btn").attr("disabled", false) 5648 } else { 5649 parent.find(".btn-action .btn").attr("disabled", true) 5650 } 5651 }) 5652
5653 $(".spotifyAddons").delegate(".spotifySong", "keyup", async function(){ 5654 const parent = $(this).parents("[data-index]") 5655 const v = $(this).val() 5656 parent.find(".spotifyData h3").text(v) 5657 }) 5658 5659 $(".spotifyAddons").delegate(".spotifyArtist", "keyup", async function(){ 5660 const parent = $(this).parents("[data-index]") 5661 const v = $(this).val() 5662 parent.find(".spotifyData p").text(v) 5663 }) 5664 5665 $(".spotifyAddons").delegate(".btn-action .btn:not(.no-addon)", "click", async function(){ 5666 const parent = $(this).parents("[data-index]") 5667 const length = parent.data("length") 5668 const index = parent.data("index") 5669 const indexNext = Number(index) + 1 5670 customSpotify(indexNext, length, 'addon') 5671 }) 5672 5673 5674 $(".spotifyAddons").delegate(".btn-action .btn.finished", "click", async function(){ 5675 const parent = $(this).parents(".purchaseAddon") 5676 const next = parent.next(".sectionPurchase") 5677 parent.addClass("hide") 5678 next.removeClass("hide") 5679 next.find(".purchase-button").show() 5680 listAddon() 5681 }) 5682 5683 $(".spotifyAddons").delegate(".back-spotify", "click", async function(){ 5684 const t = $(this).parents("[data-index]") 5685 const parent = $(this).parents(".sectionPurchase") 5686 const current = t.data("index") 5687 const prevCurrent = Number(current) - 1 5688 if(current == 1) { 5689 parent.removeClass("purchaseAddonSpotify") 5690 parent.find(".purchase-button").show() 5691 parent.find(".headerPurchase h3").text("Make It More Special with Add-Ons!") 5692 $(".spotifyAddons").empty() 5693 $(".regulerAddons").show() 5694 return 5695 } 5696 t.hide() 5697 t.prev("[data-index]").show() 5698 t.remove() 5699 parent.find(".headerPurchase h3").text(`personalize spotify photo print - ${prevCurrent}`) 5700 }) 5701 5702 $("#personalizeBtn .btn").click(async function() { 5703 loadPopupPersonalize() 5704 }); 5705 5706 $(".sectionPurchaseSpotify").delegate(".btn[data-type=card]", "click", function(){ 5707 $(".sectionPurchaseSpotify").hide() 5708 loadPopupPersonalize() 5709 }) 5710 5711 $(".close-purchase-popup").click(function() { 5712 disablePopup(); 5713 }); 5714 $("#backgroundPopup").click(function() { 5715 // disablePopup(); 5716 }); 5717 5718 $("#popupCart .close-purchase-popup").click(function() { 5719 location.reload() 5720 }); 5721 5722 $('#popupCart').on('hide.bs.modal', function (e) { 5723 location.reload() 5724 }) 5725 5726 $(".next-card").click(function(){ 5727 const parent = $(this).parents(".sectionPurchase") 5728 const next = parent.next(".sectionPurchase") 5729 parent.addClass("hide") 5730 next.removeClass("hide") 5731 }) 5732 5733 $(".back-purchase-button").click(function(){ 5734 const parent = $(this).parents(".sectionPurchase") 5735 const prev = parent.prev(".sectionPurchase") 5736 parent.addClass("hide") 5737 prev.removeClass("hide") 5738 }) 5739 5740 $(document).keypress(function(e) { 5741 if (e.keyCode == 27 && popupStatus == 1) { 5742 disablePopup(); 5743 } 5744 }); 5745 5746 const parentImg = $(".case-img-preview") 5747 const parentVid = $(".case-video-preview") 5748 5749 function readURL(input) { 5750 if (input.files && input.files[0]) { 5751 let reader = new FileReader(); 5752 5753 let type = 'image/jpeg' 5754 const size = input.files[0].size 5755 if(input.files[0].type.match('video/')){ 5756 type = 'video/mp4' 5757 if(size > 15728640) { 5758 alert('File size exceeds maximum limit 15 MB') 5759 return 5760 } 5761 } else { 5762 if(size > 5242880) { 5763 alert('File size exceeds maximum limit 5 MB') 5764 return 5765 } 5766 } 5767 5768 reader.onload = function (e) { 5769 $(".nextBtn").attr("disabled", true) 5770 if(type === 'image/jpeg') { 5771 5772 $('.placeholder-image').hide(); 5773 $('.preview-image').show() 5774 $('.preview-image').attr('src', e.target.result); 5775 5776 } else { 5777 // parentVid.find(".ajax-loader").show(); 5778 $(".steps-card-preview").addClass("loading") 5779 } 5780 } 5781 5782 5783
5784 reader.readAsDataURL(input.files[0]); 5785 } 5786 } 5787 5788 async function readURLPapan(input) { 5789 if (input.files && input.files[0]) { 5790 let reader = new FileReader(); 5791 5792 reader.onload = function (e) { 5793 $('.btn-upload-papan').siblings('label').hide(); 5794 $('.btn-upload-papan img').attr('src', e.target.result); 5795 $('.btn-upload-papan img').show(); 5796 $('.svgLogoPapan').hide(); 5797 } 5798 5799 const type = 'image/jpeg' 5800 const name = `logo-8144957800663-${Date.parse(new Date())}` 5801 5802 let formData = new FormData(); 5803 formData.append("file", input.files[0]); 5804 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 5805 method: "POST", 5806 body: formData 5807 }) 5808 const result = await response.json(); 5809 if(result) { 5810 const url = result.url 5811 $("[data-properties=papan-logo]").val(url) 5812 } 5813 5814 reader.readAsDataURL(input.files[0]); 5815 } 5816 } 5817 5818 async function readURLAddress(input) { 5819 console.log(input, 'readURLAddress') 5820 if (input.files && input.files[0]) { 5821 let reader = new FileReader(); 5822 5823 reader.onload = function (e) { 5824 $('.photo-address').attr('src', e.target.result); 5825 $('.photo-address').show(); 5826 } 5827 5828 const type = 'image/jpeg' 5829 const name = input.files[0].name?.split('.')[0] 5830 5831 let formData = new FormData(); 5832 formData.append("file", input.files[0]); 5833 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 5834 method: "POST", 5835 body: formData 5836 }) 5837 const result = await response.json(); 5838 5839 reader.readAsDataURL(input.files[0]); 5840 5841 return result 5842 } 5843 } 5844 5845 5846 5847 5848 async function addToCartUang() { 5849 var productAddOnId1 = 42122101162199; 5850 var productAddOnId2 = 42122101194967; 5851 var product_id = 8144957800663 5852 const data = { 5853 items: [ 5854 { 5855 quantity: $("#Quantity-" + productAddOnId1).val(), 5856 id: productAddOnId1, 5857 "properties": { "Time": $("#properties-time").val() } 5858 }, 5859 { 5860 quantity: $("#Quantity-" + productAddOnId2).val(), 5861 id: productAddOnId2, 5862 "properties": { "Time": $("#properties-time").val() } 5863 } 5864 ] 5865 } 5866 await fetch(window.Shopify.routes.root + 'cart/add.js', { 5867 method: 'POST', 5868 headers: { 5869 'Content-Type': 'application/json' 5870 }, 5871 body: JSON.stringify(data) 5872 }) 5873 .then(response => { 5874 console.error('Sukses Buket Uang:', response); 5875 $(".form-flower").submit() 5876 }) 5877 .catch((error) => { 5878 console.error('Error Buket Uang:', error); 5879 $(".form-flower").submit() 5880 }); 5881 } 5882 5883 async function saveCard(){ 5884 let isCard = true 5885 const kartu_penerima = $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '' 5886 const kartu_pengirim = $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '' 5887 const kartu_ucapan = $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '' 5888 const foto = $("#properties-photo").val() 5889 const video = $("#properties-video").val() 5890 const data = JSON.stringify({ 5891 "id": qrID, 5892 "penerima": $("#properties-nama-penerima").val(), 5893 "kartu_penerima": kartu_penerima, 5894 "kartu_ucapan": kartu_ucapan, 5895 "kartu_pengirim": kartu_pengirim, 5896 "foto": foto, 5897 "video": video, 5898 "productId": "8144957800663", 5899 "order_name": "", 5900 "status": "Cart" 5901 }) 5902 5903 5904 } 5905 5906 async function additem(items){ 5907 try { 5908 let formData = items 5909 if(items?.length) { 5910 formData = { 5911 'items': items 5912 }; 5913 } 5914 5915 const add = await fetch(window.Shopify.routes.root + 'cart/add.js', { 5916 method: 'POST', 5917 headers: { 5918 'Content-Type': 'application/json', 5919 'X-Requested-With':'xmlhttprequest' /* XMLHttpRequest is ok too, it's case insensitive */ 5920 }, 5921 body: JSON.stringify(formData) 5922 }) 5923 5924 const data = await add.json(); 5925 return data 5926 } catch(err){ 5927 console.log('Error additem', err) 5928 } 5929 } 5930 5931 async function addons(){ 5932 let items = [] 5933 $(".addon-item").each(function(){ 5934 const p = $(this) 5935 const props = p.next(".propsAddonSpotify") 5936 const id = $(this).data("id") 5937 const quantity = $(this).data("qty") 5938 const propId = $("#properties-time").val() 5939 let properties = {} 5940 if(id === 46067682607319) { 5941 const link = props.find(".spotifyLinkAddon").text() 5942 const photo = props.find(".spotifyFotoAddon").text() 5943 const song = props.find(".spotifySongAddon").text() 5944 const artist = props.find(".spotifyArtistAddon").text() 5945 properties = { 5946 id: propId, 5947 "Spotify Link": link !== '' ? link : '-', 5948 "Spotify Photo": photo !== '' ? photo : '-', 5949 "Spotify Song": song !== '' ? song : '-', 5950 "Spotify Artist": artist !== '' ? artist : '-', 5951 type: 'addon' 5952 } 5953 } else { 5954 properties = { 5955 "id": propId, 5956 "type": "addon" 5957 } 5958 } 5959 items.push({ 5960 id, 5961 quantity, 5962 properties 5963 }) 5964 }) 5965 return items 5966 } 5967 5968 async function propItems() { 5969 let props = {} 5970 $("[data-properties]").each(function(e){
5971 let elementType = this.tagName; 5972 const k = $(this).data("properties") 5973 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') { 5974 const v = elementType === 'SELECT' ? $(this).find(":selected").val() : $(this).val(); 5975 if(v !== '') { 5976 props[k] = v?.replace(/[\s\n]/g, ''); 5977 } 5978 } 5979 }) 5980 return props 5981 } 5982 5983 async function showPopupCart(items){ 5984 if(productType !== '') { 5985 console.log("clarity event " + productType + ' completeOrder') 5986 window.clarity("event", `${productType} completeOrder`) 5987 // window.clarity("set", productType, `completeOrder - ${productDate}`) 5988 } 5989 $("#popupCart").show() 5990 5991 $(".propDeliveryCity").text($("#cities").val()) 5992 $(".propDeliveryDate").text($("#propDeliveryDate").val()) 5993 $(".propDeliveryTime").text($("#propDeliveryTime").val()) 5994 $(".propDeliveryName").text($("[data-properties=nama-penerima]").val()) 5995 $(".propDeliveryAddress").text($("[data-properties=alamat-penerima]").val()) 5996 $(".propDeliveryPhone").text($("[data-properties=telepon-penerima]").val()) 5997 $(".propDeliveryProv").text($("#province").val()) 5998 $(".propDeliveryZip").text($("#zip").val()) 5999 6000 6001 6002 const addons = [] 6003 if(items && items.length > 0) { 6004 for(let i = 1; i < items.length; i++) { 6005 const spotifyLink = items[i].properties['Spotify Link'] 6006 const spotifyPhoto = items[i].properties['Spotify Photo'] 6007 const spotifySong = items[i].properties['Spotify Song'] 6008 const spotifyArtist = items[i].properties['Spotify Artist'] 6009 const price = items[i].price / 100 6010 const props = spotifyLink ? `<div class="propsAddonCart row m-0"> 6011 <div class="col-12 col-lg-2"></div> 6012 <div class="col-12 col-lg-10"> 6013 <p> 6014 <span>spotify link</span> 6015 <span>${spotifyLink}</span> 6016 </p> 6017 <p> 6018 <span>Upload Photo</span> 6019 <span>${spotifyPhoto}</span> 6020 </p> 6021 <p> 6022 <span>song / playlist name</span> 6023 <span>${spotifySong}</span> 6024 </p> 6025 <p> 6026 <span>artist name</span> 6027 <span>${spotifyArtist}</span> 6028 </p> 6029 </div> 6030 </div>` : ''; 6031 addons.push(`<div class="row m-0"> 6032 <div class="imgAddonCart col-2"> 6033 <img 6034 width="43" 6035 src="${items[i].image}" 6036 alt="" 6037 > 6038 </div> 6039 <div class="imgAddonTitlePrice col-10 align-self-center"> 6040 <div class="row justify-content-between m-0"> 6041 <div class="col-12 col-lg-8"> 6042 <h5>${items[i].title}</h5> 6043 </div> 6044 <div class="col-12 col-lg-4 text-lg-right"> 6045 <span>${rupiah.format(price)}</span> 6046 </div> 6047 </div> 6048 </div> 6049 </div>${props}`) 6050 } 6051 } 6052 // console.log(addons) 6053 if(addons.length === 0) { 6054 $(".itemAddonCart").hide() 6055 return 6056 } 6057 $(".toggleAddonCart h4").text(`add-ons (${items.length - 1})`) 6058 $(".wrapperItemAddonCart").html(addons) 6059 } 6060 6061 const money = (money) => { 6062 return new Intl.NumberFormat('id-ID', 6063 { style: 'currency', currency: 'IDR', minimumFractionDigits: 0 } 6064 ).format(money); 6065 } 6066 6067 async function showNoteMoney() { 6068 let qty50k = $("[data-properties='Uang 50k']").val() 6069 let qty100k = $("[data-properties='Uang 100k']").val() 6070 const total50k = Number(qty50k) * 50000 6071 const total100k = Number(qty100k) * 100000 6072 const total_all = total50k + total100k 6073 $(".prop50k").html(`<span>${qty50k} Lembar: <strong class="pl-1">${money(total50k)}</strong></span>`) 6074 $(".prop100k").html(`<span>${qty100k} Lembar: <strong class="pl-1">${money(total100k)}</strong></span>`) 6075 $(".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://amp-jkt8.pages.dev/" target="_blank" style="text-decoration: underline;
6075 color: #8d3f2d">Customer Service</a> to confirm with proof of payment.</p>`) 6076 } 6077 6078 async function removeImage() { 6079 const data = JSON.stringify({ 6080 "ID": $("#properties-properties-qrId").val(), 6081 "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 6082 "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 6083 "Kartu Ucapan": $("[data-properties=ucapan]").val(), 6084 "Nama Penerima": $("#properties-nama-penerima").val(), 6085 "Order Number":"", 6086 "Status":"Product", 6087 "Foto": "", 6088 "Media": $("#properties-video").val(), 6089 "Image": "8144957800663" 6090 }) 6091 const remove = updateCard(data) 6092 if(remove) { 6093 $(this).hide() 6094 $("#properties-photo").val("-") 6095 $(".placeholder-image").show() 6096 $(".preview-image").attr("src", "") 6097 } 6098 } 6099 6100 async function removeVideo() { 6101 const data = JSON.stringify({ 6102 "ID": $("#properties-properties-qrId").val(), 6103 "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 6104 "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 6105 "Kartu Ucapan": $("[data-properties=ucapan]").val(), 6106 "Nama Penerima": $("#properties-nama-penerima").val(), 6107 "Order Number":"", 6108 "Status":"Product", 6109 "Foto": $("#properties-photo").val(), 6110 "Media": "", 6111 "Image": "8144957800663" 6112 }) 6113 const remove = updateCard(data) 6114 if(remove) { 6115 $("#properties-video").val("-") 6116 $(this).find("img").hide() 6117 $(this).hide() 6118 $(this).prev("p").text("Add video to make it more special (optional)") 6119 $("#label-input-video").show() 6120 $("#label-input-video span").text("Upload Video") 6121 $(".case-video-preview p span").remove() 6122 } 6123 } 6124 6125 async function loadItemOccasion(t, occasion) { 6126 const name = occasion?.replace('greeting-card-', '') 6127 $("#kartu-ucapan").val("") 6128 $("[data-occassion]").removeClass("selected") 6129 $("[data-properties=ucapan]").val("") 6130 $("#save-card").attr("disabled", true) 6131 t.addClass("selected") 6132 $("#show_note").attr("data-card-occassion", name) 6133 $.get(`https://outerbloom.com/collections/${occasion}/products.json`, function(data, status){ 6134 const products = data.products 6135 const html = [] 6136 for(let i = 0; i < products.length; i++) { 6137 const id = products[i].id 6138 const variantId = products[i].variants[0].id 6139 const img = products[i].images[0].src 6140 const title = products[i].title 6141 const price = products[i].variants[0].price 6142 const qty = products[i].variants[0].inventory_quantity 6143 const body = `<div class="item-card${price < 1 ? ' free' : ' nofree'}${i === 0 ? ' selected' : ''}" data-id=${id}> 6144 <label for="card-${variantId}"></label> 6145 <div class="card-image"> 6146 <img src="${img}" alt="${title}" width="" height="" /> 6147 </div> 6148 <div class="card-meta text-center"> 6149 <h5>${title}</h5> 6150 <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p> 6151 <input id="card-${variantId}" type="radio" name="id" value="${variantId}" data-price="${price}"> 6152 </div> 6153 </div>` 6154 html.push(body) 6155 } 6156 const withoutCard = `<div class="item-card item-without-card"> 6157 <label for="card-0"></label> 6158 <div class="card-image"> 6159 <img src="https://cdn.shopify.com/s/files/1/1589/6833/t/129/assets/without-card.png?v=1747632283" alt="Without card" width="" height="" /> 6160 </div> 6161 <div class="card-meta text-center"> 6162 <h5>
6162Send without a greeting card</h5> 6163 <input id="card-0" type="radio" name="id" value="" data-price=""> 6164 </div> 6165 </div>` 6166 $("#itemCards .items-card").html(html.length === 0 ? '<p>No Item available</p>' : html.join("")) 6167 }); 6168 } 6169 6170 $(document).ready(function(){ 6171 6172 // Observer to auto-trigger addon loading when addon section becomes visible 6173 const addonObserver = new MutationObserver(function(mutations) { 6174 mutations.forEach(function(mutation) { 6175 const target = $(mutation.target) 6176 if(target.hasClass('purchaseAddon') && mutation.type === 'attributes' && mutation.attributeName === 'class') { 6177 if(!target.hasClass('hide')) { 6178 // Addon section just became visible, ensure items are loaded 6179 setTimeout(function() { 6180 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6181 console.log("Auto-triggering addon load...") 6182 $("[data-addon=upsell-all]").trigger("click") 6183 } 6184 }, 150) 6185 } 6186 } 6187 }) 6188 }) 6189 6190 // Start observing addon section 6191 const addonSection = document.querySelector('.purchaseAddon') 6192 if(addonSection) { 6193 addonObserver.observe(addonSection, { 6194 attributes: true, 6195 attributeFilter: ['class'] 6196 }) 6197 } 6198 6199 $(".purchasePopup").delegate("#addtocart-card", "click", async function(){ 6200 6201 $(this).find("span").addClass("loading") 6202 let isValid = true 6203 $(".formAddressPurchase [required]").each(function(){ 6204 const t = $(this) 6205 const input = t.val() 6206 const p = t.parent() 6207 if(input === '') { 6208 p.addClass("error") 6209 isValid = false 6210 } 6211 }) 6212 6213 if(!isValid) { 6214 $(this).find("span").removeClass("loading") 6215 return 6216 } 6217 6218 let items = [] 6219 const mainProps = { 6220 6221 "Delivery Date": $("#propDeliveryDate").val(), 6222 "Delivery Time": $("#propDeliveryTime").val() !== '' ? $("#propDeliveryTime").val() : '-' , 6223 "Kota Pengiriman": $("#cities").val(), 6224 "Nama Penerima": $("[data-properties=nama-penerima]").val() !== '' ? $("[data-properties=nama-penerima]").val() : '-' , 6225 "Alamat Penerima": $("[data-properties=alamat-penerima]").val() !== '' ? $("[data-properties=alamat-penerima]").val() : '-' , 6226 "Kodepos": $("#zip").val() !== '' ? $("#zip").val() : '-' , 6227 "Telepon Penerima": $("[data-properties=telepon-penerima").val() !== '' ? $("[data-properties=telepon-penerima").val() : '-' , 6228 6229 6230 "Papan Nama Penerima": $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '-' , 6231 "Papan Ucapan": $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '-' , 6232 "Papan Nama Pengirim": $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '-' , 6233 "Papan Logo": $("[data-properties=papan-logo]").val() !== '' ? $("[data-properties=papan-logo]").val() : '-' , 6234 "Foto Alamat": $("[data-properties=foto-alamat]").val() !== '' ? $("[data-properties=foto-alamat]").val() : '-' , 6235 6236 6237 "Province": $("#province").val() !== '' ? $("#province").val() : '-' , 6238 "Country": $("#properties-kota-pengiriman-country").val() !== '' ? $("#properties-kota-pengiriman-country").val() : '-' , 6239 "Shipping": $("#properties-shipping").val() !== '' ? $("#properties-shipping").val() : '-' , 6240 "Company": $("[data-properties=company]").val() !== '' ? $("[data-properties=company]").val() : '-' , 6241 "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 6242 "type": 'product' 6243 } 6244 const props = await propItems() 6245 properties = {...mainProps, ...props }; 6246 const id = $("#productSelect").find('option:selected').val() 6247 console.log(id, 'main ID') 6248 const mainItem = { 6249 id: Number(id), 6250 quantity: 1, 6251 properties 6252 } 6253 items.push(mainItem) 6254 const cardId = $("#itemCards").find(".selected input").val() 6255 const cardItem = { 6256 id: Number(cardId), 6257 quantity: 1, 6258 properties: { "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', type: 'card' } 6259 } 6260 console.log(cardId, 'cardId') 6261 if(cardId) { 6262 items.push(cardItem) 6263 } 6264 const addon = await addons() 6265 if(addon) { 6266 for(let i = 0;
6266 i < addon.length; i++){ 6267 items.push({ 6268 id: addon[i].id, 6269 quantity: addon[i].quantity, 6270 properties: addon[i].properties 6271 }) 6272 } 6273 } 6274 const addItems = await additem(items) 6275 console.log(addItems.items, 'add items') 6276 if(addItems) { 6277 $(this).find("span").removeClass("loading") 6278 disablePopup() 6279 showPopupCart(addItems.items) 6280 6281 localStorage.setItem("items", JSON.stringify(addItems.items)) 6282 } 6283 }) 6284 6285 $("#addtocart-cart .btn").click(async function(){ 6286 const id = $("#productSelect").find('option:selected').val() 6287 const mainProps = { 6288 id: $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 6289 type: 'product' 6290 } 6291 const props = await propItems() 6292 const properties = { ...mainProps, ...props }; 6293 const items = { 6294 id: Number(id), 6295 quantity: 1, 6296 properties 6297 } 6298 const addItems = await additem(items) 6299 if(addItems) { 6300 showPopupCart(addItems.items) 6301 localStorage.setItem("items", JSON.stringify(addItems)) 6302 } 6303 }) 6304 6305 $(".formAddressPurchase [required]").change(function(){ 6306 const t = $(this) 6307 const p = t.parent() 6308 const v = t.val() 6309 if(v !== '') { 6310 p.removeClass("error") 6311 } 6312 }) 6313 6314 $("#save-card").click(async function(){ 6315 const parent = $(this).parents(".sectionPurchase") 6316 const next = parent.next(".sectionPurchase") 6317 $(this).find("span").addClass("loading") 6318 const card = await saveCard() 6319 console.log(card, 'ssaveCCC') 6320 if(card?.status === 200 || card?.status === 201) { 6321 $(".scanCard").removeClass("hide") 6322 $(this).find("span").removeClass("loading") 6323 parent.addClass("hide") 6324 next.removeClass("hide") 6325 if(next.hasClass("purchaseAddon")) { 6326 $("[data-addon=upsell-all]").click() 6327 console.log("clarity event addons") 6328 window.clarity("event", `${productType} add-ons`) 6329 // Ensure addon items are loaded when entering addon popup 6330 setTimeout(function() { 6331 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6332 $("[data-addon=upsell-all]").trigger("click") 6333 } 6334 }, 100) 6335 } 6336 if(next.hasClass("purchaseAddress")) { 6337 $("#zip").select2() 6338 } 6339 } 6340 }) 6341 6342 $("#skip-card").click(async function(){ 6343 $("#greetingCard [data-properties]").val("") 6344 $("#properties-photo").val("") 6345 $("#properties-video").val("") 6346 const parent = $(this).parents(".sectionPurchase") 6347 const next = parent.next(".sectionPurchase") 6348 parent.addClass("hide") 6349 next.removeClass("hide") 6350 // $("#itemCards").html("") 6351 removeImage() 6352 removeVideo() 6353 if(next.hasClass("purchaseAddon")) { 6354 $("[data-addon='upsell-all']").click() 6355 console.log("clarity event addons") 6356 window.clarity("event", `${productType} add-ons`) 6357 // Ensure addon items are loaded when entering addon popup 6358 setTimeout(function() { 6359 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6360 $("[data-addon='upsell-all']").trigger("click") 6361 } 6362 }, 100) 6363 } 6364 if(next.hasClass("purchaseAddress")) { 6365 $("#zip").select2() 6366 } 6367 }) 6368 6369 $("#msgCard").click(async function(){ 6370 $(this).parent().addClass("loading") 6371 let occasion = $(".selected[data-occassion]").data("occassion") 6372 occasion = occasion?.replace("greeting-card-", "") 6373 const { data } = await getFetch(`${host}/api/card/template/occasion?name=${occasion}`); 6374 const d = data?.data 6375 for(let i = 0; i < d.length; i++) { 6376 const num = Math.floor(Math.random() * (d.length - 1 + 1) + 1); 6377 const greeting = d[num]?.Greeting 6378 $(".greetingCard textarea").val(greeting) 6379 $(this).parent().removeClass("loading") 6380 } 6381 $("#save-card").attr("disabled", false) 6382 }) 6383 6384 $(".sectionPurchaseBoard .next-purchase-button").click(function(){ 6385 const parent = $(this).parents(".sectionPurchase") 6386 const next = parent.next(".sectionPurchase") 6387 parent.addClass("hide") 6388 next.removeClass("hide") 6389 }) 6390 6391 $("#editCard").click(function(){ 6392 $(".custom-card").show() 6393 $(".preview-card").hide() 6394 }) 6395 6396 $("#first_name, #last_name").change(function(){ 6397 const v = $(this).val() 6398 const first_name = $("#first_name").val() 6399 const last_name = $("#last_name").val() !== '' ? ' ' + $("#last_name").val() : '' 6400 $("[data-properties=nama-penerima]").val(first_name+last_name) 6401 }) 6402 6403 $("[data-occassion]").click(function(){ 6404 const t = $(this) 6405 const p = t.parents(".sectionPurchase") 6406 // $(".greetingCard").addClass("disabled") 6407 const occasion = t.data("occassion") 6408 loadItemOccasion(t, occasion) 6409 }) 6410 6411 $("#itemCards").delegate(".item-card:not(.item-without-card) label", "click", function(){ 6412 const id = $(this).parent(".item-card").data("id") 6413 const t = $(this).parent(".item-card") 6414 const target = t.find("input") 6415 const v = $('.item-card input[type="radio"]:checked').val(); 6416 $("#itemCards .item-card").removeClass("selected") 6417 t.addClass("selected") 6418 $("#itemCards .item-card").find("input").attr("name", "") 6419 if(target.length > 0) { 6420 target.attr("name", "id[]") 6421 $("#properties-card").val(id) 6422 $(".greetingCard").removeClass("disabled") 6423 $("#skip-card").attr("disabled", false) 6424 } else { 6425 $("#properties-card").val("") 6426 } 6427 }) 6428 6429 $("#itemCards").delegate(".item-without-card label", "click", function(){ 6430 const parent = $(this).parents(".sectionPurchase") 6431 const next = parent.next(".sectionPurchase") 6432 $(".greetingCard").addClass("disabled") 6433 parent.addClass("hide") 6434 next.removeClass("hide") 6435 $("[data-addon=upsell-all]").click() 6436 $("#zip").select2() 6437 }) 6438 6439 $("[data-properties=ucapan]").keyup(function(){ 6440 const v = $(this).val() 6441 const p = $(this).parents(".sectionPurchase") 6442 $(".purchaseAddress").find(".greetingCard textarea").val(v) 6443 if(v.length > 3) { 6444 p.find(".next-purchase-button").attr("disabled", false) 6445 } else { 6446 p.find(".next-purchase-button").attr("disabled", true) 6447 } 6448 }) 6449 6450 $("[data-properties=penerima]").keyup(function(){ 6451 const v = $(this).val() 6452 $(".purchaseAddress").find("[data-properties=penerima]").val(v) 6453 }) 6454 6455 $("[data-properties=pengirim]").keyup(function(){ 6456 const v = $(this).val() 6457 $(".purchaseAddress").find("[data-properties=pengirim]").val(v) 6458 }) 6459 6460 $(document).click(function(e){
6461 6462 if($(e.target).closest('.wrapperPopupCart').length != 0) return false; 6463 // $('#popupCart').fadeOut('slow'); 6464 // location.reload() 6465 }); 6466 6467 $(".toggleAddonCart").click(function(){ 6468 const p = $(this).parent(".itemAddonCart") 6469 p.toggleClass("open") 6470 }) 6471 6472 $(".btnViewCart").click(function(){ 6473 window.location.href = "https://outerbloom.com/cart"; 6474 }) 6475 6476 $(".btnViewCheckout").click(async function(){ 6477 $(this).find("span").addClass("loading") 6478 let zip = $("#zip").val() 6479 const first_name = $("#first_name").val() 6480 const last_name = $("#last_name").val() 6481 const company = $("#company").val() !== '' ? $("#company").val() : '' 6482 const address1 = $("#delivery_address").val() 6483 const address2 = zip && zip !== '' ? zip?.split(' - ')[1] : '' 6484 zip = zip && zip !== '' ? zip?.split(' - ')[0] : '' 6485 const phone = $("#recipient_number").val() 6486 const city = $("#cities").val() 6487 const province = $("#province").val() 6488 const country = 'Indonesia' 6489 const ver = Date.parse(new Date()) 6490 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}` 6491 6492 const clear = await fetch(`/cart/clear.js`, {method: 'POST'}) 6493 if(clear.status === 200) { 6494 const savedItem = window.localStorage.getItem("items"); 6495 const items = JSON.parse(savedItem) 6496 const addItems = await additem(items) 6497 console.log(addItems, 'new addItems') 6498 if(addItems) { 6499 window.location.href = `https://outerbloom.com/checkout?${params}`; 6500 } 6501 } 6502 }) 6503 6504 $(".btnContinueShopping").click(function(){ 6505 window.location.href = "https://outerbloom.com/"; 6506 }) 6507 6508 if (isIOS) { 6509 $(".empty-state-card").click(function(){ 6510 $("#input-foto").trigger("click") 6511 }) 6512 $(".btn-upload-image").click(function(){ 6513 $("#input-foto").trigger("click") 6514 }) 6515 $("[for=input-video]").click(function(){ 6516 $("#input-video").trigger("click") 6517 }) 6518 $(".btn-upload-papan").click(function(){ 6519 $("#logoPapan").trigger("click") 6520 }) 6521 } 6522 6523 $("[data-properties]").each(function(){ 6524 const select = $(this).parents(".form-group").find("select") 6525 $(this).change(function(){ 6526 const name = $(this).data("properties") 6527 const v = $(this).val() 6528 if (name == 'telepon-penerima') { 6529 let phone = v.replace(/[^0-9]/g, '') 6530 $(this).val(phone); 6531 $("#properties-telepon-penerima").val(phone) 6532 $('.iti__search-input').val('-') 6533 } else { 6534 $("#properties-" + name).val(v) 6535 } 6536 }) 6537 select.on("change", function(){ 6538 const name = $(this).data("properties") 6539 const v = $(this).val() 6540 $("#properties-" + name).val(v) 6541 }) 6542 }) 6543 6544 $("#show_note").click(function(){ 6545 nameq = $("#properties-nama-penerima").val() 6546 dear = $("#properties-kartu-nama-penerima").val() 6547 card = $("[data-properties=ucapan]").val() 6548 sender = $("#properties-kartu-nama-pengirim").val() 6549 photo = $("#properties-photo").val() 6550 video = $("#properties-video").val() 6551 updateCard(nameq, dear, card, sender, photo, video, status) 6552 }) 6553 6554 $(".remove-image").click(function(e){ 6555 e.preventDefault() 6556 $(this).find("img").show() 6557 removeImage() 6558 }) 6559 6560 $(".remove-media").click(function(e){ 6561 e.preventDefault() 6562 $(this).find("img").show() 6563 removeVideo() 6564 }) 6565 6566 6567 6568 $("[data-delivery_method]").click(function(e){
6569 e.preventDefault() 6570 const t = $(this) 6571 const data = t.data("delivery_method") 6572 $("[data-delivery_method]").removeClass("selected") 6573 t.addClass("selected") 6574 $("#cities").val("") 6575 $("#properties-delivery-date").val("-") 6576 $("#deliveryDate button").removeClass("selected") 6577 $("#full-date").val("Full Calendar â") 6578 $("#propDeliveryDate").val("") 6579 const step3 = $("#step-3") 6580 if(data.match('PickUp')) { 6581 $(".selfpickup-point").show() 6582 step3.find("[data-finished=false]").hide() 6583 $("#panel-4").hide() 6584 step3.find("[data-finished=true]").show() 6585 $("#cities").attr("required", false) 6586 $("#form-group-city").hide() 6587 $("#row-delivery-time").hide() 6588 $("#propDeliveryTime, #properties-delivery-time, #properties-nama-penerima, #properties-alamat-penerima, #properties-kodepos, #properties-kodepos, #properties-telepon-penerima").val("-") 6589 $("#propDeliveryTime").attr("required", false) 6590 // $("#deliveryDate").find("button:first-child").addClass("stop") 6591 $(".form-selfpickup").show() 6592 $(".form-delivery").hide() 6593 $(".form-delivery").find("input, textarea, select").val("") 6594 $(".form-delivery").find("input, textarea, select").attr("required", false) 6595 $("#properties-shipping").val("0") 6596 $("#noteDeliveryDate").hide() 6597 $(".form-delivery .form-control").attr("required", false) 6598 $("#stepNav4").hide() 6599 6600 $("#deliveryDate").find("button:nth-child(1)").addClass("stop") 6601 6602 6603 6604 if(timeOfDay >= 16.01){ 6605 $("#deliveryDate").find("button:nth-child(2)").addClass("stop") 6606 } 6607 } else { 6608 6609 6610 $("#deliveryDate").find("button:nth-child(1)").removeClass("stop") 6611 step3.find("[data-finished=false]").show() 6612 $("#panel-4").show() 6613 step3.find("[data-finished=true]").hide() 6614 $("#cities").attr("required", true) 6615 $(".selfpickup-point").hide() 6616 $("#form-group-city").show() 6617 $("#cities").val('').trigger('change'); 6618 $("#properties-kota-pengiriman").val("-") 6619 6620 $("#row-delivery-date, #row-delivery-time").show() 6621 $("#propDeliveryDate, #propDeliveryTime").attr("required", true) 6622 $("#deliveryDate").find("button").removeClass("stop") 6623 $(".form-selfpickup").hide() 6624 $(".form-delivery").show() 6625 $(".form-delivery").find("input, textarea, select").attr("required", true)
6626 $(".form-delivery [data-properties]").attr("readonly", false) 6627 $("#properties-kodepos").val("-") 6628 $("#properties-alamat-penerima").val("-") 6629 $(".form-delivery .form-control").attr("required", true) 6630 $(this).parents(".setup-content").attr("id", "step-1") 6631 6632 $("#stepNav4").show() 6633 } 6634 }) 6635 6636 $("[name=selfpickup]").click(function(){ 6637 const p = $(this).parents(".row-pickup") 6638 const pickupCity = $("input[name='selfpickup']:checked").val(); 6639 const pickupAddress = $("input[name='selfpickup']:checked").data("address"); 6640 const pickupZip = $("input[name='selfpickup']:checked").data("zip"); 6641 6642 $(".row-pickup").removeClass("selected") 6643 p.addClass("selected") 6644 6645 $("#properties-kota-pengiriman").val(pickupCity) 6646 $("#province").val("Jakarta") 6647 $("#properties-alamat-penerima").val(pickupAddress) 6648 $("#properties-kodepos").val(pickupZip) 6649 }) 6650 6651 $("#cities").change(function(e){ 6652 e.preventDefault() 6653 $(this).parent(".row").find("p.error").remove() 6654 $("#full-date").val("Full Calendar") 6655 $("#deliveryDate, #deliveryDateFull label ").show() 6656 $("#deliveryDateFull").removeClass("filled") 6657 $(".btnChangeDeliveryDate").addClass("hide") 6658 $("#full-date").prop('disabled', false); 6659 $("#stepNav2, #stepNav3, #stepNav4").removeClass("btn-success") 6660 $("#stepNav2, #stepNav3, #stepNav4").find("a").attr("disabled", true) 6661 const step3 = $("#step-3") 6662 $("#cityNote").remove() 6663 $("#noteDeliveryDate").hide() 6664 $("#noteDeliveryDate").empty() 6665 let v = $(this).val() 6666 let v2 = $('option:selected', this).attr('data-city'); 6667 let v3 = $('option:selected', this).attr('data-province'); 6668 let price = $('option:selected', this).attr('data-price'); 6669 $("#country").val(v) 6670 $("#properties-kota-pengiriman").val(v) 6671 $("#properties-shipping").val(price) 6672 $("#deliveryDate button, #deliveryTime button, .calendarseasonal .button").removeClass("selected") 6673 $("#properties-delivery-date, #properties-delivery-time").val("-") 6674 $("#propDeliveryDate, #propDeliveryTime").val("") 6675 let note = $('option:selected', this).attr('data-note'); 6676 if(v === 'Kota Lainnya') { 6677 $("#noteDeliveryDate").show() 6678 $("#noteDeliveryDate").text("Order akan segera dikirim. Estimasi tanggal diterima akan disesuaikan dengan waktu pengiriman oleh pihak ekspedisi ke lokasi Anda.") 6679 $("#zip").attr("required", false) 6680 $("#zip").hide() 6681 $("#propDeliveryDate, #propDeliveryTime").attr("required", false) 6682 $("#propDeliveryDate, #properties-delivery-date, #propDeliveryTime, #properties-delivery-time").val("-") 6683 $("#row-delivery-date, #row-delivery-time").hide() 6684 $("#properties-shipping").val("") 6685 // $(this).parents(".setup-content").attr("id", "step-2") 6686 6687 } else { 6688 $("#noteDeliveryDate").hide() 6689 $("#zip").attr("required", true) 6690 $("#zip").show() 6691 $("#row-delivery-date, #row-delivery-time").show() 6692 $("#propDeliveryDate, #propDeliveryTime").attr("required", true) 6693 $("#deliveryDate").find("button").removeClass("stop") 6694 // $(this).parents(".setup-content").attr("id", "step-1") 6695 6696 } 6697 6698 6699 6700 // if(v !== 'Jakarta') { 6701 // $("[data-type=upsell]").hide() 6702 // } else { 6703 // $("[data-type=upsell]").show() 6704 // } 6705 // $('.collection-addons')[0].swiper.update(); 6706 6707 6708 getProvince(v) 6709 $("#zip").html(`<option value="">Choose Postal Code</option>`) 6710 renderZip(v, v2, v3) 6711 6712 disabledSameDay() 6713 6714 6715 if(v !== 'Jakarta' && v !== 'Depok' && v !== 'Bekasi' && v !== 'Tangerang') { 6716 6717 $("#cardOccasion, #navAddon, .collection-addons").hide() 6718 6719 $("[data-addon=giftcard]").show() 6720 $("[data-addon=giftcard]").click() 6721 $("#itemAddons").show() 6722 $("#flower-step").addClass("nonjadetabek") 6723 } else { 6724 $("#cardOccasion, #navAddon, .collection-addons").show() 6725 $("[data-addon=all]").click() 6726 $("#flower-step").removeClass("nonjadetabek") 6727 } 6728 6729 if(v !== '') { 6730 $("#personalizeBtn .btn").attr("disabled", false) 6731 } else { 6732 $("#personalizeBtn .btn").attr("disabled", true) 6733 } 6734 6735 }) 6736 6737 $("#zip").change(function(e){
6738 let v = $(this).val() 6739 var city = $("#cities").find('option:selected'); 6740 $("#properties-kodepos").val(v) 6741 if(city === 'Kota Lainnya') { 6742 $(this).attr("required", true) 6743 $("#recipient-address").val("") 6744 } 6745 }) 6746 6747 6748 var minDate = +7 6749 6750 6751 6752 $("#full-date").datepicker({ 6753 minDate, 6754 dateFormat: 'Mdd_yy', //Nop22_2021, 6755 6756 beforeShowDay: disabledays, 6757 6758 onSelect: function (date) { 6759 $("#deliveryDate, #deliveryDateFull label ").hide() 6760 $("#deliveryDateFull").addClass("filled") 6761 $(".btnChangeDeliveryDate").removeClass("hide") 6762 $("#full-date").prop('disabled', true); 6763 $('#propDeliveryDate, #properties-delivery-date').val('Kirim_'+date); 6764 $(".date-full").addClass("selected") 6765 $(".date-single, .calendar-group").removeClass("selected") 6766 $("#propDeliveryTime").val('') 6767 $("#properties-delivery-time").val('-') 6768 $(".time-single").removeClass("selected") 6769 6770 6771 } 6772 }); 6773 6774 $(".btnChangeDeliveryDate").click(function(){ 6775 $("#deliveryDate, #deliveryDateFull label ").show() 6776 $("#deliveryDateFull").removeClass("filled") 6777 $(".btnChangeDeliveryDate").addClass("hide") 6778 $("#full-date").prop('disabled', false); 6779 }) 6780 6781 $("#deliveryDate").delegate(".calendarbutton:not(.date-full)", "click", function(e){ 6782 e.preventDefault() 6783 $(this).parents("#row-delivery-date").find("p.error").remove() 6784 const fulldate = $(this).data("fulldate") 6785 const day = $(this).data("day") 6786 const date = $(this).data("date")
6787 const month = $(this).data("month") 6788 const year = $(this).data("year") 6789 const off_pagi = $(this).data("offpagi") 6790 const off_siang = $(this).data("offsiang") 6791 const off_Malam = $(this).data("offMalam") 6792 $(".calendarbutton").removeClass("selected") 6793 $(this).addClass("selected") 6794 $("#propDeliveryDate, #properties-delivery-date").val(`Kirim_${month}${date}_${year}`) 6795 $("#propDeliveryTime").val('') 6796 $("#properties-delivery-time").val('-') 6797 $(".calendarbutton2").removeClass("selected") 6798 $("#full-date").val("Full Calendar") 6799 6800 6801 if(off_pagi && timeOfDay > off_pagi) { 6802 $("[data-time=Morning]").attr("disabled", true) 6803 } else { 6804 $("[data-time=Morning]").attr("disabled", false) 6805 } 6806 if(off_siang && timeOfDay > off_siang) { 6807 $("[data-time=Afternoon]").attr("disabled", true) 6808 } else { 6809 $("[data-time=Afternoon]").attr("disabled", false) 6810 } 6811 6812 6813 6814 }) 6815 6816 if(today === 14 && timeOfDay > 17.00) { 6817 $("#deliveryDate button:first-child").attr("disabled", true) 6818 } 6819 6820 $("#deliveryTime").delegate(".calendarbutton2", "click", function(e){ 6821 e.preventDefault() 6822 const time = $(this).data("time") 6823 const date = $("#propDeliveryDate").val() 6824 if(date == '') { 6825 return alert('Silakan pilih tanggal terlebih dahulu') 6826 } 6827 $(".calendarbutton2").removeClass("selected") 6828 $(this).addClass("selected") 6829 $("#propDeliveryTime, #properties-delivery-time").val(`KirimJam_${date.replace('Kirim_','')}_${time}`) 6830 }) 6831 6832 $('textarea.has-limit, input.has-limit').keyup(function () { 6833 max = this.getAttribute("maxlength"); 6834 let len = $(this).val().length; 6835 let limit = $(this).siblings(".limit"); 6836 if (len > max) { 6837 alert('you have reached the limit'); 6838 } else { 6839 limit.text(`${len}/${max}`); 6840 } 6841 }); 6842 6843 $("#button-action-step .btn").click(function(){ 6844 $(this).find("span").text("Processing..."); 6845 }); 6846 6847 $(".finishBtn").on('click', function() { 6848 $(this).addClass("is-adding"); 6849 // $(this).click(); 6850 }); 6851 6852 $('.setup-panel .nav-item a.btn-success').trigger('click'); 6853 6854 $("#button-action .btn").click(function(){ 6855 $("#flower-step").addClass("block"); 6856 $("#button-action").hide(); 6857 }); 6858 6859 $(".close-how-order").click(function(){ 6860 $("#flower-step").removeClass("block"); 6861 $("#button-action").show(); 6862 }); 6863 6864 $("#input-foto, #input-video").change(function(e){ 6865 readURL(this); 6866 }); 6867 6868 $("#logoPapan").change(function(){ 6869 readURLPapan(this); 6870 }); 6871 6872 $("#address-upload").change(async function(){ 6873 const upload_address = await readURLAddress(this) 6874 if(upload_address) { 6875 const url = upload_address.url 6876 $(".props-address-upload").val(url) 6877 $(".form-address").addClass("address-uploaded") 6878 $(".form-address-upload").addClass("uploaded") 6879 6880 $(this).parents(".form-group").siblings(".form-group").find("[required]").attr("required", false) 6881 } 6882 }) 6883 6884 $(".address-manualy").click(function(){ 6885 $(".form-address-upload").removeClass("uploaded"); 6886 $(".photo-address").hide(); 6887 $(".form-address").removeClass("address-uploaded") 6888 $("#formAddressPurchase").find(".form-control").attr("required", true) 6889 }); 6890 6891 $(".case-video-preview").delegate(".replace-video", "click", function(){ 6892 $("#input-video").trigger("click") 6893 }) 6894 6895 $('.date-single').click(function(e) { 6896 e.preventDefault(); 6897 $('.date-single').removeClass('selected'); 6898 $('#full-date').removeClass('selected'); 6899 $(this).addClass('selected'); 6900 $('#full-date').html('Full' + '<br/>' + 'Calendar'); 6901 }); 6902 $('#full-date').click(function(e){ 6903 e.preventDefault(); 6904 $('.date-single').removeClass('selected'); 6905 $(this).addClass('selected'); 6906 }); 6907 6908 // $("tr").each(function(){ 6909 // if($(this).text().match('SKU')) { 6910 // $(".sku-product").html($(this).parents("table").html()) 6911 // } 6912 // }) 6913 6914 $("#product-image").scroll(function(){ 6915 $(".desc-add").each(function(){ 6916 const img = $(this).find("img") 6917 const src = img.data("src") 6918 img.attr("src", src) 6919 }) 6920 }) 6921 6922 $(".product-fixed").hide() 6923 6924 let target = $("#personalizeBtn") 6925 6926 6927 $(".product-meta").scroll(function() { 6928 if ($(window).scrollTop() >= target.offset().top ) { 6929 $(".product-fixed").addClass("show") 6930 } else { 6931 $(".product-fixed").removeClass("show") 6932 } 6933 }); 6934 6935 $(window).scroll(function() { 6936 if ($(window).scrollTop() >= target.offset().top ) { 6937 $(".product-fixed").addClass("show") 6938 } else { 6939 $(".product-fixed").removeClass("show") 6940 } 6941 }); 6942 }); 6943 </script>
6943 6944 6945
6945<script> 6946 // 6947 </script>
6947 6948 6949
6949<script> 6950 $(document).ready(function(){ 6951 $('table tr td').each(function(){ 6952 var texto = $(this).text(); 6953 var nextto = $(this).next("td"); 6954 var sku = $("#data-sku").val() 6955 if(texto == 'SKU'){ 6956 nextto.text(sku) 6957 } 6958 }); 6959 6960 $(".stamped-summary-actions-newquestion").text("Tulis Pertanyaan"); 6961 $(".stamped-summary-actions-newreview").text("Tulis Review"); 6962 $("#tab-questions").text("Pertanyaan"); 6963 6964 $(".freeship .icon").click(function(){ 6965 $(".fs-content").slideToggle(); 6966 $(this).parents(".freeship").toggleClass("expand"); 6967 }); 6968 6969 var $easyzoom = $('.easyzoom').easyZoom(); 6970 // Setup thumbnails example 6971 var api1 = $easyzoom.filter('.easyzoom--with-thumbnails').data('easyZoom'); 6972 $('.thumbnails').on('click', 'a', function(e) { 6973 var $this = $(this); 6974 e.preventDefault(); 6975 // Use EasyZoom's `swap` method 6976 api1.swap($this.data('standard'), $this.attr('href')); 6977 }); 6978 6979 $('#playerID').click(function(){ 6980 var videoURL = $('#VdoID').attr('src'), 6981 dataplay = $('#VdoID').attr('data-play'); 6982 6983 //for check autoplay 6984 //if not set autoplay=1 6985 if(dataplay == 0 ){ 6986 $('#VdoID').attr('src',videoURL+'?autoplay=1'); 6987 $('#VdoID').attr('data-play',1); 6988 } 6989 else{ 6990 var videoURL = $('#VdoID').attr('src'); 6991 videoURL = videoURL.replace("?autoplay=1", ""); 6992 $('#VdoID').prop('src',''); 6993 $('#VdoID').prop('src',videoURL); 6994 6995 $('#VdoID').attr('data-play',0); 6996 } 6997 6998 }); 6999 7000 $(".product-photo-thumb-video").click(function(e){ 7001 e.preventDefault(); 7002 7003 var newEmbed = $(this).attr('href'); 7004 $("#featured-image-product").addClass("img-video"); 7005 $("#ProductPhotoImg").hide(); 7006 $("#featured-image-product .video").show(); 7007 $("#featured-image-product iframe").attr('src', newEmbed); 7008 $("#VdoID")[0].src += "&autoplay=1"; 7009 }); 7010 $(".product-single__thumbnail").click(function(evt){ 7011 evt.preventDefault(); 7012 $("#featured-image-product").removeClass("img-video"); 7013 $("#ProductPhotoImg").show(); 7014 $("#featured-image-product .video").hide(); 7015 $("#featured-image-product iframe").attr('src', ''); 7016 }); 7017 7018 if($('#product-meta .short-desc > div').length >= 1){ 7019 //console.log('div detected') 7020 var replacer = $('#product-meta .short-desc > div').contents(); 7021 $('#product-meta .short-desc > div').replaceWith(replacer); 7022 7023 var cAssured = $('.c-assured').detach(); 7024 cAssured.insertAfter('.meta-sds .stock-info'); 7025 } 7026 7027 7028 7029 $(".heading-toggle").click(function(){ 7030 $(this).parent().toggleClass("open") 7031 7032 }); 7033 }); 7034 </script>
7034 7035 7036 7037
7037<script type="application/json" id="ProductJson-Product"> 7038 7039 {"id":8144957800663,"title":"JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eJKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan."} 7040 </script>
7040 7041 7042
7042<script type="application/json" id="VariantJson-Product"> 7043 [ 7044 7045 { 7046 "incoming": false, 7047 "next_incoming_date": null 7048 } 7049 7050 ] 7051 </script>
7051 7052 7053 7054 7055 7056 </div> 7057 7058 7059
7059<script src="//outerbloom.com/cdn/shopifycloud/storefront/assets/themes_support/option_selection-b017cd28.js" type="text/javascript"></script>
7059 7060 <style> 7061 .stamped-review-header-title, 7062 .stamped-review-header .author, 7063 .stamped-review-content-body, 7064 .stamped-sort-select, 7065 .stamped-review-header .verified-badge[data-type=buyer]:after, 7066 .stamped-review-header-byline, 7067 .stamped-review-reply-body {font-size: 14px!important;font-family: 'Barlow',sans-serif!important;} 7068 .stamped-review {margin-bottom: 0;} 7069 .stamped-review-body {padding-left: 65px;} 7070 .stamped-review:first-child {padding-top: 25px;} 7071 .stamped-review-content {clear: none;} 7072 .stamped-review-reply {margin: 15px 0 0 65px;background: #f2f2f2;border-left: none;} 7073 .stamped-review-reply-body {padding-left: 65px;} 7074 .stamped-review-header .author {text-transform: capitalize;} 7075 .stamped-questions .stamped-review-content {padding-left: 65px;} 7076 7077 .stamped-pagination {margin: 20px 0 0;} 7078 .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;} 7079 .stamped-pagination li a {color: #121212;padding: 13px 18px;vertical-align: middle;display: block;} 7080 .stamped-pagination li.active a {background-color: #ddd;font-weight: 400;} 7081 .stamped-pagination li:hover a {background: #ddd;} 7082 .stamped-pagination .next {border-right: 1px solid #ccc;} 7083 .stamped-pagination li:first-child {border-top-left-radius: 5px;border-bottom-left-radius: 5px;} 7084 .stamped-pagination li:last-child {border-top-right-radius: 5px;border-bottom-right-radius: 5px;} 7085 7086 #stamped-pagination-question span.page {display: inline-block;border: 1px solid #ccc;width: 47px;} 7087 #stamped-pagination-question span {font-size: 14px;} 7088 #stamped-pagination-question .page.active {padding: 12px;font-weight: 400;background: #ddd;} 7089 #stamped-pagination-question a, #stamped-pagination-question .page.active {color: #121212;padding: 13px 18px;vertical-align: middle;display: inline-block;} 7090 .stamped-pagination-deco {color: #121212;padding: 13px 18px;width: 47px;vertical-align: middle;display: inline-block;border: 1px solid #ccc;padding: 12px;} 7091 .stamped-pagination-prev, .stamped-pagination-next {position: inherit;} 7092 .stamped-pagination-prev a, .stamped-pagination-next a {width: auto!important;border: 1px solid #ccc;} 7093 7094 @media (max-width: 480px){ 7095 .stamped-review-reply {margin-left: 0!important;} 7096 select.stamped-sort-select {font-size: 13px!important;} 7097 } 7098 7099 #product-reviews .stamped-summary-ratings, #product-reviews .stamped-summary-actions, .stamped-content { 7100 display: block !important; 7101 } 7102 </style> 7103
7103<script> 7104 var selectCallback = function(variant, selector) { 7105 timber.productPage({ 7106 money_format: "Rp {{amount_no_decimals}}", 7107 variant: variant, 7108 selector: selector 7109 }); 7110 }; 7111 7112 jQuery(function($) { 7113 new Shopify.OptionSelectors('productSelect', { 7114 product: 7115 7116 7117 7118 7119 7120 {"id":8144957800663,"title":"JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eJKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan."}, 7121 onVariantSelected: selectCallback, 7122 enableHistoryState: true 7123 }); 7124 7125 // Add label if only one product option and it isn't 'Title'. Could be 'Size'. 7126 7127 7128 // Hide selectors if we only have 1 variant and its title contains 'Default'. 7129 7130 $('.selector-wrapper').hide(); 7131 7132 }); 7133 </script>
7133 7134 7135 7136 7137
7137<script type="application/ld+json"> 7138 { 7139 "@context": "http://schema.org", 7140 "@type": "Product", 7141 "offers": { 7142 "@type": "Offer", 7143 "availability":"https://schema.org/InStock", 7144 "price": 835000, 7145 "priceValidUntil": "05-10-2025", 7146 "priceCurrency": "IDR", 7147 "url": "https://librosalfaguarajuvenil.com/" 7148 }, 7149 "brand": { 7150 "@type": "Brand", 7151 "name": "Outerbloom Florist" 7152 }, 7153 "sku": "8144957800663", 7154 "gtin13": "Jawa", 7155 "name": "JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru", 7156 "description": "JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan.", 7157 "category": "JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan.", 7158 "url": "https://librosalfaguarajuvenil.com/", 7159 "image": { 7160 "@type": "ImageObject", 7161 "url": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426", 7162 "image": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426", 7163 "name": "JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru", 7164 "width": 1024, 7165 "height": 1024 7166 } 7167 } 7168 </script>
7168 7169 7170 7171 7172 7173 7174
7174<script id="bss-ltap-hide-price" type="text/javascript" > 7175 !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)}))}
7175)),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)}
7175)),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()}
7175if("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)}
7175if(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");
7175c&&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
7175-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");
7175i&&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
7175--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
7175opify.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");
7175e.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=
7175o.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");
7175if(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();
7175let 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()}]); 7176 </script>
7176 7177 7178 </main> 7179 7180 <div id="shopify-section-newsletter" class="shopify-section"><br> 7181 <style> 7182 #shopify-section-newsletter { 7183 background: url(https://res.cloudinary.com/dih0tpwae/image/upload/v1767518757/bg_gh1lsp.jpg); 7184 background-attachment: fixed; 7185 margin-bottom: 0; 7186 } 7187 input:-webkit-autofill, 7188 input:-webkit-autofill:hover, 7189 input:-webkit-autofill:active, 7190 input:-webkit-autofill:focus { 7191 -webkit-box-shadow:0 0 0 50px white inset; 7192 -webkit-text-fill-color: #ffffff; 7193 } 7194 .section-newsletter { 7195 max-width: 800px; 7196 margin: auto; 7197 padding: 50px 0; 7198 } 7199 .section-newsletter h2 { 7200 font-weight: 700; 7201 font-size: 24px; 7202 } 7203 .section-newsletter input[type="email"] { 7204 width: 100%; 7205 text-align: center; 7206 border: none; 7207 border-bottom: 1px solid #ffffff; 7208 font-size: 16px; 7209 color: #757575; 7210 background-color: #eeeeee; 7211 } 7212 .section-newsletter .row label { 7213 font-size: 14px; 7214 cursor: pointer; 7215 } 7216 .section-newsletter .radio-inline input { 7217 width: auto; 7218 } 7219 .section-newsletter .btn { 7220 width: 130px; 7221 border: 1px solid #ffffff; 7222 box-shadow: none; 7223 font-size: 16px; 7224 font-weight: 500; 7225 text-transform: uppercase; 7226 } 7227 .section-newsletter form { 7228 margin: 30px 0 60px; 7229 } 7230 .section-newsletter input[type="radio"] { 7231 position: absolute; 7232 width: 1px; 7233 height: 1px; 7234 } 7235 .section-newsletter [type="radio"]:checked + label, .section-newsletter [type="radio"]:not(:checked) + label { 7236 position: relative; 7237 padding-left: 28px; 7238 cursor: pointer; 7239 line-height: 20px; 7240 display: inline-block; 7241 color: #666; 7242 } 7243 .section-newsletter [type="radio"]:checked + label:before, .section-newsletter [type="radio"]:not(:checked) + label:before { 7244 content: ''; 7245 position: absolute; 7246 left: 0; 7247 top: 0; 7248 width: 18px; 7249 height: 18px; 7250 border: 1px solid #ddd; 7251 border-radius: 100%; 7252 background: #fff; 7253 } 7254 .section-newsletter [type="radio"]:checked + label:after, .section-newsletter [type="radio"]:not(:checked) + label:after { 7255 content: ''; 7256 width: 12px; 7257 height: 12px; 7258 background: #ffffff; 7259 position: absolute; 7260 top: 3px; 7261 left: 3px; 7262 border-radius: 100%; 7263 -webkit-transition: all 0.2s ease; 7264 transition: all 0.2s ease; 7265 } 7266 .section-newsletter [type="radio"]:not(:checked) + label:after { 7267 opacity: 0; 7268 -webkit-transform: scale(0); 7269 transform: scale(0); 7270 } 7271 .opt-newsletter {display:none;} 7272 .footer-newsletter p, .footer-newsletter p a { 7273 color: #757575; 7274 } 7275 @media (max-width:991px){ 7276 .section-newsletter h2 { 7277 font-size: 32px; 7278 } 7279 .section-newsletter input { 7280 width: 300px; 7281 font-size: 14px; 7282 } 7283 .section-newsletter { 7284 padding: 50px 20px; 7285 } 7286 } 7287 @media (max-width: 480px){ 7288 .section-newsletter input[type="email"] {font-size: 16px;} 7289 } 7290 </style> 7291 <style> 7292 .icon-img-footer { 7293 width: 80px; 7294 padding: 0px 5px; 7295 } 7296 @media (min-width: 768px) { 7297 .icon-img-footer { 7298 width: 120px; 7299 } 7300 } 7301 @media (min-width: 992px) { 7302 .icon-img-footer { 7303 width: 120px; 7304 } 7305 } 7306 7307 .button-login-daftar { 7308 display: grid; 7309 grid-template-columns: repeat(2, 1fr); 7310 font-weight: 700; 7311 } 7312 .button-login-daftar a { 7313 text-align: center; 7314 } 7315 .login, 7316 .register { 7317 color: #fff; 7318 padding: 15px 10px; 7319 font-size: 23px; 7320 } 7321 .login, 7322 .login-button { 7323 background: linear-gradient(to bottom,#00ccff 0,#00ccff 100%); 7324 border: 2px solid #ffffff; 7325 } 7326 .register, 7327 .register-button { 7328 background: linear-gradient(to bottom,#00ccff 0,#00ccff 100%); 7329 border: 2px solid #ffffff; 7330 } 7331 7332 7333 7334 </style> 7335 7336 <!-- wp:html --> 7337
7337<script> 7338 document.addEventListener('DOMContentLoaded', 7339 function(){const faqItems=document.querySelectorAll('.faq-item'); 7340 faqItems.forEach(item=>{const question=item.querySelector('.faq-question'); 7341 question.addEventListener('click', 7342 ()=>{const isActive=item.classList.contains('active'); 7343 faqItems.forEach(otherItem=>{otherItem.classList.remove('active')}); 7344 if(!isActive){item.classList.add('active')}})})}); 7345 </script>
7345 7346 7347 7348 <div class="page__overlay" data-view="offCanvasNavToggle" data-off-canvas="close" bis_skin_checked="1"> 7349 </div> 7350 <div class="faq-section"> 7351 <h2>FAQ</h2> 7352 <div class="faq-container"> 7353 <div class="faq-item"> 7354 <button class="faq-question">Apa itu JKT8?<span></span></button> 7355 <div class="faq-answer"><p>JKT8 merupakan platform bermain slot online terbaru yang pastinya menyediakan layanan slot deposit bank lokal dan qris tanpa potongan selamanya dengan minimal deposit hanya 10k.</p></div> 7356 </div> 7357 <div class="faq-item"> 7358 <button class="faq-question">Apakah JKT8 bisa diakses lewat situs dan aplikasi?<span></span></button> 7359 <div class="faq-answer"><p>JKT8 menyediakan akses lewat situs resmi dan juga apk jkt8 untuk pengguna yang ingin pengalaman lebih praktis di HP.</p></div> 7360 </div> 7361 <div class="faq-item"> 7362 <button class="faq-question">Apakah JKT8 APK aman digunakan?<span></span></button> 7363 <div class="faq-answer"><p>JKT8 APK versi resmi menggunakan sistem keamanan yang sama dengan situs, sehingga data dan aktivitas login tetap terlindungi.</p></div> 7364 </div> 7365 <div class="faq-item"> 7366 <button class="faq-question">Apakah JKT8 dapat diakses melalui semua perangkat?<span></span></button> 7367 <div class="faq-answer"><p>Ya. Platform ini bisa diakses melalui smartphone Android, iOS, maupun PC/laptop menggunakan browser tanpa perlu aplikasi tambahan.</p></div> 7368 </div> 7369 <div class="faq-item"> 7370 <button class="faq-question">Apakah JKT8 menyediakan layanan customer service?<span></span></button> 7371 <div class="faq-answer"><p>Ya. Tersedia layanan customer service 24/7 melalui live chat atau kontak resmi untuk membantu dalam proses pendaftaran, deposit, maupun kendala teknis.</p></div> 7372 </div> 7373 7374 </div> 7375 7376 </div> 7377 7378 </div> 7379 7380 7381 <div class="overlay overlay-cart"></div> 7382 <div id="CartDrawer" class="drawer drawer--right"> 7383 <div class="drawer__header pl-2 pr-2"> 7384 <div class="drawer__icon-cart display-table-cell"> 7385 <a href="/cart" class=""> 7386 <svg class="icon icon-cart" version="1.1" xmlns="images/logo-jkt8.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.
7386005-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> 7387 </a> 7388 </div> 7389 <div class="drawer__title h4">Keranjang Belanja</div> 7390 <div class="drawer__close js-drawer-close"> 7391 <button type="button"> 7392 <svg class="icon icon-close" version="1.1" xmlns="images/logo-jkt8.png" width="32" height="32" viewBox="0 0 32 32"> 7393 <title>icon-close</title> 7394 <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> 7395 </svg> 7396 </button> 7397 </div> 7398 </div> 7399 <div id="CartContainer" class="p-2"></div> 7400 </div> 7401 7402
7402<script> 7403 7404 </script>
7404 7405
7405<script src="//outerbloom.com/cdn/shop/t/138/assets/handlebars.min.js?v=79044469952368397291752652415" defer></script>
7405 7406 <!-- /snippets/ajax-cart-template.liquid --> 7407 7408
7408<script id="CartTemplate" type="text/template"> 7409 7410 <form action="/cart" method="post" novalidate class="cart ajaxcart"> 7411 <div class="ajaxcart__inner" {{ cart.item_count }}> 7412 {{#items}} 7413 <div class="ajaxcart__product"> 7414 <div class="ajaxcart__row" data-line="{{line}}"> 7415 <div class="grid"> 7416 <div class="grid__item one-quarter"> 7417 <a href="{{url}}" class="ajaxcart__product-image"><img src="{{img}}" alt=""></a> 7418 </div> 7419 <div class="grid__item three-quarters"> 7420 <p class="d-block mb-3"> 7421 <a class="h4 d-block mb-2" href="{{url}}" class="ajaxcart__product-name">{{name}}</a> 7422 {{#if variation}} 7423 <span class="ajaxcart__product-meta p">{{variation}}</span> 7424 {{/if}} 7425 {{#properties}} 7426 {{#each this}} 7427 {{#if this}} 7428 <span class="ajaxcart__product-meta p hide">{{@key}}: {{this}}</span> 7429 {{/if}} 7430 {{/each}} 7431 {{/properties}} 7432 7433 </p> 7434 <div class="grid--full display-table"> 7435 <div class="grid__item display-table-cell one-half"> 7436 <div class="ajaxcart__qty"> 7437 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}" data-line="{{line}}"> 7438 <svg version="1.1" xmlns="images/logo-jkt8.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> 7439 <span class="visually-hidden">Kurangi jumlah barang</span> 7440 </button> 7441 <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]*"> 7442 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-line="{{line}}" data-qty="{{itemAdd}}"> 7443 <svg version="1.1" xmlns="images/logo-jkt8.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> 7444 <span class="visually-hidden">Tambahkan jumlah barang</span> 7445 </button> 7446 </div> 7447 </div> 7448 <div class="grid__item display-table-cell one-half text-right"> 7449 {{#if discountsApplied}} 7450 <small class="ajaxcart-item__price-strikethrough"><s>{{{originalLinePrice}}}</s></small> 7451 <br><span class="h4">{{{linePrice}}}</span> 7452 {{else}} 7453 <span class="h4">{{{linePrice}}}</span> 7454 {{/if}} 7455 </div> 7456 </div> 7457 {{#if discountsApplied}} 7458 <div class="grid--full display-table"> 7459 <div class="grid__item text-right"> 7460 {{#each discounts}} 7461 <small class="ajaxcart-item__discount">{{ this.title }}</small><br> 7462 {{/each}} 7463 </div> 7464 </div> 7465 {{/if}} 7466 </div> 7467 </div> 7468 </div> 7469 </div> 7470 </div> 7471 </div> 7472 {{/items}} 7473 </div> 7474 <div class="ajaxcart__footer"> 7475 <div class="grid--full cart-subtotal py-2"> 7476 <p>Subtotal</p> 7477 <h3 class="primary">{{{totalPrice}}}</h3> 7478 {{#if totalCartDiscount}} 7479 <p class="ajaxcart__savings text-center"><em>{{{totalCartDiscount}}}</em></p> 7480 {{/if}} 7481 </div> 7482 7483 <a href="/cart" class="btn btn-cta view-more btn-block cart__checkout mt-2">Checkout</a> 7484 7485 <p class="cart-checkout-shipping hide">Free Ongkir dengan belanja di atas Rp.100.000 <a href="/pages/pengiriman">detail</a></p> 7486 </div> 7487 </form> 7488 7489 </script>
7489 7490
7490<script id="AjaxQty" type="text/template"> 7491 7492 <div class="ajaxcart__qty"> 7493 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}"> 7494 <svg version="1.1" xmlns="images/logo-jkt8.png" width="24" height="24" viewBox="0 0 32 32"> 7495 <title>icon-minus</title> 7496 <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> 7497 </svg> 7498 <span class="visually-hidden">Kurangi jumlah barang</span> 7499 </button> 7500 <input type="text" class="ajaxcart__qty-num" value="{{itemQty}}" min="0" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*"> 7501 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-qty="{{itemAdd}}"> 7502 <svg version="1.1" xmlns="images/logo-jkt8.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> 7503 <span class="visually-hidden">Tambahkan jumlah barang</span> 7504 </button> 7505 </div> 7506 7507 </script>
7507 7508
7508<script id="JsQty" type="text/template"> 7509 7510 <div class="js-qty mx-auto mt-2"> 7511 <button type="button" class="js-qty__adjust js-qty__adjust--minus" data-id="{{key}}" data-qty="{{itemMinus}}"> 7512 <svg version="1.1" xmlns="images/logo-jkt8.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> 7513 <span class="visually-hidden">Kurangi jumlah barang</span> 7514 </button> 7515 <input type="text" class="js-qty__num" value="{{itemQty}}" min="1" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*" name="{{inputName}}" id="{{inputId}}"> 7516 <button type="button" class="js-qty__adjust js-qty__adjust--plus" data-id="{{key}}" data-qty="{{itemAdd}}"> 7517 <svg version="1.1" xmlns="images/logo-jkt8.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> 7518 <span class="visually-hidden">Tambahkan jumlah barang</span> 7519 </button> 7520 </div> 7521 7522 </script>
7522 7523 7524 <style> 7525 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty button, 7526 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty button, 7527 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty button {display: none;} 7528 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input, 7529 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input, 7530 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;opacity: 0.5;} 7531 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input, 7532 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input, 7533 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;} 7534 </style> 7535
7535<script src="//outerbloom.com/cdn/shop/t/138/assets/ajax-cart.js?v=51128912329657147331752652452" defer></script>
7535 7536
7536<script> 7537 jQuery(function($) { 7538 ajaxCart.init({ 7539 formSelector: '#AddToCartForm', 7540 cartContainer: '#CartContainer', 7541 addToCartSelector: '#AddToCartXX', 7542 cartCountSelector: '#CartCount, #CartCount2', 7543 cartCostSelector: '#CartCost', 7544 moneyFormat: "Rp {{amount_no_decimals}}" 7545 }); 7546 }); 7547 7548 jQuery(document.body).on('afterCartLoad.ajaxCart', function(evt, cart) { 7549 // Bind to 'afterCartLoad.ajaxCart' to run any javascript after the cart has loaded in the DOM 7550 timber.RightDrawer.open(); 7551 }); 7552 </script>
7552 7553 7554 7555 7556 7557 <style> 7558 /** Search AutoComplete **/ 7559 .resultsearch .ui-menu-item[data-cat="Collection"], 7560 .resultsearch .ui-menu-item[data-cat="Collection"] {display: none;} 7561 .resultsearch .ui-widget.ui-widget-content { 7562 width: 100%; 7563 top: 48px; 7564 border: none; 7565 box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); 7566 } 7567 .resultsearch .ui-menu-item {text-align: left;} 7568 .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;} 7569 .ui-state-active { 7570 border: none!important; 7571 background-color: #fafafa!important; 7572 color: #000!important; 7573 } 7574 .ui-menu-item a[data-cat="Collection"] {padding: 5px 12px;} 7575 .ui-menu .ui-menu-item {line-height: normal;} 7576 </style> 7577
7577<script> 7578 $(window).load(function(){ 7579 7580 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;} 7581 7582 $.widget("custom.catcomplete", $.ui.autocomplete, { 7583 _renderMenu: function (ul, items) { 7584 // have search reults split up in categories 7585 var that = this, 7586 currentCategory = ""; 7587 $.each(items, function (index, item) { 7588 if (item.category != currentCategory) { 7589 ul.append("<li class='ui-autocomplete-category' data-cat=" + item.category + ">" + "<span>" + item.category + "</span>" + "</li>"); 7590 currentCategory = item.category; 7591 } 7592 that._renderItemData(ul, item); 7593 }); 7594 } 7595 }); 7596 7597 // higlight searched for term 7598 $.ui.autocomplete.prototype._renderItem = function( ul, item ) { 7599 var term = this.element.val(), 7600 html = item.label.replace( term, "<b>$&</b>" ); 7601 return $( "<li>" ) 7602 .append(format(item)) 7603 .appendTo( ul ); 7604 }; 7605 7606 7607 var data = [ 7608 { label: "< Rp 500.000", category: "Collection", url: "/collections/rp-500-000", images: " ", price: " " },{ label: "> Rp 1.000.000", category: "Collection", url: "/collections/rp-1-000-000", images: " ", price: " " },{ label: "Acrylic Jewelry Box", category: "Collection", url: "/collections/acrylic-jewelry-box", images: " ", price: " " },{ label: "Ajmal", category: "Collection", url: "/collections/ajmal", images: " ", price: " " },{ label: "Alamat Rumah Duka", category: "Collection", url: "/collections/rumah-duka", images: " ", price: " " },{ label: "Anggrek Bulan", category: "Collection", url: "/collections/anggrek-bulan", images: " ", price: " " },{ label: "Anniversary Gift", category: "Collection", url: "/collections/kado-anniversary", images: " ", price: " " },{ label: "Aquarius âï¸ 20Jan - 18Feb", category: "Collection", url: "/collections/kado-untuk-zodiak-aquarius", images: " ", price: " " },{ label: "Aries âï¸ 21March - 19April", category: "Collection", url: "/collections/kado-untuk-zodiak-aries", images: " ", price: " " },{ label: "Armaf", category: "Collection", url: "/collections/armaf", images: " ", price: " " },{ label: "Aromatherapy Diffuser", category: "Collection", url: "/collections/aromatherapy-diffuser", images: " ", price: " " },{ label: "Artisan Soap", category: "Collection", url: "/collections/artisan-soap", images: " ", price: " " },{ label: "Artisan Tea", category: "Collection", url: "/collections/artisan-tea", images: " ", price: " " },{ label: "AsmaraKu", category: "Collection", url: "/collections/asmaraku", images: " ", price: " " },{ label: "Atkinsons", category: "Collection", url: "/collections/atkinsons", images: " ", price: " " },{ label: "Autumn by Outerbloom", category: "Collection", url: "/collections/autumn-by-outerbloom", images: " ", price: " " },{ label: "Autumn by Outerbloom Chinese New Year", category: "Collection", url: "/collections/autumn-by-outerbloom-chinese-new-year", images: " ", price: " " },{ label: "Autumn by Outerbloom Christmas", category: "Collection", url: "/collections/autumn-by-outerbloom-christmas", images: " ", price: " " },{ label: "Autumn by Outerbloom Luar Jadetabek", category: "Collection", url: "/collections/autumn-by-outerbloom-luar-jadetabek", images: " ", price: " " },{ label: "Autumn by Outerbloom Ramadan", category: "Collection", url: "/collections/autumn-by-outerbloom-ramadan", images: " ", price: " " },{ label: "Autumn Pop", category: "Collection", url: "/collections/autumn-pop", images: " ", price: " " },{ label: "Bachelorette", category: "Collection", url: "/collections/bachelorette", images: " ", price: " " },{ label: "Bag Newborn Hampers", category: "Collection", url: "/collections/bag-newborn-hampers", images: " ", price: " " },{ label: "Balon", category: "Collection", url: "/collections/balon", images: " ", price: " " },{ label: "Beauty Package", category: "Collection", url: "/collections/beauty-package", images: " ", price: " " },{ label: "Best Deal", category: "Collection", url: "/collections/best-deal", images: " ", price: " " },{ label: "Best Seller", category: "Collection", url: "/collections/best-seller", images: " ", price: " " },{ label: "Best Valentine's Deals", category: "Collection", url: "/collections/bes-valentines-deals", images: " ", price: " " },{ label: "Best Value Newborn Hampers Collection", category: "Collection", url: "/collections/best-value-newborn-hampers-collection", images: " ", price: " " },{ label: "Black Tea", category: "Collection", url: "/collections/black-tea", images: " ", price: " " },{ label: "Blessing Hampers", category: "Collection", url: "/collections/blessing-hampers", images: " ", price: " " },{ label: "Bloom Box", category: "Collection", url: "/collections/bloom-box", images: " ", price: " " },{ label: "Bloomcard", category: "Collection", url: "/collections/bloomcard", images: " ", price: " " },{ label: "Boutonniere", category: "Collection", url: "/collections/boutonniere", images: " ", price: " " },{ label: "Bracelet", category: "Collection", url: "/collections/gelang", images: " ", price: " " },{ label: "Buket Bunga Bali", category: "Collection", url: "/collections/buket-bunga-bali", images: " ", price: " " },{ label: "Buket Bunga Bandung", category: "Collection", url: "/collections/buket-bunga-bandung", images: " ", price: " " },{ label: "Buket Bunga Batam", category: "Collection", url: "/collections/buket-bunga-batam", images: " ", price: " " },{ label: "Buket Bunga Demak", category: "Collection", url: "/collections/buket-bunga-demak", images: " ", price: " " },{ label: "Buket Bunga Fresh", category: "Collection", url: "/collections/buket-bunga", images: " ", price: " " },{ label: "Buket Bunga Jepara", category: "Collection", url: "/collections/buket-bunga-jepara", images: " ", price: " " },{ label: "Buket Bunga Medan", category: "Collection", url: "/collections/buket-bunga-medan", images: " ", price: " " },{ label: "Buket Bunga Nusantara", category: "Collection", url: "/collections/buket-bunga-nusantara", images: " ", price: " " },{ label: "Buket Bunga Semarang", category: "Collection", url: "/collections/buket-bunga-semarang", images: " ", price: " " },{ label: "Buket Bunga Sidoarjo", category: "Collection", url: "/collections/buket-bunga-sidoarjo", images: " ", price: " " },{ label: "Buket Bunga Surabaya", category: "Collection", url: "/collections/buket-bunga-surabaya", images: " ", price: " " },{ label: "Buket Bunga Tangerang", category: "Collection", url: "/collections/buket-bunga-tangerang", images: " ", price: " " },{ label: "Buket Bunga Uang", category: "Collection", url: "/collections/buket-bunga-uang", images: " ", price: " " },{ label: "Buket Bunga Valentine", category: "Collection", url: "/collections/buket-bunga-valentine", images: " ", price: " " },{ label: "Buket Bunga Yogyakarta", category: "Collection", url: "/collections/buket-bunga-jogja", images: " ", price: " " },{ label: "Bunga Anggrek Bali", category: "Collection", url: "/collections/bunga-anggrek-bali", images: " ", price: " " },{ label: "Bunga Anggrek Bandung", category: "Collection", url: "/collections/bunga-anggrek-bandung", images: " ", price: " " },{ label: "Bunga Anggrek Surabaya", category: "Collection", url: "/collections/bunga-anggrek-surabaya", images: " ", price: " " },{ label: "Bunga Anniversary", category: "Collection", url: "/collections/bunga-anniversary", images: " ", price: " " },{ label: "Bunga Artificial", category: "Collection", url: "/collections/bunga-artificial", images: " ", price: " " },{ label: "Bunga Buket", category: "Collection", url: "/collections/bunga-buket", images: " ", price: " " },{ label: "Bunga Carnations Bali", category: "Collection", url: "/collections/bunga-carnations-bali", images: " ", price: " " },{ label: "Bunga Carnations Bandung", category: "Collection", url: "/collections/bunga-carnations-bandung", images: " ", price: " " },{ label: "Bunga Carnations Surabaya", category: "Collection", url: "/collections/bunga-carnations-surabaya", images: " ", price: " " },{ label: "Bunga Daisy Bali", category: "Collection", url: "/collections/bunga-daisy-bali", images: " ", price: " " },{ label: "Bunga Daisy Bandung", category: "Collection", url: "/collections/bunga-daisy-bandung", images: " ", price: " " },{ label: "Bunga Daisy Surabaya", category: "Collection", url: "/collections/bunga-daisy-surabaya", images: " ", price: " " },{ label: "Bunga Gerbera Bali", category: "Collection", url: "/collections/bunga-gerbera-bali", images: " ", price: " " },{ label: "Bunga Gerbera Bandung", category: "Collection", url: "/collections/bunga-gerbera-bandung", images: " ", price: " " },{ label: "Bunga Gerbera Surabaya", category: "Collection", url: "/collections/bunga-gerbera-surabaya", images: " ", price: " " },{ label: "Bunga Imlek", category: "Collection", url: "/collections/rangkaian-bunga-tahun-baru-imlek", images: " ", price: " " },{ label: "Bunga Lebaran", category: "Collection", url: "/collections/rangkaian-bunga-lebaran", images: " ", price: " " },{ label: "Bunga Lily Bali", category: "Collection", url: "/collections/bunga-lily-bali", images: " ", price: " " },{ label: "Bunga Lily Bandung", category: "Collection", url: "/collections/bunga-lily-bandung", images: " ", price: " " },{ label: "Bunga Lily Surabaya", category: "Collection", url: "/collections/bunga-lily-surabaya", images: " ", price: " " },{ label: "Bunga Matahari Bali", category: "Collection", url: "/collections/bunga-matahari-bali", images: " ", price: " " },{ label: "Bunga Matahari Bandung", category: "Collection", url: "/collections/bunga-matahari-bandung", images: " ", price: " " },{ label: "Bunga Matahari Surabaya", category: "Collection", url: "/collections/bunga-matahari-surabaya", images: " ", price: " " },{ label: "Bunga Mawar Bali", category: "Collection", url: "/collections/bunga-mawar-bali", images: " ", price: " " },{ label: "Bunga Mawar Bandung", category: "Collection", url: "/collections/bunga-mawar-bandung", images: " ", price: " " },{ label: "Bunga Mawar Surabaya", category: "Collection", url: "/collections/bunga-mawar-surabaya", images: " ", price: " " },{ label: "Bunga Meja", category: "Collection", url: "/collections/bunga-meja", images: " ", price: " " },{ label: "Bunga Meja Bali", category: "Collection", url: "/collections/bunga-meja-bali", images: " ", price: " " },{ label: "Bunga Meja Bandung", category: "Collection", url: "/collections/bunga-meja-bandung", images: " ", price: " " },{ label: "Bunga Meja Batam", category: "Collection", url: "/collections/bunga-meja-batam", images: " ", price: " " },{ label: "Bunga Meja Jepara", category: "Collection", url: "/collections/bunga-meja-jepara", images: " ", price: " " },{ label: "Bunga Meja Medan", category: "Collection", url: "/collections/bunga-meja-medan", images: " ", price: " " },{ label: "Bunga Meja Semarang", category: "Collection", url: "/collections/bunga-meja-semarang", images: " ", price: " " },{ label: "Bunga Meja Sidoarjo", category: "Collection", url: "/collections/bunga-meja-sidoarjo", images: " ", price: " " },{ label: "Bunga Meja Surabaya", category: "Collection", url: "/collections/bunga-meja-surabaya", images: " ", price: " " },{ label: "Bunga Meja Tangerang", category: "Collection", url: "/collections/bunga-meja-tangerang", images: " ", price: " " },{ label: "Bunga Meja Yogyakarta", category: "Collection", url: "/collections/bunga-meja-jogja", images: " ", price: " " },{ label: "Bunga Modern Pastel Bali", category: "Collection", url: "/collections/bunga-modern-pastel-bali", images: " ", price: " " },{ label: "Bunga Modern Pastel Bandung", category: "Collection", url: "/collections/bunga-modern-pastel-bandung", images: " ", price: " " },{ label: "Bunga Modern Pastel Medan", category: "Collection", url: "/collections/bunga-modern-pastel-medan", images: " ", price: " " },{ label: "Bunga Modern Pastel Semarang", category: "Collection", url: "/collections/bunga-modern-pastel-semarang", images: " ", price: " " },{ label: "Bunga Modern Pastel Surabaya", category: "Collection", url: "/collections/bunga-modern-pastel-surabaya", images: " ", price: " " },{ label: "Bunga Modern Pastel Yogyakarta", category: "Collection", url: "/collections/bunga-modern-pastel-yogyakarta", images: " ", price: " " },{ label: "Bunga Natal", category: "Collection", url: "/collections/rangkaian-bunga-christmas", images: " ", price: " " },{ label: "Bunga Papan", category: "Collection", url: "/collections/bunga-papan", images: " ", price: " " },{ label: "Bunga Pernikahan", category: "Collection", url: "/collections/bunga-pernikahan", images: " ", price: " " },{ label: "Bunga Plastik", category: "Collection", url: "/collections/bunga-plastik", images: " ", price: " " },{ label: "Bunga Tulip", category: "Collection", url: "/collections/bunga-tulip", images: " ", price: " " },{ label: "Bunga Ulang Tahun", category: "Collection", url: "/collections/bunga-ulang-tahun", images: " ", price: " " },{ label: "Bunga Wisuda", category: "Collection", url: "/collections/karangan-bunga-wisuda", images: " ", price: " " },{ label: "Cake", category: "Collection", url: "/collections/kue", images: " ", price: " " },{ label: "Cake", category: "Collection", url: "/collections/cake", images: " ", price: " " },{ label: "Cake Sameday Delivery", category: "Collection", url: "/collections/cake-sameday-delivery", images: " ", price: " " },{ label: "Cake, Hampers & Gifts", category: "Collection", url: "/collections/cake-hampers", images: " ", price: " " },{ label: "Cancer âï¸ 22June - 22July", category: "Collection", url: "/collections/kado-untuk-zodiak-cancer", images: " ", price: " " },{ label: "Capricorn âï¸ 21Dec - 19Jan", category: "Collection", url: "/collections/kado-untuk-zodiak-capricorn", images: " ", price: " " },{ label: "Care Packages", category: "Collection", url: "/collections/toko-parcel-murah", images: " ", price: " " },{ label: "Care Packages (Keluarga, Sahabat, Karyawan)", category: "Collection", url: "/collections/sehat-bebas-corona", images: " ", price: " " },{ label: "Carnations", category: "Collection", url: "/collections/bunga-anyelir", images: " ", price: " " },{ label: "Celebration", category: "Collection", url: "/collections/celebration", images: " ", price: " " },{ label: "Chléa Paperie", category: "Collection", url: "/collections/chlea-paperie", images: " ", price: " " },{ label: "Chocodot", category: "Collection", url: "/collections/chocodot", images: " ", price: " " },{ label: "Christmas", category: "Collection", url: "/collections/christmas", images: " ", price: " " },{ label: "Classic Cake", category: "Collection", url: "/collections/classic-cake", images: " ", price: " " },{ label: "Classic CNY Hampers", category: "Collection", url: "/collections/classic-cny-hampers", images: " ", price: " " },{ label: "Classic CNY Hampers Luar Jabodetabek", category: "Collection", url: "/collections/classic-cny-hampers-luar-jabodetabek", images: " ", price: " " },{ label: "Classic Hampers", category: "Collection", url: "/collections/classic-hampers", images: " ", price: " " },{ label: "Classic Hampers Luar Jadetabek", category: "Collection", url: "/collections/classic-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Classic Style Flowers", category: "Collection", url: "/collections/classic-style-flowers", images: " ", price: " " },{ label: "Cokelat", category: "Collection", url: "/collections/permen-coklat", images: " ", price: " " },{ label: "Collection List", category: "Collection", url: "/collections/collection-list", images: " ", price: " " },{ label: "Condolences", category: "Collection", url: "/collections/axa-condolences", images: " ", price: " " },{ label: "Congratulations", category: "Collection", url: "/collections/rangkaian-bunga-ucapan-selamat", images: " ", price: " " },{ label: "Corporate Gifts", category: "Collection", url: "/collections/corporate-gifts", images: " ", price: " " },{ label: "Corporate Hampers", category: "Collection", url: "/collections/corporate-hampers", images: " ", price: " " },{ label: "Couple Gift", category: "Collection", url: "/collections/couple-gift", images: " ", price: " " },{ label: "Craft S
7608weetbox Newborn", category: "Collection", url: "/collections/craft-sweetbox-newborn", images: " ", price: " " },{ label: "Crystal Florarium", category: "Collection", url: "/collections/crystal-florarium", images: " ", price: " " },{ label: "Cuddlemate Doll", category: "Collection", url: "/collections/boneka-lucu", images: " ", price: " " },{ label: "Cufflinks", category: "Collection", url: "/collections/cufflinks", images: " ", price: " " },{ label: "Cupcakes", category: "Collection", url: "/collections/cupcakes", images: " ", price: " " },{ label: "Custom Alat Tulis", category: "Collection", url: "/collections/alat-tulis", images: " ", price: " " },{ label: "Custom Cake", category: "Collection", url: "/collections/custom-cake", images: " ", price: " " },{ label: "Custom Card Holder", category: "Collection", url: "/collections/custom-card-holder", images: " ", price: " " },{ label: "Custom Coaster", category: "Collection", url: "/collections/custom-coaster", images: " ", price: " " },{ label: "Custom Cutlery", category: "Collection", url: "/collections/custom-cutlery", images: " ", price: " " },{ label: "Custom E-Money", category: "Collection", url: "/collections/custom-e-money", images: " ", price: " " },{ label: "Custom Earpod", category: "Collection", url: "/collections/custom-earpod", images: " ", price: " " },{ label: "Custom Fan", category: "Collection", url: "/collections/custom-fan", images: " ", price: " " },{ label: "Custom Jewelry", category: "Collection", url: "/collections/custom-jewelry", images: " ", price: " " },{ label: "Custom Keychain", category: "Collection", url: "/collections/custom-keychain", images: " ", price: " " },{ label: "Custom Medallion", category: "Collection", url: "/collections/custom-medallion", images: " ", price: " " },{ label: "Custom Mirror", category: "Collection", url: "/collections/custom-mirror", images: " ", price: " " },{ label: "Custom Mug", category: "Collection", url: "/collections/custom-mug", images: " ", price: " " },{ label: "Custom Necklace", category: "Collection", url: "/collections/custom-necklace", images: " ", price: " " },{ label: "Custom Notebook", category: "Collection", url: "/collections/custom-notebook", images: " ", price: " " },{ label: "Custom Pen & Pencil", category: "Collection", url: "/collections/custom-pen-pencil", images: " ", price: " " },{ label: "Custom Photo Frame", category: "Collection", url: "/collections/photo-frame", images: " ", price: " " },{ label: "Custom Pillow", category: "Collection", url: "/collections/bantal-custom", images: " ", price: " " },{ label: "Custom Powerbank", category: "Collection", url: "/collections/custom-powerbank", images: " ", price: " " },{ label: "Custom Scarf", category: "Collection", url: "/collections/custom-scarf", images: " ", price: " " },{ label: "Custom Speaker", category: "Collection", url: "/collections/custom-speaker", images: " ", price: " " },{ label: "Custom T-Shirt", category: "Collection", url: "/collections/custom-t-shirt", images: " ", price: " " },{ label: "Custom Tote Bag", category: "Collection", url: "/collections/custom-tote-bag", images: " ", price: " " },{ label: "Custom Tumbler Minuman", category: "Collection", url: "/collections/custom-tumbler-minuman", images: " ", price: " " },{ label: "D'paris", category: "Collection", url: "/collections/dparis", images: " ", price: " " },{ label: "Daisy", category: "Collection", url: "/collections/bunga-aster", images: " ", price: " " },{ label: "Dekorasi", category: "Collection", url: "/collections/dekorasi", images: " ", price: " " },{ label: "Dekorasi Duka Cita", category: "Collection", url: "/collections/dekorasi-bunga-duka-cita", images: " ", price: " " },{ label: "Dekorasi Pemakaman", category: "Collection", url: "/collections/dekorasi-pemakaman", images: " ", price: " " },{ label: "Dekorasi Pernikahan", category: "Collection", url: "/collections/dekorasi-bunga-pernikahan", images: " ", price: " " },{ label: "Dekorasi Ulang Tahun", category: "Collection", url: "/collections/dekorasi-bunga-ulang-tahun", images: " ", price: " " },{ label: "Delivery", category: "Collection", url: "/collections/delivery", images: " ", price: " " },{ label: "Deluxe Newborn Hampers Collection", category: "Collection", url: "/collections/deluxe-newborn-hampers-collection", images: " ", price: " " },{ label: "Digital Gift", category: "Collection", url: "/collections/digital-gift", images: " ", price: " " },{ label: "Donasi", category: "Collection", url: "/collections/donasi", images: " ", price: " " },{ label: "E-Card", category: "Collection", url: "/collections/ecard", images: " ", price: " " },{ label: "E-Gift Card", category: "Collection", url: "/collections/e-gift-card", images: " ", price: " " },{ label: "Earrings", category: "Collection", url: "/collections/anting", images: " ", price: " " },{ label: "Edible Gift", category: "Collection", url: "/collections/edible-gift", images: " ", price: " " },{ label: "Enchanted Grande Love Pirouette", category: "Collection", url: "/collections/enchanted-grande-love-pirouette", images: " ", price: " " },{ label: "Enchanted Love Pirouette", category: "Collection", url: "/collections/enchanted-love-pirouette", images: " ", price: " " },{ label: "Engagement", category: "Collection", url: "/collections/rangkaian-bunga-lamaran", images: " ", price: " " },{ label: "Expression", category: "Collection", url: "/collections/expression", images: " ", price: " " }
7608,{ 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: " " }
7608,{ 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: " " }
7608,{ 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
7608dal", 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-
7608hampers", 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
7608o-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: " " }
7608,{ 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: " " }
7608,{ 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: " " }
7608,{ 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: " " }
7608,{ 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: " " }
7608,{ 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: " " }
7608,{ 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: " " }
7608,{ label: "Paper Flower Board", category: "Collection", url: "/collections/papan-bunga-kertas", images: " ", price: " " },{ label: "Paper Flower Board Bali", category: "Collection", url: "/collections/papan-bunga-kertas-bali", images: " ", price: " " },{ label: "Paper Flower Board Gresik", category: "Collection", url: "/collections/papan-bunga-kertas-gresik", images: " ", price: " " },{ label: "Paper Flower Board Sidoarjo", category: "Collection", url: "/collections/papan-bunga-kertas-sidoarjo", images: " ", price: " " },{ label: "Paper Flower Board Surabaya", category: "Collection", url: "/collections/papan-bunga-kertas-surabaya", images: " ", price: " " },{ label: "Paper Flower Board Yogyakarta", category: "Collection", url: "/collections/papan-bunga-kertas-yogyakarta", images: " ", price: " " },{ label: "Parcel", category: "Collection", url: "/collections/parcel", images: " ", price: " " },{ label: "Parcel Buah", category: "Collection", url: "/collections/parcel-buah-segar", images: " ", price: " " },{ label: "Parcel Buah Bandung", category: "Collection", url: "/collections/parcel-buah-bandung", images: " ", price: " " },{ label: "Parcel Buah Semarang", category: "Collection", url: "/collections/parcel-buah-semarang", images: " ", price: " " },{ label: "Parcel Buah Sidoarjo", category: "Collection", url: "/collections/parcel-buah-sidoarjo", images: " ", price: " " },{ label: "Parcel Buah Surabaya", category: "Collection", url: "/collections/parcel-buah-surabaya", images: " ", price: " " },{ label: "Parcel Imlek 2025", category: "Collection", url: "/collections/parcel-imlek", images: " ", price: " " },{ label: "Parcel Imlek Bandung", category: "Collection", url: "/collections/parcel-imlek-bandung", images: " ", price: " " },{ label: "Parcel Imlek Nusantara", category: "Collection", url: "/collections/parcel-imlek-nusantara", images: " ", price: " " },{ label: "Parcel Lebaran Bandung", category: "Collection", url: "/collections/parcel-lebaran-bandung", images: " ", price: " " },{ label: "Parcel Lebaran Nusantara", category: "Collection", url: "/collections/parcel-lebaran-indonesia", images: " ", price: " " },{ label: "Parcel Lebaran Surabaya", category: "Collection", url: "/collections/parcel-lebaran-surabaya", images: " ", price: " " },{ label: "Parcel Makanan", category: "Collection", url: "/collections/parcel-makanan", images: " ", price: " " },{ label: "Parcel Natal & Tahun Baru 2026", category: "Collection", url: "/collections/hampers-natal", images: " ", price: " " },{ label: "Parcel Natal & Tahun Baru Bandung", category: "Collection", url: "/collections/parcel-natal-bandung", images: " ", price: " " },{ label: "Parcel Newborn Nusantara", category: "Collection", url: "/collections/parcel-newborn-nusantara", images: " ", price: " " },{ label: "Parcel Tahun Baru", category: "Collection", url: "/collections/new-year-tahun-baru", images: " ", price: " " },{ label: "Party Supplies", category: "Collection", url: "/collections/party-supplies", images: " ", price: " " },{ label: "Partysaurus", category: "Collection", url: "/collections/partysaurus", images: " ", price: " " },{ label: "Pasar Bunga Splendid Malang", category: "Collection", url: "/collections/pasar-bunga-splendid-malang", images: " ", price: " " },{ label: "Passionate Red Valentine", category: "Collection", url: "/collections/red-valentine", images: " ", price: " " },{ label: "Pendant", category: "Collection", url: "/collections/liontin", images: " ", price: " " },{ label: "Personalized Fashion", category: "Collection", url: "/collections/fashion", images: " ", price: " " },{ label: "Personalized Gift", category: "Collection", url: "/collections/personalized-gift", images: " ", price: " " },{ label: "Personalized Gift Pria", category: "Collection", url: "/collections/personalized-gift-pria", images: " ", price: " " },{ label: "Personalized Gift Wanita", category: "Collection", url: "/collections/personalized-gift-wanita", images: " ", price: " " },{ label: "Personalized Gifts", category: "Collection", url: "/collections/personalized-gifts", images: " ", price: " " },{ label: "Pesca Ice Cream Cakes", category: "Collection", url: "/collections/pesca", images: " ", price: " " },{ label: "Phone Case", category: "Collection", url: "/collections/phone-case", images: " ", price: " " },{ label: "Photobook", category: "Collection", url: "/collections/photobook", images: " ", price: " " },{ label: "Pisces âï¸ 19Feb - 20March", category: "Collection", url: "/collections/kado-untuk-zodiak-pisces", images: " ", price: " " },{ label: "Pohon Natal", category: "Collection", url: "/collections/pohon-natal", images: " ", price: " " },{ label: "Premium Hampers", category: "Collection", url: "/collections/parcel-premium", images: " ", price: " " },{ label: "Premium Newborn Hampers Collection", category: "Collection", url: "/collections/premium-newborn-hampers-collection", images: " ", price: " " },{ label: "Printing Cake", category: "Collection", url: "/collections/printing-cake", images: " ", price: " " },{ label: "Prom", category: "Collection", url: "/collections/prom", images: " ", price: " " },{ label: "Promo Merdeka", category: "Collection", url: "/collections/merdeka", images: " ", price: " " },{ label: "Rangkaian Bunga", category: "Collection", url: "/collections/rangkaian-bunga", images: " ", price: " " },{ label: "Rangkaian Bunga Dekorasi", category: "Collection", url: "/collections/rangkaian-bunga-dekorasi", images: " ", price: " " },{ label: "Rangkaian Bunga Ulang Tahun", category: "Collection", url: "/collections/rangkaian-bunga-ulang-tahun", images: " ", price: " " },{ label: "Romantic & Sweets", category: "Collection", url: "/collections/romantic-sweets", images: " ", price: " " },{ label: "Romantic Package", category: "Collection", url: "/collections/romantic-package", images: " ", price: " " },{ label: "Rose Beam", category: "Collection", url: "/collections/rose-beam", images: " ", price: " " },{ label: "Rose Box", category: "Collection", url: "/collections/rose-box", images: " ", price: " " },{ label: "Roses", category: "Collection", url: "/collections/bunga-mawar", images: " ", price: " " },{ label: "Rp 500.000 - Rp 800.000", category: "Collection", url: "/collections/rp-500-000-rp-800-000", images: " ", price: " " },{ label: "Rp 800.000 - Rp 1.000.000", category: "Collection", url: "/collections/rp-800-000-rp-1-000-000", images: " ", price: " " },{ label: "Rustic & Monochrome Ramadan Hampers", category: "Collection", url: "/collections/rustic-monochrome-ramadanhampers", images: " ", price: " " },{ label: "Rustic Bloom", category: "Collection", url: "/collections/dried-flowers", images: " ", price: " " },{ label: "Rustic Style Flowers", category: "Collection", url: "/collections/rustic-style-flowers", images: " ", price: " " },{ label: "Sagittarius âï¸ 22Nov - 21Des", category: "Collection", url: "/collections/kado-untuk-zodiak-sagittarius", images: " ", price: " " },{ label: "Sameday Delivery", category: "Collection", url: "/collections/sameday", images: " ", price: " " },{ label: "Savoury Dish", category: "Collection", url: "/collections/savoury-dish", images: " ", price: " " },{ label: "Saychiz", category: "Collection", url: "/collections/saychiz", images: " ", price: " " },{ label: "Scented Candles", category: "Collection", url: "/collections/scented-candles", images: " ", price: " " },{ label: "Scorpio âï¸ 24Oct - 21Nov", category: "Collection", url: "/collections/kado-untuk-zodiak-scorpio", images: " ", price: " " },{ label: "Self Pick-Up", category: "Collection", url: "/collections/self-pick-up", images: " ", price: " " },{ label: "Semua Produk", category: "Collection", url: "/collections/all", images: " ", price: " " },{ label: "Serenitea", category: "Collection", url: "/collections/serenitea", images: " ", price: " " },{ label: "Share Outerbloom Moment", category: "Collection", url: "/collections/share-moment", images: " ", price: " " },{ label: "Share your Happiness", category: "Collection", url: "/collections/share-happiness", images: " ", price: " " },{ label: "Signature Cake", category: "Collection", url: "/collections/signature-cake", images: " ", price: " " },{ label: "Signature Chinese New Year Hampers", category: "Collection", url: "/collections/signature-chinese-new-year-hampers", images: " ", price: " " },{ label: "Signature Christmas & New Year Hampers", category: "Collection", url: "/collections/signature-christmas-hampers", images: " ", price: " " },{ label: "Signature Hampers", category: "Collection", url: "/collections/signature-hampers", images: " ", price: " " },{ label: "Signature Hampers Luar Jadetabek", category: "Collection", url: "/collections/signature-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Signature Hampers Sameday", category: "Collection", url: "/collections/signature-hampers-sameday", images: " ", price: " " },{ label: "Signature Ramadan Hampers", category: "Collection", url: "/collections/signature-ramadan-hampers", images: " ", price: " " },{ label: "Slice Cake", category: "Collection", url: "/collections/slice-cake", images: " ", price: " " },{ label: "Snack Box", category: "Collection", url: "/collections/snack-box", images: " ", price: " " },{ label: "Sol et Terre", category: "Collection", url: "/collections/sol-et-terre", images: " ", price: " " },{ label: "Sorbet", category: "Collection", url: "/collections/sorbet", images: " ", price: " " },{ label: "Special Day", category: "Collection", url: "/collections/special-day", images: " ", price: " " },{ label: "Special Edition", category: "Collection", url: "/collections/special-edition", images: " ", price: " " },{ label: "Special For Her", category: "Collection", url: "/collections/special-for-her", images: " ", price: " " },{ label: "JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan.", category: "Collection", url: "/collections/standing-flower", images: " ", price: " " },{ label: "JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan. Bali", category: "Collection", url: "/collections/standing-flower-bali", images: " ", price: " " },{ label: "JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan. Bandung", category: "Collection", url: "/collections/standing-flower-bandung", images: " ", price: " " },{ label: "JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan. Congratulations", category: "Collection", url: "/collections/standing-flower-congratulations", images: " ", price: " " },{ label: "JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan. Demak", category: "Collection", url: "/collections/standing-flower-demak", images: " ", price: " " },{ label: "JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan. Jepara", category: "Collection", url: "/collections/standing-flower-jepara", images: " ", price: " " },{ label: "JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan. Semarang", category: "Collection", url: "/collections/standing-flower-semarang", images: " ", price: " " },{ label: "JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan. Sidoarjo", category: "Collection", url: "/collections/standing-flower-sidoarjo", images: " ", price: " " },{ label: "JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan. Surabaya", category: "Collection", url: "/collections/standing-flower-surabaya", images: " ", price: " " },{ label: "JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan. 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: "
7608Collection", url: "/collections/toko-bunga-ambon", images: " ", price: " " },{ label: "Toko Bunga Atambua", category: "Collection", url: "/collections/toko-bunga-atambua", images: " ", price: " " },{ label: "Toko Bunga Bali", category: "Collection", url: "/collections/toko-bunga-bali", images: " ", price: " " },{ label: "Toko Bunga Balikpapan", category: "Collection", url: "/collections/toko-bunga-balikpapan", images: " ", price: " " },{ label: "Toko Bunga Bandar Lampung", category: "Collection", url: "/collections/toko-bunga-bandar-lampung", images: " ", price: " " },{ label: "Toko Bunga Bandung", category: "Collection", url: "/collections/toko-bunga-bandung", images: " ", price: " " },{ label: "Toko Bunga Bandung Barat", category: "Collection", url: "/collections/toko-bunga-bandung-barat", images: " ", price: " " },{ label: "Toko Bunga Banjarmasin", category: "Collection", url: "/collections/toko-bunga-banjarmasin", images: " ", price: " " },{ label: "Toko Bunga Banten", category: "Collection", url: "/collections/toko-bunga-banten", images: " ", price: " " },{ label: "Toko Bunga Banyumas", category: "Collection", url: "/collections/toko-bunga-banyumas", images: " ", price: " " },{ label: "Toko Bunga Banyuwangi", category: "Collection", url: "/collections/toko-bunga-banyuwangi", images: " ", price: " " },{ label: "Toko Bunga Batam", category: "Collection", url: "/collections/toko-bunga-batam", images: " ", price: " " },{ label: "Toko Bunga Baubau", category: "Collection", url: "/collections/toko-bunga-baubau", images: " ", price: " " },{ label: "Toko Bunga Bekasi", category: "Collection", url: "/collections/toko-bunga-bekasi", images: " ", price: " " },{ label: "Toko Bunga Bengkalis", category: "Collection", url: "/collections/toko-bunga-bengkalis", images: " ", price: " " },{ label: "Toko Bunga Bengkayang", category: "Collection", url: "/collections/toko-bunga-bengkayang", images: " ", price: " " },{ label: "Toko Bunga Binjai", category: "Collection", url: "/collections/toko-bunga-binjai", images: " ", price: " " },{ label: "Toko Bunga Bintaro", category: "Collection", url: "/collections/toko-bunga-bintaro", images: " ", price: " " },{ label: "Toko Bunga Blitar", category: "Collection", url: "/collections/toko-bunga-blitar", images: " ", price: " " },{ label: "Toko Bunga Blora", category: "Collection", url: "/collections/toko-bunga-blora", images: " ", price: " " },{ label: "Toko Bunga Bogor", category: "Collection", url: "/collections/toko-bunga-bogor", images: " ", price: " " },{ label: "Toko Bunga Bojonegoro", category: "Collection", url: "/collections/toko-bunga-bojonegoro", images: " ", price: " " },{ label: "Toko Bunga Boyolali", category: "Collection", url: "/collections/toko-bunga-boyolali", images: " ", price: " " },{ label: "Toko Bunga Brebes", category: "Collection", url: "/collections/toko-bunga-brebes", images: " ", price: " " },{ label: "Toko Bunga Bukittinggi", category: "Collection", url: "/collections/toko-bunga-bukittinggi", images: " ", price: " " },{ label: "Toko Bunga Buleleng", category: "Collection", url: "/collections/toko-bunga-buleleng", images: " ", price: " " },{ label: "Toko Bunga Cakung", category: "Collection", url: "/collections/toko-bunga-cakung", images: " ", price: " " },{ label: "Toko Bunga Cawang", category: "Collection", url: "/collections/toko-bunga-cawang", images: " ", price: " " },{ label: "Toko Bunga Cempaka Putih", category: "Collection", url: "/collections/toko-bunga-cempaka-putih", images: " ", price: " " },{ label: "Toko Bunga Cengkareng", category: "Collection", url: "/collections/toko-bunga-cengkareng", images: " ", price: " " },{ label: "Toko Bunga Ciamis", category: "Collection", url: "/collections/toko-bunga-ciamis", images: " ", price: " " },{ label: "Toko Bunga Cianjur", category: "Collection", url: "/collections/toko-bunga-cianjur", images: " ", price: " " },{ label: "Toko Bunga Cibinong", category: "Collection", url: "/collections/toko-bunga-cibinong", images: " ", price: " " },{ label: "Toko Bunga Cibubur", category: "Collection", url: "/collections/toko-bunga-cibubur", images: " ", price: " " },{ label: "Toko Bunga Cijantung", category: "Collection", url: "/collections/toko-bunga-cijantung", images: " ", price: " " },{ label: "Toko Bunga Cikarang", category: "Collection", url: "/collections/toko-bunga-cikarang", images: " ", price: " " },{ label: "Toko Bunga Cikini", category: "Collection", url: "/collections/toko-bunga-cikini", images: " ", price: " " },{ label: "Toko Bunga Cilacap", category: "Collection", url: "/collections/toko-bunga-cilacap", images: " ", price: " " },{ label: "Toko Bunga Cilandak", category: "Collection", url: "/collections/toko-bunga-cilandak", images: " ", price: " " },{ label: "Toko Bunga Cileunyi", category: "Collection", url: "/collections/toko-bunga-cileunyi", images: " ", price: " " },{ label: "Toko Bunga Ciracas", category: "Collection", url: "/collections/toko-bunga-ciracas", images: " ", price: " " },{ label: "Toko Bunga Cirebon", category: "Collection", url: "/collections/toko-bunga-cirebon", images: " ", price: " " }
7608,{ 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
7608dal", 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: " " }, 7609 { label: "grand salutation jabodetabek", category: "Produk", url: "/products/grand-salutation", images: "//outerbloom.com/cdn/shop/files/JKTCON1005_Grand-Salutation-Jabodetabek-WM_thumb.jpg?v=1703241523", price: "Rp 435.000" },{ label: "consolantibus jabodetabek", category: "Produk", url: "/products/consolantibus", images: "//outerbloom.com/cdn/shop/files/JKTDUK1011_Consolantibus-Jabodetabek-WM_thumb.jpg?v=1703239823", price: "Rp 435.000" },{ label: "classic midnight hand bouquet fiery red", category: "Produk", url: "/products/the-classic-midnight-hand-bouquet-fiery-red", images: "//outerbloom.com/cdn/shop/files/OBVBUN1422_Classic-Midnight-Hand-Bouquet---Fiery-Red-large_thumb.jpg?v=1757302521", price: "Rp 385.000" },{ label: "enchanted dome passionate red", category: "Produk", url: "/products/enchanted-dome-passionate-red", images: "//outerbloom.com/cdn/shop/files/Enchanted-dome-red-new-box_3_2_26c081bf-f2a5-42b4-9ce4-3c0304c498e5_thumb.jpg?v=1712639476", price: "Rp 1.435.000" },{ label: "endearing ruby", category: "Produk", url: "/products/endearing-ruby", images: "//outerbloom.com/cdn/shop/products/OUTSTF1003_Endearing-Ruby_thumb.jpg?v=1631296611", price: "Rp 585.000" },{ label: "gentle soul jabodetabek", category: "Produk", url: "/products/gentle-soul-jabodetabek", images: "//outerbloom.com/cdn/shop/files/JKTDUK1030_Gentle-Soul-Jabodetabek-WM_thumb.jpg?v=1703239894", price: "Rp 435.000" },{ label: "belleza jabodetabek", category: "Produk", url: "/products/belleza", images: "//outerbloom.com/cdn/shop/files/Belleza-Jabodetabek-LED_aecb756a-0737-45cc-8bfb-008515ca0a37_thumb.gif?v=1759229680", price: "Rp 435.000" }
7609,{ label: "majestic pink roses with baby breath bouquet", category: "Produk", url: "/products/majestic-pink-roses-with-baby-breath-bouquet", images: "//outerbloom.com/cdn/shop/products/ef4a3be9-c938-4c70-98ac-4873e7da82bf_90820a66-923a-463d-a464-81bcbe6e6644_thumb.jpg?v=1581413440", price: "Rp 485.000" },{ label: "sentiments jabodetabek", category: "Produk", url: "/products/sentiments", images: "//outerbloom.com/cdn/shop/files/Sentiments-Jabodetabek-WM_thumb.jpg?v=1759224099", price: "Rp 485.000" },{ label: "rose poetry bouquet", category: "Produk", url: "/products/rose-poetry-bouquet", images: "//outerbloom.com/cdn/shop/products/Rose-Poetry-Bouquet-20-tangkai_thumb.jpg?v=1675151039", price: "Rp 385.000" },{ label: "genuine feeling", category: "Produk", url: "/products/genuine-feeling", images: "//outerbloom.com/cdn/shop/products/OUTSTF1004Genuine-Feeling_981ade89-af27-433e-81aa-8d76175a0e4d_thumb.jpg?v=1612352389", price: "Rp 585.000" },{ label: "eternal fidelity jabodetabek", category: "Produk", url: "/products/eternal-fidelity-jabodetabek", images: "//outerbloom.com/cdn/shop/products/0b89df45-dcc1-4876-820e-61b2243a1945_964e211d-2972-46c9-8593-976210929089_thumb.jpg?v=1590491458", price: "Rp 435.000" },{ label: "rosabelle hand bouquet", category: "Produk", url: "/products/rosabelle-hand-bouquet", images: "//outerbloom.com/cdn/shop/files/OBVBUN1429_Rosabelle-Hand-Bouquet-Medium_thumb.jpg?v=1756971848", price: "Rp 385.000" },{ label: "dreaming in pink luxury in vase", category: "Produk", url: "/products/dreaming-in-pink-luxury-in-vase", images: "//outerbloom.com/cdn/shop/products/OBVBUN1051_Dreaming-In-Pink-Luxury-In-Vase_3_thumb.jpg?v=1614594504", price: "Rp 735.000" },{ label: "excito jabodetabek", category: "Produk", url: "/products/excito", images: "//outerbloom.com/cdn/shop/files/JKTCON1010_Excito-Jabodetabek-2023_thumb.gif?v=1717494677", price: "Rp 485.000" },{ label: "golden toast jabodetabek", category: "Produk", url: "/products/golden-toast", images: "//outerbloom.com/cdn/shop/products/LED-GoldenToast_thumb.gif?v=1579249585", price: "Rp 485.000" },{ label: "spirit of eminance jabodetabek", category: "Produk", url: "/products/spirit-of-eminance-jabodetabek", images: "//outerbloom.com/cdn/shop/files/JKTCON1026_Spirit-of-Eminance-Jabodetabek-newest-WM_thumb.jpg?v=1693297526", price: "Rp 485.000" },{ label: "white elysian bloom box", category: "Produk", url: "/products/white-elysian-bloom-box", images: "//outerbloom.com/cdn/shop/files/OBVBUN1704_White-Elysian-Bloom-Box_thumb.jpg?v=1757328247", price: "Rp 685.000" },{ label: "charming forevermore jabodetabek", category: "Produk", url: "/products/charming-forevermore-jabodetabek", images: "//outerbloom.com/cdn/shop/files/JKTWED1036_Charming-Forevermore-Jabodetabek-WM_thumb.jpg?v=1703239534", price: "Rp 485.000" },{ label: "moment of glory jabodetabek", category: "Produk", url: "/products/moment-of-glory-jabodetabek", images: "//outerbloom.com/cdn/shop/products/JKTCON1051_Moment-of-Glory-Jabodetabek_2_thumb.jpg?v=1596614663", price: "Rp 385.000" },{ label: "sweet romance jabodetabek", category: "Produk", url: "/products/sweet-romance", images: "//outerbloom.com/cdn/shop/products/JKTWED1005_Sweet-Romance-Jabodetabek_thumb.gif?v=1677134791", price: "Rp 635.000" },{ label: "with love bouquet", category: "Produk", url: "/products/with-love-bouquet", images: "//outerbloom.com/cdn/shop/products/c5d6fed6-8ada-4c38-ae0f-36d395aacb19_613f78f0-d52c-443b-9e13-63a151cd8ec5_thumb.jpg?v=1590748429", price: "Rp 535.000" },{ label: "sunflower yellow and with white daisies in vase", category: "Produk", url: "/products/sunflower-yellow-roses-with-white-and-yellow-daisies-in-a-glass-vase", images: "//outerbloom.com/cdn/shop/files/OBVBUN1132_Sunflower-Yellow-And-With-White-Daisies-in-Vase_thumb.jpg?v=1757930628", price: "Rp 435.000" },{ label: "everlasting peace jabodetabek", category: "Produk", url: "/products/everlasting-peace-jabodetabek", images: "//outerbloom.com/cdn/shop/products/JKTDUK1034_Everlasting-Peace-Jabodetabek_2_thumb.jpg?v=1596614613", price: "Rp 385.000" },{ label: "astoria passionate red", category: "Produk", url: "/products/astoria-passionate-red", images: "//outerbloom.com/cdn/shop/products/Astoria-passionate-red_b59b26f6-c39d-46d3-adcb-262c675bb16f_thumb.jpg?v=1633502742", price: "Rp 685.000" },{ label: "classic purple orchid majesty in vase", category: "Produk", url: "/products/classic-purple-orchid-majesty-in-vase", images: "//outerbloom.com/cdn/shop/products/Classic-Purple-Orchid-Majesty-in-Vase---White---4-Tangkai_40a5e337-283f-40f5-911c-5df9b506b9da_thumb.jpg?v=1639981404", price: "Rp 435.000" },{ label: "passion rouge bloom box", category: "Produk", url: "/products/passion-rouge-bloom-box", images: "//outerbloom.com/cdn/shop/files/OBVBUN1725_Passion-Rouge-Bloom-Box_thumb.jpg?v=1756972410", price: "Rp 385.000" },{ label: "classic white orchid majesty in vase", category: "Produk", url: "/products/classic-white-orchid-majesty-in-vase", images: "//outerbloom.com/cdn/shop/products/Classic-white-Orchid-Majesty-in-Vase---white---4-Tangkai_thumb.jpg?v=1644205542", price: "Rp 435.000" }
7609,{ label: "majestic blue romance bouquet", category: "Produk", url: "/products/majestic-blue-romance-bouquet", images: "//outerbloom.com/cdn/shop/files/OBVBUN1357_Majestic-Blue-Romance-Bouquet_99b8ba96-0e67-4eef-a00e-b2daedcddb6a_thumb.jpg?v=1757390540", price: "Rp 435.000" },{ label: "sincerely", category: "Produk", url: "/products/sincerely", images: "//outerbloom.com/cdn/shop/files/Sincerely-WM_thumb.jpg?v=1688354677", price: "Rp 585.000" },{ label: "happy days jabodetabek", category: "Produk", url: "/products/happy-days-jabodetabek", images: "//outerbloom.com/cdn/shop/files/Happy-Days-Jabodetabek_WM_thumb.jpg?v=1759224026", price: "Rp 485.000" },{ label: "solemn comfort jabodetabek", category: "Produk", url: "/products/solemn-comfort-jabodetabek", images: "//outerbloom.com/cdn/shop/products/7fe123d8-6bb2-4c0d-bd4c-f8c3032823f2_6b9c33b6-4a23-41cb-8709-fc9223fe096a_thumb.png?v=1590662086", price: "Rp 635.000" },{ label: "big dreams jabodetabek", category: "Produk", url: "/products/big-dreams", images: "//outerbloom.com/cdn/shop/files/JKTCON1002_Big-Dreams-Jabodetabek_thumb.gif?v=1717494603", price: "Rp 485.000" },{ label: "signature ramadan deluxe hampers", category: "Produk", url: "/products/outerbloom-signature-ramadhan-deluxe-hampers", images: "//outerbloom.com/cdn/shop/files/Signature-Deluxe-Hampers_thumb.jpg?v=1739242254", price: "Rp 985.000" },{ label: "amorous amos jabodetabek", category: "Produk", url: "/products/amorous-amos-jabodetabek", images: "//outerbloom.com/cdn/shop/files/Amorous-Amos-Jabodetabek-WM_thumb.jpg?v=1759224071", price: "Rp 485.000" },{ label: "pink darling bouquet", category: "Produk", url: "/products/pink-darling-bouquet", images: "//outerbloom.com/cdn/shop/products/Pink-Darling-Bouquet_thumb.jpg?v=1669969725", price: "Rp 485.000" },{ label: "black pink bouquet", category: "Produk", url: "/products/black-pink-bouquet", images: "//outerbloom.com/cdn/shop/files/Black-Pink-Bouquet_thumb.jpg?v=1756434063", price: "Rp 485.000" },{ label: "profound happiness jabodetabek", category: "Produk", url: "/products/profound-happiness-jabodetabek", images: "//outerbloom.com/cdn/shop/files/profound-happiness_thumb.gif?v=1689940309", price: "Rp 635.000" },{ label: "healing trove", category: "Produk", url: "/products/healing-trove", images: "//outerbloom.com/cdn/shop/products/2ef5379f-27a6-41ba-85c7-c65cf3ec3f08_thumb.jpg?v=1571471845", price: "Rp 485.000" },{ label: "sincerity solace", category: "Produk", url: "/products/sincerity-solace", images: "//outerbloom.com/cdn/shop/products/OUTSTF1038_sincerity-solace-WM_thumb.jpg?v=1612352477", price: "Rp 485.000" },{ label: "bellarosa bloom box", category: "Produk", url: "/products/bellarosa-bloom-box", images: "//outerbloom.com/cdn/shop/files/OBVBUN1783_Bellarosa-Bloom-Box_c0000424-411c-48ed-abf4-0de7d925ea53_thumb.jpg?v=1757316757", price: "Rp 785.000" } 7610 ]; 7611 7612 7613 $( ".header-input-search" ).catcomplete({ 7614 appendTo: ".searchResult",source: function(request, response) { 7615 var results = $.ui.autocomplete.filter(data, request.term); 7616 var predicate = function () { 7617 var counter = { Collection: 0, Produk: 0 }; 7618 var fn = function(item) {counter[item.category] += 1;return (counter[item.category] <= 5);} 7619 return fn 7620 }(); 7621 response(results.filter(predicate)); 7622 }, 7623 minLength:1, 7624 //results are clickable 7625 select: function( event, ui ) {window.location = ui.item.url;} 7626 }); 7627 $( ".header-input-search2" ).catcomplete({ 7628 appendTo: ".searchResult2", 7629 source: function(request, response) { 7630 var results = $.ui.autocomplete.filter(data, request.term); 7631 var predicate = function () { 7632 var counter = { Collection: 0, Produk: 0 }; 7633 var fn = function(item) { 7634 counter[item.category] += 1; 7635 return (counter[item.category] <= 5); 7636 } 7637 return fn 7638 }(); 7639 response(results.filter(predicate)); 7640 }, 7641 minLength:1, 7642 //results are clickable 7643 select: function( event, ui ) { 7644 window.location = ui.item.url; 7645 } 7646 }); 7647 }); 7648 </script>
7648 7649 7650
7650<script src="//outerbloom.com/cdn/shop/t/138/assets/vendors.js?v=6349622868601634021752652419" defer></script>
7650 7651
7651<script src="//outerbloom.com/cdn/shop/t/138/assets/app.js?v=136050180318808583701752652452" defer></script>
7651 7652 7653
7653<script> 7654 ( function() { 7655 var youtube = document.querySelectorAll( ".youtube" ); 7656 for (var i = 0; i < youtube.length; i++) { 7657 var source = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault_1x.jpg"; 7658 var datasource = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault.jpg"; 7659 var image = new Image(); 7660 image.src = source; 7661 image.setAttribute("data-src", datasource); 7662 image.classList.add("swiper-lazy"); 7663 image.addEventListener( "load", function() { 7664 youtube[ i ].appendChild( image ); 7665 }( i ) ); 7666 youtube[i].addEventListener( "click", function() { 7667 var iframe = document.createElement( "iframe" ); 7668 iframe.setAttribute( "width", "480" ); 7669 iframe.setAttribute( "height", "480" ); 7670 iframe.setAttribute( "frameborder", "0" ); 7671 iframe.setAttribute( "allowfullscreen", "" ); 7672 iframe.setAttribute( "src", "https://www.youtube.com/embed/"+ this.dataset.embed +"?rel=0&showinfo=0&autoplay=1" ); 7673 this.innerHTML = ""; 7674 this.appendChild( iframe ); 7675 } ); 7676 }; 7677 7678 } )(); 7679 7680 /* Lazy Load */ 7681 const mainLazyLoad = new LazyLoad({threshold:400}); 7682 $(document).ready(function(){ 7683 7684 $("selectxxx").addClass("needsclick"); 7685 FastClick.attach(document.body); 7686 7687 var $customSelects = $('.select-search'); 7688 $customSelects.select2({ 7689 templateResult: function(result, container) { 7690 if (!result.id) { 7691 return result.text; 7692 } 7693 container.className += ' needsclick'; 7694 return result.text; 7695 } 7696 }); 7697 $customSelects.each(function(index, el){$(el).data('select2').$container.find('*').addClass('needsclick');}); 7698 $(document).on('select2:open', () => { 7699 document.querySelector('.select2-search__field').focus(); 7700 }); 7701 7702 7703 $(".overlay").click(function(){ 7704 $(".js-drawer-close").click(); 7705 }); 7706 $(".site-nav--mobile .js-drawer-open-left, #NavDrawer .icon-close, .overlay-nav").click(function(){ 7707 $("html").toggleClass("nav_open"); 7708 }); 7709 7710 $('.swatch-element label').on('click', function(){ 7711 var srcImg = $(this).data('src'); 7712 $('#thumb-image-product .product-single__thumbnail').each(function(){ 7713 if ($(this).attr("href") == srcImg) { 7714 $(this).trigger('click'); 7715 } 7716 }); 7717 }); 7718 var defaultValue = $(".swatch input:checked").val() 7719 7720 $('#purchaseProduct .swatch [type=radio]').change(function() { 7721 var optionIndex = $(this).closest('.swatch').attr('data-option-index'); 7722 var optionValue = $(this).val(); 7723 console.log(optionIndex, optionValue) 7724 var value = parseInt(optionValue.split(' ')[0]) 7725 $(this) 7726 .closest('#purchaseProduct') 7727 .find('.single-option-selector') 7728 .eq(optionIndex) 7729 .val(optionValue) 7730 .trigger('change'); 7731 7732 }); 7733 7734 }); 7735 $(document).ready(function(){ 7736 $(".nav-search a").click(function(e){ 7737 e.preventDefault(); 7738 $(".icon-navsearch").toggle(); 7739 $(".icon-navclose").toggle(); 7740 $(".site-nav__item > .site-nav__link").toggle(); 7741 $(".open-search").toggle(); 7742 $(".open-search input").focus(); 7743 }); 7744 $(".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'>"); 7745 if ($(window).width() < 768) { 7746 $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_75x.png?v=82732945490105366961752652419' alt='Icon Valentine'>"); 7747 $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_45x.png?v=101884295148001743851752652418' alt='Icon CNY'>"); 7748 $(".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'>"); 7749 } else { 7750 $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_60x.png?v=82732945490105366961752652419' alt='Icon Valentine'>"); 7751 $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_60x.png?v=101884295148001743851752652418' alt='Icon CNY'>"); 7752 $(".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'>"); 7753 } 7754 $(".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'>"); 7755 $(".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'>"); 7756 }); 7757 </script>
7757 7758 7759 7760 7761 7762 7763 7764 7765
7765<script type="text/javascript"> 7766 var wishlistpage = 0; 7767 7768 var quickShop_money_format="<span class='money'>"+"Rp {{amount_no_decimals}}"+"</span>"; 7769 </script>
7769 7770 7771 <!-- Remove duplicate wishlist.js reference --> 7772 <style> 7773 .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)}} 7774 </style> 7775 7776 <div class="modal fade" id="modalwishlist0" tabindex="-1" role="dialog"> 7777 <div class="modal-dialog" role="document"> 7778 <div class="modal-content"> 7779 <div class="modal-body">Your Wishlist is empty!</div> 7780 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> 7781 </div> 7782 </div> 7783 </div> 7784 7785 <div class="wishlist-model"> 7786 <div class="modal fade" id="modalwishlist1" tabindex="-1" role="dialog" aria-hidden="true"> 7787 <div class="modal-dialog white-modal"> 7788 <div class="modal-content"> 7789 <div class="modal-header"> 7790 <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 7791 <svg class="icon icon-close" version="1.1" xmlns="images/logo-jkt8.png" width="32" height="32" viewBox="0 0 32 32"> 7792 <title>icon-close</title> 7793 <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> 7794 </svg> 7795 </button> 7796 </div> 7797 <div class="modal-body"> 7798 <div class="wishlist-left"> 7799 <div class="wishlist-note">
7800 <span class="cirle"><svg version="1.1" xmlns="images/logo-jkt8.png" width="32" height="32" viewBox="0 0 32 32"> 7801 <title>icon-check</title> 7802 <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> 7803 </svg></span> 7804 Product added to <a href="/pages/wish-list">Wishlist</a> 7805 </div> 7806 <div class="wishlist-product"> 7807 <div class="product-left"> 7808 <div class="wishlist-image"></div> 7809 </div> 7810 <div class="product-right"> 7811 <div class="wishlist-name"></div> 7812 <div class="wishlist-price"></div> 7813 </div> 7814 </div> 7815 </div> 7816 <div class="wishlist-right"> 7817 <div class="wishlist-cart"> 7818 <form action="/cart/add" method="post" class="variants-form variants" id="AddToCartForm" enctype="multipart/form-data"> 7819 <div class="others-bottom"> 7820 <a class="btn btn-quick-shop" href="/pages/wish-list">View Wishlist</a> 7821 <button type="submit" name="add" id="AddToCart" class="btn btn-cta"> 7822 <span id="AddToCartText" class="">Beli Sekarang</span> 7823 </button> 7824 </div> 7825 <div id="wishlist-variants-container" class="variants-wrapper"></div> 7826 <div class="quantity-content"> 7827 <label>QTY</label> 7828 <input type="number" size="5" class="" name="quantity" value="1" /> 7829 </div> 7830 </form> 7831 </div> 7832 </div> 7833 </div> 7834 </div> 7835 </div> 7836 </div> 7837 </div> 7838 7839 7840 <style> 7841 .stamped-badge[data-rating="0.0"]{display: none !Important;} 7842 7843 div[data-load-type="continue"] ul.stamped-pagination li.next a, div[data-widget-load-type="continue"] ul.stamped-pagination li.next a { 7844 border-radius: 0px; 7845 } 7846 .stamped-review-body { 7847 padding-left: 0px !important; 7848 } 7849 #product-reviews .stamped-header:after { 7850 display:none !Important; 7851 } 7852 #stamped-main-widget .stamped-container, .stamped-badge-caption,#stamped-reviews-widget { 7853 font-family:inherit !important; 7854 } 7855 </style> 7856 7857 7858 7859 <div id='stamped-rewards-init' class='stamped-rewards-init' 7860 data-key-public='' 7861 7862 ></div> 7863 7864
7864<script src="//outerbloom.com/cdn/shop/t/138/assets/variant-sku-handler.js?v=91239063692820757781752652418" defer></script>
7864 7865 <!-- Remove duplicate jQuery reference and load wishlist script properly --> 7866
7866<script src="//outerbloom.com/cdn/shop/t/138/assets/wishlist-fixed.js?v=35991423018869066281754360012" defer></script>
7866 7867 7868
7868<script> 7869 function myInit(){ StampedFn.init({ apiKey: 'pubkey-hCS8DHE9QbBHhHN89WXFkuJ0Y3422D', sId: '23462' }); } 7870 </script>
7870 7871
7871<script async onload="myInit()" type="text/javascript" src="https://cdn1.stamped.io/files/widget.min.js"></script>
7871<style> 7872 .jss59 { 7873 background-color: rgba(0, 0, 0, 0.6); 7874 } 7875 .MuiBackdrop-root { 7876 top: 0; 7877 left: 0; 7878 right: 0; 7879 bottom: 0; 7880 display: flex; 7881 z-index: -1; 7882 position: fixed; 7883 align-items: center; 7884 justify-content: center; 7885 background-color: rgba(0, 0, 0, 0.5); 7886 -webkit-tap-highlight-color: transparent; 7887 } 7888 .MuiDialog-scrollPaper { 7889 display: flex; 7890 align-items: center; 7891 justify-content: center; 7892 } 7893 .MuiDialog-container { 7894 height: 100%; 7895 outline: 0; 7896 } 7897 .MuiPaper-elevation24 { 7898 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); 7899 } 7900 .MuiDialog-paper { 7901 margin: 32px; 7902 position: relative; 7903 overflow-y: auto; 7904 } 7905 .MuiDialog-paperScrollPaper { 7906 display: flex; 7907 max-height: calc(100% - 64px); 7908 flex-direction: column; 7909 } 7910 .MuiDialog-paperWidthSm { 7911 max-width: 600px; 7912 } 7913 #location-lock-dialog { 7914 top: 20%; 7915 left: 0; 7916 right: 0; 7917 width: 30%; 7918 margin: 0px auto; 7919 display: block; 7920 padding: 30px; 7921 z-index: 99999; 7922 position: fixed; 7923 font-size: 14px; 7924 background: rgb(0, 0, 0); 7925 box-shadow: rgba(11, 11, 12, 0.2) 2px 4px 5px 0px; 7926 text-align: center; 7927 font-family: Roboto, Arial, sans-serif; 7928 line-height: 1; 7929 border-radius: 8px; 7930 -webkit-font-smoothing: subpixel-antialiased; 7931 } 7932 .MuiButtonBase-root { 7933 color: inherit; 7934 border: 0; 7935 cursor: pointer; 7936 margin: 0; 7937 display: inline-flex; 7938 outline: 0; 7939 padding: 0; 7940 position: relative; 7941 align-items: center; 7942 user-select: none; 7943 border-radius: 0; 7944 vertical-align: middle; 7945 -moz-appearance: none; 7946 justify-content: center; 7947 text-decoration: none; 7948 background-color: transparent; 7949 -webkit-appearance: none; 7950 -webkit-tap-highlight-color: transparent; 7951 } 7952 .MuiIconButton-root { 7953 flex: 0 0 auto; 7954 color: rgba(0, 0, 0, 0.54); 7955 padding: 12px; 7956 overflow: visible; 7957 font-size: 1.5rem; 7958 text-align: center; 7959 transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 7960 border-radius: 50%; 7961 } 7962 .MuiIconButton-label { 7963 width: 100%; 7964 display: flex; 7965 align-items: inherit; 7966 justify-content: inherit; 7967 } 7968 .MuiSvgIcon-root { 7969 fill: currentColor; 7970 width: 1em; 7971 height: 1em; 7972 display: inline-block; 7973 font-size: 1.5rem; 7974 transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 7975 flex-shrink: 0; 7976 user-select: none; 7977 } 7978 .MuiTouchRipple-root { 7979 top: 0; 7980 left: 0; 7981 right: 0; 7982 bottom: 0; 7983 z-index: 0; 7984 overflow: hidden; 7985 position: absolute; 7986 border-radius: inherit; 7987 pointer-events: none; 7988 } 7989 .jss36 { 7990 color: #222222; 7991 font-size: 24px; 7992 font-family: Roboto, Arial, sans-serif; 7993 font-weight: 500; 7994 } 7995 .jss37 { 7996 color: #555555; 7997 padding: 10px 0px 0px; 7998 font-size: 14px; 7999 } 8000 .MuiFormGroup-root { 8001 display: flex; 8002 flex-wrap: wrap; 8003 flex-direction: column; 8004 } 8005 .MuiFormGroup-row { 8006 flex-direction: row; 8007 } 8008 .jss63 { 8009 width: 85%; 8010 margin: 15px auto; 8011 display: flex; 8012 padding: 11px 0px 0px; 8013 justify-content: space-evenly; 8014 } 8015 .MuiFormControlLabel-root { 8016 cursor: pointer; 8017 display: inline-flex; 8018 align-items: center; 8019 margin-left: -11px; 8020 margin-right: 16px; 8021 vertical-align: middle; 8022 -webkit-tap-highlight-color: transparent; 8023 } 8024 .jss70 { 8025 margin: 0; 8026 } 8027 .MuiButtonBase-root { 8028 color: inherit; 8029 border: 0; 8030 cursor: pointer; 8031 margin: 0; 8032 display: inline-flex; 8033 outline: 0; 8034 padding: 0; 8035 position: relative; 8036 align-items: center; 8037 user-select: none; 8038 border-radius: 0; 8039 vertical-align: middle; 8040 -moz-appearance: none; 8041 justify-content: center; 8042 text-decoration: none; 8043 background-color: transparent; 8044 -webkit-appearance: none; 8045 -webkit-tap-highlight-color: transparent; 8046 } 8047 .MuiIconButton-root { 8048 flex: 0 0 auto; 8049 color: rgba(0, 0, 0, 0.54); 8050 padding: 12px; 8051 overflow: visible; 8052 font-size: 1.5rem; 8053 text-align: center; 8054 transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 8055 border-radius: 50%; 8056 } 8057 .MuiIconButton-colorSecondary { 8058 color: #f50057; 8059 } 8060 .jss71 { 8061 padding: 9px; 8062 } 8063 .MuiRadio-root { 8064 color: rgba(0, 0, 0, 0.54); 8065 } 8066 .jss64 { 8067 padding: 2px; 8068 } 8069 .MuiRadio-colorSecondary.Mui-checked { 8070 color: #f50057; 8071 } 8072 .MuiIconButton-label { 8073 width: 100%; 8074 display: flex; 8075 align-items: inherit; 8076 justify-content: inherit; 8077 } 8078 .MuiTypography-root { 8079 margin: 0; 8080 } 8081 .MuiTypography-body1 { 8082 font-size: 18px; 8083 font-family: Roboto,sans-serif; 8084 font-weight: 400; 8085 line-height: 1.5; 8086 } 8087 .location-popup_area-block__sp9Ws { 8088 display: -moz-box; 8089 display: flex; 8090 -moz-box-orient: vertical; 8091 -moz-box-direction: normal; 8092 flex-direction: column; 8093 -moz-box-pack: center; 8094 justify-content: center; 8095 position: relative; 8096 margin: 10px 10% 0;
8097 } 8098 .location-popup_pin-search-box__3l5mJ { 8099 width: 100%; 8100 display: -moz-box; 8101 display: flex; 8102 -moz-box-align: center; 8103 align-items: center; 8104 } 8105 .location-popup_place-icon-city__1XAX5, .location-popup_place-icon__jSG0Q { 8106 position: absolute; 8107 z-index: 999; 8108 } 8109 .location-popup_place-icon__jSG0Q { 8110 color: #ffffff; 8111 padding-left: 8px; 8112 } 8113 .location-popup_place-icon__jSG0Q svg { 8114 width: 18px; 8115 height: 18px; 8116 } 8117 .location-popup_cancel-icon__FHujU { 8118 color: #fff; 8119 right: 10px; 8120 width: 16px; 8121 cursor: pointer; 8122 height: 16px; 8123 display: none; 8124 padding: 5px; 8125 position: absolute; 8126 background: #999; 8127 text-align: center; 8128 border-radius: 50%; 8129 } 8130 .location-popup_pin-search-box__3l5mJ>div>select { 8131 /* -webkit-box-shadow: 0 0 10px #ffffff; 8132 box-shadow: 0 0 10px #ffffff; */ 8133 text-transform: capitalize; 8134 border: 1px solid #ffffff; 8135 color: #ffffff; 8136 width: 100%; 8137 margin: 0; 8138 display: -moz-box; 8139 display: flex; 8140 padding: 0 30px; 8141 -webkit-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8142 -moz-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8143 animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8144 font-size: 16px; 8145 border-radius: 4px; 8146 height: 44px; 8147 moz-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite; 8148 webkit-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite; 8149 } 8150 .MuiButtonBase-root { 8151 color: inherit; 8152 border: 0; 8153 cursor: pointer; 8154 margin: 0; 8155 display: inline-flex; 8156 outline: 0; 8157 padding: 0; 8158 position: relative; 8159 align-items: center; 8160 user-select: none; 8161 border-radius: 0; 8162 vertical-align: middle; 8163 -moz-appearance: none; 8164 justify-content: center; 8165 text-decoration: none; 8166 background-color: transparent; 8167 -webkit-appearance: none; 8168 -webkit-tap-highlight-color: transparent; 8169 } 8170 .MuiButton-root { 8171 color: rgba(0, 0, 0, 0.87); 8172 padding: 6px 16px; 8173 font-size: 0.875rem; 8174 min-width: 64px; 8175 box-sizing: border-box; 8176 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; 8177 font-family: Roboto,sans-serif; 8178 font-weight: 500; 8179 line-height: 1.75; 8180 border-radius: 4px; 8181 text-transform: uppercase; 8182 } 8183 .MuiButton-contained { 8184 color: rgba(0, 0, 0, 0.87); 8185 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); 8186 background-color: #e0e0e0; 8187 } 8188 .MuiButtonBase-root.Mui-disabled { 8189 cursor: default; 8190 pointer-events: none; 8191 } 8192 .MuiButton-label { 8193 width: 100%; 8194 display: inherit; 8195 align-items: inherit; 8196 justify-content: inherit; 8197 } 8198 .cartButton_login_content__2j1f7 { 8199 display: -moz-box; 8200 display: flex; 8201 text-align: center; 8202 z-index: 9; 8203 font-size: 18px; 8204 font-weight: 500; 8205 color: #fff; 8206 } 8207 8208 .jss35 { 8209 top: 5px; 8210 right: 5px; 8211 padding: 4px; 8212 position: absolute; 8213 border-radius: 50%; 8214 } 8215 .jss67 { 8216 cursor: pointer; 8217 font-size: 15px; 8218 line-height: 1.3; 8219 padding-left: 5px; 8220 } 8221 .jss69 { 8222 color: #222222; 8223 } 8224 .jss80 { 8225 color: #fff; 8226 width: 100%; 8227 height: 52px; 8228 padding: 11px 16px; 8229 font-size: 18px; 8230 min-width: 88px; 8231 min-height: 36px; 8232 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; 8233 font-weight: 500; 8234 line-weight: 1em; 8235 border-radius: 4px; 8236 text-transform: uppercase; 8237 background-color: #E87325; 8238 } 8239 @media (min-width: 991px){ 8240 .cartButton_login_content__2j1f7 { 8241 font-weight: 500; 8242 } 8243 } 8244 8245 @media (max-width: 992px) { 8246 #location-lock-dialog { 8247 width: 100%; 8248 top: auto; 8249 bottom: 0; 8250 padding-left: 0; 8251 padding-right: 0; 8252 } 8253 .MuiFormGroup-row { 8254 display: block 8255 } 8256 .MuiIconButton-label input { 8257 margin: 0; 8258 } 8259 } 8260 </style> 8261 <div role="presentation" class="MuiDialog-root jss34" style="display: none;position: fixed; z-index: 9999; inset: 0px;"> 8262 <div class="MuiBackdrop-root" aria-hidden="true" style="opacity: 1; transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"></div> 8263 <div tabindex="0" data-test="sentinelStart"></div> 8264 <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;"> 8265 <div class="MuiPaper-root MuiDialog-paper MuiDialog-paperScrollPaper MuiDialog-paperWidthSm MuiPaper-elevation24 MuiPaper-rounded" role="dialog"> 8266 <div class="jss31 undefined" id="location-lock-dialog"> 8267 <button id="close-popup-delivery" class="MuiButtonBase-root MuiIconButton-root jss35" tabindex="0" type="button" aria-label="close">
8268 <span class="MuiIconButton-label"> 8269 <svg class="MuiSvgIcon-root" focusable="false" viewBox="0 0 24 24" aria-hidden="true"> 8270 <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> 8271 </svg> 8272 </span> 8273 <span class="MuiTouchRipple-root"></span> 8274 </button> 8275 <div> 8276 <div class="jss36">Select Delivery Location</div> 8277 <div class="jss37">Select a delivery location to see product availability</div> 8278 </div> 8279 <div class="MuiFormGroup-root jss63 MuiFormGroup-row" role="radiogroup"> 8280 <label for="jabodetabek" class="MuiFormControlLabel-root jss45"> 8281 <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 jss47 Mui-checked MuiIconButton-colorSecondary" aria-disabled="false"> 8282 <span class="MuiIconButton-label"> 8283 <input id="jabodetabek" class="jss49" type="radio" value="Jabodetabek" checked="" name="location"> 8284 <span class="jss41"></span> 8285 </span> 8286 <span class="MuiTouchRipple-root"></span> 8287 </span> 8288 <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1"> 8289 <span class="jss67 jss69">Jabodetabek</span> 8290 </span> 8291 </label> 8292 <label for="non-jabodetabek" class="MuiFormControlLabel-root jss45"> 8293 <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 MuiIconButton-colorSecondary" aria-disabled="false"> 8294 <span class="MuiIconButton-label"> 8295 <input id="non-jabodetabek" class="jss49" type="radio" value="Outside Jabodetabek" name="location"> 8296 <span class="jss40"></span> 8297 </span> 8298 <span class="MuiTouchRipple-root"></span> 8299 </span> 8300 <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1"> 8301 <span class="jss67 jss68">Outside Jabodetabek</span> 8302 </span> 8303 </label> 8304 </div> 8305 <div> 8306 <div class="MuiGrid-root location-popup_area-block__sp9Ws"> 8307 <div class="MuiGrid-root location-popup_pin-search-box__3l5mJ false"> 8308 <div class="MuiGrid-root location-popup_place-icon__jSG0Q"> 8309 <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> 8310 </div> 8311 <div class="MuiGrid-root location-popup_cancel-icon__FHujU false"> 8312 <i class="material-icons location-popup_clear-pin__s1dRc">close</i> 8313 </div> 8314 <div style="width: 100%;"> 8315 <select id="choose-location" class="form-control"> 8316 <option value="">Choose Location</option> 8317 <option value="jakarta">Jakarta</option> 8318 <option value="bogor">Bogor</option> 8319 <option value="depok">Depok</option> 8320 <option value="tangerang">Tangerang</option> 8321 <option value="bekasi">Bekasi</option> 8322 </select> 8323 </div> 8324 </div> 8325 </div> 8326 </div> 8327 <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=""> 8328 <span class="MuiButton-label">
8329 <span class=""></span> 8330 <span id="location-lock-continue-btn" class="cartButton_login_content__2j1f7" style="font-weight: 500;" data-content="">Continue Shopping</span> 8331 </span> 8332 </button> 8333 </div> 8334 </div> 8335 </div> 8336 <div tabindex="0" data-test="sentinelEnd"></div> 8337 </div> 8338 8339
8339<script> 8340 const jabodetabek = [ 8341 { 8342 "code": "jakarta", 8343 "city": "jakarta", 8344 "zip": [] 8345 }, 8346 { 8347 "code": "bogor", 8348 "city": "bogor", 8349 "zip": [] 8350 }, 8351 { 8352 "code": "depok", 8353 "city": "depok", 8354 "zip": [] 8355 }, 8356 { 8357 "code": "tangerang", 8358 "city": "tangerang", 8359 "zip": [] 8360 }, 8361 { 8362 "code": "bekasi", 8363 "city": "bekasi", 8364 "zip": [] 8365 } 8366 ] 8367 let cityNonJabodetabek = [ 8368 8369 8370 8371 8372 8373 8374 8375 8376 8377 8378 8379 8380 8381 8382 8383 8384 8385 8386 8387 8388 8389 8390 8391 8392 8393 8394 8395 8396 8397 8398 8399 8400 8401 8402 8403 8404 8405 8406 8407 8408 8409 8410 8411 8412 8413 8414 8415 8416 8417 8418 8419 8420 8421 8422 8423 8424 8425 8426 8427 8428 8429 8430 8431 8432 8433 8434 8435 8436 8437 8438 8439 8440 8441 8442 8443 8444 8445 8446 8447 8448 8449 8450 8451 8452 8453 8454 8455 8456 8457 8458 8459 8460 8461 8462 8463 8464 8465 8466 8467 8468 8469 8470 8471 8472 8473 8474 8475 8476 8477 8478 8479 8480 8481 8482 8483 8484 8485 8486 8487 8488 8489 8490 8491 8492 8493 8494 8495 8496 8497 8498 8499 8500 8501 8502 8503 8504 8505 8506 8507 8508 8509 8510 8511 8512 8513 8514 8515 8516 8517 8518 8519 8520 8521 8522 8523 8524 8525 8526 8527 8528 8529 8530 8531 8532 8533 8534 8535 8536 8537 8538 8539 8540 8541 8542 8543 8544 8545 8546 8547 8548 8549 8550 8551 8552 8553 8554 8555 8556 8557 8558 8559 8560 8561 8562 8563 8564 8565 8566 8567 8568 8569 8570 8571 8572 8573 8574 8575 8576 8577 8578 8579 8580 8581 8582 8583 8584 8585 8586 8587 8588 8589 8590 8591 8592 8593 8594 8595 8596 8597 8598 8599 8600 8601 8602 8603 8604 8605 8606 8607 8608 8609 8610 8611 8612 8613 8614 8615 8616 8617 8618 8619 8620 8621 8622 8623 8624 8625 8626 8627 8628 8629 8630 8631 8632 8633 8634 8635 8636 8637 8638 8639 8640 8641 8642 8643 8644 8645 8646 8647 8648 8649 8650 8651 8652 8653 8654 8655 8656 8657 8658 8659 8660 8661 8662 8663 8664 8665 8666 8667 8668 8669 8670 8671 8672 8673 8674 8675 8676 8677 8678 8679 8680 8681 8682 8683 8684 8685 8686 8687 8688 8689 8690 8691 8692 8693 8694 8695 8696 8697 8698 8699 8700 8701 8702 8703 8704 8705 8706 8707 8708 8709 8710 8711 8712 8713 8714 8715 8716 8717 8718 8719 8720 8721 8722 8723 8724 8725 8726 8727 8728 8729 8730 8731 8732 8733 8734 8735 8736 8737 8738 8739 8740 8741 8742 8743 8744 8745 8746 8747 8748 8749 8750 8751 8752 8753 8754 8755 8756 8757 8758 8759 8760 8761 8762 8763 8764 8765 8766 8767 8768 8769 8770 8771 8772 8773 8774 8775 8776 8777 8778 8779 8780 8781 8782 8783 8784 8785 8786 8787 8788 8789 8790 8791 8792 8793 8794 8795 8796 8797 8798 8799 8800 8801 8802 8803 8804 8805 8806 8807 8808 8809 8810 8811 8812 8813 8814 8815 8816 8817 8818 8819 8820 8821 8822 8823 8824 8825 8826 8827 8828 8829 8830 8831 8832 8833 8834 8835 8836 8837 8838 8839 8840 8841 8842 8843 8844 8845 8846 8847 8848 8849 8850 8851 8852 8853 8854 8855 8856 8857 8858 8859 8860 8861 8862 8863 8864 8865 8866 8867 8868 8869 8870 8871 8872 8873 8874 8875 8876 8877 8878 8879 8880 8881 8882 8883 8884 8885 8886 8887 8888 8889 8890 8891 8892 8893 8894 8895 8896 8897 8898 8899 8900 8901 8902 8903 8904 8905 8906 8907 8908 8909 8910 8911 8912 8913 8914 8915 8916 8917 8918 8919 8920 8921 8922 8923 8924 8925 8926 8927 8928 8929 8930 8931 8932 8933 8934 8935 8936 8937 8938 8939 8940 8941 8942 8943 8944 8945 8946 8947 8948 8949 8950 8951 8952 8953 8954 8955 8956 8957 8958 8959 8960 8961 8962 8963 8964 8965 8966 8967 8968 8969 8970 8971 8972 8973 8974 8975 8976 8977 8978 8979 8980 8981 8982 8983 8984 8985 8986 8987 8988 8989 8990 8991 8992 8993 8994 8995 8996 8997 8998 8999 9000 9001 9002 9003 9004 9005 9006 9007 9008 9009 9010 9011 9012 9013 9014 9015 9016 9017 9018 9019 9020 9021 9022 9023 9024 9025 9026 9027 9028 9029 9030 9031 9032 9033 9034 9035 9036 9037 9038 9039 9040 9041 9042 9043 9044 9045 9046 9047 9048 9049 9050 9051 9052 9053 9054 9055 9056 9057 9058 9059 9060 9061 9062 9063 9064 9065 9066 9067 9068 9069 9070 9071 9072 9073 9074 9075 9076 9077 9078 9079 9080 9081 9082 9083 9084 9085 9086 9087 9088 9089 9090 9091 9092 9093 9094 9095 9096 9097 9098 9099 9100 9101 9102 9103 9104 9105 9106 9107 9108 9109 9110 9111 9112 9113 9114 9115 9116 9117 9118 9119 9120 9121 9122 9123 9124 9125 9126 9127 9128 9129 9130 9131 9132 9133 9134 9135 9136 9137 9138 9139 9140 9141 9142 9143 9144 9145 9146 9147 9148 9149 9150 9151 9152 9153 9154 9155 9156 9157 9158 9159 9160 9161 9162 9163 9164 9165 9166 9167 9168 9169 9170 9171 9172 9173 9174 9175 9176 9177 9178 9179 9180 9181 9182 9183 9184 9185 9186 9187 9188 9189 9190 9191 9192 9193 9194 9195 9196 9197 9198 9199 9200 9201 9202 9203 9204 9205 9206 9207 9208 9209 9210 9211 9212 9213 9214 9215 9216 9217 9218 9219 9220 9221 9222 9223 9224 9225 9226 9227 9228 9229 9230 9231 9232 9233 9234 9235 9236 9237 9238 9239 9240 9241 9242 9243 9244 9245 9246 9247 9248 9249 9250 9251 9252 9253 9254 9255 9256 9257 9258 9259 9260 9261 9262 9263 9264 9265 9266 9267 9268 9269 9270 9271 9272 9273 9274 9275 9276 9277 9278 9279 9280 9281 9282 9283 9284 9285 9286 9287 9288 9289 9290 9291 9292 9293 9294 9295 9296 9297 9298 9299 9300 9301 9302 9303 9304 9305 9306 9307 9308 9309 9310 9311 9312 9313 9314 9315 9316 9317 9318 9319 9320 9321 9322 9323 9324 9325 9326 9327 9328 9329 9330 9331 9332 9333 9334 9335 9336 9337 9338 9339 9340 9341 9342 9343 9344 9345 9346 9347 9348 9349 9350 9351 9352 9353 9354 9355 9356 9357 9358 9359 9360 9361 9362 9363 9364 9365 9366 9367 9368 9369 9370 9371 9372 9373 9374 9375 9376 9377 9378 9379 9380 9381 9382 9383 9384 9385 9386 9387 9388 9389 9390 9391 9392 9393 9394 9395 9396 9397 9398 9399 9400 9401 9402 9403 9404 9405 9406 9407 9408 9409 9410 9411 9412 9413 9414 9415 9416 9417 9418 9419 9420 9421 9422 9423 9424 9425 9426 9427 9428 9429 9430 9431 9432 9433 9434 9435 9436 9437 9438 9439 9440 9441 9442 9443 9444 9445 9446 9447 9448 9449 9450 9451 9452 9453 9454 9455 9456 9457 9458 9459 9460 9461 9462 9463 9464 9465 9466 9467 9468 9469 9470 9471 9472 9473 9474 9475 9476 9477 9478 9479 9480 9481 9482 9483 9484 9485 9486 9487 9488 9489 9490 9491 9492 9493 9494 9495 9496 9497 9498 9499 9500 9501 9502 9503 9504 9505 9506 9507 9508 9509 9510 9511 9512 9513 9514 9515 9516 9517 9518 9519 9520 9521 9522 9523 9524 9525 9526 9527 9528 9529 9530 9531 9532 9533 9534 9535 9536 9537 9538 9539 9540 9541 "pengiriman_aceh", 9542 9543 9544 9545 9546 9547 "pengiriman_ambon", 9548 9549 9550 9551 9552 9553 "pengiriman_atambua", 9554 9555 9556 9557 9558 9559 "pengiriman_badung", 9560 9561 9562 9563 9564 9565 "pengiriman_bali", 9566 9567 9568 9569 9570 9571 "pengiriman_balikpapan", 9572 9573 9574 9575 9576 9577 "pengiriman_bandar lampung", 9578 9579 9580 9581 9582 9583 "pengiriman_bandung", 9584 9585 9586 9587 9588 9589 "pengiriman_bandung barat", 9590 9591 9592 9593 9594 9595 "pengiriman_banjarmasin", 9596 9597 9598 9599 9600 9601 "pengiriman_banyumas", 9602 9603 9604 9605 9606 9607 "pengiriman_banyuwangi", 9608 9609 9610 9611 9612 9613 "pengiriman_batam", 9614 9615 9616 9617 9618 9619 9620 9621 9622 9623 "pengiriman_biak", 9624 9625 9626 9627 9628 9629 "pengiriman_binjai", 9630 9631 9632 9633 9634 9635 "pengiriman_blitar",
9636 9637 9638 9639 9640 9641 "pengiriman_blora", 9642 9643 9644 9645 9646 9647 9648 9649 9650 9651 "pengiriman_bojonegoro", 9652 9653 9654 9655 9656 9657 "pengiriman_boyolali", 9658 9659 9660 9661 9662 9663 "pengiriman_bukittinggi", 9664 9665 9666 9667 9668 9669 "pengiriman_buleleng", 9670 9671 9672 9673 9674 9675 "pengiriman_ciamis", 9676 9677 9678 9679 9680 9681 "pengiriman_cianjur", 9682 9683 9684 9685 9686 9687 "pengiriman_cibinong", 9688 9689 9690 9691 9692 9693 "pengiriman_cikarang", 9694 9695 9696 9697 9698 9699 "pengiriman_cikupa", 9700 9701 9702 9703 9704 9705 "pengiriman_cilacap", 9706 9707 9708 9709 9710 9711 "pengiriman_cileunyi", 9712 9713 9714 9715 9716 9717 "pengiriman_cimahi", 9718 9719 9720 9721 9722 9723 "pengiriman_cirebon", 9724 9725 9726 9727 9728 9729 "pengiriman_ciwidey", 9730 9731 9732 9733 9734 9735 "pengiriman_deli serdang", 9736 9737 9738 9739 9740 9741 "pengiriman_demak", 9742 9743 9744 9745 9746 9747 "pengiriman_denpasar", 9748 9749 9750 9751 9752 9753 9754 9755 9756 9757 "pengiriman_garut", 9758 9759 9760 9761 9762 9763 "pengiriman_gianyar", 9764 9765 9766 9767 9768 9769 "pengiriman_gresik", 9770 9771 9772 9773 9774 9775 "pengiriman_gunung kidul", 9776 9777 9778 9779 9780 9781 9782 9783 9784 9785 "pengiriman_jambi", 9786 9787 9788 9789 9790 9791 "pengiriman_jayapura", 9792 9793 9794 9795 9796 9797 "pengiriman_jember", 9798 9799 9800 9801 9802 9803 "pengiriman_jepara", 9804 9805 9806 9807 9808 9809 "pengiriman_jombang", 9810 9811 9812 9813 9814 9815 "pengiriman_karanganyar", 9816 9817 9818 9819 9820 9821 "pengiriman_karawang", 9822 9823 9824 9825 9826 9827 "pengiriman_karo", 9828 9829 9830 9831 9832 9833 "pengiriman_kebumen", 9834 9835 9836 9837 9838 9839 "pengiriman_kediri", 9840 9841 9842 9843 9844 9845 "pengiriman_keerom", 9846 9847 9848 9849 9850 9851 "pengiriman_kendal", 9852 9853 9854 9855 9856 9857 "pengiriman_klaten", 9858 9859 9860 9861 9862 9863 9864 9865 9866 9867 "pengiriman_kudus", 9868 9869 9870 9871 9872 9873 "pengiriman_kupang", 9874 9875 9876 9877 9878 9879 "pengiriman_lainnya", 9880 9881 9882 9883 9884 9885 "pengiriman_lamongan", 9886 9887 9888 9889 9890 9891 "pengiriman_lampung", 9892 9893 9894 9895 9896 9897 "pengiriman_lampung barat", 9898 9899 9900 9901 9902 9903 "pengiriman_lembang", 9904 9905 9906 9907 9908 9909 "pengiriman_lombok", 9910 9911 9912 9913 9914 9915 "pengiriman_lumajang", 9916 9917 9918 9919 9920 9921 "pengiriman_madiun", 9922 9923 9924 9925 9926 9927 "pengiriman_magelang", 9928 9929 9930 9931 9932 9933 "pengiriman_majalengka", 9934 9935 9936 9937 9938 9939 "pengiriman_makassar", 9940 9941 9942 9943 9944 9945 "pengiriman_malang", 9946 9947 9948 9949 9950 9951 "pengiriman_manado", 9952 9953 9954 9955 9956 9957 "pengiriman_medan", 9958 9959 9960 9961 9962 9963 "pengiriman_mengwi", 9964 9965 9966 9967 9968 9969 "pengiriman_mojokerto", 9970 9971 9972 9973 9974 9975 "pengiriman_nganjuk", 9976 9977 9978 9979 9980 9981 "pengiriman_ngawi", 9982 9983 9984 9985 9986 9987 "pengiriman_padang", 9988 9989 9990 9991 9992 9993 "pengiriman_palembang", 9994 9995 9996 9997 9998 9999 "pengiriman_pasuruan", 10000 10001 10002 10003 10004 10005 "pengiriman_pati", 10006 10007 10008 10009 10010 10011 "pengiriman_pekalongan", 10012 10013 10014 10015 10016 10017 "pengiriman_pekanbaru", 10018 10019 10020 10021 10022 10023 "pengiriman_pemalang", 10024 10025 10026 10027 10028 10029 "pengiriman_ponorogo", 10030 10031 10032 10033 10034 10035 "pengiriman_pontianak", 10036 10037 10038 10039 10040 10041 "pengiriman_probolinggo", 10042 10043 10044 10045 10046 10047 "pengiriman_purbalingga", 10048 10049 10050 10051 10052 10053 "pengiriman_purwakarta", 10054 10055 10056 10057 10058 10059 "pengiriman_purwokerto", 10060 10061 10062 10063 10064 10065 "pengiriman_rembang", 10066 10067 10068 10069 10070 10071 "pengiriman_riau", 10072 10073 10074 10075 10076 10077 "pengiriman_salatiga", 10078 10079 10080 10081 10082 10083 "pengiriman_samarinda", 10084 10085 10086 10087 10088 10089 "pengiriman_semarang", 10090 10091 10092 10093 10094 10095 "pengiriman_sentani", 10096 10097 10098 10099 10100 10101 "pengiriman_serang", 10102 10103 10104 10105 10106 10107 "pengiriman_sidoarjo", 10108 10109 10110 10111 10112 10113 "pengiriman_singkawang", 10114 10115 10116 10117 10118 10119 "pengiriman_sragen", 10120 10121 10122 10123 10124 10125 "pengiriman_subang", 10126 10127 10128 10129 10130 10131 "pengiriman_sukabumi", 10132 10133 10134 10135 10136 10137 "pengiriman_sumbawa", 10138 10139 10140 10141 10142 10143 "pengiriman_surabaya", 10144 10145 10146 10147 10148 10149 "pengiriman_surakarta solo", 10150 10151 10152 10153 10154 10155 10156 10157 10158 10159 "pengiriman_tasikmalaya", 10160 10161 10162 10163 10164 10165 "pengiriman_tegal", 10166 10167 10168 10169 10170 10171 "pengiriman_timika", 10172 10173 10174 10175 10176 10177 "pengiriman_wamena", 10178 10179 10180 10181 10182 10183 "pengiriman_wiyung", 10184 10185 10186 10187 10188 10189 "pengiriman_wonokromo", 10190 10191 10192 10193 10194 10195 "pengiriman_yogyakarta", 10196 10197 10198 10199 10200 10201 10202 10203 10204 10205 10206 10207 10208 10209 10210 10211 10212 10213 10214 10215 10216 10217 10218 10219 10220 10221 10222 10223 10224 10225 10226 10227 10228 10229 10230 10231 10232 10233 10234 10235 10236 10237 10238 10239 10240 10241 10242 10243 10244 10245 10246 10247 10248 10249 10250 10251 10252 10253 10254 10255 10256 10257 10258 10259 10260 10261 10262 10263 10264 10265 10266 10267 10268 10269 10270 10271 10272 10273 10274 10275 10276 10277 10278 10279 10280 10281 10282 10283 10284 10285 10286 10287 10288 10289 10290 10291 10292 10293 10294 10295 10296 10297 10298 10299 10300 10301 10302 10303 10304 10305 10306 10307 10308 10309 10310 10311 10312 10313 10314 10315 10316 10317 10318 10319 10320 10321 10322 10323 10324 10325 10326 10327 10328 10329 10330 10331 10332 10333 10334 10335 10336 10337 10338 10339 10340 10341 10342 10343 10344 10345 10346 10347 10348 10349 10350 10351 10352 10353 10354 10355 10356 10357 10358 10359 10360 10361 10362 10363 10364 10365 10366 10367 10368 10369 10370 10371 10372 10373 10374 10375 10376 10377 10378 10379 10380 10381 10382 10383 10384 10385 10386 10387 10388 10389 10390 10391 10392 10393 10394 10395 10396 10397 10398 10399 10400 10401 10402 10403 10404 10405 10406 10407 10408 10409 10410 10411 10412 10413 10414 10415 10416 10417 10418 10419 10420 10421 10422 10423 10424 10425 10426 10427 10428 10429 10430 10431 10432 10433 10434 10435 10436 10437 10438 10439 10440 10441 10442 10443 10444 10445 10446 10447 10448 10449 10450 10451 10452 10453 10454 10455 10456 10457 10458 10459 10460 10461 10462 10463 10464 10465 10466 10467 10468 10469 10470 10471 10472 10473 10474 10475 10476 10477 10478 10479 10480 10481 10482 10483 10484 10485 10486 10487 10488 10489 10490 10491 10492 10493 10494 10495 10496 10497 10498 10499 10500 10501 10502 10503 10504 10505 10506 10507 10508 10509 10510 10511 10512 10513 10514 10515 10516 10517 10518 10519 10520 10521 10522 10523 10524 10525 10526 10527 10528 10529 10530 10531 10532 10533 10534 10535 10536 10537 10538 10539 10540 10541 10542 10543 10544 10545 10546 10547 10548 10549 10550 10551 10552 10553 10554 10555 10556 10557 10558 10559 10560 10561 10562 10563 10564 10565 10566 10567 10568 10569 10570 10571 10572 10573 10574 10575 10576 10577 10578 10579 10580 10581 10582 10583 10584 10585 10586 10587 10588 10589 10590 10591 10592 10593 10594 10595 10596 10597 10598 10599 10600 10601 10602 10603 10604 10605 10606 10607 10608 10609 10610 10611 10612 10613 10614 10615 10616 10617 10618 10619 10620 10621 10622 10623 10624 10625 10626 10627 10628 10629 10630 10631 10632 10633 10634 10635 10636 10637 10638 10639 10640 10641 10642 10643 10644 10645 10646 10647 10648 10649 10650 10651 10652 10653 10654 10655 10656 10657 10658 10659 10660 10661 10662 10663 10664 10665 10666 10667 10668 10669 10670 10671 10672 10673 10674 10675 10676 10677 10678 10679 10680 10681 10682 10683 10684 10685 10686 10687 10688 10689 10690 10691 10692 10693 10694 10695 10696 10697 10698 10699 10700 10701 10702 10703 10704 10705 10706 10707 10708 10709 10710 10711 10712 10713 10714 10715 10716 10717 10718 10719 10720 10721 10722 10723 10724 10725 10726 10727 10728 10729 10730 10731 10732 10733 10734 10735 10736 10737 10738 10739 10740 10741 10742 10743 10744 10745 10746 10747 10748 10749 10750 10751 10752 10753 10754 10755 10756 10757 10758 10759 10760 10761 10762 10763 10764 10765 10766 10767 10768 10769 10770 10771 10772 10773 10774 10775 10776 10777 10778 10779 10780 10781 10782 10783 10784 10785 10786 10787 10788 10789 10790 10791 10792 10793 10794 10795 10796 10797 10798 10799 10800 10801 10802 10803 10804 10805 ] 10806 console.log(cityNonJabodetabek) 10807 let non_jabodetabek = [] 10808 for(var i=0;i<cityNonJabodetabek.length;i++) { 10809 const obj = { 10810 "code": cityNonJabodetabek[i].toLowerCase().replace('pengiriman_', '').replace(' ','-'), 10811 "city": cityNonJabodetabek[i].replace('pengiriman_', '').replace(' ','-'), 10812 "zip": [] 10813 } 10814 non_jabodetabek.push(obj) 10815 } 10816 let current_location = getCookie("location_delivery") 10817 $("[name=location]").change(function(){ 10818 let v = $(this).val() 10819 let option = [] 10820 if(v == 'Jabodetabek') { 10821 for(var i=0;i<jabodetabek.length;i++) { 10822 const jabodetabekHtml = `<option value=${jabodetabek[i].city}>${jabodetabek[i].city}</option>` 10823 option.push(jabodetabekHtml) 10824 } 10825 $("#choose-location").html(`<option value="">Choose Location</option>${option}`) 10826 } else { 10827 for(var i=0;i<non_jabodetabek.length;i++) { 10828 const nonjabodetabekHtml = `<option value=${non_jabodetabek[i].city}>${non_jabodetabek[i].city}</option>` 10829 option.push(nonjabodetabekHtml) 10830 } 10831 $("#choose-location").html(`<option value="">Choose Location</option>${option}`) 10832 } 10833 }) 10834 10835 $("#location-lock-submit").click(function(e){
10836 let select = $("#choose-location") 10837 let value = select.val().toLowerCase() 10838 console.log(value) 10839 if(select.val() == "") { 10840 return alert("Choose Your Location") 10841 e.preventDefault() 10842 } 10843 setCookie("location_delivery",value,1000000); 10844 10845 location.reload(); 10846 10847 }) 10848 10849 $("#close-popup-delivery").click(function(){ 10850 $(".MuiDialog-root").hide() 10851 if(!current_location){ 10852 setCookie("location_delivery","jakarta",1000000); 10853 $("#loc_delivery_city, #loc_delivery_city_mobile").text("Jakarta") 10854 } 10855 }) 10856 $("#loc_delivery, #loc_delivery_mobile").click(function(){ 10857 $(".MuiDialog-root").show() 10858 }) 10859 10860 10861 if(!current_location){ 10862 10863 } else { 10864 $("#loc_delivery_city, #loc_delivery_city_mobile").text(current_location) 10865 console.log(current_location) 10866 $("#choose-location").each(function(){ 10867 if(current_location == 'jakarta' || current_location == 'depok' || current_location == 'bogor' || current_location == 'tangerang' || current_location == 'bekasi'){ 10868 $("#jabodetabek").trigger("click") 10869 } else { 10870 $("#non-jabodetabek").trigger("click") 10871 } 10872 $("#choose-location").find("option[value="+current_location+"]").attr("selected", "selected") 10873 }) 10874 } 10875 10876 // 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'){ 10877 // $("#timeMalam").attr("disabled", false) 10878 // } else { 10879 // $("#timeMalam").attr("disabled", true) 10880 // } 10881 10882 if(current_location && current_location != 'jakarta') { 10883 $("#self-pickup").attr("disabled", true) 10884 } 10885 10886 function setCookie(name,value,days) { 10887 var expires = ""; 10888 if (days) { 10889 var date = new Date(); 10890 date.setTime(date.getTime() + (days*24*60*60*1000)); 10891 expires = "; expires=" + date.toUTCString(); 10892 } 10893 document.cookie = name + "=" + (value || "") + expires + "; path=/"; 10894 } 10895 function getCookie(name) { 10896 var nameEQ = name + "="; 10897 var ca = document.cookie.split(';'); 10898 for(var i=0;i < ca.length;i++) { 10899 var c = ca[i]; 10900 while (c.charAt(0)==' ') c = c.substring(1,c.length); 10901 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 10902 } 10903 return null; 10904 } 10905 </script>
10905 10906 <!-- One Tap --> 10907
10907<script> 10908 console.log("Outerbloom..."); 10909 </script>
10909 10910 <div id="shopify-block-ANVEzSUcxTUxZOGpwZ__9703700522657871012" class="shopify-block shopify-app-block"> 10911 10912 10913 10914 10915 10916 10917 10918 10919 10920 10921 10922 10923 10924 10925 10926 10927 10928 10929 10930 10931 10932 10933 10934 10935 10936 10937 10938 10939 10940 10941 10942 10943 10944 10945 10946 10947 10948 10949 10950 10951 10952 10953 10954 10955 10956 10957 <link rel="stylesheet" href="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.css" /> 10958
10958<script src="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.js" defer></script>
10958 10959
10959<script> 10960 const widgetConfig = { 10961 id: "clz7897za002cz7otleaz0d3d", 10962 showQuickResponse: false, 10963 quickResponsesData: [], 10964 themeColor: "#ffffff", 10965 widgetText: "", 10966 radiusType: "circle", 10967 widgetIconType: "whatsapp", 10968 position: "right", 10969 storeLogo: "", 10970 storeName: "Outerbloom", 10971 storeDescription: "", 10972 size: "small", 10973 showCard: false, 10974 widgetColorType: "solid", 10975 widgetColor1: "#008069", 10976 widgetColor2: "#008069", 10977 social: { 10978 socialOrders: ["instagram","tiktok","facebook","x","youtube","linkedin","email"], 10979 values: { 10980 instagram: { 10981 enabled: false, 10982 value: "", 10983 }, 10984 facebook: { 10985 enabled: false, 10986 value: "", 10987 }, 10988 email: { 10989 enabled: false, 10990 value: "", 10991 }, 10992 x: { 10993 enabled: false, 10994 value: "", 10995 }, 10996 tiktok: { 10997 enabled: false, 10998 value: "", 10999 }, 11000 linkedin: { 11001 enabled: false, 11002 value: "", 11003 }, 11004 youtube: { 11005 enabled: false, 11006 value: "", 11007 }, 11008 }, 11009 }, 11010 }; 11011 11012 function initializeWidget() { 11013 if (typeof BBBWidget !== 'undefined') { 11014 BBBWidget.init(widgetConfig); 11015 } else { 11016 setTimeout(initializeWidget, 100); 11017 } 11018 } 11019 11020 initializeWidget();</script>
11020 11021 11022 11023 </div><div id="shopify-block-ATzRpVTBPU3k1R2pnW__286197278318599166" class="shopify-block shopify-app-block"> 11024 11025 11026 <div style="position: fixed; bottom: 0; right: 0"></div> 11027 11028
11028<script> 11029 console.info("bitlogin extension version: v2.5.7"); 11030 11031 const googleScript = document.createElement("script"); 11032 googleScript.setAttribute("src", "https://accounts.google.com/gsi/client"); 11033 document.head.append(googleScript); 11034 11035 const bitLoginBaseUrl = "https://api.bitbybit.studio"; 11036 const apiUrl = `${bitLoginBaseUrl}/bitlogin/api`; 11037 11038 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"}}; 11039 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
11039n1.oa2-cs.v1.1cb5f9085a202341f60daf5a7be16c570ccc0b4bd5908b3afd080f34e9b8935d","appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null}]; 11040 const redirectUrl = appearance.redirectLink; 11041 11042 let locationCacheSet = false; 11043 let errorLocation = false; 11044 let oneTapSet = false; 11045 11046 let bitloginCache = { 11047 appearance: appearance, 11048 config: config 11049 }; 11050 11051 let isInitializing = false; 11052 const queue = []; 11053 11054 // Add CSS for the popup 11055 const popupStyles = document.createElement('style'); 11056 popupStyles.textContent = ` 11057 /* Styles for login popup */ 11058 .bitlogin-popup-overlay { 11059 position: fixed; 11060 top: 0; 11061 left: 0; 11062 width: 100%; 11063 height: 100%; 11064 background: rgba(0, 0, 0, 0.45); 11065 backdrop-filter: blur(4px); 11066 display: flex; 11067 align-items: center; 11068 justify-content: center; 11069 opacity: 0; 11070 transition: opacity 0.3s ease-in-out; 11071 z-index: 999999; 11072 } 11073 11074 .bitlogin-popup-overlay.visible { 11075 opacity: 1; 11076 } 11077 11078 .bitlogin-popup { 11079 background: #FFFFFF; 11080 box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); 11081 border-radius: 16px; 11082 width: 100%; 11083 max-width: 560px; 11084 display: flex; 11085 overflow: hidden; 11086 position: relative; 11087 opacity: 0; 11088 transform: translateY(20px) scale(0.98); 11089 transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1); 11090 } 11091 11092 .bitlogin-popup.visible { 11093 opacity: 1; 11094 transform: translateY(0) scale(1); 11095 } 11096 11097 .bitlogin-popup-with-image { 11098 max-width: 640px; 11099 } 11100 11101 .bitlogin-popup-right-image { 11102 flex-direction: row-reverse; 11103 } 11104 11105 .bitlogin-popup-image { 11106 object-fit: cover; 11107 width: 50%; 11108 height: auto; 11109 } 11110 11111 .bitlogin-popup-content { 11112 padding: 32px; 11113 position: relative; 11114 width: 50%; 11115 } 11116 11117 .bitlogin-popup-close { 11118 position: absolute; 11119 top: 16px; 11120 right: 16px; 11121 background: white; 11122 border: none; 11123 width: 30px; 11124 height: 30px; 11125 display: flex; 11126 align-items: center; 11127 justify-content: center; 11128 cursor: pointer; 11129 transition: background-color 0.2s; 11130 color: inherit; 11131 padding: 0; 11132 } 11133 11134 .bitlogin-popup-close:hover { 11135 background-color: #e5e5e5; 11136 } 11137 11138 .bitlogin-popup-buttons { 11139 display: flex; 11140 flex-direction: column; 11141 gap: 12px; 11142 margin-top: 24px; 11143 } 11144 11145 /* Button styles within popup - override width for popup buttons */ 11146 .bitlogin-popup-buttons #google-login, 11147 .bitlogin-popup-buttons #facebook-login, 11148 .bitlogin-popup-buttons #apple-login, 11149 .bitlogin-popup-buttons #whatsapp-login, 11150 .bitlogin-popup-buttons #microsoft-login, 11151 .bitlogin-popup-buttons #twitter-login, 11152 .bitlogin-popup-buttons #amazon-login, 11153 .bitlogin-popup-buttons #instagram-login, 11154 .bitlogin-popup-buttons #magic-link-login, 11155 .bitlogin-popup-buttons #mobile-app-login { 11156 width: 100% !important; 11157 font-family: inherit !important; 11158 } 11159 11160 .bitlogin-popup-footer { 11161 margin-top: 32px; 11162 text-align: center; 11163 font-size: 14px; 11164 opacity: 0.6; 11165 } 11166 11167 /* Modern Typography */ 11168 .bitlogin-popup h2 { 11169 margin-top: 12px; 11170 font-size: 21px !important; 11171 line-height: 1.2 !important; 11172 font-weight: 700 !important; 11173 letter-spacing: -0.02em !important; 11174 margin-bottom: 16px !important; 11175 } 11176 11177 .bitlogin-popup-header { 11178 position: relative; 11179 margin-bottom: 24px; 11180 } 11181 11182 /* Modern gradient accent */ 11183 .bitlogin-popup-content > div { 11184 font-size: 16px !important; 11185 line-height: 1.2 !important; 11186 opacity: 0.85 !important; 11187 } 11188 11189 /* Enhanced button interactions */ 11190 .bitlogin-popup-buttons button { 11191 position: relative; 11192 overflow: hidden; 11193 } 11194 11195 @keyframes ripple { 11196 0% { 11197 transform: scale(0, 0); 11198 opacity: 0.5; 11199 } 11200 100% { 11201 transform: scale(100, 100); 11202 opacity: 0; 11203 } 11204 } 11205 11206 /* Responsive adjustments */ 11207 @media (max-width: 640px) { 11208 .bitlogin-popup { 11209 max-width: 90%; 11210 width: 90%; 11211 margin: 0 16px; 11212 } 11213 11214 .bitlogin-popup-with-image { 11215 flex-direction: column !important; 11216 } 11217 11218 .bitlogin-popup-image { 11219 width: 100%; 11220 height: 180px; 11221 } 11222 11223 .bitlogin-popup-content { 11224 padding: 24px; 11225 } 11226 11227 .bitlogin-popup h2 { 11228 font-size: 24px !important; 11229 } 11230 } 11231 `; 11232
11233 document.head.appendChild(popupStyles); 11234 11235 // Add fonts link for different font options 11236 const fontsLink = document.createElement('link'); 11237 fontsLink.rel = 'stylesheet'; 11238 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'; 11239 document.head.appendChild(fontsLink); 11240 11241 (async () => { 11242 try { 11243 let host = window.location.host; 11244 if (host === "admin.shopify.com") { 11245 host = `${window.location.pathname.split("/")[2]}.myshopify.com`; 11246 } 11247 11248 const urlSearchParams = new URLSearchParams(window.location.search); 11249 const checkoutUrl = urlSearchParams.get("checkout_url"); 11250 11251 async function init({ inputRef, index }) { 11252 if (isInitializing) { 11253 queue.push(() => init({ inputRef, index })); 11254 return; 11255 } 11256 11257 isInitializing = true; 11258 11259 try { 11260 let bitLoginSectionRoot = document.querySelector( 11261 `.bitlogin-root[data-index="${index}"]` 11262 ); 11263 11264 const formRef = inputRef?.closest( 11265 "form:not([action='/account/recover'])" 11266 ); 11267 11268 if (formRef && !bitLoginSectionRoot) { 11269 await getLocation(); 11270 11271 bitLoginSectionRoot = document.createElement(`div`); 11272 11273 bitLoginSectionRoot.setAttribute("class", "bitlogin-root"); 11274 bitLoginSectionRoot.setAttribute("data-index", `${index}`); 11275 11276 updateAppearance({ 11277 formRef, 11278 rootRef: bitLoginSectionRoot, 11279 host, 11280 }); 11281 } 11282 } catch (err) { 11283 console.error(`error while initiating bitlogin extensions`, err); 11284 } finally { 11285 // Release the lock 11286 isInitializing = false; 11287 11288 // Check if there are pending items in the queue 11289 if (queue.length > 0) { 11290 // Process the next function in the queue 11291 const nextFunction = queue.shift(); 11292 nextFunction(); 11293 } 11294 } 11295 } 11296 11297 function initAll() { 11298 return new Promise((resolve, reject) => { 11299 setTimeout(async () => { 11300 const inputRefs = document.querySelectorAll( 11301 'input[name="customer[email]"]' 11302 ); 11303 11304 for (let i = 0; i < inputRefs.length; i++) { 11305 const currentInputRef = inputRefs[i]; 11306 const isVisible = isElementVisible(currentInputRef); 11307 11308 if (isVisible) { 11309 await init({ inputRef: currentInputRef, index: i }); 11310 } 11311 } 11312 11313 resolve("ok"); 11314 }, 100); 11315 }); 11316 } 11317 11318 const observer = new MutationObserver((mutationsList) => { 11319 for (let mutation of mutationsList) { 11320 initAll(); 11321 } 11322 }); 11323 11324 observer.observe(document.body, { 11325 childList: true, 11326 subtree: true, 11327 attributes: true, 11328 }); 11329 11330 initAll(); 11331 11332 if (appearance.googleOneTap) { 11333 setupOneTap({ host, checkoutUrl }); 11334 } 11335 11336 // Initialize popup 11337 await initPopup(host); 11338 } catch (error) { 11339 console.error("Error initializing BitLogin:", error); 11340 } 11341 })(); 11342 11343 async function initPopup(host) { 11344 // Check if user is already logged in using Liquid checks properly 11345 const isLoggedIn = false || 11346 document.querySelector('.customer-logout-link') || 11347 document.querySelector('.account-link') || 11348 window.location.pathname.includes('/account'); 11349 11350 if (isLoggedIn) { 11351 return; // User is logged in, don't show popup 11352 } 11353 11354 try { 11355 // Fetch the popup configuration 11356 const popupConfig = await fetch(`${apiUrl}/appearance/popup/domain/${host}`) 11357 .then(res => res.json()) 11358 .catch(err => { 11359 console.error('Error fetching popup configuration:', err); 11360 return null; 11361 }); 11362 11363 if (!popupConfig || !popupConfig.enabled) { 11364 return;
11364 // Don't show popup if disabled or config not found 11365 } 11366 11367 // Create popup after 10 seconds 11368 setTimeout(() => { 11369 // Check if user is still on the page and still not logged in 11370 if (document.visibilityState === 'visible') { 11371 // Additional check in case user logged in during the 10 second wait 11372 const currentlyLoggedIn = false || 11373 document.querySelector('.customer-logout-link') || 11374 document.querySelector('.account-link'); 11375 11376 if (!currentlyLoggedIn) { 11377 createLoginPopup(popupConfig, host); 11378 } 11379 } 11380 }, 10000); 11381 } catch (error) { 11382 console.error('Error initializing popup:', error); 11383 } 11384 } 11385 11386 function createLoginPopup(popupConfig, host) { 11387 // Font mapping 11388 const fontFamilyMap = { 11389 system_fonts: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif', 11390 montserrat: 'Montserrat, sans-serif', 11391 roboto: 'Roboto, sans-serif', 11392 open_sans: 'Open Sans, sans-serif', 11393 noto_sans: 'Noto Sans, sans-serif', 11394 lato: 'Lato, sans-serif', 11395 poppins: 'Poppins, sans-serif', 11396 quicksand: 'Quicksand, sans-serif', 11397 raleway: 'Raleway, sans-serif', 11398 pt_sans: 'PT Sans, sans-serif', 11399 oswald: 'Oswald, sans-serif', 11400 }; 11401 11402 // Create overlay 11403 const overlay = document.createElement('div'); 11404 overlay.className = 'bitlogin-popup-overlay'; 11405 11406 // Create popup container with appropriate styling 11407 const popup = document.createElement('div'); 11408 popup.className = 'bitlogin-popup'; 11409 11410 if (popupConfig.layout === 'default') { 11411 popup.style.maxWidth = '400px'; 11412 } 11413 11414 // Function to close the popup 11415 const closePopup = () => { 11416 overlay.classList.remove('visible'); 11417 popup.classList.remove('visible'); 11418 setTimeout(() => { 11419 if (document.body.contains(overlay)) { 11420 document.body.removeChild(overlay); 11421 } 11422 }, 300); 11423 }; 11424 11425 // Add click handler to the overlay to close when clicking outside 11426 overlay.addEventListener('click', (event) => { 11427 // Close only if clicking directly on the overlay, not its children 11428 if (event.target === overlay) { 11429 closePopup(); 11430 } 11431 }); 11432 11433 // Add escape key handler to close popup 11434 document.addEventListener('keydown', (event) => { 11435 if (event.key === 'Escape' && document.body.contains(overlay)) { 11436 closePopup(); 11437 } 11438 }); 11439 11440 // Create layout with image if specified 11441 let contentWrapper; 11442 if (popupConfig.layout !== 'default' && popupConfig.popupImage) { 11443 popup.classList.add('bitlogin-popup-with-image'); 11444 11445 if (popupConfig.layout === 'right') { 11446 popup.classList.add('bitlogin-popup-right-image'); 11447 } 11448 11449 // Add image 11450 const image = document.createElement('img'); 11451 image.className = 'bitlogin-popup-image'; 11452 image.src = popupConfig.popupImage; 11453 image.alt = 'Login'; 11454 image.loading = 'lazy'; 11455 popup.appendChild(image); 11456 11457 // Create content container 11458 contentWrapper = document.createElement('div'); 11459 contentWrapper.className = 'bitlogin-popup-content'; 11460 11461 if (popupConfig.layout === 'right') { 11462 const closeButton = document.createElement('button'); 11463 closeButton.className = 'bitlogin-popup-close'; 11464 closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="images/logo-jkt8.png"> 11465 <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 11466 </svg>`; 11467 closeButton.setAttribute('aria-label', 'Close'); 11468 closeButton.onclick = closePopup; 11469 11470 popup.appendChild(closeButton); 11471 } 11472 } else { 11473 contentWrapper = document.createElement('div'); 11474 contentWrapper.className = 'bitlogin-popup-content'; 11475 contentWrapper.style.width = '100%'; 11476 } 11477 11478 // Set background style 11479 if (popupConfig.backgroundTheme === 'gradient') { 11480 contentWrapper.style.background = `linear-gradient(135deg, ${popupConfig.backgroundPopupColor}, ${popupConfig.gradientColor})`; 11481 } else { 11482 contentWrapper.style.backgroundColor = popupConfig.backgroundPopupColor; 11483 } 11484 11485 // Apply font family 11486 contentWrapper.style.setProperty('font-family', fontFamilyMap[popupConfig.font] || fontFamilyMap.system_fonts, 'important'); 11487 11488 if (popupConfig.layout !== 'right') { 11489 const closeButton = document.createElement('button'); 11490 closeButton.className = 'bitlogin-popup-close'; 11491 closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="images/logo-jkt8.png"> 11492 <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 11493 </svg>`; 11494 closeButton.setAttribute('aria-label', 'Close'); 11495 closeButton.onclick = closePopup; 11496 11497 contentWrapper.appendChild(closeButton); 11498 } 11499 11500 // Add heading with subtle animation effect 11501 const header = document.createElement('div'); 11502 header.className = 'bitlogin-popup-header'; 11503 11504 const heading = document.createElement('h2'); 11505 heading.textContent = popupConfig.headingText || 'Sign in for exclusive benef
11505its'; 11506 heading.style.color = popupConfig.fontColor; 11507 header.appendChild(heading); 11508 11509 // Add body text with improved formatting 11510 const bodyText = document.createElement('div'); 11511 bodyText.innerHTML = popupConfig.bodyText || 'Join our community to access exclusive offers and a personalized shopping experience.'; 11512 bodyText.style.color = popupConfig.fontColor; 11513 header.appendChild(bodyText); 11514 11515 contentWrapper.appendChild(header); 11516 11517 // Create buttons container with modern styling 11518 const buttonsContainer = document.createElement('div'); 11519 buttonsContainer.className = 'bitlogin-popup-buttons'; 11520 11521 // Add social buttons 11522 const providerLabels = { 11523 'GOOGLE': 'Continue with Google', 11524 'FACEBOOK': 'Continue with Facebook', 11525 'APPLE': 'Continue with Apple', 11526 'WHATSAPP': 'Continue with WhatsApp', 11527 'MAGIC_LINK': 'Continue with Email', 11528 }; 11529 11530 // Add first login provider button 11531 if (popupConfig.loginProvider1 !== 'NONE') { 11532 const buttonConfig = { 11533 theme: popupConfig.colorScheme || 'match', 11534 customColor: popupConfig.textColor, 11535 format: 'contentFlex', 11536 buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider1.toLowerCase()], 11537 hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true, 11538 style: popupConfig.style || 'rounded', 11539 size: popupConfig.size || 'medium', 11540 colorScheme: popupConfig.colorScheme || 'match', 11541 backgroundColor: popupConfig.backgroundColor || '#3B82F6', 11542 textColor: popupConfig.textColor || '#FFFFFF', 11543 outlineColor: popupConfig.outlineColor || '#3B82F6', 11544 host: host 11545 }; 11546 11547 const button1 = createSocialLoginButton(popupConfig.loginProvider1, buttonConfig); 11548 11549 // Handle click event - this overrides the default click handler in createSocialLoginButton 11550 button1.onclick = () => { 11551 onClickSocialLogin({ provider: popupConfig.loginProvider1.toLowerCase(), host }); 11552 closePopup(); 11553 }; 11554 11555 buttonsContainer.appendChild(button1); 11556 } 11557 11558 // Add second login provider button if enabled 11559 if (popupConfig.loginProvider2 !== 'NONE') { 11560 const buttonConfig = { 11561 theme: popupConfig.colorScheme || 'match', 11562 customColor: popupConfig.textColor, 11563 format: 'contentFlex', 11564 buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider2.toLowerCase()], 11565 hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true, 11566 style: popupConfig.style || 'rounded', 11567 size: popupConfig.size || 'medium', 11568 colorScheme: popupConfig.colorScheme || 'match', 11569 backgroundColor: popupConfig.backgroundColor || '#3B82F6', 11570 textColor: popupConfig.textColor || '#FFFFFF', 11571 outlineColor: popupConfig.outlineColor || '#3B82F6', 11572 host: host 11573 }; 11574 11575 const button2 = createSocialLoginButton(popupConfig.loginProvider2, buttonConfig); 11576 11577 // Handle click event - this overrides the default click handler in createSocialLoginButton 11578 button2.onclick = () => { 11579 onClickSocialLogin({ provider: popupConfig.loginProvider2.toLowerCase(), host }); 11580 closePopup(); 11581 }; 11582 11583 buttonsContainer.appendChild(button2); 11584 } 11585 11586 contentWrapper.appendChild(buttonsContainer); 11587 11588 // Append content to popup 11589 popup.appendChild(contentWrapper); 11590 11591 // Append popup to overlay 11592 overlay.appendChild(popup); 11593 11594 // Append overlay to body 11595 document.body.appendChild(overlay); 11596 11597 // Trigger animation with slight delay for better perceived performance 11598 setTimeout(() => { 11599 overlay.classList.add('visible'); 11600 setTimeout(() => { 11601 popup.classList.add('visible'); 11602 }, 50); 11603 }, 10); 11604 } 11605 11606 window.addEventListener("load", () => { 11607 window.addEventListener("message", (event) => { 11608 const receivedData = event.data; 11609 11610 if (receivedData.type === "authorize") { 11611 post( 11612 JSON.parse( 11613 JSON.stringify({ 11614 "customer[email]": receivedData.email, 11615 "customer[password]": receivedData.password, 11616 form_type: "customer_login", 11617 utf8: "â", 11618 return_url: redirectUrl, 11619 }) 11620 ) 11621 ); 11622 } else if (receivedData.type === "rejected") { 11623 if (receivedData.reason === "customer_account_disabled") { 11624 showAlert( 11625 "Your account needs to be activated. We've sent you an activation link - please check your email to complete this step." 11626 ); 11627 } else if (receivedData.reason === "customer_entry_created_email_not_set") { 11628 showAlert( 11629 "A new account was created but requires an email address. Please update your account with a valid email address to continue." 11630 ); 11631 } else if (receivedData.reason === "customer_exist_email_not_set") { 11632 showAlert( 11633 "Your existing account is missing an email address. Please contact support to update your account with a valid email address." 11634 ); 11635 } 11636 } 11637 11638 if (receivedData.type === "customer_authenticated") { 11639 // Dispatch a custom event that merchants can listen for to implement their custom logic 11640 const customerAuthEvent = new CustomEvent('bitlogin:customer_authenticated', { 11641 detail: { 11642 provider: receivedData.provider, 11643 customer: receivedData.customer, 11644 shopifyCustomerCreated: receivedData.shopifyCustomerCreated 11645 } 11646 }); 11647 11648 // Dispatch the event on the window object so merchants can listen for it 11649 window.dispatchEvent(customerAuthEvent); 11650 11651 } 11652 }); 11653 }); 11654 11655 // Reusable functions for social login buttons 11656 function createSocialLoginButton(provider, config = {}) { 11657 const { 11658 theme = 'match', 11659 customColor = null, 11660 format = 'contentFlex', 11661 buttonText = null, 11662 hasShadow = true, 11663 style = 'rounded', 11664 size = 'medium', 11665 colorScheme = 'match', 11666 backgroundColor = '#3B82F6', 11667 textColor = '#FFFFFF', 11668 outlineColor = '#3B82F6', 11669 rootRef = null, 11670 host = null 11671 } = config; 11672 11673 // Create button element with appropriate ID and attributes 11674 const button = document.createElement('button'); 11675 button.id = `${provider.toLowerCase()}-login`; 11676 button.type = 'button'; 11677 11678 // Set the inner SVG based on provider 11679 switch (provider.toUpperCase()) {
11680 case 'GOOGLE': 11681 button.innerHTML = googleLoginIcon(theme, customColor); 11682 break; 11683 case 'FACEBOOK': 11684 button.innerHTML = facebookLoginIcon(theme, customColor); 11685 break; 11686 case 'APPLE': 11687 button.innerHTML = appleLoginIcon(theme, customColor); 11688 break; 11689 case 'WHATSAPP': 11690 button.innerHTML = whatsappLoginIcon(theme, customColor); 11691 break; 11692 case 'MICROSOFT': 11693 button.innerHTML = microsoftLoginIcon(theme, customColor); 11694 break; 11695 case 'TWITTER': 11696 button.innerHTML = twitterLoginIcon(theme, customColor); 11697 break; 11698 case 'AMAZON': 11699 button.innerHTML = amazonLoginIcon(theme, customColor); 11700 break; 11701 case 'INSTAGRAM': 11702 button.innerHTML = instagramLoginIcon(theme, customColor); 11703 break; 11704 case 'MAGIC_LINK': 11705 button.innerHTML = magicLinkLoginIcon(theme, customColor); 11706 break; 11707 case 'MOBILE_APP': 11708 button.innerHTML = mobileAppLoginIcon(theme, customColor); 11709 break; 11710 case 'LINKEDIN': 11711 button.innerHTML = linkedinLoginIcon(theme, customColor); 11712 break; 11713 } 11714 11715 // Add text if format isn't icon-only and buttonText is provided 11716 if (format !== "wrapperFlexContainerOnlyLogo" && buttonText) { 11717 button.innerHTML += `<p>${buttonText}</p>`; 11718 } 11719 11720 // Apply styling 11721 // Shadow 11722 if (hasShadow) { 11723 const shadowProperties = `0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)`; 11724 button.style["box-shadow"] = shadowProperties; 11725 } 11726 11727 // Border radius 11728 const radiusProperties = 11729 style === "rounded" 11730 ? "8px" 11731 : style === "square" 11732 ? "0px" 11733 : style === "fullRounded" 11734 ? format === "wrapperFlexContainerOnlyLogo" 11735 ? "50%" 11736 : "50px" 11737 : undefined; 11738 button.style["border-radius"] = radiusProperties; 11739 11740 // Size 11741 const sizeProperties = 11742 size === "medium" 11743 ? "12px" 11744 : size === "small" 11745 ? "8px" 11746 : size === "large" 11747 ? "16px" 11748 : "8px"; 11749 11750 button.style["padding-block"] = sizeProperties; 11751 11752 // Format styling 11753 if (format) { 11754 if ( 11755 format === "contentFlexReverse" || 11756 format === "contentFlexCenterReverse" 11757 ) { 11758 const flexDir = `row-reverse`; 11759 button.style["flex-direction"] = flexDir; 11760 } 11761 11762 if ( 11763 format === "contentFlexCenter" || 11764 format === "contentFlexCenterReverse" 11765 ) { 11766 const justifyContent = `center`; 11767 button.style["justify-content"] = justifyContent; 11768 } else if ( 11769 format === "contentFlex" || 11770 format === "contentFlexReverse" 11771 ) { 11772 const buttonTextElement = button.querySelector("p"); 11773 if (buttonTextElement) { 11774 buttonTextElement.style["flex-grow"] = 1; 11775 buttonTextElement.style["text-align"] = "center"; 11776 } 11777 } 11778 11779 if (format === "wrapperFlexContainerOnlyLogo" && rootRef) { 11780 rootRef.style["flex-direction"] = "row"; 11781 rootRef.style["gap"] = "8px"; 11782 rootRef.style["display"] = "flex"; 11783 rootRef.style["flex-wrap"] = "wrap"; 11784 11785 const sizeMapping = { 11786 small: "52px", 11787 medium: "62px", 11788 large: "72px", 11789 }; 11790 const buttonSize = sizeMapping[size] || "52px"; 11791 11792 button.style["margin"] = 0; 11793 button.style["width"] = buttonSize; 11794 button.style["height"] = buttonSize; 11795 button.style["display"] = "flex"; 11796 button.style["align-items"] = "center"; 11797 button.style["justify-content"] = "center"; 11798 11799 const svgElement = button.querySelector("svg"); 11800 if (svgElement) { 11801 svgElement.style["flex"] = "none"; 11802 } 11803 } 11804 } 11805 11806 // Color scheme styling 11807 if (colorScheme === "black") { 11808 button.classList.add("scheme-black"); 11809 } else if (colorScheme === "white") { 11810 button.classList.add("scheme-white"); 11811 } else if (colorScheme === "custom") { 11812 button.style["background-color"] = backgroundColor; 11813 button.style["color"] = textColor; 11814 button.style["border-color"] = outlineColor; 11815 11816 const darkenColor = (color, percentage) => { 11817 const value = parseInt(color.slice(1), 16); 11818 const r = Math.max(0, ((value >> 16) & 0xff) - (0xff * percentage)); 11819 const g = Math.max(0, ((value >> 8) & 0xff) - (0xff * percentage)); 11820 const b = Math.max(0, (value & 0xff) - (0xff * percentage)); 11821 return `rgb(${Math.round(r)}, ${Math.round(g)}, ${Math.round(b)})`; 11822 }; 11823 11824 button.addEventListener("mouseover", () => {
11825 button.style["background-color"] = darkenColor(backgroundColor, 0.2); 11826 }); 11827 button.addEventListener("mouseout", () => { 11828 button.style["background-color"] = backgroundColor; 11829 }); 11830 } else if (colorScheme === "match") { 11831 button.classList.add("scheme-match"); 11832 } else if (colorScheme === "matchOutline") { 11833 button.classList.add("scheme-match-outline"); 11834 } 11835 11836 // Add click event listener if host is provided 11837 if (host) { 11838 button.addEventListener("click", () => 11839 onClickSocialLogin({ provider: provider.toLowerCase(), host }) 11840 ); 11841 } 11842 11843 return button; 11844 } 11845 11846 function setupSocialLoginButtons(config, rootRef, data, host) { 11847 // Clear any existing content 11848 rootRef.innerHTML = ''; 11849 11850 const sortedEnabledProviders = config 11851 .filter(c => c.enabledWeb) 11852 .sort((a, b) => a.position - b.position); 11853 11854 sortedEnabledProviders.forEach(provider => { 11855 const key = provider.provider; 11856 const lowerKey = key.toLowerCase(); 11857 11858 const buttonText = data.format !== "wrapperFlexContainerOnlyLogo" 11859 ? (lowerKey === 'twitter' 11860 ? data.buttonList.twitter.replace('Twitter', 'X') 11861 : data.buttonList[lowerKey]) 11862 : null; 11863 11864 const button = createSocialLoginButton(key, { 11865 theme: data.colorScheme || 'match', 11866 customColor: data.textColor, 11867 format: data.format, 11868 buttonText: buttonText, 11869 hasShadow: data.hasShadow !== undefined ? data.hasShadow : true, 11870 style: data.style, 11871 size: data.size, 11872 colorScheme: data.colorScheme, 11873 backgroundColor: data.backgroundColor, 11874 textColor: data.textColor, 11875 outlineColor: data.outlineColor, 11876 rootRef: rootRef, 11877 host: host 11878 }); 11879 11880 rootRef.appendChild(button); 11881 }); 11882 11883 return rootRef; 11884 } 11885 11886 function updateAppearance({ formRef, rootRef, host }) { 11887 if (!formRef) return; 11888 11889 const data = bitloginCache.appearance || { 11890 style: "square", 11891 hasShadow: false, 11892 colorScheme: "match", 11893 backgroundColor: "#FFFFFF", 11894 outlineColor: "#000000", 11895 textColor: "#000000", 11896 position: "bottom", 11897 hideDivider: "false", 11898 dividerText: "OR", 11899 size: "small", 11900 format: "contentFlex", 11901 language: "en", 11902 buttonText: "Continue with", 11903 redirectLink: "/account", 11904 googleOneTap: true, 11905 googleOneTapBanner: true, 11906 customerTag: "bitLogin", 11907 redirectOneTapDesktop: null, 11908 redirectOneTapMobile: null, 11909 buttonList: { 11910 google: "Continue with Google", 11911 facebook: "Continue with Facebook", 11912 apple: "Continue with Apple", 11913 whatsapp: "Continue with WhatsApp", 11914 microsoft: "Continue with Microsoft", 11915 twitter: "Continue with X", 11916 amazon: "Continue with Amazon", 11917 instagram: "Continue with Instagram", 11918 magic_link: "Continue with Magic Link", 11919 mobile_app: "Continue with Mobile App", 11920 linkedin: "Continue with LinkedIn", 11921 }, 11922 }; 11923 11924 // Use the new setupSocialLoginButtons function to create and configure all buttons 11925 setupSocialLoginButtons(bitloginCache.config, rootRef, data, host); 11926 11927 let divider; 11928 11929 if (!data.hideDivider) { 11930 divider = document.createElement("div"); 11931 const dividerStyle = "text-align:center;margin-block:16px"; 11932 divider.setAttribute("style", dividerStyle); 11933 divider.innerHTML = data.dividerText; 11934 } 11935 11936 if (data.position === "bottom") { 11937 if (divider) { 11938 formRef.appendChild(divider); 11939 } 11940 formRef.appendChild(rootRef); 11941 } else if (data.position === "top") { 11942 if (divider) { 11943 formRef.prepend(divider); 11944 } 11945 formRef.prepend(rootRef); 11946 } 11947 } 11948 11949 11950 async function onClickSocialLogin({ provider, host }) { 11951 const rand = Math.random().toString(); 11952 11953 const locationQueryString = bitloginCache.location 11954 ? `&${objectToQueryString(bitloginCache.location)}` 11955 : ""; 11956 11957 const width = 800; 11958 const height = 600; 11959 const left = (window.screen.width / 2) - (width / 2); 11960 const top = (window.screen.height / 2) - (height / 2) - 50; 11961
11962 if(provider === 'whatsapp') { 11963 window.open( 11964 `/apps/bitlogin/whatsapp${locationQueryString ? `?${locationQueryString}` : ''}`, 11965 "mywindow", 11966 `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}` 11967 ); 11968 } else { 11969 window.open( 11970 `${apiUrl}/login/${provider}?referrerId=${rand}&shop=${host}${locationQueryString}`, 11971 "mywindow", 11972 `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}` 11973 ); 11974 } 11975 } 11976 11977 function objectToQueryString(obj) { 11978 return Object.keys(obj) 11979 .map((key) => { 11980 return encodeURIComponent(key) + "=" + encodeURIComponent(obj[key]); 11981 }) 11982 .join("&"); 11983 } 11984 11985 async function getLocation() { 11986 if (locationCacheSet) return; 11987 11988 try { 11989 const response = await fetch("https://ipapi.co/json/"); 11990 11991 if (!response.ok) { 11992 console.error(`error retrieving location...`, response.status); 11993 errorLocation = true; 11994 } else { 11995 const data = await response.json(); 11996 11997 const { city, region, country_name, country_code } = data; 11998 11999 const formattedLocationData = { 12000 city, 12001 region, 12002 country_name, 12003 country_code, 12004 }; 12005 12006 bitloginCache.location = formattedLocationData; 12007 locationCacheSet = true; 12008 errorLocation = false; 12009 } 12010 } catch (err) { 12011 console.error(`error fetching location`, err); 12012 errorLocation = true; 12013 } 12014 } 12015 12016 function post(params) { 12017 // The rest of this code assumes you are not using a library. 12018 // It can be made less verbose if you use one. 12019 const form = document.createElement("form"); 12020 form.method = "post"; 12021 form.action = `/account/login`; 12022 form.acceptCharset = "UTF-8"; 12023 form.setAttribute("data-login-with-shop-sign-in", "true"); 12024 form.setAttribute("novalidate", "novalidate"); 12025 12026 for (const key in params) { 12027 if (params.hasOwnProperty(key)) { 12028 const hiddenField = document.createElement("input"); 12029 hiddenField.type = "hidden"; 12030 hiddenField.name = key; 12031 hiddenField.value = params[key]; 12032 12033 form.appendChild(hiddenField); 12034 } 12035 } 12036 12037 document.body.appendChild(form); 12038 form.submit(); 12039 } 12040 12041 async function setupOneTap({ host, checkoutUrl }) { 12042 if (oneTapSet) return; 12043 12044 const redirectOneTapDesktop = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapDesktop || '[]')); 12045 const redirectOneTapMobile = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapMobile || '[]')); 12046 12047 const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent); 12048 const redirectList = JSON.parse(isMobile ? redirectOneTapMobile : redirectOneTapDesktop); 12049 12050 const currentPath = window.location.pathname.toLowerCase(); 12051 const currentUrl = window.location.href.toLowerCase(); 12052 12053 const shouldHideGoogleOneTap = redirectList.some(({ value }) => { 12054 switch (value) { 12055 case 'home': 12056 return currentPath === '/'; 12057 case 'product': 12058 return currentPath.startsWith('/products/'); 12059 case 'collections': 12060 return currentPath.startsWith('/collections'); 12061 case 'cart': 12062 return currentPath === '/cart'; 12063 case 'checkout': 12064 return currentPath.startsWith('/checkouts') && !currentPath.includes('thank_you'); 12065 case 'thank_you': 12066 return currentPath.includes('/thank_you'); 12067 case 'account': 12068 return currentPath.startsWith('/account'); 12069 case 'pages': 12070 return currentPath.startsWith('/pages'); 12071 case 'blogs': 12072 return currentPath === '/blogs' || currentPath === '/blogs/news'; 12073 case 'blog_post': 12074 return currentPath.startsWith('/blogs/') && currentPath.split('/').length > 3; 12075 default: 12076 return false; 12077 } 12078 }); 12079 12080 if (shouldHideGoogleOneTap) return; 12081 12082 const oneTapClientId = bitloginCache.config.find( 12083 (config) => config.provider === "GOOGLE" 12084 )?.clientId; 12085 12086 const isLoggedIn = false; 12087 12088 if (bitloginCache.appearance.googleOneTap && oneTapClientId && !isLoggedIn) { 12089 const googleOneTapButton = document.createElement("div"); 12090 googleOneTapButton.setAttribute("id", "g_id_onload"); 12091 googleOneTapButton.setAttribute("data-client_id", oneTapClientId); 12092 googleOneTapButton.setAttribute("data-context", "signin"); 12093 googleOneTapButton.setAttribute( 12094 "data-callback", 12095 "handleGoogleOneTapResponse" 12096 ); 12097 googleOneTapButton.setAttribute("data-itp_support", "true"); 12098 12099 const googleOneTapScript = document.createElement("script"); 12100 12101 googleOneTapScript.innerHTML += ` 12102 function handleGoogleOneTapResponse(response) { 12103 if (response.credential) { 12104 const idToken = response.credential; 12105 fetch('${bitLoginBaseUrl}/bitlogin/api/login/google-one-tap', { 12106 method: 'POST', 12107 headers: { 'Content-Type': 'application/json' }, 12108 body: JSON.stringify({ idToken, shop: "${host}", ...bitloginCache.location }) 12109 }).then(response => { 12110 response.json().then((data) => { 12111 post( 12112 JSON.parse( 12113 JSON.stringify({ 12114 "customer[email]": data.email, 12115 "customer[password]": data.password, 12116 form_type: "customer_login", 12117 utf8: "â", 12118 return_url: redirectUrl, 12119 }) 12120 ) 12121 ); 12122 }); 12123 }).catch(error => { 12124 console.error('Error occurred:', error); 12125 }); 12126 } else { 12127 console.error('No credential available'); 12128 } 12129 } 12130 `; 12131 12132 document.body.append(googleOneTapButton); 12133 document.body.append(googleOneTapScript); 12134 } 12135 12136 oneTapSet = true; 12137 } 12138
12139 const googleLoginIcon = ( 12140 theme, 12141 customColor 12142 ) => ` 12143 ${ 12144 theme === "match" || theme === "matchOutline" || theme === "custom" 12145 ? `<svg 12146 xmlns='images/logo-jkt8.png' 12147 xmlns:v='https://vecta.io/nano' 12148 width='24' 12149 height='24' 12150 viewBox='0 0 186.69 190.5' 12151 > 12152 <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="${ 12153 theme === "custom" ? customColor : "#4285f4" 12154 }"/><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="${ 12155 theme === "custom" ? customColor : "#34a853" 12156 }"/><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="${ 12157 theme === "custom" ? customColor : "#fbbc05" 12158 }"/><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="${ 12159 theme === "custom" ? customColor : "#ea4335" 12160 }" clip-path="none" mask="none"/></g> 12161 </svg>` 12162 : `<svg xmlns="images/logo-jkt8.png" width="25" height="25" viewBox="0 0 25 25" fill="none"> 12163 <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="${ 12164 theme !== "black" ? "black" : "white" 12165 }"/> 12166 <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="${ 12167 theme !== "black" ? "black" : "white" 12168 }"/> 12169 <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="${ 12170 theme !== "black" ? "black" : "white" 12171 }"/> 12172 <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="${ 12173 theme !== "black" ? "black" : "white" 12174 }"/> 12175 </svg>` 12176 }`; 12177 12178 const appleLoginIcon = ( 12179 theme, 12180 customColor 12181 ) => `<svg width="24" height="24" viewBox="0 0 19 24" fill="none" xmlns="images/logo-jkt8.png"> 12182 <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="${ 12183 theme === "custom" 12184 ? customColor 12185 : theme === "match" || theme === "black" 12186 ? "white" 12187 : "black" 12188 }"/> 12189 </svg>`; 12190 12191 const facebookLoginIcon = ( 12192 theme, 12193 customColor 12194 ) => ` 12195 ${ 12196 theme === "match" || theme === "matchOutline" || theme === "custom" 12197 ? `<svg xmlns="images/logo-jkt8.png" width="24" height="25" viewBox="0 0 24 25" fill="none"> 12198 <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="${ 12199 theme === "custom" ? customColor : theme === "match" ? "white" : "#1977F3" 12200 }"/> 12201 <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="${ 12202 theme === "match" ? "#1778f2" : "transparent" 12203 }"/> 12204 </svg>` 12205 : `<svg xmlns="images/logo-jkt8.png" width="24" height="25" viewB
12205ox="0 0 24 25" fill="none"> 12206 <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="${ 12207 theme === "black" ? "white" : "black" 12208 }"/> 12209 <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="${ 12210 theme === "black" ? "black" : "white" 12211 }"/> 12212 </svg>` 12213 }`; 12214 12215 const whatsappLoginIcon = ( 12216 theme, 12217 customColor 12218 ) => `<svg 12219 viewBox="0 0 24 24" 12220 fill="none" 12221 width="24" 12222 height="25" 12223 xmlns="images/logo-jkt8.png" 12224 > 12225 <g id="SVGRepo_bgCarrier" stroke-width="0"></g> 12226 <g 12227 id="SVGRepo_tracerCarrier" 12228 stroke-linecap="round" 12229 stroke-linejoin="round" 12230 ></g> 12231 <g id="SVGRepo_iconCarrier"> 12232 <path 12233 fill-rule="evenodd" 12234 clip-rule="evenodd" 12235 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" 12236 fill="${ 12237 theme === "match" || theme === "black" 12238 ? "#ffffff" 12239 : theme === "white" 12240 ? "#000000" 12241 : theme === "matchOutline" 12242 ? "#25d366" 12243 : customColor 12244 }" 12245 ></path> 12246 </g> 12247 </svg>`; 12248 12249 const microsoftLoginIcon = ( 12250 theme, 12251 customColor 12252 ) => `<svg 12253 xmlns="images/logo-jkt8.png" 12254 width="25" 12255 height="25" 12256 viewBox="0 0 48 48"> 12257 <path fill="${ 12258 theme === "match" || theme == "matchOutline" 12259 ? "#ff5722" 12260 : theme === "black" 12261 ? "#ffffff" 12262 : theme === "white" 12263 ? "#000000" 12264 : customColor 12265 }" d="M6 6H22V22H6z" transform="rotate(-180 14 14)"></path> 12266 <path 12267 fill="${ 12268 theme === "match" || theme == "matchOutline" 12269 ? "#4caf50" 12270 : theme === "black" 12271 ? "#ffffff" 12272 : theme === "white" 12273 ? "#000000" 12274 : customColor 12275 }" 12276 d="M26 6H42V22H26z" 12277 transform="rotate(-180 34 14)"></path> 12278 <path 12279 fill="${ 12280 theme === "match" || theme == "matchOutline" 12281 ? "#ffc107" 12282 : theme === "black" 12283 ? "#ffffff" 12284 : theme === "white" 12285 ? "#000000" 12286 : customColor 12287 }" 12288 d="M26 26H42V42H26z" 12289 transform="rotate(-180 34 34)"></path> 12290 <path fill="${ 12291 theme === "match" || theme == "matchOutline" 12292 ? "#03a9f4" 12293 : theme === "black" 12294 ? "#ffffff" 12295 : theme === "white" 12296 ? "#000000" 12297 : customColor 12298 }" d="M6 26H22V42H6z" transform="rotate(-180 14 34)"></path> 12299 </svg>`; 12300 12301 const twitterLoginIcon = ( 12302 theme, 12303 customColor 12304 ) => `<svg 12305 xmlns="images/logo-jkt8.png" 12306 width="25" 12307 height="25" 12308 viewBox="0 0 48 48"> 12309 <polygon fill="${ 12310 theme === "match" || theme === "black" 12311 ? "#ffffff" 12312 : theme === "matchOutline" || theme === "white" 12313 ? "#000000" 12314 : customColor 12315 }" points="41,6 9.929,42 6.215,42 37.287,6"></polygon> 12316 <polygon 12317 fill="${ 12318 theme === "match" || theme === "black" 12319 ? "#000000" 12320 : theme === "matchOutline" || theme === "white" 12321 ? "#ffffff" 12322 : customColor 12323 }" 12324 fill-rule="evenodd" 12325 points="31.143,41 7.82,7 16.777,7 40.1,41" 12326 clip-rule="evenodd"></polygon> 12327 <path 12328 fill="${ 12329 theme === "match" || theme === "black" 12330 ? "#ffffff" 12331 : theme === "matchOutline" || theme === "white" 12332 ? "#000000" 12333 : customColor 12334 }" 12335 d="M15.724,9l20.578,30h-4.106L11.618,9H15.724 M17.304,6H5.922l24.694,36h11.382L17.304,6L17.304,6z"></path> 12336 </svg>`; 12337 12338 const amazonLoginIcon = (theme, customColor) => ` 12339 <svg 12340 xmlns="images/logo-jkt8.png" 12341 x="0px" 12342 y="0px" 12343 width="25" 12344 height="25"
12345 viewBox="0 0 50 50" 12346 > 12347 <path 12348 fill="${ 12349 theme === "black" 12350 ? "#ffffff" 12351 : theme === "matchOutline" 12352 ? "#FF9900" 12353 : theme === "white" || theme === "match" 12354 ? "#000000" 12355 : customColor 12356 }" 12357 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" 12358 ></path> 12359 </svg>`; 12360 12361 const instagramLoginIcon= (theme, customColor) => ` 12362 <svg 12363 width="25" 12364 height="25" 12365 viewBox="0 0 25 24" 12366 fill="none" 12367 xmlns="images/logo-jkt8.png"> 12368 <path 12369 fill-rule="evenodd" 12370 clip-rule="evenodd" 12371 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.
1237164321C8.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" 12372 fill="url(#paint0_radial_378_3535)" /> 12373 <path 12374 fill-rule="evenodd" 12375 clip-rule="evenodd" 12376 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" 12377 fill="url(#paint0_radial_378_3535)" /> 12378 <path 12379 fill-rule="evenodd" 12380 clip-rule="evenodd" 12381 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.
1238164321C8.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" 12382 fill="url(#paint0_radial_378_3535)" /> 12383 <path 12384 fill-rule="evenodd" 12385 clip-rule="evenodd" 12386 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" 12387 fill="url(#paint1_radial_378_3535)" /> 12388 <defs> 12389 <radialGradient 12390 id="paint0_radial_378_3535" 12391 cx="0" 12392 cy="0" 12393 r="1" 12394 gradientUnits="userSpaceOnUse" 12395 gradientTransform="translate(17.4 22.7) rotate(-115.776) scale(27.2737 40.5665)"> 12396 <stop offset="0.24392" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF1B90' : customColor}" /> 12397 <stop offset="0.436673" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#F80261' : customColor}" /> 12398 <stop offset="0.688476" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#ED00C0' : customColor}" /> 12399 <stop offset="0.776787" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#C500E9' : customColor}" /> 12400 <stop offset="0.893155" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#7017FF' : customColor}" /> 12401 </radialGradient> 12402 <radialGradient 12403 id="paint1_radial_378_3535" 12404 cx="0" 12405 cy="0" 12406 r="1" 12407 gradientUnits="userSpaceOnUse" 12408 gradientTransform="translate(7.75 19.31) rotate(-57.4396) scale(11.8174 12.2918)"> 12409 <stop stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FFD600' : customColor}" /> 12410 <stop offset="0.484375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF6930' : customColor}" /> 12411 <stop offset="0.734375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" /> 12412 <stop offset="1" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" stop-opacity="0" /> 12413 </radialGradient> 12414 </defs> 12415 </svg>`; 12416 12417 const magicLinkLoginIcon = (theme, customColor) => ` 12418 <svg 12419 xmlns="images/logo-jkt8.png" 12420 width="25" 12421 height="25" 12422 fill="none"
12423 viewBox="0 0 25 25" 12424 > 12425 <path 12426 fill="${ 12427 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' || theme === 'white' ? '#000000' : customColor 12428 }" 12429 fillRule="evenodd" 12430 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" 12431 clipRule="evenodd" 12432 ></path> 12433 </svg>`; 12434 12435 const mobileAppLoginIcon = (theme, customColor) => ` 12436 <svg 12437 width="20" 12438 height="24" 12439 viewBox="0 0 12 16" 12440 fill="none" 12441 xmlns="images/logo-jkt8.png" 12442 > 12443 <path 12444 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" 12445 fill=${ 12446 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#FD823E' : theme === 'white' ? '#000000' : customColor 12447 } 12448 /> 12449 </svg> 12450 `; 12451 12452 const linkedinLoginIcon = (theme, customColor) => ` 12453 <svg 12454 xmlns="images/logo-jkt8.png" 12455 width="25" 12456 height="24" 12457 viewBox="0 0 25 24" 12458 fill="none" 12459 > 12460 <path 12461 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" 12462 fill=${ 12463 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#0A66C2' : theme === 'white' ? '#000000' : customColor 12464 } 12465 /> 12466 </svg> 12467 `; 12468 12469 function isElementVisible(element) { 12470 return ( 12471 document.body.contains(element) && 12472 getComputedStyle(element).display !== "none" && 12473 getComputedStyle(element).visibility !== "hidden" && 12474 getComputedStyle(element).opacity !== "0" && 12475 !element.hasAttribute("hidden") && 12476 !isAncestorHidden(element) 12477 ); 12478 } 12479 12480 function isAncestorHidden(element) { 12481 let parent = element.parentElement; 12482 while (parent) { 12483 if ( 12484 getComputedStyle(parent).display === "none" || 12485 getComputedStyle(parent).visibility === "hidden" || 12486 getComputedStyle(parent).opacity === "0" || 12487 parent.hasAttribute("hidden") 12488 ) { 12489 return true; 12490 } 12491 parent = parent.parentElement; 12492 } 12493 return false; 12494 } 12495 12496 function showAlert(message) { 12497 const alertBox = document.createElement("div"); 12498 alertBox.textContent = message; 12499 alertBox.style.position = "fixed"; 12500 alertBox.style.top = "20px"; 12501 alertBox.style.right = "-300px"; // Start off-screen 12502 alertBox.style.backgroundColor = "#000000"; // Black background 12503 alertBox.style.color = "#ffffff"; // White text 12504 alertBox.style.padding = "15px"; 12505 alertBox.style.borderRadius = "8px"; 12506 alertBox.style.zIndex = "1000"; 12507 alertBox.style.transition = 12508 "right 0.5s ease-in-out, opacity 0.5s ease-in-out"; // Transition for sliding and fading 12509 alertBox.style.boxShadow = "0 2px 5px rgba(0, 0, 0, 0.2)"; // Optional shadow for depth 12510 12511 document.body.appendChild(alertBox); 12512 12513 // Slide in 12514 requestAnimationFrame(() => { 12515 alertBox.style.right = "20px"; // Move into view 12516 alertBox.style.opacity = "1"; // Ensure opacity is set to 1 12517 }); 12518 12519 // Slide out and remove the alert after a few seconds 12520 setTimeout(() => { 12521 alertBox.style.opacity = "0"; // Fade out 12522 alertBox.style.right = "-300px"; // Move out of view 12523 12524 // Wait for the transition to finish before removing the element 12525 setTimeout(() => { 12526 document.body.removeChild(alertBox); 12527 }, 500); // Match this duration with the exit transition duration 12528 }, 3000); 12529 } 12530 </script>
12530 12531 12532 <style> 12533 .daftarku-fixed-footer { 12534 display: flex; 12535 justify-content: space-around; 12536 position: fixed; 12537 background: linear-gradient(to bottom, #000000 0%, #3d3d3d, #000000 100%); 12538 box-shadow: 0 0 12px #00ccff; 12539 outline: none; 12540 padding: 5px 0; 12541 box-shadow: 0 0 0 0 2px 2px #198f01; 12542 left: 0; 12543 right: 0; 12544 bottom: 0; 12545 z-index: 99; 12546 border-radius: 40px 40px 0px 0px; 12547 border-style:dashed; 12548 12549 } 12550 12551 .daftarku-fixed-footer a { 12552 flex-basis: calc((100% - 15px*6)/ 5); 12553 text-decoration: none; 12554 display: flex; 12555 flex-direction: column; 12556 justify-content: center; 12557 align-items: center; 12558 color: #fff; 12559 max-width: 75px; 12560 font-size: 12px; 12561 font-family: Ubuntu, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; 12562 } 12563 12564 .daftarku-fixed-footer a:hover { 12565 font-weight: bold; 12566 } 12567 12568 .daftarku-fixed-footer .center { 12569 transform: scale(1.5) translateY(-5px); 12570 background: center no-repeat; 12571 background-size: contain; 12572 background-color: inherit; 12573 border-radius: 50%; 12574 } 12575 12576 .daftarku-fixed-footer img { 12577 max-width: 20px; 12578 margin-bottom: 0; 12579 max-height: 20px; 12580 } 12581 </style> 12582 12583 <div class="daftarku-fixed-footer"> 12584 <a href="https://amp-jkt8.pages.dev/" rel="nofollow noopener" target="_blank"> 12585 <img layout="intrinsic" height="20px" width="20px" src="images/logo-jkt8.png" alt="PROMOSI"> 12586 PROMO 12587 </a> 12588 <a href="https://amp-jkt8.pages.dev/" rel="nofollow noopener" target="_blank"> 12589 <img layout="intrinsic" height="20px" width="20px" src="images/logo-jkt8.png" alt="LOGIN"> 12590 LOGIN 12591 </a> 12592 <a href="https://amp-jkt8.pages.dev/" rel="nofollow noopener" target="_blank" class="tada"> 12593 <img layout="intrinsic" height="20px" width="20px" src="images/logo-jkt8.png" alt="DAFTAR"> 12594 DAFTAR 12595 </a> 12596 <a href="https://amp-jkt8.pages.dev/" rel="nofollow noopener" target="_blank"> 12597 <img layout="intrinsic" height="20px" width="20px" src="images/logo-jkt8.png" alt="WHATSAPP"> 12598 WHATSAPP 12599 </a> 12600 <a href="https://amp-jkt8.pages.dev/" rel="nofollow noopener" target="_blank" 12601 class="js_live_chat_link live-chat-link"> 12602 <img class="live-chat-icon" layout="intrinsic" height="20px" width="20px" src="images/logo-jkt8.png" alt="Live Chat"> 12603 Live Chat 12604 </a> 12605 </div> 12606 </div> 12607
12607<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"1496c6c168314d5ba25fec5ffebcba92","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
12607 12608
12608<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"35c0090c7d544a5ebd6cb76e1773c81a","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 12608
12608
12609<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"276768321f134ec5a0581a2bbb719892","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 12609
12609
12610<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":"3250db89e7494a709688f90d58dd6e2c","r":1,"spa":2}' crossorigin="anonymous"></script>
12610 12611</body> 12612 </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.